JP2009110165A - パブリッシュ/サブスクライブ通信における負荷分散処理方法及びその実施装置と処理プログラム - Google Patents

パブリッシュ/サブスクライブ通信における負荷分散処理方法及びその実施装置と処理プログラム Download PDF

Info

Publication number
JP2009110165A
JP2009110165A JP2007280396A JP2007280396A JP2009110165A JP 2009110165 A JP2009110165 A JP 2009110165A JP 2007280396 A JP2007280396 A JP 2007280396A JP 2007280396 A JP2007280396 A JP 2007280396A JP 2009110165 A JP2009110165 A JP 2009110165A
Authority
JP
Japan
Prior art keywords
topic
message
subscribe
request
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2007280396A
Other languages
English (en)
Inventor
Hironari Tsuzuki
裕也 都築
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2007280396A priority Critical patent/JP2009110165A/ja
Publication of JP2009110165A publication Critical patent/JP2009110165A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

【課題】
パブリッシュ/サブスクライブ通信において、サブスクライブ側(受信側)の負荷分散構成を実現する。
【解決手段】
パブリッシュ/サブスクライブ通信を行なう通信ノードとメッセージの配信を実行するブローカとの間に代理のパブリッシュ/サブスクライブ(pub/sub)通信ノードを配置する。この代理pub/sub通信ノードは接続されている複数の通信ノードの代理としてブローカに対してパブリッシュ/サブスクライブ要求を発行する。代理pub/subサーバが複数ノードから同一のトピックでサブスクライブ要求を受信した場合に、最初の要求を受信した時にのみブローカに対してサブスクライブ要求を発行し、後続のサブスクライブ要求受付時には、どの通信ノードから受信したかを記憶しておくだけにし、ブローカからそのトピックに対するパブリッシュメッセージを受信した場合に、記憶しておいたサブスクライブ要求を発行した複数の通信ノードから一つを選択して配信する。
【選択図】 図1

Description

