A CPP provides all necessary information how a particular party intends to do electronic business. It starts off with some general information about the party itself, such as its ID, a possible website for more information etc. The CPP then references a collaborative business process which the party supports. Along the reference of the collaborative business process it also has to provide the role it wants to play in the collaborative business process. In a ``Purchase Order Request'' collaborative business process for example, one party typically has to play the ``buyer'' role and one party the ``seller'' role. Because we are talking about electronic business the reference to the collaborative business process is not enough. For each business document which gets exchanged during the execution of the collaborative business process some additional information must be provided. Information such as the selected transport protocol (for example HTTP or SMTP), if a secure transport protocol is used (for example SSL), if encryption is necessary and if which encryption algorithm is used, including the necessary public keys or certificates. The CPP also references the packaging of business documents, typically their XML schema which allows to validate an incoming business document to a certain extend.
Once each party has such a CPP, each party registers it at an ebXML Registry/Repository. This allows another organisation to query for a potential new trading partner. The process to get from two CPP's to a CPA is called the CPA formation process. In this process any problems of incompatibility between how two different parties intend to do electronic business have be localised and fixed. For example, if the buying party intends to send the ``Purchase Order Request'' with HTTP as its transport protocol and the selling party intends to receive the ``Purchase Order Request'' with SMTP as its transport protocol, the two parties never will be able to exchange that business document.
Once such a Collaboration Protocol Agreement is formed both sides get such a copy. The CPA will be used to ``install'' a new electronic business agreement in their ebXML Message Service Handler. This message Service Handler, then knows, based on the information found in the CPA, exactly how business documents have to be exchanged, eg which transport protocol to use, which encryption to use, which key to encrypt a message, if SSL is necessary to establish a secure transportation and more. The big puzzle starts to make sense here, doesn't it?
To create a valid CPP is not that easy and tools will be needed to make it easy, especially for SME's.
So far we found collaborative business processes, core components, CPP's and CPA's. To support reuse of collaborative business processes, core components, these documents have to be stored in a repository with adequate access for all. CPP's also will be stored in a repository for others to be queried. The ebXML project provides the necessary specifications for the ebXML Registry/Repository.