OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

ebxml-bp message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: [ebBP] 6/28/2004: Work Item 21 - Summary for ConditionalConstraints-beginsWhen, endsWhen!!


OASIS.ebBP.WI-21-Pre- and postConditions;
Topic|;
Point|Summary of influence of conditional constraints on state alignment 
and transitions;
Attachment|http://www.oasis-open.org/archives/ebxml-bp/200405/msg00100.html;
Attachment|http://www.oasis-open.org/archives/ebxml-bp/200406/msg00087.html;
Attachmenthttp://www.oasis-open.org/apps/org/workgroup/ebxml-bp/download.php/7465/ebbp-special-session-state-alignm-web-services-mm1-062504.txt;
Attachment|http://www.ebpml.org/state.html;

mm1@
In Friday's special session to continue our discussion on state 
alignment, business collaboration and web services, we
identified several relevant use cases and gained a clearer understanding 
of state alignment, transitions and conditional
constraints (beinsWhen, ends When).  As I indicated in last week's call 
and in the session on Friday (25 June 2004), below
is a summary that compiles most of the discussion including the use 
cases identified Friday:

Originally these conditional constraints were identified (definitions 
attached). Each attribute has existed in ebBP for quite
some time as xsd:string (i.e. they were not computable attributes). [1]

   * beginsWhen:  A description of an event external to the
     collaboration that <<<normally causes this collaboration to commence>>
   * endsWhen: A description of an event external to this collaboration
     that <<<normally causes this collaboration to conclude>>>
   * PreCondition: A description of a state external to this
     collaboration that is <<<required before this collaboration can
     commence>>> [1]
   * PostCondition: A description of a state external to this
     collaboration that is <<<required before this collaboration can
     conclude>>>

Our quandry in February, when we briefly touched on these attributes, 
was identifying the intent and use of these attributes, and their
relationship to the condition expressions, transitions and pseudo 
states. These attributes were originally cited as external
events, not associated with the included activities. [2]

In order to use these attributes, they must be visible to the process. 
They can occur anytime during the process.
Moving these to documentation was considered as well although this may 
have been confusing to developers.

Below is a summary of the objectives surrounding these conditional 
constraints that may levy requirements on ebBP:

    * preCondition + other variables = beginsWhen

    * postCondition + other variables = endsWhen

    * These optional conditional attributes can put constraints on the 
business agreement. The ebBP state model both "monitors" the collaboration
    and "specifies event visibility" of the service layer model.  It can 
(will) enumerate the semanitic business events), and the complexity is 
forced
    onto the mapping of service events (and technical events) onto 
business events (semantic business occurrences).
    This allows incremental improvements in both service and business 
layer. Technical implementations can also have a simple binding to the 
business layer.  [Yunker]

    * These can support business dialog (or a constrained BPSS). Anders 
Tell has suggested that specific effects (and other variables) could be 
used with these conditional
    constraint attributes. He indicated that a business Dialog governs a 
pattern of information exchanges which infers obligations and rights on 
the parties.
    The dialog includes collaboration conduct and persistent share 
memory. It is with the latter that the constraints
    of beginsWhen, endsWhen, and pre-post conditions are necessary. UBAC 
sits above.  [Tell]

    * It is legal to declare a constraint on an action that maps onto 
information that is produced on that action.
    Use beginsWhen and base on content of the business message that is 
delivered on that action. [Yunker]

    * When support for business entities is provided in ebBP, these 
conditional constraints become very important.
    For example, a deliverydate is specified elsewhere, in a BE or BO 
and the obligation to notify before delivery is also defined
    there but the notification details are describe in a business dialog 
specification. [Tell]

    * If constraints are placed on beginswhen, it doesn't place undue 
burden for monitoring and verification.
    It only places choreography constraints. Concepts apply to use of 
web services as well. Eventually, ebBP could
    have a semantic label and have implementers implement a mapping from 
semantic tag to the implementation.
    Then, ebBP could add a section to map names to implementations that 
are context aware.
    For example, Semantic: Non-zero, third-tier inventory. In the CPPA, 
relate that semantic tag to the actual implementation
    scheme. Could have special document, semantic constraints (such as 
for context). It could be built dynamically based on the other part of the
    document that did the mapping. Calculate document types. XSL could 
be simple to write. [Yunker]

    * Post condition is the business success. The requester says 
business success.
    The status that you report to the choreography is derived from those 
conditions (success, failure).
    Person sending the message sets success failure for post condition. 
It could also be in the business document.

    * Yunker use case for endsWhen: Usage of endsWhen for retryCount: 
Use if the action repeated in the case of a failure. If you have 
endsWhen=true
    and try to retry, you should not retry. For example, if you have 3 
