2016-04-05 43 views
1

私はミドルウェアシステムとして動作する必要があり、アップストリームシステムが彼に電話をかけ、私はいくつかの追加アドオンを使ってサードパーティシステムに電話をかけます。私が第三者のシステムに要求を提出すると、彼らは私に応答としてIDを与える。私は私の要求のステータスを取得するために別の呼び出しを行うには、このIDを使用する必要があります私の要求状態のステータスが完了したと言う変更、私は私のrequest.Onceの詳細を取得するためにもう一つのサービスを呼び出す必要があります私はそれにいくつかの追加情報を追加し、上流のシステムに詳細を返信する必要があります。モデルは、より良い 要求/応答(同期) 非同期呼び出し イベントドリブンmachanismになります。このシナリオでは リクエストレスポンモデル/同期/非同期/イベントドリブン

私のシステムおよびサードパーティシステムとの間の流れは、一部を変更することができないと固定されています。 アップストリームシステムがESB経由で私のサービスを呼び出す予定です。 私はRestFulを使用する予定です。私はこのことについてあなたに知らせてください。

答えて

1

あなたは、単にサードパーティのシステムを使用して、あなたのミドルウェア・システムのために同じスキームを使用することができます。

私は、サードパーティのシステムに要求を送信すると、彼らは私に REPONSEとしてIDを与えます。私は、だからあなたのミドルウェアが各アップストリーム上のミドルウェアRequestIdを返す必要があります

  • を行って言う に私の要求の状態変化の状況たら、私の要求の ステータスを取得するために別の呼び出しを行うために、このIDを使用する必要があります要求。
  • アップストリームでこのミドルウェアリクエストIDのリクエストステータスを確認できます
  • リクエストステータスがdoneに変更された場合、アップストリームに応答が得られます。

私はUpstreamMiddleWareThirdpartyシステムのこの単純な相互作用を実証するために、このシーケンス図の作成:

enter image description here

+0

私はrquest /応答または非同期あなたは両方を使用する必要があります – sumedha

+1

を呼び出し従うべきモデルを:) '上流 'があなたの'ミドルウェア 'にリクエストを送りますが、'ミドルウェア 'はこのリクエストを(第三者のシステムの振る舞いのため)同期的に処理することができないので、リクエストIDを'上流'に返し、 '上流 'リクエストステータスについての「ミドルウェア」と、完了したときに適切な応答を得る。それは非同期要求/応答モデルです –