説明

自己管理型分散メディエーションネットワーク

【課題】分散メディエーションネットワークに自律的機能を提供する。
【解決手段】複数の異なるタイプのネットワークモジュールを有する、分散メディエーションネットワーク及びこれを用いる方法を提供する。各モジュールは、各モジュールを通過するネットワークトラフィックの非相互的なパスを有し、ネットワーク全体にかかるネットワークトラフィックを分散する処理は、自律的コントロールプレインによって管理される。

【発明の詳細な説明】
【技術分野】
【0001】

本発明は、メッセージ散在型のピアツーピア通信の要件を備えると共に、そのような散在しているメッセージ全体に対する情報収集をある程度まで制御することができる自己管理型分散メディエーションネットワークに関する。
【背景技術】
【0002】
発明の背景
ピアツーピア(P2P)通信システムでは、計算主体(ピア)はソフトウェア的な接続(仮想チャンネル)を相互に確立することができる。そのため、P2P通信システムでは、ピアは、互いに通信することができ、計算タスク及び計算リソースを共有することができる一方で、集中的制御を行う必要がない。P2P通信システムは、1つ以上のサーバを備える汎用ネットワーク上において動作する。そして、ピアは、ネットワーク上の少なくとも1つのサービスに対して情報を提供(「発行」)し、ネットワーク上のサービスに登録(「購読」)することで、他のピアが発行した情報を取得する。
【0003】
集中的制御の機能を備えることによる利点を有するメッセージ通信システムも、広く知られている。このシステムでは、全てのメッセージは、メッセージに対する計算処理(メディエーション)が実行される中心点を経由して、発行ピアから購読ピアへ送られる。入力メッセージから生成された新しいメッセージ(ダイジェストなど)は、適切な購読ピアへ送信される。
【0004】
従来技術の集中メディエーションシステムでは、全てのメッセージトラフィックは、メディエーションサービスを行うネットワーク中心点を経由して伝送される。論理的な要素を考慮すれば、このシステムは、星型構造をしたモデルとして構築され、メディエーションタスクが実行される制御中心点を備える。このモデルの概念図を図1Aに示す。図1Aにおいて、各々の情報発信体(発行ピア)及び情報受信体(購読ピア)は、中央メディエーションハブと通信回線を介して接続されている。ほとんどの場合、情報発信体及び情報受信体は異なるモードで動作する同一の実体を表し、それらは構造的には互いに区別することができない。
【0005】
そのような構造に起因する問題点は、広く知られている。星型構造を有する集中メディエーションシステムでは、メディエーションが行われる制御中心点において、回線容量が不足する事態に陥りやすい。論理的な星型モデルを高密度に接続された物理ネットワーク上で実現する場合でも、基本的に全ての情報は制御中心点を経由して伝送されるため、制御中心点とネットワークを結ぶ利用可能な回線容量の状況次第では、特有のスループット障害が発生する(図1Bを参照)。ネットワーク技術の進歩により、利用可能な回線容量は次第に向上しているが、回線容量の増加は特有の経済的負担をもたらす。また、状況によっては、システム全体のスループットが実際に制限される場合がある。この制限の具体例として、ユーザ数の制限や、各ユーザが情報を送受信する際の回線速度の制限がある。
【0006】
P2P構造も集中メディエーション構造も完全には要求を満たさないシステムの例が、現実には数多く存在する。多くの場合、メッセージ通信システム全体に送信されたメッセージ全体に対する処理を行うための論理プロセスが要求される。上述したどちらの構造も完全には適切でないシステムの例として、以下のものが挙げられる。第一に、潜在的な買い手と売り手が相互に通知する商取引システムで、取引において互いの要求が合致したことを保証する目的でメディエーションが必要である。第二に、情報が分散される前に、中心的権限の保有者が情報の編集管理を行う仲介型(mediated)ニュース及び出版システムである。第三に、積極的には制御されないが、セントラル・レポジトリで保管される情報フローに関する順序付きログが要求されるシステムである。第四に、直近の会話の背景(コンテキスト)を現在進行中の会話に参加しているユーザに提示することができる会話サービスである。第五に、暗号鍵の配布(いわゆる鍵配布問題)である。第六に、分散ネットワーク上のデータ(状態)及びサービスを検索するシステムである。第七に、モバイル機器ユーザの場所を特定して、他のモバイル機器ユーザと通信を行うためのシステムである。
【0007】
上記の例は全て、ピアツーピア通信の要件と、通信を全体的に見渡したときの情報フローの集中メディエーションの要件との両方を有している。
【0008】
参照によって本明細書に援用される、出願人の係属中米国特許出願10/903,156号は、上述した欠点の多くを克服する分散メディエーションネットワークに関する記載がある。このタイプの分散メディエーションネットワークは、論理的に分離した多数の実体間にサービスを分散することによって、一つのサーバでメディエーションサービスを提供する際に発生する問題を回避する。そのためには、メディエーションアプリケーションは、複数の分離したメディエーションアプリケーションコンポーネントに論理的に分割可能でなければならない。これにより、メディエーションサービスは、サーバのリソースプール全体に分散された1セットのメディエーションセグメントサービスに分割可能となる。各サーバはメディエーションサービスを、1つ以上のメディエーションセグメントサービスとして提供する。以下では、この手法を「分散メディエーション」と呼ぶ。
【0009】
全てのメディエーションポイントで回線容量の問題を適切に回避するためには、利用可能なリソースプール全体にメディエーションサービスを均等にロードバランシング(負荷の均衡を保つ処理)できなければならない。時間の経過と共に要求量が変動するシステムにおいては、リソースプール全体で負荷の均衡が動的に保たれなければならない。そのため、アプリケーションの分割態様は動的に変更可能でなければならない。従って、メディエーションセグメントサービスを一のサーバから他のサーバへ移動できることが必要である。また、メディエーションセグメントサービスが移動する際には、外部から観測される因果関係が保存されなければならない。すなわち、各メディエーションセグメントサービスが相互に作用する順序は、メディエーションセグメントサービスの実行形式の変化に関わらず保存されなければならない。そのような相互作用の順序が乱れた場合に深刻な結果を引き起こす多数のシステム(例えば、金融システム)において、この要件は極めて重要である。
【0010】
分散メディエーションネットワークにおいて、情報はコンテンツによる分類がなされ、メディエーションの要求は、そのコンテンツに基づいた分類に応じて、異なるプロセスで別々に満たされる。メディエーションの要求量が分類に応じて時間変化すると、対応するメディエーションアプリケーションコンポーネントは、システム全体に対するネットワーク負荷及び計算負荷の両方の均衡を保つように物理的に移動される。そのようなロードバランシングにより、メディエーションを行う利用可能なサーバが有する計算リソース、入出力リソース及びメモリリソースの総量に影響される閾値まで、メディエーションの要求量が満たされることになる。この閾値を超えると、利用可能なリソースが負荷を処理できないために、サービスの品質は低下することになる。この問題に対処するために、分散メディエーションネットワークは、計算リソースをシステムへ追加するための機構を提供することが好ましい。同様に、メディエーションのために分割されたアプリケーションに対して過剰な計算リソースが利用可能な場合には、分散された計算能力(計算リソース)を除去できることが好ましい。
【0011】
「自律的な(autonomic)」という文言は、歴史的には、呼吸速度や心臓の鼓動の制御など身体を制御するために意識下で作用する神経システムの観点から使用されてきた。最近では、類似の自己制御が可能なコンピュータネットワークを意味する用語として用いられている。数あるシステムの中でも、自律的システムは、外部入力を必要とすることなく自己修復、自己構築、自己監視及び自己最適化をすることができる。実際のところ、自律的システムの実例において、ユーザが自律的に生じる変化を検知することは事実上不可能である。
【0012】
自律的計算システムは、自律的要素から構成される。これらの自律的要素は、システムをいくつかの観点から監視する論理的構成物であり、システムの出力を分析し、特定の動作を行うことでシステムを調整する。これにより、システム全体は、「サービスレベル合意(service level agreements(SLAs))」と表現される特定の要求に適合することができる。SLAによって、業種によって必要とされる情報技術リソース及びリソースが維持する特定のアプリケーションが決定される。
【0013】
自律的要素は、自己組織化しており、相互に相手を発見し、独立して動作し、必要に応じて交渉あるいは協力し、自分自身を組織化することができる。これにより、リソースのボトムアップ要求量と、リソースのトップダウンのビジネス向けアプリケーションとの両方を考慮してシステム全体を突発的かつ階層的に管理することで、特定の目標を達成する。
【0014】
本発明の目的は、分散メディエーションネットワークに自律的機能を提供することにある。
【0015】
本明細書において、「物理ノード」の文言は、物理的機械を意味する。「ノード」及び「論理ノード」の文言は、互いに区別なく使用され、状態特性(state properties)を有する箇所を意味する。メディエーションネットワークの論理的トポロジーの観点からは、「モジュール」は関連する論理ノードの機能を提供する。
【0016】
さらに、「高水位線(high watermark)」の文言は、ネットワーク内の一の要素あるいはノードが処理することができるトラフィックの最大閾値を表す用語として用いられる。また、「低水位線(low watermark)」の文言は、そのトラフィックの最小閾値を表し、各要素は、高水位線と低水位線との間の範囲におけるトラフィックレベルを処理するように構成されている。
【発明の概要】
【0017】
発明の要約
本発明の第1実施形態に係る分散メディエーションネットワークは、
メディエーションネットワークとクライアントプログラムとの間で、ネットワークトラフィックを送受信するローカルポイント・オブ・プレゼンス(LPP)モジュールと、
メディエーションタスクを担当するメディエータ(M)モジュールと、
入力メッセージのコンテンツを解析するメディエータルータ(MR)モジュールであって、各MRモジュールは、前記コンテンツに基づいて予め決定されたメディエーションタスクへ入力メッセージをルーティング(経路制御)するMRモジュールと、
メッセージを前記LPPモジュールのうちの少なくとも1つへ転送する伝送プロキシ(TP)モジュールと、
から成る複数のタイプのネットワークモジュールであって、MRモジュール、Mモジュール及びTPモジュールのそれぞれは、それらを通過するネットワークトラフィックの全てのパス(経路)が非相互的になるように適合されているネットワークモジュールと、
モジュール間でのネットワークトラフィックの分散を管理する自律的コントロールプレインと、
を備える。
【0018】
好ましくは、ネットワークは一方向メディエーションサイクルに従ってネットワークトラフィックを接続する。すなわち、一方向メディエーションサイクルにおいて、LPPモジュールはMRモジュールを指定し、次にMRモジュールはMモジュールを指定し、次にMモジュールはTPモジュールを指定し、そして次にTPモジュールはLPPモジュールを指定する。
【0019】
本発明の第2実施形態に係る、コンピュータネットワークにおけるネットワークトラフィックのフロー(流れ)をメディエート(仲介)する方法では、コンピュータネットワークはメディエーションネットワークを有しており、メディエーションネットワークは、
メディエーションネットワークとクライアントプログラムとの間で、ネットワークトラフィックを送受信するローカルポイント・オブ・プレゼンス(LPP)モジュールと、
メディエーションタスクを担当するメディエータ(M)モジュールと、
入力メッセージのコンテンツを解析するメディエータルータ(MR)モジュールであって、各MRモジュールは、前記コンテンツに基づいて予め決定されたメディエーションタスクへ入力メッセージをルーティングするMRモジュールと、
メッセージを前記LPPモジュールのうちの少なくとも1つへ転送する伝送プロキシ(TP)モジュールと、
から成る複数のタイプのネットワークモジュールであって、MRモジュール、Mモジュール及びTPモジュールのそれぞれは、それらを通過するネットワークトラフィックの全てのパスが非相互的になるように適合されているネットワークモジュールと、
モジュール間でのネットワークトラフィックの分散を管理する自律的コントロールプレインと、
を備える。
【0020】
この方法において、入力メッセージはメディエーションサイクルに従って伝達され、前記メディエーションサイクルは、
LPPモジュールが、少なくとも1つのMRモジュールの1つへ入力メッセージをそれぞれ転送するステップと、
前記転送されたMRモジュールが、入力メッセージのコンテンツを解析し、解析されたコンテンツに基づいて予め決定されたMモジュールへ前記入力メッセージをルーティングするステップと、
前記予め決定されたMモジュールが、前記解析されたメッセージに対してメディエーションタスクを実行し、メディエートされたメッセージを前記TPモジュールの1つへそれぞれ送信するステップと、
前記メディエートされたメッセージを受信したTPモジュールが、前記メディエートされたメッセージを前記LPPモジュールの少なくとも1つへ転送するステップと、
から構成される。
【0021】
本発明は、各々のノード、すなわちモジュールにかかるトラフィックの負荷を自律的に管理する分散メディエーションネットワークを提供する。自律的コントロールプレインは、ネットワークが検出した自身のネットワークの状況に応じて、モジュール(ノード)間のネットワークトラフィックの分散を調整する。
【0022】
モジュールを通過するネットワークトラフィックのパスは非相互的である。すなわち、モジュール間のネットワーク上のパスは一方通行であるが、モジュールはネットワークトラフィックを複数のモジュールとの間で送受信することができる。例えば、MRモジュールは、ネットワークトラフィックを複数のLPPモジュールから受信することができ、ネットワークトラフィックを複数のMモジュールへ送信することができる。しかし、MRモジュールは、ネットワークトラフィックをLPPモジュールへ送信することや、ネットワークトラフィックをMモジュールから受信することはできない。その結果、ネットワークトラフィックがLPPモジュールからMRモジュール、Mモジュール及びTPモジュールを経てLPPモジュールへと通過する循環ネットワークができる。
【0023】
ネットワークトラフィック、すなわちメッセージと同様に、自律的コントロールプレインによって発行されたコマンドを実行するために、制御メッセージ及び制御信号がネットワーク上を通過する。制御メッセージは、モジュール間を連結する非相互的なパスを、ネットワークメッセージのように必ずしも一方通行的にたどる必要はない。それにもかかわらず、いくつかの実施形態においては、ネットワークトラフィックがたどるノード間の一方通行のパスに逆行して、制御メッセージが流れることはできない。すなわち、そのような実施形態においては、ネットワークトラフィックがたどるサイクル(循環路)に逆らう方向へ制御メッセージを転送することができない。例えば、制御メッセージは、MモジュールからMRモジュールへ、あるいはLPPモジュールからTPモジュールへと通過することができない。
【0024】
好ましい実施形態においては、自律的コントロールプレインは、分散ネットワーク内のノードのステータス(状態)に関する情報を、分散ネットワークに組み込みのセンサインターフェースから受信する。そして、エフェクタインターフェースを介してノードに対してアクション(動作)を命令する。
【0025】
好ましい実施形態においては、自律的コントロールプレインは、多数のリソースにわたって分散されている。これにより、1つ以上のリソースが正常に機能しない場合でも、自律的コントロールプレインは動作を継続することができる。さらに、自律的機能に基づく計算負荷の分散を任意の時に最適化して実行することができる。例えば、一のリソースが自律的制御に無関係なタスクを処理するという負荷の高い要求を担当している場合に、他のリソースは自律的制御の負担を引き受けることができる。
【0026】
従って、自律的コントロールプレインは、ネットワーク全体の状況を監視し、利用可能なリソースの使用を最適化するためにネットワーク構造の形状を調整することができる。特に、メディエーションタスクは提供されたメディエーションサービスのセグメント(断片)であり、利用可能なMモジュールにわたってメディエーションサービス全体を分散させる目的で、自律的コントロールプレインは効果的である。これにより、どのMモジュールにも負荷が過剰にかかることはない。また、自律的コントロールプレインは、Mモジュール及びLPPモジュールから送信されるトラフィックの送信先を変更することで、MRモジュール及びTPモジュールにそれぞれかかるトラフィックレベルを管理することもできる。
【0027】
また、自律的コントロールプレインは、システムが十分な処理能力を有することを保証するために、少なくともクロスストリームモジュール(Mモジュール及びMRモジュール)の数を、そして好ましくはTPモジュール及びLPPモジュールの数を、増減することができる。好ましくは、自律的コントロールプレインは、どのモジュールも過大な負荷がかからないことを保証する方法で、トラフィックをLPPモジュール、MRモジュール及びTPモジュールに通過させる。上述した通り、トラフィックは、要求されるメディエーションセグメントサービスに応じたMモジュールを通過する。
【0028】
好ましくは、自律的コントロールプレインは、各種類のネットワークモジュールに対する単一の自律的マネージャであるクラウドマネージャ(cloud managers)と、各クラウドマネージャに対する自律的マネージャとして動作する全体的な分散メディエーションネットワークマネージャと、を有する階層構造を備える。いくつかの例において、クラウドマネージャは、例えばネットワーク上の地理的領域に基づいて分割された区域を含むことができる。そのような構造が有する利点の1つは、Mモジュールの使用を最適化するクラウドマネージャは、独立して他種類のネットワークモジュールのように振舞うこともできるということにある。例えば、LPPモジュールを担当している第1のビジネスエンティティ(business entity)が、メディエーションサービスを提供するために、Mモジュールを担当している第2のビジネスエンティティを使用する場合、これら2つのビジネスエンティティは、セキュリティ上の理由で互いのリソースへのアクセスを許可することに対して難色を示す。自律的コントロールプレインの好ましい階層構造は、これら2つのタスクを確実に分離するために十分である。
【0029】
分散メディエーションネットワークマネージャは、リソースをクラウドマネージャへ割り当てることを担当するが、これらのリソースが意図している目的を認識している必要はない。
【0030】
本発明の分散メディエーション構造は、多数のサーバにわたってメディエーションサービスを自律的にロードバランシングすることができ、これにより、仲介型アプリケーションによって消費されるリソースを動的に調整することができる。前記ロードバランシングは、仲介型アプリケーションへ転送されたメッセージ及び仲介型アプリケーションから転送されたメッセージの因果的配信則(causal delivery)を遵守しつつ、サービス使用中に中断されることなく達成される。
【0031】
先の記述から、本発明の主要な利点を以下に列挙する。
− サービスが場所に依存しない。
− ノードがシステムに関する全体的な知識を必要としないという点において、構造が拡張可能である。
− 構造が動的である。すなわち、サービスを再配置することができ、また、必要に応じて新しいノードを透過的に追加あるいは削除できる。
− 構造が自律的である。すなわち、リソースプールのサイズ、分散メディエーションネットワークトポロジー及びサービスの分散を自動的に最適化するための運用指針を有する。
【図面の簡単な説明】
【0032】
図面の簡単な説明
次に、本発明に係る実施例について、添付した図面を参照しながら詳細に説明する。
【0033】
図1Aは、星型の論理的構造を有する従来技術の仲介型情報フローシステムを表すノード図である。
【0034】
図1Bは、図1Aにおけるシステムの物理的構造を概略的に表すノード図である。
【0035】
図2Aは、集中ネットワーク論理的構造を有する従来技術の仲介型情報フローシステムを表すノード図である。
【0036】
図2Bは、図2Aにおけるシステムの物理的構造を概略的に表すノード図である。
【0037】
図3は、全ての有効な分散メディエーションネットワークノードの一部である基本サイクル(LPPノード−>MRノード−>Mノード−>TPノード−>LPPノード)を示す最小限の構成を表すノード図である。
【0038】
図4は、本発明に係るキュービックな(cubic)分散メディエーションモデルを表すノード図である。
【0039】
図5は、本発明に係る自律的コントロールプレインが担当すべき機能を例示する。
【0040】
図6は、本発明の好ましい実施形態の自律的コントロールプレインの階層構造を例示する。
【0041】
図7A乃至7Fは、キュービックな分散メディエーション構造において、送信Mモジュールm2から受信Mノード(モジュール)m1へメディエーションタスクを譲渡する処理の各ステップを示す。
【0042】
図8は、図4におけるキュービックな分散メディエーションモデルへのMノードの追加を例示する。
【0043】
図9は、図4におけるキュービックな分散メディエーションモデルとトポロジー的に等価なノード図である。このいわゆる円筒状の(cylindrical)レイアウトを用いることで、任意の分散メディエーションネットワークへの変化について簡潔に説明することができる。
【0044】
図10A乃至10Eは、少なくとも2つのLPPノードが1つの共通のMRノードに接続されている開始状態から、一のLPPノードが別の新しいMRノードに関連付けられている状態に変更する処理の各ステップを示す。
【0045】
図11A乃至11Dは、同様に、Mノードが新しいTPノードに関連付けられている状態に変更する処理の各ステップを示す。
【0046】
図12A乃至12Dは、MRノード及びTPノードを追加する処理について例示する。
【0047】
図13は、分散メディエーションネットワーク内のノード間でネットワークトラフィックを分散する際に、自律的コントロールプレインが取る動作の概要を示す。
【発明を実施するための形態】
【0048】
発明の詳細な説明
最初に、本発明の背景として、P2Pモデル及び集中仲介型メッセージモデルに関して説明する。以下の説明において、「ソース」という文言は、新しいメッセージを生成してネットワークサービスへ送信するクライアントを意味し、「シンク」という文言は、ネットワークサービスからのメッセージを受信するクライアントを意味する。ネットワークサービスにおける各クライアントは、ソース、シンクあるいはその両者の機能を有する。別の専門用語を用いると、情報のソースは「発行者(publishers)」と呼ばれ、情報に対するシンクは「購読者(subscribers)」と呼ばれる。
【0049】
P2Pモデルにおけるコンテンツベースのルーティングを行う際には、適切なソースと適切なシンクとの間で仮想チャンネルを確立することで、ソースからシンクへのメッセージの効率的な伝送が可能になるように、ネットワークが構成される。伝送効率を向上させるためには、一般的には、完全結合グラフ(fully connected graph)から不必要なエッジ(ノード間を接続している通信線のこと)を検出して削除する。その結果生じた最適化されたグラフは、利用可能なネットワークインフラに適合している。P2P仮想チャンネルを確立するためには、一のピアによる「関心の表明」(expression of interest)と、別のピアによる「関心の承諾」(acceptance of that interest)と、が要求される。
【0050】
一方、集中仲介型メッセージモデルにおいては、全てのメッセージは集中メディエーションノードを介して伝送される(図1A及び図1Bを参照)。メディエーションネットワークに関する専門用語において、「メディエーションサービス」は、全ての入力メッセージへ適用されるある種の計算処理を意味する一般的な用語である。また、「仲介型構造における特定のインスタンスに対するメディエーション要求」は、提供される全てのメディエーションサービスの照合を意味する。また、「メディエーション権限」は、メディエーションサービスを提供する人を意味する。また、「メディエーションネットワーク」は、メディエーション権限の制御下にある物理的な計算主体(機械)から成るネットワークを意味する。また、「メディエーションサーバ」は、1つ以上のメディエーションサービスを提供する物理的機械を意味する。
【0051】
一般的な仲介型情報フローシステムを単純化したモデルにおいては、メディエーション権限へ送信されたメッセージは、以下の複数のタイプのうちの1つへ当てはめることができる。そのタイプとは、情報のソースとして動作するプロセスが生成した新しい情報と、メディエーション権限が有する状態に関する、迅速な応答を要求する問い合わせ(クエリー)と、メディエーション権限によって新しい関連情報が受信される度に、進行中の応答を要求する本質的かつ永続的な問い合わせ(クエリー)である関心の表明と、である。
【0052】
完全仲介型モデルにおいてさえ、各仮想チャンネルにかかる回線容量の要求量を低減して、ネットワークサービスをシンクへ転送する際に、関心の表明が重要であるということは、注目に値する。
【0053】
上記の定義に照らすと、「仲介型情報フローシステム」は、中央のメディエーション権限へ送信されると共に、中央のメディエーション権限から送信される情報を含むメッセージから構成されるシステムである。この権限によって実行される動作(アクション)には、時系列に沿った受信メッセージに関するログの記録と、ある時点までに受信されたメッセージ全体に対する演算処理と、メッセージの内容に基づいてある種の計算処理を実行した後に行われる他のクライアント間における入力メッセージの分散と、がある。
【0054】
本発明は、コンテンツベースの非集中型P2Pモデルと、単純な集中型かつ仲介型のネットワークモデルと、の複合モデルに関する。この複合モデルでは、集中メディエーションノードが1つだけ備えられる代わりに、多数の独立した機能コンポーネントを備えるメディエーションネットワーク内に、種々のメディエーションサービスが分散して配置される。このような複合モデルにおいて、関心の表明は、ソースノードとMノードとの間で仮想チャンネルを開く目的で用いられる。また、関心の表明は、Mノードとシンクノードとの間で仮想チャンネルを開く目的でも用いられる。従って、シンクノードが受信したメッセージは、メディエーションサービスに登録された関心の表明によって所轄される。ソースノードとシンクノードとの間には2つ以上の論理的な飛び(logical hops)が存在するために、ソースノードとシンクノードとの間で発生する待ち時間は、単純なコンテンツベースのルーティングに要する時間に比べて必然的に長くなる。状況によっては、より静的な情報が利用可能になるに従って、各々の論理的な飛びにおける待ち時間を順次低減することができる。単純な仲介型モデルと比べて、この複合モデルでは、メディエーションタスクが多数のノードにわたって分散されているために、より複雑な構造を有する(図2Aを参照)。しかしながら、集中型かつ仲介型のモデルに固有の集中メディエーションノードで発生する障害は除去されるので、結果として生じる構造は拡張可能である。
【0055】
図3は、「静止している(quiescent)」あるいは「定常状態(steady state)にある」、すなわち論理的トポロジーの変化がない状態にある(複合)分散メディエーションモデルが備える機能コンポーネントを表す最小限のトポロジーを示す。図3は、データがシステム内部において種々のコンポーネントノード間をどのように流れるかを示している。
【0056】
無限の規模を有する分散メディエーションネットワークにおいても、必要なコンポーネントノードは全て、この最小限のトポロジーに含まれており、ソースと、シンクと、ローカルポイント・オブ・プレゼンスと、メディエータルータと、メディエータと、伝送プロキシとが備えられている。以下、これらの用語及び他の用語について定義する。
【0057】
ローカルポイント・オブ・プレゼンス(LPP)は、クライアント(ソース及びシンク)と分散メディエーションネットワークの他のネットワークノードとの間の仲介者(intermediary)として作用する。ローカルポイント・オブ・プレゼンスは、ネットワーク上の特定の地理的領域に対するメディエーションサービスを代理するネットワークノードである。メディエーションサービスの各クライアントは、一のローカルポイント・オブ・プレゼンスのみと通信して、メディエーション構造内の他のノードとは通信しない。システムは任意の数のLPPを備えることができ、各LPPはそれぞれのクライアントにサービスを提供する。
【0058】
メディエーションルータ(MR)は、入力メッセージのコンテンツを分析して多数のクロスストリーム上のMノードの内の1つへ入力メッセージを送信するメディエーションルータモジュールを内部に組み込んでいるネットワークノードである。各メディエーションルータは、アップストリームネットワークの先頭に位置し、多数のLPPからメッセージを受信する。また、メディエーションルータは、例えば、担当する地理的領域内のローカルなサービスを使用可能にするために、入力メッセージに関するログを記録する。
【0059】
メディエータ(M)は、メディエータモジュールを内部に組み込んでいるネットワークノードであり、メディエーション要求のサービスを提供する。各メディエータは、関連するダウンストリームに対してメッセージを分散する機能を有し、該当するメッセージをLPP、そして最終的にシンクへと転送させるために用いられる。それぞれのメディエータモジュールは、1つ以上のメディエーションタスクを実行する。それぞれのタスクは、特定のタイプのメッセージセグメントへ適用される一つのメディエーションセグメントサービスを表している。メディエータモジュールは、受信する全ての入力メッセージをログに記録して、これらの入力メッセージを関連するダウンストリームの伝送ネットワークへ転送するように、構成することもできる。この場合、メディエーションタスクは、このように生成された入力メッセージを記録したログに関する問い合わせ(クエリー)のサービスを提供する。
【0060】
伝送プロキシ(TP)は、伝送プロキシモジュールを内部に組み込んでいるネットワークノードである。伝送プロキシモジュールは、1つ以上のMノードから出力されたメッセージを分析し、登録された関心の表明に基づいて、どのシンクへ送信メッセージを転送するかを決定し、各メディエータに関連付けられるダウンストリームネットワーク上のメッセージを転送する。
【0061】
後で詳細に説明する通り、本発明の好ましい実施形態は、ネットワークモジュール(ノード)に加えて、自律的コントロールプレインを備える。自律的コントロールプレインにより、システムの自律的な制御が可能となる。
【0062】
アップストリームネットワーク(ソースからメディエータルータまで)は、メディエーションの機能を有するが、コンテンツベースではない。メディエータルータとメディエータとの間におけるルーティングは、いわゆるクロスストリームネットワークにあり、コンテンツベースである。ダウンストリームネットワークもコンテンツベースのルーティングを要求する。実際のところ、メディエータルータとLPPとの間におけるルーティングは、それ自体複合的なコンテンツベースのメッセージ転送機構と見なすことができる。この複合モデルの一部分としてメッセージ空間を分割することで、拡張可能でない集中メディエーションノードにおける障害を発生させることなく、発行・購読モデルに対してミッドストリーム(mid−stream)メディエーションサービスを導入することができる。
【0063】
「静止している」あるいは「定常状態にある」システムに対しては、分散メディエーションネットワークに関する以下の記述は常に成立する。これらの記述は、分散メディエーション構造が有する「全体的な不変条件」と考えられる。
【0064】
・全てのノードは、「LPP−>MR−>M−>TP−>LPP」サイクルの一部分である。
・全てのLPPは、一のMRを常に指定する。
・全てのMRは、任意の数のMを指定することができる。
・全てのMは、一のTRを常に指定する。
・全てのTPは、任意の数のLPPを指定することができる。
ここで、記号「−>」は、一方向への接続(方向付きエッジ)を表す。
【0065】
上記の「全体的な不変条件」を検討することで、なぜ、図3に例示したネットワークが最小限の分散メディエーショントポロジーであるかは自明である。このネットワークは、メディエーションが分散される2つのMと、1つのLPPと、1つのMRと、1つのTPとから構成される。また、「LPP−>MR−>M−>TP−>LPP」のようにノードが一方向に沿って接続された単純なサイクルとして、全ノードが構成されている。
【0066】
より現実的かつ複雑な分散メディエーションネットワークを、図4に示す。以降「キュービックな(cubic)」ネットワークとして知られるこのネットワーク構成には、4種類のノードが2つずつ含まれる。キュービックなネットワークは、一般的な分散メディエーションネットワークの特性をより詳細に例示する。
【0067】
循環(cyclic)ネットワークにおいて、接続されたノード間のメッセージフローは一方通行である。キュービックなネットワークにおける全てのノードは、少なくとも1つのサイクル「LPP−>MR−>M−>TP−>LPP」を構成するコンポーネントである。キュービックなネットワークは、「ファンイン/ファンアウト(fan in/fan out)」トポロジーを示す。すなわち、「ファンイン(fan−in)」トポロジーにおいては、全てのLPPは、メッセージを唯一のMRへ送信すると共に、各MRは複数のLPP(図4においては、2つのLPPが存在する。)からメッセージが送信される。また、「ファンアウト(fan−out)」トポロジーにおいては、全てのMRは、メッセージを任意のMへ送信する。また、「ファンイン(fan−in)」トポロジーにおいては、全てのMは、受信した任意のメッセージを唯一のTPへ送信すると共に、各TPは、複数のMからメッセージが転送される。最後に、「ファンアウト(fan−out)」トポロジーにおいては、全てのTPは、メッセージを任意のLPPへ送信する。
【0068】
また、最小限の循環ネットワーク及びキュービックなネットワークのような分散メディエーションネットワークは、他にも重要な特性を示す。ネットワーク内の全てのノードから他のノードへは方向付き経路が存在している。グラフ理論の用語を用いると、全てのノードから他の全てのノードへの推移閉包が常に存在すると言える。この特性が循環ネットワークに当てはまることは自明である。しかしながら、この特性は、「全体的な不変条件」が持つ特性の帰結として、より複雑な分散メディエーションネットワークにも当てはまる。方向付き経路は、方向付き循環グラフと常に見なすことができる。このように、一般化された分散メディエーションネットワーク内の任意の2つのノードA及びノードBに対して、ノードAからノードBを経由してノードAへ至るサイクルが常に存在する。ここで、キュービックな(単一のレベルの)ネットワークにおいて、そのようなサイクルの最大経路長は4ではなく8であることに留意するべきである。
【0069】
さらに、各ノードは、全体への依存性も、当該ノードの直近の領域を除くネットワーク全体に関する詳細な知識も有していない。各ノードは、自身が直接指定するノードに関する情報のみを記憶する。また、ノードは、ネットワーク内の各ノードを指定するノード全体に関する情報を記憶する。この情報は、ノード自身における参照カウント値として記憶されるか、当該ノードを直接指定する全てのノードにおけるクレジットバランス(credit balance)値として記憶されることもできる。いずれの場合も、他ノードの指定を行うノードに関する情報は記憶される必要はない。実際のところ、全てのノードは、残りのシステム全体に関するあらゆる追加情報も記憶する必要がない。
【0070】
本発明に係る分散メディエーションネットワークのさらに重要な特性は、動作が決定論的であり、各ノード内における動作の順序が確定していることにある。すなわち、メッセージAの後に到着するメッセージBは、メッセージAの後に転送されることが保証される。同様に、複数のメッセージは、ノード間の直接的なリンク上で互いに追い越すことはない。従って、任意の2つのノードN1及びノードN2に対して、N2がN1によって指定される場合、メッセージAがN1からN2へ送信され、続いてメッセージBがN1からN2へ送信されると、N2はメッセージBを受信する前に常にメッセージAを受信することになる。
【0071】
分散メディエーションネットワークアプリケーション
アプリケーションAは、メッセージ指向パラダイム(message oriented paradigm)に基づいて構成されている。Aは、セットMから抽出される、部分的に配列された一連のメッセージm1,m2,m3,…を受信し、追加メッセージを生成することで応答する。アプリケーションAの観測可能な動作(以下、obs(A)によって表す。)は、特定の入力シーケンスから生成された全ての可能な出力シーケンスのセットとして、定義される。
【0072】
そのようなアプリケーションが、分散メディエーションネットワークによって提供される利点を享受するためには、以下の原則に従わなければならない。
− アプリケーションは、1セットの、各々が独立して動作するアプリケーションコンポーネント{Ai}として並行して存在しなければならないが、結果として生じる出力メッセージの全てを任意にインターリーブ(interleaved)することで、{Ai}の観測可能な動作がAの観測可能な動作と等しくなる。
【0073】
− 全ての入力メッセージのセットMは、segment関数(M−>S)に従って、1セットのメッセージセグメント{Sj}に分割されなければならない。
− mediates関数(S−>A)が、メッセージセグメントとアプリケーションコンポーネントとの間に存在する。すなわち、各メッセージセグメントは、正確に1つのアプリケーションコンポーネントへ対応する、
− 一連のメッセージm1、m2、m3、…に対する応答である、全てのアプリケーションコンポーネントの総体ΣAiの観測可能な動作(ここで、それぞれのコンポーネントAiには、mediates関数及びsegment関数に従って、入力ストリームからフィルターにかけられたメッセージのみが通過する。)は、入力ストリーム全体を受信した際のAの観測可能な動作と正確に同一である。
【0074】
さらに、上記の制約条件が存在する場合には、分散メディエーションネットワークによって提供されたロードバランシング機能を登録するために、以下の2つの副次的メソッド(side−effecting methods)がアプリケーションコンポーネントAiのインスタンスに追加される必要である。
【0075】
− gainSegment(segDescriptor,data)関数
− loseSegment(segDescriptor−>data)関数
任意の2つのアプリケーションコンポーネントA1、A2及び任意のセグメントsに対して、mediates(s)=A2の条件下におけるobs(A1+A2)は、mediates(s)=A1の条件下におけるobs(A1.gainSegment(s,d)+A2.loseSegment(s))と同等である。ここで、dはA2.loseSegment(s)の結果を表す。
【0076】
自律的コントロールプレイン
本発明に係る分散メディエーション構造は、自律的に機能するように設計されている。すなわち、本システムは、最適化に関するユーザ入力やユーザが有する知識を必要としないで、自身を現時点での要求に従って最適化する。特に、自律的システムは、利用可能なコンポーネントにかかる負荷が効果的に分散されることを保証し、これにより、システムにおけるデータの取り扱いにおける不必要な障害を回避する措置を取る。
【0077】
本発明において、自律的機能は、自律的コントロールプレインによって提供される。図5に示す通り、自律的コントロールプレインは、メディエーションサービス、分散メディエーションネットワーク及び基礎的なリソース(仮想のリソースあるいは現実のリソースのいずれか)を管理する。各ネットワークノードは、自律的コントロールプレインに対して管理された要素として自分自身を表す。管理された要素は、センサインターフェース及びエフェクタインターフェースの両方をサポートする。センサインターフェースは、指定された測定基準(metrics)を発信し、これにより、自律的マネージャは、管理された要素の属性を監視することができる。エフェクタインターフェースは、自律的マネージャから、管理された要素の動作を変更するための指定された処理方法を受信する。そのため、各センサインターフェース及び各エフェクタインターフェースは、センサインターフェースでは管理された要素から自律的マネージャへ、エフェクタインターフェースでは自律的マネージャから管理された要素へ情報が一方向に流れることを可能にする。好ましい実施形態においては、図6に示す通り、自律的コントロールプレインは、1つの階層的なセットの自律的マネージャから成る。
【0078】
図6に示す例では、それぞれのタイプのネットワークノード(LPP、MR、MおよびTP)に対して一つの自律的マネージャが存在する。この階層的レベルにおけるマネージャは、クラウドマネージャと呼ばれる。それぞれのクラウドマネージャは、特定のロードバランシング機能を担当する。好ましい実施形態において、それぞれのクラウドマネージャは、それ自身がピアツーピアネットワークにわたって分散されており、それぞれのクラウドマネージャが担当するタイプのそれぞれのネットワークモジュールからセンサイベントを受信する。
【0079】
次の階層レベルにおいては、全体的な分散メディエーションネットワーク(DMN)マネージャ620が、クラウドマネージャの制御を担当し、これにより、クラウドマネージャが一貫した単位(coherent unit)として動作することを保証している。そのため、クラウドマネージャは、DMNマネージャ620の管理された要素と言える。DMNマネージャ620は、各クラウドマネージャが利用可能なリソースは、関連するロードバランシングの処理(タスク)を実行するために十分であることを保証する義務がある。一方、クラウドマネージャは、クラウドマネージャが現在要求していないあらゆるリソースの制御を解放する義務がある。DMNマネージャ620は、クラウドマネージャ間のあらゆるリソースの衝突を解決する。
【0080】
図6に示す例において、MRクラウド自律的マネージャ612は、MRがネットワークトラフィックによって過負荷とならないことを保証するために、アップストリームのロードバランシングを担当する。MRクラウドマネージャ612は、ネットワーク内のMRの数を増減することができ、MRを通過するスループットの平均値が指定された最適化範囲内に収まるようにする。さらに、MRクラウドマネージャ612は、MR全体にわたるLPPの分散を最適化し、これにより、個々のMRが過負荷とならないようにする。好ましい実施形態においては、一のMRから他の一のMRへ出力を移転するためのLPPの実際の命令は、LPPクラウドマネージャ610によって行なわれる。
【0081】
Mクラウド自律的マネージャ614は、クロスストリームのロードバランシングを担当する。そのため、Mクラウドマネージャ614は、MRを通過するルーティングされたスループットを処理するための十分なMがあることを保証する。このために、Mクラウドマネージャ614は、それぞれのMモジュールに対する平均負荷が指定された範囲内に収まるように、Mの数を調整する。また、Mクラウドマネージャ614は、個々のMが過負荷とならないように、M間でメディエーションセグメントサービスを分散することを担当する。ある範囲の条件下でこれを実行するために、Mクラウドマネージャ614は、M間でメディエーションセグメントあるいはタスクを移転することができる。これを実現するアルゴリズムについては、以下に挙げる例に基づいて、より詳細に説明する。
【0082】
TPクラウド自律的マネージャ616は、ダウンストリームのロードバランシングを担当する。そのため、TPクラウドマネージャ616は、各TPの平均スループットが指定された範囲内となることを保証し、また、個々のTPが過負荷とならないよう、Mが複数のTP間で分散されることを保証する。好ましい実施形態においては、一のTPから他のTPへのMの実際の切り替えは、Mクラウドマネージャ614へ委任される。
【0083】
クラウドマネージャによって実行されるロードバランシングに関する方針は同一の基本パターンに従うが、メディエーションセグメントサービスの切り替えは次に挙げる複数の処理の組み合わせである複合的処理であることを付言しておく。その複数の処理とは、あらゆる関連する状態を移転する処理などの、セグメントのプロセスを移行する処理と、所定のメッセージの宛先(ターゲット)を決定するために各MRが使用し、以前のメディエータがその間に受信したメッセージの再ルーティングを行うための、ルーティング機能を更新する処理である。次に、この理由を説明するために、Mクラウドマネージャの動作を以下詳細に説明する。
【0084】
一般に、ロードバランシングの方針は、より高いレベルのサービス(分散メディエーションネットワークマネージャ)によって解決されるあらゆるリソースの衝突とは独立して動作することが可能である必要がある。しかしながら、各クライアントから適切なメディエーションセグメントサービスへのメッセージの因果的配信則、及び各メディエーションサービスによって生成され、関心を持っているクライアントへ送信されるメッセージの因果的配信則が、両方とも常に保証されるように、開始済みの切り替え処理が構成されなければならない。
【0085】
クロスストリームのロードバランシング−メディエーションセグメントサービスの譲渡
本発明の分散メディエーション構造は、LPPノード、MRノード、Mノード及びTPノードから成る任意のトポロジーに基づいている。このトポロジーのノードは、「定常状態」に関して上述した特性を有する。この前述のトポロジーは、既存の機能的コンポーネント間における動的なロードバランシングに非常に適している。
【0086】
上述の通り、特定のセグメントに重い負荷が掛かっていると考えられる場合に、Mクラウドマネージャは、関連するメディエーションタスク(メディエーションセグメントサービス)の担当を、処理能力に余裕があるネットワーク内のマシンへ自律的に移動させることができる。また、現在ネットワーク内にあるあらゆるメッセージ又は将来受信する予定のあらゆるメッセージが、新しいMノードへ経路が変更されることを保証するために、メディエーションタスクを譲渡する処理は、メディエーションネットワークの動的な調整を要求する。これは、新しい論理的ネットワークトポロジー内の特別なメッセージの伝達によって、すなわち、適切なマシンを介した「コーザルリップリング(causal rippling)」によって、達成される。それによって、稼働中のシステムにおいて、メッセージ入出力の観点からシステムの観測可能な動作に影響することなく、メディエーションの変更を行うことができる。メディエーションセグメント及びメディエーションタスクは統合して単一のメディエーションアプリケーションを形成し、種々のセグメントはM全体にわたって分散されることを再度記載しておく。
【0087】
メディエーションの変更は、根本的には、「全体的な不変条件」の特性が持つ利点によって可能となる。これにより、入力メッセージは、当該メッセージが生成されるLPPにかかわらず同じメディエータへルーティングされることになる。メディエーションの変更は、実システムにおいて、一の整合性のある状態から他の整合性のある状態への変更という問題が発生するが、システムの正確さあるいは性能に悪影響を及ぼす問題は発生しない。ここで、分散メディエーションネットワークの2つの主要な機能に関して説明する必要がある。その機能とは、メッセージの伝達の機能及びメッセージの問合わせの機能である。また、メッセージの問合わせは、特に起動時の問い合わせ(start−up queries)を指す。
【0088】
先に述べた通り、Mクラウドマネージャは、メディエーション要求の自律的なロードバランシングを担当する。そのため、Mクラウドマネージャは、(十分なリソースが利用可能であれば、)新しいMをシステムに導入することができ、個々のMが過負荷とならないようにセグメントをM間に分散することができる。
【0089】
さらに、Mクラウドマネージャは、所定のメディエーションサービスから、メディエーションセグメントを追加及び削除することができる。例えば、Mクラウドマネージャは、新しいメディエーションセグメントを担当することができる適切なMを特定することができる。
【0090】
例えば、毎秒15個のリクエストを発行している10個のクライアントが、2つのLPP(以下、lpp1及びlpp2とする。)にそれぞれ属しているシステムを仮定する。さらに、それらのリクエストは、3種の別個のセグメント(以下、s1、s2及びs3とする。)に均等に関連付けられている。毎秒300個のリクエストから成るアップストリームのトラフィック合計は、lpp1とlpp2との間で均等に分担される。その結果として生成される毎秒300個のリクエストから成るクロスストリームのトラフィックは、(この単純な例においては、)2つのMR(以下、mr1及びmr2とする。)の間で均等に分担され、セグメントs1、s2及びs3の間で均等に(それぞれのセグメントに対して毎秒100個のリクエストの速度で)分担される。
【0091】
先に述べた通り、メディエータは、トラフィックをセグメントの種類に応じて取り扱う。この例においては、2つのメディエータ(以下、m1及びm2とする。)は、それぞれが毎秒200個のリクエストを処理することができる。そのため、m1がセグメントs1のトラフィックをメディエートし、m2が残りのトラフィック(セグメントs2及びセグメントs3)をメディエートするシナリオが考えられる。この場合、明らかに、m1にかかる負荷は毎秒100個のリクエストになり、m2にかかる負荷は毎秒200個のリクエストになる。
【0092】
ここに挙げたシンプルな例において、メディエーションサービスは、トラフィックの現在状況をダウンストリームネットワーク上へ伝送する。また、TPであるtp1はm1に関連付けられており、TPであるtp2はm2に関連付けられている。その結果、tp1には毎秒100個のアップデートが供給されることになり、tp2には毎秒200個のアップデートが供給されることになる。これらのアップデートは、次にlpp1及びlpp2へ渡され、lpp1及びlpp2のそれぞれがtp1及びtp2から合わせて毎秒300個のアップデートを受信することになる。この毎秒300個のアップデートは、システムのクライアントによって受信されるアップデートの総量を表わしている。
【0093】
上記の例のシステムが動作する条件を変更した場合を考える。例えば、セグメントs2に対するクライアントの関心が上昇し、セグメントs1に対するクライアントの関心が低下すると、各セグメントに対する各クライアントからのリクエストの数の変化に、これらの関心の増減が反映される。例えば、各クライアントは、s1に関連する毎秒3個のリクエストと、s2に関連する毎秒7個のリクエストを伝送すると仮定する。システムにおけるs1及びs2に関連するリクエストの数の合計は、同じ(毎秒200個)であるが、今回の場合、s1に関連するリクエストは毎秒60個のみであり、s2に関連するリクエストは毎秒140個である。従って、m1に係る負荷は毎秒60個のリクエストのみであるが、m2にかかる負荷は毎秒240個のリクエストであり、負荷が増加している。しかしながら、先に述べた通り、m2には毎秒200個のリクエストという処理能力の制限がある。
【0094】
従って、Mクラウドマネージャは、m1及びm2に対して処理可能な負荷量より大きな負荷が掛からないように、自律的に作用して状況を修正することが要求される。この例において、Mクラウドマネージャは、セグメントs3の処理の担当をm2からm1へ切り替えるように作用する。一旦この切り替えが行われると、m1及びm2上の全体的な負荷は、それぞれ毎秒160個のリクエスト及び毎秒140個のリクエストとなる。また、s2の処理の担当をm1へ移転した場合も、M上の負荷は許容範囲内に収まるが、この場合m1は最大限の処理能力で動作する必要がある。
【0095】
一のMから他のMへのセグメントの移行は、因果的配信則が維持される方法で、かつ分散メディエーションネットワークに対する変更が外部から見えないような方法で、処理されなければならない。
【0096】
システムが第1の整合状態PS1にある時刻から、新しい整合状態PS2にある時刻へ状態が推移する場合について考える。時間t0において、新しい状態PS2へと変化するプロセスが始まる。この後、ある未知の時間t1において、新しい整合状態PS2への変化が完了したことを、システムが認識する。実際の変更が起きた時間tbは不明であるが、時間tbは時間t0と時間t1の間にある。
【0097】
時間t0と時間t1の間においては、システムは不安定な状態にあると定義され、メディエーションタスクが現在動作している箇所が、全体的には認識されていないことを意味している。しかしながら、それぞれの箇所において、情報のフローを正確に処理するために十分に局所的な知識が利用可能であるので、システムの各機能は影響を受けない。
【0098】
当初、メディエータm1がセグメントs1をメディエートして、メディエータm2がセグメントs2及びs3をメディエートしている上記の例を考える。次に、ユーザの観点から見てメディエーションサービスを中断することなく、全ての3つのセグメント(s1、s2及びs3)のメディエーションのロードバランシングを実行するために、セグメントs3に対して、m2からm1へメディエーションサービスのホットな移行(hot migration)あるいはホットな譲渡(hot handover)を可能にするアルゴリズムについて、詳細に説明する。
【0099】
図7A乃至図7Fは、メディエーション変更サイクルを例示している。図7Aに示す通り、メディエーション変更サイクルは、Mクラウドマネージャがメディエータm2に対するHANDOVER_SEGMENT(s3)エフェクタメソッドを呼び出すことで、セグメントs3をメディエータm1へ譲渡するように指示することから開始される。その結果、メディエータm2はHANDOVER_SENDER(s3)状態に入る。この状態において、メディエータm2は、バッファリングされた、セグメントs3に対応するあらゆるメッセージを処理する。図7Bに示す通り、一旦セグメントs3のバッファがフラッシュされると、メディエータm2は、ダウンストリームのMEDIATION_CHANGE(s3)制御メッセージを、TPを介して全てのLPPへ送信し、また、順番に並べられたスナップショットをMEDIATION_HANDOVER(s3−state)制御メッセージの形式で、メディエータm1に対して送信する。この時点から、メディエータm2は、セグメントs3をメディエートすることを中止し、以降セグメントs3に対応するあらゆるメッセージはメディエータm2によってメディエータm1へ転送される。
【0100】
メディエータm1は、MEDIATION_HANDOVER(s3−state)制御メッセージを受信すると、HANDOVER_RECEIVER(s3)状態に入り、受信された状態情報を用いて、セグメントs3に対するメディエーションサービスを開始する。次に、図7Cに示すように、メディエータm1は、ダウンストリームのNEW_MEDIATOR(s3)制御メッセージを、TPを介して全てのLPPへ送信する。
【0101】
NEW_MEDIATOR(s3)及びMEDIATION_CHANGE(s3)制御メッセージは、セグメントs3に関連するメディエーションタスクの出力のクライアントに対する因果的配信則を保証するために用いられる。特に、以前のメディエータ(m2)からのダウンストリームメッセージは、新しいメディエータ(m1)からのものよりも前にクライアントへ配送されなければならない。これを保証するために、NEW_MEDIATOR(s3)制御メッセージが、対応するMEDIATION_CHANGE(s3)制御メッセージの前に受信される場合には、LPPによって新しいメディエータから受信されたs3メッセージがバッファリングされる。
【0102】
同様に、メディエータm1はHANDOVER_RECEIVER(s3)状態に入ると直ちに、各MRから直接的に受信したあらゆるs3メッセージを、その各MRから発信された未処理のs3メッセージがメディエータm2から再ルーティングされなくなることが確定するまで、バッファリングし始める。
【0103】
これを実現するためには、メディエータm1は、コントロールプレインを介してMクラウドマネージャと相互作用する必要がある。従って、メディエータm1は、HANDOVER_RECEIVER(s3)状態に入ると、センサイベントを発信することによって、この状態変更をMクラウドマネージャへ知らせる。
【0104】
図7Dに示すように、Mクラウドマネージャがこのイベントを受信すると、MRクラウドマネージャのエフェクタを呼び出し、MRに対するルーティングテーブルを更新するよう命令する。MRクラウドマネージャは、それぞれのMRにUPDATE_ROUTING_TABLE(s3,m2−>m1)制御メッセージを送信する。この場合では、MクラウドマネージャはMRクラウドマネージャと直接通信しているが、他の実施形態においてはこの通信を他の方法で行うこともできる。例えば、より厳密な階層構造を有する実施形態においては、DMNマネージャを介して通信することもできる。(例えば、Mクラウドマネージャが、DMNマネージャによって選択されるセンサイベントを送出し、次いでMRクラウドマネージャのエフェクタメソッドを呼び出すこともできる。)いくつかの実施形態においては、クラウドマネージャ間で直接通信することができない場合もありうる。一般的に、以下に説明する全ての場合において、クラウドマネージャ間の通信は互いに直接的に、あるいはDMNマネージャを介して行われることが意図される。
【0105】
MRは、ルーティングテーブルを更新すると、RT_CHANGED(MR−id,s3)制御メッセージをメディエータm2へ送信し、以降の全てのs3メッセージをメディエータm1へと送信する。図7Eに示すように、このRT_CHANGED制御メッセージはメディエータm2からメディエータm1へ転送される。これは、この特定のMRから直接転送されたセグメントs3に対応するあらゆるバッファリングされたメッセージをフラッシュするための、メディエータm1に対するトリガーとなる。また、あらゆるバッファリングされたメッセージがいったんフラッシュされると、メディエータm1はRT_CHANGEDセンサイベントを発信し、コントロールプレインを介して、この特定のMRの更新が成功したことをMRクラウドマネージャに通知する。
【0106】
MRクラウドマネージャが新しいメディエータm1を介して全てのMRから確認(ACK)を受信した場合には、メディエーション変更プロセスは有効に完了している。図7Fに示すように、この時点で、MRクラウドマネージャは、全てのMRを更新したことを、コントロールプレインを介してMクラウドマネージャに通知することができる。また、Mクラウドマネージャは、セグメントs3に対するメディエーション変更が、メディエータm1及びメディエータm2が共にSTABLE(s3)状態へ戻ることができる時点で完了していることを、メディエータm1及びメディエータm2に対して通知することができる。
【0107】
クロスストリームの拡張及び縮小
当業者には自明のことであるが、同様の手法を、要求に応じて(オンデマンドに)Mノードをシステムに追加、あるいはシステムから削除するために利用することができる。Mノードを追加する操作を完了するためには、要求されるリソースを取得する作業と、空のMノードを生成してTPに接続する作業と、時間経過に伴ってMノードにセグメントを追加する作業とを行う。2つのMモードを「キュービックな」分散メディエーションモデルへ追加した結果を、図8に例示する。一方、Mノードを削除する操作を完了するためには、最初に全てのセグメントを他のMノードへ移行する作業と、その後にMノードをTPから切断する作業と、Mノードを停止してMノードに関連するリソースを解放する作業とを行う。
【0108】
アップストリームにおけるロードバランシング−メディエーションルータの切り替え
図9に、分散メディエーションネットワークの他の例を示す。図9に示すネットワークは、図4に示す「キュービックな」ネットワークとトポロジー的に等価である。この図で示されたレイアウトを以下、「円筒状の」レイアウトと呼ぶことにする。このタイプの図においては、各LPPは、例示したネットワーク伝送路の始点と終点との両方において、計2回図示されている。円筒状のレイアウトは、分散メディエーションネットワーク内に存在するロードバランシングの機会を効果的に示す。
【0109】
上述した通り、クロスストリームのロードバランシングは、各Mノードにおける負荷が許容範囲内に収まることを保証する。そのため、目標は、任意のMノードを通るトラフィックが適切な高水位線と低水位線の間に収まることと、Mノードのセットが取り扱う全体的な作業の負荷も、同様に許容可能な高水位線と低水位線の間に収まることとを保証することである。トラフィックのレベルはMノードに対するメディエーションセグメントサービスの分散によって決定されるので、一のMノードから他のMノードへ、メディエーションセグメントサービスを移行あるいは譲渡する手法が提供される。
【0110】
アップストリームにおけるロードバランシングの場合は以下のようにまとめることができる。目標は、任意のMノードを通るトラフィックが適切な高水位線と低水位線の間に収まることと、Mノードのセットが取り扱う全体的な作業の負荷も、同様に許容可能な高水位線と低水位線の間に収まることとを保証することである。任意のMRノードを通るトラフィックは、そのMRノードと接続しているLPPノードによって生成されるスループットによって決定されるので、LPPノードの出力を一のMRノードから他のMRノードへ切り替える機能は、任意のMRノードにかかる負荷を管理する際に肝要である。トラフィックが軽い場合には、MRノード間でLPPノードを切り替えることで、MRノードは複数のLPPノードに対してサービスを提供することができる。これは、例えば、専用のMRノードが各LPPノードに常に割り当てられている固定的なシステムと比較して、効率面において著しく優位である。
【0111】
図10Aは、2つのMRノードによってサービスが提供される4つのLPPノードと、2つのTPノードによってサービスが提供される4つのMノードとから成る、拡張された円筒状のレイアウトを示す。図10Aにおけるノード間の矢印は、ネットワークトラフィックの初期状態のフローを表わしている。これを開始時点として、mr1に過大な負荷がかかる可能性がある大量のスループットをlpp1が生成し始める場合について考える。次に、2つのMRノードを通過するアップストリームトラフィックをロードバランシングするために、lpp2がmr2へホットスイッチング(サービス稼働中での切り替え、hot switching)する作業を可能にするためのアルゴリズムについて詳細に説明する。
【0112】
図10B乃至図10Eは、LPPスイッチオーバー(切り替え)サイクルを例示している。図10Bに示すように、スイッチオーバーサイクルは、LPPクラウドマネージャによって開始され、LPPクラウドマネージャは、ノードlpp2に対するSWITCH_MR(mr2)エフェクタメソッドを呼び出して、現在のMRノードmr1からノードmr2への切り替えを命令する。この時点で、LPPノードlpp2はSWITCHOVER(mr2)状態に移行する。
【0113】
図10Cに示すように、lpp2はMR_CHANGE(lpp2)制御メッセージをmr1へ送信することによって応答する。mr1は、ルーティングテーブルにおける各セグメントs<i>に対応する適切なメディエータへMR_CHANGE(lpp2,s<i>)制御メッセージを送信し、同時にMR_CHANGE(lpp2,s<i>)センサイベントを発信することによって、応答する。MR_CHANGE(lpp2,s<i>)センサイベントは、MRクラウドマネージャによって検出され、Mクラウドマネージャがアクセス可能な共有データ空間に記憶されている。いくつかの他の実施形態においては、各LPPは、「アクティブな(active)」セグメントのリストを維持し、mr1によってルーティングされる、これらのセグメントに対するMR_CHANGE(lpp2,s<i>)制御メッセージを生成することもできる。しかしながら、そのような変形例では、それ以外の場合では要求されないLPPにおける状態情報を維持する必要がある。
【0114】
図10Dに示すように、その後、lpp2は新しいMRノードmr2へ切り替えて、mr2に対してNEW_MR(lpp2)制御メッセージを送信する。上記の作業により、適切なMノードへ伝送される、ルーティングテーブルにおけるそれぞれのセグメントs<i>に対するNEW_MR(lpp2,s<i>)制御メッセージが生成される。
【0115】
Mノードによって受信されたNEW_MR(lpp2,s<i>)及びMR_CHANGE(lpp2,s<i>)制御メッセージは、適切なセグメントサービスによって、クロスストリームメッセージの因果的処理(causal processing)を保証するために用いられる。特に、lpp2によって以前のメディエーションルータ(mr1)を介して送信されたアップストリームメッセージは、新しいメディエーションルータ(mr2)を介して送信されたメッセージの前に処理されなければならない。
【0116】
これを保証するために、lpp2から発信され、新しいメディエーションルータを経由してメディエータが受信した全てのs<i>メッセージは、NEW_MR(lpp2,s<i>)制御メッセージが対応するMR_CHANGE(lpp2,s<i>)制御メッセージの前に受信される場合には、バッファリングされる。このバッファリング処理は、上述したクロスストリームにおけるロードバランシングにおいて新しいメディエータ(m2)が行ったバッファリング処理と類似している。しかし、アップストリームにおけるロードバランシングでは、LPPノードから発信されたメッセージがバッファリングされ、クロスストリームにおけるロードバランシングでは、MRノードから発信されたメッセージがバッファリングされる。
【0117】
図10Eに示すように、両方の制御メッセージ(NEW_MR及びMR_CHANGE)が受信された後に、あらゆるバッファがフラッシュされると、NEW_MR(lpp2,s<i>)センサイベントが、関連するMノードによって検出されると共に、Mクラウドマネージャによって検出される。先に記憶されたMR_CHANGEセンサイベントに対応する全てのNEW_MRセンサイベントが検出されると、MクラウドマネージャはLPPクラウドマネージャに、スイッチオーバーサイクルが完了し、結果として、lpp2をSTABLE(mr2)状態へ切り替えるためのエフェクタメソッドを、LPPクラウドマネージャが呼び出すことを通知する。
【0118】
最適化された安定性を確保するために、本発明に係るいくつかの実施形態で想定されることは、LPPクラウドマネージャとMクラウドマネージャとの間の通信は、全てのMノードがSTABLE状態であったときにのみMRノード間におけるLPPノードの切り替えが開始されることと、LPPノードがSWITCHOVER状態である間はMノード間におけるセグメントの譲渡が開始されないこととを保証することができることである。
【0119】
ダウンストリームにおけるロードバランシング−伝送プロキシの切り替え
ダウンストリームにおけるロードバランシングは、上述したアップストリームにおけるロードバランシングの繰り返しであり、以下のように要約できる。目標は、任意のTPノードを通るトラフィックが適切な高水位線と低水位線の間に収まることと、TPノードのセットが取り扱う全体的な作業の負荷も、同様に許容可能な高水位線と低水位線の間に収まることとを保証することである。任意のTPノードを通るトラフィックは、そのTPノードと接続しているMノードによって生成されるスループットによって決定されるので、Mノードの出力を一のTPノードから他のTPノードへ切り替える能力は肝要である。トラフィックが軽い場合には、TPノード間でMノードを切り替えることで、TPノードは複数のMノードに対してサービスすることができる。これは、例えば、専用のTPノードが各Mノードに常に割り当てられている固定的なシステムと比較して、効率面において著しく優位である。
【0120】
アップストリームにおけるロードバランシングに関して上述した図10Aに示す分散メディエーションネットワークを開始時点として、tp1に過大な負荷がかかる可能性がある大量のスループットをm1が生成し始める場合について考える。次に、2つのTPノードを通過するダウンストリームトラフィックをロードバランスするために、m2がtp2へホットスイッチングする作業を可能にするためのアルゴリズムについて詳細に説明する。
【0121】
図11A乃至図11Dは、Mノードのスイッチオーバーサイクルを例示している。図11Aに示すように、スイッチオーバーサイクルは、Mクラウドマネージャによって開始される。Mクラウドマネージャは、ノードm2に対するSWITCH_TP(tp2)エフェクタメソッドを呼び出して、現在のTPノードtp1からノードtp2への切り替えを命令する。この時点で、Mノードm2はSWITCHOVER(tp2)状態に移行する。
【0122】
図11Bに示すように、m2は、自身が担当するアクティブな各セグメントs<i>に対して、TP_CHANGE(m2,s<i>)制御メッセージをtp1へ送信することによって応答する。tp1ノードは、この制御メッセージを全てのLPPノードに一括送信すると同時に、各LPPノードに対応するTP_CHANGE(m2,lpp<j>,s<i>)センサイベントを発信する。このセンサイベントは、TPクラウドマネージャによって検出され、LPPクラウドマネージャがアクセス可能な共有データ空間に記憶されている。
【0123】
図11Cに示すように、その後、m2は新しいTPノードtp2へ切り替えて、自身が担当するアクティブな各セグメントs<i>に対して、NEW_TP(m2,s<i>)制御メッセージをtp2へ送信する。tp2ノードはこのメッセージを全てのLPPノードへ一括送信する。
【0124】
NEW_TP(m2,s<i>)及びTP_CHANGE(m2,s<i>)制御メッセージは、適切なセグメントサービスによって、ダウンストリームメッセージの因果的処理(causal processing)を保証するために用いられる。特に、m2によって以前の伝送プロキシ(tp1)を介して送信されたダウンストリームメッセージは、新しい伝送プロキシ(tp2)を介して送信されたメッセージの前に処理されなければならない。
【0125】
これを保証するために、m2から発信され、新しい伝送プロキシを経由してLPPノードが受信した全てのs<i>メッセージは、NEW_TP(m2,s<i>)制御メッセージが対応するTP_CHANGE(m2,s<i>)制御メッセージの前に受信される場合には、バッファリングされる。このバッファリング処理は、セグメントの譲渡の際に、LPPモジュールが行ったバッファリング処理に類似している。異なる点は、今回の場合では、伝送プロキシ(TP)ノードではなくメディエーション(M)ノードから発信されたメッセージがバッファリングされる点である。
【0126】
図11Dに示すように、両方の制御メッセージ(NEW_TP及びTP_CHANGE)が受信された後に、あらゆるバッファがフラッシュされると、NEW_TP(m2,lpp<j>,s<i>)センサイベントが、LPPノードによって発信されると共に、Mクラウドマネージャによって検出される。先に記憶されたTP_CHANGEセンサイベントに対応する全てのNEW_TPセンサイベントが検出されると、LPPクラウドマネージャは、Mクラウドマネージャにスイッチオーバーサイクルが完了したことを通知し、Mクラウドマネージャは、m2をSTABLE(tp2)状態へ切り替えるためにm2に対するエフェクタメソッドを呼び出す。
【0127】
いくつかの実施形態においては、Mクラウドマネージャは、全てのMノードがSTABLE状態であったときにのみ、TPノード間におけるMノードの切り替えを開始する。さらに、いずれかのMノードがSWITCHOVER状態である間は、メディエーションセグメントの移転を開始しないように、Mクラウドマネージャを設計することもできる。
【0128】
アップストリーム及びダウンストリームの拡張及び縮小
当業者には自明なことであるが、必要に応じて(オンデマンドに)MRノード及びTPノードをシステムに追加、あるいはシステムから削除するために、同様の手法を利用することができる。追加する場合には、要求されるリソースを取得し、MRノードあるいはTPノードを生成し、1つ以上のLPPノードあるいはMノードを、生成されたMRノードあるいはTPノードにそれぞれ切り替える単純な作業を行う。
【0129】
図10及び図11で示されるネットワークトポロジーへMRノード(mr3)を追加する操作と、既存のMRノードにかかる作業負荷が閾値を越えて全体的に増加するに応じてLPPノード(lpp4)の送信先を切り替える操作とを行った最終的な結果を図12Aに例示する。この図から、既存のMRノードにかかる作業負荷が全体的に低下した結果、負荷が閾値以下になった場合にMRノードを削除するためには、削除対象のMRノードに向かっている全てのLPPノードを他のMRノードへ切り替えなければならないということになる。
【0130】
次に、前記操作を行ったネットワークトポロジーへTPノード(tp3)を追加する操作と、既存のTPノードにかかる作業負荷が閾値を越えて全体的に増加するに応じてMノード(m4)の送信先をtp3に切り替える操作とを行った最終的な結果を図12B及び図12Cに例示する。この図から、既存のTPノードにかかる作業負荷が全体的に低下した結果、負荷が閾値以下になった場合にTPノードを削除するためには、削除対象のTPノードに向かっている全てのMノードを他のTPノードへ切り替えなければならないということになる。
【0131】
最後に、4つのLPPノード及び4つのMノードを有する図10及び図11で示されたネットワークの最大限の構成を、図12Dに示す。この図において、各LPPノードは唯一の専用のMRノードに接続され、また各Mノードは唯一の専用のTPノードに接続される。分散メディエーションネットワークの制約条件としては、ネットワーク上においてMRノードの数はLPPノードの数を上回ることができない。同様に、TPノードの数もMノードの数を上回ることができない。
【0132】
例外処理
アップストリーム、クロスストリーム及びダウンストリームにおけるロードバランシングでは対処できないネットワークの負荷に関する問題がいくつか存在する。これらの例外では、関連するクラウドマネージャがDMNマネージャに対して対策を問い合わせる。
【0133】
Mクラウドマネージャによる例外処理
例外:一のセグメントs<i>を担当するMノードが過負荷となる。すなわち、負荷が個々のMノードに対する高水位線を超える。Mクラウドマネージャは、DMNマネージャに対してこの例外を生成する必要がある。
対策:Mノードの取り扱いを差別化できない限り、この例外に対する取り得る処置はない。すなわち、複数のMノードの一部がより強力なコンピュータ上で処理を行っている場合には(例えば昨年発売されたPCではなく最新のマルチコアチップセットを搭載したPC)、セグメントをより強力な処理能力を有するノードへ移動させるようにロードバランシングのアルゴリズムを改良することができる。そのようにしても、ある時点で、この限界的状況に再び陥ることになるだろう。
所見:この例外から理解できるように、Mノードの結合は脆弱であるという障害が潜在的に存在する。
【0134】
TPクラウドマネージャによる例外処理
例外:一のm<j>ノードを担当するTPノードが過負荷となる。すなわち、負荷が個々のMノードに対する高水位線を超える。TPクラウドマネージャは、DMNマネージャに対してこの例外を生成する必要がある。
対策:TPノード間で処理能力が異なるなど、TPノードを差別化することができる場合に、ロードバランシングのアルゴリズムを改良することができる。その場合においても、ある時点で、この限界的状況に再び陥ることになるだろう。そうでない場合でも、DMNマネージャは、m<j>ノードがネットワークに過負荷をかけているとMクラウドマネージャに通知することができる。m<j>ノードが複数のセグメントを担当している場合であれば、理論上はこれらのセグメントを再分散することができる。
所見:この例外から理解できるように、TPノードの結合は脆弱であるという障害が潜在的に存在する。
【0135】
MRクラウドマネージャによる例外処理
例外:一のlpp<k>ノードを担当するMRノードが過負荷となる。すなわち、負荷が個々のMRノードに対する高水位線を超える。MRクラウドマネージャは、DMNマネージャに対してこの例外を生成する必要がある。
対策:MRノードの取り扱いを差別化できない限り、この例外に対する取り得る処置はない。すなわち、MRノード間で処理能力が異なる場合には、ロードバランシングのアルゴリズムを改良することができる。その場合においても、ある時点で、この限界的状況に再び陥ることになるだろう。
所見:この例外から理解できるように、MRノードの結合は脆弱であるという障害が潜在的に存在する。
【0136】
いくつかの実施形態において、個々のLPPノードがMRノードに過大な負荷をかけていることをDMNマネージャが観測した場合に、LPPノード間でユーザの再調整を行うように指示することもできる。これを達成する手法は、ユーザへ提供されているメディエーションサービスの性質に依存することになる。
【0137】
図13に示される表1は、分散メディエーションネットワーク内のノード間でネットワークトラフィックを分散する際に、自律的コントロールプレインが取る動作の概要を示している。表1は、自律的コントロールプレインが定める測定基準又は変数を示している。例えば、「X_NODE_HIGH_WATERMARK」は、一のXノード(Xは、LPP、TP、MR及びMのいずれか)が処理可能なトラフィックの最大の閾値を表す。また、「X_NODE_POOL_HIGH_WATERMARK」は、Xノードのグループにかかるトラフィックのスループットの最大平均値を表す。
【図1A】

