Collaboration Protocol Profile and Agreement … · Web viewThe appendices include examples of...

73
Collaboration-Protocol Profile and Agreement Specification - Transaction Management Extension (BTP) Version 0.2 OASIS ebXML Collaboration Protocol Profile and Agreement Technical Committee 14 May, 2003 1 Status of this Document This document specifies an ebXML SPECIFICATION for the eBusiness community. Distribution of this document is unlimited. [Currently under development and therefore limited to the CPP/A and BTP specification development communities.] The document formatting is based on the Internet Society’s Standard RFC format. This version: 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 1

Transcript of Collaboration Protocol Profile and Agreement … · Web viewThe appendices include examples of...

Collaboration-Protocol Profile and Agreement Specification -

Transaction Management Extension (BTP)Version 0.2

OASIS ebXML Collaboration Protocol Profile and Agreement Technical Committee

14 May, 2003

1 Status of this Document

This document specifies an ebXML SPECIFICATION for the eBusiness community.

Distribution of this document is unlimited. [Currently under development and therefore limited to the CPP/A and BTP specification development communities.]

The document formatting is based on the Internet Society’s Standard RFC format.

This version:

URL

Errata for this version:

URL

Previous version:

None, this is the first version of this document.

2

3

4

5

6

7

8

9

10111213

14

15

1617181920212223242526272829303132333435

1

OASIS ebXML CPP/A Technical Committee 08/11/2002

2 Technical Committee MembersSelim Aissi IntelArvola Chan TIBCOJames Bryce Clark Individual MemberDavid Fischer Drummond GroupTony Fletcher ChoreologyBrian Hayes Collaborative DomainNeelakantan Kartha Sterling CommerceKevin Liu SAPPallavi Malu IntelDale Moberg Cyclone CommerceHimagiri Mukkamala SybasePeter Ogden Cyclone CommerceMarty Sachs IBMYukinori Saito Individual MemberDavid Smiley MercatorTony Weida Individual MemberPete Wenzel SeeBeyondJean Zheng Vitria

Transaction Management Extension (BTP) - Page 2 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

234

36

373839404142434445464748495051525354

567

OASIS ebXML CPP/A Technical Committee 08/11/2002

3 Issues

1) This version (0.2 dated 14 May 2003) requires further editorial work.

2) This version needs further technical consideration. It is not clear that all the parameters currently specified are actually useful to share. There may be parameters that would be useful to share that are not currently included. In other words it requires technical verification against the configuration requirements of real transaction management enabled systems.

3) BTP specifies mappings to SOAP and SOAP with Attachments at present (other bindings could be added. Is it possible to use a CPP/A to specify either of these rather than ebXML messaging? Would this still be considered useful to ebXML processors? Line 748 of the MS spec states: "The MessageHeader element is REQUIRED in all ebXML Messages." For application messages that have an associated BTP context, the MS spec allows the <btp:messages> element to be located as a sibling of the <ebxml:MessageHeader> element. However, for BTP only traffic that uses the MessageHeader element, does the CPP need to specify the 'Service' and 'Action' fields for routing purposes?

4) attributeFormDefault. It is not common to see namespace qualification on attributes. Unless it is CPPA TC policy, it might be best to leave the attribute default (unqualified.) That however is not the case for elementFormDefault, where it is common practice to namespace qualify all elements.Currently this specification follows the lead of the CPP/A base specification in making attributeFormDefault qualified. Is this correct should this specification, or both be changed to the default of unqualified?

5) "<btp:additional-information>Alternative addresses available</btp:additional-information>" : additional-information is not intended to be used for publishing alternative addresses, but rather to be fed back in like a cookie. The entire address block can often be repeated for additional addresses.Omit this parameter?

Transaction Management Extension (BTP) - Page 3 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

89

10

55

56575859606162636465666768697071727374757677787980818283848586878889

111213

OASIS ebXML CPP/A Technical Committee 08/11/2002

4 Table of Contents1 Status of this Document..........................................................................................................................................92 Technical Committee Members............................................................................................................................103 Issues.....................................................................................................................................................................114 Table of Contents..................................................................................................................................................125 Introduction...........................................................................................................................................................13

5.1 Summary of Contents of Document...................................................................................................................135.2 Document Conventions.......................................................................................................................................135.3 Versioning of the Specification and Schema......................................................................................................135.4 Definitions...........................................................................................................................................................145.5 Audience.............................................................................................................................................................145.6 Assumptions........................................................................................................................................................145.7 Related Documents.............................................................................................................................................14

6 Design Objectives.................................................................................................................................................157 System Overview..................................................................................................................................................16

7.1 What This Specification Does............................................................................................................................167.2 Forming a CPA from Two CPPs........................................................................................................................267.3 Forming a CPA from a CPA Template...............................................................................................................327.4 How the CPA Works..........................................................................................................................................357.5 Where the CPA May Be Implemented...............................................................................................................387.6 Definition and Scope...........................................................................................................................................41

8 CPP Definition......................................................................................................................................................458.1 CPP Structure......................................................................................................................................................528.2 TransactionManagement_BTP_CPP_Ext element...........................................................................................1448.3 BTPversion Element.........................................................................................................................................1688.4 StandardBindings element................................................................................................................................1778.5 NonStandardBindings element.........................................................................................................................1878.6 TransactionTimeLimitRange element..............................................................................................................193

8.6.1 MinTimeLimit element..............................................................................................................................2038.6.2 MaxTimeLimit element.............................................................................................................................206

8.7 InferiorTimeoutRange element.........................................................................................................................2098.8 MinInferiorTimeoutRange element..................................................................................................................2218.9 ActorRole element............................................................................................................................................2338.10 FactoryDefaultAddress element......................................................................................................................2538.11 MessageTimeoutRange element.....................................................................................................................2668.12 StandardQualifiersSupported element............................................................................................................2838.13 qualifiers element............................................................................................................................................3138.14 RecoveryCapable element..............................................................................................................................3208.15 BTP_CPPA_Extensions element....................................................................................................................3258.16 Comment element...........................................................................................................................................384

9 CPA Definition...................................................................................................................................................3939.1 CPA Structure...................................................................................................................................................4029.2 TransactionManagement_BTP_CPA_Ext element..........................................................................................5419.3 Elements common to both parties.....................................................................................................................5789.4 Elements applicable to one party only..............................................................................................................5839.5 BTP_CPPA_Extensions element......................................................................................................................6379.6 Comment element.............................................................................................................................................6409.7 Composing a CPA from Two CPPs..................................................................................................................643

10 References.......................................................................................................................................................64611 Conformance...................................................................................................................................................67412 Disclaimer.......................................................................................................................................................69113 Contact Information........................................................................................................................................693Notices........................................................................................................................................................................712

Transaction Management Extension (BTP) - Page 4 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

141516

90

919293949596979899

100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142

171819

OASIS ebXML CPP/A Technical Committee 08/11/2002

Appendix A Example of CPP Document (Non-Normative).......................................................................................729Appendix B Example of CPA Document (Non-Normative)....................................................................................1011Appendix C Requirements on this BTP Transaction Management extension..........................................................1266Appendix D Scenarios (Non-Normative).................................................................................................................1308Appendix E W3C XML Schema Document Corresponding to Complete CPP and CPA Transaction Management (BTP) extension Definition (Normative)..................................................................................................................1330Appendix F CPA Composition (Non-Normative)....................................................................................................1602Appendix G Glossary of Terms................................................................................................................................1604

Transaction Management Extension (BTP) - Page 5 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

202122

143144145146147148149150

151152153

232425

OASIS ebXML CPP/A Technical Committee 08/11/2002

5 Introduction

5.1 Summary of Contents of DocumentThe specification of a Collaboration-Protocol Profile (CPP) and a Collaboration-Protocol Agreement (CPA) is found in the base Specification [ebCPPA]. Included in the CPP and CPA are details of transport, messaging, security constraints, and bindings to a Business-Process-Specification (or, for short, Process-Specification) document that contains the definition of the interactions between the two Parties while engaging in a specified electronic Business Collaboration.

This specification contains an extension of the basic detailed definitions of the Collaboration-Protocol Profile (CPP) and the Collaboration-Protocol Agreement (CPA), which allows the use of a transaction management facility to be indicated and the associated details to be specified and agreed in the resulting CPA. An example of a transaction management facility is the Business Transaction Protocol (BTP) [BTP] and the details in this version of this specification relate specifically to BTP. However, similar extensions could be specified, following the pattern of this specification, for other transaction management facilities with broadly similar features.

This specification is a component of the suite of ebXML specifications.

The rest of this specification is organized as follows: Section 6 defines the objectives of this specification. Section 7 provides a system overview. Section 8 contains the definition of the CPP extension, identifying the structure and all

necessary fields. Section 9 contains the definition of the CPA extension. Section 10 lists all other documents referenced in this specification. Section 11 provides a conformance statement. Section 12 contains a disclaimer. Section 13 lists contact information for the contributing authors and the coordinating

editor for this version of the specification. The appendices include examples of extended CPP and CPA documents (non-normative),

an XML Schema document for the extensions (normative), and a Glossary of Terms.

5.2 Document ConventionsTerms in Italics are defined in Appendix G (Glossary of Terms). Terms listed in Bold Italics represent the element and/or attribute content of the XML CPP, CPA, or related definitions.

In this specification, indented paragraphs beginning with "NOTE:" provide non-normative explanations or suggestions that are not mandated by the specification.

References to external documents are represented with BLOCK text enclosed in brackets, e.g. [RFC2396]. The references are listed in Section 10, "References".

Transaction Management Extension (BTP) - Page 6 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

262728

154

155

156

157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187

188

189190191192193194195196

293031

OASIS ebXML CPP/A Technical Committee 08/11/2002

The keywords MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY, and OPTIONAL, when they appear in this document, are to be interpreted as described in [RFC 2119].

NOTE: Vendors SHOULD carefully consider support of elements with cardinalities (0 or 1) or (0 or more). Support of such an element means that the element is processed appropriately for its defined function and not just recognized and ignored. A given Party might use these elements in some CPPs or CPAs and not in others. Some of these elements define parameters or operating modes and SHOULD be implemented by all vendors. It might be appropriate to implement elective elements that represent major run-time functions, such as various alternative communication protocols or security functions, by means of plug-ins so that a given Party MAY acquire only the needed functions rather than having to install all of them.

By convention, values of [XML] attributes are generally enclosed in quotation marks, however those quotation marks are not part of the values themselves.

5.3 Versioning of the Specification and SchemaWhenever this specification is modified, it SHALL be given a new version number.

It is anticipated that during the review period, errors and inconsistencies in the specification and in the schema may be detected and have to be corrected. All known errors in the specification as well as necessary changes to the schema will be summarized in an errata page found at

URL

The specification, when initially approved by the OASIS ebXML Collaboration Protocol Profile and Agreement Technical Committee for public review, SHALL carry a version number of “1_0”. At that time, the schema SHALL have a version number of “1_0a” and the suffix letter after “1_0” will be advanced as necessary when bug fixes to the schema have to be introduced. Such versions of the schema SHALL be found under the directory

http://www.oasis-open.org/committees/ebxml-cppa/schema/

In addition, the latest version of the schema SHALL always be found at

http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-2_0.xsd

since the latter is the namespace URI used for this specification and the corresponding schema is supposed to be directly resolvable from the namespace URI.

The value of the version attribute of the Schema element in a given version of the schema SHALL be equal to the version of the schema.

Transaction Management Extension (BTP) - Page 7 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

323334

197198199200201202203204205206207208209210211212213214

215

216217218219220221222223

224225226227228229230231

232233234

235236237238239240241

353637

OASIS ebXML CPP/A Technical Committee 08/11/2002

5.4 DefinitionsTechnical terms in this specification are defined in Appendix G.

5.5 AudienceOne target audience for this specification is implementers of ebXML services and other designers and developers of middleware and application software that is to be used for conducting electronic Business. Another target audience is the people in each enterprise who are responsible for creating CPPs and CPAs.

5.6 AssumptionsIt is expected that the reader has an understanding of XML and is familiar with the concepts of electronic Business (eBusiness).

5.7 Related DocumentsRelated documents include Specifications on the following topics:

