(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-02-07
(54)【発明の名称】サイドカーセキュリティコンテナスタックを用いたスケーラブルなブローカーレスメッセージングストラテジ
(51)【国際特許分類】
G06F 9/54 20060101AFI20240131BHJP
G06F 9/50 20060101ALI20240131BHJP
【FI】
G06F9/54 Z
G06F9/50 150Z
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023548301
(86)(22)【出願日】2022-02-03
(85)【翻訳文提出日】2023-08-09
(86)【国際出願番号】 US2022015058
(87)【国際公開番号】W WO2022173644
(87)【国際公開日】2022-08-18
(32)【優先日】2021-02-12
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】503455363
【氏名又は名称】レイセオン カンパニー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】レイ,アレックス シー.
(72)【発明者】
【氏名】カルダス,ジュアン ディー.
(57)【要約】
スケーラブルなブローカーレスメッセージングネットワークは、複数のメッセージを交換するために相互に信号通信する複数のサービスノードを実装するサービスメッシュを含む。制御プレーンは、複数のサービスノードと信号通信し、サービスメッシュに含まれる特定のサービスノードに関連付けられたアプリケーションサービスを登録するように構成されている。複数のサービスノードは、伝送制御プロトコル(TCP)ソケットを介してネットワーク内の各サービス間にいくつかのポイントツーポイント接続を確立する、メッセージングミドルウェア層を定義する。
【選択図】
図1A
【特許請求の範囲】
【請求項1】
スケーラブルなブローカーレスメッセージングネットワークであって、
複数のメッセージを交換するために互いに信号通信する複数のサービスノードを含む、サービスメッシュと、
前記複数のサービスノードと信号通信し、前記サービスメッシュに含まれる特定のサービスノードに関連付けられたアプリケーションサービスを登録するように構成された、制御プレーンと、
を含み、
前記複数のサービスノードは、伝送制御プロトコル(TCP)ソケットを介して前記ネットワーク内の各サービス間にいくつかのポイントツーポイント接続を確立する、メッセージングミドルウェア層を定義する、
スケーラブルなブローカーレスメッセージングネットワーク。
【請求項2】
前記サービスノードのそれぞれがサイドカープロキシを含み、
前記サイドカープロキシは、前記複数のサービスノードのうちの宛先サービスノードの公開鍵を用いて、ホストアプリケーションプロセスによって生成された発信メッセージを暗号化し、
秘密鍵を用いて受信メッセージを復号して、前記復号された受信メッセージを宛先アプリケーションプロセスに配信する、
ように構成されている、
請求項1に記載のスケーラブルなブローカーレスメッセージングネットワーク。
【請求項3】
前記複数のサービスノードのうちの前記サービスノードの少なくとも1つが、制御サービスノードとして動作し、かつ、
前記複数のサービスノードに含まれる残りのサービスノードは、ワーカーサービスノードとして機能する、
請求項2に記載のスケーラブルなブローカーレスメッセージングネットワーク。
【請求項4】
前記ワーカーサービスノードの各インスタンスが、ワーカーサービスの確立された個々のスケーリングされたインスタンスに合わせてスケーリングされている、
請求項3に記載のスケーラブルなブローカーレスメッセージングネットワーク。
【請求項5】
前記制御サービスノードが、サービスプレーンによって定義された少なくとも1つのルーティングルールに従って、前記ワーカーサービスノードの前記個々のスケーリングされたインスタンスのそれぞれに前記メッセージを分配するように構成されている、
請求項4に記載のスケーラブルなブローカーレスメッセージングネットワーク。
【請求項6】
前記少なくとも1つのルーティングルールが、「ゼロトラスト」アーキテクチャ、及び、前記複数のサービスノードうちの各サービスノード間の相互トランスポート層セキュリティ(mTLS)暗号化を提供する、
請求項2に記載のスケーラブルなブローカーレスメッセージングネットワーク。
【請求項7】
前記複数のサービスノードと信号通信する少なくとも1つのサービスフォワーダポッド、をさらに含み、
前記少なくとも1つのサービスフォワーダポッドは、前記複数のメッセージを対応するサービスノードに集約し、前記制御プレーンによって定義された負荷分散ルールに従って、前記複数のメッセージを分配するように構成されている、
請求項1に記載のスケーラブルなブローカーレスメッセージングネットワーク。
【請求項8】
前記メッセージングミドルウェア層が、クラウドコンピューティング環境において実装される、
請求項1に記載のスケーラブルなブローカーレスメッセージングネットワーク。
【請求項9】
スケーラブルなブローカーレスメッセージングネットワークにおいてデータを交換する方法であって、
複数のメッセージを交換するために複数のサービスノードを含むサービスメッシュ間の信号通信を確立することと、
制御プレーンと前記複数のサービスノードとの間の信号通信を確立することと、
前記サービスメッシュに含まれる特定のサービスノード及び前記制御プレーンに関連付けられたアプリケーションサービスを登録することと、
伝送制御プロトコル(TCP)ソケットを介して前記サービスメッシュ内の各サービスノード間に複数のポイントツーポイント接続を確立するために、前記複数のサービスノードを介してメッセージングミドルウェア層を定義することと、
を含む、方法。
【請求項10】
前記方法は、さらに、
前記サービスノードのうちの少なくとも1つに含まれるサイドカープロキシを介して、前記複数のサービスノードのうちの宛先サービスノードの公開鍵を用いて、ホストアプリケーションプロセスによって生成された送信メッセージを暗号化することと、
前記サービスノードの少なくとも1つに含まれる前記サイドカープロキシを介して、秘密鍵を用いて受信メッセージを復号し、前記復号された受信メッセージを宛先アプリケーションプロセスに配信することと、
を含む、請求項9に記載の方法。
【請求項11】
前記方法は、さらに、
前記サービスノードのそれぞれに含まれる前記TCPソケットを介して、前記アプリケーションプロセスと前記サイドカープロキシとの間に第1のデータ接続を確立することと、
データソケットを介して、前記アプリケーションプロセスと前記サイドカープロキシとの間に前記第1のデータ接続から独立した第2のデータ接続を確立することと、
を含む、請求項10に記載の方法。
【請求項12】
前記方法は、さらに、
前記複数のサービスノードのうちの前記サービスノードの少なくとも1つを制御サービスノードとして動作させることと、
前記複数のサービスノードに含まれる残りのサービスノードをワーカーサービスノードとして動作させることと、
を含む、請求項11に記載の方法。
【請求項13】
前記ワーカーサービスノードの各インスタンスが、ワーカーサービスの確立された個々のスケーリングされたインスタンスに合わせてスケーリングされている、
請求項12に記載の方法。
【請求項14】
前記方法は、さらに、
サービスプレーンによって定義された少なくとも1つのルーティングルールに従って、前記制御サービスノードを介して、前記ワーカーサービスノードの前記個々のスケーリングされたインスタンスのそれぞれに前記メッセージを分配すること、
を含む、請求項13に記載の方法。
【請求項15】
前記少なくとも1つのルーティングルールが、「ゼロトラスト」アーキテクチャ及び前記複数のサービスノードうちの各サービスノード間の相互トランスポート層セキュリティ(mTLS)暗号化を提供する、
請求項10に記載の方法。
【請求項16】
前記方法は、さらに、
少なくとも1つのサービスフォワーダポッドと前記複数のサービスノードとの間の信号通信を確立することと、
前記少なくとも1つのサービスフォワーダポッドを介して、前記複数のメッセージを対応するサービスノードに集約することと、
前記制御プレーンによって定義された負荷分散ルールに従って、前記複数のメッセージを分配することと、
を含む、請求項9に記載の方法。
【請求項17】
前記メッセージングミドルウェア層が、クラウドコンピューティング環境において実装されている、
請求項9に記載の方法。
【請求項18】
スケーラブルなブローカーレスメッセージングネットワークに含まれるメッセージングミドルウェア層であって、前記メッセージングミドルウェア層は、
第1のサービスノードに含まれ、前記メッセージングミドルウェア層に従って動作するように構成されている、第1のアプリケーションプロセスであり、少なくとも1つの第2のサービスノードに含まれる少なくとも1つの第2のアプリケーションプロセスとデータを交換するように構成されている、第1のアプリケーションプロセス、を含み、
前記メッセージングミドルウェア層は、前記第1のサービスノードと前記第2のサービスノードとの間に確立された伝送制御プロトコル(TCP)ソケット接続を動的に管理する、
メッセージングミドルウェア層。
【請求項19】
前記第1のアプリケーションプロセスが、パブリッシュされるメッセージを検出し、かつ、前記TCPソケット接続に基づいて、前記メッセージを前記少なくとも1つの第2のサービスノードに配信する、
請求項18に記載のメッセージングミドルウェア層。
【請求項20】
前記少なくとも1つの第2のアプリケーションプロセスが、複数の第2のアプリケーションプロセスを含み、各第2のアプリケーションプロセスは、前記第1のアプリケーションプロセスとのTCPソケット接続を有し、
前記第1のサービスノードは、前記複数の第2のアプリケーションプロセスに対応する各TCPソケット接続を含むTCPリストを生成し、かつ、前記TCPリストに基づいて前記メッセージを配信する、
請求項19に記載のメッセージングミドルウェア層。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、非同期サービス間通信ネットワークに関し、特に、パブリッシュ/サブスクライブメッセージングサービスに関する。
【0002】
関連出願の相互参照
本出願は、2021年2月12日に出願された米国特許出願第17/174848号について優先権の利益を主張するものであり、参照によってその全体が本明細書に援用される。
【背景技術】
【0003】
パブリッシュ/サブスクライブメッセージング(一般に「Pub/Sub」メッセージングと呼ばれる)は、サーバレスアーキテクチャ及びマイクロサービスアーキテクチャで使用される非同期サービス間通信の形式である。Pub/Subメッセージングネットワークでは、イベントを生成するサービスは、イベントを処理するサービスから分離されている。「パブリッシャーアプリケーション(“publisher application”)」はメッセージを作成して「トピック(“topic”)」に送信し、一方、「サブスクライバーアプリケーション(“subscriber application”)」は1つまたは複数のトピックへの「サブスクリプション(“subscription”)」を作成する。したがって、サブスクライバーアプリケーションは、サブスクライブしているトピックに送信されたメッセージを受信する。言い換えれば、トピックにパブリッシュされた任意のメッセージは、そのトピックのすべてのサブスクライバーによって受信される。
【発明の概要】
【0004】
非限定的な実施形態によれば、スケーラブルなブローカーレスメッセージングネットワークは、複数のメッセージを交換するために相互に信号通信する複数のサービスノードを実装するサービスメッシュを含む。制御プレーンは、複数のサービスノードと信号通信し、サービスメッシュに含まれる特定のサービスノードに関連付けられたアプリケーションサービスを登録し、暗号化されたサービス間通信に必要な証明書を提供するように構成される。複数のサービスノードは、伝送制御プロトコル(TCP)ソケットを介してネットワーク内の各サービス間にいくつかのポイントツーポイント接続を確立するメッセージングミドルウェア層を定義する。
【0005】
別の非限定的な実施形態によれば、スケーラブルなブローカーレスメッセージングネットワークにおいてデータを交換する方法は、複数のメッセージを交換するための複数のサービスノードを含むサービスメッシュ間の信号通信を確立することと、制御プレーンと複数のサービスノードとの間の信号通信を確立することとを含む。この方法はさらに、サービスメッシュ及び制御プレーンに含まれる特定のサービスノードに関連付けられたアプリケーションサービスを登録することを含む。この方法はさらに、伝送制御プロトコル(TCP)ソケットを介してサービスメッシュ内の各サービスノード間に複数のポイントツーポイント接続を確立するために、複数のサービスノードを介してメッセージングミドルウェア層を定義することを含む。
【0006】
さらに別の非限定的な実施形態によれば、スケーラブルなブローカーレスメッセージングネットワークに含まれるメッセージングミドルウェア層は、第1のアプリケーションプロセスを含む。第1のアプリケーションプロセスは、第1のサービスノードに含まれ、メッセージングミドルウェア層に従って動作し、少なくとも1つの第2のサービスノードに含まれる少なくとも1つの第2のアプリケーションプロセスとデータを交換するように構成される。メッセージングミドルウェア層は、第1のサービスノードと第2のサービスノードとの間に確立された伝送制御プロトコル(TCP)ソケット接続を動的に管理する。
【0007】
さらなる特徴及び利点が本開示の手法を通して実現される。他の実施形態及び態様は、本明細書で詳細に説明され、特許請求される開示の一部と考えられる。利点及び特徴を伴う本開示をより良好に理解するために、説明及び図面を参照されたい。
【0008】
本開示のより完全な理解のために、ここで添付の図面及び発明を実施するための形態と関連させた以下の図面の簡単な説明を参照し、そこで同様の参照番号は、同様の部分を表わす。
【図面の簡単な説明】
【0009】
【
図1A】非限定的な実施形態による、スケーラブルなブローカーレスメッセージングネットワークのブロック図である。
【
図1B】非限定的な実施形態による、スケーラブルなブローカーレスメッセージングネットワークのブロック図である。
【
図2A】別の非限定的な実施形態による、スケーラブルなブローカーレスメッセージングネットワークのブロック図である。
【
図2B】別の非限定的な実施形態による、スケーラブルなブローカーレスメッセージングネットワークのブロック図である。
【発明を実施するための形態】
【0010】
最新のクラウドアーキテクチャにおいて、アプリケーションは、より小さな独立した構成要素(分散アプリケーションと呼ばれることもある)に分離されており、開発、展開、及び保守が容易である。Pub/Subメッセージングは、これらの分散アプリケーションに即時イベント通知を提供できる。Pub/Subシステムをサポートする多くの既知のクラウドベースネットワークは、1つまたは複数のサブスクライバーがサブスクリプションを登録する中間メッセージ「ブローカー」を採用している。ブローカーは、ストアアンドフォワード機能を実行してパブリッシュされたメッセージをフィルター処理し、パブリッシャーから特定のパブリッシャーへのサブスクリプションを持つサブスクライバーにメッセージをルーティングする。しかしながら、ブローカーによって実行される操作により、エンドツーエンドのメッセージ配信にかなりの待ち時間が追加される。加えて、従来のクラウドアーキテクチャは、通常、従来の「ブローカーレス」Pub/Subメッセージングネットワークを容易にできるプロトコルをサポートしていない。例えば、ブローカーレスPub/Subメッセージングを容易にするための一般的なソリューションには、ユーザデータグラムプロトコル(UDP)マルチキャストスキームの採用が含まれる。しかしながら、UDPマルチキャストスキームは、クラウドネットワーク層によってブロックされることが多く、パブリッシャーとサブスクライバー間の通信を保護する標準的な方法がないため、多くのクラウドベースのアーキテクチャ及びクラウドサービスプロバイダではサポートされていない。
【0011】
本明細書で説明される様々な非限定的な実施形態は、スケーラブルなブローカーレスPub/Subメッセージングネットワークを提供する。1つまたは複数の非限定的な実施形態では、スケーラブルなブローカーレスPub/Subメッセージングネットワークは、サービスメッシュによって実現される負荷に基づいて、サービスメッシュ全体で動的にスケーリングでき、「Istio」などの制御プレーンの使用を通じてデフォルトで安全であり、例えば、メッセージングネットワークに含まれる各サービスノード間に「ゼロトラスト」アーキテクチャと相互トランスポート層セキュリティ(mTLS)暗号化を提供する。サービスメッシュは、サービスのインスタンス数(例えば、サービスポッドの数)を動的に増加し得るトポロジをサポートできるメッセージングミドルウェア層を使用して、スケーラビリティを達成できる。例えば、サービスメッシュは、負荷を監視し、サービスポッドを動的に追加して、特定のサービスノードに緩和を提供できる。スケーラビリティは、増加する需要に対処するための「垂直スケーリング」や、ネットワーク内の動的な多数のサービス間の通信をサポートするメッセージングミドルウェア層の機能によっても達成できる。
【0012】
1つまたは複数の非限定的な実施形態では、スケーラブルなブローカーレスPub/Subメッセージングネットワークは、「サイドカープロキシ」とも呼ばれる「サイドカー」セキュリティコンテナスタックを採用し、制御プレーン内のサービスノードと連携して相互に発見し、暗号化された通信を確立し、動的ドメインネームシステム(DNS)解決とネットワークアドレス変換を使用して負荷分散を行い、サービス間のトラフィックを動的にルーティングする。制御プレーン内のサービスは、サービスの複数のインスタンス(例えば、サービスポッド)の間で負荷を動的に追跡及び分配し、入力時に、サイドカープロキシがネットワークアドレス変換を使用して、宛先IPアドレスをサービスポッド内の宛先コンテナのIPアドレスに変換する。
【0013】
1つまたは複数の実施形態では、スケーラブルなブローカーレスPub/Subメッセージングネットワークは、サービスメッシュとネイティブに連携して、メッセージブローカを使用せずに低遅延でスケーラブルなPub/Subメッセージングを提供するように設計された、メッセージングミドルウェア層を含む。メッセージングミドルウェアは、スケーラブルなブローカーレスPub/Subメッセージングネットワーク100に含まれるサービス間のデータ交換を保護するために、サイドカープロキシ112によって相互TLS(mTLS)を使用して暗号化することができる、伝送制御プロトコル(TCP)ソケットを利用する。
【0014】
ここで、
図1を参照すると、非限定的な実施形態による、スケーラブルなブローカーレスメッセージングネットワーク100が示されている。スケーラブルなブローカーレスメッセージングネットワーク100は、制御プレーン102と、複数のサービスノード104、106、108、110(集合的に104~110と呼ばれる)を含むサービスメッシュとを使用する。4つのサービスノード104~110が示されているが、本開示の範囲から逸脱することなく、より多くのまたはより少ないサービスノードを実装することができる。
【0015】
制御プレーン102は、サービスメッシュに含まれる制御プレーンサービスインタフェース103(信号矢印103で示す)を介して、サービスノード104~110のそれぞれのサイドカープロキシ112と信号通信する。サイドカープロキシは、セキュリティ及び管理操作を提供することによって、サービスノード104~110間で交換されるPub/Subメッセージングを保護するように構成されている。セキュリティ及び管理操作には、サービス発見、負荷分散、メッセージルーティング、構成管理、認証と認可、及び、データ/メッセージ暗号化が含まれるが、これらに限定されない。1つまたは複数の非限定的な実施形態では、制御プレーン102は、例えば「ゼロトラスト」アーキテクチャ及び相互TLS(mTLS)などのセキュリティ概念を提供するために、「Istio」によって提供されるようなサービスを用いて、サービスメッシュを管理することができる。
【0016】
サービスノード104~110は、相互にデータを交換するように構成されている。各サービスノード104~110は、「サービスポッド」と呼ばれるサービスの1つまたは複数のインスタンスを含む。例えば、サービスノード104は、サービスポッド105a、105b、・・・、105n(集合的に105a~105nと呼ぶ)を含み、サービスノード106はサービスポッド107aを含み、サービスノード108はサービスポッド109aを含み、サービスノード110はサービスポッド111aを含む。1つまたは複数の非限定的な実施形態では、サービスメッシュに含まれるサービスノードは、制御サービスノードとして機能することができる。例えば、サービスノード110は、制御サービスノード110として機能することができる。
【0017】
サービスノード104~110は、それぞれ、暗号化されたデータ交換を互いに確立するように構成されたサイドカープロキシ112を含む。サービス間で交換される暗号化されたデータには、暗号化された制御メッセージング接続150および暗号化されたデータ接続152が含まれる。暗号化された制御メッセージング接続150は、例えば、時刻同期メッセージや動作の変更を保証するトップレベルの操作変更の通知などの「重要な情報」を交換する。暗号化されたデータ接続152(すなわち、データPub/Subチャネル)は、一般的なパブリッシュ/サブスクリプションデータ、すなわち、アプリケーションによって生成され、1つまたは複数のサブスクライバーによって受信されるパブリッシュデータを交換する。
【0018】
各サービスは、制御ソケット(「ctrlソケット」)116及びデータソケット118を含むことができる。ctrlソケット116及びデータソケット118は、互いに独立または分離されている。1つまたは複数の非限定的な実施形態では、各サイドカープロキシ112は、制御プレーンサービスインタフェース103を介して、制御プレーン102とデータを交換することができる。初期化時に、制御プレーン102内のサービスは、サービスノード104~110の各サイドカープロキシ112に構成データを提供する。この構成データには、展開内の暗号化通信に使用されるセキュリティ証明書、ロールベースのアクセス制御(RBAC)ルール、及び、展開内の他のサービスに関する情報が含まれるが、これらに限定されない。構成データは、特定のアプリケーションサービス114~125がサービスメッシュに含まれるそれぞれのサービスノード104~110にそれ自体を登録できるように、発見および認可の両方に使用される。1つまたは複数の非限定的な実施形態では、各サービスノード104~110は、各アプリケーションサービス114~125間の各TCPソケット接続を含むTCPリストを生成する。したがって、アプリケーションサービス114~125は、TCPリストに含まれるTCP接続に基づいて、パブリッシャーサービスノードから1つまたは複数のサブスクライバーサービスノードにメッセージを配信するメッセージングミドルウェア層を確立する。この初期化プロセスが完了すると、サービスノード104~110は、サービスメッシュ内のそれぞれと安全に通信できるようになる。
【0019】
サイドカープロキシ112は、制御プレーン102と連携して、メッセージングポリシーに基づいて、サービスメッシュ内のトラフィックを動的に追跡及び分配することによって、負荷分散を実行する。この動的ルーティングは、サービスノード104に示すように、動的DNS解決を使用して、垂直にスケーリングされたサービスの指定されたインスタンスにメッセージを配信する。例えば、サービスノード106~110によってパブリッシュされたメッセージは、負荷分散ルールに従って、サービスノード104内のポッド105a、105n、・・・、105nのそれぞれのスケーリングされたインスタンスに配信される。
【0020】
サービスノード104~110は、安全な通信を容易にするために、そのそれぞれのサイドカープロキシ112及びサービスメッシュを利用するブローカーレスPub/Subメッセージングパターンを容易にする、メッセージングミドルウェア層を確立する。1つまたは複数の非限定的な実施形態では、サービスノード104~110は、クラウドコンピューティング環境におけるブローカーレスPub/Subメッセージングを容易にする、メッセージングミドルウェア層を確立する。しかしながら、ミドルウェア層はクラウドコンピューティング環境に限定されないことを理解されたい。例えば、メッセージングミドルウェアは、本開示の範囲から逸脱することなく、組み込みシステムで使用することができる。本明細書で説明されるように、サービスノード110は、制御サービスノード110として機能することができ、一方、残りのサービスノード104~108は、ワーカーサービスノード104~108として機能することができる。制御サービスノード110は、単一サービス(例えば、サービス104)のスケーリングされたインスタンスを含む、メッシュ内の各サービスノード104~110によって受信されなければならない重要な情報を提供する役割を担う。重要な情報の例は、時刻同期メッセージ、及び、動作の変更を保証するトップレベルの操作変更の通知を含む。制御サービスノード110がサービスメッシュ内で使用される場合、すべてのワーカーサービスノード104~108は、本明細書に記載される重要な情報を受信するために、それぞれのctrlソケット116を介して、制御サービスノード110への接続を確立しなければならない。
【0021】
ワーカーサービスノード104~108は、また、データプレーンを確立するために、データソケット118を介して(例えば、1対多または多対多の関係で)相互接続される。1つまたは複数の非限定的な実施形態において、データプレーンは、複数パブリッシャー/複数サブスクライバーの関係を使用して、Pub/Subメッセージングスキームを容易にする。これは、各サービスノードがネットワーク内の他のサービスノードへの複数のポイントツーポイント接続を持つように、TCPプロトコルを使用して実装される。したがって、「N」個のサービスノードを備えた展開の場合、各サービスノードは、N-1個のTCP接続を確立する。メッセージングミドルウェアは、暗号化されたデータ接続152上のすべての発信メッセージをこれらの接続のそれぞれに配信する。メッセージサブスクリプションのフィルタリングは、ミドルウェアの受信側で行われる。サービスがサブスクライブされていないというメッセージを受信した場合、そのサービスはドロップされ得る。
【0022】
1つまたは複数の非限定的な実施形態において、制御サービスノード110は、そのメッセージングスキームに単一パブリッシャー対複数サブスクライバーの関係を使用する。したがって、高可用性が設計目標である場合、制御サービスがステートレスであるか、または、その状態がキャッシュサービスを使用して外部化されている場合、制御サービスノード110は、サービスメッシュ内のサーキットブレーカールーティングパターンの使用を通じて冗長性を提供するように構成することができる。
【0023】
メッセージが特定のアプリケーションプロセス114、117、119、121、123、及び125(すなわち、ホストアプリケーションプロセス)から送信されるとき、メッセージは、宛先サービスアドレス及び宛先ポートとともに送信される。対応するホストサイドカープロキシ112は、このトラフィックを傍受し、宛先サービスの特定のIPアドレス情報について制御プレーンに問い合わせる。制御プレーン102は、そのルーティングルール及び負荷分散ルールを使用して、ホストサイドカープロキシ112に宛先サイドカープロキシ112の特定のIPアドレスを提供する。1つまたは複数の非限定的な実施形態において、制御プレーン102は、サービスポッドのインスタンスをスケーリングして、それぞれのサービスノード104~110を集約する。例えば、制御プレーン102は、スケーラブルなブローカーレスメッセージングネットワーク100内の負荷及び利用可能なリソース(例えば、CPU処理、RAM使用量など)に基づいて、特定のサービスノード104~110内のサービスポッドの数を自動的に増やすことができる。
【0024】
ホストサイドカープロキシ112は、宛先サイドカープロキシ112の公開鍵を用いて送信データ(例えば、パブリッシュされたメッセージ)を暗号化し、それを送信する。宛先サービスノードに含まれる宛先サイドカープロキシ112は、着信データ(例えば、着信メッセージ)を受信し、それをその秘密鍵を用いて復号し、復号されたデータ/メッセージをサービスポッドに含まれている宛先アプリケーションプロセス114、117、119、121、123、及び125に配信する。
【0025】
ここで、
図2を参照すると、別の非限定的な実施形態による、スケーラブルなブローカーレスメッセージングネットワーク200が示されている。スケーラブルなブローカーレスメッセージングネットワーク200は、複数のサービスノード104、106、108と、1つまたは複数のサービスフォワーダポッド202a及び202bとを含む。サービスノード104はサービスポッド105a~105nを含み、サービスノード106はサービスポッド107a及び107bを含み、サービスノード108はサービスポッド109aを含む。
【0026】
サービスフォワーダポッド202a及び202bは、メッシュネットワーク内の複数のサービスポッドの複数のスケーリングされたインスタンス間でメッセージ154を統合及び転送する機能を容易にする。2つのサービスフォワーダポッド202a及び202bが示されているが、本開示の範囲から逸脱することなく、より多くのまたはより少ないサービスフォワーダポッドを使用することができる。
【0027】
サービスフォワーダポッド202a及び202bは、メッセージ154を対応するサービスノード104または106に集約し、宛先サービスポッドのサイドカープロキシの特定のIPアドレス情報について制御プレーンに問い合わせることによって、出力時にサービスポッド間でメッセージを分配するように構成されている。制御プレーンは、負荷分散ルールに従って、サービスポッド105a~105nまたは107a~107bにIPアドレスを提供する。サービスフォワーダポッド202a及び202bは、不均衡な接続を解決できる。例えば、サービスフォワーダポッド202a及び202bは、サービスポッドの各インスタンスが増加するにつれて、複数の垂直にスケーリングされたサービスポッドが不均衡な多対多接続で同じパブリッシュ及びサブスクライブネットワーク内で通信するときに発生する、不均衡な接続を解決することができる。例えば、不均衡な接続は、第1のサービスノードの1つのサービスポッドに、第2のサービスノードのサービスポッドへの対応する接続がない場合に発生する可能性がある。したがって、スケーリングされたサービスノード(例えば、サービスノード104)からのアプリケーションサービス114は、他のサービスノード106~110内の他のアプリケーションサービスによってパブリッシュされたメッセージを受信できない場合がある。その結果、サービスポッド105a~105nがそれぞれのサブスクライバー宛先への直接接続を持たない場合、すべての宛先サブスクライバーサービスノード107a~107bとの個別のポイントツーポイント接続が確立されていないため、不均衡な接続が発生する可能性がある。フォワーダポッド202a及び202bは、前述の問題を解決でき、サービスメッシュの均衡を維持するようにメッセージをルーティングできる。
【0028】
以下の特許請求の範囲内のすべての手段またはステッププラス機能要素の対応する構造、材料、行為、及び均等物は、具体的に請求された他の請求要素と組み合わせて機能を遂行するための任意の構造、材料、または行為を含むことが意図されている。本開示の説明は、例示及び説明を目的として提示しているが、網羅的であることも、開示した形態で実施形態に限定されることも意図されていない。本開示の範囲及び趣旨から逸脱することなく、多くの変更及び変形が当業者には明らかである。実施形態の選択及び説明は、本開示の原理及び実際の応用を最良に説明するために、及び、他の当業者が、意図した特定の用途に適した種々の変更とともに種々の実施形態に対する本開示を理解できるようにするために行った。
【0029】
本開示に対する好ましい実施形態について説明してきたが、当業者が、現在及び将来の両方において、以下の特許請求の範囲に含まれる種々の改善及び強化を行い得ることを理解されたい。これらの特許請求の範囲は、最初に説明した本開示に対する適切な保護を維持するものと解釈すべきである。
【国際調査報告】