【図1B】

【図2A】

【図2B】

【図3】

【図4】

【図5】

【図6】

【図7A】

【図7B】

【図7C】

【図7D】

【図7E】

【図7F】

【図8】

【図9】

【図10A】

【図10B】

【図10C】

【図10D】

【図10E】

【図11A】

【図11B】

【図11C】

【図11D】

【図12A】

【図12B】

【図12C】

【図12D】

【図13】


【特許請求の範囲】
【請求項1】
複数のタイプのネットワークモジュールであって、
メディエーションネットワークとクライアントプログラムとの間のネットワークトラフィックを受信及び送信するローカルポイント・オブ・プレゼンス(LPP)モジュールと、
メディエーションタスクを担当するメディエータ(M)モジュールと、
入力メッセージのコンテンツを解析するメディエータルータ(MR)モジュールであって、前記各MRモジュールは、前記コンテンツに応じて予め決定されたメディエーションタスクへ前記入力メッセージをルーティングする前記MRモジュールと、
少なくとも1つの前記LPPモジュールへメッセージを転送する伝送プロキシ(TP)モジュールであって、前記MRモジュール、前記Mモジュール及び前記TPモジュールの各々は、それらのモジュールを通過するネットワークトラフィックの全てのパスが非相互的であるように適合されている前記TPモジュールと、
から成る前記ネットワークモジュール(以下、単に「モジュール」と言う。)と、
自律的コントロールプレインと、
を備え、
前記自律的コントロールプレインは、
前記LPPモジュールに対する切り替え動作を呼び出して、一の前記LPPモジュールから送信されるネットワークトラフィックの宛先を第1MRモジュールから第2MRモジュールへ変更する動作によって、又は、前記Mモジュールに対する切り替え動作を呼び出して、一の前記Mモジュールから送信されるネットワークトラフィックの宛先を第1TPモジュールから第2TPモジュールへ変更する動作によって、前記モジュール間におけるネットワークトラフィックの分散を管理するように適合され、及び/又は、
第1Mモジュールに対する譲渡動作を呼び出して、前記第1Mモジュールから第2Mモジュールへ特定のメディエーションタスクを移転する動作によって、前記Mモジュール間におけるメディエーションタスクの分散を達成するように適合され、
前記モジュールは、前記モジュールの状態を前記自律的コントロールプレインに伝達するセンサインターフェースと、前記自律的コントロールプレインからコマンドを受信するエフェクタインターフェースと、を有し、
前記LPPモジュールが前記MRモジュールを指定し、次に前記MRモジュールが前記Mモジュールを指定し、次に前記Mモジュールが前記TPモジュールを指定し、次に前記TPモジュールが前記LPPモジュールを指定する一方向メディエーションサイクルに従って、ネットワークトラフィックを接続する、
分散メディエーションネットワーク。
【請求項2】
前記自律的コントロールプレインは、前記各タイプのモジュールの数が制限されるように適合されている、請求項1に記載の分散メディエーションネットワーク。
【請求項3】
前記自律的コントロールプレインは、多数のリソースにわたって提供されている、請求項1または2に記載の分散メディエーションネットワーク。
【請求項4】
前記自律的コントロールプレインは、所定のタイプの前記モジュール間におけるネットワークトラフィックの分散を管理するクラウドマネージャと、前記モジュールのタイプ間におけるリソースの分散を管理する分散メディエーションネットワーク(DMN)マネージャと、を備える階層構造を有している、請求項1から3のいずれか1項に記載の分散メディエーションネットワーク。
【請求項5】
前記クラウドマネージャは互いに直接通信することができる、請求項4に記載の分散メディエーションネットワーク。
【請求項6】
前記クラウドマネージャ間の全ての通信は前記DMNマネージャを通過しなければならない、請求項4または5に記載の分散メディエーションネットワーク。
【請求項7】
前記第1Mモジュールに対する譲渡動作を呼び出して、前記第1Mモジュールから前記第2Mモジュールへ特定のメディエーションタスクを移転する動作は、
前記自律的コントロールプレインが、前記第1Mモジュールに対するHANDOVER_SEGMENTエフェクタメソッドを呼び出す動作と、
前記第1Mモジュールが、HANDOVER_SEGMENTエフェクタメソッドの呼び出しを受けた後に、状態をHANDOVER_SENDER状態に変更し、前記第1Mモジュールに現在記憶されている前記特定のメディエーションタスクに関連するコンテンツを処理し、次いでMEDIATION_CHANGE制御信号を全ての前記LPPモジュールに送信する動作と、
前記第1Mモジュールが、MEDIATION_HANDOVER制御信号を前記第1Mモジュールから前記第2Mモジュールへ送信し、次いで前記第1Mモジュールが受信した前記特定のメディエーションタスクに関連するコンテンツを前記第2Mモジュールへ転送する動作と、
前記第2Mモジュールが、MEDIATION_HANDOVER制御信号を受信した後に、状態をHANDOVER_RECEIVER状態へ変更し、前記状態変更を示すセンサ信号を前記自律的コントロールプレインに送信し、NEW_MEDIATOR制御信号を全ての前記LPPモジュールへ送信する動作であって、NEW_MEDIATOR制御信号の受信後に受信され、MEDIATION_CHANGE制御信号の受信前に受信された前記特定のメディエーションタスクに関連するコンテンツを、前記LPPモジュールがバッファリングする動作と、
前記第2MモジュールがHANDOVER_RECEIVER状態にあることを示すセンサ信号を受信した後に、前記自律的コントロールプレインが、前記MRモジュールに対するエフェクタメソッドを呼び出し、前記特定のメディエーションタスクに関連するコンテンツを前記第1Mモジュールではなく前記第2Mモジュールへ転送するように前記MRモジュールに対して命令する動作と、
前記各MRモジュールが、転送されるコンテンツの宛先を前記第2Mモジュールへ変更した後に、宛先の変更を示すセンサ信号を前記自律的コントロールプレインへ発信し、前記各MRモジュールに対応するRT_CHANGED制御メッセージを前記第1Mモジュールへ転送し、次いで前記第1MモジュールがRT_CHANGED制御メッセージを前記第2Mモジュールへ転送する動作であって、前記第2Mモジュールが前記各MRモジュールから直接受信した前記特定のメディエーションタスクに関連するコンテンツを、前記各MRモジュールに対応するRT_CHANGED制御メッセージを前記第2Mモジュールが受信するまで、バッファリングする動作と、
前記第2Mモジュールが、前記各MRモジュールから発信されたそれぞれのRT_CHANGED信号を前記第2Mモジュールが受信した場合に、センサ信号を前記自律的コントロールプレインに送信する動作と、
前記自律的コントロールプレインが、全ての前記MRモジュールからRT_CHANGED制御信号が受信されたことを示すセンサ信号を前記第2Mモジュールから受信した場合に、前記第1Mモジュール及び前記第2Mモジュールに対するエフェクタメソッドを呼び出して前記第1Mモジュール及び前記第2MモジュールをSTABLE状態に戻す動作と、
から構成されている、請求項1から6のいずれか1項に記載の分散メディエーションネットワーク。
【請求項8】
前記LPPモジュールに対する切り替え動作を呼び出して、一の前記LPPモジュールから送信されるネットワークトラフィックの宛先を前記第1MRモジュールから前記第2MRモジュールへ変更する動作は、
前記自律的コントロールプレインが、前記LPPモジュールに対するSWITCH_MRエフェクタメソッドを呼び出す動作と、
前記LPPモジュールが、SWITCH_MRエフェクタメソッドの呼び出しを受けた後に、状態をSWITCHOVER状態に変更し、MR_CHANGE制御信号を前記第1MRモジュールへ送信し、NEW_MR制御信号を前記第2MRモジュールへ送信する動作と、
前記第1MRモジュールが、MR_CHANGE制御信号を受信した後に、MR_CHANGE信号を各Mモジュールへ転送し、MR_CHANGE制御信号が送信された前記各Mモジュールに対する前記自律的コントロールプレインへ、MR_CHANGEセンサイベントを発信する動作と、
前記第2MRモジュールが、NEW_MR制御信号を受信した後に、NEW_MR制御信号を各Mモジュールへ転送する動作であって、前記Mモジュールは、NEW_MR制御信号の受信後に受信され、MR_CHANGE制御信号の受信前に受信されたコンテンツをバッファリングするように適合されており、これにより、前記コンテンツが正しい順に処理されることを保証している動作と、
前記各Mモジュールが、NEW_MR制御信号を受信した後に、センサイベントを前記自律的コントロールプレインへ送信する動作と、
前記自律的コントロールプレインが、前記第1MRモジュールからMR_CHANGEセンサイベントを受信した全ての前記Mモジュールからのセンサイベントを受信した後に、エフェクタメソッドを呼び出して前記LPPモジュールをSTABLE状態へ戻す動作と、
から構成されている、請求項1から7のいずれか1項に記載の分散メディエーションネットワーク。
【請求項9】
前記Mモジュールに対する切り替え動作を呼び出して、一の前記Mモジュールから送信されるネットワークトラフィックの宛先を前記第1TPモジュールから前記第2TPモジュールへ変更する動作は、
前記自律的コントロールプレインが、前記Mモジュールに対するSWITCH_TPエフェクタメソッドを呼び出す動作と、
前記Mモジュールが、SWITCH_TPエフェクタメソッドの呼び出しを受けた後に、状態をSWITCHOVER状態に変更し、TP_CHANGE制御信号を前記第1TPモジュールへ送信し、NEW_TP制御信号を前記第2TPモジュールへ送信する動作と、
前記第1TPモジュールが、TP_CHANGE制御信号を受信した後に、TP_CHANGE信号を各LPPモジュールへ転送し、TP_CHANGE制御信号が送信された前記各LPPモジュールに対する前記自律的コントロールプレインへ、TP_CHANGEセンサイベントを発信する動作と、
前記第2TPモジュールが、NEW_TP制御信号を受信した後に、NEW_TP制御信号を各LPPモジュールへ転送する動作であって、前記LPPモジュールは、NEW_TP制御信号の受信後に受信され、TP_CHANGE制御信号の受信前に受信されたコンテンツをバッファリングするよう適合されており、これにより、前記コンテンツが正しい順に処理されることを保証している動作と、
前記各LPPモジュールが、NEW_TP制御信号を受信した後に、センサイベントを前記自律的コントロールプレインへ送信する動作と、
前記自律的コントロールプレインが、前記第1TPモジュールからTP_CHANGEセンサイベントを受信した全ての前記LPPモジュールからのセンサイベントを受信した後に、エフェクタメソッドを呼び出して前記MモジュールをSTABLE状態へ戻す動作と、
から構成されている、請求項1から8のいずれか1項に記載の分散メディエーションネットワーク。
【請求項10】
メディエーションネットワークへ入力されるネットワークトラフィックは、一群のメッセージタイプのうちの1つに属しており、前記一群のメッセージタイプは、
情報源として作用するプロセスから発生する新しい情報と、
前記メディエーションネットワークに含まれるノードであって、応答を要求するノードの状態に関する問い合わせと、
前記メディエーションネットワークが新しい関連情報を受信する場合に、進行中の応答を要求する関心の表明と、
から成る、請求項1から9のいずれか1項に記載の分散メディエーションネットワーク。
【請求項11】
コンピュータネットワークにおけるネットワークトラフィックのフローをメディエートする方法であって、コンピュータネットワークはメディエーションネットワークを有しており、メディエーションネットワークは、
複数のタイプのネットワークモジュールであって、
メディエーションネットワークとクライアントプログラムとの間のネットワークトラフィックを受信及び送信するローカルポイント・オブ・プレゼンス(LPP)モジュールと、
メディエーションタスクを担当するメディエータ(M)モジュールと、
入力メッセージのコンテンツを解析するメディエータルータ(MR)モジュールであって、前記各MRモジュールは、前記コンテンツに応じて予め決定されたメディエーションタスクへ前記入力メッセージをルーティングする前記MRモジュールと、
少なくとも1つの前記LPPモジュールへメッセージを転送する伝送プロキシ(TP)モジュールであって、前記MRモジュール、前記Mモジュール及び前記TPモジュールの各々は、それらのモジュールを通過するネットワークトラフィックの全てのパスが非相互的であるように適合されている前記TPモジュールと、
から成る前記ネットワークモジュールと、
自律的コントロールプレインと、
を備える前記メディエーションネットワークであって、
前記自律的コントロールプレインは、
前記LPPモジュールに対する切り替え動作を呼び出して、一の前記LPPモジュールから送信されるネットワークトラフィックの宛先を第1MRモジュールから第2MRモジュールへ変更する動作によって、又は、前記Mモジュールに対する切り替え動作を呼び出して、一の前記Mモジュールから送信されるネットワークトラフィックの宛先を第1TPモジュールから第2TPモジュールへ変更する動作によって、前記モジュール間におけるネットワークトラフィックの分散を管理するように適合され、及び/又は、
第1Mモジュールに対する譲渡動作を呼び出して、前記第1Mモジュールから第2Mモジュールへ特定のメディエーションタスクを移転する動作によって、前記Mモジュール間におけるメディエーションタスクの分散を達成するように適合され、
前記モジュールは、前記モジュールの状態を前記自律的コントロールプレインに伝達するセンサインターフェースと、前記自律的コントロールプレインからコマンドを受信するエフェクタインターフェースと、を有し、
前記方法において、前記入力メッセージはメディエーションサイクルに沿って伝達され、前記メディエーションサイクルは、
前記LPPモジュールが、少なくとも1つの前記MRモジュールのそれぞれ1つへ前記入力メッセージを送信するステップと、
送信された前記MRモジュールが、前記入力メッセージのコンテンツを解析し、前記解析されたコンテンツに応じて、予め決定された前記Mモジュールへ前記メッセージをルーティングするステップと、
予め決定された前記Mモジュールが、メディエーションタスクを前記解析されたメッセージに対して適用し、メディエートされたメッセージを前記TPモジュールの1つへ送信するステップと、
前記メディエートされたメッセージを受信した前記TPモジュールが、前記メディエートされたメッセージを前記LPPモジュールの少なくとも1つへ送信するステップと、
から成る前記メディエーションサイクルである前記方法。
【請求項12】
前記自律的コントロールプレインは、前記各タイプのモジュールの数が制限されるように適合されている、請求項11に記載の方法。
【請求項13】
前記自律的コントロールプレインは、多数のリソースにわたって提供されている、請求項11または12に記載の方法。
【請求項14】
前記自律的コントロールプレインは、所定のタイプの前記モジュール間におけるネットワークトラフィックの分散を管理するクラウドマネージャと、前記モジュールのタイプ間におけるリソースの分散を管理する分散メディエーションネットワーク(DMN)マネージャと、を備える階層構造を有している、請求項11から13のいずれか1項に記載の方法。
【請求項15】
前記クラウドマネージャは互いに直接通信することができる、請求項14に記載の方法。
【請求項16】
前記クラウドマネージャ間の全ての通信は前記DMNマネージャを通過しなければならない、請求項14または15に記載の方法。
【請求項17】
前記第1Mモジュールに対する譲渡動作を呼び出して、前記第1Mモジュールから前記第2Mモジュールへ特定のメディエーションタスクを移転する動作は、
前記自律的コントロールプレインが、前記第1Mモジュールに対するHANDOVER_SEGMENTエフェクタメソッドを呼び出す動作と、
前記第1Mモジュールが、HANDOVER_SEGMENTエフェクタメソッドの呼び出しを受けた後に、状態をHANDOVER_SENDER状態に変更し、前記第1Mモジュールに現在記憶されている前記特定のメディエーションタスクに関連するコンテンツを処理し、次いでMEDIATION_CHANGE制御信号を全ての前記LPPモジュールに送信する動作と、
前記第1Mモジュールが、MEDIATION_HANDOVER制御信号を前記第1Mモジュールから前記第2Mモジュールへ送信し、次いで前記第1Mモジュールが受信した前記特定のメディエーションタスクに関連するコンテンツを前記第2Mモジュールへ転送する動作と、
前記第2Mモジュールが、MEDIATION_HANDOVER制御信号を受信した後に、状態をHANDOVER_RECEIVER状態へ変更し、前記状態変更を示すセンサ信号を前記自律的コントロールプレインに送信し、NEW_MEDIATOR制御信号を全ての前記LPPモジュールへ送信する動作であって、NEW_MEDIATOR制御信号の受信後に受信され、MEDIATION_CHANGE制御信号の受信前に受信された前記特定のメディエーションタスクに関連するコンテンツを、前記LPPモジュールがバッファリングする動作と、
前記第2MモジュールがHANDOVER_RECEIVER状態にあることを示すセンサ信号を受信した後に、前記自律的コントロールプレインが、前記MRモジュールに対するエフェクタメソッドを呼び出し、前記特定のメディエーションタスクに関連するコンテンツを前記第1Mモジュールではなく前記第2Mモジュールへ転送するように前記MRモジュールに対して命令する動作と、
前記各MRモジュールが、転送されるコンテンツの宛先を前記第2Mモジュールへ変更した後に、宛先の変更を示すセンサ信号を前記自律的コントロールプレインへ発信し、前記各MRモジュールに対応するRT_CHANGED制御メッセージを前記第1Mモジュールへ転送し、次いで前記第1MモジュールがRT_CHANGED制御メッセージを前記第2Mモジュールへ転送する動作であって、前記第2Mモジュールが前記各MRモジュールから直接受信した前記特定のメディエーションタスクに関連するコンテンツを、前記各MRモジュールに対応するRT_CHANGED制御メッセージを前記第2Mモジュールが受信するまで、バッファリングする動作と、
前記第2Mモジュールが、前記各MRモジュールから発信されたそれぞれのRT_CHANGED信号を前記第2Mモジュールが受信した場合に、センサ信号を前記自律的コントロールプレインに送信する動作と、
前記自律的コントロールプレインが、全ての前記MRモジュールからRT_CHANGED制御信号が受信されたことを示すセンサ信号を前記第2Mモジュールから受信した場合に、前記第1Mモジュール及び前記第2Mモジュールに対するエフェクタメソッドを呼び出して前記第1Mモジュール及び前記第2MモジュールをSTABLE状態に戻す動作と、
から構成されている、請求項11から16のいずれか1項に記載の方法。
【請求項18】
前記LPPモジュールに対する切り替え動作を呼び出して、一の前記LPPモジュールから送信されるネットワークトラフィックの宛先を前記第1MRモジュールから前記第2MRモジュールへ変更する動作は、
前記自律的コントロールプレインが、前記LPPモジュールに対するSWITCH_MRエフェクタメソッドを呼び出す動作と、
前記LPPモジュールが、SWITCH_MRエフェクタメソッドの呼び出しを受けた後に、状態をSWITCHOVER状態に変更し、MR_CHANGE制御信号を前記第1MRモジュールへ送信し、NEW_MR制御信号を前記第2MRモジュールへ送信する動作と、
前記第1MRモジュールが、MR_CHANGE制御信号を受信した後に、MR_CHANGE信号を各Mモジュールへ転送し、MR_CHANGE制御信号が送信された前記各Mモジュールに対する前記自律的コントロールプレインへ、MR_CHANGEセンサイベントを発信する動作と、
前記第2MRモジュールが、NEW_MR制御信号を受信した後に、NEW_MR制御信号を各Mモジュールへ転送する動作であって、前記Mモジュールは、NEW_MR制御信号の受信後に受信され、MR_CHANGE制御信号の受信前に受信されたコンテンツをバッファリングするように適合されており、これにより、前記コンテンツが正しい順に処理されることを保証している動作と、
前記各Mモジュールが、NEW_MR制御信号を受信した後に、センサイベントを前記自律的コントロールプレインへ送信する動作と、
前記自律的コントロールプレインが、前記第1MRモジュールからMR_CHANGEセンサイベントを受信した全ての前記Mモジュールからのセンサイベントを受信した後に、エフェクタメソッドを呼び出して前記LPPモジュールをSTABLE状態へ戻す動作と、
から構成されている、請求項11から17のいずれか1項に記載の方法。
【請求項19】
前記Mモジュールに対する切り替え動作を呼び出して、一の前記Mモジュールから送信されるネットワークトラフィックの宛先を前記第1TPモジュールから前記第2TPモジュールへ変更する動作は、
前記自律的コントロールプレインが、前記Mモジュールに対するSWITCH_TPエフェクタメソッドを呼び出す動作と、
前記Mモジュールが、SWITCH_TPエフェクタメソッドの呼び出しを受けた後に、状態をSWITCHOVER状態に変更し、TP_CHANGE制御信号を前記第1TPモジュールへ送信し、NEW_TP制御信号を前記第2TPモジュールへ送信する動作と、
前記第1TPモジュールが、TP_CHANGE制御信号を受信した後に、TP_CHANGE信号を各LPPモジュールへ転送し、TP_CHANGE制御信号が送信された前記各LPPモジュールに対する前記自律的コントロールプレインへ、TP_CHANGEセンサイベントを発信する動作と、
前記第2TPモジュールが、NEW_TP制御信号を受信した後に、NEW_TP制御信号を各LPPモジュールへ転送する動作であって、前記LPPモジュールは、NEW_TP制御信号の受信後に受信され、TP_CHANGE制御信号の受信前に受信されたコンテンツをバッファリングするよう適合されており、これにより、前記コンテンツが正しい順に処理されることを保証している動作と、
前記各LPPモジュールが、NEW_TP制御信号を受信した後に、センサイベントを前記自律的コントロールプレインへ送信する動作と、
前記自律的コントロールプレインが、前記第1TPモジュールからTP_CHANGEセンサイベントを受信した全ての前記LPPモジュールからのセンサイベントを受信した後に、エフェクタメソッドを呼び出して前記MモジュールをSTABLE状態へ戻す動作と、
から構成されている、請求項11から18のいずれか1項に記載の方法。
【請求項20】
メディエーションネットワークへ入力されるネットワークトラフィックは、一群のメッセージタイプのうちの1つに属しており、前記一群のメッセージタイプは、
情報源として作用するプロセスから発生する新しい情報と、
前記メディエーションネットワークに含まれるノードであって、応答を要求するノードの状態に関する問い合わせと、
前記メディエーションネットワークが新しい関連情報を受信する場合に、進行中の応答を要求する関心の表明と、
から成る、請求項11から19のいずれか1項に記載の方法。

【公開番号】特開2012−43448(P2012−43448A)
【公開日】平成24年3月1日(2012.3.1)
【国際特許分類】
【出願番号】特願2011−205220(P2011−205220)
【出願日】平成23年9月20日(2011.9.20)
【分割の表示】特願2009−514895(P2009−514895)の分割
【原出願日】平成19年6月12日(2007.6.12)
【出願人】(509157878)クラウドソフト コーポレーション リミテッド (2)
【氏名又は名称原語表記】CLOUDSOFT CORPORATION LIMITED
【住所又は居所原語表記】13 Dryden Place,Edinburgh,EH9 1RP,Scotland,United Kingdom
【Fターム(参考)】