Business Transaction Protocol [BTP]

and the ebXML Specifications on the following topics:

ebXML Collaboration-Protocol Profile and Agreement [ebCPPA]

Automated Negotiation of Collaboration-Protocol Agreements Specification [ebCPPANeg]

ebXML Business Process Specification Schema [ebBPSS]

See Section 10 for the complete list of references.

Transaction Management Extension (BTP) - Page 8 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

383940

242

243244

245

246247248249250

251

252253254

255

256257258259260261262263

264265266

267268269270

414243

OASIS ebXML CPP/A Technical Committee 08/11/2002

6 Design ObjectivesThe objective of this specification is to ensure interoperability between two Parties even though they MAY procure application software and run-time support software from different vendors. This extension to the CPP specification defines a Party's explicit transaction management capabilities. The CPA defines the way two Parties will interact in performing explicit transactions. Both Parties SHALL use identical copies of the CPA, including this extension, to configure their run-time systems. This assures that they are compatibly configured to exchange Messages whether or not they have obtained their run-time systems from the same vendor. The configuration process MAY be automated by means of a suitable tool that reads the CPA and performs the configuration process.

In addition to supporting direct interaction between two Parties, this specification MAY also be used to support interaction between two Parties through an intermediary such as a transaction coordination hub.

It is an objective of this specification that a CPA SHALL be capable of being composed by intersecting the respective CPPs of the Parties involved. The resulting CPA SHALL contain only those elements that are in common, or compatible, between the two Parties. Variable quantities, such as number of retries of errors, are then negotiated between the two Parties. The design of the CPP and CPA schemata facilitates this composition/negotiation process. However, the composition and negotiation processes themselves are outside the scope of this specification.

Transaction Management Extension (BTP) - Page 9 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

444546

271

272273274275276277278279280281282283284285286287288289290291292

474849

OASIS ebXML CPP/A Technical Committee 08/11/2002

7 System Overview7.1 What This Specification DoesThe exchange of information between two Parties under transaction control requires each Party to know the other Party's supported transaction capabilities, and the technology details about how the other Party sends and receives Messages. It is necessary for the two Parties to reach agreement on some of these details.

The way each Party can exchange information, about their transaction management capabilities, can be described by a Collaboration-Protocol Profile (CPP) extended as described in this specification. The agreement between the Parties can be expressed as a Collaboration-Protocol Agreement (CPA) extended as described in this specification.

A Party MAY describe itself in a single CPP. A Party MAY create multiple CPPs that describe, for example, different transaction management capabilities that it supports.

The document that defines the interactions between two Parties is a Process-Specification document that MAY conform to the ebXML Business Process Specification Schema [ebBPSS]. The CPP and CPA include references to this Process-Specification document. This Process-Specification document SHALL indicate the points at which transactions are initiated and terminated, by whom and with whom and the reaction to the possible transaction outcomes.

This specification defines the markup language vocabulary for creating electronic CPPs and CPAs that include transaction capabilities. CPPs and CPAs are [XML] documents. In the appendices of this specification are two sample CPPs, a sample CPA formed from the CPPs, a sample Process-Specification referenced by the CPPs and the CPA, and the XML Schema governing the structures of CPPs and CPAs. ???

Transaction Management Extension (BTP) - Page 10 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

505152

293

294

295296297298299300301302303304305306307308309310311312313314315316317318319

535455

OASIS ebXML CPP/A Technical Committee 08/11/2002

The CPPA specification is concerned with software that conducts business on behalf of Parties by exchanging Messages [ebMS]. In particular, it is concerned with Client and Server software programs that engage in Business Transactions [ebBPSS] by sending and receiving Messages. Those Messages convey Business Documents and/or business signals [ebBPSS] in their payload. Under the terms of a CPA: 

A Client initiates a connection with a Server. A Role initiates a Transaction with a complementary Role as defined in the business

process specification. A Sender sends a Message to a Receiver.

 Thus, Client and Server are software counterparts, Roles are business counterparts, and Sender and Receiver are messaging counterparts. There is no fixed relationship between counterparts of different types. For example, consider a purchasing collaboration. Client software representing the buying party might connect to Server software representing the selling party, and then make a purchase request by sending a Message containing a purchase order over that connection. If the CPA specifies a synchronous business response, the Server might then respond by sending a Message containing an acceptance notice back to the Client over the same connection. Alternatively, if the CPA specifies an asynchronous business response, Client software representing the selling party might later respond by connecting to Server software representing the buying party and then sending a Message containing an acceptance notice.

In general, the Parties to a CPA can have both client and server characteristics. A client requests services and a server provides services to the Party requesting services. In some applications,

Transaction Management Extension (BTP) - Page 11 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

565758

321322323324325326327328329330331332333334335336337338339340341342343344

596061

OASIS ebXML CPP/A Technical Committee 08/11/2002

one Party only requests services and one Party only provides services. These applications have some resemblance to traditional client-server applications. In other applications, each Party MAY request services of the other. In that case, the relationship between the two Parties can be described as a peer-peer relationship rather than a client-server relationship.

7.2 Forming a CPA from Two CPPsPlease refer to the base specification [ebCPPA] for an elaboration of this process.

Figure 2 illustrates forming a CPP. Party A tabulates the information to be placed in a repository for the discovery process, constructs a CPP that contains this information, and enters it into an ebXML Registry or similar repository along with additional information about the Party. The additional information might include a description of the Businesses that the Party engages in. Once Party A's information is in the repository, other Parties can discover Party A

In Figure 3, Party A and Party B use their CPPs to jointly construct a single copy of a CPA by calculating the intersection of the information in their CPPs. The resulting CPA defines how the two Parties will behave in performing their Business Collaboration.

Transaction Management Extension (BTP) - Page 12 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

626364

345346347348349

350

351352353354355356357

358360361362

656667

OASIS ebXML CPP/A Technical Committee 08/11/2002

Transaction Management Extension (BTP) - Page 13 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

686970

717273

OASIS ebXML CPP/A Technical Committee 08/11/2002

Figure 4 illustrates the entire process. The steps are listed at the left. The end of the process is that the two Parties configure their systems from identical copies of the agreed CPA and they are

then ready to do Business.

7.3 Forming a CPA from a CPA TemplatePlease refer to the base specification [ebCPPA] for an elaboration of this process.

7.4 How the CPA WorksPlease refer to the base specification [ebCPPA] for an elaboration of how the CPA works and may be utilised.

7.5 Where the CPA May Be ImplementedPlease refer to the base specification [ebCPPA] for an elaboration of where the CPA may be implemented.

7.6 Definition and ScopeThis extension to the base CPPA specification defines and explains the contents of the CPP and CPA XML documents as they relate to transaction management capabilities. Its scope is limited to these definitions. It does not define how to compose a CPA from two CPPs nor does it define anything related to run-time support for the CPP and CPA. See Section 11 for a discussion of

Transaction Management Extension (BTP) - Page 14 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

747576

364365

366367

368

369370

371

372373374

375

376377378

379

380381382383

777879

OASIS ebXML CPP/A Technical Committee 08/11/2002

conformance to this specification.

NOTE: This specification is limited to defining the contents of the CPP and CPA, and it is possible to be conformant with it merely by producing a CPP or CPA document that conforms to the XML Schema document defined herein. It is, however, important to understand that the value of this specification lies in its enabling a run-time system that supports electronic commerce between two Parties under the guidance of the information in the CPA.

Transaction Management Extension (BTP) - Page 15 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

808182

384385386387388389390391

838485

OASIS ebXML CPP/A Technical Committee 08/11/2002

8 CPP DefinitionA CPP defines the capabilities of a Party to engage in electronic Business with other Parties. This extension to the base CPP [ebCPPA] covers transaction management capabilities as provided by BTP [BTP] only.

This section defines and discusses the details of this extension to the base CPP in terms of the individual XML elements. The discussion is illustrated with some XML fragments. See Appendix E for the XML Schema, and Appendix A for sample CPP documents.

The TransactionManagement_BTP_CPP_Ext element of the CPP describes the Transaction management capabilities available through the use of the Business Transaction Protocol. It is an optional addition to the CPP and is only applicable when the system the CPP refers to is BTP enabled.

8.1 CPP StructureFollowing is the overall structure of a CPP with the BTP transaction management extension included. Unless otherwise noted, CPP elements MUST be in the order shown here. Subsequent sections describe each of the extension elements in greater detail. (The elements and attributes of the base CPP are specified in the CPP/A base specification [ebCPPA].)

<tp:CollaborationProtocolProfile xmlns:tp="http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-2_0.xsd" xmlns:btpext="http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-btp-ext-1_0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-2_0.xsd http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-2_0.xsd" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:pri="http://www.private.org/xml/pri.xsd" tp:cppid="uri:companyA-cpp" tp:version="2_0c">

<tp:PartyInfo> <!-- one or more --> ... </tp:PartyInfo>

<tp:SimplePart id="..."> <!-- one or more --> ... </tp:SimplePart>

<tp:Packaging id="..."> <!-- one or more --> ... </tp:Packaging>

Transaction Management Extension (BTP) - Page 16 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

868788

392

393394395396397398399400401402403404405

406

407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440

899091

OASIS ebXML CPP/A Technical Committee 08/11/2002

<tp:Signature> <!-- zero or one --> ... </tp:Signature>

<btpext:TransactionManagement_BTP_CPP_Ext btpext:BTP_CPPA_Ext_version="1.0"> <!-- zero or one --> <btpext:BTPversion> <!-- one or more --> ... </btpext:BTPversion>

<btpext:StandardBindings> <!-- zero or more --> ... </btpext:StandardBindings> <!-- zero or more -->

<btpext:TransactionTimeLimitRange> <!-- zero or one --> ... </btpext:TransactionTimeLimitRange>

<btpext:InferiorTimeoutRange> <!-- zero or one --> ... </btpext:InferiorTimeoutRange>

<btpext:MinInferiorTimeoutRange> <!-- zero or one --> ... </btpext:MinInferiorTimeoutRange>

<btpext:ActorRole> <!-- one or more --> ... </btpext:ActorRole>

<btpext:FactoryDefaultAddress> <!-- zero or more --> ... </btpext:FactoryDefaultAddress>

<btpext:MessageTimeoutRange> <!-- zero or one --> ... </btpext:MessageTimeoutRange>

<btpext:StandardQualifiersSupported> <!-- zero or more --> ... </btpext:StandardQualifiersSupported>

<btp:qualifiers> <!-- zero or more --> ... </btp:qualifiers>

<btpext:RecoveryCapable> <!-- zero or one --> ... <btpext:RecoveryCapable>

<!-- example extension to these BTP extensions to the CPP definition: -->

<pri:some-BTP_CPPA_extension" pri:must-be-understood="true"> <pri:My_Parameter1>24</pri:My_Parameter1></pri:some-BTP_CPPA_extension>

Transaction Management Extension (BTP) - Page 17 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

929394

441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496

959697

OASIS ebXML CPP/A Technical Committee 08/11/2002

<tp:Comment xml:lang="aa-AA"> <!-- zero or more --> ... </tp:Comment>

</btpext:TransactionManagement_BTP_CPP_Ext>

<tp:Comment>text</tp:Comment> <!-- zero or more --></tp:CollaborationProtocolProfile>

8.2 TransactionManagement_BTP_CPP_Ext elementThe TransactionManagement_BTP_CPP_Ext element is the enveloping element of the transaction management (BTP) extension to the CPP XML document.

The base CPP that this extension element becomes embedded into refers to one, or more, business process specifications. This TransactionManagement_BTP_CPP_Ext shall be included if, and only if, at least one of these business process specifications requires transaction management and BTP support is included in the as a means of providing transaction management.

The REQUIRED XML [XML] Namespace [XMLNS] additional declaration for the basic document is as follows:

The CPP/CPA BTP extension namespace: xmlns:btpext="http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-btp-ext-1_0.xsd",

In addition, the TransactionManagement_BTP_CPP_Ext element contains a REQUIRED BTP_CPPA_Ext_version attribute that indicates the version of this extension. Its purpose is to identify the version of the schema that this CPP extension conforms to. The value of the version attribute SHOULD be a string such as "1_0", "1_0b", etc., which corresponds to the version of this specification used.

