第 9 章 結 論 93
C.3 メッセージ詳細
本節では,送受信されるメッセージの詳細を示す.
なお,C.2節で述べたように,本節で述べる各メッセージの最初の1 バイトの部分には,
Function-ID と呼ぶ識別番号を記述する.それぞれのメッセージに,次のように付加した.
付 録C コンポーネント探索プロトコル
IP Header CDP Header Message Body
Option Option Null Option Message Body
Option Option Null Option
図C.1 CDP メッセージ構造
Version R E N (0) XID
Flags
Function-ID Message Body
図C.2 CDP ヘッダ部
(1) コンポーネント要求メッセージ: 0x01 (2) コンポーネント応答メッセージ: 0x02 (3) パラメータ要求メッセージ: 0x11 (4) パラメータ応答メッセージ: 0x12 (5) エラー応答メッセージ: 0xD2
(6) コンポーネント広告メッセージ: 0x03
C.3.1 コンポーネント要求メッセージ
コンポーネントを利用するクライアントや,コンポーネントを連係させる BPEL サー バは,コンポーネントを探索するために,コンポーネント要求メッセージをマルチキャス トで送信する.そのため,CDPヘッダ部のフラグのうち,R フラグをセットする.なお,
現段階の実装では意図的にユニキャストで要求を送信することもでき,その場合にはRフ ラグをセットしない.また,XID にはユニークなID を生成し,記述する.
コンポーネント要求メッセージの構造を,図C.3 に示す.それぞれのフィールドが示す 情報は,次の通りである.
(1) Function-ID (8 ビット)
コンポーネント要求メッセージであることを示す (0x01). (2) フラグ(8 ビット)
コンポーネント要求メッセージの受信者に対して,追加的な動作を要求するための フラグを記述する.現段階の実装では,次の1つを用意しており,後半部7 ビット は使用していない.
• P (with Parameter Request): パラメータ要求を同時に行うことを示す.
(3) コンポーネント技術や実装に関する情報
利用するコンポーネント技術や,その実装を限定する必要がある場合に,記述する ことができる.
(a) Platform Type (8ビット): コンポーネント技術の種類(EJB,CORBA,Web Service などを示す)
Flags
Function-ID = 0x01 P (0) Platform Type Implementation Type
Type Len (octet) Component Type
Options
図C.3 コンポーネント要求メッセージ
付 録C コンポーネント探索プロトコル
(b) Implementation Type (8 ビット): コンポーネントサーバ実装の種類 (4) コンポーネントのタイプを示すための情報
要求するコンポーネントのタイプを示すための文字列を記述する.
(a) Type Len (8ビット): Component Typeフィールドの長さ(バイト単位) (b) Component Type (可変長): コンポーネントのタイプを指定する文字列 (5) Options
オプションを記述するための部分.現段階の実装ではオプションを用意していない.
そのため,メッセージの最後であることを示すためのNull Option のみを付加する.
C.1 節で述べたように,コンポーネントの呼出し方法に関する情報は,パラメータ応答 メッセージによって取得する.しかしメッセージのやり取りの回数を減らすために,利用 場面に応じて,それらの内容をコンポーネント応答メッセージに含めて取得できるように している.その場合は,コンポーネント要求メッセージのPフラグをセットして送信する.
また,あるタイプのコンポーネントに対するコンポーネント要求として送信されるメッ セージに,他のタイプのコンポーネントに対するコンポーネント要求のメッセージも含む ことができる.その場合はC.2 節に述べたように,一つ目のコンポーネント要求メッセー ジの終端を示す Null Optionの後に,次のコンポーネント要求メッセージを記述する.
C.3.2 コンポーネント応答メッセージ
コンポーネントを提供するサーバや,コンポーネントを連係させる BPEL サーバは,
コンポーネント要求メッセージの送信元にコンポーネントの存在を通知するために,コン ポーネント応答メッセージをユニキャストで送信する.コンポーネント要求メッセージを 受け取ったサーバは,コンポーネント要求メッセージに含まれるコンポーネントのタイプ に一致するコンポーネントを提供する場合には,コンポーネント応答メッセージを返す.
コンポーネントのタイプが指定されなかった場合には,すべてのコンポーネントに関する 情報を返す.この際に,コンポーネント要求メッセージに,コンポーネントアーキテクチャ や実装が記述されている場合には,それに該当する実装を利用しするコンポーネントを提 供している場合にのみ応答メッセージを返す.
コンポーネント応答メッセージでは,CDP ヘッダ部のフラグはセットしない.また,
XIDには,受け取ったコンポーネント要求メッセージのXIDをコピーする.これにより コンポーネント応答メッセージの受信者は,どの要求に対する応答かを識別できる.
コンポーネント応答メッセージの構造を,図C.4に示す.それぞれのフィールドが示す 情報は,次の通りである.
(1) Function-ID (8 ビット)
コンポーネント応答メッセージであることを示す (0x02). (2) フラグ (8 ビット)
コンポーネント応答メッセージの受信者に対して,コンポーネントの動作に関する
追加的な情報を通知するためのフラグを記述する.現段階の実装では,次の2 つを 用意しており,後半部6 ビットは使用していない.
(a) O (Other Component): 他のコンポーネントを呼び出して利用していることを 示す.
(b) S (Suspended): 何らかの理由で,コンポーネントの動作が停止していることを 示す.
(3) コンポーネント技術や実装に関する情報
コンポーネントが動作するために利用しているコンポーネント技術や,その実装を 記述する.
(a) Platform Type (8ビット): コンポーネント技術の種類(EJB,CORBA,Web Service などを示す)
(b) Implementation Type (8ビット): コンポーネントサーバ実装の種類 (4) Lifetime (16ビット)
コンポーネントの提供者によって設定された生存時間 (5) Options
オプションを記述するための部分.詳細は後述する.
オプションについては,次のものを含む.各オプションの詳細については,C.4節に示す.
A) Component ID Option: コンポーネント応答メッセージの受信者がコンポーネント を識別するための識別子.コンポーネント応答メッセージは,Component ID Option を必ず含む.
B) IP Address Option: コンポーネント応答メッセージの送信者と,コンポーネントを 提供するサーバが異なる場合に付加する.そして,コンポーネントを実際に提供す るサーバのIPアドレスを記述する.このオプションを含めることにより,コンポー ネントを提供するサーバの代わりに,コンポーネントに関する情報を応答すること ができる.複数のコンポーネントサーバに関する情報を,一台のサーバに予め登録 しておくことにより,簡易的なディレクトリサービスとして利用することができる.
C) Type Option: タイプの指定されていないコンポーネント要求メッセージに対する応
答を返す場合に付加する.そしてType Optionによって,どのタイプのコンポーネ ントに対する情報なのかを示す.また,一つのメッセージに複数のコンポーネント
Flags
Function-ID = 0x02 O (0) Platform Type Implementation Type
Lifetime Options
S
図C.4 コンポーネント応答メッセージ
付 録C コンポーネント探索プロトコル Flags
Function-ID = 0x11 (0) Options
図 C.5パラメータ要求メッセージ
要求メッセージが含まれていた場合も,同様にType Optionによってタイプを明示 する必要がある.
D) Parameter Option: P フラグのセットされたコンポーネント要求メッセージに対
する応答の場合は,パラメータ応答メッセージで送信する呼出しに関する情報を,
Parameter Optionに記述して付加する.
これらのオプションをコンポーネント応答メッセージの後に付加し,オプション列の最 後に Null Optionを記述する.
また,コンポーネント要求メッセージに該当する複数のコンポーネントを提供する場合 や,タイプの指定されていないコンポーネント要求メッセージを受信した場合には,複数 のコンポーネントに関する情報を返す必要がある.この場合はそれぞれのコンポーネント に関するコンポーネント応答メッセージを作成し,C.2 節に述べたような形式でそれらを 繋げて,一つのメッセージとして応答する.
なお,コンポーネント要求メッセージに該当するコンポーネントを提供しないノードは,
コンポーネント応答メッセージを送信しない.ただしC.3.1節で述べたように,コンポー ネント要求メッセージが意図的にユニキャストで送信されていた場合には,明示的に応答 メッセージを送信する.その場合は,CDPヘッダ部にN フラグをセットしたエラー応答 メッセージを送信する.この詳細については,C.3.5節で述べる.
C.3.3 パラメータ要求メッセージ
コンポーネントを利用するクライアントや,コンポーネントを連係させるBPEL サー バは,発見したコンポーネントに対し,その呼出し方法を問い合わせるために,パラメー タ要求メッセージを送信する.このメッセージは,コンポーネント応答メッセージの送信 元に対して,ユニキャストで送信する.
パラメータ要求メッセージでは,CDPヘッダ部にはフラグをセットしない.また,XID にはユニークな ID を生成し,記述する.
パラメータ要求メッセージの構造を,図C.5 に示す.それぞれのフィールドが示す情報 は,次の通りである.
(1) Function-ID (8 ビット)
パラメータ要求メッセージであることを示す(0x11). (2) フラグ (8 ビット)
今後改版するために確保したフラグ部分.現段階の実装では使用していない.
(3) Options
オプションを記述するための部分.詳細は後述する.
オプションについては,次のものを含む.各オプションの詳細については,C.4節に示す.
A) Component ID Option: 要求対象のコンポーネントの識別子.コンポーネント応答 メッセージに含まれていたものと同一のものを指定する.パラメータ要求メッセー ジは,必ずComponent ID Optionを含む.
B) IP Address Option: 要求対象のコンポーネントを提供するサーバのIP アドレス.
パラメータ要求メッセージはコンポーネント応答メッセージの送信元に対して送信 するが,コンポーネント応答メッセージにIP Address Option が含まれていた場合 は,コンポーネント応答メッセージの送信元とコンポーネントを提供するサーバが 異なる.そのため,この場合はパラメータ要求オプションにIP Address Optionを 付加し,対象コンポーネントを提供するサーバを指定する.
これらのオプションをパラメータ要求メッセージの後に付加し,オプション列の最後に Null Optionを記述する.
コンポーネント要求メッセージと同様に,複数のパラメータ要求メッセージを一つのメッ セージに含むことができる.その場合はC.2 節に述べたように,一つ目のパラメータ要求 メッセージの終端を示すNull Optionの後に,次のパラメータ要求メッセージを記述する.
C.3.4 パラメータ応答メッセージ
コンポーネントを提供するサーバや,コンポーネントを連係させる BPELサーバは,パ ラメータ要求メッセージの送信元に,パラメータ応答メッセージをユニキャストで送信す る.これによって,コンポーネントの呼出しに関する情報を通知する.パラメータ要求メッ セージを受け取ったサーバは,Component ID Optionで指定される識別子のコンポーネン トを提供する場合には,パラメータ応答メッセージを送信元に返す.パラメータ要求メッ セージにIP Address Option が含まれている場合には,コンポーネントのIPアドレスに ついても比較を行い,該当するコンポーネントについての呼出しに関する情報を送信する.
パラメータ応答メッセージでは,CDP ヘッダ部のフラグはセットしない.また,XID には,受け取ったパラメータ要求メッセージのXIDをコピーする.これによりパラメー タ応答メッセージの受信者は,どの要求に対する応答かを識別できる.
パラメータ応答メッセージの構造を,図C.6 に示す.それぞれのフィールドが示す情報 は,次の通りである.
(1) Function-ID (8 ビット)
パラメータ応答メッセージであることを示す(0x12).
Function-ID = 0x12 Options
図C.6 パラメータ応答メッセージ