24
1 WS-Agreement Tutorial Material 2004/09/13 Toshiyuki Nakata

1 WS-Agreement Tutorial Material 2004/09/13 Toshiyuki Nakata

Embed Size (px)

Citation preview

Page 1: 1 WS-Agreement Tutorial Material 2004/09/13 Toshiyuki Nakata

1

WS-Agreement Tutorial Material

2004/09/13

Toshiyuki Nakata

Page 2: 1 WS-Agreement Tutorial Material 2004/09/13 Toshiyuki Nakata

2

Full Copyright Notice Copyright © Global Grid Forum (2003, 2004). All Rights Reserved.This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the GGF or other organizations, except as needed for the purpose of developing Grid Recommendations in which case the procedures for copyrights defined in the GGF Document process must be followed, or as required to translate it into languages other than English. The limited permissions granted above are perpetual and will not be revoked by the GGF or its successors or assigns.This document and the information contained herein is provided on an "AS IS" basis and THE GLOBAL GRID FORUM DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Intellectual Property StatementThe GGF takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Copies of claims of rights made available for publication and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the GGF Secretariat. The GGF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights which may cover technology that may be required to practice this recommendation. Please address the information to the GGF Executive Director (see contact   information at GGF website).

Page 3: 1 WS-Agreement Tutorial Material 2004/09/13 Toshiyuki Nakata

3

Recent Status Split the spec into two parts

Basic Specification for agreement named Web Services Agreement Specification and Advanced Web Services Agreement Negotiation Specification (WS-AgreementNegotiation)

Graap-WG decided to put priority on discussing WS-Agreement first.

On 25th August WS-Agreement specification was submitted to the GGF editor, on track to enter public comment.

WS-Agreement itself is sort of a frame-work for getting agreements on several different domains. The details of things to be agreed are of course domain-specific and is out of the scope of the WS-Agreement Spec.

Eg. Job-submission using JSDL is a candidate to be used within the frame-work.

Relation to other specification Relies on WS-Addressing Also Relies on WS-ResourceProperties

Page 4: 1 WS-Agreement Tutorial Material 2004/09/13 Toshiyuki Nakata

4

Address Map summary ( Old to be updated)

Prefix Namespace

wsag http://www.ggf.org/namespaces/ws-agreement (temporary)

wsa http://schemas.xmlsoap.org/ws/2003/03/addressing

wsbf http://www.ibm.com/xmlns/stdwip/web-services/WS-BaseFaults

wssg http://www.ibm.com/xmlns/stdwip/web-services/WS-ServiceGroup

wsrp http://www.ibm.com/xmlns/stdwip/web-services/WS-ResourceProperties

xs/xsd http://www.w3.org/2001/XMLSchema

xsi http://www.w3.org/2001/XMLSchema-instance

wsdl http://schemas.xmlsoap.org/wsdl/

Page 5: 1 WS-Agreement Tutorial Material 2004/09/13 Toshiyuki Nakata

5

Two layer Model

The service layer represents the application-specific layer of business service being provided.

The agreement layer provides a Web service-based interface that can be used to represent and monitor agreements with respect to provisioning of services implemented in the service layer.

An agreement port type, without any operation other than getters for state and metadata of the agreement such as the terms, the context, etc….

An agreement factory exposes an operation for creating an agreement out of an input set of terms. It returns an EPR to an Agreement service. The agreement factory also exposes resource properties such as the templates of offers acceptable for creation of an agreement.

Consumer Provider

create()

foo()Application Instance

Factory

Manager

create()Factory Agreement

Ops:terminate(limits)inspect(query)...

SDEs:

Terms RelatedStatusAgrmts

inspect()

Agreement Layer

Service Layer

Consumer Provider

create()

foo()Application Instance

Factory

Manager

create()Factory Agreement

Ops:terminate(limits)inspect(query)...

SDEs:

Terms RelatedStatusAgrmts

inspect()

Agreement Layer

Service Layer

Page 6: 1 WS-Agreement Tutorial Material 2004/09/13 Toshiyuki Nakata

6

Simple Sequnce-1

Agreement Initiator Agreement Provider

GetResourceProperty("AgreementFactory",     "wsag:AgreementFactoryProperties")

(templates)