本発明はパブリッシュ/サブスクライブ通信に関わり、配信データを複数ノードへ分散させることにより各ノードで分散処理を実行させる負荷分散処理方法に関するものである。
メッセージを送受信する方式として広く使用されているモデルにPoint-to-Point方式がある。これは、送信側が受信側の宛先を指定してメッセージを送信する方式であり、送信側が受信する宛先を意識する必要がある。一方、Publish-Subscribe方式という通信モデルがある。Publish-Subscribe方式では、送信側は宛先を意識せずにメッセージを発行(Publish)し、そのメッセージを受け取ったメッセージングシステムがメッセージの種類や属性を見て、そのメッセージの購読を要求(subscribe)している受信側に対してメッセージを配送する。Publish-Subscribe方式では、送信側と受信側がお互いに相手が誰でどこにいるかを意識する必要がなく、また受信側は自分が必要とするメッセージのみを受け取ることができる方式である。送信側、受信側がお互いを意識する必要がないため、サービスの追加、削除といった構成変更が容易な方式である。
Point-to-PointとPublish-Subscribeのメッセージング仕様の一例では、送信側はトピックに対してメッセージを送信し、メッセージはそのトピックをサブスクライブ(購読)している全てのアプリケーションが受信できる。サブスクライブしている全てのアプリケーションの受信が終わるとその時点でトピックからそのメッセージは削除される。
Point-to-Point方式が1対1通信であるのに対して、Publish-Subscribe方式は1対N通信である。Publish-Subscribe方式が実システムに適用された例として、株価配信システムがある。ユーザがある会社の株価の購読(subscribe)を登録しておくと、その会社の更新された株価が送信(Publish)される。購読(subscribe)を登録した複数のユーザには同じ情報が通知される。
通信構成としては、各クライアントプログラムはブローカと呼ばれるメッセージ配信ノードに接続され、さらにブローカ間が接続する構成が考えられる(特許文献1)。
ところで、多数のクライアントプログラムからの処理要求が多量に発生するシステムでは、クライアントプログラムが動作する装置とサーバプログラムが動作する装置との間に負荷分散装置を設置する等して、サーバプログラムが動作する処理装置を複数配置することで、処理要求の負荷を複数装置に分散させる構成をとるのが一般的である。通信にPoint-to-Point方式を使用した場合にこの構成は適用できる。しかし、Publish-Subscribe方式を使用した場合、複数配置した処理装置からメッセージの購読要求(subscribe)がなされるため、同一メッセージが複数の処理装置に配信されることになり負荷分散の構成をとることができない。
特表2006−523905号
前記の様にパブリッシュ/サブスクライブ通信では、送信側と受信側がお互いに相手が誰でどこにいるかを意識する必要がなく、また受信側は自分が必要とするメッセージのみを受け取ることができるので、この通信を用いた負荷分散処理システムを構築すれば、送信側、受信側がお互いを意識する必要がなく、サービスの追加、削除といった構成変更が容易な負荷分散処理システムが構築可能であると考えられるが、前記の様に従来の技術ではパブリッシュ/サブスクライブ通信を使用した場合に負荷分散の構成をとることが困難であった。
本発明の目的は、上記問題点を解決し、パブリッシュ/サブスクライブ通信においてサブスクライブ側(受信側)の負荷分散構成を実現することが可能な技術を提供することにある。
本発明は、パブリッシュ/サブスクライブ通信でメッセージを配信して負荷分散処理を複数ノードに実行させる負荷分散処理システムであって、あるトピックについての最初のサブスクライブ要求のブローカへの送信や選択した一つのノードへのブローカからのメッセージの配信を代理サーバが行うことで、メッセージを用いた処理を複数のノードで分散して実行させるものである。
本発明では、パブリッシュ/サブスクライブ通信を行なう通信ノードとメッセージの配信を実行するブローカとの間に代理のパブリッシュ/サブスクライブ(pub/sub)通信ノード(代理pub/subサーバ)を配置する。この代理pub/subサーバは接続されている複数の通信ノードの代理としてブローカに対してパブリッシュ/サブスクライブ要求を発行する。
すなわち本発明の負荷分散処理方法では、代理pub/subサーバが複数ノードから同一のトピックでサブスクライブ要求を受信した場合に、最初の要求を受信した時にのみブローカに対してサブスクライブ要求を発行し、後続のサブスクライブ要求受付時には、どの通信ノードから受信したかを記憶しておくだけにするステップと、ブローカからそのトピックに対するパブリッシュメッセージを受信した場合に、記憶しておいたサブスクライブ要求を発行した複数の通信ノードから一つを選択して配信するステップを有し、代理pub/subサーバがサブスクライブ要求をキャンセルするアンサブスクライブ要求を通信ノードから受信した場合、記憶していた全ての通信ノードからアンサブスクライブ要求を受信した時にのみブローカにアンサブスクライブ要求を送信するステップを有することで負荷分散処理を実現する。
また、予め上記のステップに従い処理するトピック名を指定することで、サブスクライブ要求を発行した複数の通信ノードから一つを選択してパブリッシュメッセージを配信するか、従来通りサブスクライブ要求を発行した全ての通信ノードにパブリッシュメッセージを配信するかを選択することも可能とする。
本発明により、パブリッシュ/サブスクライブ通信において複数のサブスクライバを配置して負荷分散構成を実現できる。
図1はパブリッシュ/サブスクライブ通信のネットワークの実施例であり、各通信ノード間のメッセージ配信を司るブローカ120、各通信ノード101、パブリッシュ/サブスクライブ通信の負荷分散を制御する代理pub/subサーバ130、代理pub/subサーバ130に接続された通信ノード140から構成され、各装置はネットワーク及び通信装置を介してパブリッシュ/サブスクライブ通信を行う。ここで、代理pub/subサーバ130は装置であり、メモリ上のpub/subサーバ104及びpub/subサーバ143はプログラムである。
通信ノード101はメモリ103とCPU102で構成される。メモリ103にはノード内でのパブリッシュ/サブスクライブ処理を制御するpub/subサーバ104と、パブリッシュ/サブスクライブを要求するアプリケーション105が配置されている。
通信ノード140はブローカに接続された通信ノード101にサービスを提供するノードであり、メモリ141とCPU142で構成される。メモリ141にはノード内でのパブリッシュ/サブスクライブ処理を制御するpub/subサーバ143と、サービスを提供するサービスA144、サービスB145が配置されている。
サービスA144、サービスB145はトピックを指定したサブスクライブ要求をpub/subサーバ143に発行し、通信ノード101からパブリッシュされたメッセージの内サービスA144、サービスB145が指定したトピックと一致するメッセージを受信する。通信ノード140は複数存在し、全て代理pub/subサーバ130に接続されており、複数の通信ノード140は代理pub/subサーバ130からのメッセージを受信してサービスA144及びサービスB145の処理を負荷分散により行う。
代理pub/subサーバ130はメモリ132、CPU131、トピック定義部135とノードリスト管理部136で構成される。メモリ132にはパブリッシュ/サブスクライブ通信メッセージを制御するトピック検出部133とブローカ120から通知されたメッセージを各通信ノード140に負荷を分散させて送信する負荷分散部134が配置される。トピック検出部133は負荷分散対象のトピックを管理するトピック定義部135と各トピックのメッセージを負荷分散して配信するノード一覧を管理するノードリスト管理部136の情報を参照、更新する。
代理pub/subサーバ130をトピック検出部133や負荷分散部134として機能させる為のプログラムは、CD−ROM等の記録媒体に記録され磁気ディスク等に格納された後、メモリにロードされて実行されるものとする。なお前記プログラムを記録する記録媒体はCD−ROM以外の他の記録媒体でも良い。また前記プログラムを当該記録媒体から情報処理装置にインストールして使用しても良いし、ネットワークを通じて当該記録媒体にアクセスして前記プログラムを使用するものとしても良い。
図2はトピック定義部135の構成について示すものである。トピック定義部135はトピック識別子201、トピック名202、一致パターン203、ノードリスト名204から成る複数のレコード211、212、213、214から構成される。
本実施形態では、代理pub/subサーバ130が送受信するメッセージを負荷分散対象とするかはトピック識別子201、一致パターン203により決定されるものとする。一致パターン203には「前置」221、「後置」222、「全体」223がある。
代理pub/subサーバ130と通信ノード140間で送受信されるトピック名とブローカ120に接続された通信ノード101間で送受信されるメッセージのトピック名を一致させる場合は、一致パターン203に「全体」223を設定しておく。レコード213がその例にあたる。
ブローカ120に接続された通信ノード101間で送受信されるメッセージのトピック名の前にトピック識別子201を付加したものを代理pub/subサーバ130と通信ノード140間で送受信されるトピック名とする場合は、一致パターン203に「前置」221を設定しておく。レコード211、212がその例である。レコード211の場合、ブローカ120と通信ノード101間でのトピック名は”/request_A”となるが、代理pub/subサーバ130と通信ノード140間のトピック名は”/#LB_prefix/request_A”となる。レコード212の場合、ブローカ120と通信ノード101間でのトピック名は”/request_B”となるが、代理pub/subサーバ130と通信ノード140間のトピック名は”/#LB_prefix/request_B”となる。
ブローカ120に接続された通信ノード101間で送受信されるメッセージのトピック名の後にトピック識別子201を付加したものを代理pub/subサーバ130と通信ノード140間で送受信されるトピック名とする場合は、一致パターン203に「後置」222を設定しておく。レコード214の場合、ブローカ120と通信ノード101間でのトピック名は”/request_C”となるが、代理pub/subサーバ130と通信ノード140間のトピック名は”/request_C/#LB_prefix”となる。
一致パターン203に「前置」221、「後置」222を指定すると、代理pub/subサーバ130に接続された通信ノード140の各サービス144、145は負荷分散対象とする全トピックを予めトピック定義部135に指定する必要がなく、サービスが追加された時も、ある規則に基づいたトピック名を指定してサブスクライブすれば良い。ノードリスト名204は該当トピックの負荷分散対象ノードの一覧を示すものであり、ノードリスト管理部136のノードリストポインタ301の位置を示すものである。
図3はノードリスト管理部136の構成を示すものである。ノードリスト管理部136はノードリストポインタ301とノードリスト302により構成される。ノードリストポインタ301にはトピック定義部135の各レコード211、212、213、214対応のポインタ領域311、312、313、314が確保される。ノードリスト302にはポインタ領域311からポイントされる負荷分散対象のノード321、322が確保される。
図4で代理pub/subサーバ130が通信ノード140からサブスクライブ要求を受付けた流れを示す。代理pub/subサーバ130のトピック検出部133は、サブスクライブ要求を受付けると(ステップ40)、トピック定義部135に一致するトピックがあるかを判定する(ステップ41)。
ステップ41で判定した結果がNOの場合、サブスクライブ要求受付け処理を終了する(ステップ47)。またステップ41で判定した結果がYESの場合、前記受付けたサブスクライブ要求と同一のサブスクライブ要求をブローカ120へ送信済みであるかを判定する(ステップ42)。
ステップ42で判定した結果がYESの場合、ステップ45へ進む。またステップ42で判定した結果がNOの場合、トピック定義部135の一致パターンに従いサブスクライブ要求を作成し直し(ステップ43)、その作成し直したサブスクライブ要求をブローカ120へ送信する(ステップ44)。
次に、ノードリスト管理部136に該当ノードがあるかを判定する(ステップ45)。ステップ45で判定した結果がNOの場合にのみ、ノードリスト管理部136に該当ノードを追加し(ステップ46)、サブスクライブ要求受付け処理を終了する(ステップ47)。
図5でトピック定義部135に一致するトピックがあるかを判定する処理(ステップ41)の流れを示す。代理pub/subサーバ130のトピック検出部133は、ステップ50で処理を開始した後、一致パターン203が「全体」223であり、かつ、該当トピック名と同一のトピック識別子201のレコードが存在するか判定する(ステップ51)。
ステップ51での判定の結果がYESの場合、最終判定結果もYESとなり(ステップ55)、判定処理を終了する(ステップ56)。ステップ51での判定の結果がNOの場合、一致パターン203が「前置」221であり、かつ、該当トピック名の先頭から比較して前方一致するトピック識別子201が存在するか判定する(ステップ52)。
ステップ52での判定の結果がYESの場合、最終判定結果もYESとなり(ステップ55)、判定処理を終了する(ステップ56)。ステップ52での判定の結果がNOの場合、一致パターン203が「後置」222であり、かつ、該当トピック名の後端から比較して後方一致するトピック識別子201が存在するか判定する(ステップ53)。
ステップ53での判定の結果がYESの場合、最終判定結果もYESとなり(ステップ55)、判定処理を終了する(ステップ56)。ステップ53での判定の結果がNOの場合、最終判定結果もNOとなり(ステップ54)、判定処理を終了する(ステップ56)。
図6でトピック定義部135の一致パターンに従いサブスクライブ要求を作成し直す処理(ステップ43)の流れを示す。代理pub/subサーバ130のトピック検出部133は、ステップ60で処理を開始した後、トピック定義部135の一致したレコードの一致パターン203が「前置」221であるかを判定する(ステップ61)。
ステップ61で判定した結果がYESの場合、サブスクライブ要求の該当トピック名の前方からトピック識別子201の文字列を削除する(ステップ62)。そして、ここで作成したトピック名に一致するレコードがトピック定義部135に無い場合、作成したトピック名を持つレコードを追加し(ステップ63)、処理を終了する(ステップ67)。またステップ61で判定した結果がNOの場合、トピック定義部135の一致したレコードの一致パターン203が「後置」222であるかを判定する(ステップ64)。
ステップ64で判定した結果がYESの場合、サブスクライブ要求の該当トピック名の後方からトピック識別子201の文字列を削除する(ステップ65)。そして、ここで作成したトピック名に一致するレコードがトピック定義部135に無い場合、作成したトピック名を持つレコードを追加し(ステップ66)、処理を終了する(ステップ67)。またステップ64で判定した結果がNOの場合は処理を終了する(ステップ67)。
図7で代理pub/subサーバ130が通信ノード101から発行されたパブリッシュメッセージを受信する処理の流れを示す。代理pub/subサーバ130のトピック検出部133は、ステップ70でパブリッシュメッセージ受信した後、トピック定義部135のトピック名202に一致するトピックがあるかを判定する(ステップ71)。
ステップ71での判定の結果がNOの場合、受信したパブリッシュメッセージを該当トピックに対してサブスクライブしている全ての通信ノード140に送信し(ステップ75)、パブリッシュメッセージ受信処理を終了する(ステップ76)。ステップ71での判定の結果がYESの場合、トピック定義部135の一致パターン203に従いパブリッシュメッセージを作成し直す(ステップ72)。
そしてノードリスト管理部136のノードリスト302の該当ノードを負荷分散部134に渡し宛先を決定する(ステップ73)。ここで、負荷分散部134では、該当ノードの情報から一つを選択してメッセージを配信するノードを選択する。この様に負荷分散部134はメッセージを複数ノードに割振り負荷を分散させる機構を実現するものであるが、この負荷分散の機構に関しては本発明の対象外である。次に負荷分散部134は、決定した宛先にパブリッシュメッセージを送信し(ステップ74)、処理を終了する(ステップ75)。
図8で、トピック定義部135の一致パターン203に従いパブリッシュメッセージを作成し直す処理(ステップ72)の流れを示す。代理pub/subサーバ130のトピック検出部133は、ステップ80で処理を開始した後、トピック定義部135のトピック名202に一致するトピックがあり、かつ、一致パターン203が「前置」221であるかを判定する(ステップ81)。
ステップ81で判定した結果がYESの場合、該当トピックの前方にトピック定義部135のトピック識別子201を付加し(ステップ82)、処理を終了する(ステップ85)。ステップ81での判定の結果がNOの場合、トピック定義部135のトピック名202に一致するトピックがあり、かつ、一致パターン203が「後置」222であるかを判定する(ステップ83)。ステップ83で判定した結果がYESの場合、該当トピックの後方にトピック定義部135のトピック識別子201を付加し(ステップ84)、処理を終了する(ステップ85)。
図9で、代理pub/subサーバ130が通信ノード140からアンサブスクライブ要求を受付けた流れを示す。代理pub/subサーバ130のトピック検出部133は、ステップ90でアンサブスクライブ要求を受付けると、トピック定義部135に一致するトピックがあるかを判定する(ステップ91)。この判定処理の流れは図5に示される。
ステップ91で判定した結果がNOの場合、アンサブスクライブ要求受付け処理を終了する(ステップ98)。またステップ91で判定した結果がYESの場合、ノードリスト管理部136のノードリスト302の該当ノードを削除する(ステップ92)。
次にノードリスト管理部136の該当ノードリストポインタから指されるノードが1つ以上存在するか判定する(ステップ93)。ステップ93で判定した結果がYESの場合、アンサブスクライブ要求受付け処理を終了する(ステップ98)。またステップ93で判定した結果がNOの場合、トピック定義部の一致パターンに従いアンサブスクライブ要求を作成し直す(ステップ94)。そして作成し直したアンサブスクライブ要求をブローカ120に対して送信する(ステップ95)。次に、ステップ93で判定した結果がNOの場合、トピック定義部135の該当レコードのトピック名202をクリアする(ステップ96)。そして、同一トピック識別子201のレコードが他に存在する場合にのみ該当レコードを削除し、アンサブスクライブ要求受付け処理を終了する(ステップ98)。
図10で、トピック定義部の一致パターンに従いアンサブスクライブ要求を作成し直す処理(ステップ94)の流れを示す。代理pub/subサーバ130のトピック検出部133は、ステップ101で処理を開始した後、トピック定義部135の一致したレコードの一致パターン203が「前置」221であるかを判定する(ステップ102)。
ステップ102で判定した結果がYESの場合、アンサブスクライブ要求の該当トピック名の前方からトピック識別子201の文字列を削除し(ステップ103)、処理を終了する(ステップ106)。またステップ102で判定した結果がNOの場合、トピック定義部135の一致したレコードの一致パターン203が「後置」222であるかを判定する(ステップ104)。
ステップ104で判定した結果がYESの場合、サブスクライブ要求の該当トピック名の後方からトピック識別子201の文字列を削除し(ステップ105)、処理を終了する(ステップ106)。またステップ104で判定した結果がNOの場合は処理を終了する(ステップ106)。
前記の様に本実施形態の負荷分散処理システムでは、あるトピックについての最初のサブスクライブ要求のブローカへの送信や選択した一つのノードへのブローカからのメッセージの配信を代理サーバが行うことで、メッセージを用いた処理を複数のノードで分散して実行させるので、パブリッシュ/サブスクライブ通信において複数のサブスクライバを配置して負荷分散構成を実現することが可能である。
なお前記の負荷分散処理システムでは、代理pub/subサーバ130が送受信するメッセージを負荷分散対象とするかはトピック定義部135のトピック識別子201及び一致パターン203により決定するものとしたが、負荷分散対象とするトピックを示す情報をトピック定義部135以外の他のテーブルとして予め記憶装置へ格納しておき、サブスクライブ要求のトピックがその記憶装置に格納されたテーブル中のトピックに一致した場合に、サブスクライブ要求を発行した複数の通信ノードから一つを選択してパブリッシュメッセージを配信することにより負荷分散処理を行わせ、そうでない場合に、従来通りサブスクライブ要求を発行した全ての通信ノードにパブリッシュメッセージを配信する様にしても良い。
本実施形態のパブリッシュ/サブスクライブ通信のネットワークを示す図である。 本実施形態のトピック定義部を示す図である。 本実施形態のノードリスト管理部を示す図である。 本実施形態のサブスクライブ要求を受付けた時のフローを示す図である。 本実施形態のトピック定義部に一致するトピックがあるかを判定するフローを示す図である。 本実施形態のサブスクライブ要求を作成し直すフローを示す図である。 本実施形態のパブリッシュメッセージを受信するフローを示す図である。 本実施形態のパブリッシュメッセージを作成し直すフローを示す図である。 本実施形態のアンサブスクライブ要求を受付けた時のフローを示す図である。 本実施形態のアンサブスクライブ要求を作成し直すフローを示す図である。
符号の説明
101、140…通信ノード、102、131、142…CPU、103、132、141…メモリ、104、143…pub/subサーバ、105…アプリケーション、144、145…サービス、120…ブローカ、130…代理pub/subサーバ、133…トピック検出部、134…負荷分散部、135…トピック定義部、136…ノードリスト管理部、201…トピック識別子、202…トピック名、203…一致パターン、204…ノードリスト名、211、212、213、214…トピック定義部のレコード、221、222、223…一致パターンの種類、301…ノードリストポインタ、311、312、313、314…ポインタ領域、302…ノードリスト、321、322…ノード領域、40〜47…サブスクライブ要求を受付けた時のフローの各処理、50〜56…トピック定義部に一致するトピックがあるかを判定するフローの各処理、60〜67…サブスクライブ要求を作成し直すフローの各処理、70〜75…パブリッシュメッセージを受信するフローの各処理、80〜85…パブリッシュメッセージを作成し直すフローの各処理、90〜98…アンサブスクライブ要求を受付けた時のフローの各処理、101〜106…アンサブスクライブ要求を作成し直すフローの各処理

