(57)【要約】【課題】プラットフォームから独立してソフトウェア・コンポーネント・データを取り出すことを可能にするシステムおよび方法を提供すること。【解決手段】発見されたこのシステムおよび方法は、ソフトウェア・コンポーネントのインストールに関連する競合、同時要件、事前要件をプラットフォーム中立方式で取り出されるソフトウェア記述に含めることによって、このような情報を管理する。このシステムおよび方法は、ターゲット・コンピュータ・システムによって開始することができ、あるいはコンピュータ・ネットワークを介してターゲット・コンピュータ・システムに接続するアプリケーション・サーバによって駆動することができる。ターゲットによって開始される環境では、ターゲット・コンピュータ・システムは、コンポーネント・ソフトウェアをインストールする前に、コンポーネント記述中で識別された競合および同時／事前要件の問題を解決する。
2006523333.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ・ネットワークを介してソフトウェア・コンポーネントをインストールする方法であって、
前記コンピュータ・ネットワークを介して、ソフトウェア・コンポーネントを識別する要求をインストール・ターゲット・コンピュータ・システムから受け取るステップと、
前記要求されたソフトウェア・コンポーネントに対応するインターフェースを突き止めるステップと、
前記識別されたインターフェースを使用してコンポーネント記述を取り出すステップと、
前記コンポーネント記述を分析し、前記分析の結果、前記要求されたソフトウェア・コンポーネントをインストールするのに使用される１つまたは複数のコンポーネント・ファイルを識別するステップと、
前記要求されたソフトウェア・コンポーネントに関係する応答を前記インストール・ターゲット・コンピュータ・システムに返すステップとを含む方法。
【請求項２】
前記ソフトウェア・コンポーネント要求はＳＯＡＰ要求を含み、前記応答はＳＯＡＰ応答を含む、請求項１に記載の方法。
【請求項３】
前記コンピュータ・ネットワークを介してファイル・サーバに前記コンポーネント・ファイルを要求するステップと、
前記要求したコンポーネント・ファイルを受け取るステップと、
前記受け取ったコンポーネント・ファイルを前記インストール・ターゲット・コンピュータ・システムに送るステップとをさらに含む、請求項１に記載の方法。
【請求項４】
前記コンポーネント記述は１つまたは複数の同時要件ソフトウェア・コンポーネントの識別を含み、
前記同時要件ソフトウェア・コンポーネントの識別子を前記応答と共に返すステップと、
前記コンピュータ・ネットワークを介して、前記同時要件ソフトウェア・コンポーネントのうちの１つを識別する第２の要求をインストール・ターゲット・コンピュータ・システムから受け取るステップと、
前記要求された同時要件ソフトウェア・コンポーネントに対応する第２のインターフェースを突き止めるステップと、
前記第２のインターフェースを使用して第２のコンポーネント記述を取り出すステップと、
前記第２のコンポーネント記述を分析し、前記分析の結果、前記要求された同時要件ソフトウェア・コンポーネントをインストールするのに使用される１つまたは複数の同時要件ソフトウェア・コンポーネント・ファイルを識別するステップと、
前記要求された第２のソフトウェア・コンポーネントに関係する応答を前記インストール・ターゲット・コンピュータ・システムに返すステップとをさらに含む、請求項１に記載の方法。
【請求項５】
前記突き止めるステップはさらに、
前記要求されたソフトウェア・コンポーネントに関係するエンタープライズＪａｖａ（Ｒ）ビーンに対応するホーム・インターフェースを要求するステップを含む、請求項１に記載の方法。
【請求項６】
前記コンポーネント記述を取り出すステップはさらに、
前記突き止められたインターフェースを含むエンタープライズＪａｖａ（Ｒ）ビーンのファインド（ｆｉｎｄ）メソッドを呼び出すステップを含む、請求項１に記載の方法。
【請求項７】
コンピュータ・ネットワークを介してソフトウェア・コンポーネントをインストールするための、コンピュータ操作可能な媒体に記憶されたコンピュータ・プログラムであって、
前記コンピュータ・ネットワークを介して、ソフトウェア・コンポーネントを識別する要求をインストール・ターゲット・コンピュータ・システムから受け取る手段と、
前記要求されたソフトウェア・コンポーネントに対応するインターフェースを突き止める手段とを備えるコンピュータ・プログラム。
【請求項８】
前記ソフトウェア・コンポーネント要求は登録要求を含み、
前記要求されたソフトウェア・コンポーネントに対応する前記要求をＪａｖａ（Ｒ）メッセージ・サービスに登録するステップと、
前記要求されたソフトウェア・コンポーネントに対応する前記記述が変更されたことを示す通知を前記Ｊａｖａ（Ｒ）メッセージ・サービスから受け取るステップとをさらに含む、請求項１に記載の方法。
【請求項９】
前記登録要求はインストール・ターゲット・アクセス情報を含み、
前記通知を受け取ったのに応答して、前記インストール・ターゲット・アクセス情報を使用して前記インストール・ターゲット・コンピュータ・システムにアクセスするステップと、
前記コンピュータ・ネットワークを介して、前記コンポーネント・ファイルのうちの１つまたは複数を前記インストール・ターゲット・コンピュータ・システムにインストールするステップとをさらに含む、請求項８に記載の方法。
【請求項１０】
１つまたは複数のプロセッサと、
前記プロセッサからアクセス可能なメモリと、
前記プロセッサからアクセス可能な１つまたは複数の不揮発性記憶デバイスと、
情報処理システムをコンピュータ・ネットワークに接続するネットワーク・インターフェースと、
前記コンピュータ・ネットワークを介してコンポーネント・ファイルをインストールするためのインストール・ツールとを備える情報処理システムであって、前記インストール・ツールは、
前記コンピュータ・ネットワークを介して、ソフトウェア・コンポーネントを識別する要求をインストール・ターゲット・コンピュータ・システムから受け取るための受信ロジックと、
前記要求されたソフトウェア・コンポーネントに対応するインターフェースを突き止めるための突止めロジックと、
前記識別されたインターフェースを使用してコンポーネント記述を取り出すための取出しロジックと、
前記コンポーネント記述を分析し、前記分析の結果、前記要求されたソフトウェア・コンポーネントをインストールするのに使用される１つまたは複数のコンポーネント・ファイルを識別する分析ロジックと、
前記要求されたソフトウェア・コンポーネントに関係する応答を前記インストール・ターゲット・コンピュータ・システムに返すための送信ロジックとを備える情報処理システム。
【請求項１１】
コンピュータ・ネットワークを介してソフトウェア・コンポーネントをインストールするための、コンピュータ操作可能な媒体に記憶されたコンピュータ・プログラムであって、
前記コンピュータ・ネットワークを介して、ソフトウェア・コンポーネントを識別する要求をインストール・ターゲット・コンピュータ・システムから受け取る手段と、
前記要求されたソフトウェア・コンポーネントに対応するインターフェースを突き止める手段と、
前記識別されたインターフェースを使用してコンポーネント記述を取り出す手段と、
前記コンポーネント記述を分析し、前記分析の結果、前記要求されたソフトウェア・コンポーネントをインストールするのに使用される１つまたは複数のコンポーネント・ファイルを識別する手段と、
前記要求されたソフトウェア・コンポーネントに関係する応答を前記インストール・ターゲット・コンピュータ・システムに返す手段とを備えるコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア・コンポーネントをインストールするためのシステムおよび方法に関する。より詳細には、本発明は、プラットフォーム中立のソフトウェア・モジュールを使用してコンピュータ・ネットワークを介してソフトウェア・インストール情報を提供するためのシステムおよび方法に関する。
【背景技術】
【０００２】
ソフトウェア・コンポーネントのインストールは、近年のソフトウェア製品に関する複雑さのせいで難題である。Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（Ｒ）ＸＰ（商標）、Ｌｉｎｕｘ（商標）、ＩＢＭのＡＩＸ（商標）オペレーティング・システムなど、様々なハードウェアおよびソフトウェア・プラットフォームはそれぞれ、インストール手順が異なる。また、特定のソフトウェア・コンポーネントが、他のソフトウェア・コンポーネントなど、インストール前に解決しておく必要のある既知の競合を有する場合もある。
【０００３】
さらに、ソフトウェア・コンポーネントは、前もってインストールしておくことが推奨されるかまたは必要とされる同時要件および事前要件のソフトウェア・コンポーネントがあるという点で、ますます複雑である。証明書レベルやライセンス供与情報など、ソフトウェア・コンポーネントに関するその他の情報も、ソフトウェア・コンポーネントをインストールする前に考慮する必要がある。
【０００４】
正しくインストールされなかったソフトウェア・コンポーネントは、クライアント・コンピュータ・システムまたはターゲット・コンピュータ・システムに対して、データ損失またはその他の損害を引き起こす場合がある。さらに、従来のソフトウェア・インストール手順は、プラットフォームに依存する。あるプラットフォームに対して提供されたインストール・データは、別のプラットフォームからは、その別のプラットフォーム環境にそのデータをポートしない限り容易に利用可能ではない。また、プラットフォームへの依存は、複雑なソフトウェア・コンポーネントの統合に使用されるカスタム・コードおよび構成データを再使用することを制限する。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
したがって、プラットフォームから独立してソフトウェア・コンポーネント・データを取り出すことを可能にするシステムおよび方法が必要とされている。さらに、ソフトウェア・コンポーネントのインストールに関連する競合、同時要件、事前要件を管理することができるのも有利であろう。また、クライアント・コンピュータ・システムまたはターゲット・コンピュータ・システムによって開始することのできるシステムおよび方法、あるいはコンピュータ・ネットワークを介してターゲット・コンピュータ・システムに接続するアプリケーション・サーバによって駆動することのできるシステムおよび方法も有利であろう。
【課題を解決するための手段】
【０００６】
前述の難題は、プラットフォームから独立してソフトウェア・コンポーネント・データを取り出すことを可能にするシステムおよび方法によって解決することができる。このシステムおよび方法は、ソフトウェア・コンポーネントのインストールに関連する競合、同時要件、事前要件を、エンタープライズＪａｖａ（Ｒ）ビーンを利用してプラットフォーム中立方式で取り出されるソフトウェア記述に含めることによって、このような情報を管理する。このシステムおよび方法は、ターゲット・コンピュータ・システムによって開始することができ、あるいはコンピュータ・ネットワークを介してターゲット・コンピュータ・システムに接続するアプリケーション・サーバによって駆動することができる。
【０００７】
ターゲットによって開始される環境では、ターゲットは、特定のソフトウェア・コンポーネントを求めるプラットフォーム中立の要求を、ウェブ・アプリケーション・サーバに送る。ウェブ・アプリケーション・サーバは、要求されたソフトウェア・コンポーネントに対するＪａｖａ（Ｒ）ビーン・ホーム・インターフェースを取り出す。ホーム・インターフェースは、ウェブ・アプリケーション・サーバによって使用されるＪａｖａ（Ｒ）ビーンを識別して、ソフトウェア・コンポーネントの記述を取り出す。この記述は、競合、同時要件／事前要件の情報、ならびに、証明書情報やライセンス供与情報など他の情報を含む。ソフトウェア記述は、プラットフォーム中立の応答でターゲットに返される。
【０００８】
ウェブ・アプリケーション・サーバは、要求されたソフトウェア・コンポーネントをインストールするのに必要なファイルを、１つまたは複数のウェブベースのファイル・サーバから収集し、収集したファイルを不揮発性記憶域に記憶する。これらのファイルは、ターゲット・コンピュータ・システムがこれらのコンポーネント・ファイルを要求することを見越して収集される。
【０００９】
ウェブ・アプリケーション・サーバがコンポーネント・ファイルを収集している間、ターゲット・コンピュータは、コンポーネント記述を分析し、競合があれば解決し、同時要件および事前要件のソフトウェア・コンポーネントを要求する。同時要件および事前要件のソフトウェア・コンポーネントもまた、解決する必要のある競合を有する場合があり、同時要件および事前要件のコンポーネントを有する場合がある。ターゲットは、ウェブ・アプリケーション・サーバにコンポーネント・ファイルを要求してこれらを受け取り、ソフトウェア・コンポーネントをターゲット・コンピュータ・システムにインストールする。
【００１０】
サーバによって開始されるプロセスでは、ターゲットは、ソフトウェア・アセンブラ・ウェブ・サービスがソフトウェア・コンポーネントをターゲット・コンピュータ・システムに自動的にインストールするのに必要とする情報（ホスト名やパスワードなど）をソフトウェア・アセンブラ・ウェブ・サービスに提供することによって、ソフトウェア・アセンブラ・ウェブ・サービスに登録する。ソフトウェア・アセンブラ・ウェブ・サービスは、エンタープライズ・アプリケーション・サーバによってホストされているＪａｖａ（Ｒ）メッセージ・サービスにコンポーネント要求を登録する。要求されたコンポーネントが修正されたとき、Ｊａｖａ（Ｒ）メッセージ・サービスはソフトウェア・アセンブラ・ウェブ・サービスに通知し、ソフトウェア・アセンブラ・ウェブ・サービスはそれに応答して、ターゲット・コンピュータ・システムに代わってソフトウェア記述を取り出し、競合および同時／事前要件の問題があれば解決する。ソフトウェア・アセンブラ・ウェブ・サービスは、インストールに必要なコンポーネント・ファイルをウェブ・ファイル・サーバから収集し、登録中に提供されたアクセス情報を使用して、ターゲット・コンピュータ・システムにソフトウェア・コンポーネントをインストールする。
【００１１】
以上は概要であり、そのため、詳細の単純化および一般化および省略を必然的に含む。したがって、この概要は単なる例示であって決して限定するものではないことは、当業者なら理解するであろう。特許請求の範囲によってもっぱら定義する本発明の他の態様、発明的特徴、利点は、以下に述べる非限定的な詳細記述において明らかになるであろう。
【００１２】
次に、本発明の好ましい一実施形態について、図面を参照して例によって述べる。
【発明を実施するための最良の形態】
【００１３】
図１に、ウェブ・アプリケーション・サーバがエンタープライズ・アプリケーション・サーバと通信してコンポーネント（構成）・ファイルをインストール・ターゲットに送達する際のブロック図を示す。インストール・ターゲット１００は、インターネットなどのネットワークに接続された、ＩＢＭ互換パーソナル・コンピュータなどのコンピュータ・システムである。インストール・ターゲット１００は、コンピュータ・ネットワークを介してウェブ・アプリケーション・サーバ１２０にＳＯＡＰ要求１１０を送る。ＳＯＡＰ要求１１０は、アプリケーションがインターネットなどのコンピュータ・ネットワークを介して相互通信する方法を提供するシンプル・オブジェクト・アクセス・プロトコルを使用して作成された要求である。ＳＯＡＰプロトコルは、個々のコンピュータ・システムによって使用されているオペレーティング・システム・プラットフォームから独立してアプリケーション間で通信するのに使用される。ＳＯＡＰは、ＸＭＬに依拠して情報のフォーマットを定義し、次いで、必要なＨＴＭＬヘッダを追加して、それを他方のコンピュータ・システムに送る。インストール・ターゲット１００からウェブ・アプリケーション・サーバ１２０に送られるＳＯＡＰ要求は、特定のソフトウェア・コンポーネントを求める要求である。要求されるソフトウェア・コンポーネントは、ＩＢＭのＷｅｂＳｐｈｅｒｅ（商標）やＬｏｔｕｓ  Ｎｏｔｅｓ（商標）などの主要なソフトウェア・パッケージであってもよく、あるいはインストール手順をサポートするのに使用される構成ファイルやＳＱＬスクリプトなどの補助リソースであってもよい。ウェブ・アプリケーション・サーバ１２０は、ＳＯＡＰ要求１１０を受け取り、エンタープライズ・アプリケーション・サーバ１４０とコンタクトをとり、ＪＮＤＩ（Ｊａｖａ（Ｒ）Naming and Directory Interface）を介して、ソフトウェア・アセンブラ・エンティティ・ビーンに対するホーム・インターフェース１３０をルックアップする。
【００１４】
エンタープライズ・アプリケーション・サーバ１４０は、プロセス１５０を使用して、要求されたソフトウェア・コンポーネントを記述するＪａｖａ（Ｒ）ビーンを突き止める。エンティティＪａｖａ（Ｒ）ビーン１６０はいくつかのビーンを含み、各ビーンは異なるソフトウェア・コンポーネントに対応する。各ビーンは、対応するソフトウェア・コンポーネントの記述を返すように呼び出すことのできるメソッドを含む。記述は、ソフトウェア・コンポーネントをインストールするのに必要なファイルのリストを含む。記述はまた、対応するソフトウェア・コンポーネントの事前要件、同時要件、競合である、他のソフトウェア・コンポーネントも含む。記述情報はまた、サポートされるハードウェア・プラットフォーム、サポートされるオペレーティング・システム・プラットフォーム、証明書レベル、ライセンス供与情報など、ソフトウェア・コンポーネントに関するその他の情報も含むことができる。
【００１５】
図示の例では、エンティティＪａｖａ（Ｒ）ビーン１６０は、Ｊａｖａ（Ｒ）ビーン１６２、１６４、１６６、１６８を含むＪａｖａ（Ｒ）ビーンのライブラリである。各Ｊａｖａ（Ｒ）ビーンは、対応するソフトウェア・コンポーネントを記述するメソッドを含む。要求されたソフトウェア・コンポーネントに対応するソフトウェア・コンポーネント記述１６５が、エンタープライズ・アプリケーション・サーバ１４０からウェブ・アプリケーション・サーバ１２０に返される。ウェブ・アプリケーション・サーバ１２０はＳＯＡＰ応答１８０を作成し、このＳＯＡＰ応答１８０はインストール・ターゲット１００に返される。ＳＯＡＰ応答１８０は、ソフトウェア・コンポーネントをインストールするのに必要なファイル、ならびに、要求されたソフトウェア・コンポーネントをインストールするための同時要件または事前要件である他のソフトウェア・コンポーネントを詳述する。ウェブ・アプリケーション・サーバ１２０は、要求されたソフトウェア・コンポーネントに対応する静的ファイルを受け取る。これらの静的ファイルは、プロセス１７０を使用して、ウェブ・アプリケーション・サーバからアクセス可能な不揮発性データ記憶域１７５に記憶される。これらのファイルは、インストール・ターゲットがこれらのコンポーネント・ファイルを要求することを見越して記憶される。ウェブ・アプリケーション・サーバ１２０は、１つまたは複数のウェブ・ファイル・サーバ（エンタープライズ・アプリケーション・サーバ１４０に関連していてもそうでなくてもよい）から、これらのコンポーネント・ファイルを受け取る。
【００１６】
インストール・ターゲット１００は、ウェブ・アプリケーション・サーバ１２０にコンポーネント・ファイルを要求する。ファイルを要求する前に、インストール・ターゲット１００は、要求したコンポーネントとインストール・ターゲットの現在構成との間に競合が存在すればそれらを解決し、事前要件または同時要件のソフトウェア・コンポーネントがあればそれらも要求する。事前要件のソフトウェア・コンポーネントは、追加のＳＯＡＰ要求を使用して要求され、事前要件のコンポーネント・ファイルは、要求されたコンポーネント・ファイルが受け取られる前にインストールされる。ウェブ・アプリケーション・サーバ１２０は、インストール・ターゲット１００からコンポーネント・ファイル要求を受け取り、プロセス１８５を使用して不揮発性記憶域１７５からコンポーネント静的ファイルを取り出す。取り出されたコンポーネント・ファイルは、データ・ストリーム１９０を介してインストール・ターゲット１００に送達される。インストール・ターゲット１００は、受け取ったコンポーネント・ファイルを使用して、プロセス１９２によって要求のソフトウェア・コンポーネントをインストールする。この時、要求されたソフトウェア・コンポーネントは、インストール・ターゲットからアクセス可能な不揮発性記憶デバイス１９５にインストールされる。
【００１７】
図２に、インストール・ターゲットが事前要件および同時要件のソフトウェア・コンポーネントを含めたソフトウェア・コンポーネントを要求する際のブロック図およびフローチャートを示す。インストール・ターゲット２００は、ＳＯＡＰ要求２１５を作成してこれをアプリケーション・サーバ２２０に送ることによって、ソフトウェア・コンポーネントを要求する（ステップ２１０）。ウェブ・アプリケーション・サーバ２２０は、要求されたソフトウェア・コンポーネントの記述を取り出す。この記述は、図１で述べたように、コンポーネントに対応するファイルのリスト、競合情報、事前要件／同時要件情報を含む。ウェブ・アプリケーション・サーバ２２０は、要求されたソフトウェア・コンポーネントの記述を詳述するＳＯＡＰ応答２２５を作成する。ＳＯＡＰ応答２２５は、ウェブ・アプリケーション・サーバからインストール・ターゲットに返信される。インストール・ターゲット２００は、ＳＯＡＰ応答を受け取って分析する（ステップ２３０）。
【００１８】
事前要件または同時要件が必要かどうかの判定が、インストール・ターゲットによって行われる（判定２４０）。事前要件／同時要件が必要な場合は、判定２４０は「Ｙｅｓ」ブランチ２４５に分岐し、事前要件／同時要件のソフトウェア・コンポーネントを要求し（ステップ２５０）、処理はループバックして、事前要件／同時要件のソフトウェア・コンポーネントに対応するＳＯＡＰ応答を処理する。事前要件および同時要件もまた、それら自体の事前要件および同時要件のリストを有する場合がある。これらの事前要件および同時要件に対するＳＯＡＰ応答もまた分析し、それ以上の事前要件および同時要件が必要なくなるまで、追加の事前要件および同時要件を要求する。すべての必要な事前要件および同時要件を要求すると、判定２４０は「ｎｏ」ブランチ２５５に分岐し、インストール・ターゲット２００はソフトウェア・コンポーネント・ファイルを要求して受け取る（ステップ２６０）。ウェブ・アプリケーション・サーバ２２０は、コンポーネント・ファイル要求２７０を受け取り、要求されたファイルを取り出し、要求されたコンポーネント・ファイル２８０をインストール・ターゲット２００に返す。インストール・ターゲット２００は、受け取ったコンポーネント・ファイルを使用して、インストール・ターゲットからアクセス可能な不揮発性記憶デバイスに要求のソフトウェア・コンポーネント２９０をインストールする。
【００１９】
図３に、ウェブ・アプリケーション・サーバがインストール・ターゲットへのコンポーネント・ファイル送達を開始する際のブロック図を示す。インストール・ターゲット３００は、ソフトウェア・アセンブラ・ウェブ・サービス３１０に登録要求３０５を送る。登録要求３０５は、インストール・ターゲットが関心を有するソフトウェア・コンポーネントまたはソフトウェア・カテゴリに対応する。登録要求３０５はまた、インストール・ターゲットによって使用されるサーバなどのホスト名と、インストール・ターゲットを一意に識別する認証証明書と、インストール・ターゲットへのインストールを自動的に駆動するのに必要な場合のあるその他の情報も含む。ソフトウェア・アセンブラ・ウェブ・サービス３１０は、エンタープライズ・アプリケーション・サーバ３２０上で稼動するＪａｖａ（Ｒ）メッセージ・サービス（ＪＭＳ）コンポーネント３２５に登録要求３１５を送る。ＪＭＳコンポーネント３２５は、エンティティＪａｖａ（Ｒ）ビーン・ライブラリ３３０に記憶されたソフトウェア・コンポーネント記述の集合を監視する。図示の例では、ソフトウェア・コンポーネント記述の集合には、ソフトウェア・コンポーネント記述３３２、３３４、３３６、３３８が含まれる。これらのソフトウェア・コンポーネント記述はエンタープライズＪａｖａ（Ｒ）ビーンに含まれ、各エンタープライズＪａｖａ（Ｒ）ビーンは異なるソフトウェア・コンポーネントに対応する。図示の例で、ソフトウェア・コンポーネント記述３３６は、修正済みコンポーネント記述３４０を使用して修正される。修正済みコンポーネント記述の一例は、ソフトウェア・コンポーネントによって使用される新しいまたは修正されたファイルとすることができる。ソフトウェア・コンポーネント記述が修正されたとき、ＪＭＳ３２５は通知を受ける。図示の例では、修正済みコンポーネント通知３４５がＪＭＳ３２５によって識別され、コンポーネント記述３３６が修正されている。
【００２０】
ソフトウェア・コンポーネント記述が修正されたとき、ＪＭＳ３２５は、修正済みコンポーネント通知３５０をソフトウェア・アセンブラ・ウェブ・サービス３１０に送る。この通知は、ソフトウェア・アセンブラ・ウェブ・サービスが、ソフトウェア記述の修正時に通知を受けるよう登録要求３１５によって事前に登録したために送られるものである。ソフトウェア・アセンブラ・ウェブ・サービス３１０は、ソフトウェア・コンポーネントをインストールするのに必要なソフトウェア・コンポーネント・ファイルを受け取る。これらのファイルは、ソフトウェア・アセンブラ・ウェブ・サービスからアクセス可能な不揮発性記憶域３６５に記憶する（プロセス３５５）。ソフトウェア・アセンブラ・ウェブ・サービスは、１つまたは複数のファイル・サーバ（エンタープライズ・アプリケーション・サーバ３２０に関連していてもそうでなくてもよい）から、これらのコンポーネント・ファイルを受け取る。また、ソフトウェア・アセンブラ・ウェブ・サービスは、インストール・ターゲット３００に代わって解決すべき競合、事前要件、または同時要件があるかどうかも判定する。事前要件および同時要件のソフトウェア・コンポーネントは、ソフトウェア・アセンブラ・ウェブ・サービス３１０によって要求されてインストール・ターゲット３００にインストールされる。競合、事前要件、同時要件が解決されると、ソフトウェア・アセンブラ・ウェブ・サービス３１０は、不揮発性記憶域３６５からコンポーネント・ファイルを取り出す（プロセス３７０）。ソフトウェア・アセンブラ・ウェブ・サービス３１０は、登録要求３０５によって確立された方法を使用してインストール・ターゲット３００にアクセスすることによって、コンポーネント・ファイルをインストール・ターゲット３００にインストールする。例えば、登録プロセス中にインストール・ターゲット３００は、パスワードを提供することによって、あるいはインストール・ターゲットへのアクセスを有するホストまたはサーバを提供することによって、インストール・ターゲットへのアクセスをソフトウェア・アセンブラ・ウェブ・サービス３１０に与えたものとすることができる。ソフトウェア・アセンブラ・ウェブ・サービス３１０は、自動コンポーネント・インストールを実施し（プロセス３７５）、この結果、インストール・ターゲットからアクセス可能な不揮発性記憶域３９０にソフトウェア・コンポーネントがインストールされる（プロセス３８０）。また、オペレーティング・システム・レジストリなどのプラットフォーム情報も、ソフトウェア・コンポーネントのインストールを反映するようにインストール・ターゲット３００によって更新される。
【００２１】
図４に、ソフトウェア・コンポーネントと、事前要件または同時要件のソフトウェア・コンポーネントがあればそれらとを要求する、ターゲットによって開始されるプロセスのフローチャートを示す。ターゲットの処理は４００で開始し、ターゲットは、アプリケーション・サーバに要求を送ることによってソフトウェア・コンポーネントを要求する（ステップ４０２）。
【００２２】
アプリケーション・サーバの処理は４０５で開始し、アプリケーション・サーバは、ターゲットからソフトウェア・コンポーネント要求を受け取る（ステップ４０８）。アプリケーション・サーバは、ＪＮＤＩ（Ｊａｖａ（Ｒ）Naming and Directory Interface）を使用して、エンティティＪａｖａ（Ｒ）ビーンのホーム・インターフェースを突き止める（ステップ４１０）。ホーム・インターフェースを使用して、要求されたソフトウェアを記述するエンティティＪａｖａ（Ｒ）ビーンを見つける。
【００２３】
アプリケーション・サーバは、識別されたエンティティＪａｖａ（Ｒ）ビーン４２０の「ガター（gutter）」メソッドを使用して、要求されたソフトウェア・コンポーネントに対応するコンポーネント記述４２２を取り出す（ステップ４２４）。コンポーネント記述は、コンポーネントをインストールするのに必要なファイル、事前要件コンポーネント、同時要件コンポーネント、競合情報、ならびに、ソフトウェアおよびハードウェア・プラットフォーム要件や証明書情報やライセンス供与情報など、その他の情報を含む。
【００２４】
アプリケーション・サーバは、ソフトウェア・コンポーネントをインストールするのに必要な静的ファイルを、１つまたは複数のウェブベースのファイル・サーバから収集する（ステップ４２６）。ウェブベースのファイル・サーバの処理は４３０で開始し、ファイル・サーバは、アプリケーション・サーバからコンポーネント・ファイル要求を受け取る（ステップ４３２）。ファイル・サーバは、要求されたファイルを不揮発性記憶デバイス４３６から取り出す（ステップ４３４）。ウェブ・ファイル・サーバは、要求されたファイルをアプリケーション・サーバに返信する（ステップ４３８）。アプリケーション・サーバは、ターゲット・コンピュータ・システムがコンポーネント・ファイルを要求したときにファイルが入手可能であるように、受け取ったファイルを不揮発性記憶デバイスに記憶する。ウェブ・ファイル・サーバの処理は４４０で終了する。
【００２５】
アプリケーション・サーバは、ターゲット・コンピュータ・システムにＳＯＡＰ応答を返す（ステップ４４２）。ＳＯＡＰ応答は、コンポーネント記述に含まれていた情報を含む。ターゲット・コンピュータ・システムの処理に戻ると、ターゲット・コンピュータは、アプリケーション・サーバからＳＯＡＰ応答を受け取る（ステップ４５２）。ターゲット・コンピュータ・システムは、要求したソフトウェア・コンポーネントのインストールに関連する競合があるかどうかを判定する（判定４５４）。競合がない場合は、判定４５４は「ｎｏ」ブランチ４５６に分岐し、競合解決のために実施されるステップを迂回する。一方、競合がある場合は、判定４５４は「ｙｅｓ」ブランチ４５８に分岐し、競合の解決を試みる。競合が解決されたかどうかを判定する（判定４６０）。競合が解決されなかった場合は、判定４６０は「ｎｏ」ブランチ４６２に分岐し、ターゲットの処理は４６５で終了する。一方、競合が解決された場合は、判定４６０は「ｙｅｓ」ブランチ４６８に分岐し、処理は継続する。
【００２６】
同時要件と事前要件の各ソフトウェア・コンポーネントを要求するためのスレッドを生み出す（ステップ４７０）。要求される同時要件と事前要件の各ソフトウェア・コンポーネントにつき、ステップ４０２〜４７０で述べた処理を繰り返す。ソフトウェア・コンポーネント・ファイルをアプリケーション・サーバに要求する（ステップ４７５）。アプリケーション・サーバは、要求されたファイルを不揮発性記憶域４２８から取り出し、ターゲット・コンピュータ・システムに送る（ステップ４４６）。次いで、アプリケーション・サーバの処理は４５０で終了する。同時要件および事前要件ソフトウェア・コンポーネントに対応するファイルも、ステップ４７５で要求する。受け取ったファイルは、ターゲット・コンピュータ・システムからアクセス可能な不揮発性記憶域４９０に記憶する。要求したソフトウェア・コンポーネントは、受け取ったソフトウェア・コンポーネント・ファイルを使用して自動的にインストールされる（ステップ４８５）。次いで、ターゲット・コンピュータの処理は４９５で終了する。
【００２７】
図５に、ソフトウェア・コンポーネントを監視し、ソフトウェア・コンポーネントと事前要件または同時要件のソフトウェアがあればそれらとをインストールする、ウェブ・サービスによって開始されるプロセスのフローチャートを示す。ターゲット・コンピュータ・システム５００は、５０２で開始するソフトウェア登録プロセスを含む。ターゲット・コンピュータ・システムは、登録要求をソフトウェア・アセンブラ・サービスに送ることによって、ソフトウェアについて登録する（ステップ５０４）。ターゲット・コンピュータ・システムの登録プロセスは５０６で終了する。登録ステップの間、ターゲット・コンピュータ・システムは、ソフトウェア・アセンブラ・サービスがターゲット・コンピュータ・システムへの自動インストールを駆動するのに使用することになる情報を、ソフトウェア・アセンブラ・サービスに提供する。プロセスを駆動するために含められる情報としては、ホスト名またはサーバ名と、ターゲット・コンピュータ・システムにアクセスするのに使用されるパスワードと、ターゲット・コンピュータ・システムを一意に識別する認証証明書と、ターゲット・コンピュータ・システムが登録しているソフトウェア・コンポーネントまたはソフトウェア・カテゴリと、ソフトウェア・アセンブラ・サービスによって必要とされる場合のあるその他の情報とを挙げることができる。ターゲット・コンピュータ・システムは不揮発性記憶デバイス５９５も備え、これはソフトウェア・コンポーネント・ファイルを記憶およびインストールするのに使用される。
【００２８】
ソフトウェア・アセンブラ・サービスの処理は５１０で開始し、ソフトウェア・アセンブラ・サービスはターゲット・コンピュータ・システムから登録要求を受け取る（ステップ５１２）。ソフトウェア・アセンブラ・サービスは、登録情報を使用して、エンタープライズ・アプリケーション・サーバによってホストされているものとすることのできるＪａｖａ（Ｒ）メッセージ・サービスに、１つまたは複数のソフトウェア・コンポーネントについて登録する（ステップ５１４）。
【００２９】
Ｊａｖａ（Ｒ）メッセージ・サービスの処理は５１５で開始し、ＪＭＳは、ソフトウェア・アセンブラ・サービスから受け取った登録要求を受け取って記憶する（ステップ５１６）。Ｊａｖａ（Ｒ）メッセージ・サービスは、ＪＭＳからアクセス可能なＪａｖａ（Ｒ）ビーンに記憶されたソフトウェア記述の集合を監視する（ステップ５１８）。ソフトウェア・アセンブラ・サービスが登録したソフトウェア・コンポーネントに対応する記述が変更されたかどうかを判定する（判定５２０）。記述が変更されていない場合は、判定５２０は「ｎｏ」ブランチ５２２に分岐し、ループバックしてソフトウェア記述の集合の監視を継続する。このルーピングは、ソフトウェア・アセンブラ・サービスが登録したコンポーネントの記述が修正されるまで継続する。修正された時点で、判定５２０は「ｙｅｓ」ブランチ５２４に分岐し、Ｊａｖａ（Ｒ）メッセージ・サービスは、コンポーネント記述が変更されたことを通知するメッセージをソフトウェア・アセンブラ・サービスに送る（ステップ５２６）。ＪＭＳによる修正済みソフトウェア記述の処理は、５２８で終了する。一実施形態では、ＪＭＳ５１５は登録要求を継続的に検出し、ソフトウェア記述の集合を継続的に監視する。
【００３０】
ソフトウェア・アセンブラ・サービスは、ソフトウェア・アセンブラ・サービスが登録したコンポーネント記述が変更されたことの通知を受け取る（ステップ５３０）。ソフトウェア・アセンブラ・サービスは、ＪＮＤＩ（Ｊａｖａ（Ｒ）Naming and Directory Interface）５４２を使用して、エンタープライズＪａｖａ（Ｒ）ビーンに対するホーム・インターフェースを要求する（ステップ５４４）。ステップ５４４の結果、ソフトウェア・アセンブラ・サービスは、ソフトウェア・コンポーネントに対応するエンタープライズＪａｖａ（Ｒ）ビーンを識別する。ソフトウェア・アセンブラ・サービスは、ステップ５４４で識別されたエンタープライズＪａｖａ（Ｒ）ビーンによって提供される「ガター」メソッドを使用する（ステップ５４６）。ソフトウェア・コンポーネントに対応するエンタープライズＪａｖａ（Ｒ）ビーンから、コンポーネント記述を受け取る（ステップ５４８）。コンポーネント記述は、ソフトウェア・コンポーネントをインストールするのに必要なファイルを含む。さらにコンポーネント記述は、競合情報と、事前要件／同時要件のコンポーネント情報があればそれとを含む。ソフトウェア・コンポーネントに含めることのできるその他の情報には、サポートされるハードウェアおよびソフトウェア・プラットフォーム、証明書レベル、ライセンス供与情報がある。一実施形態では、コンポーネント記述は、修正済み記述情報を識別する情報も含む。このようにすると、ソフトウェア・コンポーネント全体を再インストールする必要なしに、修正済みファイルをインストールすることが可能である。
【００３１】
ターゲット・コンピュータ・システムの構成を、Ｊａｖａ（Ｒ）ビーンによって提供された記述情報と比較する（ステップ５５０）。この比較に基づいて、ターゲット・システムとコンポーネント・ソフトウェアとの間に競合が存在するかどうかを判定する（判定５５２）。競合が存在しない場合は、判定５５２は「ｎｏ」ブランチ５６４に分岐し、競合解決のために実施されるステップを迂回する。一方、競合が存在する場合は、判定５５２は「ｙｅｓ」ブランチ５５４に分岐し、競合の解決を試みる。競合が解決されたかどうかを判定する（判定５５６）。競合を解決することができなかった場合は、判定５５６は「ｎｏ」ブランチ５５８に分岐し、ソフトウェア・アセンブラ・サービスの処理は５６０で終了する。一方、競合を解決することができた場合は、判定５５６は「ｙｅｓ」ブランチ５６２に分岐し、処理は継続する。
【００３２】
事前要件または同時要件のソフトウェア・コンポーネントがあれば、ループバックして（ループ５６８）同時要件／事前要件のソフトウェア・コンポーネントを要求することによって、これらを要求する（ステップ５６６）。ソフトウェア・コンポーネント・ファイルを１つまたは複数のウェブ・ファイル・サーバに要求する（ステップ５７０）。ウェブ・ファイル・サーバの処理は５７５で開始し、ソフトウェア・コンポーネント・ファイルを求める要求を受け取る（ステップ５７８）。要求されたファイルを不揮発性記憶域５８６から取り出す（ステップ５８０）。取り出したファイルをウェブ・ファイル・サーバからソフトウェア・アセンブラ・サービスに返信し（ステップ５８４）、ウェブ・ファイル・サーバの処理は５８８で終了する。
【００３３】
ソフトウェア・アセンブラ・サービスは、要求したソフトウェア・コンポーネント・ファイルを受け取る（ステップ５７０）。ソフトウェア・コンポーネント・ファイルは、ターゲット・コンピュータ・システム５００にインストールされ（ステップ５９０）、ターゲット・コンピュータ・システム５００からアクセス可能な不揮発性記憶デバイス５９５に記憶される。ソフトウェア・アセンブラ・サービスは、登録中にターゲット・システムから提供された情報（上記ステップ５０４および５１２参照）を使用して、ターゲット・システムにアクセスする。次いで、ソフトウェア・アセンブラ・サービスの処理は５９８で終了する。
【００３４】
図６に、コンポーネント・インストール・サービスをターゲット・コンピュータ・システムに提供するために対話するネットワーク・ノードのネットワーク図を示す。インストール・ターゲット６１０、ウェブ・アプリケーション・サーバ６３０、エンタープライズ・アプリケーション・サーバ６５０、ウェブ・ファイル・サーバ６８０は、コンピュータ・ネットワーク６００を使用して相互接続される。コンピュータ・ネットワーク６００の一例はインターネットである。
【００３５】
一実施形態では、インストール・ターゲット６１０が、ウェブ・アプリケーション・サーバ６３０にソフトウェア・コンポーネントを要求する。ウェブ・アプリケーション・サーバ６３０は、要求されたソフトウェア・コンポーネントに対応するソフトウェア・コンポーネント記述６７５を含むエンティティＪａｖａ（Ｒ）ビーン６７０から、要求されたソフトウェア・コンポーネントに対応する記述情報を取り出す。エンティティＪａｖａ（Ｒ）ビーン６７０は、エンタープライズ・アプリケーション・サーバ６５０上でホストされている。
【００３６】
ウェブ・アプリケーション・サーバ６３０は、要求されたソフトウェア・コンポーネントに含まれるコンポーネント・ファイルを詳述するとともに競合、事前要件／同時要件ソフトウェア・コンポーネントも詳述するソフトウェア・コンポーネント記述を受け取る。ソフトウェア・コンポーネント記述はインストール・ターゲット６１０に返され、インストール・ターゲット６１０は、情報を使用してコンポーネント・ファイルを受け取り、ソフトウェア・コンポーネントを不揮発性記憶デバイス６２０にインストールする。ウェブ・アプリケーション・サーバ６３０は、ウェブ・ファイル・サーバ６８０からソフトウェア・コンポーネント・ファイル６９０を取り出す。ウェブ・アプリケーション・サーバ６３０は、インストール・ターゲット６１０に送るために、ソフトウェア・インストール・ファイルを不揮発性記憶デバイス６４０に記憶する。
【００３７】
別の実施形態では、インストール・ターゲット６１０は、ソフトウェア・コンポーネントについてウェブ・アプリケーション・サーバ６３０に登録する。ウェブ・アプリケーション・サーバ６３０は、エンタープライズ・アプリケーション・サーバから提供されるＪａｖａ（Ｒ）メッセージ・サービス６６０を使用して、ソフトウェア・コンポーネントについてエンタープライズ・アプリケーション・サーバ６５０に登録する。登録済みコンポーネントが変更されたとき、Ｊａｖａ（Ｒ）メッセージ・サービスは、コンポーネント変更通知６６５をウェブ・アプリケーション・サーバ６３０に送る。ウェブ・アプリケーション・サーバ６３０は、コンポーネント・ファイルをウェブ・ファイル・サーバ６８０から収集し、登録プロセス中にインストール・ターゲットから提供された情報を使用して、ソフトウェア・コンポーネントをインストール・ターゲット６１０に自動的にインストールする。
【００３８】
図７に、本発明の好ましい一実施形態によるコンピュータ・システムを簡略化した一例である情報処理システム７０１を示す。コンピュータ・システム７０１は、ホスト・バス７０５に結合されたプロセッサ７００を備える。ホスト・バス７０５には、レベル２（Ｌ２）キャッシュ・メモリ７１０も結合されている。ホスト−ＰＣＩブリッジ７１５が、メイン・メモリ７２０に結合されており、キャッシュ・メモリおよびメイン・メモリ制御機能を含んでおり、ＰＣＩバス７２５、プロセッサ７００、Ｌ２キャッシュ７１０、メイン・メモリ７２０、ホスト・バス７０５の間の転送を処理するためのバス制御を提供する。ＰＣＩバス７２５は、例えばＬＡＮカード７３０を含めた様々なデバイスのためのインターフェースを提供する。ＰＣＩ−ＩＳＡブリッジ７３５が、ＰＣＩバス７２５と、ＩＳＡバス７４０、ユニバーサル・シリアル・バス（ＵＳＢ）機能７４５、ＩＤＥデバイス機能７５０、電力管理機能７５５との間の転送を処理するためのバス制御を提供し、また、リアルタイム・クロック（ＲＴＣ）、ＤＭＡ制御、割込みサポート、システム管理バス・サポートなど、図示されていない他の機能要素を含むこともできる。周辺デバイスおよび入出力（Ｉ／Ｏ）デバイスを、ＩＳＡバス７４０に結合された様々なインターフェース７６０（例えばパラレル・インターフェース７６２、シリアル・インターフェース７６４、赤外線（ＩＲ）インターフェース７６６、キーボード・インターフェース７６８、マウス・インターフェース７７０、固定ディスク（ＨＤＤ）７７２）に接続することができる。別法として、多くのＩ／Ｏデバイスは、ＩＳＡバス７４０に接続されたスーパーＩ／Ｏコントローラ（図示せず）によって対応することもできる。
【００３９】
ＢＩＯＳ７８０が、ＩＳＡバス７４０に結合されており、様々な低レベル・システム機能およびシステム・ブート機能に必要なプロセッサ実行可能コードを組み込んでいる。ＢＩＯＳ７８０は、磁気記憶媒体、光記憶媒体、フラッシュ・メモリ、ランダム・アクセス・メモリ、読取り専用メモリ、および、命令を符号化した信号（例えばネットワークからの信号）を搬送する通信媒体を含めて、任意のコンピュータ可読媒体に記憶することができる。コンピュータ・システム７０１を別のコンピュータ・システムに接続してネットワークを介してファイルをコピーするために、ＬＡＮカード７３０がＰＣＩバス７２５およびＰＣＩ−ＩＳＡブリッジ７３５に結合されている。同様に、コンピュータ・システム７０１をＩＳＰに接続して電話回線接続を使用してインターネットに接続するために、モデム７７５がシリアル・ポート７６４およびＰＣＩ−ＩＳＡブリッジ７３５に接続されている。
【００４０】
図７のコンピュータ・システムは、単にコンピュータ・システムの一例である。その他の多くのコンピュータ・システム設計でも本明細書に述べた本発明を実施できることは、当業者なら理解するであろう。
【００４１】
本発明の好ましい実装形態の１つはアプリケーション、すなわちコード・モジュール中の命令セット（プログラム・コード）であり、これは例えばコンピュータのランダム・アクセス・メモリ中にあるものとすることができる。命令セットは、コンピュータによって必要とされるまで別のコンピュータ・メモリ、例えばハード・ディスク・ドライブに記憶しておくか、光ディスク（最終的にＣＤ  ＲＯＭで使用される場合）やフロッピー（Ｒ）ディスク（最終的にフロッピー（Ｒ）ディスク・ドライブで使用される場合）などの取外し可能記憶装置に記憶しておくこともでき、あるいは、インターネットまたはその他のコンピュータ・ネットワークを介してダウンロードすることもできる。したがって本発明は、コンピュータ中で使用するためのコンピュータ・プログラム製品として実現することができる。また、述べた様々な方法は、ソフトウェアによって選択的にアクティブ化または再構成される汎用コンピュータ中で好都合に実施されるが、このような方法をハードウェアやファームウェア中で実施することもでき、また、必要な方法ステップを実施するように構築されたより専用の装置で実施することもできることは、当業者なら理解するであろう。
【図面の簡単な説明】
【００４２】
【図１】ウェブ・アプリケーション・サーバがエンタープライズ・アプリケーション・サーバと通信してコンポーネント・ファイルをインストール・ターゲットに送達する際のブロック図である。
【図２】インストール・ターゲットが事前要件および同時要件のソフトウェア・コンポーネントを含めたソフトウェア・コンポーネントを要求する際のブロック図およびフローチャートである。
【図３】ウェブ・アプリケーション・サーバがインストール・ターゲットへのコンポーネント・ファイル送達を開始する際のブロック図である。
【図４】ソフトウェア・コンポーネントと、事前要件または同時要件のソフトウェア・コンポーネントがあればそれらとを要求する、ターゲットによって開始されるプロセスのフローチャートである。
【図５】ソフトウェア・コンポーネントを監視し、ソフトウェア・コンポーネントと事前要件または同時要件のソフトウェア・コンポーネントがあればそれらとをインストールする、ウェブ・サービスによって開始されるプロセスのフローチャートである。
【図６】コンポーネント・インストール・サービスをターゲット・コンピュータ・システムに提供するために対話するネットワーク・ノードのネットワーク図である。
【図７】本発明の好ましい一実施形態における情報処理システムのブロック図である。
【図１】
2006523333.tif 000003
【図２】
2006523333.tif 000004
【図３】
2006523333.tif 000005
【図４】
2006523333.tif 000006
【図５】
2006523333.tif 000007
【図６】
2006523333.tif 000008
【図７】
2006523333.tif 000009
【手続補正書】
【提出日】平成17年1月11日(2005.1.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータ・ネットワークを介してソフトウェア・コンポーネントをインストールする方法であって、
前記コンピュータ・ネットワークを介して、ソフトウェア・コンポーネントを識別する登録要求をインストール・ターゲット・コンピュータ・システムから受け取るステップと、
前記ソフトウェア・コンポーネントに対応するインターフェースを突き止めるステップと、
前記ソフトウェア・コンポーネントに対応する前記要求をエンタープライズ・アプリケーション・サーバに登録するステップと、
前記要求されたソフトウェア・コンポーネントに対応する記述が変更されたことを示す通知を前記アプリケーション・サーバから受け取るステップと、
前記ソフトウェア・コンポーネントに対応する前記インターフェースを使用してコンポーネント記述を取り出すステップと、
前記コンポーネント記述を分析し、前記分析の結果、前記要求されたソフトウェア・コンポーネントをインストールするのに使用される１つまたは複数のコンポーネント・ファイルを識別するステップと、
サーバ・コンピュータ・システムが前記コンポーネント・ファイルを前記インストール・ターゲット・コンピュータ・システムにインストールするステップとを含む方法。
【請求項２】
前記コンポーネント記述は同時要件ソフトウェア・コンポーネントの識別を含み、
前記同時要件ソフトウェア・コンポーネントに対応する第２のインターフェースを突き止めるステップと、
前記第２のインターフェースを使用して前記同時要件ソフトウェア・コンポーネントに対するコンポーネント記述を取り出すステップと、
前記同時要件ソフトウェア・コンポーネントに対する前記コンポーネント記述を分析し、前記分析の結果、前記同時要件ソフトウェア・コンポーネントをインストールするのに使用される１つまたは複数のコンポーネント・ファイルを識別するステップと、
前記同時要件コンポーネント・ファイルを前記インストール・ターゲット・コンピュータ・システムにインストールするステップとをさらに含む、請求項１に記載の方法。
【請求項３】
コンピュータ・ネットワークを介してソフトウェア・コンポーネントをインストールするための装置であって、
前記コンピュータ・ネットワークを介して、ソフトウェア・コンポーネントを識別する登録要求をインストール・ターゲット・コンピュータ・システムから受け取る手段と、
前記ソフトウェア・コンポーネントに対応するインターフェースを突き止める手段と、
前記ソフトウェア・コンポーネントに対応する前記要求をエンタープライズ・アプリケーション・サーバに登録する手段と、
前記要求されたソフトウェア・コンポーネントに対応する記述が変更されたことを示す通知を前記アプリケーション・サーバから受け取る手段と、
前記ソフトウェア・コンポーネントに対応する前記インターフェースを使用してコンポーネント記述を取り出す手段と、
前記コンポーネント記述を分析し、前記分析の結果、前記要求されたソフトウェア・コンポーネントをインストールするのに使用される１つまたは複数のコンポーネント・ファイルを識別する手段と、
サーバ・コンピュータ・システムが前記コンポーネント・ファイルを前記インストール・ターゲット・コンピュータ・システムにインストールする手段とを含む装置。
【請求項４】
前記コンポーネント記述は同時要件ソフトウェア・コンポーネントの識別を含み、
前記同時要件ソフトウェア・コンポーネントに対応する第２のインターフェースを突き止める手段と、
前記第２のインターフェースを使用して前記同時要件ソフトウェア・コンポーネントに対するコンポーネント記述を取り出す手段と、
前記同時要件ソフトウェア・コンポーネントに対する前記コンポーネント記述を分析し、前記分析の結果、前記同時要件ソフトウェア・コンポーネントをインストールするのに使用される１つまたは複数のコンポーネント・ファイルを識別する手段と、
前記同時要件コンポーネント・ファイルを前記インストール・ターゲット・コンピュータ・システムにインストールする手段とをさらに含む、請求項３に記載の装置。
【請求項５】
コンピュータ可読の記憶媒体に記憶されたコンピュータ・プログラム・コードを含むコンピュータ・プログラムであって、前記コンピュータ・プログラム・コードは、データ処理システム上で実行されると、請求項１に記載の方法の各ステップを実施するよう前記データ処理システムに命令するコンピュータ・プログラム。
【請求項６】
コンピュータ可読の記憶媒体に記憶されたコンピュータ・プログラム・コードを含むコンピュータ・プログラムであって、前記コンピュータ・プログラム・コードは、データ処理システム上で実行されると、請求項２に記載の方法の各ステップを実施するよう前記データ処理システムに命令するコンピュータ・プログラム。
【手続補正書】
【提出日】平成17年11月23日(2005.11.23)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア・コンポーネントをインストールするためのシステムおよび方法に関する。より詳細には、本発明は、プラットフォーム中立のソフトウェア・モジュールを使用してコンピュータ・ネットワークを介してソフトウェア・インストール情報を提供するためのシステムおよび方法に関する。
【背景技術】
【０００２】
ソフトウェア・コンポーネントのインストールは、近年のソフトウェア製品に関する複雑さのせいで難題である。Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（Ｒ）ＸＰ（商標）、Ｌｉｎｕｘ（商標）、ＩＢＭのＡＩＸ（商標）オペレーティング・システムなど、様々なハードウェアおよびソフトウェア・プラットフォームはそれぞれ、インストール手順が異なる。また、特定のソフトウェア・コンポーネントが、他のソフトウェア・コンポーネントなど、インストール前に解決しておく必要のある既知の競合を有する場合もある。
【０００３】
さらに、ソフトウェア・コンポーネントは、前もってインストールしておくことが推奨されるかまたは必要とされる同時要件および事前要件のソフトウェア・コンポーネントがあるという点で、ますます複雑である。証明書レベルやライセンス供与情報など、ソフトウェア・コンポーネントに関するその他の情報も、ソフトウェア・コンポーネントをインストールする前に考慮する必要がある。
【０００４】
正しくインストールされなかったソフトウェア・コンポーネントは、クライアント・コンピュータ・システムまたはターゲット・コンピュータ・システムに対して、データ損失またはその他の損害を引き起こす場合がある。さらに、従来のソフトウェア・インストール手順は、プラットフォームに依存する。あるプラットフォームに対して提供されたインストール・データは、別のプラットフォームからは、その別のプラットフォーム環境にそのデータをポートしない限り容易に利用可能ではない。また、プラットフォームへの依存は、複雑なソフトウェア・コンポーネントの統合に使用されるカスタム・コードおよび構成データを再使用することを制限する。
【０００５】
米国特許出願第２００２／０１８８９４１号Ａ１には、インクリメンタルな条件付きインストール・プロセスを使用してソフトウェア・パッケージをインストールする方法が開示されている。さらに、米国特許第６１２３７３７号には、ターゲット・コンピュータ・システムによってインストールされるようソフトウェア技術をターゲット・コンピュータ・システムにプッシュするのを開始するための「プッシュ・トリガ」を含む、ソフトウェア・インストール方法が開示されている。
【特許文献１】米国特許出願第２００２／０１８８９４１号Ａ１
【特許文献２】米国特許第６１２３７３７号
【発明の開示】
【発明が解決しようとする課題】
【０００６】
したがって、プラットフォームから独立してソフトウェア・コンポーネント・データを取り出すことを可能にするシステムおよび方法が必要とされている。さらに、ソフトウェア・コンポーネントのインストールに関連する競合、同時要件、事前要件を管理することができるのも有利であろう。また、クライアント・コンピュータ・システムまたはターゲット・コンピュータ・システムによって開始することのできるシステムおよび方法、あるいはコンピュータ・ネットワークを介してターゲット・コンピュータ・システムに接続するアプリケーション・サーバによって駆動することのできるシステムおよび方法も有利であろう。
【課題を解決するための手段】
【０００７】
前述の難題は、プラットフォームから独立してソフトウェア・コンポーネント・データを取り出すことを可能にするシステムおよび方法によって解決することができる。このシステムおよび方法は、ソフトウェア・コンポーネントのインストールに関連する競合、同時要件、事前要件を、エンタープライズＪａｖａ（Ｒ）ビーンを利用してプラットフォーム中立方式で取り出されるソフトウェア記述に含めることによって、このような情報を管理する。このシステムおよび方法は、ターゲット・コンピュータ・システムによって開始することができ、あるいはコンピュータ・ネットワークを介してターゲット・コンピュータ・システムに接続するアプリケーション・サーバによって駆動することができる。
【０００８】
ターゲットによって開始される環境では、ターゲットは、特定のソフトウェア・コンポーネントを求めるプラットフォーム中立の要求を、ウェブ・アプリケーション・サーバに送る。ウェブ・アプリケーション・サーバは、要求されたソフトウェア・コンポーネントに対するＪａｖａ（Ｒ）ビーン・ホーム・インターフェースを取り出す。ホーム・インターフェースは、ウェブ・アプリケーション・サーバによって使用されるＪａｖａ（Ｒ）ビーンを識別して、ソフトウェア・コンポーネントの記述を取り出す。この記述は、競合、同時要件／事前要件の情報、ならびに、証明書情報やライセンス供与情報など他の情報を含む。ソフトウェア記述は、プラットフォーム中立の応答でターゲットに返される。
【０００９】
ウェブ・アプリケーション・サーバは、要求されたソフトウェア・コンポーネントをインストールするのに必要なファイルを、１つまたは複数のウェブベースのファイル・サーバから収集し、収集したファイルを不揮発性記憶域に記憶する。これらのファイルは、ターゲット・コンピュータ・システムがこれらのコンポーネント・ファイルを要求することを見越して収集される。
【００１０】
ウェブ・アプリケーション・サーバがコンポーネント・ファイルを収集している間、ターゲット・コンピュータは、コンポーネント記述を分析し、競合があれば解決し、同時要件および事前要件のソフトウェア・コンポーネントを要求する。同時要件および事前要件のソフトウェア・コンポーネントもまた、解決する必要のある競合を有する場合があり、同時要件および事前要件のコンポーネントを有する場合がある。ターゲットは、ウェブ・アプリケーション・サーバにコンポーネント・ファイルを要求してこれらを受け取り、ソフトウェア・コンポーネントをターゲット・コンピュータ・システムにインストールする。
【００１１】
サーバによって開始されるプロセスでは、ターゲットは、ソフトウェア・アセンブラ・ウェブ・サービスがソフトウェア・コンポーネントをターゲット・コンピュータ・システムに自動的にインストールするのに必要とする情報（ホスト名やパスワードなど）をソフトウェア・アセンブラ・ウェブ・サービスに提供することによって、ソフトウェア・アセンブラ・ウェブ・サービスに登録する。ソフトウェア・アセンブラ・ウェブ・サービスは、エンタープライズ・アプリケーション・サーバによってホストされているＪａｖａ（Ｒ）メッセージ・サービスにコンポーネント要求を登録する。要求されたコンポーネントが修正されたとき、Ｊａｖａ（Ｒ）メッセージ・サービスはソフトウェア・アセンブラ・ウェブ・サービスに通知し、ソフトウェア・アセンブラ・ウェブ・サービスはそれに応答して、ターゲット・コンピュータ・システムに代わってソフトウェア記述を取り出し、競合および同時／事前要件の問題があれば解決する。ソフトウェア・アセンブラ・ウェブ・サービスは、インストールに必要なコンポーネント・ファイルをウェブ・ファイル・サーバから収集し、登録中に提供されたアクセス情報を使用して、ターゲット・コンピュータ・システムにソフトウェア・コンポーネントをインストールする。
【００１２】
以上は概要であり、そのため、詳細の単純化および一般化および省略を必然的に含む。したがって、この概要は単なる例示であって決して限定するものではないことは、当業者なら理解するであろう。特許請求の範囲によってもっぱら定義する本発明の他の態様、発明的特徴、利点は、以下に述べる非限定的な詳細記述において明らかになるであろう。
【００１３】
次に、本発明の好ましい一実施形態について、図面を参照して例によって述べる。
【発明を実施するための最良の形態】
【００１４】
図１に、ウェブ・アプリケーション・サーバがエンタープライズ・アプリケーション・サーバと通信してコンポーネント・ファイルをインストール・ターゲットに送達する際のブロック図を示す。インストール・ターゲット１００は、インターネットなどのネットワークに接続された、ＩＢＭ互換パーソナル・コンピュータなどのコンピュータ・システムである。インストール・ターゲット１００は、コンピュータ・ネットワークを介してウェブ・アプリケーション・サーバ１２０にＳＯＡＰ要求１１０を送る。ＳＯＡＰ要求１１０は、アプリケーションがインターネットなどのコンピュータ・ネットワークを介して相互通信する方法を提供するシンプル・オブジェクト・アクセス・プロトコルを使用して作成された要求である。ＳＯＡＰプロトコルは、個々のコンピュータ・システムによって使用されているオペレーティング・システム・プラットフォームから独立してアプリケーション間で通信するのに使用される。ＳＯＡＰは、ＸＭＬに依拠して情報のフォーマットを定義し、次いで、必要なＨＴＭＬヘッダを追加して、それを他方のコンピュータ・システムに送る。インストール・ターゲット１００からウェブ・アプリケーション・サーバ１２０に送られるＳＯＡＰ要求は、特定のソフトウェア・コンポーネントを求める要求である。要求されるソフトウェア・コンポーネントは、ＩＢＭのＷｅｂＳｐｈｅｒｅ（商標）やＬｏｔｕｓ  Ｎｏｔｅｓ（商標）などの主要なソフトウェア・パッケージであってもよく、あるいはインストール手順をサポートするのに使用される構成ファイルやＳＱＬスクリプトなどの補助リソースであってもよい。ウェブ・アプリケーション・サーバ１２０は、ＳＯＡＰ要求１１０を受け取り、エンタープライズ・アプリケーション・サーバ１４０とコンタクトをとり、ＪＮＤＩ（Ｊａｖａ（Ｒ）Naming and Directory Interface）を介して、ソフトウェア・アセンブラ・エンティティ・ビーンに対するホーム・インターフェース１３０をルックアップする。
【００１５】
エンタープライズ・アプリケーション・サーバ１４０は、プロセス１５０を使用して、要求されたソフトウェア・コンポーネントを記述するＪａｖａ（Ｒ）ビーンを突き止める。エンティティＪａｖａ（Ｒ）ビーン１６０はいくつかのビーンを含み、各ビーンは異なるソフトウェア・コンポーネントに対応する。各ビーンは、対応するソフトウェア・コンポーネントの記述を返すように呼び出すことのできるメソッドを含む。記述は、ソフトウェア・コンポーネントをインストールするのに必要なファイルのリストを含む。記述はまた、対応するソフトウェア・コンポーネントの事前要件、同時要件、競合である、他のソフトウェア・コンポーネントも含む。記述情報はまた、サポートされるハードウェア・プラットフォーム、サポートされるオペレーティング・システム・プラットフォーム、証明書レベル、ライセンス供与情報など、ソフトウェア・コンポーネントに関するその他の情報も含むことができる。
【００１６】
図示の例では、エンティティＪａｖａ（Ｒ）ビーン１６０は、Ｊａｖａ（Ｒ）ビーン１６２、１６４、１６６、１６８を含むＪａｖａ（Ｒ）ビーンのライブラリである。各Ｊａｖａ（Ｒ）ビーンは、対応するソフトウェア・コンポーネントを記述するメソッドを含む。要求されたソフトウェア・コンポーネントに対応するソフトウェア・コンポーネント記述１６５が、エンタープライズ・アプリケーション・サーバ１４０からウェブ・アプリケーション・サーバ１２０に返される。ウェブ・アプリケーション・サーバ１２０はＳＯＡＰ応答１８０を作成し、このＳＯＡＰ応答１８０はインストール・ターゲット１００に返される。ＳＯＡＰ応答１８０は、ソフトウェア・コンポーネントをインストールするのに必要なファイル、ならびに、要求されたソフトウェア・コンポーネントをインストールするための同時要件または事前要件である他のソフトウェア・コンポーネントを詳述する。ウェブ・アプリケーション・サーバ１２０は、要求されたソフトウェア・コンポーネントに対応する静的ファイルを受け取る。これらの静的ファイルは、プロセス１７０を使用して、ウェブ・アプリケーション・サーバからアクセス可能な不揮発性データ記憶域１７５に記憶される。これらのファイルは、インストール・ターゲットがこれらのコンポーネント・ファイルを要求することを見越して記憶される。ウェブ・アプリケーション・サーバ１２０は、１つまたは複数のウェブ・ファイル・サーバ（エンタープライズ・アプリケーション・サーバ１４０に関連していてもそうでなくてもよい）から、これらのコンポーネント・ファイルを受け取る。
【００１７】
インストール・ターゲット１００は、ウェブ・アプリケーション・サーバ１２０にコンポーネント・ファイルを要求する。ファイルを要求する前に、インストール・ターゲット１００は、要求したコンポーネントとインストール・ターゲットの現在構成との間に競合が存在すればそれらを解決し、事前要件または同時要件のソフトウェア・コンポーネントがあればそれらも要求する。事前要件のソフトウェア・コンポーネントは、追加のＳＯＡＰ要求を使用して要求され、事前要件のコンポーネント・ファイルは、要求されたコンポーネント・ファイルが受け取られる前にインストールされる。ウェブ・アプリケーション・サーバ１２０は、インストール・ターゲット１００からコンポーネント・ファイル要求を受け取り、プロセス１８５を使用して不揮発性記憶域１７５からコンポーネント静的ファイルを取り出す。取り出されたコンポーネント・ファイルは、データ・ストリーム１９０を介してインストール・ターゲット１００に送達される。インストール・ターゲット１００は、受け取ったコンポーネント・ファイルを使用して、プロセス１９２によって要求のソフトウェア・コンポーネントをインストールする。この時、要求されたソフトウェア・コンポーネントは、インストール・ターゲットからアクセス可能な不揮発性記憶デバイス１９５にインストールされる。
【００１８】
図２に、インストール・ターゲットが事前要件および同時要件のソフトウェア・コンポーネントを含めたソフトウェア・コンポーネントを要求する際のブロック図およびフローチャートを示す。インストール・ターゲット２００は、ＳＯＡＰ要求２１５を作成してこれをアプリケーション・サーバ２２０に送ることによって、ソフトウェア・コンポーネントを要求する（ステップ２１０）。ウェブ・アプリケーション・サーバ２２０は、要求されたソフトウェア・コンポーネントの記述を取り出す。この記述は、図１で述べたように、コンポーネントに対応するファイルのリスト、競合情報、事前要件／同時要件情報を含む。ウェブ・アプリケーション・サーバ２２０は、要求されたソフトウェア・コンポーネントの記述を詳述するＳＯＡＰ応答２２５を作成する。ＳＯＡＰ応答２２５は、ウェブ・アプリケーション・サーバからインストール・ターゲットに返信される。インストール・ターゲット２００は、ＳＯＡＰ応答を受け取って分析する（ステップ２３０）。
【００１９】
事前要件または同時要件が必要かどうかの判定が、インストール・ターゲットによって行われる（判定２４０）。事前要件／同時要件が必要な場合は、判定２４０は「Ｙｅｓ」ブランチ２４５に分岐し、事前要件／同時要件のソフトウェア・コンポーネントを要求し（ステップ２５０）、処理はループバックして、事前要件／同時要件のソフトウェア・コンポーネントに対応するＳＯＡＰ応答を処理する。事前要件および同時要件もまた、それら自体の事前要件および同時要件のリストを有する場合がある。これらの事前要件および同時要件に対するＳＯＡＰ応答もまた分析し、それ以上の事前要件および同時要件が必要なくなるまで、追加の事前要件および同時要件を要求する。すべての必要な事前要件および同時要件を要求すると、判定２４０は「ｎｏ」ブランチ２５５に分岐し、インストール・ターゲット２００はソフトウェア・コンポーネント・ファイルを要求して受け取る（ステップ２６０）。ウェブ・アプリケーション・サーバ２２０は、コンポーネント・ファイル要求２７０を受け取り、要求されたファイルを取り出し、要求されたコンポーネント・ファイル２８０をインストール・ターゲット２００に返す。インストール・ターゲット２００は、受け取ったコンポーネント・ファイルを使用して、インストール・ターゲットからアクセス可能な不揮発性記憶デバイスに要求のソフトウェア・コンポーネント２９０をインストールする。
【００２０】
図３に、ウェブ・アプリケーション・サーバがインストール・ターゲットへのコンポーネント・ファイル送達を開始する際のブロック図を示す。インストール・ターゲット３００は、ソフトウェア・アセンブラ・ウェブ・サービス３１０に登録要求３０５を送る。登録要求３０５は、インストール・ターゲットが関心を有するソフトウェア・コンポーネントまたはソフトウェア・カテゴリに対応する。登録要求３０５はまた、インストール・ターゲットによって使用されるサーバなどのホスト名と、インストール・ターゲットを一意に識別する認証証明書と、インストール・ターゲットへのインストールを自動的に駆動するのに必要な場合のあるその他の情報も含む。ソフトウェア・アセンブラ・ウェブ・サービス３１０は、エンタープライズ・アプリケーション・サーバ３２０上で稼動するＪａｖａ（Ｒ）メッセージ・サービス（ＪＭＳ）コンポーネント３２５に登録要求３１５を送る。ＪＭＳコンポーネント３２５は、エンティティＪａｖａ（Ｒ）ビーン・ライブラリ３３０に記憶されたソフトウェア・コンポーネント記述の集合を監視する。図示の例では、ソフトウェア・コンポーネント記述の集合には、ソフトウェア・コンポーネント記述３３２、３３４、３３６、３３８が含まれる。これらのソフトウェア・コンポーネント記述はエンタープライズＪａｖａ（Ｒ）ビーンに含まれ、各エンタープライズＪａｖａ（Ｒ）ビーンは異なるソフトウェア・コンポーネントに対応する。図示の例で、ソフトウェア・コンポーネント記述３３６は、修正済みコンポーネント記述３４０を使用して修正される。修正済みコンポーネント記述の一例は、ソフトウェア・コンポーネントによって使用される新しいまたは修正されたファイルとすることができる。ソフトウェア・コンポーネント記述が修正されたとき、ＪＭＳ３２５は通知を受ける。図示の例では、修正済みコンポーネント通知３４５がＪＭＳ３２５によって識別され、コンポーネント記述３３６が修正されている。
【００２１】
ソフトウェア・コンポーネント記述が修正されたとき、ＪＭＳ３２５は、修正済みコンポーネント通知３５０をソフトウェア・アセンブラ・ウェブ・サービス３１０に送る。この通知は、ソフトウェア・アセンブラ・ウェブ・サービスが、ソフトウェア記述の修正時に通知を受けるよう登録要求３１５によって事前に登録したために送られるものである。ソフトウェア・アセンブラ・ウェブ・サービス３１０は、ソフトウェア・コンポーネントをインストールするのに必要なソフトウェア・コンポーネント・ファイルを受け取る。これらのファイルは、ソフトウェア・アセンブラ・ウェブ・サービスからアクセス可能な不揮発性記憶域３６５に記憶する（プロセス３５５）。ソフトウェア・アセンブラ・ウェブ・サービスは、１つまたは複数のファイル・サーバ（エンタープライズ・アプリケーション・サーバ３２０に関連していてもそうでなくてもよい）から、これらのコンポーネント・ファイルを受け取る。また、ソフトウェア・アセンブラ・ウェブ・サービスは、インストール・ターゲット３００に代わって解決すべき競合、事前要件、または同時要件があるかどうかも判定する。事前要件および同時要件のソフトウェア・コンポーネントは、ソフトウェア・アセンブラ・ウェブ・サービス３１０によって要求されてインストール・ターゲット３００にインストールされる。競合、事前要件、同時要件が解決されると、ソフトウェア・アセンブラ・ウェブ・サービス３１０は、不揮発性記憶域３６５からコンポーネント・ファイルを取り出す（プロセス３７０）。ソフトウェア・アセンブラ・ウェブ・サービス３１０は、登録要求３０５によって確立された方法を使用してインストール・ターゲット３００にアクセスすることによって、コンポーネント・ファイルをインストール・ターゲット３００にインストールする。例えば、登録プロセス中にインストール・ターゲット３００は、パスワードを提供することによって、あるいはインストール・ターゲットへのアクセスを有するホストまたはサーバを提供することによって、インストール・ターゲットへのアクセスをソフトウェア・アセンブラ・ウェブ・サービス３１０に与えたものとすることができる。ソフトウェア・アセンブラ・ウェブ・サービス３１０は、自動コンポーネント・インストールを実施し（プロセス３７５）、この結果、インストール・ターゲットからアクセス可能な不揮発性記憶域３９０にソフトウェア・コンポーネントがインストールされる（プロセス３８０）。また、オペレーティング・システム・レジストリなどのプラットフォーム情報も、ソフトウェア・コンポーネントのインストールを反映するようにインストール・ターゲット３００によって更新される。
【００２２】
図４に、ソフトウェア・コンポーネントと、事前要件または同時要件のソフトウェア・コンポーネントがあればそれらとを要求する、ターゲットによって開始されるプロセスのフローチャートを示す。ターゲットの処理は４００で開始し、ターゲットは、アプリケーション・サーバに要求を送ることによってソフトウェア・コンポーネントを要求する（ステップ４０２）。
【００２３】
アプリケーション・サーバの処理は４０５で開始し、アプリケーション・サーバは、ターゲットからソフトウェア・コンポーネント要求を受け取る（ステップ４０８）。アプリケーション・サーバは、ＪＮＤＩ（Ｊａｖａ（Ｒ）Naming and Directory Interface）を使用して、エンティティＪａｖａ（Ｒ）ビーンのホーム・インターフェースを突き止める（ステップ４１０）。ホーム・インターフェースを使用して、要求されたソフトウェアを記述するエンティティＪａｖａ（Ｒ）ビーンを見つける。
【００２４】
アプリケーション・サーバは、識別されたエンティティＪａｖａ（Ｒ）ビーン４２０の「ガター（gutter）」メソッドを使用して、要求されたソフトウェア・コンポーネントに対応するコンポーネント記述４２２を取り出す（ステップ４２４）。コンポーネント記述は、コンポーネントをインストールするのに必要なファイル、事前要件コンポーネント、同時要件コンポーネント、競合情報、ならびに、ソフトウェアおよびハードウェア・プラットフォーム要件や証明書情報やライセンス供与情報など、その他の情報を含む。
【００２５】
アプリケーション・サーバは、ソフトウェア・コンポーネントをインストールするのに必要な静的ファイルを、１つまたは複数のウェブベースのファイル・サーバから収集する（ステップ４２６）。ウェブベースのファイル・サーバの処理は４３０で開始し、ファイル・サーバは、アプリケーション・サーバからコンポーネント・ファイル要求を受け取る（ステップ４３２）。ファイル・サーバは、要求されたファイルを不揮発性記憶デバイス４３６から取り出す（ステップ４３４）。ウェブ・ファイル・サーバは、要求されたファイルをアプリケーション・サーバに返信する（ステップ４３８）。アプリケーション・サーバは、ターゲット・コンピュータ・システムがコンポーネント・ファイルを要求したときにファイルが入手可能であるように、受け取ったファイルを不揮発性記憶デバイス４２８に記憶する。ウェブ・ファイル・サーバの処理は４４０で終了する。
【００２６】
アプリケーション・サーバは、ターゲット・コンピュータ・システムにＳＯＡＰ応答を返す（ステップ４４２）。ＳＯＡＰ応答は、コンポーネント記述に含まれていた情報を含む。ターゲット・コンピュータ・システムの処理に戻ると、ターゲット・コンピュータは、アプリケーション・サーバからＳＯＡＰ応答を受け取る（ステップ４５２）。ターゲット・コンピュータ・システムは、要求したソフトウェア・コンポーネントのインストールに関連する競合があるかどうかを判定する（判定４５４）。競合がない場合は、判定４５４は「ｎｏ」ブランチ４５６に分岐し、競合解決のために実施されるステップを迂回する。一方、競合がある場合は、判定４５４は「ｙｅｓ」ブランチ４５８に分岐し、競合の解決を試みる。競合が解決されたかどうかを判定する（判定４６０）。競合が解決されなかった場合は、判定４６０は「ｎｏ」ブランチ４６２に分岐し、ターゲットの処理は４６５で終了する。一方、競合が解決された場合は、判定４６０は「ｙｅｓ」ブランチ４６８に分岐し、処理は継続する。
【００２７】
同時要件と事前要件の各ソフトウェア・コンポーネントを要求するためのスレッドを生み出す（ステップ４７０）。要求される同時要件と事前要件の各ソフトウェア・コンポーネントにつき、ステップ４０２〜４７０で述べた処理を繰り返す。ソフトウェア・コンポーネント・ファイルをアプリケーション・サーバに要求する（ステップ４７５）。アプリケーション・サーバは、要求されたファイルを不揮発性記憶域４２８から取り出し、ターゲット・コンピュータ・システムに送る（ステップ４４６）。次いで、アプリケーション・サーバの処理は４５０で終了する。同時要件および事前要件ソフトウェア・コンポーネントに対応するファイルも、ステップ４７５で要求する。受け取ったファイルは、ターゲット・コンピュータ・システムからアクセス可能な不揮発性記憶域４９０に記憶する。要求したソフトウェア・コンポーネントは、受け取ったソフトウェア・コンポーネント・ファイルを使用して自動的にインストールされる（ステップ４８５）。次いで、ターゲット・コンピュータの処理は４９５で終了する。
【００２８】
図５に、ソフトウェア・コンポーネントを監視し、ソフトウェア・コンポーネントと事前要件または同時要件のソフトウェアがあればそれらとをインストールする、ウェブ・サービスによって開始されるプロセスのフローチャートを示す。ターゲット・コンピュータ・システム５００は、５０２で開始するソフトウェア登録プロセスを含む。ターゲット・コンピュータ・システムは、登録要求をソフトウェア・アセンブラ・サービスに送ることによって、ソフトウェアについて登録する（ステップ５０４）。ターゲット・コンピュータ・システムの登録プロセスは５０６で終了する。登録ステップの間、ターゲット・コンピュータ・システムは、ソフトウェア・アセンブラ・サービスがターゲット・コンピュータ・システムへの自動インストールを駆動するのに使用することになる情報を、ソフトウェア・アセンブラ・サービスに提供する。プロセスを駆動するために含められる情報としては、ホスト名またはサーバ名と、ターゲット・コンピュータ・システムにアクセスするのに使用されるパスワードと、ターゲット・コンピュータ・システムを一意に識別する認証証明書と、ターゲット・コンピュータ・システムが登録しているソフトウェア・コンポーネントまたはソフトウェア・カテゴリと、ソフトウェア・アセンブラ・サービスによって必要とされる場合のあるその他の情報とを挙げることができる。ターゲット・コンピュータ・システムは不揮発性記憶デバイス５９５も備え、これはソフトウェア・コンポーネント・ファイルを記憶およびインストールするのに使用される。
【００２９】
ソフトウェア・アセンブラ・サービスの処理は５１０で開始し、ソフトウェア・アセンブラ・サービスはターゲット・コンピュータ・システムから登録要求を受け取る（ステップ５１２）。ソフトウェア・アセンブラ・サービスは、登録情報を使用して、エンタープライズ・アプリケーション・サーバによってホストされているものとすることのできるＪａｖａ（Ｒ）メッセージ・サービスに、１つまたは複数のソフトウェア・コンポーネントについて登録する（ステップ５１４）。
【００３０】
Ｊａｖａ（Ｒ）メッセージ・サービスの処理は５１５で開始し、ＪＭＳは、ソフトウェア・アセンブラ・サービスから受け取った登録要求を受け取って記憶する（ステップ５１６）。Ｊａｖａ（Ｒ）メッセージ・サービスは、ＪＭＳからアクセス可能なＪａｖａ（Ｒ）ビーンに記憶されたソフトウェア記述の集合を監視する（ステップ５１８）。ソフトウェア・アセンブラ・サービスが登録したソフトウェア・コンポーネントに対応する記述が変更されたかどうかを判定する（判定５２０）。記述が変更されていない場合は、判定５２０は「ｎｏ」ブランチ５２２に分岐し、ループバックしてソフトウェア記述の集合の監視を継続する。このルーピングは、ソフトウェア・アセンブラ・サービスが登録したコンポーネントの記述が修正されるまで継続する。修正された時点で、判定５２０は「ｙｅｓ」ブランチ５２４に分岐し、Ｊａｖａ（Ｒ）メッセージ・サービスは、コンポーネント記述が変更されたことを通知するメッセージをソフトウェア・アセンブラ・サービスに送る（ステップ５２６）。ＪＭＳによる修正済みソフトウェア記述の処理は、５２８で終了する。一実施形態では、ＪＭＳ５１５は登録要求を継続的に検出し、ソフトウェア記述の集合を継続的に監視する。
【００３１】
ソフトウェア・アセンブラ・サービスは、ソフトウェア・アセンブラ・サービスが登録したコンポーネント記述が変更されたことの通知を受け取る（ステップ５３０）。ソフトウェア・アセンブラ・サービスは、ＪＮＤＩ（Ｊａｖａ（Ｒ）Naming and Directory Interface）５４２を使用して、エンタープライズＪａｖａ（Ｒ）ビーンに対するホーム・インターフェースを要求する（ステップ５４４）。ステップ５４４の結果、ソフトウェア・アセンブラ・サービスは、ソフトウェア・コンポーネントに対応するエンタープライズＪａｖａ（Ｒ）ビーンを識別する。ソフトウェア・アセンブラ・サービスは、ステップ５４４で識別されたエンタープライズＪａｖａ（Ｒ）ビーンによって提供される「ガター」メソッドを使用する（ステップ５４６）。ソフトウェア・コンポーネントに対応するエンタープライズＪａｖａ（Ｒ）ビーンから、コンポーネント記述を受け取る（ステップ５４８）。コンポーネント記述は、ソフトウェア・コンポーネントをインストールするのに必要なファイルを含む。さらにコンポーネント記述は、競合情報と、事前要件／同時要件のコンポーネント情報があればそれとを含む。ソフトウェア・コンポーネントに含めることのできるその他の情報には、サポートされるハードウェアおよびソフトウェア・プラットフォーム、証明書レベル、ライセンス供与情報がある。一実施形態では、コンポーネント記述は、修正済み記述情報を識別する情報も含む。このようにすると、ソフトウェア・コンポーネント全体を再インストールする必要なしに、修正済みファイルをインストールすることが可能である。
【００３２】
ターゲット・コンピュータ・システムの構成を、Ｊａｖａ（Ｒ）ビーンによって提供された記述情報と比較する（ステップ５５０）。この比較に基づいて、ターゲット・システムとコンポーネント・ソフトウェアとの間に競合が存在するかどうかを判定する（判定５５２）。競合が存在しない場合は、判定５５２は「ｎｏ」ブランチ５６４に分岐し、競合解決のために実施されるステップを迂回する。一方、競合が存在する場合は、判定５５２は「ｙｅｓ」ブランチ５５４に分岐し、競合の解決を試みる。競合が解決されたかどうかを判定する（判定５５６）。競合を解決することができなかった場合は、判定５５６は「ｎｏ」ブランチ５５８に分岐し、ソフトウェア・アセンブラ・サービスの処理は５６０で終了する。一方、競合を解決することができた場合は、判定５５６は「ｙｅｓ」ブランチ５６２に分岐し、処理は継続する。
【００３３】
事前要件または同時要件のソフトウェア・コンポーネントがあれば、ループバックして（ループ５６８）同時要件／事前要件のソフトウェア・コンポーネントを要求することによって、これらを要求する（ステップ５６６）。ソフトウェア・コンポーネント・ファイルを１つまたは複数のウェブ・ファイル・サーバに要求する（ステップ５７０）。ウェブ・ファイル・サーバの処理は５７５で開始し、ソフトウェア・コンポーネント・ファイルを求める要求を受け取る（ステップ５７８）。要求されたファイルを不揮発性記憶域５８６から取り出す（ステップ５８０）。取り出したファイルをウェブ・ファイル・サーバからソフトウェア・アセンブラ・サービスに返信し（ステップ５８４）、ウェブ・ファイル・サーバの処理は５８８で終了する。
【００３４】
ソフトウェア・アセンブラ・サービスは、要求したソフトウェア・コンポーネント・ファイルを受け取る（ステップ５７０）。ソフトウェア・コンポーネント・ファイルは、ターゲット・コンピュータ・システム５００にインストールされ（ステップ５９０）、ターゲット・コンピュータ・システム５００からアクセス可能な不揮発性記憶デバイス５９５に記憶される。ソフトウェア・アセンブラ・サービスは、登録中にターゲット・システムから提供された情報（上記ステップ５０４および５１２参照）を使用して、ターゲット・システムにアクセスする。次いで、ソフトウェア・アセンブラ・サービスの処理は５９８で終了する。
【００３５】
図６に、コンポーネント・インストール・サービスをターゲット・コンピュータ・システムに提供するために対話するネットワーク・ノードのネットワーク図を示す。インストール・ターゲット６１０、ウェブ・アプリケーション・サーバ６３０、エンタープライズ・アプリケーション・サーバ６５０、ウェブ・ファイル・サーバ６８０は、コンピュータ・ネットワーク６００を使用して相互接続される。コンピュータ・ネットワーク６００の一例はインターネットである。
【００３６】
一実施形態では、インストール・ターゲット６１０が、ウェブ・アプリケーション・サーバ６３０にソフトウェア・コンポーネントを要求する。ウェブ・アプリケーション・サーバ６３０は、要求されたソフトウェア・コンポーネントに対応するソフトウェア・コンポーネント記述６７５を含むエンティティＪａｖａ（Ｒ）ビーン６７０から、要求されたソフトウェア・コンポーネントに対応する記述情報を取り出す。エンティティＪａｖａ（Ｒ）ビーン６７０は、エンタープライズ・アプリケーション・サーバ６５０上でホストされている。
【００３７】
ウェブ・アプリケーション・サーバ６３０は、要求されたソフトウェア・コンポーネントに含まれるコンポーネント・ファイルを詳述するとともに競合、事前要件／同時要件ソフトウェア・コンポーネントも詳述するソフトウェア・コンポーネント記述を受け取る。ソフトウェア・コンポーネント記述はインストール・ターゲット６１０に返され、インストール・ターゲット６１０は、情報を使用してコンポーネント・ファイルを受け取り、ソフトウェア・コンポーネントを不揮発性記憶デバイス６２０にインストールする。ウェブ・アプリケーション・サーバ６３０は、ウェブ・ファイル・サーバ６８０からソフトウェア・コンポーネント・ファイル６９０を取り出す。ウェブ・アプリケーション・サーバ６３０は、インストール・ターゲット６１０に送るために、ソフトウェア・インストール・ファイルを不揮発性記憶デバイス６４０に記憶する。
【００３８】
別の実施形態では、インストール・ターゲット６１０は、ソフトウェア・コンポーネントについてウェブ・アプリケーション・サーバ６３０に登録する。ウェブ・アプリケーション・サーバ６３０は、エンタープライズ・アプリケーション・サーバから提供されるＪａｖａ（Ｒ）メッセージ・サービス６６０を使用して、ソフトウェア・コンポーネントについてエンタープライズ・アプリケーション・サーバ６５０に登録する。登録済みコンポーネントが変更されたとき、Ｊａｖａ（Ｒ）メッセージ・サービスは、コンポーネント変更通知６６５をウェブ・アプリケーション・サーバ６３０に送る。ウェブ・アプリケーション・サーバ６３０は、コンポーネント・ファイルをウェブ・ファイル・サーバ６８０から収集し、登録プロセス中にインストール・ターゲットから提供された情報を使用して、ソフトウェア・コンポーネントをインストール・ターゲット６１０に自動的にインストールする。
【００３９】
図７に、本発明の好ましい一実施形態によるコンピュータ・システムを簡略化した一例である情報処理システム７０１を示す。コンピュータ・システム７０１は、ホスト・バス７０５に結合されたプロセッサ７００を備える。ホスト・バス７０５には、レベル２（Ｌ２）キャッシュ・メモリ７１０も結合されている。ホスト−ＰＣＩブリッジ７１５が、メイン・メモリ７２０に結合されており、キャッシュ・メモリおよびメイン・メモリ制御機能を含んでおり、ＰＣＩバス７２５、プロセッサ７００、Ｌ２キャッシュ７１０、メイン・メモリ７２０、ホスト・バス７０５の間の転送を処理するためのバス制御を提供する。ＰＣＩバス７２５は、例えばＬＡＮカード７３０を含めた様々なデバイスのためのインターフェースを提供する。ＰＣＩ−ＩＳＡブリッジ７３５が、ＰＣＩバス７２５と、ＩＳＡバス７４０、ユニバーサル・シリアル・バス（ＵＳＢ）機能７４５、ＩＤＥデバイス機能７５０、電力管理機能７５５との間の転送を処理するためのバス制御を提供し、また、リアルタイム・クロック（ＲＴＣ）、ＤＭＡ制御、割込みサポート、システム管理バス・サポートなど、図示されていない他の機能要素を含むこともできる。周辺デバイスおよび入出力（Ｉ／Ｏ）デバイスを、ＩＳＡバス７４０に結合された様々なインターフェース７６０（例えばパラレル・インターフェース７６２、シリアル・インターフェース７６４、赤外線（ＩＲ）インターフェース７６６、キーボード・インターフェース７６８、マウス・インターフェース７７０、固定ディスク（ＨＤＤ）７７２）に接続することができる。別法として、多くのＩ／Ｏデバイスは、ＩＳＡバス７４０に接続されたスーパーＩ／Ｏコントローラ（図示せず）によって対応することもできる。
【００４０】
ＢＩＯＳ７８０が、ＩＳＡバス７４０に結合されており、様々な低レベル・システム機能およびシステム・ブート機能に必要なプロセッサ実行可能コードを組み込んでいる。ＢＩＯＳ７８０は、磁気記憶媒体、光記憶媒体、フラッシュ・メモリ、ランダム・アクセス・メモリ、読取り専用メモリ、および、命令を符号化した信号（例えばネットワークからの信号）を搬送する通信媒体を含めて、任意のコンピュータ可読媒体に記憶することができる。コンピュータ・システム７０１を別のコンピュータ・システムに接続してネットワークを介してファイルをコピーするために、ＬＡＮカード７３０がＰＣＩバス７２５およびＰＣＩ−ＩＳＡブリッジ７３５に結合されている。同様に、コンピュータ・システム７０１をＩＳＰに接続して電話回線接続を使用してインターネットに接続するために、モデム７７５がシリアル・ポート７６４およびＰＣＩ−ＩＳＡブリッジ７３５に接続されている。
【００４１】
図７のコンピュータ・システムは、単にコンピュータ・システムの一例である。その他の多くのコンピュータ・システム設計でも本明細書に述べた本発明を実施できることは、当業者なら理解するであろう。
【００４２】
本発明の好ましい実装形態の１つはアプリケーション、すなわちコード・モジュール中の命令セット（プログラム・コード）であり、これは例えばコンピュータのランダム・アクセス・メモリ中にあるものとすることができる。命令セットは、コンピュータによって必要とされるまで別のコンピュータ・メモリ、例えばハード・ディスク・ドライブに記憶しておくか、光ディスク（最終的にＣＤ  ＲＯＭで使用される場合）やフロッピー（Ｒ）ディスク（最終的にフロッピー（Ｒ）ディスク・ドライブで使用される場合）などの取外し可能記憶装置に記憶しておくこともでき、あるいは、インターネットまたはその他のコンピュータ・ネットワークを介してダウンロードすることもできる。したがって本発明は、コンピュータ中で使用するためのコンピュータ・プログラム製品として実現することができる。また、述べた様々な方法は、ソフトウェアによって選択的にアクティブ化または再構成される汎用コンピュータ中で好都合に実施されるが、このような方法をハードウェアやファームウェア中で実施することもでき、また、必要な方法ステップを実施するように構築されたより専用の装置で実施することもできることは、当業者なら理解するであろう。
【図面の簡単な説明】
【００４３】
【図１】ウェブ・アプリケーション・サーバがエンタープライズ・アプリケーション・サーバと通信してコンポーネント・ファイルをインストール・ターゲットに送達する際のブロック図である。
【図２】インストール・ターゲットが事前要件および同時要件のソフトウェア・コンポーネントを含めたソフトウェア・コンポーネントを要求する際のブロック図およびフローチャートである。
【図３】ウェブ・アプリケーション・サーバがインストール・ターゲットへのコンポーネント・ファイル送達を開始する際のブロック図である。
【図４】ソフトウェア・コンポーネントと、事前要件または同時要件のソフトウェア・コンポーネントがあればそれらとを要求する、ターゲットによって開始されるプロセスのフローチャートである。
【図５】ソフトウェア・コンポーネントを監視し、ソフトウェア・コンポーネントと事前要件または同時要件のソフトウェア・コンポーネントがあればそれらとをインストールする、ウェブ・サービスによって開始されるプロセスのフローチャートである。
【図６】コンポーネント・インストール・サービスをターゲット・コンピュータ・システムに提供するために対話するネットワーク・ノードのネットワーク図である。
【図７】本発明の好ましい一実施形態における情報処理システムのブロック図である。
【国際調査報告】
2006523333.tif 000010
2006523333.tif 000011
2006523333.tif 000012