Skip to main content

Web services programming tips and tricks: Reference guide for creating BPEL4WS documents

Quick reference for the BPWS4J editor

Nirmal Mukhi (nmukhi@us.ibm.com), Software Engineer, IBM, Software Group
Nirmal K. Mukhi is a Software Engineer with the Component Systems Group at the IBM T J Watson Research Laboratory, where he has been working on Web services research since November 2000. Prior to that, Nirmal was a researcher and student at Indiana University, where he received his Master's degree in May 1999. Amongst other things, Nirmal has worked on the following Web services software projects: WSDL4J, the Web Services Invocation Framework (WSIF), the Web Services Gateway (WSGW) and BPWS4J. You can contact him at nmukhi@us.ibm.com

Summary:  This is quick reference guide for creating BPEL4WS documents, providing a short description for each kind of BPEL4WS element -- the associated properties, related elements, etc. It has been designed for users of the BPWS4J editor, but is useful for anybody who is trying to create BPEL4WS documents and isn't completely familiar with the language.

Date:  22 Nov 2002
Level:  Introductory
Activity:  1605 views

Structured activities

Flow iconFlow
Structured activity that provides concurrency and synchronization. More information

Table 1. Flow properties <table width="70%" cellspacing="0" cellpadding="3" border="1"> <tr> <td>Name</td> <td>The name of the activity</td> </tr> <td>Join condition</td> <td>A boolean expression specifying requirements for parallel paths arriving at the activity</td> </tr> <tr> <td>Suppress join condition</td> <td>If "yes", this has the effect of suppressing join failures in this activity and nested activities (unless overridden by nested activities)</td> </tr> </table>

Scope iconScope
Execution context for an activity. More information

Table 2. Scope properties <table width="100%" cellspacing="0" cellpadding="3" border="1"> <tr> <td>Name</td> <td>The name of the activity</td> </tr> <tr> <td>Join condition</td> <td>A boolean expression specifying requirements for parallel paths arriving at the activity</td> </tr> <tr> <td>Suppress join condition</td> <td>If "yes", this has the effect of suppressing join failures in this activity and nested activities (unless overridden by nested activities)</td> </tr> <tr> <td>Container access serializable</td> <td>If "yes", the scope is serializable and provides concurrency in governing access to shared containers. Such a scope may not be nested, it must be a leaf scope.</td> </tr> </table>

While iconWhile
Supports repeated execution of a specified iterative activity; execution continues until the specified boolean condition no longer holds true. More information

Table 3. While properties <table width="100%" cellspacing="0" cellpadding="3" border="1"> <tr> <td>Name</td> <td>The name of the activity</td> </tr> <tr> <td>Join condition</td> <td>A boolean expression specifying requirements for parallel paths arriving at the activity</td> </tr> <tr> <td>Suppress join condition</td> <td>If "yes", this has the effect of suppressing join failures in this activity and nested activities (unless overridden by nested activities)</td> </tr> <tr> <td>Condition</td> <td>boolean expression evaluated at the beginning of each iteration to check if execution of <code type="inline" width="">while</code> should continue or not</td> </tr> </table>

Sequence iconSequence
Structured activity that contains one or more activities to be executed sequentially, in the order in which they appear under this activity. More information

Table 4. Sequence properties <table width="100%" cellspacing="0" cellpadding="3" border="1"> <tr> <td>Name</td> <td>The name of the activity</td> </tr> <tr> <td>Join condition</td> <td>A boolean expression specifying requirements for parallel paths arriving at the activity</td> </tr> <tr> <td>Suppress join condition</td> <td>If "yes", this has the effect of suppressing join failures in this activity and nested activities (unless overridden by nested activities)</td> </tr> </table>

Pick iconPick
Awaits the occurrence of one or more events and executes the activity associated with the event that occurred. Message arrival or timer elapse constitute the possible events. More information

Table 5. Pick properties <table width="100%" cellspacing="0" cellpadding="3" border="1"> <tr> <td>Name</td> <td>The name of the activity</td> </tr> <tr> <td>Join condition</td><td>A boolean expression specifying requirements for parallel paths arriving at the activity</td> </tr> <tr> <td>Suppress join condition</td><td>If "yes", this has the effect of suppressing join failures in this activity and nested activities (unless overridden by nested activities)</td> </tr> <tr> <td>Create instance</td> <td>If "yes", this will create an instance of the business process when the message arrives.</td> </tr> </table>

Switch iconSwitch
Supports conditional behavior by allowing specification of one or more case branches whose execution depends on a specified condition, and an optional otherwise branch which gets executed if all cases fail their tests. More information