Claims (5)

  1. パブリッシュ/サブスクライブ通信でメッセージを配信して負荷分散処理を複数ノードに実行させる代理サーバにおける負荷分散処理方法であって、
    同一トピックのメッセージのサブスクライブを要求する複数ノードとそのメッセージを配信するブローカとの間に介在する代理サーバが、あるトピックの最初のサブスクライブ要求を通信装置によりブローカへ送信し、前記トピックのサブスクライブ要求を送信したノードを示す情報を記憶装置に格納するステップと、前記代理サーバが、前記ブローカから前記トピックのメッセージを受信した場合に、そのトピックのサブスクライブ要求を送信したノードを示す情報を前記記憶装置から読み出し、その読み出した情報から一つを選択して当該メッセージをその選択したノードへ通信装置により配信するステップを有することで、前記メッセージを用いた処理を前記複数のノードで分散して実行させることを特徴とする負荷分散処理方法。
  2. 各ノードがあるトピックのメッセージのサブスクライブを止めるアンサブスクライブ要求を発行し、前記代理サーバが、当該トピックのサブスクライブ要求を受付けた全てのノードから前記アンスクライブ要求を受信した場合に、そのトピックのメッセージのアンサブスクライブ要求を通信装置により前記ブローカへ送信し、当該トピックのサブスクライブ要求を送信したノードを示す情報を前記記憶装置から全て消去することを特徴とする請求項1に記載された負荷分散処理方法。
  3. 負荷分散対象とするトピックを示す情報を予め記憶装置へ格納しておき、前記サブスクライブ要求のトピックが前記記憶装置に格納されたトピックに一致した場合に、前記メッセージの配信による負荷分散処理を行わせることを特徴とする請求項1または請求項2のいずれか1項に記載された負荷分散処理方法。
  4. パブリッシュ/サブスクライブ通信でメッセージを配信して負荷分散処理を複数ノードに実行させる代理サーバであって、
    同一トピックのメッセージのサブスクライブを要求する複数ノードとそのメッセージを配信するブローカとの間に介在し、あるトピックの最初のサブスクライブ要求を通信装置によりブローカへ送信し、前記トピックのサブスクライブ要求を送信したノードを示す情報を記憶装置に格納するトピック検出部と、前記ブローカから前記トピックのメッセージを受信した場合に、そのトピックのサブスクライブ要求を送信したノードを示す情報を前記記憶装置から読み出し、その読み出した情報から一つを選択して当該メッセージをその選択したノードへ通信装置により配信する負荷分散部とを備えることで、前記メッセージを用いた処理を前記複数のノードで分散して実行させることを特徴とする代理サーバ。
  5. パブリッシュ/サブスクライブ通信でメッセージを配信して負荷分散処理を複数ノードに実行させる代理サーバにおける負荷分散処理方法をコンピュータに実行させる為のプログラムであって、
    同一トピックのメッセージのサブスクライブを要求する複数ノードとそのメッセージを配信するブローカとの間に介在する代理サーバが、あるトピックの最初のサブスクライブ要求を通信装置によりブローカへ送信し、前記トピックのサブスクライブ要求を送信したノードを示す情報を記憶装置に格納するステップと、前記代理サーバが、前記ブローカから前記トピックのメッセージを受信した場合に、そのトピックのサブスクライブ要求を送信したノードを示す情報を前記記憶装置から読み出し、その読み出した情報から一つを選択して当該メッセージをその選択したノードへ通信装置により配信するステップを有することで、前記メッセージを用いた処理を前記複数のノードで分散して実行させる負荷分散処理方法をコンピュータに実行させることを特徴とするプログラム。