The TransactionManagement_BTP_CPP_Ext element SHALL consist of the following child elements:

One REQUIRED BTPversion element that identifies the version of the BTP specification the CPP extension relates to,

Zero or more StandardBindings elements that indicate the standard bindings supported (i.e. from those specified in the BTP specification),

Zero or more NonStandardBindings elements that indicate any non-standard bindings supported (i.e. bindings not specified in the BTP specification),

Zero or one TransactionTimeLimitRange element that contains the range of acceptable overall transaction timeout values,

Zero or one InferiorTimeoutRange element that contains the range of acceptable inferior [BTP] timeout values,

Zero or one MinInferiorTimeoutRange element that contains the range of acceptable inferior timeout values that can be requested by a superior [BTP],

Zero or more ActorRole elements that indicate the (BTP) roles that the system is capable of,

Transaction Management Extension (BTP) - Page 18 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

9899

100497498499500501502503504505506

507

508509

510511512513514

515516

517518519520521522523524525526527528529530531532533534535536537538539540541542

101102103

OASIS ebXML CPP/A Technical Committee 08/11/2002

Zero or more FactoryDefaultAddress elements that provide the address(es) for systems that can provide (BTP) Factory functionality to this system,

Zero or one MessageTimeoutRange element that contains the range of message timeout values that can be applied,

Zero or more StandardQualifiersSupported elements that indicate the standard qualifiers that are supported, as specified in the BTP specification,

Zero or more qualifiers elements that indicate any qualifiers, and their definitions, that are supported, using the qualifier definition mechanism specified in the BTP specification,

One REQUIRED RecoveryCapable element, which is a Boolean that indicates whether recovery (as specified in the BTP specification) is supported or not,

Zero or more BTP_CPPA_Extensions elements, which allow this extension to the CPP to be further extended according to the requirements of particular users.

Zero or more Comment elements as in the base CPP specification, but applicable to this extension.

8.3 BTPversion ElementThe BTPversion element identifies of the Business Transaction Protocol (BTP) specification [BTP] that the implementation conforms to. Several versions may be offered and the inclusion or exclusion of subsequent elements may be affected.

NOTE: At present there is only one version of BTP, so this element shall carry the value 1.x, perhaps followed by a letter to indicate a minor revision, where x is currently “0” but may take other values to indicate minor technical revisions. Any future major revisions to the functionality of BTP may cause revisions to this specification to add extra elements and / or attributes.

<btpext:BTPversion>1.0</btpext:BTPversion>

The BTPversion element has no attributes.

8.4 StandardBindings elementThe StandardBindings element has enumerated values, which indicate the standard bindings, as defined in the BTP specification, that are supported. This element has no attributes.

There are two permitted values corresponding to the two bindings in the BTP specification these are:

<btpext:StandardBindings>XML_SOAP1_1_HTTP1_1</btpext:StandardBindings>

<btpext:StandardBindings>XML_SOAP1_1_Attach_HTTP1_1</btpext:StandardBindings>

Transaction Management Extension (BTP) - Page 19 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

104105106543544545546547548549550551552553554555556557558

559

560561562563564565566567568569570571

572573

574

575576577578579580581582583584585586587

107108109

OASIS ebXML CPP/A Technical Committee 08/11/2002

8.5 NonStandardBindings elementThe NonStandardBindings element is a simple string value, which indicates any non-standard bindings that are supported. This element has no attributes.

NOTE: Add an attribute that provides an optional URL (or something??) to a specification of this binding?

8.6 TransactionTimeLimitRange elementThe TransactionTimeLimitRange element (cardinality zero or one) gives the maximum and minimum values of time in seconds that can be accepted for the overall limit on a transaction’s duration. It is the root of a sub-tree of elements one level deep. The syntax is:

<btpext:TransactionTimeLimitRange> <btpext:MinTimeLimit> . . . </btpext:MinTimeLimit> <btpext:MaxTimeLimit>> . . . </btpext:MaxTimeLimit></btpext:TransactionTimeLimitRange>

This element has no attributes.

8.6.1 MinTimeLimit element

The MinTimeLimit element specifies the minimum time in seconds for the parameter represented by its parent element. It is of non-negative integer type. This element has no attributes.

8.6.2 MaxTimeLimit element

The MaxTimeLimit element specifies the maximum time in seconds for the parameter represented by its parent element. It is of non-negative integer type. This element has no attributes.

8.7 InferiorTimeoutRange elementThe InferiorTimeoutRange element (cardinality zero or one) gives the maximum and minimum values of time in seconds that a party acting as a BTP Inferior promises to apply before taking an autonomous cancel or conform decision. It is the root of a sub-tree of elements one level deep. The syntax is:

<btpext:InferiorTimeoutRange> <btpext:MinTimeLimit> . . . </btpext:MinTimeLimit> <btpext:MaxTimeLimit>> . . . </btpext:MaxTimeLimit></btpext:InferiorTimeoutRange>

This element has no attributes.

The child elements are as specified in 8.6.1 and 8.6.2.Transaction Management Extension (BTP) - Page 20 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

110111112588

589590591592593594595

596

597598599600601602603604605606607

608

609610611612

613

614615616617

618

619620621622623624625626627628629630631113114115

OASIS ebXML CPP/A Technical Committee 08/11/2002

8.8 MinInferiorTimeoutRange elementThe MinInferiorTimeoutRange element (cardinality zero or one) gives the maximum and minimum values of time in seconds that a party acting as a BTP Superior can request a party acting as a BTP Inferior to promise to apply before taking an autonomous cancel or conform decision. It is the root of a sub-tree of elements one level deep. The syntax is:

<btpext:MinInferiorTimeoutRange> <btpext:MinTimeLimit> . . . </btpext:MinTimeLimit> <btpext:MaxTimeLimit>> . . . </btpext:MaxTimeLimit></btpext:MinInferiorTimeoutRange>

This element has no attributes.

The child elements are as specified in 8.6.1 and 8.6.2.

8.9 ActorRole elementThe ActorRole element has enumerated values, which indicate the actors, and the roles within that actor, as defined in the BTP specification, that are supported. The values supported shall match up with the roles this party can undertake in the business process specification that the base CPP refers to (as overridden by the base CPP that this element is a part of).

This element has no attributes.

There are eleven combinations of permitted values corresponding to the actor and role combinations permitted in the BTP specification, which are:

<btpext:ActorRole>Composer\Superior</btpext:ActorRole><btpext:ActorRole>Composer\Decider</btpext:ActorRole><btpext:ActorRole>Coordinator\Superior</btpext:ActorRole><btpext:ActorRole>Coordinator\Decider</btpext:ActorRole><btpext:ActorRole>Participant\Inferior+Enroller</btpext:ActorRole><btpext:ActorRole>Sub-Composer\Superior</btpext:ActorRole><btpext:ActorRole>Sub-Composer\Inferior</btpext:ActorRole><btpext:ActorRole>Sub-Coordinator\Superior</btpext:ActorRole><btpext:ActorRole>Sub-Coordinator\Inferior</btpext:ActorRole><btpext:ActorRole>Initator+Terminator</btpext:ActorRole><btpext:ActorRole>Factory</btpext:ActorRole>

8.10 FactoryDefaultAddress elementThe FactoryDefaultAddress element provides address information for the default BTP factory accessible by this party. It is included only in the CPP for convenience in configuring the system for this party. This information does not need to be shared and therefore is not included in the CPA. Its data type is as specified in the BTP specification and has the following structure:

<btpext:FactoryDefaultAddress> <!-- Zero or more -->

Transaction Management Extension (BTP) - Page 21 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

116117118632

633

634635636637638639640641642643644645646647

648

649650651652653654655656657658659660661662663664665666667668669670

671

672

673674675676677678

119120121

OASIS ebXML CPP/A Technical Committee 08/11/2002

<btp:binding-name> ... </btp:binding-name> <!-- One only --> <btp:binding-address> ... </btp:binding-address> <!-- One only --> <btp:additional-information> ... </btp:additional-information> <!-- Zero or one --></btpext:FactoryDefaultAddress>

Please refer to the BTP specification [BTP] for the specification of the child elements binding-name, binding-address, and additional-information.

This element has no attributes.

