(57)【要約】【課題】負荷状況が動的に変化するシステムにおいて、メッセージ処理を行う場合に、応答経路を優先した経路を用いること。【解決手段】メッセージ処理システムは、クライアントと、サービスバス装置と、多重化されたサービスを提供する複数のサービス提供装置とを含んでいる。クライアントからサービスバス装置へサービスの提供を受けるためのリクエストメッセージが送信された場合、サービスバス装置がサービス提供装置に対してリクエストメッセージを一斉送信する。また、そのリクエストメッセージが送信されたサービス提供装置からレスポンスメッセージを受信した場合、その受信したレスポンスメッセージのうち最初に受信したレスポンスメッセージのみをサービスバス装置がクライアントに送信する。【選択図】図１
2013073255.tif 000002
【特許請求の範囲】
【請求項１】
クライアントと、
サービスバス装置と、
複数のサービス提供装置により多重化されたサービスを提供するサービス提供装置グループと、
を含み、
前記クライアント、前記サービスバス装置及び前記複数のサービス提供装置がネットワークを介して複数の経路で通信可能に接続されたメッセージ処理システムであって、
前記クライアントから前記サービスバス装置へ前記サービスの提供を受けるためのリクエストメッセージが送信された場合、前記複数のサービス提供装置に対して前記リクエストメッセージを一斉送信するリクエストメッセージ送信手段と、
前記リクエストメッセージが送信されたサービス提供装置からレスポンスメッセージを前記サービスバス装置が受信した場合、当該受信したレスポンスメッセージのうち最初に受信したレスポンスメッセージのみを前記クライアントに送信するレスポンスメッセージ送信手段と、
を有することを特徴とするメッセージ処理システム。
【請求項２】
前記リクエストの一斉送信は、前記サービス提供装置グループのうち任意の条件を満たすサービス提供装置にのみ送信されることを特徴とする請求項１記載のメッセージ処理システム。
【請求項３】
前記サービスバス装置は、前記レスポンスメッセージを最初に受信した場合、当該レスポンスメッセージより後に受信する他のレスポンスメッセージを破棄することを特徴とする請求項１又は２記載のメッセージ処理システム。
【請求項４】
前記他のレスポンスメッセージの破棄は、前記他のレスポンスメッセージを送信するサービス提供装置に対して前記ネットワークを閉塞することに基づいて行われることを特徴とする請求項３記載のメッセージ処理システム。
【請求項５】
クライアントと、
サービスバス装置と、
他のサービスバス装置と、
複数の連携装置により多重化された前記サービスバス装置と前記他のバスサービス装置との連携を提供する連携装置グループと、
複数のサービス提供装置により多重化されたサービスを提供するサービス提供装置グループと、
を含み、
前記クライアント、前記サービスバス装置、前記複数の連携装置、前記他のサービスバス装置及び前記複数のサービス提供装置がネットワークを介して複数の経路で通信可能に接続されたメッセージ処理システムであって、
前記クライアントから前記サービスバス装置へ前記サービスの提供を受けるためのリクエストメッセージが送信された場合、前記複数の連携装置に対して前記リクエストメッセージを一斉送信する第１のリクエストメッセージ送信手段と、
前記第１のリクエストメッセージ送信手段で送信されたリクエストメッセージを受信した連携装置から前記他のサービスバス装置へ当該リクエストメッセージが送信された場合、前記複数のサービス提供装置に対して当該リクエストメッセージを一斉送信する第２のリクエストメッセージ送信手段と、
前記リクエストメッセージが送信されたサービス提供装置からレスポンスメッセージを前記他のサービスバス装置が受信した場合、当該受信したレスポンスメッセージのうち最初に受信したレスポンスメッセージのみを当該リクエストメッセージの送信元の連携装置に送信する第１のレスポンスメッセージ送信手段と、
前記第１のレスポンスメッセージ送信手段で送信されたレスポンスメッセージを受信した連携装置を含む連携装置グループの各連携装置から前記サービスバス装置がレスポンスメッセージを受信した場合、当該レスポンスメッセージのうち最初に受信したレスポンスメッセージのみを前記クライアントに送信する第２のレスポンスメッセージ送信手段と、
を有することを特徴とするメッセージ処理システム。
【請求項６】
前記他のサービスバス装置は、前記レスポンスメッセージを最初に受信した場合、当該レスポンスメッセージより後に受信する他のレスポンスメッセージを破棄し、
前記サービスバス装置は、前記レスポンスメッセージを最初に受信した場合、当該レスポンスメッセージより後に受信する他のレスポンスメッセージを破棄することを特徴とする請求項５記載のメッセージ処理システム。
【請求項７】
クライアントと、複数のサービス提供装置により多重化されたサービスを提供するサービス提供装置グループと、ネットワークを介して複数の経路で通信可能に接続されたサービスバス装置であって、
前記クライアントからから前記サービスの提供を受けるためのリクエストメッセージを受信した場合、前記複数のサービス提供装置に対して前記リクエストメッセージを一斉送信するリクエストメッセージ送信手段と、
前記リクエストメッセージが送信されたサービス提供装置から返却されるレスポンスメッセージを受信した場合、当該受信したレスポンスメッセージのうち最初に受信したレスポンスメッセージのみを前記クライアントに送信するレスポンスメッセージ送信手段と、
を有することを特徴とするサービスバス装置。
【請求項８】
クライアントと、複数のサービス提供装置により多重化されたサービスを提供するサービス提供装置グループと、ネットワークを介して複数の経路で通信可能に接続されたサービスバス装置のメッセージ処理方法であって、
前記クライアントからから前記サービスの提供を受けるためのリクエストメッセージを受信した場合、前記複数のサービス提供装置に対して前記リクエストメッセージを一斉送信するステップと、
前記リクエストメッセージが送信されたサービス提供装置から返却されるレスポンスメッセージを受信した場合、当該受信したレスポンスメッセージのうち最初に受信したレスポンスメッセージのみを前記クライアントに送信するステップと、
を有することを特徴とするサービスバス装置のメッセージ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システム全体の稼働状況に応じてメッセージの処理を行うメッセージ処理システム、サービスバス装置及びサービスバス装置のメッセージ処理方法に関する。
【背景技術】
【０００２】
近年、クラウドコンピューティングの台頭により、複数のサービスを多重化したシステムや複数のサービスバス装置を連携した大規模な分散環境を利用することが容易になりつつある。
【０００３】
このような複数のサービスバス装置を連携したシステムに関連する技術として、ＥＳＢ（エンタープライズ・サービス・バス）を用いるものが知られている（例えば、特許文献１参照）。より詳細には、ＥＳＢは、サーバ装置からネットワークを介して処理対象データを受信すると、サービス監視装置からサーバ装置の稼働状態とネットワークの状態との少なくともいずれかの監視情報を取得し、当該監視情報に基づき複数のサーバ装置から処理対象データを転送するべきサーバ装置を決定し、決定したサーバ装置にネットワークを介して処理対象データを転送する。このように処理対象データを転送することにより、データ転送システムにおいて、可用性及びスループットの最適化を図っている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−００３１２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述のような大規模な分散環境においては、各リソースやネットワークなどシステム全体の負荷状況が動的に変化する。このため、メッセージの送信処理が最も早くなる経路が静的な状態で決定した場合の経路と異なる経路になる可能性がある。言い換えると、静的な状態で決定された経路は実際に応答速度が最も速い経路でない可能性がある。
【０００６】
また、大規模な分散環境下で潤沢なリソースが利用可能な場合においても、経路上の処理が失敗したことに起因するメッセージ送信のリトライ処理が行われる場合は、そのリトライ処理を行う分だけ応答時間がかかる。この応答時間は、理論的にはそのリトライ区間での応答時間が２倍程度になってしまう。
【０００７】
このようにメッセージ送信の処理時に応答時間が必要以上にかかっている可能性が生じていた。
【０００８】
一方、上記特許文献１に記載の技術は、処理対象データを転送するサーバ装置を決定する技術であり、応答速度を優先してメッセージを送信する技術ではない。
【０００９】
本発明は、上記事情に鑑みてなされたものであり、その目的は、負荷状況が動的に変化するシステムにおいて、応答速度を優先してメッセージ処理を行うことができるメッセージ処理システム、サービスバス装置及びサービスバス装置のメッセージ処理方法を提供することにある。
【課題を解決するための手段】
【００１０】
本発明は、クライアントと、サービスバス装置と、複数のサービス提供装置により多重化されたサービスを提供するサービス提供装置グループと、を含み、前記クライアント、前記サービスバス装置及び前記複数のサービス提供装置がネットワークを介して複数の経路で通信可能に接続されたメッセージ処理システムであって、前記クライアントから前記サービスバス装置へ前記サービスの提供を受けるためのリクエストメッセージが送信された場合、前記複数のサービス提供装置に対して前記リクエストメッセージを一斉送信するリクエストメッセージ送信手段と、前記リクエストメッセージが送信されたサービス提供装置からレスポンスメッセージを前記サービスバス装置が受信した場合、当該受信したレスポンスメッセージのうち最初に受信したレスポンスメッセージのみを前記クライアントに送信するレスポンスメッセージ送信手段と、を有することを特徴とする。
【００１１】
また、他の本発明は、クライアントと、サービスバス装置と、他のサービスバス装置と、複数の連携装置により多重化された前記サービスバス装置と前記他のバスサービス装置との連携を提供する連携装置グループと、複数のサービス提供装置により多重化されたサービスを提供するサービス提供装置グループと、を含み、前記クライアント、前記サービスバス装置、前記複数の連携装置、前記他のサービスバス装置及び前記複数のサービス提供装置がネットワークを介して複数の経路で通信可能に接続されたメッセージ処理システムであって、前記クライアントから前記サービスバス装置へ前記サービスの提供を受けるためのリクエストメッセージが送信された場合、前記複数の連携装置に対して前記リクエストメッセージを一斉送信する第１のリクエストメッセージ送信手段と、前記第１のリクエストメッセージ送信手段で送信されたリクエストメッセージを受信した連携装置から前記他のサービスバス装置へ当該リクエストメッセージが送信された場合、前記複数のサービス提供装置に対して当該リクエストメッセージを一斉送信する第２のリクエストメッセージ送信手段と、前記リクエストメッセージが送信されたサービス提供装置からレスポンスメッセージを前記他のサービスバス装置が受信した場合、当該受信したレスポンスメッセージのうち最初に受信したレスポンスメッセージのみを当該リクエストメッセージの送信元の連携装置に送信する第１のレスポンスメッセージ送信手段と、前記第１のレスポンスメッセージ送信手段で送信されたレスポンスメッセージを受信した連携装置を含む連携装置グループの各連携装置から前記サービスバス装置がレスポンスメッセージを受信した場合、当該レスポンスメッセージのうち最初に受信したレスポンスメッセージのみを前記クライアントに送信する第２のレスポンスメッセージ送信手段と、を有することを特徴とする。
【００１２】
更に、他の本発明は、クライアントと、複数のサービス提供装置により多重化されたサービスを提供するサービス提供装置グループと、ネットワークを介して複数の経路で通信可能に接続されたサービスバス装置であって、前記クライアントからから前記サービスの提供を受けるためのリクエストメッセージを受信した場合、前記複数のサービス提供装置に対して前記リクエストメッセージを一斉送信するリクエストメッセージ送信手段と、前記リクエストメッセージが送信されたサービス提供装置から返却されるレスポンスメッセージを受信した場合、当該受信したレスポンスメッセージのうち最初に受信したレスポンスメッセージのみを前記クライアントに送信するレスポンスメッセージ送信手段と、を有することを特徴とする。
【００１３】
更に、他の本発明は、クライアントと、複数のサービス提供装置により多重化されたサービスを提供するサービス提供装置グループと、ネットワークを介して複数の経路で通信可能に接続されたサービスバス装置のメッセージ処理方法であって、前記クライアントからから前記サービスの提供を受けるためのリクエストメッセージを受信した場合、前記複数のサービス提供装置に対して前記リクエストメッセージを一斉送信するステップと、前記リクエストメッセージが送信されたサービス提供装置から返却されるレスポンスメッセージを受信した場合、当該受信したレスポンスメッセージのうち最初に受信したレスポンスメッセージのみを前記クライアントに送信するステップと、を有することを特徴とする。
【発明の効果】
【００１４】
本発明によると、負荷状況が動的に変化するシステムにおいて、応答速度を優先してメッセージ処理を行うことができるメッセージ処理システム、サービスバス装置及びサービスバス装置のメッセージ処理方法を提供できる。
【図面の簡単な説明】
【００１５】
【図１】本発明の第１の実施の形態に係るメッセージ処理システムの構成を示す図である。
【図２】同第１の実施の形態に係る宛先情報の一例を説明するための図である。
【図３】同第１の実施の形態に係るメッセージフィルタ情報の一例を説明するための図である。
【図４】同第１の実施の形態に係るリクエストメッセージに含まれる情報を説明するための図である。
【図５】同第１の実施の形態に係るレスポンスメッセージに含まれる情報を説明するための図である。
【図６】同第１の実施の形態に係るリクエストメッセージの送信処理を示すフローチャートである。
【図７】同第１の実施の形態に係るリクエストメッセージを送信する際のメッセージフローを示す図である。
【図８】同第１の実施の形態に係るレスポンスメッセージの受信処理を示すフローチャートである。
【図９】同第１の実施の形態に係るレスポンスメッセージ受信処理を示すフローチャートである。
【図１０】同第１の実施の形態に係るレスポンスメッセージを受信する際のメッセージフローを示す図である。
【図１１】本発明の第２の実施の形態に係るメッセージ処理システムの構成を示す図である。
【図１２】同第２の実施の形態に係るリクエストメッセージの受信処理を示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、本発明の各実施の形態について図面を参照しながら説明する。
【００１７】
（第１の実施の形態）
図１は、メッセージ処理システム１の構成を示す図である。同図に示すように、メッセージ処理システム１は、サービスバス装置１００と、このサービスバス装置１００にリクエストメッセージを送信するクライアント２００と、リクエストメッセージに対する処理を行うサービスを提供するサービス提供装置を含む宛先グループ３００とを有している。メッセージ処理システム１は、クライアント２００から送信されるリクエストメッセージをサービス提供先へ送信し、また、当該サービス提供先から処理された結果であるレスポンスメッセージをクライアント２００が受信するように構成されている。
【００１８】
クライアント２００は、パーソナルコンピュータ等の情報処理装置であり、サービスバス装置１００へリクエストメッセージを送信し、当該リクエストメッセージのレスポンスメッセージを受信する。
【００１９】
宛先グループ３００は、サービスＡ３１０と、サービスＡ’３２０と、サービスＡ’’３３０とを有している。これらのサービスＡ３１０，Ａ’３２０，Ａ’’３３０は送信されたリクエストメッセージに関して同一の結果を返すように多重化されたサービス提供装置である。なお、本第１の実施の形態では、宛先グループ３００は１つの場合で説明するが複数存在しても良い。また、連携先の宛先グループ３００には、多重化されたサービス（サービスＡ３１０，Ａ’３２０，Ａ’’３３０）が１つ存在する場合で説明するが、他の多重化されたサービスが存在しても良い。
【００２０】
また、サービスバス装置１００は、宛先情報格納装置１１０と、メッセージフィルタ情報格納装置１２０と、メッセージ送受信装置１３０とを有している。
【００２１】
宛先情報格納装置１１０はメッセージの宛先に関する宛先情報を管理する装置である。
【００２２】
宛先情報格納装置１１０に格納される宛先情報は、クライアント２００から送信されるメッセージリクエストの宛先に関する情報である。より詳細には、宛先情報は、図２に示すように、宛先グループＩＤ１１１、宛先１１２、任意パラメータ１１３ａ、…、１１３ｎが関連付けられて構成されている。
【００２３】
宛先グループＩＤ１１１には、メッセージの宛先グループのグループＩＤが格納される。宛先１１２には、宛先となるサービス名が格納される。任意パラメータ１１３ａ、…、１１３ｎには、任意のパラメータが格納され、例えば、メッセージ送信の失敗率がパラメータとして格納される。
【００２４】
メッセージフィルタ情報格納装置１２０はメッセージをフィルタするメッセージフィルタ情報を管理する装置である。
【００２５】
メッセージフィルタ情報格納装置１２０に格納されるメッセージフィルタ情報は、クライアント２００から送信されるメッセージをフィルタするための情報である。より詳細には、メッセージフィルタ情報は、図３に示すように、メッセージＩＤ１２１、閉塞１２２、受信メッセージカウント１２３が関連付けられて構成されている。
【００２６】
メッセージＩＤ１２１には、後述するリクエストメッセージのＩＤが格納される。閉塞１２２には、経路を閉塞したか否かが格納される。なお、閉塞した場合には「ｔｒｕｅ」が格納され、閉塞していない場合には「ｆａｌｓｅ」が格納される。受信メッセージカウント１２３には、受信したメッセージ数が格納される。
【００２７】
メッセージ送受信装置１３０は、クライアント２００及び連携先の宛先グループ３００との間においてメッセージの送受信を処理する装置である。また、メッセージ送受信装置１３０は、メッセージ送受信処理部１３１と、サービス接続部１３２と、メッセージルータ部１３３と、メッセージＩＤ生成部１３４と、宛先決定部１３５と、メッセージフィルタ部１３６とを有している。
【００２８】
メッセージ送受信処理部１３１は、クライアント２００からメッセージを受け取り、その受け取ったメッセージをメッセージルータ部１３３へ送信する。また、メッセージルータ部１３３からメッセージを受け取り、その受け取ったメッセージをクライアント２００へ送信する。
【００２９】
サービス接続部１３２は、メッセージルータ部１３３からメッセージを受け取り、その受け取ったメッセージを宛先グループ３００へ送信する。また、サービス接続部１３２は、宛先グループ３００からメッセージを受け取り、その受け取ったメッセージをメッセージルータ部１３３へ送信する。
【００３０】
メッセージルータ部１３３は、メッセージ送受信処理部１３１及びサービス接続部１３２との間のメッセージの送受信を、メッセージＩＤ生成部１３４、宛先決定部１３５、メッセージフィルタ部１３６を利用して処理する。このメッセージの送受信処理の詳細は後述する。
【００３１】
メッセージＩＤ生成部１３４は、メッセージルータ部１３３のリクエストに応じて、宛先グループ３００に対応するメッセージＩＤをメッセージルータ部１３３へ送信する。
【００３２】
宛先決定部１３５は、メッセージルータ部１３３のリクエストに応じて、所定の条件に合致する宛先があるかについて宛先情報格納部１１０に問い合わせを行い、その問い合わせ結果をメッセージルータ部１３３へ送信する。
【００３３】
メッセージフィルタ部１３６は、メッセージルータ部１３３のリクエストに応じて、メッセージフィルタ情報格納装置１２０に問い合わせを行い、その問い合わせ結果をメッセージルータ部１３３へ送信する。
【００３４】
次に、以上のように構成されたメッセージ処理システム１で実行される処理について図６乃至図１０を参照しながら説明する。
【００３５】
先ず、クライアント２００からサービスバス装置１００がリクエストメッセージを受け取り、宛先となるサービスＡ３１０，Ａ’３２０，Ａ’’３３０にリクエストメッセージを送信するまでの処理について説明する。図６は当該処理を示すフローチャートであり、図７は当該処理のメッセージフローを示す図である。なお、図７において、ＲＭはリクエストメッセージを示している。
【００３６】
クライアント２００からサービスバス装置１００に対してリクエストメッセージが送信された場合、当該リクエストメッセージをメッセージ送受信処理部１３１が受信する（Ｓ１０１）。
【００３７】
次に、メッセージ送受信処理部１３１は、当該受信したリクエストメッセージをメッセージルータ部１３３に送信する（Ｓ１０２）。
【００３８】
リクエストメッセージをメッセージ送受信処理部１３１から受信した場合、メッセージルータ部１３３は、サービスバス装置１００に定義された各サービス間の静的なルーティング情報もしくはリクエストメッセージに含まれる情報などから宛先を特定する。ここで宛先が宛先グループＩＤを示していた場合、メッセージルータ部１３３は宛先決定部１３５に、宛先グループＩＤと任意の条件（例えば、メッセージ送信の失敗率がＸ％以下）をキーとして問い合わせを行う。この問い合わせを受けて、宛先決定部１３５は、メッセージルータ部１３３から受け取った条件に合致する情報を宛先情報格納装置１１０からサーチし、そのサーチ結果をメッセージルータ部１３３へ送信する。これにより、メッセージルータ部１３５は、リクエストメッセージを送信する宛先に関する情報を取得する（Ｓ１０３）。
【００３９】
例えば、宛先グループＩＤが「００００１」、任意の条件が失敗率１０％以下であり、且つ、図４に示す宛先情報が格納されている場合、宛先に関する情報は、サービスＡ，サービスＡ’，サービスＡ’’の３つを示す情報となる。したがって、メッセージリクエストを送信する宛先は、宛先グループ３００（サービスＡ３１０，サービスＡ’３２０，サービスＡ’’３３０：図７参照）になる。
【００４０】
なお、ステップＳ１０３において宛先が通常の宛先を示していた場合は、従来よりある処理と同様の処理になるため説明を省略する。
【００４１】
次に、メッセージルータ部１３３は、メッセージＩＤ生成部１３４から宛先グループＩＤに対応するメッセージＩＤを取得し、この取得したメッセージＩＤをメタ情報としてリクエストメッセージに付与する（Ｓ１０４）。
【００４２】
図４は、リクエストメッセージにメタ情報１０として付与されるメッセージＩＤを説明するための図である。メタ情報１０は、同図に示すように、宛先グループ、一斉送信されるメッセージ単位でユニークなＩＤ、及び宛先グループに含まれる連携先の数を示す情報で構成されている。例えば、連携先が３つ存在する宛先グループＩＤ＝００００１に対してリクエストメッセージを送信する場合、メッセージＩＤ＝００００１＿ＸＸＸ＿３（ここで、「ＸＸＸ」はユニークなＩＤ）というメタ情報がリクエストメッセージに付与される。
【００４３】
次に、メッセージルータ部１３３は、サービス接続部１３２にメタ情報が付与されたリクエストメッセージを送信する（Ｓ１０５）。
【００４４】
サービス接続部１３２は、連携先のサービス、つまり、宛先グループ３００に含まれるサービスＡ３００、サービスＡ’３１０、サービスＡ’’３２０に対してリクエストメッセージを一斉送信する（Ｓ１０６）。
【００４５】
連携先のサービスＡ３００、サービスＡ’３１０、サービスＡ’’３２０がリクエストメッセージを受信した場合、サービスＡ３００、サービスＡ’３１０、サービスＡ’’３２０は当該受信したリクエストメッセージに対して所定の処理を実行する（Ｓ１０７）。なお、サービスＡ３００、サービスＡ’３１０、サービスＡ’’３２０は多重化されているため同一の処理結果となる。この処理結果は、レスポンスメッセージとしてサービスバス装置１００に返却される。
【００４６】
次に、連携先の宛先グループ３００に含まれるサービスＡ３００、サービスＡ’３１０、サービスＡ’’３２０からメッセージ送受信装置１３０がレスポンスメッセージを受信し、当該レスポンスメッセージをクライアント２００へ返却する処理について説明する。図８及び図９は当該処理を示すフローチャートであり、図１０は当該処理のメッセージフローを示す図である。なお、図１０において、ＥＭ及びＳＭは、共にレスポンスメッセージを意味しているが、ＥＭは、リクエストメッセージの処理が失敗したことを示す失敗メッセージであり、ＳＭは、リクエストメッセージの処理が成功し、その処理結果を示すメッセージである。なお、ＳＭに付される番号は、リクエストメッセージの処理が早く終わった順序を示している。
【００４７】
サービス接続部１３２は、連携先の宛先グループ３００に含まれるサービスＡ３００、サービスＡ’３１０、サービスＡ’’３２０からレスポンスメッセージを受信した場合、当該レスポンスメッセージの処理をそれぞれ行い、当該レスポンスメッセージの処理の成否に従ってメタ情報をレスポンスメッセージに付与し、当該メタ情報を付与したレスポンスメッセージをメッセージルータ部１３３に順次送信する（Ｓ２０１）。
【００４８】
図５は、レスポンスメッセージに付与されるメタ情報２０を説明するための図である。同図に示すように、メタ情報２０はメッセージＩＤとメッセージのステータスを情報と含んでいる。メッセージＩＤはリクエストメッセージで受け取ったメッセージＩＤと同一であり、メッセージのステータスは、リクエストメッセージの処理が成功したか否か（「ＳＵＣＣＥＳＳ」又は「ＥＲＲＯＲ」）を示すものである。
【００４９】
次に、メッセージルータ部１３３は、メタ情報２０が付与されたレスポンスメッセージを受受信した場合、受信したレスポンスメッセージからメッセージＩＤとメッセージステータスとを含むメタ情報２０を抽出し、この抽出したメタ情報２０をメッセージフィルタ部１３６に送信する（Ｓ２０２）。
【００５０】
メッセージフィルタ部１３６は、メッセージフィルタ部１３６からメタ情報２０を受信した場合、当該受信したメタ情報２０をキーとしてメッセージフィルタ情報格納装置１２０に問い合わせを行う（Ｓ２０３）。
【００５１】
メッセージフィルタ情報格納装置１２０は、メッセージフィルタ部１３６からの問い合わせを受信した場合、格納しているメッセージフィルタ情報（図３参照）内に、問い合わせのあったメタ情報２０に含まれるメッセージＩＤと一致するメッセージＩＤが存在するか否かを判定する（Ｓ２０４）。
【００５２】
一致するメッセージＩＤが存在しないと判定した場合（Ｓ２０４：ＮＯ）、メッセージフィルタ情報格納装置１２０は、初期値を代入してメッセージフィルタ情報を追加する（Ｓ２０５）。ここで、メッセージフィルタ情報の初期値は、メタ情報２０内の「メッセージＩＤ」、「ｆａｌｓｅ」、「１」であり、これらが関連付けられてメッセージフィルタ情報格納装置１２０に格納される。
【００５３】
一方、一致するメッセージＩＤが存在すると判定した場合（Ｓ２０４：ＹＥＳ）、メッセージフィルタ情報格納装置１２０は、当該メッセージＩＤに関連付けられている受信メッセージカウントをインクリメントし（Ｓ２０６）、メッセージＩＤが既に閉塞済みか否かを閉塞１２１に格納される内容に基づいて確認する（Ｓ２０７）。「ｔｒｕｅ」が格納されている場合、閉塞済みであると判定され、「ｆａｌｓｅ」が格納されている場合、閉塞済みでないと判定される。
【００５４】
メッセージＩＤが閉塞済みであると判定した場合（Ｓ２０７：ＹＥＳ）、既に成功メッセージがクライアント２００に返却されていることを意味しているため、メッセージフィルタ情報格納装置１２０は、当該メッセージＩＤを破棄して処理が終了した旨をメッセージフィルタ部１３６を介してメッセージルータ部１３３へ送信する。メッセージルータ部１３３は、当該旨を受信した場合、ステップＳ２０１で受信したレスポンスメッセージを破棄する（Ｓ２０８）。
【００５５】
一方、メッセージＩＤが閉塞済みでないと判定した場合（Ｓ２０７：ＮＯ）、又は、既述のステップＳ２０５においてメッセージフィルタ情報を追加した場合は、メッセージフィルタ情報格納装置１２０は、メタ情報２０に含まれるメッセージステータスが「ＳＵＣＣＥＳＳ」を示すか否を判定する（Ｓ２０９）。
【００５６】
メッセージステータスが「ＳＵＣＣＥＳＳ」を示していると判定した場合（Ｓ２０９：ＹＥＳ）、メッセージフィルタ情報格納装置１２０は、閉塞を有効にし、言い換えれば、閉塞１２１に格納される情報を「ｆａｌｓｅ」から［ｔｒｕｅ］に設定する（Ｓ２１０）。この旨はメッセージフィルタ部１３６へ送信される。
【００５７】
次に、メッセージルータ部１３３は、上記メッセージＩＤの閉塞が有効に設定された旨をメッセージフィルタ部１３６から受信した場合、メッセージ送受信処理部１３１を介して、当該受信したレスポンスメッセージを成功メッセージとしてクライアント２００に返却する（Ｓ２１１）。
【００５８】
また、メッセージステータスが「ＳＵＣＣＥＳＳ」を示していない、言い換えれば、「ＥＲＲＯＲ」を示していると判定した場合（Ｓ２０９：ＮＯ）、メッセージフィルタ情報格納装置１２０は、受信メッセージカウント１２３に格納されている受信メッセージカウント数に基づいて、連携先の宛先グループ３００内の他のサービスからレスポンスメッセージの受信が期待できるか否かを判定する（Ｓ２１２）。より具体的には、メッセージフィルタ情報格納装置１２０は、受信メッセージカウント数とメタ情報２０に含まれる連携先の数とを比較し、受信メッセージカウント数が宛先グループ３００に含まれる連携先の数以上であるか否かを判定する。
【００５９】
他の連携先のサービスからのレスポンスメッセージの受信が期待できる、具体的には、受信メッセージカウント数がまだ宛先グループ３００に含まれる連携先の数に達していないという判定結果（Ｓ２１２：ＮＯ）をメッセージルータ部１３３がメッセージフィルタ情報格納装置１２０から受信した場合、メッセージルータ部１３３は、サービス接続部１３２から受信したメッセージを破棄し、他の連携先のサービスからのレスポンスメッセージを待ち受ける（Ｓ２１３）。なお、この際、必要に応じてリトライ処理を行ってもよいが、その場合は、受信カウントメッセージ数をデクリメントする処理を行う必要がある。そして、処理はステップＳ２０１へ戻る。
【００６０】
一方、他の連携先のサービスからレスポンスメッセージの受信が期待できない、具体的には、受信メッセージカウント数が宛先グループ３００に含まれる連携先の数に達していると判定した場合（Ｓ２１２：ＹＥＳ）、全ての連携先のサービスでリクエストメッセージの処理が失敗していることを意味するため、メッセージフィルタ情報格納部１２０は、当該メッセージＩＤに関するメッセージフィルタ情報を削除し、その旨をメッセージフィルタ部１３６へ送信する（Ｓ２１４）。
【００６１】
次に、メッセージルータ部１３３は、メッセージフィルタ部１３６を介して、メッセージＩＤに関するレコード（メッセージフィルタ情報）が削除された旨を受信した場合、メッセージ送受信処理部１３１を介してクライアント２００に、全ての宛先においてリクエストメッセージの処理が失敗した旨を送信する（Ｓ２１５）。
【００６２】
また、メッセージルータ部１３３は、必要に応じて任意のパラメータ（既述の宛先毎の失敗率など）に関する情報を宛先情報格納装置１１０に送信する。これにより、宛先情報格納装置１１０は、宛先情報格納装置１１０に格納される任意パラメータ１１３ａ〜１１３Ｎを更新することができ、これらパラメータを最新の状態に保つことができる。
【００６３】
本第１の実施の形態のメッセージ処理システム１によると、メッセージ処理システム１において複数の経路が存在し、それらのリソースやネットワークの負荷状況が動的に変化する状況において、クライアント２００からリクエストメッセージ送信する際に、宛先グループ３００内の多重化されたサービスＡ３００、サービスＡ’３１０、サービスＡ’’３２０のうち最も応答速度の早い経路を用いてリクエストメッセージを処理することが可能になる。
【００６４】
また、メッセージ処理システム１によると、宛先情報格納装置１１０に蓄積する任意のパラメータ１１３ａ〜１１３Ｎを用いてリクエストメッセージの配信先を絞ることが可能である。したがって、連携際の宛先グループが多く存在する場合に、メッセージの配信量が膨大な数になりネットワーク帯域を占有してしまうという事態を回避することができる。なお、リクエストメッセージの配信数が膨大になるのを回避するために、任意のパラメータ１１３ａ〜１１３Ｎを用いてリクエストメッセージの送信数を絞るだけでなく、メッセージリクエストを配信する送信数の上限数を予め設定するようにしても良い。
【００６５】
更に、メッセージ処理システム１は、リクエストメッセージの処理に失敗したことをサービスＡ３００、サービスＡ’３１０、サービスＡ’’３２０のいずれかから受信した場合に、他のサービスから当該リクエストメッセージに関する成功メッセージを受信していたときは、リトライ処理を実行する必要がないため、リトライ処理を行うための処理資源を節約することができる。
【００６６】
（第２の実施の形態）
次に、第２の実施の形態について説明する。この第２の実施の形態のメッセージ処理システム２は、連携先が第１の実施の形態より増えている点が異なっている。よって、この異なる点について詳細に説明する。なお、第１の実施の形態と同一の構成には同一の符号を付し、これらについては詳細な説明は省略する。
【００６７】
図１１は、メッセージ処理システム２の構成を示している。同図に示すように、メッセージ処理システム２は、サービスバス装置１００と、サービスバス装置１００にリクエストメッセージを送信するクライアント２００と、サービスバス装置１００の連携先となる連携先グループ４００と、連携先グループ４００と連携するサービスバス装置５００と、サービスバス装置５００の連携先となる宛先グループ６００とを有している
【００６８】
サービスバス装置１００及びクライアント２００は既述の第１の実施の形態において説明したものと同様の構成であるため詳細な説明を省略する。
【００６９】
連携先グループ４００は、サービスバス装置１００，５００間を連携するためのサービスバスを含むものであり、図１１に示すように、サービスバスＡ４１０、サービスバスＡ’４２０、サービスバスＡ’’４３０を有している。
【００７０】
したがって、サービスバスＡ４１０、サービスバスＡ’４２０、サービスバスＡ’’４３０の３つのサービスバスは、サービスバス装置１００からリクエストメッセージをそれぞれ受信し、当該受信したリクエストメッセージをサービスバス装置５００へ送信するようになっている。また、サービスバスＡ４１０、サービスバスＡ’４２０、サービスバスＡ’’４３０の３つのサービスバスは、サービスバス装置５００からレスポンスメッセージをそれぞれ受信し、当該受信したレスポンスメッセージをサービスバス装置１００へ送信するようになっている。
【００７１】
なお、連携先グループは連携グループ４００の１つだけでなく複数存在しても良いし、連携先グループに含まれるサービスバスは３つでなくても良い。
【００７２】
サービスバス装置５００は、サービスバス装置１００と同様の構成をしており、宛先情報格納装置５１０と、メッセージフィルタ情報格納装置５２０と、メッセージ送受信装置５３０とを有している。宛先情報格納装置５１０及びメッセージフィルタ情報格納装置５２０に格納される情報及びメッセージ送受信装置５３０の構成に関する説明は、既述の宛先情報格納装置１１０及びメッセージフィルタ情報格納装置１２０に格納される情報及びメッセージ送受信装置１３０に関する説明と同様になるため省略する。
【００７３】
宛先グループ６００は、サービスＢ６１０と、サービスＢ’６２０と、サービスＢ’’６３０とを有している。これらのサービスＢ６１０と、サービスＢ’６２０と、サービスＢ’’６３０は受信したリクエストメッセージに関して同一の結果を返すように多重化されたサービスである。本第２の実施の形態では、連携先の宛先グループ６００が１つの場合で説明するが複数存在しても良い。また、宛先グループ３００には、多重化されたサービス（サービスＢ３１０，Ｂ’３２０，Ｂ’’３３０）が１つ存在する場合で説明するが、他の多重化されたサービスが存在しても良い。
【００７４】
次に、メッセージ処理システム２における動作について説明する。
【００７５】
サービスバス装置１００のメッセージ送受信装置１３０がクライアント２００からリクエストメッセージを受信した場合に、連携先グループ４００に含まれるサービスバスＡ４１０、サービスバスＡ’４２０、サービスバスＡ’’４３０に対してリクエストメッセージを送信する動作は既述の第１の実施の形態の説明（参照：図６）と実質的に同様であり、また、サービスバス装置１００のメッセージ送受信装置１３０が連携先グループ４００に含まれる各サービスバスＡ４１０、サービスバスＡ’４２０、サービスバスＡ’’４３０からレスポンスメッセージを受信した場合の動作は既述の第１の実施の形態の説明（参照：図８及び図９）と実質的に同様であるため説明を省略する。
【００７６】
次に、図１２を参照して、サービスバス装置５００が連携先グループ４００に含まれる各サービスバスＡ４１０、サービスバスＡ’４２０、サービスバスＡ’’４３０からリクエストメッセージを受け取り、各サービスバスＡ４１０、サービスバスＡ’４２０、サービスバスＡ’’４３０へレスポンスメッセージを返却する動作を説明する。
【００７７】
連携先グループ４００のサービスバスＡ４１０、サービスバスＡ’４２０、サービスバスＡ’’４３０のいずれからリクエストメッセージをメッセージ送受信装置５３０が受信した場合（Ｓ３０１）、メッセージ送受信装置５３０は、リクエストメッセージのメタ情報に含まれるメッセージＩＤを取得し、メッセージフィルタ情報格納装置５２０に対して当該メッセージＩＤをキーとして問い合わせを行う（Ｓ３０２）。この問い合わせによって、リクエストメッセージを宛先グループ６００へ送信するか否かのフィルリングが行われる。
【００７８】
当該問い合わせを受信した場合、メッセージフィルタ情報格納装置５２０は、問い合わせのあったメッセージＩＤと一致するメッセージＩＤがメッセージフィルタ情報格納装置５２０内に存在するか否かを判定する（Ｓ３０３）。
【００７９】
一致するメッセージＩＤが存在すると判定した場合（Ｓ３０３：ＹＥＳ）、当該判定結果がメッセージ送受信装置５３０へ送信される。この判定結果を受信した場合、メッセージ送受信装置５３０は、宛先グループ６００に対してリクエストメッセージを送信せず、宛先グループ６００からレスポンスメッセージが返却されるのを待ち受ける（Ｓ３０４）。一致するメッセージＩＤがメッセージフィルタ情報格納装置５２０内に存在する場合、既にサービスバス装置５００から宛先グループ６００のサービスＢ６１０、サービスＢ’６２０、及びサービスＢ’’６３０のいずれかに対してリクエストメッセージが送信されているため、そのリクエストメッセージに対するレスポンスメッセージを待ち受ければよく、新たにリクエストメッセージを送信せずとも良いからである。これにより、リクエストメッセージが宛先グループ６００に送信される数を抑えることができるため、リクエストメッセージの送信数が増加することを防止できる。
【００８０】
一方、一致するメッセージＩＤがメッセージフィルタ情報格納装置５２０に存在しないと判定した場合（Ｓ３０３：ＮＯ）、メッセージフィルタ情報格納装置５２０は、そのメッセージＩＤに関するメッセージフィルタ情報を追加する（Ｓ３０５）。このメッセージフィルタ情報を追加した旨は、メッセージ送受信装置５３０に送信される。
【００８１】
次に、メッセージ送受信装置５３０は、宛先グループ６００のサービスＢ６１０、サービスＢ’６２０、及びサービスＢ’’６３０に対して、ステップＳ３０１において受信したリクエストメッセージを一斉送信する（Ｓ３０６）。このリクエストメッセージを一斉送信する処理の詳細な説明は、図６を参照して既述した処理と実質的に同様になるため省略する。
【００８２】
次に、宛先グループ６００のサービスＢ６１０、サービスＢ’６２０、及びサービスＢ’’６３０は、メッセージ送受信装置５３０からリクエストメッセージを受信した場合、それぞれリクエストメッセージの処理を行う。このように処理が行われた後、サービスＢ６１０、サービスＢ’６２０、及びサービスＢ’’６３０はそれぞれサービスバス装置５００へレスポンスメッセージを返却する。
【００８３】
メッセージ送受信装置５３０は、宛先グループ６００の各サービスＢ６１０、サービスＢ’６２０、及びサービスＢ’’６３０のいずれからレスポンスメッセージを受信した場合、当該受信したレスポンスメッセージを連携先グループ４００へ送信する。この際、ステップＳ３０４の処理においてレスポンスメッセージの返却を待ち受けている状態になっているサービスバスがある場合、このサービスバスに対してもレスポンスメッセージを返却する。この宛先グループ６００からレスポンスメッセージを受信し、当該受信したレスポンスメッセージを連携先グループ４００へ送信する処理の詳細な説明は、図８及び図９を参照して既述した処理と実質的に同様であるため省略する。
【００８４】
本第２の実施の形態のメッセージ処理システム２によると、第１の実施の形態のメッセージ処理システム１の奏する効果に加え、リクエストメッセージの一斉送信によるメッセージ送信数の増大を防止する効果を奏することができる。
【００８５】
より詳細には、連携先グループ４００からサービスバス装置５００に対してリクエストメッセージを送信する場合、各サービスバスＡ４１０、サービスバスＡ’４２０、サービスバスＡ’’４３０からリクエストメッセージを送信するため、同内容のリクエストメッセージを３回送信する可能性があるが、サービスバス装置５００内において、１つリクエストメッセージを宛先グループ６００に送信した場合、残りのリクエストメッセージを待機状態にすることができる。
【００８６】
したがって、従来であれば、サービスバス装置５００から宛先グループ６００に対して３＊３で９つのリクエストメッセージが送信される可能性があったのに対し、本第２の実施の形態では、１＊３で３つのリクエストメッセージが送信されるのみにある。よってリクエストメッセージの一斉送信によるリクエストメッセージ送信数の増加を防止することができる。
【００８７】
なお、上記第２の実施の形態においては、メッセージ処理システム２において、連携先グループ４００が１つ存在する場合について説明したが、これに限るものではなく、連携先グループは２以上あっても良い。このように、２以上の連携グループがメッセージ処理システムに含まれている場合であっても、当該連携グループと接続するサービスバス装置が既述のサービスバス装置５００と同様な処理を行うことにより、リクエストメッセージを１つのみ下流側に送信するようになる。このため、連携する連携先グループ４００が多く含まれるメッセージ処理システムほど、リクエストメッセージの送信数の増加を抑制する効果が大きくなる。
【００８８】
なお、本発明は上述の実施の形態に限定されるものではなく、その実施に際して様々な変形が可能である。
【００８９】
上記実施の形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【００９０】
（付記１）
クライアントと、
サービスバス装置と、
複数のサービス提供装置により多重化されたサービスを提供するサービス提供装置グループと、
を含み、
前記クライアント、前記サービスバス装置及び前記複数のサービス提供装置がネットワークを介して複数の経路で通信可能に接続されたメッセージ処理システムであって、
前記クライアントから前記サービスバス装置へ前記サービスの提供を受けるためのリクエストメッセージが送信された場合、前記複数のサービス提供装置に対して前記リクエストメッセージを一斉送信するリクエストメッセージ送信手段と、
前記リクエストメッセージが送信されたサービス提供装置からレスポンスメッセージを前記サービスバス装置が受信した場合、当該受信したレスポンスメッセージのうち最初に受信したレスポンスメッセージのみを前記クライアントに送信するレスポンスメッセージ送信手段と、
を有することを特徴とするメッセージ処理システム。
【００９１】
（付記２）
前記リクエストの一斉送信は、前記サービス提供装置グループのうち任意の条件を満たすサービス提供装置にのみ送信されることを特徴とする付記１記載のメッセージ処理システム。
【００９２】
（付記３）
前記サービスバス装置は、前記レスポンスメッセージを最初に受信した場合、当該レスポンスメッセージより後に受信する他のレスポンスメッセージを破棄することを特徴とする付記１又は２記載のメッセージ処理システム。
【００９３】
（付記４）
前記他のレスポンスメッセージの破棄は、前記他のレスポンスメッセージを送信するサービス提供装置に対して前記ネットワークを閉塞することに基づいて行われることを特徴とする付記３記載のメッセージ処理システム。
【００９４】
（付記５）
クライアントと、
サービスバス装置と、
他のサービスバス装置と、
複数の連携装置により多重化された前記サービスバス装置と前記他のバスサービス装置との連携を提供する連携装置グループと、
複数のサービス提供装置により多重化されたサービスを提供するサービス提供装置グループと、
を含み、
前記クライアント、前記サービスバス装置、前記複数の連携装置、前記他のサービスバス装置及び前記複数のサービス提供装置がネットワークを介して複数の経路で通信可能に接続されたメッセージ処理システムであって、
前記クライアントから前記サービスバス装置へ前記サービスの提供を受けるためのリクエストメッセージが送信された場合、前記複数の連携装置に対して前記リクエストメッセージを一斉送信する第１のリクエストメッセージ送信手段と、
前記第１のリクエストメッセージ送信手段で送信されたリクエストメッセージを受信した連携装置から前記他のサービスバス装置へ当該リクエストメッセージが送信された場合、前記複数のサービス提供装置に対して当該リクエストメッセージを一斉送信する第２のリクエストメッセージ送信手段と、
前記リクエストメッセージが送信されたサービス提供装置からレスポンスメッセージを前記他のサービスバス装置が受信した場合、当該受信したレスポンスメッセージのうち最初に受信したレスポンスメッセージのみを当該リクエストメッセージの送信元の連携装置に送信する第１のレスポンスメッセージ送信手段と、
前記第１のレスポンスメッセージ送信手段で送信されたレスポンスメッセージを受信した連携装置を含む連携装置グループの各連携装置から前記サービスバス装置がレスポンスメッセージを受信した場合、当該レスポンスメッセージのうち最初に受信したレスポンスメッセージのみを前記クライアントに送信する第２のレスポンスメッセージ送信手段と、
を有することを特徴とするメッセージ処理システム。
【００９５】
（付記６）
前記他のサービスバス装置は、前記レスポンスメッセージを最初に受信した場合、当該レスポンスメッセージより後に受信する他のレスポンスメッセージを破棄し、
前記サービスバス装置は、前記レスポンスメッセージを最初に受信した場合、当該レスポンスメッセージより後に受信する他のレスポンスメッセージを破棄することを特徴とする付記５記載のメッセージ処理システム。
【００９６】
（付記７）
クライアントと、複数のサービス提供装置により多重化されたサービスを提供するサービス提供装置グループと、ネットワークを介して複数の経路で通信可能に接続されたサービスバス装置であって、
前記クライアントからから前記サービスの提供を受けるためのリクエストメッセージを受信した場合、前記複数のサービス提供装置に対して前記リクエストメッセージを一斉送信するリクエストメッセージ送信手段と、
前記リクエストメッセージが送信されたサービス提供装置から返却されるレスポンスメッセージを受信した場合、当該受信したレスポンスメッセージのうち最初に受信したレスポンスメッセージのみを前記クライアントに送信するレスポンスメッセージ送信手段と、
を有することを特徴とするサービスバス装置。
【００９７】
（付記８）
クライアントと、複数のサービス提供装置により多重化されたサービスを提供するサービス提供装置グループと、ネットワークを介して複数の経路で通信可能に接続されたサービスバス装置のメッセージ処理方法であって、
前記クライアントからから前記サービスの提供を受けるためのリクエストメッセージを受信した場合、前記複数のサービス提供装置に対して前記リクエストメッセージを一斉送信するステップと、
前記リクエストメッセージが送信されたサービス提供装置から返却されるレスポンスメッセージを受信した場合、当該受信したレスポンスメッセージのうち最初に受信したレスポンスメッセージのみを前記クライアントに送信するステップと、
を有することを特徴とするサービスバス装置のメッセージ処理方法。
【産業上の利用可能性】
【００９８】
本発明は、メッセージ処理システム全体の負荷状況が動的に変化する環境において、応答速度を優先した経路制御を行う場合に広く適用可能である。
【符号の説明】
【００９９】
１，２・・・メッセージ処理システム
１００，５００・・・サービスバス装置
１１０，５１０・・・宛先情報格納装置
１２０，５２０・・・メッセージフィルタ情報格納装置
１３０，５３０・・・メッセージ送受信装置
１３１・・・メッセージ送受信処理部
１３２・・・サービス接続部
１３３・・・メッセージルータ部
１３４・・・メッセージＩＤ生成部
１３５・・・宛先決定部
１３６・・・メッセージフィルタ部
２００・・・クライアント
３００，６００・・・宛先グループ
３１０，３２０，３３０，６１０，６２０，６３０・・・サービス
４００・・・連携先グループ
４１０，４２０，４３０・・・サービスバス
【図４】
2013073255.tif 000003
【図１】
2013073255.tif 000004
【図２】
2013073255.tif 000005
【図３】
2013073255.tif 000006
【図５】
2013073255.tif 000007
【図６】
2013073255.tif 000008
【図７】
2013073255.tif 000009
【図８】
2013073255.tif 000010
【図９】
2013073255.tif 000011
【図１０】
2013073255.tif 000012
【図１１】
2013073255.tif 000013
【図１２】
2013073255.tif 000014