Ana səhifə

Web Services Business Process Execution Language Version 0 Public Review Draft 02, 20 November, 2006


Yüklə 2.65 Mb.
səhifə15/23
tarix27.06.2016
ölçüsü2.65 Mb.
1   ...   11   12   13   14   15   16   17   18   ...   23

13. WS-BPEL Abstract Processes


Abstract processes have multiple use cases. Consequently, an approach is provided for defining Abstract Processes that uses a common base, with profiles to refine it for separate use cases. The common base, defined in section 13.1. The Common Base, specifies the features that define the syntactic universe of Abstract Processes. However, the common base does not have well-defined semantics. Given this common base, a usage profile defines the necessary syntactic constraints and the semantics based on Executable WS-BPEL Processes for a particular use case for Abstract Processes. Every Abstract Process MUST identify the usage profile that defines its meaning. A profile is identified using a URI. This approach is extensible; new profiles can be defined as different areas are identified. These profiles can be defined elsewhere, outside of this specification.

Profiles are created from the common base and their characteristics are defined in section 13.2. Abstract Process Profiles and the Semantics of Abstract Processes. Two profiles are provided in this specification.


13.1. The Common Base


The common base is the “syntactic form” to which all WS-BPEL Abstract Processes MUST conform. The syntactic characteristics of the common base are:

  1. The abstractProcessProfile attribute MUST exist. Its value refers to an existing profile definition.

  2. All the constructs of Executable Processes are permitted. Thus, there is no fundamental expressive power distinction between Abstract and Executable Processes.

  3. Certain syntactic constructs in WS-BPEL Executable Processes may be hidden, explicitly through the inclusion of opaque language extensions, and implicitly through omission, as detailed below in section 13.1.3. Hiding Syntactic Elements. Four types of opaque tokens are enabled: activities, expressions, attributes and from-specs.

  4. An Abstract Process MUST comply with the syntactic validity constraint defined in section 13.1.4. Syntactic Validity Constraints.

  5. An Abstract Process MAY omit the createInstance activity ( or
    ) that is mandatory for Executable WS-BPEL Processes.

13.1.1. URI


The Abstract Process syntax is denoted under the following namespace:

http://docs.oasis-open.org/wsbpel/2.0/process/abstract


13.1.2. Structure of an Abstract Process


The structure of an Abstract Process differs from that of an Executable Process only in the attributes that are permitted, as shown below:

targetNamespace="anyURI"

abstractProcessProfile="anyURI"

queryLanguage="anyURI"?

expressionLanguage="anyURI"?

suppressJoinFailure="yes|no"?

exitOnStandardFault="yes|no"?

xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/abstract">

...
The additional top-level attribute for Abstract Processes is as follows:


  • abstractProcessProfile. This mandatory attribute for Abstract Processes provides the URI that identifies the profile of an Abstract Process.

13.1.3. Hiding Syntactic Elements


The hiding of syntactic elements mentioned in 13.1. The Common Base, clause [3], is detailed below.
Opaque Language Extensions

Language extensions consisting of opaque tokens are used as explicit placeholders for missing details. Note that opaque tokens are not new semantically meaningful constructs but syntactic devices for indicating incompleteness. As such, opaque entities have no semantics of their own.

There are four opaque placeholders: expressions, activities, attributes and from-specs. A usage profile MAY restrict the kinds of opaque tokens allowed at its discretion. For example, a profile could specify that it allows only opaque activities, but not other kinds of opaque tokens, or a profile could specify that it allows all attributes to be opaque except the partnerLink attribute. However, a usage profile MUST NOT expand allowable opacity above what is allowed by the "common base". For example, a profile cannot specify that it allows a fault handler element to be opaque.

Each opaque token is a placeholder for a corresponding Executable WS-BPEL construct, as will be described below. That construct can be different in each Executable Completion (see section 13.1.4. Syntactic Validity Constraints) of an Abstract Process. For example, an opaque activity in an Abstract Process could represent an in one Executable Process and an in another Executable Process that are both valid completions of the Abstract Process.