CreateAgreement(offer)

(EPR to Agreement1)

Based on the Template create an offer

Decide to agreeTo the offerCreate an agreement

Agreement1At this moment the agreement isObserved. A-I cannot refuse to the Created Agreement

Not sure what to Put in the parameters..

Page 7: 1 WS-Agreement Tutorial Material 2004/09/13 Toshiyuki Nakata

7

Simple Sequnce-2

Agreement Initiator Agreement Provider

(templates)

CreateAgreement(offer)

(Return a Fault)

Based on the Template create an offer

Decide to refuse

GetResourceProperty("AgreementFactory",     "wsag:AgreementFactoryProperties")

Page 8: 1 WS-Agreement Tutorial Material 2004/09/13 Toshiyuki Nakata

8

Organization of Agreement

Name: Optional Name Context: Describes ‘meta-data’ of the w

hole Agreement Parites to Agreement Agreement Life-time Template Name Related Agreements

Agreementterms Term Compositor Structure:A scheme to

compose an AND/OR/XOR relationship of the following two elements

Service Description Term: Information needed to instantiate or identify a service to which this agreement pertains

Guarantee Term:Service Levels that the parties are agreeing to.

Agreement Name

Context 

Terms Compositor

 

 

Service Description TermsServiceReferencesServiceProperties

 

Guarantee Terms 

Page 9: 1 WS-Agreement Tutorial Material 2004/09/13 Toshiyuki Nakata

9

Agreement Context

/wsag:AgreementContext/AgreementInitiator Agreement Initiator : ( Requestor ) Can be an URI or wsa:EndpointReference( EP R)

/wsag:AgreementContext/AgreementProvider Provider Can be an URI or wsa:EndpointReference( EP R)

/wsag:AgreementContext/ExpirationTime Specifies the time at which this agreement is no longer valid.

/wsag:AgreementContext/TemplateName Specifies the name of the template from which this agreement is created.

/wsag:AgreementContext/RelatedAgreements This element defines a list of related agreements: (Example??)

<wsag:AgreementContext> <wsag:AgreementInitiator>xs:anyURI</wsag:AgreementInitiator> <wsag:AgreementProvider>xs:anyURI</wsag:AgreementProvider> <wsag:ExpirationTime>xs:DateTime</wsag:ExpirationTime> <wsag:TemplateName>xs:string</wsag:templateName> <wsag:RelatedAgreements>...</wsag:RelatedAgreements></wsag:AgreementContext>

Agreement

Context 

Terms Compositor

 

 

 

Guarantee Terms 

PS what is /wsp:Context in page 15?

Service Description TermsServiceReferencesServiceProperties

Page 10: 1 WS-Agreement Tutorial Material 2004/09/13 Toshiyuki Nakata

10

Example of usage of related Agreements:

Would really like to embed something like one shown below, but I am not confident whether this is valid or not..

ASP Provider

1)Agreement Offer

Site A

Site B

Site C

Site D

Site E

<wsag:context><wsag:RelatedAgreements>

<wsag:RelatedAgreement wsag:Name=“basic”>(Contents/pointers for offer to agreement1)(cf.nextpage)

<wsag:AgreementEPR><empty>

</wsag:AgreementEPR></wsag:RelatedAgreement><wsag:RelatedAgreement “ wsag:Name=“ext1”>

(Contents / pointers for offer to agreement2)(cf. nex page)<wsag:AgreementEPR>

<empty></wsag:AgreementEPR>

</wsag:RelatedAgreement></wsag:RelatedAgreements></wsag:context>

2)Agr

eem

ent O

ffer

Agreement1

Accept & Create

3)EPR of A

greement1

2)Agreement Offer

3)Fault4)Agreement Offer

Agreement2

Accept & Create

EPR of Agreement12

Agreement3 <wsag:RelatedAgreements><wsag:RelatedAgreement >(Contents/pointers for offer to agreement1)(cf. next page)<wsag:AgreementEPR>

<EPR of Agreement1></wsag:AgreementEPR>

</wsag:RelatedAgreement><wsag:RelatedAgreement >(Contents/pointers for offer to agreement2) (cf. next page)

<wsag:AgreementEPR><EPR of Agreement2 >

