37
Execute business processes with Eclipse STP BPMN Modeler, Eclipse ATL, and Apache ODE Skill Level: Intermediate Tyler Anderson ([email protected]) Freelance Writer Backstop Media 29 Jan 2008 Everyone — from consultants and analysts to architects and engineers — has ideas. But implementing a new idea can be challenging, requiring knowledge of an unfamiliar development language or hiring costly developers. What if there was a way to create an executable business process using a graphical editor that can ultimately be executed on an appropriate engine? Well, there is. Using the Eclipse STP BPMN Modeler, you can graphically create a business model represented in XML that can be converted to an executable using Eclipse ATL that will ultimately deploy on Apache ODE. Section 1. Before you start This tutorial is for those that would like to learn both Business Process Modeling Notation (BPMN) and Business Process Execution Language (BPEL) XML formats using the Eclipse SOA Tools Platform BPMN Modeler to model a business process, convert BPMN to a BPEL-executable deployable to Apache Orchestration Director Engine (ODE). Using these processes and technologies allows you to model business processes you can quickly validate. If BPMN, BPEL, ODE, STP, or other acronyms used in this tutorial are new to you, see Resources for explanations. About this tutorial This tutorial shows you how to use the Eclipse SOA Tools Platform (STP) to model business processes, converting the resulting Business Process Modeling Notation (BPMN) file to a Business Process Execution Language (BPEL) with the help of the Eclipse ATLAS Transformation Language (ATL) project, then deploying it to Apache Execute business processes with Eclipse © Copyright IBM Corporation 1994, 2007. All rights reserved. Page 1 of 37

Execute business processes with Eclipse

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Execute business processes with Eclipse

Execute business processes with EclipseSTP BPMN Modeler, Eclipse ATL, and Apache ODE

Skill Level: Intermediate

Tyler Anderson ([email protected])Freelance WriterBackstop Media

29 Jan 2008

Everyone — from consultants and analysts to architects and engineers — has ideas.But implementing a new idea can be challenging, requiring knowledge of anunfamiliar development language or hiring costly developers. What if there was a wayto create an executable business process using a graphical editor that can ultimatelybe executed on an appropriate engine? Well, there is. Using the Eclipse STP BPMNModeler, you can graphically create a business model represented in XML that canbe converted to an executable using Eclipse ATL that will ultimately deploy onApache ODE.

Section 1. Before you start

This tutorial is for those that would like to learn both Business Process ModelingNotation (BPMN) and Business Process Execution Language (BPEL) XML formatsusing the Eclipse SOA Tools Platform BPMN Modeler to model a business process,convert BPMN to a BPEL-executable deployable to Apache Orchestration DirectorEngine (ODE). Using these processes and technologies allows you to modelbusiness processes you can quickly validate. If BPMN, BPEL, ODE, STP, or otheracronyms used in this tutorial are new to you, see Resources for explanations.

About this tutorial

This tutorial shows you how to use the Eclipse SOA Tools Platform (STP) to modelbusiness processes, converting the resulting Business Process Modeling Notation(BPMN) file to a Business Process Execution Language (BPEL) with the help of theEclipse ATLAS Transformation Language (ATL) project, then deploying it to Apache

Execute business processes with Eclipse© Copyright IBM Corporation 1994, 2007. All rights reserved. Page 1 of 37

Page 2: Execute business processes with Eclipse

Orchestration Director Engine (ODE).

The process modeled in this tutorial is one where an online Web surfer comes to aWeb site to buy toys. The flow of the process continues with a shipping estimator,checking out with a successful order, e-mailing an invoice to the customer, andinitiating the shipping process for the toy.

In this tutorial you'll learn how to do the following:

1. Install Eclipse STP, Eclipse ATL, the BABEL BPMN2BPEL tools, andApache ODE

2. Model a business process in Eclipse STP

3. Transform the Eclipse STP's BPMN format to BABEL's BPMN format

4. Transform BABEL's BPMN format to BPEL

5. Create an Apache ODE deployment descriptor

6. Write Web Service Definition Language (WSDL) for your businessprocess

7. Prepare the generated BPEL for deployment

8. Deploy to Apache ODE

System requirements

This tutorial requires several technologies that work together. For instance, ApacheODE requires a Web container like Apache Tomcat. Here's the full list:

Classic EclipseEclipse is the master platform upon which the Eclipse SOA Tools PlatformProject (STP) plug-in runs on. Get the latest version of Eclipse Classic: V3.3.1was used in this tutorial.

Eclipse SOA Tools Platform (STP)Here, you'll find all the core plug-ins you'll need to develop with the STP. Thistutorial uses VI200710300730. Note there are several plug-ins and availabledifferent downloads, so be sure to select the one all-in-one package under theSOA Tools Platform All-In-One Packages heading. This package includes allthe dependencies listed under the Requirements heading.

Eclipse ATLAS Transformation Language (ATL)You'll use the Eclipse ATL project to perform a transformation, convertingEclipse STP's BPMN to BABEL BPMN. This tutorial uses the version titled ATLBundle 2.0 Standard Version, under the heading ATL Ready-To-Use Bundles.

developerWorks® ibm.com/developerWorks

Execute business processes with EclipsePage 2 of 37 © Copyright IBM Corporation 1994, 2007. All rights reserved.

Page 3: Execute business processes with Eclipse

BABEL toolsTo convert BABEL BPMN format to BPEL, these helper tools are required.You'll need to download the Java™ binaries (JAR file) under the BPMN2BPELbullet. You may also find the downloadable examples and source code useful,as well.

Apache Orchestration Director Engine (ODE)You'll need the Apache ODE to deploy your business process after the dusthas settled in your business process development. Download the WARdistribution file. This tutorial uses V1.1.

Apache TomcatThis tutorial uses Apache Tomcat as the servlet container for Apache ODE.However, there are other possibilities, such as Jetty. Get the core ZIP file. Thistutorial uses V5.5.25.

Java technologyAll the tools used in this tutorial require Java technology. Java 6 Update 3 wasused in this tutorial.

Operating systemYou need an operating system capable of running all of the above. We usedWindows® when creating this, but you can use a modern version of Mac OS Xor Linux®, as well. Adjust locations of files accordingly.

You'll learn more about installing all these tools before you begin using them later.To learn more about other aspects of these tools, see Resources.

Section 2. Introduction

Business processes are an integral part of a Service-Oriented Architecture (SOA)and are created using standard XML definitions BPMN and BPEL. In this section,you'll learn more about how business processes fit into the SOA model, and aboutthe two business process XML standards (BPMN and BPEL) and their relationship.

Service-Oriented Architecture

An SOA comprises several services that are accessible and can interact with eachother over the Internet. SOA is easy to maintain and deploy since it's done oneservice at a time. Business processes easily fit into this model, having their ownservice endpoint, as defined by WSDL that can interact and exchange data withother services over the Internet.

In the next two sections, you'll learn about the business-process modeling andexecution formats: BPMN and BPEL.

