Agreement Formation Descriptor Documents

17
Agreement Formation Descriptor Documents Pim van der Eijk

description

Agreement Formation Descriptor Documents. Pim van der Eijk. Agenda. Background CPA formation CPA template instantiation Generalization to other agreement documents and formation methods Overview of AFDD Status Plans. Background. CPP/A mentions two methods of forming a CPA - PowerPoint PPT Presentation

Transcript of Agreement Formation Descriptor Documents

Page 1: Agreement Formation Descriptor Documents

Agreement Formation Descriptor Documents

Pim van der Eijk

Page 2: Agreement Formation Descriptor Documents

Agenda Background CPA formation CPA template instantiation Generalization to other agreement

documents and formation methods Overview of AFDD Status Plans

Page 3: Agreement Formation Descriptor Documents

Background CPP/A mentions two methods of forming

a CPA CPP intersection Template instantiation

CPP/A Negotiation SC distinguishes two stages Composing a draft CPA Negotiating a final CPA using an

offer/counter offer process

Page 4: Agreement Formation Descriptor Documents

CPA formation CPP intersection

Is defined informally in appendix E of CPA 2.0 Few tools available, and only limited functionality ?

Template instantiation Commonly used in ebXML deployments Fits the common practice of profiling ebMS, profiles

result in predictable CPA content High degree of automation possible for “take it or

leave it” proposals Some support in products, but not in a standardized

way

Page 5: Agreement Formation Descriptor Documents

Initial goals Formalize a simple (candidate standard)

notation to define CPA formation based on templates plus supplied parameters

Semantics defined by compilation to XSLT Stylesheet that transform the template using

supplied parameters Each partner supplies a specific set of

parameters, passed as parameters to XSLT engine

Page 6: Agreement Formation Descriptor Documents

Extension: multiple agreement document types Business document schemas

XML schema, RELAX NG Code lists Service agreements

WSDL, CPA Versions

Combinations E.g. XSD and Schematron for business rules Two CPAs in a three-party collaboration

Page 7: Agreement Formation Descriptor Documents

Extension: multiple agreement methods Instantiating a template with variables Intersecting two CPPs into a CPA WS-Policy intersection algorithm CAM templates plus context parameters SCA Policy …

Page 8: Agreement Formation Descriptor Documents

Generalized goals Simple language to define

Agreement documents to be created Participating partners (roles) Parameters each supplies Method used to establish agreements

Template instantiation as one such method

Special case: XML template instantiation Links document to a set of <Parameter,

XPath> bindings

Page 9: Agreement Formation Descriptor Documents

Sample syntax<?xml version="1.0" encoding="UTF-8"?><afdd:AgreementFormationDescriptorDocument xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:afdd="http://www.oasis-open.org/committees/ebxml-cppa/schema/afdd.xsd" xsi:schemaLocation="http://www.oasis-open.org/committees/ebxml-cppa/schema/afdd.xsd afdd.xsd“ version="0.2“name="wsdl">

<afdd:NamespaceSets> <afdd:NamespaceSet name="wsdl11"> <afdd:ns prefix="soap" uri="http://schemas.xmlsoap.org/wsdl/soap/"/> <afdd:ns prefix="wsdl" uri="http://schemas.xmlsoap.org/wsdl/"/> </afdd:NamespaceSet> </afdd:NamespaceSets> <afdd:Documents> <afdd:XMLDocument id="weather" type="wsdl11"> <afdd:DocumentTransformation patternConflictsAllowed="false"> <afdd:Binding pattern="soap:address" param="SoapAddress" method="attribute"

attribute="location"/> <afdd:Template href="weather.wsdl" /> </afdd:DocumentTransformation> </afdd:XMLDocument> </afdd:Documents> <afdd:PartnerRoles> <afdd:Partner role="Server"> <afdd:Parameter name="SoapAddress" required="true"/> </afdd:Partner> </afdd:PartnerRoles> </afdd:AgreementFormationDescriptorDocument>

One agreement document to be formed

Parameter SoapAddress is used to set the value of the location attribute on the soap:address element

One partner in role Server to supply parameters