The common base allows the following uses of opacity in Abstract Processes:



  • Opaque activities are allowed.

  • All WS-BPEL expressions are allowed to be opaque.

  • All WS-BPEL attributes are allowed to be opaque in the common base.

  • The from-spec (e.g. in ) is allowed to be opaque.

The function of the four types of opaque tokens allowed in Abstract Processes (activities, expressions, attributes and from-specs) are described below, with examples:

Opaque activities

An opaque activity is an explicit placeholder for exactly one Executable WS-BPEL activity, and any activities that could be nested within that activity. The Executable WS-BPEL activity uses all non-opaque elements/attributes defined by the opaque activity it replaces. It also replaces any opaque attributes or expressions that are part of that opaque activity.

An opaque activity has the same standard elements and attributes common to all WS-BPEL activities (see sections 10.1. Standard Attributes for All Activities and 10.2. Standard Elements for All Activities). An opaque activity has the following form:

standard-elements



One example of using opaque activities is in the creation of a process template that marks the points of extension in a process. Another is hiding an activity that is a join point for several links when creating an Abstract Process from a known Executable Process. If that activity, on the other hand, were an activity in a with no links to or from it, it could be omitted from the resulting Abstract Process. This could not be done using the activity, because explicitly means "nothing happens here". Whereas means "something happens here, but it's hidden on purpose".

The reason for making an opaque activity a placeholder for one activity (and not zero or more) is that in the case of one activity there is no ambiguity regarding carrying over any attributes or elements defined on the opaque activity, or in its relation to its parent and sibling activities.

Opaque expressions

An opaque expression is a placeholder for a corresponding Executable WS-BPEL expression.

An example usage of an opaque expression is that of copying a hidden value into a known variable. Opaque expressions can be used for non-determinism: the obvious case being a process that needs to show a decision point with alternative outcomes without specifying how the decision is reached. In this case the expressions that constrain each branch may need to be left unspecified. However, it may also be convenient to make a specific value or quantity such as a price threshold unspecified, so that explicitly specified conditions relative to the threshold become non-deterministic as a result of the threshold value being unknown.

All expressions in WS-BPEL, and their corresponding opaque representations are listed below:

1. Boolean valued expressions.




  • element of :



  • element of , , , and :

2. Deadline valued expressions.



  • element of and :

3. Duration valued expressions:



  • element of and :



  • element of :

4. unsignedInt valued expressions:



  • , , and elements of :



5. Opaque expressions and queries in from-spec and to-spec, respectively:



  • element incorporating an expression:



  • element incorporating a query:



?



  • element incorporating an expression:



  • element incorporating a query:



?



Opaque from-spec

A special case for generic opaque assignment is allowed. It represents hiding any of the forms of the from-spec (see section 8.4. Assignment). The new construct is used for this:





Opaque attributes

An Executable WS-BPEL attribute used in an Abstract Process can have an opaque value, thereby hiding the attribute's value. We refer to these as opaque attributes.

For example, an opaque variable attribute in a activity hides where the data is stored once the corresponding message is received.

The value ##BPELopaque MUST be reserved and can be used as the value of any WS-BPEL attributes that can be opaque in an Abstract Process.


Omission

Omission may be used as a shortcut to opacity, from hereon referred to as omission shortcut. The omission shortcut is exactly equivalent to representing the omitted artifact with an opaque value at the omitted location. Tokens MUST only be omitted where the location can be detected deterministically. To enforce this requirement, omittable tokens are restricted to all attributes, activities, expressions and from-specs which are both (1) syntactically required by the Executable WS-BPEL XML Schema, and (2) have no default value. Note that it is allowed to omit the start activity in an Abstract Process as well (see section 13.1.3. Hiding Syntactic Elements, [5]). If the omitted token is an activity, the implied opaque activity MUST have the exact form (i.e.: no standard-elements or standard-attributes). Notice that (1) deliberately excludes any non-Schema requirements of Executable WS-BPEL.

