EbXML Collaboration Protocol Profile and Agreement
ebXML Collaboration Protocol Profile and Agreement (ebCPPA) は、企業間電子商取引において、プロトコル上の能力や取引の役割に関して、取引当事者のプロファイルを記述し、また、取引を行う2者間の合意を記述するためのXML言語である。ebXMLの仕様のひとつであり、OASISで標準化されている。また、ISOによってISO/TS 15000-1として承認されている。
CPPAは実際には、CPP (Collaboration Protocol Profile) とCPA (Collaboration Protocol Agreement) の2つの言語を規定する。この2つの言語は共通点が多いため、その文法は1つのXML Schema定義で規定されている。
CPPは、ある取引当事者 (企業) についての記述である。その企業が、どのような業務プロセスのどの役割を担当可能であるか、また、取引を行うにあたってどのようなプロトコルが使用可能かを記述する。
CPAは、実際に取引を行う際に作成されるもので、取引を行う2者がそれぞれどのプロセスのどの役割を担うか、また、メッセージ交換のプロトコルに何を使うかを具体的に指定する。CPAは、2者のCPPを合成して作成することが想定されている (ただし、CPAを作るにあたっては本当にCPPを合成する手順を踏む必要はない)。
作成されたCPAは、企業間取引のメッセージング (ebXML Message Service等) のハンドラへの設定ファイルとみなすことができる。メッセージハンドラはCPAにしたがってプロトコルやパラメタ等の設定を行う。
ebXML Message Serviceを実装したソフトウェアは、CPAに対応していることが多い。
CPPAは、ebXML BPSSで記述された取引プロセスを実施するにあたり、具体的にどのようなメッセージング技術で実行するかを指定する
CPPは企業の情報としてebXML Registryに登録され、随時参照可能とするような運用が考えられる