- From: Assaf Arkin <arkin@intalio.com>
- Date: Tue, 18 Mar 2003 12:50:35 -0800
- To: "Burdett, David" <david.burdett@commerceone.com>
- Cc: <ChBussler@aol.com>, <sanjay.patil@iona.com>, <public-ws-chor@w3.org>
- Message-ID: <IGEJLEPAJBPHKACOOKHNMELODFAA.arkin@intalio.com>
RE: Definition of TermsYou'll have to excuse me for confusing people again. I also think of choreography in terms of roles, so it can support any number of services, but most of the time when I write down examples I use the term service. I did mean what you said and said not what I mean ;-) arkin -----Original Message----- From: Burdett, David [mailto:david.burdett@commerceone.com] Sent: Tuesday, March 18, 2003 12:36 PM To: Assaf Arkin; Burdett, David Cc: 'ChBussler@aol.com'; sanjay.patil@iona.com; public-ws-chor@w3.org Subject: RE: Definition of Terms Assaf I agree with your response completely, but with one exception. Choreographies should be expressed in terms of roles not services, e.g. Role J activity A1 send request Role K activity A2 receive request I think this is important as it enables reuse of the choreography definition, to take a more realistic example ... Buyer activity order send request Seller activity order receive request If you don't use roles then you would have ... ABC Co Buyer service activity order send request XYZ Inc Selling service activity order receive request ... and every interaction done in business would each have its own separate choreography. This won't scale. Choreography really should be abstract in order to enable reuse. This also applies to the message definition as well as the service. Thoughts? David -----Original Message----- From: Assaf Arkin [mailto:arkin@intalio.com] Sent: Monday, March 17, 2003 11:58 PM To: Burdett, David Cc: 'ChBussler@aol.com'; sanjay.patil@iona.com; public-ws-chor@w3.org Subject: Re: Definition of Terms Burdett, David wrote: > Christoph > > See comments inline below. > > David > > -----Original Message----- > *From:* ChBussler@aol.com [mailto:ChBussler@aol.com] > *Sent:* Monday, March 17, 2003 9:44 PM > *To:* david.burdett@commerceone.com; sanjay.patil@iona.com; > public-ws-chor@w3.org > *Cc:* ChBussler@aol.com > *Subject:* Re: Definition of Terms > > Hi, > > a remark on 'control' (or maybe a question). I assume that your > definition of 'message' is abstract, i.e. does not imply > asynchronous transmission between sender and receiver. > [David Burdett] Right. A message is completely abstract. It is > simple the transmission of information from one location to > another (e.g. from one service to another). How this transmission > is achieved is immaterial, i.e. it can be eith synchronous or > asynchronous - whatever those words mean. In fact on the WSA group > there has been great difficulty and debate around defining what > synchronous and asynchronous actuall mean [1]. > I would tend to define a message as a container of information. The container notion is important because it lets you compose different bits of information that can be reused in different messages, and different bits of information may have different significance (e.g. the business request, the topic of request, the requesting party). WSDL does that pretty well. The message definition is that of a message at rest. It says nothing about which direction it goes on, or which service can consume or produce it. That information is provided by the operation. The operation tells you whether that message is an input or an output, and in fact what it signifies. The action then tells you which service is responsible for performing that operation either as the requestor or provider, and in relation to all other actions. > The definition of 'control' in general is difficult. Maybe a > distinction has to be made between controlling the definition vs. > controlling the execution (i.e., type vs. instance). > [David Burdett] Very true. A choreography definition (the type) > is, IMO, something that MUST have an independent existence and be > agreed by all the roles involved before interoperable solutions > can occur. The actually choreography *definition* must also be > owned by someone as it is a single definition that describes what > all the roles must do. For example, in B2B, the owner of a > choreography definition could be: a) an 800lb Gorrilla, e.g > Walmart telling all its suppliers follow the Walmart choreography > or you don't do business, b) a trade association, e.g. RosettaNet > with their PIPS, or c) an international standards organization, > e.g. UN/CEFACT. > On the other hand, the execution of a choreography can be owned by > no one and HAS to be handled by mutual agreement, even if it > is the SME agreeing to do business the way Walmart wants them to! > I think that the use of the term 'domain of control' depends on context. We can talk about who owns the definition, who runs the instance, even who serves the coffee. But I think there's a very clear and precise meaning in terms of choreography. Let's say that some service X sends a message (request) to service Y, service Y receives that message, does something and then sends back a response. Service X performs some activity A1 which sends the message. Service Y performs some activity A2 which receives the message, and later on some activity A3 which sends back a response. Service X and service Y belong to different domains of control. Service X can't just start an activity in service Y by wishful thinking. And ESP technology is not proven yet. So service X "coerces" service Y to start an activity by sending it a message. Service Y needs to perform two activities one after the other. Service Y has some unspecified means to do that, maybe because it has a big piece of Java code, or because it uses some internal mechanism to chain these activities together. But it's not important to express how these activities are chained together in the context of a choreography. So in the choreography we would say something like: service X activity A1 send request service Y activity A2 receive request We show the relation between two activities executing in different domains of control by expressing how they communicate, which is important information for both services to understand. On the other hand, the choreography definition of service Y could say something like: service Y activity A2 receive request activity A3 send response Exactly how service Y chains these two activities together is not interesting for service X (or any other service in the choreography). It's an implementation detail. Service Y may have some other message that is send by A2 to start A3, or it may update some record in the database, of have some person flicking switches on a big panel. That's not important. We show the relation between two activities executing in the same domain of control using some form of sequencing that does not require explicit form of communication, e.g. in a procedural way, using state transition diagrams, or by expressing a process flow (WSCI takes the third approach since it makes it easier to model activities that occur in parallel. Unfortunately, due to the choice of syntax - and I'll be first to take the blame - it is often confused with being procedural and non-cyclic despite the intent of the authors) arkin > > Thanks, > > Christoph > > [David Burdett] [1]See, for just one example, the thread starting > at http://lists.w3.org/Archives/Public/www-ws-arch/2003Mar/0074.html > > In a message dated 3/17/03 4:55:50 PM Pacific Standard Time, > david.burdett@commerceone.com writes: > > -- "Those who can, do; those who can't, make screenshots" ---------------------------------------------------------------------- Assaf Arkin arkin@intalio.com Intalio Inc. www.intalio.com The Business Process Management Company (650) 577 4700
Received on Tuesday, 18 March 2003 15:52:07 UTC