11.2. トレーニングによるコンテンツベースのルーティングの概要
通常、Enterprise Service Bus のデータはパッケージ化され、メッセージの形式で転送および保存されます。メッセージはエンドポイント参照(サービスまたはクライアントのいずれかを指す)に対応します。 エンドポイント参照のロールは、最終的にメッセージの内容を処理するマシンまたはプロセスまたはオブジェクトを識別することです。ただし、指定したアドレスが有効でなくなった場合はどうなりますか ?このシナリオにつながる可能性のある状況には、サービスが失敗したり、削除されたりする状況が含まれます。
また、サービスがその特定のタイプのメッセージを処理しなくなる可能性もあります。この場合、他のサービスが元の関数に対応すると想定されますが、その質問はHow should the message be handled?のままです。 メッセージの内容に目的の受信者が関心があること以外に、他のサービスはどうすればよいでしょうか ?宛先が指定されていない場合はどうすればよいですか ?
これは、コンテンツベースのルーティングが実行される場所です。コンテンツベースのルーティングが機能する仕組みでは、メッセージが開かれ、そのコンテンツに一連のルールが適用されることでルーティングされます。これらのルールは、対象の当事者を確認し、送信先を決定するために使用します。これにより、メッセージの送信アプリケーションは、メッセージがどこにあるべきかを知る必要があります。
コンテンツベースのルーティングシステムは、ルーター(存在する場合は 1 つしかない)およびサービス(通常は複数のコンポーネントがある)の 2 つのコンポーネントに構築されます。サービスは、最終的にメッセージを消費するコンポーネントです。各サービスがルーターへの特定タイプのメッセージに関心があることを示す方法は実装に依存しますが、ルーターが適切にダイレクトされるように、メッセージタイプ(またはメッセージコンテンツの他の要素)とサービスの間にマッピングが存在する必要があります。
名前が示すように、ルーターはルートメッセージを提案します。これらはメッセージを受信する際にメッセージの内容を検査し、そのコンテンツにルールを適用し、ルールが指示されたらメッセージを転送します。
ルーターとサービスに加えて、一部のシステムには harvesters も含まれます。これらのツールのロールは興味深い情報を見つけ、フォーマットされたメッセージの難読者にパッケージ化し、ルーターに送信します。Harvesters "mine" は、メール転送エージェントのメッセージストア、新しいサーバー、データベース、その他のレガシーシステムなど、多くの情報ソースを最小限に抑えます。