(57)【要約】【課題】分散形オブジェクト指向システム用のクライアント側のローカルプロキシオブジェクトを供給するための方法と装置を提供すること。【解決手段】１つの形式では、Ｊａｖａ（登録商標）  ＲＭＩに準拠したシステム用の、また別の形式では、ＣＯＲＢＡに準拠したシステムに関するクライアント側のローカルプロキシオブジェクトを導入する。【選択図】図２
2004334883.tif 000002
【特許請求の範囲】
【請求項１】
クライアントとサーバとの間の通信処理をサポートするのに有用なシステムであって、本システムは分散形オブジェクト指向システムであり、
オブジェクト指向サーバと、
前記オブジェクト指向サーバと通信するように動作する遠隔インターフェースと、
前記オブジェクト指向サーバに関連するレジストリ・モジュールと、
前記クライアントのために情報を処理するように動作するローカルプロキシオブジェクトであって、前記オブジェクト指向サーバ、前記遠隔インターフェースおよび前記レジストリ・モジュールと通信するように動作するローカルプロキシオブジェクトと、
前記オブジェクト指向サーバに関する情報を記憶するように動作する記憶ファイルとを含むシステム。
【請求項２】
前記オブジェクト指向サーバが遠隔メソッド呼び出し（ＲＭＩ）サーバである、請求項１に記載のシステム。
【請求項３】
前記レジストリ・モジュールが遠隔メソッド呼び出し（ＲＭＩ）レジストリ・モジュールである、請求項１に記載のシステム。
【請求項４】
前記ローカルプロキシオブジェクトが遠隔メソッド呼び出し（ＲＭＩ）プロトコルに準拠している、請求項１に記載のシステム。
【請求項５】
前記オブジェクト指向サーバが共通オブジェクト・リクエスト・ブローカー・アーキテクチャ（ＣＯＲＢＡ）サーバである、請求項１に記載のシステム。
【請求項６】
前記レジストリ・モジュールが共通オブジェクト・リクエスト・ブローカー・アーキテクチャ（ＣＯＲＢＡ）ネームサービスである、請求項１に記載のシステム。
【請求項７】
前記ローカルプロキシオブジェクトが共通オブジェクト・リクエスト・ブローカー・アーキテクチャ（ＣＯＲＢＡ）プロトコルに準拠している、請求項１に記載のシステム。
【請求項８】
分散形オブジェクト指向システムにおいてクライアントとサーバとの間の通信をサポートするのに有用な方法であって、
主遠隔サーバを初期化する工程と、
前記主遠隔サーバをレジストリ・モジュールに登録する工程と、
前記主遠隔サーバにアクセスするためにクライアントによってローカルプロキシオブジェクトのインスタンスを生成する工程と、
前記ローカルプロキシオブジェクトによって前記主遠隔サーバ上の情報を得る工程と、
前記ローカルプロキシオブジェクトによって前記主遠隔サーバにコンタクトする工程と、
前記ローカルプロキシオブジェクトと前記主遠隔サーバとの間の接続を確立する工程と、
前記クライアントによって、前記ローカルプロキシオブジェクトを通じて前記主遠隔サーバからの情報を要求する工程と、
前記主遠隔サーバから前記ローカルプロキシオブジェクトへと前記情報を返送する工程と、
前記ローカルプロキシオブジェクトから前記クライアントへと前記情報を返送する工程とを含む方法。
【請求項９】
分散形オブジェクト指向システムにおいてクライアントとサーバとの間の通信をサポートするのに有用な方法であって、
主遠隔サーバを初期化する工程と、
前記主遠隔サーバをレジストリ・モジュールに登録する工程と、
前記主遠隔サーバにアクセスするために、クライアントによってローカルプロキシオブジェクトのインスタンスを生成する工程と、
前記ローカルプロキシオブジェクトによって前記主遠隔サーバ上の情報を得る工程と、
前記ローカルプロキシオブジェクトによって前記主遠隔サーバにコンタクトする工程と、
前記ローカルプロキシオブジェクトと前記主遠隔サーバとの間の接続を確立する工程と、
前記クライアントによって、前記ローカルプロキシオブジェクトを通じて前記主遠隔サーバからの情報を要求する工程と、
試験クライアントによって、前記ローカルプロキシオブジェクトを通じて警報事象を前記主遠隔サーバに登録する工程と、
登録に関するクライアントの情報を前記ローカルプロキシオブジェクトによってセーブする工程と、
サーバの故障および再スタートの場合に前記クライアントを自動的に再登録することを可能にするために、前記ローカルプロキシオブジェクトによって定期的に前記主遠隔主サーバにアクセスする工程とを含む方法。
【請求項１０】
分散形オブジェクト指向システムにおいてクライアントとサーバとの間の通信をサポートするのに有用な方法であって、
主遠隔サーバを初期化する工程と、
前記主遠隔サーバをレジストリ・モジュールに登録する工程と、
前記主遠隔サーバにアクセスするために、クライアントによってローカルプロキシオブジェクトのインスタンスを生成する工程と、
前記ローカルプロキシオブジェクトによって前記主遠隔サーバ上の情報を入手する工程と、
前記ローカルプロキシオブジェクトによって前記主遠隔サーバにコンタクトする工程と、
前記ローカルプロキシオブジェクトと前記主遠隔サーバとの間の接続を確立する工程とを含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散形オブジェクト指向システム用のクライアント側ローカルプロキシ（ｌｏｃａｌ  ｐｒｏｘｙ）オブジェクトを供給する方法および装置に関する。さらに特定すると本発明は、或る形式では、Ｊａｖａ（登録商標）  ＲＭＩプロトコルベースのシステム用のクライアント側ローカルプロキシオブジェクトの導入に関する。また別の形式では、本発明はＣｏｍｍｏｎ  Ｏｂｊｅｃｔ  Ｒｅｑｕｅｓｔ  Ｂｒｏｋｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＣＯＲＢＡ）プロトコルに適合可能である。
【背景技術】
【０００２】
本発明は特にＪａｖａ（登録商標）  ＲＭＩに準拠するシステム内でローカルプロキシを供給する技術を指向し、したがって特にそれに関連して説明されるであろうが、本発明が他の分野および用途に有用性を有する可能性があることは理解されるであろう。例えば上述したように、本発明はＣＯＲＢＡに準拠するシステムのようなローカルプロキシが所望されるその他の状況で使用される可能性がある。
【０００３】
背景として、分散形オブジェクト指向システムは多くのプロジェクト／プロダクトの共通部分になってきた。Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓから出されたＪａｖａ（登録商標）の遠隔メソッド呼び出し（ＲＭＩ）、Ｏｂｊｅｃｔ  Ｍａｎａｇｅｍｅｎｔ  Ｇｒｏｕｐ  Ｏｒｇａｎｉｚａｔｉｏｎから出された共通オブジェクト・リクエスト・ブローカー・アーキテクチャ（Ｃｏｍｍｏｎ  Ｏｂｊｅｃｔ  Ｒｅｑｕｅｓｔ  Ｂｒｏｋｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ，ＣＯＲＢＡ）、Ｗｏｒｌｄ−ｗｉｄｅ  Ｗｅｂ  Ｃｏｎｓｏｒｔｉｕｍ（Ｗ３Ｃ）から出されたＳｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ（ＳＯＡＰ）はオブジェクト指向の分散形システムを導入するのに使用される開放された標準技術のいくつかである。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ＲＭＩ（またはＣＯＲＢＡ）技術の使用は分散形オブジェクト指向技術の導入を簡素化する。これらの技術、ならびにこれらのタイプのシステムの構成要素のための付随するプログラミング言語と命令構造はよく知られている。それらは遠隔サーバ（ｒｅｍｏｔｅ  ｓｅｒｖｅｒ）によって供給される遠隔サービスの呼び出し、およびプロセスもしくは機械の境界を横切って送られるソフトウェア・オブジェクトの通過を可能にする。しかしながら、クライアント・アプリケーション側がＲＭＩまたはＣＯＲＢＡに準拠したサーバ／システムを使用することにはまだ複雑さが存在する。
【０００５】
例を挙げると、図１を参照すると既知のシステム１０が示されている。システム１０はクライアント１２と遠隔サーバ１４を含む。例示したように、サーバ１４はＲＭＩに準拠したサーバであって遠隔インターフェース１６、ＲＭＩレジストリ・モジュール１８、およびルータ２０と通信する。
【０００６】
そのようなシステムでは、導入に数多くの難題が存在する。例えば、クライアント１２はＲＭＩプロトコルを理解し、かつ遠隔インターフェース１６を導入することを要求される。さらに、ＲＭＩ準拠のサーバ１４に対する参照を得るために、クライアント１２はＲＭＩレジストリ・モジュール１８の位置を突きとめてアクセスすることを要求される。付け加えると、クライアント１２はすべての遠隔異常、例えばサーバ・ダウンのメッセージを扱う能力を持たなければならない。最後に、システム１０は、各々のクライアント・タイプがシステム内で機能できるように書かれており、かつそのように試験されたコードをすべてのクライアントが有することを要求するであろう。同様の難題がＣＯＲＢＡ準拠のシステムに存在する。したがって、さらに効率的な技術が望まれる。
本発明は上記で引用した難題などを解決するような新規的で改良された取り組み方を検討する。
【課題を解決するための手段】
【０００７】
分散形オブジェクト指向システム用のローカルプロキシオブジェクトを供給するための方法と装置が提供される。
本発明の一態様では、システムはオブジェクト指向サーバ、オブジェクト指向サーバと通信するように動作する遠隔インターフェース、オブジェクト指向サーバと結びついたレジストリ・モジュール、およびクライアントに関する情報を処理するように動作するローカルプロキシオブジェクトを含む。
【０００８】
本発明のまた別の態様では、ローカルプロキシオブジェクトはオブジェクト指向サーバ、遠隔インターフェース、およびレジストリと通信するように動作する。
本発明のまた別の態様では、プロパティ・ファイルがサーバのＩＰアドレス、ポート番号などといった情報を含むオブジェクト指向サーバに関する情報を記憶するように動作する。
本発明のまた別の態様では、システムは遠隔メソッド呼び出し（ＲＭＩ）に準拠する。
本発明のまた別の態様では、システムはＣｏｍｍｏｎ  Ｏｂｊｅｃｔ  Ｒｅｑｕｅｓｔ  Ｂｒｏｋｅｒ  Ａｒｃｈｉｔｅｃｔｕｒｅ（ＣＯＲＢＡ）に準拠する。
【０００９】
本発明のまた別の態様では、方法は主遠隔サーバを初期化する工程と、主遠隔サーバをレジストリ・モジュールに登録する工程と、主遠隔サーバにアクセスするためにクライアントによってローカルプロキシオブジェクトのインスタンスを（ｉｎｓｔａｎｔｉａｔｅ）生成する工程と、ローカルプロキシオブジェクトによって主遠隔サーバ上の情報を得る工程と、ローカルプロキシオブジェクトによって主遠隔サーバと接触する工程と、ローカルプロキシオブジェクトと主遠隔サーバの間の接続を確立する工程と、ローカルプロキシオブジェクトを通じてクライアントによって主遠隔サーバから情報を要求する工程と、主遠隔サーバからローカルプロキシオブジェクトへと情報を返送する工程と、ローカルプロキシオブジェクトからクライアントへと情報を返送する工程とを含む。
【００１０】
本発明のまた別の態様では、方法は主遠隔サーバを初期化する工程と、主遠隔サーバをレジストリ・モジュールに登録する工程と、主遠隔サーバにアクセスするためにクライアントによってローカルプロキシオブジェクトのインスタンスを生成する工程と、ローカルプロキシオブジェクトによって主遠隔サーバ上の情報を得る工程と、ローカルプロキシオブジェクトによって主遠隔サーバと接触する工程と、ローカルプロキシオブジェクトと主遠隔サーバの間の接続を確立する工程と、ローカルプロキシオブジェクトを通じてクライアントによって主遠隔サーバから情報を要求する工程と、ローカルプロキシオブジェクトを通じてクライアントによるいくつかの事象（例えば警報事象）を主遠隔サーバに登録する工程と、登録に関する情報をローカルプロキシオブジェクトによってセーブする工程と、サーバの故障および再スタートの場合にクライアントの自動再登録を可能にするためにローカルプロキシオブジェクトによって主遠隔サーバに定期的にアクセスする工程とを含む。
【００１１】
本発明のまた別の態様では、方法は主遠隔サーバを初期化する工程と、主遠隔サーバをレジストリ・モジュールに登録する工程と、主遠隔サーバにアクセスするためにクライアントによってローカルプロキシオブジェクトのインスタンスを生成する工程と、ローカルプロキシオブジェクトによって主遠隔サーバ上の情報を得る工程と、ローカルプロキシオブジェクトによって主遠隔サーバと接触する工程と、ローカルプロキシオブジェクトと主遠隔サーバの間の接続を確立する工程とを含む。
【００１２】
本発明の応用性のさらなる範囲は下記で与えられる詳細な説明から明らかになるであろう。しかしながら、本発明の好ましい実施形態を示しているが、詳細な説明と特定の範例が単に具体的例示の方式で与えられており、それゆえに当業者にとって本発明の精神と範囲の中で様々な変更および改造が明白になるであろうことは理解されるべきである。
【００１３】
本発明は装置の様々な部品類、および方法の複数工程の構造、配列、および組み合わせにあり、それにより、検討される複数の目的はこれ以降さらに充分に述べられ、特許請求項中で特に指摘され、かつ添付の図面類に例示されるように達成される。
【発明の効果】
【００１４】
本発明により、分散形オブジェクト指向システム用のローカルプロキシオブジェクトを供給するための方法及び装置が提供される。
【発明を実施するための最良の形態】
【００１５】
本発明によると、（例えばＲＭＩもしくはＣＯＲＢＡに準拠する）遠隔オブジェクト指向サーバにローカルプロキシオブジェクトを供給する技術はＲＭＩ／ＣＯＲＢＡに準拠したシステムを使用してクライアントの視点から複雑さを隠すために導入される。この手法の下で、ＲＭＩ／ＣＯＲＢＡサービスを使用するクライアントはＲＭＩ／ＣＯＲＢＡプロトコル、およびＲＭＩレジストリ（もしくはＣＯＲＢＡ名前付けサービス）、遠隔サーバを突きとめ、遠隔インターフェースを導入し、遠隔の異常を捕捉することなどに含まれる複雑さを理解することを要求されない。クライアントは単純に遠隔サーバのローカルプロキシオブジェクトをローカルオブジェクトとして処理および使用し、サーバによって供給されるすべての遠隔サービスに、それらがローカルメソッド（ｌｏｃａｌ  ｍｅｔｈｏｄ）であるかのようにアクセスすることが可能である。遠隔サーバのローカルプロキシオブジェクトを使用すると、クライアントはＲＭＩ／ＣＯＲＢＡ技術の使用に気付くことすらない。とりわけ、オブジェクト指向の規格を使用する複雑さがクライアントによって認識もしくは処理される必要がなくなる。
【００１６】
これはまた、サーバによって供給されるＲＭＩまたはＣＯＲＢＡに準拠したサービスにアクセスするためにクライアント／ユーザが書き込むことを必要とするであろうコードの量も削減する。インターフェースを検査する努力が最小限にされる。ロードバランシング（そこでは多数のサーバのインスタンスが利用可能）もやはりローカルプロキシオブジェクトの内部に設けられることが可能である。
【００１７】
ここで単に本発明の好ましい実施形態を例示する目的で示され、本発明を限定することを目的としない図面を参照すると、図２は本発明による範例のシステムの図を与えるものである。図示したように、ＲＭＩに準拠したクライアント・サーバのタイプのシステム１００が例示されている。場合によっては、図示したようにシステム１００はＣＯＲＢＡ準拠であることも可能である。ＲＭＩとＣＯＲＢＡプロトコルの間で、コードと命令構造に僅かの違いがある可能性はあるが、それらのような代替のシステムは本発明を導入する目的に関して実質的に同じ動作をし、かつ実質的に同じ類似構造にされている。
【００１８】
システム１００では、クライアントの処理側１０２とサーバの処理側１０４が導入されている。クライアントの処理側１０２には、クライアント１０８と通信するローカルプロキシオブジェクト１０６が設けられる。他のクライアント１１０もやはりローカルプロキシオブジェクト１０６と通信する可能性がある。
【００１９】
ローカルプロキシオブジェクト１０６はまた、遠隔サーバに関するＩＰアドレスおよびその他の情報を含むプロパティを記憶するためのデータベースのモジュール／ファイルを設けられる。ローカルプロキシオブジェクト１０６は、本発明に従ってローカルプロキシオブジェクトが遠隔サーバの処理側１０４と効率的に通信することを可能にするソフトウェアを含むかまたは有する。ローカルプロキシオブジェクトは、それ以外ではすべてのクライアント・タイプによってＲＭＩもしくはＣＯＲＢＡレジストリに接触するのに使用される正確に同じ段階または系統のコードを使用し、それにより、サーバのＩＰアドレス／機械名、ポート番号などを使用して遠隔サーバの位置を突きとめる。これは標準的な方式であり、これによってＲＭＩまたはＣＯＲＢＡに準拠したいかなるクライアントもレジストリ・モジュールと接触をして遠隔サーバの参照を入手する。さらに、ローカルプロキシオブジェクトが様々な遠隔メソッドを呼び出し、遠隔インターフェースを導入し、遠隔の異常を捕捉するのに使用するコードの系統もやはり、いわゆるローカルプロキシオブジェクトが存在しないときにクライアントのソフトウェアが使用したであろうものと異なることはない。事実上、これは下にあるプロトコル（例えばＲＭＩ／ＣＯＲＢＡ）の知識を必要とするソフトウェア・コードのタイプであってそれはここではこのローカルプロキシオブジェクト内部の或る場所に包み込まれている。ローカルプロキシオブジェクトが多様な環境中に存在し、かつ多様な形式をとる可能性があることは理解されるべきである。しかしながら、或る形式では、それはパーソナル・コンピュータもしくはパーソナル・デジタル・アシスタントといったクライアント装置に存在するソフトウェア・コードの形式をとる。
【００２０】
サーバの処理側１０４では、システムは遠隔インターフェース１２２、１２４および１２６と通信する主遠隔サーバ１２０を設けられる。主遠隔サーバ（もしくは遠隔サーバ）１２０もやはり主遠隔サーバによって管理されるシステムもしくはハードウェア、例えばルータ１２８と通信状態にある。サーバの処理側１０４はまた、この範例ではＲＭＩレジストリのようなレジストリ・モジュール１３０を設けられる。もちろん、もしもシステムがＲＭＩではなくてＣＯＲＢＡに準拠していれば、ＲＭＩレジストリ１３０はＣＯＲＢＡ名前付けサービスで置き換えられるであろう。
【００２１】
図２から分かり得るように、１３２で、順番に並べられたオブジェクトがクライアントのローカルプロキシオブジェクト１０６と主遠隔サーバ１２０の間で伝送されることが可能である。
【００２２】
もちろん、図２に示したシステムが様々なハードウェアおよびソフトウェアの技術を使用して導入されることは理解されるべきである。このシステムは多様な形式をとる可能性があるが本発明の範囲内に入る。とりわけ、前に参照したように、このシステムはＲＭＩもしくはＣＯＲＢＡに準拠した分散形システムあるいは同様の機能と構造を有する他のオブジェクト指向のシステムの両方の導入を可能にする形式をとることが可能である。
【００２３】
図示した範例では、これは（複数）クライアント１０８、１１０と主遠隔サーバ１２０が同じ組織によって展開されるシステムであることが可能である。あるいはこれは主遠隔サーバ１２０が別の独立した製造製品であって異なる組織もしくは第三者の製造元によって設計されるケースのシステムであってもよい。例えば、このケースでは、主遠隔サーバ１２０はネットワーク・ルータ１２８のようなシステムまたはハードウェアを管理する別個の独立型製品である。これらの要素は株式市場のようなアクセス可能な情報を所有するエンティティを付随することが可能である。クライアント１０８もしくは複数クライアント１１０はローカルプロキシオブジェクト１０６を使用して主遠隔サーバ１２０からルータ１２８の情報を回収することを要求することが可能である。その目的のために、主遠隔サーバ１２０は管理されたルータ１２８のＩｎｆｏ１、Ｉｎｆｏ２およびＡｌａｒｍＩｎｆｏを供給する。
【００２４】
付け加えると、主遠隔サーバ１２０はルータ・ハードウェアをモニタおよび管理している事実上バックエンド型の遠隔サーバである。主遠隔サーバ１２０は多数のインターフェース（遠隔インターフェース１、２、Ｎ）１２４と１２６によって記述される様々なサービスを導入する。簡素化するためにこれら多数のインターフェースは遠隔試験インターフェース１２２と呼ばれる別のインターフェースに集められる。
【００２５】
前に述べたように、本発明が無い場合に、これらのタスクを成し遂げるための技術はよく知られている。ｇｅｔＳｏｍｅＩｎｆｏ（）、ｇｅｔＡｌａｒｍＩｎｆｏ（）、ｇｅｔＳｏｍｅＩｎｆｏ２（）、およびｒｅｇｉｓｔｅｒＦｏｒＡｌａｒｍＥｖｅｎｔ（）といったコマンド／命令の使用が通常的である。
【００２６】
本発明の導入の前は、クライアントはよく知られていて適切なコマンドおよび／またはプログラミング言語の使用を通じて適切な接続を確立するためにサーバ側の構成要素と通信することを要求される。しかしながら本発明によると、以前はクライアントによって成し遂げられるように要求された機能とタスクをローカルプロキシオブジェクトが実行する。この点で、ローカルプロキシオブジェクト１０６はクライアントの処理１０２に存在するいわゆるローカルプロキシオブジェクトであるが、しかし本発明によると、それはクライアントに対する主遠隔サーバ１２０の代理をする。同様に、ローカルプロキシオブジェクトはｇｅｔＳｏｍｅＩｎｆｏ（）、ｇｅｔＡｌａｒｍＩｎｆｏ（）、ｇｅｔＳｏｍｅＩｎｆｏ２（）、およびｒｅｇｉｓｔｅｒＦｏｒＡｌａｒｍＥｖｅｎｔ（）といったコマンドを発令することが可能である。ローカルプロキシオブジェクト内のソフトウェアはこの方式で遠隔サーバ１２０のそれを補完する。クライアントのコードがこのローカルプロキシオブジェクト１０６のインスタンスを生成すると、それは主遠隔サーバ１２０によって供給されるローカルプロパティ・ファイルに頼ってサーバの機械名／ＩＰアドレス、ポート番号などといった主遠隔サーバ１２０の位置に関する情報を入手する。ローカルプロキシオブジェクト１０６はこの情報を使用してレジストリ・モジュール１３０を主遠隔サーバ１２０に無言で接触させ、かつ遠隔サーバの参照を入手する。主遠隔サーバ１２０を突きとめた後、ローカルプロキシオブジェクト１０６は主遠隔サーバ１２０との接続を無言で確立し、クライアントからメソッド呼び出しを受ける準備が整う。
【００２７】
クライアントに単純な局所呼び出しを供給するために、ローカルプロキシオブジェクト１０６は主遠隔サーバ１２０によって導入されるすべての遠隔インターフェース１２２、１２４および１２６もやはり導入する。しかしこの導入は「ダミーの」導入であってそこではローカルプロキシオブジェクト１０６は転送器としてはたらき、ＲＭＩプロトコルを使用してクライアントの呼び出しを主遠隔サーバ１２０へと転送する。それはバックエンド型サーバによって発される遠隔の異常を含むすべての応答を取り扱う。ローカルプロキシオブジェクト１０６は応答の中の受信情報をクライアント１０８へと転送し、遠隔の異常を変換してそれらを局所の異常としてクライアントへと転送する。
【００２８】
この方式で、主遠隔サーバ１２０へのアクセスを試みるクライアントのアプリケーションは、ＲＭＩプロトコルを使用する主遠隔サーバ１２０との通信に必要とされる複雑なバックエンド活動に気付くことが全くなくなる。クライアントは、まさに処理部１０２の内部のいかなる他の局所オブジェクトとも同様に、単純にローカルプロキシオブジェクト１０６を使用する。クライアント１０８はＲＭＩ（もしくはＣＯＲＢＡ）プロトコルを理解することを必要とせず、ＲＭＩレジストリ（もしくはＣＯＲＢＡネーミング（ｎａｍｉｎｇ）モジュール）１３０に接触し、あるいは遠隔インターフェース１２２、１２４と１２６、および異常を取り扱う。実に、システムはＲＭＩプロトコルからＣＯＲＢＡプロトコルへと変更されることが可能であり、その変更はクライアントに見えないものであろう。
【００２９】
多数の遠隔サーバのインスタンスが存在して同じセットのサービスを提供するケースでは、ロードバランシング機構はローカルプロキシオブジェクト１０６の中で中央に導入され、そこでそれは利用可能なサーバ上のロード情報のトラックを保持し、使用されていないかまたはそれほど使用されていないサーバのインスタンスへと新たに呼び出しを送る。本発明の目的と合致するいかなるロードバランシングまたはトラフィック管理の技術も使用される可能性がある。多数サーバ・インスタンスの利用可能性に関する情報はプロパティ・ファイル１１２内に保持される。
【００３０】
さらに、もしもクライアント１０８がサーバの処理側１０４上の何らかの特定の事象に関心を示し、そのような事象が生じるときに主遠隔サーバ１２０からの即時通知を必要とするならば、主遠隔サーバ１２０はクライアントがそのような事象を登録し、遠隔コールバックを受け取るように登録メカニズム（例えばｒｅｇｉｓｔｅｒＦｏｒＡｌａｒｍＥｖｅｎｔ）を供給する。ローカルプロキシオブジェクト１０６はこの事象および局所コールバックについて単純な登録メソッド（ｒｅｇｉｓｔｅｒＦｏｒＡｌａｒｍＥｖｅｎｔ）をクライアントに供給する。付け加えると、ローカルプロキシオブジェクト１０６は主遠隔サーバ１２０のトラックを保持しているので、それはサーバの故障を検出することが可能であり、主遠隔サーバ１２０が再スタートすると自動的にクライアントに代わって再登録を行うことが可能である。ローカルプロキシオブジェクト１０６はこの目的のためにクライアントのレジストリの局所リストを維持している。
【００３１】
図３を参照すると、順序もしくは呼のフロー図が本発明による方法を具体的に示している。図示したように、主遠隔サーバ１２０が取り上げられ、（２０２で）初期化する。その後、主遠隔サーバ１２０はそれ自体をＲＭＩレジストリ１３０に登録して（２０４で）そのサービスを公開する。
【００３２】
ある程度の時間後に、クライアント１０８は主遠隔サーバ１２０のサービスを使用することを決定する。しかしＲＭＩレジストリ１３０を突きとめ、遠隔サーバに接触するなどの困難を通って進むのではなく、クライアント１０８は単純にローカルプロキシオブジェクト１０６を使用する。同様に、クライアント１０８はローカルプロキシオブジェクト１０６を（２０６で）ローカルオブジェクトとしてインスタンス生成する（ｉｎｓｔａｔｉａｔｅ）。
【００３３】
ここでローカルプロキシオブジェクト１０６は遠隔サーバのＩＰアドレス／機械名について（２０８で）プロパティ・ファイル１１２にアクセスする。もしも主遠隔サーバ１２０の多数のインスタンスが利用可能であれば、ローカルプロキシオブジェクト１０６はそれが全部と接触し、ロードバランシングに関するロード情報のトラックを保持するように全部のインスタンスのＩＰアドレスを入手する。
【００３４】
次に、ローカルプロキシオブジェクト１０６はＲＭＩレジストリ１３０に接触して（２１０で）主遠隔サーバ１２０の参照を判定する。ローカルプロキシオブジェクト１０６は（２１２で）主遠隔サーバ１２０に接触し、主遠隔サーバ１２０との直接接続を確立し、クライアント１０８からの要求のための準備が整う。
【００３５】
クライアント１０８がサービス（例えばｇｅｔＳｏｍｅＩｎｆｏ（））を要求する場合、それは（２１４で）適切なアドレス空間でローカルプロキシオブジェクト１０６上のローカルメソッドのように行う。ローカルプロキシオブジェクト１０６は（２１６で）ＲＭＩを使用して主遠隔サーバ１２０に遠隔呼び出しを行う。
【００３６】
主遠隔サーバ１２０はクライアント１０８によって要求された情報を（２１８で）ローカルプロキシオブジェクト１０６へと返送する。ローカルプロキシオブジェクト１０６はその情報を（２２０で）クライアント１０８へと返送する。
【００３７】
また別の状況では、クライアント１０８は将来の警報通知のために（２２２で）ローカルプロキシオブジェクト１０６に登録することを希望する可能性がある。そのときローカルプロキシオブジェクト１０６はクライアント１０８に代わって（２２４で）主遠隔サーバ１２０に登録する。ローカルプロキシオブジェクト１０６は（２２６で）クライアントの登録情報をセーブする。
【００３８】
この処理では、ローカルプロキシオブジェクト１０６は（２２８で）定期的に「ピンギング（ｐｉｎｇｉｎｇ）」することによって主遠隔サーバ１２０のトラックを保持する。それはまた、もしも利用可能な多数のインスタンスが存在する場合、主遠隔サーバ１２０上のロード情報のトラックも保持することが可能である。もしも主遠隔サーバ１２０が破損して再スタートする場合、ローカルプロキシオブジェクト１０６は自動的かつ無言でクライアント１０８を主遠隔サーバ１２０に再登録する。
【００３９】
本発明を導入すると、書き込むべき複雑なコードの量が削減される。さらに、ＲＭＩプロトコルに準拠した第三者のソフトウェアの一体化が極めて単純かつ簡単になる。その上さらに、本発明はローカルプロキシデベロッパに付随する検査時間もやはり削減する。本システムはまた、ＲＭＩサーバのアクセス・コード全部がここで集中化され、変更がクライアントに見えないものにされ得るので拡張可能でかつ保守管理可能である。付け加えると、サーバの多数のインスタンスのケースでは、ロードバランシングはローカルプロキシによって取り扱われることが可能である。
【００４０】
以上の説明は単に本発明の特定の実施形態の開示を提供するものであり、それに限定する目的で意図されるものではない。同様に、本発明は上述の実施形態だけに限定されない。そうではなく、当業者が本発明の範囲内に入る別の選択肢となる実施形態を思いつく可能性があることが認識される。
【図面の簡単な説明】
【００４１】
【図１】従来のシステムの全体像を示す図である。
【図２】本発明の実施形態を具体的に示す図である。
【図３】本発明の動作の方法を例示する順序もしくは呼のフローを示す図である。
【図１】
2004334883.tif 000003
【図２】
2004334883.tif 000004
【図３】
2004334883.tif 000005