Therefore, an Abstract Process P1 that uses the omission shortcut is always equivalent to an Abstract Process P2 that is the same as P1 but injects opaque tokens anywhere they have been omitted and does not use the omission shortcut. To illustrate, consider a process that omits the variable attribute in all invoke activities. This is equivalent to another process which is identical to P1 except that it includes the variable attribute on all its invokes but with the value ##BPELopaque, and vice versa.


13.1.4. Syntactic Validity Constraints


Definition (Executable Completion). An Executable Completion of an Abstract Process is defined as an Executable Process that

  1. is derived only by:

    1. Changing the namespace to that of Executable WS-BPEL and removing the profile URI.

    2. Using some combination of the following syntactic transformations:

  1. Opaque Token Replacement: Replacing every opaque token (including those omitted using the omission-shortcut) with a corresponding Executable token. For example, replacing an opaque activity with an .

  2. Addition of WS-BPEL constructs: Adding new WS-BPEL XML elements anywhere in the process.

  1. is a valid Executable WS-BPEL process that satisfies all static validation rules mandated by this specification including both Schema-based and non-Schema-based rules.

A clarification is provided here regarding the completion rules and their application to constructs with default values in the Abstract Process, such as “createInstance” at , “validate” at and within . The completion rules above do not allow changing non-opaque constructs when creating an executable completion (whether through omission-shortcut or explicitly). As stated in section "13.1.3. Hiding Syntactic Elements", a construct, which is not explicitly present in the abstract process and has a default value, is not allowed to be made opaque through omission-shortcut. Its value will be that of the default in all executable completions (e.g.: “no” for an omitted “suppressJoinFailure” attribute). Therefore, specifying its value in an executable completion is not covered by “Addition of WS-BPEL constructs.” In order to allow Execution Completion to specify the value of such constructs, explicit opaque tokens should be used in the Abstract Process. Completions can then specify the values specified using “Opaque Token Replacement”.

This is especially relevant to the addition of links. New links cannot be added as targets to existing activities with at least one link if such an addition changes an existing, non-opaque join condition (including the default join condition). The default join condition is included in this consideration because adding a new link to an activity using the default join condition effectively changes the condition to include the new link’s status. Examples where new links can be added include adding them to: 1) an activity with no existing incoming links, 2) an activity with incoming link(s) and an opaque join condition, or 3) an activity with incoming link(s) and an explicitly specified, non-opaque join condition (whose value cannot be changed in any executable completion).

Definition (Basic Executable Completion). A Basic Executable Completion of an Abstract Process is defined as an Executable Completion whose allowed syntactic transformations MUST be  limited to:


    • Opaque Token Replacement (1. (b) i. above),

    • the addition of a start activity if none are present in the Abstract Process (per clause [5] of section 13.1.3. Hiding Syntactic Elements), and

    • the addition of ,
      ,
      , , elements at the
      level, as long as the declarations of any such newly added elements are not referenced by existing constructs in the AP (before opaque token replacement).

An Abstract Process MUST be considered valid if and only if it meets the following criteria, as referred to in 13.1. The Common Base, clause [4] :

  • It conforms to the WS-BPEL XML Schema for the common base, as defined in Appendix E. XML Schemas. This is purely an XML Schema check and does not enforce any non-Schema validation rules, such as requiring that every link that has a source must also have a target.

  • Any extension construct, including the extension attribute, elements, extension activity and extension assign operations, is declared properly with the "namespace" and "mustUnderstand" not being opaque (including omission-shortcuts). See more details in sections 5.3. Language Extensibility and 14. Extension Declarations.

  • There exists at least one Basic Executable Completion of the Abstract Process.