Table 6. Switch properties <table width="100%" cellspacing="0" cellpadding="3" border="1"> <tr> <td>Name</td> <td>The name of the activity</td> </tr> <tr> <td>Join condition</td> <td>A boolean expression specifying requirements for parallel paths arriving at the activity</td> </tr> <tr> <td>Suppress join condition</td> <td>If "yes", this has the effect of suppressing join failures in this activity and nested activities (unless overridden by nested activities)</td> </tr> </table>


Primitive activities

Terminate iconTerminate
Execution of this activity forces the business process instance to abandon execution. More information

Table 7. Terminate properties <table width="100%" cellspacing="0" cellpadding="3" border="1"> <tr> <td>Name</td> <td>The name of the activity</td> </tr> <tr> <td>Join condition</td><td>A boolean expression specifying requirements for parallel paths arriving at the activity</td> </tr> <tr> <td>Suppress join condition</td><td>If "yes", this has the effect of suppressing join failures in this activity and nested activities (unless overridden by nested activities)</td> </tr> </table>

Receive iconReceive
Accepts a message through the invocation of a specified operation by a partner. More information

Table 8. Receive properties <table width="100%" cellspacing="0" cellpadding="3" border="1"> <tr> <td>Name</td> <td>The name of the activity</td> </tr> <tr> <td>Join condition</td> <td>A boolean expression specifying requirements for parallel paths arriving at the activity</td> </tr> <tr> <td>Suppress join condition</td> <td>If "yes", this has the effect of suppressing join failures in this activity and nested activities (unless overridden by nested activities)</td> </tr> <tr> <td>Container</td> <td>The name of the container that will store the message on its arrival</td> </tr> <tr> <td>Operation</td> <td>The name of the operation to be invoked by the partner</td> </tr> <tr> <td>Port type</td> <td>The qualified name of the port type associated with the operation</td> </tr> <tr> <td>Partner</td> <td>The name of the partner from whom the message will be received</td> </tr> <tr> <td>Create instance</td> <td>If "yes", this indicates that when the message arrives it will result in creation of a new business process instance</td> </tr> </table>

Reply iconReply
Used to send a message as a response to a request previously accepted through a receive activity. More information

Table 9. Reply properties <table width="100%" cellspacing="0" cellpadding="3" border="1"> <tr> <td>Name</td> <td>The name of the activity</td> </tr> <tr> <td>Join condition</td> <td>A boolean expression specifying requirements for parallel paths arriving at the activity</td> </tr> <tr> <td>Suppress join condition</td> <td>If "yes", this has the effect of suppressing join failures in this activity and nested activities (unless overridden by nested activities)</td> </tr> <tr> <td>Container</td> <td>The name of the container that stores the reply message</td> </tr> <tr> <td>Fault name</td> <td>The name of the fault associated with this activity</td> </tr> <tr> <td>Operation</td> <td>The name of the operation corresponding to this reply message</td> </tr> <tr> <td>Port type</td> <td>The qualified name of the port type associated with the operation</td> </tr> <tr> <td>Partner</td> <td>The name of the partner to whom the message will be sent</td> </tr> </table>

Throw iconThrow
Used when the process needs to signal a fault explicitly. More information

Table 10. Throw properties <table width="100%" cellspacing="0" cellpadding="3" border="1"> <tr> <td>Name</td> <td>The name of the activity</td> </tr> <tr> <td>Join condition</td> <td>A boolean expression specifying requirements for parallel paths arriving at the activity</td> </tr> <tr> <td>Suppress join condition</td> <td>If "yes", this has the effect of suppressing join failures in this activity and nested activities (unless overridden by nested activities)</td> </tr> <tr> <td>Fault name</td> <td>The name of the fault to be signaled</td> </tr> <tr> <td>Fault container</td> <td>The name of the container which stores the fault message</td> </tr> </table>

Invoke iconInvoke
Used for invocation of a web service operation offered by a partner. More information

Table 11. Invoke properties <table width="100%" cellspacing="0" cellpadding="3" border="1"> <tr> <td>Name</td> <td>The name of the activity</td></tr> <tr> <td>Join condition</td> <td>A boolean expression specifying requirements for parallel paths arriving at the activity</td> </tr> <tr> <td>Suppress join condition</td> <td>If "yes", this has the effect of suppressing join failures in this activity and nested activities (unless overridden by nested activities)</td> </tr> <tr> <td>Input container</td> <td>The name of the container that stores the input message of the operation being invoked</td> </tr> <tr> <td>Output container</td> <td>The name of the container that stores the output message associated with the invocation</td> </tr> <tr> <td>Operation</td> <td>The name of the operation to be invoked</td> </tr> <tr> <td>Port type</td> <td>The qualified name of the port type associated with the operation</td> </tr> <tr> <td>Partner</td> <td>The name of the partner being invoked</td> </tr> </table>

