JP2012508412A - サーバクラスタに配信されるコンピュータシステムのソフトウェアモジュール集合の同期化方法および同期化システム - Google Patents
サーバクラスタに配信されるコンピュータシステムのソフトウェアモジュール集合の同期化方法および同期化システム Download PDFInfo
- Publication number
- JP2012508412A JP2012508412A JP2011535156A JP2011535156A JP2012508412A JP 2012508412 A JP2012508412 A JP 2012508412A JP 2011535156 A JP2011535156 A JP 2011535156A JP 2011535156 A JP2011535156 A JP 2011535156A JP 2012508412 A JP2012508412 A JP 2012508412A
- Authority
- JP
- Japan
- Prior art keywords
- software
- subset
- software module
- module
- synchronization
- 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/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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Hardware Redundancy (AREA)
- Multi Processors (AREA)
Abstract
コンピュータシステムのソフトウェアモジュール集合を同期化する本方法により、各ソフトウェアモジュールはデジタルデータ集合を管理するためにコンピュータシステムのサーバ上で実行される。集合のうちの2つのソフトウェアモジュール同士の同期化は、モジュールが管理する共通データの同期化(102、104、110)を含む、本方法は、集合のうち互いに作動して同期化したソフトウェアモジュールを、同期化した少なくとも1つの部分集合として集合させ、この部分集合を識別する(106、112)ステップと、起動または再起動させたのちに、作動しているが少なくとも1つのほかのソフトウェアモジュールと同期化していない候補となる各ソフトウェアモジュールに対し、集合のうちのほかの作動しているソフトウェアモジュールを検索し(100)、ほかの作動しているソフトウェアモジュールが発見され、それが識別された部分集合に属する場合、候補となるソフトウェアモジュールをこの識別された部分集合のソフトウェアモジュールのうちの少なくとも1つと同期化させ(102、104)、候補となるソフトウェアモジュールを識別された部分集合に統合する(106)ステップとを含む。
【選択図】図3
【選択図】図3
Description
本発明は、ネットワークで相互に接続された複数のサーバに配信されるコンピュータシステムのソフトウェアモジュールの集合を同期化する方法およびそのシステムに関する。また、本発明は、この方法を実施するためのコンピュータプログラムにも関する。
本発明は、さらに詳細には、各ソフトウェアモジュールが、デジタルデータ集合を管理するためにコンピュータシステムの1つのサーバ上で実行され、このデジタル記述データの少なくとも一部が複数のソフトウェアモジュールに複製され、集合の2つのソフトウェアモジュール同士の同期化にはモジュールが管理する共通データの同期化が含まれるコンピュータシステムに適用される。
デジタルデータは、たとえばサービスの記述データであり、コンピュータシステムから供給されるサービスは、たとえば、ネットワークで相互に接続されたサーバ間に配信されるデータストレージサービスなどであり、各サーバは、ハードディスクまたは磁気テープに保存するストレージデバイスに関連づけられている。この場合、デジタルデータは、たとえばストレージサービスのユーザの記述データ、サービスを供給するためのコンピュータシステムのインフラストラクチャおよび動作に関する記述データ、ストレージデータおよびストレージ形態に関する記述データなどである。
また、コンピュータシステムから供給されるサービスは、情報データの送信サービス、データ処理サービス、計算サービス、トランザクションサービス、またはこれらを組み合わせたサービスであってもよい。それぞれの場合において、記述データは、特別に供給されるサービスに適合される。
ソフトウェアモジュールが実行されるコンピュータシステムのサーバは一般に、少なくともLAN(英語のLocalAreaNetworkの略)および/またはWAN(英語のWideAreaNetworkの略)タイプのネットワークによって相互接続されている。ネットワークで相互に接続されたサーバからなるこの集合は特に「サーバクラスタ」と言い、ソフトウェアモジュールは一般にクラスタの「ノード」と呼ばれる。
このようなアーキテクチャでは、原則として特定のサーバまたはソフトウェアモジュールがソフトウェアモジュール集合の管理に充てられ、特に複製されたデジタルデータの同期化に用いられる。これでは、全モジュールの管理に充てられるサーバまたはソフトウェアモジュールが機能しなくなったときに問題が生じる。
たとえば、仏国公開特許公報第FR2851709号では、データベースに関連しているメインサーバによって、通信ネットワーク経由でユーザにサーバを供給することができることが記載されている。通信ネットワークには、このメインサーバに接続されている補助サーバも設けられ、ユーザがこのサービスにさらに迅速にアクセスできるようになっている。ただしこの場合、補助サーバはメインサーバと同期化し、特にその中のデータベースと同期化していなければならない。メインサーバの補助サーバへのこの同期化を実現するため、通信ネットワークは、たとえばリソースサーバで利用されている同期化に特有の手段を備えている。そのため、通信ネットワークの特定の素子、つまりメインサーバおよびリソースサーバは、きわめて特殊な役割を担っており、この2つが機能しなくなると直ちに供給されるサービスの質に影響が出るおそれがあることは明らかである。
米国公開特許公報US2007/0233900号では、コンピュータのクラスタシステムで、複数のコンピュータが共通のストレージ手段からくる同一データをローカルに複製することができることが記載されている。同一データの複製の集合が同期化するのを管理するため、コンピュータ間の接続体系には、ローカルに複製されたデータがコンピュータによって修正されるごとに共通のストレージ手段を更新することが想定されているため、ほかのコンピュータは、共通のストレージ手段を参照してローカルに複製したデータを更新することができる。ここでもまた、システムのアーキテクチャは、接続体系および共通のストレージ手段に対する固有の役割を持ち合わせている。
ソフトウェアモジュールが管理する共通のデジタルデータを同期化させるという意味で、ソフトウェアモジュールの同期化を中央集中型にすることが、やはり最も容易に考案できる解決策である。この同期化をコンピュータシステムの複数のサーバまたは全サーバ上に分類すると、サーバのコーディネーションに問題が生じてしまう。よって、今日では完全に満足のいく解決策は存在しない。
したがって、前述の問題および制約の少なくとも一部を緩和することができるネットワークで相互に接続された複数のサーバに配信されるコンピュータシステムのソフトウェアモジュールを同期化する方法を備えることが望ましい。
よって本発明は、ネットワークで相互に接続された複数のサーバに配信されるコンピュータシステムのソフトウェアモジュール集合を同期化する方法であって、少なくとも一部が複数のソフトウェアモジュール上で複製されるデジタルデータ集合を管理するために各ソフトウェアモジュールがコンピュータシステムのサーバ上で実行され、集合のうちの2つのソフトウェアモジュール同士の同期化に、モジュールが管理する共通データの同期化が含まれる方法において、
− 集合のうち互いに作動して同期化したソフトウェアモジュールを、同期化した少なくとも1つの部分集合として集合させ、この部分集合を識別するステップと、
− 起動または再起動させたのちに、作動しているが集合のうちの少なくとも1つのほかのソフトウェアモジュールと同期化していない候補となる各ソフトウェアモジュールに対し、
・集合のうちのほかの作動しているソフトウェアモジュールを検索し、
・ほかの作動しているソフトウェアモジュールが発見され、それが識別された部分集合に属する場合、候補となる各ソフトウェアモジュールをこの識別された部分集合のソフトウェアモジュールのうちの少なくとも1つと同期化させ、
・候補となるソフトウェアモジュールを識別された部分集合に統合するステップ
とを含むことを特徴とする同期化方法を目的とする。
− 集合のうち互いに作動して同期化したソフトウェアモジュールを、同期化した少なくとも1つの部分集合として集合させ、この部分集合を識別するステップと、
− 起動または再起動させたのちに、作動しているが集合のうちの少なくとも1つのほかのソフトウェアモジュールと同期化していない候補となる各ソフトウェアモジュールに対し、
・集合のうちのほかの作動しているソフトウェアモジュールを検索し、
・ほかの作動しているソフトウェアモジュールが発見され、それが識別された部分集合に属する場合、候補となる各ソフトウェアモジュールをこの識別された部分集合のソフトウェアモジュールのうちの少なくとも1つと同期化させ、
・候補となるソフトウェアモジュールを識別された部分集合に統合するステップ
とを含むことを特徴とする同期化方法を目的とする。
このように、作動しているがまだ同期化していない各ソフトウェアモジュールが、集合のうちのほかのソフトウェアモジュールとの同期化を自ら管理するため、中央集中型の同期化を避けて、ソフトウェアモジュール集合の同期化の全体的な追跡が、同期化したソフトウェアモジュールのうちの同質の部分集合の変動がすることとそれを管理することによって行われる。これらの部分集合は、その追跡が可能になるように識別される。
選択的に、候補となる各ソフトウェアモジュールに対し、ほかのソフトウェアモジュールが発見されてもそれが識別された部分集合には属さない場合、
− 同期化した新たな部分集合が作製されて識別され、
− 候補となるソフトウェアモジュールは発見されたほかのソフトウェアモジュールと同期化し、
− 候補となるソフトウェアモジュールおよびこの発見されたほかのソフトウェアモジュールは、この識別された新たな部分集合に統合される。
− 同期化した新たな部分集合が作製されて識別され、
− 候補となるソフトウェアモジュールは発見されたほかのソフトウェアモジュールと同期化し、
− 候補となるソフトウェアモジュールおよびこの発見されたほかのソフトウェアモジュールは、この識別された新たな部分集合に統合される。
同じく選択的に、候補となるソフトウェアモジュールが、発見されたほかのソフトウェアモジュールを有する識別された部分集合のソフトウェアモジュールのうちの少なくとも1つと同期化する際に、同期化を実現するためにこの識別された部分集合から少なくとも1つのソフトウェアモジュールを選定することは、この識別された部分集合のソフトウェアモジュールの少なくとも一部の作業を負担することによって決まる。
したがって、有利なように、同期化そのものによって引き起こされる作業の負担を分担することが可能になる。
同じく選択的に、本発明による同期化方法はさらに、
− 第1の識別された部分集合によって第2の識別された部分集合を検知するステップと、
− この2つの識別された部分集合のソフトウェアモジュールを、この2つの識別された部分集合のうちの1つに集合させるステップと、
− この2つの識別された部分集合のもう一方を削除するステップと、
− 当初は削除された部分集合に属していた各ソフトウェアモジュールを、集合させるために選択した部分集合のソフトウェアモジュールのうちの少なくとも1つと同期化させるステップ
とを含むことができる。
− 第1の識別された部分集合によって第2の識別された部分集合を検知するステップと、
− この2つの識別された部分集合のソフトウェアモジュールを、この2つの識別された部分集合のうちの1つに集合させるステップと、
− この2つの識別された部分集合のもう一方を削除するステップと、
− 当初は削除された部分集合に属していた各ソフトウェアモジュールを、集合させるために選択した部分集合のソフトウェアモジュールのうちの少なくとも1つと同期化させるステップ
とを含むことができる。
このように、この同期化方法は、集合の全ソフトウェアモジュールの完全な同期化が得られない限りは、同質の部分集合同士のマージを優遇する傾向にある。
同じく選択的に、識別された各部分集合では、1つのソフトウェアモジュールが選択されて、この識別された部分集合の識別子として特別にマークされる。
よって、各部分集合で選択されたこのソフトウェアモジュールは、ほかの全ソフトウェアモジュールが識別された部分集合に属することを認識することができようにマークする役割を果たす。
同じく選択的に、本発明による同期化方法がさらに、
− 識別された部分集合の2つの補足部分であって、各部分が少なくとも1つのソフトウェアモジュールを有する部分同士の接続の切断を検知するステップと、
− この識別された部分集合をもとに、2つの補足部分のうちの一方、およびもう一方を統合する2つの部分集合を生成して認識するステップ
とを含むことができる。
− 識別された部分集合の2つの補足部分であって、各部分が少なくとも1つのソフトウェアモジュールを有する部分同士の接続の切断を検知するステップと、
− この識別された部分集合をもとに、2つの補足部分のうちの一方、およびもう一方を統合する2つの部分集合を生成して認識するステップ
とを含むことができる。
したがって、切断が、同じ部分集合にあるソフトウェアモジュールの同期化を維持することを不可能にしている原因であることから、本方法は、このような接続の切断が検知されると直ちに各部分集合を2つの部分集合に分離するようになっている。
同じく選択的に、本発明による同期化方法がさらに、
− 第1の識別された部分集合に属する第1のソフトウェアモジュール上で、この第1のソフトウェアモジュールによって管理されるデジタルデータに作用する動作を実行するステップと、
− このデジタルデータの複製を有する識別された同じ部分集合のほかのソフトウェアモジュール集合への動作を識別する同期化メッセージを送信するステップと、
− 関連するソフトウェアモジュールのうちのいずれか1つによってこのメッセージを受信してすぐに、このソフトウェアモジュールにあるデジタルデータの複製に作用するようにこのソフトウェアモジュール上で識別された作動を実行するステップ
とを含むことができる。
− 第1の識別された部分集合に属する第1のソフトウェアモジュール上で、この第1のソフトウェアモジュールによって管理されるデジタルデータに作用する動作を実行するステップと、
− このデジタルデータの複製を有する識別された同じ部分集合のほかのソフトウェアモジュール集合への動作を識別する同期化メッセージを送信するステップと、
− 関連するソフトウェアモジュールのうちのいずれか1つによってこのメッセージを受信してすぐに、このソフトウェアモジュールにあるデジタルデータの複製に作用するようにこのソフトウェアモジュール上で識別された作動を実行するステップ
とを含むことができる。
したがって、構成され識別された各部分集合では、ソフトウェアモジュールが永続的に同期化する、特に効果的かつ中央集中型でないメカニズムが備えられている。実際に、部分集合の第1のソフトウェアモジュールへの動作の実行は、結果として、この動作を識別するメッセージを送信することで、この動作に関わるデジタルデータの複製を管理する同じ部分集合のほかのソフトウェアモジュールの集合に対してこれと同じ動作を実行することになる。したがって、最初に動作を実行するのがどのソフトウェアモジュールであっても、そのソフトウェアモジュールが部分集合での同期化の管理機能を果たし、最終的には同じ結果となる。すなわち、対象となる部分集合内で、この動作に関連するデジタルデータを有するソフトウェアモジュールの集合に対して動作が実行されたかのようになる。そのため、デジタルデータを管理するという点で特別または特殊な役割を果たすソフトウェアモジュールはないため、ソフトウェアモジュールまたはサーバが機能しない場合に、コンピュータシステムはサービスの継続を切断されることに対して耐性のある完全なものとなる。
同じく選択的に、本発明による同期化方法がさらに、
− デジタルデータの一部を有する、候補となる各ソフトウェアモジュールが同期化する際に、デジタルデータのこの部分の複製状態を少なくとももうひとつのソフトウェアモジュールに抽出し、もうひとつほかのソフトウェアモジュールにあるデジタルデータの複製に対する動作を識別する少なくとも1つの同期化メッセージを受ける潜在的なレセプタとして候補となる各ソフトウェアモジュールを登録するステップと、
− ソフトウェアモジュールのデジタルデータをほかのソフトウェアモジュールのデジタルデータと同期化させ、この同期化の最中に、必要に応じて受信した同期化メッセージを待機行列に置くステップと、
− 同期化が終了すると待機行列を処理するステップ
とをむことができる。
− デジタルデータの一部を有する、候補となる各ソフトウェアモジュールが同期化する際に、デジタルデータのこの部分の複製状態を少なくとももうひとつのソフトウェアモジュールに抽出し、もうひとつほかのソフトウェアモジュールにあるデジタルデータの複製に対する動作を識別する少なくとも1つの同期化メッセージを受ける潜在的なレセプタとして候補となる各ソフトウェアモジュールを登録するステップと、
− ソフトウェアモジュールのデジタルデータをほかのソフトウェアモジュールのデジタルデータと同期化させ、この同期化の最中に、必要に応じて受信した同期化メッセージを待機行列に置くステップと、
− 同期化が終了すると待機行列を処理するステップ
とをむことができる。
また、本発明は、ネットワークで相互に接続された複数のサーバを有するコンピュータシステムのソフトウェアモジュール集合を同期化するシステムであって、少なくとも一部が複数のソフトウェアモジュール上で複製されるデジタルデータ集合を管理するために各ソフトウェアモジュールがコンピュータシステムのサーバ上で実行され、集合のうちの2つのソフトウェアモジュール同士の同期化に、モジュールが管理する共通データの同期化が含まれるシステムにおいて、
− モジュール同士の間で、作動して同期化した集合のソフトウェアモジュールを集合させる少なくとも1つの部分集合を識別する手段と、
− 起動または再起動させたのちに、作動しているが、集合のうちの少なくとも1つのほかのソフトウェアモジュールと同期化していない候補となる各ソフトウェアモジュールに対し、
・集合のうちのほかの作動しているソフトウェアモジュールを検索する手段と、
・ほかの作動しているソフトウェアモジュールが発見され、それが識別された部分集合に属する場合、候補となるソフトウェアモジュールをこの識別された部分集合のソフトウェアモジュールのうちの少なくとも1つと同期化させる手段と、
・候補となるソフトウェアモジュールを識別された部分集合に統合する手段
とを含むことを特徴とするシステムも目的とする。
− モジュール同士の間で、作動して同期化した集合のソフトウェアモジュールを集合させる少なくとも1つの部分集合を識別する手段と、
− 起動または再起動させたのちに、作動しているが、集合のうちの少なくとも1つのほかのソフトウェアモジュールと同期化していない候補となる各ソフトウェアモジュールに対し、
・集合のうちのほかの作動しているソフトウェアモジュールを検索する手段と、
・ほかの作動しているソフトウェアモジュールが発見され、それが識別された部分集合に属する場合、候補となるソフトウェアモジュールをこの識別された部分集合のソフトウェアモジュールのうちの少なくとも1つと同期化させる手段と、
・候補となるソフトウェアモジュールを識別された部分集合に統合する手段
とを含むことを特徴とするシステムも目的とする。
最後にまた、本発明は、通信ネットワークからダウンロード可能なコンピュータプログラム、および/またはコンピュータによって再生可能な媒体に記録されたコンピュータプログラム、および/またはプロセッサによって実行可能なコンピュータプログラムであって、このプログラムがコンピュータ上で実行される場合に、前述のように定義したような同期化方法のステップを実行するためのプログラムコードのインストラクションを含むことを特徴とするプログラムも目的としている。
本発明は、例としてのみ示した以下の説明および添付の図面を参照することによってさらによく理解されるであろう。
図1に示すコンピュータシステム10は、複数のドメインに分類される複数のサーバ121、122、123、124および125を有する。各サーバは従来のタイプのものであり、詳細は説明しないが、各サーバ121、122、123、124および125には、データストレージサービスなどのサービスを管理する少なくとも1つの特殊なソフトウェアおよびハードウェアモジュール141、142、143、144および145が装備されている。
5つのサーバおよび2つのドメインを単なる例として図1に示しているが、ネットワークで相互に接続された複数のサーバに配信されるこのほかのあらゆるコンピュータシステムの構造に、本発明による同期化方法を適用させることができる。図は、簡略化する意味でも、ソフトウェアモジュールおよびハードウェアをサーバごとに示しているため、モジュールおよびそのサーバが以下の説明の中で混同されるおそれがあるが、本発明を全体的に適用することにおいては混同するべきではない。
サーバ121のソフトウェアおよびハードウェアモジュール141は、図1に詳細を示している。モジュール141は、サーバ121のオペレーティングシステムからなる第1のソフトウェア層161を有する。また、コンピュータシステム10が供給するデータストレージサービスの記述データを管理する第2のソフトウェア層181を有する。さらに、少なくとも2つの機能を果たす第3のソフトウェアおよびハードウェア層201を有する。サーバ121の内部ハードディスクにストレージサービスの記述データを格納する第1の機能と、サーバ121に関連する物理ストレージリソースに格納したデータを同じくこのハードディスクに記憶する第2のキャッシュメモリ機能である。最後に、データウェアハウスとして第4のソフトウェアおよびハードウェア層221、241を有し、ハードディスク221に少なくとも1つのデータウェアハウス、および/または磁気テープ241に少なくとも1つのデータウェアハウスを有する。以下の説明では、データウェアハウスとは、接続するサーバのストレージデバイスのうちの1つまたは複数のディスクのパーティション、あるいは1つまたは複数の磁気テープからなる仮想のデータストレージスペースを意味する。
サーバ122、123、124および125のソフトウェアおよびハードウェアモジュール142、143、144および145は、ソフトウェアおよびハードウェアモジュール141と同様であるため、詳細は記載しない。
図1に示す例では、サーバ121、122および123はLANタイプの第1のネットワーク26でそれぞれ相互に接続され、第1のサブアセンブリであるドメイン28を形成する。この第1のドメイン28は、たとえば地理上の場所、建物またはコンピュータ室など、地理的に位置を識別された機関と対応している。サーバ124および125は、LANタイプの第2のネットワーク30で相互に接続され、第2のサブアセンブリであるドメイン32を形成する。この第2のドメイン28も同じく、たとえば地理上の場所、建物またはコンピュータ室など、地理的に位置を識別された機関と対応している。この2つのドメインは、インターネットなどのWANタイプのネットワーク34で互いに接続されている。
したがって、複数の地理上の場所に分類されたサーバクラスタの状態にあるこのコンピュータシステムでは、地理的に別々の場所にあるソフトウェアおよびハードウェアモジュールにデータを複製できるためにさらに一層確実なデータストレージを検討することができる。
コンピュータシステム10が供給するストレージサービスおよび実際に格納されるデータは、図2のように一般原則で記述される記述データの集合によって完全に定義され、記述されることが有利である。したがって、ソフトウェアおよびハードウェアモジュール14iのうちのいずれかのソフトウェア層18iでこの記述データを管理することによって、コンピュータシステム10のストレージサービスが確実に管理される。
記述データは、たとえばその性質に応じて複数の組織化した集合に統合され、場合によっては互いに接続される。組織化した集合を以下の説明では「カタログ」というが、この集合は、ディレクトリ自体がほかのティレクトリおよび/または記述データファイルを有するディレクトリツリー構造の形態を呈することができる。1つのディレクトリおよびファイルのツリー構造に応じた記述データの表示は、簡易であることが有利となり、それによって構想と管理が経済的になる。さらに、このような表示にすることよって目的のサービスが満足なものになることが多い。これよりもさらに複雑な適用には、リレーショナルデータベースで記述データを表示し、管理することも可能である。
記述データのカタログは、グローバルカタログ、すなわちコンピュータシステム10の集合に有用な記述データに関するものにしたり、ローカルカタログ、すなわちサービスを管理する1つまたは複数のソフトウェアおよびハードウェアモジュール141、142、143、144または145に固有の記述データに関するものにしたりすることができる。有利なように、各カタログは複数のサーバまたはソフトウェアおよびハードウェアモジュールに複製される。グローバルカタログの場合、ソフトウェアおよびハードウェアモジュールの集合に複製されることが好ましい。ローカルカタログの場合、少なくとも関連する所定数のソフトウェアおよびハードウェアモジュールに複製される。
図2は、例として、5つのソフトウェアおよびハードウェアモジュール141、142、143、144および145の間の記述データカタログとして考えられる分類を示している。
第1のグローバルカタログCAは、5つのソフトウェアおよびハードウェアモジュール141、142、143、144および145に複製される。このカタログは、たとえばコンピュータシステム10がサービスを供給するための全体のインフラストラクチャおよび全体の作動を記述するデータを有し、特に、コンピュータシステム10のドメインとソフトウェアおよびハードウェアモジュールとのツリー構造を有する。また、データストレージサービスの潜在的ユーザおよびこのユーザのアクセス権を記述するデータを有することができる。たとえば、あらかじめ登録されているユーザや、共有ゾーン、ストレージの構造または形態およびストレージデータの複製などである。
その他のカタログは、たとえばカタログCB1のようなローカルカタログであり、ソフトウェアおよびハードウェアモジュール141に固有の記述データが入っており、たとえばサーバ121およびそのストレージデバイスのローカルのインフラストラクチャおよびローカルの作動に関連するデータ、あるいはソフトウェアおよびハードウェアモジュール141のデータウェアハウス状態の組織、またはこれらデータウェアハウスに実際にストレージされるデジタルデータなどである。このカタログは3つに複製され、そのうちの1つはソフトウェアおよびハードウェアモジュール141に複製される。コンピュータシステム10のセキュリティおよび堅牢性を向上させるため、カタログCB1は複数の異なるドメインに複製してもよい。ここでは、2つのドメイン28、32およびカタログCB1を有する完全なシステムは、たとえばドメイン28のモジュール141および142、ドメイン32のモジュール145に保存される。
同じく、ソフトウェアおよびハードウェアモジュール142、143、144および145は、それぞれローカルカタログCB2、CB3、CB4およびCB5に接続される。たとえばカタログCB2は、ドメイン28のモジュール142および143、およびドメイン32のモジュール144に保存される。カタログCB3は、ドメイン28のモジュール143、およびドメイン32のモジュール144および145に保存される。カタログCB4は、ドメイン32のモジュール144、およびドメイン28のモジュール141および143に保存される。カタログCB5は、ドメイン32のモジュール145、およびドメイン28のモジュール141および142に保存される。
記述データカタログに関する前述のリストは網羅的なものではなく、例としてあげているに過ぎず、各カタログの複製数も同じく例に過ぎない。
このようにカタログを複製することにより(ここでは各カタログに対して少なくとも3つのソフトウェアおよびハードウェアモジュールに複製)、1つ、場合によっては2つのソフトウェアおよびハードウェアモジュールが作動状態ではない場合であっても、集合の中にあるシステムは記述データの集合にアクセスすることができるため、データストレージサービスの管理は必ずしも中断されるわけではない。実際に、このように維持されるサービス継続性は、カタログ、さらに一般には記述データの同期化が行われる瞬間から有効である。
同じく実際に格納されたデータは、提供されたストレージサービスのセキュリティ上の質問用に複製されるため、これらのデータを対象とするあらゆる作動または修正もさまざまに異なる複製に適用される必要がある。そのため、実際に格納されたデータの同期化が行われる必要がある。
換言すると、モジュールが管理する共通データの同期化を含むソフトウェアおよびハードウェアモジュール141、142、143、144および145の同期化が行われる必要がある。
そのため、次に本発明による同期化方法を図3、4、5および6を参照しながら詳細に説明する。
本同期化方法は、コンピュータシステム10のソフトウェアおよびハードウェアモジュール141、142、143、144および145を、ソフトウェアおよびハードウェアモジュールが互いに作動して同期化している少なくとも1つの識別された部分集合に集合させることを狙いとするものである。本方法の最終目的は、同期化した1つの部分集合のみに達することであり、この部分集合が互いに同期化したコンピュータシステム10のソフトウェアおよびハードウェアモジュール141、142、143、144および145すべてを集合させる。
よって本方法は主に、既存の同期化した部分集合のうちの1つ、または作製する新たな部分集合に統合するために、コンピュータシステム10のソフトウェアおよびハードウェアモジュールの起動および再起動を管理することを狙いとするものである。選択的に、本発明は、ネットワークの切断、同期化した部分集合のほかの部分集合による検知(コンピュータシステム10の同期化した部分集合を変化させるおそれのある事態すべて)など、ソフトウェアおよびハードウェアモジュールの停止を管理することも狙いとしている。
図3に示すように、第1のステップ100では、コンピュータシステム10で新たなサーバを起動させたり既存のサーバを再起動させたりしたのちに、ソフトウェアおよびハードウェアモジュール14iが作動した結果、作動しているがコンピュータシステム10のほかのソフトウェアおよびハードウェアモジュールとまだ同期化していないこのソフトウェアおよびハードウェアモジュールは、コンピュータシステム10のほかの作動しているソフトウェアおよびハードウェアモジュールを検索する。
作動しているほかのソフトウェアおよびハードウェアモジュール14jが発見され、このモジュールが識別されて同期化した部分集合に属している場合、識別された部分集合のソフトウェアおよびハードウェアモジュールのうちの少なくとも1つを選択するステップ102に移り、ソフトウェアおよびハードウェアモジュール14iとこの選択されたソフトウェアおよびハードウェアモジュールとの同期化を実行する。
まず、この選択は、同期化されるはずのソフトウェアおよびハードウェアモジュール14iのデジタルデータに基づいて行われる。よって、この選択に関する識別された部分集合のソフトウェアおよびハードウェアモジュールは、ソフトウェアおよびハードウェアモジュール14iとともに共通データを管理するモジュールである。
選択的に、この選択も、この識別された部分集合のソフトウェアおよびハードウェアモジュールの少なくとも一部の作業を負担することによって決定される。たとえば、所定の負担以上に、識別された部分集合のソフトウェアおよびハードウェアモジュールを選択することはできないと考えることができる。したがって、必要とされているソフトウェアおよびハードウェアモジュールが一時的に過負担の状態であれば、このモジュールはソフトウェアおよびハードウェアモジュール14iにほかのソフトウェアおよびハードウェアモジュールを選ぶように指示することができる。必要とされているソフトウェアおよびハードウェアモジュールがそのときにまったく利用できない場合、ソフトウェアおよびハードウェアモジュール14iは作動のピークが終わるのを待てば同期化することができる。したがって、非常に多くのソフトウェアおよびハードウェアモジュールが同時に起動したり、ほかのソフトウェアおよびハードウェアモジュールが非常に必要とされているときに1つが起動したりすれば、作業の負担は必要とされるソフトウェアおよびハードウェアモジュール同士の間で公平に分担される。
次に、ステップ104では、ソフトウェアおよびハードウェアモジュール14iと選択されたモジュールとの同期化が実行される。このような同期化の非限定的な例を、図9を参照しながら説明する。
次のステップ106では、ソフトウェアおよびハードウェアモジュール14iは、識別されて同期化した部分集合に統合されるため、ここからさらにほかの素子が加わる。
最後にステップ108に移るが、このステップでは、所定のメカニズムに従って、識別されて互いに同期化した部分集合のソフトウェアおよびハードウェアモジュールが永続的に保持される。これについての非限定的な一例を図7および図8を参照しながら説明する。このステップでも同じく、コンピュータシステム10は識別された部分集合を変化させるおそれのあるあらゆる事態を監視する。すなわち、マージするほかの同期化した部分集合を検知し、分離するようになっている部分集合の2つの部分の間の接続が切断されるのを検知し、(たとえば、対応するサーバが停止することによって)1つのソフトウェアおよびハードウェアモジュールを失うなどである。
ステップ100では、作動しているほかのソフトウェアおよびハードウェアモジュール14jが発見されてもそのモジュールが識別されている同期化した部分集合には属していない場合、ソフトウェアおよびハードウェアモジュール14iをソフトウェアおよびハードウェアモジュール14jと同期化させるステップ110に移る。この同期化は、ステップ104で検討した同期化と同じものであってもよい。これについては図9を参照しながら説明する。
次に、ステップ112では、同期化した新たな部分集合が作製されて識別され、この部分集合に2つのソフトウェアおよびハードウェアモジュール14iおよび14jを統合する。
最後にステップ114に移るが、このステップでは、所定のメカニズムに従って、識別されて互いに同期化したこの新たな部分集合のソフトウェアおよびハードウェアモジュール14iおよび14jが永続的に保持される。このメカニズムはステップ108で検討したものと同じであってもよく、これについては図7および図8を参照しながら説明する。このステップでも同じく、コンピュータシステム10は作製された新たな部分集合を変化させるおそれのあるあらゆる事態を監視する。すなわち、マージするほかの同期化した部分集合を検知し、分離するようになっている部分集合の2つのソフトウェアおよびハードウェアモジュール14iおよび14j間の接続が切断されるのを検知し、(たとえば、対応するサーバが停止することによって)1つのソフトウェアおよびハードウェアモジュールを失うなどである。
ステップ100では、作動しているほかのソフトウェアおよびハードウェアモジュール14jが一切発見されなければ、ソフトウェアおよびハードウェアモジュール14iは同期化することができず、作動していて操作可能であっても孤立した状態になる。すると次はステップ1161に移るが、このステップではコンピュータシステム10はソフトウェアおよびハードウェアモジュール14iの同期化を変化させるおそれのあるあらゆる事態を監視する。すなわち、統合されうる同期化した部分集合を検知し、作動しているが孤立している、同期化できる可能性なるほかのソフトウェアおよびハードウェアモジュールを検知し、インプリメンテーションされるサーバの停止などである。
本発明のもうひとつの実施形態では、同期化したそれぞれの部分集合が、選択されたソフトウェアおよびハードウェアモジュールを含んでこの部分集合の識別子として特別にマークされる。たとえば、前述したステップ112の状況では、ソフトウェアおよびハードウェアモジュール14iに検知されたのちに、作製された新たな部分集合を識別するものとして選択されることができるのは、ソフトウェアおよびハードウェアモジュール14jである。
すると、この選択されたソフトウェアおよびハードウェアモジュールによって1つの部分集合が識別され、その結果、部分集合のうちのこの選択されたソフトウェアおよびハードウェアモジュールを排除させる可能性のあるあらゆる事態により、この部分集合の消失および1つまたは複数の新たな部分集合の潜在的な作製が生じる。
コンピュータシステム10のソフトウェアおよびハードウェアモジュール14iはいずれも、その移行とともに図4に示したさまざまに異なる4つの状態E1、E2、E3およびE4のいずれかとなる。
第1の状態E1では、ソフトウェアおよびハードウェアモジュール14iは停止している状態である。第2の状態E2では、このモジュールは作動しているが孤立している、つまりコンピュータシステム10のほかのソフトウェアおよびハードウェアモジュールとは同期化していない状態である。第3の状態E3では、このモジュールは識別されている同期化した部分集合の要素である。最後に第4の状態E4では、このモジュールは識別されている同期化した部分集合の要素であり、この部分集合の識別子としてマークされている。
第1の移行t1は、停止状態E1にあるソフトウェアおよびハードウェアモジュール14iを、コンピュータシステム10のほかの作動しているソフトウェアおよびハードウェアモジュールを検索するステップ100に移している。換言すれば、ステップ100では、ソフトウェアおよびハードウェアモジュール14iは作動しているが、このモジュールが管理するデジタルデータの同期化を検索している状態である。この状況は、たとえば対応するサーバを起動または再起動することによって起こる。
第2の移行t2は、ソフトウェアおよびハードウェアモジュール14iを、ステップ100から作動状態にあるが孤立しているE2に移している。これは、ステップ100ののちに、作動しているほかのソフトウェアおよびハードウェアモジュールが一切検知されなかったためにステップ116に移っている状態である。
第3の移行t3は、ソフトウェアおよびハードウェアモジュール14iをステップ100から識別されている同期化した部分集合の要素である状態E3に移している。これは、ステップ100ののちにステップ102(既存の同期化した部分集合と合流)または110(検知した孤立しているソフトウェアおよびハードウェアモジュールによって作製された同期化した部分集合と合流)に移った状態である。
第4の移行t4は、ソフトウェアおよびハードウェアモジュール14iを、作動しているが孤立している状態E2から同期化した部分集合を識別する状態E4に移している。同期化を実行するためにほかのソフトウェアおよびハードウェアモジュールに検知された場合の状態である。よってこのモジュールは、作製された新たな部分集合の識別子となる。
第5の移行t5は、ソフトウェアおよびハードウェアモジュール14iを、識別されている同期化した部分集合の要素である状態E3から同期化した部分集合の識別子である状態E4に移している。これは、所属する部分集合が識別モジュールを失った場合(対応するサーバの停止など)、またはソフトウェアおよびハードウェアモジュール14iそのものが、接続が切断された後の状態のように、部分集合の識別モジュールとの接触を断たれた場合のモジュールの状態である。よってこのモジュールは、作製された新たな部分集合の識別子となることができるが、そのために選択される必要がある。
実際に、この状況では、最初の識別モジュールとの接触を断たれた対象となる部分集合のソフトウェアおよびハードウェアモジュールすべてに対して新たな識別モジュールが選択される必要がある。1つの解決策が、これらのソフトウェアおよびハードウェアモジュールすべてに対して新たな部分集合を作製し、この新たな部分集合の識別子となるようにそのうちの1つ(たとえばソフトウェアおよびハードウェアモジュール14i)を選択することである。
換言すると、図4を参照して説明した実施形態では、同期化した部分集合の識別モジュールが停止すれば、この部分集合のほかのソフトウェアおよびハードウェアモジュールのうちの1つが識別モジュールとなる。しかしそのために、新たな部分集合を作製し、古い部分集合のほかのソフトウェアおよびハードウェアモジュールはすべて新たな部分集合の要素となる。同期化した同じ部分集合の2つの離れた場所の間のネットワーク接続が途切れると、この部分集合の要素の一部がこの部分集合の識別モジュールから分離する。識別モジュールから分離されたこれらのソフトウェアおよびハードウェアモジュールのうち1つが選択されて、離れた場所のソフトウェアおよびハードウェアモジュールを含む新たな部分集合の識別モジュールとなる。実際には、1つまたは複数のソフトウェアおよびハードウェアモジュールが識別モジュールから分離されるたびに1つの新たな部分集合が作製される。そのうちの1つは選択されることによって(移行t5)新たな部分集合の識別モジュールとなる。
第6の移行t6は、ソフトウェアおよびハードウェアモジュール14iを、作動しているが孤立している状態E2から停止状態E1に移している。この移行は特に、
− 第1の状況で、ソフトウェアおよびハードウェアモジュール14iがインプリメンテーションされるサーバを停止し、
− 第2の状況で、識別されている同期化した部分集合のソフトウェアおよびハードウェアモジュール14i、または状態E2にあるほかのソフトウェアおよびハードウェアモジュールによって検知される
という2つの状況で生じる。
− 第1の状況で、ソフトウェアおよびハードウェアモジュール14iがインプリメンテーションされるサーバを停止し、
− 第2の状況で、識別されている同期化した部分集合のソフトウェアおよびハードウェアモジュール14i、または状態E2にあるほかのソフトウェアおよびハードウェアモジュールによって検知される
という2つの状況で生じる。
実際に、第2の状況では、検知された部分集合のソフトウェアおよびハードウェアモジュールのうちの少なくとも1つと同期化してこの部分集合の一部になる(ステップ102〜106)か、検知されて孤立しているほかのソフトウェアおよびハードウェアモジュールと同期化する必要がある(ステップ110〜112)。ただし、ソフトウェアおよびハードウェアモジュール14iは孤立した形で変化しているため、解決策としては再起動することであり、これによって、この再起動をする際にステップ100を介して移行t1およびt3に移る必要がある。
第7の移行t7は、ソフトウェアおよびハードウェアモジュール14iを、識別されている同期化した部分集合の要素である状態E3またはこの部分集合の識別子である状態E4から停止状態E1に移している。
この移行は特に、
− 第1の状況で、ソフトウェアおよびハードウェアモジュール14iがインプリメンテーションされるサーバを停止し、
− 第2の状況で、モジュールがある部分集合が、マージすることができる識別されている同期化したほかの部分集合を検知する
という2つの状況で生じる。
− 第1の状況で、ソフトウェアおよびハードウェアモジュール14iがインプリメンテーションされるサーバを停止し、
− 第2の状況で、モジュールがある部分集合が、マージすることができる識別されている同期化したほかの部分集合を検知する
という2つの状況で生じる。
第2の状況では、ほかの部分集合を保持しソフトウェアおよびハードウェアモジュール14iがある部分集合を消去することによってマージが行われる場合、このモジュール14iおよび消去されることになる部分集合にあるほかのソフトウェアおよびハードウェアモジュールは、検知されたもう一方の部分集合のソフトウェアおよびハードウェアモジュールのうちの少なくとも1つと同期化してこの部分集合の一部になる必要がある(ステップ102〜106)。ただし、この2つの部分集合は孤立した形で変化しているため、解決策としてはソフトウェアおよびハードウェアモジュール14i、および消去されることになる部分集合のほかのソフトウェアおよびハードウェアモジュールを再起動することであり、これによって、この再起動をする際にステップ100を介して移行t1およびt3に移る必要がある。
図5は、本発明による同期化方法により、前述した移行t7の第2の状況に応じて、コンピュータシステム10の同期化した部分集合が別の部分集合を検知した際に、選択的に実施した一連のステップを示している。
第1のステップ200では、第1の同期化した部分集合S1が、マージすることができる第2の同期化した部分集合S2を検知する。
次のステップ202では、2つの部分集合のうちどちらを削除すべきで、この2つの部分集合にあるソフトウェアおよびハードウェアモジュールすべてを最終的に統合するためにどちらを保存すべきかを知る選択をする。保存された部分集合にはSi、i=1or2という符号を付し、削除した部分集合にはSj、j=2or1という符号を付す。
この選定は、たとえば多数決論理によって行われる。
− ソフトウェアおよびハードウェアモジュールを最も多く有する部分集合は保存され、
− 2つの部分集合がソフトウェアおよびハードウェアモジュールを同数ずつ有する場合は、保存される方が偶発的に決定される。
− ソフトウェアおよびハードウェアモジュールを最も多く有する部分集合は保存され、
− 2つの部分集合がソフトウェアおよびハードウェアモジュールを同数ずつ有する場合は、保存される方が偶発的に決定される。
選定の基準はさまざまに異なることもあれば細かく分かれていることもある。たとえば、各部分集合S1およびS2のソフトウェアおよびハードウェアモジュールが管理するデータ上で実行された修正の数を計算に入れることができる。また、ソフトウェアおよびハードウェアモジュールの再起動にはこのモジュール上で実行中のセッションを停止する必要があり、この再起動によって1つまたは複数のユーザに障害が生じるおそれがあることから、各部分集合S1およびS2のソフトウェアおよびハードウェアモジュールにユーザが開設するセッションの数を計算に入れることもできる。
次に、ステップ204では、部分集合Sjのソフトウェアおよびハードウェアモジュールはそれぞれ、部分集合Siの少なくとも1つのソフトウェアおよびハードウェアモジュールと同期化する。このような同期化の非限定的な例を、図9を参照しながら説明する。
次のステップ206では、部分集合Sjは削除される。最後に、最終ステップ208では、最初にこの部分集合にあった全ソフトウェアおよびハードウェアモジュールが部分集合Siを統合する。
ステップ204、206および208は、部分集合Sjのどのソフトウェアおよびハードウェアモジュールにも適用され、一連の移行t7、t1およびt3を伴う。
図6は、コンピュータシステム10の同期化した部分集合の内部で接続が切断されることによってこの部分集合の2つの補足部分が生成され、それぞれが少なくとも1つのソフトウェアモジュールを有しているが互いに通信できない場合に、前述した移行t5の状況に応じて、本発明による同期化方法により選択的に実施した一連のステップを示している。
第1のステップ300では、同期化した部分集合S1が、それぞれが少なくとも1つのソフトウェアモジュールを有するS1の2つの補足部分の間の接続が切断されたのを検知する。
S1の2つの補足部分のうちの一方は、必然的にその識別モジュールを有する。そのため、この部分はS1として識別される。
2つの部分のうちのもう一方は、S1の識別モジュールとの一切の接触を断たれたソフトウェアおよびハードウェアモジュールを有する。そのため、ステップ302に移り、このステップでは新たな部分集合S2が作製され、ここにこのもう一方の部分のソフトウェアおよびハードウェアモジュールがすべて統合される。この統合の最中では同期化はまったく必要ない。識別子として、この新たな部分集合S2のソフトウェアおよびハードウェアモジュールを選択する必要があるだけである。すると、この選択されたソフトウェアおよびハードウェアモジュールは、移行t5に移る。
前述のとおり、ステップ108および114では、所定のメカニズムに従って、互いに同期化した同じ部分集合のソフトウェアおよびハードウェアモジュールが永続的に保持されることがわかった。このメカニズムについて、以下に非限定的な例を挙げて説明する
このために、コンピュータシステム10の各ソフトウェアおよびハードウェアモジュールのソフトウェア層は、
− 管理するデジタルデータに作用する動作を識別し、この動作をこのソフトウェアおよびハードウェアモジュールで実行したのちに、同期化した同じ部分集合に属してこのデジタルデータの複製を1つ有するほかのソフトウェアおよびハードウェアモジュールの集合に対して同期化メッセージを発信する手段と、
− デジタルデータに作用し、同期化メッセージ内で識別される動作を、この同期化メッセージを受信したことに対する応答としてこのソフトウェアおよびハードウェアモジュールにあるデジタルデータの複製上で作用するように実行する手段
とを有する。
− 管理するデジタルデータに作用する動作を識別し、この動作をこのソフトウェアおよびハードウェアモジュールで実行したのちに、同期化した同じ部分集合に属してこのデジタルデータの複製を1つ有するほかのソフトウェアおよびハードウェアモジュールの集合に対して同期化メッセージを発信する手段と、
− デジタルデータに作用し、同期化メッセージ内で識別される動作を、この同期化メッセージを受信したことに対する応答としてこのソフトウェアおよびハードウェアモジュールにあるデジタルデータの複製上で作用するように実行する手段
とを有する。
ソフトウェアおよびハードウェアモジュールが管理するデジタルデータのなかでも特に記述データは、有利なようにカタログの状態で編成されるため、同じ部分集合の中にあるカタログの連続的な同期化メカニズムを次に説明する。
まず、部分集合内のカタログの同期化が、このカタログの記述データの複製がこの部分集合のいずれかにあるソフトウェアおよびハードウェアモジュール上で修正される瞬間から確実に行われることが重要である。この記述データ上で決定された動作Aによって、記述データの修正を完全に定義することができる。たとえば、ユーザに関する記述データの修正であれば、システム管理者の権利、データ管理者の権利、オペレータの権利、単なる一ユーザの権利を有する権利全体の中から選択されるコンピュータシステム10へのアクセス権に対する動作によって定義することができる。この場合、動作Aは適用対象となる記述データおよびこの記述データ(この場合はシステム管理者、データ管理者、オペレータまたは単なる一ユーザ)の新たな値を明確に識別する。動作Aは汎用一意識別子によって識別され、保存されることができるため、記述データの現状はこの記述データの初期状態、およびデータ作製当初から操作されている一連の動作を知ることによって確認することができる。
さらに、記述データDのそれぞれのローカル複製は、バージョン番号NおよびシグネチャSを有するバージョンVに関連している。好適な実施形態では、記述データDの複製にかかる動作Aによってもたらされるあらゆる修正、作成または削除は、次のようにして
− N←N+1;
− S←S+Incr(A)(式中Incr(A)は、関連する記述データの複製にかかる動作Aの実行時に発生するランダム値である。)
バージョンVも同じように修正する。
− N←N+1;
− S←S+Incr(A)(式中Incr(A)は、関連する記述データの複製にかかる動作Aの実行時に発生するランダム値である。)
バージョンVも同じように修正する。
図7に示すように、第1のステップ400では、記述データDの複製Diに対して動作Aが実行され、この複製Diがサーバ12iによって格納される。動作Aを実行する前は、記述データDの複製Diは値val、バージョン番号NおよびシグネチャSを持つ。動作Aを実行した後は、記述データDの複製Diは値val’、バージョン番号N’=N+1およびシグネチャS’=S+Incr(A)を持つ。
動作Aを実行している最中は、記述データDの複製Diは、ほかの動作がこの複製へ実行されないように保護されている。この潜在的なほかの動作は、このために設けられたリストで待機し、動作Aを実行し終わると同時に続けて実行される。
次のステップ402では、ソフトウェアおよびハードウェアモジュール14iから同期化メッセージMが生成される。このメッセージMは動作Aの汎用識別子、つまりこの動作Aに関する完全な記述を有するとともに、シグネチャIncr(A)の増分値を有する。同ステップでは、メッセージMは、ソフトウェアおよびハードウェアモジュール14iと同じ部分集合に属して同じく記述データの複製Dを有するソフトウェアおよびハードウェアモジュール14jおよび14kへ送信される。
次に、ステップ404では、同期化メッセージMを受信すると、ソフトウェアおよびハードウェアモジュール14jは記述データDの複製Djに対して動作Aを実行し、その結果、その値、バージョン番号およびシグネチャを更新してそれぞれval’、N’およびS’となる。バージョン番号Nの更新は、ソフトウェアおよびハードウェアモジュール14iが適用するルールと同じルールを適用して行い、シグネチャの更新は、ソフトウェアおよびハードウェアモジュール14iから生成されるシグネチャIncr(A)の増分を送信することによって行う。
同じく次のステップ406では、同期化メッセージMを受信すると、ソフトウェアおよびハードウェアモジュール14kは記述データDの複製Dkに対して動作Aを実行し、その結果、その値、バージョン番号およびシグネチャを更新してそれぞれval’、N’およびS’となる。
コンピュータシステム10のいずれの記述データに対しても動作を実行するごとにこの同期化方法を繰り返すことによって、同期化した同じ部分集合にある複数のノードに複製されたカタログは、同期化が行われる時間を除いてすべて同一となる。
図7の例で示した記述データの複製のバージョンVに対するその他の修正技術は、別の方法で検討することができるが、シグネチャSが増分式に可換性があるように更新されることが有利であり、これによって図8に示すように、同じ記述データのさまざまな複製が混合する修正を管理することができる。
実際には、第1のステップ500では、記述データDの複製Diの第1のインスタンスに対して動作Aが実行され、この複製Diがサーバ12iによって格納される。動作Aを実行する前は、記述データDの複製Diは値val、バージョン番号NおよびシグネチャSを持つ。動作Aを実行した後は、記述データDの複製Diは値val’、バージョン番号N’=N+1およびシグネチャS’=S+Incr(A)を持つ。
ソフトウェアおよびハードウェアモジュール14iが、記述データDの複製を持つその部分集合のほかのソフトウェアおよびハードウェアモジュールに同期化メッセージMAを送信する時間がある前であっても、ステップ502の段階ではソフトウェアおよびハードウェアモジュール14jのうちのいずれか1つに対して動作Bが実行される。このステップでは、動作Bは記述データDの複製Djの第2のインスタンスに対して実行される。動作Bを実行する前は、記述データDの複製Djは値val、バージョン番号NおよびシグネチャSを持つ。動作Bを実行した後は、記述データDの複製Djは、val’ではなく値val’’、バージョン番号N’=N+1、およびシグネチャS’ではなくシグネチャS’’=S+Incr(B)を持つ。
したがって、ステップ500および502のあとでは、複製DiおよびDjは同じバージョン番号N’を持っているが、そのシグネチャおよび値はそれぞれ異なる。そのため、そのバージョン番号およびシグネチャによって一度に特定されるそのバージョンV’およびV’’は異なる。
次のステップ504では、同期化メッセージMAはソフトウェアおよびハードウェアモジュール14iから生成される。このメッセージMAは、動作Aの汎用識別子、つまりこの動作Aに関する記述をすべて有するとともに、シグネチャIncr(A)の増分値を有する。この同ステップでは、メッセージMAは特に、記述データの複製Djを有するソフトウェアおよびハードウェアモジュール14jへ送信される。
同じく次のステップ506では、同期化メッセージMBはソフトウェアおよびハードウェアモジュール14jから生成される。このメッセージMBは、動作Bの汎用識別子、つまりこの動作Bに関する記述をすべて有するとともに、シグネチャIncr(B)の増分値を有する。同ステップでは、メッセージMBは特に、複製Diを有するソフトウェアおよびハードウェアモジュール14iへ送信される。
ステップ508では、同期化メッセージMBを受信すると、ソフトウェアおよびハードウェアモジュール14iは記述データDの複製Diに対して動作Bを実行し、その結果、その値、バージョン番号およびシグネチャは更新されてそれぞれval’’’、N’’およびS’’’となる。値val’’’はval’に対する動作Bから生じたもの、すなわち記述データDの値valに対して動作AとBとを併用して生じたものである。値N’’はN’+1、つまりN+2と同等である。結果として、S’’’の値はS’+Incr(B)=S+Incr(A)+Incr(B)と同等である。
最後に、ステップ510では、同期化メッセージMAを受信すると、ソフトウェアおよびハードウェアモジュール14jは記述データDの複製Djに対して動作Aを実行し、その結果、その値、バージョン番号およびシグネチャは更新されてそれぞれステップ508でのDiと同じval’’’、N’’およびS’’’となる。実際には、値val’’’はval’’に対する動作Aから生じたもの、すなわち記述データDの値valに対して動作AとBとを併用して生じたものである。値N’’はN’+1、つまりN+2であると同等である。結果として、シグネチャを更新することによる増分の特性および可換性の特性により、S’’’の値はS’’+Incr(A)=S+Incr(B)+Incr(A)と同等となる。
したがって、ステップ508および510のあとでは、複製DiおよびDjは適正に同期化し、そのバージョンが同一であることがその値が同一であることの証明となることがわかる。
前述のとおり、ステップ104、110および204では、所定のメカニズムに従って、ソフトウェアおよびハードウェアモジュール14iと、少なくとも1つの選択されたソフトウェアおよびハードウェアモジュール14jとの同期化を一時的に実行することがわかった。このメカニズムの非限定的な例を次に図9を参照しながら説明する。
このメカニズムによって、モジュール同士が共同で有する記述データを管理する上で、ソフトウェアおよびハードウェアモジュール14iが選択されたソフトウェアおよびハードウェアモジュール14jに対して起こり得る遅れまたはずれを取り戻すことができる。
このメカニズムにより、第1のステップ600では、ソフトウェアおよびハードウェアモジュール14iは、このモジュールの記述データのカタログのうちの少なくとも1つを同期化させるためにほかのソフトウェアおよびハードウェアモジュールを検索している状態であり、このカタログがソフトウェアおよびハードウェアモジュール14jを選択する。当然ながらシステムは、更新を希望するカタログの複製を管理するソフトウェアおよびハードウェアモジュールのうちの1つを選択する。ソフトウェアおよびハードウェアモジュール14jが選択されると、同ステップ600では、ソフトウェアおよびハードウェアモジュール14iは自らの識別子とともに、カタログの各記述データのバージョンに関する情報(すなわち、バージョン番号およびシグネチャ)をモジュール14jに送信する。
次に、ステップ602では、ソフトウェアおよびハードウェアモジュール14jは、カタログ内容の表示を固定し、このカタログに関する全く新規の同期化メッセージを受信するための待機リストを作成する。
また、ステップ600を経たのちのステップ604では、ソフトウェアおよびハードウェアモジュール14iは、カタログ複製の保持部およびこのカタログに関する同期化メッセージの発信先として組み入れられる。このステップにおいても同じく、このカタログに関する全く新規の同期化メッセージを受信するための待機リストを作成する。
602を経たのちのステップ606では、ソフトウェアおよびハードウェアモジュール14jはソフトウェアおよびハードウェアモジュール14iの記述データのバージョンを自らのバージョンと比較する。
同一カタログからの2つの複製にみられるこのような差分の検出は、記述データがノードか(少なくとも1つの「子データ」である記述データと直接または間接的に親子関係にある場合)葉ノードか(この階層表示でツリーの末端にある場合)のいずれかであるツリーに従って記述データカタログが組織化される場合に簡略化することができる。実際には、この場合、ツリーの各ノードは、「子データ」、すなわちツリー内でこのノードの下にある記述データのシグネチャの合計を表す全体のシグネチャと関連付けることができる。したがって、差分の検出は、ツリーの根ノードから葉ノードまで、換言すれば上から下へ走査することで行われる。ツリーのノードがカタログの2つの複製内に同じ全体のシグネチャを持つ場合は常にこのノードとこのノードの「子データ」の集合とが同一であることを意味するため、このノードよりも先にあるツリー規定のサブツリー構造を検索することは有用ではない。
同ステップでは、ソフトウェアおよびハードウェアモジュール14jは、記述データの値およびバージョンを含む第1の記述データリストを構成し、モジュール14jが所有するこのバージョンはソフトウェアおよびハードウェアモジュール14iのバージョンよりも新しいものである。このほか、場合によっては、記述データの識別子を有する第2の記述データリストを構成し、モジュール14jが所有するこのバージョンはソフトウェアおよびハードウェアモジュール14iのバージョンよりも古いものである。その後、この2つのリストをソフトウェアおよびハードウェアモジュール14iへ送信する。
ステップ608では、ソフトウェアおよびハードウェアモジュール14iは、関連する記述データをカタログの複製内で更新するように第1のリストを処理する
ステップ610では、第2のリストで認識された記述データの値およびバージョンをソフトウェアおよびハードウェアモジュール14jへ送信する。
続いてステップ612では、ソフトウェアおよびハードウェアモジュール14jは、第2のリストで認識された記述データのこの値およびバージョンを、関連する記述データをカタログの複製内で更新するように処理する。記述データの更新処理をするごとに、図7を参照して説明した方法に従って、ソフトウェアおよびハードウェアモジュール14iを除いて、この記述データの複製を有する部分集合の潜在的なソフトウェアおよびハードウェアモジュールに同期化メッセージを送信する。
ソフトウェアおよびハードウェアモジュール14jとソフトウェアおよびハードウェアモジュール14iとの間でこのカタログの更新をしたあと、ステップ614の段階でソフトウェアおよびハードウェアモジュール14jの側からカタログ内容の表示の固定を解除され、ソフトウェアおよびハードウェアモジュール14iはステップ616の段階で情報を得る。
したがって、それぞれの最終ステップ618および620では、ソフトウェアおよびハードウェアモジュール14iおよび14jは、ステップ606から616の間にそれぞれの待機リストで受信した同期化メッセージを処理するために解放され、この待機リストを除去および削除したのち、状況に応じて図7および図8を参照して説明したような同期化ステップを再生する状況になる。
ステップ600から618は、ソフトウェアおよびハードウェアモジュール14iで必要な回数だけ繰り返されて記述データのカタログ全体を更新する。
前述したような方法および/またはシステムによって、複数のサーバに分配されるコンピュータシステムの複製データの中央集中型でない同期化が可能となるとともに、同期化した部分集合が変化し、その変化を管理することによって、ソフトウェアモジュールの集合の同期化を総合的に追跡することができることが明らかである。
このほか、本発明は、前述した実施形態に限定されるものではないことを述べておく。実際に、ここで明らかにした教示に照らして、上に記載した実施形態にさまざまな修正を加えてもよいことは当業者にとっては明らかであろう。以下の請求項では、この請求項が本明細書で開示した実施形態に限定されるものとして使用している用語を解釈してはならず、本文の記載およびそこから予見される内容は、ここに開示した教示の実践に一般知識を応用することによって当業者が到達しうる範囲内であることから、請求項が範囲に含めると想定するあらゆる同等のものも含まれると解釈すべきである。
Claims (10)
- ネットワーク(26、30、34)で相互に接続された複数のサーバ(121、122、123、124、125)に配信されるコンピュータシステム(10)のソフトウェアモジュール(141、181、142、143、144、145)の集合を同期化する方法であって、少なくとも一部が複数のソフトウェアモジュール上で複製されるデジタルデータ集合(CA、CB1、CB2、CB3、CB4、CB5)を管理するために各ソフトウェアモジュールがコンピュータシステムのサーバ上で実行され、集合のうちの2つのソフトウェアモジュール同士の同期化に、モジュールが管理する共通データの同期化(102、104、110)が含まれる方法において、
− 集合のうち互いに作動して同期化したソフトウェアモジュールを、同期化した少なくとも1つの部分集合(S1、S2)として集合させ、この部分集合を識別する(106、112)ステップと、
− 起動または再起動させたのちに、作動しているが集合のうちの少なくとも1つのほかのソフトウェアモジュールと同期化していない候補となる各ソフトウェアモジュール(14i)に対し、
・ 集合のうちのほかの作動しているソフトウェアモジュールを検索し(100)、
・ ほかの作動しているソフトウェアモジュールが発見され、それが識別された部分集合に属する場合、候補となるソフトウェアモジュールを前記識別された部分集合のソフトウェアモジュールのうちの少なくとも1つ(14j)と同期化させ(102、104)、
・ 候補となるソフトウェアモジュールを前記識別された部分集合に統合する(106)ステップ
とを含むことを特徴とする同期化方法。 - 候補となる各ソフトウェアモジュールに対し、ほかのソフトウェアモジュールが発見されてもそれが識別された部分集合には属さない場合、
− 同期化した新たな部分集合が作製されて識別され(112)、
− 前記候補となるソフトウェアモジュールは前記発見されたほかのソフトウェアモジュール(14j)と同期化し、
− 前記候補となるソフトウェアモジュール(14i)および前記発見されたほかのソフトウェアモジュール(14j)は、前記識別された新たな部分集合に統合される(112)、請求項1に記載の同期化方法。 - 前記候補となるソフトウェアモジュール(14i)が、発見されたほかのソフトウェアモジュールを有する識別された部分集合のソフトウェアモジュールのうちの少なくとも1つ(14j)と同期化する(102、104)際に、同期化を実現するために前記識別された部分集合から少なくとも1つのソフトウェアモジュール(14j)を選定すること(102)は、この識別された部分集合のソフトウェアモジュールの少なくとも一部の作業を負担することによって決まる、請求項1または2に記載の同期化方法。
- 前記同期化方法はさらに、
− 第1の識別された部分集合(S1)によって第2の識別された部分集合(S2)を検知する(200)ステップと、
− 前記2つの識別された部分集合のソフトウェアモジュールを、該2つの識別された部分集合のうちの1つ(Si)に集合させる(208)ステップと、
− 前記2つの識別された部分集合のもう一方を削除する(204)ステップと、
− 当初は削除された部分集合に属していた各ソフトウェアモジュールを、集合させるために選定した部分集合(Si)のソフトウェアモジュールのうちの少なくとも1つと同期化させる(206)ステップ
とを含むことができる、請求項1〜3に記載の同期化方法。 - 識別された各部分集合では、1つのソフトウェアモジュールが選択されて、前記識別された部分集合の識別子として特別にマークされる、請求項1〜4に記載の同期化方法。
- 前記同期化方法がさらに、
− 識別された部分集合(S1)の2つの補足部分であって、各部分が少なくとも1つのソフトウェアモジュールを有する部分同士の接続の切断を検知する(300)ステップと、
− この識別された部分集合(S1)をもとに、2つの補足部分のうちの一方、およびもう一方を統合する2つの部分集合(S1、S2)を生成して(302)認識するステップ
とを含むことができる、請求項1〜5に記載の同期化方法。 - 前記同期化方法がさらに、
− 第1の識別された部分集合に属する第1のソフトウェアモジュール(14i)上で、この第1のソフトウェアモジュールによって管理されるデジタルデータ(Di)に作用する動作(A)を実行する(400)ステップと、
−前記デジタルデータの複製(Dj、Dk)を有する識別された同じ部分集合のほかのソフトウェアモジュール(14j、14k)集合への動作(A)を識別する同期化メッセージ(M)を送信する(402)ステップと、
− 関連するソフトウェアモジュールのうちのいずれか1つによってこのメッセージ(M)を受信してすぐに、前記ソフトウェアモジュールにあるデジタルデータの複製に作用するように前記ソフトウェアモジュール上で識別された作動を実行する(404、406)ステップ
とを含むことができる、請求項1〜6に記載の同期化方法。 - 前記同期化方法がさらに、
− デジタルデータの一部を有する、前記候補となる各ソフトウェアモジュール(14i)が同期化する際に、デジタルデータの前記部分の複製状態を少なくとももうひとつのソフトウェアモジュール(14j)に抽出し(602)、もうひとつほかのソフトウェアモジュールにあるデジタルデータの複製に対する動作を識別する少なくとも1つの同期化メッセージを受ける潜在的なレセプタとして候補となる各ソフトウェアモジュール(14i)を登録する(604)ステップと、
− ソフトウェアモジュール(14i)のデジタルデータをほかのソフトウェアモジュール(14j)の前記デジタルデータと同期化させ(606、608、610、612)、この同期化の最中に、必要に応じて受信した同期化メッセージを待機行列に置くステップと、
− 同期化が終了する(614、616)と、待機行列を処理する(618、620)ステップ
とを含むことができる、請求項1〜7に記載の同期化方法。 - ネットワーク(26、30、34)で相互に接続された複数のサーバ(121、122、123、124、125)を有するコンピュータシステム(10)のソフトウェアモジュール(141、181、142、143、144、145)集合を同期化するシステムであって、少なくとも一部が複数のソフトウェアモジュール上で複製されるデジタルデータ集合(CA、CB1、CB2、CB3、CB4、CB5)を管理するために各ソフトウェアモジュールがコンピュータシステムのサーバ上で実行され、集合(14i、14j)のうちの2つのソフトウェアモジュール同士の同期化に、モジュールが管理する共通データの同期化が含まれるシステムにおいて、
− モジュール同士の間で、作動して同期化した集合のソフトウェアモジュールを集合させる少なくとも1つの部分集合を識別する手段と、
− 起動または再起動させたのちに、作動しているが、集合のうちの少なくとも1つのほかのソフトウェアモジュールと同期化していない候補となる各ソフトウェアモジュール(14i)に対し、
・ 集合のうちのほかの作動しているソフトウェアモジュールを検索する手段と、
・ ほかの作動しているソフトウェアモジュールが発見され、それが識別された部分集合に属する場合、候補となるソフトウェアモジュールを前記識別された部分集合のソフトウェアモジュールのうちの少なくとも1つ(14j)と同期化させる手段と、
・ 候補となるソフトウェアモジュール(14i)を識別された部分集合に統合する手段
とを含むことを特徴とするシステム。 - 通信ネットワークからダウンロード可能なコンピュータプログラム、および/またはコンピュータによって再生可能な媒体に記録されたコンピュータプログラム、および/またはプロセッサによって実行可能なコンピュータプログラムであって、該プログラムがコンピュータ上で実行される場合に、請求項1〜8のいずれか一項に記載の同期化方法のステップを実行するためのプログラムコードのインストラクションを含むことを特徴とするプログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0806252A FR2938356B1 (fr) | 2008-11-10 | 2008-11-10 | Procede et systeme de synchronisation d'un ensemble de modules logiciels d'un systeme informatique distribue en grappe de serveurs |
FR0806252 | 2008-11-10 | ||
PCT/FR2009/052158 WO2010052441A1 (fr) | 2008-11-10 | 2009-11-10 | Procede et systeme de synchronisation d'un ensemble de modules logiciels d'un systeme informatique distribue en grappe de serveurs |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012508412A true JP2012508412A (ja) | 2012-04-05 |
Family
ID=40897687
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011535156A Pending JP2012508412A (ja) | 2008-11-10 | 2009-11-10 | サーバクラスタに配信されるコンピュータシステムのソフトウェアモジュール集合の同期化方法および同期化システム |
Country Status (5)
Country | Link |
---|---|
US (1) | US20110218962A1 (ja) |
EP (1) | EP2353277A1 (ja) |
JP (1) | JP2012508412A (ja) |
FR (1) | FR2938356B1 (ja) |
WO (1) | WO2010052441A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9230084B2 (en) * | 2012-10-23 | 2016-01-05 | Verizon Patent And Licensing Inc. | Method and system for enabling secure one-time password authentication |
US9411868B2 (en) * | 2013-08-23 | 2016-08-09 | Morgan Stanley & Co. Llc | Passive real-time order state replication and recovery |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5408506A (en) * | 1993-07-09 | 1995-04-18 | Apple Computer, Inc. | Distributed time synchronization system and method |
US6952741B1 (en) | 1999-06-30 | 2005-10-04 | Computer Sciences Corporation | System and method for synchronizing copies of data in a computer system |
US7181539B1 (en) * | 1999-09-01 | 2007-02-20 | Microsoft Corporation | System and method for data synchronization |
FR2851709A1 (fr) | 2002-12-31 | 2004-08-27 | Activia Networks | Systeme, serveur et procede fournissant des ressources de synchronisation a un reseau de communications comprenant des serveurs de services |
GB0323780D0 (en) * | 2003-10-10 | 2003-11-12 | Ibm | A data brokering method and system |
US7203687B2 (en) * | 2004-02-26 | 2007-04-10 | International Business Machines Corporation | Peer-to-peer replication member initialization and deactivation |
US7543020B2 (en) * | 2005-02-10 | 2009-06-02 | Cisco Technology, Inc. | Distributed client services based on execution of service attributes and data attributes by multiple nodes in resource groups |
US8051170B2 (en) * | 2005-02-10 | 2011-11-01 | Cisco Technology, Inc. | Distributed computing based on multiple nodes with determined capacity selectively joining resource groups having resource requirements |
US7457835B2 (en) * | 2005-03-08 | 2008-11-25 | Cisco Technology, Inc. | Movement of data in a distributed database system to a storage location closest to a center of activity for the data |
US7437601B1 (en) * | 2005-03-08 | 2008-10-14 | Network Appliance, Inc. | Method and system for re-synchronizing an asynchronous mirror without data loss |
US7735051B2 (en) * | 2006-08-29 | 2010-06-08 | International Business Machines Corporation | Method for replicating and synchronizing a plurality of physical instances with a logical master |
US7805503B2 (en) * | 2007-05-10 | 2010-09-28 | Oracle International Corporation | Capability requirements for group membership |
FR2932289B1 (fr) * | 2008-06-06 | 2012-08-03 | Active Circle | Procede et systeme de synchronisation de modules logiciels d'un systeme informatique distribue en grappe de serveurs, application au stockage de donnees. |
-
2008
- 2008-11-10 FR FR0806252A patent/FR2938356B1/fr active Active
-
2009
- 2009-11-10 EP EP09768166A patent/EP2353277A1/fr not_active Withdrawn
- 2009-11-10 WO PCT/FR2009/052158 patent/WO2010052441A1/fr active Application Filing
- 2009-11-10 US US13/128,489 patent/US20110218962A1/en not_active Abandoned
- 2009-11-10 JP JP2011535156A patent/JP2012508412A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
US20110218962A1 (en) | 2011-09-08 |
WO2010052441A1 (fr) | 2010-05-14 |
FR2938356B1 (fr) | 2011-06-24 |
FR2938356A1 (fr) | 2010-05-14 |
EP2353277A1 (fr) | 2011-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7657769B2 (en) | N-way synchronization of data | |
JP7009488B2 (ja) | データセンタにわたってメタデータおよびデータの整合性を維持するための方法、デバイス、およびシステム | |
US7778970B1 (en) | Method and system for managing independent object evolution | |
TW497071B (en) | Method and apparatus for managing clustered computer systems | |
JP5486682B2 (ja) | クラウドコンピューティング・ベースの仮想計算機・ファイルシステムにおいてディスク画像を複製するシステム及び方法 | |
JP5254611B2 (ja) | 固定内容分散データ記憶のためのメタデータ管理 | |
EP2342655B1 (en) | Quorum based transactionally consistent membership management in distributed storage systems | |
JP4307673B2 (ja) | マルチクラスタ化コンピュータ・システムを構成及び管理する方法及び装置 | |
US11409622B1 (en) | Methods and systems for a non-disruptive planned failover from a primary copy of data at a primary storage system to a mirror copy of the data at a cross-site secondary storage system without using an external mediator | |
JP2948496B2 (ja) | データ処理システム内で複写データ一貫性を維持するためのシステムおよび方法 | |
US7620721B2 (en) | Pre-existing content replication | |
US11841844B2 (en) | Index update pipeline | |
US9515878B2 (en) | Method, medium, and system for configuring a new node in a distributed memory network | |
CN103597463B (zh) | 恢复服务的自动配置 | |
WO2016070375A1 (zh) | 一种分布式存储复制系统和方法 | |
US20160259811A1 (en) | Method and system for metadata synchronization | |
JPH11272533A (ja) | リレーショナルデータベース同期方法およびそのプログラムを記録した記録媒体 | |
US11893261B2 (en) | Usage of OP logs to synchronize across primary and secondary storage clusters of a cross-site distributed storage system and lightweight OP logging | |
CN106605217B (zh) | 用于将应用从一个站点移动到另一站点的方法和系统 | |
CN114925073B (zh) | 支持灵活动态分片的分布式数据库系统及其实现方法 | |
JP6196389B2 (ja) | 分散型ディザスタリカバリファイル同期サーバシステム | |
JP2004164401A (ja) | データベースシステム、センタサーバ及びデータベースのアクセス方法 | |
JP2011522337A (ja) | サーバクラスタに配信されるコンピュータシステムのソフトウェアモジュールの同期化方法、同期化システムおよびデータストレージへの適用 | |
US10346085B1 (en) | Distributed restore anywhere for directory services | |
JP2012508412A (ja) | サーバクラスタに配信されるコンピュータシステムのソフトウェアモジュール集合の同期化方法および同期化システム |