tries to get right; otherwise you fail. In an academic setting, you try 
certification
    three times as a health care provider. Submit a certification 
request. Do a registration step. Submit certification.
    It is returned and I fail. I then check my error messages and 
increase insurance. I get more staff and I retry.
    I fail again. I do another action and fail. I then re-registrer and 
have to start over again.
    This is actually a use case. Look at Amazon self-service 
registration. When these attributes are used,
    when you receive the document, you do additional checks [Moberg].
    It is QoS and evaluate business transaction status. Status is 
computed after you receive the document.
    See how to compute status values to these conditions.

Given the discussions in February, May and last Friday in the special 
state alignment session, the possible, recommended
changes to the technical specification for v2.0 are:

    * We make them optional elements so we can apply more 
characteristics which
    will allow them to be used with effects, variables, etc. in the
    future. This could also support multiple usages: business dialog and 
constrained ebBP and business entities or
    constrained objects. [Tell] [3]
    * We make clear these are external events and put some user hints to
    encourage their appropriate use. Differentiate execution language 
from the business semantics and conditional
    constraints used in ebBP. Differenitate public and visible vs. 
private process. Specify how this helps achieve
    state alignment. Therefore, in ebBP, our monitoring capability is 
used to evaluate key execution constraints without
    calling out actions, such as kicking off a business application. 
    * Recognize that state alignment requires multiple actions, and how 
these conditional constraints can
    also support that. See JJ's valuable paper on state alignment at: 
http://www.ebpml.org/state.html.
    Recognize that business state alignment occurs when, for example, 
you send a delivery receipt.  If the information
    is in your system, you are responsible. Need to clearly 
differentiate HTTP OK, other data exchange from business failures.
    Acknowledge need for failure specification as well as other 
constraints and QoS factors for business state alignment.
    * Recognize that enforcement of business agreements is done only on 
information visible to both parties.
    The requirements for the documents are the constraints on business 
failure, success and transitions.
    * Use a semantic label and mapping using XPath directly. Also create 
a subcontent model in CPPA.
    Use the conditional expressions that currently exist on the document 
and provide an optional overlay that can
    be used if desired.
    * Specify what beginsWhen goes with which transition in the binary 
collaboration. The beginsWhen is on the activity
    (action). From a petriNet or UML perspective, you are at the next 
node because you have constraints that are not satisfied. You have taken 
the transition.
    Explain how to look at beginsWhen for the document on transition 
that the conditional constraints were satisfied.
    This allows you to express constraints and check as they move 
across. You can flag and try to accommodate (even if it is too
    late to stop/change).  Ensure this is explained in the technical 
specification.

Open discussion questions:
    * Can beginsWhen and endsWhen be folded into preCondition without a 
loss of expressiveness? Can preCondition
    + effect = postCondition? Using 'effect' can facilitate use of 
business entities in near future. [Tell]
    * Are there other use cases for endsWhen and post condition?
    * Evaluate any differences for use with web services.

[1] This is not to be confused with production rules for UML=>XML 
transformation and the fact we are looking to develop well-formedness rules.
[2] David Webber has used beginsWhen and endsWhen as a complement to the 
guards.
[3] Per Tell: Business entities or constrained businss objects such a 
resource, commitments, obligation, etc. at design time / contract 
signing time the business requirements expressed in business dialog, 
BPSS, CPA, TPA, BLA drive the service level implementationand required 
features.
an example: the definition of DataMessage::Reach::Event may stipulate 
that this event may not be generated unless condition a,b,c has been 
fullfilled and validation checks such as completness testing, 
verification of sender identify, etc.
[4] Many thanks to John Yunker, Dale Moberg, David Webber, JJ Dubray, 
and Tony Fletcher and Anders Tell (who both provided comments over the 
weekend).

Other discussions in May / June 2004 on beginsWhen, endsWhen, and pre- 
and post-conditions:
Textual references and general questions concerning use of attributes.
http://lists.oasis-open.org/archives/ebxml-bp/200406/msg00083.html
http://lists.oasis-open.org/archives/ebxml-bp/200406/msg00084.html
http://lists.oasis-open.org/archives/ebxml-bp/200406/msg00096.html
http://lists.oasis-open.org/archives/ebxml-bp/200406/msg00097.html

Use in choreography, doubts
http://lists.oasis-open.org/archives/ebxml-bp/200406/msg00102.html
http://lists.oasis-open.org/archives/ebxml-bp/200406/msg00103.html
http://lists.oasis-open.org/archives/ebxml-bp/200406/msg00119.html

Use in choreography, theory and proposals 
http://lists.oasis-open.org/archives/ebxml-bp/200406/msg00100.html
http://lists.oasis-open.org/archives/ebxml-bp/200406/msg00104.html
 
@mm1














[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]