8.11 MessageTimeoutRange elementThe MessageTimeoutRange element (cardinality zero or one) gives the maximum and minimum values of time in seconds that a party will apply as a timeout value after sending any message before it will resend the same message, or take some alternative action (according to the actions that the BTP specification permits at that point. It is the root of a sub-tree of elements one level deep. The syntax is:

<btpext:MessageTimeoutRange> <btpext:MinTimeLimit> . . . </btpext:MinTimeLimit> <btpext:MaxTimeLimit>> . . . </btpext:MaxTimeLimit></btpext:MessageTimeoutRange>

This element has no attributes.

The child elements are as specified in 8.6.1 and 8.6.2.

Note: When setting values for MessageTimeoutRange element consideration should be given to other timer values that might interact with the BTP message time out timer. As a general guide the following rule should be followed:

Application (e.g. BPSS) messages timeouts >= BTP message timeouts >= messaging timeouts

8.12 StandardQualifiersSupported elementThe StandardQualifiersSupported element has enumerated values, which indicate the standard qualifiers, as defined in the BTP specification, that are supported.

This element has no attributes.

There are four permitted values, which are:

<btpext:StandardQualifiersSupported>Transaction_Time_Limit </btpext:StandardQualifiersSupported>

<btpext:StandardQualifiersSupported>Inferior_Timeout </btpext:StandardQualifiersSupported>

Transaction Management Extension (BTP) - Page 22 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

122123124679680681682683

684685686687688689

690

691692693694695696697698699700701702703704705706707708709710

711712

713

714715716717718719720721722723724725

125126127

OASIS ebXML CPP/A Technical Committee 08/11/2002

<btpext:StandardQualifiersSupported>Minimum_Inferior_Timeout </btpext:StandardQualifiersSupported>

<btpext:StandardQualifiersSupported>Inferior_Name </btpext:StandardQualifiersSupported>

This element may be repeated with different values if more than one of the standard qualifiers is supported, which will often be the case.

Note: When using the three time qualifiers consideration should be given to other timer values that might interact with the BTP times. As a general guide the following rules should be followed:

TimetoPerform (BPSS and BCP) >= Transaction timelimit + inferior timeout

(Probably wise to use: TimetoPerform (BPSS and BCP) >= Transaction timelimit + Minimum inferior timeout)

Minimum inferior timeout >= inferior timeout >> TimeToLive (ebMS)

8.13 qualifiers elementThe qualifiers element is used to provide the data structures for any additional qualifiers that may be used that are not fully specified in the BTP specification.

This element is defined in the BTP specification [BTP] and is taken directly from there.

This element has no attributes.

8.14 RecoveryCapable elementThe RecoveryCapable element is used to indicate whether the recovery procedures specified in the BTP specification [BTP] are implemented, or not. It is a Boolean that takes the value “true” (or “1”) if the recovery procedures are supported and “false” (or “0”) if they are not supported.

This element has no attributes.

8.15 BTP_CPPA_Extensions elementThe BTP_CPPA_Extensions element is used to add further parameters to the TransactionManagement_BTP_CPP_Ext element that are required for configuration at one party (so that this basic configuration file format can be extended to fit in with the requirements of an individual implementation). It may also be used to offer extra parameter values to be included in a CPA either as shared values or as values relevant to one party and for the information of the other party.

This element has one must-be-understood attribute. It is a Boolean that takes the value “true”

Transaction Management Extension (BTP) - Page 23 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

128129130726727728729730731732

733734735736737738739740741742743744745

746747

748

749750751752753754755

756

757758759760761762

763

764765766767768769770771

131132133

OASIS ebXML CPP/A Technical Committee 08/11/2002

(or “1”) if the parameters must be understood by both parties to a CPA, and “false” (or “0”) if this is not necessary.

This element and its child elements, which carry the extra parameters, may be absent from a CPP (and a CPA). If it is present one, or more, times then there shall be at least one schema that provides the structure for the element and its child elements plus accompanying text, as in this specification, to describe each element and attribute and its use. An example outline of the sort of schema needed is as follows:

<schema targetNamespace=http://www.private1.org/xml/priC.xsdxmlns:priC=http://www.private1.org/xml/priC.xsd xmlns:btpcppa=http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-btp-ext-1_0.xsd xmlns=http://www.w3.org/2001/XMLSchema elementFormDefault="qualified" attributeFormDefault="qualified" version="1_0">

<import namespace=http://www.w3.org/1999/xlink schemaLocation="http://www.oasis-open.org/committees/ebxml-msg/schema/xlink.xsd"/>

<import namespace=http://www.w3.org/XML/1998/namespace schemaLocation="http://www.w3.org/2001/03/xml.xsd"/>

<import namespace="urn:oasis:names:tc:BTP:1.0:core" schemaLocation="http://www.oasis-open.org/committees/business-transactions/xml/btp_core.xsd"/>

<import namespace=http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-2_0.xsd schemaLocation="http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-2_0.xsd"/>

<import namespace=http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-btp-ext-1_0.xsd schemaLocation="http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-btp-ext-1_0.xsd"/>

<!-- TransactionManagement_BTP_CPP_Ext Extension element definition --><element name="MyTxManCPPAExtension" type="MyTxManCPPAExtension-type"

substitutionGroup="btpcppa:BTP_CPPA_Extension"/>

<complexType name="MyTxManCPPAExtension-type"><complexContent>

<extension base="btpcppa:BTP_CPPA_Extension-type"><sequence>

<element ref="priC:BTP_My_Parameter1"/><element ref="priC:BTP_My_Parameter2"/>

</sequence><attribute ref="priC:btp_My_Attribute1" use="required"/>

</extension></complexContent>

</complexType>

<!-- Attribute definitions --><attribute name="btp_My_Attribute1" type="boolean" default="true"/>

<!-- Element definitions --><element name="BTP_My_Parameter1" type="string"/><element name="BTP_My_Parameter2" type="string"/>

</schema>

The shaded parts should be copied as they are. The un-shaded parts of the schema are outline example only. They should be replaced as appropriate to meet the requirements for the

Transaction Management Extension (BTP) - Page 24 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

134135136772773774775776777778779780

781782783784785786787788

789790791

792793794

795796797

798799800

801802803804805

806807808809

810811812813814815816817818819820821

822823824

825826827828

829830

831832

833834835

137138139

OASIS ebXML CPP/A Technical Committee 08/11/2002

extension.

8.16 Comment elementThe TransactionManagement_BTP_CPP_Ext element contains zero or more Comment elements, the form of which is taken directly from CPPA base specification [ebCPPA]. The Comment element is a textual note that can be added to serve any purpose the author desires, but it is intended to provide a means for providing plain language notes appertaining to this extension. The language of the Comment is identified by a REQUIRED xml:lang attribute. The xml:lang attribute MUST comply with the rules for identifying languages specified in [XML]. If multiple Comment elements are present, each can have a different xml:lang attribute value. An example of a Comment element follows:

<tp:Comment xml:lang="en-GB">This is an extension of the CPA between A and B</tp:Comment>

When a CPA is composed from two CPPs, it is recommended that all Comment elements from both CPPs are be included in the CPA unless the two Parties agree otherwise, and new comments may be added.

This element and its attribute are fully defined in the CPPA base specification [ebCPPA].

Transaction Management Extension (BTP) - Page 25 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

140141142836837

838

839840841842843844845846847848849850

851852853854855856

143144145

OASIS ebXML CPP/A Technical Committee 08/11/2002

9 CPA DefinitionA Collaboration-Protocol Agreement (CPA) defines the capabilities that two Parties need to agree upon to enable them to engage in electronic Business for the purposes of the particular CPA. This extension to the base CPP [ebCPPA] covers transaction management capabilities as provided by BTP [BTP] only.

This section defines and discusses the details of the extension to the CPA. The discussion is illustrated with some XML fragments.

Most of the XML elements in this section are described in detail in Section 8, "CPP Definition". In general, this section does not repeat that information. The discussions in this section are limited to those elements that are not in the CPP or for which additional discussion is needed in the CPA context. See also Appendix E for the XML Schema, and Appendix B for an example of a CPA document.

The TransactionManagement_BTP_CPA_Ext element of the CPA describes the Transaction management capabilities available through the use of the Business Transaction Protocol. It is an optional addition to the CPA and is only applicable when both systems the CPA refers to are BTP enabled.

9.1 CPA StructureFollowing is the overall structure of a CPA with the BTP transaction management extension included. Unless otherwise noted, CPA elements MUST be in the order shown here. Subsequent sections describe each of the extension elements in greater detail. (The elements and attributes of the base CPP are specified in the CPP/A base specification [ebCPPA].)

<CollaborationProtocolAgreement xmlns:tp=http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-2_0.xsd xmlns:btpext="http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-btp-ext-1_0.xsd" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:priC="http://www.private1.org/xml/priC.xsd" xmlns:priA="http://www.private1.org/xml/priA.xsd" xmlns:priB="http://www.private2.org/xml/priB.xsd" tp:cpaid="YoursAndMyCPA" tp:version="2.0c"> <tp:Status tp:value="proposed"/> <tp:Start>1988-04-07T18:39:09</Start> <tp:End>1990-04-07T18:40:00</End> <!-- ConversationConstraints MAY appear 0 or 1 time --> <tp:ConversationConstraints tp:invocationLimit="100" tp:concurrentConversations="4"/>

<tp:PartyInfo> <!-- one only for one party -->

Transaction Management Extension (BTP) - Page 26 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

146147148

857

858859860861862863864865866867868869870871872873874875876

877

878879880881882883884885886887888889890891892893894895896897898899900901902903904

149150151

OASIS ebXML CPP/A Technical Committee 08/11/2002

... </tp:PartyInfo>

<tp:PartyInfo><!-- one only for the other party --> ... </tp:PartyInfo>

<tp:SimplePart tp:id="..."> <!-- one or more --> ... </tp:SimplePart>

<tp:Packaging tp:id="..."> <!-- one or more --> ... </tp:Packaging>

<tp:Signature> <!-- zero or one --> ... </tp:Signature>

<btpext:TransactionManagement_BTP_CPA_Ext btpext:BTP_CPPA_Ext_version="1.0"> <!-- zero or one --><!—Common agreed properties -->

<btpext:BTPversion> <!-- zero or one --> ... </btpext:BTPversion>

<btpext:StandardBindings> <!-- one only of Standard or Non_Standard --> ... </btpext:StandardBindings>

<btpext:NonStandardBindings> ... </btpext:NonStandardBindings>

<btpext:TransactionTimeLimitRange> <!-- zero or one -->...</btpext:TransactionTimeLimitRange>

<btpext:InferiorTimeoutRange> <!-- zero or one --> ...</btpext:InferiorTimeoutRange>

<btpext:MinInferiorTimeoutRange> <!-- zero or one --> ... </btpext:MinInferiorTimeoutRange>

<!-- example extension to these BTP extensions to the CPP definition: -->

<priC:some-BTP_CPPA_extension" priC:must-be-understood="true"> <priC:My_Parameter1>24</priC:My_Parameter1></priC:some-BTP_CPPA_extension>

Transaction Management Extension (BTP) - Page 27 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

152153154905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960

155156157

OASIS ebXML CPP/A Technical Committee 08/11/2002

<btpext:PartyA_Properties"> <!-- one only -->

<btpext:ActorRole> <!-- one only --> ...</btpext:ActorRole>

<btpext:MessageTimeoutRange> <!-- zero or one --> ...</btpext:MessageTimeoutRange>

<btpext:StandardQualifiersSupported> <!-- zero or more --> ... </btpext:StandardQualifiersSupported>

<btpext:RecoveryCapable> ... <btpext:RecoveryCapable>

<priA:some-BTP_CPPA_extension" priA:must-be-understood="false"> <priA:My_Parameter1>20/4/48</priA:My_Parameter1></priA:some-BTP_CPPA_extension>

</btpext:PartyA_Properties">

<btpext:PartyB_Properties"> <!-- one only -->

<btpext:ActorRole> <!-- one only --> ...</btpext:ActorRole>

<btpext:MessageTimeoutRange> <!-- zero or one --> ...</btpext:MessageTimeoutRange>

<btpext:StandardQualifiersSupported> <!-- zero or more --> ... </btpext:StandardQualifiersSupported>

<btpext:RecoveryCapable> ... <btpext:RecoveryCapable>

</btpext:PartyB_Properties">

<priB:some-BTP_CPPA_extension" pri:Bmust-be-understood="true"> <priB:My_Parameter1>ABC6724</priB:My_Parameter1> <priB:My_Parameter2>ADBC624</priB:My_Parameter2></priB:some-BTP_CPPA_extension>

<tp:Comment xml:lang="aa-AA">

</tp:Comment>

</btpext:TransactionManagement_BTP_CPA_Ext>

Transaction Management Extension (BTP) - Page 28 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

158159160961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999

10001001100210031004100510061007100810091010101110121013101410151016

161162163

OASIS ebXML CPP/A Technical Committee 08/11/2002

<tp:Comment xml:lang="en-GB">any text</Comment> <!-- zero or more --></tp:CollaborationProtocolAgreement>

9.2 TransactionManagement_BTP_CPA_Ext elementThe TransactionManagement_BTP_CPA_Ext element is the enveloping element of the transaction management (BTP) extension to the CPA XML document.

The base CPA that this extension element becomes embedded into refers to a business process specification. This TransactionManagement_BTP_CPA_Ext shall be included if, and only if, at least one of these business process specifications requires transaction management and BTP support is included in the as a means of providing that transaction management.

The REQUIRED XML [XML] Namespace [XMLNS] additional declaration for the basic document is as follows:

The CPP/CPA BTP extension namespace: xmlns:btpext="http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-btp-ext-1_0.xsd",

In addition, the TransactionManagement_BTP_CPA_Ext element contains a REQUIRED BTP_CPPA_Ext_version attribute that indicates the version of this extension. Its purpose is to identify the version of the schema that this CPP extension conforms to. The value of the version attribute SHOULD be a string such as "1_0", "1_0b", etc., which corresponds to the version of this specification used.

The TransactionManagement_BTP_CPA_Ext element SHALL consist of the following child elements:

One REQUIRED BTPversion element that identifies the version of the BTP specification the CPP extension relates to,

A choice of one StandardBindings element that indicates the standard binding supported (i.e. from those specified in the BTP specification), or one NonStandardBindings element that indicates the non-standard binding supported (i.e. a binding not specified in the BTP specification),

Zero or one TransactionTimeLimitRange element that contains the range of acceptable overall transaction timeout values,

Zero or one InferiorTimeoutRange element that contains the range of acceptable inferior timeout values,

Zero or one MinInferiorTimeoutRange element that contains the range of acceptable inferior timeout values that can be requested by a superior [BTP],

Zero or more BTP_CPPA_Extensions elements, which allow this extension to the CPA to be further extended according to the requirements of particular users.

[The above group of elements apply to both parties. The next group apply to one of the parties only designated as Party A.]

Transaction Management Extension (BTP) - Page 29 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

16416516610171018101910201021

1022

1023

10241025

1026102710281029

103010311032

10331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058

10601061

167168169

OASIS ebXML CPP/A Technical Committee 08/11/2002

One Party A enveloping element, Zero or more ActorRole elements that indicate the (BTP) roles that the system is capable

of, Zero or one MessageTimeoutRange element that contains the range of message timeout

values that can be applied, Zero or more StandardQualifiersSupported elements that indicate the standard qualifiers

that are supported, as specified in the BTP specification, Zero or more qualifiers elements that indicate any qualifiers, and their definitions, that

are supported, using the qualifier definition mechanism specified in the BTP specification,

One REQUIRED RecoveryCapable element, which is a Boolean that indicates whether recovery (as specified in the BTP specification) is supported or not,

Zero or more BTP_CPPA_Extensions elements, which allow this extension to the CPA to be further extended according to the requirements of particular users.

[The next group apply to one of the parties only designated as Party B.] One Party B enveloping element, Zero or more ActorRole elements that indicate the (BTP) roles that the system is capable

of, Zero or one MessageTimeoutRange element that contains the range of message timeout

values that can be applied, Zero or more StandardQualifiersSupported elements that indicate the standard qualifiers

that are supported, as specified in the BTP specification, Zero or more qualifiers elements that indicate any qualifiers, and their definitions, that

are supported, using the qualifier definition mechanism specified in the BTP specification,

One REQUIRED RecoveryCapable element, which is a Boolean that indicates whether recovery (as specified in the BTP specification) is supported or not,

Zero or more BTP_CPPA_Extensions elements, which allow this extension to the CPA to be further extended according to the requirements of particular users.

[The final element is applicable to this extension as a whole.] Zero or more Comment elements as in the base CPA specification, but applicable to this

extension.

So this extension to the CPPA is divided into three logical parts. The first part contains values that it has bee agreed apply to both parties to the CPA. The second part contains values that it has bee agreed apply to the party identified as party A and are included for the information of the party identified as party B. The third part contains values that it has bee agreed apply to the party identified as party B and are included for the information of the party identified as party A.

9.3 Elements common to both partiesThe BTPversion, StandardBindings, NonStandardBindings, TransactionTimeLimitRange, InferiorTimeoutRange, and MinInferiorTimeoutRange elements contain values that both parties have agreed to apply.

Transaction Management Extension (BTP) - Page 30 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

170171172

10621063106410651066106710681069107010711072107310741075

107710781079108010811082108310841085108610871088108910901091

1093109410951096109710981099110011011102

1103

110411051106

173174175

OASIS ebXML CPP/A Technical Committee 08/11/2002

The elements StandardBindings and NonStandardBindings are mutually exclusive in the CPA. Although several of each may be offered in a CPP, the single value in the CPA indicates the binding that has been agreed for use between the parties BTP implementation, when operating under this CPA.

9.4 Elements applicable to one party onlyThe elements PartyA_Properties and PartyB_Properties are used to envelope the elements and their values that apply to Party A only and Party B only, but that it is useful for the other party to be aware of. These vales will be used to configure their own respective systems. They may be (but do not have to be) utilised by the other party as well.

The ActorRole, MessageTimeoutRange, StandardQualifiersSupported, qualifiers, RecoveryCapable elements are the ones enveloped as illustrated in the following example XML fragments:

<btpext:PartyA_Properties">

<btpext:ActorRole>Composer\Superior</btpext:ActorRole> <btpext:ActorRole>Coordinator\Superior</btpext:ActorRole><btpext:MessageTimeoutRange> <btpext:MinTimeLimit>5</btpext:MinTimeLimit> <btpext:MaxTimeLimit>50</btpext:MaxTimeLimit> </btpext:MessageTimeoutRange> <btpext:StandardQualifiersSupported>Transaction_Time_Limit </btpext:StandardQualifiersSupported> <btpext:StandardQualifiersSupported>Inferior_Timeout </btpext:StandardQualifiersSupported> <btpext:StandardQualifiersASupported>Minimum_Inferior_Timeout </btpext:StandardQualifiersSupported> <btpext:StandardQualifiersSupported>Inferior_Name</btpext:StandardQualifiersSupported> <btpext:RecoveryCapable>true<btpext:RecoveryCapable>

</btpext:PartyA_Properties">

<btpext:PartyB_Properties">

<btpext:TransactionTimeLimitRange> <btpext:MinTimeLimit>100</btpext:MinTimeLimit> <btpext:MaxTimeLimit>1000</btpext:MaxTimeLimit> </btpext:TransactionTimeLimitRange> <btpext:InferiorTimeoutRange> <btpext:MinTimeLimit>10</btpext:MinTimeLimit> <btpext:MaxTimeLimit>100</btpext:MaxTimeLimit> </btpext:InferiorTimeoutRange> <btpext:MinInferiorTimeoutRange> <btpext:MinTimeLimit>5</btpext:MinTimeLimit> <btpext:MaxTimeLimit>20</btpext:MaxTimeLimit> </btpext:MinInferiorTimeoutRange>

Transaction Management Extension (BTP) - Page 31 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

176177178

110711081109111011111112

1113

111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158

179180181

OASIS ebXML CPP/A Technical Committee 08/11/2002

<btpext:ActorRole>Participant\Inferior+Enroller</btpext:ActorRole><btpext:MessageTimeoutRange> <btpext:MinTimeLimit>5</btpext:MinTimeLimit> <btpext:MaxTimeLimit>50</btpext:MaxTimeLimit> </btpext:MessageTimeoutRange> <btpext:StandardQualifiersSupported>Transaction_Time_Limit </btpext:StandardQualifiersSupported> <btpext:StandardQualifiersSupported>Inferior_Timeout </btpext:StandardQualifiersSupported> <btpext:StandardQualifiersSupported>Minimum_Inferior_Timeout </btpext:StandardQualifiersSupported><btpext:RecoveryCapable>false<btpext:RecoveryCapable></btpext:PartyB_Properties">

9.5 BTP_CPPA_Extensions elementThe BTP_CPPA_Extensions element is used to add further parameters to the TransactionManagement_BTP_CPA_Ext element that are required for configuration at one party or as shared values. It may be added to the common parameter group or the PartyA_Properties and PartyB_Properties groupings of elements. It is truly optional and thus may be absent altogether. For further description and information please refer to section 8.15.

9.6 Comment elementThe TransactionManagement_BTP_CPA_Ext element contains zero or more Comment elements placed at the end. See Section 8.16 for details of the syntax of the Comment element.

9.7 Composing a CPA from Two CPPsPlease refer to the base CPPA specification [ebCPPA] and the CPP/A Negotiation specification [ebCPPANeg] for the principles and practice of composing a CPA from two CPPs. The inclusion of the extensions specified in this specification should introduce no new issues of principle.

Transaction Management Extension (BTP) - Page 32 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

18218318411591160116111621163116411651166116711681169117011711172

1173

1174

117511761177117811791180

1181

118211831184

1185

11861187118811891190

185186187

OASIS ebXML CPP/A Technical Committee 08/11/2002

10 ReferencesSome references listed below specify functions for which specific XML definitions are provided in the CPP and CPA. Other specifications are referred to in this specification in the sense that they are represented by keywords for which the Parties to the CPA MAY obtain plug-ins or write custom support software but do not require specific XML element sets in the CPP and CPA.

In a few cases, the only available specification for a function is a proprietary specification. These are indicated by notes within the citations below.

[BTP] Business Transaction Protocol, OASIS Technical Committee Specification, version 1.0, June 2002, http://www.oasis-open.org/committees/business-transactions/.

[ebBPSS] ebXML Business Process Specification Schema, http://www.ebxml.org/specs/ebBPSS.pdf.

[ebCPPA] ebXML Collaboration-Protocol Profile and Agreement, version 2.0, OASIS Standard, http://www.oasis-open.org/committees/ebxml-cppa.

[ebCPPANeg] Automated Negotiation of Collaboration-Protocol Agreements Specification, version 1.0, http://www.oasis-open.org/committees/ebxml-cppa.

[RFC2119] Key Words for use in RFCs to Indicate Requirement Levels, Internet Engineering Task Force RFC 2119, http://www.ietf.org/rfc/rfc2119.txt.

[RFC2396] Uniform Resource Identifiers (URI): Generic Syntax, Internet Engineering Task Force RFC 2396, http://www.ietf.org/rfc/rfc2396.txt.

[XML] Extensible Markup Language (XML), World Wide Web Consortium, http://www.w3.org/XML.

[XMLNS] Namespaces in XML, Worldwide Web Consortium, http://www.w3.org/TR/REC-xml-names/.

[XMLSCHEMA-1] XML Schema Part 1: Structures, Worldwide Web Consortium, http://www.w3.org/TR/xmlschema-1/.

[XMLSCHEMA-2] XML Schema Part 2: Datatypes, Worldwide Web Consortium,http://www.w3.org/TR/xmlschema-2/.

Transaction Management Extension (BTP) - Page 33 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

188189190

1191

119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230

191192193

OASIS ebXML CPP/A Technical Committee 08/11/2002

11 ConformanceIn order to conform to this specification, an implementation:

a) SHALL support all the functional and interface requirements defined in this specification, b) SHALL NOT specify any requirements that would contradict or cause non-conformance