JP2007280396A 2007-10-29 2007-10-29 パブリッシュ/サブスクライブ通信における負荷分散処理方法及びその実施装置と処理プログラム Pending JP2009110165A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007280396A JP2009110165A (ja) 2007-10-29 2007-10-29 パブリッシュ/サブスクライブ通信における負荷分散処理方法及びその実施装置と処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007280396A JP2009110165A (ja) 2007-10-29 2007-10-29 パブリッシュ/サブスクライブ通信における負荷分散処理方法及びその実施装置と処理プログラム

Publications (1)

Publication Number Publication Date
JP2009110165A true JP2009110165A (ja) 2009-05-21

Family

ID=40778616

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007280396A Pending JP2009110165A (ja) 2007-10-29 2007-10-29 パブリッシュ/サブスクライブ通信における負荷分散処理方法及びその実施装置と処理プログラム

Country Status (1)

Country Link
JP (1) JP2009110165A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011099649A1 (ja) * 2010-02-15 2011-08-18 日本電気株式会社 イベント配信装置、イベント配信システム、及び、イベント配信方法
JP2017224032A (ja) * 2016-06-13 2017-12-21 日本電信電話株式会社 分散連携プロキシおよびそれを用いた非同期メッセージングシステム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011099649A1 (ja) * 2010-02-15 2011-08-18 日本電気株式会社 イベント配信装置、イベント配信システム、及び、イベント配信方法
JP5810919B2 (ja) * 2010-02-15 2015-11-11 日本電気株式会社 イベント配信装置、イベント配信システム、及び、イベント配信方法
JP2017224032A (ja) * 2016-06-13 2017-12-21 日本電信電話株式会社 分散連携プロキシおよびそれを用いた非同期メッセージングシステム

