02/17/2005 6:02 PM
post4561
|
ServiceProvider/ServiceCustomer explicit
Making ServiceProvider and ServiceCustomer more explicit
In discussions of the specifications to others, there was occasionally confusion about the separation of Agreement Roles
and Service Roles. The proposed draft defined the Agreement Roles and allowed specifiers to detail the service roles
using the attribute AgreementProviderIsServiceCustomer. Many find this misleading.
It would be more obvious to reverse the specification. Define ServiceProvider and Service Customer, assuming the service
provider as the default agreement provider and the servie customer as the agreement initiator. If this is not the case,
or if it should be explicitely stated, one can define explicitely the elements AgreementProvider and AgreementInitiator
. This would also enable a central repository to manage all agreements and brokers to negotiate on behalf of others, as
raised in prior calls. The main aim though is to make the semantics more obvious.
Schema changes:
<xs:complexType name="AgreementContextType">
<xs:sequence>
<xs:element name="AgreementProvider" type="wsag:PartyType" minOccurs="0"/>
<xs:element name="ServiceProvider" type="wsag:PartyType" minOccurs="0"/>
<xs:element name="ServiceCostumer" type="wsag:PartyType" minOccurs="0"/>
<xs:element name="TerminationTime" type="xs:dateTime" minOccurs="0"/>
<xs:element name="TemplateName" type="xs:string" minOccurs="0"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other"/>
</xs:complexType>
<xs:complexType name="PartyType">
<xs:sequence>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="Name" type="xs:string"/>
<xs:anyAttribute namespace="##other"/>
</xs:complexType>
Furthermore, this approach would still guarantee the orhtogonality of agreement role and service role. In some cases, an
agreement provider may be service customer. An application scenario is the implementation of a job scheduler as a
service customer who runs the agreement factory and provides a steady stream of work to do. Whenever performance nodes
can accept new jobs, they invoke create agreement on the factory, the job scheduler, and obtain jobs that way. This
approach is an effective design for frequent homogeneous jobs that are assigned to one execution unit to be performed.
|
|
|