• 検索結果がありません。

2. 概念

2.8 C/S 連携

サーバオペレーション

サーバポートにおけるオペレーションのインスタンス.

クライアントオペレーション

クライアントポートにおけるオペレーションのインスタンス.オペレーション呼出しのためのAPI はクライアントオペレーション毎に生成される.

サーバSW-C

C/S連携における提供側SW-Cであり,C/Sインタフェースを介してオペレーションを提供する SW-C.

クライアントSW-C

C/S連携における要求側SW-Cであり,C/Sインタフェースを介してオペレーションを呼び出す SW-C.

サーバランナブル

オペレーション呼出しイベントにより起動し,オペレーションの処理を行うランナブル.オペレー ションの処理内容は,本ランナブルの処理内容として定義される.

2.8.2 C/S連携の種別 2.8.2.1 C/S連携の多重度

RTEは,以下の多重度のC/S連携をサポートする.連携の多重度については,2.4.2.2節を参照.

・ 1:0連携,0:1連携〔rte_sws_1329〕

・ 1:1連携

・ N:1連携【rte_sws_4519】

以上のいずれのケースについても,RTEは,クライアントポートに対し1つのオペレーション要求 APIを提供する.

複数のクライアントが同一のオペレーションを使用する場合,RTEは,オペレーションの結果が適切 なクライアントに送られることを保証する【rte_sws_4516】.

2.8.2.2 オペレーション数

C/Sインタフェースは,1つ以上のオペレーションを含む.

RTEは,オペレーションごとに異なるRTE APIを提供し,オペレーションごとに独立してサービス の呼出しを行う【rte_sws_5110】【rte_sws_4517】.

2.8.2.3 ポート定義引数値

C/Sインタフェースに含まれない,サーバ固有の情報(BSWのAPIが要求する固定のID等)がサ

ービスの処理に必要となる場合がある.RTEは,これらの情報をポート定義引数値としてサーバに提 供する.

ポート定義引数は,サーバポート毎に,コンフィギュレーションにより設定できる.

2.8.3 C/S連携の操作

2.8.3.1 オペレーション呼出し

RTEは,オペレーション毎にオペレーション呼出しのためのAPI(Rte_Call)を提供する.クライアン トSW-Cは,提供されたAPIを使用することで,オペレーション呼出しを行う.

オペレーション呼出しの挙動

Rte_Callによりオペレーション呼出しが開始された場合の挙動は以下の通りである

【nrte_sws_0076】.

(1) RTEは,APIにより指定されたオペレーション引数の値をサーバポートに伝搬する.

(2) サーバポートに値が伝搬されると,RTEは,サーバランナブルに伝搬されたオペレーション 引数の値,およびポート定義引数値を渡して起動する.

(3) サーバランナブルは,渡された引数に従ってオペレーションの処理を行い,処理結果の値を サーバランナブルのオペレーション引数,および返り値として返す.

(4) RTEは,サーバランナブルのオペレーション引数の値,および返り値をクライアントポート に伝搬する.

(5) クライアントポートに値が伝搬されると,RTEは,オペレーション呼出し元のRte_Callの引 数に伝搬されたオペレーション引数の値を設定する.そして,伝搬された返り値をAPIの返 り値として返す.

サーバランナブルへの引数渡しの順序

オペレーション呼出しによりサーバランナブルを起動する際,RTEは,以下の順序で引数値を指定 して,サーバランナブルを呼び出す【rte_sws_1360】.

(1) 全てのポート定義引数値(ポート定義引数値の定義順)

(2) APIにより指定された全てのオペレーション引数の値(オペレーション引数の定義順)

オペレーション呼出しの制限

サーバランナブルはオペレーション呼出しAPIからのみ起動する【rte_sws_6019】.サーバランナ ブルはオペレーション呼出しAPIからのみ起動でき,RTE以外のモジュールから関数呼び出しにより 起動してはならない【rte_sws_a_0030】.本RTEは,クライアントSW-CとサーバSW-Cが異なるパ ーティション/コアに所属する場合のオペレーション呼出しをサポートしない【nrte_sws_0050】.

オペレーションの並行呼出し

各クライアントは,サーバの,あるオペレーションを並行して呼び出すことができる.RTEは,サー

バのオペレーションの並行起動要求をサポートする【rte_sws_4520】.

オペレーション呼出しのデータ一貫性保証

RTEによるオーバヘッドを減らすため,オペレーション呼出しがサーバランナブルの直接関数起動 として実現される場合,RTEは,参照渡しされるパラメータのコピーを作成せず,参照パラメータのデ ータ一貫性を保証することはアプリケーションの責任である【rte_sws_7008】.

2.8.4 C/S連携の実現方式

2.8.4.1 オペレーション呼出し

本RTEGENは,オペレーション呼出しを,オペレーション呼出しAPI(Rte_Call)からサーバランナ

ブルを直接関数起動することで実現する【nrte_sws_0031】.

2.8.5 C/S連携の設定

2.8.5.1 C/Sインタフェース,オペレーション,およびアプリケーションエラー

C/Sインタフェースは,C/Sインタフェース(ClientServerInterface)により指定する.

オペレーションは,C/Sインタフェース(ClientServerInterface)のオペレーション(operation)により 指定する.

アプリケーションエラーは,C/Sインタフェース(ClientServerInterface)の発生可能エラー (possibleError)により指定する.

2.8.5.2 クライアント,およびサーバポート

クライアントポートは,C/Sインタフェースを参照する要求側ポートプロトタイプ(RPortPrototype) により指定する.

サーバポートは,C/Sインタフェースを参照する提供側ポートプロトタイプ(PPortPrototype)により 指定する.

2.8.5.3 オペレーション引数

オペレーション引数は,オペレーションのオペレーション引数(argument)により指定する.

2.8.5.4 オペレーション使用アプリケーションエラー

オペレーション使用アプリケーションエラーは,オペレーションの発生可能エラー(possibleError) により指定する.

2.8.5.5 ポート定義引数値

ポート定義引数値は,サーバポートを参照するポートAPIオプション(PortAPIOption)のポート定義 引数値(portArgValue)により指定する.

2.8.5.6 サーバランナブル

サーバランナブルは,オペレーションを参照するオペレーション呼出しイベント

(OperationInvokedEvent)で起動するランナブル(RunnableEntity)により指定する【rte_sws_5163】.

2.8.5.7 ポート間の接続関係

クライアントポート-サーバポート間の接続関係は,クライアントポート,およびサーバポートを参 照するアセンブリコネクタ(AssemblySwConnector)により指定する.

2.8.5.8 オペレーション間の接続関係

RTEGENは,以下のルールに基づき,C/Sインタフェース(ClientServerInterface)のオペレーショ

ン(operation)の接続関係を判定する【rte_sws_3818】.

・ クライアントポート-サーバポートの間で,ショートネームが一致するオペレーションを接続され ているものとして扱う.

・ ポート間で対応するオペレーションが存在しない場合,そのオペレーションは未接続である(接続 されているポートがない)ものとして扱う.