ibm.com/developerWorks developerWorks®

Execute business processes with Eclipse© Copyright IBM Corporation 1994, 2007. All rights reserved. Page 3 of 37

Page 4: Execute business processes with Eclipse

Business Process Modeling Notation

BPMN essentially defines the business process's tasks, entities, and the arcsbetween them (the flow among tasks) in XML format. BPMN is the language that themodels created using the Eclipse STP BPMN Modeler are converted into. Perhaps agraphical representation of a business process would best explain this concept.

Figure 1. Model of a business process

The image shows a single horizontal flow of a business process cut into three slices,stacked vertically and in order. In Figure 1, the model of a business process wascreated using the Eclipse STP BPMN Modeler, which you'll use later. You can seewhere the process starts with the empty circle on the left, with the flow being guidedto the right using arrows/arcs, ultimately ending with the empty circle on the right.

developerWorks® ibm.com/developerWorks

Execute business processes with EclipsePage 4 of 37 © Copyright IBM Corporation 1994, 2007. All rights reserved.

Page 5: Execute business processes with Eclipse

BPMN is simply an XML format describing, for example, the model shown in Figure1. It contains vertices that correspond to nodes and sequenceEdges thatcorrespond to arrows/arcs. Take a look at an example of each in Listing 1.

Listing 1. Sample vertices and sequenceEdges

<vertices xmi:type="bpmn:Activity" xmi:id="_OioEMZ-jEdyW35YU1b0yXQ"iD="_OioEMJ-jEdyW35YU1b0yXQ" outgoingEdges="_PBxeUZ-jEdyW35YU1b0yXQ"

incomingEdges="_Pe-XsZ-jEdyW35YU1b0yXQ _PuxHMZ-jEdyW35YU1b0yXQ" name="orderCheck2"activityType="GatewayDataBasedExclusive" looping="false"/>

<sequenceEdges xmi:type="bpmn:SequenceEdge" xmi:id="_r1A1oZ-iEdyW35YU1b0yXQ"iD="_r1A1oJ-iEdyW35YU1b0yXQ" source="_mxgfgZ-iEdyW35YU1b0yXQ"target="_exzeA5-iEdyW35YU1b0yXQ"/>

Vertices are essentially nodes or tasks, shown graphically in Figure 1 as circles,diamonds and squares. In Listing 1, you can see that they have identifiers, as wellas a list of outgoing and incoming edges. Identifiers simply give vertices an ID thatcan be referenced as sources and targets of sequenceEdges (shown in Figure 1 asdirectional arrows going from vertice to vertice). The important information in eachsequenceEdges is the source and target attributes that specify the source verticesand the destination vertices. Please note that this file format is not executable onApache ODE as it's only the model of a business process, so you'll use the EclipseATL project and an open source tool written by BABEL to convert the model into anexecutable.

Business Process Execution Language

As the name implies, BPEL is executable on process engines like ApacheOrchestration Director Engine (ODE).

The difference between BPEL and BPMN is that BPEL is more structured, being anexecutable language by definition. Instead of vertices and sequenceEdges, a BPELXML file contains sequences of instructions that include invoking a Web serviceoperation and statements like while loops that can execute a sequence of codeagain and again if its condition remains true (see the <condition> ...</condition> tags after the opening <while> tag in Listing 2) and if else-ifelse statements.

In Figure 1 (slice 2) there is one instance where an arc goes backwards. That is howyou code a while loop using the BPMN Modeler. There, you'll see the two verticeslabeled while1 and while2 that facilitate the correct branching of processes (while1combines two input edges into a single output edge, and while2 takes one inputedge and splits it into two output edges). The condition of the while loop is definedby while_ok, and if it remains true, the shippingEstimator task will beperformed again and again. When the same condition is no longer true, executionbreaks and goes to the checkout task.

To see how the above model of a while loop is then represented in BPEL, take apeek at Listing 2.

ibm.com/developerWorks developerWorks®

Execute business processes with Eclipse© Copyright IBM Corporation 1994, 2007. All rights reserved. Page 5 of 37

Page 6: Execute business processes with Eclipse

Listing 2. Example while statement in BPEL

<while><condition>

getVariableProperty(shippingEstimator_data_in,Message)="true"</condition>

<invoke name="shippingEstimator"partnerLink="mybiz_flow_servicePartnerLink"portType="sns:mybiz_flow_servicePortType"operation="shippingEstimator"inputVariable="shippingEstimator_data_in"outputVariable="shippingEstimator_data_out" />

<assign name="postShipping"><copy><from variable="shippingEstimator_data_out" part="Message" /><to variable="shippingEstimator_data_in" part="Message"/>

</copy></assign>

</while>

Here, you can see the while loop model shown in Figure 1 (slice 2) coded in BPELformat, which has the same image of while loops in other programming languages,except this one is defined using XML. You'll see this snippet of code again later,where you'll also learn about more about other BPEL constructs.

Note that the above BPEL is not ready for deployment alone, since it requires adeployment descriptor and WSDL to define the service endpoints for your businessprocess, which you'll also learn to create for an error-free deployment to ApacheODE.

To sum up: BPMN XML defines a graphical model of your business process withnodes and edges, and BPEL defines an executable model of your business processwith executable constructs like while loops and if statements, and statements thatcall operations on existing Web services.

The business process you'll model is a simple flow of adding a toy to a shoppingcart. Users will have the option to use a shipping estimator (the while loop you seein Listing 2), check out, and place an order that can be rejected or accepted, with anaccepted order sending an invoice to the customer and placing the order in ashipping queue.

Next, you'll install all the required tools so you can quickly dive into the developmentof your business process.

Section 3. Quick installation guide

To get moving onto developing your business process, you're going to quickly installeach of the tools from the System requirements section here.

developerWorks® ibm.com/developerWorks

Execute business processes with EclipsePage 6 of 37 © Copyright IBM Corporation 1994, 2007. All rights reserved.

Page 7: Execute business processes with Eclipse

Eclipse SOA Tools Platform (STP)Contains the BPMN Modeler you'll use to model a toy purchasing businessprocess (shown in Figure 1). The output of the BPMN Modeler is a BPMN XMLdescription of the model.

Eclipse ATLAS Transformation Language (ATL)Transforms XML models from one model to another. You'll use it to convert theBPMN output from the STP to BPMN readable by the BABEL tools.

BABEL toolsThis is a Java command-line tool that converts BABEL BPMN to a preliminaryBPEL format you'll tidy and provide deployment descriptors and WSDL formatlater.

Apaches Orchestration Director Engine (ODE) and TomcatApache ODE runs inside Apache Tomcat. Apache ODE is then where youdeploy BPEL and accompanying support files on Apache ODE for execution.

Installing Eclipse STP

The Eclipse SOA Tools Platform (STP) is the core tool containing the BPMNModeler you're going to need to model a business process in this tutorial. Beforeproceeding with installing the Eclipse STP, you're going to need to grab ClassicEclipse and the Eclipse STP All-In-One..

