同期リクエスト/リプライ機能は、どの時点においても1つのアプリが1つのインバウンド・エンドポイントを呼び出すように制限されています。つまり、同時呼出しはありません。
このトピックでは、同期リクエスト/リプライのエンド・ツー・エンド・メッセージ・フローの例を示します。
App A ---ORM--> SSHI -> composite -> SSHI ---ORM--> App B App A <--ACK--- SSHI <- composite <- SSHI <--ACK--- App B
基本的に、SOA Suite for healthcare Integration (SSHI)では、TCPソケットからORMを読み取り、ACKを同じソケットに書き込む必要があります。この使用例での違いはACKがアプリBから出ていることです。この使用例は、自動的に処理されるFunctional Acknowledgementをオフにすることで解決できます。コンポジットに処理させるようにします。同様にして、コンポジットはアプリBからACKを受け取ります。この使用例では、コンポジットには同期リクエスト/リプライ設定は必要ありません。
左上から始めます。
App A ---ORM--> SSHI -> composite
SSHIはORMを受信し、ORM xmlに変換し、他の情報とともにDOCTYPE_NAME、DOCTYPE_REVISION、TO_ENDPOINT/TO_PARTY、FROM_ENDPOINT/FROM_PARTY、MSG_ID情報を使用してコンポジットに渡します。これらのリストの詳細は、http://docs.oracle.com/cd/E28280_01/user.1111/e10229/app_interface.htm#CACBHDJEを参照してください。
この例では、FROM_ENDPOINT=EndpointAppAおよびMSG_ID=1234だとします。コンポジットでは、この情報またはORMコンテンツを使用して変換してアプリBに送ります。それを実行する際に、コンポジットはアプリBに送るために他のパラメータに加えてTO_ENDPOINT=EndpointAppBおよびMSG_ID=1234__EndpointAppBを設定します (この例では、元のMSG_IDに__EndpointAppBを追加します。これは、後で示される相関として使用されます)。これにより、最上部のセクションが完了します。
右下側を続行します。
composite <- SSHI <--ACK--- App B
ACKが入り、ORMに関連付けられ、このACKは自動的に処理される機能確認が「いいえ」に設定されているためコンポジットに渡されます。ACKはFROM_ENDPOINT=EndpointAppB、INREPLY_MSG_ID=1234__EndpointAppBに設定されています。コンポジットでは、元のメッセージIDを取得するために後続の修正を削除するロジックがあります。また、EndpointAppB with EndpointAppAを照合するビジネス・ルールを持つか、b2b_instancemessageビューを問い合せて元のメッセージID 1234で元のEndpointAppAベースを検索できます。
最終的にApp A <--ACK--- SSHI <-
コンポジット・セグメント、TO_ENDPOINT=EndpointAppA、INREPLY_MSG_ID=1234およびその他の関連パラメータです。この最後のセグメントでACKは、ACK内の情報を使用せずに元のORMに相関されます。