(57)【特許請求の範囲】
【請求項１】
複数のデバイスを含むコンピュータシステムにおいて前記複数のデバイスの１つによって開始されたアプリケーションインストールプロセスの期間において前記複数のデバイス間の通信を容易にする方法であって、
前記コンピュータシステムが、前記アプリケーションインストールプロセス中に前記複数のデバイスによって共有されるブローカを生成する工程を備え、
前記ブローカは、前記複数のデバイスによって提供される複数のステータス更新情報を格納するように構成されているとともに、前記複数のデバイスのうちの選択されたデバイスに前記ステータス更新情報を通信することが可能であり、前記ステータス更新情報のそれぞれは前記アプリケーションインストールプロセスに関するステータス情報を含み、前記複数のデバイスは、前記アプリケーションインストールプロセス中に１つ以上のソフトウェアコンポーネントがインストールされる第１のデバイスと、前記第１のデバイス上における前記１つ以上のソフトウェアコンポーネントのインストールを開始させる第２のデバイスと、を含み、
前記方法は、さらに、
前記複数のデバイスが前記アプリケーションインストールプロセスに関する選択されたステータス更新情報を前記ブローカから受け取ることと、前記複数のデバイスのうちの少なくとも１つが前記アプリケーションインストールプロセスに関する前記ステータス更新情報のうちの１つによって前記ブローカを更新することと、のうちの少なくとも一方を行う工程と、
を備え、
前記ブローカを更新することは、前記アプリケーションインストールプロセス中に前記１つ以上のソフトウェアコンポーネントがインストールされる前記第１のデバイスによって実行されるか、又は、前記第１のデバイスにおける前記１つ以上のソフトウェアコンポーネントのインストールを開始させる第２のデバイスによって実行される、方法。
【請求項２】
請求項１記載の方法であって、さらに、
前記複数のデバイスが、前記アプリケーションインストールプロセスに関する選択されたステータス更新情報を前記ブローカから受け取る工程を備え、
前記ブローカの更新は、前記ブローカから受信した前記アプリケーションインストールプロセスに関する前記選択されたステータス更新情報に応じて実行される、方法。
【請求項３】
請求項１記載の方法であって、さらに、
前記ステータス更新情報の少なくとも一部を前記ブローカがリスナに通信するように、前記複数のデバイスが前記ブローカにリスナとして登録する工程を備える、方法。
【請求項４】
複数のデバイスのうちの第１のデバイスによって開始されて前記複数のデバイスのうちの第２のデバイスにアプリケーションがインストールされるアプリケーションインストールプロセスの期間において前記複数のデバイス間の通信を容易にする方法であって、
前記複数のデバイスが、前記複数のデバイスによって共有されたブローカにアクセスする工程を備え、
前記ブローカは、前記複数のデバイスによって提供される複数のステータス更新情報を格納するように構成されているとともに、前記複数のデバイスのうちの選択されたデバイスに前記ステータス更新情報を通信することが可能であり、前記ステータス更新情報は前記アプリケーションインストールプロセスに関する情報を含み、前記複数のデバイスは、前記アプリケーションインストールプロセス中に１つ以上のソフトウェアコンポーネントがインストールされる前記第２のデバイスと、前記第２のデバイスにおける前記１つ以上のソフトウェアコンポーネントのインストールを実行又は開始させる前記第１のデバイスと、を含み、
前記方法は、さらに、
前記第２のデバイスが、前記アプリケーションインストールプロセスの少なくとも一部を実行して前記１つ以上のソフトウェアコンポーネントを前記第２のデバイスにインストールする工程と、
前記複数のデバイスのうちの少なくとも１つが、選択されたステータス更新情報を前記ブローカから受け取ることと、前記ブローカを更新して、実行される前記アプリケーションインストールプロセスの一部に関連する前記ステータス更新情報のうちの１つを格納することと、のうちの少なくとも一方を行う工程と、
を備え、
前記ブローカを更新することは、前記第２のデバイスにおける前記１つ以上のソフトウェアコンポーネントのインストールを実行又は開始させる第１のデバイスによって実行されるか、又は、前記アプリケーションインストールプロセス中に前記１つ以上のソフトウェアコンポーネントがインストールされる前記第２のデバイスによって実行される、方法。
【請求項５】
ソースネットワークデバイスとサーバと含むコンピュータシステムにおいて、前記サーバ上でアプリケーションのインストールを行って前記サーバに１つ以上のソフトウェアコンポーネントをロードする際に使用されるのに適したデータ構造を準備する方法であって、
前記コンピュータシステムが、前記ソースネットワークデバイスと前記サーバとのうちの少なくとも一方によって供給された１つ以上の更新情報を格納するよう構成されたブローカを生成する工程を備え、
前記更新情報のそれぞれは前記サーバにおける前記アプリケーションのインストールのステータスを示すものであり、
前記ブローカは、１つ以上のネットワークデバイスに前記更新情報を通信することが可能であり、
前記サーバは、前記アプリケーションインストールプロセス中に１つ以上のソフトウェアコンポーネントがインストールされるデバイスであり、前記ソースネットワークデバイスは前記サーバにおける前記１つ以上のソフトウェアコンポーネントのインストールを実行又は開始させるものであり、
前記方法は、さらに、
前記ソースネットワークデバイスが、前記アプリケーションのインストールを実行することを可能にするために、前記アプリケーションを識別するアプリケーションデータを、前記ソースネットワークデバイスから前記サーバに送信する工程を備え、
前記ブローカは前記サーバ及び前記ネットワークデバイスが前記ブローカに格納されている前記更新情報を修正し、前記修正された更新情報が前記１つ以上のネットワークデバイスに通信できるように、前記サーバ及び前記ソースネットワークデバイスにアクセス可能である、方法。
【請求項６】
請求項５記載の方法であって、
前記ブローカは、前記ブローカにリスナとして登録した前記ネットワークデバイスの各々に前記更新情報を通信することが可能である、方法。
【請求項７】
請求項５記載の方法であって、さらに、
前記サーバが前記ブローカにアクセスして前記ブローカを更新できるように、前記ブローカを識別するブローカ参照を前記ソースネットワークデバイスが前記サーバに送信する工程を備える、方法。
【請求項８】
請求項５記載の方法であって、さらに、
前記ソースネットワークデバイスが、前記アプリケーションを前記サーバに送信する工程を備える、方法。
【請求項９】
請求項８記載の方法であって、
前記アプリケーションは、１つ以上のパラメータ値を含む関連する設定情報を有する、方法。
【請求項１０】
請求項５記載の方法であって、
前記１つ以上のネットワークデバイスは、前記ソースネットワークデバイスと前記サーバとを含む、方法。
【請求項１１】
請求項５記載の方法であって、
前記１つ以上のネットワークデバイスは、前記ソースネットワークデバイスおよび前記サーバ以外のデバイスを含む、方法。
【請求項１２】
請求項５記載の方法であって、さらに、
前記ソースネットワークデバイスと前記サーバのうちの少なくとも一方が、前記ブローカを参照解除する工程と前記ブローカを削除する工程とのうちの少なくとも一方の工程を備える、方法。
【請求項１３】
請求項５記載の方法であって、さらに、
前記ブローカから、選択された更新情報が受信されるように、前記ソースネットワークデバイスと前記サーバとを含む複数のデバイスが前記ブローカにリスナとして登録する工程を備える、方法。
【請求項１４】
請求項１３記載の方法であって、さらに、
前記ソースネットワークデバイスと前記サーバとを含む複数のデバイスの少なくとも一つが、前記選択された更新情報を前記ブローカから受け取る工程を備える、方法。
【請求項１５】
複数のネットワークデバイスを含むコンピュータシステムにおいて、１つ以上のソフトウェアモジュールを含むアプリケーションをインストールする方法であって、
（ａ）第１のネットワークデバイスが、前記アプリケーションを識別するアプリケーションデータを受け取る工程と、
（ｂ）前記第１のネットワークデバイスに前記アプリケーションの一部をインストールする工程と、
（ｃ）前記複数のネットワークデバイスの少なくとも一つが、前記アプリケーションの一部のインストールに関連する１つ以上の更新情報を用いて前記アプリケーションに関連するブローカを更新する工程と、
を備え、
前記更新情報のそれぞれは前記ネットワークデバイスにおける前記アプリケーションの少なくとも一部のインストールのステータスを示し、
前記ブローカは、前記１つ以上の更新情報を、前記ブローカに対するリスナとして登録されている１つ以上のネットワークデバイスに通信することによって、前記第１のネットワークデバイスにおける前記アプリケーションのインストール中に前記１つ以上のネットワークデバイスが前記１つ以上の更新情報を前記ブローカから受け取れるようにすることが可能である、方法。
【請求項１６】
請求項１５記載の方法であって、さらに、
前記インストールの完了、取り消し、一時停止、打ち切り、のうちの少なくとも１つの動作が発生するまで、工程（ｂ）および（ｃ）を繰り返す工程を含む、方法。
【請求項１７】
請求項１５記載の方法であって、さらに、
前記１つ以上のネットワークデバイスが、前記ブローカを識別するブローカ参照を受け取る工程を備える、方法。
【請求項１８】
請求項１５記載の方法であって、さらに、
前記第１のネットワークデバイスが、前記アプリケーションを受け取る工程を備え、
前記更新情報は、前記アプリケーションのインストールを開始するネットワークデバイスと、前記アプリケーションのインストールを実行するネットワークデバイスと、うちの少なくとも一方から受け取られる、方法。
【請求項１９】
請求項１５記載の方法であって、さらに、
選択された更新情報が前記アプリケーションの前記インストール中に前記ブローカから受信されるように、前記１つ以上のネットワークデバイスが前記ブローカにリスナとして登録する工程を備える、方法。
【請求項２０】
請求項１５記載の方法であって、さらに、
前記１つ以上のネットワークデバイスが、前記更新情報のうちの選択された更新情報を前記ブローカから受け取る工程を備える、方法。
【請求項２１】
請求項１５記載の方法であって、
前記第１のネットワークデバイスが、前記インストール中に前記ブローカがエラーの発生を示す更新情報を受信した場合に、前記インストールを打ち切り、それ以前にインストールされた前記アプリケーションの一部をアンインストールする、方法。
【請求項２２】
請求項１５記載の方法であって、
前記ブローカが前記インストールの取り消しを示す更新情報を受信した場合に、前記第１のネットワークデバイスが前記インストールを打ち切り、それ以前にインストールされた前記アプリケーションの一部をアンインストールする、方法。
【請求項２３】
請求項１５記載の方法であって、
前記ブローカが前記インストールが一時停止されていることを示す更新情報を受信した場合に、前記第１のネットワークデバイスが前記一時停止が解除されたという通知が受信されるまで前記インストールを停止する、方法。
【請求項２４】
請求項１５記載の方法であって、さらに、
前記複数のネットワークデバイスの少なくとも一つが、前記ブローカを参照解除する工程と、前記ブローカを削除する工程と、のうちの少なくとも一方の工程を備える、方法。
【請求項２５】
複数のネットワークデバイスを含むコンピュータシステムに、１つ以上のソフトウェアモジュールを含むアプリケーションをインストールする方法であって、
第１のネットワークデバイスが、前記第１のネットワークデバイスにインストールされる前記アプリケーションを識別するアプリケーションデータを受け取る工程と、
前記第１のネットワークデバイスが、前記１つ以上のソフトウェアモジュールをインストールする工程と、
１つ以上のネットワークデバイスが、前記アプリケーションに関連する更新情報を用いて前記アプリケーションに関連するブローカを更新する工程と、
を備え、
前記更新情報は前記デバイスにおける前記アプリケーションの前記１つ以上のソフトウェアモジュールのインストールのステータスに関する情報を含み、
前記ブローカは、前記第１のネットワークデバイスにおける前記アプリケーションのインストール中に、前記更新情報を、前記ブローカに対するリスナとして前記ブローカに予め登録されている前記１つ以上のネットワークデバイスに通信することが可能である、方法。
【請求項２６】
請求項２５記載の方法であって、さらに、
前記１つ以上のネットワークデバイスが、前記ブローカを識別するブローカ参照を受け取る工程を備える、方法。
【請求項２７】
請求項２５記載の方法であって、さらに、
前記更新情報が前記ブローカから受信されるように、前記１つ以上のネットワークデバイスが前記ブローカにリスナとして登録する工程を備える、方法。
【請求項２８】
請求項２５記載の方法であって、
前記設定情報は、１つ以上のパラメータ値を含む、方法。
【請求項２９】
サーバを含むコンピュータシステムにおいて、前記サーバにおける１つ以上のソフトウェアモジュールを含むアプリケーションのインストール中に情報を送信する方法であって、
（ａ）前記コンピュータシステムが、前記サーバにおける前記アプリケーションの前記インストールに関連する１つ以上の更新情報を格納するよう構成されたブローカを準備する工程を備え、
前記更新情報のそれぞれは前記サーバにおける前記アプリケーションの１つ以上のソフトウェアモジュールのインストールのステータスを示し、
前記ブローカは、前記アプリケーションの前記インストールの期間において１つ以上の受信デバイスに前記更新情報を通信することが可能であり、
前記方法は、さらに、
（ｂ）前記ブローカが、１つ以上のソフトウェアモジュールを含む前記アプリケーションのインストールを実行する前記サーバと、１つ以上のソフトウェアモジュールを含む前記アプリケーションの前記サーバでのインストールを開始するデバイスと、のうちの少なくとも一方から前記１つ以上の更新情報を受け取る工程と、
（ｃ）前記ブローカから、前記ブローカにリスナとして登録した前記１つ以上の受信デバイスに前記更新情報の少なくとも一部を送信する工程と、
を備える方法。
【請求項３０】
請求項２９記載の方法であって、さらに、
前記インストールの完了、取り消し、一時停止、打ち切り、のうちの少なくとも１つの動作が発生するまで、工程（ｂ）および（ｃ）を繰り返す工程を含む、方法。
【請求項３１】
サーバを含むコンピュータシステムにおいて、前記サーバにおける１つ以上のソフトウェアモジュールを含むアプリケーションのインストール中に情報を送信する方法であって、
前記コンピュータシステムが、前記サーバにおける前記アプリケーションの前記インストールに関連する１つ以上のステータス更新情報を格納するよう構成されたブローカを生成する工程を備え、
前記ステータス更新情報は前記サーバにおける前記アプリケーションの１つ以上のソフトウェアモジュールのインストールのステータスを示す情報を含み、
前記ブローカは、１つ以上の受信デバイスに前記ステータス更新情報を通信することが可能であり、
前記方法は、さらに、
前記アプリケーションの前記インストールの期間を通して、前記ブローカが、前記ステータス更新情報の少なくとも一部を前記１つ以上の受信デバイスに送信することを通告されるように、前記１つ以上の受信デバイスを前記ブローカにリスナとして登録する工程と、
前記ブローカが、前記ブローカにリスナとして登録した前記１つ以上の受信デバイスに前記ステータス更新情報の少なくとも一部を送信する工程と、
を含む、方法。
【請求項３２】
請求項３１記載の方法であって、さらに、
前記ブローカが、前記１つ以上の受信デバイスが通知を要求する元となる１つ以上の前記ステータス更新情報を識別する工程を含む、方法。
【請求項３３】
請求項３１記載の方法であって、さらに、
前記ブローカが、前記受信デバイスの各々から登録要求を受信する工程を含み、前記登録要求は、前記ブローカへのリスナとして登録するための要求を示す、方法。
【請求項３４】
請求項３１記載の方法であって、
前記１つ以上の受信デバイスは、前記インストールを実行するサーバと、前記インストールを開始したネットワークデバイスと、のうちの少なくとも一方を含む、方法。
【請求項３５】
請求項３１記載の方法であって、
前記１つ以上の受信デバイスは、前記アプリケーションをインストールするサーバと前記インストールを開始したネットワークデバイス以外の受信デバイスを含む、方法。
【請求項３６】
請求項３１記載の方法であって、
前記アプリケーションは、前記アプリケーションを設定するための設定情報を含む、方法。
【請求項３７】
請求項３１記載の方法であって、さらに、
前記１つ以上の受信デバイスの少なくとも一つが、前記アプリケーションの少なくとも一部のインストールに関連する前記１つ以上の更新情報を用いて前記ブローカを更新する工程を備える、方法。
【請求項３８】
請求項３７記載の方法であって、さらに、
前記ブローカが、前記アプリケーションをインストールする前記サーバと、前記インストールを開始するネットワークデバイスと、のうちの少なくとも一方から前記１つ以上のステータス更新情報を受信する工程を備える、方法。
【請求項３９】
請求項３７記載の方法であって、さらに、
前記ブローカが、前記ステータス更新情報の少なくとも一部を前記１つ以上の受信デバイスに通信する工程を備える、方法。
【請求項４０】
請求項３９記載の方法であって、
前記１つ以上のステータス更新情報は、前記インストール中のエラーの発生を示す更新情報と、前記インストールの進行の状態を示す更新情報と、のうちの少なくとも一方を含む、方法。
【請求項４１】
請求項４０記載の方法であって、
前記１つ以上のステータス更新情報は、前記インストールの進行の状態に関連する状況メッセージを含む、方法。
【請求項４２】
請求項４０記載の方法であって、
前記１つ以上のステータス更新情報が、エラーの発生を示す更新情報を含む場合には、前記１つ以上のステータス更新情報は、さらに、以前に行われた前記アプリケーションの１つ以上の部分のインストールにおける前記エラーを特定するエラーメッセージを含む、方法。
【請求項４３】
請求項３７記載の方法であって、さらに、
前記ブローカが、以前に行われた前記アプリケーションの１つ以上の部分のインストールに関連して実行されたブローカ更新の履歴を保持する工程を備える、方法。
【請求項４４】
請求項３１記載の方法であって、さらに、
前記ブローカが、前記インストールの取り消しと、前記インストールの一時停止と、のうちの少なくとも一方を示す前記１つ以上のステータス更新情報を用いて前記ブローカを更新する工程を備える、方法。
【請求項４５】
複数のデバイスの１つによって開始されたアプリケーションインストールプロセスの期間において前記複数のデバイス間の通信を容易にするためのコンピュータシステムであって、
メモリと、
プロセッサと、
を備え、
前記メモリと前記プロセッサとのうちの少なくとも一方は、２つ以上の前記複数のデバイスによって共有され得るブローカを生成するように構成され、
前記ブローカは、前記２つ以上のデバイスから受信される複数の更新情報を格納するとともに、前記アプリケーションインストールプロセス中に、前記デバイスのうちで前記ブローカに対するリスナとして登録されている選択されたデバイスに前記更新情報を通信することができるように構成されており、
前記更新情報は、前記アプリケーションインストールプロセスに関連する情報を含み、
前記更新情報のそれぞれは前記アプリケーションインストールプロセスの少なくも一部のステータスを示し、
前記２つ以上のデバイスは、前記アプリケーションインストールプロセス中に１つ以上のソフトウェアコンポーネントがインストールされる第１のデバイスと、前記第１のデバイスにおける前記１つ以上のソフトウェアコンポーネントのインストールを実行又は開始させる第２のデバイスと、を含む、システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般に、コンピュータソフトウェアとコンピュータネットワークアプリケーションに関する。より詳細には、本発明は、リモート配置されたサーバで実行されるプロセスの期間を通してコンポーネント間の通信を動的に容易にすることによって、コンポーネント間のプロセスの管理を容易にするための方法および装置に関する。
【０００２】
【従来の技術】
今日の技術的に進歩した社会では、数多くのコンピュータシステムがビジネスで利用されることが多い。さらに、多数のサイトが管理されることが多いため、コンピュータシステムが、互いに遠距離に配置されることもしばしばである。したがって、コンピュータシステム間の通信は、コンピュータネットワークを介して行われることが多い。
【０００３】
コンピュータネットワーク内の多数のコンピュータシステムが、同じ機能を実行し、同じデータにアクセスすることが多いため、データおよびソフトウェア用の中央リポジトリは、共通で維持される。数多くのユーザが、この共有情報にアクセスし、依存するため、データとソフトウェアが信頼できることが重要である。言い換えれば、データは、最新のものである必要があり、ソフトウェアのエラーは、最小限に抑える必要がある。結果として、共有データは、頻繁に更新され、現在のビジネスの戦略と交流を反映するものとなる。同様に、ソフトウェアは、問題が見つかった場合に、その問題を取り除くために修正される。しかしながら、ソフトウェアに信頼性があるとされている場合でも、既存のソフトウェアの機能を改善するために、新しいモジュールの追加が一般的に行われている。したがって、今日のビジネス環境では、新しいもしくは修正されたソフトウェアコンポーネントが、頻繁にインストールされ、設定される。
【０００４】
既存のソフトウェアの機能を改善するためには、新しいもしくは改良されたソフトウェアアプリケーションが、適切なパラメータでインストールされ、設定される必要がある。一例として、企業は、企業と社員のデータを反映するウェブページを作ることが多い。このデータは、絶えず変化するため、これらのウェブページは、正確なデータで修正され、インストールされることが重要である。他の例として、ライブラリは、ソフトウェアの機能と手順を含むように維持されていることが多い。したがって、新しいもしくは修正されたソフトウェアコンポーネントが、それらのコンポーネントがネットワークのユーザにアクセス可能になるように、そのライブラリにしばしば追加される。
【０００５】
ソフトウェアアプリケーションのインストールと設定は、理論的には簡単なプロセスであるが、離れた場所からインストールおよび／または設定を実行する必要があることが多い。インストール中に発生するイベントや、インストールもしくは設定されるアプリケーションのサイズによっては、インストレーションプロセスに時間が掛かることがある。さらに、インストールを開始するユーザとインストールを実行するサーバが、物理的に離れているため、ユーザ（もしくは、他のネットワークデバイスやプロセス）がインストレーションプロセスの完了状況を決定することが困難である場合がある。ユーザは、インストレーションプロセス中に得られたフィードバックに応じて様々な応答をすることになるので、このことは特に重要である。例えば、ユーザは、インストレーションプロセス中に発生した特定のイベントに応じて、インストレーションプロセスを取り消したり、一時停止したりすることがある。同様に、インストレーションプロセスを打ち切る必要があるエラーが、インストレーションプロセス中に発生することもある。さらに、他のプロセスが、インストールされているアプリケーションにアクセスしていたり、サービスを提供していたりすることもあるため、これらのプロセスを妨害することなしにアプリケーションをインストールすることは困難であろう。
【０００６】
上記の観点から、インストールのようなプロセスの間に連続的かつ正確なフィードバックを提供することにより、プロセスに関わる両サイドがそのプロセスを通して制御を維持できれば有益であると思われる。加えて、プロセス中のイベント発生が、関連する他のプロセスおよびデバイスに伝えられることが望ましい。
【０００７】
【発明の概要】
本明細書では、リモート配置されたサーバで実行されるプロセスの期間において、複数のデバイス間の通信を可能にする発明が開示されている。これは、ブローカを用いることにより実現される。ブローカは、選択されたデバイスに情報を通信するだけでなく、１つ以上のデバイスからプロセスに関する情報を受け取るよう構成されている。
【０００８】
本発明の一態様によると、ブローカは、２つ以上のデバイスに共有される。より詳細には、一実施形態によると、ブローカは、プロセスを開始するツールと、プロセスを実行するサーバとによって共有されている。それゆえ、ツールとサーバは、プロセスの状況に関する情報によってブローカを簡単に更新することができる。加えて、ツールとサーバは、ブローカから送られる情報を待つというよりはむしろ、定期的にブローカから情報を積極的に取得することができる。このように、デバイスは、ブローカを介して互いにプロセスの管理に関する情報を通信できる。
【０００９】
本発明の別の態様によると、ブローカは、リスナとしてブローカに登録されたデバイスにのみ情報を通信（すなわち、更新）する。このように、デバイスは、プロセスに関与していることをブローカに示すことができる。次いで、ブローカは、ブローカがプロセスの状態に関する情報によって更新されるごとに、更新情報（例えば、ブローカに最近格納された情報）をリスナに送信する。
【００１０】
本発明は、リモート配置されたサーバで実行されるプロセスの期間中を通して、多数のコンポーネント間の通信を容易にするために用いることができる。例えば、本発明は、サーバ上で動的に任意の文書もしくはファイルをインストール、アンインストール、設定するために用いてもよい。それゆえ、共有ブローカは、設定プロセス（コンフィギュレーションプロセス）もしくはその他の任意のプロセスに関する情報を含んでもよい。したがって、ブローカは、任意のプロセスに関する状況の情報を動的に通信することによってプロセスの管理を容易にするために、任意の数のコンポーネントに共有されてよい。
【００１１】
【発明の実施の形態】
本発明は、リモート配置されたサーバで実行されるプロセスの期間において、フィードバックを動的かつインクリメンタル方式で提供することによって、多数の主体が単一のプロセスを管理することを可能にするための方法および装置を提供するものである。一実施形態によると、本発明は、アプリケーションのインストール中のコンポーネント間の通信を容易にするために用いられる。これは、インストールを開始するクライアントと、インストールを実行するサーバとに共有される「ブローカ」を用いることにより実現される。このように、プロセスに関わる両サイドは、インストールの期間を通して制御を維持する。加えて、ブローカによって、プロセス中のイベント発生が、他のプロセスおよびデバイスに伝えられてもよい。ブローカの代表的な実装は、図２において提示され、説明される。加えて、ブローカによってサポートされる代表的な機能は、図３および図４においてさらに詳細に提示され、説明される。
【００１２】
以下の説明においては、インストールとは、リモート配置されたサーバへのアプリケーションのロードを意味する。加えて、アプリケーションのインストールは、さらに、サーバにアプリケーションがロードされた後のアプリケーションのアンインストールや設定を含んでもよい。例えば、設定は、パラメータ値やその他の設定情報を提供する動作を含んでもよい。さらに、以下では、サーバは、ソフトウェアアプリケーションを動作できる任意のデバイスを意味しており、さらに、インストールされているアプリケーションにサービスを提供する、もしくはそのアプリケーションのサービスにアクセスするプロセスもしくはデバイスを含んでもよい。
【００１３】
リモートサーバでのアプリケーションのインストールや、アンインストール、設定を容易に行うためにブローカを実装できる代表的なシステムが、図１Ａに示されている。示されている実施形態において、システムは、インストレーションツール１０２と、サーバ１０４と、ブローカ１０６とを備えている。インストレーションツール１０２により、ユーザは、リモート配置されたサーバ１０４（すなわち、アプリケーションサーバ）でアプリケーションのインストールと、アンインストールと、設定とを実行することが可能になる。より詳細には、インストレーションツール１０２により、ユーザは、１つ以上のソフトウェアをサーバにロードすることが可能になる。ブローカ１０６は、インストレーションツール１０２およびサーバ１０４の両方と通信しており、インストレーションプロセスの期間を通じてインストレーションツール１０２とサーバ１０４との間の通信を容易にするよう構成されている。加えて、ブローカ１０６は、インストレーションプロセスに関する状況の情報を他のプロセス／デバイスに通信するよう適合されている。ブローカによって通信された情報は、サーバによって実行されるプロセスを通して動的に送信されることに注意すべきである。一実施形態によると、インストレーションツール１０２は、ブローカ１０６を生成（例えば、インスタンスを生成）し、インストールを実行しているサーバ１０４によってブローカ１０６がアクセス可能になるように、サーバ１０４に対してブローカ１０６を識別する。
【００１４】
図３および図４を参照して以下で詳細に説明されるように、インストレーションプロセスを開始するために、ツール１０２は、サーバ１０４にロードされるアプリケーション１０８を識別する。これは、例えば、アプリケーション１０８もしくはアプリケーション１０８への参照（例えば、アプリケーションへのポインタ）をサーバへ送信することにより実現してもよい。加えて、サーバ１０４がブローカ１０６にアクセスすることを可能にするために、ツールは、ブローカＩＤ１１０をサーバ１０４に送信する。例えば、ブローカＩＤ１１０は、ブローカ１０６へのポインタもしくはその他の参照でよい。アプリケーションサーバ１０４がブローカＩＤ１１０を受信すると、ブローカは、インストレーションプロセスの期間を通してクライアントおよびサーバによって共有される。ツール１０２とサーバ１０４は両方ともそれぞれ、共有されたブローカ１０６を介してインストレーションプロセスの状況を更新してもよい。一例として、クライアントは、ツール１０２を介してインストレーションプロセスの一時停止もしくは取り消しを要求することがある。その結果、ツール１０２は、それに応じてブローカ１０６の状態を修正する。もう一つの例として、インストレーションプロセス中にエラーが発生することがある。その結果、サーバ１０４（もしくはツール１０２）は、ブローカ１０６の状態においてエラーを示す。ブローカの状態が修正されるごとに、ブローカ１０６は、インストレーションプロセスに関与している主体（エンティティ）に、状態もしくはブローカの状態への修正を提供する。このように、インストレーションプロセスを通して、クライアントとサーバの両方にきめの細かい制御が提供される。さらに、ブローカを介して、クライアントとサーバは、インストレーションプロセスのリスナと通信するだけでなく、互いにも通信する。したがって、そのような通信により、インストール中のアプリケーションにサービスを提供する、もしくはそのアプリケーションのサービスにアクセスするプロセスを妨害せずに、サーバにアプリケーションをインストールすることができる。
【００１５】
ブローカが生成されると、ブローカは、インストレーションプロセスの期間を通して、更新情報によってインストレーションの状態を種々の主体に通知する。例えば、更新情報は、エラーメッセージだけでなく、一般的な状況メッセージを含んでいてもよい。ブローカ状態の更新情報を受信することを求める主体と、ブローカ状態の更新情報を受信することを求めない、もしくはそのような更新情報の権利を付与されない主体があってもよい。それゆえ、一実施形態によると、そのような更新は、「リスナ」としてブローカに登録された主体のみに送信される。図１Ｂは、ブローカへのリスナすなわちインストレーションプロセスへのリスナとしての様々なエントリの登録を示す図である。ツール１０２およびサーバ１０４は、共有ブローカ１０６にアクセスするのだが、さらに、時間依存のイベントの通知を受信することが望ましい。それゆえ、ツール１０２とサーバ１０４は両方とも、それぞれ登録要求１１２，１１４によってリスナとしてブローカ１０６に登録する。加えて、ツール１０２とサーバ１０４以外の主体も、リスナとしてブローカ１０６に登録してもよい。第１のリスナ１１６は、登録要求１１８をブローカ１０６に送信する。加えて、第２のリスナ１２０は、登録要求１２２をブローカに送信する。しかしながら、ＣＰＵ１２４のような主体は、インストレーションプロセスの状態に関する情報を受信することを要求できないため、ブローカに登録しないことを選択してよい。
【００１６】
ブローカは、受信する登録要求をすべて受け入れてもよい。あるいは、ブローカは、ブローカもしくはサーバのアクセスリストで許可されている登録要求のみを選択して受け入れてもよい。例えば、アクセスリストは、ブローカへのリスナ登録によりブローカの状態へのアクセスを許可もしくは拒否されている主体の１つ以上のＩＰアドレスをリストアップしていてもよい。登録要求がブローカ１０６によって処理されると、リスナは、インストレーションプロセスの状態に関する更新情報をブローカ１０６から受信する。したがって、リスナとして登録されることにより、多数の主体が、インストレーションプロセスをモニタリングできるようになる。
【００１７】
各々のリスナは、インストレーションプロセス中に発生する様々なイベントの情報を要求してもよい。例えば、リスナは、ユーザがツールによってインストレーションプロセスを一時停止もしくは取り消しする際に通知するよう要求してもよい。さらに、エラーが発生した際には、インストレーションプロセスを中断することが望ましい。それゆえ、そのようなイベントが、格納され、適切な形でリスナに通信されると有益である。一実施形態によると、そのような状態の変更は、ブローカ内に記録されて、ブローカの状態を規定する。
【００１８】
ツールとサーバに共有されるブローカは、様々な方法で実装されてよい。例えば、ブローカは、インスタンス化されたオブジェクトとして実装されてもよい。図２は、ブローカの実装に用いることのできる代表的なデータ構造を示す図である。図示されているように、ブローカは、ポインタ、変数名、もしくはその他の機構のようなブローカＩＤ２０２によって識別される。加えて、ブローカは、イベントに応じて通信されたメッセージだけでなく、インストレーションプロセス中に発生したイベントの記録を含むがそれらに限定されないブローカ状態２０４を含む。加えて、ブローカ状態２０４は、ブローカの現在の状態だけでなく以前の状態を記録してもよい。ブローカ状態を調べるだけでなく、独立してブローカ状態を更新できるように、多数の構成要素が、ブローカを共有していてもよい。一実施形態によると、ブローカは、さらに、ブローカ状態２０４に記録されたイベントに応じて、リスナにブローカの更新情報（例えば、ブローカ状態に格納されたメッセージ）を送信するよう構成されている。このように、ブローカは、インストレーションプロセスを通して多数のデバイス間の通信を容易にする。
【００１９】
図２に示されているように、ブローカの現在の状態と特定のイベント（例えば、エラー）に関する状態の更新は、フラグ（すなわち、標識）とストリング（すなわち、メッセージ）の形で一時的に格納される。フラグとメッセージは、インストレーションプロセスのいずれの側で設定されてもよいことに注意すべきである。それゆえ、サーバとツールは両方とも、フラグおよび／またはメッセージを独立に設定し、プロセスのリスナだけでなくプロセスの相手側（例えば、サーバもしくはツール）と通信してもよい。このように、インストレーションプロセスに関わる両サイドが、ブローカの状態を制御する。サーバとツールは、ブローカを共有するため、これらの更新情報をブローカから積極的に取得してよい。あるいは、サーバとツールは、ブローカがブローカ更新情報をリスナに送信するまで待機してもよい。ブローカ更新情報が取得されると、サーバとツールは、それにしたがって対応する。このように、インストレーションプロセスに関わる両サイドは、ブローカの制御を維持することにより、ブローカによってインストレーションプロセスを管理する。
【００２０】
フラグは、様々なイベントの発生を示すように生成されてよい。例えば、インストレーションを要求するクライアントは、インストレーションプロセスを一時停止し、さらに取り消してもよい。このため、IS_CANCELLEDフラグ２０６がブローカ状態２０４内に提供されており、FALSE （偽）に設定されている。クライアントがインストレーションプロセスを取り消す場合には、このことが、TRUE （真）に設定されたIS_CANCELLEDフラグ２０６で示される。同様に、IS_PAUSEDフラグ２０８は、デフォルト状態ではFALSE に設定され、クライアント（もしくはサーバ）がインストレーションプロセスを一時停止する際にTRUE に設定される。
【００２１】
ブローカ状態２０４は、インストールを要求するクライアントによって開始されるブローカ状態の変更を反映するのに加えて、インストールを実行するサーバによって開始されるブローカ状態の変更も反映する。例えば、インストレーションプロセスが完了した際に、サーバは、IS_FINISHEDフラグ２１０をTRUE に設定する。さらに、インストレーションプロセス中にエラーが発生した場合には、IS_IN_ERRORフラグ２１２をTRUE に設定する。１つのプロセスの間に数多くのエラーが発生する可能性があるため、或る特定のエラーは、インストレーションプロセス中にリスナに送ることができるERROR_MESSAGE ２１４として示されてもよい。加えて、インストレーションプロセス中にエラー以外のイベントをリスナに通信することが望ましい。例えば、アプリケーションがサーバによって受信される際に、このブローカ状態の更新情報をリスナに通信することが望ましい。それゆえ、そのようなメッセージは、STATUS_MESSAGE ２１６として格納されてもよい。ブローカ状態の更新情報は、ブローカ状態２０４に記録された後で、選択されたリスナに通信されてもよい。
【００２２】
現在のブローカ状態がリスナに通信されると、現在の状態は、デフォルト状態に初期化される。例えば、フラグはFALSE に設定されてよく、ストリングは空ストリングに初期化されてよい。このように、現在のブローカ状態は、インクリメンタルインストレーションプロセス中にリセットされてもよい。
【００２３】
インストレーションプロセス中に、サーバがクラッシュしたり、インストール中に発生したイベントのためにサーバを停止する必要が生じたりすることがある。インストールの終了の原因となる問題が、インストレーションプロセスの間に生じた場合には、終了した時点からインストレーションプロセスを再開できることが望ましい。それゆえ、ブローカの以前の状態が、ヒストリ２１８データ構造として記録されてもよい。ヒストリ（履歴）２１８は、状態変更の１つ以上のソース（発生源）２２２を識別するだけでなく、以前のブローカ状態２２０を反映してもよい。例えば、プロセスを取り消したユーザのＩＤが示されてもよい。インストール手順の完了段階に関する情報が、サーバを停止するのに先立って格納されてもよい。あるいは、サーバがクラッシュした場合にブローカの復元を可能にするために、インストールの完了の状況および状態に関する情報が、定期的に格納されてもよい。そして、ブローカもしくはブローカの状態は、後でインストレーションプロセスを復元できるように、メモリ（例えば、ディスクもしくはデータベース）に保管されてもよい。
【００２４】
インストレーションプロセスの期間を通して、ブローカ状態が更新され、リスナは、これらのブローカ状態の更新を通知される。本発明の一実施形態によるアプリケーションのリモートインストールの一方法が、図３に示されている。そのプロセスは、インストール／設定ツールによってブロック３０２で始まる。ブロック３０４に示されているように、ツールは、ブローカを生成（例えば、インスタンスを生成）する。次いで、ブローカは、ツールとサーバの両方によって共有されるように格納される。エラーが発生した場合には、インストレーションプロセスを中断することが望ましいため、ブロック３０６において、ツールは、ツール自体をリスナとしてブローカに登録し、インストレーションプロセス中に発生したエラーの通知を受信する。次いで、ブロック３０８において、ツールは、インストール（もしくは設定）されているアプリケーションを識別するアプリケーションデータと、ブローカを識別するブローカＩＤを、インストールを実行するよう選択されているサーバに送信する。アプリケーションデータは、インストールされているアプリケーションを含んでいてもよい。あるいは、アプリケーションではなく、アプリケーションへの参照（例えば、ポインタ）が送信されてもよい。さらに、アプリケーションデータは、アプリケーションを設定するための設定情報（例えば、パラメータ値）を含んでいてもよい。
【００２５】
サーバは、アプリケーションとブローカＩＤを受信すると、ブロック３１０において、サーバ自体をリスナとしてブローカに登録する。この登録プロセスが完了すると、サーバは、ブローカ状態の更新情報の通知を受け、その後、それらの更新情報がリスナに送信される。一実施形態によると、各リスナは、ブローカ状態が更新されるごとに、ブローカ状態の更新情報をすべて受信する。しかしながら、各リスナは、特定のブローカ状態の更新にしか関与しなくてもよい。例えば、サーバにはプロセスがツールによって一時停止されたことを通知することが望ましいが、第三者的なリスナ（例えば、ツールやインストールを実行しているサーバ以外のもの）は、プロセスが中断したか否かには関心がない。そのため、別の実施形態によると、各リスナは、通知を受信したい状態変更を指定する。
【００２６】
サーバは、インストールされているアプリケーションにサービスを提供したり、あるいは、そのアプリケーションのサービスにアクセスする管理プロセスを実行していてもよいため、共存する管理プロセスを中断させないように、インストールがインクリメンタル方式で実行されることが重要である場合が多い。それゆえ、サーバは、アプリケーションが分割でインストールされてもよいように、ブロック３１２において、受信されたアプリケーションのローカルコピーを作成する。次いで、サーバは、ブロック３１４において、ブローカ状況メッセージを「APPLICATION RECEIVED（アプリケーション受信済み）」に設定する。次いで、ブローカは、ブロック３１６において、ブローカ状況メッセージの変更をリスナに通知する。新しいブローカ状況メッセージがインストレーションツールによって受信されると、ブロック３１８において、インストレーションツールは、新しいブローカ状況と共にインストールの進行状況を示すデプロイメント進行状況ダイアログボックスを更新する。
【００２７】
アプリケーションがツールから受信されると、ブロック３２０において、サーバは、アプリケーションをインクリメンタル方式でインストールし、それにしたがってブローカの状態を更新する。このように、ウェブページやコードのライブラリのような１つ以上のソフトウェアコンポーネントがリモートサーバにロードされる。それゆえ、インストールが完了するまでに、ツールによって提供された更新（例えば、プロセスの取り消しや一時停止）だけでなく、サーバによって提供された更新に関するすべての関連情報（例えば、インストレーション中に起こるエラー）を示すように、ブローカの状態が更新される。インクリメンタルインストールと更新のプロセスについては、図４においてさらに詳細に説明される。
【００２８】
次いで、サーバは、ブロック３２２において、状況メッセージを適切に設定する。一例として、状況メッセージは、インストールプロセスの完了段階を含んでいてもよい。例えば、状況メッセージは、「STAGE 2 COMPLETED（ステージ２完了）」と設定されてもよい。別の例として、状況メッセージは、インストールが取り消しもしくは一時停止されたことを示してもよい。状況メッセージが設定されると、３１６において、ブローカは、状況メッセージの変更をリスナに通知する。
【００２９】
インストレーションプロセスが完了すると、ブロック３２４において、サーバは、ブローカのIS_FINISHEDフラグをTRUE に設定し、インストレーションプロセスが終了した状態であることを示す。次いで、ブローカは、ブロック３２６において、インストレーションプロセスが完了したことをリスナに通知する。しかしながら、インストレーションプロセス中にエラーが発生するか、もしくは、インストレーションプロセスがユーザによって取り消された場合には、ライン３３０に示されたように、プロセス３２４および３２６はスキップされる。現在のセッションに対してのみブローカが保持されることが望ましいため、ブローカは、ブロック３２８において削除されてもよい。それには、ツールがブローカを削除する。あるいは、ツールとサーバが、ブローカの参照解除を行ってもよい。また、以前のブローカもしくはブローカ状態に提供された情報の少なくとも一部をヒストリ（履歴）として格納することが望ましい。それゆえ、ヒストリは、図２において提示、説明したようなブローカのデータ構造に格納されてもよい。あるいは、ブローカ自体にヒストリを格納せずに、関与していないオーディタが、リスナとして登録し、インストールプロセス中に発生するトランザクションおよびイベントのログを保持してもよい。
【００３０】
図３のブロック３２０において説明したように、サーバは、アプリケーションをインクリメンタル方式でインストールし、ブローカを適切に更新する。本発明の一実施形態によるアプリケーションのインクリメンタルインストールの一方法が、図４に示されている。そのプロセスは、ブロック４０２で始まり、ブロック４０４において、アプリケーションの次の部分がインストールされる。次いで、サーバは、ブロック４０６において、ブローカ状況メッセージを設定し、ブローカ状態を適切に更新する。例えば、インストレーションプロセスの完了段階を示すブローカ状況メッセージを設定することに加えて、ブローカ状態が更新されることにより、他のフラグやメッセージ（例えば、エラーメッセージ）が適切に設定される。次いで、ブローカは、ブロック４０８において、新しい状況メッセージをリスナに通知する。例えば、インストールがサーバによって一時停止された場合、サーバは、ブローカ状況メッセージを「WILL RESUME IN 10 MINUTES（１０分後に復帰）」に設定してもよい。次いで、この状況メッセージは、全リスナに通信される。
【００３１】
ブローカ状態は、ブロック４０６において最近更新されたため、ブロック４１０において、サーバは、先に進むことが可能か否かをブローカ状態から決定してもよい。例えば、インストレーションプロセスは、ユーザによって取り消しもしくは一時停止されてもよい。さらに、インストレーションプロセスの継続を妨げるエラーが、インストレーションプロセス中に発生してもよい。それゆえ、サーバは、ブローカ状態にしたがってインストレーションプロセスを修正してもよい。
【００３２】
ユーザがインストレーションプロセスを取り消すと、これがブローカの状態に反映される。その取り消しは、ハード割り込みでもソフト割り込みでもよいため、インストレーションプロセスは、現在のアプリケーションの部分の完了まで継続してもよいし、すぐに中断されてもよい。一実施形態によると、ブロック４１２において、IS_CANCELLEDフラグがTRUE に設定されていると決定された場合、その取り消しは、ソフト割り込みとして割り込みされ、プロセスは、現在のアプリケーションの部分が完了するまで継続する。次いで、この時までにインストールされたアプリケーションの部分は、ブロック４１４においてアンインストールされてもよい。次いで、プロセスは、ブロック４１６に示されているように、図３のブロック３２８に進んでブローカを削除する。
【００３３】
上述のように、インストレーションプロセス中にエラーが発生することがある。図２に示されているように、エラーの発生は、ブローカの状態に反映される。より詳細には、IS_IN_ERRORフラグが、サーバもしくはツールによってTRUE に設定され、特定のエラーが、ERROR_MESSAGE（エラーメッセージ）としてブローカ状態の中に記述される。それゆえ、ブロック４１８において、IS_IN_ERRORフラグがTRUE に設定されていると決定された場合、ブローカ状態の中で指定されたERROR_MESSAGEが、ブロック４２０において設定される。次いで、ブローカは、ブロック４２２において、新しいエラーメッセージをリスナに通知する。エラーが致命的エラーである場合、すでにインストールされたアプリケーションのセクションは、ブロック４１４においてアンインストールされてもよく、プロセスは、上述のようにブロック４１６に進む。
【００３４】
インストールを一時停止することが望ましい場合がある。例えば、インストールが非常に長い場合、ユーザは、インストールを一時停止し、後で再開したいと思うかもしれない。また、サーバがインストールを一時停止する場合もある。例えば、サーバは、メモリもしくはその他のリソースを使い切りそうになった場合、インストールを一時的に停止し、インストールを完了するために必要なリソースを開放することができる。ユーザもしくはサーバが、インストールの一時停止を選択した場合、ブローカ状態の中のIS_PAUSEDフラグはTRUE に設定される。次いで、サーバは、インストールを一時停止し、ブロック４２８に示されているように、（ユーザによって開始された際に）一時停止が解除されたという通知を待ってもよいし、（ユーザによって開始された際に）インストールを再開することが適切になるまで待機してもよい。より詳細には、サーバは、ブローカ状態の中のIS_PAUSEDフラグを積極的に調べてもよいし、（ユーザによって開始された際に）一時停止が解除されたというブローカからの通知を待ってもよい。同様に、ツールは、ブローカを調べて、いつ一時停止がサーバによって解除されたのかを決定してもよいし、そのような通知がブローカによってリスナに送られる場合には、その通知を待ってもよい。ブロック４０８について上述したように、サーバは、「WILL RESUME IN 10 MINUTES」のような状況メッセージを通信して、サーバがインストールを一時的に停止したことを示してもよい。ブロック４３０において、一時停止が解除されたことが決定されると、プロセスは、ブロック４３２に示されているように、ブロック４３４に進み、まだインストールされていないアプリケーションの部分を処理する。解除されていない場合には、プロセスは、ループしてブロック４２８に戻り、一時停止が解除されるまでインストールを停止する。ブロック４２４において、IS_PAUSEDフラグがTRUE に設定されていないことが決定された場合には、インストレーションプロセスは、ブロック４２６に示されているように、ブロック４３４に進み、アプリケーションの残り部分を処理する。
【００３５】
ブローカ状態は、インストール中に動的に変化する。さらに、ブローカに格納された状況の更新に応じて、ユーザが、インストレーションプロセスの取り消しもしくは一時停止を望んでもよい。それゆえ、ユーザがインストールの状態を確認することができるように、ツールは、インストレーションツールのユーザインターフェースに適した更新を提供してもよい。図５は、インストレーションツールのユーザインターフェースに状況の情報を提示するのに適したダイアログボックスの画面の図である。ウィンドウ５０２に、状況やエラーメッセージのようなメッセージ通知が表示される。加えて、特定のアプリケーションセグメントのインストール進行状況が表示されてもよい。例えば、サーブレット５０４やウェブページ５０６のインストール段階が別個に表示されてもよい。加えて、アプリケーション全体のインストレーションプロセスの進行状況が５０８に表示されてもよい。このディスプレイから、ユーザは、インストールの一時停止５１０もしくは取り消し５１２を求めてもよい。
【００３６】
時間の掛かるインストールでは、ユーザは、インストールを一時停止して、後で再開したいと思うこともある。その場合、ユーザは、一時停止ボタン５１０を選択する。一時停止ボタン５１０が選択されると、ツールは、IS_PAUSEDフラグをTRUE に設定する。次いで、サーバは、インストレーションプロセスが一時停止されたか否かをブローカ状態から決定する。サーバは、ブローカから積極的に情報を取得してもよいし、ブローカから更新を受信するまで待機していてもよい。次いで、サーバは、IS_PAUSEDフラグがFALSE に設定されるまで待機する。より詳細には、サーバは、定期的にIS_PAUSEDフラグを積極的に調べるか、もしくは、サーバがインストレーションプロセスを再開してもよいという通知をブローカから受信するまで待機する。
【００３７】
加えて、ユーザは、インストールの進行中にインストールの取り消しを求めてもよい。ユーザが取り消しボタン５１２を選択すると、ツールは、IS_CANCELLEDフラグをTRUE に設定する。次いで、サーバは、インストレーションプロセスが取り消されたか否かをブローカ状態から決定し、それにしたがって反応する。サーバは、ブローカから送られたブローカ状態の更新を受信する際に、取り消しを通知されてもよい。あるいは、サーバは、後の時点で積極的にブローカ状態を調べてもよい。例えば、サーバは、ブローカの内容を定期的に調べてもよい。ある主体（エンティティ）がインストールの取り消しを求めていることを知ると、サーバは、上述のようにハードもしくはソフト割り込みを実行する。それから、ユーザは、新しいインストレーションプロセスを開始してもよいし、そのセッションを終了してもよい。
【００３８】
これまでの説明では、インストールのプロセスに言及してきたが、本発明は、リモート配置されたサーバで実行されるプロセスを通して多数のコンポーネント間の通信を容易にするために同じく用いることができる。さらに、これまでは「アプリケーション」について述べてきたが、本発明は、サーバ上で動的に任意の文書もしくはファイルをインストールしたり、アンインストールしたり、あるいは設定したりするために用いてもよい。それゆえ、共有ブローカは、構成プロセスもしくはその他の任意のプロセスに関する情報を含んでもよい。したがって、ブローカは、任意のプロセスに関する状況の情報を動的に通信するために、任意の数のコンポーネントに共有されてよい。
【００３９】
ブローカ、インストレーションツール、サーバは一般に、任意の適切なコンピュータシステムに実装される。図６は、本発明を実装するのに適した代表的な汎用コンピュータシステム１００２を示している。そのコンピュータシステム１００２は、主記憶装置１００６（通例、読み取り専用メモリ、ＲＯＭ）と主記憶装置１００８（通例、ランダムアクセスメモリ、ＲＡＭ）とを含むメモリデバイスに接続できる任意の数のプロセッサ１００４（中央演算処理装置、ＣＰＵとも呼ばれる）を備えている。当業者に周知のように、ＲＯＭは、データや命令をＣＰＵ１００４に一方向的に転送するよう機能し、ＲＡＭは通例、データや命令を双方向で転送するために用いられる。主記憶装置１００６、１００８は両方とも、任意の適切なコンピュータ読み取り可能な媒体を含んでいてもよい。ＣＰＵ１００４は一般に、任意の数のプロセッサを含んでいてよい。
【００４０】
さらに、副記憶媒体１０１０（通例は大容量メモリデバイス）が、ＣＰＵ１００４に双方向的に接続され、追加のデータ容量を提供してもよい。大容量メモリデバイス１０１０は、コンピュータコード、データなどを含むプログラムを格納するのに用いることのできるコンピュータ読み取り可能な媒体である。通例、大容量メモリデバイス１０１０は、一般的に主記憶装置１００６、１００８よりも遅いハードディスクのような記憶媒体である。
【００４１】
ＣＰＵ１００４は、さらに、１つ以上の入出力デバイス１０１２に接続されていてもよい。入出力デバイス１０１２は、ビデオモニタ、トラックボール、マウス、キーボード、マイクロフォン、タッチ検知ディスプレイ、トランスデューサカードリーダ、磁気もしくは紙テープリーダ、タブレット、スタイラス、音声もしくは手書き文字認識器、もちろん別のコンピュータなどを含むその他の周知の入力デバイス、などのデバイスでよいが、これらに限定するものではない。最後に、ＣＰＵ１００４は、１０１４で一般的に示されているように、ネットワーク接続を用いてコンピュータや遠距離通信（例えば、インターネットネットワークやイントラネットネットワーク）に接続されていてもよい。そのようなネットワーク接続については、以下に説明する方法のステップを実行することで、ＣＰＵ１００４がネットワークから情報を受信したり、ネットワークに情報をアウトプットしたりすることが意図されている。そのような情報（しばしば、ＣＰＵ１００４を用いて実行される一連の命令として表される）は、例えば搬送波で実現されるコンピュータデータ信号の形で、ネットワークから受信されてよいし、ネットワークに出力されてよい。
【００４２】
本明細書では、本発明の例示的な実施形態と用途が提示、説明されているが、本発明の概念、範囲、意図の範囲内で、多くの変更と修正が可能であり、これらの変更は、本明細書を精読すれば当業者には明らかとなるだろう。例えば、ブローカは、インスタンス化されたオブジェクトとして説明されているが、様々な方法で実装されてよい。さらに、ブローカは、説明されている以外の様々なフィールドを含んでもよい。結果として、上述のプロセスのブロックは、例示的なものに過ぎず、ブローカの実装に応じて変更されてよい。したがって、上述した実施形態は、例示を目的としたものであって限定的ではなく、本発明は、本明細書における詳細に限定されず、添付した特許請求の範囲および同等物の範囲内で変更されてもよい。
【図面の簡単な説明】
【図１Ａ】  リモートサーバでのアプリケーションのインストールと、アンインストールと、設定と、を容易に行うためにブローカを実装できる代表的なシステムを示すブロック図である。
【図１Ｂ】  図１Ａに示したブローカへの様々なエントリのリスナ登録を示すブロック図である。
【図２】  代表的なブローカのデータ構造を示す図である。
【図３】  本発明の一実施形態に従ってアプリケーションのリモートインストールを実行する方法を示すフローチャートである。
【図４】  本発明の一実施形態に従ってアプリケーションのインクリメンタルインストールを実行する方法を示すフローチャートである。
【図５】  インストレーションツールのユーザに状況の情報を提示するのに適した代表的なデプロイメント進行状況ダイアログボックスを示すスクリーンの図である。
【図６】  本発明を実装するのに適した代表的な汎用コンピュータシステムを示すブロック図である。
【符号の説明】
１０２  インストレーションツール
１０４  サーバ
１０６  ブローカ
１０８  アプリケーション
１１０  ブローカＩＤ
１１２  登録要求
１１４  登録要求
１１６  第１のリスナ
１１８  登録要求
１２０  第２のリスナ
１２２  登録要求
２０２  ブローカＩＤ
２０４  ブローカ状態
２０６  IS_CANCELLEDフラグ
２０８  IS_PAUSEDフラグ
２１０  IS_FINISHEDフラグ
２１２  IS_IN_ERRORフラグ
２１４  ERROR_MESSAGE
２１６  STATUS_MESSAGE
２１８  ヒストリ
２２０  ブローカ状況
２２２  ソース
５０２  ウィンドウ
５０４  サーブレット
５０６  ウェブページ
５１０  一時停止
５１２  取り消し
１００２  汎用コンピュータシステム
１００４  プロセッサ
１００６  主記憶装置
１００８  主記憶装置
１０１０  副記憶媒体
１０１２  入出力デバイス
１０１４  ネットワーク
【図１Ａ】
0004628551.tif 000002
【図１Ｂ】
0004628551.tif 000003
【図２】
0004628551.tif 000004
【図３】
0004628551.tif 000005
【図４】
0004628551.tif 000006
【図５】
0004628551.tif 000007
【図６】
0004628551.tif 000008