To install, it's important that you follow these instructions in order:

• Unzip the Classic Eclipse to your programs directory.

• Unzip the Eclipse STP All-In-One to your programs directory (If asked,click overwrite all).

Note that unzipping the Eclipse STP file to the same directory as the Classic EclipseZIP file overwrites various files in the Classic Eclipse directory, effectively mergingthe two. Now rename the Eclipse directory STPbpmn_eclipse. In Windows, runSTPbpmn_eclipse/eclipse.exe.

Installing Eclipse ATL

The Eclipse ATL project is the tool you're going to use to convert an STP BPMNXML file to a BABEL BPMN XML file. You should already have downloaded one ofthe ready to go ATL bundles (in Windows, the file is namedATL_Bundle_2.0.0RC2_Windows.zip). Unzip this file to your programsdirectory, rename the eclipse directory to ATL_eclipse, and presto! Eclipse ATLinstallation is done.

To start Eclipse ATL in Windows, run ATL_eclipse/eclipse.exe.

ibm.com/developerWorks developerWorks®

Execute business processes with Eclipse© Copyright IBM Corporation 1994, 2007. All rights reserved. Page 7 of 37

Page 8: Execute business processes with Eclipse

Installing the BABEL tools

You'll use the BABEL JAR file you download to convert BABEL BPMN XML toBPEL. You'll activate this tool on the command line, so save it to a directory in yourprograms directory called babelBPMNtoBPEL.

Installing Apache ODE and Tomcat

Since Apache ODE runs inside Tomcat, you'll install Apache Tomcat first. To installTomcat, simply move the ZIP file you downloaded (apache-tomcat-5.5.25.zip) fromApache.org to your programs directory. Now unzip it and set CATALINA_HOME asan environment variable (c:\apps\apache-tomcat-5.5.25). To do so in Windows, clickStart > Control Panel. Switch to Classic View, then click System. In the windowthat pops up, click the Advanced tab, and click Environment Variables. Under"User variables for ...," click New and enter in the new environment variable withCATALINA_HOME as the variable name and the path to the Tomcat home directoryas the variable value.

Now click OK, click OK again, and one more time, click OK. That should do it forTomcat.

Installing Apache ODE is simple now. First unzip the file you downloaded(apache-ode-war-1.1.zip) to your programs directory, extract ode.war from within theapache-ode-war-1.1 directory, and copy it to the webapps directory in Tomcat.

Apache ODE and Tomcat are ready to roll. Next, you'll begin using the Eclipse STPBPMN Modeler.

Section 4. Using the Eclipse STP BPMN Modeler

The STP BPMN Modeler is quite easy to use. You can model just about anythingwith a simple drag and drop, which is what you'll get to try out in this section. First,you'll learn how to create a BPMN diagram to model visitors purchasing toys on yourWeb site. Then you'll learn about a few activity types you'll be using in the model.And finally, you'll see how to ultimately model your business process using theBPMN Modeler.

Your first BPMN diagram

Time to start up the Eclipse STP. Because the BPMN Modeler isn't project-based,you're just going to start it off in a generic project.

developerWorks® ibm.com/developerWorks

Execute business processes with EclipsePage 8 of 37 © Copyright IBM Corporation 1994, 2007. All rights reserved.

Page 9: Execute business processes with Eclipse

To create your new project, click File > New > Project. Next, expand the Generalfolder and select Project.

Figure 2. Creating a generic project

Click Next and type in a project name, STPbpmn.

Figure 3. Naming your project

ibm.com/developerWorks developerWorks®

Execute business processes with Eclipse© Copyright IBM Corporation 1994, 2007. All rights reserved. Page 9 of 37

Page 10: Execute business processes with Eclipse

You should now see your new project in the Package Explorer pane. Select it andclick File > New > Other. Expand the SOA Tools folder and select Bpmn Diagram.

Figure 4. Creating a new BPMN Diagram

developerWorks® ibm.com/developerWorks

Execute business processes with EclipsePage 10 of 37 © Copyright IBM Corporation 1994, 2007. All rights reserved.

Page 11: Execute business processes with Eclipse

Click Next and enter a file name in the File name space: mybiz_flow.

Figure 5. Naming your BPMN diagram

ibm.com/developerWorks developerWorks®

Execute business processes with Eclipse© Copyright IBM Corporation 1994, 2007. All rights reserved. Page 11 of 37

Page 12: Execute business processes with Eclipse

Click Finish to create the BPMN diagram. Your project should now be set up asshown below.

Figure 6. Your project window

developerWorks® ibm.com/developerWorks

Execute business processes with EclipsePage 12 of 37 © Copyright IBM Corporation 1994, 2007. All rights reserved.

Page 13: Execute business processes with Eclipse

Excellent! Now you're ready to being learning about a few activity types, elementsshown in the palette on the right.

Introducing activity types

There are various activity types you can use to model your business process. Hereare five you'll be using to model yours. Empty Start, under Start Events.

Figure 7. Empty Start event

This activity starts the flow process, the empty circle on the left side of Figure 1. Nextis a task, as shown below.

Figure 8. Tasks

ibm.com/developerWorks developerWorks®

Execute business processes with Eclipse© Copyright IBM Corporation 1994, 2007. All rights reserved. Page 13 of 37

Page 14: Execute business processes with Eclipse

Tasks are commands like invoking a Web service. The next two are a couplegateways that allow a process to split into to different directions, exclusively or inparallel. First is the exclusive data-based gateway.

Figure 9. Exclusive data-based gateway

You'll see more of how this works later. In short, it's used to branch the businessprocess into two paths, one for if the order failed and another if the order was asuccess. Next is the parallel gateway.

Figure 10. Parallel gateway

You can use this gateway to define two tasks that can be executed in parallel, suchas sending an invoice to a customer and queuing an order in the shippingdepartment after an order successfully processed. The last activity you'll check out isthe Empty End event, an event that terminates the business process.

Figure 11. Empty End event

This is the empty circle on the right side of Figure 1, terminating the businessprocess flow.

Modeling your business process

Now you finally get to model your business process. To begin, click the Empty Startactivity and click a spot in the blue flow panel. Then double-click it and label itstart.

developerWorks® ibm.com/developerWorks

Execute business processes with EclipsePage 14 of 37 © Copyright IBM Corporation 1994, 2007. All rights reserved.

Page 15: Execute business processes with Eclipse

Figure 12. Labeling the start activity

Click the task activity type, place it to the right of the start circle, double-click it andlabel it addToyToCart.

Figure 13. Labeling a task

Next, you'll create a new arc from the start circle to the addToyToCart task. Hoverover the right border of the start circle until a dark solid arrow appears to the right ofit, as shown in Figure 14. Click on the small square box to the right of the solid arrowand drag it to the addToyToCart task.

Figure 14. Creating a new arc

Let go of the mouse button over the addToyToCart task, and a new arc should