to this specification.

A conforming implementation SHALL satisfy the conformance requirements of the applicable parts of this specification.

An implementation of a tool or service that creates or maintains ebXML CPP or CPA instance documents SHALL be determined to be conformant by validation of the CPP or CPA instance documents, created or modified by said tool or service, against the XML Schema [XMLSCHEMA-1] definition of the CPP or CPA in Appendix E and available from

http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-2_0.xsd

by using two or more validating XML Schema parsers that conform to the W3C XML Schema specifications [XMLSCHEMA-1, XMLSCHEMA-2].

The objective of conformance testing is to determine whether an implementation being tested conforms to the requirements stated in this specification. Conformance testing enables vendors to implement compatible and interoperable systems. Implementations and applications SHALL be tested using available test suites to verify their conformance to this specification.

Publicly available test suites from vendor neutral organizations such as OASIS and the U.S.A. National Institute of Science and Technology (NIST) SHOULD be used to verify the conformance of implementations, applications, and components claiming conformance to this specification. Open-source reference implementations might be available to allow vendors to test their products for interface compatibility, conformance, and interoperability.

Transaction Management Extension (BTP) - Page 34 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

194195196

1231

123212331234123512361237123812391240124112421243124412451246

12471248124912501251125212531254125512561257125812591260

197198199

OASIS ebXML CPP/A Technical Committee 08/11/2002

12 DisclaimerThe views and specification expressed in this document are those of the authors and are not necessarily those of their employers. The authors and their employers specifically disclaim responsibility for any problems arising from correct or incorrect implementation or use of this design.

Transaction Management Extension (BTP) - Page 35 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

200201202

1261

1262126312641265

203204205

OASIS ebXML CPP/A Technical Committee 08/11/2002

13 Contact Information Tony Fletcher (Author) Choreology Ltd 13 Austin Friars London EC2N 2JX UK Phone: +44 20 7670 1787 email: [email protected]

Dale W. Moberg (Author) Cyclone Commerce 8388 E. Hartford Drive Scottsdale, AZ 85255 USA Phone: 480-627-2648 email: [email protected]

Transaction Management Extension (BTP) - Page 36 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

206207208

1266

126712681269127012711272127312741275127612771278127912801281128212831284

209210211

OASIS ebXML CPP/A Technical Committee 08/11/2002

Notices

Portions of this document are copyright (c) 2001 OASIS and UN/CEFACT. Copyright (C) The Organization for the Advancement of Structured Information Standards [OASIS] 2002. 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 OASIS, except as needed for the purpose of developing OASIS specifications, in which case the procedures for copyrights defined in the OASIS Intellectual Property Rights document 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 OASIS or its successors or assigns.

This document and the information contained herein is provided on an "AS IS" basis and OASIS 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.

OASIS 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. Information on OASIS's procedures with respect to rights in OASIS specifications can be found at the OASIS website. 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 OASIS Executive Director.

OASIS 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 implement this specification. Please address the information to the OASIS Executive Director.

OASIS has been notified of intellectual property rights claimed in regard to some or all of the contents of this specification. For more information consult the online list of claimed rights.

Transaction Management Extension (BTP) - Page 37 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

212213214

1285

128612871288

128912901291

1292129312941295129612971298129913001301130213031304130513061307130813091310

1311131213131314131513161317131813191320

1321132213231324

13251326

215216217

OASIS ebXML CPP/A Technical Committee 08/11/2002

Appendix A Example of CPP Document (Non-Normative)This example includes the outline of two CPPs that are used to form the CPA in Appendix B. The fu ll example CPPs without the Transaction Management extension added are to be found in Appendix A of the base specification [ebCPPA]. They are available as ASCII files at

http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-example-companyA-2_0b.xmlhttp://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-example-companyB-2_0b.xml

The examples below include the outline of the two CPPs that are used to form the CPA in Appendix B with missing items indicated by 3 vertical dots. The transaction management extension (BTP) element is shown in full. The full example CPPs including the Transaction Management extension are available as ASCII files at

cpp-example-companyA-2_0b.xml:

