ページの先頭行へ戻る
Interstage Application Server ebXML Message Serviceユーザーズガイド

3.1.4 CPA管理

  ebMSを利用したメッセージ送受信の通信条件はCPA (Collaboration-Protocol Agreement)に記述されています。よって、ebMSの運用を始める前にCPAの作成とebMSへの登録を行う必要があります。本節では、以下の順でCPAに関連した環境作成について説明します。

3.1.4.1 CPA管理機能の動作環境

  ebMSでのCPAの管理はコマンドにより行います。管理コマンドの実行には、コマンド実行者がシステムの管理者権限を持っている必要があります。

  CPA管理コマンドの詳細については、“リファレンスマニュアル(コマンド編)”の“ebXML Message Service運用コマンド”を参照してください。

  登録されたCPAの情報はコンフィグレーションファイルで指定したCPA管理ディレクトリに保存されるため、登録数に応じた空きディスク領域が必要になります。ひとつのCPAの登録に必要なディスク容量はCPAの記述内容により異なります。最低限の記述内容で約60Kバイト、平均的な内容で約150Kバイト程度です。

  なお、CPAの最大登録数は1000個です。

3.1.4.2 CPAの作成

  CPAは取引当事者(2者)ごとに作成します。CPAには当事者双方の通信条件が記述され、両当事者は同内容のCPAを参照します。当事者はCPAから取引に用いる通信条件を抽出します。

CPAの記述形式

  CPAの記述形式は“Collaboration-Protocol Profile and Agreement Specification Version 2.0”に従います。詳細は同文書を参照してください。なお、CPAの記述のうちebMSで必要とする部分については“付録B CPA記述条件”を参照してください。

CPAの作成方法

  以下に、基本的なCPAの作成方法を示します。ここでは、新規にebMSの動作に必要なCPAを作成するプロセスを示します。なお、ebMSが要求するCPAの記述条件については、“付録B CPA記述条件”を参照してください。

CPA内の記述の対応関係

  CPA内の記述の対応関係は以下の図のようになっています。取引当事者はPartyと呼ばれ、それぞれのPartyについての情報をCPA中のPartyInfo要素内に記述します。

  CPAに記述される通信条件はServiceとActionによって特定されます。実際の取引においては、ServiceとActionはebMSを利用するアプリケーションにより、通信パラメタとして与えられます。通信パラメタについては“6.2 データ形式”を参照してください。

  ServiceとActionが指定されると、それに伴ってDeliveryChannel、Packaging、Transport、DocExchangeの各要素が一意に決定され、それらの要素の記述内容から通信の条件が特定されます。各要素の関連付けは要素に付与されたIDにより行われます。

  例えば、ServiceとActionが指定された場合、それらはCPA記述条件としてPartyInfo要素内で一意であるため、対応するPartyInfo要素内のThisPartyActionBinding要素を一意に定めることができます。ThisPartyActionBinding要素はpackageId属性と子要素のChannelId要素を持っているため、それらに指定されているIDREFから、該当するIDを持つPackaging要素とDeliveryChannel要素を一意に決定することができます。さらに、DeliveryChannel要素はtransportId属性とdocExchangeId属性を持っているため、Transport要素とDocExchange要素も一意に決定することができます。図では、これらの関連付けられた要素間の対応関係を矢印で模式的に示しています。各要素でのIDやIDREFの記述形式については、“付録B CPA記述条件”を参照してください。

  CPAを作成する際には、IDによる要素間の関連付けを適切に行う必要があります。IDによって要素を関連付けたCPAの基本的な構造については、“B.2.1 CPAサンプル(Sample_CPA.xml)”を参考にしてください。

  ここでは図中、Service1のAction1に着目します。Action1はParty A側ではCanSend要素に属しています。一方のParty B側ではCanReceive要素に属しています。従って、このActionを利用する場合はParty Aが送信側、Party Bが受信側になります。このように、同名のService・Actionの組み合わせでは、片方が送信側、他方が受信側になるようにCPAを設計してください。ServiceはServiceBinding/Service要素に記述します。ActionはThisPartyActionBinding/action属性に記述します。

  図の設定では、Party AからAction1を用いるメッセージを送信する場合、DeliveryChannel A-1、そしてそれに関連付けられたTransport A-1、DocExchange A-1を利用します。

  一方、Party BでAction1のメッセージを受信するにはDeliveryChannel B-2、Transport B-1、DocExchange B-2を利用します。

  これらから、Action1のメッセージ送受信では、DeliveryChannel A-1とB-2、Transport A-1とB-1、DocExchange A-1とB-2について設定が整合していなければなりません。

  以降の節では、図中のAction1のメッセージ送信時を例に、要素作成の概要を示します。

Transport要素

  Transport要素には通信プロトコルやあて先URLを記述します。

  Transport要素の内部はTransportSenderとTransportReceiverに分かれています。Action1の例では、Party Aは送信側となるため、Transport A-1のTransportSenderを利用します。一方、Party Bは受信側となるため、Transport B-1のTransportReceiverを利用します。

  ebMSでは、通信プロトコルはHTTPのみをサポートしています。Action1の例では、送信側となるTransport A-1のTransportSender/TransportProtocolと、受信側となるTransport B-1のTransportReceiver/TransportProtocolに共にHTTPを指定する必要があります。

  あて先URLを記述するEndpoint要素はTransportReceiverのみに記述できます。前述のAction1のメッセージは、Transport B-1のTransportReceiverに含まれるEndpointのURLに送信されることになります。