The purpose of the last bullet above is to improve the static validation of an Abstract Process beyond the XML Schema check. This limits the creation of ill-defined constructs in the Abstract Processes that the Schema would otherwise allow. On the other hand, the semantics of an Abstract Process comes from the range of Executable Processes that can be created from the Executable Completions (not limited to Basic Executable Completions) allowed by its profile.

There is no fundamental expressive power distinction between Abstract and Executable Processes. To accommodate the syntactic flexibility introduced by allowing opacity and omission in the syntax of Abstract Processes, the XML Schema for the Common Base of Abstract Processes does not reuse any definitions from XML Schema for the Executable Processes. The two have distinct namespaces: one for Abstract WS-BPEL Processes and one for Executable WS-BPEL Processes.

At the same time, an Abstract Process Profile may be required to extend the level of syntactic validation from that of the common base to support the inclusion of additional information necessary to it. Therefore an Abstract Profile MAY provide:


  • extension constructs in its own namespace to be added to the Abstract Process,

  • additional XML grammar to support its own specific syntax validation.

Abstract Processes defined using any profile MUST validate according to the grammar of the common base.

13.1.5. Interpretation of the Common Base


The common base, being extremely flexible, does not have well-defined semantics. On the other hand, Executable WS-BPEL Processes have well-defined semantics and prescribed behavior. The semantics of an Abstract Process are provided by the set of Executable WS-BPEL Processes that the particular Abstract Process represents. This set is provided in usage profiles, and varies from one profile to another. In other words, the semantics of an Abstract Process depend on its associated profile.

In addition to semantics, the consistency constraints of Executable WS-BPEL are clearly defined. The semantics of each language construct in an Abstract Process MUST be derived from that of the same construct in Executable WS-BPEL. For example, an in an Abstract Process always represents invoking a Web service operation as used in Executable Processes. The difference is strictly a consequence of the opacity used in that construct (missing information) and other parts of the process affected by it (for example, opacity in a link source element may affect the link target element). Any required clarifications depending on allowed opacity will be specified in the relevant usage profile.

In the common base definition, there are no requirements how Executable realizations of a given Abstract Process should be implemented (i.e. language, platform, etc.); nor are specific relationships with such realizations implied. Again, a concrete usage profile might provide such information based on its use case.

13.2. Abstract Process Profiles and the Semantics of Abstract Processes


The common base for Abstract Processes specifies the syntactic universe within which Abstract Processes are defined. The common base does not provide any semantics for Abstract Processes since the semantics must express a specific intent for the interpretation of an Abstract Process and the common base provides no mechanism to express such intent.

It is a profile that defines a class of Abstract Processes with a shared semantic interpretation. Abstract Processes are incomplete and by definition not Executable, whether or not they contain opaque entities. The semantics of the non-opaque constructs they contain cannot be understood in isolation. Their semantics are bound by the Executable Completions that are permitted by the profile referenced by the Abstract Process. The semantics of those constructs can be realized only in the possible Executable Completions. As an edge case, a permitted completion may sometimes be virtually identical to the Abstract Process syntactically, but this is the exception rather than the rule.

A WS-BPEL Abstract Process and a WS-BPEL Executable Process are said to be compatible if the Executable Process is one of the Executable Completions in the set of permitted completions specified by the Abstract Process’ Profile. Compatibility for Executable Processes that are not WS-BPEL processes is outside the scope of this specification. Clearly, an Executable Process can exist independently from an Abstract Process.