Empty iconEmpty
Execution of this activity has no effect. More information

Table 12. Empty properties <table width="100%" cellspacing="0" cellpadding="3" border="1"> <tr> <td>Name</td> <td>The name of the activity</td> </tr> <tr> <td>Join condition</td> <td>A boolean expression specifying requirements for parallel paths arriving at the activity</td> </tr> <tr> <td>Suppress join condition</td> <td>If "yes", this has the effect of suppressing join failures in this activity and nested activities (unless overridden by nested activities)</td> </tr> </table>

Assign iconAssign
Used to create or modify data in containers. More information

Table 13. Assign properties <table width="100%" cellspacing="0" cellpadding="3" border="1"> <tr> <td>Name</td> <td>The name of the activity</td> </tr> <tr> <td>Join condition</td> <td>A boolean expression specifying requirements for parallel paths arriving at the activity</td> </tr> <tr> <td>Suppress join condition</td> <td>If "yes", this has the effect of suppressing join failures in this activity and nested activities (unless overridden by nested activities)</td> </tr> </table>

Wait iconWait
Introduces a delay in processing, either for a fixed time period or until some deadline is reached. More information

Table 14. Wait properties <table width="100%" cellspacing="0" cellpadding="3" border="1"> <tr> <td>Name</td> <td>The name of the activity</td> </tr> <tr> <td>Join condition</td> <td>A boolean expression specifying requirements for parallel paths arriving at the activity</td> </tr> <tr> <td>Suppress join condition</td> <td>If "yes", this has the effect of suppressing join failures in this activity and nested activities (unless overridden by nested activities)</td> </tr> <tr> <td>For expression</td> <td>A duration expression specifying how long to wait for</td> </tr> <tr> <td>Until expression</td> <td>The deadline expression specifying how long to wait for</td> </tr> </table>

Compensate iconCompensate
Execution of this activity results in invocation of a compensation handler for the specified scope. More information

Table 15. Compensate properties <table width="100%" cellspacing="0" cellpadding="3" border="1"> <tr> <td>Name</td> <td>The name of the activity</td> </tr> <tr> <td>Join condition</td> <td>A boolean expression specifying requirements for parallel paths arriving at the activity</td> </tr> <tr> <td>Suppress join condition</td> <td>If "yes", this has the effect of suppressing join failures in this activity and nested activities (unless overridden by nested activities)</td> </tr> <tr> <td>Scope</td> <td>The name of the scope to be compensated</td> </tr> </table>


Other elements

Process iconProcess
Used to define the process, a top-level BPEL4WS element that contains the business process definition. More information

Table 16. Process properties <table width="100%" cellspacing="0" cellpadding="3" border="1"> <tr> <td>Name</td> <td>The name of the process</td> </tr> <tr> <td>Enable instance compensation</td> <td>If "yes", this means that the process as a whole can be compensated by platform-specific means</td> </tr> <tr> <td>Suppress join faults</td> <td>If "yes", this has the effect of suppressing join failures in the process (unless overridden by nested activities)</td> </tr> <tr> <td>Container access serializable</td> <td>If "yes", the process is serializable and provides concurrency in governing access to shared containers</td> </tr> <tr> <td>Abstract process</td> <td>If "yes", this means that the process defined is abstract rather than executable</td> </tr> </table>

Delete iconDelete
Allows deletion of the selected activity or element. Note that deletion of an activity will also result in deletion of its children recursively.

Link iconLink
Defines a link of a flow; an activity within the flow can act as the source of a link or the target of a link. More information

Source iconSource
Tags an activity as being the source of a link.

Target iconTarget
Tags an activity as being the target of a link.

Fault handlersFault handlers
Used to handle errors that occur within a scope. More information

  • Menu actions: add catch fault, add catch all, delete

Compensation handler iconCompensation handler
Used to specify an activity that reverses the execution of a scope in an application-defined way, to act as a undo or recovery mechanism. More information

onMessage icononMessage
This is one of the events associated with the pick activity. The arrival of a specified message is used to trigger execution of the associated activity. More information

Table 17. onMessage properties <table width="100%" cellspacing="0" cellpadding="3" border="1"> <tr> <td>Container</td> <td>The name of the container where the message is expected to arrive</td> </tr> <tr> <td>Operation</td> <td>The name of the operation the partner will invoke</td> </tr> <tr> <td>Port type</td> <td>The port type through which the operation is exposed to the partner</td> </tr> <tr> <td>Partner</td> <td>The name of the partner</td> </tr> </table>

onAlarm icononAlarm
This is one of the events associated with the pick activity. The lapse of a specified deadline or time duration is used to trigger execution of the associated activity. More information