<?xml version="1.0"?><!-- Copyright UN/CEFACT and OASIS, 2001. All Rights Reserved. --><tp:CollaborationProtocolProfile xmlns:tp=http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-2_0.xsd xmlns:btpext="http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-btp-ext-1_0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:priA="http://www.private1.org/xml/priA.xsd" xsi:schemaLocation="http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-2_0.xsd cpp-cpa-2_0.xsd" tp:cppid="uri:companyA-cpp" tp:version="2_0b"> <!-- Party info for CompanyA--> <tp:PartyInfo tp:partyName="CompanyA" tp:defaultMshChannelId="asyncChannelA1" tp:defaultMshPackageId="CompanyA_MshSignalPackage"> <tp:PartyId tp:type="urn:oasis:names:tc:ebxml-cppa:partyid-type:duns">123456789</tp:PartyId> <tp:PartyRef xlink:href="http://CompanyA.com/about.html"/> <tp:CollaborationRole> . . . </tp:CollaborationRole> <!-- Certificates used by the "Buyer" company --> <tp:Certificate tp:certId="CompanyA_AppCert"> . . . </tp:Certificate> . . . <tp:SecurityDetails tp:securityId="CompanyA_TransportSecurity"> . . . </tp:SecurityDetails> . . . <tp:DeliveryChannel tp:channelId="asyncChannelA1" tp:transportId="transportA2" tp:docExchangeId="docExchangeA1">

Transaction Management Extension (BTP) - Page 38 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

218219220

1327

1328132913301331133213331334133513361337133813391340

1341

1342134313441345134613471348134913501351

1352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388

221222223

OASIS ebXML CPP/A Technical Committee 08/11/2002

. . . </tp:DeliveryChannel> . . . <tp:Transport tp:transportId="transportA1"> . . . </tp:Transport> . . . <tp:DocExchange tp:docExchangeId="docExchangeA1"> . . . </tp:DocExchange> </tp:PartyInfo> <!-- SimplePart corresponding to the SOAP Envelope --> <tp:SimplePart tp:id="CompanyA_MsgHdr" tp:mimetype="text/xml"> . . . </tp:SimplePart> . . . <!-- An ebXML message with a SOAP Envelope only --> <tp:Packaging tp:id="CompanyA_MshSignalPackage"> . . . </tp:Packaging> . . .<btpext:TransactionManagement_BTP_CPP_Ext btpext:BTP_CPPA_Ext_version="1.0"> <btpext:BTPversion> 1.0 </btpext:BTPversion> <btpext:StandardBindings>XML_SOAP1_1_HTTP1_1</btpext:StandardBindings> <btpext:StandardBindings>XML_SOAP1_1_Attach_HTTP1_1</btpext:StandardBindings> <btpext:NonStandardBindings>Java_RMI</btpext:NonStandardBindings> <btpext:TransactionTimeLimitRange> <btpext:MinTimeLimit>100</btpext:MinTimeLimit> <btpext:MaxTimeLimit>1000</btpext:MaxTimeLimit> </btpext:TransactionTimeLimitRange> <btpext:InferiorTimeoutRange> <btpext:MinTimeLimit>10</btpext:MinTimeLimit> <btpext:MaxTimeLimit>100</btpext:MaxTimeLimit> </btpext:InferiorTimeoutRange> <btpext:MinInferiorTimeoutRange> <btpext:MinTimeLimit>5</btpext:MinTimeLimit> <btpext:MaxTimeLimit>20</btpext:MaxTimeLimit> </btpext:MinInferiorTimeoutRange> <btpext:ActorRole>Composer\Superior</btpext:ActorRole> <btpext:ActorRole>Coordinator\Superior</btpext:ActorRole> <btpext:FactoryDefaultAddress> <btp:binding-name>soap-http-1</btp:binding-name> <btp:binding-address>200.34.5.1</btp:binding-address> <btp:additional-information>Alternative addresses available</btp:additional-information> </btpext:FactoryDefaultAddress> <btpext:MessageTimeoutRange> <btpext:MinTimeLimit>5</btpext:MinTimeLimit> <btpext:MaxTimeLimit>50</btpext:MaxTimeLimit> </btpext:MessageTimeoutRange> <btpext:StandardQualifiersSupported>Transaction_Time_Limit </btpext:StandardQualifiersSupported>

Transaction Management Extension (BTP) - Page 39 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

22422522613891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459

227228229

OASIS ebXML CPP/A Technical Committee 08/11/2002

<btpext:StandardQualifiersSupported>Inferior_Timeout </btpext:StandardQualifiersSupported> <btpext:StandardQualifiersSupported>Minimum_Inferior_Timeout </btpext:StandardQualifiersSupported> <btpext:StandardQualifiersSupported>Inferior_Name</btpext:StandardQualifiersSupported> <btpext:RecoveryCapable>true<btpext:RecoveryCapable>

<priA:some-BTP_CPPA_extension" priA:must-be-understood="false"> <priA:My_Parameter1>20/4/48</priA:My_Parameter1></priA:some-BTP_CPPA_extension>

<tp:Comment xml:lang="en-GB">Please e-mail if these values are not suitable. Use email; address [email protected] </tp:Comment></btpext:TransactionManagement_BTP_CPP_Ext>

<tp:Comment xml:lang="en-GB">Buyer's Collaboration Protocol Profile with BTP Transaction Management extension</tp:Comment></tp:CollaborationProtocolProfile>

cpp-example-companyB-2_0b.xml:

<?xml version="1.0"?><!-- Copyright UN/CEFACT and OASIS, 2001. All Rights Reserved. --><tp:CollaborationProtocolProfile xmlns:tp="http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-2_0.xsd" xmlns:btpext=http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-btp-ext-1_0.xsd xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:priB="http://www.private2.org/xml/priB.xsd" xsi:schemaLocation="http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-2_0.xsd cpp-cpa-2_0.xsd" tp:cppid="uri:companyB-cpp" tp:version="2_0b"> <!-- Party info for CompanyB--> <tp:PartyInfo tp:partyName="CompanyB" tp:defaultMshChannelId="asyncChannelB1" tp:defaultMshPackageId="CompanyB_MshSignalPackage"> <tp:PartyId tp:type="urn:oasis:names:tc:ebxml-cppa:partyid-type:duns">987654321</tp:PartyId> <tp:PartyRef xlink:type="simple" xlink:href="http://CompanyB.com/about.html"/> <tp:CollaborationRole> . . . </tp:CollaborationRole> <!-- Certificates used by the "Seller" company --> <tp:Certificate tp:certId="CompanyB_AppCert"> . . . </tp:Certificate> . . . <tp:SecurityDetails tp:securityId="CompanyB_TransportSecurity"> . . . </tp:SecurityDetails> . . . <tp:DeliveryChannel tp:channelId="asyncChannelB1" tp:transportId="transportB1" tp:docExchangeId="docExchangeB1"> . .

Transaction Management Extension (BTP) - Page 40 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

230231232146014611462146314641465

1466146714681469

1470147114721473

1474147514761477

147814791480

14811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530

233234235

OASIS ebXML CPP/A Technical Committee 08/11/2002

. </tp:DeliveryChannel> . . . <tp:Transport tp:transportId="transportB1"> . . . </tp:Transport> . . . <tp:DocExchange tp:docExchangeId="docExchangeB1"> . . . </tp:DocExchange> </tp:PartyInfo> <!-- SimplePart corresponding to the SOAP Envelope --> <tp:SimplePart tp:id="CompanyB_MsgHdr" tp:mimetype="text/xml"> . . . </tp:SimplePart> . . . <!-- An ebXML message with a SOAP Envelope only --> <tp:Packaging tp:id="CompanyB_MshSignalPackage"> . . . </tp:Packaging> . . .

<btpext:TransactionManagement_BTP_CPP_Ext btpext:BTP_CPPA_Ext_version="1.0"> <btpext:BTPversion> 1.0 </btpext:BTPversion> <btpext:StandardBindings>XML_SOAP1_1_HTTP1_1</btpext:StandardBindings> <btpext:StandardBindings>XML_SOAP1_1_Attach_HTTP1_1</btpext:StandardBindings><btpext:TransactionTimeLimitRange> <btpext:MinTimeLimit>200</btpext:MinTimeLimit> <btpext:MaxTimeLimit>2000</btpext:MaxTimeLimit> </btpext:TransactionTimeLimitRange> <btpext:InferiorTimeoutRange> <btpext:MinTimeLimit>20</btpext:MinTimeLimit> <btpext:MaxTimeLimit>50</btpext:MaxTimeLimit> </btpext:InferiorTimeoutRange> <btpext:MinInferiorTimeoutRange> <btpext:MinTimeLimit>10</btpext:MinTimeLimit> <btpext:MaxTimeLimit>20</btpext:MaxTimeLimit> </btpext:MinInferiorTimeoutRange> <btpext:ActorRole>Participant\Inferior+Enroller</btpext:ActorRole> <btpext:FactoryDefaultAddress> <btp:binding-name>soap-attachments-http-1</btp:binding-name> <btp:binding-address>220.12.50.11</btp:binding-address> <btp:additional-information>Alternative addresses available</btp:additional-information> </btpext:FactoryDefaultAddress> <btpext:MessageTimeoutRange> <btpext:MinTimeLimit>5</btpext:MinTimeLimit> <btpext:MaxTimeLimit>50</btpext:MaxTimeLimit> </btpext:MessageTimeoutRange> <btpext:StandardQualifiersSupported>Transaction_Time_Limit </btpext:StandardQualifiersSupported> <btpext:StandardQualifiersSupported>Inferior_Timeout </btpext:StandardQualifiersSupported> <btpext:StandardQualifiersSupported>Minimum_Inferior_Timeout

Transaction Management Extension (BTP) - Page 41 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

236237238153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569

15701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601

239240241

OASIS ebXML CPP/A Technical Committee 08/11/2002

</btpext:StandardQualifiersSupported><btpext:RecoveryCapable>false<btpext:RecoveryCapable>

<priB:some-BTP_CPPA_extension" priB:must-be-understood="false"> <priB:My_Parameter1>ABC6724</priB:My_Parameter1> <priB:My_Parameter2>ADBC624</priB:My_Parameter2></priB:some-BTP_CPPA_extension>

<tp:Comment xml:lang="en-US">Please e-mail if these values are not suitable. Use email; address [email protected] </tp:Comment></btpext:TransactionManagement_BTP_CPP_Ext>

<tp:Comment xml:lang="en-US">Seller's Collaboration Protocol Profile with BTP Transaction Management extension </tp:Comment></tp:CollaborationProtocolProfile>

Transaction Management Extension (BTP) - Page 42 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

24224324416021603

16041605160616071608

1609161016111612

1613161416151616

1617

245246247

OASIS ebXML CPP/A Technical Committee 08/11/2002

Appendix B Example of CPA Document (Non-Normative)The example in this appendix is to be parsed with an XML Schema parser. The schema is available as an ASCII file at URL

The example that can be parsed with the XSD is available athttp://www.oasis-open.org/committees/ebxml-cppa/schema/cpa-example-2_0b.xml

This example is the outline of one possibility for a CPA formed from the two CPPs in Appendix A. The full example CPA without the Transaction Management extension added are to be found in Appendix B of the base specification [ebCPPA]. It is are available as ASCII files at

http://www.oasis-open.org/committees/ebxml-cppa/schema/cpa-example-2_0b.xml

The example below includes the outline of the CPA with missing items indicated by 3 vertical dots. The transaction management extension (BTP) element is shown in full. The full example CPA including the Transaction Management extension are available as an ASCII file at:

