(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-06-09
(45)【発行日】2023-06-19
(54)【発明の名称】サービスバス通信システムにおけるエンティティ間のリモートプロシージャコール
(51)【国際特許分類】
G06F 9/54 20060101AFI20230612BHJP
H04L 67/562 20220101ALI20230612BHJP
【FI】
G06F9/54 D
H04L67/562
【外国語出願】
(21)【出願番号】P 2021133418
(22)【出願日】2021-08-18
【審査請求日】2021-10-26
(32)【優先日】2020-08-24
(33)【優先権主張国・地域又は機関】EP
(73)【特許権者】
【識別番号】519431812
【氏名又は名称】ヒタチ・エナジー・スウィツァーランド・アクチェンゲゼルシャフト
【氏名又は名称原語表記】HITACHI ENERGY SWITZERLAND AG
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】シュテファン・ガースパッチ
(72)【発明者】
【氏名】エットーレ・フェランティ
(72)【発明者】
【氏名】ユッカ・キンヌネン
(72)【発明者】
【氏名】ニクラウス・マイヤー
【審査官】田中 幸雄
(56)【参考文献】
【文献】特開2019-160232(JP,A)
【文献】米国特許出願公開第2007/0022430(US,A1)
【文献】米国特許出願公開第2004/0015835(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/54
H04L 67/562
(57)【特許請求の範囲】
【請求項1】
サービスバス通信システム(100)におけるエンティティ間のリモートプロシージャコールRPCの方法であって、前記サービスバス通信システム(100)は、第1のコンシューマ(200)と、データ交換システム(300)と、複数のパブリッシャ(400,500)とを含み、前記方法は、
前記第1のコンシューマ(200)から前記データ交換システム(300)に、データを求める第1の要求(I)を送るステップを含み、前記第1の要求(I)は、データを求める少なくとも1つの第1のサブ要求(I-I)を含み、前記方法はさらに、
前記データ交換システム(300)から前記複数のパブリッシャ(400,500)に、前記第1の要求(I)を送信するステップ
を含み、前記データ交換システム(300)は、データを求める前記第1の要求(I)の出所に関する情報を削除し、その後、データを求める前記第1の要求(I)をその出所に関する情報なしで送信し、
前記データ交換システム(300)が、前記複数のパブリッシャ(400,500)のうちの第1のパブリッシャ(400)から、データを求める前記第1の要求(I)に対する第1の回答(AI)を受信するステップとを含み、前記第1の回答(AI)は、前記少なくとも1つの第1のサブ要求(I-I)に対する回答(AI-I)を含み、前記方法はさらに、
前記データ交換システム(300)から前記第1のコンシューマ(200)に前記第1の回答(AI)を送信するステップを含
み、前記第1のパブリッシャ(400)は、前記第1の回答(AI)を、前記第1の回答(AI)の出所に関する情報なしで送る、または、前記データ交換システム(300)は、前記第1の回答(AI)の出所に関する情報を削除し、その後、前記第1の回答(AI)をその出所に関する情報なしで送信する、方法。
【請求項2】
前記データ交換システム(300)は、前記サービスバス通信システム(100)内の分散通信ミドルウェアによって提供され、前記データ交換システム(300)は特に、前記分散通信ミドルウェアによって提供されるデータ空間を含む、請求項
1に記載の方法。
【請求項3】
前記第1の要求(I)は複数の第1のサブ要求(I-I,I-II,I-III)を含み、前記第1の回答(AI)は前記複数の第1のサブ要求(I-I,I-II,I-III)のそれぞれに対する回答(AI-I,AI-II,AI-III)を含む、請求項1または
2に記載の方法。
【請求項4】
前記第1の要求(I)は複数の第1のサブ要求(I-I,I-II,I-III)を含み、前記第1の回答(AI)は第1セットの前記複数の第1のサブ要求(I-I)に対する回答(AI-I)を含み、前記方法はさらに、
前記データ交換システム(300)が、前記複数のパブリッシャ(400,500)のうちの第2のパブリッシャ(500)から、データを求める前記第1の要求(I)に対する第2の回答(BI)を受信するステップを含み、前記第2の回答(BI)は、第2セットの前記複数の第1のサブ要求(I-II,I-III)に対する回答(BI-II,BI-III)を含み、前記方法はさらに、
前記第2の回答(BI)を前記データ交換システム(300)から前記第1のコンシューマ(200)に送信するステップを含む、請求項1または
2に記載の方法。
【請求項5】
前記サービスバス通信システム(100)は第2のコンシューマ(200a)を含み、前記方法はさらに、
前記第2のコンシューマ(200a)から前記データ交換システム(300)に、データを求める第2の要求(II)を送るステップを含み、前記第2の要求(II)は、データを求める少なくとも1つの第2のサブ要求(II-I)を含み、前記方法はさらに、
前記データ交換システム(300)から前記複数のパブリッシャ(400,500)に、前記第2の要求(II)を送信するステップと、
前記データ交換システム(300)が、前記第1のパブリッシャ(400)から、データを求める前記第2の要求(II)に対する第1の回答(AII)を受信するステップとを含み、前記第1の回答(AII)は前記少なくとも1つの第2のサブ要求(II-I)に対する回答(AII-I)を含み、前記方法はさらに、
前記データ交換システム(300)から前記第2のコンシューマ(200a)に前記第1の回答(AII)を送信するステップを含む、請求項1~
4のいずれか1項に記載の方法。
【請求項6】
前記第2の要求(II)は複数の第2のサブ要求(II-I,II-II,II-III)を含み、前記第2の要求(II)に対する前記第1の回答(AII)は
前記複数の第2のサブ要求(II-I,II-II,II-III)のそれぞれに対する回答(AII-I,AII-II,AII-III)を含む、請求項
5に記載の方法。
【請求項7】
前記第2の要求(II)は複数の第2のサブ要求(II-I,II-II,I-III)を含み、前記第2の要求(II)に対する前記第1の回答(AII)は第1セットの前記複数の第2のサブ要求(II-I,II-III)に対する回答(AII-I,AII-III)を含み、前記方法はさらに、
前記データ交換システム(300)が、前記複数のパブリッシャ(400,500)のうちの第2のパブリッシャ(500)から、データを求める前記第2の要求(II)に対する第2の回答(BII)を受信するステップを含み、データを求める前記第2の要求(II)に対する前記第2の回答(BII)は、第2セットの前記複数の第2のサブ要求(II-II)に対する回答(BII-II)を含み、前記方法はさらに、
前記データ交換システム(300)から前記第2のコンシューマ(200a)に前記第2の回答(BII)を送信するステップを含む、請求項
5に記載の方法。
【請求項8】
第1のコンシューマ(200)と、データ交換システム(300)と、複数のパブリッシャ(400,500)とを含むサービスバス通信システム(100)であって、
前記第1のコンシューマ(200)は、データを求める第1の要求(I)をデータ交換システム(300)に送るように構成され、前記第1の要求(I)は、データを求める少なくとも1つの第1のサブ要求(I-I)を含み、
前記データ交換システム(300)は、
データを求める前記第1の要求(I)の出所に関する情報を削除し、その後、前記第1の要求(I)を複数のパブリッシャ(400,500)に送信するように構成され、
前記データ交換システム(300)は、前記複数のパブリッシャ(400,500)のうちの第1のパブリッシャ(400)から、データを求める前記第1の要求(I)に対する第1の回答(AI)を受信するように構成され、前記第1の回答(AI)は、前記少なくとも1つの第1のサブ要求(I-I)に対する回答(AI-I)を含み、
前記データ交換システム(300)は、
前記第1の回答(AI)を前記第1の回答(AI)の出所に関する情報なしで受信する、または、前記データ交換システム(300)は、前記第1の回答(AI)の出所に関する情報を削除し、その後、前記第1の回答(AI)を前記第1のコンシューマ(200)に送信するように構成されている、サービスバス通信システム(100)。
【請求項9】
前記データ交換システム(300)は、前記サービスバス通信システム(100)内の分散通信ミドルウェアによって提供され、前記データ交換システム(300)は特に、前記分散通信ミドルウェアによって提供されるデータ空間を含む、請求項
8に記載のサービスバス通信システム(100)。
【請求項10】
前記第1の要求(I)は複数の第1のサブ要求(I-I,I-II,I-III)を含み、前記第1の回答(AI)は前記複数の第1のサブ要求(I-I,I-II,I-III)のそれぞれに対する回答(AI-I,AI-II,AI-III)を含む、請求項
8または
9に記載のサービスバス通信システム(100)。
【請求項11】
前記第1の要求(I)は複数の第1のサブ要求(I-I,I-II,I-III)を含み、前記第1の回答(AI)は第1セットの前記複数の第1のサブ要求(I-I)に対する回答(AI-I)を含み、
前記データ交換システム(300)は、前記複数のパブリッシャ(400,500)のうちの第2のパブリッシャ(500)から、データを求める前記第1の要求(I)に対する第2の回答(BI)を受信するように構成され、前記第2の回答(BI)は、第2セットの前記複数の第1のサブ要求(I-II,I-III)に対する回答(BI-II,BI-III)を含み、前記データ交換システム(300)は、前記第2の回答(BI)を前記第1のコンシューマ(200)に送信するように構成されている、請求項
8または
9に記載のサービスバス通信システム(100)。
【請求項12】
前記サービスバス通信システム(100)は第2のコンシューマ(200a)を含み、
前記第2のコンシューマ(200a)は、データを求める第2の要求(II)を前記データ交換システム(300)に送るように構成され、前記第2の要求(II)は、データを求める少なくとも1つの第2のサブ要求(II-I)を含み、
前記データ交換システム(300)は、前記第2の要求(II)を前記複数のパブリッシャ(400,500)に送信するように構成され、
前記データ交換システム(300)は、前記第1のパブリッシャ(400)から、データを求める前記第2の要求(II)に対する第1の回答(AII)を受信するように構成され、前記第1の回答(AII)は前記少なくとも1つの第2のサブ要求(II-I)に対する回答(AII-I)を含み、
前記データ交換システム(300)は、前記第1の回答(AII)を前記第2のコンシューマ(200a)に送信するように構成されている、請求項
8~1
1のいずれか1項に記載のサービスバス通信システム(100)。
【請求項13】
前記第2の要求(II)は複数の第2のサブ要求(II-I,II-II,II-III)を含み、前記第2の要求(II)に対する前記第1の回答(AII)は前記複数の第2のサブ要求(II-I,II-II,II-III)のそれぞれに対する回答(AII-I,AII-II,AII-III)を含む、請求項1
2に記載のサービスバス通信システム(100)。
【請求項14】
前記第2の要求(II)は複数の第2のサブ要求(II-I,II-II,I-III)を含み、前記第2の要求(II)に対する前記第1の回答(AII)は第1セットの前記複数の第2のサブ要求(II-I,II-III)に対する回答(AII-I,AII-III)を含み、
前記データ交換システム(300)は、前記複数のパブリッシャ(400,500)のうちの第2のパブリッシャ(500)から、データを求める前記第2の要求(II)に対する第2の回答(BII)を受信するように構成され、データを求める前記第2の要求(II)に対する前記第2の回答(BII)は、第2セットの前記複数の第2のサブ要求(II-II)に対する回答(BII-II)を含み、
前記データ交換システム(300)は、前記第2の回答(BII)を前記第2のコンシューマ(200a)に送信するように構成されている、請求項1
2に記載のサービスバス通信システム(100)。
【請求項15】
請求項1~
7のいずれか1項に記載のリモートプロシージャコールRPCの方法を含む、サービスバス通信システム(100)におけるエンティティ間の選択的サブスクリプションの方法であって、前記選択的サブスクリプションの方法はさらに、
前記複数のパブリッシャ(400,500)のうちの少なくとも1つが、受信した、データを求め
る前記第1の要求または第2の要求のいずれかに対応する要求に従うデータを、前記データ交換システム(300)に対してパブリッシュするステップと、
前記データ交換システム(300)が、少なくとも1つのコンシューマ(200,200a)に、前記少なくとも1つのコンシューマ(200,200a)のデータに対する前記要求に従う、前記要求されたデータが、利用できることを通知するステップと、
前記通知を受けた少なくとも1つのコンシューマ(200,200a)が、要求した前記データをサブスクライブするステップとを含む、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、サービスバス通信システムにおけるエンティティ間のリモートプロシージャコールに関し、特に、サービスバス通信システムにおけるエンティティ間のリモートプロシージャコール(RPC:remote procedure call(遠隔手続き呼び出し))の方法およびそれぞれのサービスバス通信システムに関する。本開示は、より具体的には、サービスバス通信システムにおけるエンティティ間の選択的サブスクリプションの初期化のためのRPCおよびそれぞれのサービスバス通信システムに関する。
【背景技術】
【0002】
分散コンピューティングにおけるリモートプロシージャコール(RPC)は、あるコンピュータプログラムが、同一ネットワーク上の別のコンピュータ上に位置する別のプログラムに、このネットワーク自体の詳細を理解していなくても、サービスを要求できるようにする。言い換えると、RPCでは、コンピュータプログラム/要求者が、異なるアドレス空間内で、たとえば共有ネットワーク上の別のコンピュータのような異なるエンティティ内で、プロシージャを実行させる。このようなRPCの概略図が
図1に示される。このようなプロシージャコールは、場合によっては関数呼び出しまたはサブルーチンコールとしても知られている。このようなRPCというシナリオにおいて、サービス要求者は、サービス提供者と関数の意図とを把握していなければならない。
【0003】
通常使用されているサブスクリプションパターンは、パブリッシュ/サブスクライブ(Publish/Subscribe(出版/購読))に基づいている。パブリッシュ/サブスクライブは、パブリッシャと呼ばれるメッセージの送信者が、メッセージを、サブスクライバと呼ばれる特定の受信者に直接送信されるようにプログラムしない、メッセージングパターンである。同様に、サブスクライバは、1つ以上のクラスに対する興味を表示し、興味のあるメッセージのみを受信するが、たとえパブリッシャが存在するとしてもどのパブリッシャが存在するかについての知識はない。このメッセージングパターンの利点は、パブリッシャとサブスクライバとが互いについての知識を持っておらず、どちらもデータのみに対して作業を行う点である。欠点は、すべてのデータが必ずデータ空間に送られる点であり、その理由は、データプロバイダは、コンシューマが必要とするデータおよび必要としないデータについての知識を持たないので、すべてのデータをパブリッシュしなければならないことにある。加えて、サブスクライバは、要求の分割、データ変更時の転送、周期的転送、現在値の提供、データの合体その他のような、データ配布パターンの調整ができない。
【0004】
加えて、選択的サブスクリプションに近いメカニズムが使用されるドメインが存在する。たとえば、オープンプラットフォームコミュニケーション(OPC:open platform communications)データアクセス(DA:data access)クライアント/サーバデータサブスクリプションは、このスタイルのサブスクリプションの最もよく知られている例の1つである。
【0005】
選択的サブスクリプションを提供するOPCパターンが
図2に示されている。このOPCパターンは、最初にメッセージコールパブリッシャ(または中央ブローカー)のサブスクライバが、必要なデータと使用されるデータ配布パターンとに関してハンドシェイクを行うメッセージングパターンである。主な欠点は、サブスクライバが選択的サブスクリプションチャネルをセットアップできるようにするためには、パブリッシャとパブリッシャが提供できるデータとをサブスクライバが知っていなければならない点、または、これを扱っているのが1つのエンティティ、たとえばブローカーである点である。しかしながら、ブローカーは信頼できない可能性がある。主な利点は、必要なデータのみがパブリッシュされるので、システム負荷が減少し、サブスクライバは、データ変更時の転送、周期的転送、現在値の提供、データの合体その他のような、データ配布パターンの調整を行うことができる点である。
【0006】
スマートグリッド等のオートメーションシステムにおいて、高性能電子装置(IED:intelligent electronic device)は、オートメーションシステムの、検知、測定、保護、および制御のための基本要素を形成する。しかしながら、オートメーションシステムはスマートグリッドに限られる訳ではなく、オートメーションシステムの要素はIEDに限られる訳ではないことを、当業者は理解する。オートメーションシステムの要素は、サービスバスシステムの一部であり、サービスバスを通して相互通信する。この分野における1つの規格はIEC61850であり、高性能電子装置は上記規格に準拠して相互通信する。このようなオートメーションシステムにおける分散コンピューティングの場合、それぞれの要素、たとえば高性能電子装置は、データの要求者/コンシューマの役割と、このデータの回答者/パブリッシャの役割との両方を果たすことができる。本開示において、回答者という用語とコンシューマという用語は区別なく使用される。加えて、回答者という用語とパブリッシャという用語は区別なく使用される。
【0007】
オートメーションシステムでは、リモートプロシージャコールに関わる当事者は相互に知っていてはならずかつ完全に切り離されている、というシナリオが存在する場合がある。言い換えると、コンシューマ/要求者が、要求したデータを誰がパブリッシュ/配信しているかを知らないこと、およびこの情報は、ブローカーのようなその他のどの当事者にも知られてはならないことが、要件となる場合がある。
【発明の概要】
【課題を解決するための手段】
【0008】
本開示は、特に、上記要件に対する解決策を提供することを目的とする。本開示は独立請求項によって定められる。従属請求項は好ましい実施形態に言及している。
【0009】
本開示は、サービスバス通信システムにおけるエンティティ間のリモートプロシージャコール(RPC)の方法に関する。サービスバス通信システムは、第1のコンシューマと、データ交換システムと、複数のパブリッシャとを含む。この方法は、第1のコンシューマからデータ交換システムに、データを求める第1の要求を送るステップを含み、第1の要求は、データを求める少なくとも1つの第1のサブ要求を含み、この方法はさらに、データ交換システムから複数のパブリッシャに、第1の要求を送信するステップと、データ交換システムが、複数のパブリッシャのうちの第1のパブリッシャから、データを求める第1の要求に対する第1の回答を受信するステップとを含み、第1の回答は、少なくとも1つの第1のサブ要求に対する回答を含み、この方法はさらに、データ交換システムから第1のコンシューマに第1の回答を送信するステップを含む。特に、この方法は、サービスバス通信システムにおけるエンティティ間の選択的サブスクリプションの初期化のためのRPCに使用されてもよい。より具体的には、RPCは、選択的サブスクリプションを初期化してデータ更新を継続的に消費するためまたは単にデータ更新を一度初期化するために、使用されてもよい。しかしながら、本開示のRPCはこの目的に限定される訳ではないことを当業者は理解する。本開示のRPCは、さまざまなシナリオにおいて、要求者が異なるアドレス空間内でプロシージャを実行させるときに、使用されてもよい。
【0010】
各種実施形態は、好ましくは以下の特徴を実現してもよい。
好ましくは、この方法はコンピュータによって実現される。
【0011】
好ましくは、データ交換システムは、サービスバス通信システム内の分散通信ミドルウェアによって提供される。
【0012】
好ましくは、上記ミドルウェアはサービスバス通信システムのいくつかの層に分散している。
【0013】
好ましくは、データ交換システムは、上記分散通信ミドルウェアによって提供されるデータ空間を含む。
【0014】
好ましくは、第1の要求は複数の第1のサブ要求を含む。
好ましくは、第1の回答は複数の第1のサブ要求のそれぞれに対する回答を含む。
【0015】
好ましくは、第1の回答は第1セットの複数の第1のサブ要求に対する回答を含む。
好ましくは、この方法はさらに、データ交換システムが、複数のパブリッシャのうちの第2のパブリッシャから、データを求める第1の要求に対する第2の回答を受信するステップを含み、第2の回答は、第2セットの複数の第1のサブ要求に対する回答を含み、この方法はさらに、データ交換システムから第1のコンシューマに第2の回答を送信するステップを含む。
【0016】
好ましくは、第1セットの複数の第1のサブ要求および第2セットの複数の第1のサブ要求は、複数の第1のサブ要求の全体を包含する。好ましくは、第1セットと第2セットとは互いに素のセットである。
【0017】
好ましくは、第1のコンシューマは、特定長さの時間後に要求に対する回答が受信されない場合または不完全な回答が受信された場合、要求または複数のサブ要求のうちの少なくとも1つを繰り返す。
【0018】
好ましくは、サービスバス通信システムは第2のコンシューマを含む。
好ましくは、この方法はさらに、第2のコンシューマからデータ交換システムに、データを求める第2の要求を送るステップを含み、第2の要求は、データを求める少なくとも1つの第2のサブ要求を含み、この方法はさらに、データ交換システムから複数のパブリッシャに、第2の要求を送信するステップと、データ交換システムが、第1のパブリッシャから、データを求める第2の要求に対する第1の回答を受信するステップとを含み、第1の回答は少なくとも1つの第2のサブ要求に対する回答を含み、この方法はさらに、データ交換システムから第2のコンシューマに第1の回答を送信するステップを含む。
【0019】
好ましくは、第2の要求は複数の第2のサブ要求を含む。
好ましくは、第2の要求に対する第1の回答は複数の第2のサブ要求のそれぞれに対する回答を含む。
【0020】
好ましくは、第2の要求に対する第1の回答は第1セットの複数の第2のサブ要求に対する回答を含む。好ましくは、この方法はさらに、データ交換システムが、複数のパブリッシャのうちの第2のパブリッシャから、データを求める第2の要求に対する第2の回答を受信するステップを含み、データを求める第2の要求に対する第2の回答は、第2セットの複数の第2のサブ要求に対する回答を含み、この方法はさらに、データ交換システムから第2のコンシューマに第2の回答を送信するステップを含む。
【0021】
好ましくは、第1セットの複数の第2のサブ要求および第2セットの複数の第2のサブ要求は、複数の第1のサブ要求の全体を包含する。好ましくは、第1部分と第2部分とは互いに素である。
【0022】
好ましくは、第2のコンシューマは、特定長さの時間後に要求に対する回答が受信されない場合または不完全な回答が受信された場合、要求または複数のサブ要求のうちの少なくとも1つを繰り返す。
【0023】
本開示はまた、サービスバス通信システムにおけるエンティティ間の選択的サブスクリプションの方法に関する。この方法は、上記好ましい実施形態のうちのいずれか1つに係るサービスバス通信システムにおけるエンティティ間のリモートプロシージャコールRPCの方法と、複数のパブリッシャのうちの少なくとも1つが、受信した、データを求める要求に従うデータを、データ交換システムに対してパブリッシュするステップと、データ交換システムが、少なくとも1つのコンシューマに、この少なくとも1つのコンシューマのデータに対する要求に従う、要求されたデータが、利用できることを通知するステップと、通知を受けた少なくとも1つのコンシューマが、要求したデータをサブスクライブするステップとを含む。
【0024】
本開示はまた、第1のコンシューマと、データ交換システムと、複数のパブリッシャとを含むサービスバス通信システムに関する。第1のコンシューマは、データを求める第1の要求をデータ交換システムに送るように構成され、第1の要求は、データを求める少なくとも1つの第1のサブ要求を含み、データ交換システムは、第1の要求を複数のパブリッシャに送信するように構成され、データ交換システムは、複数のパブリッシャのうちの第1のパブリッシャから、データを求める第1の要求に対する第1の回答を受信するように構成され、第1の回答は、少なくとも1つの第1のサブ要求に対する回答を含み、データ交換システムは、第1の回答を第1のコンシューマに送信するように構成されている。
【0025】
各種実施形態は、好ましくは以下の特徴を実現してもよい。
好ましくは、データ交換システムは、サービスバス通信システム内の分散通信ミドルウェアによって提供される。好ましくは、データ交換システムは、上記分散通信ミドルウェアによって提供されるデータ空間を含む。
【0026】
好ましくは、第1の要求は複数の第1のサブ要求を含む。
好ましくは、第1の回答は複数の第1のサブ要求のそれぞれに対する回答を含む。
【0027】
好ましくは、第1の回答は第1セットの複数の第1のサブ要求に対する回答を含む。好ましくは、データ交換システムは、複数のパブリッシャのうちの第2のパブリッシャから、データを求める第1の要求に対する第2の回答を受信するように構成され、第2の回答は、第2セットの複数の第1のサブ要求に対する回答を含み、データ交換システムは、第2の回答を第1のコンシューマに送信するように構成されている。
【0028】
好ましくは、第1セットの複数の第1のサブ要求および第2セットの複数の第1のサブ要求は、複数の第1のサブ要求の全体を包含する。好ましくは、第1セットと第2セットとは互いに素のセットである。
【0029】
好ましくは、第1のコンシューマは、特定長さの時間後に要求に対する回答が受信されない場合または不完全な回答が受信された場合、要求または複数のサブ要求のうちの少なくとも1つを繰り返す。
【0030】
好ましくは、サービスバス通信システムは第2のコンシューマを含む。
好ましくは、第2のコンシューマは、データを求める第2の要求をデータ交換システムに送るように構成され、第2の要求は、データを求める少なくとも1つの第2のサブ要求を含み、データ交換システムは、第2の要求を複数のパブリッシャに送信するように構成され、データ交換システムは、第1のパブリッシャから、データを求める第2の要求に対する第1の回答を受信するように構成され、第1の回答は少なくとも1つの第2のサブ要求に対する回答を含み、データ交換システムは、第1の回答を第2のコンシューマに送信するように構成されている。
【0031】
好ましくは、第2の要求は複数の第2のサブ要求を含む。
好ましくは、第2の要求に対する第1の回答は複数の第2のサブ要求のそれぞれに対する回答を含む。
【0032】
好ましくは、第2の要求に対する第1の回答は第1セットの複数の第2のサブ要求に対する回答を含む。好ましくは、データ交換システムは、複数のパブリッシャのうちの第2のパブリッシャから、データを求める第2の要求に対する第2の回答を受信するように構成され、データを求める第2の要求に対する第2の回答は、第2セットの複数の第2のサブ要求に対する回答を含み、データ交換システムは、第2の回答を第2のコンシューマに送信するように構成されている。
【0033】
好ましくは、第1セットの複数の第2のサブ要求および第2セットの複数の第2のサブ要求は、複数の第1のサブ要求の全体を包含する。好ましくは、第1部分と第2部分とは互いに素である。
【0034】
好ましくは、第2のコンシューマは、特定長さの時間後に要求に対する回答が受信されない場合または不完全な回答が受信された場合、要求または複数のサブ要求のうちの少なくとも1つを繰り返す。
【0035】
本開示に従うと、サブスクライバはパブリッシャを知っている必要はなく、システム負荷は必要なだけの大きさであり、要求されていないデータはパブリッシュされない。加えて、実行時に、サブスクライバに通知しなくても、パブリッシャを交換することができ、これは高い冗長性につながる。さらに、本開示では、必要なRPCコールの数が少ないので、初期化の負荷が小さくなる。加えて、接続においてコンシューマが要求するものだけを提供することで、サブスクライバ側で必要なのは減じられた数の接続のみとなる。
【0036】
本開示のようなトピックベースのRPC要求を用い、サブスクライバ/コンシューマは、データと特定のデータ配布パターンとを要求する。しかしながら、RPC要求が提供サービスに直接向けられるのではなく、RPCはデータ空間に向けられる。
【0037】
要求されたデータを提供できるサービスが、データ空間内でこれらのデータのパブリッシュを開始することになり、セッションを開始したサブスクライバがこのデータを消費することになる。このように、これは、それでもなお、互いに知らない要求者と提供者との間の一種のピアツーピア通信である。これは、特に、周知のパブリッシュ/サブスクライブおよび選択的サブスクリプション方法と比較して、以下の利点を提供する。
-サブスクライバはパブリッシャを知っている必要がない。
-システム負荷は必要なだけの大きさであり、要求されていないデータはパブリッシュされない。
-実行時に、サブスクライバに通知しなくても、パブリッシャを交換することができる(冗長性)。
-初期化の負荷が小さい(必要なRPCコールの数が少ない)。
-接続においてコンシューマが要求するものだけを提供することで、サブスクライバ側の接続の数が少なくなる。
【0038】
以下、本開示の具体例としての各種実施形態を、下記の図を参照しながら詳細に説明する。これらの図面は、説明のみを目的として提供されるのであって、読み手が本開示を理解し易いように本開示の具体例としての実施形態を描いているにすぎない。
【0039】
したがって、図面は、本開示の幅、範囲、または適用可能性を限定するものとみなされてはならない。
【0040】
これらの図面は明確さのためおよび説明を容易にするために必ずしも正しい縮尺で描かれていないことに注意されたい。
【図面の簡単な説明】
【0041】
【
図1】先行技術に係るRPCプロシージャの概略図の一例を示す図である。
【
図2】先行技術に係るRPCプロシージャおよびその後の選択的サブスクリプションの概略図の一例を示す図である。
【
図3a】本開示に係るRPCプロシージャの概略図の一例を示す図である。
【
図3b】
図3aに示されるRPCプロシージャに続く、本開示に係る選択的サブスクリプションの概略図の一例を示す図である。
【
図4a】本開示に係るRPCプロシージャの概略図の一例を示す図である。
【
図4b】
図4aに示されるRPCプロシージャに続く、本開示に係る選択的サブスクリプションの概略図の一例を示す図である。
【
図5a】本開示に係るRPCプロシージャの概略図の一例を示す図である。
【
図5b】
図5aに示されるRPCプロシージャに続く、本開示に係る選択的サブスクリプションの概略図の一例を示す図である。
【
図6a】本開示に係るRPCプロシージャの概略図の一例を示す図である。
【
図6b】
図6aに示されるRPCプロシージャに続く、本開示に係る選択的サブスクリプションの概略図の一例を示す図である。
【発明を実施するための形態】
【0042】
図3aは、本開示に係るRPCプロシージャの概略図の一例を示す図である。RPCプロシージャは、第1のコンシューマ200と、データ交換システム300と、複数のパブリッシャ400および500とを含むサービスバス通信システム100において実行される。
【0043】
第1のステップにおいて、第1のコンシューマ200は、本実施形態に係るサービスバスシステムが提供するミドルウェアであるデータ交換システム300に、データを求める第1の要求Iを送る。第1の要求Iは、データを求める第1のサブ要求I-Iを含む。
【0044】
データ交換システム300は、第1のコンシューマ200から第1の要求Iを受信し、第1のパブリッシャ400および第2のパブリッシャ500に送信する。強調しなければならないことは、遅くともこの段階で、パブリッシャ400、500に送信された第1の要求Iがその出所を示すポインタを含んでいてはならないことである。言い換えると、第1のコンシューマ200がデータを求める第1の要求Iをその出所すなわち第1のコンシューマ200に関する情報なしで送信するか、または、データ交換システム300が第1の要求Iをパブリッシャ400、500に送信する前に、(たとえばヘッダまたは制御情報を削除することによって)この情報を削除するかの、いずれかである。
【0045】
この実施形態に従うと、第1のパブリッシャ400のみが、第1の要求Iに対する回答AIをデータ交換システム300に送信している。第1の回答AIは、第1のサブ要求I-Iに対する回答AI-Iを含む。データ交換システム300は、第1の回答AIの受信後に、第1の回答AIを第1のコンシューマ200に送信する。上述のように、強調しなければならないことは、第1の回答AIがその出所に関するポインタを含んでいてはならないことである。そのため、第1のパブリッシャ400は、回答AIを、その出所すなわち第1のパブリッシャ400に関する情報なしで、データ交換システム300に送信する、または、データ交換システム300が、第1の回答AIを第1のコンシューマ200に送信する前に、(たとえばヘッダまたは制御情報を削除することによって)この情報を削除する。
【0046】
図3bは、
図3aに示されるRPCプロシージャに続く、本開示に係る選択的サブスクリプションの概略図の一例を示す。RPCプロシージャは、選択的サブスクリプションのために使用される。しかしながら、本開示のRPCはこの目的に限定される訳ではないことを、当業者は理解する。本開示のRPCは、さまざまなシナリオにおいて、要求者が異なるアドレス空間内でプロシージャを実行させるときに、使用されてもよい。第1のコンシューマ200がデータ交換システム300から第1の回答AIを受信した後に、第1のパブリッシャは、第1の要求Iで要求されたデータPAIをデータ交換システム300に対してパブリッシュする。データ交換システム300は、要求されたデータが利用できることを第1のコンシューマ200に通知し、第1のコンシューマ200は、要求したデータPAIに対する第1のサブスクリプションSAIを実行する。
【0047】
図4aは、本開示に係るRPCプロシージャの概略図の一例を示す。
図3aに示される実施形態との違いは、第1の要求Iが複数の第1のサブ要求を、この例に従うと、3つのサブ要求I-I、I-II、I-IIIを含んでいる点である。第1のコンシューマ200は、データを求める第1の要求Iを、データ交換システム300に送る。
【0048】
データ交換システム300は、第1のコンシューマ200から第1の要求Iを受信し、第1のパブリッシャ400および第2のパブリッシャ500に送信する。
図3aに示される実施形態と同様、第1のコンシューマ200がデータを求める第1の要求Iをその出所に関する情報なしで送信するか、または、データ交換システム300が第1の要求Iをパブリッシャ400、500に送信する前にこの情報を削除するか、のいずれかである。
【0049】
この実施形態に従うと、第1のパブリッシャ400のみが、第1の要求Iに対する回答AIをデータ交換システム300に送信している。第1の回答AIは、すべての第1のサブ要求I-I、I-II、およびI-IIIのそれぞれに対する回答AI-I、AI-II、AI-IIを含む。言い換えると、第1の回答AIは、第1のサブ要求I-Iに対する回答AI-Iと、第1のサブ要求I-IIに対する回答AI-IIと、第1のサブ要求I-IIIに対する回答AI-IIIとを含む。データ交換システム300は、第1の回答AIの受信後に、第1の回答AIを第1のコンシューマ200に送信する。上述のように、第1のパブリッシャ400は、回答AIを、その出所すなわち第1のパブリッシャ400に関する情報なしで、データ交換システム300に送信する、または、データ交換システム300が、第1の回答AIを第1のコンシューマ200に送信する前に、この情報を削除する。
【0050】
図4bは、
図4aに示されるRPCプロシージャに続く、本開示に係る選択的サブスクリプションの概略図の一例を示す。第1のコンシューマ200がデータ交換システム300から第1の回答AIを受信した後に、第1のパブリッシャ400は、第1の要求で要求されたデータPAIを、データ交換システム300に対してパブリッシュする。データPAIは、サブ要求I-I、I-II、およびI-IIIのそれぞれに対応するデータセットPAI-I、PAI-II、およびPAI-IIIを含む。データ交換システム300は、第1のコンシューマ200に、要求されたデータを利用できることを通知し、第1のコンシューマ200は、要求したデータPAIに対する第1のサブスクリプションSAIを実行する。第1のサブスクリプションSAIは、データセットPAI-I、PAI-II、およびPAI-IIIに対応する複数のサブ-サブスクリプションSAI-I、SAI-II、およびSAI-IIIを含む。
【0051】
図5aは、本開示に係るRPCプロシージャの概略図の一例を示す図である。
図4aに示される実施形態との違いは、第1のパブリッシャ400だけでなく第2のパブリッシャ500も第1の要求Iに対する回答を送信する点である。第1のパブリッシャ400の回答AIは、対応する第1のサブ要求I-Iに対する回答AI-Iを含み、第2のパブリッシャ500の回答BIは、その他の第1のサブ要求I-IIおよびI-IIIのそれぞれに対する回答BI-IIおよびBI-IIIを含む。データ交換システム300は、回答AIおよびBIを第1のコンシューマ200に送る。この例に従う要求および回答も、その出所を示すポインタを含んでいてはならないので、
図3aおよび
図4aに示される例について先に説明したように処理されることを、当業者は理解する。このことは、第2のパブリッシャ500への要求および第2のパブリッシャ500からの回答にも当てはまる。
【0052】
図5bは、
図5aに示されるRPCプロシージャに続く、本開示に係る選択的サブスクリプションの概略図の一例を示す。第1のコンシューマ200がデータ交換システム300から第1の回答AIおよびBIを受信した後に、第1のパブリッシャ400は、第1のコンシューマ200のサブ要求I-Iにおいて要求されたデータセットPAI-Iを含むデータPAIを、データ交換システム300に対してパブリッシュする。同様に、第2のパブリッシャ500は、第1のコンシューマ200のサブ要求I-IIおよびIーIIIにおいて要求されたデータセットPBI-IIおよびPBI-IIIを含むデータPBIを、データ交換システム300に対してパブリッシュする。データ交換システム300は、第1のコンシューマ200に、要求されたデータを利用できることを通知し、第1のコンシューマ200は、要求したデータPAIおよび対応するデータセットPAI-Iに対する第1のサブスクリプションSAIおよびサブ-サブスクリプションSAI-Iと、要求したデータPBIならびにデータセットPBI-IIおよびPBI-IIIに対する第2のサブスクリプションSBIならびにサブ-サブスクリプションSBI-IIおよびSBI-IIIを、実行する。
【0053】
図6aは、本開示に係るRPCプロシージャの概略図の一例を示す。
図5aに示される実施形態との違いは、サービスバスシステム100がさらに他のコンシューマ200aを含む点である。本開示は2つのコンシューマに限定される訳ではなく一般的に複数のコンシューマを包含することを、当業者は理解する。
【0054】
第1のコンシューマ200からの要求および第1のコンシューマ200からの要求に対する回答は、
図4aで説明した実施形態に示されるものと同一である。第2のコンシューマ200aは、データ交換システム300に、データを求める第2の要求IIを送信する。この例に従う第2の要求IIは、複数のサブ要求II-I、II-II、II-IIIを含むが、これに限定される訳ではなく、1つのサブ要求も可能である。加えて、3つのサブ要求II-I、II-II、II-IIIの例は本開示を限定する訳ではないことが理解される。
【0055】
データ交換システムは、第2の要求IIを複数のパブリッシャ400、500に送信する。第2のコンシューマ200aの第2の要求IIは、第1のコンシューマ200の第1の要求Iと同じように処理される、すなわち、第2のコンシューマ200sがデータを求める第2の要求IIをその出所すなわち第2のコンシューマ200aに関する情報なしで送信するか、または、データ交換システム300が第2の要求IIをパブリッシャ400、500に送信する前に(たとえばヘッダまたは制御情報を削除することによって)この情報を削除するかの、いずれかである。
【0056】
データ交換システム300に対する第1のパブリッシャ400の回答AIIは、第2のサブ要求II-IおよびII-IIIのそれぞれに対する回答AII-IおよびAII-IIIを含む。データ交換システム300に対する第2のパブリッシャ500の回答BIIは、対応するサブ要求II-IIに対する回答BII-IIを含む。データ交換システム300は、回答AIIおよびBIIを第1のコンシューマ200に送信する。この例に従う要求および回答も、その出所を示すポインタを含んでいてはならないので、本開示の例について先に説明したように処理されることを、当業者は理解する。このことは、第2のコンシューマ200aからの要求および第2のコンシューマ200aに対する回答にも当てはまる。
【0057】
本開示に従うと、第1のコンシューマ200の第1のサブ要求I-I、I-II、およびI-IIIの少なくとも一部が、第2のコンシューマ200aの第2のサブ要求II-I、II-II、およびII-IIIの少なくとも一部と同一の場合があり得る、たとえば、第1のコンシューマ200のサブ要求I-IIが第2のコンシューマ200aのサブ要求II-IIIと同一の場合があり得る。
【0058】
図6bは、
図6aに示されるRPCプロシージャに続く、本開示に係る選択的サブスクリプションの概略図の一例を示す。第1のコンシューマ200がデータ交換システム300から第1の回答AIおよびBIを受信し第2のコンシューマ200aがデータ交換システム300から第1の回答AIIおよびBIIを受信した後に、第1のパブリッシャ400は、第1のコンシューマ200のサブ要求I-Iにおいて要求されたデータセットPAI-Iを含むデータPAIを、データ交換システム300に対してパブリッシュし、第1のパブリッシャ400は、第2のコンシューマ200aのサブ要求II-IおよびII-IIIで要求されたデータセットPAII-IおよびPAII-IIIを含むデータPAIIを、データ交換システム300に対してパブリッシュする。同様に、第2のパブリッシャ500は、データ交換システム300に対し、第1のコンシューマ200のサブ要求I-IIおよびIーIIIで要求されたデータセットPBI-IIおよびPBI-IIIを含むデータPBIをパブリッシュし、第2のパブリッシャ500は、データ交換システム300に対し、第2のコンシューマ200aのサブ要求II-IIで要求されたデータセットPBII-IIを含むデータPBIIをパブリッシュする。データ交換システム300は、第1のコンシューマ200および第2のコンシューマ200aに、要求されたデータを利用できることを通知する。第1のコンシューマ200は、要求したデータPAIおよびデータセットPAI-Iに対する第1のサブスクリプションSAIおよびサブ-サブスクリプションSAI-Iと、要求したデータPBIならびにデータセットPBI-IIおよびPBI-IIIのそれぞれに対する第2のサブスクリプションSBIならびにサブ-サブスクリプションSBI-IIおよびSBI-IIIとを、実行する。第2のコンシューマ200aは、要求したデータPAIIならびにデータセットPAII-IおよびPAII-IIIのそれぞれに対する第1のサブスクリプションSAIIならびにサブ-サブスクリプションSAII-IおよびSAII-IIと、要求したデータPBIIおよびデータセットPBII-IIに対する第2のサブスクリプションSBIIおよびサブ-サブスクリプションSBII-IIとを、実行する。
【0059】
本開示は図面および上記記載において詳細に示され説明されているが、このような図示および説明は例示または具体例であって限定的なものではないとみなされねばならない。当業者は以下の請求項の範囲の中で変形および修正を行い得ることが理解されるであろう。特に、本開示は、上記さまざまな実施形態からの特徴の任意の組み合わせを伴うさらに他の実施形態をカバーする。
【0060】
さらに、請求項において、「含む(comprising)」という単語は他の要素またはステップを除外するものではなく、不定冠詞「a」または「an」は複数を除外するものではない。単体が、請求項に記載されているいくつかの特徴の機能を果たす場合もある。ある属性またはある値に関連する「本質的に」、「約」、「およそ」などの用語は、具体的に、まさにその属性またはまさにその値も規定する。請求項のどの参照符号も、範囲を限定すると解釈されてはならない。