Flow
Structured activity that provides concurrency and synchronization. More information
- Menu actions: add/wrap while, add/wrap scope, add/wrap sequence, add/wrap flow, add pick, add reply, add receive, add terminate, add throw, add switch, add invoke, add empty, add assignment, add wait, add compensate, delete
- Outline actions: add link, add source, add target, delete
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
Execution context for an activity. More information
- Menu actions: add/wrap while, add/wrap scope, add/wrap sequence, add/wrap flow, add pick, add reply, add receive, add terminate, add throw, add switch, add invoke, add empty, add assignment, add wait, add compensate, add fault handlers, add compensation handler, delete
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
Supports repeated execution of a specified iterative activity; execution continues until the specified boolean condition no longer holds true. More information
- Menu actions: add/wrap while, add/wrap scope, add/wrap sequence, add/wrap flow, add pick, add reply, add receive, add terminate, add throw, add switch, add invoke, add empty, add assignment, add wait, add compensate, delete
- Outline actions: add source, add target, delete
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
Structured activity that contains one or more activities to be executed sequentially, in the order in which they appear under this activity. More information
- Menu actions: add/wrap while, add/wrap scope, add/wrap sequence, add/wrap flow, add pick, add reply, add receive, add terminate, add throw, add switch, add invoke, add empty, add assignment, add wait, add compensate, delete
- Outline actions: add source, add target, delete
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
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
- Menu actions: wrap while, wrap scope, wrap sequence, wrap flow, add onMessage, add onAlarm, delete
- Outline actions: add source, add target, delete
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
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
- Menu actions: wrap while, wrap scope, wrap sequence, wrap flow, add case, add otherwise, delete
- Outline actions: add source, add target, delete
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>
Terminate
Execution of this activity forces the business process instance to abandon execution. More information
- Menu actions: wrap while, wrap scope, wrap sequence, wrap flow, delete
- Outline actions: add source, add target, delete
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
Accepts a message through the invocation of a specified operation by a partner. More information
- Menu actions: wrap while, wrap scope, wrap sequence, wrap flow, delete
- Outline actions: add source, add target, add correlation, delete
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
Used to send a message as a response to a request previously accepted through a receive activity. More information
- Menu actions: wrap while, wrap scope, wrap sequence, wrap flow, delete
- Outline actions: add source, add target, add correlation, delete
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
Used when the process needs to signal a fault explicitly. More information
- Menu actions: wrap while, wrap scope, wrap sequence, wrap flow, delete
- Outline actions: add source, add target, delete
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
Used for invocation of a web service operation offered by a partner. More information
- Menu actions: add compensation handler, add catch fault, wrap while, wrap scope, wrap sequence, wrap flow, delete
- Outline actions: add source, add target, add correlation, delete
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
Execution of this activity has no effect. More information
- Menu actions: wrap while, wrap scope, wrap sequence, wrap flow, delete
- Outline actions: add source, add target, delete
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
Used to create or modify data in containers. More information
- Menu actions: wrap while, wrap scope, wrap sequence, wrap flow, delete
- Outline actions: add source, add target, add copy, delete
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
Introduces a delay in processing, either for a fixed time period or until some deadline is reached. More information
- Menu actions: wrap while, wrap scope, wrap sequence, wrap flow, delete
- Outline actions: add source, add target, delete
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
Execution of this activity results in invocation of a compensation handler for the specified scope. More information
- Menu actions: wrap while, wrap scope, wrap sequence, wrap flow, delete
- Outline actions: add source, add target, delete
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>
Process
Used to define the process, a top-level BPEL4WS element that contains the business process definition. More information
- Menu actions: add while, add scope, add sequence, add flow, add pick, add reply, add receive, add terminate, add throw, add switch, add invoke, add empty, add assignment, add wait, add compensate, add fault handlers, add compensation handler
- Outline actions: add container, add partner, add correlation set, delete
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
Allows deletion of the selected activity or element. Note that deletion of an activity will also result in deletion of its children recursively.
Link
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
Tags an activity as being the source of a link.
Target
Tags an activity as being the target of a link.
Fault handlers
Used to handle errors that occur within a scope. More information
- Menu actions: add catch fault, add catch all, delete
Compensation 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
- Menu actions: add while, add scope, add sequence, add flow, add pick, add reply, add receive, add terminate, add throw, add switch, add invoke, add empty, add assignment, add wait, add compensate, delete
onMessage
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
- Menu actions: add while, add scope, add sequence, add flow, add pick, add reply, add receive, add terminate, add throw, add switch, add invoke, add empty, add assignment, add wait, add compensate, delete
- Outline actions: add correlation, delete
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
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
- Menu actions: add while, add scope, add sequence, add flow, add pick, add reply, add receive, add terminate, add throw, add switch, add invoke, add empty, add assignment, add wait, add compensate, delete
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
This is used to specify a conditional branch of a switch. More information
- Menu actions: add while, add scope, add sequence, add flow, add pick, add reply, add receive, add terminate, add throw, add switch, add invoke, add empty, add assignment, add wait, add compensate, delete
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
This is used to specify a default branch of a switch. More information
- Menu actions: add while, add scope, add sequence, add flow, add pick, add reply, add receive, add terminate, add throw, add switch, add invoke, add empty, add assignment, add wait, add compensate, delete
Correlation
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
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
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
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>
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)





