IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アズビル株式会社の特許一覧

特許7643885ブローカ装置、冗長ブローカ調整装置、パブリッシュ・サブスクライブ・システムおよび通信方法
<>
  • 特許-ブローカ装置、冗長ブローカ調整装置、パブリッシュ・サブスクライブ・システムおよび通信方法 図1
  • 特許-ブローカ装置、冗長ブローカ調整装置、パブリッシュ・サブスクライブ・システムおよび通信方法 図2
  • 特許-ブローカ装置、冗長ブローカ調整装置、パブリッシュ・サブスクライブ・システムおよび通信方法 図3
  • 特許-ブローカ装置、冗長ブローカ調整装置、パブリッシュ・サブスクライブ・システムおよび通信方法 図4
  • 特許-ブローカ装置、冗長ブローカ調整装置、パブリッシュ・サブスクライブ・システムおよび通信方法 図5
  • 特許-ブローカ装置、冗長ブローカ調整装置、パブリッシュ・サブスクライブ・システムおよび通信方法 図6
  • 特許-ブローカ装置、冗長ブローカ調整装置、パブリッシュ・サブスクライブ・システムおよび通信方法 図7
  • 特許-ブローカ装置、冗長ブローカ調整装置、パブリッシュ・サブスクライブ・システムおよび通信方法 図8
  • 特許-ブローカ装置、冗長ブローカ調整装置、パブリッシュ・サブスクライブ・システムおよび通信方法 図9
  • 特許-ブローカ装置、冗長ブローカ調整装置、パブリッシュ・サブスクライブ・システムおよび通信方法 図10
  • 特許-ブローカ装置、冗長ブローカ調整装置、パブリッシュ・サブスクライブ・システムおよび通信方法 図11
  • 特許-ブローカ装置、冗長ブローカ調整装置、パブリッシュ・サブスクライブ・システムおよび通信方法 図12
  • 特許-ブローカ装置、冗長ブローカ調整装置、パブリッシュ・サブスクライブ・システムおよび通信方法 図13
  • 特許-ブローカ装置、冗長ブローカ調整装置、パブリッシュ・サブスクライブ・システムおよび通信方法 図14
  • 特許-ブローカ装置、冗長ブローカ調整装置、パブリッシュ・サブスクライブ・システムおよび通信方法 図15
  • 特許-ブローカ装置、冗長ブローカ調整装置、パブリッシュ・サブスクライブ・システムおよび通信方法 図16
  • 特許-ブローカ装置、冗長ブローカ調整装置、パブリッシュ・サブスクライブ・システムおよび通信方法 図17
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-03-03
(45)【発行日】2025-03-11
(54)【発明の名称】ブローカ装置、冗長ブローカ調整装置、パブリッシュ・サブスクライブ・システムおよび通信方法
(51)【国際特許分類】
   H04L 67/00 20220101AFI20250304BHJP
