(57)【要約】  コンピュータシステムのソフトウェアモジュール集合を同期化する本方法により、各ソフトウェアモジュールはデジタルデータ集合を管理するためにコンピュータシステムのサーバ上で実行される。集合のうちの２つのソフトウェアモジュール同士の同期化は、モジュールが管理する共通データの同期化（１０２、１０４、１１０）を含む、本方法は、集合のうち互いに作動して同期化したソフトウェアモジュールを、同期化した少なくとも１つの部分集合として集合させ、この部分集合を識別する（１０６、１１２）ステップと、起動または再起動させたのちに、作動しているが少なくとも１つのほかのソフトウェアモジュールと同期化していない候補となる各ソフトウェアモジュールに対し、集合のうちのほかの作動しているソフトウェアモジュールを検索し（１００）、ほかの作動しているソフトウェアモジュールが発見され、それが識別された部分集合に属する場合、候補となるソフトウェアモジュールをこの識別された部分集合のソフトウェアモジュールのうちの少なくとも１つと同期化させ（１０２、１０４）、候補となるソフトウェアモジュールを識別された部分集合に統合する（１０６）ステップとを含む。【選択図】図３
2012508412.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク（２６、３０、３４）で相互に接続された複数のサーバ（１２１、１２２、１２３、１２４、１２５）に配信されるコンピュータシステム（１０）のソフトウェアモジュール（１４１、１８１、１４２、１４３、１４４、１４５）の集合を同期化する方法であって、少なくとも一部が複数のソフトウェアモジュール上で複製されるデジタルデータ集合（ＣＡ、ＣＢ１、ＣＢ２、ＣＢ３、ＣＢ４、ＣＢ５）を管理するために各ソフトウェアモジュールがコンピュータシステムのサーバ上で実行され、集合のうちの２つのソフトウェアモジュール同士の同期化に、モジュールが管理する共通データの同期化（１０２、１０４、１１０）が含まれる方法において、
−  集合のうち互いに作動して同期化したソフトウェアモジュールを、同期化した少なくとも１つの部分集合（Ｓ１、Ｓ２）として集合させ、この部分集合を識別する（１０６、１１２）ステップと、
−  起動または再起動させたのちに、作動しているが集合のうちの少なくとも１つのほかのソフトウェアモジュールと同期化していない候補となる各ソフトウェアモジュール（１４ｉ）に対し、
・  集合のうちのほかの作動しているソフトウェアモジュールを検索し（１００）、
・  ほかの作動しているソフトウェアモジュールが発見され、それが識別された部分集合に属する場合、候補となるソフトウェアモジュールを前記識別された部分集合のソフトウェアモジュールのうちの少なくとも１つ（１４ｊ）と同期化させ（１０２、１０４）、
・  候補となるソフトウェアモジュールを前記識別された部分集合に統合する（１０６）ステップ
とを含むことを特徴とする同期化方法。
【請求項２】
候補となる各ソフトウェアモジュールに対し、ほかのソフトウェアモジュールが発見されてもそれが識別された部分集合には属さない場合、
−  同期化した新たな部分集合が作製されて識別され（１１２）、
−  前記候補となるソフトウェアモジュールは前記発見されたほかのソフトウェアモジュール（１４ｊ）と同期化し、
−  前記候補となるソフトウェアモジュール（１４ｉ）および前記発見されたほかのソフトウェアモジュール（１４ｊ）は、前記識別された新たな部分集合に統合される（１１２）、請求項１に記載の同期化方法。
【請求項３】
前記候補となるソフトウェアモジュール（１４ｉ）が、発見されたほかのソフトウェアモジュールを有する識別された部分集合のソフトウェアモジュールのうちの少なくとも１つ（１４ｊ）と同期化する（１０２、１０４）際に、同期化を実現するために前記識別された部分集合から少なくとも１つのソフトウェアモジュール（１４ｊ）を選定すること（１０２）は、この識別された部分集合のソフトウェアモジュールの少なくとも一部の作業を負担することによって決まる、請求項１または２に記載の同期化方法。
【請求項４】
前記同期化方法はさらに、
−  第１の識別された部分集合（Ｓ１）によって第２の識別された部分集合（Ｓ２）を検知する（２００）ステップと、
−  前記２つの識別された部分集合のソフトウェアモジュールを、該２つの識別された部分集合のうちの１つ（Ｓｉ）に集合させる（２０８）ステップと、
−  前記２つの識別された部分集合のもう一方を削除する（２０４）ステップと、
−  当初は削除された部分集合に属していた各ソフトウェアモジュールを、集合させるために選定した部分集合（Ｓｉ）のソフトウェアモジュールのうちの少なくとも１つと同期化させる（２０６）ステップ
とを含むことができる、請求項１〜３に記載の同期化方法。
【請求項５】
識別された各部分集合では、１つのソフトウェアモジュールが選択されて、前記識別された部分集合の識別子として特別にマークされる、請求項１〜４に記載の同期化方法。
【請求項６】
前記同期化方法がさらに、
−  識別された部分集合（Ｓ１）の２つの補足部分であって、各部分が少なくとも１つのソフトウェアモジュールを有する部分同士の接続の切断を検知する（３００）ステップと、
−  この識別された部分集合（Ｓ１）をもとに、２つの補足部分のうちの一方、およびもう一方を統合する２つの部分集合（Ｓ１、Ｓ２）を生成して（３０２）認識するステップ
とを含むことができる、請求項１〜５に記載の同期化方法。
【請求項７】
前記同期化方法がさらに、
−  第１の識別された部分集合に属する第１のソフトウェアモジュール（１４ｉ）上で、この第１のソフトウェアモジュールによって管理されるデジタルデータ（Ｄｉ）に作用する動作（Ａ）を実行する（４００）ステップと、
−前記デジタルデータの複製（Ｄｊ、Ｄｋ）を有する識別された同じ部分集合のほかのソフトウェアモジュール（１４ｊ、１４ｋ）集合への動作（Ａ）を識別する同期化メッセージ（Ｍ）を送信する（４０２）ステップと、
−  関連するソフトウェアモジュールのうちのいずれか１つによってこのメッセージ（Ｍ）を受信してすぐに、前記ソフトウェアモジュールにあるデジタルデータの複製に作用するように前記ソフトウェアモジュール上で識別された作動を実行する（４０４、４０６）ステップ
とを含むことができる、請求項１〜６に記載の同期化方法。
【請求項８】
前記同期化方法がさらに、
−  デジタルデータの一部を有する、前記候補となる各ソフトウェアモジュール（１４ｉ）が同期化する際に、デジタルデータの前記部分の複製状態を少なくとももうひとつのソフトウェアモジュール（１４ｊ）に抽出し（６０２）、もうひとつほかのソフトウェアモジュールにあるデジタルデータの複製に対する動作を識別する少なくとも１つの同期化メッセージを受ける潜在的なレセプタとして候補となる各ソフトウェアモジュール（１４ｉ）を登録する（６０４）ステップと、
−  ソフトウェアモジュール（１４ｉ）のデジタルデータをほかのソフトウェアモジュール（１４ｊ）の前記デジタルデータと同期化させ（６０６、６０８、６１０、６１２）、この同期化の最中に、必要に応じて受信した同期化メッセージを待機行列に置くステップと、
−  同期化が終了する（６１４、６１６）と、待機行列を処理する（６１８、６２０）ステップ
とを含むことができる、請求項１〜７に記載の同期化方法。
【請求項９】
ネットワーク（２６、３０、３４）で相互に接続された複数のサーバ（１２１、１２２、１２３、１２４、１２５）を有するコンピュータシステム（１０）のソフトウェアモジュール（１４１、１８１、１４２、１４３、１４４、１４５）集合を同期化するシステムであって、少なくとも一部が複数のソフトウェアモジュール上で複製されるデジタルデータ集合（ＣＡ、ＣＢ１、ＣＢ２、ＣＢ３、ＣＢ４、ＣＢ５）を管理するために各ソフトウェアモジュールがコンピュータシステムのサーバ上で実行され、集合（１４ｉ、１４ｊ）のうちの２つのソフトウェアモジュール同士の同期化に、モジュールが管理する共通データの同期化が含まれるシステムにおいて、
−  モジュール同士の間で、作動して同期化した集合のソフトウェアモジュールを集合させる少なくとも１つの部分集合を識別する手段と、
−  起動または再起動させたのちに、作動しているが、集合のうちの少なくとも１つのほかのソフトウェアモジュールと同期化していない候補となる各ソフトウェアモジュール（１４ｉ）に対し、
・  集合のうちのほかの作動しているソフトウェアモジュールを検索する手段と、
・  ほかの作動しているソフトウェアモジュールが発見され、それが識別された部分集合に属する場合、候補となるソフトウェアモジュールを前記識別された部分集合のソフトウェアモジュールのうちの少なくとも１つ（１４ｊ）と同期化させる手段と、
・  候補となるソフトウェアモジュール（１４ｉ）を識別された部分集合に統合する手段
とを含むことを特徴とするシステム。
【請求項１０】
通信ネットワークからダウンロード可能なコンピュータプログラム、および／またはコンピュータによって再生可能な媒体に記録されたコンピュータプログラム、および／またはプロセッサによって実行可能なコンピュータプログラムであって、該プログラムがコンピュータ上で実行される場合に、請求項１〜８のいずれか一項に記載の同期化方法のステップを実行するためのプログラムコードのインストラクションを含むことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークで相互に接続された複数のサーバに配信されるコンピュータシステムのソフトウェアモジュールの集合を同期化する方法およびそのシステムに関する。また、本発明は、この方法を実施するためのコンピュータプログラムにも関する。
【０００２】
本発明は、さらに詳細には、各ソフトウェアモジュールが、デジタルデータ集合を管理するためにコンピュータシステムの１つのサーバ上で実行され、このデジタル記述データの少なくとも一部が複数のソフトウェアモジュールに複製され、集合の２つのソフトウェアモジュール同士の同期化にはモジュールが管理する共通データの同期化が含まれるコンピュータシステムに適用される。
【背景技術】
【０００３】
デジタルデータは、たとえばサービスの記述データであり、コンピュータシステムから供給されるサービスは、たとえば、ネットワークで相互に接続されたサーバ間に配信されるデータストレージサービスなどであり、各サーバは、ハードディスクまたは磁気テープに保存するストレージデバイスに関連づけられている。この場合、デジタルデータは、たとえばストレージサービスのユーザの記述データ、サービスを供給するためのコンピュータシステムのインフラストラクチャおよび動作に関する記述データ、ストレージデータおよびストレージ形態に関する記述データなどである。
【０００４】
また、コンピュータシステムから供給されるサービスは、情報データの送信サービス、データ処理サービス、計算サービス、トランザクションサービス、またはこれらを組み合わせたサービスであってもよい。それぞれの場合において、記述データは、特別に供給されるサービスに適合される。
【０００５】
ソフトウェアモジュールが実行されるコンピュータシステムのサーバは一般に、少なくともＬＡＮ（英語のＬｏｃａｌＡｒｅａＮｅｔｗｏｒｋの略）および／またはＷＡＮ（英語のＷｉｄｅＡｒｅａＮｅｔｗｏｒｋの略）タイプのネットワークによって相互接続されている。ネットワークで相互に接続されたサーバからなるこの集合は特に「サーバクラスタ」と言い、ソフトウェアモジュールは一般にクラスタの「ノード」と呼ばれる。
【０００６】
このようなアーキテクチャでは、原則として特定のサーバまたはソフトウェアモジュールがソフトウェアモジュール集合の管理に充てられ、特に複製されたデジタルデータの同期化に用いられる。これでは、全モジュールの管理に充てられるサーバまたはソフトウェアモジュールが機能しなくなったときに問題が生じる。
【０００７】
たとえば、仏国公開特許公報第ＦＲ２８５１７０９号では、データベースに関連しているメインサーバによって、通信ネットワーク経由でユーザにサーバを供給することができることが記載されている。通信ネットワークには、このメインサーバに接続されている補助サーバも設けられ、ユーザがこのサービスにさらに迅速にアクセスできるようになっている。ただしこの場合、補助サーバはメインサーバと同期化し、特にその中のデータベースと同期化していなければならない。メインサーバの補助サーバへのこの同期化を実現するため、通信ネットワークは、たとえばリソースサーバで利用されている同期化に特有の手段を備えている。そのため、通信ネットワークの特定の素子、つまりメインサーバおよびリソースサーバは、きわめて特殊な役割を担っており、この２つが機能しなくなると直ちに供給されるサービスの質に影響が出るおそれがあることは明らかである。
【０００８】
米国公開特許公報ＵＳ２００７／０２３３９００号では、コンピュータのクラスタシステムで、複数のコンピュータが共通のストレージ手段からくる同一データをローカルに複製することができることが記載されている。同一データの複製の集合が同期化するのを管理するため、コンピュータ間の接続体系には、ローカルに複製されたデータがコンピュータによって修正されるごとに共通のストレージ手段を更新することが想定されているため、ほかのコンピュータは、共通のストレージ手段を参照してローカルに複製したデータを更新することができる。ここでもまた、システムのアーキテクチャは、接続体系および共通のストレージ手段に対する固有の役割を持ち合わせている。
【０００９】
ソフトウェアモジュールが管理する共通のデジタルデータを同期化させるという意味で、ソフトウェアモジュールの同期化を中央集中型にすることが、やはり最も容易に考案できる解決策である。この同期化をコンピュータシステムの複数のサーバまたは全サーバ上に分類すると、サーバのコーディネーションに問題が生じてしまう。よって、今日では完全に満足のいく解決策は存在しない。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】仏国公開特許公報第ＦＲ２８５１７０９号
【特許文献２】米国公開特許公報ＵＳ２００７／０２３３９００号
【発明の概要】
【発明が解決しようとする課題】
【００１１】
したがって、前述の問題および制約の少なくとも一部を緩和することができるネットワークで相互に接続された複数のサーバに配信されるコンピュータシステムのソフトウェアモジュールを同期化する方法を備えることが望ましい。
【課題を解決するための手段】
【００１２】
よって本発明は、ネットワークで相互に接続された複数のサーバに配信されるコンピュータシステムのソフトウェアモジュール集合を同期化する方法であって、少なくとも一部が複数のソフトウェアモジュール上で複製されるデジタルデータ集合を管理するために各ソフトウェアモジュールがコンピュータシステムのサーバ上で実行され、集合のうちの２つのソフトウェアモジュール同士の同期化に、モジュールが管理する共通データの同期化が含まれる方法において、
−  集合のうち互いに作動して同期化したソフトウェアモジュールを、同期化した少なくとも１つの部分集合として集合させ、この部分集合を識別するステップと、
−  起動または再起動させたのちに、作動しているが集合のうちの少なくとも１つのほかのソフトウェアモジュールと同期化していない候補となる各ソフトウェアモジュールに対し、
・集合のうちのほかの作動しているソフトウェアモジュールを検索し、
・ほかの作動しているソフトウェアモジュールが発見され、それが識別された部分集合に属する場合、候補となる各ソフトウェアモジュールをこの識別された部分集合のソフトウェアモジュールのうちの少なくとも１つと同期化させ、
・候補となるソフトウェアモジュールを識別された部分集合に統合するステップ
とを含むことを特徴とする同期化方法を目的とする。
【００１３】
このように、作動しているがまだ同期化していない各ソフトウェアモジュールが、集合のうちのほかのソフトウェアモジュールとの同期化を自ら管理するため、中央集中型の同期化を避けて、ソフトウェアモジュール集合の同期化の全体的な追跡が、同期化したソフトウェアモジュールのうちの同質の部分集合の変動がすることとそれを管理することによって行われる。これらの部分集合は、その追跡が可能になるように識別される。
【００１４】
選択的に、候補となる各ソフトウェアモジュールに対し、ほかのソフトウェアモジュールが発見されてもそれが識別された部分集合には属さない場合、
−  同期化した新たな部分集合が作製されて識別され、
−  候補となるソフトウェアモジュールは発見されたほかのソフトウェアモジュールと同期化し、
−  候補となるソフトウェアモジュールおよびこの発見されたほかのソフトウェアモジュールは、この識別された新たな部分集合に統合される。
【００１５】
同じく選択的に、候補となるソフトウェアモジュールが、発見されたほかのソフトウェアモジュールを有する識別された部分集合のソフトウェアモジュールのうちの少なくとも１つと同期化する際に、同期化を実現するためにこの識別された部分集合から少なくとも１つのソフトウェアモジュールを選定することは、この識別された部分集合のソフトウェアモジュールの少なくとも一部の作業を負担することによって決まる。
【００１６】
したがって、有利なように、同期化そのものによって引き起こされる作業の負担を分担することが可能になる。
【００１７】
同じく選択的に、本発明による同期化方法はさらに、
−  第１の識別された部分集合によって第２の識別された部分集合を検知するステップと、
−  この２つの識別された部分集合のソフトウェアモジュールを、この２つの識別された部分集合のうちの１つに集合させるステップと、
−  この２つの識別された部分集合のもう一方を削除するステップと、
−  当初は削除された部分集合に属していた各ソフトウェアモジュールを、集合させるために選択した部分集合のソフトウェアモジュールのうちの少なくとも１つと同期化させるステップ
とを含むことができる。
【００１８】
このように、この同期化方法は、集合の全ソフトウェアモジュールの完全な同期化が得られない限りは、同質の部分集合同士のマージを優遇する傾向にある。
【００１９】
同じく選択的に、識別された各部分集合では、１つのソフトウェアモジュールが選択されて、この識別された部分集合の識別子として特別にマークされる。
【００２０】
よって、各部分集合で選択されたこのソフトウェアモジュールは、ほかの全ソフトウェアモジュールが識別された部分集合に属することを認識することができようにマークする役割を果たす。
【００２１】
同じく選択的に、本発明による同期化方法がさらに、
−  識別された部分集合の２つの補足部分であって、各部分が少なくとも１つのソフトウェアモジュールを有する部分同士の接続の切断を検知するステップと、
−  この識別された部分集合をもとに、２つの補足部分のうちの一方、およびもう一方を統合する２つの部分集合を生成して認識するステップ
とを含むことができる。
【００２２】
したがって、切断が、同じ部分集合にあるソフトウェアモジュールの同期化を維持することを不可能にしている原因であることから、本方法は、このような接続の切断が検知されると直ちに各部分集合を２つの部分集合に分離するようになっている。
【００２３】
同じく選択的に、本発明による同期化方法がさらに、
−  第１の識別された部分集合に属する第１のソフトウェアモジュール上で、この第１のソフトウェアモジュールによって管理されるデジタルデータに作用する動作を実行するステップと、
−  このデジタルデータの複製を有する識別された同じ部分集合のほかのソフトウェアモジュール集合への動作を識別する同期化メッセージを送信するステップと、
−  関連するソフトウェアモジュールのうちのいずれか１つによってこのメッセージを受信してすぐに、このソフトウェアモジュールにあるデジタルデータの複製に作用するようにこのソフトウェアモジュール上で識別された作動を実行するステップ
とを含むことができる。
【００２４】
したがって、構成され識別された各部分集合では、ソフトウェアモジュールが永続的に同期化する、特に効果的かつ中央集中型でないメカニズムが備えられている。実際に、部分集合の第１のソフトウェアモジュールへの動作の実行は、結果として、この動作を識別するメッセージを送信することで、この動作に関わるデジタルデータの複製を管理する同じ部分集合のほかのソフトウェアモジュールの集合に対してこれと同じ動作を実行することになる。したがって、最初に動作を実行するのがどのソフトウェアモジュールであっても、そのソフトウェアモジュールが部分集合での同期化の管理機能を果たし、最終的には同じ結果となる。すなわち、対象となる部分集合内で、この動作に関連するデジタルデータを有するソフトウェアモジュールの集合に対して動作が実行されたかのようになる。そのため、デジタルデータを管理するという点で特別または特殊な役割を果たすソフトウェアモジュールはないため、ソフトウェアモジュールまたはサーバが機能しない場合に、コンピュータシステムはサービスの継続を切断されることに対して耐性のある完全なものとなる。
【００２５】
同じく選択的に、本発明による同期化方法がさらに、
−  デジタルデータの一部を有する、候補となる各ソフトウェアモジュールが同期化する際に、デジタルデータのこの部分の複製状態を少なくとももうひとつのソフトウェアモジュールに抽出し、もうひとつほかのソフトウェアモジュールにあるデジタルデータの複製に対する動作を識別する少なくとも１つの同期化メッセージを受ける潜在的なレセプタとして候補となる各ソフトウェアモジュールを登録するステップと、
−  ソフトウェアモジュールのデジタルデータをほかのソフトウェアモジュールのデジタルデータと同期化させ、この同期化の最中に、必要に応じて受信した同期化メッセージを待機行列に置くステップと、
−  同期化が終了すると待機行列を処理するステップ
とをむことができる。
【００２６】
また、本発明は、ネットワークで相互に接続された複数のサーバを有するコンピュータシステムのソフトウェアモジュール集合を同期化するシステムであって、少なくとも一部が複数のソフトウェアモジュール上で複製されるデジタルデータ集合を管理するために各ソフトウェアモジュールがコンピュータシステムのサーバ上で実行され、集合のうちの２つのソフトウェアモジュール同士の同期化に、モジュールが管理する共通データの同期化が含まれるシステムにおいて、
−  モジュール同士の間で、作動して同期化した集合のソフトウェアモジュールを集合させる少なくとも１つの部分集合を識別する手段と、
−  起動または再起動させたのちに、作動しているが、集合のうちの少なくとも１つのほかのソフトウェアモジュールと同期化していない候補となる各ソフトウェアモジュールに対し、
・集合のうちのほかの作動しているソフトウェアモジュールを検索する手段と、
・ほかの作動しているソフトウェアモジュールが発見され、それが識別された部分集合に属する場合、候補となるソフトウェアモジュールをこの識別された部分集合のソフトウェアモジュールのうちの少なくとも１つと同期化させる手段と、
・候補となるソフトウェアモジュールを識別された部分集合に統合する手段
とを含むことを特徴とするシステムも目的とする。
【００２７】
最後にまた、本発明は、通信ネットワークからダウンロード可能なコンピュータプログラム、および／またはコンピュータによって再生可能な媒体に記録されたコンピュータプログラム、および／またはプロセッサによって実行可能なコンピュータプログラムであって、このプログラムがコンピュータ上で実行される場合に、前述のように定義したような同期化方法のステップを実行するためのプログラムコードのインストラクションを含むことを特徴とするプログラムも目的としている。
【００２８】
本発明は、例としてのみ示した以下の説明および添付の図面を参照することによってさらによく理解されるであろう。
【図面の簡単な説明】
【００２９】
【図１】ネットワークで相互に接続された複数のサーバに配信されるデータを格納するコンピュータシステムの全体構造を示す概略図である。
【図２】図１のコンピュータシステムに記述データを分類した例を示す表である。
【図３】本発明の一実施形態による図１のシステムで実施した同期化方法の一連のステップを示すフローチャートである。
【図４】図３の同期化方法を実施するため、図１のコンピュータシステムのソフトウェアおよびハードウェアモジュールの状態およびこの状態の変化を示すフローチャートである。
【図５】本発明のもうひとつの実施形態による同期化方法の一連のステップを部分的に示すフローチャートである。
【図６】本発明のもうひとつの実施形態による同期化方法の一連のステップを部分的に示すフローチャートである。
【図７】図３の同期化方法の特定のステップを実施する例を示すフローチャートである。
【図８】図３の同期化方法の特定のステップを実施する例を示すフローチャートである。
【図９】図３の同期化方法のもうひとつの特定のステップを実施する例を示すフローチャートである。
【発明を実施するための形態】
【００３０】
図１に示すコンピュータシステム１０は、複数のドメインに分類される複数のサーバ１２１、１２２、１２３、１２４および１２５を有する。各サーバは従来のタイプのものであり、詳細は説明しないが、各サーバ１２１、１２２、１２３、１２４および１２５には、データストレージサービスなどのサービスを管理する少なくとも１つの特殊なソフトウェアおよびハードウェアモジュール１４１、１４２、１４３、１４４および１４５が装備されている。
【００３１】
５つのサーバおよび２つのドメインを単なる例として図１に示しているが、ネットワークで相互に接続された複数のサーバに配信されるこのほかのあらゆるコンピュータシステムの構造に、本発明による同期化方法を適用させることができる。図は、簡略化する意味でも、ソフトウェアモジュールおよびハードウェアをサーバごとに示しているため、モジュールおよびそのサーバが以下の説明の中で混同されるおそれがあるが、本発明を全体的に適用することにおいては混同するべきではない。
【００３２】
サーバ１２１のソフトウェアおよびハードウェアモジュール１４１は、図１に詳細を示している。モジュール１４１は、サーバ１２１のオペレーティングシステムからなる第１のソフトウェア層１６１を有する。また、コンピュータシステム１０が供給するデータストレージサービスの記述データを管理する第２のソフトウェア層１８１を有する。さらに、少なくとも２つの機能を果たす第３のソフトウェアおよびハードウェア層２０１を有する。サーバ１２１の内部ハードディスクにストレージサービスの記述データを格納する第１の機能と、サーバ１２１に関連する物理ストレージリソースに格納したデータを同じくこのハードディスクに記憶する第２のキャッシュメモリ機能である。最後に、データウェアハウスとして第４のソフトウェアおよびハードウェア層２２１、２４１を有し、ハードディスク２２１に少なくとも１つのデータウェアハウス、および／または磁気テープ２４１に少なくとも１つのデータウェアハウスを有する。以下の説明では、データウェアハウスとは、接続するサーバのストレージデバイスのうちの１つまたは複数のディスクのパーティション、あるいは１つまたは複数の磁気テープからなる仮想のデータストレージスペースを意味する。
【００３３】
サーバ１２２、１２３、１２４および１２５のソフトウェアおよびハードウェアモジュール１４２、１４３、１４４および１４５は、ソフトウェアおよびハードウェアモジュール１４１と同様であるため、詳細は記載しない。
【００３４】
図１に示す例では、サーバ１２１、１２２および１２３はＬＡＮタイプの第１のネットワーク２６でそれぞれ相互に接続され、第１のサブアセンブリであるドメイン２８を形成する。この第１のドメイン２８は、たとえば地理上の場所、建物またはコンピュータ室など、地理的に位置を識別された機関と対応している。サーバ１２４および１２５は、ＬＡＮタイプの第２のネットワーク３０で相互に接続され、第２のサブアセンブリであるドメイン３２を形成する。この第２のドメイン２８も同じく、たとえば地理上の場所、建物またはコンピュータ室など、地理的に位置を識別された機関と対応している。この２つのドメインは、インターネットなどのＷＡＮタイプのネットワーク３４で互いに接続されている。
【００３５】
したがって、複数の地理上の場所に分類されたサーバクラスタの状態にあるこのコンピュータシステムでは、地理的に別々の場所にあるソフトウェアおよびハードウェアモジュールにデータを複製できるためにさらに一層確実なデータストレージを検討することができる。
【００３６】
コンピュータシステム１０が供給するストレージサービスおよび実際に格納されるデータは、図２のように一般原則で記述される記述データの集合によって完全に定義され、記述されることが有利である。したがって、ソフトウェアおよびハードウェアモジュール１４ｉのうちのいずれかのソフトウェア層１８ｉでこの記述データを管理することによって、コンピュータシステム１０のストレージサービスが確実に管理される。
【００３７】
記述データは、たとえばその性質に応じて複数の組織化した集合に統合され、場合によっては互いに接続される。組織化した集合を以下の説明では「カタログ」というが、この集合は、ディレクトリ自体がほかのティレクトリおよび／または記述データファイルを有するディレクトリツリー構造の形態を呈することができる。１つのディレクトリおよびファイルのツリー構造に応じた記述データの表示は、簡易であることが有利となり、それによって構想と管理が経済的になる。さらに、このような表示にすることよって目的のサービスが満足なものになることが多い。これよりもさらに複雑な適用には、リレーショナルデータベースで記述データを表示し、管理することも可能である。
【００３８】
記述データのカタログは、グローバルカタログ、すなわちコンピュータシステム１０の集合に有用な記述データに関するものにしたり、ローカルカタログ、すなわちサービスを管理する１つまたは複数のソフトウェアおよびハードウェアモジュール１４１、１４２、１４３、１４４または１４５に固有の記述データに関するものにしたりすることができる。有利なように、各カタログは複数のサーバまたはソフトウェアおよびハードウェアモジュールに複製される。グローバルカタログの場合、ソフトウェアおよびハードウェアモジュールの集合に複製されることが好ましい。ローカルカタログの場合、少なくとも関連する所定数のソフトウェアおよびハードウェアモジュールに複製される。
【００３９】
図２は、例として、５つのソフトウェアおよびハードウェアモジュール１４１、１４２、１４３、１４４および１４５の間の記述データカタログとして考えられる分類を示している。
【００４０】
第１のグローバルカタログＣＡは、５つのソフトウェアおよびハードウェアモジュール１４１、１４２、１４３、１４４および１４５に複製される。このカタログは、たとえばコンピュータシステム１０がサービスを供給するための全体のインフラストラクチャおよび全体の作動を記述するデータを有し、特に、コンピュータシステム１０のドメインとソフトウェアおよびハードウェアモジュールとのツリー構造を有する。また、データストレージサービスの潜在的ユーザおよびこのユーザのアクセス権を記述するデータを有することができる。たとえば、あらかじめ登録されているユーザや、共有ゾーン、ストレージの構造または形態およびストレージデータの複製などである。
【００４１】
その他のカタログは、たとえばカタログＣＢ１のようなローカルカタログであり、ソフトウェアおよびハードウェアモジュール１４１に固有の記述データが入っており、たとえばサーバ１２１およびそのストレージデバイスのローカルのインフラストラクチャおよびローカルの作動に関連するデータ、あるいはソフトウェアおよびハードウェアモジュール１４１のデータウェアハウス状態の組織、またはこれらデータウェアハウスに実際にストレージされるデジタルデータなどである。このカタログは３つに複製され、そのうちの１つはソフトウェアおよびハードウェアモジュール１４１に複製される。コンピュータシステム１０のセキュリティおよび堅牢性を向上させるため、カタログＣＢ１は複数の異なるドメインに複製してもよい。ここでは、２つのドメイン２８、３２およびカタログＣＢ１を有する完全なシステムは、たとえばドメイン２８のモジュール１４１および１４２、ドメイン３２のモジュール１４５に保存される。  
【００４２】
同じく、ソフトウェアおよびハードウェアモジュール１４２、１４３、１４４および１４５は、それぞれローカルカタログＣＢ２、ＣＢ３、ＣＢ４およびＣＢ５に接続される。たとえばカタログＣＢ２は、ドメイン２８のモジュール１４２および１４３、およびドメイン３２のモジュール１４４に保存される。カタログＣＢ３は、ドメイン２８のモジュール１４３、およびドメイン３２のモジュール１４４および１４５に保存される。カタログＣＢ４は、ドメイン３２のモジュール１４４、およびドメイン２８のモジュール１４１および１４３に保存される。カタログＣＢ５は、ドメイン３２のモジュール１４５、およびドメイン２８のモジュール１４１および１４２に保存される。
【００４３】
記述データカタログに関する前述のリストは網羅的なものではなく、例としてあげているに過ぎず、各カタログの複製数も同じく例に過ぎない。
【００４４】
このようにカタログを複製することにより（ここでは各カタログに対して少なくとも３つのソフトウェアおよびハードウェアモジュールに複製）、１つ、場合によっては２つのソフトウェアおよびハードウェアモジュールが作動状態ではない場合であっても、集合の中にあるシステムは記述データの集合にアクセスすることができるため、データストレージサービスの管理は必ずしも中断されるわけではない。実際に、このように維持されるサービス継続性は、カタログ、さらに一般には記述データの同期化が行われる瞬間から有効である。
【００４５】
同じく実際に格納されたデータは、提供されたストレージサービスのセキュリティ上の質問用に複製されるため、これらのデータを対象とするあらゆる作動または修正もさまざまに異なる複製に適用される必要がある。そのため、実際に格納されたデータの同期化が行われる必要がある。
【００４６】
換言すると、モジュールが管理する共通データの同期化を含むソフトウェアおよびハードウェアモジュール１４１、１４２、１４３、１４４および１４５の同期化が行われる必要がある。
【００４７】
そのため、次に本発明による同期化方法を図３、４、５および６を参照しながら詳細に説明する。
【００４８】
本同期化方法は、コンピュータシステム１０のソフトウェアおよびハードウェアモジュール１４１、１４２、１４３、１４４および１４５を、ソフトウェアおよびハードウェアモジュールが互いに作動して同期化している少なくとも１つの識別された部分集合に集合させることを狙いとするものである。本方法の最終目的は、同期化した１つの部分集合のみに達することであり、この部分集合が互いに同期化したコンピュータシステム１０のソフトウェアおよびハードウェアモジュール１４１、１４２、１４３、１４４および１４５すべてを集合させる。
【００４９】
よって本方法は主に、既存の同期化した部分集合のうちの１つ、または作製する新たな部分集合に統合するために、コンピュータシステム１０のソフトウェアおよびハードウェアモジュールの起動および再起動を管理することを狙いとするものである。選択的に、本発明は、ネットワークの切断、同期化した部分集合のほかの部分集合による検知（コンピュータシステム１０の同期化した部分集合を変化させるおそれのある事態すべて）など、ソフトウェアおよびハードウェアモジュールの停止を管理することも狙いとしている。
【００５０】
図３に示すように、第１のステップ１００では、コンピュータシステム１０で新たなサーバを起動させたり既存のサーバを再起動させたりしたのちに、ソフトウェアおよびハードウェアモジュール１４ｉが作動した結果、作動しているがコンピュータシステム１０のほかのソフトウェアおよびハードウェアモジュールとまだ同期化していないこのソフトウェアおよびハードウェアモジュールは、コンピュータシステム１０のほかの作動しているソフトウェアおよびハードウェアモジュールを検索する。
【００５１】
作動しているほかのソフトウェアおよびハードウェアモジュール１４ｊが発見され、このモジュールが識別されて同期化した部分集合に属している場合、識別された部分集合のソフトウェアおよびハードウェアモジュールのうちの少なくとも１つを選択するステップ１０２に移り、ソフトウェアおよびハードウェアモジュール１４ｉとこの選択されたソフトウェアおよびハードウェアモジュールとの同期化を実行する。
【００５２】
まず、この選択は、同期化されるはずのソフトウェアおよびハードウェアモジュール１４ｉのデジタルデータに基づいて行われる。よって、この選択に関する識別された部分集合のソフトウェアおよびハードウェアモジュールは、ソフトウェアおよびハードウェアモジュール１４ｉとともに共通データを管理するモジュールである。
【００５３】
選択的に、この選択も、この識別された部分集合のソフトウェアおよびハードウェアモジュールの少なくとも一部の作業を負担することによって決定される。たとえば、所定の負担以上に、識別された部分集合のソフトウェアおよびハードウェアモジュールを選択することはできないと考えることができる。したがって、必要とされているソフトウェアおよびハードウェアモジュールが一時的に過負担の状態であれば、このモジュールはソフトウェアおよびハードウェアモジュール１４ｉにほかのソフトウェアおよびハードウェアモジュールを選ぶように指示することができる。必要とされているソフトウェアおよびハードウェアモジュールがそのときにまったく利用できない場合、ソフトウェアおよびハードウェアモジュール１４ｉは作動のピークが終わるのを待てば同期化することができる。したがって、非常に多くのソフトウェアおよびハードウェアモジュールが同時に起動したり、ほかのソフトウェアおよびハードウェアモジュールが非常に必要とされているときに１つが起動したりすれば、作業の負担は必要とされるソフトウェアおよびハードウェアモジュール同士の間で公平に分担される。
【００５４】
次に、ステップ１０４では、ソフトウェアおよびハードウェアモジュール１４ｉと選択されたモジュールとの同期化が実行される。このような同期化の非限定的な例を、図９を参照しながら説明する。
【００５５】
次のステップ１０６では、ソフトウェアおよびハードウェアモジュール１４ｉは、識別されて同期化した部分集合に統合されるため、ここからさらにほかの素子が加わる。
【００５６】
最後にステップ１０８に移るが、このステップでは、所定のメカニズムに従って、識別されて互いに同期化した部分集合のソフトウェアおよびハードウェアモジュールが永続的に保持される。これについての非限定的な一例を図７および図８を参照しながら説明する。このステップでも同じく、コンピュータシステム１０は識別された部分集合を変化させるおそれのあるあらゆる事態を監視する。すなわち、マージするほかの同期化した部分集合を検知し、分離するようになっている部分集合の２つの部分の間の接続が切断されるのを検知し、（たとえば、対応するサーバが停止することによって）１つのソフトウェアおよびハードウェアモジュールを失うなどである。
【００５７】
ステップ１００では、作動しているほかのソフトウェアおよびハードウェアモジュール１４ｊが発見されてもそのモジュールが識別されている同期化した部分集合には属していない場合、ソフトウェアおよびハードウェアモジュール１４ｉをソフトウェアおよびハードウェアモジュール１４ｊと同期化させるステップ１１０に移る。この同期化は、ステップ１０４で検討した同期化と同じものであってもよい。これについては図９を参照しながら説明する。
【００５８】
次に、ステップ１１２では、同期化した新たな部分集合が作製されて識別され、この部分集合に２つのソフトウェアおよびハードウェアモジュール１４ｉおよび１４ｊを統合する。
【００５９】
最後にステップ１１４に移るが、このステップでは、所定のメカニズムに従って、識別されて互いに同期化したこの新たな部分集合のソフトウェアおよびハードウェアモジュール１４ｉおよび１４ｊが永続的に保持される。このメカニズムはステップ１０８で検討したものと同じであってもよく、これについては図７および図８を参照しながら説明する。このステップでも同じく、コンピュータシステム１０は作製された新たな部分集合を変化させるおそれのあるあらゆる事態を監視する。すなわち、マージするほかの同期化した部分集合を検知し、分離するようになっている部分集合の２つのソフトウェアおよびハードウェアモジュール１４ｉおよび１４ｊ間の接続が切断されるのを検知し、（たとえば、対応するサーバが停止することによって）１つのソフトウェアおよびハードウェアモジュールを失うなどである。
【００６０】
ステップ１００では、作動しているほかのソフトウェアおよびハードウェアモジュール１４ｊが一切発見されなければ、ソフトウェアおよびハードウェアモジュール１４ｉは同期化することができず、作動していて操作可能であっても孤立した状態になる。すると次はステップ１１６１に移るが、このステップではコンピュータシステム１０はソフトウェアおよびハードウェアモジュール１４ｉの同期化を変化させるおそれのあるあらゆる事態を監視する。すなわち、統合されうる同期化した部分集合を検知し、作動しているが孤立している、同期化できる可能性なるほかのソフトウェアおよびハードウェアモジュールを検知し、インプリメンテーションされるサーバの停止などである。
【００６１】
本発明のもうひとつの実施形態では、同期化したそれぞれの部分集合が、選択されたソフトウェアおよびハードウェアモジュールを含んでこの部分集合の識別子として特別にマークされる。たとえば、前述したステップ１１２の状況では、ソフトウェアおよびハードウェアモジュール１４ｉに検知されたのちに、作製された新たな部分集合を識別するものとして選択されることができるのは、ソフトウェアおよびハードウェアモジュール１４ｊである。
【００６２】
すると、この選択されたソフトウェアおよびハードウェアモジュールによって１つの部分集合が識別され、その結果、部分集合のうちのこの選択されたソフトウェアおよびハードウェアモジュールを排除させる可能性のあるあらゆる事態により、この部分集合の消失および１つまたは複数の新たな部分集合の潜在的な作製が生じる。
【００６３】
コンピュータシステム１０のソフトウェアおよびハードウェアモジュール１４ｉはいずれも、その移行とともに図４に示したさまざまに異なる４つの状態Ｅ１、Ｅ２、Ｅ３およびＥ４のいずれかとなる。
【００６４】
第１の状態Ｅ１では、ソフトウェアおよびハードウェアモジュール１４ｉは停止している状態である。第２の状態Ｅ２では、このモジュールは作動しているが孤立している、つまりコンピュータシステム１０のほかのソフトウェアおよびハードウェアモジュールとは同期化していない状態である。第３の状態Ｅ３では、このモジュールは識別されている同期化した部分集合の要素である。最後に第４の状態Ｅ４では、このモジュールは識別されている同期化した部分集合の要素であり、この部分集合の識別子としてマークされている。
【００６５】
第１の移行ｔ１は、停止状態Ｅ１にあるソフトウェアおよびハードウェアモジュール１４ｉを、コンピュータシステム１０のほかの作動しているソフトウェアおよびハードウェアモジュールを検索するステップ１００に移している。換言すれば、ステップ１００では、ソフトウェアおよびハードウェアモジュール１４ｉは作動しているが、このモジュールが管理するデジタルデータの同期化を検索している状態である。この状況は、たとえば対応するサーバを起動または再起動することによって起こる。
【００６６】
第２の移行ｔ２は、ソフトウェアおよびハードウェアモジュール１４ｉを、ステップ１００から作動状態にあるが孤立しているＥ２に移している。これは、ステップ１００ののちに、作動しているほかのソフトウェアおよびハードウェアモジュールが一切検知されなかったためにステップ１１６に移っている状態である。
【００６７】
第３の移行ｔ３は、ソフトウェアおよびハードウェアモジュール１４ｉをステップ１００から識別されている同期化した部分集合の要素である状態Ｅ３に移している。これは、ステップ１００ののちにステップ１０２（既存の同期化した部分集合と合流）または１１０（検知した孤立しているソフトウェアおよびハードウェアモジュールによって作製された同期化した部分集合と合流）に移った状態である。
【００６８】
第４の移行ｔ４は、ソフトウェアおよびハードウェアモジュール１４ｉを、作動しているが孤立している状態Ｅ２から同期化した部分集合を識別する状態Ｅ４に移している。同期化を実行するためにほかのソフトウェアおよびハードウェアモジュールに検知された場合の状態である。よってこのモジュールは、作製された新たな部分集合の識別子となる。
【００６９】
第５の移行ｔ５は、ソフトウェアおよびハードウェアモジュール１４ｉを、識別されている同期化した部分集合の要素である状態Ｅ３から同期化した部分集合の識別子である状態Ｅ４に移している。これは、所属する部分集合が識別モジュールを失った場合（対応するサーバの停止など）、またはソフトウェアおよびハードウェアモジュール１４ｉそのものが、接続が切断された後の状態のように、部分集合の識別モジュールとの接触を断たれた場合のモジュールの状態である。よってこのモジュールは、作製された新たな部分集合の識別子となることができるが、そのために選択される必要がある。
【００７０】
実際に、この状況では、最初の識別モジュールとの接触を断たれた対象となる部分集合のソフトウェアおよびハードウェアモジュールすべてに対して新たな識別モジュールが選択される必要がある。１つの解決策が、これらのソフトウェアおよびハードウェアモジュールすべてに対して新たな部分集合を作製し、この新たな部分集合の識別子となるようにそのうちの１つ（たとえばソフトウェアおよびハードウェアモジュール１４ｉ）を選択することである。
【００７１】
換言すると、図４を参照して説明した実施形態では、同期化した部分集合の識別モジュールが停止すれば、この部分集合のほかのソフトウェアおよびハードウェアモジュールのうちの１つが識別モジュールとなる。しかしそのために、新たな部分集合を作製し、古い部分集合のほかのソフトウェアおよびハードウェアモジュールはすべて新たな部分集合の要素となる。同期化した同じ部分集合の２つの離れた場所の間のネットワーク接続が途切れると、この部分集合の要素の一部がこの部分集合の識別モジュールから分離する。識別モジュールから分離されたこれらのソフトウェアおよびハードウェアモジュールのうち１つが選択されて、離れた場所のソフトウェアおよびハードウェアモジュールを含む新たな部分集合の識別モジュールとなる。実際には、１つまたは複数のソフトウェアおよびハードウェアモジュールが識別モジュールから分離されるたびに１つの新たな部分集合が作製される。そのうちの１つは選択されることによって（移行ｔ５）新たな部分集合の識別モジュールとなる。
【００７２】
第６の移行ｔ６は、ソフトウェアおよびハードウェアモジュール１４ｉを、作動しているが孤立している状態Ｅ２から停止状態Ｅ１に移している。この移行は特に、
−  第１の状況で、ソフトウェアおよびハードウェアモジュール１４ｉがインプリメンテーションされるサーバを停止し、
−  第２の状況で、識別されている同期化した部分集合のソフトウェアおよびハードウェアモジュール１４ｉ、または状態Ｅ２にあるほかのソフトウェアおよびハードウェアモジュールによって検知される
という２つの状況で生じる。
【００７３】
実際に、第２の状況では、検知された部分集合のソフトウェアおよびハードウェアモジュールのうちの少なくとも１つと同期化してこの部分集合の一部になる（ステップ１０２〜１０６）か、検知されて孤立しているほかのソフトウェアおよびハードウェアモジュールと同期化する必要がある（ステップ１１０〜１１２）。ただし、ソフトウェアおよびハードウェアモジュール１４ｉは孤立した形で変化しているため、解決策としては再起動することであり、これによって、この再起動をする際にステップ１００を介して移行ｔ１およびｔ３に移る必要がある。
【００７４】
第７の移行ｔ７は、ソフトウェアおよびハードウェアモジュール１４ｉを、識別されている同期化した部分集合の要素である状態Ｅ３またはこの部分集合の識別子である状態Ｅ４から停止状態Ｅ１に移している。
【００７５】
この移行は特に、
−  第１の状況で、ソフトウェアおよびハードウェアモジュール１４ｉがインプリメンテーションされるサーバを停止し、
−  第２の状況で、モジュールがある部分集合が、マージすることができる識別されている同期化したほかの部分集合を検知する
という２つの状況で生じる。
【００７６】
第２の状況では、ほかの部分集合を保持しソフトウェアおよびハードウェアモジュール１４ｉがある部分集合を消去することによってマージが行われる場合、このモジュール１４ｉおよび消去されることになる部分集合にあるほかのソフトウェアおよびハードウェアモジュールは、検知されたもう一方の部分集合のソフトウェアおよびハードウェアモジュールのうちの少なくとも１つと同期化してこの部分集合の一部になる必要がある（ステップ１０２〜１０６）。ただし、この２つの部分集合は孤立した形で変化しているため、解決策としてはソフトウェアおよびハードウェアモジュール１４ｉ、および消去されることになる部分集合のほかのソフトウェアおよびハードウェアモジュールを再起動することであり、これによって、この再起動をする際にステップ１００を介して移行ｔ１およびｔ３に移る必要がある。
【００７７】
図５は、本発明による同期化方法により、前述した移行ｔ７の第２の状況に応じて、コンピュータシステム１０の同期化した部分集合が別の部分集合を検知した際に、選択的に実施した一連のステップを示している。
【００７８】
第１のステップ２００では、第１の同期化した部分集合Ｓ１が、マージすることができる第２の同期化した部分集合Ｓ２を検知する。
【００７９】
次のステップ２０２では、２つの部分集合のうちどちらを削除すべきで、この２つの部分集合にあるソフトウェアおよびハードウェアモジュールすべてを最終的に統合するためにどちらを保存すべきかを知る選択をする。保存された部分集合にはＳｉ、ｉ＝１ｏｒ２という符号を付し、削除した部分集合にはＳｊ、ｊ＝２ｏｒ１という符号を付す。
【００８０】
この選定は、たとえば多数決論理によって行われる。
−  ソフトウェアおよびハードウェアモジュールを最も多く有する部分集合は保存され、
−  ２つの部分集合がソフトウェアおよびハードウェアモジュールを同数ずつ有する場合は、保存される方が偶発的に決定される。
【００８１】
選定の基準はさまざまに異なることもあれば細かく分かれていることもある。たとえば、各部分集合Ｓ１およびＳ２のソフトウェアおよびハードウェアモジュールが管理するデータ上で実行された修正の数を計算に入れることができる。また、ソフトウェアおよびハードウェアモジュールの再起動にはこのモジュール上で実行中のセッションを停止する必要があり、この再起動によって１つまたは複数のユーザに障害が生じるおそれがあることから、各部分集合Ｓ１およびＳ２のソフトウェアおよびハードウェアモジュールにユーザが開設するセッションの数を計算に入れることもできる。
【００８２】
次に、ステップ２０４では、部分集合Ｓｊのソフトウェアおよびハードウェアモジュールはそれぞれ、部分集合Ｓｉの少なくとも１つのソフトウェアおよびハードウェアモジュールと同期化する。このような同期化の非限定的な例を、図９を参照しながら説明する。
【００８３】
次のステップ２０６では、部分集合Ｓｊは削除される。最後に、最終ステップ２０８では、最初にこの部分集合にあった全ソフトウェアおよびハードウェアモジュールが部分集合Ｓｉを統合する。
【００８４】
ステップ２０４、２０６および２０８は、部分集合Ｓｊのどのソフトウェアおよびハードウェアモジュールにも適用され、一連の移行ｔ７、ｔ１およびｔ３を伴う。
【００８５】
図６は、コンピュータシステム１０の同期化した部分集合の内部で接続が切断されることによってこの部分集合の２つの補足部分が生成され、それぞれが少なくとも１つのソフトウェアモジュールを有しているが互いに通信できない場合に、前述した移行ｔ５の状況に応じて、本発明による同期化方法により選択的に実施した一連のステップを示している。
【００８６】
第１のステップ３００では、同期化した部分集合Ｓ１が、それぞれが少なくとも１つのソフトウェアモジュールを有するＳ１の２つの補足部分の間の接続が切断されたのを検知する。
【００８７】
Ｓ１の２つの補足部分のうちの一方は、必然的にその識別モジュールを有する。そのため、この部分はＳ１として識別される。
【００８８】
２つの部分のうちのもう一方は、Ｓ１の識別モジュールとの一切の接触を断たれたソフトウェアおよびハードウェアモジュールを有する。そのため、ステップ３０２に移り、このステップでは新たな部分集合Ｓ２が作製され、ここにこのもう一方の部分のソフトウェアおよびハードウェアモジュールがすべて統合される。この統合の最中では同期化はまったく必要ない。識別子として、この新たな部分集合Ｓ２のソフトウェアおよびハードウェアモジュールを選択する必要があるだけである。すると、この選択されたソフトウェアおよびハードウェアモジュールは、移行ｔ５に移る。
【００８９】
前述のとおり、ステップ１０８および１１４では、所定のメカニズムに従って、互いに同期化した同じ部分集合のソフトウェアおよびハードウェアモジュールが永続的に保持されることがわかった。このメカニズムについて、以下に非限定的な例を挙げて説明する
【００９０】
このために、コンピュータシステム１０の各ソフトウェアおよびハードウェアモジュールのソフトウェア層は、
−  管理するデジタルデータに作用する動作を識別し、この動作をこのソフトウェアおよびハードウェアモジュールで実行したのちに、同期化した同じ部分集合に属してこのデジタルデータの複製を１つ有するほかのソフトウェアおよびハードウェアモジュールの集合に対して同期化メッセージを発信する手段と、
−  デジタルデータに作用し、同期化メッセージ内で識別される動作を、この同期化メッセージを受信したことに対する応答としてこのソフトウェアおよびハードウェアモジュールにあるデジタルデータの複製上で作用するように実行する手段
とを有する。
【００９１】
ソフトウェアおよびハードウェアモジュールが管理するデジタルデータのなかでも特に記述データは、有利なようにカタログの状態で編成されるため、同じ部分集合の中にあるカタログの連続的な同期化メカニズムを次に説明する。
【００９２】
まず、部分集合内のカタログの同期化が、このカタログの記述データの複製がこの部分集合のいずれかにあるソフトウェアおよびハードウェアモジュール上で修正される瞬間から確実に行われることが重要である。この記述データ上で決定された動作Ａによって、記述データの修正を完全に定義することができる。たとえば、ユーザに関する記述データの修正であれば、システム管理者の権利、データ管理者の権利、オペレータの権利、単なる一ユーザの権利を有する権利全体の中から選択されるコンピュータシステム１０へのアクセス権に対する動作によって定義することができる。この場合、動作Ａは適用対象となる記述データおよびこの記述データ（この場合はシステム管理者、データ管理者、オペレータまたは単なる一ユーザ）の新たな値を明確に識別する。動作Ａは汎用一意識別子によって識別され、保存されることができるため、記述データの現状はこの記述データの初期状態、およびデータ作製当初から操作されている一連の動作を知ることによって確認することができる。
【００９３】
さらに、記述データＤのそれぞれのローカル複製は、バージョン番号ＮおよびシグネチャＳを有するバージョンＶに関連している。好適な実施形態では、記述データＤの複製にかかる動作Ａによってもたらされるあらゆる修正、作成または削除は、次のようにして
−  Ｎ←Ｎ＋１；
−  Ｓ←Ｓ＋Ｉｎｃｒ（Ａ）（式中Ｉｎｃｒ（Ａ）は、関連する記述データの複製にかかる動作Ａの実行時に発生するランダム値である。）
バージョンＶも同じように修正する。
【００９４】
図７に示すように、第１のステップ４００では、記述データＤの複製Ｄｉに対して動作Ａが実行され、この複製Ｄｉがサーバ１２ｉによって格納される。動作Ａを実行する前は、記述データＤの複製Ｄｉは値ｖａｌ、バージョン番号ＮおよびシグネチャＳを持つ。動作Ａを実行した後は、記述データＤの複製Ｄｉは値ｖａｌ’、バージョン番号Ｎ’＝Ｎ＋１およびシグネチャＳ’＝Ｓ＋Ｉｎｃｒ（Ａ）を持つ。
【００９５】
動作Ａを実行している最中は、記述データＤの複製Ｄｉは、ほかの動作がこの複製へ実行されないように保護されている。この潜在的なほかの動作は、このために設けられたリストで待機し、動作Ａを実行し終わると同時に続けて実行される。
【００９６】
次のステップ４０２では、ソフトウェアおよびハードウェアモジュール１４ｉから同期化メッセージＭが生成される。このメッセージＭは動作Ａの汎用識別子、つまりこの動作Ａに関する完全な記述を有するとともに、シグネチャＩｎｃｒ（Ａ）の増分値を有する。同ステップでは、メッセージＭは、ソフトウェアおよびハードウェアモジュール１４ｉと同じ部分集合に属して同じく記述データの複製Ｄを有するソフトウェアおよびハードウェアモジュール１４ｊおよび１４ｋへ送信される。
【００９７】
次に、ステップ４０４では、同期化メッセージＭを受信すると、ソフトウェアおよびハードウェアモジュール１４ｊは記述データＤの複製Ｄｊに対して動作Ａを実行し、その結果、その値、バージョン番号およびシグネチャを更新してそれぞれｖａｌ’、Ｎ’およびＳ’となる。バージョン番号Ｎの更新は、ソフトウェアおよびハードウェアモジュール１４ｉが適用するルールと同じルールを適用して行い、シグネチャの更新は、ソフトウェアおよびハードウェアモジュール１４ｉから生成されるシグネチャＩｎｃｒ（Ａ）の増分を送信することによって行う。
【００９８】
同じく次のステップ４０６では、同期化メッセージＭを受信すると、ソフトウェアおよびハードウェアモジュール１４ｋは記述データＤの複製Ｄｋに対して動作Ａを実行し、その結果、その値、バージョン番号およびシグネチャを更新してそれぞれｖａｌ’、Ｎ’およびＳ’となる。
【００９９】
コンピュータシステム１０のいずれの記述データに対しても動作を実行するごとにこの同期化方法を繰り返すことによって、同期化した同じ部分集合にある複数のノードに複製されたカタログは、同期化が行われる時間を除いてすべて同一となる。
【０１００】
図７の例で示した記述データの複製のバージョンＶに対するその他の修正技術は、別の方法で検討することができるが、シグネチャＳが増分式に可換性があるように更新されることが有利であり、これによって図８に示すように、同じ記述データのさまざまな複製が混合する修正を管理することができる。
【０１０１】
実際には、第１のステップ５００では、記述データＤの複製Ｄｉの第１のインスタンスに対して動作Ａが実行され、この複製Ｄｉがサーバ１２ｉによって格納される。動作Ａを実行する前は、記述データＤの複製Ｄｉは値ｖａｌ、バージョン番号ＮおよびシグネチャＳを持つ。動作Ａを実行した後は、記述データＤの複製Ｄｉは値ｖａｌ’、バージョン番号Ｎ’＝Ｎ＋１およびシグネチャＳ’＝Ｓ＋Ｉｎｃｒ（Ａ）を持つ。
【０１０２】
ソフトウェアおよびハードウェアモジュール１４ｉが、記述データＤの複製を持つその部分集合のほかのソフトウェアおよびハードウェアモジュールに同期化メッセージＭＡを送信する時間がある前であっても、ステップ５０２の段階ではソフトウェアおよびハードウェアモジュール１４ｊのうちのいずれか１つに対して動作Ｂが実行される。このステップでは、動作Ｂは記述データＤの複製Ｄｊの第２のインスタンスに対して実行される。動作Ｂを実行する前は、記述データＤの複製Ｄｊは値ｖａｌ、バージョン番号ＮおよびシグネチャＳを持つ。動作Ｂを実行した後は、記述データＤの複製Ｄｊは、ｖａｌ’ではなく値ｖａｌ’’、バージョン番号Ｎ’＝Ｎ＋１、およびシグネチャＳ’ではなくシグネチャＳ’’＝Ｓ＋Ｉｎｃｒ（Ｂ）を持つ。
【０１０３】
したがって、ステップ５００および５０２のあとでは、複製ＤｉおよびＤｊは同じバージョン番号Ｎ’を持っているが、そのシグネチャおよび値はそれぞれ異なる。そのため、そのバージョン番号およびシグネチャによって一度に特定されるそのバージョンＶ’およびＶ’’は異なる。
【０１０４】
次のステップ５０４では、同期化メッセージＭＡはソフトウェアおよびハードウェアモジュール１４ｉから生成される。このメッセージＭＡは、動作Ａの汎用識別子、つまりこの動作Ａに関する記述をすべて有するとともに、シグネチャＩｎｃｒ（Ａ）の増分値を有する。この同ステップでは、メッセージＭＡは特に、記述データの複製Ｄｊを有するソフトウェアおよびハードウェアモジュール１４ｊへ送信される。
【０１０５】
同じく次のステップ５０６では、同期化メッセージＭＢはソフトウェアおよびハードウェアモジュール１４ｊから生成される。このメッセージＭＢは、動作Ｂの汎用識別子、つまりこの動作Ｂに関する記述をすべて有するとともに、シグネチャＩｎｃｒ（Ｂ）の増分値を有する。同ステップでは、メッセージＭＢは特に、複製Ｄｉを有するソフトウェアおよびハードウェアモジュール１４ｉへ送信される。
【０１０６】
ステップ５０８では、同期化メッセージＭＢを受信すると、ソフトウェアおよびハードウェアモジュール１４ｉは記述データＤの複製Ｄｉに対して動作Ｂを実行し、その結果、その値、バージョン番号およびシグネチャは更新されてそれぞれｖａｌ’’’、Ｎ’’およびＳ’’’となる。値ｖａｌ’’’はｖａｌ’に対する動作Ｂから生じたもの、すなわち記述データＤの値ｖａｌに対して動作ＡとＢとを併用して生じたものである。値Ｎ’’はＮ’＋１、つまりＮ＋２と同等である。結果として、Ｓ’’’の値はＳ’＋Ｉｎｃｒ（Ｂ）＝Ｓ＋Ｉｎｃｒ（Ａ）＋Ｉｎｃｒ（Ｂ）と同等である。
【０１０７】
最後に、ステップ５１０では、同期化メッセージＭＡを受信すると、ソフトウェアおよびハードウェアモジュール１４ｊは記述データＤの複製Ｄｊに対して動作Ａを実行し、その結果、その値、バージョン番号およびシグネチャは更新されてそれぞれステップ５０８でのＤｉと同じｖａｌ’’’、Ｎ’’およびＳ’’’となる。実際には、値ｖａｌ’’’はｖａｌ’’に対する動作Ａから生じたもの、すなわち記述データＤの値ｖａｌに対して動作ＡとＢとを併用して生じたものである。値Ｎ’’はＮ’＋１、つまりＮ＋２であると同等である。結果として、シグネチャを更新することによる増分の特性および可換性の特性により、Ｓ’’’の値はＳ’’＋Ｉｎｃｒ（Ａ）＝Ｓ＋Ｉｎｃｒ（Ｂ）＋Ｉｎｃｒ（Ａ）と同等となる。
【０１０８】
したがって、ステップ５０８および５１０のあとでは、複製ＤｉおよびＤｊは適正に同期化し、そのバージョンが同一であることがその値が同一であることの証明となることがわかる。
【０１０９】
前述のとおり、ステップ１０４、１１０および２０４では、所定のメカニズムに従って、ソフトウェアおよびハードウェアモジュール１４ｉと、少なくとも１つの選択されたソフトウェアおよびハードウェアモジュール１４ｊとの同期化を一時的に実行することがわかった。このメカニズムの非限定的な例を次に図９を参照しながら説明する。
【０１１０】
このメカニズムによって、モジュール同士が共同で有する記述データを管理する上で、ソフトウェアおよびハードウェアモジュール１４ｉが選択されたソフトウェアおよびハードウェアモジュール１４ｊに対して起こり得る遅れまたはずれを取り戻すことができる。
【０１１１】
このメカニズムにより、第１のステップ６００では、ソフトウェアおよびハードウェアモジュール１４ｉは、このモジュールの記述データのカタログのうちの少なくとも１つを同期化させるためにほかのソフトウェアおよびハードウェアモジュールを検索している状態であり、このカタログがソフトウェアおよびハードウェアモジュール１４ｊを選択する。当然ながらシステムは、更新を希望するカタログの複製を管理するソフトウェアおよびハードウェアモジュールのうちの１つを選択する。ソフトウェアおよびハードウェアモジュール１４ｊが選択されると、同ステップ６００では、ソフトウェアおよびハードウェアモジュール１４ｉは自らの識別子とともに、カタログの各記述データのバージョンに関する情報（すなわち、バージョン番号およびシグネチャ）をモジュール１４ｊに送信する。
【０１１２】
次に、ステップ６０２では、ソフトウェアおよびハードウェアモジュール１４ｊは、カタログ内容の表示を固定し、このカタログに関する全く新規の同期化メッセージを受信するための待機リストを作成する。
【０１１３】
また、ステップ６００を経たのちのステップ６０４では、ソフトウェアおよびハードウェアモジュール１４ｉは、カタログ複製の保持部およびこのカタログに関する同期化メッセージの発信先として組み入れられる。このステップにおいても同じく、このカタログに関する全く新規の同期化メッセージを受信するための待機リストを作成する。
【０１１４】
６０２を経たのちのステップ６０６では、ソフトウェアおよびハードウェアモジュール１４ｊはソフトウェアおよびハードウェアモジュール１４ｉの記述データのバージョンを自らのバージョンと比較する。
【０１１５】
同一カタログからの２つの複製にみられるこのような差分の検出は、記述データがノードか（少なくとも１つの「子データ」である記述データと直接または間接的に親子関係にある場合）葉ノードか（この階層表示でツリーの末端にある場合）のいずれかであるツリーに従って記述データカタログが組織化される場合に簡略化することができる。実際には、この場合、ツリーの各ノードは、「子データ」、すなわちツリー内でこのノードの下にある記述データのシグネチャの合計を表す全体のシグネチャと関連付けることができる。したがって、差分の検出は、ツリーの根ノードから葉ノードまで、換言すれば上から下へ走査することで行われる。ツリーのノードがカタログの２つの複製内に同じ全体のシグネチャを持つ場合は常にこのノードとこのノードの「子データ」の集合とが同一であることを意味するため、このノードよりも先にあるツリー規定のサブツリー構造を検索することは有用ではない。
【０１１６】
同ステップでは、ソフトウェアおよびハードウェアモジュール１４ｊは、記述データの値およびバージョンを含む第１の記述データリストを構成し、モジュール１４ｊが所有するこのバージョンはソフトウェアおよびハードウェアモジュール１４ｉのバージョンよりも新しいものである。このほか、場合によっては、記述データの識別子を有する第２の記述データリストを構成し、モジュール１４ｊが所有するこのバージョンはソフトウェアおよびハードウェアモジュール１４ｉのバージョンよりも古いものである。その後、この２つのリストをソフトウェアおよびハードウェアモジュール１４ｉへ送信する。
【０１１７】
ステップ６０８では、ソフトウェアおよびハードウェアモジュール１４ｉは、関連する記述データをカタログの複製内で更新するように第１のリストを処理する
【０１１８】
ステップ６１０では、第２のリストで認識された記述データの値およびバージョンをソフトウェアおよびハードウェアモジュール１４ｊへ送信する。
【０１１９】
続いてステップ６１２では、ソフトウェアおよびハードウェアモジュール１４ｊは、第２のリストで認識された記述データのこの値およびバージョンを、関連する記述データをカタログの複製内で更新するように処理する。記述データの更新処理をするごとに、図７を参照して説明した方法に従って、ソフトウェアおよびハードウェアモジュール１４ｉを除いて、この記述データの複製を有する部分集合の潜在的なソフトウェアおよびハードウェアモジュールに同期化メッセージを送信する。
【０１２０】
ソフトウェアおよびハードウェアモジュール１４ｊとソフトウェアおよびハードウェアモジュール１４ｉとの間でこのカタログの更新をしたあと、ステップ６１４の段階でソフトウェアおよびハードウェアモジュール１４ｊの側からカタログ内容の表示の固定を解除され、ソフトウェアおよびハードウェアモジュール１４ｉはステップ６１６の段階で情報を得る。
【０１２１】
したがって、それぞれの最終ステップ６１８および６２０では、ソフトウェアおよびハードウェアモジュール１４ｉおよび１４ｊは、ステップ６０６から６１６の間にそれぞれの待機リストで受信した同期化メッセージを処理するために解放され、この待機リストを除去および削除したのち、状況に応じて図７および図８を参照して説明したような同期化ステップを再生する状況になる。
【０１２２】
ステップ６００から６１８は、ソフトウェアおよびハードウェアモジュール１４ｉで必要な回数だけ繰り返されて記述データのカタログ全体を更新する。
【０１２３】
前述したような方法および／またはシステムによって、複数のサーバに分配されるコンピュータシステムの複製データの中央集中型でない同期化が可能となるとともに、同期化した部分集合が変化し、その変化を管理することによって、ソフトウェアモジュールの集合の同期化を総合的に追跡することができることが明らかである。
【０１２４】
このほか、本発明は、前述した実施形態に限定されるものではないことを述べておく。実際に、ここで明らかにした教示に照らして、上に記載した実施形態にさまざまな修正を加えてもよいことは当業者にとっては明らかであろう。以下の請求項では、この請求項が本明細書で開示した実施形態に限定されるものとして使用している用語を解釈してはならず、本文の記載およびそこから予見される内容は、ここに開示した教示の実践に一般知識を応用することによって当業者が到達しうる範囲内であることから、請求項が範囲に含めると想定するあらゆる同等のものも含まれると解釈すべきである。  
【図１】
2012508412.tif 000003
【図２】
2012508412.tif 000004
【図３】
2012508412.tif 000005
【図４】
2012508412.tif 000006
【図５】
2012508412.tif 000007
【図６】
2012508412.tif 000008
【図７】
2012508412.tif 000009
【図８】
2012508412.tif 000010
【図９】
2012508412.tif 000011
【国際調査報告】
2012508412.tif 000012
2012508412.tif 000013
2012508412.tif 000014
2012508412.tif 000015
2012508412.tif 000016
2012508412.tif 000017