ibm.com/developerWorks developerWorks®

Execute business processes with Eclipse© Copyright IBM Corporation 1994, 2007. All rights reserved. Page 15 of 37

Page 16: Execute business processes with Eclipse

appear, linking the two together.

Figure 15. A new arc created

There, you've created your first arc. Your business process is coming together.Continue modeling your business process.

Figure 16. Continuing to model the business process

With the aid of the above figure, you should be able to create a new task,viewCart, and two exclusive data-based gateways that comprise the while loop.Note that you can also label arcs, as shown in the two arcs coming out of thegateway labeled while2. Simply double-click them, type in a desired label, clickEnter, then drag the label to where you want it. Continue modeling, as shown below.

Figure 17. Continuing modeling

developerWorks® ibm.com/developerWorks

Execute business processes with EclipsePage 16 of 37 © Copyright IBM Corporation 1994, 2007. All rights reserved.

Page 17: Execute business processes with Eclipse

Here you see the checkout and shippingEstimator tasks you can create andhook up as shown. Note that there is an edge going from shippingEstimatorback to the gateway labelled while1: This ultimately becomes the while loop yousaw in Listing 2. After the checkout task, you see the equivalent of an if-elsestatement with the gateway labeled orderCheck. If the order failed, flow moves tothe orderFailed task, and if successful, you'll move to the parallel gatewaylabelled orderTasks. Continue modeling the last bit of the business process.

Figure 18. Finalizing the business process model

Note how the two tasks, emailInvoice and shippingQueue are within theparallel gateways. They will be executed in parallel since their flow does not matter.The parallel flow then meets back up at orderTasks2 and again at orderCheck2,with the business process terminating at an Empty End event.

ibm.com/developerWorks developerWorks®

Execute business processes with Eclipse© Copyright IBM Corporation 1994, 2007. All rights reserved. Page 17 of 37

Page 18: Execute business processes with Eclipse

You can now examine the resulting BPMN corresponding to your diagram bydouble-clicking the mybiz_flow.bpmn file in your package explorer file. Here, you cansee all the vertices and sequenceEdges that describe the business process youjust modeled.

Congratulations! You've successfully modeled a business process using the BPMNModeler. Next, you'll begin the transformations to convert the BPMN to BPEL.

Transforming Eclipse STP's BPMN to BPEL

With BPMN in hand, you're ready to convert it to BPEL. To do so, you're going toemploy the help of the Eclipse ATL project and tools from BABEL. This conversionprocess is necessary so you have an executable (BPEL) to work with beforedeployment to Apache ODE. The role of Eclipse ATL is to perform a transformationon the BPMN to a BPMN format readable by the BABEL tools, which convert thefinal BPMN to BPEL. You'll begin by creating your first Eclipse ATL project.

Your first Eclipse ATL project

To create your Eclipse ATL project so you can perform a STP BPMN to BABELBPMN, you need to create a new project within the Eclipse ATL. Start up the ATL(ATL_project/eclipse.exe). Note there are two pre-existing projects:Families2Persons and Tree2List. You can ignore these or delete them altogethersince you won't be using them.

Now you'll create a new project to house the transformation rules you're going to setup. Click File > New > ATL Project.

Figure 19. Creating an ATL project

Next, a window pops up asking for a name. Name the projectSTPbpmnTObabelBPMN, as shown below, then click Finish.

Figure 20. Naming your ATL project

developerWorks® ibm.com/developerWorks

Execute business processes with EclipsePage 18 of 37 © Copyright IBM Corporation 1994, 2007. All rights reserved.

Page 19: Execute business processes with Eclipse

Your ATL project is now created, but more remains. You need to grab a few filesfrom the tutorial download in the Download section. Once you've got the download,extract three files and copy them to your ATL project.

ATL_project\STPbpmnTObabelBPMN\metamodels\bpmn.ecoreAn EMF file defining the structure for BABEL BPMN files.

ATL_project\STPbpmnTObabelBPMN\metamodels\stpmodel.ecoreThe EMF file defining the structure for STP BPMN files.

ATL_project\STPbpmnTObabelBPMN\transformation\bpmn2babel.atlThis is an ATL file defining the transformation from STP BPMN to BABELBPMN.

Also, copy the mybiz_flow.bpmn file generated from your Eclipse STP project to yourEclipse ATL project. Your package explorer for your ATL project should now look

ibm.com/developerWorks developerWorks®

Execute business processes with Eclipse© Copyright IBM Corporation 1994, 2007. All rights reserved. Page 19 of 37

Page 20: Execute business processes with Eclipse

like Figure 21.

Figure 21. Package Explorer view for ATL project with files copied over

Note that the bpmn2babel.asm file is auto-generated by Eclipse ATL when itcompiles the bpmn2babel.atl file.

At this point, your ATL project is created and you're ready to proceed to thetransformation.

Transforming STP BPMN to BABEL BPMN

Now it's time to transform the BPMN output from the Eclipse STP BPMN Modeler toa BPMN format readable by the BABEL tools. Before performing the transformation.However, there is one last thing you need to do. As of the current version of theEclipse STP, there is a bug in the output of the BPMN (it does not conform to thecorresponding stpmodel.ecore). To fix, open up the mybiz_flow.bpmn file bydouble-clicking it in the package explorer window (see Figure 21).

Replace all instances of the following:

• Parallel Gateway with GatewayParallel

• Exclusive Data-based Gateway withGatewayDataBasedExclusive

• Empty Start Event with EventStartEmpty

• Empty End Event with EventEndEmpty

The BPMN is ready for transformation. To proceed, click Run > Open Run Dialog.

developerWorks® ibm.com/developerWorks

Execute business processes with EclipsePage 20 of 37 © Copyright IBM Corporation 1994, 2007. All rights reserved.

Page 21: Execute business processes with Eclipse

In the left-hand column, right-click ATL Transformation, and click New. Name thelaunch configuration STPbpmnTObabelBPMN, and in the project pane select yourproject in the name (STPbpmnTObabelBPMN) and the bpmn2babel.atl file in yourproject, as shown in Figure 22. Then you can select the BPMN and BABEL Ecoremetamodels in the metamodels pane by typing in the path to each Ecore file, or byselecting the appropriate workspace button and browsing for it.

Figure 22. Configuring the ATL launch configuration

Then, again shown in Figure 22, you need to choose a source model(mybiz_flow.bpmn) by entering it directly or clicking Workspace and browsing forthe right file in your project. Since the target model doesn't exist yet (this is the filethat gets generated by Eclipse ATL), you're going to copy the source model file tothe target model file, and type BABEL_ as the prefix to it (see the source and targetmodel panes in Figure 22).

Quite a lot of information so far, hunh? And there's just one more thing left to do: adda library. To do so, click Add library (shown in bottom left of Figure 22), a windowwill pop up asking for the name, accept the default, and just click OK. A library willthen appear in the Libraries pane (to the right of the Target Models pane in Figure22). Click the Workspace button, shown below.

