(57)【要約】  複数の処理間で特定のメッセージフローが形成されている場合に、処理の挿抜を容易にする。トピック管理装置は、プログラムに記述するためのトピックである抽象トピックと、メッセージの送受信を制御するトピックである実トピックとを対応付ける対応データを処理装置の実行する処理毎に記憶する対応テーブル記憶部と、対応データを処理装置に送信するトピック管理サービス制御部とを備える。処理装置は、トピック管理装置から対応データを受信するトピックルックアップ部と、トピックルックアップ部において受信された対応データに基づいて、実行する処理のプログラムに記述された抽象トピックに対応する実トピックを用いてメッセージを送受信するメッセージ処理部とを備える。
2013145467.tif 000002
【特許請求の範囲】
【請求項１】
メッセージにトピックを付加してブローカー装置に送信する発行側の処理装置と、トピックを指定して前記ブローカー装置からメッセージを受信する購読側の処理装置とが前記ブローカー装置を介してメッセージを送受信するメッセージングシステムであって、
プログラムに記述するためのトピックである抽象トピックと、メッセージの送受信を制御するトピックである実トピックとを対応付ける対応データを各処理装置の実行する処理毎に記憶する対応テーブル記憶部と、
前記対応テーブル記憶部から前記対応データを読み出し、読み出した前記対応データを各処理装置に送信するトピック管理サービス制御部と、
を備えるトピック管理装置を具備し、
各処理装置は、
前記トピック管理装置から前記対応データを受信するトピックルックアップ部と、
前記トピックルックアップ部において受信された前記対応データに基づいて、実行する処理のプログラムに記述された抽象トピックに対応する実トピックを用いてメッセージを送受信するメッセージ処理部と、
を備えるメッセージングシステム。
【請求項２】
前記トピック管理装置は、
処理の挿入を依頼するデータである挿入依頼または処理の削除を依頼するデータである削除依頼を受信する処理挿抜受付部を備え、
前記トピック管理サービス制御部は、前記処理挿抜受付部において受信された前記挿入依頼または前記削除依頼に基づいて、前記対応テーブル記憶部に記憶された各処理の前記対応データを更新する請求項１に記載のメッセージングシステム。
【請求項３】
前記トピック管理サービス制御部は、前記対応テーブル記憶部に記憶された前記対応データを更新すると、メッセージの再受信を要求するデータであって当該更新した対応データを含む再購読依頼を送信する請求項２に記載のメッセージングシステム。
【請求項４】
前記処理挿抜受付部は、挿入する処理の直前の処理の識別子を含む前記挿入依頼を受信し、
前記トピック管理サービス制御部は、前記処理挿抜受付部において前記挿入依頼が受信されると、前記挿入する処理の送信に用いる実トピックである送信実トピックを前記挿入する処理の直前の処理の送信実トピックで置き換え、前記挿入する処理の受信に用いる実トピックである受信実トピックを他の実トピックと異なる値で置き換え、前記挿入する処理の直前の処理の送信実トピックを前記挿入する処理の受信実トピックで置き換える請求項２又は３に記載のメッセージングシステム。
【請求項５】
前記処理挿抜受付部は、削除する処理の識別子を含む前記削除依頼を受信し、
前記トピック管理サービス制御部は、前記処理挿抜受付部において前記削除依頼が受信されると、前記対応テーブル記憶部から前記削除する処理の対応データを削除するとともに、前記削除する処理の直前の処理の送信に用いる実トピックである送信実トピックを前記削除する処理の送信実トピックで置き換える請求項２から４いずれか１項に記載のメッセージングシステム。
【請求項６】
メッセージにトピックを付加してブローカー装置に送信する発行側の処理装置と、トピックを指定して前記ブローカー装置からメッセージを受信する購読側の処理装置とが前記ブローカー装置を介してメッセージを送受信するメッセージングシステムにおけるトピック管理装置であって、
プログラムに記述するためのトピックである抽象トピックと、メッセージの送受信を制御するトピックである実トピックとを対応付ける対応データを各処理装置の実行する処理毎に記憶する対応テーブル記憶部と、
前記対応テーブル記憶部から前記対応データを読み出し、読み出した前記対応データを各処理装置に送信して、各処理装置に、実行する処理のプログラムに記述された抽象トピックに対応する実トピックを用いてメッセージを送受信させるトピック管理サービス制御部と、
を備えるトピック管理装置。
【請求項７】
メッセージにトピックを付加してブローカー装置に送信する発行側の処理装置と、トピックを指定して前記ブローカー装置からメッセージを受信する購読側の処理装置とが前記ブローカー装置を介してメッセージを送受信するメッセージングシステムにおけるメッセージング方法であって、
トピック管理装置が、プログラムに記述するためのトピックである抽象トピックと、メッセージの送受信を制御するトピックである実トピックとを対応付ける対応データを各処理装置の実行する処理毎に記憶する対応テーブル記憶部から前記対応データを読み出し、
読み出した前記対応データを各処理装置に送信し、
各処理装置が、前記トピック管理装置から前記対応データを受信し、
各処理装置が、受信した前記対応データに基づいて、実行する処理のプログラムに記述された抽象トピックに対応する実トピックを用いてメッセージを送受信するメッセージング方法。
【請求項８】
メッセージにトピックを付加してブローカー装置に送信する発行側の処理装置と、トピックを指定して前記ブローカー装置からメッセージを受信する購読側の処理装置とが前記ブローカー装置を介してメッセージを送受信するメッセージングシステムにおけるメッセージング方法であって、
トピック管理装置が、プログラムに記述するためのトピックである抽象トピックと、メッセージの送受信を制御するトピックである実トピックとを対応付ける対応データを各処理装置の実行する処理毎に記憶する対応テーブル記憶部から前記対応データを読み出し、
読み出した前記対応データを各処理装置に送信して、実行する処理のプログラムに記述された抽象トピックに対応する実トピックを用いてメッセージを送受信させるメッセージング方法。
【請求項９】
メッセージにトピックを付加してブローカー装置に送信する発行側の処理装置と、トピックを指定して前記ブローカー装置からメッセージを受信する購読側の処理装置とが前記ブローカー装置を介してメッセージを送受信するメッセージングシステムにおけるトピック管理装置としてのコンピュータに、
プログラムに記述するためのトピックである抽象トピックと、メッセージの送受信を制御するトピックである実トピックとを対応付ける対応データを各処理装置の実行する処理毎に記憶する対応テーブル記憶部から前記対応データを読み出すステップと、
読み出した前記対応データを各処理装置に送信して、実行する処理のプログラムに記述された抽象トピックに対応する実トピックを用いてメッセージを送受信させるステップと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メッセージングシステム、トピック管理装置、メッセージング方法及びプログラムに関する。
【背景技術】
【０００２】
Ｐｕｂ−Ｓｕｂ（Ｐｕｂｌｉｓｈ−Ｓｕｂｓｃｒｉｂｅ）メッセージングモデルの一例が非特許文献１〜３に記載されている。非特許文献１〜３に記載されたＰｕｂ−Ｓｕｂメッセージングモデルの概要を図７に示す。本図に示すように、Ｐｕｂ−Ｓｕｂメッセージングモデルは、ＡＭＱＰ（Ａｄｖａｎｃｅｄ  Ｍｅｓｓａｇｅ  Ｑｕｅｕｉｎｇ  Ｐｒｏｔｏｃｏｌ）の一実装であるＲａｂｂｉｔＭＱ（例えば、非特許文献４参照）のサポートするメッセージングモデルの１つである。Ｐｕｂ−Ｓｕｂメッセージングモデルは、メッセージを送信するパブリッシャーＰ、メッセージを受信するサブスクライバーＣ１，Ｃ２、パブリッシャーＰとサブスクライバーＣ１，Ｃ２との間で非同期通信を実現するためのキューＱ１，Ｑ２、パブリッシャーＰからのメッセージを予め購読登録したサブスクライバーＣ１，Ｃ２に配送するブローカーＸとから構成されている。【０００３】
メッセージの配送はメッセージに付加されるトピック（図７に示す例では、“＊．ｏｒａｎｇｅ．＊”，“＊．＊．ｒａｂｂｉｔ”，“ｌａｚｙ．＃”と表記されているもの）のマッチングを利用して行われる。すなわち、サブスクライバーＣ１，Ｃ２は、予め受信を希望するトピックをブローカーＸに伝えておく。また、パブリッシャーＰは、メッセージを送信する際にそのメッセージにトピックを付加して、ブローカーＸに送信する。ブローカーＸは受信したメッセージに付加されているトピックを参照して、該当トピックを購読しているサブスクライバーＣ１，Ｃ２に対応するキューＱ１，Ｑ２にメッセージを配送する。サブスクライバーＣ１，Ｃ２はキューＱ１，Ｑ２を定期的に監視して配送されたメッセージを受信する。【０００４】
サブスクライバーＣ１がトピック“＊．ｏｒａｎｇｅ．＊”を購読しており、サブスクライバーＣ２がトピック“＊．＊．ｒａｂｂｉｔ”，“ｌａｚｙ．＃”を購読している場合を例に、より具体的に説明する。パブリッシャーＰがメッセージに“ｑｕｉｃｋ．ｏｒａｎｇｅ．ｒａｂｂｉｔ”というトピックを付加してメッセージを送信した場合、メッセージはサブスクライバーＣ１及びＣ２の両方に配送される。一方で、パブリッシャーＰが“ｌａｚｙ．ｐｉｎｋ．ｒａｂｂｉｔ”というトピックを付加してメッセージを送信した場合、メッセージはサブスクライバーＣ２のみに配送される。ここで‘＊’や‘＃’はワイルドカードであることを表現する記号であるが、このマッチングルールは実装に依存する部分で本発明とは関係ないため説明を省略する。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】“Ｐｕｂｌｉｓｈ−ｓｕｂｓｃｒｉｂｅ  ｐａｔｔｅｒｎ”、［ｏｎｌｉｎｅ］、［平成２４年３月４日検索］、インターネット〈ＵＲＬ：ｈｔｔｐ：／／ｅｎ．ｗｉｋｉｐｅｄｉａ．ｏｒｇ／ｗｉｋｉ／Ｐｕｂｌｉｓｈ／ｓｕｂｓｃｒｉｂｅ〉
【非特許文献２】“Ｃｏｓｍｉｎｅｘｕｓ  アプリケーションサーバ  Ｖ８”、［ｏｎｌｉｎｅ］、株式会社日立製作所、［平成２４年３月４日検索］、インターネット〈ｈｔｔｐ：／／ｗｗｗ．ｈｉｔａｃｈｉ．ｃｏ．ｊｐ／Ｐｒｏｄ／ｃｏｍｐ／ｓｏｆｔ１／ｍａｎｕａｌ／ｐｃ／ｄ３Ｕ０７４０／ＥＵ０７０３７７．ＨＴＭ〉
【非特許文献３】“ＲａｂｂｉｔＭＱ”、［ｏｎｌｉｎｅ］、ＶＭｗａｒｅ、［平成２４年３月４日検索］、インターネット〈ｈｔｔｐ：／／ｗｗｗ．ｒａｂｂｉｔｍｑ．ｃｏｍ／ｔｕｔｏｒｉａｌｓ／ｔｕｔｏｒｉａｌ−ｆｉｖｅ−ｊａｖａ．ｈｔｍｌ〉
【非特許文献４】“ＲａｂｂｉｔＭＱ”、［ｏｎｌｉｎｅ］、ＶＭｗａｒｅ、［平成２４年３月４日検索］、インターネット〈ｈｔｔｐ：／／ｗｗｗ．ｒａｂｂｉｔｍｑ．ｃｏｍ／〉
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、非特許文献１〜４に記載の技術では、複数の処理主体があり、それらの間で特定のメッセージフローがＰｕｂ−Ｓｕｂメッセージングモデルで実現されている場合に、処理の挿抜を行うのが容易ではない、という問題がある。
図８を参照して具体的に説明する。本図に示す例では、処理１から処理３まで以下のようなメッセージフローが形成されている。処理１は、トピック「Ａ」を付加してメッセージを送信する。処理２は、トピック「Ａ」を購読しており、先のメッセージを受信し何らかの処理を加えた上で、その結果のメッセージにトピック「Ｂ」を付加して送信する。処理３は、トピック「Ｂ」を購読しており、そのメッセージを受信し何らかの処理を加える。このようなメッセージフローが形成されている場合に、処理２と処理３の間に処理２．５を挿入し、あるいはいずれかの処理を削除することが簡単ではない。
その理由は、メッセージの配送を決定するトピックがプログラム中で指定されており、処理を挿抜するためには挿抜する箇所の前後の処理の送信メッセージに付加するトピックあるいは購読するトピックを変更する必要が生じるためである。すなわち、処理を挿抜するためには、処理のプログラムを変更しなければならない。また、その送受信の対応はプログラマの頭の中で管理されている点も困難性の要因である。
さらに、Ｐｕｂ−Ｓｕｂメッセージングモデルのメッセージングシステムのメリットの１つである疎結合性は処理コンポーネントの独立した開発を可能としている。そのため、各処理は異なるプログラマあるいは異なる組織で開発されたものである可能性もある。この場合プログラムのソースコードを変更できないことがメッセージフローへの処理の挿抜をより困難にする。【０００７】
本発明は上記の点に鑑みてなされたものであり、その目的は、上述した課題である、複数の処理間で特定のメッセージフローが形成されている場合に、処理の挿抜が容易ではないことを解決するメッセージングシステム、トピック管理装置、メッセージング方法及びプログラムを提供することにある。
【課題を解決するための手段】
【０００８】
本発明は、上記の課題を解決するためになされたものであり、メッセージにトピックを付加してブローカー装置に送信する発行側の処理装置と、トピックを指定して前記ブローカー装置からメッセージを受信する購読側の処理装置とが前記ブローカー装置を介してメッセージを送受信するメッセージングシステムであって、プログラムに記述するためのトピックである抽象トピックと、メッセージの送受信を制御するトピックである実トピックとを対応付ける対応データを各処理装置の実行する処理毎に記憶する対応テーブル記憶部と、前記対応テーブル記憶部から前記対応データを読み出し、読み出した前記対応データを各処理装置に送信するトピック管理サービス制御部と、を備えるトピック管理装置を具備し、各処理装置は、前記トピック管理装置から前記対応データを受信するトピックルックアップ部と、前記トピックルックアップ部において受信された前記対応データに基づいて、実行する処理のプログラムに記述された抽象トピックに対応する実トピックを用いてメッセージを送受信するメッセージ処理部と、を備えるメッセージングシステムである。【０００９】
また、本発明は、メッセージにトピックを付加してブローカー装置に送信する発行側の処理装置と、トピックを指定して前記ブローカー装置からメッセージを受信する購読側の処理装置とが前記ブローカー装置を介してメッセージを送受信するメッセージングシステムにおけるトピック管理装置であって、プログラムに記述するためのトピックである抽象トピックと、メッセージの送受信を制御するトピックである実トピックとを対応付ける対応データを各処理装置の実行する処理毎に記憶する対応テーブル記憶部と、前記対応テーブル記憶部から前記対応データを読み出し、読み出した前記対応データを各処理装置に送信して、各処理装置に、実行する処理のプログラムに記述された抽象トピックに対応する実トピックを用いてメッセージを送受信させるトピック管理サービス制御部と、を備えるトピック管理装置である。【００１０】
また、本発明は、メッセージにトピックを付加してブローカー装置に送信する発行側の処理装置と、トピックを指定して前記ブローカー装置からメッセージを受信する購読側の処理装置とが前記ブローカー装置を介してメッセージを送受信するメッセージングシステムにおけるメッセージング方法であって、トピック管理装置が、プログラムに記述するためのトピックである抽象トピックと、メッセージの送受信を制御するトピックである実トピックとを対応付ける対応データを各処理装置の実行する処理毎に記憶する対応テーブル記憶部から前記対応データを読み出し、読み出した前記対応データを各処理装置に送信し、各処理装置が、前記トピック管理装置から前記対応データを受信し、各処理装置が、受信した前記対応データに基づいて、実行する処理のプログラムに記述された抽象トピックに対応する実トピックを用いてメッセージを送受信するメッセージング方法である。【００１１】
また、本発明は、メッセージにトピックを付加してブローカー装置に送信する発行側の処理装置と、トピックを指定して前記ブローカー装置からメッセージを受信する購読側の処理装置とが前記ブローカー装置を介してメッセージを送受信するメッセージングシステムにおけるメッセージング方法であって、トピック管理装置が、プログラムに記述するためのトピックである抽象トピックと、メッセージの送受信を制御するトピックである実トピックとを対応付ける対応データを各処理装置の実行する処理毎に記憶する対応テーブル記憶部から前記対応データを読み出し、読み出した前記対応データを各処理装置に送信して、実行する処理のプログラムに記述された抽象トピックに対応する実トピックを用いてメッセージを送受信させるメッセージング方法である。【００１２】
また、本発明は、メッセージにトピックを付加してブローカー装置に送信する発行側の処理装置と、トピックを指定して前記ブローカー装置からメッセージを受信する購読側の処理装置とが前記ブローカー装置を介してメッセージを送受信するメッセージングシステムにおけるトピック管理装置としてのコンピュータに、プログラムに記述するためのトピックである抽象トピックと、メッセージの送受信を制御するトピックである実トピックとを対応付ける対応データを各処理装置の実行する処理毎に記憶する対応テーブル記憶部から前記対応データを読み出すステップと、読み出した前記対応データを各処理装置に送信して、実行する処理のプログラムに記述された抽象トピックに対応する実トピックを用いてメッセージを送受信させるステップとを実行させるためのプログラムである。
【発明の効果】
【００１３】
本発明では、複数の処理間で特定のメッセージフローが形成されている場合であっても、処理の挿抜を容易に行うことができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施形態に係るメッセージングシステムの構成を示すブロック図である。
【図２】本実施形態に係る対応テーブル記憶部の記憶する対応テーブルのデータ構造及びデータ例を示す概略図である。
【図３】本実施形態に係るトピック管理装置における挿入／削除処理の手順を示すフローチャートである。
【図４】本実施形態に係る処理装置における挿入／削除処理の手順を示すフローチャートである。
【図５】本実施形態に係るトピック管理装置における挿入処理の詳細を説明する説明図である。
【図６】本実施形態に係るトピック管理装置における削除処理の詳細を説明する説明図である。
【図７】Ｐｕｂ−Ｓｕｂメッセージングモデルの概要を示す概略図である。
【図８】Ｐｕｂ−Ｓｕｂメッセージングモデルにおける課題を説明する説明図である。
【発明を実施するための形態】
【００１５】
以下、本発明を実施するための形態について、図面を参照して詳細に説明する。
図１は、本発明の一実施形態に係るメッセージングシステムの構成を示すブロック図である。
本メッセージングシステムは、Ｐｕｂ−Ｓｕｂメッセージングモデルを実現するメッセージングシステムであって、トピック管理装置１００と、複数の処理装置２００と、ブローカー装置３００とを含んで構成される。本メッセージングシステムは、トピックを付加してブローカー装置３００にメッセージを送信する発行側の処理装置２００（パブリッシャー）と、トピックを指定してブローカー装置３００からメッセージを受信する（購読する）購読側の処理装置２００（サブスクライバー）とが、ブローカー装置３００を介してメッセージを送受信するシステムである。
【００１６】
ブローカー装置３００は、発行側の処理装置２００と購読側の処理装置２００との間の非同期通信を実現するためのサーバ装置である。ブローカー装置３００は、各処理装置２００の実行する各処理に対応するキューを有する。ブローカー装置３００は、発行側の処理装置２００からメッセージを受信すると、当該メッセージのトピックを購読している処理のキューに当該メッセージを追加する。また、ブローカー装置３００は、処理が購読しているメッセージの要求を購読側の処理装置２００から受信すると、当該処理に対応するキューからメッセージを取り出し、取り出したメッセージを購読側の処理装置２００に返信する。
【００１７】
トピック管理装置１００は、各処理装置２００において実行される処理が形成するメッセージフローのトピックを管理するサーバ装置である。トピック管理装置１００は、対応テーブル記憶部１０１と、トピック管理サービス制御部１０２と、処理挿抜受付部１０３とを含んで構成される。
【００１８】
対応テーブル記憶部１０１は、処理装置２００の実行する処理それぞれの対応データを示す対応テーブルを記憶する。複数の処理装置２００それぞれが実行する複数の処理間では、特定のメッセージフローが形成されている。対応データは、抽象トピックと実トピックとを対応付けるデータである。抽象トピックは、各処理のプログラムに記述するためのトピックである。実トピックは、メッセージの送受信を制御するトピックである。
【００１９】
処理挿抜受付部１０３は、処理装置２００から処理の挿入依頼又は削除依頼を受信し、受信した挿入依頼又は削除依頼をトピック管理サービス制御部１０２に出力する。挿入依頼は、メッセージフローに処理の挿入を依頼するデータであり、メッセージフローにおける挿入する処理（以下、挿入処理とする）の直前の処理の識別子と、挿入処理の抽象トピックとを含む。削除依頼は、メッセージフローからの処理の削除を依頼するデータであり、削除する処理（以下、削除処理とする）の識別子を含む。
【００２０】
トピック管理サービス制御部１０２は、入力された処理の挿入依頼または処理の削除依頼に基づいて、対応テーブル記憶部１０１に記憶された対応テーブルにおける各処理の対応データを更新する。例えば、トピック管理サービス制御部１０２は、処理の挿入依頼が入力されると、対応テーブルに挿入処理の対応データを挿入するとともに、メッセージフローにおける挿入処理の直前の処理の対応データを更新する。処理挿入時における対応テーブルの更新方法の詳細は後述する。また、トピック管理サービス制御部１０２は、処理の削除依頼が入力されると、削除処理の対応データを対応テーブルから削除するとともに、メッセージフローにおける削除処理の直前の処理の対応データを更新する。処理削除時における対応テーブルの更新方法の詳細は後述する。また、トピック管理サービス制御部１０２は、対応テーブルを更新すると、対応データを更新した処理を実行する処理装置２００のトピックルックアップ部２０２に再サブスクライブ（購読）依頼を送信する。再サブスクライブ依頼は、対応データが更新されたことを通知するとともにメッセージの再受信を要求するデータであり、更新された対応データを含む。トピック管理サービス制御部１０２は、対応テーブル記憶部１０１から対応データを読み出し、読み出した対応データを処理装置２００に送信して、処理装置２００に、実行する処理のプログラムに記述された抽象トピックに対応する実トピックを用いてメッセージを送受信させる。
【００２１】
処理装置２００は、メッセージフローを形成するパブリッシャー又はサブスクライバーであり、送受信するメッセージに１又は複数の処理を実行する装置である。処理装置２００は、処理挿抜依頼部２０１と、トピックルックアップ部２０２と、メッセージ処理部２０３とを含んで構成される。
処理挿抜依頼部２０１は、処理の挿入依頼又は削除依頼の入力を受け付け、入力された挿入依頼又は削除依頼をトピック管理装置１００の処理挿抜受付部１０３に送信する。
トピックルックアップ部２０２は、再サブスクライブ依頼を受信し、受信した再サブスクライブ依頼に含まれる対応データに基づいて抽象トピックから実トピックのルックアップを行う。抽象トピックから実トピックのルックアップを行うとは、処理のプログラムに記述された抽象トピックを実トピックに変換することである。そして、トピックルックアップ部２０２は、ルックアップした実トピックを用いてメッセージ処理部２０３にメッセージを再サブスクライブさせる。再サブスクライブとは、ブローカー装置３００に、購読しているメッセージのトピックを再通知してメッセージを再購読することである。
メッセージ処理部２０３は、トピックルックアップ部２０２においてルックアップされた実トピックを用いてメッセージを送受信する。具体的には、メッセージ処理部２０３は、プログラムに記述された抽象トピックを実トピックに変換してメッセージを送受信する処理を実行する。例えば、メッセージ処理部２０３は、実トピックを付加したメッセージをブローカー装置３００に送信する。また、メッセージ処理部２０３は、実トピックの付加されたメッセージを購読していることをブローカー装置３００に通知し、実トピックの付加されたメッセージをブローカー装置３００から受信する。
【００２２】
図２は、本実施形態に係る対応テーブル記憶部１０１の記憶する対応テーブルのデータ構造及びデータ例を示す概略図である。
図示するように、対応テーブルは、行と列からなる２次元の表形式のデータであり、処理ＩＤ（識別子）と、受信抽象トピックと、受信実トピックと、送信抽象トピックと、送信実トピックとの各項目の列を有している。このテーブルの各行は処理ＩＤ毎に存在する。
処理ＩＤは、各処理を識別するための識別子である。送信抽象トピックは、送信するメッセージに付加する（送信に用いる）抽象トピックである。送信実トピックは、送信するメッセージに付加する（送信に用いる）実トピックである。受信抽象トピックは、受信する（購読する）メッセージに付加される（受信に用いる）抽象トピックである。受信実トピックは、受信する（購読する）メッセージに付加される（受信に用いる）実トピックである。送信抽象トピックと送信実トピックとの組、又は、受信抽象トピックと受信実トピックとの組が対応データである。
【００２３】
本図に示す例では、処理１の受信抽象トピックは「−（トピックなし）」であり、受信実トピックは「−」であり、送信抽象トピックは「Ａ」であり、送信実トピックは「Ａ」である。すなわち、処理１は、トピック「Ａ」をメッセージに付加して送信する。また、処理２の受信抽象トピックは「Ａ」であり、受信実トピックは「Ａ」であり、送信抽象トピックは「Ｂ」であり、送信実トピックは「Ｂ」である。すなわち、処理２は、トピック「Ａ」の付加されたメッセージを受信し、受信したメッセージに何らかの処理を加えた上でトピック「Ｂ」を付加して送信する。また、処理３の受信抽象トピックは「Ｂ」であり、受信実トピックは「Ｂ」であり、送信抽象トピックは「−」であり、送信実トピックは「−」である。すなわち、処理３は、トピック「Ｂ」の付加されたメッセージを受信する。
よって、処理１、処理２、処理３の順にメッセージフローが形成されている。
【００２４】
次に、図３から図６を参照して、本メッセージングシステムにおける挿入／削除処理について説明する。図３は、本実施形態に係るトピック管理装置１００における挿入／削除処理の手順を示すフローチャートである。
まず、処理挿抜受付部１０３が、処理装置２００の処理挿抜依頼部２０１から処理の挿入依頼又は処理の削除依頼を受け付ける（ステップＳ１０１）。
次に、トピック管理サービス制御部１０２が、処理の挿入依頼又は処理の削除依頼に基づき、対応テーブルを更新する（ステップＳ１０２）。
次に、トピック管理サービス制御部１０２は、対応データを更新した各処理を実行する処理装置２００のトピックルックアップ部２０２へ再サブスクライブ依頼を送信する（ステップＳ１０３）。
【００２５】
図４は、本実施形態に係る処理装置２００における挿入／削除処理の手順を示すフローチャートである。
まず、トピックルックアップ部２０２が、トピック管理装置１００のトピック管理サービス制御部１０２から再サブスクライブ依頼を受信する（ステップＳ２０１）。
次に、トピックルックアップ部２０２は、受信した再サブスクライブ依頼に含まれる対応データに基づいて、抽象トピックから実トピックをルックアップする（ステップＳ２０２）。
そして、トピックルックアップ部２０２は、ルックアップした実トピックを用いてメッセージ処理部２０３にメッセージを再サブスクライブさせる（ステップＳ２０３）。メッセージ処理部２０３は、受信実トピックを購読することをブローカー装置３００に通知し、受信実トピックの付加されたメッセージを受信する。
【００２６】
図５は、本実施形態に係るトピック管理装置１００における挿入処理の詳細を説明する説明図である。
以下、図２に示す処理１〜３からなるメッセージフローに処理２．５を挿入する場合を例に説明する。
図５において、矢印の左側には、処理２．５の挿入前における対応テーブルのデータ例とメッセージフローを示す概略図を記載している。
本図に示す対応データのデータ例は、図２に示す対応データのデータ例と同一である。すなわち、処理２．５挿入前のメッセージフローは、処理１、処理２、処理３の順である。
【００２７】
図５において、矢印の右側には、処理２．５の挿入後における対応テーブルのデータ例とメッセージフローを示す概略図を記載している。
処理２．５は、処理２と処理３との間に挿入される。すなわち、処理２．５挿入後のメッセージフローは、処理１、処理２、処理２．５、処理３の順である。
トピック管理サービス制御部１０２は、挿入処理２．５の直前の処理２の識別子と、挿入処理２．５の送信抽象トピック「Ｚ」とを含む処理の挿入依頼を受信する。トピック管理サービス制御部１０２は、処理２．５の対応データにおいて、受信抽象トピックを直後の処理３の受信抽象トピック「Ｂ」とし、受信実トピックを他と異なる任意の値「Ｂ’」とし、送信抽象トピックを受信した送信抽象トピック「Ｚ」とし、送信実トピックを処理２の送信実トピック「Ｂ」とする。次に、トピック管理サービス制御部１０２は、直前の処理２の送信実トピックを処理２．５の受信実トピック「Ｂ’」とする。
このように対応テーブルにおけるトピックの付け替えをすると、メッセージをロストすることなくメッセージフローへ処理の挿入を行うことができる。
【００２８】
図６は、本実施形態に係るトピック管理装置１００における削除処理の詳細を説明する説明図である。
以下、図２に示す処理１〜３からなるメッセージフローから処理２を削除する場合を例に説明する。
図６において、矢印の左側には、処理２の削除前における対応テーブルのデータ例を示す概略図を記載している。
本図に示す対応データのデータ例は、図２に示す対応データのデータ例と同一である。すなわち、処理２削除前のメッセージフローは、処理１、処理２、処理３の順である。
【００２９】
図６において、矢印の右側には、処理２の削除後における対応テーブルのデータ例を示す概略図を記載している。
処理２削除後のメッセージフローは、処理１、処理３の順である。
トピック管理サービス制御部１０２は、削除処理２の識別子を含む処理の削除依頼を受信する。トピック管理サービス制御部１０２は、削除処理２の直前の処理１の送信実トピックを削除処理２の送信実トピック「Ｂ」に変更するとともに、削除処理２の対応データを対応テーブルから削除する。ここで、メッセージフローにおいて削除処理２の直前の処理１は、送信実トピックの値が削除処理２の受信実トピック「Ａ」と同一の処理である。
このように対応テーブルにおけるトピックの付け替えをすると、メッセージをロストすることなくメッセージフローへ処理の削除を行うことができる。
なお、本例では、トピック管理サービス制御部１０２は、処理２を削除する際に、削除処理２の直前の処理１の送信実トピックを変更しているが、削除処理の直後の処理３の受信実トピックを削除処理２の受信実トピック「Ａ」としてもよい。ここで、メッセージフローにおいて削除処理２の直後の処理３は、受信実トピックの値が削除処理２の送信実トピック「Ｂ」と同一の処理である。
【００３０】
このように、本実施形態では、トピック管理装置１００が、メッセージの配送を制御するトピックを抽象化して管理する。そして、処理装置２００は、プログラム中で指定する抽象トピックを実トピックへ変換し、メッセージ配送は実トピックで制御する。これにより、メッセージフローに対する処理の挿抜は抽象トピックから実トピックへの対応を修正することで実現できる。このため、複数の処理の間でメッセージフローを形成している場合に、処理の挿抜をソースコードなどの変更を伴わずに実現できる。すなわち、複数の処理の間でメッセージフローを形成している場合であっても、処理の挿抜を容易に行うことができる。
【００３１】
なお、本メッセージングシステムは、トピック管理装置１００が対応テーブル記憶部１０１とトピック管理サービス制御部１０２とのみを備え、処理装置２００がトピックルックアップ部２０２とメッセージ処理部２０３とのみを備える構成であっても、トピックを抽象化できる。このため、本構成のみであっても、処理の挿抜をソースコードなどの変更を伴わずに実現できるという効果を生じて、複数の処理間で特定のメッセージフローが形成されている場合に、処理の挿抜が容易ではないという課題を解決することができる。
【００３２】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
例えば、上述した実施形態では、トピックを用いたメッセージングシステムについて説明したが、本発明は、データやメッセージのフロー制御をプログラム中あるいは設定ファイルなどに埋め込まれた情報に基づいて行う分散システムにも適用できる。
【００３３】
また、図３または図４に示す各ステップを実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行して、処理の挿入／削除処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や周辺機器等のハードウェアを含むものであってもよい。
また、「コンピュータシステム」は、ＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）システムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ等の書き込み可能な不揮発性メモリ、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【００３４】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（例えばＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波を利用して他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【００３５】
この出願は、２０１２年３月２６日に出願された日本出願特願２０１２−０６９８９９号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【００３６】
本発明は、例えば、複数の処理間でデータやメッセージのフローを形成するシステムに適用できる。本発明では、複数の処理間で特定のメッセージフローが形成されている場合であっても、処理の挿抜を容易に行える。
【符号の説明】
【００３７】
１００…トピック管理装置  １０１…対応テーブル記憶部  １０２…トピック管理サービス制御部  １０３…処理挿抜受付部  ２００…処理装置  ２０１…処理挿抜依頼部  ２０２…トピックルックアップ部  ２０３…メッセージ処理部  ３００…ブローカー装置
【図１】
2013145467.tif 000003
【図２】
2013145467.tif 000004
【図３】
2013145467.tif 000005
【図４】
2013145467.tif 000006
【図５】
2013145467.tif 000007
【図６】
2013145467.tif 000008
【図７】
2013145467.tif 000009
【図８】
2013145467.tif 000010
【国際調査報告】
2013145467.tif 000011
2013145467.tif 000012
2013145467.tif 000013