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] 5/24/2004: Operation Activity (Operation Invocation or Action)Summary [RSD]


OASIS.ebBP.WI-12-WSDL Support;
Topic|;
Point|;
Attachment|http://www.oasis-open.org/archives/ebxml-bp/200402/msg00175.html;
Attachment|http://www.oasis-open.org/archives/ebxml-bp/200402/msg00064.html;
Attachment|http://www.oasis-open.org/archives/ebxml-bp/200402/msg00080.html;
Attachment|http://www.oasis-open.org/archives/ebxml-bp/200402/msg00089.html;
Attachment|http://www.oasis-open.org/archives/ebxml-bp/200402/msg00097.html;
Attachment|http://www.oasis-open.org/archives/ebxml-bp/200402/msg00098.html;
Attachment|http://www.oasis-open.org/archives/ebxml-bp/200402/msg00105.html;
Attachment|http://www.oasis-open.org/archives/ebxml-bp/200402/msg00111.html;
Attachment|http://www.oasis-open.org/archives/ebxml-bp/200403/msg00073.html;
Attachment|http://www.oasis-open.org/archives/ebxml-bp/200404/msg00022.html;
Attachment|http://www.bindsys.com/bindstudio/demosdocumentation.htm;
Attachment|http://www.oasis-open.org/apps/org/workgroup/ebxml-bp/download.php/5594/ebbp-mtgminutes-021604.txt;
Attachment|http://www.oasis-open.org/apps/org/workgroup/ebxml-bp/download.php/6054/ebbp-mtgMinutes-032204.txt;

mm1@
In today's call I was asked to provide a summary of the report, proposal 
and discussions surrounding OperationActivity (Invocation or Action - 
Name can be changed). OperationActivity references an abstract WSDL 
interface and operation names (one side of the interface while BTA and 
CA acknowledge the collaborative interaction). The actual WSDL fine link 
will be in the CPP.  The BSI could look for the interface and operation 
name in the WSDL file and bind it to that port.

Several postings (see end of this email) have attempted to differentiate 
the use of WSDL, its limitations, maintaining the business level 
concepts from the interface description, and WSDL's focus on the server 
(not the client even in WSDL v2.0). Below are the summary details 
surrounding all our discussions and points to evaluate/consider.  Note 
that the WSDL definition for OperationActivity is separate from the 
discussion of how / to what extent we define the BSI.

Potential requirements include:
 1. Differentiate MEP and business transaction patterns and business 
transactions.
 2. Accommodate dispatch and reach (evidentiary or traceability 
requirements) [v3.0] See work item 67. Also reference:
    http://www.uncitral.org/english/texts/electcom/ml-ecomm.htm
 3. Enable the use of WSDL while maintaining seamless integration with 
ebBP, through the BSI.
 4. Keep it simple (v2.0 focus).
 5. Keep the internal behavior separate from the collaborative process.  
Keep separate internal organization from how you publish your behavior 
from your B2B partners.

