(57)【要約】コンピュータ・ネットワーク内のメッセージング・システムと、メッセージング階層を形成する方法が記述される。ネットワークは、複数のネットワーク・エンティティから構成され、これは発行エンティティと配信予約エンティティを含み、発行エンティティは、配信予約エンティティが必要とするであろうデータを持っている。メッセージング・システムと、メッセージング階層を形成する方法は、また、発行エンティティ及び配信予約エンティティ間で交換されるデータに適用されるデータ階層を含んでいる。ｔデータ階層は、エンティティ間で交換される発行及び配信予約要求に応じて、ネットワーク・エンティティ間に確立される仮想コネクションが、データ階層に対応する階層を形成するように、ネットワーク・エンティティ間に形成される仮想コネクションを定める。
2009536416.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク中で使用されるメッセージング・システムであって、
配信予約エンティティと、該配信予約エンティティが必要とするデータを有する発行エンティティとを含む複数のネットワーク・エンティティと、
上記発行エンティティ及び上記配信予約エンティティ間で交換されるデータに適用されるデータ階層とを具え、
上記データ階層は、上記エンティティ間で交換される発行及び配信予約要求に応じて、ネットワーク・エンティティ間に確立される仮想コネクションが、上記データ階層に対応する階層を形成するように、上記複数のネットワーク・エンティティ間に形成される上記仮想コネクションを定めることを特徴とするメッセージング・システム。
【請求項２】
上記データ階層が拡張マーク・アップ言語（”ＸＭＬ”）で構築されることを特徴とする請求項１記載のメッセージング・システム。
【請求項３】
上記複数のネットワーク・エンティティは、更にデータを配信するか又は問い合わせを行うために一時的に上記ネットワークに加入して動作可能なゲスト・エンティティを含むことを特徴とする請求項１記載のメッセージング・システム。
【請求項４】
エンティティ間に形成される上記仮想コネクションが最上位レベルコネクション、親層コネクション又は最も近い層コネクションとなり得ることを特徴とする請求項１記載のメッセージング・システム。
【請求項５】
発行及び配信予約動作は、仮想コネクションの全階層を横断することを特徴とする請求項４記載のメッセージング・システム。
【請求項６】
仮想コネクションの上記階層中のネットワーク・エンティティを迂回するためにデータが最も近い層コネクションを通過することを特徴とする請求項４記載のメッセージング・システム。
【請求項７】
上記ネットワークが１つ以上のサブ・ネットワークを含み、そのデータ階層がデータをそれと関係のあるネットワークの一部分とするように振舞うことを特徴とする請求項１記載のメッセージング・システム。
【請求項８】
各ネットワーク・エンティティがデータ持続時間設定を有することを特徴とする請求項１記載のメッセージング・システム。
【請求項９】
上記持続時間設定が、フル、キャシュ及び無しから構成されるグループから選択されることを特徴とする請求項８記載のメッセージング・システム。
【請求項１０】
コンピュータ・ネットワーク内の複数ネットワーク・エンティティの間にメッセージング階層を形成する方法であって、
上記ネットワーク内の最初のエンティティが上記ネットワークに加入するときに親層エンティティを特定することと、
上記最初のエンティティについての発行／配信予約情報を上記親層エンティティに送信することと、
親層エンティティからの発行／配信予約情報を、メッセージング階層内で上記親層エンティティより上位のエンティティと、親層エンティティの発行／配信予約情報の発行入力情報に対応するデータを配信予約した上記親層エンティティより下位のエンティティとに送信することとを具え、
上記メッセージング階層が、エンティティ間で交換される上記発行／配信予約情報に応じて、上記ネットワーク・エンティティ間の仮想コネクションによって形成されると共に、上記メッセージング階層のために定義されたデータ階層に対応することを特長とするメッセージング階層形成方法。
【請求項１１】
上記データ階層が拡張マーク・アップ言語（”ＸＭＬ”）を用いて構築されることを特徴とする請求項１０記載の方法。
【請求項１２】
上記複数のネットワーク・エンティティが、発行エンティティ、配信予約エンティティ及びゲスト・エンティティとして振る舞い、発行エンティティはメッセージング階層にデータを供給し、配信予約エンティティは発行エンティティからのデータを受信し、ゲスト・エンティティは一時的に上記ネットワークに加入してデータを配信するか又は問い合わせを行うように動作可能なことを特徴とする請求項１０記載の方法。
【請求項１３】
エンティティ間に形成される上記仮想コネクションは、最上位レベルコネクション、親層コネクション又は最も近い層コネクションとなり得ることを特徴とする請求項１０記載の方法。
【請求項１４】
発行及び配信予約動作は、仮想コネクションの全階層を横断することを特徴とする請求項１３記載の方法。
【請求項１５】
仮想コネクションの上記階層中のネットワーク・エンティティを迂回するためにデータが最も近い層コネクションを通過することを特徴とする請求項１３記載の方法。
【請求項１６】
各ネットワーク・エンティティがデータ持続時間設定を有することを特徴とする請求項１０記載の方法。
【請求項１７】
コンピュータ・ネットワーク内のネットワーク・エンティティ、メッセージング階層のネットワーク・エンティティ部分における配信予約フローの方法であって、
ネットワーク内の他のエンティティから配信予約情報を受けることと、
上記配信予約情報及び関係するコネクション情報を保持することと、
上記ネットワーク・エンティティが親層を持つと判断されたときに上記配信予約情報を親層に供給することと、
上記配信予約情報に対応するデータを供給する下位層エンティティの夫々に配信予約情報を供給することと
を具える配信予約フローの方法。
【請求項１８】
上記親層コネクション及び下位層コネクションがメッセージング階層のためのデータ階層を基礎として確立されることを特徴とする請求項１７記載の方法。
【請求項１９】
上記配信予約情報の範囲が既存の配信予約入力情報の範囲より広いか判断することを更に具える請求項１７記載の方法。
【請求項２０】
上記ネットワーク・エンティティがデータ持続時間設定を含むことを特徴とする請求項１７記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願に記述したコンセプトは、データ及び電気通信（telecommunication）ネットワークに関し、特に分散型通信システムにおける要素間の相互通信に関する。
【発明の背景】
【０００２】
分散型コンピュータ・システムは、かなりの時間を様々なシステム・エンティティ（entities）間のデータ通信に費やしている。これらエンティティは、物理的には共同で設置されていたり、いなかったりする。従来、１対１型（point-to-point：ポイント・ツー・ポイント）接続形態（topology：トポロジー）と仲介装置型（mediator）接続形態という２つの異なるアプローチがシステム要素間の情報交換に利用されている。図１Ａは、１対１型ネットワーク接続形態１００の一例を示す。各エンティティ１０１は、他の全てのエンティティと直接通信するリンクを有する。中央ディレクトリ・サーバ１０２は、接続を確立するにあたって、目的のポイントを特定するために使用される。ネットワーク中の要素数が多過ぎるか、異種のネットワーク接続形態を相互接続しようとすると、多くの場合、物理的に１対１型通信は不可能で、これが１対１型通信の妨げとなっている。
【０００３】
図１Ｂは、仲介装置型（つまり、プロキシー：Proxy）ネットワーク接続形態１０５の一例を示し、これは種々のネットワーク要素１０６が互いに物理的なアクセスを持たない形で使用される。その代わり、中央ディレクトリ・サーバ１０８の助けを借りて、全てのメッセージング（messaging）は、ディレクトリ機能も含めて、サーバ１０７を介して流れる。
【０００４】
これらネットワーク接続形態の形式は、どちらもデータを運ぶメッセージングがデータを処理する特定のアプリケーション用にカスタマイズされていることが要求される。この結果、潜在的に大きな再設計（re-engineering）なしでは、新しい要素又はアプリケーションを導入できない柔軟性のないシステムとなってしまう。更に、どちらのシステムも１つ以上のディレクトリ・サーバを必要とし、これは各ネットワーク要素の位置とサービスを登録することが要求される。他のネットワーク要素は、そのディレクトリに所望の要素又はサービスを見つけるよう問い合わせなければならない。もしディレクトリ・サーバが利用できないと、そのネットワークは機能しなくなる。
【０００５】
地理的に分散されたシステムでは、相互通信の問題が増幅されることがある。例えば、通信ネットワーク中の装置を監視するため、いくつかの要素を別々のブレード（blade）上で物理的にできるだけ近づけることはできるが、同じネットワーク・モニター又はプローブ内である。そのシステムの他の要素が、どこか第３者のネットワーク上にあるということもあり得るし、地球の裏側ということさえあり得る。これら要素のそれぞれは、他のネットワークの要素と相互通信する必要がある。図１Ａ及び図１Ｂに描いた今日の解決方法では、工業規格の複数のネットワーク・プロトコルを、プロトコルの最上位（top）上の専用メッセージングとともに、単に組み合わせたものでしかない。
【０００６】
しかし、ネットワークの異なる複数のセクション、つまり、ネットワーク内の異なる要素は、異なるプロトコルを使いたいもので、メッセージの異なるセット（組）を必要とする。こうした現実は、現在のメッセージング・システムを拡張して、これら種類のメッセージも受ける必要があるシステムに新しい機能又は新しい要素を追加することを難しくしている。結果として、多くのネットワークが、特定ネットワークの実装及び装置に合わせて設計された複数アプリケーション間のハード・コーディングされた（hard coded）メッセージング・プロトコルに行き着いている。
【発明の抄録】
【０００７】
ここに示すコンセプトでは、ネットワークで使用するメッセージング・システムを記述し、ここではメッセージング・システムが複数のネットワーク・エンティティを含んでいる。複数のネットワーク・エンティティは、発行エンティティと配信予約エンティティを含み、発行エンティティは配信予約エンティティが必要とするデータを持っている。メッセージング・システムも、また、発行エンティティと配信予約エンティティの間で交換されるデータに適用されるデータ階層を含んでおり、このとき、データ階層は、エンティティ間で交換される発行及び配信予約要求に応じて、ネットワーク・エンティティ間に確立される仮想コネクションが、データ階層に対応する階層を形成するように、ネットワーク・エンティティ間に形成される仮想コネクションを定める。
【０００８】
他の実施形態として、コンピュータ・ネットワーク内の複数のネットワーク・エンティティ間にメッセージング階層を形成する方法が記述され、この方法は、ネットワークの最初のエンティティが、ネットワークに加入するときに親層を特定することを含む。この方法は、また、最初のエンティティについての発行／配信予約情報を親層エンティティに送信することと共に、メッセージング階層中の親層エンティティより上位のエンティティと、親層エンティティの発行／配信予約情報に入力された発行情報に対応するデータを配信予約した親層エンティティより下位のエンティティとに、その親層エンティティからの発行／配信予約情報を伝えることを含んでいる。この方法のメッセージング階層は、エンティティ間で交換される発行／配信予約情報に応じてネットワーク・エンティティ間の仮想コネクションによって形成されると共に、メッセージング階層用に定義されるデータ階層に対応する。
【０００９】
更に他の実施形態として、１つのネットワーク・エンティティ内で配信予約フローを実行する方法が記述され、ここでネットワーク・エンティティとは、コンピュータ・ネットワーク内のメッセージング階層の一部分である。この方法は、配信予約情報をネットワーク中の他のエンティティから受け、その配信予約情報と関係するコネクション情報を保持することを含む。この方法は、更に、ネットワーク・エンティティが親層を持っていると判断されたときに、その配信予約情報を親層に供給することと共に、配信予約情報に対応するデータを供給するより下位の層の各エンティティに配信予約情報を供給することを含む。
【００１０】
上述は、以下の発明の詳細な記述をより良い理解のための本発明の特徴及び技術的効果のかなり大雑把な概要である。発明の更なる特徴及び効果は、これ以降に記述し、これらは発明の特許請求の範囲の主題を形成する。当業者であれば、開示される概念及び特定の実施形態を基礎にして、本発明と同じ目的を実行するために、改変したり、他の構成を設計することが容易に実現できることを理解するであろう。また、当業者であれば、付属の特許請求の範囲で説明される発明の精神及び範囲から離れることなく、等価な構造を実現できるであろう。その構造（organization）及び動作方法の両方に関する本発明を特徴づけると思われる新規な特徴は、付属の図面と合わせて考慮することにより、更なる目的及び効果と共に、以下の記載からより良く理解できるであろう。しかし、各図面は、図解及び記述を目的として提供されたもので、本発明の限界を定義するものでないことを明確に理解すべきだろう。
【発明の詳細な説明】
【００１１】
異種のネットワーク・プロトコル及びネットワーク要素による分散型ネットワーク中の要素間のメッセージング用に、より効率良く且つ柔軟な仕組みを提供するため、ここで記載するコンセプトは、特定のネットワーク・プロトコルや物理的なネットワーク接続形態に関係なく、地理的に分散されたネットワークに渡って動作可能な堅牢な階層型メッセージング・スキームを提供する。更に、ここで記載するこれらコンセプトは、任意のデータ源の登録及び所在特定（location）を一時的及び分散されたやり方によって容易にしつつ、データ・セットに対する柔軟な変更が可能でありながら、親ネットワーク要素はそれら変更に全く影響されないようにできる。
【００１２】
ここで記述するように、メッシング・システムの実施形態の階層構造の性質のために、メッセージング・システム又はネットワークの動作に何の影響も与えることなく、ネットワークに対してネットワーク要素及びエンティティ（entities）を自由に追加又は削除できる。このメッセージング・システムの好ましい実施形態によれば、そのアーキテクチャ（設計仕様）は、３種類のシステム・エンティティを含む。これらは、発行体（Publisher）、配信予約体（Subscriber）及びゲストである。発行体は、ネットワーク中の他の要素が必要とするか使用するであろうデータを発行するネットワーク・エンティティである。発行体のエンティティは、配信予約又は問い合わせを通じた要求に応じて、更新情報（update）、つまり、新しいデータを押し出す。配信予約体は、特定の発行情報の最新版を受けたいという通知を要求するネットワーク・エンティティである。配信予約体は、これら最新情報を、親の層又は同レベルの層から受ける。ゲスト・エンティティは、ネットワーク中に短時間だけ現れるエンティティで、通常、データ階層のわずかな部分に対して問い合わせ又は更新を行う。これらエンティティは、１つの種類に限定されない。１つのエンティティが、ネットワーク内において、ネットワークにデータを発行したり、他のエンティティにデータの配信予約をしたり、と両方を行っても良い。この場合、発行及び配信予約されたデータの範囲は、重なっても良いし、重ならなくても良い。更に、親又は最上位（top）層における各エンティティは、下位のエンティティの全ての発行及び配信予約を認知していなければならない。
【００１３】
システムの階層構造の特質によって、複数のエンティティは、集合的なネットワークに、その関心事を単に通知するだけで、システムに入ったり、システムから離れたりできる。例えば、ある１つのエンティティが、ネットワークに（その親を介して）データ階層の特定部分に関心があると通知でき、加えて、いずれかのデータが変化したときに、ネットワークに（その親を介して）それを知らせるように要求できる。同様に、ある１つのエンティティが、データ階層構造の特定部分を発行していることをネットワークに通知でき、加えて、そのデータに関心のある複数のエンティティを教えてくれるようネットワークに要求できる。結果として発行及び配信予約は、木のような階層中を横断し、メッセージング・システムは、階層中のあるエンティティがある情報を供給し、他のエンティティがその情報を消費すると判断する。
【００１４】
本発明のメッセージング・システムを説明する目的で、通信ネットワーク、つまり、より具体的には、通信ネットワークを監視する複数のエンティティからなるネットワークについて言及する一方で、このメッセージング・システムは、どの種類のネットワークにおいても使用可能で、ここに記述したコンセプトを例示するものである。更に、ここに記載したコンセプトによるメッセージング・システムは、複数の独立したサブ・ネットワークから構成されるネットワーク内の複数のサブ・ネットワーク内でも使用できる。サブ・ネットワークの一例としては、テクトロニクス社から出ているジオ・プローブ（Geo Probe）のようなネットワーク監視プローブ内の構成要素（components）があり、プローブの構成要素は本発明のメッセージング・システムに従って通信（コミュニケーション）を行う。加えて、監視システムの複数プローブ及び他の構成要素は、ここに記述するメッセージング・システムによって互いに連絡しあうことで、各エンティティがネットワーク内の情報を共有できる。共有される情報としては、デバイスに送られる設定（configuration）情報、ネットワークを監視するのに使用されるデバイスによって収集されたデータ、ネットワーク内のエンティティによってコンパイルされたデータ又は統計資料の集合体、ネットワーク内のエンティティに命令するための制御情報、ネットワーク中の個々のエンティティ又はネットワーク自身に有益なその他のデータとしても良い。
【００１５】
データ階層及びネットワーク階層の組み合わせは、ここに記述するコンセプトに従って、ここに記述するメッセージング・システムを使うことにより、ネットワークの組織化及び動作を容易に行えるようにする。言い換えると、データ階層中の位置が、その情報がネットワーク中でどこに存在し、どこに渡っていくかを物理的に定める。
【００１６】
データ階層は、階層型マーク・アップ言語を用いて構築されるのが好ましく、これはＸＭＬとしても良い。階層型言語、ＸＭＬで表されたデータは、ネットワーク又はサブ・ネットワークの階層に対応するようにフォーマットできるので、ネットワーク自身をここに記述したメッセージング・システムを通して送られるデータに対応した階層に組織化できる。更に、ＸＭＬのようなオープンな階層型言語を用いることで、メッセージング・システムは、基礎となるネットワーク・プロトコルに依存しなくなり、異なるプロトコルを採用する複数のネットワークを横断できる。
【００１７】
ここで図２を参照すると、ここに記述したコンセプトに沿った階層設定２００が示されている。階層構造では、その性質によって、構造の最下部にあるエンティティは、自身の機能及びネットワーク中で最も近いエンティティの位置以外については、極わずかなことしか分からないことを意味し、これは典型的には親エンティティのことに限られる。エンティティ２０１、２０２及び２０３は、階層の最下部にあり、ネットワーク中の近くにあるデバイスへの自身のつながりを知っている。エンティティ２０４、２０５及び２０６のようなネットワーク中でより高い位置にあるエンティティは、それらに発行データの配信予約をレポートするネットワーク中でより低い位置のエンティティを持ち、また、発行データと配信予約をレポートするネットワーク中でより高い位置のエンティティを持つ。親層を特定する仕組みでは、より高い層のエンティティが供給する情報と、エンティティが利用するデータのサブセット（部分集合）に関するアプリケーションが供給する情報とを使用できる。この結果、エンティティのコネクション（つながり）の階層構造が、データの階層それ自身におおよそ従ったものとなる。
【００１８】
エンティティ２０７のようにエンティティが階層中でより高い位置にあれば、周知のように、システムに加わるどの下位の層も簡単に位置を特定できる。図２の例では、エンティティ２０７は最も高い位置のエンティティとして示されるが、エンティティ２０４及び２０５も、それらの特定のサブ・ネットワークについては、階層の最も高い点と考えることができる。好ましい実施形態では、最上位層（top-tier）コネクション２０８のようなより高いレベルの層へのコネクション（つながり）は、低いエンティティによって、親層コネクション２１０や最も近いコネクション２０９のような、親層コネクションを見つけたりや最も近いコネクションを見つけるのにさえ一時的に使用される。最上位層コネクション２０８に示されるように、最上位レベル層コネクションは、文字通りに階層の一番上へのコネクションでないこともあるが、より大きなネットワークへの通信経路であるサブ・ネットワークの最上位レベルへのコネクションであったりする。最上位層及び親層の肩書きは、複数エンティティ間の関係に言及したもので、エンティティそれ自身について言及したものではない。ある特定のエンティティが、他のエンティティからなるサブ・ネットワークの最上位層にあるとしても、それ自身もネットワーク中のより高い他のエンティティへの最上位層コネクションを持っているかもしれない。同じ関係は、親層コネクション及び最も近い層へのコネクションについても当てはまる。
【００１９】
システムを通したデータの待ち時間及び不要な転送を最小にするため、配信予約及び発行処理の好ましい実施形態では、更新情報（updates）及び問い合わせの要求／応答の転送に最も近い層と共に、チャンネル又は仮想チャンネルを特定及び確立するために経路の最適化を行う。ネットワーク接続形態及び物理的なアクセス次第では、あるデータ発行体とそのデータの配信予約体との間に、直接のコネクションが常には存在しないかもしれない。以下でより詳細に記述するが、階層の重複する部分において複数の発行体又は配信予約体がある場合には、最も近いコネクションの決定は些細なことではない。ここでは、最も近い層チャンネルの経路内に共通のルーティング（routing）点が配置されるように、階層が自身を調整できることが必要というのも本当である。
【００２０】
上述した経路の最適化は、ネットワークを介したデータ転送が利用される更新及び問い合わせ動作のみに適用すべきである。経路確立動作それ自身（配信予約、発行、受取停止、発行停止の動作）は、階層を確実に完全に認識するよう、全ての階層型経路に従うようにすべきである。
【００２１】
最も近い層コネクションを使おうとする試みから示唆されるように、データ階層全体中に、階層内のエンティティの限定されたサブセット（subset：部分集合）に関連する重要部分があることがある。例えば、ここに記述したコンセプトによるメッセージング・システムが、もし通信ネットワーク中で使用された場合、特に、その通信ネットワークの監視に使用される監視ネットワーク内で使用された場合には、ネットワーク内のプローブに関係するデータは、プローブの外のエンティティには何の関連も持たないかもしれないが、データの種々の側面がプローブ自身内の異なるエンティティによって利用されるかもしれない。
【００２２】
このデータの局所性の一例が、図３に示すデータ階層中に描かれている。図３は、データ階層のアプリケーションをネットワークの特定部分、つまり、ThingsWithThreeLettersに限定するルート定義を有するデータ階層の例を示し、これはデータ階層内のルート定義で設定される。この情報によって外部のエンティティに負荷を掛けるのを避けるため、各エンティティはデータ情報について局所性を定義できる。ThingsWithThreeLettersサブ・ネットワーク内のデータは、関係情報を利用できる一方で、このサブ・ネットワーク外のものには、その動作によって負荷がかかることはなく、データはサブ・ネットワークの外とは何の関係も持たない。図３のデータ階層の例では、示すように、メッセージング・システムがルート・レベルで情報をブロックでき、これは、例えば、ネットワーク監視プローブの構造としても良く、これによって、情報がプローブから出て行くのを防ぎ、その結果、プローブの外部のネットワークの階層中に行かないようにする。これによって、システムは、データが関連を持つネットワークのサブセット内に情報を収容できる。同様にネットワークの一部分にのみ関連を持つデータが、その情報を使用しないサブ・ネットワークに入り込むのをブロックできる。
【００２３】
不要な情報の流れを防ぐためのデータ局所性の定義に加えて、古い又は状態（state）データがネットワーク内で循環したり、エンティティに留まってリソース（資源）を消費しないように、エンティティ又はデータに持続時間（persistence）レベルを指定できる。ここに記載するコンセプトによるメッセージング・システムの好ましい実施形態では、３レベルのデータ持続時間を持つことができる。エンティティにフル（full）持続時間を指定しても良い。フル持続時間機能では、典型的には、階層の直接及び間接の両配信予約の全配信予約情報を、ディスクのような不揮発性記憶媒体に保存する。
【００２４】
エンティティには、キャッシュ（cache）型持続時間を指定しても良い。これらエンティティは、階層の配信予約した部分をキャッシュ（一時保持）するのに使用するプロキシ型メカニズムを提供し、エンティティが受けるキャッシュした情報に関する問い合わせへの結果を提供する。ある情報についてフル持続時間を有するエンティティも、他の及びデータに対してキャッシュの如く振る舞うことができる。持続時間のないエンティティは、階層中で情報を運ぶための単なる通過経路として振る舞う。
【００２５】
図４を参照すると、ここに記載するコンセプトに従ったデータ階層及びネットワーク階層を用いたメッセージング階層の一例を示す。具体的には、図４はメッセージング・システムの動作の一例を描いたもので、データ階層中に保持されるＡ、Ａ１及びＡ２で示されるような情報が複数デバイスのネットワーク階層を形成し、これがデータ階層中で配信予約するデータ又は発行するデータを探す。図４の例では、ネットワーク４００がエンティティＥ６を含み、これがＡで始まる構成要素の更新情報の供給を必要としている。ここで、Ａは実際にはデータ階層中の表記法である。’Ａ’は、データRoot/ThingsWithThreeLettersの階層中のＸＭＬストリング（String：文字列）を表す。エンティティＥ３及びＥ５は、データＡ１及びＡ２を夫々発行する。Ａ１は、データ Root/ThingsWithThreeLetters/ABCを表し、一方、A２は、データ Root/ThingsWithThreeLetters/XYZを表す。
【００２６】
エンティティＥ６が必要なデータをエンティティＥ３及びＥ５から受け取ることを可能にするネットワーク階層を作るためには、複数デバイスの夫々の間の複数の経路がネットワーク中に形成されなければならない。ここに記述したメッセージング・システムを用いて、こうした種類の相互コネクションをどのように形成できるかを説明するため、図４のエンティティと、結果として図４に示すコネクション（接続関係）となる例の時系列での説明に言及する。特定の順序で記述するが、ここに記載するコンセプトの主旨の範囲内で、これらイベントのどれもが、どのような順序でも起こりえるし、結果として階層が得られる。
【００２７】
エンティティＥ１は、ネットワーク４００に加入する最初のエンティティである。エンティティＥ１は、この例では最初なので、コネクションや関係は何も存在しない。次に、エンティティＥ４がシステムに加入する。エンティティＥ４は、加入に際し、エンティティＥ１をその親層として特定する必要があることを知っている。続いて、エンティティＥ５がシステムに加入し、これもまたエンティティＥ１をその最上位層として探すことを知っている。エンティティＥ５がエンティティＥ１を最上位層として特定（locate）した後、エンティティＥ４の所在地情報が親層として与えられ、そのエンティティＥ１へのコネクションが分解される。エンティティＥ５は、続いて、データＡ２を発行することをエンティティＥ４に知らせ、この時点でエンティティＥ４は階層中のその次の上のエンティティであるエンティティＥ１に知らせ、データＡ２を発行する。
【００２８】
次に、エンティティＥ６がネットワークに加入し、エンティティＥ４を親／最上位層として特定し、コンテンツ（Content：内容）Ａを配信予約する必要があることをエンティティＥ４に通知する。そして、エンティティＥ４は、エンティティＥ１及びＥ５にコンテンツＡについて配信予約を要求する。Ｅ５に通知されるのは、Ｅ５がＡの一部分、つまり、Ａ２を発行することをＥ４が知っているからである。この最初の配信予約要求を受けると、エンティティＥ５は、データＡ２の現在の状態をエンティティＥ６に送信する。それから、エンティティＥ２が加入し、エンティティＥ１を親層として特定し、エンティティＥ３が加入して最終的にエンティティＥ２を親層として特定する。それからエンティティＥ３はエンティティＥ２にコンテツＡ１を発行することを通知し、エンティティＥ２はこの発行情報を上の層のエンティティＥ１に渡す。エンティティＥ１は、エンティティＥ６の配信予約の結果として、Ａの配信予約をしているので、エンティティＥ１はエンティティＥ２に配信予約を要求し、エンティティＥ２はこの配信予約要求をエンティティＥ３に渡す。配信予約要求を受けると、エンティティＥ３は現在のコンテンツＡ１を送信し、これはエンティティＥ２及びＥ１を通って上に登り、それからエンティティＥ４を通ってエンティティＥ６に下る。
【００２９】
図４に示す現状の階層が一度定まったら、Ａ１及びＡ２を含むＡの更新情報は、自然と処理される。例えば、もしエンティティＥ３がコンテンツＡ１を変更する必要があるか又は変更する場合には、エンティティＥ２の配信予約があるために、エンティティＥ３はエンティティＥ２に通知し、エンティティＥ２は、エンティティＥ１の配信予約があるために、エンティティＥ１に通知する。それからエンティティＥ１はエンティティＥ４に通知し、エンティティＥ４はエンティティＥ６に通知する。同様に、エンティティＥ５がコンテンツＡ２を変更する場合は、エンティティＥ５はエンティティＥ４に通知し、エンティティＥ４はエンティティＥ１及びＥ６に通知する。各デバイスの発行／配信予約状態（status）を、このように簡単に認識できるので、エンティティＥ６は、コンテンツＡの全てを、最初に発行されたとき又は更新されたときに受けられる。
【００３０】
親又は最も近い層へのコネクションを確立するエンティティに関しては、エンティティはその親又は最も近い層デバイスに物理的なコネクション（つながり）がなくてはならない。エンティティは、デバイスに連絡を取る（contact）ためのＴＣＰポート及びＩＰアドレスを知る必要があるか、又は、これらを知るための十分な情報が与えられるであろう。特定のコネクションを確立する処理の一部分には、階層中で他のエンティティから連絡を取られる複数のエンティティが、代替のデバイスについてのデータ・アドレス及びポートを供給し、連絡を取ろうとするデバイスにその新しいエンティティをその親層又は場合によっては最も近い層として使うことを告げることを含めても良い。これは、図４の例に示されており、エンティティＥ５は、最初にエンティティＥ１に連絡を取るが、エンティティＥ１にエンティティＥ４をその親層として使うように言われる。Ｅ１へのコネクションは絶たれ、エンティティＥ５はエンティティＥ４に連絡を取って、これとのコネクションを確立したのである。
【００３１】
図４の階層の例を検討する中で見られたように、階層中の各エンティティは、各エンティティよりも下位のものの発行及び配信予約状態を知っている。ネットワーク例の中でのルート・エンティティとしてのエンティティＥ１は、ネットワーク中の各エンティティについての全ての配信予約及び発行情報を保持する。記述した設定動作は、典型的にはあまりない動作であるが、更新されたコンテンツの送信はもっと頻繁にある動作である。
【００３２】
問い合わせ（Queries）は、新しい配信予約と同じ経路を流れ、階層を登り、そして発行しているエンティティ又は所望の情報をキャシュしている経路中の最初のエンティティにまた下る。しかし、配信予約と異なり、問い合わせは、配信予約要求と同じような階層中で持続するものでない一回限りの出来事である。
【００３３】
図４に関して記述した動作に見られるように、システム中の各エンティティは、コンテツを作るか又は使用する基礎となるアプリケーションとは独立に、コンテンツ又はデータ階層をルーティングする能力が等しくある。従って、各エンティティは、決定論的（deterministic）ルーティング・アルゴリズムに基づいて、”経路確立”を増殖（propagate）又は終了する能力がある。各エンティティは、データ階層それ自身と同じように構成された通信経路を特定するテーブルを保持する。階層中の各ノード（node：接続ポイント）又はツリー（Tree：木）は、１つ以上のコネクションが、そのノード及びそのノードより下のエンティティについて発行するデータ又はそのノード及びそのノードより下のエンティティについて配信予約するデータをオプションで特定できる。
【００３４】
システム中のどのエンティティの存続期間も変動する（dynamic：ダイナミック）ので、システム内のルーティングは、全体では、配信停止及び発行停止をサポートしていなければならない。これら動作は、それらに対応する以前のあらゆる発行又は配信予約動作を無効にするために用いられる。発行停止及び配信停止動作は、ルーティング・メカニズムにおけるエラーを防ぐため、これらと対応する発行及び配信予約動作と同一のパラメータを持っている。その通信経路は、対応する発行及び配信予約動作と同じ経路に沿っている。
【００３５】
ここに記述したデータ階層は、ネットワーク中のどのレベルにおいても存在できる。図４では、高いレベルのコンテンツ階層に関して記述したが、設定（configuration：コンフィギュレーション）情報や、送信又は伝達するニーズのあるリンク情報に関する階層であっても良い。例えば、監視ネットワーク中のプローブは、特定の配線及び配線上のタイム・スロットを物理的に監視するように、設定及び指示される必要があることがある。その他、設定においては、配信予約体の設定を定義する関係のない情報もあることがある。ここに記述したデータ階層では、データそれ自身も、個々のデバイス及びデバイスの位置と関係なく組織化できる。データ階層へのデータの組織化は、ネットワーク階層と組み合わされて、ルーティングとプロトコルを提供する。従って、時系列と関係なく、最初のエンティティは、前後して現れることができ、第２のエンティティは、リンク情報を配信予約したいと単に通知するだけで良い。物理的なネットワーク階層を通して、そしてまた、階層又はデータ自身を見ることを通して、これらエンティティは、この特定の情報を要求するエンティティの方向へ伝達する。これらエンティティに関する限り、２つのエンティティ間の物理的な伝送の特性は重要ではない。
【００３６】
図５を参照すると、各エンティティについての発行のフロー（流れ）の好ましい実施形態のフローチャートが記述されている。発行フロー５００は、エンティティが階層に加入するか、新しい発行情報が既存のエンティティに加わるか、階層中のエンティティが発行情報を階層中の他のエンティティから受け取るかのいずれかによって、発行情報を受けたときから始まる（処理５０１）。発行情報はコネクションから受信するが、処理５０２は、必要に応じて、発行情報が保持されると共に、そのコネクションと関係することを示す。それから処理５０３は、発行情報をその親層に伝達し、この時点で発行フロー５００は終了する。発行フロー５００は、発行情報がネットワーク中を伝搬するように、階層中の各エンティティによって繰り返される。
【００３７】
図６を参照すると、各エンティティについての配信予約のフロー（流れ）の好ましい実施形態のフローチャートが記述されている。配信予約フロー６００は、処理６０１で、配信予約情報をエンティティが受け取ったときに始まる。処理６０２では、配信予約範囲が、その関係するコネクションと共に保持される。処理６０３では、要求された範囲が既存の配信予約より狭いかどうか判断される。もしそうなら、この処理は終了する。もし要求範囲が既存の配信予約より狭くないなら、処理は処理６０４に進み、ここでは親層が階層中の高い位置に存在するかどうか判断する。もしそうなら、処理は処理６０５に進み、ここで配信予約を親層に伝達する。処理６０５で配信予約を親層に伝達した後、又は、もし処理６０４で親層がないと判断されたら、フローは処理６０６に進み、ここでフローはより低い各層が配信予約範囲の全て又は一部分を供給すると判断する。それからフローは、処理６０７に進み、ここでは、そのコネクションが配信予約を開始（initiate）するコネクションかどうか判断する。もし違えば、配信予約は処理６０８でその層に伝達され、その後、配信予約フローは終了する。もし処理６０７で、コネクションは、配信予約を開始するコネクションであると判断されれば、フローは終了する。
【００３８】
メッセージング・システムの目的の１つは、各エンティティが、活動するためにネットワークに関しては可能な限り知らなくてもすむようにすることである。従って、あるエンティティがネットワークにつながったときに、そのエンティティが知る必要がある唯一のことは、親層のエンティティと連絡を取り、その親層エンティティにそのエンティティの全ての配信予約及び発行情報を告げる必要があるということである。階層中には、親層エンティティの上にも他のエンティティがあるという事実は、加入しようとするエンティティには関係がない。しかし、エンティティが発行又は配信予約するかもしれないデータは、メガ・ビットのデータということもあり得るので、大きな容量のデータを階層中を通してルートまで上げて、また下ろしてと送信するのは大変効率が悪い。これを避けるため、可能性のあるエンティティは、その親層に加えて、最も近い層を定めても良い。
【００３９】
エンティティの発行及び配信予約体の対は、どれも物理的に互いにネットワークのアクセスがないよう配置することもできる。例えば、発行エンティティは、監視ネットワーク中の１つのプローブの深くに組み込まれたブレードとしても良く、配信予約エンティティはそのネットワークの別の部分の深くに組み込まれたブレードとしても良い。複数のエンティティは、最終的により大きなネットワークと通信する１つの経路を持つが、直接の一対一（point to point）経路はない。しかし、発行／配信予約エンティティに非常に近い２つのエンティティ間には経路があっても良く、これは階層全体を通過する経路よりも大幅に少ない飛距離となる。例えば、図４のネットワークを使い、Ｅ３からＥ２、Ｅ１、Ｅ４、そしてＥ６へと至る経路でデータを送るのに代えて、ネットワークにはＥ２及びＥ４がこれらの間に直接の通信経路を持つことを考える能力がある。この場合では、最も近い層の経路が、Ｅ３及びＥ６間にデータを通す目的でＥ２及びＥ４の間に確立される。図４に示すものより大きなネットワークでは、そのような近い層のコネクションで、ネットワークのデータ流通量を大幅に削減できる。最も近い層コネクションは、データ又はコンテツの通過にのみ利用し、配信予約、発行又は問い合わせ動作には利用しない。言い換えると、制御情報は階層を必要とする一方で、データ情報は最も近い層コネクションでありえる最良の経路を選択できる。
【００４０】
ここで記述したメッセージング・システム及びネットワークでは、エンティティ間のコミュニケーションは、好ましくは、メッセージング・フォーマットとしてデータを階層で表現したものを用いるストリーミング・プロトコルに対して行われる。ＴＣＰ／ＩＰは、多くの場合、プロトコルとして用いることができるが、もしＴＣＰ／ＩＰによる接続が利用できないなら、他の伝送メカニズムを用いても良い。選択された伝送メカニズムは、最上位層及び親層によって相互にサポートされ、またテキスト・データを送信できるべきである。どのようなデータの階層表現も用いることができるが、ＸＭＬは構成要素の階層の任意部分を伝送する通信の主流として好ましいフォーマットであり、構成の一部分を容易に変更することができる。構成要素の階層を作り上げる情報とメッセージそれ自身の両方は、好ましくはＸＭＬでフォーマットされる。
【００４１】
エンティティ間の通信には、好ましくは、ＳＯＡＰ（Simple Object Access Protocol）を用いるのが良く、これはＨＴＴＰの一番上でＸＭＬを可能にするプロトコルである。ＳＯＡＰは、任意の２つのエンティティ間で一対一（point to point）プロトコルとして働く。これは、普遍的なプロトコルで、プロトコル的に中立で、ＴＣＰ上や、他のオープンなトランスポート・プロトコル上、又は独自の（proprietary）トランスポート上でさえも動作する。
【００４２】
エンティティがシステムに加入するときには、コネクションを受け付けるためにＴＣＰ／ＩＰソケットをオプションで関連付け（bind）してもよいし、他のトランスポート・プロトコル用の互換性のある関連付けメカニズムを用いても良い。最上位レベル層のエンティティは、それらのソケットと周知のアドレス及びポートと関連付けなければならない。これによって、より低い層は、上位レベルの層との最初のコミュニケーションでそれらの親又は最も近い層を発見できて、より適切な層への問い合わせでき、そしてそれらの層と関連付けられたアドレスとコネクションとして再確立できる。
【００４３】
本発明及びその利点を詳細に説明してきたが、付属する特許請求の範囲で定義される発明の趣旨及び範囲から離れることなく、様々な変更、置換、修正が変更可能なことが理解されるであろう。さらには、本出願の範囲は、明細書に記載した処理、装置、製造過程、組成物、手段、方法及び工程の特定の実施形態に限定されるものではない。当業者であれば、本発明、処理、装置、製造過程、組成物、手段、方法及び工程の開示から、ここに記載した実施形態に対応するものと実質的に同じ機能又は実質的に同じ結果を実現する現在存在するか又は後に開発されるものを、本発明に従って用いることができることを容易に理解するであろう。従って、付属の特許請求の範囲は、そうした処理、装置、製造過程、組成物、手段、方法及び工程などを含めようとするものである。
【図面の簡単な説明】
【００４４】
【図１Ａ】図１Ａは、網の目型ネットワーク接続形態を描いたネットワーク図である。
【図１Ｂ】図１Ｂは、仲介装置型（mediator：メディエイタ）ネットワーク接続形態を描いたネットワーク図である。
【図２】図２は、ここに記載されたコンセプトに沿った階層型ネットワークを描いたネットワーク図である。
【図３】図３は、ここに記載したコンセプトによる階層型言語フォーマットを用いたデータ階層の実施例のイラストである。
【図４】図４は、ここに記載したコンセプトによる階層型ネットワークの一例のブロック図である。
【図５】図５は、ここに記載したコンセプトによるメッセージング・システム中のネットワーク・エンティティに対するpublicationの流れの実施例を示すフローチャートである。
【図６】図６は、ここに記載したコンセプトによるメッセージング・システム中のネットワーク・エンティティに対する配信予約の流れの実施例を示すフローチャートである。
【図１Ａ】
2009536416.tif 000003
【図１Ｂ】
2009536416.tif 000004
【図２】
2009536416.tif 000005
【図３】
2009536416.tif 000006
【図４】
2009536416.tif 000007
【図５】
2009536416.tif 000008
【図６】
2009536416.tif 000009
【手続補正書】
【提出日】平成21年2月2日(2009.2.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ネットワーク中で使用されるメッセージング・システムであって、
配信予約エンティティと、
該配信予約エンティティが必要とするデータを有する発行エンティティとを含む複数のネットワーク・エンティティと、
上記発行エンティティ及び上記配信予約エンティティ間で交換されるデータに適用されるデータ階層とを具え、
上記データ階層は、上記エンティティ間で交換される発行及び配信予約要求に応じて、ネットワーク・エンティティ間に確立される仮想コネクションが、上記データ階層に対応する階層を形成するように、上記複数のネットワーク・エンティティ間に形成される上記仮想コネクションを定めることを特徴とするメッセージング・システム。
【請求項２】
コンピュータ・ネットワーク内の複数ネットワーク・エンティティの間にメッセージング階層を形成する方法であって、
上記ネットワーク内の最初のエンティティが上記ネットワークに加入するときに親層エンティティを特定することと、
上記最初のエンティティについての発行／配信予約情報を上記親層エンティティに送信することと、
親層エンティティからの発行／配信予約情報を、メッセージング階層内で上記親層エンティティより上位のエンティティと、親層エンティティの発行／配信予約情報の発行入力情報に対応するデータを配信予約した上記親層エンティティより下位のエンティティとに送信することとを具え、
上記メッセージング階層が、エンティティ間で交換される上記発行／配信予約情報に応じて、上記ネットワーク・エンティティ間の仮想コネクションによって形成されると共に、上記メッセージング階層のために定義されたデータ階層に対応することを特長とするメッセージング階層形成方法。
【請求項３】
コンピュータ・ネットワーク内のネットワーク・エンティティ、メッセージング階層のネットワーク・エンティティ部分における配信予約フローの方法であって、
ネットワーク内の他のエンティティから配信予約情報を受けることと、
上記配信予約情報及び関係するコネクション情報を保持することと、
上記ネットワーク・エンティティが親層を持つと判断されたときに上記配信予約情報を親層に供給することと、
上記配信予約情報に対応するデータを供給する下位層エンティティの夫々に配信予約情報を供給することと
を具える配信予約フローの方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本願に記述したコンセプトは、データ及び電気通信（telecommunication）ネットワークに関し、特に分散型通信システムにおける要素間の相互通信に関する。
【発明の背景】
【０００２】
分散型コンピュータ・システムは、かなりの時間を様々なシステム・エンティティ（entities）間のデータ通信に費やしている。これらエンティティは、物理的には共同で設置されていたり、いなかったりする。従来、１対１型（point-to-point：ポイント・ツー・ポイント）接続形態（topology：トポロジー）と仲介装置型（mediator）接続形態という２つの異なるアプローチがシステム要素間の情報交換に利用されている。図１Ａは、１対１型ネットワーク接続形態１００の一例を示す。各エンティティ１０１は、他の全てのエンティティと直接通信するリンクを有する。中央ディレクトリ・サーバ１０２は、接続を確立するにあたって、目的のポイントを特定するために使用される。ネットワーク中の要素数が多過ぎるか、異種のネットワーク接続形態を相互接続しようとすると、多くの場合、物理的に１対１型通信は不可能で、これが１対１型通信の妨げとなっている。
【０００３】
図１Ｂは、仲介装置型（つまり、プロキシー：Proxy）ネットワーク接続形態１０５の一例を示し、これは種々のネットワーク要素１０６が互いに物理的なアクセスを持たない形で使用される。その代わり、中央ディレクトリ・サーバ１０８の助けを借りて、全てのメッセージング（messaging）は、ディレクトリ機能も含めて、サーバ１０７を介して流れる。
【０００４】
これらネットワーク接続形態の形式は、どちらもデータを運ぶメッセージングがデータを処理する特定のアプリケーション用にカスタマイズされていることが要求される。この結果、潜在的に大きな再設計（re-engineering）なしでは、新しい要素又はアプリケーションを導入できない柔軟性のないシステムとなってしまう。更に、どちらのシステムも１つ以上のディレクトリ・サーバを必要とし、これは各ネットワーク要素の位置とサービスを登録することが要求される。他のネットワーク要素は、そのディレクトリに所望の要素又はサービスを見つけるよう問い合わせなければならない。もしディレクトリ・サーバが利用できないと、そのネットワークは機能しなくなる。
【０００５】
地理的に分散されたシステムでは、相互通信の問題が増幅されることがある。例えば、通信ネットワーク中の装置を監視するため、いくつかの要素を別々のブレード（blade）上で物理的にできるだけ近づけることはできるが、同じネットワーク・モニター又はプローブ内である。そのシステムの他の要素が、どこか第３者のネットワーク上にあるということもあり得るし、地球の裏側ということさえあり得る。これら要素のそれぞれは、他のネットワークの要素と相互通信する必要がある。図１Ａ及び１Ｂに描いた今日の解決方法では、工業規格の複数のネットワーク・プロトコルを、プロトコルの最上位（top）上の専用メッセージングとともに、単に組み合わせたものでしかない。
【０００６】
しかし、ネットワークの異なる複数のセクション、つまり、ネットワーク内の異なる要素は、異なるプロトコルを使いたいもので、メッセージの異なるセット（組）を必要とする。こうした現実は、現在のメッセージング・システムを拡張して、これら種類のメッセージも受ける必要があるシステムに新しい機能又は新しい要素を追加することを難しくしている。結果として、多くのネットワークが、特定ネットワークの実装及び装置に合わせて設計された複数アプリケーション間のハード・コーディングされた（hard coded）メッセージング・プロトコルに行き着いている。
【発明の抄録】
【０００７】
ここに示すコンセプトでは、ネットワークで使用するメッセージング・システムを記述し、ここではメッセージング・システムが複数のネットワーク・エンティティを含んでいる。複数のネットワーク・エンティティは、発行エンティティと配信予約エンティティを含み、発行エンティティは配信予約エンティティが必要とするデータを持っている。メッセージング・システムも、また、発行エンティティと配信予約エンティティの間で交換されるデータに適用されるデータ階層を含んでおり、このとき、データ階層は、エンティティ間で交換される発行及び配信予約要求に応じて、ネットワーク・エンティティ間に確立される仮想コネクションが、データ階層に対応する階層を形成するように、ネットワーク・エンティティ間に形成される仮想コネクションを定める。
【０００８】
他の実施形態として、コンピュータ・ネットワーク内の複数のネットワーク・エンティティ間にメッセージング階層を形成する方法が記述され、この方法は、ネットワークの最初のエンティティが、ネットワークに加入するときに親層を特定することを含む。この方法は、また、最初のエンティティについての発行／配信予約情報を親層エンティティに送信することと共に、メッセージング階層中の親層エンティティより上位のエンティティと、親層エンティティの発行／配信予約情報に入力された発行情報に対応するデータを配信予約した親層エンティティより下位のエンティティとに、その親層エンティティからの発行／配信予約情報を伝えることを含んでいる。この方法のメッセージング階層は、エンティティ間で交換される発行／配信予約情報に応じてネットワーク・エンティティ間の仮想コネクションによって形成されると共に、メッセージング階層用に定義されるデータ階層に対応する。
【０００９】
更に他の実施形態として、１つのネットワーク・エンティティ内で配信予約フローを実行する方法が記述され、ここでネットワーク・エンティティとは、コンピュータ・ネットワーク内のメッセージング階層の一部分である。この方法は、配信予約情報をネットワーク中の他のエンティティから受け、その配信予約情報と関係するコネクション情報を保持することを含む。この方法は、更に、ネットワーク・エンティティが親層を持っていると判断されたときに、その配信予約情報を親層に供給することと共に、配信予約情報に対応するデータを供給するより下位の層の各エンティティに配信予約情報を供給することを含む。
【００１０】
上述は、以下の発明の詳細な記述をより良い理解のための本発明の特徴及び技術的効果のかなり大雑把な概要である。発明の更なる特徴及び効果は、これ以降に記述し、これらは発明の特許請求の範囲の主題を形成する。当業者であれば、開示される概念及び特定の実施形態を基礎にして、本発明と同じ目的を実行するために、改変したり、他の構成を設計することが容易に実現できることを理解するであろう。また、当業者であれば、付属の特許請求の範囲で説明される発明の精神及び範囲から離れることなく、等価な構造を実現できるであろう。その構造（organization）及び動作方法の両方に関する本発明を特徴づけると思われる新規な特徴は、付属の図面と合わせて考慮することにより、更なる目的及び効果と共に、以下の記載からより良く理解できるであろう。しかし、各図面は、図解及び記述を目的として提供されたもので、本発明の限界を定義するものでないことを明確に理解すべきだろう。
【００１１】
よって、本発明の概念は、次のようになる。
（１）ネットワーク中で使用されるメッセージング・システムであって；配信予約エンティティと；該配信予約エンティティが必要とするデータを有する発行エンティティとを含む複数のネットワーク・エンティティと；上記発行エンティティ及び上記配信予約エンティティ間で交換されるデータに適用されるデータ階層とを具え；上記データ階層は、上記エンティティ間で交換される発行及び配信予約要求に応じて、ネットワーク・エンティティ間に確立される仮想コネクションが、上記データ階層に対応する階層を形成するように、上記複数のネットワーク・エンティティ間に形成される上記仮想コネクションを定めることを特徴とするメッセージング・システム。
（２）上記データ階層が拡張マーク・アップ言語（”ＸＭＬ”）で構築されることを特徴とする概念１記載のメッセージング・システム。
（３）上記複数のネットワーク・エンティティは、更にデータを配信するか又は問い合わせを行うために一時的に上記ネットワークに加入して動作可能なゲスト・エンティティを含むことを特徴とする概念１記載のメッセージング・システム。
（４）エンティティ間に形成される上記仮想コネクションが最上位レベルコネクション、親層コネクション又は最も近い層コネクションとなり得ることを特徴とする概念１記載のメッセージング・システム。
（５）発行及び配信予約動作は、仮想コネクションの全階層を横断することを特徴とする概念４記載のメッセージング・システム。
（６）仮想コネクションの上記階層中のネットワーク・エンティティを迂回するためにデータが最も近い層コネクションを通過することを特徴とする概念４記載のメッセージング・システム。
（７）上記ネットワークが１つ以上のサブ・ネットワークを含み、そのデータ階層がデータをそれと関係のあるネットワークの一部分とするように振舞うことを特徴とする概念１記載のメッセージング・システム。
（８）各ネットワーク・エンティティがデータ持続時間設定を有することを特徴とする概念１記載のメッセージング・システム。
（９）上記持続時間設定が、フル、キャシュ及び無しから構成されるグループから選択されることを特徴とする概念８記載のメッセージング・システム。
（１０）コンピュータ・ネットワーク内の複数ネットワーク・エンティティの間にメッセージング階層を形成する方法であって；上記ネットワーク内の最初のエンティティが上記ネットワークに加入するときに親層エンティティを特定することと；上記最初のエンティティについての発行／配信予約情報を上記親層エンティティに送信することと；親層エンティティからの発行／配信予約情報を、メッセージング階層内で上記親層エンティティより上位のエンティティと、親層エンティティの発行／配信予約情報の発行入力情報に対応するデータを配信予約した上記親層エンティティより下位のエンティティとに送信することとを具え；上記メッセージング階層が、エンティティ間で交換される上記発行／配信予約情報に応じて、上記ネットワーク・エンティティ間の仮想コネクションによって形成されると共に、上記メッセージング階層のために定義されたデータ階層に対応することを特長とするメッセージング階層形成方法。
（１１）上記データ階層が拡張マーク・アップ言語（”ＸＭＬ”）を用いて構築されることを特徴とする概念１０記載の方法。
（１２）上記複数のネットワーク・エンティティが、発行エンティティ、配信予約エンティティ及びゲスト・エンティティとして振る舞い、発行エンティティはメッセージング階層にデータを供給し、配信予約エンティティは発行エンティティからのデータを受信し、ゲスト・エンティティは一時的に上記ネットワークに加入してデータを配信するか又は問い合わせを行うように動作可能なことを特徴とする概念１０記載の方法。
（１３）エンティティ間に形成される上記仮想コネクションは、最上位レベルコネクション、親層コネクション又は最も近い層コネクションとなり得ることを特徴とする概念１０記載の方法。
（１４）発行及び配信予約動作は、仮想コネクションの全階層を横断することを特徴とする概念１３記載の方法。
（１５）仮想コネクションの上記階層中のネットワーク・エンティティを迂回するためにデータが最も近い層コネクションを通過することを特徴とする概念１３記載の方法。
（１６）各ネットワーク・エンティティがデータ持続時間設定を有することを特徴とする概念１０記載の方法。
（１７）コンピュータ・ネットワーク内のネットワーク・エンティティ、メッセージング階層のネットワーク・エンティティ部分における配信予約フローの方法であって；ネットワーク内の他のエンティティから配信予約情報を受けることと；上記配信予約情報及び関係するコネクション情報を保持することと；上記ネットワーク・エンティティが親層を持つと判断されたときに上記配信予約情報を親層に供給することと；上記配信予約情報に対応するデータを供給する下位層エンティティの夫々に配信予約情報を供給することとを具える配信予約フローの方法。
（１８）上記親層コネクション及び下位層コネクションがメッセージング階層のためのデータ階層を基礎として確立されることを特徴とする概念１７記載の方法。
（１９）上記配信予約情報の範囲が既存の配信予約入力情報の範囲より広いか判断することを更に具える概念１７記載の方法。
（２０）上記ネットワーク・エンティティがデータ持続時間設定を含むことを特徴とする概念１７記載の方法。
【発明の詳細な説明】
【００１２】
異種のネットワーク・プロトコル及びネットワーク要素による分散型ネットワーク中の要素間のメッセージング用に、より効率良く且つ柔軟な仕組みを提供するため、ここで記載するコンセプトは、特定のネットワーク・プロトコルや物理的なネットワーク接続形態に関係なく、地理的に分散されたネットワークに渡って動作可能な堅牢な階層型メッセージング・スキームを提供する。更に、ここで記載するこれらコンセプトは、任意のデータ源の登録及び所在特定（location）を一時的及び分散されたやり方によって容易にしつつ、データ・セットに対する柔軟な変更が可能でありながら、親ネットワーク要素はそれら変更に全く影響されないようにできる。
【００１３】
ここで記述するように、メッセージング・システムの実施形態の階層構造の性質のために、メッセージング・システム又はネットワークの動作に何の影響も与えることなく、ネットワークに対してネットワーク要素及びエンティティ（entities）を自由に追加又は削除できる。このメッセージング・システムの好ましい実施形態によれば、そのアーキテクチャ（設計仕様）は、３種類のシステム・エンティティを含む。これらは、発行体（Publisher）、配信予約体（Subscriber）及びゲストである。発行体は、ネットワーク中の他の要素が必要とするか使用するであろうデータを発行するネットワーク・エンティティである。発行体のエンティティは、配信予約又は問い合わせを通じた要求に応じて、更新情報（update）、つまり、新しいデータを押し出す。配信予約体は、特定の発行情報の最新版を受けたいという通知を要求するネットワーク・エンティティである。配信予約体は、これら最新情報を、親の層又は同レベルの層から受ける。ゲスト・エンティティは、ネットワーク中に短時間だけ現れるエンティティで、通常、データ階層のわずかな部分に対して問い合わせ又は更新を行う。これらエンティティは、１つの種類に限定されない。１つのエンティティが、ネットワーク内において、ネットワークにデータを発行したり、他のエンティティにデータの配信予約をしたり、と両方を行っても良い。この場合、発行及び配信予約されたデータの範囲は、重なっても良いし、重ならなくても良い。更に、親又は最上位（top）層における各エンティティは、下位のエンティティの全ての発行及び配信予約を認知していなければならない。
【００１４】
システムの階層構造の特質によって、複数のエンティティは、集合的なネットワークに、その関心事を単に通知するだけで、システムに入ったり、システムから離れたりできる。例えば、ある１つのエンティティが、ネットワークに（その親を介して）データ階層の特定部分に関心があると通知でき、加えて、いずれかのデータが変化したときに、ネットワークに（その親を介して）それを知らせるように要求できる。同様に、ある１つのエンティティが、データ階層構造の特定部分を発行していることをネットワークに通知でき、加えて、そのデータに関心のある複数のエンティティを教えてくれるようネットワークに要求できる。結果として発行及び配信予約は、木のような階層中を横断し、メッセージング・システムは、階層中のあるエンティティがある情報を供給し、他のエンティティがその情報を消費すると判断する。
【００１５】
本発明のメッセージング・システムを説明する目的で、通信ネットワーク、つまり、より具体的には、通信ネットワークを監視する複数のエンティティからなるネットワークについて言及する一方で、このメッセージング・システムは、どの種類のネットワークにおいても使用可能で、ここに記述したコンセプトを例示するものである。更に、ここに記載したコンセプトによるメッセージング・システムは、複数の独立したサブ・ネットワークから構成されるネットワーク内の複数のサブ・ネットワーク内でも使用できる。サブ・ネットワークの一例としては、テクトロニクス社から出ているジオ・プローブ（Geo Probe）のようなネットワーク監視プローブ内の構成要素（components）があり、プローブの構成要素は本発明のメッセージング・システムに従って通信（コミュニケーション）を行う。加えて、監視システムの複数プローブ及び他の構成要素は、ここに記述するメッセージング・システムによって互いに連絡しあうことで、各エンティティがネットワーク内の情報を共有できる。共有される情報としては、デバイスに送られる設定（configuration）情報、ネットワークを監視するのに使用されるデバイスによって収集されたデータ、ネットワーク内のエンティティによってコンパイルされたデータ又は統計資料の集合体、ネットワーク内のエンティティに命令するための制御情報、ネットワーク中の個々のエンティティ又はネットワーク自身に有益なその他のデータとしても良い。
【００１６】
データ階層及びネットワーク階層の組み合わせは、ここに記述するコンセプトに従って、ここに記述するメッセージング・システムを使うことにより、ネットワークの組織化及び動作を容易に行えるようにする。言い換えると、データ階層中の位置が、その情報がネットワーク中でどこに存在し、どこに渡っていくかを物理的に定める。
【００１７】
データ階層は、階層型マーク・アップ言語を用いて構築されるのが好ましく、これはＸＭＬとしても良い。階層型言語、ＸＭＬで表されたデータは、ネットワーク又はサブ・ネットワークの階層に対応するようにフォーマットできるので、ネットワーク自身をここに記述したメッセージング・システムを通して送られるデータに対応した階層に組織化できる。更に、ＸＭＬのようなオープンな階層型言語を用いることで、メッセージング・システムは、基礎となるネットワーク・プロトコルに依存しなくなり、異なるプロトコルを採用する複数のネットワークを横断できる。
【００１８】
ここで図２を参照すると、ここに記述したコンセプトに沿った階層設定２００が示されている。階層構造では、その性質によって、構造の最下部にあるエンティティは、自身の機能及びネットワーク中で最も近いエンティティの位置以外については、極わずかなことしか分からないことを意味し、これは典型的には親エンティティのことに限られる。エンティティ２０１、２０２及び２０３は、階層の最下部にあり、ネットワーク中の近くにあるデバイスへの自身のつながりを知っている。エンティティ２０４、２０５及び２０６のようなネットワーク中でより高い位置にあるエンティティは、それらに発行データの配信予約をレポートするネットワーク中でより低い位置のエンティティを持ち、また、発行データと配信予約をレポートするネットワーク中でより高い位置のエンティティを持つ。親層を特定する仕組みでは、より高い層のエンティティが供給する情報と、エンティティが利用するデータのサブセット（部分集合）に関するアプリケーションが供給する情報とを使用できる。この結果、エンティティのコネクション（つながり）の階層構造が、データの階層それ自身におおよそ従ったものとなる。
【００１９】
エンティティ２０７のようにエンティティが階層中でより高い位置にあれば、周知のように、システムに加わるどの下位の層も簡単に位置を特定できる。図２の例では、エンティティ２０７は最も高い位置のエンティティとして示されるが、エンティティ２０４及び２０５も、それらの特定のサブ・ネットワークについては、階層の最も高い点と考えることができる。好ましい実施形態では、最上位層（top-tier）コネクション２０８のようなより高いレベルの層へのコネクション（つながり）は、低いエンティティによって、親層コネクション２１０や最も近いコネクション２０９のような、親層コネクションを見つけたりや最も近いコネクションを見つけるのにさえ一時的に使用される。最上位層コネクション２０８に示されるように、最上位レベル層コネクションは、文字通りに階層の一番上へのコネクションでないこともあるが、より大きなネットワークへの通信経路であるサブ・ネットワークの最上位レベルへのコネクションであったりする。最上位層及び親層の肩書きは、複数エンティティ間の関係に言及したもので、エンティティそれ自身について言及したものではない。ある特定のエンティティが、他のエンティティからなるサブ・ネットワークの最上位層にあるとしても、それ自身もネットワーク中のより高い他のエンティティへの最上位層コネクションを持っているかもしれない。同じ関係は、親層コネクション及び最も近い層へのコネクションについても当てはまる。
【００２０】
システムを通したデータの待ち時間及び不要な転送を最小にするため、配信予約及び発行処理の好ましい実施形態では、更新情報（updates）及び問い合わせの要求／応答の転送に最も近い層と共に、チャンネル又は仮想チャンネルを特定及び確立するために経路の最適化を行う。ネットワーク接続形態及び物理的なアクセス次第では、あるデータ発行体とそのデータの配信予約体との間に、直接のコネクションが常には存在しないかもしれない。以下でより詳細に記述するが、階層の重複する部分において複数の発行体又は配信予約体がある場合には、最も近いコネクションの決定は些細なことではない。ここでは、最も近い層チャンネルの経路内に共通のルーティング（routing）点が配置されるように、階層が自身を調整できることが必要というのも本当である。
【００２１】
上述した経路の最適化は、ネットワークを介したデータ転送が利用される更新及び問い合わせ動作のみに適用すべきである。経路確立動作それ自身（配信予約、発行、受取停止、発行停止の動作）は、階層を確実に完全に認識するよう、全ての階層型経路に従うようにすべきである。
【００２２】
最も近い層コネクションを使おうとする試みから示唆されるように、データ階層全体中に、階層内のエンティティの限定されたサブセット（subset：部分集合）に関連する重要部分があることがある。例えば、ここに記述したコンセプトによるメッセージング・システムが、もし通信ネットワーク中で使用された場合、特に、その通信ネットワークの監視に使用される監視ネットワーク内で使用された場合には、ネットワーク内のプローブに関係するデータは、プローブの外のエンティティには何の関連も持たないかもしれないが、データの種々の側面がプローブ自身内の異なるエンティティによって利用されるかもしれない。
【００２３】
このデータの局所性の一例が、図３に示すデータ階層中に描かれている。図３は、データ階層のアプリケーションをネットワークの特定部分、つまり、ThingsWithThreeLettersに限定するルート定義を有するデータ階層の例を示し、これはデータ階層内のルート定義で設定される。この情報によって外部のエンティティに負荷を掛けるのを避けるため、各エンティティはデータ情報について局所性を定義できる。ThingsWithThreeLettersサブ・ネットワーク内のデータは、関係情報を利用できる一方で、このサブ・ネットワーク外のものには、その動作によって負荷がかかることはなく、データはサブ・ネットワークの外とは何の関係も持たない。図３のデータ階層の例では、示すように、メッセージング・システムがルート・レベルで情報をブロックでき、これは、例えば、ネットワーク監視プローブの構造としても良く、これによって、情報がプローブから出て行くのを防ぎ、その結果、プローブの外部のネットワークの階層中に行かないようにする。これによって、システムは、データが関連を持つネットワークのサブセット内に情報を収容できる。同様にネットワークの一部分にのみ関連を持つデータが、その情報を使用しないサブ・ネットワークに入り込むのをブロックできる。
【００２４】
不要な情報の流れを防ぐためのデータ局所性の定義に加えて、古い又は状態（state）データがネットワーク内で循環したり、エンティティに留まってリソース（資源）を消費しないように、エンティティ又はデータに持続時間（persistence）レベルを指定できる。ここに記載するコンセプトによるメッセージング・システムの好ましい実施形態では、３レベルのデータ持続時間を持つことができる。エンティティにフル（full）持続時間を指定しても良い。フル持続時間機能では、典型的には、階層の直接及び間接の両配信予約の全配信予約情報を、ディスクのような不揮発性記憶媒体に保存する。
【００２５】
エンティティには、キャッシュ（cache）型持続時間を指定しても良い。これらエンティティは、階層の配信予約した部分をキャッシュ（一時保持）するのに使用するプロキシ型メカニズムを提供し、エンティティが受けるキャッシュした情報に関する問い合わせへの結果を提供する。ある情報についてフル持続時間を有するエンティティも、他の及びデータに対してキャッシュの如く振る舞うことができる。持続時間のないエンティティは、階層中で情報を運ぶための単なる通過経路として振る舞う。
【００２６】
図４を参照すると、ここに記載するコンセプトに従ったデータ階層及びネットワーク階層を用いたメッセージング階層の一例を示す。具体的には、図４はメッセージング・システムの動作の一例を描いたもので、データ階層中に保持されるＡ、Ａ１及びＡ２で示されるような情報が複数デバイスのネットワーク階層を形成し、これがデータ階層中で配信予約するデータ又は発行するデータを探す。図４の例では、ネットワーク４００がエンティティＥ６を含み、これがＡで始まる構成要素の更新情報の供給を必要としている。ここで、Ａは実際にはデータ階層中の表記法である。’Ａ’は、データRoot/ThingsWithThreeLettersの階層中のＸＭＬストリング（String：文字列）を表す。エンティティＥ３及びＥ５は、データＡ１及びＡ２を夫々発行する。Ａ１は、データ Root/ThingsWithThreeLetters/ABCを表し、一方、A２は、データ Root/ThingsWithThreeLetters/XYZを表す。
【００２７】
エンティティＥ６が必要なデータをエンティティＥ３及びＥ５から受け取ることを可能にするネットワーク階層を作るためには、複数デバイスの夫々の間の複数の経路がネットワーク中に形成されなければならない。ここに記述したメッセージング・システムを用いて、こうした種類の相互コネクションをどのように形成できるかを説明するため、図４のエンティティと、結果として図４に示すコネクション（接続関係）となる例の時系列での説明に言及する。特定の順序で記述するが、ここに記載するコンセプトの主旨の範囲内で、これらイベントのどれもが、どのような順序でも起こりえるし、結果として階層が得られる。
【００２８】
エンティティＥ１は、ネットワーク４００に加入する最初のエンティティである。エンティティＥ１は、この例では最初なので、コネクションや関係は何も存在しない。次に、エンティティＥ４がシステムに加入する。エンティティＥ４は、加入に際し、エンティティＥ１をその親層として特定する必要があることを知っている。続いて、エンティティＥ５がシステムに加入し、これもまたエンティティＥ１をその最上位層として探すことを知っている。エンティティＥ５がエンティティＥ１を最上位層として特定（locate）した後、エンティティＥ４の所在地情報が親層として与えられ、そのエンティティＥ１へのコネクションが分解される。エンティティＥ５は、続いて、データＡ２を発行することをエンティティＥ４に知らせ、この時点でエンティティＥ４は階層中のその次の上のエンティティであるエンティティＥ１に知らせ、データＡ２を発行する。
【００２９】
次に、エンティティＥ６がネットワークに加入し、エンティティＥ４を親／最上位層として特定し、コンテンツ（Content：内容）Ａを配信予約する必要があることをエンティティＥ４に通知する。そして、エンティティＥ４は、エンティティＥ１及びＥ５にコンテンツＡについて配信予約を要求する。Ｅ５に通知されるのは、Ｅ５がＡの一部分、つまり、Ａ２を発行することをＥ４が知っているからである。この最初の配信予約要求を受けると、エンティティＥ５は、データＡ２の現在の状態をエンティティＥ６に送信する。それから、エンティティＥ２が加入し、エンティティＥ１を親層として特定し、エンティティＥ３が加入して最終的にエンティティＥ２を親層として特定する。それからエンティティＥ３はエンティティＥ２にコンテツＡ１を発行することを通知し、エンティティＥ２はこの発行情報を上の層のエンティティＥ１に渡す。エンティティＥ１は、エンティティＥ６の配信予約の結果として、Ａの配信予約をしているので、エンティティＥ１はエンティティＥ２に配信予約を要求し、エンティティＥ２はこの配信予約要求をエンティティＥ３に渡す。配信予約要求を受けると、エンティティＥ３は現在のコンテンツＡ１を送信し、これはエンティティＥ２及びＥ１を通って上に登り、それからエンティティＥ４を通ってエンティティＥ６に下る。
【００３０】
図４に示す現状の階層が一度定まったら、Ａ１及びＡ２を含むＡの更新情報は、自然と処理される。例えば、もしエンティティＥ３がコンテンツＡ１を変更する必要があるか又は変更する場合には、エンティティＥ２の配信予約があるために、エンティティＥ３はエンティティＥ２に通知し、エンティティＥ２は、エンティティＥ１の配信予約があるために、エンティティＥ１に通知する。それからエンティティＥ１はエンティティＥ４に通知し、エンティティＥ４はエンティティＥ６に通知する。同様に、エンティティＥ５がコンテンツＡ２を変更する場合は、エンティティＥ５はエンティティＥ４に通知し、エンティティＥ４はエンティティＥ１及びＥ６に通知する。各デバイスの発行／配信予約状態（status）を、このように簡単に認識できるので、エンティティＥ６は、コンテンツＡの全てを、最初に発行されたとき又は更新されたときに受けられる。
【００３１】
親又は最も近い層へのコネクションを確立するエンティティに関しては、エンティティはその親又は最も近い層デバイスに物理的なコネクション（つながり）がなくてはならない。エンティティは、デバイスに連絡を取る（contact）ためのＴＣＰポート及びＩＰアドレスを知る必要があるか、又は、これらを知るための十分な情報が与えられるであろう。特定のコネクションを確立する処理の一部分には、階層中で他のエンティティから連絡を取られる複数のエンティティが、代替のデバイスについてのデータ・アドレス及びポートを供給し、連絡を取ろうとするデバイスにその新しいエンティティをその親層又は場合によっては最も近い層として使うことを告げることを含めても良い。これは、図４の例に示されており、エンティティＥ５は、最初にエンティティＥ１に連絡を取るが、エンティティＥ１にエンティティＥ４をその親層として使うように言われる。Ｅ１へのコネクションは絶たれ、エンティティＥ５はエンティティＥ４に連絡を取って、これとのコネクションを確立したのである。
【００３２】
図４の階層の例を検討する中で見られたように、階層中の各エンティティは、各エンティティよりも下位のものの発行及び配信予約状態を知っている。ネットワーク例の中でのルート・エンティティとしてのエンティティＥ１は、ネットワーク中の各エンティティについての全ての配信予約及び発行情報を保持する。記述した設定動作は、典型的にはあまりない動作であるが、更新されたコンテンツの送信はもっと頻繁にある動作である。
【００３３】
問い合わせ（Queries）は、新しい配信予約と同じ経路を流れ、階層を登り、そして発行しているエンティティ又は所望の情報をキャシュしている経路中の最初のエンティティにまた下る。しかし、配信予約と異なり、問い合わせは、配信予約要求と同じような階層中で持続するものでない一回限りの出来事である。
【００３４】
図４に関して記述した動作に見られるように、システム中の各エンティティは、コンテツを作るか又は使用する基礎となるアプリケーションとは独立に、コンテンツ又はデータ階層をルーティングする能力が等しくある。従って、各エンティティは、決定論的（deterministic）ルーティング・アルゴリズムに基づいて、”経路確立”を増殖（propagate）又は終了する能力がある。各エンティティは、データ階層それ自身と同じように構成された通信経路を特定するテーブルを保持する。階層中の各ノード（node：接続ポイント）又はツリー（Tree：木）は、１つ以上のコネクションが、そのノード及びそのノードより下のエンティティについて発行するデータ又はそのノード及びそのノードより下のエンティティについて配信予約するデータをオプションで特定できる。
【００３５】
システム中のどのエンティティの存続期間も変動する（dynamic：ダイナミック）ので、システム内のルーティングは、全体では、配信停止及び発行停止をサポートしていなければならない。これら動作は、それらに対応する以前のあらゆる発行又は配信予約動作を無効にするために用いられる。発行停止及び配信停止動作は、ルーティング・メカニズムにおけるエラーを防ぐため、これらと対応する発行及び配信予約動作と同一のパラメータを持っている。その通信経路は、対応する発行及び配信予約動作と同じ経路に沿っている。
【００３６】
ここに記述したデータ階層は、ネットワーク中のどのレベルにおいても存在できる。図４では、高いレベルのコンテンツ階層に関して記述したが、設定（configuration：コンフィギュレーション）情報や、送信又は伝達するニーズのあるリンク情報に関する階層であっても良い。例えば、監視ネットワーク中のプローブは、特定の配線及び配線上のタイム・スロットを物理的に監視するように、設定及び指示される必要があることがある。その他、設定においては、配信予約体の設定を定義する関係のない情報もあることがある。ここに記述したデータ階層では、データそれ自身も、個々のデバイス及びデバイスの位置と関係なく組織化できる。データ階層へのデータの組織化は、ネットワーク階層と組み合わされて、ルーティングとプロトコルを提供する。従って、時系列と関係なく、最初のエンティティは、前後して現れることができ、第２のエンティティは、リンク情報を配信予約したいと単に通知するだけで良い。物理的なネットワーク階層を通して、そしてまた、階層又はデータ自身を見ることを通して、これらエンティティは、この特定の情報を要求するエンティティの方向へ伝達する。これらエンティティに関する限り、２つのエンティティ間の物理的な伝送の特性は重要ではない。
【００３７】
図５を参照すると、各エンティティについての発行のフロー（流れ）の好ましい実施形態のフローチャートが記述されている。発行フロー５００は、エンティティが階層に加入するか、新しい発行情報が既存のエンティティに加わるか、階層中のエンティティが発行情報を階層中の他のエンティティから受け取るかのいずれかによって、発行情報を受けたときから始まる（処理５０１）。発行情報はコネクションから受信するが、処理５０２は、必要に応じて、発行情報が保持されると共に、そのコネクションと関係することを示す。それから処理５０３は、発行情報をその親層に伝達し、この時点で発行フロー５００は終了する。発行フロー５００は、発行情報がネットワーク中を伝搬するように、階層中の各エンティティによって繰り返される。
【００３８】
図６を参照すると、各エンティティについての配信予約のフロー（流れ）の好ましい実施形態のフローチャートが記述されている。配信予約フロー６００は、処理６０１で、配信予約情報をエンティティが受け取ったときに始まる。処理６０２では、配信予約範囲が、その関係するコネクションと共に保持される。処理６０３では、要求された範囲が既存の配信予約より狭いかどうか判断される。もしそうなら、この処理は終了する。もし要求範囲が既存の配信予約より狭くないなら、処理は処理６０４に進み、ここでは親層が階層中の高い位置に存在するかどうか判断する。もしそうなら、処理は処理６０５に進み、ここで配信予約を親層に伝達する。処理６０５で配信予約を親層に伝達した後、又は、もし処理６０４で親層がないと判断されたら、フローは処理６０６に進み、ここでフローはより低い各層が配信予約範囲の全て又は一部分を供給すると判断する。それからフローは、処理６０７に進み、ここでは、そのコネクションが配信予約を開始（initiate）するコネクションかどうか判断する。もし違えば、配信予約は処理６０８でその層に伝達され、その後、配信予約フローは終了する。もし処理６０７で、コネクションは、配信予約を開始するコネクションであると判断されれば、フローは終了する。
【００３９】
メッセージング・システムの目的の１つは、各エンティティが、活動するためにネットワークに関しては可能な限り知らなくてもすむようにすることである。従って、あるエンティティがネットワークにつながったときに、そのエンティティが知る必要がある唯一のことは、親層のエンティティと連絡を取り、その親層エンティティにそのエンティティの全ての配信予約及び発行情報を告げる必要があるということである。階層中には、親層エンティティの上にも他のエンティティがあるという事実は、加入しようとするエンティティには関係がない。しかし、エンティティが発行又は配信予約するかもしれないデータは、メガ・ビットのデータということもあり得るので、大きな容量のデータを階層中を通してルートまで上げて、また下ろしてと送信するのは大変効率が悪い。これを避けるため、可能性のあるエンティティは、その親層に加えて、最も近い層を定めても良い。
【００４０】
エンティティの発行及び配信予約体の対は、どれも物理的に互いにネットワークのアクセスがないよう配置することもできる。例えば、発行エンティティは、監視ネットワーク中の１つのプローブの深くに組み込まれたブレードとしても良く、配信予約エンティティはそのネットワークの別の部分の深くに組み込まれたブレードとしても良い。複数のエンティティは、最終的により大きなネットワークと通信する１つの経路を持つが、直接の一対一（point to point）経路はない。しかし、発行／配信予約エンティティに非常に近い２つのエンティティ間には経路があっても良く、これは階層全体を通過する経路よりも大幅に少ない飛距離となる。例えば、図４のネットワークを使い、Ｅ３からＥ２、Ｅ１、Ｅ４、そしてＥ６へと至る経路でデータを送るのに代えて、ネットワークにはＥ２及びＥ４がこれらの間に直接の通信経路を持つことを考える能力がある。この場合では、最も近い層の経路が、Ｅ３及びＥ６間にデータを通す目的でＥ２及びＥ４の間に確立される。図４に示すものより大きなネットワークでは、そのような近い層のコネクションで、ネットワークのデータ流通量を大幅に削減できる。最も近い層コネクションは、データ又はコンテツの通過にのみ利用し、配信予約、発行又は問い合わせ動作には利用しない。言い換えると、制御情報は階層を必要とする一方で、データ情報は最も近い層コネクションでありえる最良の経路を選択できる。
【００４１】
ここで記述したメッセージング・システム及びネットワークでは、エンティティ間のコミュニケーションは、好ましくは、メッセージング・フォーマットとしてデータを階層で表現したものを用いるストリーミング・プロトコルに対して行われる。ＴＣＰ／ＩＰは、多くの場合、プロトコルとして用いることができるが、もしＴＣＰ／ＩＰによる接続が利用できないなら、他の伝送メカニズムを用いても良い。選択された伝送メカニズムは、最上位層及び親層によって相互にサポートされ、またテキスト・データを送信できるべきである。どのようなデータの階層表現も用いることができるが、ＸＭＬは構成要素の階層の任意部分を伝送する通信の主流として好ましいフォーマットであり、構成の一部分を容易に変更することができる。構成要素の階層を作り上げる情報とメッセージそれ自身の両方は、好ましくはＸＭＬでフォーマットされる。
【００４２】
エンティティ間の通信には、好ましくは、ＳＯＡＰ（Simple Object Access Protocol）を用いるのが良く、これはＨＴＴＰの一番上でＸＭＬを可能にするプロトコルである。ＳＯＡＰは、任意の２つのエンティティ間で一対一（point to point）プロトコルとして働く。これは、普遍的なプロトコルで、プロトコル的に中立で、ＴＣＰ上や、他のオープンなトランスポート・プロトコル上、又は独自の（proprietary）トランスポート上でさえも動作する。
【００４３】
エンティティがシステムに加入するときには、コネクションを受け付けるためにＴＣＰ／ＩＰソケットをオプションで関連付け（bind）してもよいし、他のトランスポート・プロトコル用の互換性のある関連付けメカニズムを用いても良い。最上位レベル層のエンティティは、それらのソケットと周知のアドレス及びポートと関連付けなければならない。これによって、より低い層は、上位レベルの層との最初のコミュニケーションでそれらの親又は最も近い層を発見できて、より適切な層への問い合わせでき、そしてそれらの層と関連付けられたアドレスとコネクションとして再確立できる。
【００４４】
本発明及びその利点を詳細に説明してきたが、付属する特許請求の範囲で定義される発明の趣旨及び範囲から離れることなく、様々な変更、置換、修正が変更可能なことが理解されるであろう。さらには、本出願の範囲は、明細書に記載した処理、装置、製造過程、組成物、手段、方法及び工程の特定の実施形態に限定されるものではない。当業者であれば、本発明、処理、装置、製造過程、組成物、手段、方法及び工程の開示から、ここに記載した実施形態に対応するものと実質的に同じ機能又は実質的に同じ結果を実現する現在存在するか又は後に開発されるものを、本発明に従って用いることができることを容易に理解するであろう。従って、付属の特許請求の範囲は、そうした処理、装置、製造過程、組成物、手段、方法及び工程などを含めようとするものである。
【図面の簡単な説明】
【００４５】
【図１Ａ】図１Ａは、網の目型ネットワーク接続形態描いたネットワーク図である。
【図１Ｂ】図１Ｂは、仲介装置型（mediator：メディエイタ）ネットワーク接続形態を夫々描いたネットワーク図である。
【図２】図２は、ここに記載されたコンセプトに沿った階層型ネットワークを描いたネットワーク図である。
【図３】図３は、ここに記載したコンセプトによる階層型言語フォーマットを用いたデータ階層の実施例のイラストである。
【図４】図４は、ここに記載したコンセプトによる階層型ネットワークの一例のブロック図である。
【図５】図５は、ここに記載したコンセプトによるメッセージング・システム中のネットワーク・エンティティに対するpublicationの流れの実施例を示すフローチャートである。
【図６】図６は、ここに記載したコンセプトによるメッセージング・システム中のネットワーク・エンティティに対する配信予約の流れの実施例を示すフローチャートである。