A profile MUST NOT violate the common base. A profile MUST define



  1. A URI that identifies the profile and is used as the value of the abstractProcessProfile attribute by all Abstract Processes belonging to this profile.

  2. The set of syntactically valid Abstract Processes that belong to this profile, as a subset of the common base. Note that the subset does not have to be proper, i.e., it may include the entire common base. Example profiles include those that disallow control links or certain types of opaque tokens. Note further that the subset must be consistent with respect to the use of the omission-shortcut. Specifically, if a profile limits the use of opaque tokens in the set of Abstract Processes it covers, then it can only permit those omissions that correspond to permitted usage of opaque tokens. For instance, if a profile does not allow attributes to be opaque, then Abstract Processes belonging to that profile cannot omit attributes using the omission-shortcut.

  3. The set of permitted Executable Completions for Abstract Processes that belong to the set in (ii). The set of permitted Executable Completions MUST be non-empty for each Abstract Process in the set in (ii).

Any Abstract Process that belongs to a given profile MUST follow the restrictions defined in that profile.

If the allowed level of opacity in a profile leads to the inability to relate constructs in the abstract process, the profile MUST provide additional syntactic constraints to ensure that a user can match the constructs. Examples include a receive/reply pair with opaque operation attributes, or a link source/target pair with an opaque name attribute.

Another example is a profile that allows “Opaque Token Replacement” and the addition of only WS-BPEL constructs that create leaf-nodes or sub-trees. By disallowing arbitrary additions, such a profile would not allow Executable Completions to do such things as wrap an existing activity with a , or add a around activities in a . On the other hand, it would allow the creation of new leaf activities inside an existing .

13.3. Abstract Process Profile for Observable Behavior


The objective of the Abstract Process Profile for Observable Behavior is to provide precise and predictable descriptions of observable service behavior. The main application of this profile is the definition of business process contracts; that is, the behavior followed by one business partner in the context of Web services exchanges. Business process contracts are particularly relevant in automated cross enterprise interactions but have general applicability in the extension of service contracts with precise, machine processable behavioral descriptions.

There are several key differences between processes intended to represent business process contracts and Executable Processes. Foremost among them is the different way in which data are handled in each case; the rich data manipulation that occurs in Executable Processes need not be described in public process contracts. Instead, public process contracts use non-deterministic data values to hide the private aspects of executable behavior. For example, using opaque assignment supports modeling the non-deterministic effects that private computation has on external behavior.

In this profile, the use of opacity is concentrated in those features associated with data handling. Non-deterministic data values are not allowed in Executable Processes; Abstract Processes, on the other hand, use non-deterministic values to reflect the consequences of actual behavior while maintaining the details of that behavior to remain private.

13.3.1. Profile URI


The URI identifying this Abstract Process Profile is:

http://docs.oasis-open.org/wsbpel/2.0/process/abstract/ap11/2006/08


13.3.2. Subset of the Processes Allowed in the Common Base


This profile is concerned with hiding internal processing of a business partner’s process while capturing all the information required to describe how the process interacts with its partners. The set of usage restrictions associated with the use of Abstract Processes in general was in fact derived from this original requirement, which was captured by the Abstract Process definition incorporated in the previous version of this specification ([BPEL4WS 1.1]).

This profile applies opacity in WS-BPEL constructs that handle data. In addition, the omission-shortcut described in 13.1.3. Hiding Syntactic Elements can be used as an alternative to explicitly specifying opaque tokens. The profile described here allows the use of opaque activities specifically for supporting the two cases where an activity is syntactically required. The first is hiding internal processing that needs to be the source or target of links in the Abstract Process, while maintaining the same flow of control in the abstract representation. The second is the use of opacity (and consequently the omission shortcut) in places where an activity is required by the WS-BPEL semantics and Schema. For example, Executable Processes are required to have an activity in a fault handler. Using an opaque activity avoids the need to use an activity. The use of opaque activities where an activity is not syntactically required is superfluous, because this profile’s completion rules are flexible about where one can add an activity in an Executable Completion. The full completion rules are presented in the next section.