<?xml version="1.0"?><!-- Copyright UN/CEFACT and OASIS, 2001. All Rights Reserved. --><tp:CollaborationProtocolAgreement xmlns:tp="http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-2_0.xsd" xmlns:btpext="http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-btp-ext-1_0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:priC="http://www.private1.org/xml/priC.xsd" xmlns:priA="http://www.private1.org/xml/priA.xsd" xmlns:priB="http://www.private2.org/xml/priB.xsd" xsi:schemaLocation="http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-2_0.xsd cpp-cpa-2_0.xsd" tp:cpaid="uri:companyA-and-companyB-cpa" tp:version="2_0b"> <tp:Status tp:value="proposed"/> <tp:Start>2001-05-20T07:21:00Z</tp:Start> <tp:End>2002-05-20T07:21:00Z</tp:End> <tp:ConversationConstraints tp:invocationLimit="100" tp:concurrentConversations="10"/> <!-- Party info for CompanyA --> <tp:PartyInfo tp:partyName="CompanyA" tp:defaultMshChannelId="asyncChannelA1" tp:defaultMshPackageId="CompanyA_MshSignalPackage"> <tp:PartyId tp:type="urn:oasis:names:tc:ebxml-cppa:partyid-type:duns">123456789</tp:PartyId> <tp:PartyRef xlink:href="http://CompanyA.com/about.html"/> <tp:CollaborationRole> . . . </tp:CollaborationRole> <!-- Certificates used by the "Buyer" company --> <tp:Certificate tp:certId="CompanyA_AppCert"> . . . </tp:Certificate>

Transaction Management Extension (BTP) - Page 43 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

248249250

1618

161916201621162216231624162516261627162816291630163116321633163416351636163716381639

1640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676

251252253

OASIS ebXML CPP/A Technical Committee 08/11/2002

. . . <tp:SecurityDetails tp:securityId="CompanyA_TransportSecurity"> . . . </tp:SecurityDetails> . . . <tp:DeliveryChannel tp:channelId="asyncChannelA1" tp:transportId="transportA1" tp:docExchangeId="docExchangeA1"> . . . </tp:DeliveryChannel> . . . <tp:Transport tp:transportId="transportA1"> . . . </tp:Transport> . . . <tp:DocExchange tp:docExchangeId="docExchangeA1"> . . . </tp:DocExchange> </tp:PartyInfo> <!-- Party info for CompanyB --> <tp:PartyInfo tp:partyName="CompanyB" tp:defaultMshChannelId="asyncChannelB1" tp:defaultMshPackageId="CompanyB_MshSignalPackage"> <tp:PartyId tp:type="urn:oasis:names:tc:ebxml-cppa:partyid-type:duns">987654321</tp:PartyId> <tp:PartyRef xlink:type="simple" xlink:href="http://CompanyB.com/about.html"/> <tp:CollaborationRole> . . . </tp:CollaborationRole> <!-- Certificates used by the "Seller" company --> <tp:Certificate tp:certId="CompanyB_AppCert"> . . . </tp:Certificate> . . . <tp:SecurityDetails tp:securityId="CompanyB_TransportSecurity"> . . . </tp:SecurityDetails> . . . <tp:DeliveryChannel tp:channelId="asyncChannelB1" tp:transportId="transportB1" tp:docExchangeId="docExchangeB1"> . .

Transaction Management Extension (BTP) - Page 44 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

25425525616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747

257258259

OASIS ebXML CPP/A Technical Committee 08/11/2002

. </tp:DeliveryChannel> . . . <tp:Transport tp:transportId="transportB1"> . . . </tp:Transport> . . . <tp:DocExchange tp:docExchangeId="docExchangeB1"> . . . </tp:DocExchange> </tp:PartyInfo> <!-- SimplePart corresponding to the SOAP Envelope --> <tp:SimplePart tp:id="CompanyA_MsgHdr" tp:mimetype="text/xml"> . . . </tp:SimplePart> . . . <!-- An ebXML message with a SOAP Envelope only --> <tp:Packaging tp:id="CompanyA_MshSignalPackage"> . . . </tp:Packaging> <tp:Packaging tp:id="CompanyB_MshSignalPackage"> . . . </tp:Packaging> . . .

<btpext:TransactionManagement_BTP_CPA_Ext btpext:BTP_CPPA_Ext_version="1.0">

<!—Common agreed properties -->

<btpext:BTPversion> 1.0 </btpext:BTPversion> <btpext:StandardBindings>XML_SOAP1_1_HTTP1_1</btpext:StandardBindings><btpext:TransactionTimeLimitRange> <btpext:MinTimeLimit>200</btpext:MinTimeLimit> <btpext:MaxTimeLimit>1000</btpext:MaxTimeLimit> </btpext:TransactionTimeLimitRange> <btpext:InferiorTimeoutRange> <btpext:MinTimeLimit>20</btpext:MinTimeLimit> <btpext:MaxTimeLimit>50</btpext:MaxTimeLimit> </btpext:InferiorTimeoutRange> <btpext:MinInferiorTimeoutRange> <btpext:MinTimeLimit>10</btpext:MinTimeLimit> <btpext:MaxTimeLimit>20</btpext:MaxTimeLimit> </btpext:MinInferiorTimeoutRange> <priC:some-BTP_CPPA_extension" priC:must-be-understood="true"> <priC:My_Parameter2>ADBC624</priB:My_Parameter2> </priC:some-BTP_CPPA_extension>

<btpext:PartyA_Properties">

Transaction Management Extension (BTP) - Page 45 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

2602612621748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793

17941795

17961797

179817991800180118021803180418051806180718081809181018111812181318141815

18161817

1818

263264265

OASIS ebXML CPP/A Technical Committee 08/11/2002

<btpext:ActorRole>Composer\Superior</btpext:ActorRole> <btpext:ActorRole>Coordinator\Superior</btpext:ActorRole><btpext:MessageTimeoutRange> <btpext:MinTimeLimit>5</btpext:MinTimeLimit> <btpext:MaxTimeLimit>50</btpext:MaxTimeLimit> </btpext:MessageTimeoutRange> <btpext:StandardQualifiersSupported>Transaction_Time_Limit </btpext:StandardQualifiersSupported> <btpext:StandardQualifiersSupported>Inferior_Timeout </btpext:StandardQualifiersSupported> <btpext:StandardQualifiersSupported>Minimum_Inferior_Timeout </btpext:StandardQualifiersSupported> <btpext:StandardQualifiersSupported>Inferior_Name</btpext:StandardQualifiersSupported> <btpext:RecoveryCapable>true<btpext:RecoveryCapable> <priA:some-BTP_CPPA_extension" priA:must-be-understood="false"> <priA:My_Parameter1>20/4/48</priA:My_Parameter1> </priA:some-BTP_CPPA_extension></btpext:PartyA_Properties">

<btpext:PartyB_Properties">

<btpext:TransactionTimeLimitRange> <btpext:MinTimeLimit>100</btpext:MinTimeLimit> <btpext:MaxTimeLimit>1000</btpext:MaxTimeLimit> </btpext:TransactionTimeLimitRange> <btpext:InferiorTimeoutRange> <btpext:MinTimeLimit>10</btpext:MinTimeLimit> <btpext:MaxTimeLimit>100</btpext:MaxTimeLimit> </btpext:InferiorTimeoutRange> <btpext:MinInferiorTimeoutRange> <btpext:MinTimeLimit>5</btpext:MinTimeLimit> <btpext:MaxTimeLimit>20</btpext:MaxTimeLimit> </btpext:MinInferiorTimeoutRange> <btpext:ActorRole>Participant\Inferior+Enroller</btpext:ActorRole><btpext:MessageTimeoutRange> <btpext:MinTimeLimit>5</btpext:MinTimeLimit> <btpext:MaxTimeLimit>50</btpext:MaxTimeLimit> </btpext:MessageTimeoutRange> <btpext:StandardQualifiersSupported>Transaction_Time_Limit </btpext:StandardQualifiersSupported> <btpext:StandardQualifiersSupported>Inferior_Timeout </btpext:StandardQualifiersSupported> <btpext:StandardQualifiersSupported>Minimum_Inferior_Timeout </btpext:StandardQualifiersSupported> <btpext:RecoveryCapable>false<btpext:RecoveryCapable> <priB:some-BTP_CPPA_extension" priB:must-be-understood="true"> <priB:My_Parameter1>ABC6724</priB:My_Parameter1> <priB:My_Parameter2>ADBC624</priB:My_Parameter2> </priB:some-BTP_CPPA_extension></btpext:PartyB_Properties">

<tp:Comment xml:lang="en-GB">This extension has been agreed for use </tp:Comment></btpext:TransactionManagement_BTP_CPA_Ext>

<tp:Comment xml:lang="en-US">buy\sell agreement between CompanyA.com and CompanyB.com with BTP Transaction Management extension </tp:Comment></tp:CollaborationProtocolAgreement>

Transaction Management Extension (BTP) - Page 46 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

266267268181918201821182218231824182518261827182818291830183118321833183418351836

18371838

183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868

186918701871

18721873187418751876

18771878

269270271

OASIS ebXML CPP/A Technical Committee 08/11/2002

Appendix C Requirements on this BTP Transaction Management extension

1) Use BTP, or not.

2) Editions of BTP supported (for CPP), edition of BTP agreed to be used.

3) Actors / roles that can be assumed (for CPP) – single actor/role for CPAValues: Composer\Superior, Composer\Decider, Coordinator\Superior, Coordinator\Decider, Participant\Inferior+Enroller, Sub-Composer\Superior, Sub-Composer\Inferior, Sub-Coordinator\Superior, Sub-Coordinator\Inferior, Initator+Terminator, Factory.

4) Address of default Factory.

5) Bindings offered for CPP – binding to be used for CPA.Values:

In BTP standard: XML\SOAP1.1(messages)\HTTP1.1;XML\SOAP1.1 with attachments (messages)\HTTP1.1; (only two for the present, more may be added later)

Not in BTP standard: For example Java RMI; (others to be added as companies provide)

6) Default timeout / time limit value ranges acceptable.Value ranges for: transaction time limit

Inferior timeoutMinimum inferior timeout

(Note: default value to apply if none given in the business process / collaboration. The normal value used should come from the Business process specification.)

7) Standard Qualifiers supported:Values: Transaction time limit

Inferior timeoutMinimum inferior timeoutInferior name

(more may be added in future editions of the BTP specification)

8) Proprietary Qualifiers supported (if any).

9) Timeout before resending a message when the expected response message is received and the number of times the message is resent before taking alternative action.

10) Failure recovery capability (separate CPP/A for failure recovery interactions?)

Note: Security for the BTP interactions has not been specified yet.

Issue 1: Have CPP/A that covers business application and BTP interactions, or separate ones for business application (just stating BTP to be used and pointing to separate CPP/A for BTP interactions) and BTP interactions?

Issue 2: Have a separate CPP/A that covers failure recovery interactions?

Transaction Management Extension (BTP) - Page 47 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

272273274

18791880

1881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929

275276277

OASIS ebXML CPP/A Technical Committee 08/11/2002

Appendix D Scenarios (Non-Normative)

Initiatingapplication

BTPengine

System A

InternalAPI

Respondingapplication

BTPengine

System B

InternalAPI

Application protocol+ some BTP

BT Outcome protocol

CPP_A1

CPP_A2

CPP_B1

CPP_B2

CPA_1

CPA_2

Figure 1 Minimal BTP enabled distributed application - two systems

Initiatingapplication

BTPengine

System A

InternalAPI

Respondingapplication

BTPengine

System B

InternalAPI

Application protocol+ BTP

CPP CPPCPA

Figure 2 Minimal BTP enabled distributed application - two systems with ‘one-wire’ optimisation

Transaction Management Extension (BTP) - Page 48 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

278279280

1930

1931

19321933193419351936

193719381939194019411942

281282283

OASIS ebXML CPP/A Technical Committee 08/11/2002

Initiatingapplication

BTPengine

applicationBTPengine

applicationBTPengine

applicationBTPengine

. . . .

CPP CPP

CPP CPP

CPPCPP

CPA(BTP)

CPA (App + BTP)

CPP CPPCPP CPP

CPPCPP

CPA(BTP) CPA

(BTP)CPA (App + BTP)

CPA(App+ BTP)

BTP Controlor Outcome

protocol

BTP Outcomeprotocol

Applicationprotocol

Figure 3 Example tree structure BTP enabled distributed application - many systems

Initiatingapplication

BTPengine

BTPengine

applicationBTPengine

CPP CPP

CPP

CPA(BTP)

CPA

CPPCPP

CPP

CPA(App + BTP)

BTP Outcomeprotocol

BTP Controlor Outcome

protocolApplication

protocol

Figure 4 Example of the use of a (sub-) coordinator or (sub-) composer

Transaction Management Extension (BTP) - Page 49 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

284285286