</wsag:AgreementEPR> </wsag:RelatedAgreement>

</wsag:AgreementEPR> </wsag:RelatedAgreements>

Create 5)EPR of Agreement3

GGJM

Page 11: 1 WS-Agreement Tutorial Material 2004/09/13 Toshiyuki Nakata

11

Term Composite Structure

/wsag:Terms/wsag:All (or wsag:OneOrMore, or wsag:ExactlyOne) This is a logical AND (or OR, o

r XOR) operator of type wsag:TermCompositorType

The rest see next page

<wsag:Terms> <wsag:All> wsag:TermCompositorType </wsag:All> |

<wsag:OneOrMore> wsag:TermCompositorType </wsag:OneOrMore> | <wsag:ExactlyOne> wsag:TermCompositorType </wsag:ExactlyOne> | {<wsag:ServiceDescriptionTerm> wsag:ServiceDescriptionTermT

ype </wsag:ServiceDescriptionTer

m> | <wsag:ServiceReference> wsag:ServiceReferenceType </wsag:ServiceReference> | <wsag:ServiceProperties> wsag:ServicePropertiesType </wsag:ServiceProperties> | <wsag:GuaranteeTerm> wsag:GuaranteeTermType </wsag:GuaranteeTerm> } * </wsag:Terms>

Page 12: 1 WS-Agreement Tutorial Material 2004/09/13 Toshiyuki Nakata

12

Individual types Service description terms

are a fundamental component of an agreement: the agreement is about the service(s) - existing or not - described by the service description terms.

ServiceReference provides means for an agreement to

simply refer to the existing service instance

ServiceProperties are used to define measurable and

exposed properties associated with a service, such as response time and throughput.

GuaranteeTerm define the assurance on service quality,

associated with the service described by the service definition terms.

{ <wsag:ServiceDescriptionTe

rm> wsag:ServiceDescriptionTer

mType </wsag:ServiceDescriptionT

erm> | <wsag:ServiceReference> wsag:ServiceReferenceType </wsag:ServiceReference> | <wsag:ServiceProperties> wsag:ServicePropertiesType </wsag:ServiceProperties> | <wsag:GuaranteeTerm> wsag:GuaranteeTermType </wsag:GuaranteeTerm> } *

Page 13: 1 WS-Agreement Tutorial Material 2004/09/13 Toshiyuki Nakata

13

Service Description Terms

Service description terms (SDTs) are a fundamental component of an agreement: the agreement is about the service(s) - existing or not - described by the service description terms.

May be domain specific Contains three parts

• The name of the ServiceDescriptionTerm.• The name of the service being described partially or fully by the

domain-specific part of this service description term. This allows for semantic grouping of service description terms that may not be structurally grouped together in the agreement.

• A domain-specific description of the offered or required functionality. This element MAY completely describe the service it is about, or it MAY do so only partially.

Agreement

Context 

Terms Compositor 

 

Service Description Terms 

Guarantee Terms 

<wsag:ServiceDescriptionTerm wsag:Name=”xs:NCName” wsag:ServiceName=”xs:NCName”> <xsd:any> … </xsd:any></wsag:ServiceDescriptionTerm>

ServiceReferencesServiceProperties

Page 14: 1 WS-Agreement Tutorial Material 2004/09/13 Toshiyuki Nakata

14

Example of a Service description Term

<wsag:All>    <wsag:ServiceDescriptionTerm wsag:Name=“executable1" wsag:Servi

ceName=“a1> <job:executable> /usr/local/job1 </job:executable> </wsag:ServiceDescriptionTerm> <wsag:ServiceDescriptionTerm wsag:Name="numberOfCPUs1" wsag:Ser

viceName=“a1"> <job:numberOfCPUs>32</job:numberOfCPUs> </wsag:ServiceDescriptionTerm> <wsag:ServiceDescriptionTerm wsag:Name="memoryPerCPU1“ wsag:Ser

viceName=“a1"> <job:realMemorySize>200</job:realMemorySize> </wsag:ServiceDescriptionTerm> </wsag:All>

Specifies a job whose executable is /usr/local/job1 with 32 CPUs and Memory size of 200 (MB?)Please note the usage of Service Name to aggregate several SDT’s.