This profile restricts the use of the Abstract Process Common Base in the following manner:


  • Expressions: is not allowed to be opaque. The has a default value, and is based only on of the status of the incoming links, and not on data handled by the process.  Therefore, it is not appropriate to hide it. All other expressions may be opaque, as defined in section 13.1.3. Hiding Syntactic Elements.

  • Activities: The use of is not allowed.

  • Attributes:  Only the attributes used for identification of variables and message parts of message related constructs representing partner interactions are allowed to be opaque. The full list of the attributes allowed to be opaque is shown below. The following is the complete list of attributes, belonging to the , , , , or constructs, that are allowed to be opaque in this profile:

  • From-specs: Opaque from-specs are allowed.

The level of abstraction appropriate in the description of business process contracts makes it often unnecessary to use message variables in Web service message activities, particularly when the intent is to simply constrain the sequencing of such activities and the actual message data is not relevant.

13.3.3. The Use of Opaque Variable References


Unlike Executable Processes, variables in Abstract Processes defined using this profile do not need to be initialized before being referenced since additional computation may be implicitly assumed.

Executable Processes are expected to follow constraints such as initializing variables before they are used. Clearly, Executable Completions of Abstract Processes that hide variable references and data manipulation are expected to abide by the constraints and requirements of executable processes.


13.3.4. Subset of the Executable Completions Allowed in the Base


With respect to executable BPEL completions of an abstract process that uses this profile, the intent of the profile requires a valid completion to follow the same interactions as the abstract process, with the partners that are specified by the abstract process. The executable process may, however, perform additional interaction steps relating to other partners. This section uses the term ‘existing’ to refer to constructs present in an abstract process, and the term ‘new’ to refer to those added to an abstract process while creating an executable completion.

In order to achieve the intent of the profile, a completion MUST NOT change the presence or order of interactions already in the abstract process, and it MUST NOT perform additional interactions with the partner links defined in the abstract process. The completion rules provided below aim to enforce this restriction.

Data writing may cause changes in interaction order. Changes caused by data writing are not enforced by the completion rules, but are highlighted here as an advisory note. One example is changing the value of a variable used in a condition that affects branching, in such a way that the new effective branching behavior is in direct conflict with what is specified by the abstract process. Conditions that affect the flow of control such as transition conditions, “if-then” or “while” expressions, among others, can have such an effect on the order of interactions. For example, adding a new loop with a “true” condition as a child of an existing would hang the process.

When creating an executable completion of an abstract process belonging to this profile, the possible locations for adding new activities are not explicitly defined: Activities may be added anywhere that the Executable Completions definition in section [see 13.1.4. Syntactic Validity Constraints] allows with the restrictions below.

In this profile, the valid executable completions of an abstract process are obtained through both 'opaque token replacement' and 'addition of BPEL constructs', with the following restrictions.

New activities (including those created to replace opaque activities) MUST NOT interact with partnerLinks already declared in the abstract process. This rule does not affect adding interactions with new partnerLinks present in the executable completion but not in the abstract process.



  • The endpoint reference of any partnerLink defined in the abstract process MUST NOT be modified (whether using an activity or otherwise). Additionally, an endpoint reference of any partnerLink defined in the abstract process MUST NOT be copied into the reference of a newly created partnerLink. The reason is that the former would effectively prevent subsequent interactions with that partner and the latter would add new ones. Remember that 'opaque token replacement' also replaces opaque tokens omitted through the omission-shortcut.

  • The lexical parent of an existing BPEL construct (including activities in particular) present in the abstract process MUST NOT be changed in an executable completion. Hence, the nesting structure of composite activities around any activity in an abstract process remains unchanged in any legal completion. Some examples to illustrate this restriction are provided below. The word ‘existing’ is used in the examples to refer to constructs defined in the abstract process from which the executable completions are being created:

    • Examples of legal additions:

      • Adding a variable or a partner link to an existing scope S, even though that scope is the parent of existing activity A, except as disallowed above.

      • Adding a new link definition to an existing flow, except as disallowed above.

    • Examples of illegal additions:

      • Adding a activity around an existing activity.

      • Adding a new scope around an existing variable definition.

  • A valid executable completion MUST NOT add:

    • New branches to an existing “if-then-else” activity, unless it has no “else” branch, and the new branch is added after all existing branches.

    • New branches to an existing pick activity.

    • New fault, compensation, or termination handlers to an existing scope. However, they may be added at the process level.

    • activities.

    • New links whose targets are existing activities. The Executable Completions definition in the Base already disallows adding new links to existing activities that have existing links and use the default join condition. This profile restricts this further by disallowing the addition of new links to any existing activity. However, one may freely add links targeting new activities as long as those activities are not a replacement of one of the abstract process’s opaque activities.

    • Declarations of variables, partner links, and correlation sets in existing scopes if they hide existing declarations that are used by existing constructs in the scope.

  • Activities that throw non-standard faults (e.g. web service activities whose operations define faults, ) MAY be added only if the exception will not be propagated to any activity existing in the Abstract Process. For example, consider adding an activity A as a child of an existing sequence S. Then, one may only add a within A if the fault it throws does not reach the scope of the existing sequence S. In other words, the fault must be caught and fully handled by A or its descendants, and not be re-thrown by them.

