(57)【要約】【課題】アクティブ・クライアント・ポジションにあるアクティブ・アプリケーション・コンポーネントにリアルタイム更新を分散するためのシステム、方法、および装置の提供。【解決手段】アクティブ・クライアント・ポジションを更新するためのシステムが、アクティブ・アプリケーション・コンポーネントを管理するためのプラットフォームと、更新を格納するためのコンフィギュレーション・サーバと、コンフィギュレーション・サーバから更新を受信し、受信されたコンフィギュレーションをプラットフォームに通信するためのコンフィギュレーション・クライアントとが含まれ得る。プラットフォームは、コンフィギュレーション・クライアントから更新を受信する。続いて、プラットフォームは、アクティブ・アプリケーション・コンポーネントのうち選択されたものを終了する。次に、プラットフォームは、終了されたアプリケーション・コンポーネントに、受信された更新を行う。最後に、プラットフォームが、更新されたアプリケーション・コンポーネントをリロードする。【選択図】図２
2004512592.tif 000002
【特許請求の範囲】
【請求項１】
アクティブ・クライアント・ポジションにあるアクティブ・アプリケーション・コンポーネントにリアルタイム更新を分散するための方法であって、
前記アクティブ・アプリケーション・コンポーネントを管理するプラットフォームとコンフィギュレーション・クライアントとの第１の通信接続を確立するステップと、
前記コンフィギュレーション・クライアントとコンフィギュレーション・サーバとの第２の通信接続を確立するステップと、
前記第２の通信接続を介して前記コンフィギュレーション・クライアントに更新を送るステップであって、各更新が少なくとも１つの特定のアプリケーション・コンポーネントに対応するステップと、
更新が利用可能であることを前記プラットフォームに通知するステップと、
前記通知に応答して、前記特定のアクティブ・アプリケーション・コンポーネントの実行を終了し、前記第１の通信接続を介して前記プラットフォームに各前記更新を送り、前記少なくとも１つの対応するアプリケーション・コンポーネントへの各前記更新を行い、各前記更新されたアプリケーション・コンポーネントを再実行するステップと、
を含む方法。
【請求項２】
前記終了ステップが、
前記通知に基づいて更新される前記少なくとも１つの特定の対応するアプリケーション・コンポーネントを識別するステップと、
各前記識別されたアプリケーション・コンポーネントのインスタンスを終了するステップと、
前記終了されたアプリケーション・コンポーネント・インスタンスと他のアプリケーション・コンポーネントとの相互依存を取り除くステップと
を含む請求項１に記載の方法。
【請求項３】
前記再実行ステップが、
各前記更新されたアプリケーション・コンポーネントをインスタンス化するステップと、
各前記更新されたアプリケーション・コンポーネント・インスタンスを初期化するステップと、
を含む請求項１または請求項２に記載の方法。
【請求項４】
前記初期化ステップが、
コンフィギュレーション情報を前記コンフィギュレーション・クライアントに通信するステップと、
前記コンフィギュレーション情報に基づいて各前記更新されたアプリケーション・コンポーネント内部の状況情報を再び初期化するステップと、
を含む請求項３に記載の方法。
【請求項５】
さらに、アプリケーション・コンポーネント更新が前記コンフィギュレーション・サーバで利用可能になったときに前記更新を前記プラットフォームに通知する更新通知を前記コンフィギュレーション・クライアントに要求するステップを含む請求項３に記載の方法。
【請求項６】
アプリケーション・コンポーネント更新が前記コンフィギュレーション・サーバで利用可能になったときに前記更新を前記コンフィギュレーション・クライアントに通知する更新通知を、前記第２の通信を介して前記コンフィギュレーション・クライアントに伝送するステップを更に含む請求項１乃至５のいずれかに記載の方法。
【請求項７】
前記第２の接続を介して更新通知を伝送する前記ステップが、
ＵＤＰ（ｕｎｉｖｅｒｓａｌ ｄａｔａｇｒａｍ ｐｒｏｔｏｃｏｌ）に従って前記更新通知をパケット化するステップと、
前記ＵＤＰパケットを前記構成クライントに伝送するステップと、
を含む請求項６に記載の方法。
【請求項８】
前記コンフィギュレーション・サーバがＬＤＡＰサーバである請求項１乃至７のいずれかに記載の方法。
【請求項９】
さらに、前記ＬＤＡＰサーバ内のＬＤＡＰベース・データベースに前記アプリケーション・コンポーネント更新を格納するステップを含む請求項８に記載の方法。
【請求項１０】
アクティブ・クライアント・ポジションを更新するためのシステムであって、
アクティブ・アプリケーション・コンポーネントを管理するためのプラットフォームと、
更新を格納するためのコンフィギュレーション・サーバと、
前記コンフィギュレーション・サーバから更新を受信し、前記受信された更新を前記プラットフォームに通信するためのコンフィギュレーション・クライアントとを備え、
前記プラットフォームが、前記コンフィギュレーション・クライアントから前記更新を受信するのに応答して、前記アクティブ・アプリケーション・コンポーネントのうち選択されたものを終了し、前記終了されたアプリケーション・コンポーネントに前記受信された更新を行い、前記更新されたアプリケーション・コンポーネントをリロードする、
システム。
【請求項１１】
前記コンフィギュレーション・サーバがＬＤＡＰサーバである請求項１０に記載のシステム。
【請求項１２】
前記アクティブ・アプリケーション・コンポーネントがＪａｖａ（Ｒ）クラスのインスタンスである請求項１０または請求項１１に記載のシステム。
【請求項１３】
前記コンフィギュレーション・クライアントがさらに、通知オブジェクトおよびリスナ・インターフェースを備え、
前記アクティブ・アプリケーション・コンポーネントが、前記リスナ・インターフェースを介して前記コンフィギュレーション・クライアントから更新通知を受信するように構成されている、
請求項１１または１２のいずれかに記載のシステム。
【請求項１４】
前記コンフィギュレーション・サーバが、通知オブジェクトおよびリスナ・インターフェースを更に備え、
前記コンフィギュレーション・クライアントが、前記リスナ・インターフェースを介して前記コンフィギュレーション・サーバから更新通知を受信するように構成されている、
請求項１１ないし１３のいずれか一項に記載のシステム。
【請求項１５】
アクティブ・クライアント・ポジションにあるアクティブ・アプリケーション・コンポーネントにリアルタイム更新を分散するための複数のコード・セクションを有するコンピュータ・プログラムであって、マシンによって実行可能である前記コード・セクションが、
アクティブ・アプリケーション・コンポーネントを管理するプラットフォームとコンフィギュレーション・クライアントとの第１の通信接続を確立するステップと、
前記コンフィギュレーション・クライアントとコンフィギュレーション・サーバとの第２の通信接続を確立するステップと、
前記第２の通信接続を介して前記コンフィギュレーション・クライアントに更新を送るステップであって、各更新が少なくとも１つの特定のアプリケーション・コンポーネントに対応するステップと、
更新が利用可能であることを前記プラットフォームに通知するステップと、
前記通知に応答して、前記特定のアクティブ・アプリケーション・コンポーネントの実行を終了し、前記第１の通信接続を介して前記プラットフォームに各前記更新を送り、前記少なくとも１つの対応するアプリケーション・コンポーネントに各前記更新を行い、各前記更新されたアプリケーション・コンポーネントを再実行するステップと、
をマシンに行わせるコンピュータ・プログラム。
【請求項１６】
前記終了ステップが、
前記通知に基づいて更新される前記少なくとも１つの特定の対応するアプリケーション・コンポーネントを識別するステップと、
各前記識別されたアプリケーション・コンポーネントのインスタンスを終了するステップと、
前記終了されたアプリケーション・コンポーネント・インスタンスと他のアプリケーション・コンポーネントとの相互依存を取り除くステップと
を含む請求項１５に記載のコンピュータ・プログラム。
【請求項１７】
前記再実行ステップが、
各前記更新されたアプリケーション・コンポーネントをインスタンス化するステップと、
各前記更新されたアプリケーション・コンポーネント・インスタンスを初期化するステップと
を含む請求項１５または請求項１６に記載のコンピュータ・プログラム。
【請求項１８】
前記初期化ステップが、
コンフィギュレーション情報を前記コンフィギュレーション・クライアントに通信するステップと、
前記コンフィギュレーション情報に基づいて各前記更新されたアプリケーション・コンポーネント内部の状況情報を再び初期化するステップと、
を含む請求項１７に記載のコンピュータ・プログラム。
【請求項１９】
アプリケーション・コンポーネント更新が前記コンフィギュレーション・サーバで利用可能になったときに前記更新を前記プラットフォームに通知する前記更新通知を前記コンフィギュレーション・クライアントに要求するステップを更に行わせる請求項１７に記載のコンピュータ・プログラム。
【請求項２０】
前記第２の通信接続を介して前記コンフィギュレーション・クライアントに更新通知を伝送するステップであって、前記更新通知が、前記更新が前記コンフィギュレーション・サーバで利用可能になったときにアプリケーション・コンポーネント更新を前記コンフィギュレーション・クライアントに通知するステップを更に行わせる請求項１５乃至１９のいずれかに記載のコンピュータ・プログラム。
【請求項２１】
前記第２の接続を介して更新通知を伝送する前記ステップが、
ＵＤＰ（ｕｎｉｖｅｒｓａｌ ｄａｔａｇｒａｍ ｐｒｏｔｏｃｏｌ）に従って前記更新通知をパケット化するステップと、
前記ＵＤＰパケットを前記コンフィギュレーション・クライアントに伝送するステップと、
を含む請求項２０に記載のコンピュータ・プログラム。
【請求項２２】
前記コンフィギュレーション・サーバがＬＤＡＰサーバである請求項１５乃至２１のいずれか記載のコンピュータ・プログラム。
【請求項２３】
前記ＬＤＡＰサーバ内のＬＤＡＰベース・データベースに前記アプリケーション・コンポーネント更新を格納するステップを更に含む請求項２２に記載のコンピュータ・プログラム。
【請求項２４】
アクティブ・クライアント・ポジションで動作するアクティブ・アプリケーション・コンポーネントにリアルタイム更新を分散するための方法であって、
通信によってリンクされたコンフィギュレーション・クライアントからアクティブ・アプリケーション・コンポーネントへの更新を受信するステップであって、各更新が少なくとも１つの特定のアプリケーション・コンポーネントに対応するステップと、
受信された対応する更新を有する各特定のアクティブ・アプリケーション・コンポーネントの実行を終了するステップと、
前記対応するアプリケーション・コンポーネントに前記受信された更新を行うステップと、
前記更新されたアプリケーション・コンポーネントを再実行するステップと、
を含む方法。
【請求項２５】
前記終了ステップが、
受信された対応する更新を有する各特定のアクティブ・アプリケーション・コンポーネントのインスタンスを終了するステップと、
前記終了されたアプリケーション・コンポーネント・インスタンスと他のアプリケーション・コンポーネントとの相互依存を取り除くステップと
を含む請求項２４に記載の方法。
【請求項２６】
前記再実行ステップが、
各更新されたアプリケーション・コンポーネントをインスタンス化するステップと、
各更新されたアプリケーション・コンポーネント・インスタンスを初期化するステップと
を含む請求項２４または請求項２５に記載の方法。
【請求項２７】
前記コンフィギュレーション・クライアントからの更新通知にサブスクライブするステップをさらに含み、
前記更新通知が、前記更新が利用可能になったときにアプリケーション・コンポーネント更新をアクティブ・クライアント・ポジションに通知する、
請求項２４ないし２６のいずれか一項に記載の方法。
【請求項２８】
アクティブ・クライアント・ポジションで動作するアクティブ・アプリケーション・コンポーネントにリアルタイム更新を分散するための複数のコード・セクションを有するコンピュータ・プログラムであって、マシンによって実行可能である前記コード・セクションが、
通信によってリンクされたコンフィギュレーション・クライアントからアクティブ・アプリケーション・コンポーネントへの更新を受信するステップであって、各更新が少なくとも１つの特定のアプリケーション・コンポーネントに対応するステップと、
受信された対応する更新を有する各特定のアクティブ・アプリケーション・コンポーネントの実行を終了するステップと、
前記対応するアプリケーション・コンポーネントに前記受信された更新を行うステップと、
前記更新されたアプリケーション・コンポーネントを再実行するステップと、
をマシンに行わせるコンピュータ・プログラム。
【請求項２９】
前記終了ステップが、
受信された対応する更新を有する各特定のアクティブ・アプリケーション・コンポーネントのインスタンスを終了するステップと、
前記終了されたアプリケーション・コンポーネント・インスタンスと他のアプリケーション・コンポーネントとの相互依存を取り除くステップと、
を含む請求項２８に記載のコンピュータ・プログラム。
【請求項３０】
前記再実行ステップが、
各更新されたアプリケーション・コンポーネントをインスタンス化するステップと、
各更新されたアプリケーション・コンポーネント・インスタンスを初期化するステップと、
を含む請求項２８に記載のコンピュータ・プログラム。
【請求項３１】
前記コンフィギュレーション・クライアントからの更新通知にサブスクライブするステップであって、前記更新通知が、前記更新が利用可能になるときにアプリケーション・コンポーネント更新をアクティブ・クライアント・ポジションに通知するステップを更に行わせる請求項２８乃至３０のいずれかに記載のコンピュータ・プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、クライアント・サーバ・アプリケーションおよびびアプリケーション更新の分散の分野に関する。より詳細には、本発明は、アプリケーションのためのホスト・プラットフォームが依然としてアクティブ状態の間に、アプリケーション更新を分散するための方法および装置に関する。
【０００２】
【従来の技術】
典型的なコンピューティング環境では、しばしばサーバから１または複数のクライアント・アプリケーションにソフトウェアを分散するための自動化された方法を提供する必要がある。通常、コンピューティング環境は、１または複数のクライアントにローカライズすなわち特化されたサービスを提供する１または複数のサーバから構成されている。これらの分散環境では、情報が様々な異種のデータ記憶装置に分散される。異種のデータ記憶装置にわたって分散される情報を有する結果の１つは、データを簡単に複製することができることである。しかし、しばしば偽の複製が整合性のない更新をもたらす。
【０００３】
分散コンピューティング環境でデータに対するオペレーションを行うための効率的なソリューションを提供するために様々な方法が採用されている。詳細には、オペレーションには、データの探索、追加、削除、および修正が含まれ得る。１つのソリューションは、環境内の全てのデータを格納するための中央リポジトリとして作用するディレクトリ・サービスを利用することが含まれる。このソリューションでは、ディレクトリ・サービスが、内部に含まれるデータを操作する単一の点となる。
【０００４】
分散環境でデータを格納し、データにアクセスするためのディレクトリ・サービスの使用は、いくつかの点で有利な場合がある。ディレクトリ・サービスは、ローカル・エリア・ネットワーク（ＬＡＮ）としてローカライズすることも、ワイド・エリア・ネットワーク（ＷＡＮ）として分散することもできるリソースを管理するための単一の中央リソースを提供する。さらに、単一の中央リポジトリしか存在しないので、ピーク性能の保証および冗長の目的のために、環境内部のリソースを複製することができる。
【０００５】
ディレクトリ・サービスは、データを格納するための単一のフォーマットを定義するので、異なる格納フォーマットを有する別のアプリケーションが、単一のインターフェースを介してディレクトリ・サービスと通信することができる。単一のオープン・フォーマットが様々なベンダ間の相互運用性を可能にするので、他のベンダからのアプリケーションを、ディレクトリ・サービスを用いて簡単に共有することができる。さらに、単一フォーマットは、技術的な進歩の結果として、または単にオペレーション環境のサイズにスケールを合わせる必要性により生じる場合がある将来の成長を可能にするように簡単に拡張することができるように十分にフレキシブルになっている。
【０００６】
これらの利点を考えて、データ・ストアにアクセスするためにいくつかのディレクトリ・サービス技術が作り出されている。これらの方法の中に、ＬＤＡＰ（Ｌｉｇｈｔｗｅｉｇｈｔ Ｄｉｒｅｃｔｏｒｙ Ａｃｃｅｓｓ Ｐｒｏｔｏｃｏｌ）がある。ＬＤＡＰは、ディレクトリ・サービスにエントリを格納するためのモデルと、ディレクトリ・サービス内のこれらのエントリにアクセスするための方法を定義する。ＬＤＡＰは、ＴＣＰ／ＩＰ接続の使用によってディレクトリ・サービスへのアクセスを提供する。ディレクトリ・サービス内に格納されるデータには、ユーザ情報、アプリケーション更新、コンフィギュレーション情報が含まれるが、それらに限定されない。
【０００７】
エントリは、ＬＤＡＰ技術での基本的なデータ・ユニット・エントリである。エントリは、特定のリソースに関する永続的な情報を含むオブジェクトである。各エントリが、識別名（ＤＮ）と呼ばれる一意の識別子を有し、ディレクトリ情報ツリー（ＤＩＴ）に属する。ＬＤＡＰの各エントリは、属性の集合から構成され、各属性がエントリのいくつかの特定の特徴を定義する。各属性は、特定の値タイプと関連付けられている。
【０００８】
【発明が解決しようとする課題】
クライアント・サーバ環境でソフトウェアの分散を自動化する多くの試みがなされてきた。しかし、現在のソリューションは、サポート・プラットフォームをリブートする必要なくアクティブ・アプリケーションへのリアルタイムのアプリケーション更新およびソフトウェア分散を行う能力を欠いている。さらに、現在の自動化されたソフトウェア分散システムは、まず全てのアクティブ・アプリケーションをシャットダウンし、その後、プラットフォームをリブートしなければ、コンフィギュレーション・データのリアルタイム更新がサポートされない。したがって、ホスト・プラットフォームが他のアプリケーションをアクティブ状態で走らせたまま、ホスト・プラットフォームにアプリケーション更新およびコンフィギュレーションを効率よく分散する必要がある。
【０００９】
【課題を解決するための手段】
本発明は、アクティブ・クライアント・ポジションにあるアクティブ・アプリケーション・コンポーネントにリアルタイム更新を分散するためのシステム、方法および装置である。本発明による方法は、アクティブ・アプリケーション・コンポーネントを管理するプラットフォームとコンフィギュレーション・クライアントとの第１の通信接続を確立するステップと、コンフィギュレーション・クライアントとコンフィギュレーション・サーバとの第２の通信接続を確立するステップと、第２の通信接続を介してコンフィギュレーション・クライアントに更新を送るステップとを含むことができる。特に、各更新は、少なくとも１つの特定のアプリケーション・コンポーネントに対応することができる。続いて、プラットフォームに、更新が利用可能になっていることを通知することができる。そのような通知の受信に応答して、特定のアクティブ・アプリケーション・コンポーネントの実行を終了することができる。終了に続いて、各更新を、第１の通信接続を介してプラットフォームに送信することができ、特定のアプリケーション・コンポーネントに各更新を行うことができる。最後に、各更新されたアプリケーション・コンポーネントを再実行することができる。
【００１０】
本発明の一態様では、終了ステップは、通知に基づいて更新される特定の対応するアプリケーション・コンポーネントを識別するステップと、各識別されたアプリケーション・コンポーネントのインスタンスを終了するステップと、終了されたアプリケーション・コンポーネント・インスタンスと他のアプリケーション・コンポーネントとの相互依存を取り除くステップとを含むことができる。さらに、再実行ステップは、各更新されたアプリケーション・コンポーネントをインスタンス化するステップと、各更新されたアプリケーション・コンポーネント・インスタンスを初期化するステップとを含むことができる。さらに、初期化ステップは、コンフィギュレーション情報をコンフィギュレーション・クライアントに通信するステップと、コンフィギュレーション情報に基づいて各更新されたアプリケーション・コンポーネント内部の状況情報を再び初期化するステップとを含むことができる。最後に、方法は、アプリケーション・コンポーネント更新がコンフィギュレーション・サーバ内で利用可能になったときに更新をプラットフォームに通知する更新通知をコンフィギュレーション・クライアントに要求するステップを更に含むことができる。
【００１１】
本発明の別の態様では、方法は、第２の通信接続を介してコンフィギュレーション・クライアントに更新通知を伝送するステップを更に含むことができる。特に、更新通知は、アプリケーション・コンポーネント更新がコンフィギュレーション・サーバで利用可能になったときにその更新をコンフィギュレーション・クライアントに通知することができる。さらに、第２の接続を介して更新通知を伝送するステップが、ＵＤＰ（ｕｎｉｖｅｒｓａｌ ｄａｔａｇｒａｍ ｐｒｏｔｏｃｏｌ）に従って更新通知をパケット化するステップと、ＵＤＰパケットをコンフィギュレーション・クライアントに伝送するステップとを含み得る。最後に、本発明の別の態様では、コンフィギュレーション・サーバをＬＤＡＰサーバとすることができる。したがって、方法は、ＬＤＡＰサーバ内のＬＤＡＰベース・データベースにアプリケーション・コンポーネント更新を格納するステップを含むことができる。
【００１２】
本発明の方法の別の態様では、アクティブ・クライアント・ポジションで動作するアクティブ・アプリケーション・コンポーネントにリアルタイム更新を分散するための方法は、第１に、通信によってリンクされたコンフィギュレーション・クライアントからアクティブ・アプリケーション・コンポーネントへの更新を受信するステップであって、各更新が少なくとも１つの特定のアプリケーション・コンポーネントに対応するステップを含むことができる。第２に、受信された対応する更新を有する各特定のアクティブ・アプリケーション・コンポーネントの実行を終了することができる。第３に、対応するアプリケーション・コンポーネントに、受信された更新を行うことができる。最後に、更新されたアプリケーション・コンポーネントを再実行することができる。
【００１３】
終了ステップは、受信された対応する更新を有する各特定のアクティブ・アプリケーション・コンポーネントのインスタンスを終了するステップと、終了されたアプリケーション・コンポーネント・インスタンスと他のアプリケーション・コンポーネントとの相互依存を取り除くステップとを含むことができる。再実行ステップは、各更新されたアプリケーション・コンポーネントをインスタンス化するステップと、各更新されたアプリケーション・コンポーネント・インスタンスを初期化するステップとを含むことができる。最後に、方法は、コンフィギュレーション・クライアントからの更新通知にサブスクライブするステップを含むことができる。更新が利用可能になったとき、更新通知は、アプリケーション・コンポーネント更新をアクティブ・クライアント・ポジションに通知する。
【００１４】
アクティブ・クライアント・ポジションを更新するためのシステムは、アクティブ・アプリケーション・コンポーネントを管理するためのプラットフォームと、更新を格納するためのコンフィギュレーション・サーバと、コンフィギュレーション・サーバから更新を受信し、受信された更新をプラットフォームに通信するためのコンフィギュレーション・クライアントとを含むことができる。プラットフォームは、コンフィギュレーション・クライアントから更新を受信することができる。その後、プラットフォームは、アクティブ・アプリケーション・コンポーネントのうち選択されたものを終了することができる。次いで、プラットフォームは、終了されたアプリケーション・コンポーネントに、受信された更新を行うことができる。最後に、プラットフォームは、更新されたアプリケーション・コンポーネントをリロードすることができる。
【００１５】
本発明の一態様では、コンフィギュレーション・サーバをＬＤＡＰサーバとすることができる。本発明の別の態様によれば、アクティブ・アプリケーション・コンポーネントを、Ｊａｖａ（Ｒ）クラスのインスタンスにすることができる。本発明のさらに別の態様では、コンフィギュレーション・クライアントが、通知オブジェクトおよびリスナ・インターフェースを含むことができる。その結果、アクティブ・アプリケーション・コンポーネントを、リスナ・インターフェースを介してコンフィギュレーション・クライアントから更新通知を受信するように構成することができる。同様に、コンフィギュレーション・サーバも、更新オブジェクトおよびリスナ・インターフェースを含むことができる。同様に、コンフィギュレーション・クライアントは、リスナ・インターフェースを介してコンフィギュレーション・サーバから更新通知を受信するように構成することができる。
【００１６】
本明細書では、現在における好適な実施形態を図面に示しているが、本発明が、図示した構成および手段そのものには限定されないことを理解されたい。
【００１７】
【発明の実施の形態】
本発明は、クライアント・サーバ環境でのアクティブ・クライアント・ポジションへのリアルタイム・コンフィギュレーション更新およびソフトウェア分散を行うためのシステムである。詳細には、本発明のシステムは、各クライアント・ポジションをリブートする必要なくクライアント・ポジションにソフトウェアおよびコンフィギュレーション・データを分散し得る。図１は、本発明のシステムと共に使用するように構成されたネットワーク・アーキテクチャを例示する。図１に示されるように、アクティブ・クライアント・ポジションへのリアルタイム・コンフィギュレーション更新およびソフトウェア分散を行うためのシステムは、コンフィギュレーション・サーバ１０５と、コンピュータ通信ネットワーク１１５と、コンピュータ通信ネットワーク１１５を介してコンフィギュレーション・サーバ１０５に接続された複数のクライアント・ポジション１１０Ａ、１１０Ｂ、１１０Ｃとを含み得る。
【００１８】
各クライアント・ポジション１１０Ａ、１１０Ｂ、１１０Ｃがブートストラップするときに、コンフィギュレーション・サーバ１０５とクライアント・ポジション１１０Ａ、１１０Ｂ、１１０Ｃとの通信リンクが確立される。その後、クライアント・ポジション１１０Ａ、１１０Ｂ、１１０Ｃにインストールすべきアプリケーション・コンポーネントが識別するために、ブートされた各クライアント・ポジション１１０Ａ、１１０Ｂ、１１０Ｃが、コンフィギュレーション・サーバ１０５に問合せを行う。アプリケーション・コンポーネントを識別した後、各クライアント・ポジション１１０Ａ、１１０Ｂ、１１０Ｃは、識別したアプリケーション・コンポーネントをインストールし得る。
【００１９】
重要なことは、初期化の後に、それぞれのアプリケーション・コンポーネントが、そのアプリケーション・コンポーネントが任意の将来の更新を通知されることを要求し得ることである。更新がコンフィギュレーション・サーバ１０５で利用可能になったときに、クライアント・ポジション１１０Ａ、１１０Ｂ、１１０Ｃにメッセージをブロードキャストして、更新を通知することができる。それに応答して、影響を及ぼされたクライアント・ポジション１１０Ａ、１１０Ｂ、１１０Ｃとの間で再び通信リンクを確立し得る。その後、コンフィギュレーション・データおよび更新されたモジュールを含めた更新を、通信リンクを介して検索することができる。検索に続いて、更新を行うアプリケーション・コンポーネントを終了し、更新し、リロードすることができる。注目すべきは、リロードされると、アプリケーション・コンポーネントは更新を取り入れていることである。したがって、本発明のシステムは、アクティブ・クライアント・ポジションに存在するアプリケーション・コンポーネントのリアルタイムのアプリケーション更新を行うことができる。
【００２０】
図２に、ネットワーク２０６を介したコンフィギュレーション・サーバ２０１と、ある１つのクライアント・ポジション２０７との対話を示す。ネットワーク２０６は、ＬＡＮ、ＷＡＮ、データ・バス、または分散されたプロセスを通信によってリンクするための他の適切な手段であってよい。図に示すように、単一のクライアント・ポジション２０７が、コンフィギュレーション・クライアント２０２と、少なくとも１つのアプリケーション・コンポーネント２０５と、アプリケーション・コンポーネント２０５を管理するためのアプリケーション・プラットフォーム２０３と、アプリケーション・コンポーネント２０５をロードおよびアンロードするためのアプリケーション・ローダ２０４とを含むことができる。しかし、本発明は、この点に関して限定されず、コンフィギュレーション・クライアント２０２を、分散環境でクライアント・ポジション２０７の外部にあるアプリケーション・コンポーネントとして含めることもできる。
【００２１】
特に、本発明は、プラットフォーム２０３によって管理されるアプリケーション・コンポーネント２０５の数、およびアプリケーション・コンポーネント２０５を管理するためのプラットフォーム２０３の数に制限されない。さらに、ローダ２０４は、プラットフォーム２０３の一部として含まれていてもよいし、プラットフォーム２０３から独立して存在していてもよい。最後に、コンフィギュレーション・クライアント２０２を、アプリケーション・コンポーネント２０５とともにプラットフォーム２０３によって管理されるアプリケーション・コンポーネントとして含むことができる。コンフィギュレーション・サーバ２０１は、クライアント・ポジションに分散するためのコンフィギュレーション・データ２１４とソフトウェア・モジュール２１６との両方を格納することができる。具体的には、コンフィギュレーション・サーバ２０１は、ＬＤＡＰファイル・サーバ２１０にデータ２１４およびモジュール２１６を格納することができる。しかし、本発明はこの点に関して限定されない。任意の適切な手段、例えば、ＸＭＬファイル・サーバによって、データ２１４およびモジュール２１６を格納し、それらにアクセスすることができる。
【００２２】
図２に示されるように、コンフィギュレーション・クライアント２０２は、プラットフォーム２０３とは別個に管理することができる。さらに、本発明の一態様では、コンフィギュレーション・クライアント２０２をＪａｖａ（Ｒ）　Ｂｅａｎとして実装することができる。その結果、コンフィギュレーション・クライアント２０２のＪａｖａ（Ｒ）　Ｂｅａｎによる実装を、他のアプリケーションによって再使用することができる。注目すべきは、プラットフォーム２０３を、アプリケーション・コンポーネント２０５を管理するためのＪａｖａ（Ｒ）ベースのプラットフォームにし得ることである。したがって、プラットフォーム２０３は、プラットフォーム２０３にインストールされる様々なアプリケーション・コンポーネント２０５に関するオブジェクト・リクエスト・ブローカ（ＯＲＢ）として振舞うことができる。
【００２３】
動作時にクライアント・ポジション２０７がブートストラップすると、プラットフォーム２０３は、コンフィギュレーション・クライアント２０２を開始することができる。開始されると、コンフィギュレーション・クライアント２０２は、コンフィギュレーション・サーバ２０１のＵＲＬ（ｕｎｉｆｏｒｍ ｒｅｓｏｕｒｃｅ ｌｏｃａｔｏｒ）とクライアント・ポジション識別子のみを含むブートストラップ・プロパティ・ファイルを読むことができる。その後、コンフィギュレーション・クライアント２０２は、コンフィギュレーション・サーバ２０１への通信接続を確立することができる。詳細には、通信接続を、Ｊａｖａ（Ｒ）　Ｎａｍｉｎｇ　ａｎｄ　Ｄｉｒｅｃｔｏｒｙ　Ｉｎｔｅｒｆａｃｅを使用するＬＤＡＰサーバ（ＪＮＤＩ／ＬＤＡＰ）へのＬＤＡＰ接続にすることができる。しかし、本発明は、特定の通信接続に限定されない。任意の適切な通信接続で十分な場合がある。例えば、通信接続を、ＨＴＴＰを使用するフラットファイル・データベース対するＣＧＩインターフェースへのポイント・ツー・ポイントＴＣＰ／ＩＰ接続にすることができる。
【００２４】
通信接続が確立された後、コンフィギュレーション・クライアント２０２は、検索の引数としてポジション識別子を使用して、コンフィギュレーション・サーバ２０１の初期問合せを行うことができる。初期問合せに対する応答は、クライアント・ポジション２０７にインストールされるアプリケーション・コンポーネント２０５のリストを含む場合がある。その後、コンフィギュレーション・クライアント２０２は、リストを検査することができ、リスト中のアプリケーション・コンポーネント２０５それぞれに関する二次問合せを行うことができる。前と同様に、二次問合せに対する二次応答は、アプリケーション・コンポーネント２０５に関する実行可能なモジュールと、アプリケーション・コンポーネント２０５の実行に必要なサーバ・アドレスを含む場合があるコンフィギュレーション・データとを含むことができる。
【００２５】
二次応答は、プラットフォーム２０３で受信することができる。受信されると、アプリケーション・コンポーネント２０５が実行され得る。より詳細には、プラットフォーム２０３が、クライアント・ポジション２０７にインストールすべき各アプリケーション・コンポーネント２０５のリストを検索し得る。その後、適切なインスタンス化を行い、対応するアプリケーション・コンポーネント・インターフェースで定義される必要な初期化のメソッドを呼び出すことによって、各アプリケーション・コンポーネント２０５をインストールし得る。
【００２６】
初期化の間、各アプリケーション・コンポーネント２０５は、対応するコンフィギュレーション・データをコンフィギュレーション・クライアント２０２に要求することができる。コンフィギュレーション・データの例として、オプション設定、スクリーン定義、およびサーバ・アドレスを挙げることができる。受信すると、要求しているアプリケーション・コンポーネント２０５は、適切な初期化を行うことができる。各アプリケーション・コンポーネント２０５は、コンフィギュレーション・クライアント２０２が、アプリケーション・コンポーネント２０５によって利用される将来の更新をアプリケーション・コンポーネント２０５に通知することを要求することもできる。特に、本発明の一態様では、アプリケーション・コンポーネント通知機能が、オブザーバ・デザインパターンの実装を含むことができる。にもかかわらず、本発明は、この点に関して限定されない。データベース内のアプリケーション・コンポーネントのリストへの格納およびリスト中のアプリケーション・コンポーネントに送られる更新が受信される毎の選択されたアプリケーション・コンポーネントへの通知を含むアプリケーション・コンポーネント通知機能の他の実装で十分な場合もある。
【００２７】
更新がコンフィギュレーション・サーバ２０１で利用可能になったとき、更新が送られるアプリケーション・コンポーネント２０５を含むクライアント・ポジション２０７に更新メッセージを伝送することができる。しかし、本発明はこの点に関して限定されない。メッセージは、含まれているアプリケーション・コンポーネント２０５とは無関係にクライアント・ポジション２０７に送られるブロードキャスト・メッセージでもよいし、ＵＤＰナローキャスト・メッセージであってもよい。いずれにせよ、コンフィギュレーション・クライアント２０２は、更新メッセージを受信すると、コンフィギュレーション・サーバ２０１への新たな通信接続を確立することができる。前述したように、コンフィギュレーション・サーバ２０１がＬＤＡＰサーバである場合には、通信接続は、ＬＤＡＰ接続にすることができる。その後、更新されたコンフィギュレーション・データおよびソフトウェア・モジュールの形での更新を、通信接続を介してコンフィギュレーション・クライアント２０２に伝送することができる。
【００２８】
コンフィギュレーション・データおよびソフトウェア・モジュールが検索された後、コンフィギュレーション・クライアント２０２は、更新が受信されていることをプラットフォーム２０３に通知することができる。例えば、Ｊａｖａ（Ｒ）またはＣ＋＋による実装では、コンフィギュレーション・クライアント２０２は、更新の受信イベントを発生してそれをプラットフォーム２０３に伝送することができる。それに応答して、更新されたソフトウェア・モジュールが受信されている場合、プラットフォーム２０３は、更新が送られるアプリケーション・コンポーネントを識別することができる。更新が、ターゲットのアプリケーション・コンポーネント２０５の終了を必要としない更新されたコンフィギュレーション・データである場合、プラットフォーム２０３は、ターゲットのアプリケーション・コンポーネント２０５に更新を簡単に送ることができる。具体的には、コンフィギュレーション・クライアント２０２は、更新されたコンフィギュレーション・データが受信されていることをターゲットのアプリケーション・コンポーネント２０５に通知することができる。それに応答して、ターゲットのアプリケーション・コンポーネント２０５が、コンフィギュレーション・クライアント２０２から更新されたコンフィギュレーション・データを受信することができ、関連する内部状況を適切に再び初期化することができる。
【００２９】
逆に、更新が、アプリケーション・コンポーネント２０５の終了および再インスタンス化を必要とする更新されたソフトウェア・モジュールまたは更新されたコンフィギュレーション・データである場合は、プラットフォーム２０３は、ターゲットのアプリケーション・コンポーネント２０５への更新を行う前に、ターゲットのアプリケーション・コンポーネント２０５を終了する場合がある。本発明の一態様では、プラットフォーム２０３は、ターゲットのアプリケーション・コンポーネント２０５に関連付けられ、ターゲットのアプリケーション・コンポーネント２０５にインターフェースによって公開されている終了メソッドにアクセスすることによって、ターゲットのアプリケーション・コンポーネント２０５の実行を終了することができる。重要なことは、ターゲットのアプリケーション・コンポーネント２０５への更新を行うとき、２段階スタートアップおよびシャットダウン手法を行い得ることである。
【００３０】
この手法によって、アプリケーション・コンポーネント２０５は、他のアプリケーション・コンポーネント２０５のプログラム実行に必ずしも影響を及ぼさないで相互依存を取り除くことができる。アプリケーション・コンポーネント２０５が終了された後、プラットフォームは、更新に関連付けられたコンフィギュレーション・データに従って更新を行うことができる。その後、プラットフォーム２０３は、ターゲットのアプリケーション・コンポーネント２０５を再びインスタンス化することができる。さらに、プラットフォーム２０３は次いで、ターゲットのアプリケーション・コンポーネント２０５の初期化メソッドを呼び出すことができ、それによりターゲットのアプリケーション・コンポーネント２０５を適切にリロードすることができる。
【００３１】
次に図３および図４を見ると、アクティブ・クライアント・ポジションにリアルタイム更新を分散するように図１および図２のシステムを構成することができる通信シーケンスが例示されている。図１および図２と同様に、システムは、コンフィギュレーション・サーバ３０１と、コンフィギュレーション・クライアント３０２と、プラットフォーム３０３と、ローダ３０４と、アプリケーション・コンポーネント３０５Ａ〜３０５Ｃとを含み得る。さらに、システムは、ブートストラップ中にコンフィギュレーション・クライアント３０２を補助するためのブートストラップ・プローブ３０６を含むことができる。
【００３２】
ここで図３を参照すると、プラットフォーム３０３がブートストラップするとき、プラットフォーム３０３は、ローダ３０４およびコンフィギュレーション・クライアント３０２のインスタンス化３１０を行うことができる。次いで、プラットフォーム３０３は、コンフィギュレーション・クライアント３０２の特定のインスタンスを獲得するためのｇｅｔＩｎｓｔａｎｃｅ（）３１２、リスナ／オブザーバとしてプラットフォームを追加するようにコンフィギュレーション・クライアント３０２に命令するためのａｄｄＣｏｎｆｉｇＬｉｓｔｅｎｅｒ（ｓｔｒｉｎｇ）３１４、コンフィギュレーション・データを検索するためのｇｅｔＣｏｎｆｉｇ（ｓｔｒｉｎｇ）３１６など、コンフィギュレーション・クライアント３０２と共に一連のランタイム通信ルーチンを行うことができる。ブートストラップのこの初期化の段階が完了すると、コンフィギュレーション・クライアント３０２は、ブートストラップ・プロパティ・ファイルを読む３１８ことができ、そこからコンフィギュレーション・サーバ３０１に関するアドレスを抽出することができる。本発明の一態様では、ブートストラップ・プロパティ・ファイルは、コンフィギュレーション・サーバ３０１のＵＲＬとポジション識別子とを含み得る。
【００３３】
ブートストラップ・オペレーションが完了した後、コンフィギュレーション・クライアント３０２は、コンフィギュレーション・サーバ３０１への通信接続を確立することができる。詳細には、コンフィギュレーション・サーバ３０１がＬＤＡＰサーバである場合、コンフィギュレーション・クライアント３０２は、ＪＮＤＩ／ＬＤＡＰを使用してコンフィギュレーション・サーバ３０１へのＬＤＡＰ接続を確立することができる。その後、ｇｅｔＣｏｎｔｅｘｔ（）メソッド３２０をコンフィギュレーション・クライアント３０２が使用して、コンフィギュレーション・サーバ３０１のコンテキストを獲得することができる。次いで、コンフィギュレーション・クライアント３０２によってコンフィギュレーション・サーバ３０１に初期問合せを行い、クライアント・アプリケーション・コンポーネント・タイプのリストを検索することができる。初期問合せ３２２は、検索の引数としてコンフィギュレーション・クライアント３０２のポジション識別子を使用することができる。
【００３４】
初期問合せ３２２に応答して、コンフィギュレーション・サーバ３０１は、プラットフォーム３０３にインストールすべきクライアント・アプリケーション・コンポーネント・タイプのリストを含む応答を返すことができる。続いて、コンフィギュレーション・クライアント３０２は、クライアント・アプリケーション・コンポーネント・タイプのリストを循環することができ、定義されたアプリケーション・コンポーネント・タイプそれぞれに関する対応する二次問合せ３２８および３３２を発行して、関連するクライアント・コンフィギュレーション・データを検索することができる。二次問合せ３２８、３３２に対する応答は、アプリケーション・コンポーネント３０５Ａ、３０５Ｂ、３０５Ｃに関する実行可能モジュールを含み得る。この初期化の段階を完了するために、コンフィギュレーション・クライアント３０２からの応答のカタログ３３８をプラットフォーム３０３に返すことができる。
【００３５】
次に図４を参照すると、プラットフォーム３０３は、コンフィギュレーション・データを使用して、ｌｏａｄ（ＰｌａｔｆｏｒｍＩｎｔｅｒｆａｃｅ）メソッド３４０を用いてローダ３０４に適切なプラットフォーム・インターフェースをロードし、初期化することができる。初期化後、ローダ３０４は、コンフィギュレーション・クライアント３０２と共に一連の通信ルーチンを行うことができる。具体的には、ローダ３０４は、ｇｅｔＩｎｓｔａｎｃｅ（）メソッド３４２にアクセスして、コンフィギュレーション・クライアント３０２の特定のインスタンスを獲得することができる。さらに、ローダ３０４は、ａｄｄＣｏｎｆｉｇＬｉｓｔｅｎｅｒ（ｓｔｒｉｎｇ）３４４にアクセスして、リスナ／オブザーバとしてローダ３０４を追加するようにコンフィギュレーション・クライアント３０２に命令することができる。最後に、ローダ３０４は、ｇｅｔＣｏｎｆｉｇ（ｓｔｒｉｎｇ）メソッド３４６にアクセスして、インスタンス化するためにクラス名を含むコンフィギュレーション・データを検索することができる。
【００３６】
問合せ３２４、３２８、および３３２でコンフィギュレーション・サーバ３０１によって提供されるコンフィギュレーション・データにリストされたアプリケーション・コンポーネント３０５Ａ、３０５Ｂ、３０５Ｃの各クラス名に対して、以下のイベントのシーケンスを行うことができる。まず、ローダ３０４は、アプリケーション・コンポーネント３０５Ａ、３０５Ｂ、３０５Ｃをインスタンス化（３４８）することができ、ｓｅｔｕｐ（ｒｅｆｅｒｅｎｃｅ ｔｏ Ｐｌａｔｆｏｒｍ）メソッド３５０によって、プラットフォーム３０３への参照をアプリケーション・コンポーネント３０５Ａ、３０５Ｂ、３０５Ｃに提供することができる。その後、アプリケーション・コンポーネント３０５Ａ、３０５Ｂ、３０５Ｃを初期化することができる。
【００３７】
具体的には、上述した２段階スタートアップおよびシャットダウン手法によれば、初期化プロセスの第１の段階３５２が、ｓｅｔｕｐ（ｒｅｆｅｒｅｎｃｅ ｔｏ Ｐｌａｔｆｏｒｍ）メソッド３５０の完了に続く場合があり、アプリケーション・コンポーネント３０５Ａ、３０５Ｂ、３０５Ｃの既存のインスタンスがシャットダウンされ、アプリケーション・コンポーネント３０５Ａ、３０５Ｂ、３０５Ｃが更新される。その後、アプリケーション・コンポーネント３０５Ａ、３０５Ｂ、３０５Ｃを再びインスタンス化することができる。
【００３８】
初期化３５２の第１の段階に続いて、アプリケーション・コンポーネント３０５Ａ、３０５Ｂ、３０５Ｃは、コンフィギュレーション・クライアント３０２との通信リンクを確立することができる。詳細には、アプリケーション・コンポーネント３０５Ａ、３０５Ｂ、３０５Ｃは、ｇｅｔＩｎｓｔａｎｃｅ（）メソッド３５４にアクセスして、コンフィギュレーション・クライアント３０２の特定のインスタンスを獲得することができる。さらに、アプリケーション・コンポーネント３０５Ａ、３０５Ｂ、３０５Ｃは、ａｄｄＣｏｎｆｉｇＬｉｓｔｅｎｅｒ（ｓｔｒｉｎｇ）３５６にアクセスして、リスナ／オブザーバとしてアプリケーション・コンポーネント３０５Ａ、３０５Ｂ、３０５Ｃを追加するようにコンフィギュレーション・クライアント３０２に命令することができる。最後に、アプリケーション・コンポーネント３０５Ａ、３０５Ｂ、３０５Ｃは、ｇｅｔＣｏｎｆｉｇ（ｓｔｒｉｎｇ）メソッド３５８にアクセスして、アプリケーション・コンポーネント３０５Ａ、３０５Ｂ、３０５Ｃの特定のインスタンスに関するコンフィギュレーション・データを検索することができる。
【００３９】
その後、ｒｅｇｉｓｔｅｒ（）ファンクション３６０を使用して、アプリケーション・コンポーネント３０５Ａ、３０５Ｂ、３０５Ｃをプラットフォーム３０３に登録することができる。登録に続いて、ローダ３０４は、開始メソッド３６２を使用してアプリケーション・コンポーネント３０５Ａ、３０５Ｂ、３０５Ｃの実行を始めることができる。さらに、アプリケーション・コンポーネント３０５Ａ、３０５Ｂ、３０５Ｃは、ｓｕｂｓｃｒｉｂｅ（）メソッド３６４を使用して将来の更新に関してプラットフォーム３０３にサブスクライブすることができる。詳細には、ｓｕｂｓｃｒｉｂｅ（）メソッド３６４は、アプリケーション・コンポーネント３０５Ａ、３０５Ｂ、３０５Ｃに将来のコンポーネント更新またはコンフィギュレーション更新あるいはその両方を通知することを保証することができる。サブスクリプション・プロセスに続いて、アプリケーション・コンポーネント３０５Ａ、３０５Ｂ、３０５Ｃは、２段階スタートアップおよびシャットダウン・プロセスの第２かつ最終の初期化段階３６６を開始し得る。初期化が完了すると、ローダ３０４は、ａｃｔｉｖａｔｅ（）ファンクション３６８を使用して、更新されたアプリケーション・コンポーネント３０５Ａ、３０５Ｂ、３０５Ｃをアクティブ化することができる。
【００４０】
特に、本発明は、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組合せで実現することができる。本発明の方法は、１のコンピュータ・システムで集中化した形式で実現することも、様々な要素がいくつかの相互接続コンピュータ・システムにわたって広げられている分散化した形式で実現することもできる。本明細書で説明した方法を実施するのに適合した任意の種類のコンピュータ・システムまたは他の装置が適している。ハードウェアとソフトウェアの典型的な組合せは、ロードされて実行されるときに本明細書で説明した方法を実施するようにコンピュータ・システムを制御するコンピュータ・プログラムを備える汎用コンピュータ・システムである。
【００４１】
本発明は、本明細書で説明した方法の実施を可能にする全ての特徴を含むプログラム製品であって、コンピュータ・システム内にロードされたときにこれらの方法を実施することができるコンピュータ・プログラム製品に搭載され得る。この文脈において、コンピュータ・プログラム手段またはコンピュータ・プログラムは、直接的に、あるいはａ）別の言語、コード、または表記への変換とｂ）異なる材料形態での複製との一方または両方の後に、情報処理能力を有するシステムが特定の機能を行うように意図された一連の命令の任意の言語、コード、または表記での任意の表現を意味する。
【図面の簡単な説明】
【図１】
アクティブ・クライアント・ポジションへのリアルタイム・コンフィギュレーション更新およびソフトウェア分散を行うためのシステムを例示するハイレベルレベルの概略図である。
【図２】
図１のシステムで使用するネットワーク・アーキテクチャ図である。
【図３】
図２に例示したシステム内のアクティブ・クライアント・ポジションへのリアルタイム・コンフィギュレーション更新およびソフトウェア分散を行うプロセスを例示するＵＭＬシーケンス図である。
【図４】
図２に例示したシステム内のアクティブ・クライアント・ポジションへのリアルタイム・コンフィギュレーション更新およびソフトウェア分散を行うプロセスを例示するＵＭＬシーケンス図である。
【図１】
2004512592.tif 000003
【図２】
2004512592.tif 000004
【図３】
2004512592.tif 000005
【図４】
2004512592.tif 000006
【国際公開パンフレット】
2004512592.tif 000007
2004512592.tif 000008
2004512592.tif 000009
2004512592.tif 000010
2004512592.tif 000011
2004512592.tif 000012
2004512592.tif 000013
2004512592.tif 000014
2004512592.tif 000015
2004512592.tif 000016
2004512592.tif 000017
2004512592.tif 000018
2004512592.tif 000019
2004512592.tif 000020
2004512592.tif 000021
2004512592.tif 000022
2004512592.tif 000023
2004512592.tif 000024
2004512592.tif 000025
2004512592.tif 000026
2004512592.tif 000027
2004512592.tif 000028
2004512592.tif 000029
【国際公開パンフレット（コレクトバージョン）】
2004512592.tif 000030
2004512592.tif 000031
【国際調査報告】
2004512592.tif 000032
2004512592.tif 000033