Options proposed over the varied discussions (the first two have been 
discussed primarily and have been part of a straw poll:

    * Create a constrained BT pattern to allow the use of WSDL.
    * Create a OperationActivity (or InvocationAction) to allow use of
      WSDL. [1]
    * Create an extension mechansim that could hook to a WSDL. Allow
      capability to replace an item using the Venetian Blind
      substitution group method as well as defined hooks for lower level
      artifacts, such as the WSDL definitions.

[1] This could be equated to a WSDL extension of the Business Action 
that constraints its use.

To create some boundaries here are two important definitions:

    * Business Transaction (BT): A business transaction is a set of
      business information and business signal exchanges amongst two
      business partners that must occur in an agreed format, sequence
      and time period. A BT is a re-useable protocol between two roles. 
      The business transaction protocol is independent of underlying and
      transport signals such as reliable messaging [1]
    * WSDL: At an abstract level, WSDL describes a Web service in terms
      of the messages it sends and receives; messages are described
      independent of a specific wire format using a type system,
      typically XML Schema. An /operation/ associates a message exchange
      pattern with one or more messages. A /message exchange pattern/
      identifies the sequence and cardinality of messages sent and/or
      received as well as who they are logically sent to and/or received
      from. An /interface/ groups together operations without any
      commitment to transport or wire format..........Web Services
      Description Language (WSDL) message exchange patterns define the
      sequence and cardinality of abstract messages listed in an
      operation. Message exchange patterns also define which other nodes
      send messages to, and receive messages from, the service
      implementing the operation. [2]

[1] UMM, R10, Annex 1 and ebXML BPSS v1.1.
[2] WSDL v2.0, 26 March 2004 (Core Language and Message Exchange Patterns)

The intent of BPSS is to choose the effective use of the guiding BT 
patterns where signals are meaningful for a particular BT. The patterns 
guides the actrual exchange of messages and signals between the partners 
to achieve the required electronic commerce transaction.  A business 
signal is an object that is transmitted back to an activity that 
initiated the transfer of execution control. Business signals have 
specific business purpose and are separate from lower protocol and 
transport signals as specified in the ebXML Message Service 
Specification. The state of a given business transaction activity 
instance can be explicitely calculated at run-time by evaluating these 
signals.

Characteristics surrounding WSDL vs. business transactions and patterns 
in ebBP:

    * WSDL fails to differentiate business signals or messages (every
      exchange is a message without the semantics associated with their
      usage).
          o Looking at the UMM R10, the six patterns can involve or
            involve business signals (with specified restrictions on
            their use).
          o Signals are not a part of the WSDL MEP.
    * WSDL involves an interface and ebBP does not.
          o Although abstract, an abstract WSDL interface binds to a
            concrete binding.
          o The WSDL exists below the BSI that supports web
            service-enabled and non-enabled capabilities. See
            definitions above and W3C site.
    * WSDL has not matured to handle a composed web service (where
      context could be difficult to track - maps to our multi-party
      discussion).
    * WSDL does not include the business protocol that exists in ebBP.
          o Business protocol exceptions can occur with use of the BT
            patterns. See UMM R10.
          o WSDL only recognizes technical failures (WSDL faults or
            fault messages).
    * At this time, we recognize six BT patterns in ebBP with at least
      one more to be developed (contract-formation). Each of these
      patterns includes semantics related to contractual terms and
      obligations, receipt and acceptance acknowledgements, substantive
      Business Acceptance, etc.
          o WSDL v2.0 (working draft) currently recognizes six _web
            service_ patterns and does not recognize other than web
            services. Only one appears to have relevance to our
            discussion, out-in (based on a server-side visible model only).
    * WSDL is bound to a particular role (even with new emerging
      technologies, roles do not change - additional interfaces have to
      be defined to support a party that assumes more than one role
      during a collaboration.
    * A BT can relate to more than one BTA which requires multiple WSDL.
      The BT actually can go over several kinds of MEP.  Any binding to
      WSDL should occur at the CPPA [3].
          o A BTA can include a request and many possible responses (at
            a minimum success and failure). WSDL can only handle one
            response to any given request.
          o The BTA can be executed more than once, converse to WSDL. [4]
    * WSDL lacks transactional semantics.
          o Dependencies may apply to other specifications including but
            not limited to WS-T (AT/BA), WS-C, WS-CAF, BTP et al.
          o In v3.0 ebBP, we have discussed the possibility to use
            shared context and WS-CAF to enable multi-party
            collaboration. Our use of WSDL now may impact this later.

[3] Dale Moberg, 9 February 2004 (see _References_).
[4] Looping may be provided by other technologies but not WSDL in and of 
itself.

If we define an OperationInvocationActivity/Action/xyz:

    * We keep the semantics separate.
    * We alleviate confusion that a business transaction = a WSDL interface.
    * We allow a WSDL abstract interface to be used and bound elsewhere.
    * We have to define what the statuses are it can return (see those
      enumeration values in BTA or CA). [5]
    * We have to establish relationships to Document Envelope and roles
      (see note above about role constraints). [5]
    * We would have to determine any other side effects that may occur,
      if any.

If we attach a new constrained BT pattern to the Operation:

    * We would have to evaluate if this pattern related to the
      business-defined ones that exist. Looking at the WSDL MEP I cannot
      see that is true (WSDL is server side focused and doesn't equate
      any substantive response from a client or expectations from a
      client that any ack is required).
    * We would have explicitly define what the pattern looked like and
      cascade all other restrictions into the ebBP for its use.
          o Other restrictions may be challenging to implement in ebBP.
                + Grammar, sequence, schema, content, and activity
                  processing such as handoff for application level
                  processing (AcceptanceAcknowledgement although this
                  may in itself become a business message in v3.0).
                + How to apply use of WSDL in different compositional
                  layers of ebBP.
    * We would need to determine other side effects that may occur, if any.

In v3.0, we anticipate we will attach dispatch-reach requirements. Those 
requirements will be applied regardless of activities or actions are 
defined in ebBP.

I encourage everyone to comment on this summary, add your thoughts, 
diagrams, modeling input, etc. I have attached below an additional input 
I received today from JJ Dubray.

_References:_
Original Dubray proposal, 9 February: 
http://www.oasis-open.org/archives/ebxml-bp/200402/msg00175.html
References compiled by Dubray, Krishnan and Martin, 16 February: 
http://www.oasis-open.org/archives/ebxml-bp/200402/msg00064.html
Type concern from Moberg, 9 February 2004: 
http://www.oasis-open.org/archives/ebxml-bp/200402/msg00080.html
Tell question to Dubray, 9 February: 
http://www.oasis-open.org/archives/ebxml-bp/200402/msg00089.html
Tell, UNCITRAL reference on dispatch-reach, 12 February: 
http://www.oasis-open.org/archives/ebxml-bp/200402/msg00097.html
Roberts, Request for a white paper stating how WSDL and BT, 12 February: 
http://www.oasis-open.org/archives/ebxml-bp/200402/msg00098.html
St. Amand, Need for traceability: 
http://www.oasis-open.org/archives/ebxml-bp/200402/msg00105.html
Roberts, Request for extension to support WSDL: 
http://www.oasis-open.org/archives/ebxml-bp/200402/msg00111.html
Martin, Summary report and proposal: 
http://www.oasis-open.org/archives/ebxml-bp/200403/msg00073.html
Martin, Straw poll vote notice: 
http://www.oasis-open.org/archives/ebxml-bp/200404/msg00022.html
Roberts, How BindStudio separates BT and use of WSDL: 
http://www.bindsys.com/bindstudio/demosdocumentation.htm
Meeting minutes on detailed WI-12 discussion, 16 February and 22 March 
2004: 
http://www.oasis-open.org/apps/org/workgroup/ebxml-bp/download.php/5594/ebbp-mtgminutes-021604.txt
http://www.oasis-open.org/apps/org/workgroup/ebxml-bp/download.php/6054/ebbp-mtgMinutes-032204.txt
Meeting minutes 24 May 2004, attached.

Other references from:
UMM, R10, Chapters 8 and 9.
ebXML BPSS v1.1

Code provided:
<Process>
  <OperationDefinition
     name="xs:NCName" ||     guid="xs:anyURi" >
     fromRole="xs:string" >
     toRole="xs:string" >
     fromRoleGUIDREF="GUIDREF" >
     toRoleGUIDREF="GUIDREF" >
      >
    <InitiatingOperation
          name="xs:NCName" ||          guid="xs:anyURi" >
          interface="xs:string" >
          name="xs:string" >
          namespace="xs:anyURI" >
      <documentation />?
    </InitiatingOperation >
    <RespondingOperation
          name="xs:NCName" ||          guid="xs:anyURi" >
          interface="xs:string" >
          name="xs:string" >
          namespace="xs:anyURI" >
      <documentation />?
    </RespondingOperation >
    <documentation />?
  </OperationDefinition>

  <OperationActivity
     name="xs:NCName" ||     guid="xs:anyURi" >
     timeToPerform="xs:duration" >
     isConcurrent="xs:boolean" >
     beginsWhen="xs:string" >
     endsWhen="xs:string" >
     preCondition="xs:string" >
     postCondition="xs:string" >
      >
</Process>

_Dubray, 24 May 2004_
WS                                                            Collaboration
Made of several operations without                Made of several BT 
with an explicit relationship (chor)
  explicit relationship to each other                      

Does not require a BSI or agreement             Requires a BSI
   mechanisms                                               Requires 
"negotiated" agreements


Operation                                                    BT
Req, Response, Fault*                                 Request,Response*, 
Fault*
No state alignment protocol                          Business 
transaction protocol
Directed (A->B)                                           No direction 
specified (BTA)

Looking at this set of properties it is legitimate to ask the question 
whether we want to make an operation invocation a BT (it clearly looks 
like a subset). However, it is not because we can do something that we 
should do something. This question is as legitimate (not more) to ask 
whether a CORBA call or an RPC should be part of a collaboration. I 
don't think I would find many people asking for invoking a method from a 
BPSS. The reason why this question is relevant is because, WS is an 
internet ready technology and many businesses may decide to expose them 
[sic].

If we make an operation look like a BT we would:
a) bring confusion, "so why do I need all this stuff if an operation IS 
A business transaction". Transaction is about state alignment (not 
rollback/compensation - rollback/compensation is a convenience mechanism 
to serve state alignment). A web service operation does not give you any 
kind of state alignment guarantee. ebXML BPSS and the ebXML architecture 
has been carefully designed and tested to provide state alignment 
capabilities via the concept of signals. Let me know if you need an 
explanation on this (the short version is that in the WS, only the 
consumer of the service knows the outcome, that kind of works for one of 
services like "creditCheck" where the interaction does not depend on 
previous states being reached. Imagine a world where we carry out 
interactions without being sure of the past????). A web service 
operation by itself CANNOT guaranty state alignment in any situation.

b) we will have to hack BPSS pretty much everywhere to explain that a 
operation BT does not work like a BT
    - cannot be used in any order (so we have to specify the roles 
somewhere)
    - cannot be changed via "substitution set mechanism"
    - cannot be augmented to use a business transaction protocol
    - use a different "CPP/A" mechanism
    - different exception mechanism (technical failure)
    -...

Making an operation a BT will require that we annotate EVERY aspect of 
BPSS to specify how this works with the operation BT pattern. It will 
also limit our ability to use other WS stack spec as we see fit.

I recommend that we keep operation and BT separate and create an 
operation activity which has its own behavior totally independent from 
the BT behavior. I recognize that this is a hybrid approach, but we are 
dealing with technologies that had and will have different paths.

JJ-
@mm1



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