Recall from the definition of Executable Completion in the Base that if a construct is optional and has a default value, then the construct needs to be explicitly opaque, in order to allow Executable Completion to specify its value. One example that highlights that is an Abstract Process with a activity or other IMA that does not have the createInstance attribute. Such an activity is always treated as a non-start activity, an Execution Completion cannot add createInstance="yes" to it. If one wants to make a activity or other IMA optionally become a start activity, the createInstance attribute has to be made explicitly opaque.

13.4. Abstract Process Profile for Templates


A high-level design-time representation may be used by a technical analyst to describe a business process in an organization. The representation may have several inputs, which may be provided in various forms including non- WS-BPEL process modeling languages as well as forms of natural languages. In support of these design-time representations, WS-BPEL defines an Abstract Process profile called the Template Profile that allows the definition of Abstract Processes which hide almost any arbitrary execution details and have explicit opaque extension points for adding behavior. These Abstract Processes allow process developers to complete execution details at a later stage – for example, adding conditions and defining endpoints for an Executable Completion.

For the remainder of section 13.4. Abstract Process Profile for Templates, the prefix associated with the Template Profile namespace URI is "template".


13.4.1. Profile URI


http://docs.oasis-open.org/wsbpel/2.0/process/abstract/simple-template/2006/08

13.4.2. Opaque Start Activities


The Template Profile introduces a new template:createInstance extension attribute to mark an opaque activity as a start activity. This template:createInstance attribute carries similar semantics to the createInstance attribute of an IMA which are defined in both executable processes, and the common base of abstract processes. Please refer to the section below for the detailed usage of this attribute.

13.4.3. Subset of the Processes Allowed in the Common Base


All constructs allowed in the common base, such as the activity, are allowed in the Template Profile. All explicit opaque tokens MAY be used anywhere as allowed in the common base of Abstract Processes.

This profile restricts the common base in the following manner:



  • Explicit opaque tokens – opaque activity, opaque attributes, opaque expression, and opaque from-spec – MUST be used in order to denote where WS-BPEL constructs will be added to produce an Executable Completion in all cases other than those listed under “Adding constructs without explicit opacity”.

  • Omission shortcuts (see section 13.1.3. Hiding Syntactic Elements) MUST NOT be used in the Template Profile. For example, variable related attributes used in message related constructs can not be omitted. They need to be specified with either opaque attribute values or the actual variable names.

  • All start activities MUST be defined in a process of this Template Profile. That is, every IMA with a createInstance="yes" attribute that is added during Executable Completion MUST replace an opaque activity with template:createInstance="yes". No new start activity is allowed to be added during Executable Completion.

13.4.4. Adding Constructs without explicit opacity