Page 15: 1 WS-Agreement Tutorial Material 2004/09/13 Toshiyuki Nakata

15

Service reference

provides means for an agreement to simply refer to the existing service instance

/wsag:ServiceReference/{xsd:any} This element is a domain-specific represe

ntation of a reference to a service. Examples: An EPR in an agreement on the performa

nce of an existing Web service Metadata identifying a class of packet hea

ders in an agreement on network Quality of Service).

<wsag:All> <wsag:ServiceDescriptionTerm wsag:Name="WSDLInterface" wsag:ServiceName="BankingService">

<sdtc:WSDLReference> http://www.foo.org/interfaces/bank.wsdl </sdtc:WSDLReference>

</wsag:ServiceDescriptionTerm><wsag:ServiceDescriptionTerm

wsag:Name="WebAccess" wsag:ServiceName="BankingService">

<sdtc:URLPrefixDefinition> http://www.foo.org/bank </sdtc:URLPrefixDefinition> </wsag:ServiceDescriptionTerm></wsag:All>

Extracted from Page 58 Should change ServiceDescriptionTerm To ServiceReference??

<wsag:ServiceReference wsag:Name=”xs:NCName” wsag:ServiceName=”xs:NCName”> <xsd:any> … </xsd:any></wsag:ServiceReference>

Page 16: 1 WS-Agreement Tutorial Material 2004/09/13 Toshiyuki Nakata

16

Service Properties

ServiceProperties are used to define measurable and exposed properties associated with a service, such as response time and throughput. The properties are used in expressing service level objectives.

The key element is the “variable set” shown in the second box.

<wsag:ServiceProperties wsag:Name=”xs:NCName” wsag:ServiceName=”xs:NCName”> <wsag:VariableSet>wsag:VariableSetType</wsag:VariableSet></wsag:ServiceProperties>

<wsag:Variable wsag:Name=”xsd:NCName” wsag:Metric=”xsd:QName”> <wsag:Location>xsd:anyType</wsag:Location></wsag:Variable>

<wsag:Variable name=”CPUcount” metric=”job:numberOfCPUs”> <wsag:Location>//wsag:AgreementOffer/wsag:Terms/wsag:All/wsag:ServiceDefinitionTerm/job:executable </wsag:Location></wsag:Variable>

<wsag:All>    <wsag:ServiceDescriptionTerm wsag:Name=“executable1" wsag:ServiceName=“a1> <job:executable> /usr/local/job1 </job:executable> </wsag:ServiceDescriptionTerm> <wsag:ServiceDescriptionTerm wsag:Name="numberOfCPUs1" wsag:ServiceName=“a1"> <job:numberOfCPUs>32</job:numberOfCPUs> </wsag:ServiceDescriptionTerm> <wsag:ServiceDescriptionTerm wsag:Name="memoryPerCPU1“ wsag:ServiceName=“a1"> <job:realMemorySize>200</job:realMemorySize> </wsag:ServiceDescriptionTerm> </wsag:All>

Location pointed out by <wsag:Location>Is as pointed by the red arrow, however The concept of numberofCPUs is as pointed by the blue arrow. How do we explain this?

Example

Page 17: 1 WS-Agreement Tutorial Material 2004/09/13 Toshiyuki Nakata

17

Guarantee Term

define the assurance on service quality, associated with the service described by the service definition terms.

Is composed of ServiceScope: the list of services this guarantee applies

to. QualifyingCondition: an optional condition that must be met (when specified) for a guarantee to be enforced.

ServiceLevelObjective: an assertion expressed over service descriptions.

BusinessValueList: one or more business values associated with this objective.

Agreement

Context 

Terms Compositor 

 

Service Description Terms 

Guarantee Terms 

ServiceReferencesServiceProperties

<wsag:GuaranteeTerm> <wsag:ServiceScope>…</wsag:ServiceScope>* <wsag:QualityingCondition>…</wsag:QualifyingCondition>? <wsag:ServiceLevelObjective>…</wsag:ServiceLevelObjective> <wsag:BusinessValueList>…</wsag:BusinessValueList></wsag:GuaranteeTerm>

I deleted the variables entry(in line 1 page 22)As I assume that it is a leftover from time Before ServiceProperties wereIntroduced

Typo in spec (P.22)

