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

 


Help: OASIS Mailing Lists Help | MarkMail Help

ebxml-cppa message

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


Subject: [ebxml-cppa] BPSS & CPP/A alignment issue: synchronous vs asynchronousflow of control


BPSS is based on the metamodel behind the UN/CEFACT Modeling Methodology (UMM) defined in the N090R9.1 specification. Recently, Paul Levine also posted chapters for N090R10 at http://www.ebtwg.org/projects/documentation/bioreference/.
 
In both versions (Chapter9_Metamodel.pdf in N090R9.1 and Chapter8_Metamodel.pdf in N090R10), it is stated:
 
A business transaction specifies either a synchronous or asynchronous flow of control between two activities. The business transaction is a unit of work. All of the interactions in a business transaction must succeed or the transaction must be rolled back to a defined state before the transaction was initiated.
 
There are two business signals that can be asynchronously returned to the initiator of the business transaction: a business signal to verify proper receipt of a business document request and a business signal to non-substantively confirm the acceptance of a requesting business document for business processing.
 
If any of the time out parameters are exceeded, a time out exception must be thrown. If the retryCount property on the responding business activity is greater than zero then the business transaction must be re-initiated (or a notification of failed business control – possibly revoking a contractual offer – must be sent). All business signals and business documents returned after the transaction was initiated and up until the time out exception must be discarded. The recurrence property specifies the number of times a business transaction must be initiated. If the recurrent property value is 3 then the business transaction can be initiated a total of 4 times (the first initiation plus 3 retries). The time to perform property specifies the time to perform a single business transaction.

However, BPSS 1.01 captures neither the synchronous/asynchronous nature nor the retryCount property of a business transaction, thereby posing alignment issues with CPP/A. In BPSS, timeToAcknowledgeReceipt is specified at the level of RequestingBusinessActivity and RespondingBusinessActivity while timeToPerform is specified at the level of BusinessTransactionActivity. In practice, timing characteristics (especially timeToPerform) are often very different between synchronous and asynchronous transactions. For example, RosettaNet PIP 2A9 specifies a synchronous timeToPerform of 5 minutes with a retryCount of 0, and an asynchronous timeToPerform of 24 hours with a retryCount of 3.
 
At the CPP/A level, it is allowable to specify a syncReplyMode with possible values None, signalsOnly, signalsAndResponse, and responseOnly. However, if a BusinessTransaction has been designed to be asynchronous (with corresponding timing parameters) and yet not declarable as being asynchronous, then any attempt at the CPP/A level to specify the use of a synchronous delivery channel may end up with timing parameters that are quite inappropriate for synchronous interactions.
 
Since the 1.1 CPP/A spec will not have the capability to explicity override BPSS timing parameters, it seems more appropriate to capture the synchronous reply and retryCount parameters at the BPSS level and have CPP/A derive those parameters from the corresponding business process specifications. I think BPSS should allow a BusinessTransactionActivity to be declared as synchronously only, asynchronous only, or both.
 
Another issue with leaving sync reply mode not being specified at the BPSS level is that it becomes unclear whether its specification at the CPP/A level constitutes overriding of related BPSS specified timing parameters. It seems reasonable to interpret the modes signalsAndResponse and responseOnly as requiring that the entire transaction be completed synchronously. That would imply no receipt acknowledgment is used in either direction in the case of responseOnly, and no receipt acknowledgment for the response is returned by the transaction initiator to the transaction responder in either mode (and thus overriding of the timeToAcknowledgeReceipt parameter). However, this might also conflict with any non repudiation of receipt requirement associated with the BusinessRequestActivity and the BusinessResponseActivity. Either the BPSS spec or the CPP/A spec, or both, should clarify the expected behavior when such conflicts arise (i.e., non repudiation of receipt is required and yet no receipt acknowledgment signal is used).
 
Thanks,
-Arvola
 


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


Powered by eList eXpress LLC