Table 18. onAlarm properties <table width="100%" cellspacing="0" cellpadding="3" border="1"> <tr> <td>For expression</td> <td>A duration-valued expression specifying a timeout</td> </tr> <tr> <td>Until</td> <td>A deadline-valued expression specifying a deadline condition</td> </tr> </table>

Case iconCase
This is used to specify a conditional branch of a switch. More information

Table 19. Case properties <table width="100%" cellspacing="0" cellpadding="3" border="1"> <tr> <td>Condition</td> <td>A boolean-valued expression specifying a condition to be met for this branch of the switch to be executed</td> </tr> </table>

Otherwise icon Otherwise
This is used to specify a default branch of a switch. More information

Correlation iconCorrelation
Used to indicate which correlation sets occur in messages being sent and received for receive, reply and invoke activities . More information

Table 20. Correlation properties <table width="100%" cellspacing="0" cellpadding="3" border="1"> <tr> <td>Initiation</td> <td>If "yes", the correlation set specified is initialized with the values of the properties occurring in the messages sent or received</td> </tr> <tr> <td>Set</td> <td>The name of the correlation set</td> </tr> <tr> <td>Pattern</td> <td>used in the context of a synchronous request-response operation during an <a href="#invoke">invoke</a>; this is used to specify whether the correlation applies to the outbound message, the inbound message or both</td> </tr> </table>

Correlation Set iconCorrelation Set
Used to define a set of properties which collectively are used to correlate messages exchanged during receive, invoke and reply activities. More information

  • Outline actions: add property, delete

Table 21. Correlation Set properties <table width="100%" cellspacing="0" cellpadding="3" border="1"> <tr> <td>Name</td> <td>The name of the correlation set</td> </tr> </table>

Partner iconPartner
Used to define a partner that models a service which interacts with the business process. More information

Table 22. Partner properties <table width="100%" cellspacing="0" cellpadding="3" border="1"> <tr> <td>Name</td> <td>The name of the partner</td> </tr> <tr> <td>My role</td> <td>The role of the business process in interaction with this partner; the role must be one of the roles defined in the service link type</td> </tr> <tr> <td>Partner role</td> <td>The role of the partner service in interaction with this partner; the role must be one of the roles defined in the service link type</td> </tr> <tr> <td>Service link type</td> <td>this defines relationship between two interacting services, specifying the roles played by each and the port types associated with each role</td> </tr> </table>

Container iconContainer
These provide means to store messages that constitute the state of the business process. More information

Table 23. Container properties <table width="100%" cellspacing="0" cellpadding="3" border="1"> <tr> <td>Name</td> <td>The name of the container</td> </tr> <tr> <td>Message type</td> <td>The type of the message stored in this container</td> </tr> </table>


About the author

Nirmal K. Mukhi is a Software Engineer with the Component Systems Group at the IBM T J Watson Research Laboratory, where he has been working on Web services research since November 2000. Prior to that, Nirmal was a researcher and student at Indiana University, where he received his Master's degree in May 1999. Amongst other things, Nirmal has worked on the following Web services software projects: WSDL4J, the Web Services Invocation Framework (WSIF), the Web Services Gateway (WSGW) and BPWS4J. You can contact him at nmukhi@us.ibm.com

Comments (Undergoing maintenance)



Trademarks  |  My developerWorks terms and conditions

Help: Update or add to My dW interests

What's this?

This little timesaver lets you update your My developerWorks profile with just one click! The general subject of this content (AIX and UNIX, Information Management, Lotus, Rational, Tivoli, WebSphere, Java, Linux, Open source, SOA and Web services, Web development, or XML) will be added to the interests section of your profile, if it's not there already. You only need to be logged in to My developerWorks.

And what's the point of adding your interests to your profile? That's how you find other users with the same interests as yours, and see what they're reading and contributing to the community. Your interests also help us recommend relevant developerWorks content to you.

View your My developerWorks profile

Return from help

Help: Remove from My dW interests

What's this?

Removing this interest does not alter your profile, but rather removes this piece of content from a list of all content for which you've indicated interest. In a future enhancement to My developerWorks, you'll be able to see a record of that content.

View your My developerWorks profile

Return from help

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=SOA and Web services
ArticleID=11733
ArticleTitle=Web services programming tips and tricks: Reference guide for creating BPEL4WS documents
publish-date=11222002
author1-email=nmukhi@us.ibm.com
author1-email-cc=

My developerWorks community

Tags

Help
Use the search field to find all types of content in My developerWorks with that tag.

Use the slider bar to see more or fewer tags.

Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere).

My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Use the search field to find all types of content in My developerWorks with that tag. Popular tags shows the top tags for this particular content zone (for example, Java technology, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere).

Rate a product. Write a review.

Special offers