(57)【特許請求の範囲】
【請求項１】
パブリッシャ、非同期メッセージングサーバを含むブローカ及びサブスクライバを有するネットワークの前記パブリッシャ、前記ブローカ及び前記サブスクライバの接続関係を示すトポロジ情報を受け付ける受付手段と、
前記受付手段により受け付けられたトポロジ情報から得られる各パブリッシャから全サブスクライバへの最短経路木が前記ブローカを通過する回数に基づいて、前記各ブローカの負荷を算出する負荷算出手段と
を具備するネットワーク評価装置。
【請求項２】
前記各ブローカの負荷は、インバウンドとアウトバウンドとに分けて算出される、請求項１記載のネットワーク評価装置。
【請求項３】
トポロジ毎に、算出されたブローカの負荷の平均値と標準偏差とを算出し、この算出されたブローカの負荷の平均値と標準偏差とをトポロジ間で比較することにより、ネットワークのトポロジの評価を行なうトポロジ評価手段をさらに具備する請求項１記載のネットワーク評価装置。
【請求項４】
前記ブローカの負荷は、下記式において算出される請求項２記載のネットワーク評価装置。
インバウンド側の負荷については、
【数１】
0006368624.tif 000005
アウトバウンド側の負荷については、
【数２】
0006368624.tif 000006
ここで、
ｂｉ：  ｉ番目のブローカ
Ｐ  ：  パブリッシャ総数
Ｓ  ：  サブスクライバ総数
ＮＰ（ｂｉ）  ：  ｂｉに直接接続しているパブリッシャ数
ＮＳ（ｂｉ）  ：ｂｉに直接接続しているサブスクライバ数
Ｂ（ｂｉ）  ：ｂｉに直接接続しているブローカの集合
ＰＳＧ（ｂｉ，ｂｊ）  ：  ｂｉ−ｂｊ間のエッジを除去した場合のｂｉを含む部分グラフに接続しているパブリッシャ数
ＩＳ（ｂｉ，ｂｊ）  ：  ｂｉ−ｂｊ間のエッジを除去した場合のｂｉを含む部分グラフに接続しているサブスクライバが存在すれば１を、存在しなければ０を表す。
【請求項５】
パブリッシャ、非同期メッセージングサーバを含むブローカ及びサブスクライバを有するネットワークの前記パブリッシャ、前記ブローカ及び前記サブスクライバの接続関係を示すトポロジ情報を受け付ける受付ステップと、
前記受付ステップにより受け付けられたトポロジ情報から得られる各パブリッシャから全サブスクライバへの最短経路木が前記ブローカを通過する回数に基づいて、前記各ブローカの負荷を算出する負荷算出ステップと
を具備するネットワーク評価装置における評価方法。
【請求項６】
ネットワーク評価装置に、
パブリッシャ、非同期メッセージングサーバを含むブローカ及びサブスクライバを有するネットワークの前記パブリッシャ、前記ブローカ及び前記サブスクライバの接続関係を示すトポロジ情報を受け付けさせ、
前記受け付けられたトポロジ情報から得られる各パブリッシャから全サブスクライバへの最短経路木が前記ブローカを通過する回数に基づいて、前記各ブローカの負荷を算出させる、プログラム。
【請求項７】
請求項６記載のプログラムを格納したコンピュータ読み取り可能な情報記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、非同期メッセージングサーバ連携方式の評価装置に関する。
【背景技術】
【０００２】
リアルタイムなデータのやり取りを実現する方法として、ｐｕｂ／ｓｕｂと呼ばれる非同期メッセージング手法が知られている。ｐｕｂ／ｓｕｂを用いる場合、一般的には、パブリッシャ（ｐｕｂｌｉｓｈｅｒ）、ブローカ（ｂｒｏｋｅｒ）、サブスクライバ（ｓｕｂｓｃｒｉｂｅｒ）の三者で構成される。
【０００３】
このようなｐｕｂ／ｓｕｂと呼ばれる非同期メッセージング手法では、ブローカに負荷が集中しやすいため、複数のブローカを連携させて負荷分散を図ることが行われている。
【０００４】
しかしながら、ブローカの連携には様々な方式があり、それら連携方式を比較評価して適切な方式を選択することが難しい。なお、ここでの評価とは、各ブローカにかかる負荷の大きさと、それら負荷の均一性を対象としている。すなわち、負荷が小さく、かつ均一であるほど、良い連携方式であると言える。
【０００５】
従来の非同期メッセージングサーバの連携方式の評価方法には、以下の２つの方法がある。
【０００６】
１  物理マシンを複数台設置し、実際にブローカを連携させて負荷状況を測定する方法（非特許文献１、２）
２  簡易的に各ブローカの負荷を見積もる方法（非特許文献３）
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】“Performance Evaluation of Message-oriented Middleware using the SPECjms2007 Benchmark”（ＵＲＬ：http://www.cl.cam.ac.uk/research/srg/opera/publications/papers/SamKai08-PerfEvalJ-SPECjms2007.pdf）
【非特許文献２】“Benchmarking Publish/Subscribe-based Messaging Systems”（ＵＲＬ：https://www.dvs.tu-darmstadt.de/publications/pdf/jms2009PS.pdf）
【非特許文献３】“データセンターにおける輻輳回避のためのルーティング用論理トポロジ構築手法”（ＵＲＬ： http://www.anarg.jp/achievements/web2013/paper/y-shimotsuma14IN-Configuration.pdf）
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、物理マシンを複数台設置し、実際にブローカを連携させて負荷状況を測定する方法では、評価の精度は高いが、物理マシンおよびそれらの間をつなぐネットワークの設置に大きなコストがかかり、結果が出るまでに要する時間も長くなるという問題がある。なお、上記非特許文献１、２は、いずれも単一のブローカについての評価に関するものであり、複数のブローカについて評価したものではない。
【０００９】
また、簡易的に各ブローカの負荷を見積もる方法では、低コストに実現可能であるが、見積もりに用いる確立された共通の尺度が無いため、予測の精度が低くなってしまうという問題がある。
【００１０】
本発明は、上記実情に鑑みてなされたものであり、低コストで迅速に精度の高い非同期メッセージングサーバ連携方式の評価を行なうことができる非同期メッセージングサーバ連携方式の評価装置及び評価方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の第１の観点によれば、パブリッシャ、非同期メッセージングサーバを含むブローカ及びサブスクライバを有するネットワークの前記パブリッシャ、前記ブローカ及び前記サブスクライバの接続関係を示すトポロジ情報を受け付ける受付手段と、前記受付手段により受け付けられたトポロジ情報から得られる各パブリッシャから全サブスクライバへの最短経路木が前記ブローカを通過する回数に基づいて、前記各ブローカの負荷を算出する負荷算出手段とを具備するネットワーク評価装置、である。
【００１２】
本発明の第２の観点によれば、第１の観点において、前記各ブローカの負荷は、インバウンドとアウトバウンドとに分けて算出される。
【発明の効果】
【００１３】
本発明によれば、低コストで迅速に精度の高い非同期メッセージングサーバ連携方式の評価を行なうことができる非同期メッセージングサーバ連携方式の評価装置及び評価方法を提供することができる。
【図面の簡単な説明】
【００１４】
【図１】従来の技術と、本発明との相違点を説明するための図である。
【図２】媒介中心性を説明するためのネットワークの構成を示す図である。
【図３】図２に示すネットワークにおけるノードｖ２の媒介中心性の算出を説明するための図である。
【図４】本発明の提案指標で使用されるパラメータを説明するための図である。
【図５】本発明の実施の形態に係る評価装置による評価が行われるネットワークの構成の一例を示す図である。
【図６】図５に示したネットワークの構成において、ＰＳＧ（ｂ１、ｂ０）の求め方を説明するための図である。
【図７】図５に示したネットワーク構成における図４に示した表記との関係を示す図である。
【図８】本発明の実施の形態に係る非同期メッセージングサーバ連携方式の評価装置の機能ブロックを示す図である。
【図９】トポロジパターンごとに各ブローカの負荷を求めるイメージを説明するための図である。
【図１０】本実施の形態に係る非同期メッセージングサーバ連携方式の評価装置の動作を説明するためのフローチャートである。
【発明を実施するための形態】
【００１５】
＜発明の概要＞
上述のように、従来の技術では、非同期メッセージングにおいて、複数のブローカを連携させる時に、連携方式の比較評価に、実機測定によればコストがかかり、また、簡略的に各ブローカの負荷を見積もる方法では、確立された共通の尺度がないため精度に欠けるという問題があった。
【００１６】
本発明は、媒介中心性の概念を拡張することにより、各連携方式におけるブローカ毎の負荷を算出し、各ブローカの負荷を経済的かつ高精度に見積もることを可能にするものである。図１は、従来の技術と、本発明との相違点を説明するための図であり、（ａ）は実機測定の方法を示し、（ｂ）は簡易見積りの方法を示し、（ｃ）は本発明の手法を示す。
【００１７】
次に、「媒介中心性」について説明する。
【００１８】
「媒介中心性」は、ソーシャルネットワークにおける各ノードの影響力を定量化するために考案された指標である。「媒介中心性」は、ネットワークを構成するノード間の最短経路が通過する回数を各ノードの影響力と捉える。n 個のノードからなるネットワークにおけるノードｖｉの媒介中心性ｃｂ（ｖｉ）は次式で表される。
【００１９】
【数１】
0006368624.tif 000002
【００２０】
例えば、図２に示すネットワークにおけるノードｖ２の媒介中心性は、図３に示すように、0.53と算出される。この値が、ノードｖ２の影響力を表わす。
【００２１】
しかしながら、上記媒介中心性を非同期メッセージングサーバ連携方式の評価装置の評価指標としてそのまま用いることは困難である。
【００２２】
何故ならば、媒介中心性が想定するネットワークと異なり、pub/subの場合ノードの役割が一様ではないからである。具体的には、ノードがパブリッシャ、ブローカ、サブスクライバの３種類に分かれていること、中心性の算出対象がブローカのみであること、データの流れる方向は、パブリッシャ、ブローカ、サブスクライバの順に固定されていること、である。
【００２３】
また、pub/subでは、パブリッシャとサブスクライバとの関係が1対1ではなく、多対多となるからである。
【００２４】
そこで、本発明では、以下のように拡張した指標（以降、提案指標）を新たに定義する。
【００２５】
（１）  各パブリッシャから全サブスクライバへマルチキャストする最短経路木を考え、それら最短経路木がブローカを通過する回数に基づいて、中心性を算出する。
【００２６】
（２）  木を前提とすることから、各ブローカの中心性はインバウンド(inbound)
とアウトバウンド(outbound)に分けて算出する。
【００２７】
なお、以下の説明では、図４に示す表記を用いる。
【００２８】
次に、図４に示したＰＳＧ（ｂｉ、ｂｊ）について説明する。
【００２９】
図５のネットワーク構成を想定する。同図において、ブローカｂ０がブローカｂ１に接続されており、ブローカｂ１は、ブローカｂ０、ｂ２、ｂ３に接続されている。ブローカｂ０には、パブリッシャＰ０及びサブスクライバＳ０が接続され、ブローカｂ１には、パブリッシャＰ１及びサブスクライバＳ１が接続され、ブローカｂ２には、パブリッシャＰ２及びサブスクライバＳ２が接続され、ブローカｂ３には、パブリッシャＰ３が接続される。
【００３０】
例えば、ＰＳＧ（ｂ１、ｂ０）は、「ｂ１−ｂ０間のエッジを除去した場合のｂ１を含む部分グラフに接続しているパブリッシャ数」を表す。図６に示すように、ｂ１を含む部分グラフに含まれるパブリッシャ数は「３」となる。したがって、ＰＳＧ（ｂ１、ｂ０）＝３である。
【００３１】
図７は、図５に示したネットワーク構成における図４に示した表記との関係を示す図である。
【００３２】
本発明は、新たな提案指標を以下のように定義する。
【００３３】
インバウンド側（受信側）について、ブローカｂｉの負荷を表す式を、以下のように定義する。
【００３４】
【数２】
0006368624.tif 000003
【００３５】
アウトバウンド側（送信側）について、ブローカｂｉの負荷を表す式を、以下のように定義する
【００３６】
【数３】
0006368624.tif 000004
【００３７】
なお、インバウンド側及びアウトバウンド側のブローカｂｉの負荷を表す式の分子は、各パブリッシャから全サブスクライバへマルチキャストする最短経路木がブローカを通過する回数の総和を示す。
＜実施の形態＞
以下、実施の形態について、図面を参照して説明する。
【００３８】
本実施の形態に係る非同期メッセージングサーバ連携方式の評価装置は、コンピュータである情報処理装置により実現される。情報処理装置は、メモリ、ＣＰＵ、入力部、記憶装置を備えた通常のコンピュータと同様の構成を有し、本発明の実施の形態に係る非同期メッセージングサーバ連携方式の評価方法は、記憶装置に記憶された本発明の実施の形態に係る非同期メッセージングサーバ連携方式の評価処理を実現する評価プログラムをＣＰＵが実行することにより実現される。
【００３９】
図８は、本発明の実施の形態に係る非同期メッセージングサーバ連携方式の評価装置の機能ブロックを示す図である。
【００４０】
同図に示すように評価装置である情報処理装置１は、トポロジ候補受付部１１、トポロジ情報生成及び解析部１２、負荷計算部１３及びトポロジ評価部１４を具備する。
【００４１】
トポロジ候補受付部１１は、ブローカ間を接続する少なくとも１つのトポロジパターンを受け付ける。
【００４２】
トポロジ情報生成及び解析部１２は、トポロジ候補受付部１１により受け付けられたブローカ間を接続する少なくとも１つのトポロジパターンについて、トポロジ毎に、トポロジ情報を生成する。
【００４３】
トポロジ情報は、ブローカ間の接続情報及びブローカとパブリッシャ・サブスクライバの接続情報である。ブローカ間の接続情報及びブローカとパブリッシャ・サブスクライバの接続情報は、例えば、行列等で表現される。これら接続情報は、GUIで作成したトポロジ図から自動生成する等の仕組みを用意しても良い。なお、トポロジ情報は、人手により生成して入力しても良い。
【００４４】
図９は、トポロジパターンごとに各ブローカの負荷を求めるイメージを説明するための図である。行列表現の場合、例えば、図９におけるトポロジパターンＴ１の行列Ｇ１、トポロジパターンＴの行列Ｇ２は、接続関係があるところを1とし、それ以外を0とする。なお、計算機が扱いやすい形であれば良く、必ずしも行列形式である必要は無い。
【００４５】
また、トポロジ情報生成及び解析部１２は、生成或いは入力されたトポロジ情報に基づいて、負荷計算部（＝提案指標の計算）で必要とするパラメータ（Ｐ，Ｓ，ＮＰ（ｂｉ），ＮＳ（ｂｉ），Ｂ（ｂｉ），ＰＳＧ（ｂｉ，ｂｊ），ＩＳ（ｂｉ，ｂｊ））を算出する。
【００４６】
負荷計算部１３は、トポロジ情報生成及び解析部１２にて算出されたパラメータを提案指標の式に代入し、ブローカ毎の負荷（インバウンド側負荷及びアウトバウンド側負荷）をトポロジ毎に算出する。なお、負荷計算部１３は、算出したブローカ毎の負荷を適切に整形して出力しても良い。
【００４７】
このように、ブローカ毎の負荷（インバウンド側負荷及びアウトバウンド側負荷）を算出することにより、トポロジの評価を行なうことができる。
【００４８】
トポロジ評価部１４は、負荷計算部１３により算出されたブローカ毎の負荷（インバウンド側負荷及びアウトバウンド側負荷）に基づいて、トポロジの評価を行なう。
【００４９】
トポロジの評価は、ブローカの負荷が均一であるほど、負荷の偏りが無く、望ましい。またその値が（単一ブローカの値である）1.0よりも少ないほど、負荷分散の効果が大きい。トポロジ評価部１４は、トポロジ毎に、ブローカの負荷の平均値と標準偏差を算出する。そして、これらの値をトポロジ間で比較することで、優劣の評価を行なう。なお、平均値と標準偏差は人手で算出しても良い。なお、受け付けられたトポロジパターンが１つの場合には、比較対象がないことから、比較評価は行われなくても良い。
【００５０】
図１０は、本実施の形態に係る非同期メッセージングサーバ連携方式の評価装置の動作を説明するためのフローチャートである。
【００５１】
最初に、トポロジ候補受付部１１が、ブローカ間を接続する少なくとも１つのトポロジパターンを受け付ける（Ｓ１）。次に、トポロジ情報生成及び解析部１２が、トポロジ候補受付部１１により受け付けられたブローカ間を接続する少なくとも１つのトポロジパターンについて、トポロジ毎に、トポロジ情報を生成する（Ｓ２）。また、Ｓ１、Ｓ２の処理は、情報処理装置の処理によらず、直接、トポロジ情報を入力しても良い。
【００５２】
次に、トポロジ情報生成及び解析部１２が、生成或いは入力されたトポロジ情報に基づいて、負荷計算部（＝提案指標の計算）で必要とするパラメータ（Ｐ，Ｓ，ＮＰ（ｂｉ），ＮＳ（ｂｉ），Ｂ（ｂｉ），ＰＳＧ（ｂｉ，ｂｊ），ＩＳ（ｂｉ，ｂｊ））を算出する（Ｓ３）。
【００５３】
次に、負荷計算部１３が、トポロジ情報生成及び解析部１２にて算出されたパラメータを提案指標の式に代入し、ブローカ毎の負荷（インバウンド側負荷及びアウトバウンド側負荷）をトポロジ毎に算出する（Ｓ４）。これにより、トポロジ毎のネットワークの各ブローカの負荷を精度よく算出することができるので、ネットワークのトポロジを精度よく評価することができる。
【００５４】
次に、トポロジ評価部１４が、負荷計算部１３により算出されたブローカ毎の負荷（インバウンド側負荷及びアウトバウンド側負荷）に基づいて、トポロジの評価を行なう（Ｓ５）。トポロジ評価部１４による評価は、トポロジ毎に、例えば、ブローカの負荷の平均値と標準偏差を算出し、この算出されたブローカの負荷の平均値と標準偏差に基づいて行われる。また、比較対象となるトポロジがある場合には、これらブローカの負荷の平均値と標準偏差を比較することにより行われる。
【００５５】
従って、本実施の形態によれば、提案指標を使用することにより精度の高いブローカの負荷を算出することができるので、低コストで迅速に精度の高い非同期メッセージングサーバ連携方式の評価を行なうことができる。
【００５６】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【００５７】
また、実施形態に記載した手法は、計算機（コンピュータ）に実行させることができるプログラムとして、例えば磁気ディスク（フロッピー（登録商標）ディスク、ハードディスク等）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤ、ＭＯ等）、半導体メモリ（ＲＯＭ、ＲＡＭ、フラッシュメモリ等）等の記録媒体に格納し、また通信媒体により伝送して頒布することもできる。なお、媒体側に格納されるプログラムには、計算機に実行させるソフトウエア手段（実行プログラムのみならずテーブルやデータ構造も含む）を計算機内に構成させる設定プログラムをも含む。本装置を実現する計算機は、記録媒体に記録されたプログラムを読み込み、また場合により設定プログラムによりソフトウエア手段を構築し、このソフトウエア手段によって動作が制御されることにより上述した処理を実行する。なお、本明細書でいう記録媒体は、頒布用に限らず、計算機内部あるいはネットワークを介して接続される機器に設けられた磁気ディスクや半導体メモリ等の記憶媒体を含むものである。
【符号の説明】
【００５８】
ｖ０〜ｖ６  ノード、
Ｐ１〜Ｐ３  パブリッシャ
Ｓ０〜Ｓ２  サブスクライバ
１  情報処理装置
１１  トポロジ情報受付部
１２  トポロジ情報生成及び解析部
１３  負荷解析部
１４  トポロジ評価部
【図１】
0006368624.tif 000007
【図２】
0006368624.tif 000008
【図３】
0006368624.tif 000009
【図４】
0006368624.tif 000010
【図５】
0006368624.tif 000011
【図６】
0006368624.tif 000012
【図７】
0006368624.tif 000013
【図８】
0006368624.tif 000014
【図９】
0006368624.tif 000015
【図１０】
0006368624.tif 000016