For the following cases, constructs MAY be added to the process definition during Execution Completion without any explicit opacity in the Abstract Process:

  • Message Correlation: One or more elements MAY be added to a message activity and , where no or is used.

  • Process/Scope Declarations:

    • New data and resource declarations at a scope or process. These declarations are partner links, variables, message exchange and/or correlation sets at a scope or the process.

    • A fault handler declaration at a scope or the process. Note that compensation handlers cannot be added during Executable Completion of an Abstract Process of this profile.

    • Termination handler declaration at a scope.

    • An event handler declaration at a scope or the process.

    • Import declaration at the process

    • Extension declaration at the process

  • Extensions

    • New general extension elements and attributes.

A tool, which generates Abstract Processes of Template Profile based on user inputs, is expected to use explicit opaque tokens to denote the constructs with default values (e.g. validate attribute at ) in the generated WS-BPEL Abstract Processes, when users of the tool do not specify any values for those constructs. In the WS-BPEL Abstract Process itself, omitting such a construct is, as usual, equivalent to specifying it using the default value.

13.4.5. Extensions and Document Usage


This Template profile concentrates on the use of extension attributes and elements that are generally allowed in WS-BPEL. Information can be added in extensions or by natural language documentation. This information may signal the intention of the designer or provide extra semantics where needed. This is used to clarify cases where using opacity for specifying hidden syntactic links may cause ambiguity in other related parts of the process, such as those mentioned in section 13. WS-BPEL Abstract Processes.

Examples are:



  • A unique identifier attribute that may be added by a designer tool to uniquely identify a WS-BPEL fragment that spans the lifetime of a business process in Abstract and Execution completion stages - as such, the activity that replaces the retains that unique identifier.

  • WS-BPEL template designer may add natural language as documentation or extension constructs to denote extra template information.

xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/abstract"

targetNamespace="http://example.org/template-example-1"

xmlns:tns="http://example.org/template-example-1"

suppressJoinFailure="yes"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:ext="http://example.com/bpel/some/extension"

xmlns:template="http://docs.oasis-open.org/wsbpel/2.0/process/abstract/simple-template/2006/08"

abstractProcessProfile="http://docs.oasis-open.org/wsbpel/2.0/process/abstract/simple-template/2006/08">


namespace="http://docs.oasis-open.org/wsbpel/2.0/process/abstract/simple-template/2006/08"

mustUnderstand="yes" />

referenced partnerLinks have been declared -->

partnerLinkType="##opaque"

myRole="##opaque"

partnerRole="##opaque">

We have not confirmed our home information verification

partner yet.











Pick an appraisal request from one of 3 customer referral

channels.






Transform one of these 3 appraisal request into our own

format.










faultHandler for a fault from the "homeInfoVerifier"

partnerLink of unspecified portType yet -->













Extract customer and housing info from our appraisal

request into a message understood by our home info

verification partner.






operation="##opaque" inputVariable="##opaque"

ext:uniqueUserFriendlyName="request verification" />

operation="##opaque" variable="##opaque"

ext:uniqueUserFriendlyName="receive verification

result" />


variable="##opaque"

ext:uniqueUserFriendlyName="confirm receipt of

verification result">



This step confirms whether we have received the

verification result. It is intended to match the

"receive verification result" step.











Relay the appraisal request and home info verification to

an appraiser, who is responsible for on-site inspection.

The appraiser may request further verification info from

the partner through this business process. We will also

receive the results of the appraisal from this step.



referral channel may trigger more than one unexpected

fault in this process. -->




Send the appraisal result back to the corresponding

referral channel.

referral channel may trigger more than one unexpected

fault in this process. -->




13.4.6. Syntactic Validity


The Process Template Profile provides an XML grammar (see section Appendix E. XML Schemas) to support syntax validation beyond that provided by the common base Schema.

1   ...   11   12   13   14   15   16   17   18   ...   23


Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©atelim.com 2016
rəhbərliyinə müraciət