DocExchange要素

  DocExchange要素には、ebXMLメッセージサービス仕様によってサポートされている機能の適用条件を記述します。

  DocExchange要素の内部は、ebXMLSenderBindingとebXMLReceiverBindingに分かれています。Action1の例では、Party Aは送信側となるため、DocExchange A-1のebXMLSenderBindingを利用します。一方、Party Bは受信側となるため、DocExchange B-2のebXMLReceiverBindingを利用します。

  通信時に直接対応するDocExchange同士の設定は、送信側と受信側で一致している必要があります。Action1の例では、送信側となるDocExchange A-1のebXMLSenderBinding/ReliableMessaging/Retriesに20を指定した場合、受信側となるDocExchange B-2のebXMLReceiverBinding/ReliableMessaging/Retriesにも20を指定する必要があります。他の要素・属性についても同様です。一致していない設定がある場合、CPA登録時にエラーになります。

DeliveryChannel要素

  DeliveryChannelの主な目的は、IDによってTransportとDocExchangeへのリンクを提供することです。また、リンク以外の記述要素であるMessagingCharacteristicsには、一部メッセージングの特性が記述されます。

  MessagingCharacteristicsは必須記述要素です。通信時に直接対応するDeliveryChannel同士のMessagingCharacteristics要素に記述される通信条件は、送信側と受信側で一致している必要があります。Action1の例では、送信側となるDeliveryChannel A-1のMessagingCharacteristics/ackRequestedにalwaysを指定した場合、受信側となるDeliveryChannel B-2のMessagingCharacteristics/ackRequestedにもalwaysを指定する必要があります。MessagingCharacteristicsの他の属性についても同様です。一致していない設定がある場合、CPA登録時にエラーになります。


  ebMSでサポートするCPAの要素・属性には、記述の省略が可能なものが存在します。それらを省略した場合、その要素・属性にはデフォルト値が設定されます。例えば、DeliveryChannel/MessagingCharacteristics/ackRequestedについてはneverがデフォルト値であるため、送信側がackRequested=”never”と明記し、受信側はackRequestedの記述を省略した場合でも、双方のackRequestedはneverで整合しているとみなされ、エラーにはなりません。CPAで記述する各設定のデフォルト値については、“付録B CPA記述条件”を参照してください。

3.1.4.3 CPAの管理

  ebMSで利用するCPAの管理はコマンドによって行います。以下の操作の概要と、該当するコマンドについて説明します。

CPAの登録

  CPAに記述された設定をebMSで用いるためには、ebmscparegisterコマンドでCPAを登録する必要があります。登録後、そのCPAを利用した通信を行うことが可能になります。

  以下にebmscparegisterコマンドの入力例を示します。

-------------------------------------------------------------
java ebmscparegister -f cpa001.xml -i cpa-partyA-partyB-001
-------------------------------------------------------------

  ebmscparegisterコマンドの詳細については、“リファレンスマニュアル(コマンド編)”の“ebmscparegister” を参照してください。

登録済みCPAの削除

  CPAに定められた有効期間が終了した場合や、取引に不要となったCPAを削除する場合は、ebmscpadeleteコマンドを用いて登録されたCPAを削除します。

  以下にebmscpadeleteコマンドの入力例を示します。

-------------------------------------------------------------
java ebmscpadelete -i cpa-partyA-partyB-001
-------------------------------------------------------------

  ebmscpadeleteコマンドの詳細については、“リファレンスマニュアル(コマンド編)”の“ebmscpadelete”を参照してください。

利用可能パラメタの一覧表示

  CPA-IDの一覧、あるいはCPAの登録によってメッセージ送受信時に利用可能となったパラメタの一覧を表示するには、ebmscpalistコマンドを利用します。

  以下にebmscpalistコマンドの入力例を示します。

-------------------------------------------------------------
java ebmscpalist
-------------------------------------------------------------

  ebmscpalistコマンドの詳細については、“リファレンスマニュアル(コマンド編)”の“ebmscpalist”を参照してください。

通信情報の参照

  CPAの記述内容のうち、実際に通信で使用される設定を参照するには、ebmscpareferコマンドを利用します。

  以下にebmscpareferコマンドの入力例を示します。

-------------------------------------------------------------
java ebmscparefer -m urn:icann:partyA.com -o http://www.PartyB.com -e urn:icann:service:id:3A4 -a "Purchase Order Confirmation Action" -i cpa-partyA-partyB-001
-------------------------------------------------------------

  ebmscpareferコマンドの詳細については、“リファレンスマニュアル(コマンド編)”の“ebmscparefer”を参照してください。

登録されたCPAの参照

  登録されたCPAを参照するには、ebmscpaprintコマンドを利用します。

  以下にebmscpaprintコマンドの入力例を示します。

-------------------------------------------------------------
java ebmscpaprint -i cpa-partyA-partyB-001
-------------------------------------------------------------

  ebmscpaprintコマンドの詳細については、“リファレンスマニュアル(コマンド編)”の“ebmscpaprint”を参照してください。