1 / 17

Agreement Formation Descriptor Documents

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

fergal
Download Presentation

Agreement Formation Descriptor Documents

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Agreement Formation Descriptor Documents Pim van der Eijk

  2. Agenda • Background • CPA formation • CPA template instantiation • Generalization to other agreement documents and formation methods • Overview of AFDD • Status • Plans

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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 • …

  8. 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

  9. Formation method is XML document transformation One agreement document to be formed Parameter SoapAddress is used to set the value of the location attribute on the soap:address element One parameter to be supplied One partner in role Server to supply parameters 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>

  10. Expected input <?xml version="1.0" encoding="UTF-8"?> <Parameters> <Parameter name="SoapAddress“>http://myserver.com/Helloweather</Parameter> </Parameters>

  11. 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>

  12. 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>

  13. 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

  14. 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.

  15. 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)

  16. 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

More Related