Figure 23. Entering the library file to your ATL launch configuration

ibm.com/developerWorks developerWorks®

Execute business processes with Eclipse© Copyright IBM Corporation 1994, 2007. All rights reserved. Page 21 of 37

Page 22: Execute business processes with Eclipse

Browse for the file in your projects transformation directory.

Figure 24. Entering a library

Click OK. Finally! The launch configuration is ready to roll. Make sure to click Applyin the bottom right of the window to save your changes.

To launch to the configuration and perform the transformation, click Run on thebottom right of the window, and voila! You should now notice a new file in themodels folder in your ATL project, as shown in Figure 25. This is the BABEL BPMN

developerWorks® ibm.com/developerWorks

Execute business processes with EclipsePage 22 of 37 © Copyright IBM Corporation 1994, 2007. All rights reserved.

Page 23: Execute business processes with Eclipse

intermediary format.

Figure 25. Generating BABEL BPMN

Transforming BABEL BPMN to BPEL

To perform the transformation, copy the BABEL_mybiz_flow.bpmn from your EclipseATL project to the babelBPMNtoBPEL directory you created earlier when youinstalled the BABEL tools.

Before proceeding with the remaining transformation, there's one last edit you needto make to the BABEL_mybiz_flow.bpmn file. First: Notice there are two<babelBpmn:DocumentRoot> children elements. Remove one of them (you cancompare your file to the one in the babelBPMNtoBPEL directory of the code youdownloaded from the Download section).

Open a console, and change your directory to the babelBPMNtoBPEL containing theBPMN2BPEL.jar file and the BABEL BPMN file you just created(BABEL_mybiz_flow.bpmn). Type the following to create BPEL: java -jarBPMN2BPEL.jar BABEL_mybiz_flow.bpmn.

The last few lines from running the above tool creates the following output, as shownin Listing 3, creating a new file, BPEL_BABEL_mybiz_flow.bpmn.bpel.

Listing 3. Transforming from BABEL BPMN to BPEL

328 [main] DEBUG controller.BPMN2BPEL - Step 5: Build the BPEL-Tree.328 [main] DEBUG controller.BPMN2BPEL - Output the BPEL-XML into a File.343 [main] DEBUG model.backEnd.EmitterBPEL4BPMN - ChildLIST:1

ibm.com/developerWorks developerWorks®

Execute business processes with Eclipse© Copyright IBM Corporation 1994, 2007. All rights reserved. Page 23 of 37

Page 24: Execute business processes with Eclipse

343 [main] DEBUG controller.BPMN2BPEL - Directory :343 [main] DEBUG controller.BPMN2BPEL - File :BPEL_BABEL_mybiz_flow.bpmn.bpel

Rename BPEL_BABEL_mybiz_flow.bpmn.bpel to mybiz_flow.bpel and copy it toanother directory: apacheODE_process/mybiz_flow/. Open the BPEL file and noticethe while loop, as shown below.

Listing 4. while loop created

<while condition="while_ok"><invoke name="shippingEstimator"

partnerLink="local"portType="localPT"operation="shippingEstimator"inputVariable="shippingEstimator_data_in"outputVariable="shippingEstimator_data_out" />

</while>

Here, you can compare the while loop created here to the one you'll end up with inListing 2. Note that the syntax of the two are different. This is because theauto-generated version creates an excellent starting place for BPEL development, abonus to creating BPEL from scratch.

In the next section, you'll prepare your business process for deployment on ApacheODE.

Section 5. Preparing a business process for deploymentto Apache ODE

You've got BPEL to work with. You'll use this file as a starting point for the BPEL fileyou'll ultimately deploy to Apache ODE. Before doing that, however, you'll create anApache ODE deployment descriptor and two WSDL files: one as the serviceendpoint for your BPEL and another as a supporting service each to facilitate thefunctionality of your toy purchasing business process.

Writing a deployment descriptor

The deployment descriptor you're about to write tells Apache ODE how to deployyour toy purchasing business process and what services to activate. Create a newfile, deploy.xml, and define it as shown below.

Listing 5. Writing an Apache ODE deployment descriptor

<deploy xmlns="http://www.apache.org/ode/schemas/dd/2007/03"

developerWorks® ibm.com/developerWorks

Execute business processes with EclipsePage 24 of 37 © Copyright IBM Corporation 1994, 2007. All rights reserved.

Page 25: Execute business processes with Eclipse

xmlns:pns="http://ibm/dw/ode/bpel/executor"xmlns:wns="http://ibm/dw/ode/bpel/executor.wsdl"xmlns:sns="http://ibm/dw/ode/bpel/service.wsdl">

<process name="pns:mybiz_flow"><active>true</active><provide partnerLink="mybiz_flowPartnerLink"><service name="wns:mybiz_flowService" port="mybiz_flowPort"/>

</provide><provide partnerLink="mybiz_flow_servicePartnerLink"><service name="sns:mybiz_flow_serviceService"

port="mybiz_flow_servicePort"/></provide><invoke partnerLink="mybiz_flow_servicePartnerLink"><service name="sns:mybiz_flow_serviceService"

port="mybiz_flow_servicePort"/></invoke>

</process></deploy>

There are a few elements of importance here. The first is the process element.Notice that it's named after the name of your BPEL file. This is how it knows whichBPEL file it's referencing. Next, there are two provide elements that define partnerlinks that reference service endpoints. The first is the main partner link associatedwith your BPEL file, and the second is the supporting partner link. You'll see howthese two partner links get referenced in the two WSDL files you'll write and later, inthe changes you'll make to the BPEL file.

Writing WSDL for your business process

WSDL allows you to expose your toy purchasing business process as a service.Below is a simple WSDL with a single message, operation, binding, service, andpartnerLinkType, shown below.

Listing 6. Exposing your business process through WSDL

<?xml version="1.0" encoding="utf-8" ?><wsdl:definitions

targetNamespace="http://ibm/dw/ode/bpel/executor.wsdl"xmlns="http://schemas.xmlsoap.org/wsdl/"xmlns:tns="http://ibm/dw/ode/bpel/executor.wsdl"xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype">

<wsdl:message name="mybiz_flowMessage"><wsdl:part name="Message" type="xsd:string"/>

</wsdl:message>

<wsdl:portType name="mybiz_flowPortType"><wsdl:operation name="execute"><wsdl:input message="tns:mybiz_flowMessage" name="In"/><wsdl:output message="tns:mybiz_flowMessage" name="Out"/>

</wsdl:operation></wsdl:portType>

<wsdl:binding name="mybiz_flowSoapBinding"type="tns:mybiz_flowPortType">

<soap:binding style="rpc"transport="http://schemas.xmlsoap.org/soap/http"/>

<wsdl:operation name="execute"><soap:operation soapAction="" style="rpc"/>

ibm.com/developerWorks developerWorks®

