Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

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. Press OK.
+
  > 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 on '''Details''' tab. You should see empty '''Partner Link''' and '''Operation Fields'''. Expand Partner Link dropdown and choose '''Create Global Partner Link''' item:
+
# 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.  
# Next window Choose Partner Link Type will be empty by default. To see available types we need to import corresponding WSDL files. Click on '''Add WSDL''' button
+
# 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''' activate WSIL radio button and it your Swordfish Registry Up and Running and BPEL WSIL Browse setted up well, you should see Inspection tree including 3 wsdl files. For this step you need to click on 'FlightBooking.wsdl' and precc OK.
+
# 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.  
  
Notice:
+
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 setted as 'OutBound'
+
* The Partner Link Type '''Role Name''' should be set to 'OutBound'
* Operation name for PaymentProcessing partner link is paymentProcessing
+
* 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.  
  
NOTICE: ater you'll set Operation value, new variable 'FlightBookingResponse' should automatically created.
+
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') ===
The same set of actions as for first assign elements. But with different variables section:
+
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.  
  
Resulting artifacts are:
+
The resulting artifacts are:
 
*FlightBookingProcess.bpel
 
*FlightBookingProcess.bpel
 
*FlightBookingProcess.bpelex
 
*FlightBookingProcess.bpelex

Revision as of 08:59, 17 August 2009

Creating BPEL Process Skeleton

  1. Select File > New Wizard > BPEL 2.0 > BPEL project to create a new BPEL project and name it, FlightBooking.
  2. Next, create a BPEL file by selecting New Wizard >BPEL 2.0 >New BPEL Process File. In the BPEL file wizard window enter:
  3. 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.
    Empty-bpel.png
  4. Expand the BPEL elements palette by clicking the arrow icon highlighted in this figure:
    Bpel-element-palette.png
  5. Using the Element Palette, create an initial BPEL Process Skeleton as displayed in this image:
    Bpel-process-skeleton.png

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.

  1. 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.
    Wsil.png
  2. 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.
  1. Init-wsil-browser.png
  2. 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

  1. 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:
    Parnter-link-field.png
  2. In the New Parner Link window, type FlightBooking name.
  3. 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.
    Empty-choose-partner-link-window.png
  4. 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.
    Choose-flight-booking-wsdl.png
  5. repeat previous step form 'FlightReservation.wsdl' and 'PaymentProcessing.wsdl' files.
  6. now your New Parner Link windows should looks like on image below, click on 'FlightBooking' item from Matches area and click OK.
    Choose-partner-link-fool.png
  7. 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
  8. in the next window enter 'InBound' for Role Name field and select FlightBooking port type from list below(see image). Press Finish.
    Create-parther-link-type.png
  9. leave Set Namespace Prefix window fields as it is.
  10. After partner link creating finished get back to BPEL diagram and check changes:
    1. new Partner Link 'FlightBooking' now visible on BPEL process sidebar
    2. in properties pane for 'Receive' element Partner Link should become initialized with just created partner link name.
    3. in properties pane for 'Receive' element Operation link still empty.
    Properties-and-new-partner-link.png
  11. 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:
    Set-operation-and-new-variable.png

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.

Reply-partner-link.png

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')

  1. click on Assign element on the top of BPEL diagram and open Properties->Details tab. It will be empty by default.
    Assign-properties-empty.png
  2. click on New button to create new assign statement, this will populate From and To variables trees.
    1. expand 'FlightBookingRequest' item from From list (left side) and select parameters: bookFlight->flightData: FlightData item
    2. expand 'FlightReservationRequest' item from To list (right side) and select parameters: reserveFlight->flightData: FlightData item
    Assign-variable-to-variable.png
    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.
  3. Click on some empty area on process diagram pane. In reaction You should see this popup in reaction
    Assign-initialization-request.png
  4. Click OK and get back to Assign Properties->Details tab. You should see there new "Fixed Value to Variable" assignment.
    Assign-fixed-value-to-var.png
  5. 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
  1. Assign1.png

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
  1. Assign2.png

NOTE: You can now use this process.

The resulting artifacts are:

  • FlightBookingProcess.bpel
  • FlightBookingProcess.bpelex

Now those files ready for packaging and deployment.

Swordfish Documentation Home
Swordfish Wiki Home

Back to the top