- From: Martin Chapman <martin.chapman@oracle.com>
- Date: Mon, 10 Feb 2003 16:35:24 -0800
- To: "'Jean-Jacques Dubray'" <jjd@eigner.com>, "'Assaf Arkin'" <arkin@intalio.com>, "'Ricky Ho'" <riho@cisco.com>
- Cc: <public-ws-chor@w3.org>
Jean-Jacques,
I really think it depends on the use case.
If I am starting from scratch and designing a new businees process, I
would start from the process defintion
and end up with the WSDL for each participant.
However, if I already have the WSDL defined and need to intgerate them
via a process then cleary the process comes second.
IMHO I think we should accomadate both approaches, and neither one
should be the sole design centre for our work.
Martin
> -----Original Message-----
> From: public-ws-chor-request@w3.org
> [mailto:public-ws-chor-request@w3.org] On Behalf Of
> Jean-Jacques Dubray
> Sent: Sunday, February 09, 2003 9:42 AM
> To: 'Assaf Arkin'; 'Jean-Jacques Dubray'; 'Ricky Ho'
> Cc: public-ws-chor@w3.org
> Subject: Approaches to Web Services Choreography [was Same
> model for both Public and Private process ??]
>
>
>
>
> Since this email where Assaf was asking me to reconsider my
> position I exchanged multiple emails with him to try to come
> to a common understanding and maybe a consensus.
>
> In the blitz of messages that we exchanged (though it would
> be worth to summarize it at some point), one comment from
> Assaf puzzled me. My main point of contention with WSCI is
> that it models the choreography (c12y) of APIs and then via a
> global model stiches them together leaving little hope to get
> an overall view of the collaboration itself. Assaf admitted
> that if the APIs were truly designed in isolation the
> probability of being able to choreograph them together would
> be close to zero plus a few monkeys.
>
> If you take a closer look at BPEL and WSCI, they both take
> the approach to use what would be otherwise an "internal
> business process definition" to describe how a collaboration
> operates. The only reason for that is because they are taking
> WSDL as a starting point and not as and end point. BPEL
> claims without saying it that the "other" services are mirror
> to the one they choreograph, therefore, no need to really
> talk about the "other" side. Hence the concept of serviceLink
> which is just a point to the "other" mirror service. WSCI
> goes a little futher and allow for a little more flexibility
> by allowing somewhat differently designed web services to
> work together but admitting that these services cannot of
> course widely differ from each other.
>
> In my opinion, using the concept of an "internal business
> process definition" to choreograph a collaboration is a bad
> idea because you then need to articulate how this special
> "internal business process definition" (often labelled as
> abstract) works with my "concrete" internal business process
> definition which I especially don't want to share with my partners.
>
> Now if the ws-chor group would consider an alternative
> approach of using WSDL as an end point and not a starting
> point, I think it would greatly simplify the "web service
> choreography" problem. In order to take it as an end point,
> you need to invent a new concept that I call a message
> exchange and what BPSS calls a business transaction. I
> mention message exchange to show how close this is to the
> concept of message exchange pattern being considered by WSDL.
> Of course in BPSS, a business transaction is both a business
> message exchange (e.g. Request/Response) and a series of
> signals as part of the business collaboration protocol.
>
> It is relatively easy to choreograph these MEPs or Business
> transactions. BPSS is one example. Can be we do a better job?
> Of course. The patterns of Prof. Van der Aalst could help up
> close on the control flow once and for all for instance. Once
> this is done, this is were WSDL comes to play (one for each
> side) and where you bind this choreographed messaged exchange
> with each side's WSDL. A message exchange would typically be
> bound to a port.
>
> As I mentioned several times on this list and others I
> believe that there are 3 entities that need to be modeled (at least):
> - Collaboration (between business partners)
> - Internal business processes
> - long running behavior of components (such as order entry)
> when participating in business processes and collaborations.
>
> I have shown in a paper that this concept of "choreography of
> message exchange" allows you to efficiently model
> collaboration and internal business processes. Once you do
> that, specifications such as BPEL or BPML can be used to
> model the long running behavior of components.
>
> Respectfully,
>
> Jean-Jacques Dubray,
>
>
> >>-----Original Message-----
> >>From: Assaf Arkin [mailto:arkin@intalio.com]
> >>Sent: Tuesday, February 04, 2003 2:07 PM
> >>To: Jean-Jacques Dubray; 'Ricky Ho'
> >>Cc: public-ws-chor@w3.org
> >>Subject: RE: Same model for both Public and Private process ??
> >>
> >>
> >>> -----Original Message-----
> >>> From: public-ws-chor-request@w3.org
> >>> [mailto:public-ws-chor-request@w3.org]On Behalf Of Jean-Jacques
> Dubray
> >>> Sent: Tuesday, February 04, 2003 3:26 AM
> >>> To: 'Ricky Ho'
> >>> Cc: public-ws-chor@w3.org
> >>> Subject: RE: Same model for both Public and Private process ??
> >>>
> >>> [JJ] I assume you think of states in terms of "getting ready to
> >>> send/receive a given message", otherwise, clearly notions
> like "this
> >>> order is the approved state" is not necessarily part of
> the state of
> >>> public processes as BPEL or BPML think about it, let
> alone WSCI and
> >>> WSCL. You may want to read the eBTWG - Business Entity Types
> Technical
> >>> Specification
> (http://www.collaborativedomain.com/standards/index.htm
> >>> under the BETL section). These guys are working on modeling these
> kinds
> >>> of states. I find the concepts of this specification quite
> fascinating
> >>> actually.
> >>
> >>Yet, both BPEL and BPML allow you to model the "this order is the
> approved
> >>state", whether it is the distinct context in which you perform
> actions,
> >>or
> >>a value expressed in that context which you can communicate
> >>(send/receive), evaluate, correlate, etc.
> >>
> >>
> >>> [JJ] This is actually incorrect. In BPSS for instance, you clearly
> have
> >>> business rules that allow you to specify that if a particular
> document
> >>> contains a certain value, then the collaboration ought to continue
> that
> >>> way, otherwise, it will continue this way. The key though (and of
> >>> course) is that the condition expression can only apply to a
> document
> >>> that both parties already successfully exchanged. You
> cannot specify
> >>> conditions expressions that only one party can evaluate. One big
> >>> difference between public and private processes is that public
> processes
> >>> do not have an underlying engine. It is merely the interaction
> between
> >>> the private processes that advances the state of the
> public process
> (aka
> >>> collaboration). However, one can formally demonstrate that a
> >>> collaboration is also a finite state machine.
> >>
> >>In other words, if the buyer and supplier agree that an order is >
> $500 as
> >>can be calculated from the message (if the schema was
> known) the buyer
> can
> >>reject the message and the supplier will accept a reject
> message. But
> if
> >>the
> >>supplier has determined that the buyer does not have
> sufficient credit
> to
> >>purchase the product, the supplier proceed to accept the order since
> the
> >>buyer may have a different opinion on the matter ("what do you mean
> >>rejected? you know I'm good for it! I might not have money
> right now,
> but
> >>I
> >>promise to pay you back!").
> >>
> >>
> >>> Once you have established such a model, one can think of how to
> >>> choreograph message exchange, work being done, user interactions,
> and
> >>> what not. Please, note that these will never express "states" but
> rather
> >>> "pseudo-state" since the same public/private definition will not
> refer
> >>> to a given state of the company but rather to the way
> state advances
> >>> within the company. It is only when a process instance is created
> that
> >>> in effect a "real" state is bound to the process definition, which
> then
> >>> controls how this "state" advances.
> >>
> >>Very well said!
> >>
> >>
> >>> b) it enables unit of work to be more than "request/response"
> agents. In
> >>> the example I provide which is very realistic, the Order entry
> component
> >>> manages 4 messages as part of the same business process
> definition,
> not
> >>> just request/response.
> >>
> >>Not everyone has reached the conclusion that a choreography
> language
> >>should allow you to manage 4 messages as part of the same business
> >>process definition, but at least the languages we are talking about
> >>allow you
> to
> >>do
> >>that. I think that's a base requirement for all of these
> languages. At
> >>least something we all have in common ;-)
> >>
> >>
> >>> c) user interactions are part of the process definition
> (BPEL/BPML
> >>> completely ignore user interactions).
> >>
> >>I like to think of Web services as presenting a model for user
> >>interaction, I like to think of BPEL/BPML/WSCI as
> supporting any and
> >>all kinds of
> Web
> >>services, in particular those representing user interactions, I know
> of a
> >>few products that actually do that and so far with great success. So
> my
> >>limited experience with the usage of this languages seems to
> contradict
> >>this
> >>statement, but again YMMV.
> >>
> >>
> >>> IMHO, this approach is much closer to Pi-calculus than
> BPML or BPEL
> will
> >>> ever be as it models the business process as an exchange
> of message
> >>> between independent components (running in their own system
> process).
> >>> Other specs like BPEL and BPEL use Pi-calculus in the
> inter-process
> >>> context not the inter-component context. I am not a specialist of
> >>> Pi-calculus so I'll leave this statement more as a question than a
> fact.
> >>
> >>Very interesting.
> >>
> >>In a previous e-mail I provided an example showing where pi-calculus
> is
> >>used
> >>for inter-component context. I think that using pi-calculus in the
> >>inter-process context brings tremendous value, so I
> highlighted that
> >>possibility, but clearly the example illustrated two independent
> processes
> >>executing at two different systems (trading partners, if you want to
> call
> >>it
> >>that).
> >>
> >>Will you consider revisiting that e-mail and commenting on
> that fact?
> >>
> >>arkin
> >>
> >>
> >>>
> >>> If the approach I suggest is proven correct, it could change the
> scope
> >>> of the WS-Chor group since it will result in a specification that
> spans
> >>> from (BPEL/WSCI/WSCL/BPSS) to (BPEL/BPML). In my opinion, it will
> also
> >>> yield significant simplification to the overall space.
> >>>
> >>> Best regards,
> >>>
> >>> Jean-Jacques Dubray,
> >>>
> >>>
> >>>
> >>> Correct me if I misunderstand, it
> >>> >>seems
> >>> >>HP's WS-Conversation-Language is taking this approach.
> >>> >>
> >>> >>But I also hear that "public process" can be described
> as a subset
> of
> >>> a
> >>> >>"private process". If you take out the "process variable",
> "assign
> >>> >>statements", and the "conditions" in the switch blocks and loops
> ..
> >>> etc
> >>> >>from the "private process", then you will have the "public
> process".
> >>> In
> >>> >>other words, public process can be just use the same model of
> "private
> >>> >>process". It seems WSCI and BPEL-private process is taking this
> >>> approach.
> >>> >>
> >>> >>I also heard that the "flow-chart" is equivalent to "state
> diagram".
> >>> They
> >>> >>are just a dual-representation to each other.
> >>> >>
> >>> >>Any comments and thoughts ... ?
> >>> >>
> >>> >>Best regards,
> >>> >>Ricky
> >>>
>
>
Received on Monday, 10 February 2003 19:38:22 UTC