JP4588704B2 - 自己管理仲介情報フロー - Google Patents

自己管理仲介情報フロー Download PDF

Info

Publication number
JP4588704B2
JP4588704B2 JP2006521674A JP2006521674A JP4588704B2 JP 4588704 B2 JP4588704 B2 JP 4588704B2 JP 2006521674 A JP2006521674 A JP 2006521674A JP 2006521674 A JP2006521674 A JP 2006521674A JP 4588704 B2 JP4588704 B2 JP 4588704B2
Authority
JP
Japan
Prior art keywords
module
message
new
node
additional
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006521674A
Other languages
English (en)
Other versions
JP2007502553A5 (ja
JP2007502553A (ja
Inventor
ダンカン、ジョンストン‐ワット
アンドリュー、マーティン、ウエスト
アラン、ディアレ
リチャード、コナー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cloudsoft Corp Ltd
Original Assignee
Cloudsoft Corp Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Cloudsoft Corp Ltd filed Critical Cloudsoft Corp Ltd
Publication of JP2007502553A publication Critical patent/JP2007502553A/ja
Publication of JP2007502553A5 publication Critical patent/JP2007502553A5/ja
Application granted granted Critical
Publication of JP4588704B2 publication Critical patent/JP4588704B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0663Performing the actions predefined by failover planning, e.g. switching to standby network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0668Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/0816Configuration setting characterised by the conditions triggering a change of settings the condition being an adaptation, e.g. in response to network events
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0811Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/06Message adaptation to terminal or network requirements
    • H04L51/063Content adaptation, e.g. replacement of unsuitable content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/101Server selection for load balancing based on network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1012Server selection for load balancing based on compliance of requirements or conditions with available server resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1014Server selection for load balancing based on the content of a request
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1034Reaction to server failures by a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/288Distributed intermediate devices, i.e. intermediate devices for interaction with other intermediate devices on the same level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Preparation Of Compounds By Using Micro-Organisms (AREA)

Description

本発明は、仲介情報フロー・システム(mediated information flow system)に関する。特に、本発明は、散在ピア・ツー・ピア通信とそのような散在メッセージの全体に対するある程度の情報収集制御との両方に対して要件を有する自己管理分散仲介システム(self−managed distributed mediation system)に関する。
ピア・ツー・ピア(P2P)通信システムは、計算エンティティ(ピア)が、互いの間にソフトウェア接続(仮想チャネル)を確立することを可能にする。したがって、P2Pシステムは、中央管理制御に対する明示的な必要なしに、ピアが通信し、または計算タスクおよびリソースを共有することを可能にする。P2Pは、1つまたは複数のサーバを備える汎用ネットワーク内で動作することができ、ピアは、ネットワーク上の少なくとも1つのサービスに情報を提供(公表)し、かつ/または別のピアによって公表された情報を受け取るために、そのネットワーク上のサービスに登録(申し込み)することができる。
中央管理制御の提供から利益を得るメッセージ通信システムも知られている。そうしたシステムでは、すべてのメッセージは、メッセージに対して何らかの計算(仲介)が実行される中央拠点を介して、公表者から申込者へ送信される。新しいメッセージ(例えば要約)が入力メッセージから生成され、適切な申込者に送信される。
従来技術の中央管理仲介システムでは、すべてのメッセージ・トラフィックは、仲介サービスが存在する中央ネットワーク・ポイント(拠点)を介して送信される。論理要素に関して見られた場合、そのようなシステムは、そこで仲介タスクが実行される制御の中央ポイントを備えるスター型構成モデルとして構成される。このモデルは、図1Aに示され、情報の各ソース(公表者)およびシンク(申込者)は、中央仲介ハブに接続する通信ラインを有する。多くの場合、ソースとシンクは、異なるモードで動作する同じエンティティを表し、構成的に区別し得ないかもしれない。
そのような構成に関連する問題がよく知られている。それらは、仲介ポイントで帯域の不足に悩まされる傾向にある。高度に接続された物理ネットワーク上に論理スター型が載せられることができたとしても、すべての情報が中央ポイントを通る基本フローは、このポイントとネットワークの間で利用可能な帯域に基づいて、それに特有のスループット・ボトルネックを引き起こす(図1Bを参照)。ネットワーク技術の進歩によって帯域の利用可能度は向上し続けるだろうが、帯域の増加は、固有の財政的コストを伴い、あるシナリオでは、システム全体のスループットに対する現実の限界の原因となることができる。この限界は、ユーザの最大数、または各ユーザが情報を送信および受信することができる速度に対する制約として明瞭に示される。
確かに、P2P構成でも中央管理仲介構成でも完全には満足がいかない多くのシステムの例が存在する。しばしば、何らかの論理プロセスがメッセージング・システム内でブロードキャストされたメッセージの全体に対して動作することが必要とされる。どちらの構成も完全には適さないシステムのクラスの例は、潜在的買い手と売り手が互いに広告を出し、取引上の要件の一致を保証する仲介が必要とされる取引システム、情報が広められる前に中央オーソリティ(central authority)が編集制御として機能する仲介ニュースまたは出版システム、積極的には制御されないが、情報フローの順序づけられたログが中央リポジトリで維持されることを必要とするシステム、進行中の会話に参加するユーザに最近のコンテキストが提示されることを可能にする会話サービス、暗号鍵の配送(いわゆる鍵配送問題)、分散ネットワーク上でデータ(状態)およびサービスの所在を見出すためのシステム、およびモバイル・ユーザの居所を見つけ、通信するためのシステムを含む。
全体的に通信が考察された場合、上述のすべての例は共通して、ピア・ツー・ピア通信と情報フローのある程度の中央管理仲介との両方に対して要件を有する。
したがって、本発明の目的は、上述の問題を除去すること、または少なくとも軽減することである。
本発明の一態様によれば、コンピュータ・ネットワークにおいてメッセージ・フローを仲介するための方法が提供され、コンピュータ・ネットワークは、仲介ネットワークを備え、仲介ネットワークは、
仲介ネットワークとクライアント・プログラムの間でインタフェースをとるための少なくとも1つのローカル・ポイント・オブ・プレゼンス(LPP:local point of presence)モジュールと、
仲介タスクをホストするための少なくとも1つの仲介者(M:mediator)モジュールと、
着信メッセージの内容を分析するための少なくとも1つの仲介者ルータ(MR:mediator router)モジュールであって、各MRモジュールが、着信メッセージを前記内容に応じて所定のMモジュールにルーティングする少なくとも1つの仲介者ルータ(MR)モジュールと、
メッセージを前記LPPモジュールの少なくとも1つに転送するための少なくとも1つの送信プロキシ(TP:transmission proxy)モジュールとを含み、
前記方法において、仲介ネットワークへの着信メッセージは、仲介サイクル(mediation cycle)に沿って伝播され、仲介サイクルは、
LPPモジュールが、前記少なくとも1つの仲介者ルータ(MR)モジュールのそれぞれのモジュールを着信メッセージのアドレスに指定するステップと、
前記アドレス指定されたMRモジュールで、着信メッセージの内容を分析し、前記メッセージを前記分析された内容に応じて所定の仲介者モジュールにルーティングするステップと、
前記所定の仲介者モジュールで、前記分析されたメッセージに仲介タスクを適用し、仲介メッセージを前記TPモジュールのそれぞれのモジュールに送信するステップと、
前記仲介メッセージを受信した前記TPモジュールで、前記仲介メッセージを少なくとも1つの前記LPPモジュールに転送するステップとを備える。
この文書を通じて、物理ノードという用語は、物理マシンだけを指す。「ノード」および「論理ノード」という用語は、状態属性を有する拠点を指すために交換可能に使用される。仲介ネットワークの論理トポロジーに関して、モジュールは、関連論理ノードの機能を提供する。
したがって、分散仲介は、P2P構成と中央管理仲介のハイブリッドを形成する。スター型構成の論理中央ハブは、ソースおよびシンクから成る外部ネットワークへの複数のコネクションを有する、仲介者ノードから成る中央(しかし分散)仲介ネットワークによって置き換えられる。このアプローチは、スター型の(中央仲介)構成の帯域制約に対処する。システムの仲介要件は、それが搬送するメッセージの集合に対して課される何らかの分類に基づいて、分散仲介ネットワークのノード間に分配される。すべての着信メッセージの集合は、メッセージ内容に基づいて複数の重複のない部分集合に分類される。この分類の概念は、システム動作の外から観察可能な挙動には影響を及ぼさず、システムの全体的スループットにのみ影響を及ぼす。
分散仲介ネットワークの物理構成は、中央仲介ネットワークとは大きく異なり、前者の場合、同量の情報フローを吸収する多くのネットワーク接続が存在し、その結果、各物理ノードでの帯域要件は、比例的に低いものとなる。論理的な絵図は、複数の仲介者ノードが単一のネットワーク内に配置された形に描かれることができるが、実際には、物理ノードのサイトは、物理的に、また地理的にさえも複数のマシン間に散在させられることができることは理解されよう。これは、この構成が世界中のサイトに配備され、論理および物理構成の間に何も緊密な関係がありそうにない場合に、特に起こる可能性が高い。
明らかに、このアプローチの利点は、ネットワーク接続されたマシンの物理編成から生じる。各仲介者モジュールは、自立的に機能することができ、他のどのモジュールとも無関係にそのアクションを実行することができる。言い換えると、モジュールは、他のどのモジュールにもグローバルな依存性をもたず、直接の隣接者(immediate neighbour)より向こうのネットワークに関する詳細な知識を何も必要としない。高度に接続されたネットワーク基盤を与えられた場合、与えられたスループットを達成するための最大必須帯域は、任意の低い値まで低下される。仲介負荷が仲介サービスによって利用されるマシン間に均一に配分されることができる場合、これは、ネットワーク上の仲介者ノードの数を増やすことによって達成されることができる。ネットワーク内の任意の1つのポイントにおける最大必須帯域は、ネットワーク負荷とまだ比例するが、配備された仲介者ノードの数に逆比例もする。当然、全仲介要件を複数のプラットホームに分配することを組織することによって引き起こされるどのような追加のネットワーク負荷も、この構成の利益を打ち消すことがないように十分低くなければならない。
仲介ネットワークによって処理される着信メッセージは、情報ソースとして機能するプロセスから生じる新情報と、仲介ネットワーク内のノードの状態についての問い合わせであって、応答を必要とする問い合わせと、関係する新情報が仲介ネットワークによって受信されたときは常に継続的な応答を必要とする関心表明(expression of interest)とを含む、メッセージ・タイプ群のうちの1つに属すことができる。
制御メッセージを着信メッセージとして仲介サイクルに沿って送信することによって、本発明の方法は、仲介ネットワークの内部動作の変更を引き起こすことができる。
クライアント・メッセージを搬送することに加えて、分散仲介ネットワークは、制御または管理メッセージの配布も容易にする。管理メッセージは、ネットワーク内の各サイクルの連続するノードへの命令の伝搬にだけ関わり、特に内部動作の変更をもたらすという点で異なる。それらは、クライアント・メッセージとインタリーブされることができる。
内部動作の変更に対処することによって、本発明は、動的負荷バランシングが固定トポロジー・ネットワーク内で生じることと、論理トポロジーの任意の変更に関連する仲介プロセス移行(mediation process migration)の両方を、どちらの場合にも不安定性を導入することなく可能にしようと試みる。
内部動作における変更は、提供仲介者モジュールと受取仲介者モジュールの間の仲介タスクの移管(handover:ハンドオーバー)であることができ、
制御メッセージは、仲介者移管メッセージであり、仲介者移管メッセージの内容は、所定のコンテンツ・タグを有するコンテンツの提供仲介者モジュールから受取仲介者モジュールへの再割り当てを記述し、提供仲介者モジュールは、前記コンテンツを処理するものとして現在登録されており、
仲介者移管メッセージの取り扱い(direction)は、
所定のLPPモジュールから、仲介者移管メッセージをそれぞれの関連MRモジュールに送信することと、
関連MRモジュールで、前記コンテンツ・タグを読み取り、メッセージを提供仲介者モジュールに転送することと、
仲介者移管メッセージの受信時に、提供仲介者が、仲介者ノードの状態を変更することと、仲介者移管メッセージの内容を含むMEDIATOR_HANDOVERメッセージを受取仲介者モジュールに送信することと、MEDIATOR_CHANGEDメッセージを関連TPモジュールに送信することと、その後、コンテンツ・タグを含むメッセージを受取仲介者モジュールに転送するために状態を変更することとを備える。
分類に関してユーザの要求は時間とともに変化するので、移管操作は、システム全体でのネットワークおよび計算負荷を平衡させるために、仲介タスクが実行されるノードが物理的に移動されることを可能にする機能を提供する。
移管は好ましくは、
TPモジュールがMEDIATOR_CHANGEDメッセージを少なくとも1つのLPPモジュールに転送することと、
受取仲介者モジュールが再割り当てコンテンツに対応するペイロードを有するNEW_MEDIATOR_ACTIVEメッセージを生成し、前記NEW_MEDIATOR_ACTIVEメッセージを関連するすべてのTPモジュールにブロードキャストすることと、
LPPモジュールがMEDIATOR_CHANGEDメッセージの受信とNEW_MEDIATOR_ACTIVEメッセージの受信の間のすべての着信メッセージをバッファリングすることとをさらに備える。
有利には、本発明の方法は、
その後、LPPモジュールがNEW_MEDIATOR_ACTIVEメッセージを関連MRモジュールに転送することと、
MRモジュールがNEW_MEDIATOR_ACTIVEを受信したときは常に、NEW_MEDIATOR_ACTIVEメッセージのペイロードに一致する将来のコンテンツが提供仲介者モジュールではなく受取仲介者モジュールに送信されるように、前記MRモジュール用のルーティング・テーブルを更新し、ルーティング・テーブルが更新されたことを提供仲介者モジュールに通知し、その後、提供仲介者モジュールは、今は受取仲介者モジュールが再割り当てコンテンツの仲介者モジュールであることをすべてのMRモジュールが通知されたならば、メッセージを転送することを止めることをさらに備える。
移管操作は、論理トポロジーの任意の変更にもかかわらず、動的な仲介プロセス移行を可能にしない。
内部動作の変更は、仲介ネットワークの論理トポロジーの再構成であることもでき、制御メッセージは、1つまたは複数の再構成メッセージである。
論理トポロジーの再構成は好ましくは、再構成の前に仲介ネットワークを通過したメッセージが、再構成の後に仲介ネットワークを通過したメッセージより先に配送されることを保証する臨時バリア(casual barrier)の生成を備える。どの場合も、臨時バリアを生成するステップは、前記1つまたは複数の再構成メッセージを仲介サイクルで循環させることと、サイクル内の各モジュールが再構成を十分に通知されることを保証することとを備える。
有利には、仲介構成の論理トポロジーの再構成は、追加のローカル・ポイント・オブ・プレゼンス(LPP)ノードの挿入であり、前記1つまたは複数の再構成メッセージは、追加LPPノードを一意に識別するnew_LPPメッセージを含み、前記挿入は、
追加LPPノードの所定の追加LPPモジュールで、new_LPPメッセージを生成し、new_LPPメッセージをMRノードの対応するMRモジュールに送信することと、
対応するMRモジュールで、new_LPPメッセージを受信し、MRノード用の参照カウント(reference count)を更新し、new_LPPメッセージを構成内のすべての仲介者モジュールに伝播させることと、
各仲介者モジュールで、new_LPPメッセージを受信し、関連するクレジット・バランス(credit balance)を各TPノードが有するTPノードのそれぞれの対応するTPモジュールにnew_LPPメッセージを送信することと、
対応するTPモジュールの各々で、new_LPPメッセージを受信し、それぞれの関連するクレジット・バランスを含むそれぞれの拡張new_LPPメッセージを追加LPPモジュールに送信することと、
追加LPPモジュールで、拡張new_LPPメッセージを受信し、それによってnew_LPPメッセージの循環を完了することと、
追加LPPモジュールで、クレジット・バランスを合計し、クレジット合計が所定の完了値に達した場合に再構成の十分な通知が保証されることとを備える。
仲介構成の論理トポロジーの再構成は、追加の仲介者ルータ(MR)ノードのさらなる挿入を備えることができ、前記1つまたは複数の再構成メッセージは、追加MRノードを一意に識別するnew_MRメッセージをさらに含み、前記さらなる挿入は、
追加LPPが、対応するクレジット・バランスを有するMRノードの対応するMRモジュールにnew_MRメッセージを送信することと、
対応するMRモジュールが、追加MRノードのアドレス情報、追加LPPノードのアドレス、ルーティング情報、および対応するクレジット・バランスの分数値(fraction)を含むnew_MR_route_tableメッセージを送信することによってnew_MRメッセージに応答することと、
次に対応するMRモジュールが、new_MR_route_tableメッセージを任意の仲介者モジュールに転送することと、
任意の仲介者モジュールが、new_MR_route_tableメッセージを追加LPPモジュールに受け渡すことと、
次に追加LPPモジュールが、ルーティング・マップを追加MRモジュールに受け渡すことと、
追加MRモジュールで、new_MR_route_tableメッセージの内容を使用して、新しいクレジット・バランスおよびルーティング・マップを初期化することとを含む。
前記再構成が、追加LPPモジュールがアドレス指定するMRモジュールを追加MRモジュールに変更することをさらに備えることが好ましく、追加MRモジュールは、new_MR_route_tableメッセージの受信時に、MR_initialised()メッセージを追加LPPモジュールに送信し、追加LPPモジュールは、inc_ref_count()およびdec_ref_count()メッセージをそれぞれ追加および初期MRモジュールに送信する。
代替として、仲介構成の論理トポロジーの再構成は、追加の仲介者(M)ノードの挿入であることができ、前記1つまたは複数の再構成メッセージは、追加仲介者ノードを一意に識別するnew_Mメッセージを含み、前記挿入は、
所定の追加仲介者モジュールが、new_Mメッセージを生成し、TPノードの対応するTPモジュールにnew_Mメッセージを送信することと、
対応するTPモジュールで、new_Mメッセージを受信し、TPノード用の参照カウントを更新し、new_Mメッセージを構成内のすべてのLPPモジュールに伝播させることと、
各LPPモジュールで、new_Mメッセージを受信し、関連するクレジット・バランスを各MRノードが有するMRノードのそれぞれの対応するMRモジュールにnew_Mメッセージを送信することと、
対応するMRモジュールの各々で、new_Mメッセージを受信し、それぞれの関連するクレジット・バランスを含むそれぞれの拡張new_Mメッセージを追加仲介者モジュールに送信することと、
追加仲介者モジュールで、拡張new_Mメッセージを受信し、それによってnew_Mメッセージの循環を完了することと、
追加仲介者モジュールで、クレジット・バランスを合計し、クレジット合計が所定の完了値に達した場合に再構成の十分な通知が保証されることとを備える。
後者の場合、仲介構成の論理トポロジーの再構成は、追加の送信プロキシ(TP)ノードのさらなる挿入を備えることができ、前記1つまたは複数の再構成メッセージは、追加TPノードを一意に識別するnew_TPメッセージをさらに含み、前記さらなる挿入は、
追加仲介者モジュールが、new_TPメッセージを受信することと、
追加仲介者モジュールが、追加仲介者ノードのアドレスをnew_TPメッセージに追加し、対応するクレジット・バランスを有するTPノードの対応するTPモジュールにnew_TPメッセージを転送することと、
対応するTPモジュールが、追加TPノードのアドレス情報、追加仲介者ノードのアドレス、LPPのリスト、および対応するクレジット・バランスの分数値を含む拡張new_TPメッセージを生成することによってnew_TPメッセージに応答することと、
次に対応するTPモジュールが、new_TPメッセージを任意のLPPモジュールに転送することと、
次に任意のLPPモジュールが、新しいルーティング・マップを追加TPモジュールに受け渡すことと、
次に追加TPモジュールが、ルーティング・マップを追加MRモジュールに受け渡すことと、
追加TPモジュールが、新しいルーティング・マップ・メッセージの内容を使用して、新しい対応するクレジット・バランスおよびLPPモジュールのリストを初期化することとを含む。
好ましくは、前記再構成は、追加仲介者モジュールがアドレス指定するTPモジュールを追加TPモジュールに変更することをさらに備え、追加TPモジュールは、新しいルーティング・マップ・メッセージの受信時に、TP_initialised()メッセージを追加仲介者モジュールに送信し、追加仲介者モジュールは、inc_ref_count()およびdec_ref_count()メッセージをそれぞれ追加および初期TPモジュールに送信する。
コンピュータ・ネットワークは便利には、仲介ネットワーク内の各ノードと通信する障害検出ノードをさらに備えることができ、本発明の方法は、
障害検出ノードで、障害検出モジュールを提供することと、
仲介ネットワークの各ノードで、障害報告モジュールを提供することとをさらに備え、
ノード間の着信または発信通信リンクが障害を起こした場合は常に、前記障害報告モジュールの各々が、障害通信リンクに関する情報を前記障害検出モジュールに報告し、
前記障害検出モジュールは、前記障害リンクが障害ノードを暗示するかどうかを決定する。
障害検出モジュールが、前記障害リンクは障害ノードを暗示すると決定した場合、本発明の方法は、障害ノードと同じタイプの新しいノードを生成することと、障害ノードの内部状態および直接の近隣トポロジーに関する情報を新しいノードに登録することと、新しいノードを障害ノードより優先的に使用するようにネットワークを再構成することとをさらに備える。
本発明の方法は有利には、前記所定の仲介者モジュールによって受信されるすべての着信メッセージのメッセージ・ログを生成することをさらに備える。
前記所定の仲介者モジュールで前記分析されたメッセージに適用される仲介タスクは、メッセージ・ログを生成することを含むことができる。代替として、コンピュータ・ネットワークは、外部アプリケーションをさらに備え、本発明の方法は、前記外部アプリケーションでメッセージ・ログを生成することをさらに備えることができる。
便利には、内部動作の変更は、変更要求に応答した、仲介構成の論理トポロジーの構造改良の形をとることができる。有利には、構造改良のステップ内でサブネットワークが単一のノードの代わりに挿入される。
本発明のさらなる一態様によれば、コンピュータ・ネットワークにおいてメッセージ・フローを仲介するための仲介ネットワークが提供され、仲介ネットワークは、
仲介ネットワークとクライアント・プログラムの間でインタフェースをとるための少なくとも1つのローカル・ポイント・オブ・プレゼンス(LPP)モジュールと、
仲介タスクをホストするための少なくとも1つの仲介者(M)モジュールと、
着信メッセージの内容を分析するための少なくとも1つの仲介者ルータ(MR)モジュールであって、各MRモジュールが着信メッセージを前記内容に応じて所定のMモジュールにルーティングする少なくとも1つの仲介者ルータ(MR)モジュールと、
メッセージを前記LPPモジュールの少なくとも1つに転送するための少なくとも1つの送信プロキシ(TP)モジュールとを備え、
仲介ネットワークは、LPPモジュールがMRモジュールをアドレス指定し、次にMRモジュールがMモジュールをアドレス指定し、次にMモジュールがTPモジュールをアドレス指定し、そして次にTPモジュールがLPPモジュールをアドレス指定する単方向仲介サイクルに沿ってメッセージを結合する。
本発明の別の態様によれば、コンピュータ・ネットワークにおいてメッセージ・フローを仲介するためのコンピュータ・プログラム製品が提供され、コンピュータ・プログラム製品は、仲介ネットワークを提供するための実行可能命令を含み、仲介ネットワークは、
仲介ネットワークとクライアント・プログラムの間でインタフェースをとるための少なくとも1つのローカル・ポイント・オブ・プレゼンス(LPP)モジュールと、
仲介タスクをホストするための少なくとも1つの仲介者(M)モジュールと、
着信メッセージの内容を分析するための少なくとも1つの仲介者ルータ(MR)モジュールであって、各MRモジュールが着信メッセージを前記内容に応じて所定のMモジュールにルーティングする少なくとも1つの仲介者ルータ(MR)モジュールと、
メッセージを前記LPPモジュールの少なくとも1つに転送するための少なくとも1つの送信プロキシ(TP)モジュールとを備え、
命令が実行された場合、仲介ネットワークへの着信メッセージは、仲介サイクルに沿って伝播され、仲介サイクルは、LPPモジュールが、前記少なくとも1つの仲介者ルータ(MR)モジュールのそれぞれのモジュールを着信メッセージのアドレスに指定するステップと、
前記アドレス指定されたMRモジュールで、着信メッセージの内容を分析し、前記メッセージを前記分析された内容に応じて所定の仲介者モジュールにルーティングするステップと、
前記所定の仲介者モジュールで、前記分析されたメッセージに仲介タスクを適用し、仲介メッセージを前記TPモジュールのそれぞれのモジュールに送信するステップと、
前記仲介メッセージを受信した前記TPモジュールで、前記仲介メッセージを少なくとも1つの前記LPPモジュールに転送するステップとを備える。
本発明の実施例がこれから添付の図面を参照して詳細に説明される。
本発明に背景を提供するP2Pおよび集中仲介メッセージング・モデルが最初に説明される。この説明を通して、ソースという用語は、ネットワーク・サービスに送信される新しいメッセージを生成するクライアントを指し、シンクという用語は、ネットワーク・サービスからメッセージを受信するクライアントを指す。ネットワーク・サービスの各クライアントは、ソース、シンク、またはその両方であることができる。代替的な用語では、情報のソースは、公表者と呼ばれ、情報のシンクは、申込者と呼ばれる。
ピア・ツー・ピアの内容ベース・ルーティング(content-based routing)では、ネットワークは、適切なソースとシンクの間の仮想チャネルの確立に基づいて、ソースからシンクへの効率的なメッセージ送信が可能になるように構成される。効率は一般に、完全に接続されたグラフから不要な辺(ノードを接続する通信ライン)を検出し、除去することによって達成され、その後、結果の最適化グラフは、利用可能なネットワーク基盤に適合される。P2P仮想チャネルを確立するには、1つのピアからの関心表明と、その他のピアによるその関心の受け入れを必要とする。
他方、集中仲介モデルでは、すべてのメッセージは、中央仲介ノード(図1Aおよび1Bを参照)を介して送信される。仲介ネットワークの用語(pariance)では、仲介サービスは、すべての着信メッセージに適用されるいくつかの計算に対して用いられる一般用語であり、仲介構成のどれか特定のインスタンスの仲介要件は、そこで提供されるすべての仲介サービスの照合(collation)を指し、仲介オーソリティは、そのような仲介サービスを提供する1人または複数の人であり、仲介ネットワークは、仲介オーソリティの管理下にある物理的な計算エンティティ(マシン)のネットワークであり、仲介サーバは、1つまたは複数の仲介サービスをホストする物理マシンである。
汎用仲介情報フロー・システムの簡略化モデルでは、仲介オーソリティに送信されるメッセージは、以下のタイプ、すなわち、情報ソースとして動作するプロセスから生じる新情報、仲介オーソリティによって保持される状態についての問い合わせ、および関係する新情報が仲介オーソリティによって受信されるときはいつでも継続応答を必要とする基本的に持続的な問い合わせである関心表明のうちの1つに属することができる。
完全仲介モデルであっても、関心表明は、特にこのネットワーク・サービスのシンクへの配送においてまだ重要であることができ、各仮想チャネルでの帯域要件を低下させることができることは述べるに値する。
上記の定義に照らして、仲介情報フロー・システムは、情報を含み、仲介オーソリティにおよびから送信されるメッセージから成るシステムである。このオーソリティによって取られるアクションは、受信メッセージの時間順のロギング、ある時点までに受信されたメッセージの全体に対する計算、およびメッセージ内容に基づく何らかの処理をおそらく実行した後での着信メッセージのその他のクライアントへの配布を含むことができる。
本発明は、内容ベースの非集中化P2Pモデルと単純な集中仲介ネットワーク・モデルとのハイブリッドを提示する。単一の中央仲介者を提供するのではなく、様々な仲介サービスが、複数の別個の機能構成要素を備える仲介ネットワーク全体に分散される。ハイブリッド・モデルでは、関心表明は、ソース・ノードと仲介者ノードの間で仮想チャネルをオープンするために使用され、関心表明は、仲介者ノードとシンク・ノードの間で仮想チャネルをオープンするために使用される。したがって、シンク・ノードによって受信されるメッセージは、仲介されるサービスとともに登録される関心表明によって管理される。ソースおよびシンク・ノード間の待ち時間は、2以上の論理ホップが伴われるので、単純な内容ベース・ルーティングにおけるよりも必然的に長い。コンテキストがそれを許すならば、各論理ホップの待ち時間は、より静的な情報が利用可能になるほど、連続的に短縮されることができる。単純な仲介モデルと比較して、仲介タスクは、複数ノードに分配されるので(図2Aを参照)、より複雑になる。しかし、集中仲介モデルに固有の中央ボトルネック(central bottleneck)は取り除かれ、その結果得られる構成はスケーラブルである。
すべての着信メッセージの集合は、メッセージ内容によって複数の重複しない部分集合(カテゴリ)に分割(分類)される。仲介要件の全体は、複数の仲介タスクとして実施され、各タスクは、受信メッセージの個々のカテゴリに対して動作する異なるプロセスで別々にサービスされる。各メッセージは、そのメッセージが特定のカテゴリのメンバーであるかどうかを示す内容、いわゆる決定論的述語(deterministic predicate)を含む。この決定論的述語は、メッセージの「文」の「動詞」部分であると考えられることができる。したがって、着信メッセージは、それらの内容である決定論的述語に基づいて分類可能である。その場合、カテゴリは、関連する決定論的述語に基づくすべての可能なメッセージの部分集合と見なされることができる。確かに、与えられた決定論的述語の存在は、対応するカテゴリを特徴づける。
情報がさらに配布される前に仲介オーソリティが編集制御として動作する仲介ニュースまたは出版サービスでは、決定論的述語の例は、
・文書の一意識別子の同一性
例.doc id=1246512331400
例.newsML itemid=“238563”
・何らかの日付/時刻表現
例.newsML newsitem.date<28 July 2003 and newsitem.date>10 January 2001
・文書の国コードの同一性
例.country_code=UK or country_code=“UK”or country_code=“US”
{newsML country codeを使用}
・何についての記事かに関する何らかのトピック・コード
例.Topic=“human rights”{newsML topic codeを使用}
・newsML記事の属性値に基づく何らかの述語
例.<dateline>==“LONDON”
を含む。
中央オーソリティが買い手と売り手の要件を一致させるために動作する売買取引サービスでは、決定論的述語の例は、
・Article=“piano”and location=“NE Scotland”and price<3 pounds
・Stock=“IBM”
・Category=“Home>All Categories>Sports”and item=“windsurfer”
を含む。
進行中の会話に参加するユーザに最近のコンテキストを提示することができる会話サービスでは、決定論的述語は、
・Topic=“sailing”and category=“Topper”
・Topic=“Mail servers”and category=“sendMail”and operating system=“Unix”
であり、ニュースグループから取られた例では、
・Topic=alt.money.currency.us−dollars
であることができる。
暗号鍵を配送する(いわゆる鍵配送問題の)場合、決定論的述語は、鍵の値に基づいて、例えば、
Key value>23352345 and keyvalue<66676767979079
であることができる。
分散ネットワーク上でデータ(状態)およびサービスの所在を見つける場合、決定論的述語は、
例.GUID=125645654645
のようにグローバルに一意な識別子に基づくことができ、または
例.Service=“printer(type=“laserjet”;price=“4p/page”;size=A0)”
のように探しているサービスの記述子に基づくことができる。
最後に、モバイル・ユーザの居所を見つけ、通信する場合、決定論的述語の例は、
・Name=“Bon Monkeyhouse”
・phone number=“01776 32463274327”
・e−mail address=asau@ghsghdsg.net
含む。
すべてのカテゴリの集合(したがって一度分類されたすべてのメッセージの集合)は、分類と呼ばれる。したがって、分類は、すべてのメッセージの集合の分割を表し、単一のメッセージは、2以上のカテゴリに属すことはできない。この分類の概念は、システム動作の外から観察可能な挙動には影響を及ぼさず、システムの全体的スループットにのみ影響を及ぼす。
システムの分類は、システム内を受け渡されていく情報の何らかの特性に基づくので、送信されるメッセージのタイプ(新情報、関心表明、または問い合わせ)から独立している。重大なことは、分類は、自動化プロセスによって生じることができる。そのような着信メッセージは、分類内のそのカテゴリについての情報、または分類内のそのカテゴリに関係する問い合わせから成ることができる。
情報システムの分類は、仲介オーソリティによって実行され、これはシステムの動作中に起こることができる。決定論的述語は、カテゴリに入れるために任意のメッセージを検査することができるように生成されなければならない。このように識別される各カテゴリについて、別個のプロセスが、その仲介サービスを処理するために仲介ネットワーク内で作成される。最後に、分類は、論理システムのセマンティクスをどんな形にせよ変更するためではなく、その性能を向上させるためだけに使用され、システムのクライアントは、それが存在することに気づかないことは述べるに値する。
各カテゴリ用の仲介タスクは、仲介ネットワーク内の特定のマシン(コンピュータ)でホストされる。システムが活動中のとき、メッセージはクライアントによって仲介ネットワークに送信される。ネットワークに受信されたメッセージは、すべてのカテゴリ述語の集合によるメッセージ内容の分析に基づいて、適切な仲介サービスに転送される。この転送プロセスは、分類についての知識と、各仲介タスクがホストされ、仲介ネットワーク内を受け渡されていくべき物理ロケーションとについての知識を必要とする。
図3は、「静的(quiescent)」または「安定状態(steady state)」にある、すなわち論理トポロジーの変化を考えに入れない状態にある(ハイブリッド)分散仲介モデルの機能構成要素を例示する最小のトポロジーを示す。この図は、データがどのようにシステム内の様々な構成要素ノード間を流れるかを示す。
限定されない規模の分散仲介モデルに必要なすべての構成要素ノードは、この最小のトポロジーに示され、ソース、シンク、ローカル・ポイント・オブ・プレゼンス、仲介者ルータ、仲介者、および送信プロキシを含む。以降の説明を通して、これらの項目および以下に列挙されるその他は、以下に説明されるように定義される。
ローカル・ポイント・オブ・プレゼンス(LPP):ローカル・ポイント・オブ・プレゼンスは、クライアント(ソースおよびシンク)と分散仲介モデルの残りの部分との間の仲介者として動作する。ローカル・ポイント・オブ・プレゼンスは、仲介サービス用のプロキシを特定の地理的領域に提供するネットワーク・ノードである。したがって、各ソースまたはシンクは、単一のローカル・ポイント・オブ・プレゼンスとだけ通信し、そして、仲介構成内の他のいかなるノードとも通信しない。任意の数のLPPがシステム内に存在することができ、各々はそれぞれの数のクライアントにサービスする。
仲介者(M):仲介者は、仲介者モジュールを組み込んだネットワーク・ノードであり、それは仲介要件にサービスを提供する。各仲介者は、関連するダウンストリーム配送を備え、それは関連メッセージをLPPに、したがって最終的にシンクに受け渡すのに使用される。各仲介者モジュールは、1つまたは複数の仲介タスクを実施し、各タスクは、着信メッセージの単一のカテゴリに対して機能する。仲介者モジュールは、受信したすべての着信メッセージのログを記録し、これらのメッセージを関連するダウンストリーム送信ネットワークに転送するように構成されることができる。その場合、仲介タスクは、そのように生成されたメッセージ・ログに対する問い合わせにサービスを提供することを含むことができる。
仲介者ルータ(MR):仲介者ルータは、仲介者ルータ・モジュールを組み込んだネットワーク・ノードであり、それは着信メッセージの内容を分析し、そのメッセージがどのカテゴリに属するかを決定し、それらを適切な仲介者にルーティングする。各仲介者ルータは、アップストリーム・ネットワークの最前部に存在し、複数のLPPからメッセージを受信する。仲介者ルータも、例えば、それがサービスする地理的領域内でローカル・サービスを可能にするため、着信メッセージのログを記録することができる。
送信プロキシ(TP):送信プロキシは、送信プロキシモジュールを組み込んだネットワーク・ノードであり、それは1つまたは複数の仲介者ノードによって出力されたメッセージを分析し、登録された関心表明から、発信メッセージがどのシンク宛てに送信されるかを決定し、そして各仲介者に関連するダウンストリーム・ネットワークにメッセージを転送する。
アップストリーム・ネットワーク(ソースから仲介者ルータまで)は、仲介されているように見えるが、内容ベースではない。いわゆるクロスストリーム(cross−stream)内の仲介者ルータと仲介者の間のルーティングは、内容ベースである。ダウンストリーム・ネットワークも、内容ベースのルーティングを必要とし、確かに、仲介者ルータとLPPの間のメッセージ・ルーティングは、正当な権利をもってハイブリッド内容ベース配送機構と見なされることができる。このハイブリッドの一部としてのメッセージ空間の分割は、非スケーラブルな中央ボトルネックを招くことなく、公表/申し込みモデルにミッドストリーム仲介サービスの導入を可能にする。
「静的」または「安定状態」システムの場合、分散仲介ネットワークに関する以下の言明は常に真実である。これらの言明は、分散仲介構成の「グローバル不変量(global invariant)」と考えられることができる。
・どのノードもすべて、サイクルLPP→MR→M→TP→LPPの一部である。
・どのLPPもすべて、単一のMRのアドレスを指定する。
・どのMRもすべて、任意のMのアドレスを指定することができる。
・どのMもすべて、単一のTPのアドレスを指定する。
・どのTPもすべて、任意のLPPのアドレスを指定することができる。
上で使用されたシンボル「→」は、単方向コネクション(有向辺)を表す。
表1(図6)は、仲介変更アルゴリズムの「正しさ」のための従属関係、すなわち各ノードによって維持されることが必要とされるすべての区域外知識を表にしている。
上記の「グローバル不変量」の検査から、図3に示されたネットワークがなぜ最小分散仲介トポロジーであると考えられるかは明らかであり、最小分散仲介トポロジーは、正確に4つのノードから成り、各タイプ(LPP、MR、M、およびTP)のノードは、それらの間に配置された単方向コネクションによる単純な循環LPP→MR→M→TP→LPPの中に構成される。
より現実的かつ複雑な分散仲介ネットワークが図4に示される。ここでは、各タイプの2つのノードが、以降「キュービック」ネットワークとして知られる構成で存在する。キュービック・ネットワークは、一般的な分散仲介ネットワークのさらなる属性を例示する。
循環ネットワークでのように、接続されたノード間のメッセージ・フローは単方向である。キュービック・ネットワークのあらゆるノードは、少なくとも1つの循環LPP→MR→M→TP→LPPの構成要素である。キュービック・ネットワークは、「ファン・イン/ファン・アウト」トポロジーを示し、どのLPPも各メッセージを正確に1つのMRに送信するが、どのMRも複数(図4では2つ)のLPPによってアドレス指定され(ファン・イン)、どのMRもメッセージを任意の仲介者に送信することができ(ファン・アウト)、どの仲介者も任意の与えられたメッセージを正確に1つのTPに送信するが、各TPは複数の仲介者によってアドレス指定され(ファン・イン)、そして最後に、どのTPもメッセージを任意のLPPに送信することができる(ファン・アウト)。
最小循環およびキュービック・ネットワークなどの分散仲介ネットワークは、別の重要な属性も示し、すなわちネットワーク内のあらゆるノードからあらゆるノードへの有向パスが存在する。グラフ理論の用語で、あらゆるノードは、その他のあらゆるノードの推移閉包(transitive closure)である。この属性は、循環ネットワークでは自明的に成り立つが、より複雑な分散仲介ネットワークでもグローバル不変量属性の結果として成り立つ。有向パスは、常に有向循環グラフと考えられることができる。したがって、一般化された分散仲介ネットワーク内の任意の2つのノードのAおよびBについて、Bを含むAからAへの循環が存在する。キュービック(単一レベル)ネットワークでは、そのような循環の最大パス長が、4ではなく8であることは述べるに値する。
やはり、各ノードは、グローバルな従属関係、または直接の隣接ノード以外のネットワークの詳細な知識をもたない。各ノードは、それが直接的にアドレス指定するノードの識別情報だけを保存する。ノードは、ネットワーク内の各ノードをアドレス指定するノード全体に関する情報も保存し、これはノード自体における参照カウントとして、またはノードを直接にアドレス指定するすべてのノードにおけるクレジット・バランス値として保存されることができる。どちらにせよ、アドレス指定するノードの識別情報は保存される必要がない。確かに、ノードは、システム全体の残りの部分についてのさらなる情報は何も保存する必要がない。
本発明の分散仲介ネットワークのさらに重要な属性は、各ノード内で挙動が決定論的であり、順序づけられていることであり、すなわち、メッセージAの後に到着したメッセージBは発信もメッセージAの後であることを保証することが可能である。同様に、メッセージは、ノード間の直接リンク上で追い越しをすることができず、したがって、N2がN1によって直接にアドレス指定されるような任意の2つのノードN1およびN2に関して、そのような場合にメッセージAがN1によってN2に送信され、その後でメッセージBがN1からN2に送信されるならば、その場合、N2はメッセージBを受信する前にメッセージAを受信する。
臨時バリア(Causal Barrier)
汎用分散仲介ネットワークの各ノードは、それがメッセージを直接送信する他のノードの存在についてだけ詳細な知識を有する。ノードがメッセージをそこから受信するノードについての情報は、そのようなノードの全体だけを表す形に保存される。先に述べられたように、この情報は、ノード自体に参照カウントとして、またはノードを直接にアドレス指定するすべてのノードにクレジット・バランス値として保存されることができる。
ある場合には、順序づけられた決定論的な挙動を維持しながら、ネットワーク内で変更を達成するために、ある程度のグローバルな制御が必要とされる。これは、ネットワーク内の各ノードをアドレス指定するノードの全体についての情報が役に立つところである。分散仲介ネットワークは、変更が行われる時にシステム内を通過するどのようなメッセージに関しても、一組の首尾一貫した変更が明白かつ原子的に行われることができるようにするためのさらなる属性を必要とし、その属性は、臨時バリア・アルゴリズムと呼ばれる。
アドレス指定元(addresser)情報が参照カウントとして保存される場合、臨時バリア・アルゴリズムは、受信アルゴリズムの全体である。与えられたメッセージの1つのコピーが、目標ノードにおいて、目標ノードを直接アドレス指定するノードから期待される場合、これが確かに以下のようになされるように定めることが可能であり、すなわち、目標ノードはそれを直接アドレス指定するノードの数に対応する参照カウントを維持し、メッセージが送信されるときは常に、送信ノードの一意の識別情報を含むように情報が追加され、同じメッセージのコピーがすべての送信ノードによって送信されたたどうかを受信者が検出する必要があるならば、その場合は送信ノード識別子情報が対応するメッセージIDと関連づけてローカルに保持され、受信されたそのような特有なメッセージの数が参照カウントに等しいならば、その場合はノードを直接アドレス指定するすべてのノードからメッセージが受信されたことが分かる。
参照カウントを含まないノードの場合、異なる臨時バリア・アルゴリズムが使用されることができる。このアルゴリズムは、受信ノードを直接アドレス指定する各ノードのクレジット・バランス・フィールドの存在に依存する。メッセージが送信されるときは常に、送信ノードの一意の識別情報とクレジット・バランス・フィールド値とを含むように情報が追加される。同じメッセージのコピーがすべてのノードによって送信されたたどうかを受信者が検出する必要があるならば、その場合は送信ノード識別子情報IDがメッセージIDと関連づけてローカルに保持される。さらに、クレジット・バランス累算器が維持され、クレジット・バランス累算器は、そのようなメッセージに含まれるすべてのクレジット・バランス値の合計を格納するように設定される。クレジット・バランス累算器が所定の合計値、例えば1.0に等しくなった場合、すべての送信ノードからメッセージが受信されたことが分かる。
したがって、参照カウントおよびクレジット・バランス技法は共に、臨時バリア・アルゴリズムが、すべてのメッセージが適切なモジュールによって受信されたことを確認し、それによって仲介ネットワークの内部トポロジーの特定の変更のための臨時バリア・アルゴリズムの終了を定めることができることを保証する。そのような「記帳技法」の適用は、仲介者モジュールが、それらに情報を送信するMRモジュールの数についての静的知識を必要とせずに、仲介変更が完了した時を検出することを可能にする。
物理マシンへの均一配分仲介負荷は、一般に負荷条件の変化に対して反応がよくない。反応をよくするには、情報空間の分割(分類に基づく仲介負荷の配分)は、負荷平衡的でなければならない。言い換えると、物理ネットワークのどの単一ポイントにおける帯域要件も、全体としてのネットワーク負荷と比例したままでなければならない。メッセージの論理的集中点(logical focus)は時間とともに変化するので、これは、それ自体が情報フローの最近の履歴に基づく予測モデルに基づく動的調整を必要とする。単に2以上のプラットホームへの仲介サービスの分割を組織しなければならないことによって引き起こされる追加のネットワーク負荷も、任意の負荷バランシング・モデルで考慮されなければならない。
システムの仲介要件は、そのシステムに課された分類に基づいて、分散仲介ネットワークのノード間に分散される。しかし、すべてのロケーションおよびすべての述語についての完全な知識がすべてのネットワーク・ノード(マシン)で必要なわけではないことが述べられた。正しい動作のための唯一の要件は、あらゆるメッセージが、そのメッセージが属するカテゴリにとって適切な仲介タスクをホストする仲介者に最終的に到達することである。
したがって、仲介サービスは、システムが活動中も、仲介ネットワーク内で動的に移動されることができる。これは次に、システム・クライアント間の関心パターン(pattern of interest)の動的な移り変わりに従った、仲介ネットワーク内でのシステム負荷の調整を可能にする。そのような関心パターンは、クライアントによってなされた関心表明として、クライアントについての事前定義された知識に基づいて、またはシステム内の変化する使用パターンに基づいて評価されることができる。
負荷バランシング−移管(Load-balancing-Handover)
本発明の分散仲介構造は、ノードLPP、MR、M、およびTPの任意のトポロジーに基づく。このノードのトポロジーは、「安定状態」に関して上で説明された属性を有する。前記のトポロジーは、既存の機能構成要素の間での動的負荷バランシングにとってきわめて適している。
特定のカテゴリが重い負荷の下にあると考えられるときは常に、関連仲介タスクのホスティングは、ネットワーク内の空き容量をもつマシンに移動されることができる。仲介タスクの移管も、現在ネットワーク内にあるまたは将来受信されるメッセージが、新規仲介者ノードに振り分けられることを保証するために、仲介ネットワークの動的な調整を必要とする。これは、新しい論理ネットワーク・トポロジーの方々への特別なメッセージの伝搬、すなわち適切なマシンを介する「臨時リップリング(casual rippling)」によって達成されることができる。それによって、仲介変更は、メッセージ入出力に関して稼働中システムの観察可能な挙動に影響を及ぼすことなく、稼働中システム内で起こることができる。
仲介変更は、グローバル不変属性によって最終的に可能であり、それによって、着信メッセージは、それが生じたLPPに関係なく、同じ仲介者にルーティングされる。仲介変更は、システムの正しさまたは性能に悪影響を与えることなく、稼働中システム内で1つの一貫した状態から別の状態に移り変わるという問題を提起する。分散仲介ネットワークの2つの主な機能、すなわちメッセージ伝搬および問い合わせが、特にスタートアップ・クエリが、考察されなければならない。
問い合わせに回答するには、任意の特定の時間にどの分類が適用されているかを知る必要がある。これは、任意の与えられた時間に任意の与えられたカテゴリのメッセージをどの仲介者がホストするかの発見を可能にする。しかし、どのクラスの問い合わせに対してもこれを決定論的に行うことは、ある程度のグローバル同期を必要とする。グローバル同期に代わるものとして、分散仲介モデルは、特定のクラスの問い合わせが、完全なグローバル情報または同期なしに回答されることを可能にするように構成される。
システムが最初の一貫した状態PS1にある時刻から新しい一貫した状態PS2への状態の進行を考える。時刻tで、新しい状態PS2に変化するプロセスが開始する。この後の未知の時刻tに、システムが新しい一貫した状態PS2に変化していることが知られる。実際の変化が起こった時刻tは未知であるが、tとtによる範囲内にある。
時刻tとtの間は、システムを不安定であると定め、仲介タスクの現在の動作任務(operative appointment)がグローバルに知られていないことを意味する。しかし、各時点で正しく情報フローを処理するのに十分なローカル知識が利用可能なので、システム機能の各々は影響を受けない。
仲介タスクの任務によって明示される基礎をなす分割(分類)が実行中システムにおいて変更されることを可能にするための適切なアルゴリズムが、今から説明される。アルゴリズムが、仲介者ノードの追加または削除、以下でより詳細に説明される機能を処理可能であることに留意されるべきである。
明瞭にするため、各メッセージが有限なシンボルの集合から得られるコンテンツを搬送する簡略化モデルを使用する。分割(分類)は、コンテンツ・タグから有限なクラス(カテゴリ)の集合へのマッピングによって特徴づけられる。クラスは、それらの関連仲介者に基づいて命名される。分割の変更は、コンテンツ・タグの異なる仲介者への再割り当てを指定することによって特徴づけられる。
また説明を簡潔にするため、変更は2つの仲介者だけを含み、1つの変更は別の変更が開始する前に完了すると仮定する。これらの仮定はどちらも絶対的な要件でないが、モデルを簡潔にするために設けられ、それにもかかわらず、簡潔化モデルは一般的で、任意の変更がシステムになされることを可能にする。
プロセスは、PRED_CHANGEメッセージが、何らかの(起動者)LPPによってその仲介者ルータに送信されることで開始する(図5Aを参照)。PRED_CHANGEメッセージの内容は、コンテンツ・タグの異なる受取仲介者Rへの再割り当てを記述する。MRは、このコンテンツ・タグを読み取り、現在そのコンテンツを処理している仲介者Sにメッセージを転送する。
(図5Bに示されるように)PRED_CHANGEメッセージの受信時に、仲介者は、
その状態をSTABLEからHANDOVER_SENDERに変更する。
PRED_CHANGEメッセージの内容を含むMEDIATOR_HANDOVERメッセージを移管受取仲介者Rに送信する。
コンテンツ・タグを含むメッセージをこの変更に関する移管受取仲介者Rに転送するためにその内部状態を変更する。
この時点から先、仲介変更を受けるトピックに関して、任意の仲介者ルータによって仲介者Sに送信される任意のメッセージは、仲介者Rに転送される。TPを介してすべての仲介者のLPPに送信されるMEDIATOR_CHANGEDメッセージの目的は、ダウンストリーム・ネットワークを送信されるメッセージの臨時の配送を保証することである。
LPPは、MEDIATOR_CHANGEDメッセージを受信した場合、BUFFERING状態にそれ自体を置く。この状態にある時、LPPは、対応する内容のためのNEW_MEDIATORメッセージを受信するまで、すべてのDOWNSTREAM_DATAメッセージをバッファリングする。これは、仲介者Rに転送されるメッセージの臨時の順序づけ(casual ordering)を保証し、仲介者Sによって仲介されたより古いメッセージが、順序を違えてLPPによって処理されることを防止するのに十分である。
図5に示されるように、MEDIATOR_HANDOVERメッセージの受信時に、仲介者は、仲介者ノードでその状態をSTABLEからRラベルによって示されるHANDOVER_RECEIVERに変更する。この状態では、仲介者は、その内容がMEDIATOR_HANDOVERメッセージの内容に一致する転送メッセージを期待する。MEDIATOR_HANDOVERメッセージが受信された時点から、仲介者はその内容を仲介するが、システムのその他の部分はこれを知らないかもしれない。構成に仲介変更を通知するために、新規仲介者は、そのTPのすべてにNEW_MEDIATORメッセージを送信する。これは仲介変更のブロードキャストであり、図5Cに示されるように、TPによってすべてのLPPに、そしてすべてのLPPによってすべてのMRに転送される。
図5Dに示されるように、MRは、NEW_MEDIATORメッセージを受信した場合、NEW_MEDIATORメッセージのペイロードに一致する将来のコンテンツが、仲介者Sではなく仲介者Rに送信されるように、そのルーティング・テーブルを更新する。この時点で、内容ベースのルーティングにおける変更が達成される。しかし、仲介者Rが今はそのコンテンツの仲介者であることをすべてのMRが知った後で、仲介者Sがメッセージの転送を止めることができるように、仲介者Sはこのイベントを通知されなければならない。同様に、仲介者Rは、安定動作に復帰し、転送メッセージを期待するのを止めることができるように、これらのイベントを通知される必要がある。結果として、そのルーティング・テーブルを変更した後、MRは、ルーティング・テーブルを更新する前にそこから抽出しておいた、そのコンテンツの旧仲介者(S)にPE_PS_CHANGEDメッセージを送信する。図5Eに示されるように、HANDOVER_SENDER状態にある仲介者は、すべてのPE_PS_CHANGEDメッセージを新規受取仲介者に転送する。
移管アルゴリズムは、参照カウント技法を用いて臨時の順序づけを維持して、メッセージが仲介ネットワーク内を正しく伝播することを確実にするために、臨時バリア方法を使用することができる。HANDOVER_SENDERおよびHANDOVER_RECEIVER状態にある仲介者は、MRから受信されたPE_PS_CHANGEDメッセージを数え、それは仲介者が、システム内のすべてのMRが仲介者変更情報を受信した時を決定することを可能にする。仲介者は、図5Fに示されるように、最後のPE_PS_CHANGEDメッセージを受信したとき、それらの状態をそれぞれHANDOVER_SENDERおよびHANDOVER_RECEIVERからSTABLEに変更する。
上の説明に見られることができるように、仲介者の挙動は、以下の3つ状態の1つにあることができる有限状態マシンによって特徴づけられる。
STABLE−仲介者の通常の実行中状態であり、述語集合内で現在は変更が生じておらず、その結果、仲介者はデータ空間内で多かれ少なかれ同等クラスを処理する。
HANDOVER_RECEIVER−仲介者は不安定状態にあり、その同等クラスのサイズは、別の仲介者(HANDOVER_SENDER)からのメッセージ空間の一部(デルタ)の再割り当てのために増加しているところである。この状態にある間、仲介者は、それまでデルタを担当していた仲介者からの転送メッセージを受信することができ、転送メッセージを、それらが仲介者に直接送信されたものであるかのように、その送信プロキシに受け渡す。仲介者は、その新しい役割を知った任意の述語評価者(predicate evaluator)からデルタ内のデータ・メッセージを直接受信することもでき、そのようなメッセージはどれも、同じソースからの転送メッセージが(PE_PS_CHANGEDメッセージを介して)もう来ることがないと分かるまでバッファリングされなければならない。
HANDOVER_SENDER−仲介者は不安定状態にあり、デルタをその以前の同等クラスから別の仲介者に受け渡す。デルタ内の任意の受信メッセージは、対応するHANDOVER_RECEIVERに転送されなければならない。
仲介ネットワークがそこを流れるトラフィックを仲介するのに必要な容量を有するならば、移管アルゴリズムは非常によく機能する。しかし、長く存続する仲介システムは、その耐用期間にわたって著しい変更をこうむることがあり得る。例えば、変更は、申し込みおよび公表トラフィック両方の量、クライアントの数および地理的分散、ならびに/または要求が発信される場所について生じることができる。さらに、メッセージの内容はクライアント要求の変化に従って時間とともに変化するので、必要とされる仲介タスクの相対的な比率は著しく変化することがあり得、既存の分割をアンバランスに、またはその他の点で不適切にする。
変化に対応するために、分散仲介システムは適応的であることが必要である。与えられた地理的領域内で変化するトラフィック量を処理するために、システム内の適切なポイントに任意のタイプのノードを追加または削除することによって、物理的資源を再配備することが必要になるかもしれない。クライアント・メッセージの内容は時間とともに変化するので、仲介タスクを利用可能な仲介者に配分するように設定された、メッセージに適用される分割は、仲介負荷を平衡させ、仲介者の効率的利用を保証するために調整を必要とすることがあり得る。
特定のミッションク・リティカルなアプリケーションでは、そのような適応は、配送されるサービスを中断することなく達成されなければならない。
上述のグローバル不変量および上で概説された依存性が維持されるならば、追加の機能は、先に定められたメカニズムに干渉しない。その後、仲介サービスは、移管アルゴリズムに従って既存の仲介者の間で動的に再割り当てされることができる。
分散仲介ネットワークの論理トポロジーの変更は、仲介されるサービスを不安定にすることがあり得、ホストされるサービスを終了することがある。
したがって、実際的な分散仲介ネットワークは、負荷バランシングおよび安定性問題に同時に対処しなければならない。ある重要な追加によって、上で説明されたハイブリッド分散仲介モデルは、実際的な物理システムにおいてより効果的に実施されることができる。これらの重要な追加は、ネットワーク基盤において動的プロセス移行と適切なルーティングとを組み合わせ、それによって、容認できないほど高いオーバヘッドおよびサービスの望まれない終了を招くことなく、効果的な実施が達成されることを可能にする。ハイブリッド分散仲介モデルは、メッセージ待ち時間に影響を及ぼすことなく、構成の拡大縮小も可能にしなければならない。
同様に、分散仲介システムは、部分的障害をこうむるネットワーク基盤で実施される可能性もある。その結果、分散仲介システムは、可能ならば、障害を検出し、回復措置をとるためのメカニズムをもつべきである。
可能ならば、上記の要件は共に、自動的に、すなわち人間の発明(human invention)を必要とせずに提供されるべきである。
ハイブリッド分散仲介モデルは確かに、先に説明された負荷バランシング機能を超えて拡張されることができる。以下の追加機能のクラスは、既存の静的な分散仲介ネットワークに対して実施されることができる。
論理再構成と呼ばれる第1のクラスの機能では、個々のノードおよびノードの組み合わせの(i)追加、(ii)交換、および(iii)削除のためのメカニズムが提供される。これらのメカニズムは、既存の分散仲介ネットワークの任意の再構成を可能にし、そのような再構成は、外から観察可能な稼働中システムの挙動に影響を及ぼすことなく、稼働中システム内で起こる。再構成メカニズムは、仲介者間での仲介タスクの単純な移管を超えた、ネットワークの論理トポロジーに対する任意の変更を可能にするコンピュータ実施方法である。結果は、柔軟で変化する物理基盤上での論理ノードの動的な配備および/または再配備によって達成される。したがって、物理コンピューティング装置の任意のネットワーク上での論理構成の任意の配備は、ホストされるサービスが終了される必要なく可能である。
既存の分散仲介ネットワーク上で実施されることができる第2のクラスの機能は、障害処理の機能である。分散仲介ネットワークの挙動が、個々のノード障害のために一時的にその要件を満たすことができない場合、障害前に元のネットワークがしていたように残りのノードがもう一度挙動し始めるように、残りのノードの再構成を可能にするメカニズムは定められることができる。障害処理メカニズムは、ネットワーク構成内での物理的ノード障害の動的な発見を可能にする。その場合、障害処理メカニズムは、障害中であることが知られているノードを含まない物理ノードの異なる集合上に障害ノードの論理機能を再配備することによって応答することができる。これは、障害ソースを検出するためにさらなるメカニズムを提供し、残りのネットワークを再構成するために上で確認された再構成メカニズムを再利用することによって達成されることができる。このクラスの機能は、観察可能な挙動に影響を及ぼすことなく、特にホストされるサービスを終了する必要を回避して、稼働中システム内で実施されることもできる。
構造改良と呼ばれる第3のクラスの機能では、さらなる分散仲介ネットワークを含むその他の任意のネットワークによる、分散仲介ネットワーク内での個々のノードまたは複数のノードの再配置を可能にするためのメカニズムが存在する。この構造改良自体は、分散仲介ネットワーク内でグローバル不変量およびそのノードのために必要とされる属性を維持し、やはり稼働中システム内で動作する。構造改良は、単一の論理ノードがノードのサブネットワーク全体または任意のサイズの他のタイプのノードによって置き換えられる方法で、汎用構成構造の配備を改良する。配備はノードごとの事柄である必要はない。
すべての場合において、稼働中ネットワークの調整は、仲介者移管の説明において例示されたタイプおよび挙動の全体と本質的に同様に、新しいメッセージ・タイプの追加および解釈によって影響される。
3つの各主要クラスの機能は、以降でより詳細に説明される。
再構成:ノードの追加
この節は、新規ノードの追加に関する重要な機構について述べる。各場合において、単一の新規ノードまたは1対の新規ノードのネットワークへの追加を考察する。新規論理ノードの追加は、新規物理ノード(マシン)の追加と一致することができる。これは、複数のノードの追加に、または完全な分散仲介ネットワークの追加にすら、同じ原則が等しく適用可能であるので、一般性の喪失を意味しない。各場合において、2つの局面が考察されなければならず、第1は、新規ノードがその将来の環境で動作するように正しく構成されることであり(パートA)、第2は、新規ノードが導入されるネットワークが適切に構成されることである(パートB)。
以下のノードのいずれかが追加されることができ、
・単一LPP
・単一M
・LPP→MRペア
・M→TPペア
システム不変量および依存性は維持される。LPPは一意的に単一のMRをアドレス指定するので、新規MRを追加するには、新規LPPを追加しなければならない。仲介者は一意的に単一のTPをアドレス指定するので、TPでも同様である。交換と組み合わせて、これは任意の合法的トポロジーが構成されることを可能にするのに十分である。追加LPPを追加する場合、我々はクライアント・インタフェースにおいて追加容量を提供する。新規仲介者を追加する場合、我々は追加仲介容量を追加する。MRの追加は、メッセージング・システムへの入力容量を増やし、TPの追加は、システムの出力容量を増やす。
アルゴリズムの多くが、ネットワークを介する(新しい)ノード・アドレスの送信を必要とすることが認められよう。例えば、LPPがシステムに追加される場合、new_lpp_addrと呼ばれる新しいフィールドを有するNEW_LPPメッセージが送信される。新しいノード・アドレスは、様々な方法で符号化されることができ、例えば、(IPアドレス、ポート・アドレス)ペアが使用されることができる。これは実装依存であって、この文書ではこれ以上取り扱われない。
与えられた新しいノード・メッセージの誘因は、とりわけ、管理インタフェースを用いる人間のオペレータ、負荷レベルを監視する半自動制御ネットワーク、または自律的仲介ネットワーク制御システムであることができる。
LPP追加
パートA−新規ノード構成
LPPは、そのアドレス指定先(addressee)(標準的なモデルではそのMR)のアドレスを知る必要があるだけである。これはLPPの初期化に対する構成パラメータである。MRによって保持される参照カウントを更新するため、新規LPPは、MRにNEW_LPPメッセージを送信しなければならない。このメッセージの受信時に、MRのLPP参照カウントが更新される。このメッセージは、ネットワークを構成するのに必要とされるサイクルを開始するのにも使用される。
パートB−ネットワーク構成
新規LPPを追加するため、各ダウンストリーム・ネットワークが更新されなければならない。これは、各ダウンストリーム・ネットワークが個々に更新されることを必要とする。これは、ダウンストリーム・ネットワークへの送信のため各仲介者にメッセージを伝播することによって達成されることができる。
LPP追加用のメッセージ・フォーマットは以下の通りである。
NEW_LPP(transaction_no:Large int,//この操作のIDを収める
new_lpp_addr:address,//新規LPPのアドレス
credit_bal)//TPによる返却クレジット
変更を導入するために任意のLPPを使用し、選択されたLPPを開始LPP(originating LPP)と呼ぶ。
プロセスは以下の通りであり、New_LPP(transaction_no,new_lpp_addr)メッセージが開始LPPに送信される。このメッセージが送信された後、新規LPPは、任意の時間にメッセージを受信し始めることができる。開始LPPは、そのMRにこのメッセージを送信し、MRは、あらゆる仲介者にメッセージを転送する。仲介者は、それらのアドレス指定先(標準的なモデルではTP)にメッセージを転送する。プロセスのこの点で、新規LPPの知識がグローバルに知られる。アルゴリズムの終了を保証するため、TPは、それらのクレジット・バランスと共にNEW_LPPメッセージを開始LPPに送信する。新規LPPはクレジット・バランスを合計し、これが所定の値、例えば1.0に到達した場合、プロセスが完了したことが新規LPPによって知られる。このプロセスは図8Aから図8Eに示される。
仲介者追加
仲介者変更アルゴリズムは、分散仲介モデルのコンポーネントであり、既存の仲介者がそれらの仲介負荷を変化させることを可能にするのに役立つ。しかし、このメカニズムは、新規ノードまたはネットワークの構成をサポートするために単純に拡張されることはできない。その結果、別個の仲介者追加アルゴリズムが、新規仲介者の追加をサポートするために必要とされる。
パートA−新規ノード構成
仲介者は、そのアドレス指定先(標準的なモデルではそのTP)のアドレスを知る必要があるだけである。これは仲介者の初期化に対する構成パラメータである。TPによって保持される参照カウントを更新するため、新規仲介者は、TPにNew_Mediatorメッセージ(以下で説明される)を送信する。このメッセージの受信時に、TPの仲介者参照カウントが更新される。このメッセージは、新規仲介者の存在をMRに広告するサイクルを開始するのにも使用される。
パートB−ネットワーク構成
仲介者を追加するため、各アドレス指定MRは、新規仲介者の知識を用いて更新されなければならない。サイクルが新規仲介者で開始すること以外は、プロセスはLPP追加と同様である。
仲介者追加用のメッセージ・フォーマットは以下の通りである。
NEW_Mediator(transaction_no:Large int,//この操作のIDを収める
new_M_addr:address,//新規Mのアドレス
credit_bal)//TPによる返却クレジット
プロセスは以下の通りであり、New_Mediator(transaction_no,new_M_addr)メッセージが伝搬のためにTPに送信される。仲介変更が起こるまで、新規仲介者は、仲介メッセージを受信し始めない。しかし、このメッセージが送信された後、新規仲介者は、任意の時間にメンテナンス・メッセージを受信することができる。TPは、あらゆるLPPにメッセージを転送する。LPPは、それらのアドレス指定先(MR)にメッセージを転送する。このメッセージの受信時に、MRは新規仲介者の知識を有する。アルゴリズムの終了を保証するため、MRは、それらのクレジット・バランスと共にNEW_Mediatorメッセージを新規仲介者に送信する。新規仲介者はクレジット・バランスを合計し、これが所定の値、例えば1.0に到達した場合、プロセスが完了したことが新規仲介者によって知られる。このプロセスは図9Aから図9Dに示される。
仲介者ルータ追加
上で述べられたように、グローバル不変量を維持するため、各仲介者ルータは、LPPによってアドレス指定されなければならない。MRは、それをアドレス指定するLPPなしで存在することができない。したがって、新規MRは、関連LPPを伴わずに生成されることはできない。しかし、この制約は、単一の物理コンピュータ・ノードによるホスティングから、または単一のプログラムによるホスティングからさえ、両者の機能を割り引くものではない。
したがって、新規MRの追加の最初のステップは、クライアントをもたない新規LPPを生成し、初期化することである。これは図10に示される状況をもたらす。この状況が達成されると、新規MRを生成するに新規LPPが使用される。
パートA−新規ノード構成
動作するために、MRは最新のルーティング・マップを必要とする。安定期間中、ルーティング・マップは、システム内のすべてのMRで同じである。したがって、新規MRは、システム内の任意の確立されたMRから、ルーティング・マップを取得することができる。MRはまた、別のMRからだけ獲得することができるクレジット・バランスも必要とする。
プロセスを開始するため、NEW_MR(new_mr_addr)メッセージが新規に生成されたLPPに送信される。メッセージのフォーマットは以下の通りである。
NEW_MR(transaction_no:Large int,//この操作のIDを収める
new_mr_addr:address,//新規MRのアドレス
lpp_addr:address)//LPPのアドレス
NEW_MR_ROUTE_TABLE(
transaction_no:Large int,//この操作のIDを収める
new_mr_addr:address,//新規MRのアドレス
lpp_addr:address,//LPPのアドレス
rt:route_table,//新規ルート・テーブル
credit_bal)//TPによる返却クレジット
LPPは、それ自体のアドレスを追加し、NEW_MR(new_mr_addr,lpp_addr)を送出する。このメッセージがMRによって受信されると、MRは、NEW_MR_ROUTE_TABLEメッセージを送信し、新規MRのアドレス、新規LPPのアドレス、ルーティング情報、およびそのクレジット・バランスの比率を添付する。このメッセージは、任意の仲介者に転送され、NEW_MR_ROUTE_TABLEメッセージ内にそのアドレスが存在するLPPにダウンストリーム・ネットワーク上で受け渡される。その後、LPPは、新規に生成されたMRにルーティング・マップを受け渡す。MRは、そのクレジット・バランスおよびそのルーティング・マップを初期化するためにこの情報を使用する。
パートB−ネットワーク構成
新規MRを利用するため、新規LPPは、そのMRを新規に生成されたMRに変更する必要がある。このプロセスは、NEW_MR_ROUTE_TABLEメッセージが新規MRによって受信された直後に開始される。このメッセージの受信時に、新規MRは、MR_INITIALISED()メッセージを新規LPPに送信する。新規LPPは、それに続いて、INC_REF_COUNT()およびDEC_REF_COUNT()メッセージを、それぞれ新規および旧MRに送信する。このプロセスは図11Aから図11Eに示される。
送信プロキシ追加
グローバル不変量を維持するため、TPは、仲介者によってアドレス指定されなければならない。TPは、それをアドレス指定する仲介者なしで存在することができない。したがって、TPは、関連仲介者を伴わずに生成されることはできない。これが、単一の物理コンピュータ・ノードによるホスティングから、または単一のプログラムによるホスティングからさえ、両者の機能を割り引くものではないことに留意されたい。これはTPの生成に対して対称なケースである。
したがって、新規送信プロキシの追加の最初のステップは、どのようなデータも仲介しない新規仲介者を生成し、初期化することである。図12はこの最初のステップを示す。
パートA−新規ノード構成
動作するために、新規TPは、システム内のすべてのLPPの知識を必要とする。これは、システム内のその他の任意の構成済TPから獲得されることができる。TPはまた、別のTPからだけ獲得することができるクレジット・バランスも必要とする。
プロセスを開始するため、NEW_TP(new_tp_addr)メッセージが新規に生成された仲介者に送信される。このメッセージのフォーマットは以下の通りである。
NEW_TP(transaction_no:Large int,//この操作のIDを収める
new_tp_addr:address,//新規TPのアドレス
mediator_addr:address,//仲介者のアドレス
LPPS:list[LPP],//既知LPPのリスト
credit_bal)//TPによる返却クレジット
仲介者は、それ自体のアドレスを追加し、NEW_TP(new_tp_addr,mediator addr)を送出する。このメッセージがTPによって受信されると、TPは、新規TPのアドレス、新規仲介者のアドレス、既知LPPのリスト、およびそのクレジット・バランスの比率を格納したメッセージを転送する。このメッセージは、任意のLPPに転送される。その後、LPPは、新規に生成されたTPにルーティング・マップを受け渡す。TPは、そのクレジット・バランスおよびその既知LPPのリストを初期化するためにこの情報を使用する。
パートB−ネットワーク構成
新規TPを利用するため、新規仲介者は、そのTPを新規に生成されたTPに変更する必要がある。このプロセスは、新規TPがTP_INITIALISED()メッセージを新規仲介者送信することによって開始される。このメッセージの受信時に、新規仲介者は、INC_REF_COUNT()メッセージを新規TPに、DEC_REF_COUNT()メッセージを旧TPに送信する。送信プロキシ追加プロセスの両パートに含まれるステップは、図13Aから図13Eに示される。
再構成:ノード交換
交換によって、1つのノードから出て行く弧(outgoing arc)の到達先が別のノードに変更されるトポロジーの変更を指す。したがって、TPおよびMRは共に不変のアドレス指定先集合を有するので、交換はLPPおよび仲介者から出て行く弧にだけ適用可能である。
交換対象は、MRまたはTPである。これらのノードの挙動は、何がそれらのアドレス指定元であるかに関して独立している。したがって、一貫性のあるシステムを維持する交換の唯一の要件は、参照カウントが参照対象マシン間で正しく調整されることである。
交換は、アドレス指定元マシン(LPPおよび仲介者)に関して原子的に生じ、したがって、データは、交換操作中も流れ続けることができる。交換操作中、参照カウントは一時的に誤っていることもあり得るが、これはアルゴリズムに関して無害である。
交換が行われるLPPは、パラメータとしてそれ自体のアドレスと新規MRのアドレスとを有するSWITCH_MRメッセージをその現在のMRに送信する。このメッセージの受信時に、MRはその参照カウントをチェックする。参照カウントが所定の閾値、例えば1に到達した場合、MRは、SWITCH_MR_FAILメッセージで応答する。それ以外の場合、MRは、デクリメントされたその参照カウントを有するSWITCH_MR_OKメッセージで応答する。このメッセージの受信時に、LPPは、そのMRを新規MRに交換し、それにSWITCH_NEW_MRメッセージを送信する。このメッセージの受信時に、新規MRは、その参照カウントをインクリメントする。
SWITCH_MEDIATORアルゴリズムも同様であり、交換が行われる仲介者は、パラメータとしてそれ自体のアドレスと新規TPのアドレスとを有するSWITCH_TPメッセージをその現在のTPに送信する。このメッセージの受信時に、TPはその参照カウントをチェックする。参照カウントが所定の閾値、例えば1に到達した場合、TPは、SWITCH_TP_FAILメッセージで応答する。それ以外の場合、TPは、デクリメントされたその参照カウントを有するSWITCH_TP_OKメッセージで応答する。このメッセージの受信時に、仲介者は、そのTPを新規TPにそれにSWITCH_NEW_TPメッセージを送信する。このメッセージの受信時に、新規TPは、その参照カウントインクリメントする。
再構成:ノード削除
2つの前提条件により、ノードが削除される場合も、グローバル不変量は維持されることができる。第1に、LPPおよび仲介者は、ネットワーク内で機能的な関連をもたない限り、すなわち、LPPの場合は機能クライアントがなく、仲介者の場合はその仲介者における仲介タスクがない限り、個々のノードとして削除されることができる。第2に、削除されるノードは、それらのアドレス指定先の唯一のアドレス指定元であってはならない。
その場合、除去の要件は、単にトポロジー不変量だけに関し、除去タスクは、そのノードの存在を登録から外すために、各先行者(precursor)の更新を必要とする。
MRおよびTPは、それらが孤立して生成され得ないのと同じ理由で、孤立して削除されることはできず、したがって、唯一の先行者とペアで削除されなければならない。機能的な理由のため、先行マシンがそれらの存在に依存している場合、それらは削除されることはできない。その結果、MRは、(a)それをアドレス指定する単一のLPPをもち、(b)そのLPPがクライアントをもたない場合にだけ、削除されることができる。その時点で、LPPとMRは、ペアとして削除されることができる。このペアの削除は、LPP単独の削除と正確に同じ要件を有する。
同様に、TPは、(a)それをアドレス指定する単一の仲介者をもち、(b)その仲介者がそれに関連する仲介タスクをもたない場合にだけ、削除されることができる。その時点で、仲介者とTPは、ペアとして削除されることができる。このペアの削除は、仲介者単独の削除と正確に同じ要件を有する。
すべての場合で、ノードの削除は、クレジット・バランスまたは参照カウントの調整を必要とする。
障害回復
この節は、仲介ルーティング基盤内で障害を処理するためのアルゴリズムについて述べる。障害を検出し、任意のノード・タイプを再配置および回復し、接続を再確立するためにメカニズムが提供される。
説明を簡単にするため、以下の仮定が設けられる。
・障害モデルは「重複を認めない」。すなわち、2つの障害は同時に発生せず、各障害は別の障害が発生する前に回復される。
・各ノードは異なる物理マシンでホストされる。
・障害原因が再確立され得るマシン間の接続断である場合、任意の2つのマシンは接続を確立することができる。
さらに、分散仲介ネットワークの一部ではない単一の障害検出ノードが提供されると仮定される。実際には、この障害検出ノードは、別の分散仲介ネットワークとして実施されることができる。図14に示されるように、各ノードは、障害検出ノードに接続し、システム内の障害を報告することができる。
各ノードは、着信または発信通信リンクの障害を検出し、その障害を障害検出ノードに報告することができる。
エラー検出メッセージは以下の形式を有する。
ERROR(送信ノード・タイプ、from_address、to_address)
着信リンクまたは参照元マシンの障害の場合、fromアドレスは分からない。発信リンクまたは参照先マシンの障害の場合、両方のアドレスが供給されることができる。リンク障害が発生した場合、送信者および受信者だけが障害を報告する。さらに、送信者のtoアドレスが受信者のfromアドレスと一致する場合、それはノード障害よりもむしろリンク障害を決定的に示す。この場合、障害検出ノードは、送信者にリンクを再確立するよう命令することができる。ノードが障害を起こした場合、そのノードへのリンクおよびそのノードからのリンクはすべて障害を起こし、その結果、障害処理ノードに報告される。障害処理ノードに送信される情報は、障害マトリックス(図7)に示されるように、障害ノードのタイプおよび正体を決定するのに使用されることができる。その結果、障害処理ノードは、エラーのクラスおよびそれが発生した場所を検出および識別することができる。
我々の単純化した仮定は、ノードは共同ホスト(co−host)されず、したがって、単一の物理マシン障害は単一の論理障害の原因になることができるだけであるというものである。この仮定はかなり弱めることができ、それでも単一論理ノードのために列挙された障害パターンなど特徴的な障害パターンの検出を可能にすることを発明者らは強調する。特に、接続されたノードのペアだけが共同ホストされると仮定するならば、障害は検出されることができる。障害処理プロセスは図15Aから図15Eに示される。
回復戦略
任意の単一ノード障害の場合、基本的な戦略は、そのノード・タイプの新しいインスタンスを生成し(またはホット・スペアを使用し)、それを使用するようにネットワークを再構成することである。これは、ノードの内部状態を知ることまたは再生成すること、および同様に直接の隣接トポロジーを知ることまたは生成することを必要とする。これらのタスクの第2のもの(直接の隣接トポロジー)は、障害の場合に障害処理ノードに送信されるエラー・メッセージの全体によって把握される。
トポロジー再生成は、障害ノードに送信するノードと障害ノードから受信するノードの両方で実行される。前者の場合、ノードがfromおよびtoフィールドの両方が指定されたエラー・メッセージを送信するときは常に、障害検出ノードは、置換ノードの識別情報によって応答する。この返却ノードIDは、障害ノードに関連するノードの内部状態のエントリを上書きするのに使用され、その時点で、このノードは、通常動作を継続することができる。
障害ノードからの受信者の場合、障害ノードの内部状態の一部は、障害を報告するアップストリーム・ノードの識別情報を常に含む。LPPおよびMの場合、これは、障害ノードのすぐに下流のノードによって送信されたエラー・メッセージからその識別情報が検出されることができる単一のノードである。この状態は、置換ノードの生成で使用されることができる。
原則として、障害MRおよびそれぞれのTPの周囲のトポロジーは、受信されたエラー・メッセージの全体から等しくよく再生成されることができるが、同様の議論が、別の箇所で説明されたような、単純な参照カウントよりも優先されるクレジット回復アルゴリズムの使用についても存在し、この目的ため、出て行く辺(outgoing edge)の全体は、ネットワーク内のすべてのMRおよびそれぞれのTPについて同じであり、したがって、この状態のコピーは、過剰なネットワーク・トラフィックを回避するため、別の箇所で説明された再構成メカニズムの場合のように、適切なタイプの稼働中ノードから獲得されることができることを発明者らは強調する。
セマンティック内容も、トポロジーに加えて再生成されなければならない。言い換えると、すべてのノード・タイプは、なんとかして再生成されなければならないさらなる内部の状態情報を保有する。このさらなる内部状態情報は、以下のフィールド、すなわち、参照カウント、関心リスト、クレジット・バランス、および仲介状態に入る。
参照カウントは、受信されるエラー・メッセージの全体から確かめられるが、これはローカル情報であって、したがって、許容しがたいコストを示すべきではないことに留意されたい。さらに、この情報は、仲介変更のためも含めて、現在稼働中のシステムのためには必要とされず、したがって、続行のためには適切に存在することは必要とされず、別の障害または制御された再構成の前でだけ必要とされる。
LPPは、それらのクライアントがどの仲介トピックに関心があるかを示すリストを保有し、TPは、それらがサービスする仲介トピックにどのLPPが関心をもつかを示すリストを保有する。したがって、関心リストの知識の全体は、すべてのLPPの集合とすべてのTPの集合について同じである。TPが障害を起こした場合、そのノードの関心リストは、それによってアドレス指定されるLPPに含まれる知識によって、原則として再生成されることができる。LPPが障害を起こした場合、そのノードの関心リストは、それをアドレス指定するTPに含まれる知識によって、原則として再生成されることができる。どちらの場合も、稼働中動作は、すべてのメッセージが新規TPからすべてのLPPに送信されることを保証することによって、ネットワーク・トポロジーが再生成されると直ちに再開することができることは述べるに値し、TPの関心リストの存在は、純粋に最適化目的のためであり、LPPの関心リストの存在は、純粋に障害時にこれらが再生成されることを可能にするためである。
クレジット・バランスは、仲介およびトポロジー変更アルゴリズムの終了を検出する目的で、MRおよびTPによって維持され、稼働中システムの動作は、これらの活動がない場合は、トポロジー回復時直ちに、再開することができることが、直ちに認められることができる。クレジット・バランスを回復するため、仲介構成それ自体内のそのような各ノードのクレジット・バランス状態を維持することが可能である。クレジット・バランスが割り当てられるときは常に、2つの影響されるノードの新しいクレジット・バランスを獲得する情報が仲介ネットワークに送信され、何らかの仲介者によって保存される。この情報は、ネットワークへの通常の問い合わせメッセージおよび新規ノードのクレジット・バランスを使用して回復されることができる。
先の説明において、分散仲介モデルは、メッセージ・ログを維持するよう仲介者に要求したが、これはシステムの文字通りの解釈よりも、例示的であるように意図されたものに過ぎず、ログは原則として任意の仲介タスクをサポートする完全に汎用的なモデルである。実際には、これが任意の仲介タスクにとっての最適表現である可能性は低い。したがって、仲介者が(外部)アプリケーションAPIへのゲートウェイとして機能する可能性もある。この場合、仲介者ノード自体はさらなる状態を保有せず、したがって、ネットワーク・トポロジーの再生成は十分である。
しかし、最も一般的なケースでは、仲介者があらゆるメッセージのログをとる場合、MRもあらゆるメッセージのログをとることが等しく可能であり、それによって、MRによってログがとられるメッセージの全体は仲介者によってログがとられるメッセージの全体に等しいという強力なシステム不変量が得られることは述べるに値する。したがって、どちらのカテゴリにおける障害の場合にも、関心リスト用に使用される回復戦略と同様の回復戦略を実行することが可能である。このアプローチは図16に示される。
構造改良
「参照モデル」のキュービック構成は、コンポーネント・ノート(component note)が構成され得る1つの方法を表すに過ぎない。構成の強度は、コンポーネント・ノード内の2つの純粋な概念に基づく。第1に、すべてのノード・ツー・ノードの情報フローは単方向であり、各ノードは送信者からメッセージを受信し、その情報をさらなるノードの集合内に中継する。後者の場合、集合は、システム構成に対する変更を法として(modulo changes to the system configuration)一定である。
第2に、各ノードは、別の箇所で説明されたようなそれを参照するノードの全体についての知識以外、システムのグローバルな構成に対する依存性をもたない。各ノードで必要とされる唯一のその他の構成情報は、それが情報を中継することができる他のノードの集合である。仲介者ルータおよび送信プロキシは各々、それが接続された受信ノードのどれが特定のメッセージを受信するかを決定する機能を含む。したがって、ノードは、それから2「ホップ」以上離れた他のいかなるノードの知識も必要としない。
これらの制約が与えられる場合、各ノードはそれに情報を送信するノードのタイプから独立しているので、多くの可能な構成が可能である。LPP→MR→M→TP→LPPの範例は、有用かつ実際的な範例ではあるが、ノード・タイプの1つの可能な構成に過ぎない。異なる必要性に異なる構成(architecture)を与えるその他の構成(configuration)も可能である。
明白な要件は、各サブネットワークは、すべてのグローバル不変量に従わなければならず、さもなければ構成定義内の単一ノードの挙動をシミュレーションしなければならないことである。そのような場合、それが技術的条件で有利なときは常に、ノードまたはノードの組み合わせは任意に置き換えられることができる。
図17は、キュービック・ネットワークがLPPノードの代わりに別のキュービック・ネットワークを組み込んで改良された構造改良の一例を示す。
物理的場所が情報フロー・システムの要件に対する論理的な差を生じる多くの例が存在する。
電子情報が商品の物理的な購入を引き起こすのに使用される状況を考えると、その場合、場所は厳密な定義要因であることなしに重要である。商品の性質に応じて、例えば、希少性、コスト、または物理的サイズに基づいて、ユーザは契約を結ぶために異なる努力を払う覚悟があるであろう。すべての場合で、対象がより近いほどより良いが、地理上の上限はアプリオリに決定されることはできない。
物理的な商品は伴われないが、情報価値がその出所からの距離につれて低下する例も存在し、例えば、地方ニュース記事および国内市場取引は、大部分の情報フローが地理的場所内にある事例であるが、ある事例では、やはりグローバルなフローが望まれる。
上記のシナリオに基づいて、複数の有用な誘導的な構成例が確認されることができ、場所または「地方市場」を表す1つまたは複数のノードが、全体的分散ネットワークの完全なローカル・インスタンス(local instance)で置き換えられる。全体的なシステム構成からのノード挙動の慎重な分離は、システムの技術的および論理的要件に応じてこれを達成する複数の方法を与える。
実施例
本発明による分散仲介ネットワークの実施例および拡張が、以下のシナリオでさらに説明される。
シナリオ1:クライアントは2以上のネットワークに申し込むことができ、すなわち、2つのネットワークは、ローカルおよびグローバルに共存することができ、各々はクライアントの地理的領域内にLPPを備える。ここでは、情報システムは論理的に接続されない、すなわち、コピーを介する以外は、同じメッセージがローカルおよびグローバル・システムの両方で処理されることはできないと仮定される。
シナリオ2:LPPが2つのネットワークの一部であることができ、着信メッセージを両方のアップストリーム・ネットワークに送信し、2つのダウンストリーム・ネットワークからダウンストリーム・メッセージの関心を登録する。これはかなり面白くなくもあるが、LPPがこれを行うことを妨げる設計基準がLPP内に存在しないことは述べるに値する。やはりこのシナリオも、論理的に接続されない情報システムを仮定する。
シナリオ3:接続されたMR。単一の論理ネットワークだけが存在し、何らかの情報がグローバルに流れることができる。アップストリーム・ローカル・ネットワークの述語集合は、特定のメッセージが内容に基づいてグローバル・ネットワーク内のさらなるMRに転送されるように変更される。ルーティング規則の違いは、ローカル・ネットワーク内のMRが、よりグローバルな関心にその内容が関することが示された情報を、グローバル・ネットワーク(または少なくともそのローカル・ネットワークの上位階層であるネットワーク)上に押し出すことを可能にする。これは排他的であることもでき、またはローカル仲介者転送と併用することもできる。同様に、ローカル・ネットワーク内のTPは、グローバル・ネットワーク内のTPの関心を表明するために変更される。関心表明は内容に基づくので、由来するネットワーク(deriving network)の識別情報を内容の一部としてモデル化し、ローカル・ネットワークに由来しないすべてのデータに対する関心を表明することができ、それはダウンストリーム・ネットワークから重複メッセージがLPPに出現することを防止する。このモデルは基本ノード定義に対する変更を含まず、さらに、単一の論理ビュー(logical view)がクライアントおよびLPPの両方に与えられる。関心表明は、メッセージ内容の内でモデル化されるので、構成を変更することなく、グローバルまたはローカルで独立してカスタマイズされることができる。
図18は、「グローバル」(UK)ネットワークと2つのローカル(市場)ネットワーク(ファイフおよびグラスゴー)とを備えるネットワークの階層を示す。特定のメッセージをUKネットワーク内のさらなるMRに転送するファイフおよびグラスゴー・ネットワークのMRが示される。
ローカルおよびグローバル・ネットワークの厳格な階層を維持するよりはむしろ、接続されたMRは、ピアとして見なされることができる。これは、MRがメッセージをそれが結合された他の任意のMRに押し出し、反対にメッセージをこれらの他の任意のMRから受信することをルーティング規則が可能にするバス・トポロジーをもたらす。「TPバス」として同様に結合されたTPは、ネットワークの個々の部分が、ネットワークの他の部分に関心表明を広めることができるよう保証する。ネットワークの個々の部分は、それらの特徴的な単方向性およびグローバル構成からの独立性をまだ保持する。図19は例示的なTP/MRバス・トポロジーを示す。
シナリオ4:
グローバル・ネットワークに属するMRは、ローカル・ネットワークのLPPまたはクライアントとして機能することができ、通常の方法で特定のトピックのデータに対する関心を表明する。これは、グローバル・ネットワークが、その構成にどんな形であれ影響を与えることなく、ローカル・ネットワークからデータを受信することを可能にするが、ローカル・ネットワークに戻るフローが必要とされない場合にだけ使用されることができる。これは、例えば、クライアントがグローバル情報を受信するためにより多く支払う覚悟があるシステムに適する。
金融市場では、従来のピア・ツー・ピア構成ではなく仲介ルーティングの使用が、広域ネットワーク内に分散された注文帳から保存データが回復されることを可能にする。分散仲介ネットワーク構成は、国内市場の維持およびvirt−xなどの汎ヨーロッパ電子交換によって例えば取り組まれる国境を越える資産取引などの問題に対処するために、再帰的に適用されることができる。
同様に、先物市場で観察されるような地理的に分散された不安定な取引活動の影響は、挙動のこれらの変動パターンが、昼間(diumal)のパターンによって引き起こされたか、または1つの金融センタから別のセンタへの急速な取引の移行および逆移行を通して引き起こされたかに関係なく、仲介ルーティング構成の適用によって吸収されることができる。
グローバル制約の回避
分散仲介ネットワークの各ノードは、何らかの時点で、それを参照するノードの全体についての何らかの知識を必要とする。これらのノードの識別情報は決して必要とされず、仲介または構成変更操作中にノードの挙動に影響を及ぼす特定の終了および構成特性を検出するための情報だけが必要とされる。特に、すべての参照ノードが特定のタイプのメッセージを送信した時を検出するために機能する分散操作のクラスが存在する。
場合によっては、特定のMRおよびTPにおいて、比較的少ないノードが各ノードを参照し、さらにこれらのノードが比較的ローカルにある可能性が高いことが期待される。こうした場合、簡単な参照カウントが、過剰なオーバヘッドを招くことなく維持されることができる。
別の場合では、特定のMおよびLPPにおいて、多数の参照ノードが存在することがあり得、それらはさらに地理的に分散し、そのため、参照カウントを維持するコストが高くなることがあり得る。
重要なことに、新規ノードは、システム内のあらゆる受信ノードと連絡しなければならない。
そのような場合、クレジット回復方式の変形が、以下のように使用されることができる。特定の別のノード(受信者ノード)を参照するすべてのノードを表す特定のノードの集合について、各々はそれが有するクレジットの量を反映する状態を保有し、最初の合計クレジットは1.0で、各ノード間に分配される。その集合内のすべてのノードが受信者ノードに送信したかどうかを受信者ノードが検出する必要がある場合、そのような各ノードのクレジット値がメッセージの一部として送信されるように構成される。
受信者ノードは、そのような受信値を累算器に記録する必要があり、累算器の値が1.0に達したとき、その場合は、すべての参照ノードがメッセージを送信したことが知られる。例えば、新規参照ノードの追加または削除を通して、ネットワークのトポロジーが変化したとき、その場合は、クレジット・バランスは、1.0のグローバル合計が維持されることを保証するようにしかるべく調整されなければならない。
これは、追加の場合には既存ノードとクレジットを分割することによって、または削除の場合には別のノードとクレジットを併合することによって達成されることができる。そのような調整は共に、ローカル・レベルで生じることができ、さらに、多くのそのような局所化された変更は並列に生じることができ、したがって、グローバル参照ではあり得るような、ネットワーク全域での活動の混乱の可能性を回避する。
実施
本発明の分散仲介ネットワークは、コンピュータ実施のソフトウェアまたはハードウェアとして実施されることができる。ソフトウェアの場合、実施物は揮発性および/または不揮発性メモリ手段に保存されることができる。コンピュータ・プログラム製品、例えば、CD−ROM、DVD−ROM、またはインターネット・サーバから取り出されるデータ構造は、本発明によるネットワークのソフトウェア表現を組み込むことができる。
動作において、コンピュータ・プログラムは、分散仲介ネットワークの特定機能用のコンポーネントが動作することができるノードに保存されることができる。代替として、コンピュータ・プログラムは、分散仲介ネットワークの特定機能用のコンポーネントが動作することができるノードから参照されることができる中央リポジトリに保存されることができる。分散仲介ネットワークを設定する第1のステップは、ソフトウェアをインストールし、基本ネットワークを構成することである。インストールの検証のため、事前定義されたキュービック構成が提供されることができる。この構成は1つの物理ノード上で動作し、分散仲介ネットワークの正しい動作を確認するためにスクリプトが提供される。初期検証が満足に実行されると、システム管理者は、例えばチャットまたは価格提供など、プログラマによって記述された特定のアプリケーション用の仲介プログラムを、仲介者(M)および仲介者ルータ(MR)ノードに配備する。特定のアプリケーション・ロジックが分散仲介ネットワークで動作するようになると、ユーザはLPPを介して分散仲介ネットワークに接続することができる。追加の論理ノードは、分散仲介ネットワークのユーザを混乱させることなく、システムに追加されることができる。
先に述べられたように、物理ノードは、実ハードウェア・プロセッサであり、オペレーティング・システムを含む。その結果、物理ノードは、1つまたは複数の論理ノード、例えば、ローカル・ポイント・オブ・プレゼンス(LPP)、仲介者(M)、仲介者ルータ(MR)、または送信プロキシ(TP)を含むことができる。
人間のオペレータがインタフェースをとる管理インタフェースは、上で説明された述語および制約による論理トポロジーのこれらの変更を実行するための機能を提供する。管理インタフェースは、分散仲介ネットワークの動作を監視するための表示および通知機能も提供することができる。
スター方論理構成を有する従来技術の仲介情報フロー・システムを示すノード図である。 図1Aのシステムの物理構成を示す概略ノード図である。 中央ネットワーク論理構成を有する従来技術の仲介情報フロー・システムを示すノード図である。 図2Aのシステムの物理構成を示す概略ノード図である。 あらゆる有効な分散仲介ネットワーク・ノードがその一部である基本サイクル(LPP→MR→M→TP→LPP)を示す最小ノード図である。 本発明による「キュービック」分散仲介モデルを示すノード図である。 仲介タスクを送信仲介者モジュールSから受信仲介者モジュールRに移管するステップを示す図である。 仲介タスクを送信仲介者モジュールSから受信仲介者モジュールRに移管するステップを示す図である。 仲介タスクを送信仲介者モジュールSから受信仲介者モジュールRに移管するステップを示す図である。 仲介タスクを送信仲介者モジュールSから受信仲介者モジュールRに移管するステップを示す図である。 仲介タスクを送信仲介者モジュールSから受信仲介者モジュールRに移管するステップを示す図である。 仲介タスクを送信仲介者モジュールSから受信仲介者モジュールRに移管するステップを示す図である。 本発明の分散仲介ネットワークにおける依存性の表(表1)を示す図である。 本発明の一実施形態障害処理メカニズムにおける依存性の表(表2)を示す図である。 既存の仲介構成に新規ローカル・ポイント・オブ・プレゼンス(LPP)ノードを追加するステップを示す図である。 既存の仲介構成に新規ローカル・ポイント・オブ・プレゼンス(LPP)ノードを追加するステップを示す図である。 既存の仲介構成に新規ローカル・ポイント・オブ・プレゼンス(LPP)ノードを追加するステップを示す図である。 既存の仲介構成に新規ローカル・ポイント・オブ・プレゼンス(LPP)ノードを追加するステップを示す図である。 既存の仲介構成に新規ローカル・ポイント・オブ・プレゼンス(LPP)ノードを追加するステップを示す図である。 既存の仲介構成に新規仲介者(M)ノードを追加するステップを示す図である。 既存の仲介構成に新規仲介者(M)ノードを追加するステップを示す図である。 既存の仲介構成に新規仲介者(M)ノードを追加するステップを示す図である。 既存の仲介構成に新規仲介者(M)ノードを追加するステップを示す図である。 既存の仲介構成に新規仲介者ルータ(MR)ノードを追加する最初のステップである、新規ローカル・ポイント・オブ・プレゼンス(LPP)ノードの追加を示す図である。 既存の仲介構成に新規仲介者ルータ(MR)ノードを追加する以降のステップを示す図である。 既存の仲介構成に新規仲介者ルータ(MR)ノードを追加する以降のステップを示す図である。 既存の仲介構成に新規仲介者ルータ(MR)ノードを追加する以降のステップを示す図である。 既存の仲介構成に新規仲介者ルータ(MR)ノードを追加する以降のステップを示す図である。 既存の仲介構成に新規仲介者ルータ(MR)ノードを追加する以降のステップを示す図である。 既存の仲介構成に新規送信プロキシ(TP)ノードを追加する最初のステップである、新規仲介者(M)ノードの追加を示す図である。 既存の仲介構成に新規送信プロキシ(TP)ノードを追加する以降のステップを示す図である。 既存の仲介構成に新規送信プロキシ(TP)ノードを追加する以降のステップを示す図である。 既存の仲介構成に新規送信プロキシ(TP)ノードを追加する以降のステップを示す図である。 既存の仲介構成に新規送信プロキシ(TP)ノードを追加する以降のステップを示す図である。 既存の仲介構成に新規送信プロキシ(TP)ノードを追加する以降のステップを示す図である。 本発明の仲介構成から障害処理(FH)モジュールへの障害報告を示す図である。 障害処理モジュールがどのようにして障害LPPノードから新規LPPノードへの仲介メッセージの再ルーティングを開始するかを示す図である。 障害処理モジュールがどのようにして障害LPPノードから新規LPPノードへの仲介メッセージの再ルーティングを開始するかを示す図である。 障害処理モジュールがどのようにして障害LPPノードから新規LPPノードへの仲介メッセージの再ルーティングを開始するかを示す図である。 障害処理モジュールがどのようにして障害LPPノードから新規LPPノードへの仲介メッセージの再ルーティングを開始するかを示す図である。 障害処理モジュールがどのようにして障害LPPノードから新規LPPノードへの仲介メッセージの再ルーティングを開始するかを示す図である。 新規「システム不変量」を生成するために2以上のノードでメッセージのロギングを行う障害処理に対するアプローチを示す図である。 LPPノードの代わりに別のキュービック・サブネットワークを組み込むキュービック・ネットワークの構造改良を示す図である。 接続MRを備えるネットワーク階層を示す図である。 例示的なTP/MRバス・トポロジーを示す図である。

Claims (67)

  1. コンピュータ・ネットワークにおいてメッセージ・フローを仲介するための方法であって、前記コンピュータ・ネットワークは、仲介ネットワークを備え、仲介ネットワークは、
    前記仲介ネットワークとクライアント・プログラムの間でインタフェースをとるための少なくとも1つのローカル・ポイント・オブ・プレゼンス(LPP)モジュールと、
    仲介タスクを実施するための少なくとも1つの仲介者(M)モジュールと、
    着信メッセージの内容を分析するための少なくとも1つの仲介者ルータ(MR)モジュールであって、各MRモジュールが前記着信メッセージを前記内容に応じて所定のMモジュールにルーティングする少なくとも1つの仲介者ルータ(MR)モジュールと、
    メッセージを前記LPPモジュールの少なくとも1つに転送するための少なくとも1つの送信プロキシ(TP)モジュールとを含み、
    前記仲介者ルータ(MR)モジュール、前記仲介者(M)モジュールおよび前記送信プロキシ(TP)モジュールは、それぞれを通じたすべてのメッセージパスが、非可逆であるように構成され、これにより前記方法において、前記仲介ネットワークへの着信メッセージは、仲介サイクルに沿って伝播され、仲介サイクルは、
    LPPモジュールが、前記少なくとも1つの仲介者ルータ(MR)モジュールのそれぞれのモジュールを着信メッセージのアドレスに指定するステップと、
    前記アドレス指定されたMRモジュールで、着信メッセージの内容を分析し、前記メッセージを前記分析された内容に応じて所定の仲介者モジュールにルーティングするステップと、
    前記所定の仲介者モジュールで、前記分析されたメッセージに前記仲介タスクを適用し、仲介メッセージを前記TPモジュールのそれぞれのモジュールに送信するステップと、
    前記仲介メッセージを受信した前記TPモジュールで、前記仲介メッセージを少なくとも1つの前記LPPモジュールに転送するステップとを備える方法。
  2. 前記仲介ネットワークへの前記着信メッセージは、
    情報ソースとして機能するプロセスから生じる新情報と、
    前記仲介ネットワーク内のノードの状態についての問い合わせであって、応答を必要とする問い合わせと、
    関係する新情報が前記仲介ネットワークによって受信されたときは常に継続的な応答を必要とする関心表明とを含むメッセージ・タイプ群のうちの1つに属する、請求項1に記載の方法。
  3. 制御メッセージを着信メッセージとして前記仲介サイクルに沿って送信することによって、前記仲介ネットワークの内部動作の変更を引き起こすことをさらに備える、請求項1に記載の方法。
  4. 内部動作における前記変更は、提供仲介者モジュールと受取仲介者モジュールの間の仲介タスクの移管であり、
    前記制御メッセージは、仲介者移管メッセージであり、前記仲介者移管メッセージの内容は、所定のコンテンツ・タグを有するコンテンツの前記提供仲介者モジュールから前記受取仲介者モジュールへの再割り当てを記述し、前記提供仲介者モジュールは、前記コンテンツを処理するものとして現在登録されており、
    前記仲介者移管メッセージの取り扱いは、
    所定のLPPモジュールから、前記仲介者移管メッセージをそれぞれの関連MRモジュールに送信することと、
    前記関連MRモジュールで、前記コンテンツ・タグを読み取り、前記メッセージを前記提供仲介者モジュールに転送することと、
    前記仲介者移管メッセージの受信時に、前記提供仲介者モジュールが、仲介者ノードの状態を変更することと、前記仲介者移管メッセージの内容を含むMEDIATOR_HANDOVERメッセージを前記受取仲介者モジュールに送信することと、MEDIATOR_CHANGEDメッセージを関連TPモジュールに送信することと、その後、前記コンテンツ・タグを含むメッセージを前記受取仲介者モジュールに転送するために状態を変更することとを備える、請求項3に記載の方法。
  5. 前記TPモジュールが前記MEDIATOR_CHANGEDメッセージを少なくとも1つのLPPモジュールに転送することと、
    前記受取仲介者モジュールが再割り当てコンテンツに対応するペイロードを有するNEW_MEDIATOR_ACTIVEメッセージを生成し、前記NEW_MEDIATOR_ACTIVEメッセージを関連するすべてのTPモジュールにブロードキャストすることと、
    前記LPPモジュールが前記MEDIATOR_CHANGEDメッセージの受信と前記NEW_MEDIATOR_ACTIVEメッセージの受信の間のすべての着信メッセージをバッファリングすることとをさらに備える、請求項4に記載の方法。
  6. その後、前記LPPモジュールが前記NEW_MEDIATOR_ACTIVEメッセージを前記関連MRモジュールに転送することと、
    MRモジュールがNEW_MEDIATOR_ACTIVEメッセージを受信したときは常に、前記NEW_MEDIATOR_ACTIVEメッセージのペイロードに一致する将来のコンテンツが前記提供仲介者モジュールではなく前記受取仲介者モジュールに送信されるように、前記MRモジュール用のルーティング・テーブルを更新し、前記ルーティング・テーブルが更新されたことを前記提供仲介者モジュールに通知し、その後、前記提供仲介者モジュールは、今は前記受取仲介者モジュールが前記再割り当てコンテンツの仲介者モジュールであることをすべてのMRモジュールが通知されたならば、メッセージを転送することを止めることをさらに備える、請求項5に記載の方法。
  7. 内部動作の前記変更は、前記仲介ネットワークの論理トポロジーの再構成であり、前記制御メッセージは、1つまたは複数の再構成メッセージである、請求項3に記載の方法。
  8. 前記論理トポロジーの前記再構成は、前記再構成の前に前記仲介ネットワークを通過したメッセージが、前記再構成の後に前記仲介ネットワークを通過したメッセージより先に配送されることを保証する臨時バリアの生成を備える、請求項7に記載の方法。
  9. 前記臨時バリアを生成するステップは、前記1つまたは複数の再構成メッセージを前記仲介サイクルで循環させることと、前記サイクル内の各モジュールが前記再構成を十分に通知されることを保証することとを備える、請求項8に記載の方法。
  10. 前記仲介構成の前記論理トポロジーの前記再構成は、追加のローカル・ポイント・オブ・プレゼンス(LPP)ノードの挿入であり、前記1つまたは複数の再構成メッセージは、前記追加LPPノードを一意に識別するnew_LPPメッセージを含み、前記挿入は、
    前記追加LPPノードの所定の追加LPPモジュールで、前記new_LPPメッセージを生成し、前記new_LPPメッセージをMRノードの対応するMRモジュールに送信することと、
    前記対応するMRモジュールで、前記new_LPPメッセージを受信し、前記MRノード用の参照カウントを更新し、前記new_LPPメッセージを前記構成内のすべての仲介者モジュールに伝播させることと、
    各仲介者モジュールで、前記new_LPPメッセージを受信し、関連するクレジット・バランスを有する各TPノードのそれぞれの対応するTPモジュールに前記new_LPPメッセージを送信することと、
    前記対応するTPモジュールの各々で、前記new_LPPメッセージを受信し、前記それぞれの関連するクレジット・バランスを含むそれぞれの拡張new_LPPメッセージを前記追加LPPモジュールに送信することと、
    前記追加LPPモジュールで、前記拡張new_LPPメッセージを受信し、それによって前記new_LPPメッセージの循環を完了することと、
    前記追加LPPモジュールで、前記クレジット・バランスを合計し、クレジット合計が所定の完了値に達した場合に前記再構成の十分な通知が保証されることとを備える、請求項9に記載の方法。
  11. 前記仲介構成の前記論理トポロジーの前記再構成は、追加の仲介者ルータ(MR)ノードのさらなる挿入を備え、前記1つまたは複数の再構成メッセージは、前記追加MRノードを一意に識別するnew_MRメッセージをさらに含み、前記さらなる挿入は、
    前記追加LPPが、対応するクレジット・バランスを有するMRノードの対応するMRモジュールにnew_MRメッセージを送信することと、
    前記対応するMRモジュールが、前記追加MRノードのアドレス情報、前記追加LPPノードのアドレス、ルーティング情報、および前記対応するクレジット・バランスの分数値を含むnew_MR_route_tableメッセージを送信することによって前記new_MRメッセージに応答することと、
    次に前記対応するMRモジュールが、前記new_MR_route_tableメッセージを任意の仲介者モジュールに転送することと、
    前記任意の仲介者モジュールが、前記new_MR_route_tableメッセージを前記追加LPPモジュールに受け渡すことと、
    次に前記追加LPPモジュールが、ルーティング・マップを前記追加MRモジュールに受け渡すことと、
    前記追加MRモジュールで、前記new_MR_route_tableメッセージの内容を使用して、新しいクレジット・バランスおよびルーティング・マップを初期化することとを含む、請求項10に記載の方法。
  12. 前記再構成が、前記追加LPPモジュールがアドレス指定するMRモジュールを前記追加MRモジュールに変更することをさらに備え、前記追加MRモジュールは、前記new_MR_route_tableメッセージの受信時に、MR_initialised()メッセージを前記追加LPPモジュールに送信し、前記追加LPPモジュールは、inc_ref_count()およびdec_ref_count()メッセージをそれぞれ前記追加および初期MRモジュールに送信する、請求項11に記載の方法。
  13. 前記仲介構成の前記論理トポロジーの前記再構成は、追加の仲介者(M)ノードの挿入であることができ、前記1つまたは複数の再構成メッセージは、前記追加仲介者ノードを一意に識別するnew_Mメッセージを含み、前記挿入は、
    所定の追加仲介者モジュールが、前記new_Mメッセージを生成し、TPノードの対応するTPモジュールに前記new_Mメッセージを送信することと、
    前記対応するTPモジュールで、前記new_Mメッセージを受信し、前記TPノード用の参照カウントを更新し、前記new_Mメッセージを前記構成内のすべてのLPPモジュールに伝播させることと、
    各LPPモジュールで、前記new_Mメッセージを受信し、関連するクレジット・バランスを各MRノードが有するMRノードのそれぞれの対応するMRモジュールに前記new_Mメッセージを送信することと、
    前記対応するMRモジュールの各々で、前記new_Mメッセージを受信し、前記それぞれの関連するクレジット・バランスを含むそれぞれの拡張new_Mメッセージを前記追加仲介者モジュールに送信することと、
    前記追加仲介者モジュールで、前記拡張new_Mメッセージを受信し、それによって前記new_Mメッセージの循環を完了することと、
    前記追加仲介者モジュールで、前記クレジット・バランスを合計し、クレジット合計が所定の完了値に達した場合に前記再構成の十分な通知が保証されることとを備える、請求項9に記載の方法。
  14. 前記仲介構成の前記論理トポロジーの前記再構成は、追加の送信プロキシ(TP)ノードのさらなる挿入を備え、前記1つまたは複数の再構成メッセージは、前記追加TPノードを一意に識別するnew_TPメッセージをさらに含み、前記さらなる挿入は、
    前記追加仲介者モジュールが、前記new_TPメッセージを受信することと、
    前記追加仲介者モジュールが、前記追加仲介者ノードのアドレスを前記new_TPメッセージに追加し、対応するクレジット・バランスを有するTPノードの対応するTPモジュールに前記new_TPメッセージを転送することと、
    前記対応するTPモジュールが、前記追加TPノードのアドレス情報、前記追加仲介者ノードのアドレス、LPPのリスト、および前記対応するクレジット・バランスの分数値を含む拡張new_TPメッセージを生成することによって前記new_TPメッセージに応答することと、
    次に前記対応するTPモジュールが、前記new_TPメッセージを任意のLPPモジュールに転送することと、
    次に前記任意のLPPモジュールが、新しいルーティング・マップ・メッセージを前記追加TPモジュールに受け渡すことと、
    次に前記追加TPモジュールが、ルーティング・マップを前記追加MRモジュールに受け渡すことと、
    前記追加TPモジュールが、前記新しいルーティング・マップ・メッセージの内容を使用して、新しい対応するクレジット・バランスおよびLPPモジュールのリストを初期化することとを含む、請求項13に記載の方法。
  15. 前記再構成は、前記追加仲介者モジュールがアドレス指定する前記TPモジュールを前記追加TPモジュールに変更することをさらに備え、前記追加TPモジュールは、前記新しいルーティング・マップ・メッセージの受信時に、TP_initialised()メッセージを前記追加仲介者モジュールに送信し、前記追加仲介者モジュールは、inc_ref_count()およびdec_ref_count()メッセージをそれぞれ前記追加および初期TPモジュールに送信する、請求項14に記載の方法。
  16. 前記コンピュータ・ネットワークは、前記仲介ネットワーク内の各ノードと通信する障害検出ノードをさらに備え、前記方法は、
    前記障害検出ノードで、障害検出モジュールを提供することと、
    前記仲介ネットワークの各ノードで、障害報告モジュールを提供することとをさらに備え、
    ノード間の着信または発信通信リンクが障害を起こした場合は常に、前記障害報告モジュールの各々が、前記障害通信リンクに関する情報を前記障害検出モジュールに報告し、
    前記障害検出モジュールは、前記障害リンクが障害ノードを暗示するかどうかを決定する、請求項3に記載の方法。
  17. 前記障害検出モジュールが、前記障害リンクは障害ノードを暗示すると決定した場合、
    前記障害ノードと同じタイプの新規ノードを生成することと、
    前記障害ノードの内部状態および直接の近隣トポロジーに関する情報を前記新規ノードに登録することと、
    前記新規ノードを前記障害ノードより優先的に使用するように前記ネットワークを再構成することとをさらに備える、請求項16に記載の方法。
  18. 前記所定の仲介者モジュールによって受信されるすべての着信メッセージのメッセージ・ログを生成することをさらに備える、請求項1に記載の方法。
  19. 前記所定の仲介者モジュールで前記分析されたメッセージに適用される前記仲介タスクは、前記メッセージ・ログを生成することを含む、請求項18に記載の方法。
  20. 前記コンピュータ・ネットワークは、外部アプリケーションをさらに備え、前記方法は、
    前記外部アプリケーションで前記メッセージ・ログを生成することをさらに備える、請求項18に記載の方法。
  21. 内部動作の前記変更は、前記仲介構成の前記論理トポロジーの構造改良であり、前記制御メッセージは、1つまたは複数の改良メッセージである、請求項3に記載の方法。
  22. 構造改良のステップ内でサブネットワークが単一のノードの代わりに挿入される、請求項21に記載の方法。
  23. コンピュータ・ネットワークにおいてメッセージ・フローを仲介するための仲介ネットワークであって、前記仲介ネットワークは、
    前記仲介ネットワークとクライアント・プログラムの間でインタフェースをとるための少なくとも1つのローカル・ポイント・オブ・プレゼンス(LPP)モジュールと、
    仲介タスクを実施するための少なくとも1つの仲介者(M)モジュールと、
    着信メッセージの内容を分析するための少なくとも1つの仲介者ルータ(MR)モジュールであって、各MRモジュールが着信メッセージを前記内容に応じて所定のMモジュールにルーティングする少なくとも1つの仲介者ルータ(MR)モジュールと、
    メッセージを前記LPPモジュールの少なくとも1つに転送するための少なくとも1つの送信プロキシ(TP)モジュールとを備え、
    前記仲介者ルータ(MR)モジュール、前記仲介者(M)モジュールおよび前記送信プロキシ(TP)モジュールは、それぞれを通じたすべてのメッセージパスが、非可逆であるように構成され、これにより、前記仲介ネットワークが、LPPモジュールがMRモジュールをアドレス指定し、次にMRモジュールがMモジュールをアドレス指定し、次にMモジュールがTPモジュールをアドレス指定し、そして次にTPモジュールがLPPモジュールをアドレス指定する単方向仲介サイクルに沿ってメッセージを結合する仲介ネットワーク。
  24. 前記仲介ネットワークへの前記着信メッセージは、
    情報ソースとして機能するプロセスから生じる新情報と、
    前記仲介ネットワーク内のノードの状態についての問い合わせであって、応答を必要とする問い合わせと、
    関係する新情報が前記仲介ネットワークによって受信されたときは常に継続的な応答を必要とする関心表明とを含むメッセージ・タイプ群のうちの1つに属する、請求項23に記載の仲介ネットワーク。
  25. 制御メッセージを着信メッセージとして前記仲介サイクルに沿って送信することによって、前記仲介ネットワークの内部動作の変更を引き起こす制御メカニズムをさらに備える、請求項23に記載の仲介ネットワーク。
  26. 内部動作の前記変更を引き起こす前記制御メカニズムは、提供仲介者ノードと受取仲介者ノードの間で仲介要件を再分配する移管メカニズムであり、
    前記制御メッセージは、仲介者移管メッセージであり、前記仲介者移管メッセージの内容は、所定のコンテンツ・タグを有するコンテンツの前記提供仲介者ノードから前記受取仲介者ノードへの再割り当てを記述し、前記提供仲介者ノードは、前記コンテンツを処理するものとして現在登録されており、
    前記仲介者移管メッセージは、
    前記仲介者移管メッセージを所定のLPPモジュールからそれぞれの関連MRモジュールに送信し、
    前記コンテンツ・タグを前記関連MRモジュールで読み取り、前記メッセージを前記提供仲介者モジュールに転送し、
    前記仲介者移管メッセージの受信時に、前記提供仲介者ノードが、仲介者ノードの状態を変更し、前記仲介者移管メッセージの内容を含むMEDIATOR_HANDOVERメッセージを前記受取仲介者モジュールに送信し、MEDIATOR_CHANGEDメッセージを関連TPモジュールに送信し、その後、前記コンテンツ・タグを含むメッセージを前記受取仲介者モジュールに転送するために状態を変更することによって取り扱われる、請求項25に記載の仲介ネットワーク。
  27. 前記MEDIATOR_CHANGEDメッセージを少なくとも1つのLPPモジュールに転送する前記TPモジュールと、
    再割り当てコンテンツに対応するペイロードを有するNEW_MEDIATOR_ACTIVEメッセージを生成し、前記NEW_MEDIATOR_ACTIVEメッセージを関連するすべてのTPモジュールにブロードキャストする前記受取仲介者モジュールと、
    前記MEDIATOR_CHANGEDメッセージの受信と前記NEW_MEDIATOR_ACTIVEメッセージの受信の間のすべての着信メッセージをバッファリングする前記LPPモジュールとをさらに備える、請求項26に記載の仲介ネットワーク。
  28. その後、前記LPPモジュールが前記NEW_MEDIATOR_ACTIVEメッセージを前記関連MRモジュールに転送し、
    MRモジュールがNEW_MEDIATOR_ACTIVEメッセージを受信したときは常に、前記MRモジュールが、前記NEW_MEDIATOR_ACTIVEメッセージのペイロードに一致する将来のコンテンツが前記提供仲介者モジュールではなく前記受取仲介者モジュールに送信されるように、前記MRモジュール用のルーティング・テーブルを更新し、前記ルーティング・テーブルが更新されたことを前記提供仲介者モジュールに通知し、その後、前記提供仲介者モジュールが、今は前記受取仲介者モジュールが前記再割り当てコンテンツの仲介者モジュールであることをすべてのMRモジュールが通知されたならば、メッセージを転送することを止める、請求項27に記載の仲介ネットワーク。
  29. 内部動作の前記変更を引き起こす前記制御メカニズムが、再構成メカニズムであり、前記制御メッセージは、1つまたは複数の再構成メッセージである、請求項25に記載の仲介ネットワーク。
  30. 前記再構成メカニズムが、前記再構成の前に前記仲介ネットワークを通過したメッセージが、前記再構成の後に前記仲介ネットワークを通過したメッセージより先に配送されることを保証する臨時バリアを生成する、請求項29に記載の仲介ネットワーク。
  31. 前記臨時バリアの生成は、前記1つまたは複数の再構成メッセージを前記仲介サイクルで循環させることと、前記サイクル内の各モジュールが前記再構成を十分に通知されることを保証することとを備える、請求項30に記載の仲介ネットワーク。
  32. 前記再構成メカニズムが、追加のローカル・ポイント・オブ・プレゼンス(LPP)ノードを前記仲介ネットワークの前記論理トポロジーに挿入し、前記1つまたは複数の再構成メッセージは、前記追加LPPノードを一意に識別するnew_LPPメッセージを含み、前記再構成メカニズムは、
    前記追加LPPノードを一意に識別するnew_LPPメッセージを生成し、前記new_LPPメッセージをMRノードの対応するMRモジュールに送信する手段であって、所定の追加LPPモジュールで提供される手段と、
    前記new_LPPメッセージを受信し、前記MRノード用の参照カウントを更新し、前記new_LPPメッセージを前記仲介ネットワーク内のすべての仲介者モジュールに伝播させる手段であって、前記対応するMRモジュールで提供される手段と、
    前記new_LPPメッセージを受信し、関連するクレジット・バランスを有する各TPノードのそれぞれの対応するTPモジュールに前記new_LPPメッセージを送信する手段であって、各仲介者モジュールで提供される手段と、
    前記new_LPPメッセージを受信し、前記それぞれの関連するクレジット・バランスを含むそれぞれの拡張new_LPPメッセージを前記追加LPPモジュールに送信する手段であって、前記対応するTPモジュールの各々で提供される手段と、
    前記拡張new_LPPメッセージを受信し、それによって前記new_LPPメッセージの循環を完了する手段であって、前記追加LPPモジュールで提供される手段と、
    前記クレジット・バランスを合計する、前記追加LPPモジュールで提供される手段であって、クレジット合計が所定の完了値に達した場合に前記再構成の十分な通知が保証される手段とを備える、請求項31に記載の仲介ネットワーク。
  33. 前記再構成メカニズムが、追加の仲介者ルータ(MR)ノードを挿入するためのMR挿入メカニズムを備え、前記1つまたは複数の再構成メッセージは、前記追加MRノードを一意に識別するnew_MRメッセージをさらに含み、前記MR挿入メカニズムは、
    対応するクレジット・バランスを有するMRノードの対応するMRモジュールにnew_MRメッセージを送信する手段であって、前記追加LPPで提供される手段と、
    前記new_MRメッセージを受信し、new_MR_route_tableメッセージを送信し、前記対応するMRモジュールで提供される手段であって、前記new_MR_route_tableメッセージが、前記追加MRノードのアドレス情報、前記追加LPPノードのアドレス、ルーティング情報、および前記対応するクレジット・バランスの分数値を含む手段と、
    前記new_MR_route_tableメッセージを任意の仲介者モジュールに転送する手段であって、前記対応するMRモジュールで提供される手段と、
    前記new_MR_route_tableメッセージを前記追加LPPモジュールに受け渡す手段であって、前記任意の仲介者モジュールで提供される手段と、
    ルーティング・マップを前記追加MRモジュールに受け渡すさらなる手段であって、前記追加LPPモジュールで提供されるさらなる手段と、
    前記new_MR_route_tableメッセージの内容を使用して、新しいクレジット・バランスおよびルーティング・マップを初期化する初期化手段であって、前記追加MRモジュールで提供される手段とを含む、請求項32に記載の仲介ネットワーク。
  34. 前記再構成メカニズムが、前記追加LPPモジュールがアドレス指定する前記MRモジュールを前記追加MRモジュールに変更する手段をさらに備え、前記追加MRモジュールは、前記new_MR_route_tableメッセージの受信時に、MR_initialised()メッセージを前記追加LPPモジュールに送信し、前記追加LPPモジュールは、inc_ref_count()およびdec_ref_count()メッセージをそれぞれ前記追加および初期MRモジュールに送信する、請求項33に記載の仲介ネットワーク。
  35. 前記再構成メカニズムが、追加の仲介者(M)ノードを前記仲介ネットワークの前記論理トポロジーに挿入し、前記1つまたは複数の再構成メッセージは、前記追加Mノードを一意に識別するnew_Mメッセージを含み、前記再構成メカニズムは、
    前記new_Mメッセージを生成し、TPノードの対応するTPモジュールに前記new_Mメッセージを送信する手段であって、所定の追加仲介者モジュールで提供される手段と、
    前記new_Mメッセージを受信し、前記TPノード用の参照カウントを更新し、前記new_Mメッセージを前記構成内のすべてのLPPモジュールに伝播させる手段であって、前記対応するTPモジュールで提供される手段と、
    前記new_Mメッセージを受信し、関連するクレジット・バランスを各MRノードが有するMRノードのそれぞれの対応するMRモジュールに前記new_Mメッセージを送信する手段であって、各LPPモジュールで提供される手段と、
    前記new_Mメッセージを受信し、前記それぞれの関連するクレジット・バランスを含むそれぞれの拡張new_Mメッセージを前記追加仲介者モジュールに送信する手段であって、前記対応するMRモジュールの各々で提供される手段と、
    前記拡張new_Mメッセージを受信し、それによって前記new_Mメッセージの循環を完了する手段であって、前記追加Mモジュールで提供される手段と、
    前記クレジット・バランスを合計し、前記追加仲介者モジュールで提供される手段であって、クレジット合計が所定の完了値に達した場合に前記再構成の十分な通知が保証される手段とを備える、請求項31に記載の仲介ネットワーク。
  36. 前記再構成メカニズムが、追加の送信プロキシ(TP)ノードを挿入するためのTP挿入メカニズムをさらに備え、前記1つまたは複数の再構成メッセージは、前記追加TPノードを一意に識別するnew_TPメッセージをさらに含み、前記TP挿入メカニズムは、
    前記追加TPのアドレスを含むnew_TPメッセージを受信する手段であって、前記追加仲介者モジュールで提供される手段と、
    前記追加仲介者ノードのアドレスを前記new_TPメッセージに追加し、対応するクレジット・バランスを有するTPノードの対応するTPモジュールに前記new_TPメッセージを転送する手段であって、前記追加仲介者モジュールで提供される手段と、
    前記new_TPメッセージを受信し、前記追加TPノードのアドレス情報、前記追加仲介者ノードのアドレス、LPPのリスト、および前記対応するクレジット・バランスの分数値を含む拡張new_TPメッセージを生成する手段であって、前記対応するTPモジュールで提供される手段と、
    前記new_TPメッセージを任意のLPPモジュールに転送する手段であって、前記対応するTPモジュールで提供される手段と、
    新しいルーティング・マップ・メッセージにそのアドレスが存在する追加TPモジュールに前記新しいルーティング・マップ・メッセージを受け渡す手段であって、前記対応するTPモジュールで提供される手段と、
    ルーティング・マップを前記追加MRモジュールに受け渡すさらなる手段であって、前記追加TPモジュールで提供されるさらなる手段と、
    前記新しいルーティング・マップ・メッセージの内容を使用して、クレジット・バランスおよびLPPモジュールのリストを初期化する手段であって、前記追加TPモジュールで提供される手段とを含む、請求項35に記載の仲介ネットワーク。
  37. 前記再構成メカニズムが、前記追加仲介者モジュールがアドレス指定する前記TPモジュールを前記追加TPモジュールに変更する手段をさらに備え、前記追加TPモジュールは、前記新しいルーティング・マップ・メッセージの受信時に、TP_initialised()メッセージを前記追加仲介者モジュールに送信し、前記追加仲介者モジュールは、inc_ref_count()およびdec_ref_count()メッセージをそれぞれ前記追加および初期TPモジュールに送信する、請求項36に記載の仲介ネットワーク。
  38. 前記コンピュータ・ネットワークは、前記仲介ネットワーク内の各ノードと通信する障害検出ノードをさらに備え、前記障害検出ノードは、障害検出モジュールを含み、前記仲介ネットワークの各ノードは、障害報告モジュールを含み、
    ノード間の着信または発信通信リンクが障害を起こした場合は常に、前記障害報告モジュールの各々が、前記障害通信リンクに関する情報を前記障害検出モジュールに報告し、
    前記障害検出モジュールは、前記障害リンクが障害ノードを暗示するかどうかを決定する、請求項23に記載の仲介ネットワーク。
  39. 障害処理モジュールをさらに備え、前記障害検出モジュールが、前記障害リンクは障害ノードを暗示すると決定したときは常に、前記障害処理モジュールが、前記障害ノードと同じタイプの新規ノードを生成し、前記障害ノードの内部状態および直接の近隣トポロジーに関する情報を前記新規ノードに登録し、前記新規ノードを前記障害ノードより優先的に使用するようにネットワークを再構成する、請求項38に記載の仲介ネットワーク。
  40. 前記所定の仲介者モジュールによって受信されるすべての着信メッセージのメッセージ・ログを生成する手段をさらに備える、請求項23に記載の仲介ネットワーク。
  41. 前記所定の仲介者モジュールで前記分析されたメッセージに適用される前記仲介タスクは、前記メッセージ・ログを生成することを含む、請求項40に記載の仲介ネットワーク。
  42. 前記コンピュータ・ネットワークは、前記メッセージ・ログを生成する外部アプリケーションをさらに備え、前記仲介ネットワークは、
    前記外部アプリケーションで生成された前記メッセージ・ログを受信する手段をさらに含む、請求項40に記載の仲介ネットワーク。
  43. 内部動作の前記変更は、前記仲介ネットワークの前記論理トポロジーの構造改良であり、前記制御メッセージは、1つまたは複数の改良メッセージである、請求項23に記載の仲介ネットワーク。
  44. 構造改良のステップ内でサブネットワークが単一のノードの代わりに挿入される、請求項43に記載の仲介ネットワーク。
  45. コンピュータ・ネットワークにおいてメッセージ・フローを仲介するためのコンピュータ・プログラムが提供され、前記コンピュータ・プログラムは、仲介ネットワークを提供するための実行可能命令を含み、仲介ネットワークは、
    前記仲介ネットワークとクライアント・プログラムの間でインタフェースをとるための少なくとも1つのローカル・ポイント・オブ・プレゼンス(LPP)モジュールと、
    仲介タスクを実施するための少なくとも1つの仲介者(M)モジュールと、
    着信メッセージの内容を分析するための少なくとも1つの仲介者ルータ(MR)モジュールであって、各MRモジュールが着信メッセージを前記内容に応じて所定のMモジュールにルーティングする少なくとも1つの仲介者ルータ(MR)モジュールと、
    メッセージを前記LPPモジュールの少なくとも1つに転送するための少なくとも1つの送信プロキシ(TP)モジュールとを備え、
    前記仲介者ルータ(MR)モジュール、前記仲介者(M)モジュールおよび前記送信プロキシ(TP)モジュールは、それぞれを通じたすべてのメッセージパスが、非可逆であるように構成され、これにより前記命令が実行された場合、前記仲介ネットワークへの着信メッセージは、仲介サイクルに沿って伝播され、仲介サイクルは、
    LPPモジュールが、前記少なくとも1つの仲介者ルータ(MR)モジュールのそれぞれのモジュールを着信メッセージのアドレスに指定するステップと、
    前記アドレス指定されたMRモジュールで、着信メッセージの内容を分析し、前記メッセージを前記分析された内容に応じて所定の仲介者モジュールにルーティングするステップと、
    前記所定の仲介者モジュールで、前記分析されたメッセージに前記仲介タスクを適用し、仲介メッセージを前記TPモジュールのそれぞれのモジュールに送信するステップと、
    前記仲介メッセージを受信した前記TPモジュールで、前記仲介メッセージを少なくとも1つの前記LPPモジュールに転送するステップとを備えるコンピュータ・プログラム
  46. 前記仲介ネットワークへの前記着信メッセージは、
    情報ソースとして機能するプロセスから生じる新情報と、
    前記仲介ネットワーク内のノードの状態についての問い合わせであって、応答を必要とする問い合わせと、
    関係する新情報が前記仲介ネットワークによって受信されたときは常に継続的な応答を必要とする関心表明とを含むメッセージ・タイプ群のうちの1つに属する、請求項45に記載のコンピュータ・プログラム
  47. 制御メッセージを着信メッセージとして前記仲介サイクルに沿って送信することによって、前記仲介ネットワークの内部動作の変更を引き起こすことをさらに備える、請求項45に記載のコンピュータ・プログラム
  48. 内部動作における前記変更は、提供仲介者モジュールと受取仲介者モジュールの間の仲介タスクの移管であり、
    前記制御メッセージは、仲介者移管メッセージであり、前記仲介者移管メッセージの内容は、所定のコンテンツ・タグを有するコンテンツの前記提供仲介者モジュールから前記受取仲介者モジュールへの再割り当てを記述し、前記提供仲介者モジュールは、前記コンテンツを処理するものとして現在登録されており、
    前記仲介者移管メッセージの取り扱いは、
    所定のLPPモジュールから、前記仲介者移管メッセージをそれぞれの関連MRモジュールに送信することと、
    前記関連MRモジュールで、前記コンテンツ・タグを読み取り、前記メッセージを前記提供仲介者モジュールに転送することと、
    前記仲介者移管メッセージの受信時に、前記提供仲介者モジュールが、仲介者ノードの状態を変更することと、前記仲介者移管メッセージの内容を含むMEDIATOR_HANDOVERメッセージを前記受取仲介者モジュールに送信することと、MEDIATOR_CHANGEDメッセージを関連TPモジュールに送信することと、その後、前記コンテンツ・タグを含むメッセージを前記受取仲介者モジュールに転送するために状態を変更することとを備える、請求項47に記載のコンピュータ・プログラム
  49. 前記TPモジュールが前記MEDIATOR_CHANGEDメッセージを少なくとも1つのLPPモジュールに転送することと、
    前記受取仲介者モジュールが再割り当てコンテンツに対応するペイロードを有するNEW_MEDIATOR_ACTIVEメッセージを生成し、前記NEW_MEDIATOR_ACTIVEメッセージを関連するすべてのTPモジュールにブロードキャストすることと、
    前記LPPモジュールが前記MEDIATOR_CHANGEDメッセージの受信と前記NEW_MEDIATOR_ACTIVEメッセージの受信の間のすべての着信メッセージをバッファリングすることとをさらに備える、請求項48に記載のコンピュータ・プログラム
  50. その後、前記LPPモジュールが前記NEW_MEDIATOR_ACTIVEメッセージを前記関連MRモジュールに転送することと、
    MRモジュールがNEW_MEDIATOR_ACTIVEを受信したときは常に、前記NEW_MEDIATOR_ACTIVEメッセージの前記ペイロードに一致する将来のコンテンツが前記提供仲介者モジュールではなく前記受取仲介者モジュールに送信されるように、前記MRモジュール用のルーティング・テーブルを更新し、前記ルーティング・テーブルが更新されたことを前記提供仲介者モジュールに通知し、その後、前記提供仲介者モジュールは、今は前記受取仲介者モジュールが前記再割り当てコンテンツの前記仲介者モジュールであることをすべてのMRモジュールが通知されたならば、メッセージを転送することを止めることをさらに備える、請求項49に記載のコンピュータ・プログラム
  51. 内部動作の前記変更は、前記仲介ネットワークの論理トポロジーの再構成であり、前記制御メッセージは、1つまたは複数の再構成メッセージである、請求項47に記載のコンピュータ・プログラム
  52. 前記論理トポロジーの前記再構成は、前記再構成の前に前記仲介ネットワークを通過したメッセージが、前記再構成の後に前記仲介ネットワークを通過したメッセージより先に配送されることを保証する臨時バリアの生成を備える、請求項51に記載のコンピュータ・プログラム
  53. 前記臨時バリアを生成する前記ステップは、前記1つまたは複数の再構成メッセージを前記仲介サイクルで循環させることと、前記サイクル内の各モジュールが前記再構成を十分に通知されることを保証することとを備える、請求項52に記載のコンピュータ・プログラム
  54. 前記仲介構成の前記論理トポロジーの前記再構成は、追加のローカル・ポイント・オブ・プレゼンス(LPP)ノードの挿入であり、前記1つまたは複数の再構成メッセージは、前記追加LPPノードを一意に識別するnew_LPPメッセージを含み、前記挿入は、
    前記追加LPPノードの所定の追加LPPモジュールで、前記new_LPPメッセージを生成し、前記new_LPPメッセージをMRノードの対応するMRモジュールに送信することと、
    前記対応するMRモジュールで、前記new_LPPメッセージを受信し、前記MRノード用の参照カウントを更新し、前記new_LPPメッセージを前記構成内のすべての仲介者モジュールに伝播させることと、
    各仲介者モジュールで、前記new_LPPメッセージを受信し、関連するクレジット・バランスを有する各TPノードのそれぞれの対応するTPモジュールに前記new_LPPメッセージを送信することと、
    前記対応するTPモジュールの各々で、前記new_LPPメッセージを受信し、前記それぞれの関連するクレジット・バランスを含むそれぞれの拡張new_LPPメッセージを前記追加LPPモジュールに送信することと、
    前記追加LPPモジュールで、前記拡張new_LPPメッセージを受信し、それによって前記new_LPPメッセージの循環を完了することと、
    前記追加LPPモジュールで、前記クレジット・バランスを合計し、クレジット合計が所定の完了値に達した場合に前記再構成の十分な通知が保証されることとを備える、請求項53に記載のコンピュータ・プログラム
  55. 前記仲介構成の前記論理トポロジーの前記再構成は、追加の仲介者ルータ(MR)ノードのさらなる挿入を備え、前記1つまたは複数の再構成メッセージは、前記追加MRノードを一意に識別するnew_MRメッセージをさらに含み、前記さらなる挿入は、
    前記追加LPPが、対応するクレジット・バランスを有するMRノードの対応するMRモジュールにnew_MRメッセージを送信することと、
    前記対応するMRモジュールが、前記追加MRノードのアドレス情報、前記追加LPPノードのアドレス、ルーティング情報、および前記対応するクレジット・バランスの分数値を含むnew_MR_route_tableメッセージを送信することによって前記new_MRメッセージに応答することと、
    次に前記対応するMRモジュールが、前記new_MR_route_tableメッセージを任意の仲介者モジュールに転送することと、
    前記任意の仲介者モジュールが、前記new_MR_route_tableメッセージを前記追加LPPモジュールに受け渡すことと、
    次に前記追加LPPモジュールが、前記ルーティング・マップを追加MRモジュールに受け渡すことと、
    前記追加MRモジュールで、前記new_MR_route_tableメッセージの内容を使用して、新しいクレジット・バランスおよびルーティング・マップを初期化することとを含む、請求項54に記載のコンピュータ・プログラム
  56. 前記再構成が、前記追加LPPモジュールがアドレス指定する前記MRモジュールを前記追加MRモジュールに変更することをさらに備え、前記追加MRモジュールは、前記new_MR_route_tableメッセージの受信時に、MR_initialised()メッセージを前記追加LPPモジュールに送信し、前記追加LPPモジュールは、inc_ref_count()およびdec_ref_count()メッセージをそれぞれ前記追加および初期MRモジュールに送信する、請求項55に記載のコンピュータ・プログラム
  57. 前記仲介構成の前記論理トポロジーの前記再構成は、追加の仲介者(M)ノードの挿入であることができ、前記1つまたは複数の再構成メッセージは、前記追加仲介者ノードを一意に識別するnew_Mメッセージを含み、前記挿入は、
    所定の追加仲介者モジュールが、前記new_Mメッセージを生成し、TPノードの対応するTPモジュールに前記new_Mメッセージを送信することと、
    前記対応するTPモジュールで、前記new_Mメッセージを受信し、前記TPノード用の参照カウントを更新し、前記new_Mメッセージを前記構成内のすべてのLPPモジュールに伝播させることと、
    各LPPモジュールで、前記new_Mメッセージを受信し、関連するクレジット・バランスを各MRノードが有するMRノードのそれぞれの対応するMRモジュールに前記new_Mメッセージを送信することと、
    前記対応するMRモジュールの各々で、前記new_Mメッセージを受信し、前記それぞれの関連するクレジット・バランスを含むそれぞれの拡張new_Mメッセージを前記追加仲介者モジュールに送信することと、
    前記追加仲介者モジュールで、前記拡張new_Mメッセージを受信し、それによって前記new_Mメッセージの循環を完了することと、
    前記追加仲介者モジュールで、前記クレジット・バランスを合計し、クレジット合計が所定の完了値に達した場合に前記再構成の十分な通知が保証されることとを備える、請求項53に記載のコンピュータ・プログラム
  58. 前記仲介構成の前記論理トポロジーの前記再構成は、追加の送信プロキシ(TP)ノードのさらなる挿入を備え、前記1つまたは複数の再構成メッセージは、前記追加TPノードを一意に識別するnew_TPメッセージをさらに含み、前記さらなる挿入は、
    前記追加仲介者モジュールが、前記new_TPメッセージを受信することと、
    前記追加仲介者モジュールが、前記追加仲介者ノードのアドレスを前記new_TPメッセージに追加し、対応するクレジット・バランスを有するTPノードの対応するTPモジュールに前記new_TPメッセージを転送することと、
    前記対応するTPモジュールが、前記追加TPノードのアドレス情報、前記追加仲介者ノードのアドレス、LPPのリスト、および前記対応するクレジット・バランスの分数値を含む拡張new_TPメッセージを生成することによって前記new_TPメッセージに応答することと、
    次に前記対応するTPモジュールが、前記new_TPメッセージを任意のLPPモジュールに転送することと、
    次に前記任意のLPPモジュールが、新しいルーティング・マップ・メッセージを前記追加TPモジュールに受け渡すことと、
    次に前記追加TPモジュールが、ルーティング・マップを前記追加MRモジュールに受け渡すことと、
    前記追加TPモジュールが、前記新しいルーティング・マップ・メッセージの内容を使用して、新しい対応するクレジット・バランスおよびLPPモジュールのリストを初期化することとを含む、請求項57に記載のコンピュータ・プログラム
  59. 前記再構成は、前記追加仲介者モジュールがアドレス指定する前記TPモジュールを前記追加TPモジュールに変更することをさらに備え、前記追加TPモジュールは、前記新しいルーティング・マップ・メッセージの受信時に、TP_initialised()メッセージを前記追加仲介者モジュールに送信し、前記追加仲介者モジュールは、inc_ref_count()およびdec_ref_count()メッセージをそれぞれ前記追加および初期TPモジュールに送信する、請求項58に記載のコンピュータ・プログラム
  60. 前記コンピュータ・ネットワークは、前記仲介ネットワーク内の各ノードと通信する障害検出ノードをさらに備え、前記コンピュータ・プログラムは、
    前記障害検出ノードで、障害検出モジュールを提供することと、
    前記仲介ネットワークの各ノードで、障害報告モジュールを提供することとをさらに備え、
    ノード間の着信または発信通信リンクが障害を起こした場合は常に、前記障害報告モジュールの各々が、前記障害通信リンクに関する情報を前記障害検出モジュールに報告し、
    前記障害検出モジュールは、前記障害リンクが障害ノードを暗示するかどうかを決定する、請求項47に記載のコンピュータ・プログラム
  61. 前記障害検出モジュールが、前記障害リンクは障害ノードを暗示すると決定した場合、
    前記障害ノードと同じタイプの新規ノードを生成することと、
    前記障害ノードの内部状態および直接の近隣トポロジーに関する情報を前記新規ノードに登録することと、
    前記新規ノードを前記障害ノードより優先的に使用するように前記ネットワークを再構成することとをさらに備える、請求項60に記載のコンピュータ・プログラム
  62. 前記所定の仲介者モジュールによって受信されるすべての着信メッセージのメッセージ・ログを生成することをさらに備える、請求項45に記載のコンピュータ・プログラム
  63. 前記所定の仲介者モジュールで前記分析されたメッセージに適用される前記仲介タスクは、前記メッセージ・ログを生成することを含む、請求項62に記載のコンピュータ・プログラム
  64. 前記コンピュータ・ネットワークは、外部アプリケーションをさらに備え、前記コンピュータ・プログラムは、
    前記外部アプリケーションで前記メッセージ・ログを生成することをさらに備える、請求項62に記載のコンピュータ・プログラム
  65. 内部動作の前記変更は、前記仲介構成の前記論理トポロジーの構造改良であり、前記制御メッセージは、1つまたは複数の改良メッセージである、請求項47に記載のコンピュータ・プログラム
  66. 構造改良のステップ内でサブネットワークが単一のノードの代わりに挿入される、請求項65に記載のコンピュータ・プログラム
  67. 前記仲介ネットワークの論理および物理構造についての情報を保存するためのデータストアを提供するための命令を備える、請求項45に記載のコンピュータ・プログラム
JP2006521674A 2003-07-31 2004-08-02 自己管理仲介情報フロー Expired - Fee Related JP4588704B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US49177703P 2003-07-31 2003-07-31
PCT/GB2004/003335 WO2005013554A2 (en) 2003-07-31 2004-08-02 Self-managed mediated information flow

Publications (3)

Publication Number Publication Date
JP2007502553A JP2007502553A (ja) 2007-02-08
JP2007502553A5 JP2007502553A5 (ja) 2007-10-25
JP4588704B2 true JP4588704B2 (ja) 2010-12-01

Family

ID=34115550

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006521674A Expired - Fee Related JP4588704B2 (ja) 2003-07-31 2004-08-02 自己管理仲介情報フロー

Country Status (13)

Country Link
US (1) US9525566B2 (ja)
EP (1) EP1649667B1 (ja)
JP (1) JP4588704B2 (ja)
CN (1) CN1846419A (ja)
AT (1) ATE400133T1 (ja)
AU (1) AU2004301718B9 (ja)
DE (1) DE602004014776D1 (ja)
ES (1) ES2319196T3 (ja)
GB (1) GB2418331B8 (ja)
NO (1) NO20060397L (ja)
NZ (1) NZ544986A (ja)
PT (1) PT1649667E (ja)
WO (1) WO2005013554A2 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8307112B2 (en) * 2003-07-31 2012-11-06 Cloudsoft Corporation Limited Mediated information flow
US9525566B2 (en) 2003-07-31 2016-12-20 Cloudsoft Corporation Limited Self-managed mediated information flow
US8082340B2 (en) * 2006-01-30 2011-12-20 Cisco Technology, Inc. Technique for distinguishing between link and node failure using bidirectional forwarding detection (BFD)
WO2007144611A1 (en) * 2006-06-12 2007-12-21 Enigmatec Corporation Self-managed distributed mediation networks
US7930600B2 (en) * 2008-02-26 2011-04-19 International Business Machines Corporation Logical to physical connectivity verification in a predefined networking environment
CN101719836A (zh) * 2008-10-09 2010-06-02 联想(北京)有限公司 一种故障检测方法及装置
KR101010911B1 (ko) * 2008-12-31 2011-01-26 엔에이치엔(주) 메시징 네트워크 시스템의 메시지 송수신 방법
US8392555B2 (en) * 2009-06-01 2013-03-05 International Business Machines Corporation Push-back mechanism for pub/sub brokers
US8700756B2 (en) * 2011-05-03 2014-04-15 Xerox Corporation Systems, methods and devices for extracting and visualizing user-centric communities from emails
US9154400B2 (en) 2011-05-10 2015-10-06 Cray Inc. Dynamically updating routing information while avoiding deadlocks and preserving packet order after a configuration change
US8854951B2 (en) * 2011-05-10 2014-10-07 Cray Inc. Dynamically updating routing information while avoiding deadlocks and preserving packet order after a link error
US9258195B1 (en) 2012-08-08 2016-02-09 Shoretel, Inc. Logical topology visualization
US9712402B2 (en) 2012-10-10 2017-07-18 Alcatel Lucent Method and apparatus for automated deployment of geographically distributed applications within a cloud
US9559909B2 (en) 2013-04-19 2017-01-31 Entuity Limited Identifying an egress port of a device
WO2014170459A1 (en) 2013-04-19 2014-10-23 Entuity Limited Identification of paths in a network of mixed routing/switching devices
GB2514675B (en) 2013-04-19 2015-06-17 Entuity Ltd Querying a traffic forwarding table
GB2513188B (en) * 2013-04-19 2015-11-25 Entuity Ltd Identification of the paths taken through a network of interconnected devices
GB2527273B (en) 2014-04-11 2016-08-03 Entuity Ltd Executing a loop computer program to identify a path in a network
KR102058563B1 (ko) * 2013-08-07 2019-12-24 인터디지탈 패튼 홀딩스, 인크 디바이스 대 디바이스 통신을 위한 분산형 스케줄링
CN104778188B (zh) * 2014-02-24 2018-10-19 贵州电网公司信息通信分公司 一种分布式设备日志采集方法
US10057337B2 (en) * 2016-08-19 2018-08-21 AvaSure, LLC Video load balancing system for a peer-to-peer server network
EP3628118A4 (en) * 2017-07-07 2020-12-09 ARRIS Enterprises LLC AGENT SERVER BETWEEN WIRELESS LOCAL NETWORK INFRASTRUCTURES
CN110390020A (zh) * 2018-04-19 2019-10-29 株式会社日立制作所 语义网关的建模方法和语义网关
US10993110B2 (en) * 2018-07-13 2021-04-27 Nvidia Corp. Connectionless fast method for configuring Wi-Fi on displayless Wi-Fi IoT device
CA3162654A1 (en) * 2020-01-02 2021-07-08 Gabriel LAVI Methods and systems for supporting communication a plurality of client communication devices in a wireless local area network
US11606242B1 (en) * 2022-03-10 2023-03-14 Ricoh Company, Ltd. Coordinated monitoring of legacy output devices
US11894973B2 (en) 2022-03-10 2024-02-06 Ricoh Company, Ltd. Assigning and prioritizing mediation servers for monitoring legacy devices
CN115061718B (zh) * 2022-03-24 2023-12-22 上海任意门科技有限公司 配置和运行状态机的方法、计算设备和计算机存储介质

Family Cites Families (120)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5769527A (en) 1986-07-17 1998-06-23 Vari-Lite, Inc. Computer controlled lighting system with distributed control resources
US6185619B1 (en) * 1996-12-09 2001-02-06 Genuity Inc. Method and apparatus for balancing the process load on network servers according to network and serve based policies
WO1995034153A1 (en) * 1994-06-08 1995-12-14 Hughes Aircraft Company Apparatus and method for hybrid network access
BR9709338B1 (pt) * 1996-05-23 2012-05-29 sistema e processo de integração global de serviços.
US7903029B2 (en) * 1996-09-09 2011-03-08 Tracbeam Llc Wireless location routing applications and architecture therefor
JPH10124411A (ja) * 1996-10-24 1998-05-15 Fuji Xerox Co Ltd エージェントコミュニティシステム
US6247056B1 (en) 1997-02-03 2001-06-12 Oracle Corporation Method and apparatus for handling client request with a distributed web application server
US6112239A (en) * 1997-06-18 2000-08-29 Intervu, Inc System and method for server-side optimization of data delivery on a distributed computer network
JP3274393B2 (ja) * 1997-09-22 2002-04-15 株式会社ディジタル・ビジョン・ラボラトリーズ ネットワークシステム、データ配信方法、および、配信用データが記録されたコンピュータ読み取り可能な記録媒体
US6968394B1 (en) * 1997-09-22 2005-11-22 Zaksat General Trading Co., Wll Asymmetric satellite-based internet service
US6128279A (en) * 1997-10-06 2000-10-03 Web Balance, Inc. System for balancing loads among network servers
US6038594A (en) * 1998-02-02 2000-03-14 Loral Cyberstar, Inc. Internet communication system and method with asymmetric terrestrial and satellite links
US6519243B1 (en) * 1998-02-26 2003-02-11 Hitachi, Ltd. Communication system for communications devices utilizing asymmetrical paths and communications method utilizing asymmetrical paths
US6108703A (en) * 1998-07-14 2000-08-22 Massachusetts Institute Of Technology Global hosting system
US6330592B1 (en) * 1998-12-05 2001-12-11 Vignette Corporation Method, memory, product, and code for displaying pre-customized content associated with visitor data
US6349307B1 (en) * 1998-12-28 2002-02-19 U.S. Philips Corporation Cooperative topical servers with automatic prefiltering and routing
US6760775B1 (en) * 1999-03-05 2004-07-06 At&T Corp. System, method and apparatus for network service load and reliability management
US6594268B1 (en) * 1999-03-11 2003-07-15 Lucent Technologies Inc. Adaptive routing system and method for QOS packet networks
US6646984B1 (en) * 1999-03-15 2003-11-11 Hewlett-Packard Development Company, L.P. Network topology with asymmetric fabrics
US8060926B1 (en) * 1999-03-16 2011-11-15 Novell, Inc. Techniques for securely managing and accelerating data delivery
IL135156A0 (en) 1999-03-19 2001-05-20 Ibm Message broker providing a publish/subscribe service and method of processing messages in a publish/subscribe environment
US6785704B1 (en) * 1999-12-20 2004-08-31 Fastforward Networks Content distribution system for operation over an internetwork including content peering arrangements
US20020032642A1 (en) * 1999-10-13 2002-03-14 Graciela Chichilnisky Internet based secure virtual exchange and distributed relational database for cross border trading of securities
US7117273B1 (en) * 2000-01-25 2006-10-03 Cisco Technology, Inc. Methods and apparatus for maintaining a map of node relationships for a network
WO2001055878A1 (en) * 2000-01-28 2001-08-02 Ibeam Broadcasting Corporation A system and method for rewriting a media resource request and/or response between origin server and client
US7003571B1 (en) * 2000-01-31 2006-02-21 Telecommunication Systems Corporation Of Maryland System and method for re-directing requests from browsers for communication over non-IP based networks
US6820133B1 (en) * 2000-02-07 2004-11-16 Netli, Inc. System and method for high-performance delivery of web content using high-performance communications protocol between the first and second specialized intermediate nodes to optimize a measure of communications performance between the source and the destination
CA2401982C (en) * 2000-03-07 2007-12-11 Nippon Telegraph And Telephone Corporation Semantic information-oriented network (sion)
US6601101B1 (en) * 2000-03-15 2003-07-29 3Com Corporation Transparent access to network attached devices
US7260635B2 (en) * 2000-03-21 2007-08-21 Centrisoft Corporation Software, systems and methods for managing a distributed network
US20010027491A1 (en) * 2000-03-27 2001-10-04 Terretta Michael S. Network communication system including metaswitch functionality
US7120453B2 (en) 2000-04-18 2006-10-10 Lucent Technologies Inc. Paging of mobile hosts on an internet protocol network
US8239445B1 (en) * 2000-04-25 2012-08-07 International Business Machines Corporation URL-based sticky routing tokens using a server-side cookie jar
US7401131B2 (en) * 2000-05-22 2008-07-15 Verizon Business Global Llc Method and system for implementing improved containers in a global ecosystem of interrelated services
US7356500B1 (en) * 2000-06-01 2008-04-08 Pipeline Financial Group, Inc. Method for directing and executing certified trading interests
US7200673B1 (en) * 2000-06-09 2007-04-03 Steven Augart Determining the geographic location of a network device
US6591285B1 (en) * 2000-06-16 2003-07-08 Shuo-Yen Robert Li Running-sum adder networks determined by recursive construction of multi-stage networks
US7114008B2 (en) * 2000-06-23 2006-09-26 Cloudshield Technologies, Inc. Edge adapter architecture apparatus and method
US6983259B1 (en) * 2000-06-23 2006-01-03 Ebs Group Limited Anonymous trading system
US7032031B2 (en) * 2000-06-23 2006-04-18 Cloudshield Technologies, Inc. Edge adapter apparatus and method
JP2002015215A (ja) * 2000-06-30 2002-01-18 Hitachi Ltd マルチメデア情報配信システムおよび携帯情報端末装置
US7461150B1 (en) * 2000-07-19 2008-12-02 International Business Machines Corporation Technique for sending TCP messages through HTTP systems
US7370364B2 (en) * 2000-07-31 2008-05-06 Ellacoya Networks, Inc. Managing content resources
US7082102B1 (en) * 2000-10-19 2006-07-25 Bellsouth Intellectual Property Corp. Systems and methods for policy-enabled communications networks
US7403980B2 (en) * 2000-11-08 2008-07-22 Sri International Methods and apparatus for scalable, distributed management of virtual private networks
US6954463B1 (en) * 2000-12-11 2005-10-11 Cisco Technology, Inc. Distributed packet processing architecture for network access servers
US6697206B2 (en) * 2000-12-19 2004-02-24 Imation Corp. Tape edge monitoring
US20020116397A1 (en) * 2000-12-21 2002-08-22 Berg Mitchell T. Method and system for communicating an information packet through multiple router devices
US20020120837A1 (en) * 2001-02-28 2002-08-29 Maxemchuk Nicholas Frank Distributed internet multicast system for the stock market
US6816493B2 (en) * 2001-03-09 2004-11-09 Motorola, Inc. Method and apparatus employing a mediation device to facilitate communication among devices in an asynchronous communications network
US7571211B1 (en) * 2002-04-15 2009-08-04 Lightwaves Systems, Inc. Method for routing messages over a network based on location
US7200679B2 (en) * 2001-04-13 2007-04-03 Telefonaktiebolaget Lm Ericsson (Publ) Creating distributed proxy configurations
US20020156918A1 (en) * 2001-04-23 2002-10-24 Brocade Communications Systems, Inc. Dynamic path selection with in-order delivery within sequence in a communication network
TWI220821B (en) * 2001-04-26 2004-09-01 Accton Technology Corp Zero-loss web service system and method
US7380017B2 (en) * 2001-05-03 2008-05-27 Nortel Networks Limited Route protection in a communication network
US7251222B2 (en) * 2001-05-15 2007-07-31 Motorola, Inc. Procedures for merging the mediation device protocol with a network layer protocol
EP1402391A4 (en) * 2001-06-04 2006-12-20 Nct Group Inc SYSTEM AND METHOD FOR REDUCING THE DELIVERY TIME TO AN INFORMATION USER EMITTING FROM A TRANSMISSION NETWORK
US7117242B2 (en) * 2001-06-20 2006-10-03 Hewlett-Packard Development Company, L.P. System and method for workload-aware request distribution in cluster-based network servers
US6970947B2 (en) * 2001-07-18 2005-11-29 International Business Machines Corporation Method and apparatus for providing a flexible and scalable context service
US6944785B2 (en) * 2001-07-23 2005-09-13 Network Appliance, Inc. High-availability cluster virtual server system
US7111074B2 (en) * 2001-07-24 2006-09-19 Pluris, Inc. Control method for data path load-balancing on a data packet network
US10469591B2 (en) * 2001-08-21 2019-11-05 Bookit Oy Method and system for mediating and provisioning services
US7613640B2 (en) * 2001-08-29 2009-11-03 Ebs Group Limited Electronic trading system
US20050071443A1 (en) * 2001-09-10 2005-03-31 Jai Menon Software platform for the delivery of services and personalized content
US7512676B2 (en) * 2001-09-13 2009-03-31 Network Foundation Technologies, Llc Systems for distributing data over a computer network and methods for arranging nodes for distribution of data over a computer network
US8042132B2 (en) * 2002-03-15 2011-10-18 Tvworks, Llc System and method for construction, delivery and display of iTV content
US7860964B2 (en) * 2001-09-28 2010-12-28 Level 3 Communications, Llc Policy-based content delivery network selection
AU2002362568A1 (en) * 2001-09-28 2003-04-07 Savvis Communications Corporation System and method for policy dependent name to address resolutioin.
US20030174648A1 (en) * 2001-10-17 2003-09-18 Mea Wang Content delivery network by-pass system
US7362709B1 (en) * 2001-11-02 2008-04-22 Arizona Board Of Regents Agile digital communication network with rapid rerouting
US7406537B2 (en) * 2002-11-26 2008-07-29 Progress Software Corporation Dynamic subscription and message routing on a topic between publishing nodes and subscribing nodes
EP1504385A4 (en) * 2001-12-05 2008-12-03 Xchange Advantage Inc E METHOD AND SYSTEM FOR MANAGING DISTRIBUTED TRADING DATA
US8122118B2 (en) * 2001-12-14 2012-02-21 International Business Machines Corporation Selection of communication protocol for message transfer based on quality of service requirements
US20030126059A1 (en) * 2001-12-18 2003-07-03 Hensley Roy Austin Intelectual property (IP) brokering system and method
US8126722B2 (en) * 2001-12-20 2012-02-28 Verizon Business Global Llc Application infrastructure platform (AIP)
JP2005513916A (ja) * 2001-12-21 2005-05-12 ミュアヘッド、チャールズ・エス 仮想専用ネットワーク・サービスの供給チェーン管理システム
US7203743B2 (en) 2001-12-28 2007-04-10 Nortel Networks Limited Hierarchical tree-based protection scheme for mesh networks
US7127713B2 (en) * 2002-01-11 2006-10-24 Akamai Technologies, Inc. Java application framework for use in a content delivery network (CDN)
US7586909B1 (en) * 2002-03-06 2009-09-08 Agere Systems Inc. Striping algorithm for switching fabric
US20030179775A1 (en) * 2002-03-20 2003-09-25 Carolan Jason T. Service delivery network system and method
US7213246B1 (en) 2002-03-28 2007-05-01 Veritas Operating Corporation Failing over a virtual machine
US8516114B2 (en) * 2002-03-29 2013-08-20 International Business Machines Corporation Method and apparatus for content pre-fetching and preparation
US20030204602A1 (en) * 2002-04-26 2003-10-30 Hudson Michael D. Mediated multi-source peer content delivery network architecture
US7685287B2 (en) * 2002-05-30 2010-03-23 Microsoft Corporation Method and system for layering an infinite request/reply data stream on finite, unidirectional, time-limited transports
US20030225873A1 (en) * 2002-05-30 2003-12-04 Wade Michael A. Optimization of network performance through uni-directional encapsulation
US7376125B1 (en) * 2002-06-04 2008-05-20 Fortinet, Inc. Service processing switch
GB2389431A (en) * 2002-06-07 2003-12-10 Hewlett Packard Co An arrangement for delivering resources over a network in which a demand director server is aware of the content of resource servers
US7676812B2 (en) * 2002-06-10 2010-03-09 Microsoft Corporation Large scale event notification system
US8086750B2 (en) * 2002-06-17 2011-12-27 Darby & Mohaine, L.L.C. Method and system for delivering content over a network
US7360160B2 (en) * 2002-06-20 2008-04-15 At&T Intellectual Property, Inc. System and method for providing substitute content in place of blocked content
US7177859B2 (en) * 2002-06-26 2007-02-13 Microsoft Corporation Programming model for subscription services
JP3923863B2 (ja) * 2002-07-09 2007-06-06 株式会社日立製作所 リクエストルータ装置
US7254109B2 (en) * 2002-07-12 2007-08-07 Baypackets, Inc. Fault tolerant correlation engine method and system for telecommunications networks
US7461147B1 (en) * 2002-08-26 2008-12-02 Netapp. Inc. Node selection within a network based on policy
US7185067B1 (en) * 2002-08-27 2007-02-27 Cisco Technology, Inc. Load balancing network access requests
US7822810B2 (en) * 2002-09-17 2010-10-26 Hewlett-Packard Development Company, L.P. Method and system for peer to peer common channel collaboration
USRE45806E1 (en) * 2002-10-15 2015-11-17 Active-Base Ltd. System and method for the optimization of database access in data base networks
US8233392B2 (en) * 2003-07-29 2012-07-31 Citrix Systems, Inc. Transaction boundary detection for reduction in timeout penalties
US20040103193A1 (en) 2002-11-08 2004-05-27 Pandya Suketu J. Response time and resource consumption management in a distributed network environment
US7395536B2 (en) 2002-11-14 2008-07-01 Sun Microsystems, Inc. System and method for submitting and performing computational tasks in a distributed heterogeneous networked environment
US7640267B2 (en) * 2002-11-20 2009-12-29 Radar Networks, Inc. Methods and systems for managing entities in a computing device using semantic objects
US7089319B2 (en) * 2002-12-09 2006-08-08 Anton Lysenko Method and system for instantaneous on-demand delivery of multimedia content over a communication network with aid of content capturing component, delivery-on-demand client and dynamically mapped resource locator server
US20090118019A1 (en) * 2002-12-10 2009-05-07 Onlive, Inc. System for streaming databases serving real-time applications used through streaming interactive video
GB0228941D0 (en) * 2002-12-12 2003-01-15 Ibm Methods, apparatus and computer programs for processing alerts and auditing in a publish/subscribe system
WO2004056047A1 (en) * 2002-12-13 2004-07-01 Internap Network Services Corporation Topology aware route control
US7792982B2 (en) * 2003-01-07 2010-09-07 Microsoft Corporation System and method for distributing streaming content through cooperative networking
US20030108030A1 (en) * 2003-01-21 2003-06-12 Henry Gao System, method, and data structure for multimedia communications
US7349980B1 (en) * 2003-01-24 2008-03-25 Blue Titan Software, Inc. Network publish/subscribe system incorporating Web services network routing architecture
US7137040B2 (en) * 2003-02-12 2006-11-14 International Business Machines Corporation Scalable method of continuous monitoring the remotely accessible resources against the node failures for very large clusters
US7353276B2 (en) * 2003-02-13 2008-04-01 Microsoft Corporation Bi-directional affinity
WO2004100010A1 (en) * 2003-04-30 2004-11-18 Iptv Systems, Llc Secure, continuous, proxy-optimized, device-to-device data download reception system and method of use
US9258765B1 (en) * 2003-05-08 2016-02-09 Dynamic Mesh Networks, Inc. Chirp networks
US20040260745A1 (en) * 2003-06-18 2004-12-23 Gage Christopher A. S. Load balancer performance using affinity modification
US7167865B1 (en) 2003-06-30 2007-01-23 Mvalent, Inc. Collaborative environment for producing software products
US7636917B2 (en) * 2003-06-30 2009-12-22 Microsoft Corporation Network load balancing with host status information
US7590736B2 (en) * 2003-06-30 2009-09-15 Microsoft Corporation Flexible network load balancing
US7533054B2 (en) * 2003-06-30 2009-05-12 Bloomberg L.P. Central credit filtering in computerized trading
US7567504B2 (en) * 2003-06-30 2009-07-28 Microsoft Corporation Network load balancing with traffic routing
US9525566B2 (en) 2003-07-31 2016-12-20 Cloudsoft Corporation Limited Self-managed mediated information flow
WO2007144611A1 (en) 2006-06-12 2007-12-21 Enigmatec Corporation Self-managed distributed mediation networks

Also Published As

Publication number Publication date
ES2319196T3 (es) 2009-05-05
GB2418331B8 (en) 2011-01-19
AU2004301718B2 (en) 2007-07-12
CN1846419A (zh) 2006-10-11
GB2418331B (en) 2006-12-06
AU2004301718B9 (en) 2007-07-12
US9525566B2 (en) 2016-12-20
GB2418331A8 (en) 2011-01-19
ATE400133T1 (de) 2008-07-15
NZ544986A (en) 2007-09-28
PT1649667E (pt) 2008-10-14
NO20060397L (no) 2006-04-28
WO2005013554A2 (en) 2005-02-10
DE602004014776D1 (de) 2008-08-14
AU2004301718A1 (en) 2005-02-10
WO2005013554A3 (en) 2005-03-31
GB2418331A (en) 2006-03-22
GB0526606D0 (en) 2006-02-08
EP1649667A2 (en) 2006-04-26
EP1649667B1 (en) 2008-07-02
US20050044268A1 (en) 2005-02-24
JP2007502553A (ja) 2007-02-08

Similar Documents

Publication Publication Date Title
JP4588704B2 (ja) 自己管理仲介情報フロー
US8266321B2 (en) Self-managed distributed mediation networks
Pietzuch Hermes: A scalable event-based middleware
JP4422606B2 (ja) 分散型アプリケーションサーバおよび分散された機能を実施する方法
US8195742B2 (en) Distributed client services based on execution of service attributes and data attributes by multiple nodes in resource groups
US9659075B2 (en) Providing high availability in an active/active appliance cluster
US20110185082A1 (en) Systems and methods for network virtualization
JP2006506877A (ja) ピアツーピア環境におけるネットワーク・トラフィック制御
US20060212532A1 (en) Method and Apparatus for Proxying Initial Client Requests to Support Asynchronous Resource Initialization
US10904327B2 (en) Method, electronic device and computer program product for searching for node
US8307112B2 (en) Mediated information flow
US20090094314A1 (en) Reroute of a web service in a web based application
Yoon et al. Exploring a system architecture of content‐based publish/subscribe system for efficient on‐the‐fly data dissemination
Domingues et al. A fault recovery protocol for brokers in centralized publish-subscribe systems targeting multiprocessor systems-on-chips
Priyanka et al. Insights on Effectiveness Towards Research Approaches Deployed in Content Delivery Network
Sivasubramanian et al. Web replica hosting systems
Sivasubramanian et al. Web replica hosting systems design
Meng et al. A Web Services-Based Distributed Information Retrieval Model

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070329

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070904

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20090617

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20090617

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100129

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100430

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100512

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100528

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100604

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100726

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100810

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100908

R150 Certificate of patent or registration of utility model

Ref document number: 4588704

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130917

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees