JP2009296595A - 階層同期トポロジ内で情報を同期化する方法、装置、製造品、及びデータネットワーク - Google Patents
階層同期トポロジ内で情報を同期化する方法、装置、製造品、及びデータネットワーク Download PDFInfo
- Publication number
- JP2009296595A JP2009296595A JP2009137010A JP2009137010A JP2009296595A JP 2009296595 A JP2009296595 A JP 2009296595A JP 2009137010 A JP2009137010 A JP 2009137010A JP 2009137010 A JP2009137010 A JP 2009137010A JP 2009296595 A JP2009296595 A JP 2009296595A
- Authority
- JP
- Japan
- Prior art keywords
- node
- nodes
- networked
- information
- child
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04J—MULTIPLEX COMMUNICATION
- H04J3/00—Time-division multiplex systems
- H04J3/02—Details
- H04J3/06—Synchronising arrangements
- H04J3/0635—Clock or time synchronisation in a network
- H04J3/0679—Clock or time synchronisation in a network by determining clock distribution path in a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W56/00—Synchronisation arrangements
- H04W56/001—Synchronization between nodes
- H04W56/002—Mutual synchronization
Abstract
【課題】複数のネットワーク化ノードを含む階層同期トポロジにおいて、比較的少ないリソースで情報同期速度を向上させる方法及び装置を提供する。
【解決手段】本方法は、第1のネットワーク化ノードを第2および第3のネットワーク化ノードと直接関連する親ノードとなるように構成し、第2および第3のネットワーク化ノードは第1および第2の直系子ノードとなり、第1の直系子ノードを通じて親ノードと間接的に関連する一式の間接的子ノードとしてその他のネットワーク化ノードを選択し、直系子ノードと関連する複数の階層同期レベルに基づいて直系子ノードへと同期化実行中の情報を順次送信する一方、一式の間接的子ノードには情報を送信しないように親ノードを構成することを含む。このとき親ノードが第2の直系子ノードに情報を送信する間に、第1の直系子ノードが一式の間接的子ノードに情報を伝播する。
【選択図】図7
【解決手段】本方法は、第1のネットワーク化ノードを第2および第3のネットワーク化ノードと直接関連する親ノードとなるように構成し、第2および第3のネットワーク化ノードは第1および第2の直系子ノードとなり、第1の直系子ノードを通じて親ノードと間接的に関連する一式の間接的子ノードとしてその他のネットワーク化ノードを選択し、直系子ノードと関連する複数の階層同期レベルに基づいて直系子ノードへと同期化実行中の情報を順次送信する一方、一式の間接的子ノードには情報を送信しないように親ノードを構成することを含む。このとき親ノードが第2の直系子ノードに情報を送信する間に、第1の直系子ノードが一式の間接的子ノードに情報を伝播する。
【選択図】図7
Description
本開示は、一般にデータのネットワーク構築に関し、より具体的にはネットワーク化された(ネットワークで結ばれた)装置間で順次同期階層を実施するための方法、装置、製造品、及びデータネットワークに関する。
現代のプロセス制御システムは多くの場合コントローラやワークステーションなどのような複数の(また、ことによっては多数の)ネットワーク化ノードを相互に接続するためのデータネットワークを含んでいる。一般に、かかるプロセス制御システムは、ネットワーク化ノードの幾つか又は全てで利用可能な特定の共通情報を必要とする。一般に利用できることが必要でありうる情報の例としては、システムにおけるノードのうち幾つか又は全てのアドレスや、システムにおける様々なノードで共通表示を生成するための表示形態情報などが挙げられる。多くの実施形態において、共通情報は各ノードに一以上の構成ファイルとして格納される。これら構成ファイルの一以上が変更された場合、共通情報を最新の状態に保つためにシステムのノード間で更新された一以上のファイルを可能な限り迅速に同期化する必要がある。但し、ファイルの同期化は多くの場合、プロセス制御システムを実施するのに使用されるタイプのノードに特徴的なリソースの限界(例えば、プロセッサ速度、ネットワーク帯域幅、など)がある故に順次(シーケンシャルに)遂行される優先度の低い作業である。更新済みの構成ファイルを発信ノードからプロセス制御システムにおけるその他のノードの各々に順次送信するアプローチは比較的遅いため、それよりも精巧であり、従ってより高速な既存のファイル同期技法を、ノードのリソースに限界がある故に使用できなくなる場合がある。
複数のネットワーク化ノードを構成する階層同期トポロジにおいて、比較的少ないリソースで情報が同期化される速度を向上できる方法、装置、機械可読命令を格納する製造品(記憶媒体)、及びデータネットワークを提供することを目的とする。
本明細書に開示される例示的な実施形態では、複数のネットワーク化(ネットワークで結ばれている)ノードを構成する階層同期トポロジ内の情報を同期化する例示的な方法は、各々が親ノードの第1および第2の直系子ノードとなるように構成された第2および第3のネットワーク化ノードに直接関連付けられる親ノードとなる第1のネットワーク化ノード構成することを含む。また、例示的な方法は、第1の直系子ノードを通じて親ノードに間接的に関連付けられる間接的子ノードの第1の集合となる一以上のネットワーク化ノードを選択することを含む。更に例示的な方法は、第1および第2の直系子ノードが関連付けられている複数の階層同期レベルに基づいて、同期化実行中(同期化対象)の情報を第1および第2の直系子ノードに順次送信するが、間接的子ノードの第1の集合には情報を送信しないように親ノードを構成することを含む。加えて、例示的な実施形態では、親ノードが第2の直系子ノードに情報を送信するためのものである一方、第1の直系子ノードは間接的子ノードの第1の集合への情報を伝搬するためのものである。
本明細書に開示される別の例示的な実施形態では、ネットワーク化ノードにより得られた情報を同期化する例示的な装置として、ネットワーク化ノードから同期化実行中の情報を直接受け取るための複数の直系子ノードを選択する例示的なノード・セレクタを含む。例示的な装置は、間接的子ノードの一以上の集合を選択するための例示的なノードリスト・セグメンタも含んでおり、この場合、間接的子ノードの各集合は、同期化実行中の情報を、ネットワーク化ノードから直接受け取る代わりに、各々の直系子ノードを通じて受け取るようになっている。例示的な装置は更に、優先順位が第1の階層同期レベルよりも低い第2の階層同期レベルに関連付けられている第2の直系子ノードに情報を送信する前に、第1の階層同期レベルに関連付けられている第1の直系子ノードへと同期化実行中の情報を送るスケジュールを作成する例示的な同期シーケンサを含む。さらに加えて、例示的な実施形態では、間接的子ノードの第1の集合が、第1の直系子ノードを通じて情報を受け取るためのものであり、また、同期シーケンサは、間接的子ノードの第1の集合が第1の直系子ノードを通じて同期化実行中の情報を受け取るように構成されるかどうかにかかわらず、ネットワーク化ノードから情報を受け取るように第1の直系子ノードが構成された後に、第1の直系子ノードへと情報を送るスケジュールを作成する構成されている。
本明細書に開示される更に別の例示的な実施形態では、データ同期をサポートする例示的なデータネットワークが、複数の階層同期レベルを成す同期階層を実施するように構成可能な複数のネットワーク化ノードを含んでおり、第1の階層的レベルに割り当てられた各ネットワーク化ノードは、第1の階層同期レベルよりも高い優先度を有する第2の階層同期レベルに割り当てられた各々について構成された一つの親ノードから受け取ったデータを同期化するように構成可能である。また、例示的なデータネットワーク内でかかる第1の階層的レベルに割り当てられた各ネットワーク化ノードは、第1の階層同期レベルよりも低い優先度をそれぞれが有する複数の階層同期レベルの各々に一意に割り当てられ、対応して構成された複数の子ノードの各々にデータを順次送信するようにも構成可能である。加えて、例示的なデータネットワークは、同期階層の構成を開始するため、及び、同期階層に基づいてデータを、対応して構成された第1の複数の子ノードに順次送信するために、最優先同期レベルに割り当て可能であり且つ同期化対象のデータを得るように構成可能な根(ルート)ノードも含んでいる。また、例示的な実施形態において、第1の複数の子ノードのうち第1の子ノードは、根ノードからデータを受け取った後、及び根ノードが第1の複数の子ノードのうちの少なくとも1つの第2の子ノードにデータを送信することになっている間に、対応して構成された第2の複数の子ノードに対してデータを同期階層に基づいて順次送信する第1の親ノードとなるように構成可能である。
本稿では、ネットワーク化(ネットワークで結ばれた)装置間で順次同期階層を実施する方法と装置が開示されている。例示的な順次同期階層において、特定の階層同期レベルに割り当てられている各ネットワーク化ノードは、根ノードとして構成された一つのノードを例外として、優先度の高い同期レベルに割り当てられた関連する一つの親ノードに対して、子ノードとして作動するように構成される。加えて、少なくとも幾つかのネットワーク化ノードは、関連付けられている優先度の低い同期レベルの子ノードの一以上に対して親ノードとして作動するように構成される。情報(一以上のデータ・ファイルなど)を同期化するために、例示的な同期階層においては各親ノードが、自身と関連する子ノードのそれぞれに情報を順次送信する。更に子ノードは情報を一旦受け取ると、その子ノードはそれ自体の関連する子ノードに情報を順次送信し続ける。このように、同期化を実行中の情報は、いくつかの親−子伝搬経路(パス)に沿って同時に伝搬されうる。この場合、親−子経路はそれぞれ順次(シーケンシャル)情報伝搬を採用している。
本明細書に記載されるこのような例示的な同期階層は、ネットワーク化ノード間の情報の順次伝搬と比べてネットワークにおける情報が同期化される速度を向上させることができる。更に個々のネットワーク化ノードのそれぞれが依然として自身に関連する子ノードに順次情報を送信し続けるので、ノード間で情報を順次取り交わすことに関して付加的なリソースの必要性がほとんど(又は全く)要求されずに同期化速度の向上が達成される。加えて、本明細書に記載されるネットワーク実施形態の少なくとも幾つかにおいて、各ネットワーク化ノードは、同期トポロジの一部分だけ(例えば、何らか直接関連する子ノードだけ)の構成をつかさどる。このような分散型トポロジ構成はまた、情報の同期化に使用されるリソースへの影響を少なくするとともに、たとえ階層同期トポロジ全体の構成が完全とは言えない場合にも同期化処理の開始を可能にする。本明細書に記載される例示的な実施形態の少なくとも幾つかでは、ネットワーク化ノードを円滑に階層同期トポロジに追加及び階層同期トポロジから削除することの少なくとも一方もサポートしている。
例示的なプロセス制御システム100のブロック図が図1に示されている。例示的なプロセス制御システム100は、いかなる工業形態におけるいかなるタイプの工程を測定、分析、制御、自動化処理等のために使用しても良い。例えば、図1のプロセス制御システム100は、化学薬品製造工程、(例えば、石油又は天然ガスなどの)精製過程、紙・パルプ製造工程、医薬開発工程、食品および飲料の梱包工程、発電工程、用水及び廃水管理過程などの少なくとも一つの出力を制御するために使用しても良い。
図中の例示的なのプロセス制御システム100は、例示的なネットワーク150により相互接続される例示的なネットワーク化ノードの一群105−140を含んでいる。各々ノード0、ノード1、ノード2、ノード3、ノード4、ノード5、ノード6およびノード7の標識で示されている8個のネットワーク化ノード105、110、115、120、125、130および140が図1に描かれているが、例示的なプロセス制御システム100は任意の数のネットワーク化ノードをサポートすることができる。ネットワーク化ノード105−140は、情報を取り交わすためにネットワーク化できる装置のあらゆる組み合わせにより実施されても良い。例えば、ネットワーク化されたノード105−140はそれぞれ、プログラム可能論理制御装置(PLC)などのコントローラ、パソコンやラップトップ/ノートブックコンピュータ、コンピュータ端末機などのワークステーション、及びその他あらゆるタイプのネットワーク構築可能な装置により実施されても良い。
図中の例示的なのネットワーク150は、例示的なネットワーク化ノード群105−140の間で情報を取り交わすことができるように構成される。加えて、例示的なネットワーク150は、プロセス制御要求が変更するにつれて経時的にネットワーク化ノードの追加および削除を可能にするようスケーラブル(拡張・縮小可能)に構成される。例示的なネットワーク150は、例えば一以上のイーサネット(登録商標)又は類似したローカル・エリア・ネットワーク(LAN)、一以上のIEEE 802.11又は類似したワイヤレスLAN(WLAN)、一以上のモバイル・セルラーネットワーク、インターネット、既存ネットワーク配線など、及びそれのいかなる組み合わせの少なくとも一つ等、いかなるタイプのネットワーク技術を使用して実施されても良い。
上述の如く、例示的なネットワーク150により、例示的なネットワーク化ノード105−140間で情報を取り交わすことが可能になる。図1の例示的なシステム100などのプロセス制御システムにおいて、ネットワーク化ノード105−140の幾つか又は全ての間で共通して利用可能な特定の情報が備えられていることが必要とされうるか、又は、少なくとも望ましいとされうる。例示的なプロセス制御システム100により制御されるプロセスによっては、ネットワーク化ノード105−140の幾つか又は全てで利用可能とされるべきこのような共通情報の例として、(1)例示的なプロセス制御システム100内の幾つか又は全てのネットワーク化ノード105−140の一覧リスト、(2)幾つか又は全てのネットワーク化ノード105−140及び例示的なプロセス制御システム100の少なくともいずれかに接続を実施及び/又は提供するその他のネットワーク装置(例えば、1以上のブリッジや1以上のルータなど)のアドレス、(3)例示的なプロセス制御システム100内の様々なネットワーク化ノード105−140で共通表示を生成するための表示形態情報、などが挙げられる。
例示的なプロセス制御システム100、ならびにその他の多くのプロセス制御システム実施形態において、共通情報は、幾つか又は全てのネットワーク化ノード105−140上の一以上の構成ファイルに格納される。例えば、図1は、例示的なネットワーク化ノード105−140のそれぞれで利用可能とされ、それぞれに格納される共通情報を含む例示的な構成ファイル160(また、更に概して言うと情報ファイル160)を示す。例示的な構成ファイル160は共通であること、従って各ネットワーク化ノード105−140において同じであることが求められるので、ファイル160が更新及び変更の少なくともいずれかがなされた場合、ネットワーク化ノード105−140間で更新済みのファイル160を同期化する必要がある。一般に、更新及び変更の少なくとも一方が影響するネットワーク化ノード105−140のそれぞれにおいて共通情報を最新のデータとして維持するためにも、このような情報の同期化を可能な限り迅速に行わなければならない。以下、例示的な同期技法をより詳しく述べる。
例示的なシステム100は、プロセス制御システムとして図示されているが、ネットワーク化ノード間で情報を取り交わすことができるいかなるタイプのコンピューターネットワーク、データネットワークなどであってよい。このように、本明細書に記載される例示的な方法および装置はプロセス制御環境だけにおける使用に限定されず、いかなるタイプのデータネットワーク構築アプリケーションにおいて使用しても良い。
図1の例示的なプロセス制御システム100内の構成ファイル160を同期化するために使用されうる例示的な先行技術の順編成(順次)ファイル同期技法200が図2に示されている。図2の例示的な先行技術の順編成ファイル同期技法200が、図1の例示的なプロセス制御システム100との関連(コンテキスト)で示されるので、図1および図2において、同等の要素は同じ参照番号で示されている。説明を簡潔にするために、これら同等の要素の詳細な記述については図1の説明に関して上記されたものを参照することとし、図2の説明では繰り返さない。
図2を参照するに、例示的な先行技術の順編成ファイル同期技法200は、ネットワーク化ノード105−140のそれぞれに構成ファイル160を順次伝搬することにより、例示的なプロセス制御システム100内の構成ファイル160を同期化する。例として、また一般性を損なうことなく図2に示されるように、例示的な先行技術の順編成ファイル同期技法200の初期化フェーズ205で、構成ファイル160の新バージョンがネットワーク化ノード105(ノード0)に提供されると仮定する。ユーザ及びアプリケーションの少なくとも一方により、例えばオフライン作業で構成ファイル160の新バージョンを作成してネットワーク化ノード105(ノード0)にダウンロードすることができる。それに加えて、又はその代わりに、構成ファイル160の新バージョンは、ネットワーク化ノード105(ノード0)により、例えばダウンロード、クエリー、監視、受信された情報に基づいてネットワーク化ノード105(ノード0)自体によって作成してもよい。
構成ファイル160の新バージョンがどのように作成されるかにかかわらず、例示的な先行技術の順編成ファイル同期技法200は、初期化フェーズ205で構成ファイル160がネットワーク化ノード105(ノード0)で利用可能になった後で順編成ファイルの同期を開始する。図示される例において先行技術の順編成ファイル同期技法200は、ネットワーク化ノード105(ノード0)に、第1の繰返し処理フェーズ210においてネットワーク化ノード110(ノード1)へと構成ファイル160を送信させることにより、ファイルの同期化を開始する。次に、構成ファイル160がネットワーク化ノード110(ノード1)に送信された後、ネットワーク化ノード105(ノード0)は第2の繰返し処理フェーズ215において、ネットワーク化ノード115(ノード2)へと構成ファイルに160を送る。同様に、例示的な先行技術の順編成ファイル同期技法200は、引き続きネットワーク化ノード105(ノード0)に構成ファイル160を各ネットワーク化ノード120、125、130、135および140へと各々の繰返し処理フェーズ220、225、230、235および240において順次送信させる。
例示的な先行技術の順編成ファイル同期技法200では、ネットワーク化ノード105(ノード0)が第7の繰返し処理240においてネットワーク化ノード140(ノード7)への構成ファイルに160の送信を完了すると、構成ファイル160の新バージョンが全てのネットワーク化ノード105−140にて同期化される。同期化を達成するためにネットワーク化ノード105−140のそれぞれに構成ファイル160が順次伝搬されるので、例示的な先行技術の順編成ファイル同期技法200により構成ファイル160を同期化するために必要とされる総時間は、例示的なプロセス制御システム100中のネットワーク化ノード105−140の数に比例する。言い換えると、例示的な先行技術である順次同期技法200は、O(n)で示されるnの次数(オーダ)の時間計算量を有する。この場合、nは、例示的なプロセス制御システム100中のネットワーク化ノード105−140の数である。従って、本明細書に示される先行技術の順編成ファイル同期技法200の実施例では、例示的なプロセス制御システム100中にはn=8の八つのネットワーク化ノード105−140があるので時間計算量はO(8)である。
例示的な先行技術の順編成ファイル同期技法200がO(n)の時間計算量を有するので、この技法を使用して情報(例示的な構成ファイル160など)を同期化するために必要な時間は、例示的なプロセス制御システム100中のネットワーク化ノード105−140の数とともに直線的に増加する。ネットワーク化ノード105−140の数が大きくなるにつれて、情報の同期化により発生する処理遅延が許容できないものとなりうる。例えば、プロセス制御システムの中には数百、また場合によっては数千というネットワーク化ノードを有しうるものが幾つかある。このようなシステムにおいて、例示的な先行技術の順編成ファイル同期技法200は、情報の同期化を完了させるのに数分、また場合によっては数時間を必要となる可能性がある。
図1の例示的なプロセス制御システム100内において構成ファイル160を同期化するのに使用されうる例示的な先行技術の並列ファイル同期技法300が図3に示されている。例示的な先行技術の並列ファイル同期技法300は、情報をセグメント化するよう動作し、セグメント化された情報を並列で伝搬することにより、例えば図2の先行技術の順編成ファイル同期技法200に比べて全体的な同期化時間を短縮させる。図3の例示的な先行技術の並列ファイル同期技法300は、図1の例示的なプロセス制御システム100と関連して示されているので、図1および図3中、同等の要素は同じ参照番号で示されている。説明を簡潔にするために、これら同等の要素の詳細な記述については図1の説明に関して上記されたものを参照することとし、図3では説明は繰り返さない。
図3を参照するに、例示的な先行技術の並列ファイル同期技法300は、構成ファイル160をセグメント化し、ネットワーク化ノード105−140のそれぞれへと並列でセグメントを伝搬することにより、例示的なプロセス制御システム100内において構成ファイル160を同期化する。例えば、また一般性を損なうことなく、図3は、ネットワーク化ノード105(ノード0)とネットワーク化ノード110(ノード1)間の構成ファイル160を同期化するための例示的な先行技術の並列ファイル同期技法300の作動を示す。図示される実施例においてネットワーク化ノード105(ノード0)が構成ファイルを複数のセグメント(図3に示される二つのファイル・セグメント305および310など)にセグメント化することで同期化が開始される。二つのファイル・セグメント305と310にセグメント化されている構成ファイル160が図3には描かれているが、例示的な先行技術の並列ファイル同期技法300は任意の数のファイル・セグメントへのセグメント化をサポートする。
引き続き図3に示される実施例を参照すると、ファイル・セグメント305および310は、例示的なネットワーク化ノード105(ノード0)により各々の送信同期バッファ315および320に格納される。送信同期バッファ315および320は、一以上の円環状バッファ、先入れ先出し(FIFO)バッファなどを介してなど、いかなる格納技法を使用して実施されても良い。各々の送信同期バッファ315および320に格納されたファイル・セグメント305および310は、その後、ネットワーク化ノード105(ノード0)により各バッファから受信先ノードへと並列で送信される。例えば、図3は、ネットワーク・ノード105(ノード0)の送信同期バッファ315および320から例示的なネットワーク・ノード110(ノード1)の各々の受信同期バッファ335および340へのデータの並列送信を可能にするために例示的なネットワーク150において実施される、二つの伝搬路(パス)325および330を示す。例示的なネットワーク・ノード110(ノード1)において、各々の受信同期バッファ335および340において受信されて格納されたデータは、その後、同期化されている構成ファイル160に対応するファイル・セグメント305および310を再構築するのに使用される。その後、ファイル・セグメント305および310は構成ファイル160を形成するように合併され、その結果、構成ファイル160がネットワーク・ノード110(ノード1)で同期化される。
この実施例から、例示的な先行技術の並列ファイル同期技法300により同期化するために必要な総時間が、例示的な先行技術の順編成ファイル同期技法200の同期時間に相対して、ノード間で並列して送信される構成ファイル160のセグメントの数に比例して短縮されることが明らかである。言い換えると、例示的な先行技術の並列ファイル同期技法300の時間計算量はO(n/s)であり、この場合、nは、例示的なプロセス制御システム100中のネットワーク化ノード105−140の数であり、sは、ノード間で並列して送信される構成ファイル160のセグメントの数である。従って、本明細書に示される先行技術の並列ファイル同期技法300の例では、例示的なプロセス制御システム100中にはn=8のネットワーク化ノード105−140があり、構成ファイル160はセグメント数s=2として並列して送信されるので、時間計算量はO(8/2=4)である。
あいにく、このようなかかる全体的な同期時間の短縮は、同期手順によるリソース活用の増加を伴って達成されるものである。例えば、例示的な先行技術の並列ファイル同期技法300により必要とされるセグメント化と並列送信は、情報(例えば、ファイル)を同期化するためにネットワーク化ノード105−140のそれぞれにより消耗される処理(例えば、CPU)、メモリ、及びネットワーク帯域幅リソースの少なくとも一つについて、対応した増加を要しうる。しかし、プロセス制御システムを実施するために使用されるタイプのノードに特徴的なリソースの限度により、多くのプロセス制御環境において例示的な先行技術の並行ファイル同期技法300を実施できない場合がある。
図1の例示的なプロセス制御システム100内において構成ファイル160を同期化するのに使用されうる、本明細書に記載される方法と装置によって実施された例示的な順次同期階層400が図4に示されている。例示的な実施形態において、例示的な順次同期階層400は、図2の例示的な先行技術の順編成ファイル同期技法200に対して、図3の例示的な先行技術の順編成ファイル同期技法300に特徴的な付加的なリソースの活用を生じさせることなく、全体的な同期時間を短縮するよう動作する。図4の例示的な順次同期階層400は、図1の例示的なプロセス制御システム100と関連して示されているので、図1および図4中、同等の要素は同じ参照番号で示されている。説明を簡潔にするために、これら同等の要素の詳細な記述については図1の説明に関して上記されたものを参照することとし、図4では説明を繰り返さない。
図4を参照するに、情報(例えば、ファイル)の同期化を目的として、例示的なプロセス制御システム100の例示的なネットワーク化ノード105−140は、図示されるような例示的な順次同期階層400を形成するように構成される。図示される実施例においてネットワーク化ノードはそれぞれ特定の階層同期レベルに割り当てられ、後続のレベルは各々先行するレベルよりも低い同期優先度を有する。例えば、図4の順次同期階層400において、ネットワーク化ノード105(ノード0)は根(ルート)階層同期レベル405(または根レベル405)に割り当てられ、ネットワーク化ノード110(ノード1)は第1の階層同期レベル410(または第1のレベル410)に割り当てられ、ネットワーク化ノード115(ノード2)および130(ノード5)は第2の階層同期レベル415(または第2のレベル415)に割り当てられ、ネットワーク化ノード120(ノード3)、125(ノード4)、135(ノード6)および140(ノード7)は第3の階層同期レベル420(または第3のレベル420)に割り当てられる。図示される実施例では、根レベル405の同期優先度が最も高く、その次に同期優先度が高いのは第1のレベル410、その次に第2のレベル415、そして、第3のレベル420の同期優先度が最も低くなっている。一般に、例示的な順次同期階層400は、根レベルでネットワーク化ノード(例えば、ネットワーク化ノード105)を一つだけ、そして第1のレベルでネットワーク化ノード(例えば、ネットワーク化ノード110)を一つだけ含む。後続のレベル(例えば、レベル415と420)にはそれぞれ、全ての先行レベルを組み合わせたネットワーク化ノード数を最大数とした数のネットワーク化ノードを割り当てることができる。
根ノード(例えば、ネットワーク化ノード105)を例外として、例示的な順次同期階層400における特定の割り当て階層同期レベルでの各ネットワーク化ノードは、優先度の高い同期レベルに割り当てられた一つの関連する親ノードに対して、子ノードとして動作するように構成される。加えて、本明細書に示される実施例では、同じ階層同期レベルに割り当てられている二つのネットワーク化ノードが、同じ親ノードに関連付けられることはない。例えば、第1のレベル410のネットワーク化ノード110(ノード1)は、優先度の高い根レベル405に割り当てられネットワーク化ノード110(ノード1)に関連する親ノードとなるよう対応して構成された、ネットワーク化ノード105(ノード0)の子ノードになるように構成される。第2のレベル415のネットワーク化ノード115(ノード2)および第3のレベル420のネットワーク化ノード120(ノード3)はそれぞれ、それらと関連する親ノードになるように対応して構成されたネットワーク化ノード105(ノード0)の子ノードになるように構成されている。
同様に、第2のレベル415のネットワーク化ノード130(ノード5)および第3のレベル420のネットワーク化ノード135(ノード6)はそれぞれ、優先度の高い第1のレベル410に割り当てられ、それらと関連する親ノードとなるよう対応して構成されたネットワーク化ノード110(ノード1)の子ノードとなるように構成されている。更に第3のレベル420のネットワーク化ノード125(ノード4)は、優先度の高い第2のレベル415に割り当てられ、それと関連する親ノードとなるよう対応して構成されたネットワーク化ノード115(ノード2)の子ノードとなるように構成されている。最後に、第3のレベル420でのネットワーク化ノード140(ノード7)は、優先度の高い第2のレベル415に割り当てられ、それと関連する親ノードとなるよう対応して構成されたネットワーク化ノード130(ノード5)の子ノードとなるように構成されている。
例示的な順次同期階層400において特定の割り当てられた階層同期レベルの各ネットワーク化ノードは、優先度の高い同期レベルに割り当てられた一つの関連する親ノードに対して子ノードとして動作するように構成されているとともに、対応する一以上の優先度の低い同期レベルの一以上の関連する子ノードに対して親ノードとして動作するようにも構成されうる。従って、本明細書に示される実施例において、ネットワーク化ノード105(ノード0)は、第1のレベル410のネットワーク化ノード110(ノード1)、第2のレベル415のネットワーク化ノード115(ノード2)および第3のレベル420のネットワーク化ノード120(ノード3)に対して親ノードとして動作するように構成される。同様に、ネットワーク化ノード110(ノード1)は、第2のレベル415のネットワーク化ノード130(ノード5)および第3のレベル420のネットワーク化ノード135(ノード6)に対して親ノードとして動作するように構成されている。加えて、ネットワーク化ノード115(ノード2)は第3のレベル420のネットワーク化ノード125(ノード4)に対して親ノードとして動作するように構成されており、ネットワーク化ノード130(ノード5)は同様に第3のレベル420のネットワーク化ノード140(ノード7)に対して親ノードとして動作するように構成されている。
要約すると、例示的な順次同期階層400は、例示的なプロセス制御システム100のネットワーク化ノード105−140を、log2(n)個の階層同期レベル(例えば、レベル410−420)と一つの根レベル(例えば、根レベル405)を有する特定の階層的配列に整理する(ここでnはネットワーク化ノードの数である)。図示される実施例では、階層の根レベル(最も高いレベル)405および第1のレベル410はそれぞれ1つのノード(例えば、ネットワーク化ノード105およびネットワーク化ノード110)を含んでおり、また、例示的な順次同期階層400の第2のレベル415は二つのノード(例えば、ネットワーク化ノード115および130)を含んでおり、更に、第3のレベル420は四つのノード(例えば、ネットワーク化ノード120、125、135および140)を含んでおり、以降同様に構成される。最後に、例示的な順次同期階層400の最後(最低)のレベルは、図4に示される実施例では8/2=4個のノードを含んでいる第3のレベル420に相当する最大n/2個のノードを含んでいる。
加えて、例示的な順次同期階層400では、特定の割り当て階層同期レベルの各ノードが、優先度の高い同期レベルのうちの一つにおける1つの親ノードに関連付けられるように構成される。但し、同じレベルにおける二つのノードが同じ親ノードに割り当てられることはない。更に、特定の割り当てレベルの各ノードは、例示的な順次同期階層400の残りのより低いレベルのそれぞれにおいて、最大1つの子ノードに直接関連付けられることができる。言い換えると、特定の親ノードに直接関連付けられる各子ノードは、一意の階層同期レベルに割り当てられる。従って、例示的な順次同期階層400における各ノードは、根ノードを例外として、1つの親ノードおよびゼロ個又は一つ若しくは複数の子ノードに直接関連する。
なお、子ノードはまた自身が、一以上の子ノードに関連する親ノードにもなりえる。従って、一以上の子ノードに直接関連する例示的な順次同期階層400中のノードは、該子ノードと関連付けられる付加的な子ノードとも間接的に関連付けられうる。例えば、図4を参照すると、ネットワーク化ノード110(ノード1)、115(ノード2)および120(ノード3)は全て、親ノードとして動作するネットワーク化根ノード105(ノード0)に直接関連付けられた子ノードである。言い換えると、ネットワーク化ノード110(ノード1)、115(ノード2)および120(ノード3)は全て親ネットワーク化ノード105(ノード0)に直接関連付けられた直系子ノードである。加えて、ネットワーク化ノード125(ノード4)、130(ノード5)、135(ノード6)および140(ノード7)は全て、親ノード105(ノード0)に関連付けられた直系子ノード110(ノード1)、115(ノード2)および120(ノード3)から(直接に又は間接的に)派生する子孫(下位ノード)である。従って、ネットワーク化ノード125(ノード4)、130(ノード5)、135(ノード6)および140(ノード7)は全て親ネットワーク化ノード105(ノード0)の間接的子ノードである。大まかに言って、例示的な順次同期階層400における特定の親ノードの子孫ノードは、親ノードに直接関連する直系子ノード群と、直系子ノード群を介して親ノードに間接的に関連する間接的子ノード群に分けることができる。加えて、間接的子ノードの群全体を更にノードの下位群に分けても良く、この場合、特定の直系子ノードを介して親ノードに関連する全子孫ノードを各下位群に含めることができる。
以下、実施例により明示されるように、例示的な順次同期階層400は、O(log2(n))の時間計算量低減を伴う情報同期技法を実施する。ここでnは、例示的なプロセス制御システム100内のネットワーク化ノード105−140の数である。よって、図4に示される例示的な順次同期階層400において、例示的なプロセス制御システム100にはn=8のネットワーク化ノード105−140があるので、時間計算量はO(log2(8)=3)である。従って、例示的な順次同期階層400の時間計算量は先行技術の同期技法200および300の両方の時間計算量より少なくなる。加えて、ネットワーク化ノード間における情報(例えば、ファイル)の順次送信のみを依然として必要とていながら、このような同期時間の短縮が達成される。
本明細書に記載される順次同期階層を形成するように構成された全てのネットワーク化ノード間でデータ・ファイルなどの情報を同期化するために、各ノードは高いレベルから、同期化実行中の情報(例えば、データ・ファイル)を、それが関連する直系子ノードのそれぞれへと順次送信する。なお、各ノードはまた、関連する直系子ノードが割り当てられた階層同期レベルのセットに応じて、優先順位の降順で関連する直系子ノードへと情報(例えば、データ・ファイル)を順次送信する。例えば、同期化は、根ノードが例えばデータ・ファイルの更新版として同期化されるべき情報を得た時点で開始される。その後、根ノードは、同期階層の第1の階層同期レベルにおける直系子ノードに更新済みのファイルを送信する。引き続き、同期化実行中の更新済みファイルを一つの親ノード(同期階層のより高い優先度レベルの一つにある)だけから受け取るように構成された特定の階層同期レベルに割り当てられた各ノードで同期化が継続される。ノードは、自身の割り当てられた親ノードから更新済みのファイルを受け取った後、同期階層のより低い優先度レベルにおける関連する直系子ノードのそれぞれにファイルを順次送信する。各ノードが関連する直系子ノードに更新済みのファイルを順次送信するので、図2の例示的な先行技術の順次同期技法200に比べ、ファイルの同期化用に設けられた各ノードのリソースへの付加的な影響はない(又は無視できる)。但し、同期化実行中の情報(例えば、データ・ファイル)の伝搬は、いくつかの親−子伝搬経路に沿って同時に発生する。ここで、各親−子経路は、各々の階層同期レベル割り当て集合に応じた順次情報伝搬を採用している。この構成により、図2の例示的な先行技術の順次同期技法200に比べ、場合によっては全体的な同期時間の著しい短縮を達成できる。
図4の具体的な実施例を参照すると、以下の方法で例示的な順次同期階層400の全てのネットワーク化ノード105−140間で構成ファイル160を同期化することができる。まず、更新済み構成ファイル160を得た後、ネットワーク化根ノード105(ノード0)は、第1の階層同期レベル410に割り当てられたネットワーク化直系子ノード110(ノード1)へと構成ファイルに160を送るために、第1の同期繰返し処理において第1のファイル転送430を実行する。続いて、システム内の全てのノード間でファイルを同期化するために、ファイル転送が親ノードと子ノード間で順次行われる。例えば、第2の同期繰返し処理において、根ノード105(ノード0)は、第2のレベル415に割り当てられた直系子ノード115(ノード2)へと構成ファイル160を送信するよう第2のファイル転送435を実行する。一方、に同時に、ネットワーク化ノード110(ノード1)は、第2のレベル415に割り当てられた自身の直系子ノード130(ノード5)へと構成ファイル160を送るために、第3のファイル転送440を実行する。その後、第3の同期繰返し処理において、根ノード105(ノード0)は、第3のレベル420に割り当てられた直系子ノード120(ノード3)に構成ファイルに160を送るよう第4のファイル転送445を実行する。一方、ほぼ同時にネットワーク化ノード110(ノード1)は同様に第3のレベル420に割り当てられた自身の直系子ノード135(ノード6)に構成ファイルに160を送るために第5のファイル転送450を実行し、ネットワーク化ノード115(ノード2)も同様に第3のレベル420に割り当てられた自身の直系子ノード125(ノード4)に構成ファイルに160を送るために第6のファイル転送455を実行し、また、ネットワーク化ノード130(ノード5)も同様に第3のレベル420に割り当てられた自身の直系子ノード140(ノード7)に構成ファイルに160を送るために第7のファイル転送460を実行する。この方法では、(例えば図2の例示的な先行技術の順次同期技法200により同期化が実行される場合に七回の同期繰返し処理が要求されるのに対し)同期繰返し処理が三回行われた後に、構成ファイル160が、例示的な順次同期階層400の全てのノード105−140間で同期化される。更に一般化して言えば、例示的な順次同期階層400において情報を同期化するために必要とされる同期繰返し処理の数は、階層同期レベルの数に比例し、時間計算量がO(log2(n))となる。ここで、log2(n)は、順次同期階層400における階層同期レベルの数である。
いかなるタイプのファイル転送プロトコル、又は、更に概して言うと情報交換プロトコルを、例示的な順次同期階層400におけるネットワーク化ノード間で構成ファイル160を送信するのに使用しても良い。ネットワーク化ノード間で構成ファイル160を送るために使用されうるプロトコルの例としては、ファイル転送プロトコル(FTP)、簡易メール転送プロトコル(SMTP)、ショートメッセージサービス(SMS)などが挙げられる。それに加えて、又はその代わりに、一以上のプロプライエタリ(独自仕様)のファイル転送/情報交換プロトコルを、例示的な順次同期階層400におけるネットワーク化ノード間で情報及びデータ・ファイルの少なくとも一方を同期化するのに使用してもよい。
また、図4の例示的な順次同期階層400は、例示的なプロセス制御システム100からのノードの追加および削除もサポートする。例示的な実施形態において、新規ネットワーク化ノードが、既存の順次同期階層(例示的な順次同期階層400など)に追加されると、根ノードは、優先度が最も低い階層同期レベルから、新規追加されたネットワーク化ノードに関連付けられる親ノードとなるべきネットワーク化ノード、また言い換えると例示的な順次同期階層の葉(リーフ)ノードをランダムに選択する。その後、根ノードは、新規追加されたネットワーク・ノードを、ランダムに選択された葉ノードに直接関連付けられる直系子ノードとなるように構成する。図4に示される実施例を参照すると、新規ノードが例示的な順次同期階層400に追加される場合、根ノード105(ノード0)は、優先度の最も低い第3のレベル420の葉ノード120(ノード3)、125(ノード4)、135(ノード6)又は140(ノード7)の一つをランダムに選択し、新規追加されたノードを選択された葉ノードの子ノードとなるように割り当てる。
加えて、例示的な実施形態では、既存のネットワーク化ノードが、既存の順次同期階層(例示的な順次同期階層400など)から(例えば、ネットワーク再構築計画の間に先を見越して、又はエラー状態や停電などを検出した後に遡及的に)取り除かれる場合、取り除かれるノードに関連する子孫ノードは全て根ノードの子孫となるように自動的に再割り当てされる。例えば、根ノードは、削除されたノードの子孫ノードの一つを、新規優先度の最も低い階層同期レベルで根ノードに直接関連する新規直系子ノードとなるように選択するよう構成されることができ、それによって根ノードに直接関連するあらゆる既存の直系子ノードよりも低い優先度レベルにこの新規子ノードを置く。その後、根ノードは、前回削除されたノードに関連するあらゆる残りの子孫ノードを、今回は新規に構成された直系子ノードを通じて根ノードに間接的に関連する間接的ノードとなるように構成することができる。図4に示される実施例を参照すると、ネットワーク化ノード130(ノード5)が例示的な順次同期階層400から削除された場合、根ノード105(ノード0)は、削除されたノードの子孫ノード140(ノード7)を、新規優先度の最も低い第4の階層同期レベル(図示せず)で根ノード105(ノード0)に直接関連する直系子ノードとなるように再構成することができる。
更に例示的な実施形態において、根ノードは、順次同期階層(例示的な順次同期階層400など)の全体的な構成を監視する。同期階層にわたる一以上の親−子(また具体的には、親−子−子孫)伝搬路がノードの追加及び削除の少なくとも一方により、著しく他のものよりも長くなった場合、根ノードは、より詳細にわたって後述されるように、既存の同期階層を破棄し、順次同期階層の再構築を開始してもよい。
また、図4は、例示的な順次同期階層400におけるネットワーク化ノードの階層レベル割り当ておよび親−子−子孫関係を表わすのに使用されうる便利な表記法を示す。図示される実施例において、ネットワーク化ノードが、関連する親ノードの直系子ノードとなるノードを割り当てることにより例示的な順次同期階層400に含まれるように構成されている場合、構成されたノードは「((<親標識>)<割り当てられた子階層同期レベル>)」といった再帰的形式を用いて標示される。根ノード105(ノード0)は、表記形式を初期化するべくN0と標示される。
このように、この標識化仕様によると、ネットワーク化ノード110(ノード1)は((N0)1)と標示され、それが第1の階層同期レベル405での根ノードN0の直系子ノードであることを示す。同様に、ネットワーク化ノード115(ノード2)および120(ノード3)は各々((N0)2)および((N0)3)と標示され、それらが各々の第2のレベル415および第3のレベル420での根ノードN0の直系子ノードであることを示す。加えて、ネットワーク化ノード130(ノード5)は(((N0)1)2)と標示され、それが第2のレベル415でのノード((N0)1)の直系子ノードであると同時にノード((N0)1)を介して関連する根ノードN0の間接的子ノードでもあることを示す。同様に、ネットワーク化ノード135(ノード6)は(((N0)1)3)と標示され、それが第3のレベル420でのノード((N0)1)の直系子ノードであると同時にノード((N0)1)を介して関連する根ノードN0の間接的子ノードでもあることを示す。加えて、ネットワーク化ノード124(ノード4)は(((N0)2)3)と標示され、それが第3のレベル420でのノード((NO)2)の直系子ノードであると同時にノード((NO)2)を介して関連する根ノードN0の間接的子ノードでもあることを示す。最後に、ネットワーク化ノード140(ノード7)は((((N0)1)2)3)と標示され、それが第3のレベル420でのノード(((N0)1)2)の直系子ノードであると同時に、ノード(((N0)1)2)を介して関連するノード((N0)1)の間接的子ノードならびにノード((N0)1)および(((N0)1)2)を介して関連する根ノードN0の間接的子ノードでもあることを示す。
図1の例示的なプロセス制御システム100のネットワーク化ノード105−140を図4の例示的な順次同期階層400を形成するように構成する例示的な構成手順が、図5A−図5Gに示されている。図5A−図5Gに示される例示的な構成手順は、親ノードとして動作するように構成される各ネットワーク化ノードが順次同期階層の一部分だけ(例えば、直接関連する全ての子ノードを含む一部分だけ)の構成をつかさどる分散型構成を利用する。高(概念)レベルで、例示的な構成手順は、順次同期階層400などの同期階層を以下の通り構成する。初期段階において、ノードは根ノードとなるように割り当てられる。その後、根ノードは、(i)取得した残りの利用可能なノードのリストからノードを選択し、(ii)新規選択されたノードの子孫となるべき一覧リストに含まれる残りの利用可能なノードの部分集合(例えば、半分)を割り当てることを繰返す。繰返し構成の各パスで根ノードは、同期階層において次に利用可能な階層同期レベルで根ノードに直接関連する直系子ノードとなるべき選択ノードを選抜するよう、選択ノードに構成メッセージを送る。また、構成メッセージは、選択ノードにそれの唯一の親ノードとして根ノードを取り扱わせる。加えて、構成メッセージは、新規構成された直系子ノードの子孫ノード集合となるように選択された残りの利用可能なノードの部分集合を含んでいる。この情報により、新規構成された直系子ノードが自身の子孫を構成することが可能になる。根ノードは、残りの利用可能なノードの一覧リストが空になるまでこの工程を実行する。
根ノードによる直系子ノードの構成と並行して(例えば、同時に)、直系子ノードとして根ノードにより選択された各ノードは、類似した繰返し方式で自身の子を各々構成する。例えば、上述の如く、繰返し構成の各パスで、根ノードは、残りの利用可能なノードの一覧リストからノードを選択して、根ノードの直系子ノードとなるべき特定の選択ノードを選抜するための構成メッセージを送信する。また、構成メッセージは、新規構成された直系子ノードの子孫ノードのセットとなるように選択された残りの利用可能なノードの部分集合も含んでいる。選択された子孫ノードのセットを受け取り次第、新規構成された直系子ノードは親ノードとして動作し、得られた(例えば、受け取った)子孫ノードのセットから選択した自身の直系子ノードの繰返し構成を開始する。具体的には、繰返し構成の各パスで、特定の親ノードは、(i)得られた残りの子孫ノード一覧リストから直系子ノードとなるべきノードを選択し、(ii)一覧リストに含まれる残りの子孫ノードの部分集合(例えば、半分)を新規選択された直系子ノードの子孫として割り当てる。根ノードの動作同様に、特定の親ノードはその後、次に利用可能な階層同期レベルで親ノードに直接関連する直系子ノードとなるべき選択ノードを選抜するための構成メッセージを選択ノードに送る。また、構成メッセージは、この新規構成された直系子ノードのために選択された子孫ノードのセットも含んでおり、それによって、直系子ノードが次いで自身の子孫を構成することを可能にする。この繰返し構成手順は、ネットワーク化ノードが全て同期階層に含まれるまで継続される。
図5Aに移って参照すると、図中、例示的なプロセス制御システム100上で実行される例示的な構成手順は、第1の構成繰返し処理505で始まり、この間で、根ノードとなるように選択されN0と標示されているネットワーク化ノード105(ノード0)が、ネットワーク化ノード110(ノード1)を例示的な順次同期階層400に含まれるように構成する。具体的には、根ノード105(ノード0→N0)は第1の階層同期レベル410でその直系子ノードとなるようにノード110(ノード1)を構成するので、ノード110(ノード1)は((N0)1)と標示される。以降、右向矢印(→)は、矢印の後に提示される標識により示されるネットワーク・ノードが例示的な同期階層400に割り当てられたことを表わす。第1の繰返し処理505において実行される構成処理の更なる局面が図5Bに示されている。
図5Bに示されるように、根ノード105(ノード0→N0)は、初期子孫ノードリスト510の形式で構成するために、残りの利用可能なノードの一覧リストを取得する。第1の構成繰返し処理505において、初期子孫ノードリスト510は、例示的なプロセス制御システム100におけるその他の全ての(例えば、各々N1−N7と標示された)ネットワーク化ノード110−140の一覧リストを含み、ユーザなどによる入力を介して根ノード105(ノード0→N0)により格納されるか又はアクセスできるか、或いはその両方であるネットワーク構成情報を介して取得されうる。根ノード105(ノード0→N0)はその後、(((N0)1)として表わされる)第1のレベル410でその直系子ノードとなるべきノード110(ノード1→((N0)1))を選択し、また、子孫のセット(例えば、N5−N7)となるべき初期子孫ノードリスト510に含まれる残りのノードの部分集合(例えば、半分)を選択して、選択一覧リスト512を形成する。その後、これら選択されたノードは、根ノード105(ノード0→N0)に関連する更新済み子孫ノードリスト514(例えば、N2−N4)を形成するために初期子孫ノードリスト510から取り除かれる。
また第1の構成繰返し処理505において、根ノード105(ノード0→N0)は、選択された子ノード110(ノード1→((N0)1))に構成メッセージを送信し、子ノード110に自身の唯一の親ノードとして根ノード105を認識させる。このように、選択されたノード110(ノード1→((N0)1))は、親ノード構成要素(構成エレメント)516に根ノード105(ノード0→N0)の識別子を格納する。また、根ノード105(ノード0→N0)からの構成メッセージには、子ノード110(ノード1→((N0)1))との関連付けのために選択された子孫のセット(例えば、N5−N7)も含まれる。従って、子ノード110(ノード1→((N0)1))は、受信した子孫のセット(例えば、N5−N7)を自身の初期子孫リスト518に格納する。このように、第1の構成繰返し処理505の終了時には、第1のレベル410に割り当てられたノード(例えば、ノード110)は、同期化実行中の情報(例えば、一以上のデータ・ファイル)を各々の親ノード(例えば、ノード105)から受信し始める準備ができる。
次に、図5Cに示される第2の構成繰返し処理520において、根ノード105(ノード0→N0)は、ネットワーク化ノード115(ノード2)を例示的な順次同期階層400に含めるよう構成する間、ほぼ同時にノード110(ノード1→((N0)1))は、ネットワーク化ノード130(ノード5)を例示的な順次同期階層400に含めるよう構成する。具体的には、根ノード105(ノード0→N0)は、第2の階層同期レベル415で自身の直系子ノードとなるようにノード115(ノード2)を構成することで、ノード115(ノード2)は((NO)2)と標示されるようになる。加えて、ノード110(ノード1→((N0)1))は、第2の階層同期レベル415で自身の直系子ノードとなるようにノード130(ノード5)を構成することで、ノード130(ノード5)は(((N0)1)2)と標示されるようになる。第2の繰返し処理520において実行される構成処理の更なる局面が図5Dに示されている。
図5Dに示されるように、第2の構成繰返し処理520において、根ノード105(ノード0→N0)は、第1の構成繰返し処理505中に作成された更新済みの子孫ノードリスト514に対応する初期子孫ノードリスト522を有する。初期子孫ノードリスト522は、根ノード105(ノード0→N0)により構成されることになる残りのネットワーク化ノード(例えば、N2−N4)の一覧リストを含んでいる。その後、根ノード105(ノード0→N0)は、第2のレベル415での直系子ノードとなるべきノード115(ノード2)(((NO)2)と表わされる)を選択することにより、また、選択された子ノード115(ノード2→((NO)2))に関連する子孫セット(例えば、N4)となるべき初期子孫ノードリスト522に含まれる残りのノードの部分集合(例えば、半分)を選択することにより、選択一覧リスト524を形成する。これら選択されたノードは、その後、根ノード105(ノード0→N0)に関連する更新済みの子孫ノードリスト526(例えば、N3)を形成するために初期子孫ノードリスト522から取り除かれる。加えて、根ノード105(ノード0→N0)は、選択された子ノード115(ノード2→((NO)2))へと構成メッセージを送信し、子ノード115に唯一の親ノードとして根ノード105を認識させる。このように、選択された子ノード115(ノード2→((NO)2))は、根ノード105(ノード0→N0)の識別子を親ノード構成要素516に格納する。更に子ノード115(ノード2→((NO)2))は、受信した構成メッセージに含まれている子孫のセット(例えば、N4)を自身の初期子孫一覧リスト530内に格納する。
また第2の構成繰返し処理520の間、および根ノード105(ノード0→N0)により行われる構成処理に実質的に並行して(例えば、同時に)、ノード110(ノード1→((N0)1))は、第1の構成繰返し処理505において作成された子孫ノードリスト518に対応する初期子孫ノードリスト532により、自身のノード構成を開始する。初期子孫ノードリスト532は、ノード110(ノード1→((N0)1))により構成されることになる残りのネットワーク化ノード(例えば、N5−N7)の一覧リストを含んでいる。その後、ノード110(ノード1→((N0)1))は、第2のレベル415でそれの直系子ノードとなるべきノード130(ノード5)((((N0)1)2)として表わされる)を選択することにより、また、選択された子ノード130(ノード5→(((N0)1)2))に関連する子孫のセット(例えば、N7)となるべき初期子孫ノードリスト532に含まれる残りのノードの部分集合(例えば、半分)を選択することにより、選択一覧リスト534を形成する。その後、これら選択されたノードは、ノード110(ノード1→((N0)1))に関連する更新済みの子孫ノードリスト536(例えば、N6)を形成するために初期子孫ノードリスト532から取り除かれる。加えて、ノード110(ノード1→((N0)1))は、選択された子ノード130(ノード5→(((N0)1)2))に構成メッセージを送信し、子ノード130に自身の唯一の親ノードとしてノード110を認識させる。これにより、選択された子ノード130(ノード5→(((N0)1)2))は、ノード110(ノード1→((N0)1))の識別子を親ノード構成要素538に格納する。更に子ノード130(ノード5→(((N0)1)2))は、受信した構成メッセージに含まれている子孫のセット(例えば、N7)を自身の初期子孫一覧リスト540に格納する。
このように、第2の構成繰返し処理520の終了時には、第2のレベル415に割り当てられたノード(例えば、ノード115および130)は、同期化実行中の情報(例えば、一以上のデータ・ファイル)を各々の親ノード(例えば、各々ノード105および110)から受信し始める準備ができる。
最後に、図5Eに示される第3の構成繰返し処理550中に、根ノード105(ノード0→N0)は、ネットワーク化ノード120(ノード3)を例示的な順次同期階層400に含まれるように構成する間、実質的に同一の時点でノード110(ノード1→((N0)1))と115(ノード2→((NO)2)および130(ノード5→(((N0)1)2)は、各々ネットワーク化ノード135(ノード6)、125(ノード4)および140(ノード7)を、例示的な順次同期階層400に含まれるように構成する。具体的には、根ノード105(ノード0→N0)は、第3の階層同期レベル420での直系子ノードとなるべきノード120(ノード3)を構成することで、ノード120(ノード3)は((N0)3)と標示されるようになる。加えて、ノード110(ノード1→((N0)1))は、第3の階層同期レベル420での直系子ノードとなるべきノード135(ノード6)を構成することで、ノード135(ノード6)は(((N0)1)3)と標示されるようになる。同様に、ノード115(ノード2→((NO)2)は、第3の階層同期レベル420での直系子ノードとなるようにノード125(ノード4)を構成することで、ノード125(ノード4)は(((N0)2)3)と標示されるようになる。更に、ノード130(ノード5→(((N0)1)2)は、第3の階層同期レベル420での直系子ノードとなるようにノード140(ノード7)を構成することで、ノード140(ノード7)は((((N0)1)2)3)と標示されるようになる。第3の繰返し処理550において行われる構成処理の更なる要素が図5F−5Gに示されている。
図5Fに示されるように、第3の構成繰返し処理550において、根ノード105(ノード0→N0)は、第2の構成繰返し処理520中に作成された更新済みの子孫ノードリスト526に対応する初期子孫ノードリスト552を有する。初期子孫ノードリスト552は、根ノード105(ノード0→N0)により構成されることになる残りのネットワーク化ノード(例えば、N3)の一覧リストを含んでいる。その後、根ノード105(ノード0→N0)は、第3のレベル420での直系子ノードとなるべきノード120(ノード3)(((N0)3)として表わされる)を選択することにより選択一覧リスト554を形成する。また、根ノード105(ノード0→N0)は、選択された子ノード120(ノード3→((N0)3))の子孫ノードとして選択できるノードが全く残っていないと判断する。その後、これ以上残りのノードを含んでいない更新済みの子孫ノードリスト556を形成するために選択ノードが初期子孫ノードリスト552から取り除かれる(根ノードの繰返し構成処理がこの繰返し処理とともに終了されることを示す)。加えて、根ノード105(ノード0→N0)は、選択された子ノード120(ノード3→((N0)3))に構成メッセージを送信し、子ノード120に自身の唯一の親ノードとして根ノード105を認識させる。これにより、選択された子ノード120(ノード3→((N0)3))は、親ノード構成要素558に根ノード105(ノード0→N0)の識別子を格納する。更に子ノード120(ノード3→((N0)3))は、関連する子孫ノードを一つも持っていないので、自身の初期子孫一覧リスト560は空のままである(子ノード120が例示的な同期階層400の葉ノードであることを示す)。
また第3の構成繰返し処理550の間、及び根ノード105(ノード0→N0)により行われる構成処理に実質的に並行して(例えば、同時に)、ノード110(ノード1→((N0)1))は、第2の構成繰返し処理520において作成された子孫ノードリスト536に対応する初期子孫ノードリスト562により自身のノード構成を開始する。初期子孫ノードリスト562は、ノード110(ノード1→((N0)1))により構成されることになる残りのネットワーク化ノード(例えば、N6)の一覧リストを含んでいる。その後、ノード110(ノード1→((N0)1))は、第3のレベル420での直系子ノードとなるべきノード135(ノード6)((((N0)1)3)として表わされる)を選択することにより選択一覧リスト564を形成する。また、ノード110(ノード1→((N0)1))は、選択された子ノード135(ノード6→(((N0)1)3))の子孫ノードとして選択できるノードが全く残っていないと判断する。その後、選択されたノードは、これ以上残りのノードを含んでいない更新済みの子孫ノードリスト566を形成するために初期子孫ノードリスト562から取り除かれる(このノードの繰返し構成がこの繰返し処理とともに終了されることを示す)。加えて、ノード110(ノード1→((N0)1))は、選択された子ノード135(ノード6→(((N0)1)3))に構成メッセージを送信し、子ノード135に自身の唯一の親ノードとしてノード110を認識させる。これにより、選択された子ノード135(ノード6→(((N0)1)3))は、ノード110(ノード1→((N0)1))の識別子を親ノード構成要素568に格納する。更に子ノード135(ノード6→(((N0)1)3))は関連する子孫ノードを全く持っていないので、自身の初期子孫一覧リスト570は空のままである(子ノード135が同期階層400の葉ノードであることを示す)。
図5Gに移って参照すると、第3の構成繰返し処理550の間、および根ノード105(ノード0→N0)とノード110(ノード1→((N0)1))により行われる構成処理に実質的に並行して(例えば、同時に)、ノード115(ノード2→((NO)2))は、第2の構成繰返し処理520中に作成された子孫ノードリスト530に対応する初期子孫ノードリスト572で自身のノード構成を開始する。初期子孫ノードリスト572は、ノード115(ノード2→((NO)2))により構成される残りのネットワーク化ノード(例えば、N4)の一覧リストを含んでいる。その後、ノード115(ノード2→((NO)2))は第3のレベル420での直系子ノードとなるべきノード125(ノード4)((((N0)2)3)として表わされる)を選択することにより選択一覧リスト574を形成する。また、ノード115(ノード2→((NO)2))は、選択された子ノード125(ノード4→(((N0)2)3))の子孫ノードとして選択できるノードが全く残っていないと判断する。その後、選択されたノードは、これ以上残りのノードを含んでいない更新済みの子孫ノードリスト576を形成するために初期子孫ノードリスト572から取り除かれる(このノードの繰返し構成がこの繰返し処理とともに終了されることを示す)。加えて、ノード115(ノード2→((NO)2))は、選択された子ノード125(ノード4→(((N0)2)3))に構成メッセージを送信し、子ノード125に自身の唯一の親ノードとしてノード115を認識させる。これにより、選択された子ノード125(ノード4→(((N0)2)3))は、ノード115(ノード2→((NO)2))の識別子を親ノード構成要素578に格納する。更に子ノード125(ノード4→(((N0)2)3))は関連する子孫ノードを全く持っていないので、自身の初期子孫一覧リスト580は空のままである(子ノード125が同期階層400の葉ノードであることを示す)。
また第3の構成繰返し処理550の間、および根ノード105(ノード0→N0)とノード110(ノード1→((N0)1)およびノード115(ノード2→((NO)2))により行われる構成処理と実質的に並行して(例えば、同時に)、ノード130(ノード5→(((N0)1)2))は、第2の構成繰返し処理520中に作成された、子孫ノードリスト540に対応する初期子孫ノードリスト582により自身のノード構成を開始する。初期子孫ノードリスト582は、ノード130(ノード5→(((N0)1)2))により構成される残りのネットワーク化ノード(例えば、N7)の一覧リストを含んでいる。その後、ノード130(ノード5→(((N0)1)2))は、第3のレベル420での直系子ノードとなるべきノード140(ノード7)(((((N0)1)2)3)として表わされる)を選択することにより選択一覧リスト584を形成する。また、ノード130(ノード5→(((N0)1)2))は、選択された子ノード140(ノード7→((((N0)1)2)3))の子孫ノードとして選択できるノードが全く残っていないと判断する。その後、選択されたノードは、これ以上残りのノードを含んでいない更新済みの子孫ノードリスト586を形成するために初期子孫ノードリスト582から取り除かれる(このノードの繰返し構成がこの繰返し処理とともに終了されることを示す)。加えて、ノード130(ノード5→(((N0)1)2))は、選択された子ノード140(ノード7→((((N0)1)2)3))に構成メッセージを送信し、子ノード140に自身の唯一の親ノードとしてノード130を認識させる。これにより、選択された子ノード140(ノード7→((((N0)1)2)3))は、ノード130(ノード5→(((N0)1)2))の識別子を親ノード構成要素588に格納する。更にノード140(ノード7→((((N0)1)2)3))は関連する子孫ノードを全く持っていないので、自身の初期子孫一覧リスト590は空のままである(子ノード140が同期階層400の葉ノードであることを示す)。
このように、第3の構成繰返し処理550の終了時に、第3のレベル420に割り当てられたノード(例えば、ノード120、125、135および140)は、各々の親ノード(例えば、各々ノード105、115、110および130)から同期化実行中の情報(例えば、データ・ファイル(複数可))を受信し始める準備ができる。なおまた、図示される実施例において、例示的な同期階層400の構成は、対応する第3の階層同期レベル420に割り当てられたノードが、その階層の葉ノードを形成する状態で第3の構成繰返し処理550が終了すると完了される。
図4の例示的な順次同期階層400を実施するために図1の例示的なプロセス制御システム100において使用されうる例示的な情報シンクロナイザ600のブロック図が図6に示されている。例示的な情報シンクロナイザ600は、例示的な順次同期階層400の少なくとも一部分の構成、ならびに例示的な順次同期階層400において同期を行うための情報(例えば、一以上のデータ・ファイル)の伝搬をサポートする。更に図示される実施例の情報シンクロナイザ600は、例示的なプロセス制御システム100の例示的なネットワーク化ノード105−140の一以上による実施及び使用の少なくともいずれかを意図したものである。
図6を参照すると、少なくとも例示的な順次同期階層400の一部分の構成をサポートするために、例示的な情報シンクロナイザ600は、ノード構成インターフェース605、ノード・セレクタ610、ノードリスト・セグメンタ615、子選抜インターフェース620およびノードリスト格納装置625を含む。例示的なノード構成インターフェース605は、例示的なプロセス制御システム100のネットワーク化ノード105−140の特定の一つと関連付けられる子孫ネットワーク化ノードセットの一覧リスト(本稿において「子孫ノードリスト」とも呼ばれる)を取得するように構成される。例えば、例示的な情報シンクロナイザ600が根ノード105(ノード0→N0)をサポートするように(例えば、根ノード105(ノード0→N0)より実施及び/又は構成されるように)構成されている場合には、例示的なノード構成インターフェース605が、利用可能なネットワーク構成、ユーザ入力などに基づいて子孫ノードリストを取得するように構成されうる。但し、もし例示的な情報シンクロナイザ600がノード110(ノード1→(N0)(1))をサポートするように構成されている場合には、例示的なノード構成インターフェース605は、ノード110の関連する親ノードすなわち根ノード105(ノード0→N0)により送信された構成メッセージから子孫ノードリストを取得するように構成されてもよい。子孫ノードリストがどのように取得されるかにかかわらず、例示的なノード構成インターフェース605は、子孫ノードリストを例示的なノードリスト格納装置625に格納するように構成されている。
例示的なノード・セレクタ610は、例示的な情報シンクロナイザ600によりサポートされる特定のネットワーク化ノードから同期化実行中の情報を直接受信するために、例示的なノードリスト格納装置625に格納された子孫ノードリストから一以上の直系子ノードを選択するように構成される。例示的な実施形態において、関連する親ノードに対して、ノード・セレクタ610は、直系子ノードとなるべき子孫ノードのリストから個々のノードを繰返し選択して、子孫ノードリストの更新版から別の直系子ノードを選択する前に、選択された直系子ノードの構成が完了するのを待つ。一以上の直系子ノードが選択された後、例示的なノード・セレクタ610は、例示的な情報シンクロナイザ600によりサポートされた特定のノード(例えば、親ノードとして作動しているノード)の直系子ノードとなるように選択されたノードを取り除くことにより例示的なノードリスト格納装置625に格納された子孫ノードリストを更新する。
また、例示的な情報シンクロナイザ600は、例示的なノードリスト格納装置625に格納された子孫ノードリストから、例示的な情報シンクロナイザ600によりサポートされた特定のネットワーク化ノードと間接的に関連付けられる間接的子ノードのセットを一以上選択するための例示的なノードリスト・セグメンタ615も含んでいる。例示的な実施形態において、ノードリスト・セグメンタ615は、同じ又は前回の繰返し処理中にノード・セレクタ610により選択された各々の直系子ノードを介して同期化実行中の情報を受信するために、間接的子ノードのセットとなるべき子孫ノードリストに残っているノードの一部分(例えば、半分)を繰返し選択するように構成される。このようにして、同期化実行中の情報が、例示的な情報シンクロナイザ600によりサポートされたネットワーク化ノードから直接にではなく、選択された直系子ノードを介して間接的に間接的子ノードのセットにより受け取られることになっている。間接的子ノードの一以上のセットが選択された後、例示的なノードリスト・セグメンタ615は、間接的子ノードの一以上の選択されたセットに含まれた一以上のノードを取り除くことにより例示的なノードリスト格納装置625に格納された子孫ノードリストを更新する。
例示的な子選抜インターフェース620は、例示的な情報シンクロナイザ600によりサポートされたネットワーク化ノード(例えば、親ノードとして動作しているネットワーク化ノード)から同期化実行中の情報を直接受け取るように、ノード・セレクタ610により選択された直系子ノードのそれぞれを構成するように動作する。加えて、子選抜インターフェース620は、構成中の直系子ノードに、例示的なノードリスト・セグメンタ615により選択された間接的子ノードの対応するセットを提供するように動作する。例えば、子選抜インターフェース620は、例示的なノードリスト・セグメンタ615により現在選択されている間接的ノードの一覧リストを含む構成メッセージを、例示的なノード・セレクタ610により現在選択されている直系子ノードに送信しうる。構成メッセージが受け取られ次第、このような構成メッセージは、受取り側の直系子ノードに、送り側のネットワーク化ノードを自身の親ノードとして取り扱わせることができる。加えて、新規構成された直系子ノードは、新規構成された直系子ノードを介して同期化実行中の情報を受信するように、受信した間接的子ノードのセットを構成し始めることができる。
上述のように、例示的なノードリスト格納装置625は、例示的な情報シンクロナイザ600によりサポートされたネットワーク化ノードの子孫ノードリストを格納するように構成される。例示的なノードリスト格納装置625はいかなるタイプの格納装置、記憶素子などにより実施しても良い。更に例示的なノードリスト記憶装置625は、例えばデータベースや、リンクで結合された一覧リストや、要素の配列などのような、あらゆる適切な形式で子孫ノードリストを格納しうる。
例示的な順次同期階層400に従って情報(例えば、一以上のデータ/構成ファイルなど)の同期をサポートするために、例示的な情報シンクロナイザ600は、同期化済みデータ受信インターフェース630と同期シーケンサ635および同期化済みデータ送信インターフェース640を含んでいる。例示的な同期化済みデータ受信インターフェース630は、例示的な情報シンクロナイザ600によりサポートされたネットワーク化ノードによる処理のため同期化実行中の情報を受信するように構成される。受信した情報は、一以上の受信データ(例えば、構成)ファイル、一以上のデータパケット、一以上のデータ入力などの形態をとりうる。例えば、例示的な情報シンクロナイザ600が根ノード105(ノード0→N0)をサポートするよう構成されている(例えば、根ノード105(ノード0→N0)による使用のために実施及び/又は構成されている)場合には、例示的な同期化済みデータ受信インターフェース630は、ユーザによるデータ入力及び/又はユーザにより更新されたデータ(例えば、構成)ファイルとして同期化実行中の情報を受信するように構成されうる。但し、もし例示的な情報シンクロナイザ600がノード110(ノード1→((N0)1))をサポートするように構成されている場合には、例示的な同期化済みデータ受信インターフェース630は、ノード110の親ノード、すなわち根ノード105(ノード0→N0)から、同期化実行中の情報を受信するように構成されうる。例示的な受信インターフェース630によりどのようにして同期化実行中のデータが受け取られることになっているかにかかわらず、受信した情報は例示的な同期シーケンサ635に従って同期化される。
図示される実施例では、同期シーケンサ635が、例示的な同期化済みデータ受信インターフェース630によって順次受信された情報を、例示的な情報シンクロナイザ600によりサポートされた親ノードの各直系子ノードへと伝搬するスケジュールを作成するように構成される。上述のように、例示的な実施形態では、例示的な同期階層400における特定の親ノードの各直系子ノードが、一意の階層同期レベルに割り当てられる。従って、このような例示的な実施形態において、同期シーケンサ635は、直系子ノードが割り当てられている一意の階層同期レベルに基づいて各直系子へと情報を順次伝搬するスケジュールを作成するように構成することができる。例えば、同期シーケンサ635は、直系子ノードが割り当てられている階層同期レベルの一意のセットにより定義される優先順位の降順で、サポートされている親ノードの直系子ノードを順次選択することにより、情報伝搬のスケジュールを作成しうる。言い換えると、このような例示的な実施形態では、同期シーケンサ635は、第1の階層同期レベルよりも低い優先度を有する第2の階層同期レベルと関連する第2の直系子ノードに情報を送信する前に第1の階層同期レベルと関連する第1の直系子ノードに対して同期化実行中の情報を送るスケジュールを作成するためのものである。
加えて、図示される実施例の同期シーケンサ635は、直系子ノードが自身の関連する子ノードを例示的な同期階層400に含めるための構成(例えば、選抜)を完了したかどうかにかかわらず、直系子ノードが例示的な子選抜インターフェース620による構成(例えば、選抜)が成功していることを条件として、同期化実行中の情報を直系子ノードに対して送るスケジュールを作成するように構成される。このようにして、例示的な同期シーケンサ635は、たとえ例示的な同期階層400全体の構成/形成が未完了でも直系子ノードに伝搬するための情報のスケジュールを作成することができる。更に例示的な同期シーケンサ635は、例示的な同期階層400において親ノードとして動作するように構成されたあらゆる他のノードにより行われている情報伝搬にかかわらず、各直系子ノードへの情報の伝搬のスケジュールを作成するよう自立的に動作するように構成される。例えば、第1の構成済み親ノードをサポートする例示的な同期シーケンサ635の第1のインスタンスが、同期化実行中の情報を第1の直系子ノードに送信するスケジュールを作成すると仮定すると、その後、例示的な各同期シーケンサ635は自立的に動作するので、例示的な同期シーケンサ635の第1のインスタンスは、サポートされた第1の親ノードの第2の直系子ノードに同期化実行中の情報を送信するスケジュールを作成しうる。一方で、その間に第1の直系子ノードをサポートする例示的な同期シーケンサ635の第2のインスタンスは、自身の一以上の直系子ノードへと同期化実行中の受信情報を再送信していてもよい。言い換えると、図示される実施例の同期シーケンサ635は、複数の親−子順次伝搬路に沿った情報の同時同期化をサポートする。
また、例示的な情報シンクロナイザ600には、例示的な同期シーケンサ635により作成されたスケジュールに基づいて一以上の直系子ノードへと同期化実行中の情報を送信するための同期化済みデータ送信インターフェース640も含まれている。例えば、同期化済みデータ送信インターフェース640は、任意の標準及びプロプライエタリ(独自仕様)の少なくともいずれかのデータ送信プロトコルに従って、一以上の受信データ(例えば、構成)ファイルや一以上のデータパケットなどの形式で同期化実行中の情報を送信してよい。
[0066]
また、例示的な情報シンクロナイザ600はエラー・プロセッサ645も含んでいる。図示される実施例のエラー・プロセッサ645は、例示的な情報シンクロナイザ600の階層構成および情報同期の両方に関する側面をサポートするように構成されている。例えば、エラー・プロセッサ645は、例示的な子選抜インターフェース620により送信された構成(例えば、選抜)メッセージが、指定受信者ノードにより受信されて認識されたかどうかを判断するように構成することができる。構成(例えば、選抜)メッセージが受信確認されると、例示的な情報シンクロナイザ600によりサポートされた受信先のノードが親ノードの直系子ノードとなるように適切に構成されたこと、そして構成(例えば、選抜)メッセージに含まれた間接的子ノードのあらゆるセットの直系子ノードによる受信が成功したことを、エラー・プロセッサ645は判断できる。しかし、もし構成(例えば、選抜)メッセージが受信確認されないと、エラー・プロセッサ645は、意図される受信先ノードの構成が不成功であったか、及び/又は受信先ノードが間接的子ノードのセットの受信に成功できなかったと判断できる。
[0066]
また、例示的な情報シンクロナイザ600はエラー・プロセッサ645も含んでいる。図示される実施例のエラー・プロセッサ645は、例示的な情報シンクロナイザ600の階層構成および情報同期の両方に関する側面をサポートするように構成されている。例えば、エラー・プロセッサ645は、例示的な子選抜インターフェース620により送信された構成(例えば、選抜)メッセージが、指定受信者ノードにより受信されて認識されたかどうかを判断するように構成することができる。構成(例えば、選抜)メッセージが受信確認されると、例示的な情報シンクロナイザ600によりサポートされた受信先のノードが親ノードの直系子ノードとなるように適切に構成されたこと、そして構成(例えば、選抜)メッセージに含まれた間接的子ノードのあらゆるセットの直系子ノードによる受信が成功したことを、エラー・プロセッサ645は判断できる。しかし、もし構成(例えば、選抜)メッセージが受信確認されないと、エラー・プロセッサ645は、意図される受信先ノードの構成が不成功であったか、及び/又は受信先ノードが間接的子ノードのセットの受信に成功できなかったと判断できる。
後者の場合、エラー・プロセッサ645は受信未確認を利用して、意図された受信先ノードが例示的なプロセス制御システム100から取り除かれており、よって取り除かれたノードの関連子孫ノードはいずれも上記で詳述されたように根ノードの子孫となるように再構成する必要があると更に判断できる。例示的な情報シーケンサ600が例示的な同期階層400の根ノード105(ノード0→N0)をサポートする場合において、意図された受信先ノードがシステム100から取り除かれているという例示的なエラー・プロセッサ645の判断によって、例示的なノードリスト記憶装置625に格納されている子孫ノードリストが取り除かれたノードのあらゆる子孫ノードを含むように更新されてよい。その後、例示的な情報シーケンサ600は、上述のように例示的な同期階層400に含まれるようにこれらのノードを再構成(例えば、最選抜)するために、更新済みの子孫一覧リストを処理しうる。
また、例示的なエラー・プロセッサ645は、例示的な同期化済みデータ送信インターフェース640により送られた情報が、意図された受信先ノードにより受け取られて受信確認されたと判断することにより、情報の同期化もサポートする。送信された情報が受信確認されると、エラー・プロセッサ645は、受信先ノードが適切に同期化実行中の情報を受信したことを判断でき、自身の子ノードについて情報を同期化し続けることができる。しかし、送信された情報が受信確認されないと、エラー・プロセッサ645は、意図された受信先ノードが情報の受信に成功しなかったと判断できる。後者の場合、エラー・プロセッサ645は受信未確認を利用して、意図された受信先ノードが例示的なプロセス制御システム100から取り除かれたと更に断できる。上述のように、意図された受信先ノードがシステム100から取り除かれたと例示的なエラー・プロセッサ645が判断すると、例示的なエラー・プロセッサ645は、例示的なノードリスト記憶装置625に格納されている子孫ノードリストを取り除かれたノードの子孫ノードで更新してよく、その場合、例示的な同期階層400に含まれるようにこれらのノードを再構成(例えば、選抜)することができる。
例示的な情報シンクロナイザ600を実施する例示的な方法が図6に示されているが、図6に示される要素、工程且つ又は装置の一以上は、その他いかなる方法で組み合わせても、分割しても、再配置しても、省略しても、削除しても、及び/又は実施しても良い。更に図6の例示的なノード構成インターフェース605、例示的なノード・セレクタ610、例示的なノードリスト・セグメンタ615、例示的な子選抜インターフェース620、例示的なノードリスト記憶装置625、例示的な同期化済みデータ受信インターフェース630、例示的な同期シーケンサ635、例示的な同期化済みデータ送信インターフェース640、例示的なエラー・プロセッサ645、及び(更に概して言うと)例示的な情報シンクロナイザ600の少なくとも一つは、ハードウェア、ソフトウェア、ファームウェア及びハードウェアの少なくとも一方、ソフトウェア及びファームウェアの少なくとも一方、のいかなる組み合わせによっても実施できる。よって、例えば、例示的なノード構成インターフェース605、例示的なノード・セレクタ610、例示的なノードリスト・セグメンタ615、例示的な子選抜インターフェース620、例示的なノードリスト記憶装置625、例示的な同期化済みデータ受信インターフェース630、例示的な同期シーケンサ635、例示的な同期化済みデータ送信インターフェース640、例示的なエラー・プロセッサ645、及び(更に概して言うと)例示的な情報シンクロナイザ600の少なくとも一つの任意のものを、一以上の回路、プログラム可能なプロセッサ、特定用途向け集積回路(ASIC)、プログラム可能論理回路(PLD)、及びフィールドプログラム可能論理回路(FPLD)などの少なくとも一つによって実施することも可能である。更に、図6の例示的な情報シンクロナイザ600は、図6に示されるものに加えて(又はその代わりに)一以上の要素、工程、装置、図示される要素、工程、および装置のいずれかを一つ以上(または全て)を含みうる。
図6の例示的なプロセス制御システム100、例示的なネットワーク化ノード105−140、例示的な順次同期階層400、例示的な情報シンクロナイザ600、例示的なノード構成インターフェース605、例示的なノード・セレクタ610、例示的なノードリスト・セグメンタ615、例示的な子選抜インターフェース620、例示的なノードリスト記憶装置625、例示的な同期化済みデータ受信インターフェース630、例示的な同期シーケンサ635、例示的な同期化済みデータ送信インターフェース640、及び例示的なエラー・プロセッサ645の少なくとも一つを、少なくとも部分的に実施するために実行されうる例示的な工程を表すフローチャートが、図7、図9および図11A−図11Bに示されている。これらの実施例において、各フローチャートにより表わされる工程は、(a)プロセッサ(図12に関して後述される例示的なコンピュータ1200内に示されるプロセッサ1212など)、(b)コントローラ、及び(c)その他任意の適切な装置の少なくとも一つにより実行されるための、機械可読命令を構成する一以上のプログラムにより実施されても良い。
前記一以上のプログラムは、例えばフラッシュメモリ、CD−ROM、フロッピー(登録商標)ディスク、ハードドライブ、DVD又はプロセッサ1212と関連付けられているメモリなどの有形媒体に格納されたソフトウェアにより具現化されうるが、その代わりに、プロセッサ1212以外の装置によってプログラム又は複数のプログラムの全体及び/又は一部分を実行することもできるし、ファームウェア又は専用ハードウェアにおいて具現化することもできる(例えば、特定用途向け集積回路(ASIC)、プログラム可能論理回路(PLD)、フィールドプログラム可能論理回路(FPLD)、離散論理、などにより実施することもできる)。
例えば、例示的なプロセス制御システム100、例示的なネットワーク化ノード105−140、例示的な順次同期階層400、例示的な情報シンクロナイザ600、例示的なノード構成インターフェース605、例示的なノード・セレクタ610、例示的なノードリスト・セグメンタ615、例示的な子選抜インターフェース620、例示的なノードリスト記憶装置625、例示的な同期化済みデータ受信インターフェース630、例示的な同期シーケンサ635、例示的な同期化済みデータ送信インターフェース640、及び例示的なエラー・プロセッサ645のいずれか又は全てを、ソフトウェア、ハードウェア、及びファームウェアの少なくとも一つの任意の組み合わせにより実施することができる。また、図7、図9および図11A−図11Bのフローチャートにより表わされる工程の幾つか又は全てをマニュアル操作で実施するようにしても良い。更に図7、図9および図11A−図11Bに示されるフローチャートを参照して例示的な工程が説明されているが、本明細書に記載される例示的な方法および装置を実施するために、その他多くの技法を代わりに使用しても良い。例えば、図7、図9および図11A−図11Bに示されるフローチャートに関して、ブロックの実行順序を変更しても良いし、記載されているブロックの幾つかを変更しても、削除しても、組み合わせても、複数以上のブロックに細分しても良い。
前記一以上のプログラムは、例えばフラッシュメモリ、CD−ROM、フロッピー(登録商標)ディスク、ハードドライブ、DVD又はプロセッサ1212と関連付けられているメモリなどの有形媒体に格納されたソフトウェアにより具現化されうるが、その代わりに、プロセッサ1212以外の装置によってプログラム又は複数のプログラムの全体及び/又は一部分を実行することもできるし、ファームウェア又は専用ハードウェアにおいて具現化することもできる(例えば、特定用途向け集積回路(ASIC)、プログラム可能論理回路(PLD)、フィールドプログラム可能論理回路(FPLD)、離散論理、などにより実施することもできる)。
例えば、例示的なプロセス制御システム100、例示的なネットワーク化ノード105−140、例示的な順次同期階層400、例示的な情報シンクロナイザ600、例示的なノード構成インターフェース605、例示的なノード・セレクタ610、例示的なノードリスト・セグメンタ615、例示的な子選抜インターフェース620、例示的なノードリスト記憶装置625、例示的な同期化済みデータ受信インターフェース630、例示的な同期シーケンサ635、例示的な同期化済みデータ送信インターフェース640、及び例示的なエラー・プロセッサ645のいずれか又は全てを、ソフトウェア、ハードウェア、及びファームウェアの少なくとも一つの任意の組み合わせにより実施することができる。また、図7、図9および図11A−図11Bのフローチャートにより表わされる工程の幾つか又は全てをマニュアル操作で実施するようにしても良い。更に図7、図9および図11A−図11Bに示されるフローチャートを参照して例示的な工程が説明されているが、本明細書に記載される例示的な方法および装置を実施するために、その他多くの技法を代わりに使用しても良い。例えば、図7、図9および図11A−図11Bに示されるフローチャートに関して、ブロックの実行順序を変更しても良いし、記載されているブロックの幾つかを変更しても、削除しても、組み合わせても、複数以上のブロックに細分しても良い。
例えば例示的な順次同期階層400による例示的なプロセス制御システム100のネットワーク化ノード105−140間で情報の同期化を行うために、図6の例示的な情報シンクロナイザ600の少なくとも一部分を実施するために実行されうる例示的な情報の同期化工程700が図7に示されている。例示的な実施形態において、例示的な情報同期工程700のインスタンスは、例えば、例示的な順次同期階層400を構成して複数の親−子順次伝搬路に沿ったデータの同期化を同時にサポートするために、例示的なネットワーク化ノード105−140のそれぞれにより実行される。例えば例示的なネットワーク化ノード105−140の任意の一つであり得る代表的なネットワーク化ノード(以下「インスタント・ノード」と呼ぶ)による実行について、例示的な情報同期工程700の動作が一般性を損なうことなく説明されている。例示的な情報同期工程700は、あらかじめ定められたイベント(例えば、例示的な工程700のスケジュール作成の実行割込など)の発生に基づきインスタント・ノードにより同期化対象の情報が受信される予め定められた間隔で、バックグラウンドで実行中の工程など(或いはその任意の組み合わせ)として継続的に、実行されることができる。
図7を参照すると、例示的な情報シンクロナイザ600が、インスタント・ノードにより同期化対象の情報(例えば、一以上のデータ/構成ファイル)を受信するブロック705で、例示的な情報同期工程700が開始される。
例えば、例示的な情報シンクロナイザ600に含まれる例示的な同期化済みデータ受信インターフェース630は、ブロック705で同期化実行中の情報を受信しうる。
更に、また上述のように、インスタント・ノードが例示的な同期階層400の根ノード105(ノード0→N0)である場合、ブロック705で例示的な同期化済みデータ受信インターフェース630が、ユーザにより提供された一以上の入力データエントリー及びデータ(例えば、構成)ファイルの少なくとも一方として同期化対象の情報を受信しうる。あるいは、インスタント・ノードが例示的な同期階層400の根ノード105(ノード0→N0)でない場合、ブロック705で例示的な同期化済みデータ受信インターフェース630は、インスタント・ノードと関連する親ノードからの伝搬を介して同期化対象の情報を受信しうる。
例えば、例示的な情報シンクロナイザ600に含まれる例示的な同期化済みデータ受信インターフェース630は、ブロック705で同期化実行中の情報を受信しうる。
更に、また上述のように、インスタント・ノードが例示的な同期階層400の根ノード105(ノード0→N0)である場合、ブロック705で例示的な同期化済みデータ受信インターフェース630が、ユーザにより提供された一以上の入力データエントリー及びデータ(例えば、構成)ファイルの少なくとも一方として同期化対象の情報を受信しうる。あるいは、インスタント・ノードが例示的な同期階層400の根ノード105(ノード0→N0)でない場合、ブロック705で例示的な同期化済みデータ受信インターフェース630は、インスタント・ノードと関連する親ノードからの伝搬を介して同期化対象の情報を受信しうる。
同期化対象の情報がブロック705で受信された後、ブロック710に制御が進み、例示的な情報シンクロナイザ600は、インスタント・ノードがいずれかの子孫ノードと関連するかどうかを判断する。例えば、ブロック710で、例示的な情報シンクロナイザ600に含まれる例示的な同期シーケンサ635は、インスタント・ノードが何らかの子孫ノードを有しているかどうか判断するために例示的なノードリスト記憶装置625に格納された子孫ノードリストにアクセスしてもよい。インスタント・ノードがいかなる子孫ノードとも関連していない場合には、インスタント・ノードは例示的な同期階層400の葉ノードであり、よって受信した情報をいずれの子ノードにも送る必要はない。その場合、例示的な工程700はその時点で終了する。但し、インスタント・ノードが一以上の子孫ノードと関連する場合には、インスタント・ノードはその直系子ノードへと受信した情報を更に送信する必要があるため、制御はブロック715に進む。
ブロック715で例示的な情報シンクロナイザ600は、同期化実行中の受信情報をインスタント・ノードの直系子ノードへの伝播(例えば、送信)に向けて準備する。例えば、ブロック715で同期シーケンサ635は、次の適切な直系子ノードへの伝搬に向けて準備中の受信した情報をバッファ処理してもよい。加えて、例示的な実施形態の幾つかでは、その情報の旧バージョンがまだ同期化段階の途中である時に新しいバージョンが受信された場合、ブロック715で例示的な同期シーケンサ635が一以上の直系の子ノードへの伝搬に向けて現在バッファ処理されている情報を上書きしてもよい。旧バージョンを新バージョンで上書きすることにより、情報の最新バージョンは、新バージョンが旧バージョンの同期化が完了するのを待たなければならなかった場合よりも速くインスタント・ノードの直系子ノードと同期化されうる。ブロック715で行われる情報上書き処理の例示的な動作が図8に示されており、また、以下より詳しく説明されている。
次に、ブロック720に制御が進み、例示的な情報シンクロナイザ600は、インスタント・ノードと関連する子孫ノードのいずれかがまだ例示的な同期階層400に含まれるように構成されていないと判断する。例えば、例示的な情報シンクロナイザ600に含まれる例示的な同期シーケンサ635は、ブロック720で、同期階層400に含まれるように構成(例えば、選抜)する必要がある何らかの子孫ノードが残っているかどうか判断するために、例示的なノードリスト記憶装置625に格納された子孫ノードリストにアクセスしうる。いずれかの子孫ノードがまだ構成を要する場合(ブロック720)、残りの未構成の子孫ノードの中から各々が一意の階層同期レベルで直系子ノードとなるべき一以上のノードを構成(例えば、選抜)するために、例示的な情報シンクロナイザ600が構成手順を行うブロック725に制御が進む。加えて、上述のように新規構成された直系子ノードの一以上と関連付けされるために間接的子ノードの一以上のセットに含まれるように、残りの未構成の子孫ノードの一以上を選択しうる。ブロック725で処理を行う例示的な工程が図9に示されており、また以下により詳しく説明されている。
次に、インスタント・ノードの直系子ノードとして選択されている一以上の未構成の子孫ノードの構成が成功したか(例えば、選抜されたか)を例示的な情報シンクロナイザ600が判断するブロック730へと制御が進む。図示される実施例において、ブロック730で例示的な情報シンクロナイザ600は、インスタント・ノードの直系子ノードとの関連付けのために選択されているいずれかの間接的子ノードの構成が成功したかどうかを考慮しない。これは、上述のように一以上の直系子ノードが構成されている限り同期を進めることができるためである。直系子ノードの構成が成功していない場合(ブロック730)、直系子ノードの構成が成功するまで例示的な情報シンクロナイザ600が待機するブロック735に制御が進む。直系子ノードの構成が成功した後、ブロック740に制御が進む。
ブロック740を発端として、例示的な情報シンクロナイザ600は、直系子ノードが関連する階層同期レベルのセットに応じた優先順位に基づき、インスタント・ノードの直系子ノードのそれぞれへと同期化実行中の情報を順次送信する。上述のように、各直系子ノードは、異なる同期優先度を持つ一意の階層同期レベルと関連付けられる。よって、インスタント・ノードの直系子ノードのセットに対応する階層同期レベルのセットは、同期化実行中の情報をインスタント・ノードの直系子ノードのそれぞれへと順次伝播するための優先順位付けを定義するのに使用されても良い。
この点を考慮して、例示的な情報シンクロナイザ600は、ブロック740で、同期化実行中の情報が順次伝播される残りの直系子ノードの中から最優先階層同期レベルと関連する直系子ノードを選択する。例えば、例示的な情報シンクロナイザ600に含まれる例示的な同期シーケンサ635は、ブロック740で、次の直系子ノードを同期スケジュールに向けて選択するべく直系子ノードと関連する階層同期レベルの一覧リストを処理するために例示的なノードリスト記憶装置625にアクセスしてもよい。次の直系子ノードがブロック740で選択された後、例示的な情報シンクロナイザ600が同期化実行中の情報を選択された直系子ノードに送信するブロック745に制御が進む。例えば、例示的な情報シンクロナイザ600に含まれる例示的な同期化済みデータ送信インターフェース640は、ブロック745で、同期化実行中の情報を、一以上のデータ(例えば、構成)ファイルや一以上のデータパケットなどの形式において選択された直系子ノードへと送信しうる。
次に、同期化実行中の情報がインスタント・ノードの全ての直系子ノードに順次送信されたかどうかを例示的な情報シンクロナイザ600が判断するブロック750に制御が進む。情報が全ての直系子ノードに送信されていない場合(ブロック750)、制御はブロック740に戻り、例示的な情報シンクロナイザ600が次の直系子ノードを選択するそれ以降のブロックは、同期化実行中の情報が順次伝播されることになっている階層的優先度の順序で進む。但し、情報が全ての直系子ノードに伝播されている場合(ブロック750)、例示的な工程700の実行はその時点で終了する。
図7の例示的な情報同期工程700のブロック715で行われる情報上書き処理の例示的な動作が図8に示されている。図8は、例示的な同期化済み情報に上書きする工程を示すために例示的な順次同期階層400の一部分を描いた図である。図示される実施例において情報ファイルの第1のバージョン805は同期化処理中であるため、例示的な同期階層400のノード間で伝播されている。この特定の実施例では、情報ファイルの第1のバージョン805が第1の同期繰返し処理中に第1の階層的レベル410で根ノード105(ノード0→N0)により受信されて、その子ノード110(ノード1→((N0)1))に伝播されている。
次に、第1の同期繰返し処理の後であるが第2の同期繰返し処理の前に、同じ情報ファイルの第2のバージョン810が、図示される実施例における同期化のために根ノード105(ノード0→N0)に提供される。そのため、第2の繰返し処理の前に根ノード105(ノード0→N0)は情報ファイルのローカルコピーを第2のバージョン810で更新するが、その子ノード110(ノード1→((N0)1))は依然として第1のバージョン805だけを持っている。その後、第2の同期繰返し処理中に、根ノード105(ノード0→N0)は、第1の階層的410レベルでの子ノード110(ノード1→((N0)1))へ情報ファイルの第2のバージョン810を送信する。一方でその間、ノード110は、第2の階層的415レベルでの子ノード130(ノード5→(((N0)1)2))に情報ファイルの第1のバージョン805を送信する。ノード110は、第2のバージョン810を第2の同期繰返し処理中に受け取るまでそれにアクセスできないので、依然として情報ファイルの第1のバージョン805を伝播する。
次に、ノード110(ノード1→((N0)1))は、残りの子ノードに情報ファイルの第1のバージョン805を順次伝播し続ける代わりに、例えば上記ブロック715の情報上書き処理を利用して、情報ファイルの第1のバージョン805を新規第2のバージョン810で上書きする。このようにして、ノード110(ノード1→((N0)1))は、第1のバージョン805の同期化が完了するのを待つことなく情報ファイルの第2のバージョン810を残りの直系子ノードへと直ちに伝播し始めることができる。よって、第3の同期繰返し処理中に、たとえ第1のバージョン805が依然として図示される例示的な同期階層400を介して伝播されている場合でも、ノード110(ノード1→((N0)1))は、第3の階層的415レベルでの子ノード135(ノード6→(((N0)1)3))に情報ファイルの第2のバージョン810を送信する。
例示的な順次同期階層400に含めるために例えば例示的なプロセス制御システム100のネットワーク化ノード105−140の一以上を構成するための図6の例示的な情報シンクロナイザ600の少なくとも一部分、及び図7のブロック725の少なくともいずれかにおいて処理を実施するために実行されうる例示的な階層ノード構成工程725が、図9に示されている。例示的な実施形態において、例示的な階層ノード構成工程725のインスタンスは、例えば各々のノードと関連する例示的な順次同期階層400の少なくとも一部分を構成するために例示的なネットワーク化ノード105−140のそれぞれにより実行される。このように、例示的な階層ノード構成工程725は、各ネットワーク化ノードが直接関連する子ノードを含む順次同期階層の一部分の構成をつかさどる親ノードとして動作できるような分散型構成を実施するのに使用しても良い。例示的な階層ノード構成工程725の動作は、例えば例示的なネットワーク化ノード105−140のいずれか一つであり得る代表的なネットワーク化ノード(以下「インスタント・ノード」と呼ぶ)による実行を背景(コンテキスト)として一般性を損なうことなく説明されている。例示的な階層ノード構成工程725は、あらかじめ定められたイベント(例えば、例示的な工程725のスケジュール作成の実行割込など)の発生に基づいて、バックグラウンドで実行中の工程などとして継続的に、又はこれらの任意の組み合わせに基づいて、例示的な同期階層400への包含に向けたノードの構成が行われることが予定(期待)されているあらかじめ定められた間隔で、実行されうる。
図9を参照すると、例示的な階層ノード構成工程725は、例示的な情報シンクロナイザ600がインスタント・ノードと関連することになる子孫ネットワーク化ノードのセットの一覧リスト(即ち子孫ノードリスト)を取得するブロック905で始まる。例えば、例示的な情報シンクロナイザ600に含まれる例示的なノード構成インターフェース605は、ブロック905で子孫ノードリストを取得し、例示的なノードリスト記憶装置625に一覧リストを格納することができる。更に上述のように、インスタント・ノードが例示的な同期階層400の根ノード105(ノード0→N0)である場合、ブロック905で例示的なノード構成インターフェース605は利用可能なネットワーク構成情報、ユーザ入力などに基づいて子孫ノードリストを取得することができる。あるいは、インスタント・ノードが例示的な同期階層400の根ノード105(ノード0→N0)でない場合、ブロック905で例示的なノード構成インターフェース605は、インスタント・ノードの関連する親ノードにより送信された構成メッセージから子孫ノードリストを取得することができる。
インスタント・ノードについて子孫ノードリストを取得した後、制御はブロック910に進み、子孫ノードリストが空かどうかを例示的な情報シンクロナイザ600が判断する。例えば、例示的な情報シンクロナイザ600に含まれた例示的なノード・セレクタ610は、ブロック910で、例示的なノードリスト記憶装置625から子孫ノードリストを読み出して、一覧リストが空かどうかを判断してもよい。子孫ノードリストが空でない場合(ブロック910)は構成されるべき子孫ノードが残っていることを示すので、制御はブロック915に進む。
ブロック915で、例示的な情報シンクロナイザ600は、子孫ノードリストにおける次に利用可能な子孫ノードの中から次に利用可能な階層同期レベルに割り当てられたインスタント・ノードの直系子ノードとなるべきものを選択する。例えば、例示的な情報シンクロナイザ600に含まれた例示的なノード・セレクタ610は、ブロック915で、例示的なノードリスト記憶装置625から子孫ノードリストを読み出して、インスタント・ノードの直系子ノードとなるべき次に残りの子孫ノードを選択してもよい。例示的なノード・セレクタ610は、選択された直系子ノードを取り除くことにより例示的なノードリスト記憶装置625に格納された子孫ノードリストを更新する。以下に詳述するように、選択された直系子ノードは、次に利用可能な階層同期レベルに割り当てられ、インスタント・ノードから同期化実行中の情報を直接受信するように構成されてよい。
次の直系子ノードが選択された後、ブロック920に制御が進み、例示的な情報シンクロナイザ600は、ブロック915で選択された直系子ノードを介してインスタント・ノードと関連する間接的子ノードのセットとなるように、子孫ノードリストから残りの子孫ノードのセットを選択する。例えば、例示的な情報シンクロナイザ600に含まれる例示的なノードリスト・セグメンタ615はブロック920で、例示的なノードリスト記憶装置625から子孫ノードリストを読み出して、ブロック915で選択された直系子ノードを介して同期化実行中の情報を受信するように構成される間接的子ノードとなるべき残りのノードの(例えば、残りのノードの数が奇数である場合は必要に応じて切り上げ又は切り捨てられる)半分を選択してもよい。
次に、ブロック925に制御が進み、例示的な情報シンクロナイザ600は、ブロック915で直系子ノードとなるように選択された子孫ノードを、インスタント・ノードと関連する直系子ノードのセットに含める。加えて、ブロック925で、例示的な情報シンクロナイザ600は、インスタント・ノードと関連する直系子ノードのセットが割り当てられている階層同期レベルのセットにおいて、次に利用可能な(例えば、最も低い優先順位の)階層同期レベルに、選択された直系子ノードを割り当てる。インスタント・ノードに関連し、この割り当てによって、例示的な同期階層400における一意の階層同期レベルと選択された直系子ノードが関連付けられるようになる。例示的な実施形態において、ブロック925で、例示的なノード・セレクタ610は、例示的なノードリスト記憶装置625内に保存されている直系子ノードリストに、選択された直系子ノードおよびその関連する階層同期レベルを含めることができる。
次に、ブロック930に制御が進み、例示的な情報シンクロナイザ600は、ブロック915で選択された間接的ノードのセットを、インスタント・ノードと関連する間接的子ノードの全体的な集合に含める。加えて、ブロック930で、例示的な情報シンクロナイザ600は、間接的子ノードの新規選択されたセットが、ブロック915で選択された直系子ノードを介してインスタント・ノードと関連することになることを示す。例えば、ブロック930で、例示的なノード・セグメンタ615は、間接的子ノードの新規選択されたセットと、それらの新規選択された直系子ノードとの関連付けを、例示的なノードリスト記憶装置625で保存されている間接的子ノードリストに含めることができる。
制御は次にブロック935に進み、例示的な情報シンクロナイザ600は、ブロック915で選択されたネットワーク化ノードを、例示的な同期階層400におけるインスタント・ノードの直系子ノードとなるように構成する。加えて、ブロック935で、例示的な情報シンクロナイザ600は、ブロック920で選択された間接的子ノードのセットを直系子ノードに提供し、直系子ノードが例示的な同期階層400に含めるための間接的子ノードのセットを構成し始めることを可能にする。例えば、ブロック935で、例示的な情報シンクロナイザ600に含まれた例示的な子選抜インターフェース620は、選択された直系子ノードに構成(例えば、選抜)メッセージ(直系子ノードと関連付けられることになる間接的子ノードのセットも記載されている)を送信しうる。このような実施例において受信した構成メッセージは、直系子ノードにインスタント・ノードを関連する親ノードとして見なさせ、間接的子ノードのセットの階層構成処理を開始させる。
ブロック935での処理が完了後、ブロック940に制御が進み、例示的な情報シンクロナイザ600は、ブロック915で選択された直系子ノードおよびブロック920で選択された間接的子ノードの対応するセットを取り除くことによりインスタント・ノードのための子孫ノードリストを更新する。このように、子孫ノードリストは、インスタント・ノードの未構成の子孫ノードを表わす。例えば、ブロック940で、例示的な情報シンクロナイザ600は、例示的なノードリスト記憶装置625に格納された子孫ノードリストを更新しいてよい。もちろん、子孫ノードリストが既に例えばブロック915および920での選択処理中に更新されている場合、ブロック940で行われる処理は不要であり、従って例示的な工程725からブロック940を取り除くことができる。その後、制御はブロック910およびそれ以降のブロックに戻り、例示的な情報シンクロナイザ600は、子孫ノードのインスタント・ノードの一覧リストに残っているネットワーク化ノードを構成し続ける。
ブロック910に戻り、子孫ノードリストが空の場合(ブロック910)は構成されるべき子孫ノードが残っていないことを示すので、制御はブロック945に進む。ブロック945で、例示的な情報シンクロナイザ600は、インスタント・ノードと関連する直系子ノードの構成が完了していることを示す。例えば、ブロック945で例示的な情報シンクロナイザ600は、直系子ノードの構成が完了していることを示すためにステータス信号をアサート(有効に)したり、ステータスメッセージを発行したりなどしても良い。
図4の例示的な順次同期階層400の一部分において分散型情報の同期化を行うための図7の例示的な情報同期工程700および図9の例示的な階層ノード構成工程725の複数のインスタンスの例示的な動作が、図10に示されている。具体的には、図10は、例示的な順次同期階層400に含まれる四つのノードにより行なわれる分散型情報同期とノード構成を示す。図示される実施例において、これら四つのノードのそれぞれは例示的な情報同期工程700および例示的な階層ノード構成工程725のインスタンスを実行するように構成される。
図10に移るとともに図4の例示的な順次同期階層400を参照すると、図示される例示的な動作は、ブロック1005で、根ノード105(ノード0→N0)が例示的な順次同期階層400において同期化対象の情報を受け取るとともに始まる。これに応じて、ブロック1010で根ノード105(ノード0→N0)が、ノード110(ノード1→((N0)1))をそれの第1の直系子ノードとなるように構成するために、例示的な階層ノード構成工程725のインスタンスの少なくとも一部分を起動する。加えて、ブロック1010では、工程725が、同期階層400への包含のためにノード110により構成される間接的子ノードの一覧リストをノード110に送信する。ノード110(ノード1→((N0)1))が構成された後、また関連する間接的子ノードのいずれかの構成が完了しているかどうかにかかわらず、ブロック1015で根ノード105(ノード0→N0)は、第1の直系子ノード110(ノード1→((N0)1))に同期化実行中の情報を送信するべく例示的な情報同期工程700のそれのインスタンスの少なくとも一部分を起発動する。従って、直系子ノード110(ノード1→((N0)1))は、ブロック1020で対応する親ノード105(ノード0→N0)から情報を受信する。
次に、各ノードが同期処理を自立的に行うことができるので、根ノード105(ノード0→N0)は、ノード110(ノード1→((N0)1))が自身の情報同期とノード構成を実行するのと実質的に同時に情報の同期化とノード構成を実行し続ける。より具体的には、ブロック1025で根ノード105(ノード0→N0)は、ノード115(ノード2→((NO)2))を第2の直系子ノードとなるように構成するために、例示的な階層ノード構成工程725のインスタンスの少なくとも一部分を起動する。加えて、ブロック1025で工程725は、同期階層400への包含に向けてノード115により構成されることになる間接的子ノードの一覧リストをノード115に送信する。ノード115(ノード2→((NO)2))が構成された後、また、関連する間接的子ノードのいずれかの構成が完了したかどうかにかかわらず、ブロック1030で根ノード105(ノード0→N0)は、第2の直系子ノード115(ノード2→((NO)2))に同期化実行中の情報を送信するべく、例示的な情報同期工程700のインスタンスの少なくとも一部分を起発動する。従って、直系子ノード115(ノード2→((NO)2))は、ブロック1035で、対応する親ノード105(ノード0→N0)から情報を受信する。
実質的に同時に、ブロック1040にてノード110(ノード1→((N0)1))は、親ノード105(ノード0→N0)から前回受け取った間接的ノードのセットを処理するために例示的な階層ノード構成工程725のインスタンスの少なくとも一部分を起動する。図示される実施例において、工程725はブロック1040で、ノード130(ノード5→(((N0)1)2))をノード110の第1の直系子ノードとなるように構成する。加えて、ブロック1040で工程725は、同期階層400への包含のためにノード130により構成されることになる間接的子ノードの一覧リストをノード130に送信する。ノード130(ノード1→(((N0)1)2))が構成された後、また、関連する間接的子ノードのいずれかの構成が完了したかどうかにかかわらず、ブロック1045でノード110(ノード1→((N0)1))は、ブロック1020で受信された情報を第1の直系子ノード130(ノード5→(((N0)1)2))に送信するために例示的な情報同期工程700のインスタンスの少なくとも一部分を起動する。従って、直系子ノード130(ノード5→(((N0)1)2))は、ブロック1050で対応する親ノード110(ノード1→((N0)1))から情報を受信する。
図10に示される例示的な動作におけるこの段階で、例示的なノード105(ノード0→N0)、110(ノード1→((N0)1))、115(ノード2→((NO)2))および130(ノード5→(((N0)1)2))はそれぞれ同期化実行中の情報を有する。各ノードが同期処理を自立的に実行することができるので、ノード105、110、115および120は、ほぼ同時に各々ブロック1055、1060、1065および1070で、例示的な同期階層400の各々の一部分について情報の同期化とノード構成を実行し続ける。
図4の例示的な同期階層400など、同期階層を監視するための例示的なネットワーク・トポロジ監視工程1100が図11A−図11Bに示されている。例示的な実施形態において、ネットワーク・トポロジ監視工程1100は、例示的な逐次同期階層400の根ノード105(ノード0→N0)により実行される。例示的なネットワーク・トポロジ監視工程1100は、あらかじめ定められたイベント(例えば、例示的な工程1100のスケジュール作成の実行割込など)の発生に基づいて、バックグラウンドで実行中の工程などとして継続的に、又はこれらの任意の組み合わせに基づいて、ネットワーク・トポロジの監視が行われることになっているあらかじめ定められた間隔で、実行されてよい。
図11Aに移って参照すると、例示的なネットワーク・トポロジ監視工程1100はブロック1105で始まり、根ノード105(ノード0→N0)をサポートする例示的な情報シンクロナイザ600が例示的な同期階層400を実施しているネットワーク・トポロジにおける変化を検出する。例えば、例示的な情報シンクロナイザ600に含まれた例示的なエラー・プロセッサ645は、ブロック1105で、既存のネットワーク化ノードが例示的な同期階層400から取り除かれたという指標、又は、新規ネットワーク化ノードが例示的なプロセス制御システム100に追加されており、例示的な同期階層400に含まれることになっているという指標を受信あるいは判断することの少なくともいずれかを行うことができる。例示的な実施形態において、例えば送信された構成メッセージ又は送信された同期化予定情報に応答して直系子ノードから受信確認が届かない場合にはノードが例示的な同期階層400から取り除かれた、と例示的なエラー・プロセッサ645は判断してよい。例示的なエラー・プロセッサ645は、ユーザにより提供された(或いはそれ以外の場合、例えば、ネームサーバやルータなど、別のネットワークで結合された装置から利用できるようになっているか又は問い合わせ(クエリー)されうる)ネットワーク構成情報から例示的な同期階層400にノードが加えられることになっていることも判断しうる。
ネットワーク・トポロジの変更を検出した後、ブロック1110に制御が進み、例示的な情報シンクロナイザ600は、取り除かれたネットワーク化ノードに検出された変更が対応するかどうか判断する。変更がネットワーク化ノードの削除に対応する場合(ブロック1110)、ブロック1115に制御が進み、例示的な情報シンクロナイザ600は、取り除かれたノードのあらゆる子孫ノードを根ノード105(ノード0→N0)の子孫となるように再構成し始め、取り除かれたノードの一以上の子孫ノードから選択された新規直系子を介して根ノード105に報告する。例えば、ブロック1115で、例示的な情報シンクロナイザ600は、該当するものがある場合、どのネットワーク化ノードが取り除かれたノードの子孫であったかを判断するために、根ノード105(ノード0→N0)をサポートする例示的なノードリスト記憶装置625から全体的な例示的同期階層400を説明するトポロジ構成情報を読み出しうる。
取り除かれたノードが少なくとも一つの子孫ノードを持っていたと仮定した場合、取り除かれたノードの子孫を再構成するために、ブロック1120に制御が進み、例示的な情報シンクロナイザ600は、根ノード105(ノード0→N0)の新しい直系子ノードとなるべき一以上の子孫ノードのうちの一つを選択する。例えば、ブロック1120で、例示的な情報シンクロナイザ600に含まれた例示的なノード・セレクタ610は、取り除かれたノードの子孫ノード群のうち最優先階層同期レベルに割り当てられた子孫ノードを選択してよい。あるいは、ランダムに、又はその他任意の選択基準に基づいて選択を行ってもよい。
ブロック1120で新しい直系子ノードが選択された後、ブロック1125に制御が進み、例示的な情報シンクロナイザ600は、根ノード105(ノード0→N0)に対して次に利用可能な階層同期レベルに、新規選択された直系子ノードを割り当てる。例えば、ブロック1125で、例示的な情報シンクロナイザ600は、根ノード105(ノード0→N0)と関連する直系子ノードのセットが割り当てられている階層同期レベルのセットにおいて次に利用可能な(例えば、最も低い優先順位)階層同期レベルに、選択された直系子ノードを割り当てる。その後、制御はブロック1130に進み、例示的な情報シンクロナイザ600は、ブロック1125で選択された直系子ノードを通じて根ノード105(ノード0→N0)と関連する間接的子ノードとなるように取り除かれたノードの残りの一以上の子孫ノードを選択する。
次に、ブロック1135に制御が進み、例示的な情報シンクロナイザ600は、根ノード105(ノード0→N0)に報告する直系子ノードのセット、および間接的子ノードの全体的なセット集合を記述するトポロジ情報を更新する。例えば、ブロック1135で、例示的な情報シンクロナイザ600は、例示的なノードリスト記憶装置625において根ノード105(ノード0→N0)のために保存された直系子ノードリストに、選択された直系子ノードおよび関連する階層同期レベルを含めることができる。加えて、例示的な情報シンクロナイザ600は、間接的子ノードの新規選択されたセット、および新規選択された直系子ノードとの関連付けを、例示的なノードリスト記憶装置625において根ノード105(ノード0→N0)のために保存された間接的子ノードリストに含めることができる。
次に、ブロック1140に制御が進み、例示的な情報シンクロナイザ600は、例示的な同期階層400において根ノード105(ノード0→N0)の直系子ノードとなるようにブロック1120で選択されたネットワーク化ノードを構成する。加えて、ブロック1140で、例示的な情報シンクロナイザ600は、ブロック1130で選択された間接的子ノードのセットを直系子ノードに提供して、直系子ノードが例示的な同期階層400への包含のために間接的子ノードのセットを構成し始めることを可能にする。例えば、ブロック1140で、例示的な情報シンクロナイザ600に含まれた例示的な子選抜インターフェース620は、選択された直系子ノードに構成(例えば、選抜)メッセージ(直系子ノードと関連することになる間接的子ノードのセットの記述も含む)を送信しうる。受信された構成メッセージは、直系子ノードに根ノード105(ノード0→N0)を関連する親ノードと見なさせ、間接的子ノードのセットの階層構成を開始させる。その後、取り除かれたネットワーク化ノードのあらゆる子孫ノードの再構築が完了し(ブロック1145)、制御が図11Bのブロック1150に進む。
図11Aのブロック1110に戻り、検出されたネットワーク・トポロジの変更がネットワーク化ノードの削除に相当しない場合、制御は図11Bのブロック1155に進み、例示的な情報シンクロナイザ600は、同期階層400に追加されるネットワーク化ノードに、検出された変更が対応するかどうか判断する。変更がネットワーク化ノードの追加に対応する場合(ブロック1155)、ブロック1160に制御が進み、例示的な情報シンクロナイザ600は、例示的な同期階層400において葉ノードの直系子ノードとなるように新しいネットワーク化ノードをランダムに割り当てる。上述のように、例示的な同期階層400における葉ノードは直系子ノードを有さないノードである。例示的な実施形態において、ブロック1160で、例示的な情報シンクロナイザ600は、どのネットワーク化ノードが例示的な同期階層400内の葉ノードか判断するために、全体的な例示的同期階層400を説明するトポロジ構成情報を、根ノード105(ノード0→N0)をサポートする例示的なノードリスト記憶装置625から読み出すことができる。その後、例示的な情報シンクロナイザ600は、読み出されたトポロジ構成情報から、同期階層400に追加される新規ネットワーク化ノードの親ノードとなるべき葉ノードの一つを選択しうる。
次に、ブロック1165に制御が進み、例示的な情報シンクロナイザ600は、全体的な例示的同期階層400を説明するトポロジ構成情報を更新する。例えば、ブロック1165で、例示的な情報シンクロナイザ600は、根ノード105(ノード0→N0)をサポートする例示的なノードリスト記憶装置625に格納される全体的な例示的同期階層400を説明(記述)するトポロジ構成情報を更新しうる。その後、ブロック1170に制御が進み、例示的な情報シンクロナイザ600は、ブロック1160で選択された葉ノードの直系子ノードとなるように新規追加されたネットワーク化されたノードを構成する。例えば、ブロック1170で、例示的な情報シンクロナイザ600に含まれる例示的な子選抜インターフェース620は、選択された葉ノードに構成(例えば、選抜)メッセージを送信し、それによって葉ノードに追加ノードを直系子ノードとして見なさせることができる。加えて、例示的な子選抜インターフェース620は、新規追加されたネットワーク・ノードに別の構成メッセージを送信し、選択された葉ノードを関連する親ノードとして見なさせることができる。その後、制御がブロック1150に進む。
ブロック1155に戻り、検出されたネットワーク・トポロジの変更がネットワーク化ノードの追加に相当しない場合、ブロック1175に制御が進み、例示的な情報シンクロナイザ600は、検出されたトポロジ変更のタイプが判定できない事例に対処するために、任意のいかなる適切なエラー処理を実行する。その後、制御はブロック1150に進む。
ブロック1150で、例示的な情報シンクロナイザ600は、例示的な順次同期階層400の全体的な構成を分析する。例えば、ブロック1150で、例示的なエラー・プロセッサ645(及び/又は、別のネットワーク監視機構)は、例示的な同期階層400を通じた一以上の親−子(または、具体的に言うと、親−子−子孫)伝搬路が例えばノードの追加及び削除の少なくともいずれかにより他のものよりも著しく長くなったため、同期階層400全体の再構築が要されるかどうかを判断するために、例示的な順次同期階層400のトポロジを監視してよい。その後、ブロック1180に制御が進み、例示的な情報シンクロナイザ600は、同期階層400全体の再構築が必要かどうか判断する。再構築が必要でない場合(ブロック1180)、例示的なネットワーク・トポロジ監視工程1100の実行は終了する。但し、再構築が必要な場合(ブロック1180)、制御はブロック1185に進む。
ブロック1185で、例示的な情報シンクロナイザ600は、既存の同期階層400を破棄し、順次同期階層400の再構築を開始する。例えば、ブロック1185で、例示的な情報シンクロナイザ600は、新規の例示的な順次同期階層400を形成するために例示的なプロセス制御システム100を含まれる現在のノードの再構築を開始するべく、図9の階層ノード構成工程725の幾つか又は全てを起動してよい。ブロック1185で再構築工程が完了すると、例示的なネットワーク・トポロジ監視工程1100の実行は終了する。
図12は、本明細書に開示される装置および方法を実施することができる例示的なコンピュータ1200のブロック図である。コンピュータ1200は、例えば、サーバー、パソコン、個人用デジタル情報処理端末(PDA)、インターネット家電、DVDプレーヤー、CDプレーヤー、ディジタル・ビデオ・レコーダ、パーソナル・ビデオ・レコーダー、セットトップ・ボックス又はその他任意のタイプのコンピュータ・デバイスであり得る。
ここに示した例示的なシステム1200は、汎用プログラム可能プロセッサなどのプロセッサ1212を含んでいる。プロセッサ1212は、ローカルメモリ1214を含んでおり、ローカルメモリ1214及び別のメモリデバイスの少なくともいずれか内にあるコード化された命令1216を実行する。プロセッサ1212は、図7、図9および図11A−図11Bに示される工程を実施するために、数ある中でも特に機械可読命令を実行しうる。プロセッサ1212は、Intel(登録商標)Centrino(登録商標)製品群に含まれるマイクロプロセッサー、Intel(登録商標)Pentium(登録商標)製品群に含まれるマイクロプロセッサー、Intel(登録商標)Itanium(登録商標)製品群に含まれるマイクロプロセッサー、及びIntel XScale(登録商標)製品群の少なくとも一つに含まれるプロセッサをはじめとする一以上のマイクロプロセッサーなど、任意のタイプの処理ユニットでありうる。もちろん、その他製品群に含まれるその他のプロセッサも適切である。
プロセッサ1212は、バス1222を介して揮発性メモリ1218および不揮発性メモリ1220を含むメインメモリーと通信する。揮発性メモリ1218は、静的ランダムアクセスメモリ(SRAM)、同期型動的ランダムアクセスメモリ(SDRAM)、動的ランダムアクセスメモリ(DRAM)、RAMBAS動的ランダムアクセスメモリ(RDRAM)(登録商標)、及びその他任意のタイプのランダムアクセスメモリ素子の少なくとも一つにより実施しうる。不揮発性メモリ1220は、フラッシュメモリ及びその他所望の任意のタイプのメモリ素子の少なくとも一つにより実施しうる。一般に、メインメモリー1218および1220へのアクセスは、メモリ・コントローラ(図示せず)により制御される。
また、コンピュータ1200はインターフェース回路1224も含んでいる。インターフェース回路1224は、イーサネット(登録商標)・インターフェース、ユニバーサル・シリアル・バス(USB)、及び、第三世代入出力(3GIO)インターフェースなどのうちの少なくとも一つの、任意のタイプのインターフェース標準により実施しうる。
一以上の入力装置1226がインターフェース回路1224に接続されている。一以上の入力装置1226は、ユーザがプロセッサ1212にデータとコマンドを入力することを可能にする。入力装置は、例えばキーボード、マウス、タッチスクリーン、トラックパッド、トラックボール、アイソポイント及び音声認識システムの少なくとも一つにより実施することができる、
一以上の出力装置1228もインターフェース回路1224に接続されている。出力装置1228は、例えば、表示装置(例えば、液晶表示装置、陰極線管(CRT)ディスプレー)、プリンタ、及びスピーカーの少なくとも一つにより実施できる。よって、インターフェース回路1224は一般にグラフィックス・ドライバ・カードを含んでいる。
また、インターフェース回路1224は、(例えば、イーサネット(登録商標)接続、デジタル加入者線(DSL)、電話回線、同軸ケーブル、携帯電話、などの)ネットワークを介して外部コンピュータとデータのやりとりを円滑に実施するためのモデム又はネットワークインターフェース・カードのような通信装置も含んでいる。
また、コンピュータ1200は、ソフトウェアとデータを格納するために一以上の大記憶装置1230を含んでいる。このような大記憶装置1230の例としては、フロッピー(登録商標)ディスク・ドライブ、ハードドライブ・ディスク、コンパクトディスクドライブおよびデジタル多用途ディスク(DVD)ドライブが挙げられる。大記憶装置1230は、例示的なノードリスト記憶装置625を実施することができる。あるいは、揮発性メモリ1218によって例示的なノードリスト記憶装置625を実施しても良い。
本明細書に記載される方法及び装置の少なくとも一つを図12の装置などのシステムにおいて実施する代わりに、本明細書に記載される方法及び装置の少なくとも一つを、プロセッサ及び/又はASIC(特定用途向け集積回路)などの構造体に埋め込んでも良い。
最後に、本明細書には特定の例示的な方法、装置および製造品を記載したが、本特許出願の適用範囲はこれらに限定されるものではない。本特許出願はむしろ、字義的に若しくは均等論に基づいて添付の特許請求の範囲内に公正に含まれる方法、装置および製造品の全てを網羅するものである。
Claims (40)
- 複数のネットワーク化ノードを備える階層同期トポロジ内で情報を同期化する方法であって、
第1のネットワーク化ノードを、第2および第3のネットワーク化ノードと直接関連する親ノードとなるように構成し、前記第2および第3のネットワーク化ノードは前記親ノードの第1および第2の直系子ノードとなるように各々が構成され、
前記第1の直系子ノードを通じて前記親ノードと間接的に関連する間接的子ノードの第1の集合となるその他のネットワーク化ノードを一以上選択し、
前記第1および第2の直系子ノードが関連する複数の階層同期レベルに基づいて、前記第1および第2の直系子ノードへ同期化実行中の情報を順次送信する一方、前記間接的子ノードの第1の集合には情報を送信しないように前記親ノードを構成すること、を含み、
前記親ノードが前記第2の直系子ノードに情報を送信する間に、前記第1の直系子ノードが前記間接的子ノードの第1の集合へと情報を伝播することを特徴とする方法。 - 前記第1の直系子ノードの直系子ノードとなるように更に構成された、前記間接的子ノードの第1の集合の中の少なくとも一つの間接的子ノードに、情報を送信するように、第1の直系子ノードを構成することを更に含む、請求項1に記載の方法。
- 前記第1および第2の直系子ノードが、複数の階層同期レベルのうちの一意の階層同期レベルと各々関連することを特徴とする、請求項1に記載の方法。
- 前記第1の直系子ノードが、前記間接的子ノードの第1の集合の中の間接的子ノードの少なくとも幾つかに情報を順次送信することを特徴とする、請求項1に記載の方法。
- 前記間接的子ノードの第1の集合が第1の部分集合および第2の部分集合を備え、
前記第1の直系子ノードが、階層同期レベルの第1の集合に応じて、前記間接的子ノードの第1の部分集合と直接関連し、
前記親ノードから情報を受信した後に、前記第1の直系子ノードが、関連する階層同期レベルの第1の集合に基づいて前記間接的子ノードの第1の部分集合に情報を順次送信する一方、前記間接的子ノードの第2の部分集合には情報を送信しないことを特徴とする、請求項4に記載の方法。 - 前記間接的子ノードの第1の部分集合の中の間接的子ノードが各々、階層同期レベルの第1の集合のうちの一意の階層同期レベルと関連することを特徴とする、請求項5に記載の方法。
- 前記第2の直系子ノードを通じて前記親ノードと間接的に関連する間接的ノードの第2の集合となる一以上のその他のネットワーク化ノードを選択することを更に含み、
前記親ノードから情報を受信した後に、前記第2の直系子ノードが、前記間接的子ノードの第2の集合が関連する階層同期レベルの第2の集合に基づいて、前期間接的子ノードの第2の集合の中の間接的子ノードの少なくとも幾つかに情報を順次送信することを特徴とする、請求項5に記載の方法。 - 前記第1の直系子ノードが前記親ノードから情報を受信した後に、前記第2の直系子ノードが前記親ノードから情報を受信するよう構成され、
前記第1の直系子ノードが、前記間接的子ノードの第1の部分集合の中の間接的子ノードに情報を順次送信する間に、前記第2の直系子ノードが、前記間接的子ノードの第2の集合の中の間接的子ノードに情報を順次送信することを特徴とする、請求項7に記載の方法。 - 第1の階層同期レベルに前記第1のネットワーク化ノードを関連付け、
前記第1の階層同期レベルよりも低い優先度を有している第2の階層同期レベルに前記第2のネットワーク化ノードを関連付け、
前記第2の階層同期レベルよりも低い優先度を有している第3の階層同期レベルに前記第3のネットワーク化ノードを関連付け、
前記第1の階層同期レベルよりも高い優先度を有する第4の階層同期レベルに第4のネットワーク化ノードを関連付けることにより、複数の階層同期レベルに応じて複数のネットワーク化ノードを構成することを更に含み、
前記第4のネットワーク化ノードが前記第1のネットワーク化ノードの唯一の親ノードとなるように構成されていることを特徴とする、請求項1に記載の方法。 - 前記第1のネットワーク化ノードが、前記第4のネットワーク化ノードから同期化実行中の情報を受信し、前記第3の階層同期レベルよりも高い優先度を有する前記第2の階層同期レベルに応じて前記情報をまず第2のネットワーク化ノードに送信し、その後に前記第3のネットワーク化ノードへと順次送信するように構成されることを特徴とする、請求項9に記載の方法。
- 前記第1のネットワーク化ノードを、前記第2のネットワーク化ノードを通して前記第1のネットワーク化ノードと関連する間接的子ノードとなるように構成された第5のネットワーク化ノードと関連付けることを更に含み、
前記第5のネットワーク化ノードが前記第3の階層同期レベルと関連し、
前記第1のネットワーク化ノードから同期化実行中の情報を受信後、前記第1のネットワーク化ノードが前記第3のネットワーク化ノードに前記情報を送信することになっている間に、前記第2のネットワーク化ノードが前記第5のネットワーク化ノードに前記情報を送信することを特徴とする、請求項10に記載の方法。 - 複数の階層同期レベルに応じて複数のネットワーク化ノードを構成することを更に含み、前記構成は、
複数のネットワーク化ノードから選択された一式の子孫ノードを、前記第1のネットワーク化ノードとの関連付けのために取得し、
前記一式の子孫ノードから、前記第1の直系子ノードとなり第1の階層同期レベルで前記第1のネットワーク化ノードと関連する第1の子孫ノードを選択し、
前記第1の階層同期レベルよりも低い優先度を有する対応する階層同期レベルの第1の集合に応じて、前記第1の直系子ノードを通して前記第1のネットワーク化ノードと関連する間接的子ノードの第1の集合となる、第1の子孫ノードを除いた一式の子孫ノードの第1の部分集合を選択し、 前記第1の子孫ノードと関連する唯一の親ノードとなるように前記第1のネットワーク化ノードを構成し、前記第1の子孫ノードが前記階層同期レベルの第1の集合に応じて前記間接的子ノードの第1の集合を構成し続けることを可能にするために、前記選択された第1の子孫ノードに前記選択された間接的子ノードの第1の集合を示すことによって、前記選択された第1の子孫ノードを前記第1のネットワーク化ノードの第1の直系子ノードとなるよう選抜することを含む、請求項1に記載の方法。 - 複数の階層同期レベルに応じて複数のネットワーク化ノードを構成することを更に含み、前記構成は、
前記第1の子孫ノードおよび子孫ノードの第1の部分集合を取り除くことにより一式の子孫ノードを更新し、
第2の直系子ノードとなり、第1の階層同期レベルよりも低い優先度を有する第2の階層同期レベルで第1のネットワーク化ノードと関連するべき第2の子孫ノードを子孫ノードの更新済み集合の中から選択し、
前記第1の子孫ノードが前記選択された第1の子孫ノードと関連する唯一の親ノードになることに加えて、第1の子孫ノードおよび第2の子孫ノードと関連する唯一の親ノードとなるように構成することで、前記第1のネットワーク化ノードの第2の直系子ノードとなるよう前記選択された第2の子孫ノードを選抜することを含む、請求項12に記載の方法。 - 複数の階層同期レベルに応じて複数のネットワーク化ノードを構成することを更に含み、前記構成は、
更に第2の子孫ノードを取り除くことにより子孫ノードの更新済みの集合を更新し、
第2の階層同期レベルよりも低い優先度を有する対応する階層同期レベルの第2の集合に応じて、前記第2の直系子ノードを通じて第1のネットワーク化ノードと関連する間接的子ノードの第2の集合となる、更に更新された子孫ノードの集合の第2の部分集合を選択し、
前記第2の子孫ノードが前記階層同期レベルの第2の集合に応じて間接的子ノードの第2の集合を構成し続けることを可能にするために、前記選択された第2の子孫ノードに対して前記間接的子ノードの第2の集合を示すことにより、第1のネットワーク化ノードの前記第2の直系子ノードとなるよう前記選択された第2の子孫ノードを選抜することを含む、請求項13に記載の方法。 - 複数のネットワーク化ノードの一つを、複数の同期レベルのうちの最優先同期レベルと関連する唯一の根ノードとなるように構成することを更に含む、請求項1に記載の方法。
- 新規ネットワーク化ノードの少なくとも一つがトポロジに加えられる場合、又は既存のネットワーク化ノードがトポロジから取り除かれる場合に、ネットワーク同期トポロジを再構成するためにネットワーク・トポロジの監視を行うことを更に含む、請求項1に記載の方法。
- 新規ネットワーク化ノードが加えられる場合に、前記ネットワーク・トポロジの監視が、
ネットワーク同期トポロジの中でいかなる子孫ノードとも関連しない葉ネットワーク化ノードをランダムに選択し、
前記選択された葉ネットワーク化ノードと直接関連する直系子ノードとなるように前記新規ネットワーク化ノードを構成することを含むことを特徴とする、請求項16に記載の方法。 - 既存のネットワーク化ノードが取り除かれる場合に、前記ネットワーク・トポロジの監視が、
取り除かれた既存のノードと以前関連していた第1の子孫ノードを、既に根ノードと直接関連するあらゆる既存の直系子ノードに対応するあらゆる既存の階層同期レベルよりも低い優先度を有する第1の階層同期レベルでネットワーク同期トポロジの根ノードと直接関連する直系子ノードとなるように構成し、
前記第1の子孫ノードを通して、及び第1の階層同期レベルよりも低い優先度を有する対応する階層同期レベルの集合に応じて、根ノードと間接的に関連するように、取り除かれた既存のノードと以前関連していたあらゆる残りの子孫ノードを構成することを含むことを特徴とする、請求項16に記載の方法。 - 機械可読命令を格納する製造品であって、前記機械可読命令が実行されると、機械に
第1のネットワーク化ノードを第2および第3のネットワーク化ノードと直接関連する親ノードとなるように構成させ、前記第2および第3のネットワーク化ノードは前記親ノードの第1および第2の直系子ノードとなるように各々構成され、
前記第1の直系子ノードを通じて親ノードと間接的に関連する間接的子ノードの第1の集合となるよう、その他のネットワーク化ノードを一以上選択させ、
前記第1および第2の直系子ノードが関連する複数の階層同期レベルに基づいて第1および第2の直系子ノードへと同期化実行中の情報を順次送信する一方、前記間接的子ノードの第1の集合には情報を送信しないように前記親ノードを構成させることを特徴とし、
前記親ノードが前記第2の直系子ノードに情報を送信する間、前記第1の直系子ノードは前記間接的子ノードの第1の集合に情報を伝播することを特徴とする、機械可読命令を格納する製造品。 - 前記第1および第2の直系子ノードが、複数の階層同期レベルのうちの一意の階層同期レベルと各々関連することを特徴とする、請求項19に記載の製造品。
- 前記間接的子ノードの第1の集合が第1の部分集合および第2の部分集合を備え、
前記第1の直系子ノードが、階層同期レベルの第1の集合に応じて前記間接的子ノードの第1の部分集合と直接関連し、
前記親ノードから情報を受信した後に、前記第1の直系子ノードが、関連する階層同期レベルの第1の集合に基づいて前記間接的子ノードの第1の部分集合に情報を順次送信する一方、前記間接的子ノードの第2の部分集合には情報を送信せず、
前記機械可読命令が実行されると更に機械に、前記第2の直系子ノードを通じて前記親ノードと間接的に関連する間接的ノードの第2の集合となるその他のネットワーク化ノードを一以上選択させ、
前記親ノードから情報を受信すると、前記間接的子ノードの第2の集合が関連する階層同期レベルの第2の集合に基づいて、前記第2の直系子ノードが、前記間接的子ノードの第2の集合の中の間接的子ノードの少なくとも幾つかに情報を順次送信することを特徴とする、請求項19に記載の製造品。 - 前記機械可読命令が実行されると更に機械に、複数の階層同期レベルに応じて複数のネットワーク化ノードを構成させ、前記構成が、
複数のネットワーク化ノードから選択された一式の子孫ノードを、第1のネットワーク化ノードとの関連付けのために取得し、
前記一式の子孫ノードから、第1の直系子ノードとなり第1の階層同期レベルで第1のネットワーク化ノードと関連する第1の子孫ノードを選択し、
前記第1の子孫ノードを除いた前記一式の子孫ノードの第1の部分集合を、第1の階層同期レベルよりも低い優先度を有する対応する階層同期レベルの第1の集合に応じて、第1の直系子ノードを通して第1のネットワーク化ノードと関連する間接的子ノードの第1の集合となるよう選択し、
前記第1の子孫ノードと関連する唯一の親ノードとなるように第1のネットワーク化ノードを構成することと、前記第1の子孫ノードが前記階層同期レベルの第1の集合に応じて前記間接的子ノードの第1の集合を構成し続けることを可能にするために、前記選択された第1の子孫ノードに選択された間接的子ノードの第1の集合を示すことにより、前記選択された第1の子孫ノードを第1のネットワーク化ノードの第1の直系子ノードとなるよう選抜する、ことを特徴とする請求項19に記載の製造品。 - ネットワーク化ノードにより取得された情報を同期化する装置であって、
前記ネットワーク化ノードから同期化実行中の情報を直接受信するために複数の直系子ノードを選択するノード・セレクタと、
間接的子ノードの一以上の集合を選択するノードリスト・セグメンタであって、前記間接的子ノードの各集合が、前記ネットワーク化ノードから直接にではなく各々の直系子ノードを通して同期化実行中の情報を受信することを特徴とする、ノードリスト・セグメンタと、
第1の階層同期レベルよりも低い優先度を有する第2の階層同期レベルと関連する第2の直系子ノードに情報を送信する前に、第1の階層同期レベルと関連する第1の直系子ノードに同期化実行中の情報を送信するスケジュールを作成する同期シーケンサと、を備え、
間接的子ノードの第1の集合が前記第1の直系子ノードを通して情報を受信し、
前記同期シーケンサは、前記第1の直系子ノードを通して同期化実行中の情報を受信するように前記間接的子ノードの第1の集合が構成されたかどうかにかかわらず、前記第1の直系子ノードが前記ネットワーク化ノードから情報を受信するように構成されると前記第1の直系子ノードに情報を送信するスケジュールを作成することを特徴とする、装置。 - 前記複数の直系子ノードおよび前記間接的子ノードの一以上の集合が、前記ネットワーク化ノードの子孫となるように選択された一式の子孫ネットワーク化ノードから選択されることを特徴とする、請求項23に記載の装置。
- 前記ネットワーク化ノードと関連する前記親ノードから前記一式の子孫ネットワーク化ノードの一覧リストを取得するためのノード構成インターフェースを更に含む、請求項24に記載の装置。
- 前記ネットワーク化ノードから同期化実行中の情報を直接受信するために複数の直系子ノードのそれぞれを構成し、各々の直系子ノードを通して同期化実行中の情報を受信するために、前記間接的子ノードの各集合の構成に向けて各々の直系子ノードに間接的子ノードの各集合を送信するための子選抜インターフェースを更に含む、請求項23に記載の装置。
- 前記同期シーケンサが、複数の直系子ノードが関連する複数の階層同期レベルに各々基づいて複数の直系子ノードに同期化実行中の情報を送信するスケジュールを作成するように更に構成されていることを特徴とする、請求項23に記載の装置。
- 前記同期シーケンサが、前記第1の直系子ノードが前記間接的子ノードの第1の集合における間接的子ノードに情報を再送している間に前記第2の直系子ノードに同期化実行中の情報を送信するスケジュールを作成するように更に構成されていることを特徴とする、請求項23に記載の装置。
- 前記ネットワーク化ノードから同期化実行中の情報を直接受信する第1の直系子ノードの構成に成功したかどうか、又は前記第1の直系子ノードへの情報の送信に成功したかどうかのうち少なくとも一つを判断するためのエラー・プロセッサを更に含む、請求項23に記載の装置。
- 前記複数の直系子ノードおよび前記間接的子ノードの一以上の集合が、前記ネットワーク化ノードの子孫となるように選択された一式の子孫ネットワーク化ノードから選択され、
前記エラー・プロセッサが更に、前記ネットワーク化ノードから同期化実行中の情報を直接受信するための第1の直系子ノードの構成の少なくとも一つが失敗したとの判断、又は、第1の子ノードへの情報の送信が失敗したとの判断に応答して、前記一式の子孫ネットワーク化ノードを更新するように構成されていることを特徴とする、請求項29に記載の装置。 - データ同期をサポートするためのデータネットワークであって、
複数の階層同期レベルを備える同期階層を実施するように構成可能な複数のネットワーク化ノードであって、第1の階層同期レベルに割り当てられた各ネットワーク化ノードが、第1の階層同期レベルよりも高い優先度を有する第2の階層同期レベルに割り当てられた一つの構成された親ノードから受信したデータを同期化するように構成可能であり、且つ第1の階層同期レベルよりも低い優先度をそれぞれ有する複数の階層同期レベルに一意に割り当てられた対応して構成された複数の子ノードへとデータを順次送信するように構成可能である、複数のネットワーク化ノードと、
同期階層の構成を開始するため、及び対応して構成された第1の複数の子ノードへと同期階層に基づいてデータを順次送信するために最優先の階層同期レベルに割り当て可能であり、同期化対象のデータを取得するように構成可能な根ノードであって、前記第1の複数の子ノードの中の第1の子ノードが、前記根ノードからデータを受信した後に、及び前記根ノードが前記第1の複数の子ノードの中の少なくとも1つの第2の子ノードへとデータを送信する間に、対応して構成された第2の複数の子ノードへと同期階層に基づいて順次データを送信するよう、第1の親ノードとなるようにも構成可能であることを特徴とする、根ノードと、
を備えるデータネットワーク。 - 前記第1の複数の子ノードの中の第2の子ノードが、前記根ノードからデータを受信した後、及び前記根ノードが子ノードの第1の集合の中の少なくとも1つの第3の子ノードにデータを送信する間に、対応して構成された第3の複数の子ノードへと同期階層に基づいて順次データを送信するために第2の親ノードとなるよう構成可能であることを特徴とする、請求項31に記載のデータネットワーク。
- 前記根ノードが、前記根ノードの子孫となる第1の複数の子ノードの構成の開始をつかさどるように構成可能であり、前記第1の子ノードが、前記第1の子ノードの子孫となる第2の複数の子ノードの構成の開始をつかさどるように構成可能であることを特徴とする、請求項31に記載のデータネットワーク。
- 前記根ノードが、前記同期階層から既存のネットワーク化ノードを取り除く処理を行うように更に構成されていることを特徴とし、前記取り除く処理が、
前記根ノードが、新規ネットワーク化ノードが関連付けられることになる同期階層の既存の葉ノードをランダムに決定することにより、前記新規ネットワーク化ノードを前記同期階層に追加するように更に構成されていることを特徴とする、請求項31に記載のデータネットワーク。 - 取り除かれた既存のノードと以前関連していた第1の子孫ノードを、前記根ノードに相対して最も低い階層同期レベルに割り当て、
前記第1の子孫ノードにデータを送信するように前記根ノードを構成し、前記根ノードから受信されたデータを同期化するように前記第1の子孫ノードを構成し、
あらゆる残りの子孫ノードを、第1の子孫ノードの子孫となるように構成すること、を含む、請求項31に記載のデータネットワーク。 - 複数のネットワーク化ノード間で情報を同期化する方法であって、
同期化実行中の情報を親ノードで受信し、
前記親ノードから第1のノード集合に含まれるそれぞれのノードに前記情報を順次送信し、
前記第1のノード集合の中の第1のノードにより前記情報が受信された後に前記第1のノードから第2のノード集合のそれぞれのノードに前記情報を順次送信することを含み、
前記親ノードが、前記第1のノード集合に含まれる第1のノード以外のノードの少なくとも幾つかに情報を送信することと同時に、前記第1のノードが、前記第2のノード集合の中のノードの少なくとも幾つかに情報を送信することを特徴とする、方法。 - 前記第1のノード集合のそれぞれのノードが、前記第2のノード集合のそれぞれのノードとは異なることを特徴とする、請求項36に記載の方法。
- 前記情報にデータ・ファイルが含まれることを特徴とする、請求項36に記載の方法。
- 前記第1のノード集合の中の第2のノードにより情報が受信された後、第2のノードから、第3のノード集合に含まれるそれぞれのノードに前記情報を順次送信することを更に含み、
前記第1のノードが前記第2のノード集合の少なくとも幾つかのノードに情報を送信し、前記親ノードが、前記第1のノード集合の中の第1および第2のノード以外のノードの少なくとも幾つかに前記情報を送信することと同時に、前記第2のノードが、前記第3のノード集合の少なくとも幾つかのノードに前記情報を送信することを特徴とする、請求項36に記載の方法。 - 前記親ノードで同期化実行中の情報を受信することは、前記情報の第1のバージョンを受信することを含むことを特徴とし、
前記親ノードが前記第1のノードに前記情報の第1のバージョンを送信した後であって、前記親ノードが前記第1のノード集合の中の第2のノードに前記情報の第1のバージョンを送信する前に、同期化実行中の情報の第2のバージョンを前記親ノードで受信し、
前記第2のノードに対して、及び前記第1のノードが前記第2のノード集合に含まれるノードの少なくとも幾つかへと前記情報の第1のバージョンを送信することと同時に、前記親ノードからの前記情報の第1のバージョンの代わりに前記情報の第2のバージョンを送信することを更に含む、請求項36に記載の方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/134,563 US7793002B2 (en) | 2008-06-06 | 2008-06-06 | Methods and apparatus for implementing a sequential synchronization hierarchy among networked devices |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009296595A true JP2009296595A (ja) | 2009-12-17 |
JP2009296595A5 JP2009296595A5 (ja) | 2013-03-07 |
Family
ID=40936910
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009137010A Pending JP2009296595A (ja) | 2008-06-06 | 2009-06-08 | 階層同期トポロジ内で情報を同期化する方法、装置、製造品、及びデータネットワーク |
Country Status (5)
Country | Link |
---|---|
US (1) | US7793002B2 (ja) |
EP (1) | EP2131511A2 (ja) |
JP (1) | JP2009296595A (ja) |
CN (1) | CN101599881A (ja) |
GB (1) | GB2460520B (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018520542A (ja) * | 2015-06-26 | 2018-07-26 | セインチップス テクノロジー カンパニーリミテッド | 交換ネットワークの同期方法及び交換装置、アクセス装置、記憶媒体 |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9686123B2 (en) * | 2015-10-19 | 2017-06-20 | Blackfire Research Corporation | System for media distribution and rendering on spatially extended wireless networks |
US8291143B1 (en) * | 2009-02-11 | 2012-10-16 | Brocade Communication Systems, Inc. | Single line communication |
US20100332634A1 (en) * | 2009-06-25 | 2010-12-30 | Keys Gregory C | Self-distribution of a peer-to-peer distribution agent |
US8996453B2 (en) | 2009-09-30 | 2015-03-31 | Red Hat, Inc. | Distribution of data in a lattice-based database via placeholder nodes |
US9031987B2 (en) * | 2009-09-30 | 2015-05-12 | Red Hat, Inc. | Propagation of data changes in distribution operations in hierarchical database |
US8984013B2 (en) | 2009-09-30 | 2015-03-17 | Red Hat, Inc. | Conditioning the distribution of data in a hierarchical database |
EP2537380B1 (en) * | 2010-02-15 | 2016-12-14 | Nokia Solutions and Networks Oy | Synchronisation in a communication system |
CN102143194A (zh) * | 2010-06-10 | 2011-08-03 | 华为技术有限公司 | 数据同步的方法、系统、中间数据节点及终止数据节点 |
WO2012050206A1 (ja) * | 2010-10-15 | 2012-04-19 | 三洋電機株式会社 | 管理システム |
JP5776339B2 (ja) * | 2011-06-03 | 2015-09-09 | 富士通株式会社 | ファイル配布方法、ファイル配布システム、マスタサーバ、及びファイル配布プログラム |
US8934352B2 (en) | 2011-08-30 | 2015-01-13 | At&T Intellectual Property I, L.P. | Hierarchical anomaly localization and prioritization |
DE102012210243B4 (de) * | 2012-06-18 | 2017-12-28 | Siemens Aktiengesellschaft | Verfahren zum Übertragen von Datenpaketen in einem Kommunikationsnetzwerk und Kommunikationsnetzwerk |
US10078474B1 (en) * | 2012-06-29 | 2018-09-18 | Emc Corporation | Method of maintaining list of scratch volumes in shared filesystems across multiple nodes |
US20150319723A1 (en) * | 2013-01-18 | 2015-11-05 | Nokia Technologies Oy | Controlled synchronization group selection |
US9819548B2 (en) * | 2013-01-25 | 2017-11-14 | Cisco Technology, Inc. | Shared information distribution in a computer network |
CN104937582B (zh) | 2013-02-27 | 2018-11-06 | 惠普发展公司,有限责任合伙企业 | 数据同步 |
US9519490B2 (en) * | 2013-03-07 | 2016-12-13 | Microsoft Technology Licensing, Llc | Adaptive data synchronization |
US20140317256A1 (en) * | 2013-04-17 | 2014-10-23 | Cisco Technology, Inc. | Loop and Outage Avoidance in Software Defined Network |
US10229181B2 (en) * | 2013-07-16 | 2019-03-12 | Pankaj Sharma | System and method for synchronizing data between communication devices in a networked environment without a central server |
JP6204100B2 (ja) * | 2013-07-23 | 2017-09-27 | 株式会社Nttドコモ | 無線基地局及び無線通信方法 |
JP6195981B2 (ja) | 2013-09-27 | 2017-09-13 | ノキア テクノロジーズ オーユー | 無線装置を同期するための方法および装置 |
US9588983B2 (en) | 2013-10-17 | 2017-03-07 | Microsoft Technology Licensing, Llc | Data classification for adaptive synchronization |
US9264318B2 (en) * | 2013-10-31 | 2016-02-16 | Google Inc. | Synchronized distributed networks with frictionless application installation |
US9391844B2 (en) * | 2014-01-15 | 2016-07-12 | Dell Products, L.P. | System and method for network topology management |
US10111195B2 (en) | 2014-08-07 | 2018-10-23 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods implemented in access nodes for maintaining synchronization in radio access network and associated access nodes |
US10504034B2 (en) * | 2015-01-27 | 2019-12-10 | Huawei Technologies Co., Ltd. | Systems, devices and methods for distributed content interest prediction and content discovery |
CN105988997B (zh) * | 2015-01-27 | 2019-11-26 | 珠海金山办公软件有限公司 | 一种基于层级架构的数据同步方法及装置 |
US10083494B2 (en) | 2015-01-30 | 2018-09-25 | Huawei Technologies Co., Ltd. | Systems, devices and methods for distributed content pre-fetching to a user device |
US9854038B2 (en) * | 2015-09-21 | 2017-12-26 | Facebook, Inc. | Data replication using ephemeral tree structures |
CN105611621B (zh) * | 2016-01-14 | 2019-03-29 | 南京航空航天大学 | 一种适用于多跳无线传感器网络的主从同步方法 |
CN108289300B (zh) * | 2017-01-10 | 2021-08-03 | 中兴通讯股份有限公司 | 一种支持分布式多场景的基站及其创建、通信方法 |
US10831783B2 (en) * | 2017-04-25 | 2020-11-10 | Salesforce.Com, Inc. | Updating a hierarchical data structure |
US10754831B2 (en) | 2017-04-25 | 2020-08-25 | Salesforce.Com, Inc. | Generating a hierarchical data structure |
US10244495B1 (en) * | 2017-09-28 | 2019-03-26 | Hong Kong Applied Science And Technology Research Institute Co., Ltd. | Systems and methods for synchronization signal timeslot reselection for synchronization target selection in networks |
CN109873714B (zh) * | 2019-01-04 | 2023-12-22 | 平安科技(深圳)有限公司 | 云计算节点配置更新方法及终端设备 |
CN110972164B (zh) * | 2019-12-04 | 2023-02-03 | 深圳市国电科技通信有限公司 | 用于无线自组织网络的升级方法及系统 |
US11681677B2 (en) * | 2020-02-27 | 2023-06-20 | EMC IP Holding Company LLC | Geographically diverse data storage system employing a replication tree |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS53148911A (en) * | 1977-05-31 | 1978-12-26 | Toshiba Corp | Facsimile communication system |
JPS57206147A (en) * | 1981-06-15 | 1982-12-17 | Fujitsu Ltd | Multiaddress calling system |
JPH0344972U (ja) * | 1989-09-05 | 1991-04-25 | ||
JPH0530105A (ja) * | 1991-07-23 | 1993-02-05 | Danatsukusu:Kk | カスケード通信方式 |
JPH06276584A (ja) * | 1993-03-19 | 1994-09-30 | Hitachi Telecom Technol Ltd | 端末群の制御方法 |
JPH06303249A (ja) * | 1993-04-14 | 1994-10-28 | Mitsubishi Electric Corp | データ転送システム |
JPH0936858A (ja) * | 1995-07-19 | 1997-02-07 | Fujitsu Ltd | 情報転送方法及び情報転送装置 |
JPH0936856A (ja) * | 1995-07-21 | 1997-02-07 | Nippon Denki Ido Tsushin Kk | 同報データ転送方式 |
JPH09149070A (ja) * | 1995-11-24 | 1997-06-06 | Mk Seiko Co Ltd | データ転送方法およびそれを用いたデータ転送装置 |
JPH09214552A (ja) * | 1996-01-31 | 1997-08-15 | Fujitsu Ltd | ファイル配信装置および配信中点決定方法 |
JPH118621A (ja) * | 1997-06-18 | 1999-01-12 | Nippon Telegr & Teleph Corp <Ntt> | 電子ファイル配送方法及び該方法を実現するためのプログラムを記録した記録媒体 |
JPH1155259A (ja) * | 1997-08-07 | 1999-02-26 | Nippon Telegr & Teleph Corp <Ntt> | マルチプロセッサシステムおよびデータ転送方法 |
JP2000174750A (ja) * | 1998-12-04 | 2000-06-23 | Toshiba Corp | 端末装置と監視システムと監視システムの監視方法 |
JP2001061046A (ja) * | 1999-08-23 | 2001-03-06 | Murata Mach Ltd | 通信端末装置 |
JP2002319937A (ja) * | 2001-04-20 | 2002-10-31 | Nec Corp | データ配信システム |
JP2003218896A (ja) * | 2002-01-17 | 2003-07-31 | Fujitsu Ltd | データ転送方法及び装置 |
JP2006319466A (ja) * | 2005-05-10 | 2006-11-24 | Brother Ind Ltd | 情報配信システム、処理プログラム、管理プログラム及び情報配信方法等 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5832487A (en) | 1994-12-15 | 1998-11-03 | Novell, Inc. | Replicated object identification in a partitioned hierarchy |
CA2227431C (en) | 1995-07-20 | 2001-05-15 | Novell, Inc. | Transaction log management in a disconnectable computer and network |
US5924094A (en) | 1996-11-01 | 1999-07-13 | Current Network Technologies Corporation | Independent distributed database system |
US7302446B1 (en) | 1996-11-13 | 2007-11-27 | Intellisync Corporation | Synchronizing databases |
US5787439A (en) | 1996-12-13 | 1998-07-28 | Novell, Inc. | Method and system for maintaining a preferred sequence for accessing a plurality of objects |
US6343299B1 (en) | 1998-11-16 | 2002-01-29 | International Business Machines Corporation | Method and apparatus for random update synchronization among multiple computing devices |
US6681370B2 (en) | 1999-05-19 | 2004-01-20 | Microsoft Corporation | HTML/XML tree synchronization |
US6751248B1 (en) * | 1999-12-07 | 2004-06-15 | Koninklijke Philips Electronics N.V. | Method for nodes in a multi-hop wireless network to acquire and maintain synchronization with a master node |
US6484172B1 (en) | 1999-12-24 | 2002-11-19 | Electronics And Telecommunications Research Institute | Concurrency control method for high-dimensional index structure using latch and lock |
US6615223B1 (en) | 2000-02-29 | 2003-09-02 | Oracle International Corporation | Method and system for data replication |
US20040168174A1 (en) | 2000-03-08 | 2004-08-26 | Baker Tyler Foley | System for object cloing and state synchronization across a network node tree |
US6868414B2 (en) | 2001-01-03 | 2005-03-15 | International Business Machines Corporation | Technique for serializing data structure updates and retrievals without requiring searchers to use locks |
US7165248B2 (en) | 2001-06-04 | 2007-01-16 | Sun Microsystems, Inc. | File tree conflict processor |
US7085779B2 (en) | 2001-06-04 | 2006-08-01 | Sun Microsystems, Inc. | File tree change reconciler |
US6968372B1 (en) | 2001-10-17 | 2005-11-22 | Microsoft Corporation | Distributed variable synchronizer |
US7117491B2 (en) | 2002-08-29 | 2006-10-03 | International Business Machines Corporation | Method, system, and program for determining whether data has been modified |
US8200789B2 (en) * | 2004-10-12 | 2012-06-12 | International Business Machines Corporation | Method, system and program product for automated topology formation in dynamic distributed environments |
US7734585B2 (en) | 2004-12-03 | 2010-06-08 | Oracle International Corporation | Updateable fan-out replication with reconfigurable master association |
US7505450B2 (en) * | 2005-03-23 | 2009-03-17 | Cisco Technology, Inc. | Configuration of failure and acquire timeouts to facilitate recovery from failures in hierarchical mesh networks |
US7953696B2 (en) | 2005-09-09 | 2011-05-31 | Microsoft Corporation | Real-time synchronization of XML data between applications |
US7953785B2 (en) | 2006-06-30 | 2011-05-31 | Microsoft Corporation | Content synchronization in a file sharing environment |
US20080005195A1 (en) | 2006-06-30 | 2008-01-03 | Microsoft Corporation | Versioning synchronization for mass p2p file sharing |
US7506011B2 (en) | 2006-07-26 | 2009-03-17 | International Business Machines Corporation | System and apparatus for optimally trading off the replication overhead and consistency level in distributed applications |
US8996668B2 (en) * | 2006-08-04 | 2015-03-31 | Alcatel Lucent | Method and system for storing configuration information for network nodes in a network management system |
-
2008
- 2008-06-06 US US12/134,563 patent/US7793002B2/en active Active
-
2009
- 2009-05-28 GB GB0909093.7A patent/GB2460520B/en not_active Expired - Fee Related
- 2009-06-02 CN CNA2009101426369A patent/CN101599881A/zh active Pending
- 2009-06-04 EP EP09161930A patent/EP2131511A2/en not_active Withdrawn
- 2009-06-08 JP JP2009137010A patent/JP2009296595A/ja active Pending
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS53148911A (en) * | 1977-05-31 | 1978-12-26 | Toshiba Corp | Facsimile communication system |
JPS57206147A (en) * | 1981-06-15 | 1982-12-17 | Fujitsu Ltd | Multiaddress calling system |
JPH0344972U (ja) * | 1989-09-05 | 1991-04-25 | ||
JPH0530105A (ja) * | 1991-07-23 | 1993-02-05 | Danatsukusu:Kk | カスケード通信方式 |
JPH06276584A (ja) * | 1993-03-19 | 1994-09-30 | Hitachi Telecom Technol Ltd | 端末群の制御方法 |
JPH06303249A (ja) * | 1993-04-14 | 1994-10-28 | Mitsubishi Electric Corp | データ転送システム |
JPH0936858A (ja) * | 1995-07-19 | 1997-02-07 | Fujitsu Ltd | 情報転送方法及び情報転送装置 |
JPH0936856A (ja) * | 1995-07-21 | 1997-02-07 | Nippon Denki Ido Tsushin Kk | 同報データ転送方式 |
JPH09149070A (ja) * | 1995-11-24 | 1997-06-06 | Mk Seiko Co Ltd | データ転送方法およびそれを用いたデータ転送装置 |
JPH09214552A (ja) * | 1996-01-31 | 1997-08-15 | Fujitsu Ltd | ファイル配信装置および配信中点決定方法 |
JPH118621A (ja) * | 1997-06-18 | 1999-01-12 | Nippon Telegr & Teleph Corp <Ntt> | 電子ファイル配送方法及び該方法を実現するためのプログラムを記録した記録媒体 |
JPH1155259A (ja) * | 1997-08-07 | 1999-02-26 | Nippon Telegr & Teleph Corp <Ntt> | マルチプロセッサシステムおよびデータ転送方法 |
JP2000174750A (ja) * | 1998-12-04 | 2000-06-23 | Toshiba Corp | 端末装置と監視システムと監視システムの監視方法 |
JP2001061046A (ja) * | 1999-08-23 | 2001-03-06 | Murata Mach Ltd | 通信端末装置 |
JP2002319937A (ja) * | 2001-04-20 | 2002-10-31 | Nec Corp | データ配信システム |
JP2003218896A (ja) * | 2002-01-17 | 2003-07-31 | Fujitsu Ltd | データ転送方法及び装置 |
JP2006319466A (ja) * | 2005-05-10 | 2006-11-24 | Brother Ind Ltd | 情報配信システム、処理プログラム、管理プログラム及び情報配信方法等 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018520542A (ja) * | 2015-06-26 | 2018-07-26 | セインチップス テクノロジー カンパニーリミテッド | 交換ネットワークの同期方法及び交換装置、アクセス装置、記憶媒体 |
US10461988B2 (en) | 2015-06-26 | 2019-10-29 | Sanechips Technology Co., Ltd. | Switching network synchronization method, switching device, access device and storage medium |
Also Published As
Publication number | Publication date |
---|---|
CN101599881A (zh) | 2009-12-09 |
EP2131511A2 (en) | 2009-12-09 |
GB0909093D0 (en) | 2009-07-22 |
GB2460520A (en) | 2009-12-09 |
US20090307336A1 (en) | 2009-12-10 |
US7793002B2 (en) | 2010-09-07 |
GB2460520B (en) | 2012-08-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2009296595A (ja) | 階層同期トポロジ内で情報を同期化する方法、装置、製造品、及びデータネットワーク | |
CN105426439B (zh) | 一种元数据的处理方法和装置 | |
CN105701159B (zh) | 一种数据同步装置和方法 | |
JPWO2008126210A1 (ja) | 通信経路選択プログラム、通信経路選択方法および通信経路選択装置 | |
CN111198696B (zh) | 一种基于裸机服务器的OpenStack大规模部署方法和系统 | |
CN111124286A (zh) | 一种基于Libcloud的多云管理实现方法 | |
CN113364638B (zh) | 用于epa组网的方法、电子设备和存储介质 | |
CN106095483A (zh) | 服务的自动化部署方法及装置 | |
CN109902056A (zh) | 一种串行传输的方法、装置、设备及计算机可读存储介质 | |
CN114884908B (zh) | 一种数据同步方法、装置、设备及存储介质 | |
CN111884890A (zh) | 一种时间触发总线规划和调度方法 | |
JP5907419B2 (ja) | 分散処理システム、分散処理方法および分散処理プログラム | |
CN114722092A (zh) | 时序数据处理方法、系统、存储介质和电子设备 | |
JP5108011B2 (ja) | バス接続されたコンシューマとプロデューサとの間でのメッセージ・フローを削減するためのシステム、方法、およびコンピュータ・プログラム | |
CN107609197A (zh) | 一种数据同步方法、数据同步装置及移动终端 | |
WO2022206480A1 (zh) | 一种数据包发送方法及设备 | |
CN103117883B (zh) | 一种分组设备运行状态同步方法 | |
CN113297327A (zh) | 生成分布式id的系统和方法 | |
CN111831394B (zh) | 采用kubernetes部署有状态pod的方法及装置 | |
JP2018032344A (ja) | 分散同期処理システムおよび分散同期処理方法 | |
US20050281202A1 (en) | Monitoring instructions queueing messages | |
Rodolfi | DTN discovery and routing: from space applications to terrestrial networks. | |
CN113439418A (zh) | 更改资源状态的方法、系统、终端及存储介质 | |
US11513870B2 (en) | Method, device, and computer program product for managing a task in an application node | |
JP2019205080A (ja) | 変換装置、および、変換プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120607 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130122 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130625 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20131119 |