サービスプリミティブ
TP1/NET/OSI-TPが提供するサービスプリミティブのインタフェースについて説明します。
サービスプリミティブとは,OSIが規定するOSI参照モデルで,それぞれの階層が利用するサービスです。TP1/NET/OSI-TPでは,サービスプリミティブを利用して,メッセージの送受信をします。
サービスプリミティブは,UAPのコーディング時に設定します。このとき,まずUAPの引数を設定してから,使用するサービスプリミティブの領域と具体的な指定値を設定します。また,サービスプリミティブは複数連結して送信できます。
TP1/NET/OSI-TPがメッセージ送受信で提供する基本サービスプリミティブを表3-4に,サービスプリミティブとUAPとの対応を表3-5に,サービスプリミティブの連結パターンとUAPとの対応を表3-6に示します。
表3-4 基本サービスプリミティブ
サービスプリミティブ | 機能 | 全二重 | 半二重 | |||
---|---|---|---|---|---|---|
制御権あり | 制御権なし | |||||
送信 | 受信 | 送信 | 受信 | |||
TP-BEGIN-DIALOGUEreq/ind | ダイアログ開始要求/指示 | - | - | - | - | - |
TP-BEGIN-DIALOGUErsp/cnf | ダイアログ開始応答/確認 | ○ | ○ | ○ | ○ | ○ |
TP-END-DIALOGUEreq/ind | ダイアログ終了要求/指示 | ○ | ○ | × | × | ○ |
TP-END-DIALOGUErsp/cnf | ダイアログ終了応答/確認 | ○ | × | ○ | ○ | × |
TP-U-ERRORreq/ind | エラー発生の通知要求/指示 | ○ | ○ | ○ | ○ | ○ |
| ||||||
TP-U-ABORTreq/ind | UAPでのダイアログ異常終了要求/指示 | ○ | ○ | ○ | ○ | ○ |
TP-P-ABORTind | TP1/NET/OSI-TPでのダイアログ異常終了指示 | ○ | ○ | ○ | ○ | ○ |
TP-HANDSHAKEreq/ind | ハンドシェイク要求/指示 | ○ | ○ | × | × | ○ |
TP-HANDSHAKErsp/cnf | ハンドシェイク応答/確認 | ○ | × | ○ | ○ | × |
TP-DATAreq/ind | データ転送要求/指示 | ○ | ○ | × | × | ○ |
TP-GRANT-CONTROLreq/ind | 制御権委譲要求/指示 | × | ○ | × | × | ○ |
TP-REQUEST-CONTROLreq/ind | 制御権要求要求/指示 | × | × | ○ | ○ | × |
TP-HANDSHAKE-AND-GRANT-CONTROLreq/ind | 制御権委譲付きハンドシェイク要求/指示 | × | ○ | × | × | ○ |
TP-HANDSHAKE-AND-GRANT-CONTROLrsp/cnf | 制御権委譲付きハンドシェイク応答/確認 | × | × | ○ | ○ | × |
表3-5 サービスプリミティブとUAPとの対応
サービス | プリミティブ | UAP | サービスプリミティブ種別コード | ||
---|---|---|---|---|---|
C言語 | COBOL言語※1 | データ操作 言語 | |||
TP-BEGIN-DIALOGUE | req |
|
| ENABLE | BDR |
ind | receive | RECEIVE | RECEIVE | BDI | |
rsp(受諾) |
|
| ENABLE | BDPA | |
rsp(拒否) | sendsync | SENDSYNC | DISABLE | BDPN | |
cnf |
|
| RECEIVE | BDC | |
TP-END-DIALOGUE | req |
|
| DISABLE | EDR |
ind |
|
| RECEIVE | EDI | |
rsp |
|
| DISABLE | EDP | |
cnf |
|
| RECEIVE | EDC | |
TP-U-ERROR | req |
|
| SEND | UER |
ind | recvsync | RECVSYNC | RECEIVE | UEI | |
TP-U-ABORT | req | sendsync | SENDSYNC | DISABLE | UAR |
ind |
|
| RECEIVE | UAI | |
TP-P-ABORT | ind |
|
| RECEIVE | PAI |
TP-HANDSHAKE | req |
|
| SEND | HSR |
ind |
|
| RECEIVE | HSI | |
rsp |
|
| SEND | HSP | |
cnf |
|
| RECEIVE | HSC | |
TP-DATA | req |
|
| SEND | TDR |
ind |
|
| RECEIVE | TDI | |
TP-GRANT-CONTROL | req |
|
| SEND | GCR |
ind |
|
| RECEIVE | GCI | |
TP-REQUEST-CONTROL | req |
|
| SEND | RCR |
ind |
|
| RECEIVE | RCI | |
TP-HANDSHAKE-AND-GRANT-CONTROL | req |
|
| SEND | HGR |
ind |
|
| RECEIVE | HGI | |
rsp |
|
| SEND | HGP | |
cnf |
|
| RECEIVE | HGC |
表3-6 サービスプリミティブの連結パターンとUAPとの対応
サービスプリミティブ連結パターンの分類 (サービスプリミティブ連結パターン例) | UAP | ||
---|---|---|---|
C言語 | COBOL言語※1 | データ操作言語 | |
先頭がBDRまたはBDPA (BDR+TDR,BDPA+TDRなど) |
|
| ENABLE |
先頭がBDI (BDI+TDI,BDI+TDI+EDIなど) | receive | RECEIVE | RECEIVE |
先頭がBDRまたはBDPAで最後がEDR (BDPA+TDR+EDR,BDR+TDR+EDR※3など) |
|
| DISABLE |
最後がEDR (TDR+EDR,BDPA+EDR,HSP+EDRなど) |
|
| DISABLE |
その他の送信 (TDR+HSR,TDR+TDRなど) |
|
| SEND |
その他の受信 (TDI+EDI,BDC+TDI,BDC+EDI,BDC+TDI+EDI,TDI+TDIなど) |
|
| RECEIVE |
メッセージの形式
送受信メッセージ
TP1/NET/OSI-TPで送受信するメッセージの形式を次の図に示します。送受信メッセージは,UAPで複数のAPDUを連結し,一括して処理できます。
図3-1 送受信メッセージの形式
セグメント
セグメントは,UAPが送受信するデータ単位です。セグメントは一つ以上のサービスプリミティブから構成されます。
サービスプリミティブ
サービスプリミティブは,制御情報,パラメタ,およびユーザ情報から構成されます。また,サービスプリミティブは複数連結できます。連結をしない場合,セグメントとサービスプリミティブは1対1に対応し,連結をする場合は1対nに対応します。
パラメタおよびユーザ情報がない場合,または指定しない場合は,LL2またはLL3に(0002)16を設定します。
サービスプリミティブの形式を次の図に示します。
図3-2 サービスプリミティブの形式
制御情報
制御情報は,転送手順とサービスプリミティブ種別コードから構成されます。サービスプリミティブ種別コードについては,表3-5を参照してください。
制御情報の形式を次の図に示します。
図3-3 制御情報の形式
パラメタ
パラメタの形式を次の図に示します。該当するパラメタを指定しない場合は,そのパラメタに対応するLLに(0002)16を設定します。
図3-4 パラメタの形式
ユーザ情報
ユーザ情報は,APDU連結状態とユーザデータから構成されます。
ユーザ情報の形式を,次の図に示します。
図3-5 ユーザ情報の形式
ユーザデータは,任意のデータを転送構文形式で設定します。
パラメタとの関係
サービスプリミティブは,機能ごとに,設定するパラメタが異なります。
省略した場合,省略したパラメタに対応する領域の長さは(0002)16となります。
サービスプリミティブとパラメタとの対応を次の表に示します。
表3-7 サービスプリミティブとパラメタとの対応
サービス | プリミティブ | パラメタ1 | パラメタ2 | パラメタ3 | パラメタ4 | パラメタ5 | パラメタ6 | パラメタ7 | ユーザ情報の設定 |
---|---|---|---|---|---|---|---|---|---|
TP-BEGIN-DIALOGUE | req | (1)※1 | (2)※1 | (3)※1 | (4)※2 | (5)※1 | (6)※2 | (7)※2 | ○ |
ind | (1)※3 | (4)※2 | (7)※2 | - | - | - | - | ○ | |
rsp | (8)※2 | - | - | - | - | - | - | ○ | |
cnf | (4)※3 | (8)※2 | (9)※3 | (10)※2 | - | - | - | ○ | |
TP-END-DIALOGUE | req | (7)※2 | - | - | - | - | - | - | × |
ind | (7)※2 | - | - | - | - | - | - | × | |
rsp | - | - | - | - | - | - | - | × | |
cnf | - | - | - | - | - | - | - | × | |
TP-U-ERROR | req | - | - | - | - | - | - | - | × |
ind | - | - | - | - | - | - | - | × | |
TP-U-ABORT | req | - | - | - | - | - | - | - | ○ |
ind | (10)※2 | - | - | - | - | - | - | ○ | |
TP-P-ABORT | ind | (9)※2 | (10)※2 | - | - | - | - | - | × |
TP-HANDSHAKE | req | (11)※3 | - | - | - | - | - | - | × |
ind | - | - | - | - | - | - | - | × | |
rsp | - | - | - | - | - | - | - | × | |
cnf | - | - | - | - | - | - | - | × | |
TP-DATA | req | - | - | - | - | - | - | - | ◎ |
ind | - | - | - | - | - | - | - | ◎ | |
TP-GRANT-CONTROL | req | - | - | - | - | - | - | - | × |
ind | - | - | - | - | - | - | - | × | |
TP-REQUEST-CONTROL | req | - | - | - | - | - | - | - | × |
ind | - | - | - | - | - | - | - | × | |
TP-HANDSHAKE-AND-GRANT-CONTROL | req | (11)※2 | - | - | - | - | - | - | × |
ind | - | - | - | - | - | - | - | × | |
rsp | - | - | - | - | - | - | - | × | |
cnf | - | - | - | - | - | - | - | × |
パラメタの詳細
Initiating-TPSU-TitleおよびRecipient-TPSU-Title
Recipient-AP-Title
Functional-Units
Quality-of-Service
Application-Context-Name
Confirmation
Result
Diagnostic
Rollback
Confirmation-Urgency
突き合わせ項目
メッセージを送受信する場合,TP1/NET/OSI-TPは,相手システムから受信したサービスプリミティブを,自システムで設定したパラメタと突き合わせます。突き合わせたパラメタが一致しない場合は,該当するサービスプリミティブを処理しないで,相手システムに異常を通知します。
サービスプリミティブの突き合わせ項目を,表3-8および表3-9に示します。
表3-8 サービスプリミティブの突き合わせ項目(コネクション確立時)
突き合わせ項目 | チェック内容 |
---|---|
protocol-version | version1が設定されていること。 |
contention-winner-assignment | MCF通信構成定義(mcftalccn -y)で指定した値と対応していること。※ |
表3-9 サービスプリミティブの突き合わせ項目(ダイアログ開始時)
突き合わせ項目 | チェック内容 | |
---|---|---|
Functional-Units | Shared Controlまたは Polarized Control | どちらかが設定されていること。 |
Handshake | 設定されていること,または設定されていないこと。 |