2.1.9 サービスプリミティブ
TP1/NET/OSI-TPが提供するサービスプリミティブのインタフェースについて説明します。
サービスプリミティブとは,OSIが規定するOSI参照モデルで,それぞれの階層が利用するサービスです。TP1/NET/OSI-TPでは,サービスプリミティブを利用して,メッセージの送受信をします。
サービスプリミティブは,UAPのコーディング時に設定します。このとき,まずUAPの引数を設定してから,使用するサービスプリミティブの領域と具体的な指定値を設定します。また,サービスプリミティブは複数連結して送信できます。
TP1/NET/OSI-TPがメッセージ送受信で提供する基本サービスプリミティブを表2-3に,サービスプリミティブとUAPとの対応を表2-4に,サービスプリミティブの連結パターンとUAPとの対応を表2-5に示します。
- 〈この項の構成〉
(1) メッセージの形式
送受信メッセージ
TP1/NET/OSI-TPで送受信するメッセージの形式を次の図に示します。送受信メッセージは,UAPで複数のAPDUを連結し,一括して処理できます。
セグメント
セグメントは,UAPが送受信するデータ単位です。セグメントは一つ以上のサービスプリミティブから構成されます。
サービスプリミティブ
サービスプリミティブは,制御情報,パラメタ,およびユーザ情報から構成されます。また,サービスプリミティブは複数連結できます。連結をしない場合,セグメントとサービスプリミティブは1対1に対応し,連結をする場合は1対nに対応します。
パラメタおよびユーザ情報がない場合,または指定しない場合は,LL2またはLL3に(0002)16を設定します。
サービスプリミティブの形式を次の図に示します。
制御情報
制御情報は,転送手順とサービスプリミティブ種別コードから構成されます。サービスプリミティブ種別コードについては,表2-4を参照してください。
制御情報の形式を次の図に示します。
パラメタ
パラメタの形式を次の図に示します。該当するパラメタを指定しない場合は,そのパラメタに対応するLLに(0002)16を設定します。
ユーザ情報
ユーザ情報は,APDU連結状態とユーザデータから構成されます。
ユーザ情報の形式を,次の図に示します。
- APDU連結状態は,次に示す値を16進数字で設定します。
-
(A0):単一APDU(構造化されている)
(80):単一APDU(構造化されていない)
(A1):連結APDU(構造化されている)
(81):連結APDU(構造化されていない)
(A2):ビット列データ(構造化されている)
(82):ビット列データ(構造化されていない)
ユーザデータは,任意のデータを転送構文形式で設定します。
(2) パラメタとの関係
サービスプリミティブは,機能ごとに,設定するパラメタが異なります。
省略した場合,省略したパラメタに対応する領域の長さは(0002)16となります。
サービスプリミティブとパラメタとの対応を次の表に示します。
(3) パラメタの詳細
Initiating-TPSU-TitleおよびRecipient-TPSU-Title
- ●型コード
-
TPSU名称の型を設定します。
61:T61 String(T61文字列)
PR:Printable String(印字可能文字列)
IN:Integer(整数)
- ●TPSU-Title
-
TPSU名称を設定します。名称の長さは最大64バイトです。
Initiating-TPSU-Title:起動側TPSU名称
Recipient-TPSU-Title:受信側TPSU名称
Recipient-AP-Title
- ●Recipient-AP-Title
-
受信側AP名称を設定します。TP1/NET/OSI-TPでは,領域だけを設定します。パラメタのLLには(0002)16を設定してください。
Functional-Units
- ●FU
-
使用する機能単位を16進数字で設定します。
(40)16:全二重機能を使用します。
(48)16:全二重機能およびハンドシェイク機能を使用します。
(80)16:半二重機能を使用します。
(88)16:半二重機能およびハンドシェイク機能を使用します。
- ●予備領域
-
TP1/NET/OSI-TPが使用する領域です。1バイトの長さの領域を設定してください。
Quality-of-Service
- ●Quality-of-Service
-
サービス品質を設定します。TP1/NET/OSI-TPでは,領域だけを設定します。パラメタのLLには(0002)16を設定してください。
Application-Context-Name
- ●Application-Context-Name
-
アプリケーションコンテキスト名を設定します。TP1/NET/OSI-TPでは,領域だけを設定します。パラメタのLLには(0002)16を設定してください。
Confirmation
- ●Confirmation
-
ダイアログ開始および終了の要求に対して,応答が必要かどうかを確認するための値を設定します。
-
ダイアログ開始(TP-BEGIN-DIALOGUE)の場合
AL:すべての要求に対して,応答が必要です。
NE:要求を拒否する場合だけ,応答が必要です。
-
ダイアログ終了(TP-END-DIALOGUE)の場合
TR:応答が必要です。
FA:応答は必要ありません。
-
Result
- ●Result
-
サービスの要求に対して,受け入れたかどうかの結果を示す値を設定します。
AC:要求を受け入れました。
RP:要求を拒否しました(TP1/NET/OSI-TP)。
RU:要求を拒否しました(UAP)。
Diagnostic
- ●Diagnostic
-
診断を示す値を16進数字で設定します。
-
ダイアログ開始(TP-BEGIN-DIALOGUE)の場合
(0001)16:受信側TPSU名称が定義されていません。
(0002)16:TPSUが利用できません(永続的)。
(0003)16:TPSUが利用できません(一時的)。
(0004)16:受信側TPSU名称の指定が必要です。
(0005)16:機能単位が提供されていません。
(0006)16:機能単位の組み合わせが提供されていません。
(0008)16:その他の理由
-
ダイアログ異常終了(TP-P-ABORT)の場合
(0001)16:永続的障害が発生しました。
(0002)16:トランザクションの開始を拒否します。
(0003)16:一時的障害が発生しました。
(0004)16:プロトコルエラーです。
(0005)16:ダイアログ終了同士の衝突が発生しました。
-
Rollback
- ●Rollback
-
ロールバックするかどうかを示す値を設定します。
FA:ロールバックしません。
Confirmation-Urgency
- ●Confirmation-Urgency
-
即時確認をするかどうかを示す値を設定します。
ただし,半二重でのハンドシェイク(TP-HANDSHAKE)の場合,設定できません。
UR:即時確認をします。
NR:即時確認をしません。
(4) 突き合わせ項目
メッセージを送受信する場合,TP1/NET/OSI-TPは,相手システムから受信したサービスプリミティブを,自システムで設定したパラメタと突き合わせます。突き合わせたパラメタが一致しない場合は,該当するサービスプリミティブを処理しないで,相手システムに異常を通知します。
サービスプリミティブの突き合わせ項目を,表2-7および表2-8に示します。
突き合わせ項目 |
チェック内容 |
---|---|
protocol-version |
version1が設定されていること。 |
contention-winner-assignment |
コネクション定義(mcftalccn -y)で指定した値と対応していること。※ |
突き合わせ項目 |
チェック内容 |
|
---|---|---|
Functional-Units |
Shared Controlまたは Polarized Control |
どちらかが設定されていること。 |
Handshake |
設定されていること,または設定されていないこと。 |