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