- From: Francis McCabe <fgm@fla.fujitsu.com>
- Date: Tue, 22 Oct 2002 13:50:04 -0700
- To: "Assaf Arkin" <arkin@intalio.com>
- Cc: "Paul Prescod" <paul@prescod.net>, <www-ws-arch@w3.org>
Since you folks are talking about contracts I feel moved to intervene: On Tuesday, October 22, 2002, at 10:03 AM, Assaf Arkin wrote: > > Paul, > > I'm very flattered that you name a principle after me. This should go > down > in history ;-) Right on brother! > > However, I would like to suggest an alternative priniciple, call it the > 'value chain' principle, along the following lines: > > Given a choreography between SERVICES 1 through N (where N >= 2) > > Given a contract expressed in a choreography language called CONTRACT > > Given CONTRACT expresses a constraint/condition/sequence called > CONSTRAINT Contracts are about more than messages; in fact they are about a lot more than messages. Messages are only the communications medium. > > Given any two services I and J, such that I in N, J in N and I is not J > > CONSTRAINT is part of the public interface between SERVICE I and > SERVICE J > if it is possible to observe whether the constraint has been upheld or > violated in the packets on the wire between I or J and any other > service in > the CHOREOGRAPHY This is only ONE of the potential uses for explicit contracts. Another, equally important (IMO) use is in discovery. SLAs -a.k.a. contracts, are also used to determine if a given service might meet the requirements of the customer. E.g., two different telephone companies may describe their current pricing/bandwidth as SLAs in a declarative way; a customer can then use these to determine which company to `invoke'. This is the `problem solving' use of contracts. Another use of the contract notion is in policy consistency computations (important in system security). > > This should be reworded accurately so it is recusive. That is, if J > talks to > K and K talks to M, and I can prove that J upheld of violated the > constraint > by talking to M, we can show that interaction encompassing I, J, K and > M. > There may be other messages exchanged between I, J, K and M that do not > prove any constraint for I and are not shown. There is an extremely hard issue in here. Showing that a contract has been violated can be shown -- under general conditions -- to be equivalent to the halting problem. Generally, going from a procedural model to a declarative model is very hard; on the other hand, going from a declarative to a procedural interpretation is much easier. I.e., one can show that a software agent (of any description) is fulfilling its contracts when they are about declarative propositions more easily than when the contract is in the form of a program. Frank McCabe
Received on Tuesday, 22 October 2002 16:50:22 UTC