Execute business processes with Eclipse© Copyright IBM Corporation 1994, 2007. All rights reserved. Page 25 of 37

Page 26: Execute business processes with Eclipse

<wsdl:input><soap:body

namespace="http://ibm/dw/ode/bpel/executor.wsdl"use="literal"/>

</wsdl:input><wsdl:output>

<soap:bodynamespace="http://ibm/dw/ode/bpel/executor.wsdl"use="literal"/>

</wsdl:output></wsdl:operation>

</wsdl:binding>

<wsdl:service name="mybiz_flowService"><wsdl:port name="mybiz_flowPort" binding="tns:mybiz_flowSoapBinding"><soap:address

location="http://localhost:8080/ode/processes/mybiz_flow"/></wsdl:port>

</wsdl:service>

<plnk:partnerLinkType name="mybiz_flowPartnerLinkType"><plnk:role name="executor" portType="tns:mybiz_flowPortType"/>

</plnk:partnerLinkType>

</wsdl:definitions>

The WSDL is quite simple, having a single message used for both the input andoutput to the execute operation (defined in the portType element). The singleoperation is then bound to a portType (in the binding element), bound to a portwith the service endpoint defined (in the service element). The execute operationstarts off the toy purchasing business process, which you'll see in the next section.

Note the links to your deployment descriptor through the partnerLinkType. Theparter link name, service, and port name are referenced in the first partnerLinkelement in Listing 5. In your BPEL, you'll reference a service and its bound portthrough the above partnerLinkType.

Writing WSDL to support your business process

To invoke outside Web services, your toy purchasing business process requirespartner links. This is why there are two partner links in Listing 5: The second onedefines the Web service you'll write in this section, which contains each of theoperations for each task in your BPMN. Where the first one is called to activate yourbusiness process, this supporting Web service is called by the business process asthe flow of the business process is executed. Take a look at the WSDL for it.

Listing 7. Exposing your supporting Web service via WSDL

<?xml version="1.0" encoding="utf-8" ?><wsdl:definitions

targetNamespace="http://ibm/dw/ode/bpel/service.wsdl"xmlns="http://schemas.xmlsoap.org/wsdl/"xmlns:tns="http://ibm/dw/ode/bpel/service.wsdl"xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype">

<wsdl:message name="mybiz_flow_serviceMessage"><wsdl:part name="Message" type="xsd:string"/>

developerWorks® ibm.com/developerWorks

Execute business processes with EclipsePage 26 of 37 © Copyright IBM Corporation 1994, 2007. All rights reserved.

Page 27: Execute business processes with Eclipse

</wsdl:message>

<wsdl:portType name="mybiz_flow_servicePortType"><wsdl:operation name="addToyToCart"><wsdl:input message="tns:mybiz_flow_serviceMessage" name="In"/><wsdl:output message="tns:mybiz_flow_serviceMessage" name="Out"/>

</wsdl:operation>

<wsdl:operation name="viewCart">...

<wsdl:operation name="shippingEstimator">...

<wsdl:operation name="checkout">...

<wsdl:operation name="orderFailed">...

<wsdl:operation name="emailInvoice">...

<wsdl:operation name="shippingQueue">...</wsdl:portType>

<wsdl:binding name="mybiz_flow_serviceSoapBinding"type="tns:mybiz_flow_servicePortType">

<soap:binding style="rpc"transport="http://schemas.xmlsoap.org/soap/http"/>

<wsdl:operation name="addToyToCart"><soap:operation soapAction="" style="rpc"/><wsdl:input>

<soap:bodynamespace="http://ibm/dw/ode/bpel/service.wsdl"use="literal"/>

</wsdl:input><wsdl:output>

<soap:bodynamespace="http://ibm/dw/ode/bpel/service.wsdl"use="literal"/>

</wsdl:output></wsdl:operation>

<wsdl:operation name="viewCart">...

<wsdl:operation name="shippingEstimator">...

<wsdl:operation name="checkout">...

<wsdl:operation name="orderFailed">...

<wsdl:operation name="emailInvoice">...

<wsdl:operation name="shippingQueue">...

<wsdl:service name="mybiz_flow_serviceService"><wsdl:port name="mybiz_flow_servicePort"

binding="tns:mybiz_flow_serviceSoapBinding"><soap:addresslocation="http://localhost:8080/ode/processes/mybiz_flow_service"/>

</wsdl:port></wsdl:service>

<plnk:partnerLinkType name="mybiz_flow_servicePartnerLinkType"><plnk:role name="service" portType="tns:mybiz_flow_servicePortType"/>

ibm.com/developerWorks developerWorks®

Execute business processes with Eclipse© Copyright IBM Corporation 1994, 2007. All rights reserved. Page 27 of 37

Page 28: Execute business processes with Eclipse

</plnk:partnerLinkType>

</wsdl:definitions>

Visit the Download section to see the full WSDL definition. Note that there is oneoperation for each task in the toy purchasing business process you've definedthroughout this tutorial. This Web service's operations are (for simplicity) definedexactly like the execute operation in Listing 6, so you won't spend much time onthis one. You may wish to expand them and make them do other things, then take ina Message of type xsd:string for their input and output messages, depending onthe needs of your business process.

Finalizing the generated BPEL file

The last thing you need to do before you are able to deploy your business process toApache ODE is to fill out the BPEL file you generated in Listing 3 for the toypurchasing business process. You'll need to redefine the Namespaces and importthe two WSDL files you wrote in Listings 6 and 7.

Listing 8. Namespaces and WSDL imports

<?xml version="1.0" encoding="UTF-8"?><process name="mybiz_flow"

targetNamespace="http://ibm/dw/ode/bpel/executor"xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"xmlns:tns="http://ibm/dw/ode/bpel/executor"xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:test="http://ibm/dw/ode/bpel/executor.wsdl"xmlns:sns="http://ibm/dw/ode/bpel/service.wsdl"queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0"expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0"

>

<import location="mybiz_flow.wsdl"namespace="http://ibm/dw/ode/bpel/executor.wsdl"importType="http://schemas.xmlsoap.org/wsdl/" />

<import location="mybiz_flow_service.wsdl"namespace="http://ibm/dw/ode/bpel/service.wsdl"importType="http://schemas.xmlsoap.org/wsdl/" />

...

This sets up the BPEL file so you can correctly call out the partner links, messagetypes, services, and operations defined in each of the WSDL files. In fact, you'll listeach of the partner links and variables you'll be using in your business process.

Listing 9. Declaring partner links and variables

...namespace="http://ibm/dw/ode/bpel/service.wsdl"importType="http://schemas.xmlsoap.org/wsdl/" />

<!--bpmn2bpel Version 1.0--><partnerLinks>

<!--List of services participating in this BPEL process--><partnerLink name="mybiz_flowPartnerLink"

partnerLinkType="test:mybiz_flowPartnerLinkType"myRole="me" />

developerWorks® ibm.com/developerWorks