Page 18: 1 WS-Agreement Tutorial Material 2004/09/13 Toshiyuki Nakata

18

Service Scopes, QualifyingCondition and ServiceLevelObjective

Service Scopes a list of service names referring to the respective

wsag:ServiceName attributes of one or more of the service description terms in this agreement.

QualifyingCondition and ServiceLevelObjective are expressed as assertions over service attributes and/or external factors such as date and time. The type of both elements is xsd:anyType as a completely o

pen content that can be extended with assertion languages which MAY be designed independently of the WS-Agreement specification but which MUST address the requirements of the particular domain of application of the agreement.

<wsag:ServiceScope> <wsag:ServiceName>A1</wsag:ServiceName> <wsag:ServiceName>B1</wsag:ServiceName> </wsag:ServiceScope>

Page 19: 1 WS-Agreement Tutorial Material 2004/09/13 Toshiyuki Nakata

19

Business Value..<wsag:BusinessValueList><wsag:Importance> xsd:integer </wsag:Importance>?<wsag:Penalty> </wsag:Penalty>? <wsag:Reward> </wsag:Reward>? <wsag:Preference> </wsag:Preference>? <wsag:CustomBusinessValue> … </wsag:CustomBusinessValue

>*</wsag:BusinessValueList>

wsag:importance Relative terms, such as high, low, medium, etc. can b

e used to prioritize across many guarantees. However, to provide stronger semantics and easier comparison of this value, this is expressed using an integer.

What is the range? 0..10? 0..100? Higher number means Higher Priority?wsag:CustomBusinessValue: Can be added and is completely domain soecific

Page 20: 1 WS-Agreement Tutorial Material 2004/09/13 Toshiyuki Nakata

20

Penalty and Rewards

AssesmentInterval This element defines the interval over

which a penalty is assessed. • TimeInterval

• This element when present defines the assessment interval as a duration.

• wsag:Count• This element when present defines t

he assessment interval as a service specific count, such as number of invocation.

ValueUnit This element defines the unit for asse

ssing penalty, such as USD. This is an optional element since in some cases a default unit MAY be assumed.

ValueExpr This element defines the assessment

amount, which can be an integer, a float or an arbitrary domain-specific expression.

<wsag:Penalty> <wsag:AssesmentInterval> <wsag:TimeInterval>xsd:duration</wsag:TimeInterval> | <wsag:Count>xsd:positiveInteger</wsag:Count> </wsag:AssesmentInterval> <wsag:ValueUnit>xsd:string</wsag:ValueUnit>? <wsag:ValueExpr>xsd:any</wsag:ValueExpr></wsag:Penalty>

Alternatively, meeting each objective generates a reward for a service provider. The value expression for reward is similar to that of penalty.

Page 21: 1 WS-Agreement Tutorial Material 2004/09/13 Toshiyuki Nakata

21

Preference “Preference” is used to describe a list

of fine-granularity business values for different alternatives, where satisfying each alternative results in a different business value.

ServiceTermReference This element can appear multiple tim

es each ServiceTermReference references a ServiceTerm representing an alternative for meeting service level objective. Corresponding, utility (specified below) specifies utility in meeting this objective.

Utility This element can appear multiple tim

es, one corresponding to each ServiceTermReference.

<wsag:Preference> <wsag:ServiceTermReference>xsd:string </wsag:ServiceTermReference>* <wsag:Utility>xsd:float</wsag:Utility>* </wsag:Preference>

<wsag:GuaranteeTerm wsag:Name="ConfigurationPreference"> <wsag:ServiceScope> <wsag:ServiceName>ComputeJob1</wsag:ServiceName> </wsag:ServiceScope> <wsag:ServiceLevelObjective xsi:type="sdtc:OpType"> <Or> <SDT>numberOfCPUsHigh</SDT> <SDT>numberOfCPUsLow</SDT> </Or> </wsag:ServiceLevelObjective> <wsag:BusinessValueList> <wsag:Preference> <wsag:ServiceTermReference>numberOfCPUsHigh </wsag:ServiceTermReference> <wsag:Utility>0.8</wsag:Utility> <wsag:ServiceTermReference>numberOfCPUsLow </wsag:ServiceTermReference> <wsag:Utility>0.5</wsag:Utility> </wsag:Preference> </wsag:BusinessValueList></wsag:GuaranteeTerm>

