W3C home > Mailing lists > Public > public-ws-chor@w3.org > March 2003

RE: Definition of Terms

From: Assaf Arkin <arkin@intalio.com>
Date: Tue, 18 Mar 2003 14:06:15 -0800
To: "Patil, Sanjaykumar" <sanjay.patil@iona.com>, "Burdett, David" <david.burdett@commerceone.com>
Cc: <ChBussler@aol.com>, <public-ws-chor@w3.org>
RE: Definition of TermsThat would make perfect sense.

I think I know what David means, and I think he knows what I mean, but if we
use words incorrectly we may confuse other people. That would make the
discussion harder. For example, in one of my examples I used service when I
ment role, and that was kind of confusing. And we still don't have a good
word for orchestration instance (other than 'orchestration instance').

So we're trying to find simple explanations that are not confusing but
capture the intention very well, and then we should summarize that. I also
think that David's list captures the jist of it and should be represented in
tabular form. That would help move the discussion further.

  -----Original Message-----
  From: Patil, Sanjaykumar [mailto:sanjay.patil@iona.com]
  Sent: Tuesday, March 18, 2003 1:01 PM
  To: Assaf Arkin; Burdett, David
  Cc: ChBussler@aol.com; public-ws-chor@w3.org
  Subject: RE: Definition of Terms

  David/Assaf, would it make sense to capture these definitions (at least
the ones for orchestration and choreography) in a document? We could even
use the set of characteristics that David listed in his original email to
highlight the differences between orchestration and choreography, perhaps in
a tabular form. Once again, I am personally keen on clearly distinguishing
the two conceptual areas and it doesn't matter to me much which words we
stick to them.

  I am sure there are others on the list who would prefer to review the
summary of this discussion before making any further comments! Chairs, any
  Sanjay Patil
  Distinguished Engineer
  IONA Technologies
  2350 Mission College Blvd. Suite 650
  Santa Clara, CA 95054
  Tel: (408) 350 9619
  Fax: (408) 350 9501
  Making Software Work Together TM

    -----Original Message-----
    From: Assaf Arkin [mailto:arkin@intalio.com]
    Sent: Tuesday, March 18, 2003 12:51 PM
    To: Burdett, David
    Cc: ChBussler@aol.com; Patil, Sanjaykumar; public-ws-chor@w3.org
    Subject: RE: Definition of Terms

    You'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 ;-)


     -----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


      I agree with your response completely, but with one exception.

      Choreographies should be expressed in terms of roles not services,

      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 ...

        activity order send request

        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.



      -----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
      >     is achieved is immaterial, i.e. it can be eith synchronous or
      >     asynchronous - whatever those words mean. In fact on the WSA
      >     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
      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
      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
      >     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
      >     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
      >     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
      >     or you don't do business, b) a trade association, e.g.
      >     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
      >     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
      I think that the use of the term 'domain of control' depends on
      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
      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
      two activities one after the other. Service Y has some unspecified
      to do that, maybe because it has a big piece of Java code, or because
      uses some internal mechanism to chain these activities together. But
      it's not important to express how these activities are chained
      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
      of control using some form of sequencing that does not require
      form of communication, e.g. in a procedural way, using state
      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
      being procedural and non-cyclic despite the intent of the authors)


      >     Thanks,
      >     Christoph
      >     [David Burdett] [1]See, for just one example, the thread
      >     at
      >     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 17:07:19 UTC

This archive was generated by hypermail 2.3.1 : Tuesday, 6 January 2015 21:00:57 UTC