Execute business processes with EclipsePage 28 of 37 © Copyright IBM Corporation 1994, 2007. All rights reserved.

Page 29: Execute business processes with Eclipse

<partnerLink name="mybiz_flow_servicePartnerLink"partnerLinkType="sns:mybiz_flow_servicePartnerLinkType"partnerRole="service"initializePartnerRole="yes" />

</partnerLinks>

<variables><!--List variables used in this BPEL process--><variable name="toyChosen"

messageType="test:mybiz_flowMessage"/><variable name="addToyToCart_data_in"

messageType="sns:mybiz_flow_serviceMessage"/><variable name="addToyToCart_data_out"

messageType="sns:mybiz_flow_serviceMessage"/><variable name="viewCart_data_out"

messageType="sns:mybiz_flow_serviceMessage"/><variable name="shippingEstimator_data_in"

messageType="sns:mybiz_flow_serviceMessage"/><variable name="shippingEstimator_data_out"

messageType="sns:mybiz_flow_serviceMessage"/><variable name="checkout_data_out"

messageType="sns:mybiz_flow_serviceMessage"/><variable name="orderFailed_data_out"

messageType="sns:mybiz_flow_serviceMessage"/><variable name="emailInvoice_data_out"

messageType="sns:mybiz_flow_serviceMessage"/><variable name="shippingQueue_data_out"

messageType="sns:mybiz_flow_serviceMessage"/></variables>

...

Here, you see the two partner links declared. The first is the main partner link thatreceives the initial instantiation call (see the receive element in Listing 10),followed by the partner link that defines a service you'll invoke for each of the tasksin your business process. In the course of invoking business processes, variablesare needed to copy, store, and read data, and so you can see each of the ones youneed to define above enclosed in two variables elements.

You'll see how execution of the business process begins.

Listing 10. Initiating the flow

...</variables><sequence name="sequenceComponent_5">

<receive name="ProcessInstantiation"partnerLink="mybiz_flowPartnerLink"portType="test:mybiz_flowPortType"operation="execute"variable="toyChosen"createInstance="yes" />

<assign name="copyToy"><copy>

<from variable="toyChosen" part="Message" /><to variable="addToyToCart_data_in" part="Message"/>

</copy></assign>

<sequence name="sequenceComponent_0"><invoke name="addToyToCart"

partnerLink="mybiz_flow_servicePartnerLink"portType="sns:mybiz_flow_servicePortType"operation="addToyToCart"inputVariable="addToyToCart_data_in"outputVariable="addToyToCart_data_out" />

ibm.com/developerWorks developerWorks®

Execute business processes with Eclipse© Copyright IBM Corporation 1994, 2007. All rights reserved. Page 29 of 37

Page 30: Execute business processes with Eclipse

<invoke name="viewCart"partnerLink="mybiz_flow_servicePartnerLink"portType="sns:mybiz_flow_servicePortType"operation="viewCart"inputVariable="addToyToCart_data_out"outputVariable="viewCart_data_out" />

</sequence>...

