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: Re: [ebxml-bp] beginsWhen, endsWhen, pre- and postConditions, versions 2 and 3, and "executable"


Title: Message
Dale,
 
Hmmmm.  The way I've modelled this is at the BT level - so the beginsWhen / endsWhen is
checked at the overall BT level - as you transition from one BT to the next.
 
That way you associate the conditions with the BT - then whereever it is used in the
binary collaboration - those boundary conditions apply.
 
Now - since the BT begins with an initiating transaction - entry conditions will be
predicated around that document detail - assuming your business rules include
references to that (I'm branching now into the context mechanism linkage to the
beginsWhen conditionals - see my email yesterday).
 
Similarly - the previous BT will complete based on endsWhen conditionals
associated with responder document(s) details and rules.
 
This I believe keeps this very clean.
 
No need to get embroiled in interaction exchange level checking - since these
should just all bubble up as true/false settings thru the BSI - that the BPSS
handler can then simply query to assert if the BT starts or ends.
 
Of course the devil is always in the details of how the ebMS interacts thru the
BSI - but that's not stuff we necessarily have to perscribe - since each
implementer will do that a little differently.  We just need to have the overall
behaviour and mechanisms noted.
 
Basically put I'm saying that using ebContext system linked to begin/endsWhen
at the BT level takes the sting out of this IMHO.
 
Does that help here?
 
Thanks, DW
 
----- Original Message -----
Sent: Tuesday, June 15, 2004 9:31 AM
Subject: RE: [ebxml-bp] beginsWhen, endsWhen, pre- and postConditions, versions 2 and 3, and "executable"

Questions about the semantics of these 4 attributes must be resolved  before they can be used within a monitoring/verification task based on the choreography. If monitoring mainly looks at status, signals, documents, and document contents arising from a state's activities, there is not a problem knowing which state(s) to transition to. The eligible states are given by the links. The conditionExpression element and conditionGuard attribute allows us to check on which eligible transitions are taken.
 
Consider the DeliveryNotification document. The reasons and conditions under which that message gets sent may vary according to specific terms and conditions among collaboration participants. As I understand it, UBAC is to document the detailed agreements that "operationalize" the general meaning of Delivery. State alignment occurs when RM gets the Notification to the other side--then both sides "know" that their specific operationalizing of the meaning of delivery (delivery man signs delivery form, etc) have occurred. To verify the BP process has occurred to attain or fail, it is not necessary to check every derivative condition. When a POConfirm is sent I suppose inventory levels must be at some value and so on. But a BP monitor/verifier takes the passage of the POConfirm in good faith, showing that all those UBAC-like understandings and commitments are in place. Otherwise, BPSS monitor/verifier becomes a UBAC checker, which is to me a quite different undertaking, and at a different abstraction level.
 
I do believe that we can all benefit from a systematic discussion of this issue. I am not questioning the value of checking that all the specific agreements are in place. I am just suggesting that it is not in BPSS scope to support that activity. BP monitoring/verification is at an abstraction level that presumes the conditions for sending documents are in place IMO.
We are not building a thorough business auditing tool which checks complete compliance.
 
BPSS needs to insure that the scope we do carve out is one that can be implemented even if what gets implemented does abstract away from a critical level of business detail. A complement to BP monitoring/verifiying would be an internal audit tool that checks on the veracity of the messages being sent (their illocutionary force, so to speak). I think we take the message flow as a fait accompli, and check that it conforms to choreographic mechanics...
 
I hope we can have a chance to discuss these questions of scope and abstraction level at the face to face because I do consider them quite important issues for the workability of BPSS.
 
 
 
 
 
-----Original Message-----
From: Yunker, John [mailto:yunker@amazon.com]
Sent: Monday, June 14, 2004 10:04 AM
To: Dale Moberg; ebxml-bp@lists.oasis-open.org
Subject: RE: [ebxml-bp] beginsWhen, endsWhen, pre- and postConditions, versions 2 and 3, and "executable"

Being able to shared discrete executable syntax for beginsWhen, endsWhen, preCondition, and postCondition are CRITICAL to handling complex business interactions.
 
For instance, the collaboration requires a legal notification of delivery, so it has a "DeliveryNotification" transaction that adheres to the "Notification" pattern (means a legally enforceable receipt ack signal).  However we only want that notification to take place when the signature is available (might mean that the driver must return his devive, although implementation is "visible" to the BPSS).  Note that the BPSS "transitions" to this transaction as soon as the product is shipped, so the B2B software is then waiting for an "event" that will start this transaction.  So far we have insisted on waving our hands as to how this event is specified, however even more important is how to make sure that if multiple backend events must be received, how to know when to start the transaction.
 
