Fiorano Logo Share (facebook)
english 英語   Deutsch ドイツ語   japanese 日本語
ホーム | What We Do | ブログ | ニュース | ダウンロード | POC お申込み | お問合せ | サイトマップ   
    ホーム >> 製品ライン >> FioranoMQ トップ >> FioranoMQ の機能 >> JMS 補完機能 >> CBR (コンテンツ ベース ルーティング)

  FioranoMQ® トップ
     機能説明 トップ
        JMS 補完機能トップ
    JMS 補完機能 詳細説明
     言語インターオペラビリティ
        C, C++, C# ライブラリ
     XML のサポート
     コンテンツベースルーティング
     階層化トピック
     XA トランザクション
     大容量メッセージ
     メッセージの暗号化
     メッセージの圧縮
     フォルト トレーランスの向上
         恒久接続
         クライアント サイドの永続化
         高可用性 (HA 機能)
     包括的なセキュリティ
         レルム認証と ACL
         通信プロトコルと SSL
     負荷分散 (JMS のボトルネック)
         ディスパッチャー
         リピーター
     他社 MOM 製品との連携
     AP サーバーとの連携
     管理オブジェクトの実装
     メッセージ スヌープ機能
     システム メッセージの監視

JMS 補完機能 (CBR (コンテンツ ベース ルーティング))

メッセージング アプリケーションでは、あるメッセージをそれを必要とするコンシューマのみに配信し、必要としないコンシューマには配信しないということが、しばしば求められます。
このようなメッセージ フィルタリング機能として、JMS にはメッセージ セレクタが定められています。

このセクションでは、JMS 仕様のメッセージ セレクタと、それを補完する FioranoMQ の CBR (コンテンツ ベース ルーティング) 機能について説明します。

 JMS 仕様のメッセージ セレクタ
 FioranoMQ CBR
 FioranoMQ CBR 処理フロー


JMS 仕様のメッセージ セレクタ
JMS 仕様では、メッセージのプロパティ ヘッダーに記述した値によってメッセージのフィルタリングを行う、メッセージ セレクタ機能が定義されています。この機能は、下記のように動作します。
  1. メッセージ プロパティ
    メッセージ プロデューサは、メッセージの送信にあたり、プロパティ部にメッセージ セレクタ用の値を記述します。図 1 の例では、"name" というプロパティに値として "ABC" を設定しています。
    図 1. JMS メッセージ セレクタ プロパティ

  2. コンシューマ側の設定
    コンシューマは、接続セッションを生成する際に、受け取るメッセージのプロパティ値を指定した上で JMS サーバーに接続します。 (図 2 を参照)。

    図 2. JMS メッセージ セレクタへの指定

  3. 配信先の選択
    JMS サーバーはプロデューサからメッセージ (プロパティ値が "ABC") を受信すると、プロパティ値が適合するコンシューマにメッセージを配信します。この例では、"name = ABC" として接続しているコンシューマ (図 2 の最上段のサブスクライバ) にのみ、メッセージが配信されます

FioranoMQ CBR (コンテンツ ベース ルーティング)
ここで、次のような事例を考えてみてください。

株価データ配信の例
株価データを複数のサブスクライバーに配信するメッセージング アプリケーションを構築しようとしています。ただし、サブスクライバは配信されるすべての株価データを受け取るのではなく、興味のあるデータだけを受け取れるように、メッセージのルーティングを行います。
条件
株価データは、「業種」、「会社名」、「株価」から構成されているとします。あるサブスクライバは特定の業種 (例えば IT 業界) に属するすべての会社の株価データの配信を望むでしょうし、特定の会社のデータ配信だけを希望するサブスクライバもいます。また、別のサブスクライバは、業種や会社に関係なく株価が一定の値を超えたらデータを受け取りたいと考えています。

さて、このような条件を満たすルーティングを、JMS のメッセージ セレクタ機能で実現することを想像してみてください。
JMS 仕様のメッセージ セレクタでは、次の理由によって非常に難しいことがわかります。
  • メッセージ プロパティに記述する 1 種類の値でフィルタリング条件を設定しなければならない
  • 例題の条件のように少しだけ複雑なフィルタリング条件でも、プロパティに記述する値の決定には非常に複雑なアルゴリズムが必要となり、プロデューサの開発負荷、処理負荷が多大なものとなってしまう

FioranoMQ CBR の処理フロー
FioranoMQ では、メッセージ ボディ (データ本体) に XML データをおくことができます。CBR は、XML のタグ構造を利用してメッセージ データの内容を判別し、フィルタリングを行います。このため、セレクタ プロパティ値のように新たな付加情報を生成する必要がなくなり、フィルタリング条件が柔軟に設定できるようになります。
  1. XML データのメッセージ
    図 3 は、XML データのメッセージ例です。プロデューサ (パブリッシャ) が CBR のためにヘッダーやプロパティに付加する情報は何もありません。

    図 3. XML データ メッセージ
  2. コンシューマ側の設定
    コンシューマは、JMS のメッセージ セレクター機能と同様に、接続セッションを生成する際に受け取るメッセージの条件をあらかじめ設定しておき、JMS サーバーに接続します (図 4 を参照)。この場合の条件指定は、XPATH シンタックスを用いて XML データの内容を指定します。

    図 4. FioranoMQ CBR の設定

  3. 配信先の選択
    JMS サーバーはプロデューサからメッセージ (図 3 で示した XML データ) を受信すると、XPATH で指定された条件に適合するコンシューマにメッセージを配信します。この例では、次の条件を指定しているサブスクライバに配信されます。
    • Industry = IT
    • Price >= 2500



 製品 / ソリューション
インテグレーション プラットフォーム | ESB | クラウド連携プラットフォーム | B2B/EDI ゲートウェイ | プリビルト マイクロサービス/アダプター | BPM ツール
API マネジメント          MQ | JMS | MQTT (IoT/M2M) | メッセージング
SAP 連携 | Salesforce 連携 | モバイル インテグレーション | SOA/EDI | ハイブリッド クラウド連携 |
医療連携 | 電子商取引 | バンキング ソリューション | FIX (電子証券取引) | e-GIF (電子政府)

フィオラノ ソフトウェア公式ブログ
        フィオラノ ジャパン ブログ
フィオラノ ソフトウェア (株) 公式 SNS
    Share (facebook)     FioranoonGoogle+            

プライバシー ポリシー | 利用規約 | お問合わせ     
© Fiorano Software Technologies P Ltd. All Rights Reserved.