First, an outside client needs to invoke the execute operation of the mybiz_flowservice you defined in the mybiz_flow.wsdl file, starting the flow of the toypurchasing business process. This happens in the receive element shown inListing 10 with the payload stored in the toyChosen variable. Next, you copy theMessage part of the toyChosen variable to the Message part of theaddToyToCart_data_in variable (since the two don't share the same type, thiscopy statement is a required addition), which is the input to the invoking of theaddToyToCart operation. The output of the addToyToCart operation is then fedin as the input to the viewCart operation. Note the flow of execution is exactly thesame as the toy purchasing business process you've modeled previously (seeFigure 1).

Continue filling in your BPEL, as shown below.

Listing 11. The while loop

...outputVariable="viewCart_data_out" />

</sequence><assign name="preShipping"><copy>

<from variable="viewCart_data_out" part="Message" /><to variable="shippingEstimator_data_in" part="Message"/>

</copy></assign>

<while><condition>

getVariableProperty(shippingEstimator_data_in,Message)="true"</condition>

<invoke name="shippingEstimator"partnerLink="mybiz_flow_servicePartnerLink"portType="sns:mybiz_flow_servicePortType"operation="shippingEstimator"inputVariable="shippingEstimator_data_in"outputVariable="shippingEstimator_data_out" />

<assign name="postShipping"><copy><from variable="shippingEstimator_data_out" part="Message" /><to variable="shippingEstimator_data_in" part="Message"/>

</copy></assign>

</while>...

Upon executing the viewCart operation, the output is copied into theshippingEstimator_data_in variable, used in computing the while condition.If the Message part of the shippingEstimator_data_in variable equals "true,"the while loop is executed, executing the shippingEstimator task. Upon calling

developerWorks® ibm.com/developerWorks

Execute business processes with EclipsePage 30 of 37 © Copyright IBM Corporation 1994, 2007. All rights reserved.

Page 31: Execute business processes with Eclipse

the shippingEstimator operation, the output is copied back to theshippingEstimator_data_in variable, so the while condition can bere-examined. If the output of the shippingEstimator operation is anything otherthan "true," the execution proceeds with the checkout task.

Listing 12. Verifying an order for checkout

...</while><sequence name="sequenceComponent_3">

<invoke name="checkout"partnerLink="mybiz_flow_servicePartnerLink"portType="sns:mybiz_flow_servicePortType"operation="checkout"inputVariable="shippingEstimator_data_in"outputVariable="checkout_data_out" />

<if><condition>getVariableProperty(checkout_data_out,Message)="failed"

</condition><invoke name="orderFailed"

partnerLink="mybiz_flow_servicePartnerLink"portType="sns:mybiz_flow_servicePortType"operation="orderFailed"inputVariable="checkout_data_out"outputVariable="orderFailed_data_out" />

<else><flow name="flowComponent_1">

<invoke name="emailInvoice"partnerLink="mybiz_flow_servicePartnerLink"portType="sns:mybiz_flow_servicePortType"operation="emailInvoice"inputVariable="checkout_data_out"outputVariable="emailInvoice_data_out" />

<invoke name="shippingQueue"partnerLink="mybiz_flow_servicePartnerLink"portType="sns:mybiz_flow_servicePortType"operation="shippingQueue"inputVariable="emailInvoice_data_out"outputVariable="shippingQueue_data_out" />

</flow></else>

</if></sequence>

</sequence></process>

If the output of the call to the checkout operation indicates that the order failed (theMessage part of the checkout_data_out variable="failed"), theorderFailed task executes, terminating the business process. If the order wassuccessful (the Message part of the checkout_data_out variable was anythingother than "failed"), the emailInvoice and shippingQueue operations areexecuted in parallel (indicated by the flow element they are enclosed in), terminatingthe business process.

Your project is ready for deployment to Apache ODE, which is your next task.

Deploying to Apache ODE

ibm.com/developerWorks developerWorks®

Execute business processes with Eclipse© Copyright IBM Corporation 1994, 2007. All rights reserved. Page 31 of 37

Page 32: Execute business processes with Eclipse

You're into the final step where you'll take the two services you defined via WSDL,the executable (BPEL) toy purchasing business process, and deployment descriptortogether in a single directory and deploy to Apache ODE. To deploy the businessprocess, start up Apache Tomcat, which automatically activates Apache ODE. Next,copy the directory containing your deployment descriptor, two WSDL files and BPEL(the apacheODE_process\mybiz_flow directory in the tutorial download) to ApacheODE's processes directory: tomcat-5.5.25/webapps/ode/WEB-INF/processes.

You should see the following output in the Tomcat output console, indicating asuccessful deployment:

INFO - GeronimoLog.info(79) | Deployment of artifact mybiz_flow successful: \type="inline">[{http://ibm/dw/ode/bpel/executor}mybiz_flow-40]

You can also see the deployed services running on the server by visitinghttp://localhost:8080/ode/services/listServices (see Figure 26).

Figure 26. Services deployed successfully

developerWorks® ibm.com/developerWorks

Execute business processes with EclipsePage 32 of 37 © Copyright IBM Corporation 1994, 2007. All rights reserved.

Page 33: Execute business processes with Eclipse

You can see the two Web services you exposed via WSDL with all operations foundsuccessfully.

You've effectively gone from business process idea to implementation of that idea ina business process deployed on Apache ODE, now an integral part of your overallSOA.

ibm.com/developerWorks developerWorks®

Execute business processes with Eclipse© Copyright IBM Corporation 1994, 2007. All rights reserved. Page 33 of 37

Page 34: Execute business processes with Eclipse

Section 6. Summary

You've completed the tutorial, with the knowledge to model business processes likethe pros. You were also successful at converting the BPMN outputted from theEclipse STP BPMN Modeler, to BPEL that you were able to prepare and deploy onApache ODE.

For further extensions of the work initiated here, there is one last hurdle for you tojump: To implement the mybiz_flow_service defined in the WSDL in Listing 7,and there are two ways to do it. First, you can use Axis2 to compile the WSDL into aJava Web services representation (see Resources), or you can manually writeanother business process to handle each of the invoke elements in your BPEL insuccession (see Resources, and the DynPartner example in the Apache ODEdownload).

Also, be sure to see the Resources for more information on the concepts andtechnologies introduced in this tutorial.

developerWorks® ibm.com/developerWorks

Execute business processes with EclipsePage 34 of 37 © Copyright IBM Corporation 1994, 2007. All rights reserved.

Page 35: Execute business processes with Eclipse

Downloads

Description Name Size Download method

Source code os-eclipse.stpatlode.bpnmtut.source.zip24KB HTTP

Information about download methods

ibm.com/developerWorks developerWorks®

Execute business processes with Eclipse© Copyright IBM Corporation 1994, 2007. All rights reserved. Page 35 of 37

Page 36: Execute business processes with Eclipse

Resources

Learn

• Learn more about what you can do with the Eclipse SOA Tools Platform (STP)Business Process Modeling Notation (BPMN) Modeler.

• To learn more about Apache Orchestration Director Engine (ODE), itsaccompanying examples (you might want to take a look at the DynPartnerexample in apache-ode-war-1.1\examples\DynPartner), along with itsdeployment options, visit the Apache ODE.

• To learn more about what you can do using the Eclipse ATLAS TransformationLanguage (ATL), visit the Eclipse ATL.

• Visit BABEL to learn more.

• If you are new to Business Process Execution Language (BPEL), seeWikipedia's Business Process Execution Language (BPEL) for an introduction.

• To learn more about Business Process Execution Language (BPEL) syntax,see the Web Services Business Process Execution Language Version 2.0primer.

• To learn advanced Business Process Execution Language (BPEL) concepts,check out this list of BPEL movies and articles.

• Read "Use the Eclipse SOA Tools Platform plug-in to build and deploy a Webservice" to learn how to use Eclipse STP to build Web services.

• To see STP and Apache Tuscany in action in developing Web services, read"Using the Eclipse SOA Tools Platform plug-in and Apache Tuscany."

• Here's a recent article on how to "Develop asynchronous Web services withAxis2."

• Learn more about how you can use Axis2 to create and compile a Javaimplementation of a Web service defined by Web Service Definition Language(WSDL) in the Axis2 user manual.

• Answers to your Eclipse questions are available in "What is Eclipse, and how doI use it?"

• Documentation, articles, and downloads of Eclipse are available from theEclipse Foundation.

• Check out the extensive documentation, tutorials, presentations, andscreencasts that illuminate the Eclipse Test & Performance Tools Platform(TPTP).

• Check out the "Recommended Eclipse reading list."

• Browse all the Eclipse content on developerWorks.

• New to Eclipse? Read the developerWorks article "Get started with EclipsePlatform" to learn its origin and architecture, and how to extend Eclipse with

developerWorks® ibm.com/developerWorks

Execute business processes with EclipsePage 36 of 37 © Copyright IBM Corporation 1994, 2007. All rights reserved.

Page 37: Execute business processes with Eclipse

plug-ins.

• Expand your Eclipse skills by checking out IBM developerWorks' Eclipse projectresources.

• To listen to interesting interviews and discussions for software developers,check out check out developerWorks podcasts.

• Stay current with developerWorks' Technical events and webcasts.

• Watch and learn about IBM and open source technologies and productfunctions with the no-cost developerWorks On demand demos.

• Check out upcoming conferences, trade shows, webcasts, and other Eventsaround the world that are of interest to IBM open source developers.

• Visit the developerWorks Open source zone for extensive how-to information,tools, and project updates to help you develop with open source technologiesand use them with IBM's products.

Get products and technologies

• Check out the latest Eclipse technology downloads at IBM alphaWorks.

• Download Eclipse Platform and other projects from the Eclipse Foundation.

• Download IBM product evaluation versions, and get your hands on applicationdevelopment tools and middleware products from DB2®, Lotus®, Rational®,Tivoli®, and WebSphere®.

• Innovate your next open source development project with IBM trial software,available for download or on DVD.

Discuss

• The Eclipse Platform newsgroups should be your first stop to discuss questionsregarding Eclipse. (Selecting this will launch your default Usenet news readerapplication and open eclipse.platform.)

• The Eclipse newsgroups has many resources for people interested in using andextending Eclipse.

• Participate in developerWorks blogs and get involved in the developerWorkscommunity.

About the author

Tyler AndersonTyler Anderson received his bachelor's degree in computer science in 2004 and hismaster's degree in electrical and computer engineering in 2005 from Brigham YoungUniversity. He worked with Stexar Corp. as a design engineer from May 2005 toAugust 2006. He was discovered by Backstop Media LLC in early 2005, and haswritten and coded numerous articles and tutorials for IBM developerWorks.

ibm.com/developerWorks developerWorks®

Execute business processes with Eclipse© Copyright IBM Corporation 1994, 2007. All rights reserved. Page 37 of 37