Similar Documents

Publication Publication Date Title
US20090287761A1 (en) Cached message distribution via http redirects
US8606859B2 (en) Method and system to communicate messages in a computer network
US10454864B2 (en) Delivering messages from message sources to subscribing recipients
US8028085B2 (en) Optimizing message transmission and delivery in a publisher-subscriber model
US8544075B2 (en) Extending a customer relationship management eventing framework to a cloud computing environment in a secure manner
JP4920038B2 (ja) 複数のグループに属するロケーションサーバを用いたユーザのログ情報管理方法及びシステム
US20130067024A1 (en) Distributing multi-source push notifications to multiple targets
US9208476B2 (en) Counting and resetting broadcast system badge counters
US20050102365A1 (en) Method and system for multiple instant messaging login sessions
US20060136256A1 (en) Publish/subscribe messaging system
US7836123B2 (en) System and method for non-HTTP session based publish/subscribe support using pre-emptive subscriptions
CN107872473B (zh) 消息处理方法、装置以及***
CN103733568A (zh) 使用客户端-服务器架构的流处理
US8930469B2 (en) Functionality for sharing items using recipient-specific access codes
CN109194718A (zh) 一种区块链网络及其任务调度方法
US10791075B2 (en) System for delivering notification messages across different notification media
JP2004531839A (ja) 別個のメディアコンポーネント格納装置を用いた統一メッセージング
US20120290656A1 (en) Redirecting messages in a publish/subscribe messaging system
US20060069587A1 (en) Retained publish/subscribe system
WO2013145467A1 (ja) メッセージングシステム、トピック管理装置、メッセージング方法及びプログラム
CN111901230A (zh) 一种支持设备接入验证的物联网网关、***和设备接入验证的方法
US20050210109A1 (en) Load balancing mechanism for publish/subscribe broker messaging system
US8694462B2 (en) Scale-out system to acquire event data
EP2812879B1 (en) Efficiently receiving messages across a large number of messaging entities
CN106899621A (zh) 一种调度***及方法