19431944194519461947

194819491950

19511952

287288289

OASIS ebXML CPP/A Technical Committee 08/11/2002

Appendix E W3C XML Schema Document Corresponding to Complete CPP and CPA Transaction Management (BTP) extension Definition (Normative)

This XML Schema document is available as an ASCII file at: URL

Add to the CPP - CPPA base schema the abstract element ‘CPPA-extensions’ as a top-level element.

<!— CPP and CPPA Extensions -->

<complexType name="cppa-extension-type"> <complexContent mixed="true"> <restriction base="anyType"> <sequence> <any processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </sequence> <attribute name="must-be-understood" type="boolean" default="true"/> </restriction> </complexContent> </complexType> <element name="CPPA-extension" type="cppa:cppa-extension-type" abstract="true"/> <element name="CPPA-extensions"> <complexType> <sequence> <element ref="cppa:CPPA-extension" minOccurs="0" maxOccurs="unbounded"/> </sequence> </complexType> </element>

<!-- example CPP / CPA extension definition: <element name="some-extension" type="some-extension-type" substitutionGroup="cppa:CPPA-extension"/> -->

<?xml version="1.0" encoding="UTF-8"?><!-- This is the schema that corresponds to the version 1.0 Transaction Management (BTP) CPP/A extension --><!-- Some parsers may require explicit declaration of 'xmlns:xml="http://www.w3.org/XML/1998/namespace"'. In that case, a copy of this schema augmented with the above declaration should be cached and used for the purpose of schema validation for CPPs and CPAs. -->

<schema targetNamespace="http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-btp-ext-1_0.xsd" xmlns:btpext="http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-btp-ext-1_0.xsd" xmlns:cppa="http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-2_0.xsd" xmlns:btp="urn:oasis:names:tc:BTP:1.0:core" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="qualified" version="1_0">

<import namespace="http://www.w3.org/1999/xlink" schemaLocation="http://www.oasis-open.org/committees/ebxml-msg/schema/xlink.xsd"/>

<import

Transaction Management Extension (BTP) - Page 50 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

290291292

195319541955

195619571958195919601961

19621963

196419651966196719681969197019711972197319741975197619771978197919801981198219831984

19851986198719881989

1990199119921993199419951996199719981999

2000200120022003200420052006200720082009

2010201120122013

20142015

293294295

OASIS ebXML CPP/A Technical Committee 08/11/2002

namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/03/xml.xsd"/>

<import namespace="urn:oasis:names:tc:BTP:1.0:core" schemaLocation="http://www.oasis-open.org/committees/business-transactions/xml/btp_core.xsd"/>

<import namespace="http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-2_0.xsd" schemaLocation="http://www.oasis-open.org/committees/ebxml-cppa/schema/cpp-cpa-2_0.xsd"/>

<!-- BTP Extension element definition -->

<element name="TransactionManagement_BTP_CPP_Ext" substitutionGroup="cppa:CPPA-extension"> <complexType> <complexContent> <extension base="cppa:cppa-extension-type"> <sequence> <element ref="btpext:BTPversion" maxOccurs="unbounded"/> <element ref="btpext:StandardBindings" minOccurs="0" maxOccurs="unbounded"/> <element ref="btpext:NonStandardBindings" minOccurs="0" maxOccurs="unbounded"/> <element ref="btpext:TransactionTimeLimitRange" minOccurs="0"/> <element ref="btpext:InferiorTimeoutRange" minOccurs="0"/> <element ref="btpext:MinInferiorTimeoutRange" minOccurs="0"/> <element ref="btpext:ActorRole" maxOccurs="unbounded"/> <element ref="btpext:FactoryDefaultAddress" minOccurs="0" maxOccurs="unbounded"/> <element ref="btpext:MessageTimeoutRange" minOccurs="0"/> <element ref="btpext:StandardQualifiersSupported" minOccurs="0" maxOccurs="unbounded"/> <element ref="btp:qualifiers" minOccurs="0" maxOccurs="unbounded"/> <element ref="btpext:RecoveryCapable"/> <element ref="btpext:BTP_CPPA_Extensions" minOccurs="0" maxOccurs="unbounded"/> <element ref="cppa:Comment" minOccurs="0" maxOccurs="unbounded"/> </sequence> <attribute ref="btpext:BTP_CPPA_Ext_version" use="required"/> </extension> </complexContent> </complexType> </element>

<element name="TransactionManagement_BTP_CPA_Ext" substitutionGroup="cppa:CPPA-extension"> <complexType> <complexContent> <extension base="cppa:cppa-extension-type"> <sequence>

<!-- Parameters common to both parties --> <element ref="btpext:BTPversion"/> <choice> <element ref="btpext:StandardBindings"/> <element ref="btpext:NonStandardBindings"/> </choice> <element ref="btpext:TransactionTimeLimitRange" minOccurs="0"/> <element ref="btpext:InferiorTimeoutRange" minOccurs="0"/> <element ref="btpext:MinInferiorTimeoutRange" minOccurs="0"/> <element ref="btpext:BTP_CPPA_Extensions" minOccurs="0" maxOccurs="unbounded"/>

<!-- Parameters for Party A --> <element name="PartyA_Properties"> <complexType> <sequence> <element ref="btpext:ActorRole" maxOccurs="unbounded"/> <element ref="btpext:MessageTimeoutRange" minOccurs="0"/> <element ref="btpext:StandardQualifiersSupported" minOccurs="0" maxOccurs="unbounded"/> <element ref="btp:qualifiers" minOccurs="0" maxOccurs="unbounded"/> <element ref="btpext:RecoveryCapable"/> <element ref="btpext:BTP_CPPA_Extensions" minOccurs="0" maxOccurs="unbounded"/> </sequence> </complexType> </element>

Transaction Management Extension (BTP) - Page 51 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

29629729820162017

20182019202020212022

2023202420252026

202720282029

20302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055

205620572058205920602061

20622063206420652066206720682069207020712072

20732074207520762077207820792080208120822083208420852086

299300301

OASIS ebXML CPP/A Technical Committee 08/11/2002

<!-- Parameters for Party B --> <element name="PartyB_Properties"> <complexType> <sequence> <element ref="btpext:ActorRole"/> <element ref="btpext:MessageTimeoutRange" minOccurs="0"/> <element ref="btpext:StandardQualifiersSupported" minOccurs="0" maxOccurs="unbounded"/> <element ref="btp:qualifiers" minOccurs="0" maxOccurs="unbounded"/> <element ref="btpext:RecoveryCapable"/> <element ref="btpext:BTP_CPPA_Extensions" minOccurs="0" maxOccurs="unbounded"/> </sequence> </complexType> </element>

<!-- Common comment for the BTP CPA extension --> <element ref="cppa:Comment" minOccurs="0" maxOccurs="unbounded"/> </sequence> <attribute ref="btpext:BTP_CPPA_Ext_version" use="required"/> </extension> </complexContent> </complexType> </element>

<!-- BTP Extension element attributes -->

<attribute name="BTP_CPPA_Ext_version" type="btpext:non-empty-string"/>

<!-- btpext:BTP_CPPA_Extensions element definition -->

<complexType name="BTP_CPPA_Extension-type"> <complexContent mixed="true"> <restriction base="anyType"> <sequence> <any processContents="lax" minOccurs="0" maxOccurs="unbounded"/> </sequence> <attribute name="must-be-understood" type="boolean" default="true"/> </restriction> </complexContent> </complexType> <element name="BTP_CPPA_Extension" type="btpext:BTP_CPPA_Extension-type" abstract="true"/> <element name="BTP_CPPA_Extensions"> <complexType> <sequence> <element ref="btpext:BTP_CPPA_Extension" minOccurs="0" maxOccurs="unbounded"/> </sequence> </complexType> </element>

<!-- Example extension to these BTP extensions to the CPP definition to be included in a Transaction_Management BTP CPP or CPA extension schema: <element name="some-BTP_CPPA_extension" type="btpext:BTP_CPPA_Extension-type" substitutionGroup="btpext:BTP_CPPA_Extension"/>

See also section 8.15-->

<!-- Element definitions -->

<element name="BTPversion" type="btpext:non-empty-string"/>

<element name="ActorRole"> <simpleType> <restriction base="string"> <enumeration value="Composer\Superior"/>

Transaction Management Extension (BTP) - Page 52 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

30230330420872088208920902091209220932094209520962097209820992100

210121022103210421052106210721082109

211021112112

21132114

211521162117

211821192120212121222123212421252126212721282129213021312132213321342135213621372138

21392140214121422143214421452146214721482149

21502151

21522153215421552156

305306307

OASIS ebXML CPP/A Technical Committee 08/11/2002

<enumeration value="Composer\Decider"/> <enumeration value="Coordinator\Superior"/> <enumeration value="Coordinator\Decider"/> <enumeration value="Participant\Inferior+Enroller"/> <enumeration value="Sub-Composer\Superior"/> <enumeration value="Sub-Composer\Inferior"/> <enumeration value="Sub-Coordinator\Superior"/> <enumeration value="Sub-Coordinator\Inferior"/> <enumeration value="Initator+Terminator"/> <enumeration value="Factory"/> </restriction> </simpleType> </element>

<element name="FactoryDefaultAddress" type="btp:address"/>

<element name="StandardBindings"> <simpleType> <restriction base="string"> <enumeration value="XML_SOAP1_1_HTTP1_1"/> <enumeration value="XML_SOAP1_1_Attach_HTTP1_1"/> </restriction> </simpleType></element>

<element name="NonStandardBindings" type="btpext:non-empty-string"/>

<element name="TransactionTimeLimitRange" type="btpext:TimeRange"/>

<element name="InferiorTimeoutRange" type="btpext:TimeRange"/>

<element name="MinInferiorTimeoutRange" type="btpext:TimeRange"/>

<element name="MessageTimeoutRange" type="btpext:TimeRange"/>

<element name="MinTimeLimit" type="nonNegativeInteger"/> <!-- Time expressed in integer seconds -->

<element name="MaxTimeLimit" type="nonNegativeInteger"/> <!-- Time expressed in integer seconds -->

<element name="StandardQualifiersSupported"> <simpleType> <restriction base="string"> <enumeration value="Transaction_Time_Limit"/> <enumeration value="Inferior_Timeout"/> <enumeration value="Minimum_Inferior_Timeout"/> <enumeration value="Inferior_Name"/> </restriction> </simpleType></element>

<element name="RecoveryCapable" type="boolean"/>

<!-- Complex Type definitions -->

<complexType name="TimeRange"> <sequence> <element ref="btpext:MinTimeLimit"/> <element ref="btpext:MaxTimeLimit"/> <!-- Time expressed in integer seconds --> </sequence> </complexType>

<!-- Common Simple Type definitions -->

<simpleType name="non-empty-string"> <restriction base="string"> <minLength value="1"/>

Transaction Management Extension (BTP) - Page 53 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

3083093102157215821592160216121622163216421652166216721682169

21702171

217221732174217521762177217821792180

21812182

21832184

21852186

21872188

21892190

219121922193

219421952196

21972198219922002201220222032204220522062207

22082209

221022112212

22132214221522162217221822192220

222122222223

2224222522262227

311312313

OASIS ebXML CPP/A Technical Committee 08/11/2002

</restriction> </simpleType>

</schema>

Transaction Management Extension (BTP) - Page 54 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

31431531622282229

223022312232

223322342235

317318319

OASIS ebXML CPP/A Technical Committee 08/11/2002

Appendix F CPA Composition (Non-Normative)For techniques for composing a CPA please refer to the main CPP/CPA specification [ebCPPA] and the CPA Negotiation [ebCPPANeg] specification.

Transaction Management Extension (BTP) - Page 55 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

320321322

2236

22372238

323324325

OASIS ebXML CPP/A Technical Committee 08/11/2002

Appendix G Glossary of TermsGeneral terms applicable to CPPs and CPAs are to be found in the base specification [ebCPPA]. This appendix list those terms specific to this extension specification.

Term Definition

Transaction Management Extension (BTP) - Page 56 of 56Collaboration-Protocol Profile and Agreement Specification

Copyright © OASIS, 2002. All Rights Reserved

326327328

2239

224022412242

2243

329330331