- From: Steve Ross-Talbot <steve@pi4tech.com>
- Date: Tue, 1 Aug 2006 16:44:31 +0100
- To: WS-Choreography List <public-ws-chor@w3.org>
- Cc: matthew.d.rawlings@jpmchase.com, Kohei Honda <kohei@dcs.qmul.ac.uk>, Marco Carbone <carbonem@dcs.qmul.ac.uk>, Robin Milner <Robin.Milner@cl.cam.ac.uk>, Nobuko Yoshida <yoshida@doc.ic.ac.uk>
In the current WS-CDL schema a role type may only belong to one participant type. This means that the natural way of describing behavior is not readily supported in WS-CDL today. For example I might have a bank as a participant type that wishes to behave in the role of a trader. I might also have a broker that wishes to behave in the role or trader and a counterparty that wishes to do the same thing. To do this today I need to add to the role name something unique to the participant in order to model the different role types across the participant types. That is I cannot have the following: Participant Types: BankParticipant (TraderRole) BrokerParticipant (TraderRole) CounterpartyParticipant (TraderRole) But I can have: Participant Types: BankParticipant (BankTraderRole) BrokerParticipant (BrokerTraderRole) CounterpartyParticipant (CounterpartyTraderRole) While it is possible to model things as WS-CDL stands it does lead to a significant explosion in description because RoleTypes cannot be shared. The only reason for RoleTypes to be unique today is because all variables and conditions are projected through the RoleTypeName back to the ParticipantTypeName. In effect the nature of a ParticipantTypeName is more akin to an instance. It is half way between an instance and a binding to an instance and this is what has caused the problem to surface. What we need to be able to do is enable RoleTypeNames to be shared. This would require changes to the spec but would significantly add to the usability of WS-CDL in practice. The sort of changes that would be required would be to add the ParticipantTypeName to the CDL functions that take RoleTypeName and to do the same for variable declarations and any other conditionals. There may also be a need to change how we bind when doing a perform as this also takes RoleTypeNames. I have not done a full sweep of the spec as yet. This may have an effect on the type system so we would need to pass this by our invited experts to ensure that we understand what effect it has if any. Cheers Steve T
Received on Tuesday, 1 August 2006 15:45:06 UTC