(57)【要約】  サーバファームに対するソリューションをサーバファームの集中化されたロケーションにサブミットできるようにするシステムおよび方法が提供される。サブミットされたソリューションは、サーバファームの全てのサーバに対して自動配備のために選択し、スケジュールすることができる。配備されたソリューションは、サーバファームのサーバから撤回することができる。サーバファームの損傷したサーバまたは新たなサーバは、サーバファームにわたって配備された同じソリューションを有するように同期化することができる。
2009500717.tif 000002
【特許請求の範囲】
【請求項１】
サーバファームであって、
前記サーバファームに対するソリューションを格納するための中央データベースと、
複数のサーバであって、各サーバが１つまたは複数の前記ソリューションを前記サーバに自動的に配備するためのサービス（「タイマサービス」）を含むサーバと
を備えたことを特徴とするサーバファーム。
【請求項２】
ソリューションを前記中央データベースにサブミットするためのインターフェイスをさらに備えたことを特徴とする請求項１に記載のサーバファーム。
【請求項３】
前記インターフェイスは、コマンドラインツールおよびウェブインターフェイスからなるインターフェイスの一群から選択されたことを特徴とする請求項２に記載のサーバファーム。
【請求項４】
前記ウェブインターフェイスは、前記サーバファームに対して外部にあることを特徴とする請求項３に記載のサーバファーム。
【請求項５】
前記ソリューションの各々は、前記中央データベースのスキーマが修正されることなく、前記ソリューションを前記中央データベースにサブミットできるようにする構成オブジェクトモデルを拡張することを特徴とする請求項１に記載のサーバファーム。
【請求項６】
前記タイマサービスは、前記１つまたは複数のソリューションをスケジュールされた時間に配備することを特徴とする請求項１に記載のサーバファーム。
【請求項７】
前記タイマサービスは、
前記１つまたは複数のソリューションが検証に合格した後に、前記１つまたは複数のソリューションを前記中央データベースから前記サーバにダウンロードすることによって前記１つまたは複数のソリューションを配備することを特徴とする請求項１に記載のサーバファーム。
【請求項８】
前記検証は、前記１つまたは複数のソリューションが配備に対して適合することを確保することを特徴とする請求項７に記載のサーバファーム。
【請求項９】
前記サーバは、前記ダウンロードされた１つまたは複数のソリューションを前記サーバ上の特権領域にインストールするための第２のサービスをさらに含むことを特徴とする請求項７に記載のサーバファーム。
【請求項１０】
前記１つまたは複数のソリューションが配備された後に、前記１つまたは複数のソリューションを前記サーバファームの前記複数のサーバから除去する撤回メカニズムをさらに備えたことを特徴とする請求項１に記載のサーバファーム。
【請求項１１】
前記サーバファームのサーバを前記複数のサーバに配備された前記１つまたは複数のソリューションと同期する同期メカニズムをさらに備え、前記サーバは前記複数のサーバの１つおよび前記サーバファームに対する新たなサーバからなるサーバの一群から選択されることを特徴とする請求項１に記載のサーバファーム。
【請求項１２】
複数のサーバを含むサーバファームのソリューションの配備のためのコンピュータ実施方法であって、
中央データベースに前記サーバファームに対してサブミットされたソリューションを格納することと、
要求を受信すると、前記複数のサーバへの配備のための前記ソリューションの１つまたは複数を識別することと、
前記１つまたは複数のソリューションを前記複数のサーバに配備することと
を備えることを特徴とするコンピュータ実施方法。
【請求項１３】
中央データベースに前記サーバファームに対してサブミットされたソリューションを格納することは、前記サブミッションをインターフェイスから受け取ることを含むことを特徴とする請求項１２に記載の方法。
【請求項１４】
前記インターフェイスは、コマンドラインツールおよびウェブインターフェイスからなるインターフェイスの一群から選択されることを特徴とする請求項１３に記載の方法。
【請求項１５】
前記ウェブインターフェイスは、前記サーバファームに対して外部にあることを特徴とする請求項１４に記載の方法。
【請求項１６】
前記サブミットされたソリューションの各々は、前記中央データベースのスキーマが修正されることなく、前記ソリューションを前記中央データベースにサブミットできるようにする構成オブジェクトモデルを拡張することを特徴とする請求項１２に記載の方法。
【請求項１７】
前記１つまたは複数のソリューションを前記複数のサーバに配備することは、前記１つまたは複数のソリューションをスケジュールされた時間に配備することを含むことを特徴とする請求項１２に記載の方法。
【請求項１８】
前記１つまたは複数のソリューションを前記複数のサーバに配備することは、
前記１つまたは複数のソリューションが検証に合格した後に、前記１つまたは複数のソリューションを前記中央データベースから前記複数のサーバの各々にダウンロードすることを含むことを特徴とする請求項１２に記載の方法。
【請求項１９】
前記検証は、前記１つまたは複数のソリューションが配備に対して適合することを確保することを特徴とする請求項１８に記載の方法。
【請求項２０】
前記ソリューションを前記サーバ上の特権領域にインストールするための特権を有する前記サーバ上の第２のサービスを用いて、前記ソリューションを前記サーバ上にインストールすることをさらに備えることを特徴とする請求項１９に記載の方法。
【請求項２１】
前記ソリューションの配備が成功したかを示すように前記中央データベースを更新することをさらに備えることを特徴とする請求項２０記載の方法。
【請求項２２】
撤回要求を受信すると、前記１つまたは複数のソリューションを前記複数のサーバから除去することをさらに備えることを特徴とする請求項１２に記載の方法。
【請求項２３】
前記サーバファームのサーバを前記複数のサーバに配備された前記１つまたは複数のソリューションと同期することをさらに備え、前記サーバは前記複数のサーバの１つおよび前記サーバファームに対する新たなサーバからなるサーバの一群から選択されることを特徴とする請求項１２に記載の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
今日、インターネットは、ブラウザを通じてアプリケーションをユーザに伝送するために広く使われている。インターネットはまた、個々の顧客および企業がウェブを用いて様々な商品およびサービスを購入する電子商取引に使用されている。事実、一部の会社は商品およびサービスをもっぱらウェブ上で提供し、また別の会社はウェブを用いて営業の範囲を拡張している。
【０００２】
これら商活動およびその他の活動に関して、企業および他のコンテンツ提供業者は、サーバを用いて様々なユーザからの要求を処理している。これら要求を処理するにあたって様々なアーキテクチャが用いられている。多くの場合、要求を処理するために、クラスタ（「サーバファーム」）においてサーバの集合が用いられる分散型のアーキテクチャが使用される。このようなサーバファームアーキテクチャにおいて、これらサーバの集合は、ユーザには単一のサーバのように見える。サーバファームに向けられた様々な要求を処理するためにサーバファーム内のどのサーバを使用することになるかを判定するために負荷バランシングメカニズムを使用することができる。
【０００３】
サーバファーム内の様々なサーバを構成し維持管理することは、従来、課題であった。この課題は、所与のサーバファームにおいて用いられるサーバの数が増加すると深刻化する。サーバファーム内でサーバを適切に維持管理するためには、サーバを適宜更新する必要がある。これら更新には、サーバによって提供されるデータおよびサービスを構成して、サーバの各々のセッティングおよびサービスが互いに一貫していることを確保し、サーバファームのサーバ上に存在する様々なサービスおよびアプリケーションについての知識をほぼリアルタイムで維持管理することが含まれる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
不幸なことに、サーバの管理を行う現在の技術は、サーバファーム内のサーバをシステマティックで包括的な管理を可能にする強力な手法を提供できていない。例えば、ある組織の典型的なインターネットシステムは、信頼性が高く拡張可能な形態を実現するために複数のウェブサーバを組み込んでいる。このようなファームの実装におけるこれらウェブサーバは、これらが同じセットの論理コンテンツをサポートするので、同一に構成される必要がある。しかしながら、やがて、サーバファームは、特定のカスタマの要件に対応するソリューション（「カスタマソリューション」）で更新される必要があるかもしれない。例えば、新たなアプリケーションコンポーネントをサーバファームのこれらサーバに適用する必要があるかもしれない。しかしながら、個々のサーバはそれ独自の論理的および物理的な特性を有しているので、これらサーバの管理者は、通常、１つのオペレーションを行い、そのオペレーションがサーバファームの複数のサーバに一様に適用される機能を有していない。結果として、サーバファームの管理者は、各サーバを訪れ、カスタマソリューションを各サーバ上に個別に配備しなければならない。
【０００５】
このようなカスタマソリューションの個別の配備は、いくつかの問題を引き起こす。第１に、複数のサーバが同じ論理的コンテンツをサポートするために使用される場合、カスタマソリューションを各サーバ上に個別に配備することは、結果として一貫性のない配備となることがある。サーバにわたるソリューションの配備に一貫性がないと、同じ論理的コンテンツの望ましくない動作を引き起こすことがある。第２に、管理者が複数のソリューションを各サーバに個別に配備している最中にミスを犯すこともある。結果として、これらのミスが、これらのサーバにおいて一貫性がなく診断の困難な問題として発現することになる。管理者にとって、複数のサーバが、配備されたソリューションの状態に対して、互いに一貫していることを確保することは難しい。従って、サーバファームの各サーバについて、アプリケーション設定およびソリューションなどの全ての構成データを集中的に格納することが望まれる。さらに、集中的に格納された構成データは、要求があり次第、サーバファームの全てのサーバに一貫したやり方で自動的に配備できることが望ましい。
【課題を解決するための手段】
【０００６】
本発明は、サーバファームにわたってソリューションを配備するためのシステムおよび方法を提供することによって、上で特定したニーズにアドレスする。本発明の１つの態様においては、サーバファームの全ての構成データのマスタコピーである構成データベースが提供される。その構成データベースは、サーバファームに対するソリューションを収容する論理オブジェクトを収集するソリューションストアを含む。これら論理オブジェクトは、ソリューションのバイナリ、並びにソリューションのステータス（例えば、ソリューションがサーバファームに既に配備されているかどうか）など、ソリューションに関する情報を含む。
【０００７】
本発明の別の態様においては、ソリューションストアにソリューションをサブミットするための複数のメカニズムが提供される。このようなメカニズムは、ソリューションストアにソリューションをサブミットするためにコマンドラインツールあるいはウェブインターフェイスを用いる。ウェブインターフェイスは、サーバファームに対して遠隔のシステム上にあってもよい。好ましくは、サブミットされた各ソリューションは、ソリューションの開発者が構成データベースのスキーマを理解したり、修正したりすることなく、ソリューションをソリューションストアに追加できるようにする構成オブジェクトモデルを拡張する。ソリューションをサブミットすることは、ソリューションストアへの特定のアクセス権が必要とされるかもしれない。サブミットされたソリューションは、そのソリューションが論理的に正しく、ウイルスフリーであり、あるいはその他サーバファーム環境に対応していることを確保するために、幾つかの検証チェックを受ける必要もあるかもしれない。これら検証チェックを通過できないソリューションはサーバファームに対して配備されない。
【０００８】
本発明のさらに別の態様においては、サーバファームの管理者がサブミットされたソリューションのリストを調べて、１つまたは複数のサブミットされたソリューションをサーバファームの全てのサーバに配備することを選ぶことができる。ソリューションが選択されると、即座にソリューションの配備が行われてもよい。ソリューションの配備は、後の時間に、例えば、サーバファームの使用が少ない深夜に行われるように遅延されてもよい。
【０００９】
サーバファームのそれぞれのサーバのタイマサービスを使用して、複数のサーバを備えたサーバファームにわたるソリューションが配備される。タイマサービスは、ソリューションを２つの段階で配備することができる。第１の段階において、タイマサービスは構成データベースからソリューションバンドルを取り出し、ソリューションバンドルを解き、ソリューションファイルをサーバ上の指定ディレクトリに格納する。第２の段階において、タイマサービスは、ソリューションファイルをサーバ上にインストールする。タイマサービスより高い特権を有するシステムサービス「アドミンサービス」を使用して、ソリューションファイルをサーバシステムの特権領域にインストールすることができる。ソリューションのインストールが完了すると、タイマサービスは、インストール完了メッセージを構成データベースに送る。好ましくは、ソリューションが全てのサーバ上に正常にインストールされた場合には、構成データベースは、そのソリューションのステータスを、例えば「配備されるべき」から「配備された」に更新することになる。各サーバは、次に、それらソリューションファイル中の任意のカスタムソリューションコードを実行することになる。
【００１０】
要約すると、本発明は、ソリューションの開発者がサーバファームに対するソリューションをサーバファームの集中化されたロケーションにサブミットできるようにし、サーバファームの管理者がそれらソリューションを配備すべきか、および、その時機を独立して選択することができるシステムおよび方法を提供する。結果として、サーバファームに対するソリューションを、サーバファームの全てのサーバに対して首尾一貫して、自動的に配備することができる。
【００１１】
この要約は、後述の詳細な説明でさらに説明される概念の幾つかを簡略化した形式で紹介するために提供されている。この要約は、特許請求の範囲に記載された事項の鍵となる特徴もしくは本質的な特徴を特定するためのもではなく、また特許請求の範囲に記載された事項の範囲を決定するための助けとして使用されるためのもでもない。
【００１２】
新規な特徴であると考えられる本発明の特徴は、添付の特許請求の範囲に記載されている。しかしながら、本発明自体、並びに、本発明の使用についての好ましい形態、さらなる目的および利点は、例示的実施形態の以下の詳細な説明を、付随する図面と併せて読むことで最も良く理解されるであろう。
【発明を実施するための最良の形態】
【００１３】
図１に、本発明の例示的実施形態を実装することができるデータ処理システムのネットワーク１００の絵図表現を示す。このデータ処理システムのネットワーク１００は、ネットワーク１０２を含み、これは、データ処理システムのネットワーク１００内で互いに接続された様々なデバイスおよびコンピュータ間の通信リンクを提供するために使用される媒体である。ネットワーク１０２は、有線または無線通信リンク、光ファイバケーブル、その他類似する物などの接続を含む。
【００１４】
図１に示されるように、データ処理システムのネットワーク１００は、少なくとも１つのサーバファーム１０４と、１つまたは複数のクライアント１０８−１１２とを含み、これらの全てがネットワーク１０２に接続される。サーバファーム１０４は、一般に、要求を処理するための単一サーバまたは「仮想」サーバとして存在するサーバの集合から構成される。これらクライアント１０８、１１０および１１２は、サーバファーム１０４に対するクライアントである。これらクライアント１０８、１１０および１１２は、例えば、パーソナルコンピュータまたはネットワークコンピュータとすることができる。一般に、サーバファーム１０４は、ブートファイル、オペレーティングシステムイメージ、アプリケーション、ウェブコンテンツなどのデータをクライアント１０８−１１２に提供する。データ処理システムのネットワーク１００は、追加のサーバ、クライアントおよび図示されていない他のデバイスを含んでもよい。
【００１５】
描かれた例においては、データ処理システムのネットワーク１００はインターネットであり、ネットワーク１０２はプロトコルのＴＣＰ／ＩＰスイートを使用して互いに通信するネットワークおよびゲートウエイの世界全体の集まりを表す。このインターネットの心臓部には主要なノードまたはホストコンピュータ間の高速データ通信ラインのバックボーンがある。これらノードまたはホストコンピュータは、データおよびメッセージをルートする何千もの商用、政府用、教育用、およびその他のコンピュータシステムを含む。データ処理システムのネットワーク１００は、また、いくつかの様々なタイプのネットワーク、例えば、イントラネット、ローカルエリアネット（ＬＡＮ）、あるいはワイドエリアネットワーク（ＷＡＮ）として実装してもよい。図１は１つの例であり、本発明のアーキテクチャ上の限定を意図するものではない。
【００１６】
図２は、本発明の例示的実施形態に従うサーバファーム１０４のブロック図である。図２に示されているように、サーバファーム１０４は、サーバ２０２Ａ、２０２Ｂ、２０２Ｃなどの複数のサーバを含み、その各々が通信システム２１２を通じて相互に通信する。この通信システム２１２を使用して、サーバファーム１０４に向けられた要求および応答のルーティングが取り扱われる。通信システム２１２は、様々な形態を取ることができ、これらには、例えば、バス、ネットワーク、共有メモリまたはこれらに類似する物が含まれる。
【００１７】
サーバファーム１０４は、通信システム２１２に接続され、ネットワーク１０２からサーバファーム１０４に向けられた要求を受信する役割をする負荷マネージャ２１４を含むことができる。これら要求には、クライアント１０８−１１２（図１）から受信される要求が含まれることがあり、また、ウェブページ、ファイル、または他のコンテンツに対する要求が含まれることもある。負荷マネージャ２１４は、処理のためにこれら要求をサーバ２０２Ａ−２０２Ｃに分散するように動作する。本質的に、負荷マネージャ２１４は、サーバファーム１０４のサーバ２０２Ａ−２０２Ｃのどれもが、サーバファーム１０４についての要求を不必要に負担しないようにする働きをする。
【００１８】
本発明の実施形態においては、サーバファーム１０４は、サーバファーム１０４に対する全ての構成データを格納する構成データベース２１８を含む。本発明の実施形態においては、構成データベース２１８は、サーバファーム１０４の全ての構成データのマスタコピーであり、このようにして、同じ情報がサーバ１０４のサーバ集合にわたり利用可能になるようにする。構成データベース２１８は、通信システム２１２に動作可能に接続されて、構成データがサーバファーム１０４のサーバ２０２Ａ−２０２Ｃの各々に送信できるようにする。構成データベース２１８は、サーバ２０２Ａ−２０２Ｃの各々の構成設定を管理するために使用される。構成データベース２１８は、従って、変更されなければならないか、および／またはサーバファーム１０４の様々なサーバ２０２Ａ−２０２Ｃに追加されなければならない任意の構成設定に対する集中レポジトリとして機能する。構成データベース２１８を提供することで、サーバ２０２Ａ−２０２Ｃの構成設定の更新または追加を手動で行わなければならない必要性がなくなる。サーバトポロジに関する情報を格納することの他に、構成データベース２１８は、また、セキュリティポリシー、アンチウイルス定義、言語設定などのアプリケーションに特定な設定を格納しても良い。本発明の実施形態においては、構成データベースは、サーバファーム１０４のサーバに適用可能な１つまたは複数のソリューションを格納することができる。ソリューションは、特定のコンテンツまたはサービスを提供することに関しサーバに命令することができるアプリケーションコード、定義、およびローカライズされたリソースを収容するバンドルされたファイルを含む。好ましくは、図３に示されるように、構成データベース２１８は、ソリューションストア３００と名前の付いた別個のユニットを含む。ソリューションストア３００は、論理オブジェクトの集合を含む。各論理オブジェクトは、ソリューションを表すバイナリファイル、並びに各ソリューションのステータスに関する状態情報、例えば、そのソリューションが配備のために選択されているか、あるいはそのソリューションが既に配備されているのかを含む。
【００１９】
サーバファーム１０４はまた、少なくとも１つのコンテンツストア２２０を含む。サーバファーム１０４の他の動作構成要素と同様に、コンテンツストア２２０は、コンテンツストア２２０内に格納された情報をサーバファーム１０４の様々なコンポーネントに分散することができるようにするために、通信システム２１２に動作可能に接続される。本発明の例示的実施形態においては、コンテンツストア２２０は、サーバファーム１０４のサーバに対するデータを含む。これらデータには、ドキュメント、データアイテム、ディスカッション、タスク等が含まれる。コンテンツストア２２０は、構成データベース２１８と共に動作して、１つまたは複数のサーバ２０２Ａ−２０２Ｃのある所与の構成変更に具体的に関連するコンテンツを提供する。本発明の例示的実施形態においては、コンテンツストア２２０は、構成データベース２１８とインターフェイスしていない。構成データベース２１８は、どのコンテンツデータベースがあるサーバに対するデータを格納するかについてのマップを収容する。結果として、サーバファーム１０４の各コンテンツストア２２０に問い合わせをして、そのコンテンツストアがサーバファーム１０４のある特定のサーバに対するコンテンツを含むかどうかを調べる必要はない。
【００２０】
本発明の例示的実施形態においては、サーバファーム１０４は、任意に拡張可能である。これは、サーバファーム１０４がサーバ２０２Ａ−２０２Ｃ以外の複数のサーバを用いて任意に拡張できることを含む。加えて、サーバファーム１０４は、サーバファーム１０４の複数のサーバに対するデータを格納するために複数のコンテンツストア２２０を含むこともできる。
【００２１】
特に、本発明の例示的実施形態により、ソリューションを複数のトランスポートメカニズムを通じて構成データベース２１８および／またはソリューションストア３００に追加できるようにする。図３は、ソリューションを構成データベース２１８にサブミットし、追加することができる例示的トランスポートメカニズムを示している。１つの例示的トランスポートメカニズムは、コマンドラインインターフェイス３０１である。別の例示的トランスポートメカニズムは、ウェブインターフェイス３０４である。ウェブインターフェイス３０４は、サーバファームの外部にあることもあり、ネットワーク１０２を通じて構成データベース２１８と通信する。このようなウェブインターフェイス３０４は、ソリューションをサブミットするための遠隔的体験（ｒｅｍｏｔｅ  ｅｘｐｅｒｉｅｎｃｅ）を提供する。ソリューションを構成データベース２１８に統合するための他の代替トランスポートメカニズムには、リモートプロシージャコールまたはＳＯＡＰインターフェイスを用いることが含まれ、サーバファーム１０４に対するソリューションの自動化されたサブミッションおよび配備を容易にする。
【００２２】
本発明の例示的実施形態においては、サブミットされたソリューションにより、構成データベース２１８を任意に拡張可能にする構成オブジェクトモデル３０２が拡張される。構成オブジェクトモデル３０２により、ユーザが構成データベース２１８のスキーマを理解し、または修正する必要なく、ユーザはサーバファーム１０４に対する構成データを拡張し、または更新できる。本発明の例示的実施形態においては、構成オブジェクトモデル３０２は、．Ｎｅｔオブジェクトベースのクラスを含む。ユーザは、特定の構成データでベースクラスをサブクラス化するか、またはインスタンス化することによってベースクラスを拡張することができる。次に、このようなデータが構成データベース２１８に統合される。結果として、ユーザは、様々なタイプのデータを構成データ２１８に追加するのに構成オブジェクトモデル３０２を調べる必要があるだけである。ユーザは、構成データベース２１８のスキーマを理解したり、修正したりする必要はない。本発明の例示的実施形態においては、あるアプリケーションに対する構成情報を含むオブジェクトは、例えば、ＰｅｒｓｉｓｔｅｄＯｂｊｅｃｔと名前の付けられたベースクラスから導出されるか、またはこれに含まれる。更新されると、このクラスは、「永続化された（ｐｅｒｓｉｓｔｅｄ）」属性とマークされた全てのフィールドをＸＭＬにシリアライズし、このＸＭＬブロブを構成データベース２１８に書き込む。このベースクラスは、ベースタイプ、他のＰｅｒｓｉｓｔｅｄＯｂｊｅｃｔ、またはこれら２つの一方の集まりであるそのメンバーの全てをシリアライズするコードを含む。このような設計により、サーバファーム１０４に対する構成データを収容する新たなオブジェクトを必要に応じて構成データベース２１８に追加することができるようになる。
【００２３】
本発明の例示的実施形態においては、トランスポートメカニズムに係わりなく、ソリューションを構成データベース２１８にサブミットする開発者または管理者は、構成データベース２１８にアクセスするために特定の権利を有する必要がある。これら特定の権利がなければ、開発者または管理者は、ソリューションを構成データベース２１８にサブミットすることができない。さらに、本発明の例示的実施形態においては、サブミットされたソリューションは、そのソリューションが論理的に正しく、ウイルスフリーであり、その他サーバファーム１０４とコンパチブルであることを確保するための幾つかの検証チェックに合格した場合にのみ配備されることになる。
【００２４】
このように構成データベース２１８および／またはソリューションストア３００は、このように、サーバファーム１０４の開発者および／または管理者によってサブミットされるソリューションを格納するための集中化されたロケーションを提供する。構成データベース２１８へのソリューションのサブミッションは、構成データベース２１８からソリューションを配備する能力とは独立して確保される。この分離により、サーバファーム１０４の管理者は、開発者にソリューションをサブミットさせながらも、これらのサブミッションを配備する前に独立して検査する能力を留保することができる。
【００２５】
本発明の実施形態により、ある与えられたソリューションが、サーバファーム１０４などのサーバファームの複数のサーバに自動的に配備される。本発明の実施形態により、問合せを行い、ソリューションを構成データベース２１８から引き出すためのプルベースのメカニズムがサーバファーム１０４のサーバに提供される。本発明の例示的実施形態において、このようなプルベースのメカニズムは、サーバファーム１０４の各サーバ内に含まれるタイマサービスによって実現される。そのタイマサービスは、任意の係属中の変更を同期するために構成データベース２１８に問合せを行う。このような係属中の変更には、ソリューションストア３００またはサーバファーム１０４全体にわたり作動している一組のタイマジョブに対する任意の変更が含まれる。このようなプルベースのメカニズムを用いることで、構成データベース２１８と通信するために、サーバ２０２Ａなどのサーバ上の追加のＴＣＰ／ＩＰポートを開く必要が回避される。追加のポートを開く必要がないことによって、ハッカー、ウイルス、または他の形態の攻撃に対する潜在的な入口を露出しなくなり、結果としてサーバのリスクが低減される。図４は、問合せを行い、構成データベース２１８からソリューションを引き出すためのプルベースのメカニズムの例示的実装を示している。図４に示されるように、サーバ２０２Ａは、タイマサービス４０２を収容する。動作的には、タイマサービス４０２は、構成データベース２１８および／またはソリューションストア３００に問い合わせを行って、もしあれば、どのソリューションがサーバファーム１０４に、そしてそれゆえサーバ２０２Ａに配備される必要があるかを判定する。
【００２６】
本発明の実施形態においては、サーバファーム１０４の管理者は、ソリューションストア３００においてサブミットされたソリューションのリストを検討することができる。管理者は、サブミットされた１つまたは複数のソリューションを配備すること選ぶことができ、そうすることをサーバファーム１０４のサーバ集合に対して、またはサーバファーム１０４全体のために行うように選ぶことができる。
【００２７】
本発明の実施形態において、管理者は、また、ソリューションを合理的にできるだけ速やかに配備することも（「即座の配備」）、または後の時間に配備することも（「遅延配備」）選ぶことができる。サーバファーム１０４に１つのサーバのみが存在する場合や、ソリューションストア３００のソリューションの遅延配備が必要でない場合には、ソリューションストア３００のソリューションの配備は即座に起こる。この即座の配備には、２つのタイプがある。１つのサーバによるサーバファームの状況においては、即座の配備は、管理者が配備要求を発行する同じシステム上で起こる。タイマサービス４０２などのプルベースのメカニズムは必要とされない。複数のサーバによるサーバファーム１０４においては、即座の配備は、最初にタイマサービス４０２を通信メカニズムとして使用して、サーバファーム１０４の他のサーバが配備を始めることをタイマサービスに知らせる。管理者が、複数のサーバによるサーバファーム１０４においてソリューションの配備を、例えば、サーバファーム１０４の使用が少ない深夜まで遅延することを望む場合、このソリューションの配備は、遅延配備と呼ばれる。タイマサービス４０２は、遅延配備において使用される。
【００２８】
本発明の例示的実施形態においては、タイマサービス４０２は、ソリューションの配備を２段階にて行う。第１の段階において、タイマサービス４０２は、サーバ２０２Ａに命令して、構成データベース２１８からソリューションバンドルを取り出し、ソリューションバンドルをアンパックし、それらソリューションファイルをサーバ２０２Ａの指定ディレクトリに格納する。サーバファーム１０４の全てのサーバがソリューションを一様に配備し、失敗も発生しなければ、タイマサービス４０２は、第２の段階を開始する。この第２の段階の間に、タイマサービス４０２は、ソリューションファイルをインストールし、サーバ２０２Ａに対する任意のカスタムソリューションコードを実行し、構成データベース２１８の構成情報を更新する。構成データベース２１８の構成情報は、サーバファーム１０４の１つまたは複数のサーバがソリューションを適切に配備するのに失敗しても影響を受けない。
【００２９】
本発明の例示的実施形態においては、タイマサービス４０２は、ソリューションを配備するために制限付きの特権を使用する。このような制限付きの特権により、タイマサービス４０２は構成データベース２１８と通信し、更新できるが、タイマサービス４０２が作動するサーバ２０２Ａ上のエンティティを操作できないようにする。このようなセグメンテーションにより、タイマサービス４０２が必要以上にセキュリティ特権を受けないようにする。しかしながら、ソリューションファイルをサーバの特権領域にインストールするなどの動作に対しては、タイマサービス４０２のこの制限付きの特権は充分ではない。このような場合は、タイマサービス４０２は、アドミンサービス４０４と名前の付けられた第２のサービスと通信する。アドミンサービス４０４は、サーバ２０２Ａに関する高い権限を有し、ソリューションファイルをサーバ２０２Ａの特権領域にインストールすることができる。
【００３０】
本発明の幾つかの実施形態は、また、管理者が更新されたソリューションを構成データベース２１８から引き出し、そのソリューションをサーバファーム１０４の特定のサーバ（サーバ２０２Ａなど）に適用できるようにする同期メカニズムを提供する。このメカニズムにより、管理者がサーバファーム１０４の特定のサーバを修復したり、あるいはサーバファーム１０４にジョインしたばかりの新たなサーバを準備して、そのサーバをサーバファーム１０４の他のサーバ上の設定と同期が保たれるようにしたりすることができる。この同期メカニズムは、ソリューションストア３００の配備されたソリューションの集合を、特定のサーバ上にローカルに配備されたファイルおよび変更の集合と比較し、欠けているファイルまたは変更をソリューションストア３００からダウンロードする。この同期メカニズムは、サーバファーム１０４の全てのサーバに対して指定されたソリューションストア３００の状態と、サーバの状態を一致させることによってサーバの状態を修復するために使用することができる。この同期メカニズムは、また、タイマサービス４０２を使用してソリューションをサーバファーム１０４の全てのサーバに配備するのではなく、１つまたは複数のサーバを更新するために管理者に明示的な選ばせることもできる。
【００３１】
本発明の例示的実施形態においては、管理者は、また、サーバファーム１０４の全てのサーバ上に既に配備されたソリューションを撤回するように選ぶこともできる。ソリューションの撤回は、上述のソリューションの配備の逆である。この撤回動作は、サーバファーム１０４のサーバが１つまたは複数の配備されたソリューションを除去することを要求する。好ましくは、この撤回動作は、構成データベース２１８からソリューションを除去することを含まない。
【００３２】
図５Ａ−図５Ｂは、ソリューションをサーバファームのサーバに配備するための例示的プロセス５００を示す流れ図を含む。本発明の幾つかの実施形態においては、ソリューションがサーバファームの構成データベースにサブミットされると、そのソリューションは検証を受ける。ソリューションの検証には、そのソリューションが論理的に正しいか、ウイルスフリーであるか、その他サーバファーム環境に対応するかなどを判定することが含まれる。プロセス５００は、このように、任意のサブミットされたソリューションを検証することによって開始する。ブロック５０２を参照。プロセス５００は次に、その検証が成功したかの判定に進む。判定ブロック５０４を参照。検証が失敗したときは、プロセス５００は継続ターミナルＡへと進む。判定ブロック５０４に対する答えが、検証が成功したことを意味するＹＥＳであるときは、そのソリューションは配備の準備ができている。あるいは、サブミットされたソリューションは、ソリューションがサーバファームに配備されることになる前に検証処理を受ける。
【００３３】
上述のように、ソリューションの配備は、管理者があるソリューションを配備するために選択すると、即座に起こってもよい。ソリューションの配備は、また、サーバファームの使用が低い深夜など、後の時間にスケジュールすることもできる。プロセス５００は、管理者などのユーザにソリューションの配備をスケジュールさせる。ブロック５０６を参照。ソリューションは１つのサーバファームの全てのサーバに配備される。プロセス５００はこのように、ソリューションをサーバファームの各サーバに配備するために判定ブロック５０８から開始し、判定ブロック５１８にて終わるループを通過する。このループにおいて、プロセス５００は、最初に、サーバが図４に示されるタイマサービス４０２などのサーバ上で作動しているタイマサービスからコールを受信したかを判定する。判定ブロック５０８を参照。答えがＮＯであるときは、プロセス５００は先には進まない。判定ブロック５０８に対する答えが、サーバがソリューションを配備するためにタイマサービスからコールを受信したことを意味するＹＥＳであるときは、プロセス５００は先へと進んで、サーバファームに対するソリューションを集中的に格納する構成データベースからソリューションをサーバに取り出させる。ブロック５１０を参照。サーバは次に、ダウンロードされたソリューションに入っているファイルをサーバの適切なダイレクトリに送り込む。ブロック５１２を参照。必要なときは、プロセス５００は、図４に示されるアドミンサービス４０４などのサーバのＡｄｍｉｎ  Ｓｅｒｖｉｃｅ（管理サービス）にソリューションのインストレーションプロセスを行わせる。ブロック５１４を参照。このインストレーションプロセスは、それらソリューションファイルを適切なダイレクトリにコピーし、適切なソリューション構成を設定する。このインストレーションプロセスが終了すると、タイマサービスは、ソリューションが配備され、サーバ上にインストールされたことを示すメッセージを構成データベースに送る。ブロック５１６を参照。プロセス５００は次に、サーバファームの別のサーバがソリューションの配備を必要とするか否かをチェックする。判定ブロック５１８を参照。答えがＹＥＳであるときは、プロセス５００は判定ブロック５０８にループバックして、その他のサーバに対してソリューションの配備を開始できるかを検証する。判定ブロック５１８に対する答えが、サーバファームにはソリューションの配備を必要とするサーバがないことを意味するＮＯであるときは、プロセス５００は継続ターミナルＢへと進む。
【００３４】
本発明の実施形態においては、ソリューションは、そのソリューションが検証に合格した場合にのみサーバファームの全てのサーバに配備されることになる。従って、継続ターミナルＡ（図５Ｂ）から、ソリューションが検証に合格することに失敗したときは、メッセージがユーザに、例えば、そのソリューションをサーバファームにわたり配備することを要求した管理者に送って、そのソリューションの検証が失敗したことを示す。ブロック５２０を参照。結果として、サーバファームのサーバ上に存在するいずれのソリューションファイルも削除されることとなるが、構成データベースはそのソリューションバンドルをそのまま保持することが好ましい。ブロック５２２を参照。プロセス５００はその後、終了し、ソリューションは、サーバファームのどのサーバにも配備されない。
【００３５】
対照的に、ソリューションが正常に配備され、サーバファームの全てのサーバ上にインストールされたときは、それらサーバは任意のカスタムソリューションコードを実行し、構成データベースはそのソリューションに関する自身のデータを更新することになる。例えば、構成データベースのそのソリューションのステータスは、「配備されるべき」から「配備された」に変更することができる。従って、継続ターミナルＢ（図５Ｂ）から、サーバファームのサーバがソリューションを正常にインストールすると、プロセス５００は先へと進んで、そのソリューションに関する構成データベースを更新する。ブロック５２４を参照。プロセス５００は次に先へと進んで、サーバファームの全てのサーバにそのソリューションと関連する任意のカスタムソリューションコードを実行させる。プロセス５００は、その後、終端する。
【００３６】
本発明の例示的実施形態について図示し、説明してきたが、本発明の趣旨および範囲から逸脱することなく、様々な変更をなすことができることが理解されよう。
【図面の簡単な説明】
【００３７】
【図１】本発明の態様を実装することができるデータ処理システムの例示的ネットワークを示すブロック図である。
【図２】図１における使用に適した例示的サーバファームを示すブロック図である。
【図３】ソリューションがサーバファームの集中化されたロケーションにサブミットされる例示的サーバファームのブロック図である。
【図４】ソリューションがサーバファームの各サーバに配備される例示的サーバファームのブロック図である。
【図５Ａ】サーバファームにソリューションを配備するための例示的プロセスを示す流れ図である。
【図５Ｂ】サーバファームにソリューションを配備するための例示的プロセスを示す流れ図である。
【図１】
2009500717.tif 000003
【図２】
2009500717.tif 000004
【図３】
2009500717.tif 000005
【図４】
2009500717.tif 000006
【図５Ａ】
2009500717.tif 000007
【図５Ｂ】
2009500717.tif 000008
【国際調査報告】
2009500717.tif 000009
2009500717.tif 000010