- From: Burdett, David <david.burdett@commerceone.com>
- Date: Tue, 13 May 2003 15:35:43 -0700
- To: "WS Choreography (E-mail)" <public-ws-chor@w3.org>
- Message-ID: <C1E0143CD365A445A4417083BF6F42CC053D1ACA@C1plenaexm07.commerceone.com>
In the call today, I was asked to define what is meant by abstraction and why it is useful in choreography definitions ... so here goes ... Abstraction is one of the solutions to the problem of reuse and variability. Reuse is required because: 1. The organizations taking part in a choreography all need to use the same choreography if they are to interoperate successfully 2. Each choreography will need an implementation that is aware of and can behave according to the rules of the choreography 3. Reducing the number of choreographies an implementation has to support by enabling choreography reuse will therefore reduce the costs of implementation. Variability is a "fact of life" because message content will vary because of: 1. Different contexts. For example, you only need VAT on orders in Europe, you only need to specify shoe size for orders in the shoe industry 2. Different implementations. An organization is free to specify their own service interface in terms of the format of the messages they accept, for example: Does the Order go in the SOAP body or in an attachment? Are attachments packaged using MIME or DIME? Is the message sent using HTTP or SMTP? Is the message digitally signed or encrypted using XMLDsig/Encryption, PKCS#7? or not at all? etc 3. Different methods of communication. For example, big business can use SOAP and Web Services but maybe the only way to send an order to an SME (Small to Medium size Enterprise) is by fax or phone. (An aside, IMHO, big businesses will want to be able to use the same choreography with *everyone* no matter how big or small, so support for this last type of "variability" is important). ... yet in spite of all the variability, the basic sequence of exchanging messages (i.e. the choreography) is the same. Abstraction helps as: 1. You define the messages in a way which is independent of their "variability", i.e. they are "abstract messages" 2. You define the services the messages are sent to/from in a way which is independent of the service implementation, i.e. they are "abstract services" 3. A choreography definition that is based on abstract messages and services is therefore reusable and directly shareable as it is independent of the "variability". 4. ... and finally ... shareable, reusable choreographies reduce the cost of implementation. Hope this helps. David PS I think it quite possible that "templates" based on WSDL 1.2 are capable of being the way of defining abstract services and messages. Director, Product Management, Web Services Commerce One 4440 Rosewood Drive, Pleasanton, CA 94588, USA Tel/VMail: +1 (925) 520 4422; Cell: +1 (925) 216 7704 <mailto:david.burdett@commerceone.com> mailto:david.burdett@commerceone.com; Web: <http://www.commerceone.com/> http://www.commerceone.com
Received on Tuesday, 13 May 2003 18:35:15 UTC