【FI】
H04L67/00
【請求項の数】 14
(21)【出願番号】P 2021025130
(22)【出願日】2021-02-19
(65)【公開番号】P2022127150
(43)【公開日】2022-08-31
【審査請求日】2023-12-26
(73)【特許権者】
【識別番号】000006666
【氏名又は名称】アズビル株式会社
(74)【代理人】
【識別番号】100098394
【弁理士】
【氏名又は名称】山川 茂樹
(74)【代理人】
【識別番号】100064621
【弁理士】
【氏名又は名称】山川 政樹
(72)【発明者】
【氏名】藤井 稔久
【審査官】岩田 玲彦
(56)【参考文献】
【文献】米国特許出願公開第2017/0163734(US,A1)
【文献】特開2007-257023(JP,A)
【文献】米国特許第08191078(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 67/00
(57)【特許請求の範囲】
【請求項1】
第1のクライアント装置からのメッセージを第2のクライアント装置に配信するブローカ装置において、
自装置がプライマリのブローカ装置かセカンダリのブローカ装置かを規定のルールにより判断するように構成されたプライマリ・セカンダリ設定部と、
前記第1のクライアント装置または前記第2のクライアント装置から受信したメッセージを処理し、前記プライマリ・セカンダリ設定部によって自装置がプライマリと判断された場合のみ、前記第2のクライアント装置宛のメッセージを送信するように構成されたメッセージ処理部と
前記第1のクライアント装置または前記第2のクライアント装置から受信したメッセージの処理履歴情報を外部のデータベースに記録するように構成された履歴情報管理部とを備えることを特徴とするブローカ装置。
【請求項2】
請求項1記載のブローカ装置において、
前記プライマリ・セカンダリ設定部は、ブローカ装置の起動時、および所定の通信タイミング時に、他のブローカ装置と通信を行い、他のブローカ装置との通信が不通の場合は自装置をプライマリのブローカ装置とし、他のブローカ装置と通信できた場合は規定のルールにより自装置をプライマリのブローカ装置またはセカンダリのブローカ装置とすることを特徴とするブローカ装置。
【請求項3】
請求項2記載のブローカ装置において、
前記所定の通信タイミングは、一定周期毎の通信タイミングのときと、前記第1のクライアント装置または前記第2のクライアント装置からメッセージを受信したときのいずれかであることを特徴とするブローカ装置。
【請求項4】
請求項記載のブローカ装置において、
前記メッセージ処理部は、自装置がセカンダリのブローカ装置の場合に、前記処理履歴情報を確認した結果として、プライマリのブローカ装置が処理済みで自装置が未処理のメッセージがある場合に、この未処理のメッセージを処理することを特徴とするブローカ装置。
【請求項5】
第1のクライアント装置からのメッセージを第2のクライアント装置に配信する冗長化構成の複数のブローカ装置と接続された冗長ブローカ調整装置において、
前記第1のクライアント装置または前記第2のクライアント装置からのメッセージを前記複数の全てのブローカ装置に送信するように構成された第1の中継制御部と、
前記複数のブローカ装置のうち少なくとも1つから受信したメッセージをこのメッセージの宛先の前記第1のクライアント装置または前記第2のクライアント装置に送信するように構成された第2の中継制御部とを備え、
前記第2の中継制御部は、前記複数のブローカ装置から受信した複数の同一のメッセージのうちの1つをこのメッセージの宛先の前記第1のクライアント装置または前記第2のクライアント装置に送信し、送信するメッセージと同じ残りのメッセージを廃棄することを特徴とする冗長ブローカ調整装置。
【請求項6】
パブリッシュ側の第1のクライアント装置と、
サブスクライブ側の第2のクライアント装置と、
前記第1のクライアント装置からのメッセージを前記第2のクライアント装置に配信する冗長化構成の複数のブローカ装置と、
前記第1のクライアント装置と前記複数のブローカ装置との間に設けられた第1の冗長ブローカ調整装置と、
前記第2のクライアント装置と前記複数のブローカ装置との間に設けられた第2の冗長ブローカ調整装置とを備え、
各ブローカ装置は、
自装置がプライマリのブローカ装置かセカンダリのブローカ装置かを規定のルールにより判断するように構成されたプライマリ・セカンダリ設定部と、
前記第1のクライアント装置または前記第2のクライアント装置から受信したメッセージを処理し、前記プライマリ・セカンダリ設定部によって自装置がプライマリと判断された場合のみ、前記第2のクライアント装置宛のメッセージを前記第2の冗長ブローカ調整装置に送信するように構成されたメッセージ処理部とを備え、
前記第1の冗長ブローカ調整装置は、
前記第1のクライアント装置からのメッセージを前記複数の全てのブローカ装置に送信するように構成された第1の中継制御部と、
前記複数のブローカ装置のうち少なくとも1つから受信したメッセージをこのメッセージの宛先の前記第1のクライアント装置に送信するように構成された第2の中継制御部とを備え、
前記第2の冗長ブローカ調整装置は、
前記第2のクライアント装置からのメッセージを前記複数の全てのブローカ装置に送信するように構成された第3の中継制御部と、
前記複数のブローカ装置のうち少なくとも1つから受信したメッセージをこのメッセージの宛先の前記第2のクライアント装置に送信するように構成された第4の中継制御部とを備え、
前記第2、第4の中継制御部は、前記複数のブローカ装置から受信した複数の同一のメッセージのうちの1つをこのメッセージの宛先の前記第1のクライアント装置または前記第2のクライアント装置に送信し、送信するメッセージと同じ残りのメッセージを廃棄することを特徴とするパブリッシュ・サブスクライブ・システム。
【請求項7】
請求項記載のパブリッシュ・サブスクライブ・システムにおいて、
各ブローカ装置の前記プライマリ・セカンダリ設定部は、自装置の起動時、および所定の通信タイミング時に、他のブローカ装置と通信を行い、他のブローカ装置との通信が不通の場合は自装置をプライマリのブローカ装置とし、他のブローカ装置と通信できた場合は規定のルールにより自装置をプライマリのブローカ装置またはセカンダリのブローカ装置とすることを特徴とするパブリッシュ・サブスクライブ・システム。
【請求項8】
請求項記載のパブリッシュ・サブスクライブ・システムにおいて、
前記所定の通信タイミングは、一定周期毎の通信タイミングのときと、前記第1のクライアント装置または前記第2のクライアント装置からメッセージを受信したときのいずれかであることを特徴とするパブリッシュ・サブスクライブ・システム。
【請求項9】
請求項乃至のいずれか1項に記載のパブリッシュ・サブスクライブ・システムにおいて、
各ブローカ装置は、前記第1のクライアント装置または前記第2のクライアント装置から受信したメッセージの処理履歴情報を記録するように構成された履歴情報管理部をさらに備えることを特徴とするパブリッシュ・サブスクライブ・システム。
【請求項10】
請求項記載のパブリッシュ・サブスクライブ・システムにおいて、
各ブローカ装置の前記履歴情報管理部は、自装置がプライマリのブローカ装置の場合に、自装置で管理している前記処理履歴情報をセカンダリのブローカ装置に送信することを特徴とするパブリッシュ・サブスクライブ・システム。
【請求項11】
請求項記載のパブリッシュ・サブスクライブ・システムにおいて、
各ブローカ装置の前記履歴情報管理部は、前記処理履歴情報を外部のデータベースに記録することを特徴とするパブリッシュ・サブスクライブ・システム。
【請求項12】
請求項10または11記載のパブリッシュ・サブスクライブ・システムにおいて、
各ブローカ装置の前記メッセージ処理部は、自装置がセカンダリのブローカ装置の場合に、前記処理履歴情報を確認した結果として、プライマリのブローカ装置が処理済みで自装置が未処理のメッセージがある場合に、この未処理のメッセージを処理することを特徴とするパブリッシュ・サブスクライブ・システム。
【請求項13】
第1のクライアント装置からのメッセージを第2のクライアント装置に配信するブローカ装置が、プライマリのブローカ装置かセカンダリのブローカ装置かを規定のルールにより判断する第1のステップと、
前記ブローカ装置が、前記第1のクライアント装置または前記第2のクライアント装置から受信したメッセージを処理する第2のステップと、
前記ブローカ装置が、前記第1のステップで自装置がプライマリと判断した場合のみ、前記第2のクライアント装置宛のメッセージを送信する第3のステップと
前記ブローカ装置が、前記第1のクライアント装置または前記第2のクライアント装置から受信したメッセージの処理履歴情報を外部のデータベースに記録する第4のステップとを含むことを特徴とする通信方法。
【請求項14】
第1のクライアント装置からのメッセージを第2のクライアント装置に配信する冗長化構成の複数のブローカ装置と接続された冗長ブローカ調整装置が、前記第1のクライアント装置または前記第2のクライアント装置からのメッセージを前記複数の全てのブローカ装置に送信する第1のステップと、
前記冗長ブローカ調整装置が、前記複数のブローカ装置のうち少なくとも1つから受信したメッセージをこのメッセージの宛先の前記第1のクライアント装置または前記第2のクライアント装置に送信する第2のステップとを含み、
前記第2のステップは、前記複数のブローカ装置から受信した複数の同一のメッセージのうちの1つをこのメッセージの宛先の前記第1のクライアント装置または前記第2のクライアント装置に送信し、送信するメッセージと同じ残りのメッセージを廃棄するステップを含むことを特徴とする通信方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、パブリッシュ・サブスクライブ・システムなどに適用されるブローカ装置、冗長ブローカ調整装置、パブリッシュ・サブスクライブ・システムおよび通信方法に関するものである。
【背景技術】
【0002】
パブリッシュ・サブスクライブ・モデルにおいては、パブリッシュ側およびサブスクライブ側のクライアント装置がそれぞれブローカ装置に接続し、パブリッシュ側がメッセージおよびそのメッセージに関連するトピック情報をブローカ装置に送信すると、事前にそのトピック情報に対するメッセージ受信をブローカ装置に要求しているクライアント装置に、メッセージを送信するという処理フローになっている。
【0003】
パブリッシュ・サブスクライブ・モデルによる通信手段に可用性を適用する手段として、特許文献1、特許文献2に開示された技術がある。
特許文献1には、パブリッシュ側のクライアント装置とサブスクライブ側のクライアント装置との間に、複数のブローカ装置を連結して、接続される経路を冗長構成にする構成が開示されている。
【0004】
特許文献2には、複数のブローカ装置を連結することで、パブリッシュおよびサブスクライブの対象となるメッセージに対して冗長化を行い、複数のブローカ装置で保持する構成が開示されている。
【0005】
しかしながら、特許文献1、特許文献2に開示された構成では、どちらもクライアント装置が接続するブローカ装置の機能そのものを冗長化して、ブローカ装置の処理の可用性を高めるという効果はない。つまり、特許文献1、特許文献2に開示された構成では、クライアント装置と接続されるブローカ装置が1つしかないため、ブローカ装置が停止すると、ブローカ装置と接続されているクライアント装置が処理を行えなくなるという課題があった。
【先行技術文献】
【特許文献】
【0006】
【文献】特開2007-287148号公報
【文献】特開2020-017118号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明は、上記課題を解決するためになされたもので、ブローカ装置の処理の可用性を高めることができるブローカ装置、冗長ブローカ調整装置、パブリッシュ・サブスクライブ・システムおよび通信方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明は、第1のクライアント装置からのメッセージを第2のクライアント装置に配信するブローカ装置において、自装置がプライマリのブローカ装置かセカンダリのブローカ装置かを規定のルールにより判断するように構成されたプライマリ・セカンダリ設定部と、前記第1のクライアント装置または前記第2のクライアント装置から受信したメッセージを処理し、前記プライマリ・セカンダリ設定部によって自装置がプライマリと判断された場合のみ、前記第2のクライアント装置宛のメッセージを送信するように構成されたメッセージ処理部と、前記第1のクライアント装置または前記第2のクライアント装置から受信したメッセージの処理履歴情報を外部のデータベースに記録するように構成された履歴情報管理部とを備えることを特徴とするものである。
また、本発明のブローカ装置の1構成例において、前記プライマリ・セカンダリ設定部は、ブローカ装置の起動時、および所定の通信タイミング時に、他のブローカ装置と通信を行い、他のブローカ装置との通信が不通の場合は自装置をプライマリのブローカ装置とし、他のブローカ装置と通信できた場合は規定のルールにより自装置をプライマリのブローカ装置またはセカンダリのブローカ装置とすることを特徴とするものである。
また、本発明のブローカ装置の1構成例において、前記所定の通信タイミングは、一定周期毎の通信タイミングのときと、前記第1のクライアント装置または前記第2のクライアント装置からメッセージを受信したときのいずれかである。
【0009】
また、本発明のブローカ装置の1構成例は、前記第1のクライアント装置または前記第2のクライアント装置から受信したメッセージの処理履歴情報を記録するように構成された履歴情報管理部をさらに備えることを特徴とするものである。
また、本発明のブローカ装置の1構成例において、前記メッセージ処理部は、自装置がセカンダリのブローカ装置の場合に、前記処理履歴情報を確認した結果として、プライマリのブローカ装置が処理済みで自装置が未処理のメッセージがある場合に、この未処理のメッセージを処理することを特徴とするものである。
【0010】
また、本発明は、第1のクライアント装置からのメッセージを第2のクライアント装置に配信する冗長化構成の複数のブローカ装置と接続された冗長ブローカ調整装置において、前記第1のクライアント装置または前記第2のクライアント装置からのメッセージを前記複数の全てのブローカ装置に送信するように構成された第1の中継制御部と、前記複数のブローカ装置のうち少なくとも1つから受信したメッセージをこのメッセージの宛先の前記第1のクライアント装置または前記第2のクライアント装置に送信するように構成された第2の中継制御部とを備え、前記第2の中継制御部は、前記複数のブローカ装置から受信した複数の同一のメッセージのうちの1つをこのメッセージの宛先の前記第1のクライアント装置または前記第2のクライアント装置に送信し、送信するメッセージと同じ残りのメッセージを廃棄することを特徴とするものである。
【0011】
また、本発明のパブリッシュ・サブスクライブ・システムは、パブリッシュ側の第1のクライアント装置と、サブスクライブ側の第2のクライアント装置と、前記第1のクライアント装置からのメッセージを前記第2のクライアント装置に配信する冗長化構成の複数のブローカ装置と、前記第1のクライアント装置と前記複数のブローカ装置との間に設けられた第1の冗長ブローカ調整装置と、前記第2のクライアント装置と前記複数のブローカ装置との間に設けられた第2の冗長ブローカ調整装置とを備え、各ブローカ装置は、自装置がプライマリのブローカ装置かセカンダリのブローカ装置かを規定のルールにより判断するように構成されたプライマリ・セカンダリ設定部と、前記第1のクライアント装置または前記第2のクライアント装置から受信したメッセージを処理し、前記プライマリ・セカンダリ設定部によって自装置がプライマリと判断された場合のみ、前記第2のクライアント装置宛のメッセージを前記第2の冗長ブローカ調整装置に送信するように構成されたメッセージ処理部とを備え、前記第1の冗長ブローカ調整装置は、前記第1のクライアント装置からのメッセージを前記複数の全てのブローカ装置に送信するように構成された第1の中継制御部と、前記複数のブローカ装置のうち少なくとも1つから受信したメッセージをこのメッセージの宛先の前記第1のクライアント装置に送信するように構成された第2の中継制御部とを備え、前記第2の冗長ブローカ調整装置は、前記第2のクライアント装置からのメッセージを前記複数の全てのブローカ装置に送信するように構成された第3の中継制御部と、前記複数のブローカ装置のうち少なくとも1つから受信したメッセージをこのメッセージの宛先の前記第2のクライアント装置に送信するように構成された第4の中継制御部とを備え、前記第2、第4の中継制御部は、前記複数のブローカ装置から受信した複数の同一のメッセージのうちの1つをこのメッセージの宛先の前記第1のクライアント装置または前記第2のクライアント装置に送信し、送信するメッセージと同じ残りのメッセージを廃棄することを特徴とするものである。
【0012】
また、本発明のパブリッシュ・サブスクライブ・システムの1構成例において、各ブローカ装置の前記プライマリ・セカンダリ設定部は、自装置の起動時、および所定の通信タイミング時に、他のブローカ装置と通信を行い、他のブローカ装置との通信が不通の場合は自装置をプライマリのブローカ装置とし、他のブローカ装置と通信できた場合は規定のルールにより自装置をプライマリのブローカ装置またはセカンダリのブローカ装置とすることを特徴とするものである。
また、本発明のパブリッシュ・サブスクライブ・システムの1構成例において、前記所定の通信タイミングは、一定周期毎の通信タイミングのときと、前記第1のクライアント装置または前記第2のクライアント装置からメッセージを受信したときのいずれかである。
【0013】
また、本発明のパブリッシュ・サブスクライブ・システムの1構成例において、各ブローカ装置は、前記第1のクライアント装置または前記第2のクライアント装置から受信したメッセージの処理履歴情報を記録するように構成された履歴情報管理部をさらに備えることを特徴とするものである。
また、本発明のパブリッシュ・サブスクライブ・システムの1構成例において、各ブローカ装置の前記履歴情報管理部は、自装置がプライマリのブローカ装置の場合に、自装置で管理している前記処理履歴情報をセカンダリのブローカ装置に送信することを特徴とするものである。
また、本発明のパブリッシュ・サブスクライブ・システムの1構成例において、各ブローカ装置の前記履歴情報管理部は、前記処理履歴情報を外部のデータベースに記録することを特徴とするものである。
また、本発明のパブリッシュ・サブスクライブ・システムの1構成例において、各ブローカ装置の前記メッセージ処理部は、自装置がセカンダリのブローカ装置の場合に、前記処理履歴情報を確認した結果として、プライマリのブローカ装置が処理済みで自装置が未処理のメッセージがある場合に、この未処理のメッセージを処理することを特徴とするものである。
【0014】
また、本発明の通信方法は、第1のクライアント装置からのメッセージを第2のクライアント装置に配信するブローカ装置が、プライマリのブローカ装置かセカンダリのブローカ装置かを規定のルールにより判断する第1のステップと、前記ブローカ装置が、前記第1のクライアント装置または前記第2のクライアント装置から受信したメッセージを処理する第2のステップと、前記ブローカ装置が、前記第1のステップで自装置がプライマリと判断した場合のみ、前記第2のクライアント装置宛のメッセージを送信する第3のステップと、前記ブローカ装置が、前記第1のクライアント装置または前記第2のクライアント装置から受信したメッセージの処理履歴情報を外部のデータベースに記録する第4のステップとを含むことを特徴とするものである。
【0015】
また、本発明の通信方法は、第1のクライアント装置からのメッセージを第2のクライアント装置に配信する冗長化構成の複数のブローカ装置と接続された冗長ブローカ調整装置が、前記第1のクライアント装置または前記第2のクライアント装置からのメッセージを前記複数の全てのブローカ装置に送信する第1のステップと、前記冗長ブローカ調整装置が、前記複数のブローカ装置のうち少なくとも1つから受信したメッセージをこのメッセージの宛先の前記第1のクライアント装置または前記第2のクライアント装置に送信する第2のステップとを含み、前記第2のステップは、前記複数のブローカ装置から受信した複数の同一のメッセージのうちの1つをこのメッセージの宛先の前記第1のクライアント装置または前記第2のクライアント装置に送信し、送信するメッセージと同じ残りのメッセージを廃棄するステップを含むことを特徴とするものである。
【発明の効果】
【0016】
本発明によれば、ブローカ装置の各々にプライマリ・セカンダリ設定部とメッセージ処理部とを設けることにより、ブローカ装置の機能を冗長化して、ブローカ装置の処理の可用性を高めることができる。本発明では、複数のブローカ装置のうちの1つが停止したとしても、残りのブローカ装置で処理を継続することができる。
【0017】
また、本発明では、第1、第2のクライアント装置と冗長化構成の複数のブローカ装置との間に冗長ブローカ調整装置を設け、冗長ブローカ調整装置に第1、第2の中継制御部を設けることにより、第1、第2のクライアント装置に対してブローカ装置の冗長化構成を隠蔽することができ、第1、第2のクライアント装置の構成を変えることなく、ブローカ装置を冗長化することができる。
【図面の簡単な説明】
【0018】
図1図1は、本発明の第1の実施例に係るパブリッシュ・サブスクライブ・システムの構成を示すブロック図である。
図2図2は、本発明の第1の実施例に係るパブリッシュ側のクライアント装置の構成を示すブロック図である。
図3図3は、本発明の第1の実施例に係るサブスクライブ側のクライアント装置の構成を示すブロック図である。
図4図4は、本発明の第1の実施例に係るブローカ装置の構成を示すブロック図である。
図5図5は、本発明の第1の実施例に係るパブリッシュ側の冗長ブローカ調整装置の構成を示すブロック図である。
図6図6は、本発明の第1の実施例に係るサブスクライブ側の冗長ブローカ調整装置の構成を示すブロック図である。
図7図7は、本発明の第1の実施例に係るブローカ装置の起動時の動作を説明するフローチャートである。
図8図8は、本発明の第1の実施例に係るパブリッシュ側の冗長ブローカ調整装置の動作を説明するフローチャートである。
図9図9は、本発明の第1の実施例に係るブローカ装置の動作を説明するフローチャートである。
図10図10は、本発明の第1の実施例に係るブローカ装置の動作を説明するフローチャートである。
図11図11は、本発明の第1の実施例に係るブローカ装置の履歴情報管理部に記憶される処理履歴情報の1例を示す図である。
図12図12は、本発明の第1の実施例に係るサブスクライブ側の冗長ブローカ調整装置の動作を説明するフローチャートである。
図13図13は、本発明の第2の実施例に係るパブリッシュ・サブスクライブ・システムの構成を示すブロック図である。
図14図14は、本発明の第2の実施例に係るブローカ装置の構成を示すブロック図である。
図15図15は、本発明の第2の実施例に係るブローカ装置の動作を説明するフローチャートである。
図16図16は、本発明の第2の実施例に係るブローカ装置の動作を説明するフローチャートである。
図17図17は、本発明の第1~第3の実施例に係るパブリッシュ・サブスクライブ・システムを実現するコンピュータの構成例を示すブロック図である。
【発明を実施するための形態】
【0019】
[発明の原理]
本発明では、冗長ペアまたはクラスタ構成を成す複数のブローカ装置のグループを用意し、クライアント装置とブローカ装置のグループとの間に、クライアント装置に対してブローカ装置の冗長化構成を隠蔽するための冗長ブローカ調整装置を設け、実際にクライアント装置が送受信する相手先のブローカ装置を冗長化構成にする。
【0020】
[第1の実施例]
以下、本発明の実施例について図面を参照して説明する。図1は本発明の第1の実施例に係るパブリッシュ・サブスクライブ・システムの構成を示すブロック図である。パブリッシュ・サブスクライブ・システムは、パブリッシュ側のクライアント装置1-1~1-3と、サブスクライブ側のクライアント装置2-1~2-3と、クライアント装置1-1~1-3からのメッセージをクライアント装置2-1~2-3に配信する中継装置であるブローカ装置3-1,3-2と、クライアント装置1-1~1-3とブローカ装置3-1,3-2との間に設けられた冗長ブローカ調整装置4と、クライアント装置2-1~2-3とブローカ装置3-1,3-2との間に設けられた冗長ブローカ調整装置5とから構成される。
【0021】
なお、本実施例では、複数台(本実施例では3台)のクライアント装置1-1~1-3を冗長ブローカ調整装置4に接続しているが、パブリッシュ側のクライアント装置は1台でもよい。同様に、本実施例では、複数台(本実施例では3台)のクライアント装置2-1~2-3を冗長ブローカ調整装置5に接続しているが、サブスクライブ側のクライアント装置は1台でもよい。
【0022】
図2はパブリッシュ側のクライアント装置1-1の構成を示すブロック図である。クライアント装置1-1は、冗長ブローカ調整装置4との通信を行う通信部10と、登録先のトピックを指定するトピック情報を付加したメッセージをブローカ装置3-1,3-2に送信するよう通信部10に指示するメッセージ提供部11とを備えている。クライアント装置1-2,1-3の構成はクライアント装置1-1と同様である。
【0023】
図3はサブスクライブ側のクライアント装置2-1の構成を示すブロック図である。クライアント装置2-1は、冗長ブローカ調整装置5との通信を行う通信部20と、配信を希望するトピックの登録要求をブローカ装置3-1,3-2に対して行うよう通信部20に指示する登録要求部21と、配信されたメッセージを通信部20を介して受信するメッセージ受信部22とを備えている。クライアント装置2-2,2-3の構成はクライアント装置1-1と同様である。
【0024】
図4はブローカ装置3-1の構成を示すブロック図である。ブローカ装置3-1は、パブリッシュ側の冗長ブローカ調整装置4との通信を行う通信部30と、サブスクライブ側の冗長ブローカ調整装置5との通信を行う通信部31と、パブリッシュ側のクライアント装置1-1~1-3から受信したトピック情報が付加されたメッセージをトピック毎に蓄積するメッセージ蓄積部32と、サブスクライブ側のクライアント装置2-1~2-3が配信を希望するトピックを指定する登録情報をクライアント装置毎に記憶する登録情報記憶部33と、登録情報に基づいてトピックに関するメッセージをクライアント装置に送信するよう通信部31に指示するメッセージ中継部34とを備えている。
【0025】
また、ブローカ装置3-1は、他のブローカ装置3-2との通信を行う通信部35と、自装置がプライマリのブローカ装置かセカンダリのブローカ装置かを規定のルールにより判断するプライマリ・セカンダリ設定部36と、クライアント装置1-1~1-3またはクライアント装置2-1~2-3から受信したメッセージの処理履歴情報を記録する履歴情報管理部37とを備えている。メッセージ蓄積部32と登録情報記憶部33とメッセージ中継部34とは、メッセージ処理部39を構成している。ブローカ装置3-2の構成はブローカ装置3-1と同様である。
【0026】
図5は冗長ブローカ調整装置4の構成を示すブロック図である。冗長ブローカ調整装置4は、クライアント装置1-1~1-3と通信を行う通信部40と、ブローカ装置3-1,3-2と通信を行う通信部41と、クライアント装置1-1~1-3からブローカ装置3-1,3-2に向かう通信を中継する中継制御部42と、ブローカ装置3-1,3-2からクライアント装置1-1~1-3に向かう通信を中継する中継制御部43とを備えている。
【0027】
図6は冗長ブローカ調整装置5の構成を示すブロック図である。冗長ブローカ調整装置5は、クライアント装置2-1~2-3と通信を行う通信部50と、ブローカ装置3-1,3-2と通信を行う通信部51と、ブローカ装置3-1,3-2からクライアント装置2-1~2-3に向かう通信を中継する中継制御部52と、クライアント装置2-1~2-3からブローカ装置3-1,3-2に向かう通信を中継する中継制御部53とを備えている。
【0028】
次に、本実施例のパブリッシュ・サブスクライブ・システムの動作について説明する。図7はブローカ装置3-1,3-2の起動時の動作を説明するフローチャートである。
ブローカ装置3-1のプライマリ・セカンダリ設定部36は、ブローカ装置3-1の起動時に、冗長化構成のために配置された他のブローカ装置3-2との通信を通信部35を介して試みる(図7ステップS100)。
【0029】
ブローカ装置3-1のプライマリ・セカンダリ設定部36は、他のブローカ装置3-2との通信が不通の場合(図7ステップS101においてYES)、自装置をプライマリのブローカ装置とする(図7ステップS102)。
【0030】
また、ブローカ装置3-1のプライマリ・セカンダリ設定部36は、他のブローカ装置3-2と通信できた場合(ステップS101においてNO)、自装置をプライマリのブローカ装置またはセカンダリのブローカ装置のいずれかとする(図7ステップS103)。
【0031】
同様に、ブローカ装置3-2のプライマリ・セカンダリ設定部36は、ブローカ装置3-2の起動時に、他のブローカ装置3-1との通信を通信部35を介して試みる(ステップS100)。ブローカ装置3-2のプライマリ・セカンダリ設定部36は、他のブローカ装置3-1との通信が不通の場合(ステップS101においてYES)、自装置をプライマリのブローカ装置とする(ステップS102)。
【0032】
また、ブローカ装置3-2のプライマリ・セカンダリ設定部36は、他のブローカ装置3-1と通信できた場合(ステップS101においてNO)、自装置をプライマリのブローカ装置またはセカンダリのブローカ装置のいずれかとする(ステップS103)。
【0033】
各ブローカ装置3-1,3-2のプライマリ・セカンダリ設定部36は、他のブローカ装置と通信できた場合、予め規定された何等かのルールにより、自装置をプライマリのブローカ装置またはセカンダリのブローカ装置のいずれかとする。例えばブローカ装置3-1,3-2間で通信ができた場合には、ブローカ装置3-1をプライマリとし、ブローカ装置3-2をセカンダリとするといったルールを予め規定しておけばよい。
【0034】
以上の説明から明らかなように、本実施例では、起動時にブローカ装置3-1,3-2間の通信が不通の場合、ブローカ装置3-1,3-2が共にプライマリになることが有り得る。
【0035】
次に、ブローカ装置3-1,3-2が起動した後の通常時の動作について説明する。パブリッシュ側のクライアント装置1-1~1-3から送信されるメッセージとしては、ブローカ装置3-1,3-2への接続要求メッセージ、ブローカ装置3-1,3-2への接続解除要求メッセージ、登録先のトピックを指定するトピック情報が付加された発行メッセージなどがある。
【0036】
サブスクライブ側のクライアント装置2-1~2-3から送信されるメッセージとしては、ブローカ装置3-1,3-2への接続要求メッセージ、ブローカ装置3-1,3-2への接続解除要求メッセージ、配信を希望するトピックの登録要求メッセージ、配信を停止するトピックの登録解除要求メッセージなどがある。
【0037】
本実施例では、代表的なメッセージの送受信例として、パブリッシュ側のクライアント装置1-1~1-3から発行メッセージが送信され、サブスクライブ側のクライアント装置2-1~2-3から登録要求メッセージが送信された場合について説明する。
【0038】
パブリッシュ側のクライアント装置1-1~1-3のメッセージ提供部11は、登録先のトピックを指定するトピック情報を付加した発行メッセージをブローカ装置宛に送信するよう通信部10に指示する。メッセージ提供部11の指示に応じて、クライアント装置1-1~1-3の通信部10は、トピック情報が付加された発行メッセージを冗長ブローカ調整装置4に送信する。
【0039】
図8はパブリッシュ側の冗長ブローカ調整装置4の動作を説明するフローチャートである。冗長ブローカ調整装置4の通信部41は、冗長化構成のブローカ装置3-1,3-2の両方と予め接続を確立する。通信部41は、ブローカ装置3-1,3-2のどちらか一方としか接続できない場合、接続できない方のブローカ装置との接続を定期的に試行する。
【0040】
冗長ブローカ調整装置4の通信部40は、クライアント装置1-1~1-3からの発行メッセージを受信する(図8ステップS200)。
【0041】
冗長ブローカ調整装置4の中継制御部42は、クライアント装置1-1~1-3からの発行メッセージを受信すると、受信した発行メッセージを冗長化構成の全てのブローカ装置3-1,3-2に送信するよう通信部41に指示する。このとき、中継制御部42は、送信すべきメッセージにメッセージ識別子を付加しておく。通信部41は、中継制御部42からの指示に応じて、ブローカ装置3-1,3-2に発行メッセージを送信する(図8ステップS201)。
【0042】
図9図10はブローカ装置3-1,3-2の動作を説明するフローチャートである。ブローカ装置3-1,3-2の通信部30は、冗長ブローカ調整装置4から送信されたメッセージを受信する(図9ステップS300)。
【0043】
ブローカ装置3-1,3-2のメッセージ蓄積部32は、冗長ブローカ調整装置4から受信した発行メッセージを、この発行メッセージに付加されたトピック情報で指定されたトピック毎に蓄積する(図9ステップS301)。
【0044】
ブローカ装置3-1,3-2の履歴情報管理部37は、パブリッシュ側またはサブスクライブ側のクライアント装置から受信したメッセージの処理履歴情報を記憶する(図9ステップS302)。ステップS301のように発行メッセージを受信したときには、発行メッセージの処理履歴情報を記憶することになる。
【0045】
図11は履歴情報管理部37に記憶される処理履歴情報の1例を示す図である。処理履歴情報は、例えばメッセージの種類の情報と、メッセージの内容やメッセージを送信したクライアント装置の識別子、メッセージを処理したブローカ装置の識別子などのパラメータとからなる。なお、図11の「概要」は、メッセージの種類を説明するためのものであって、処理履歴情報として必須のものではない。
【0046】
ブローカ装置3-1,3-2の履歴情報管理部37は、自装置がプライマリのブローカ装置の場合(図9ステップS303においてYES)、記憶している処理履歴情報をセカンダリのブローカ装置に送信するよう通信部35に指示する。プライマリのブローカ装置の通信部35は、履歴情報管理部37からの指示に応じて、セカンダリのブローカ装置に処理履歴情報を送信する(図9ステップS304)。
【0047】
一方、サブスクライブ側のクライアント装置2-1~2-3の登録要求部21は、例えばクライアント装置2-1~2-3のユーザの要求に応じて配信を希望するトピックの登録要求メッセージをブローカ装置宛に送信するよう通信部20に指示する。登録要求部21の指示に応じて、クライアント装置2-1~2-3の通信部20は、登録要求メッセージを冗長ブローカ調整装置5に送信する。
【0048】
図12はサブスクライブ側の冗長ブローカ調整装置5の動作を説明するフローチャートである。冗長ブローカ調整装置5の通信部51は、ブローカ装置3-1,3-2の両方と予め接続を確立する。通信部51は、ブローカ装置3-1,3-2のどちらか一方としか接続できない場合、接続できない方のブローカ装置との接続を定期的に試行する。
【0049】
冗長ブローカ調整装置5の通信部50は、クライアント装置2-1~2-3からの登録要求メッセージを受信する(図12ステップS400)。
【0050】
冗長ブローカ調整装置5の中継制御部53は、クライアント装置2-1~2-3からの登録要求メッセージを受信すると、受信した登録要求メッセージを冗長化構成の全てのブローカ装置3-1,3-2に送信するよう通信部51に指示する。このとき、中継制御部53は、送信すべきメッセージにメッセージ識別子を付加しておく。通信部51は、中継制御部53からの指示に応じて、ブローカ装置3-1,3-2に登録要求メッセージを送信する(図12ステップS401)。
【0051】
ブローカ装置3-1,3-2の通信部31は、冗長ブローカ調整装置5から送信されたメッセージを受信する(図9ステップS305)。
【0052】
ブローカ装置3-1,3-2の登録情報記憶部33は、冗長ブローカ調整装置5から受信したメッセージが登録要求メッセージの場合に、登録要求メッセージで指定されたトピックを示す登録情報を登録要求メッセージの送信元のクライアント識別子と共に記憶する(図9ステップS306)。
【0053】
図9のステップS307~S309の処理は、ステップS302~S304の処理と同じである。ここでは、登録要求メッセージの処理履歴情報を記憶することになる。
【0054】
ブローカ装置3-1,3-2のメッセージ中継部34は、トピックを指定する登録情報が登録情報記憶部33に記憶されていて(図9ステップS310においてYES)、かつ自装置がプライマリのブローカ装置の場合(図9ステップS311においてYES)、登録情報で指定されたトピックに関するメッセージをメッセージ蓄積部32から取り出し、この登録情報に含まれるクライアント識別子のクライアント装置宛に送信するよう通信部31に指示する。通信部31は、メッセージ中継部34から受け取ったメッセージを冗長ブローカ調整装置5に送信する(図9ステップS312)。
【0055】
冗長ブローカ調整装置5の通信部51は、ブローカ装置3-1,3-2のうち少なくとも1つから送信されたメッセージを受信する(図12ステップS402)。
【0056】
冗長ブローカ調整装置5の中継制御部52は、ブローカ装置3-1,3-2のうち少なくとも1つから受信したメッセージをこのメッセージの宛先のクライアント装置2-1~2-3に送信するよう通信部50に指示する。通信部50は、クライアント装置2-1~2-3のうち中継制御部52から指示されたクライアント装置にメッセージを送信する(図12ステップS403)。
【0057】
ブローカ装置3-1,3-2の両方のプライマリ・セカンダリ設定部36が自装置をプライマリと判断している場合、複数のブローカ装置3-1,3-2からサブスクライバ向けのメッセージを受信することが有り得る。
【0058】
冗長ブローカ調整装置5の中継制御部52は、複数のブローカ装置3-1,3-2から同一のメッセージを受信した場合、同一のメッセージのうちの1つ(例えば最初に受信したメッセージ)をこのメッセージの宛先のクライアント装置2-1~2-3に送信するよう通信部50に指示し、送信するメッセージと同じ残りのメッセージを廃棄すればよい。メッセージの同一性の判断は、メッセージに付加されたメッセージ識別子に基づいて行われる。
【0059】
クライアント装置2-1~2-3の通信部20は、冗長ブローカ調整装置5から送信されたメッセージを受信したときに、受信したメッセージをメッセージ受信部22に渡す。
【0060】
次に、セカンダリのブローカ装置の通信部35は、プライマリのブローカ装置から送信された処理履歴情報を受信する(図10ステップS313,S314)。
【0061】
セカンダリのブローカ装置の履歴情報管理部37は、自身が記憶している処理履歴情報とプライマリのブローカ装置から受信した処理履歴情報とを統合して、処理履歴情報を同期させる(図10ステップS315)。具体的には、セカンダリのブローカ装置の履歴情報管理部37は、自身が記憶している処理履歴情報と受信した処理履歴情報とに同一の処理履歴情報が存在する場合、自装置とプライマリのブローカ装置が共に処理済みと判断して、処理済みと判断した処理履歴情報を自身が記憶している処理履歴情報の中から削除する。ここで、同一の処理履歴情報とは、ブローカ識別子のみが異なり、その他の内容が同一の処理履歴情報である。
【0062】
セカンダリのブローカ装置のメッセージ蓄積部32は、自装置の履歴情報管理部37が管理している処理履歴情報の中に、プライマリのブローカ装置が処理済みで自装置が未処理の発行メッセージで、かつ現時点で自装置が処理可能な発行メッセージがある場合(図10ステップS316においてYES)、ステップS301と同様に、未処理の発行メッセージをトピック情報で指定されたトピック毎に蓄積する(図10ステップS317)。
【0063】
同様に、セカンダリのブローカ装置の登録情報記憶部33は、自装置の履歴情報管理部37が管理している処理履歴情報の中に、プライマリのブローカ装置が処理済みで自装置が未処理の登録要求メッセージで、かつ現時点で自装置が処理可能な登録要求メッセージがある場合(図10ステップS316においてYES)、ステップS306と同様に、未処理の登録要求メッセージで指定されたトピックを示す登録情報を登録要求メッセージの送信元のクライアント識別子と共に記憶する(図10ステップS317)。
【0064】
セカンダリのブローカ装置の履歴情報管理部37は、メッセージ蓄積部32または登録情報記憶部33によって処理されたメッセージの処理履歴情報を記憶する(図10ステップS318)。そして、セカンダリのブローカ装置の履歴情報管理部37は、ステップS315の処理を再び行う。
【0065】
さらに、セカンダリのブローカ装置の履歴情報管理部37は、処理済みと判断して削除した処理履歴情報があった場合、削除した処理履歴情報を含むACKメッセージをプライマリのブローカ装置に送信するよう通信部35に指示する。セカンダリのブローカ装置の通信部35は、履歴情報管理部37からの指示に応じて、プライマリのブローカ装置にACKメッセージを送信する(図10ステップS319)。
【0066】
プライマリのブローカ装置の通信部35は、セカンダリのブローカ装置から送信されたACKメッセージを受信する(図10ステップS320)。
【0067】
プライマリのブローカ装置の履歴情報管理部37は、自身が記憶している処理履歴情報とセカンダリのブローカ装置から受信したACKメッセージとを比較して、処理履歴情報を同期させる(図10ステップS321)。具体的には、プライマリのブローカ装置の履歴情報管理部37は、自身が記憶している処理履歴情報とACKメッセージに含まれる処理履歴情報とに同一の処理履歴情報が存在する場合、自装置とセカンダリのブローカ装置が共に処理済みと判断して、処理済みと判断した処理履歴情報を自身が記憶している処理履歴情報の中から削除する。
【0068】
以上のようにして、プライマリとセカンダリのブローカ装置で処理履歴情報を同期させることができる。
【0069】
上記のとおり、ブローカ装置3-1,3-2のプライマリ/セカンダリの判断は起動時に行われるが、起動後の通常時にも適宜行われる。
具体的には、ブローカ装置3-1,3-2のプライマリ・セカンダリ設定部36は、所定の通信タイミングになったときに(図10ステップS322)、他のブローカ装置との通信を通信部35を介して試みる(図10ステップS323)。図10のステップS324~S326の処理は、ステップS101~S103の処理と同じである。
【0070】
ステップS322の通信タイミングとしては、一定周期毎の通信タイミングのときと、上記のステップS300,S305のように冗長ブローカ調整装置4,5からパブリッシュまたはサブスクライブのメッセージを受信したとき、などがある。ブローカ装置3-1,3-2間の通信メッセージには、自装置がプライマリかセカンダリかの情報が含まれる。
【0071】
上記の起動時と同様に、ブローカ装置3-1,3-2間の通信が不通の場合、ブローカ装置3-1,3-2の両方がプライマリになり得る。通信が復旧したときは、予め規定された何等かのルールにより、ブローカ装置3-1,3-2のうちどちらかがセカンダリになる。
【0072】
こうして、本実施例では、ブローカ装置の機能を冗長化して、ブローカ装置の処理の可用性を高めることができる。本実施例では、複数のブローカ装置のうちの1つが停止したとしても、残りのブローカ装置で処理を継続することができる。
【0073】
なお、本実施例では、ブローカ側からクライアント側へメッセージを送信する処理の例として、トピックに関するメッセージをブローカ装置3-1,3-2からクライアント装置2-1~2-3に送信する処理を例に挙げて説明しているが、クライアント装置2-1~2-3からのメッセージに対する処理結果であるレスポンスメッセージをブローカ装置3-1,3-2からクライアント装置2-1~2-3に送信する処理も、トピックに関するメッセージの送信処理と同様に実現できることは言うまでもない。
【0074】
例えばブローカ装置3-1,3-2の登録情報記憶部33は、登録要求メッセージを処理したときに、自装置がプライマリのブローカ装置の場合には、登録要求メッセージの送信元のクライアント装置2-1~2-3にレスポンスメッセージを送信するよう通信部31に指示する。
【0075】
また、ブローカ装置3-1,3-2の登録情報記憶部33は、クライアント装置2-1~2-3からの登録解除要求メッセージを受信した場合、ステップS306と同様に、登録解除要求メッセージで指定されたトピックを示す登録情報を削除する。ブローカ装置3-1,3-2の履歴情報管理部37は、ステップS307と同様に、登録情報記憶部33によって処理されたメッセージの処理履歴情報を記憶する。そして、登録情報記憶部33は、登録解除要求メッセージの送信元のクライアント装置2-1~2-3にレスポンスメッセージを送信するよう通信部31に指示する。
【0076】
また、ブローカ装置3-1,3-2のメッセージ蓄積部32は、発行メッセージを処理したときに、自装置がプライマリのブローカ装置の場合には、発行メッセージの送信元のクライアント装置1-1~1-3にレスポンスメッセージを送信するよう通信部30に指示する。
【0077】
冗長ブローカ調整装置4の通信部41は、ブローカ装置3-1,3-2のうち少なくとも1つから送信されたレスポンスメッセージを受信する(図8ステップS202)。
【0078】
冗長ブローカ調整装置4の中継制御部43は、ブローカ装置3-1,3-2のうち少なくとも1つから受信したレスポンスメッセージをこのメッセージの宛先のクライアント装置1-1~1-3に送信するよう通信部40に指示する。通信部40は、クライアント装置1-1~1-3のうち中継制御部43から指示されたクライアント装置にメッセージを送信する(図8ステップS203)。
【0079】
ブローカ装置3-1,3-2の両方が自装置をプライマリと判断している場合、複数のブローカ装置3-1,3-2からパブリッシュ向けのメッセージを受信することが有り得る。
【0080】
冗長ブローカ調整装置4の中継制御部43は、複数のブローカ装置3-1,3-2から同一のメッセージを受信した場合、同一のメッセージのうちの1つ(例えば最初に受信したメッセージ)をこのメッセージの宛先のクライアント装置1-1~1-3に送信するよう通信部40に指示し、送信するメッセージと同じ残りのメッセージを廃棄すればよい。上記と同様に、メッセージの同一性の判断は、メッセージに付加されたメッセージ識別子に基づいて行われる。
【0081】
[第2の実施例]
第1の実施例では、各ブローカ装置3-1,3-2が個別に処理履歴情報を管理しているが、外部にある共通のデータベース上の処理履歴情報をブローカ装置3-1,3-2の両方で管理するようにしてもよい。図13は本実施例に係るパブリッシュ・サブスクライブ・システムの構成を示すブロック図、図14は本実施例に係るブローカ装置の構成を示すブロック図であり、図1図4と同一の構成には同一の符号を付してある。
【0082】
クライアント装置1-1~1-3,2-1~2-3、冗長ブローカ調整装置4,5の構成は第1の実施例で説明したとおりである。
【0083】
本実施例のブローカ装置3a-1は、通信部30,31と、メッセージ蓄積部32と、登録情報記憶部33と、メッセージ中継部34と、通信部35と、プライマリ・セカンダリ設定部36と、履歴情報管理部37aと、クラウド上のデータベース(DB)6との通信のための通信部38とを備えている。ブローカ装置3a-2の構成はブローカ装置3a-1と同様である。
【0084】
図15図16は本実施例のブローカ装置3a-1,3a-2の動作を説明するフローチャートである。
本実施例では、ブローカ装置3a-1,3a-2の履歴情報管理部37aは、パブリッシュ側またはサブスクライブ側のクライアント装置から受信したメッセージの処理履歴情報を記録する際に、自装置内で記録するのではなく、通信部38を介してDB6に記録するようにすればよい(図15ステップS302a,S307a)。処理履歴情報の内容は第1の実施例と同様である。処理履歴情報をDB6に記録するため、第1の実施例のステップS303,S304,S308,S309の処理は不要である。
【0085】
セカンダリのブローカ装置の履歴情報管理部37aは、自装置と他の全てのブローカ装置についてDB6に同一の処理履歴情報が存在する場合、自装置と他の全てのブローカ装置が共に処理済みと判断して、処理済みと判断した処理履歴情報を通信部38を介してDB6から削除する(図15ステップS327,S328,S329,S330)。上記と同様に、同一の処理履歴情報とは、ブローカ識別子のみが異なり、その他の内容が同一の処理履歴情報である。
【0086】
また、セカンダリのブローカ装置のメッセージ蓄積部32は、自装置の履歴情報管理部37aがDB6の処理履歴情報を確認した結果として、処理履歴情報の中に、プライマリのブローカ装置が処理済みで自装置が未処理の発行メッセージで、かつ現時点で自装置が処理可能な発行メッセージがある場合(図16ステップS331,S332においてYES)、ステップS301と同様に、未処理の発行メッセージをトピック情報で指定されたトピック毎に蓄積する(図16ステップS333)。
【0087】
同様に、セカンダリのブローカ装置の登録情報記憶部33は、自装置の履歴情報管理部37aがDB6の処理履歴情報を確認した結果として、処理履歴情報の中に、プライマリのブローカ装置が処理済みで自装置が未処理の登録要求メッセージで、かつ現時点で自装置が処理可能な登録要求メッセージがある場合(図16ステップS331,S332においてYES)、ステップS306と同様に、未処理の登録要求メッセージで指定されたトピックを示す登録情報を登録要求メッセージの送信元のクライアント識別子と共に記憶する(図16ステップS333)。
【0088】
セカンダリのブローカ装置の履歴情報管理部37aは、メッセージ蓄積部32または登録情報記憶部33によって処理されたメッセージの処理履歴情報を通信部38を介してDB6に記録する(図16ステップS334)。そして、セカンダリのブローカ装置の履歴情報管理部37aは、自装置と他の全てのブローカ装置についてDB6に同一の処理履歴情報が存在する場合、自装置と他の全てのブローカ装置が共に処理済みと判断して、処理済みと判断した処理履歴情報を通信部38を介してDB6から削除する(図16ステップS335)。
ステップS322~S326の処理は第1の実施例で説明したとおりである。
【0089】
こうして、本実施例では、クラウド上のDB6を用いて第1の実施例と同様の効果を得ることができる。
本実施例は、ブローカ装置3a-1,3a-2がクラウド上で動作し、クラウド内に管理されたDB6が存在する場合に有効である。
【0090】
[第3の実施例]
次に、本発明の第3の実施例について説明する。第1、第2の実施例では、冗長化構成のブローカ装置3-1,3-2(3a-1,3a-2)のうちの1つをプライマリとし、残りをセカンダリとしていたが、全てのブローカ装置をプライマリとしてもよい。
【0091】
全てのブローカ装置をプライマリとする場合、図7図9ステップS303,S304,S308,S309、図10ステップS313~S326、図15ステップS327~S330、図16ステップS322~S326,331~S335の処理が不要となるので、全体的な処理は少なくなるが、通信の負荷が多くなる。
【0092】
なお、第1~第3の実施例では、2台のブローカ装置3-1,3-2(3a-1,3a-2)を配置しているが、冗長ブローカ調整装置4と冗長ブローカ調整装置5との間に3台以上のブローカ装置を配置するシステムにも本発明を適用できることは言うまでもない。第1、第2の実施例の場合、3台以上の各ブローカ装置は、相互に通信を行い、プライマリ/セカンダリの判断を行うようにすればよい。
【0093】
また、第1~第3の実施例では、メッセージのフィルタリング方法としてトピックベースの方法を例に挙げて説明しているが、これに限るものではなく、他のフィルタリング方法のシステムに本発明を適用してもよい。
【0094】
本実施例のクライアント装置1-1~1-3,2-1~2-3、ブローカ装置3-1,3-2,3a-1,3a-2、冗長ブローカ調整装置4,5、DB6の各々は、CPU(Central Processing Unit)、記憶装置および外部とのインターフェースを備えたコンピュータと、これらのハードウェア資源を制御するプログラムによって実現することができる。このコンピュータの構成例を図17に示す。コンピュータは、CPU300と、記憶装置301と、インターフェース装置(I/F)302とを備えている。
【0095】
I/F302には、通信部10,20,30,31,35,38,40,41,50,51のハードウェアなどが接続される。本発明の通信方法を実現させるためのプログラムは記憶装置301に格納される。各々の装置のCPU300は、記憶装置301に格納されたプログラムに従って本実施例で説明した処理を実行する。
【産業上の利用可能性】
【0096】
本発明は、パブリッシュ・サブスクライブ・システムに適用することができる。
【符号の説明】
【0097】
1-1~1-3,2-1~2-3…クライアント装置、3-1,3-2,3a-1,3a-2…ブローカ装置、4,5…冗長ブローカ調整装置、6…データベース、10,20,30,31,35,38,40,41,50,51…通信部、11…メッセージ提供部、21…登録要求部、22…メッセージ受信部、32…メッセージ蓄積部、33…登録情報記憶部、34…メッセージ中継部、36…プライマリ・セカンダリ設定部、37,37a…履歴情報管理部、39…メッセージ処理部、42,43,52,53…中継制御部。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17