How do we map Utility toServiceTermReference?

What is theDefinition ofServiceTerm?

Example from Appendix3 in Page 56.Where is SeviceLevelObjective defined in the spec?

Page 22: 1 WS-Agreement Tutorial Material 2004/09/13 Toshiyuki Nakata

22

Agreement Template To create an agreement, a client

makes an offer to an agreement factory. An agreement creation offer has the same structure as an agreement. The agreement factory advertises the types of offers it is willing to accept by means of agreement templates.An agreement template is composed of three distinct parts.  

The structure of an agreement template is the same as that of an agreement, but an Agreement template MAY also contain a creation constraint section, i.e. a section with constraints on possible values of terms for creating an agreement.

 

Agreement Template

Context 

Terms Compositor  

Agreement Creation Constraints 

Service Description Terms 

Guarantee Terms 

Agreement Initiator Agreement Provider

GetResourceProperty("AgreementFactory",        "wsag:AgreementFactoryProperties")

(templates)

CreateAgreement(offer)

(EPR to Agreement1)

Based on the Template createan offer

Decide to agreeTo the offerCreate an agreement

Agreement1At this moment the agreement isObserved. A-I cannot refuse to the Created Agreement

Agreement InitiatorAgreement Initiator Agreement ProviderAgreement Provider

GetResourceProperty("AgreementFactory",        "wsag:AgreementFactoryProperties")

(templates)

CreateAgreement(offer)

(EPR to Agreement1)

Based on the Template createan offer

Decide to agreeTo the offerCreate an agreement

Agreement1At this moment the agreement isObserved. A-I cannot refuse to the Created Agreement

Page 23: 1 WS-Agreement Tutorial Material 2004/09/13 Toshiyuki Nakata

23

Config. Of Agreement Constraint

Is composed of a number of offer Item and Constraint

Offer Item : is specified by name, Item location and restriction A restriction applies to the value that can be filled in by an agreement initiator at the specified location at agreement creation time. If all filled in values adhere to their respective restriction an agreement is compliant with its template 

<wsag:template>…

<wsag:CreationConstraints> ? <wsag:Item>…</wsag:Item> * <wsag:Constraint>…</wsag:Constraint> * </wsag:CreationConstraints>

 

Agreement Template

Context

 

Terms Compositor

 

Agreement  Creation Constraints

 

Service  Description Terms

 

Guarantee Terms

 

<wsag:Item name=”xsd:NCName” location=”xsd:string”> <restriction> xsd:simpleRestrictionModel <restriction> ? </wsag:Item>

Constraint: Free-form constraints make it possible to restrict the possible values of the term set of an offer beyond restrictions of individual terms.

<wsag:Constraint/>

<wsag:XQueryXConstraint> <wsag:Expression> … </wsag:Expression> </wsag:XQueryXConstraint>

Page 24: 1 WS-Agreement Tutorial Material 2004/09/13 Toshiyuki Nakata

24

PortType

<wsag:createAgreementInput> <initiatorAgreementEPR> EPR1 </initiatorAgreementEPR> ? <wsag:AgreementOffer> ... </wsag:AgreementOffer> </wsag:createAgreementInput>

Input

<wsag:createAgreementResponse> <createdAgreementEPR> EPR2 </createdAgreementEPR> </wsag:createAgreementResponse>

Result

Agreement Initiator Agreement Provider

GetResourceProperty("AgreementFactory",        "wsag:AgreementFactoryProperties")

(templates)

CreateAgreement(offer)

(EPR to Agreement1)

Based on the Template createan offer

Decide to agreeTo the offerCreate an agreement

Agreement1At this moment the agreement isObserved. A-I cannot refuse to the Created Agreement

Agreement InitiatorAgreement Initiator Agreement ProviderAgreement Provider

GetResourceProperty("AgreementFactory",        "wsag:AgreementFactoryProperties")

(templates)

CreateAgreement(offer)

(EPR to Agreement1)

Based on the Template createan offer

Decide to agreeTo the offerCreate an agreement

Agreement1At this moment the agreement isObserved. A-I cannot refuse to the Created Agreement