One parameter to be supplied

Formation method is XMLdocument transformation

Page 10: Agreement Formation Descriptor Documents

Expected input<?xml version="1.0" encoding="UTF-8"?><Parameters><Parameter

name="SoapAddress“>http://myserver.com/Helloweather</Parameter> </Parameters>

Page 11: Agreement Formation Descriptor Documents

Compiled output<?xml version="1.0" encoding="utf-8"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" version="2.0"> <xsl:param name="Partner_Server">file:///d:/CPA/parameters/wsdl.Server.parameters.xml</xsl:param> <xsl:variable name="SoapAddress"> <xsl:copy-of select="document($Partner_Server)//Parameter[@name='SoapAddress']/child::node()"/> </xsl:variable> <xsl:template match="soap:address/@location"> <xsl:variable name="value" select="current()"/> <xsl:attribute name="location"> <xsl:choose> <xsl:when test="$SoapAddress !=''"> <xsl:value-of select="$SoapAddress"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="$value"/> </xsl:otherwise> </xsl:choose> </xsl:attribute> </xsl:template> <xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templates select="@*"/> <xsl:apply-templates/> </xsl:copy> </xsl:template></xsl:stylesheet>

Page 12: Agreement Formation Descriptor Documents

Extension: CPP intersection<afdd:CollaborationProtocolAgreement version="2.0" id="cpaab"> <afdd:ColloborationProtocolProfileIntersection> <afdd:Start param="DeploymentStart"/> <afdd:End param="DeploymentEnd"/> <afdd:CPAId param="CpaId_AB"/> <afdd:CollaborationProtocolProfile version="2.0"

param="CPP_A"> <afdd:ProcessSpecification uuid="Procurement"/> <afdd:Role name="Seller"/> </afdd:CollaborationProtocolProfile> <afdd:CollaborationProtocolProfile version="2.0"

param="CPP_B"> <afdd:ProcessSpecification uuid="Procurement"/> <afdd:Role name="Buyer"/> </afdd:CollaborationProtocolProfile> </afdd:ColloborationProtocolProfileIntersection></afdd:CollaborationProtocolAgreement>

Page 13: Agreement Formation Descriptor Documents

Package Package available at

http://www.oasis-open.org/apps/org/workgroup/ebxml-cppa/download.php/27623/CPAdist.zip

AFDD XML schema Compiler from AFDD to XSLT, in XSLT Python driver scripts Seven sample AFDD documents

Page 14: Agreement Formation Descriptor Documents

Sample documents bias.afdd:

simple CPA template, where one partner acts as server (setting start, end and CPA id) and the other provides communication details for use as client.

cppintersection.afdd: CPA formed on the basis of two supplied CPPs

multidoc.afdd: two partners agree on a specialized business document schema (a UBL invoice where

the optional "OrderReference" element has been made required) and a CPA that references this schema.

multiparty.afdd: three business partners form two CPAs based on three CPPs.

secured.afdd: real-life, complex CPA using XML digital signatures, XML encryption and TLS

authentication, reliable messaging. Two partner need to supply four certificates each, their party identification parameters.

Optionally, reliable messaging parameters can be adjusted. ubl.afdd:

the XSD specialization also used in multidoc.afdd wsdl.afdd:

an organization requires a business partner to implement a particular web service, where only the SOAP address is variable.

Page 15: Agreement Formation Descriptor Documents

Status A predecessor of AFDD is used in Netherlands

government projects Web user interface Reuse of uploaded parameters

Next steps / plans Discuss with TC (18-04-2008) Document schema as TC WD spec Formation as a networked service CPP intersection ebBP to CPA template CPA lifecycle messages (issue, revoke)

Page 16: Agreement Formation Descriptor Documents
Page 17: Agreement Formation Descriptor Documents

Formation as a service Bilateral request / response protocol

Two partners, one to supply parameters Request contains parameters Response is formed agreement document (or

rejection) Hub / spoke model:

One partner requests coordinator to start formation process

Coordinator contacts each participant, retrieves parameters

Coordinator creates and distributes agreement documents

Transport Bindings ebMS, Web Services; Portal interface