Now the message could make the signature required, (in effect push the problem onto the data "cannot start until all data received"), but this makes tie in to the agreement layer VERY difficult (messages are usually reused over several use cases, and XSD isn't very good a context driven rules :-).
 
So, machine decipherable "beginsWhen" is incredibly useful for process-context driven communication, enforcement, and verification of rules related to content driven process conformance.  (a mouthful).
 
Without the ability to specify these rules, we cannot effectively link business requirements to process execution.  (we just assume the partner has a group of business analysts who are reading the text and figuring out how to drive proper triggering of transactions).
 
I would like to see this in the current release (at least as optional, similar to the syntax on the transition guards), however in interest of getting things done I could see waiting to 3.0.  I cannot in any case see "giving up on this" (sorry Dale, no slight intended, used for emphasis only :-)
 
Thanks,
John
 
-----Original Message-----
From: Dale Moberg [mailto:dmoberg@cyclonecommerce.com]
Sent: Monday, June 14, 2004 9:45 AM
To: ebxml-bp@lists.oasis-open.org
Subject: [ebxml-bp] beginsWhen, endsWhen, pre- and postConditions, versions 2 and 3, and "executable"

Our working drafts currently contain the following information concerning the topics on the subject line.

 

Please review questions in-line, and then also consider the list of questions at the end.

 

 

7.4.4.1

 

Business Transaction Activity and Collaboration Activity may define business rules with the beginsWhen, endsWhen, preCondition and postCondition attributes. These attributes do not have a specific syntax as part of this specification, so the current type is string.

 

 Because these expressions cannot be generally executed by an ebXML infrastructure, in the current release of the ebXML BPSS technical specification, they are considered to have a “documentation” purpose.

 

 In particular they cannot be used to specify any part of the choreography of the collaboration. In future releases they will play a role along with transitions and pseudo-states.

[Is this version 3.0 or are we giving up on this? How would monitoring have to be extended to know about the external events?]

 

The semantics of beginsWhen and endsWhen indicate that the corresponding business activity needs to be started or ended as soon as the expression in the attribute value is true. 

 

PreConditions and postConditions indicate that the corresponding business activity may start only if the corresponding expressions are true.

[ This reads to me that a business activity may start only if the postCondition is true? Is this what is meant?]

 

7.9

 

We have taken great care in this new version of the specification to distinguish what is executable and computable versus general expressions written in text and associated with model elements. In particular, we exclude, beginsWhen, endsWhen, preCondition and postCondition from the responsibility of a BSI.

 [ Will this be true in versions 2.0 and 3.0 also?]

 

beginsWhen 

xsd:string 

 

 

A description of an event external to the collaboration that normally causes this collaboration to commence

endsWhen 

xsd:string 

 

 

A description of an event external to this collaboration that normally causes this collaboration to conclude

preCondition 

xsd:string 

 

 

A description of a state external to this collaboration that is required before this collaboration can commence

postCondition 

xsd:string 

 

 

A description of a state that does not exist before the execution of this collaboration but will exist as a result of the execution of this collaboration

[the text needs to be aligned with this description IMO]

 

 

 

=====================

 

More Questions

 

1[Align with ebMS]. I proposed that we support monitoring and verification in the implementation of a BSI, and be able to base those computational tasks on an extension of an ebXML MSH to become an ebXML MSH plus BSI monitor. Along with support of graphical editing tools,  and alignment with CPPA, these are the main sources of constraints on us with respect to implementational concerns. These constraints are not to interfere with the main task of spelling out a business state alignment specification notation.

2[Execution]. We are not chartered to create an execution language under OASIS. Editorially I propose that we either remove or very strictly qualify the use of the term "execution." This term creates confusion for implementers who think of execution as running some process.

Perhaps by "execution," we mean"evaluation" or "interpretation". That is, a BSI monitoring and verification tool will have to check documents and statuses (that is what monitoring involves) and relate these "events" to movement from state to state(s) [plural because of nondeterminism presence.] BPSS implicitly contains a declarative (sub) language, and such a thing needs evaluation/interpretation. Is that what we mean by execution? Or is it something else?.

3[Timers]. A BSI also probably has to run timers as part of its monitoring. Since some signals arise from these timers, perhaps the production and consumption of signals is done by the BSI software tool. But business application systems may also want to know and/or control these events, and the BSI monitoring task would be passive with respect to the production of these events. Implementers now face considerable ambiguity when building tools that can flexibly control signals or just observe them. If they control them, how do the business applications themselves get informed about the result of signal processing? If they don't control them, they still must maintain a monitoring apparatus sufficient to determine state alignment status. So, for example, how do they know their timers line up correctly with the business application timers? This problem gets even worse as we move to allow more dynamic timers set by runtime conditions.

4.[Signals in general] Production of signal messages-- is this to be regarded as something a monitor/verifier has to do? Or can the monitor/verifier be independent of this task? It is part of the BSI interface, but is also something applications may in effect control. How do we allow deployment scenarios consistent with the BSI signal production being performed by the business application, rather than the "middleware"? (This question is implicit in issue 3 also.)

 

 



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