EIP
Envelope Wrapper (エンベロープラッパー) †
一言要約 †
要約 †
- 多くのメッセージングシステムは、ヘッダーとボティにメッセージ・データを分割しています。
- ヘッダーには、メッセージのフローを管理するために、メッセージングインフラストラクチャによって使用されるフィールドが含まれています。しかし、統合ソリューションに参加しているエンドポイント・システムは、一般に、これらの余分なデータ要素を認識していない。
- 一方、アプリケーション間でメッセージを送るメッセージングコンポーネントは、ヘッダフィールドを必要とするかもしれないし、適切なヘッダフィールドが含まれていない場合、メッセージは無効と考えるだろう。
どのように既存のシステムは、メッセージヘッダーフィールドや暗号化などのメッセージの形式の特定の要件を実現して、メッセージング交換に参加することができるだろうか? †
- 例えば、メッセージングシステムは、不正なユーザーのアクセスを防ぎ、盗聴を防止する暗号化を施すような独自のセキュリティ方式を使用していると仮定する。(この様なセキュリティシステムは、パブリッシュ - サブスクライブ機構では特に重要な問題)
- 有効なメッセージは、セキュリティ資格情報が含まれていなければならないでしょう。しかし、メッセージング・システムを介して統合されている既存のアプリケーションは、ほとんどのユーザーIDまたはメッセージの暗号化の概念を認識していません。結果として、 "生"のメッセージが、メッセージングシステムの規則に従うメッセージに翻訳する必要があります。
- 一部の大企業は、複数のメッセージングインフラストラクチャを使用しています。その結果、メッセージはメッセージングブリッジを使用したメッセージングシステム間でルーティングされる必要があるかもしれません。
- このシナリオでは、既存のTCP / IPベースのネットワーク・プロトコルを見て学ぶことができるケースです。多くのケースでは、別のシステムへの接続は、例えばtelnetやセキュアシェルのため、特定のプロトコルに制限されます。別のプロトコル(例えば、FTP)を使用して通信を可能にするためには、そのプロトコル・フォーマットをサポートしているプロトコルに適合するパケットにカプセル化しなければなりません。このプロセスは "トンネリング"と呼ばれています。
ラップとアンラップのステップ †
- メッセージをラップし、アンラップするプロセスは、5つのステップで構成されています:
- 1.メッセージ・ソースは、生の形式でメッセージをパブリッシュします。この形式は、通常、アプリケーションの性質によって決定され、メッセージングインフラストラクチャの要件に準拠していません。
- 2.ラッパーは、生のメッセージを受け取り、メッセージングシステムに準拠したメッセージ・フォーマットに変換します。これは、メッセージヘッダフィールドを追加して、メッセージを暗号化し、セキュリティ資格等を付加することができる。
- 3.メッセージング・システムに準拠したメッセージを処理します。
- 4.結果のメッセージがUnwrapperに配信されます。unwrapperは、ラッパーが行った変更を逆にします。これは、ヘッダーフィールドを削除したメッセージを解読するか、またはセキュリティ資格情報を検証するを含むことができる。
- 5.メッセージ受信者 '平文'メッセージを受け取ります。
ラッパーによる情報付加 †
- エンベロープは通常メッセージヘッダーとメッセージ本体またはペイロードの両方をラップします。ヘッダーを封筒の外側の情報と考えることができます。それはメッセージをルーティングしてを追跡するメッセージングシステムによって使用されます。
- 封筒の中身はペイロードまたは本体である。それは、目的地に到着するまでのメッセージング・インフラストラクチャは、(一定の制限内で)あまり気にしません。
- ラッパーは生のメッセージに情報を追加することが一般的です。その意味で、ラッパーはContent Enricherのいくつかの側面を持っている。しかし、ラッパーは実際の情報の内容を豊かにせずに、ルーティング追跡およびメッセージの処理に必要な情報を追加する。
- この情報は即座に(例えば、一意のメッセージIDの作成やタイムスタンプを追加する)作成することができ、それは、インフラストラクチャ(セキュリティコンテキスト、例えば検索)から抽出することができる。または、元のメッセージボディと、ラッパによって分割されたメッセージヘッダー(例えば '生'メッセージに含まれているキーフィールドなど)に含まれていてもよい。
- 特定のフィールドがボティからヘッダに"昇格"されているため、最後のオプションは時々 'プロモーション(promotion:昇進)'と呼ばれている。
- 階層化プロトコルモデルを活用し、複数のラッパーとアンラッパーが連鎖する例
(担当者注:以降では、SOAPとTCP/IPと郵便システムでのラップとアンラップの例が出ていますが、もうすでに上記までの説明で十分に過ぎると思いますので、これらは割愛しました。)
関連パターン: Content-Based Router, Content Enricher, Messaging Bridge, Pipes and Filters
担当者のつぶやき †
みんなの突っ込み †