Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "Swordfish Documentation: Designing BPEL Eclipse BPEL Designer"
Line 19: | Line 19: | ||
#:[[Image:Wsil.png]] | #:[[Image:Wsil.png]] | ||
# In order to access and import the above mentioned WSDL files initialize BPEL WSIL Browser. To do this select '''Preference- | # In order to access and import the above mentioned WSDL files initialize BPEL WSIL Browser. To do this select '''Preference- | ||
− | > BPEL >WSIL Brower''' and set "Document URL" field as http://localhost:9001/registry/wsil. | + | > BPEL >WSIL Brower''' and set "Document URL" field as http://localhost:9001/registry/wsil. Click <b>OK</b>. |
#:[[Image:Init-wsil-browser.png]] | #:[[Image:Init-wsil-browser.png]] | ||
# IMPORTANT: Service Registry should be up and running in the next phase, that is, the design and process execution phase. | # IMPORTANT: Service Registry should be up and running in the next phase, that is, the design and process execution phase. | ||
Line 29: | Line 29: | ||
=== Creating Receive-InBound Partner Link === | === Creating Receive-InBound Partner Link === | ||
− | # click on "Receive" element on BPEL diagram. Open '''Properties''' view and click | + | # click on the "Receive" element on the BPEL diagram. Open the'''Properties''' view and click the '''Details''' tab. You should see an empty '''Partner Link''' and '''Operation Fields'''. Expand the Partner Link drop down list and choose the'''Create Global Partner Link''' item: |
#:[[Image:Parnter-link-field.png]] | #:[[Image:Parnter-link-field.png]] | ||
− | # In '''New Parner Link''' window type ''FlightBooking'' name. | + | # In the '''New Parner Link''' window, type ''FlightBooking'' name. |
− | # | + | # In the next window, the option <b>Choose Partner Link Type</b> will be empty by default. To see the available types we need to import the corresponding WSDL files. Click on '''Add WSDL'''. |
#: [[Image:Empty-choose-partner-link-window.png]] | #: [[Image:Empty-choose-partner-link-window.png]] | ||
− | # In the '''Browse for a WSDL to Import''' | + | # In the '''Browse for a WSDL to Import''' check the WSIL button and if your Swordfish Registry is up and running, and the BPEL WSIL Browser is set up correctly, you should see the Inspection tree including 3 WSDL files. For this step you need to click on 'FlightBooking.wsdl' and click <b>OK</b>. |
#:[[Image:Choose-flight-booking-wsdl.png]] | #:[[Image:Choose-flight-booking-wsdl.png]] | ||
# repeat previous step form 'FlightReservation.wsdl' and 'PaymentProcessing.wsdl' files. | # repeat previous step form 'FlightReservation.wsdl' and 'PaymentProcessing.wsdl' files. | ||
Line 62: | Line 62: | ||
Select paymentProcessing element in BPEL designer to edit its' properties and make same set of action as above. | Select paymentProcessing element in BPEL designer to edit its' properties and make same set of action as above. | ||
− | + | Note: | |
* '''Partner Link Name''' and '''Partner Link Type Name''' should be 'PaymentProcessing' | * '''Partner Link Name''' and '''Partner Link Type Name''' should be 'PaymentProcessing' | ||
− | * Partner Link Type '''Role Name''' should be | + | * The Partner Link Type '''Role Name''' should be set to 'OutBound' |
− | * | + | * The operation name for PaymentProcessing partner link is paymentProcessing |
== Creating Reply Partner Link == | == Creating Reply Partner Link == | ||
Line 71: | Line 71: | ||
Set '''Properties''' pane values as on image below. | Set '''Properties''' pane values as on image below. | ||
− | + | NOTE: After you set the operation value, a new variable 'FlightBookingResponse' should be automatically created. | |
:[[Image:Reply-partner-link.png]] | :[[Image:Reply-partner-link.png]] | ||
Line 104: | Line 104: | ||
=== Initialization of the third Assign Element(element name: 'Assign2') === | === Initialization of the third Assign Element(element name: 'Assign2') === | ||
− | + | Now you need to do the same set of actions as for first assign elements. However, there are different variables to be used in this section: | |
* '''From''' PaymentProcessing->response | * '''From''' PaymentProcessing->response | ||
* ''' To''' FlightBookingResponse->response | * ''' To''' FlightBookingResponse->response | ||
− | *IMPORTANT: don't forget about additional initialization using 'Fixed Value to Variable' statement auto generation | + | *IMPORTANT: don't forget about the additional initialization using 'Fixed Value to Variable' statement auto generation |
#:[[Image:Assign2.png]] | #:[[Image:Assign2.png]] | ||
NOTE: You can now use this process. | NOTE: You can now use this process. | ||
− | + | The resulting artifacts are: | |
*FlightBookingProcess.bpel | *FlightBookingProcess.bpel | ||
*FlightBookingProcess.bpelex | *FlightBookingProcess.bpelex |
Revision as of 08:59, 17 August 2009
Contents
Creating BPEL Process Skeleton
- Select File > New Wizard > BPEL 2.0 > BPEL project to create a new BPEL project and name it, FlightBooking.
- Next, create a BPEL file by selecting New Wizard >BPEL 2.0 >New BPEL Process File. In the BPEL file wizard window enter:
- BPEL Process Name: FlightBookingProcess
- Namespace: http://www.eclipse.org/swordfish/samples/FlightBooking
- Template: Empty BPEL process
- In the next wizard window set the option to choose BPEL project I've created before.
- Open the newly created FlightBookingProcess.bpel with BPEL Designer by double clicking it. You can now see a visual representation of an empty BPEL process as shown in this figure.
- Expand the BPEL elements palette by clicking the arrow icon highlighted in this figure:
- Using the Element Palette, create an initial BPEL Process Skeleton as displayed in this image:
Setting Up BPEL WSIL Browser
To create a Partner Link to an external Web service and expose the BPEL process as a Web service we need a set of corresponding WSDL files. In the current tutorial, those files can be accessed from the Swordfish Registry.
- Start Swordfish Service Registry, [download]) and install the 3 wsdl files (FlightBooking.wsdl, FlightReservation.wsdl and PaymentProcessing.wsdl). Service Registry automatically provides a WSIL file for the installed WSDLs. The default URL is http://localhost:9001/registry/wsil, as shown in this figure.
- In order to access and import the above mentioned WSDL files initialize BPEL WSIL Browser. To do this select Preference-
> BPEL >WSIL Brower and set "Document URL" field as http://localhost:9001/registry/wsil. Click OK.
- IMPORTANT: Service Registry should be up and running in the next phase, that is, the design and process execution phase.
Creating Partner Links
In the newly created process diagram we have one receive-type element (with same name "Receive") and two invoke-type elements ("processReservation" and "paimentProcessing"). For the Receive-type element we need InBound endpoints and for the invoke-type we need to create OutBound endpoints. To create Partner Links we need to import the corresponding WSDL file to the BPEL process.
Creating Receive-InBound Partner Link
- click on the "Receive" element on the BPEL diagram. Open theProperties view and click the Details tab. You should see an empty Partner Link and Operation Fields. Expand the Partner Link drop down list and choose theCreate Global Partner Link item:
- In the New Parner Link window, type FlightBooking name.
- In the next window, the option Choose Partner Link Type will be empty by default. To see the available types we need to import the corresponding WSDL files. Click on Add WSDL.
- In the Browse for a WSDL to Import check the WSIL button and if your Swordfish Registry is up and running, and the BPEL WSIL Browser is set up correctly, you should see the Inspection tree including 3 WSDL files. For this step you need to click on 'FlightBooking.wsdl' and click OK.
- repeat previous step form 'FlightReservation.wsdl' and 'PaymentProcessing.wsdl' files.
- now your New Parner Link windows should looks like on image below, click on 'FlightBooking' item from Matches area and click OK.
- for the next window set Partner Link Type Name with the same value as Partner Link Name: 'FlightBooking'. Click on to go to next step of partner link type creation
- in the next window enter 'InBound' for Role Name field and select FlightBooking port type from list below(see image). Press Finish.
- leave Set Namespace Prefix window fields as it is.
- After partner link creating finished get back to BPEL diagram and check changes:
- new Partner Link 'FlightBooking' now visible on BPEL process sidebar
- in properties pane for 'Receive' element Partner Link should become initialized with just created partner link name.
- in properties pane for 'Receive' element Operation link still empty.
- We still need to set Operation field for 'Receive' element, easiest way do to this is to click on 'fligthBooking' operation icon from Qick Pick element tree. Additionally you could notice that new process variable 'FlightBookingRequest' has been automatically created and assigned to current partner link:
Creating flightRecervation OutBound Partner Link
Select flightRecervation element in BPEL designer to edit its' properties and make same set of action as above.
Notice:
- Partner Link Name and Partner Link Type Name should be 'FlightRecervation'
- Partner Link Role Name should be setted as 'OutBound'
- Operation name for FlightRecervation partner link is reserveFlight
Creating paymentProcessing OutBoing Partner Link
Select paymentProcessing element in BPEL designer to edit its' properties and make same set of action as above.
Note:
- Partner Link Name and Partner Link Type Name should be 'PaymentProcessing'
- The Partner Link Type Role Name should be set to 'OutBound'
- The operation name for PaymentProcessing partner link is paymentProcessing
Creating Reply Partner Link
Select paymentProcessing element in BPEL designer to edit its' properties. No Partner Link creating needed this time, we will use existing FlightBooking partner link. Set Properties pane values as on image below.
NOTE: After you set the operation value, a new variable 'FlightBookingResponse' should be automatically created.
Assign-type elements initialization
Assign elements using to transit data from one BPEL logic elements to another.
In our case we need:
- pass initial request data from Receive element to flightRecervation element (Assign)
- pass flightReceration element's response to paymentProcessing element (Assign1)
- pass paymentData element's response to Rely element (Assign2)
Initialization of the first Assign Element(element name: 'Assign')
- click on Assign element on the top of BPEL diagram and open Properties->Details tab. It will be empty by default.
- click on New button to create new assign statement, this will populate From and To variables trees.
- expand 'FlightBookingRequest' item from From list (left side) and select parameters: bookFlight->flightData: FlightData item
- expand 'FlightReservationRequest' item from To list (right side) and select parameters: reserveFlight->flightData: FlightData item
- We just created Variable to Variable assignment. It pass initial request to FlightReservation service. But FlightReservationRequest variable need additional initialization before assignment execution. BPEL Designer takes responsibilities to generate this initialization part automatically, but we need to help him to do this.
- Click on some empty area on process diagram pane. In reaction You should see this popup in reaction
- Click OK and get back to Assign Properties->Details tab. You should see there new "Fixed Value to Variable" assignment.
- as you might guess this statement assigns xml-string to FlightReservationRequest before "Variable to Variable" assign statement execution. Wee need this to create well formed request to Flight Reservation service. First Assign element initialization DONE!
Initialization of the second Assign Element(element name: 'Assign1')
The same set of actions as for first assign elements. But with different variables section:
- From FlightBookingRequest->paymentData
- To PaymentProcessingRequest->paymentData
- IMPORTANT: don't forget about additional initialization using 'Fixed Value to Variable' statement auto generation
Initialization of the third Assign Element(element name: 'Assign2')
Now you need to do the same set of actions as for first assign elements. However, there are different variables to be used in this section:
- From PaymentProcessing->response
- To FlightBookingResponse->response
- IMPORTANT: don't forget about the additional initialization using 'Fixed Value to Variable' statement auto generation
NOTE: You can now use this process.
The resulting artifacts are:
- FlightBookingProcess.bpel
- FlightBookingProcess.bpelex
Now those files ready for packaging and deployment.