This is the main page of the wiki for the WS-BPEL Composition Repository maintained by the UCASE Software Engineering research group at the University of Cádiz.
If the Subversion binaries are in your
PATH environment variable, check out a working copy of our SVN repository with:
svn co https://neptuno.uca.es/svn/wsbpel-comp-repo/
Windows users may want to use TortoiseSVN instead.
Not all process definitions are "pure" WS-BPEL 2.0: some contain vendor-specific extensions. Additionally, depending on the source, the applicable license may vary.
- LoanApproval: standard loan approval example.
- LoanApprovalExtended: a considerably extended version of the Loan Approval composition developed from scratch. The composition takes into account much more information, such as pending debts, job history, existing properties, Social Security information and so on.
- MetaSearch: meta-search engine which interleaves the results of two regular search engines.
- SquaresSum: a simple composition which computes the value of sum (i=1 to n) for a certain value of n.
- SquaresSum_1: This composition calculates the squares between 0 and "n" of a given number and the total sum of that squares.
- SquaresSum_2: This composition calculates the squares sum and also calculates the variance of the elements.
- SquaresSum_3: This composition calculates the squares sum, the variance of the elements and whether the given number is prime.
- TravelReservationService: travel reservation service which connects to the airline, vehicle and hotel reservation web services.
- TacService: invert the order of the lines in a file.
- TradeIncome: tradeIncome models the behavior of managing a supermarket.
Work in progress¶
We are currently working to publish more compositions, such as:
We have set up a list of requirements that every composition in the repository should meet.
We have a Jenkins job that automates most of these checks and provides regular reports.
Nevertheless, you may check that a specific composition X meets these requirements by running
./run-tests X from the main directory of your working copy.
results.xml file follows the same format as JUnitReport, and can be read using Eclipse or many other common IDEs. The first line usually indicates the number of tests run, the hostname of the machine used to run it, the number of test failures and test errors and the total time required, measured in seconds.
<testsuite tests="14" name="es.uca.webservices.bpel.repo.Lint" hostname="pepino" failures="0" time="40.896" errors="0">
For instance, the above line says that we ran 14 tests in 40.896 seconds on "pepino" and found no failures or errors.
After the first line, we will see several
<testcase> elements. This is an example of a successful test case for the TacService composition, taking 0.581 seconds:
<testcase name="EntryHasWikiPage" time="0.581" classname="es.uca.webservices.bpel.repo.TacServiceTest"> </testcase>
This is a failed test case, which indicates that the TacService folder should not have any files related to IDEs or build tools whenever possible:
<testcase name="NoProjectFiles" time="47.891" classname="es.uca.webservices.bpel.repo.TacServiceTest"> <failure message="Should not have any IDE- or build tool-related project files, but it did. Please remove any of these files: - .classpath - .project - .settings - build.xml - nb-build.xml - nbbuild - nbdist - nbproject" type="es.uca.webservices.bpel.repo.LintFailure"> </failure> </testcase>
Useful introductory materials on WS-BPEL¶
We recommend the following materials to learn about BPEL and all its underlying technologies:
- The official WS-BPEL specification is the authoritative reference, but it is a bit hard to read. We recommend reading the OASIS BPEL Primer first.
- T. Hallwyl wrote an interesting evaluation of the WS-BPEL specification.
- The Language Grid Association has several tutorials on building a basic BPEL composition and handling exceptions.
- BPELUnit has some useful tutorials as well on how to build BPEL compositions, deploy them to Apache ODE and test them. The master's thesis for the original version of BPELUnit is also very useful, as it describes the overall design of the tool and the structure of a BPELUnit test suite.
- Spanish readers may also find it useful to read some of our bachelor's thesis, as we have helped students create several complex WS-BPEL compositions.