(57)【特許請求の範囲】
【請求項１】
分散オブジェクト環境でオブジェクトの管理を行う分散オブジェクト管理方法において、
呼び出し対象であるサーバオブジェクトのサーバオブジェクト情報を第１の情報処理装置のサーバオブジェクト情報取得部により要求するステップと、
要求されたサーバオブジェクトが複数登録されており、要求元がサーバオブジェクトである場合には、
要求元サーバオブジェクトと同じ識別情報を持つサーバオブジェクトが他にも存在し、かつ、要求元サーバオブジェクトの変更情報と他の上記同じ識別情報を持つサーバオブジェクトの変更情報を参照した結果要求元サーバオブジェクトのほうが古いと判断される場合には、要求されたサーバオブジェクトの内で変更情報の古いサーバオブジェクトのサーバオブジェクト情報を、またそれ以外の場合には、要求されたサーバオブジェクトの内で変更情報の新しいサーバオブジェクトのサーバオブジェクト情報を第２の情報処理装置のサーバオブジェクト情報選択部により選択して要求元へ返すステップと、
前記返されたサーバオブジェクト情報で示されるサーバオブジェクトを第１の情報処理装置のサーバオブジェクト呼出し部により呼び出すステップと、前記呼び出しによって要求された処理を第３の情報処理装置の要求処理部により行うステップとを有することを特徴とする分散オブジェクト管理方法。
【請求項２】
分散オブジェクト環境でオブジェクトの管理を行う分散オブジェクト管理システムにおいて、
呼び出し対象であるサーバオブジェクトのサーバオブジェクト情報を要求するサーバオブジェクト情報取得部及びサーバオブジェクト情報選択部から返されたサーバオブジェクト情報で示されるサーバオブジェクトを呼び出すサーバオブジェクト呼出し部を有する第１の情報処理装置と、
要求されたサーバオブジェクトが複数登録されており、要求元がサーバオブジェクトである場合には、要求元サーバオブジェクトと同じ識別情報を持つサーバオブジェクトが他にも存在し、かつ、要求元サーバオブジェクトの変更情報と他の上記同じ識別情報を持つサーバオブジェクトの変更情報を参照した結果要求元サーバオブジェクトのほうが古いと判断される場合には、要求されたサーバオブジェクトの内で変更情報の古いサーバオブジェクトのサーバオブジェクト情報を、またそれ以外の場合には、要求されたサーバオブジェクトの内で変更情報の新しいサーバオブジェクトのサーバオブジェクト情報を選択して要求元へ返すサーバオブジェクト情報選択部を有する第２の情報処理装置と、前記呼び出しによって要求された処理を行う要求処理部を有する第３の情報処理装置とを備えることを特徴とする分散オブジェクト管理システム。
【請求項３】
分散オブジェクト環境でオブジェクトの管理を行う分散オブジェクト管理システムとしてコンピュータを機能させる為のプログラムを記録したコンピュータ読み取り可能な記録媒体において、
呼び出し対象であるサーバオブジェクトのサーバオブジェクト情報を要求するサーバオブジェクト情報取得部と、
要求されたサーバオブジェクトが複数登録されており、要求元がサーバオブジェクトである場合には、要求元サーバオブジェクトと同じ識別情報を持つサーバオブジェクトが他にも存在し、かつ、要求元サーバオブジェクトの変更情報と他の上記同じ識別情報を持つサーバオブジェクトの変更情報を参照した結果要求元サーバオブジェクトのほうが古いと判断される場合には、要求されたサーバオブジェクトの内で変更情報の古いサーバオブジェクトのサーバオブジェクト情報を、またそれ以外の場合には、要求されたサーバオブジェクトの内で変更情報の新しいサーバオブジェクトのサーバオブジェクト情報を選択して要求元へ返すサーバオブジェクト情報選択部と、
前記返されたサーバオブジェクト情報で示されるサーバオブジェクトを呼び出すサーバオブジェクト呼出し部と、前記呼び出しによって要求された処理を行う要求処理部としてコンピュータを機能させる為のプログラムを記録したことを特徴とする記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は分散オブジェクト環境におけるオブジェクトの管理を行う分散オブジェクト管理システムに関し、特に連続運転を行う分散オブジェクト環境でオブジェクトを変更する分散オブジェクト管理システムに適用して有効な技術に関するものである。
【０００２】
【従来の技術】
近年、基幹業務を行う分散オブジェクト環境では２４時間３６５日運転を実現することが求められてきており、この様な連続運転を実現している分散オブジェクト環境でサーバオブジェクトを変更する場合には、サーバオブジェクトを動的に変更できることが必要不可欠である。
【０００３】
なお、サーバオブジェクトのバージョンアップについては、特開平１１−１５４１３８号公報に記載されている様に、サーバはロードモジュールのバックアップファイルを持ち、起動するサーバのロードモジュールの内部情報とバックアップファイルの内部情報をスタートアップ時にチェックする方法がある。
【０００４】
【発明が解決しようとする課題】
前記従来の分散オブジェクト環境では、同一サービスを提供する新しいサーバオブジェクトを起動しても、サーバオブジェクトのオブジェクト名やインタフェースが変わらない限り、同一サービスを提供する複数のサーバオブジェクトは等価に扱われる為、サーバオブジェクトの稼働中に変更を行うことは困難であるという問題がある。
【０００５】
また前記の特開平１１−１５４１３８号公報に記載されている方法では、バージョンアップが必要な場合、スタートアップを失敗として、この旨をクライアントに通知するため、サービスが一時的に中断されるという問題がある。更に、分散オブジェクト環境では複数のサーバオブジェクトが連携して運用されることもあるが、複数のサーバオブジェクト間でのバージョン整合性に対する配慮がなされていないという問題がある。
【０００６】
従って、分散オブジェクト環境において、サーバオブジェクトのサービスを継続して提供し、また複数のサーバオブジェクトが連携している場合には、これらサーバオブジェクト間の整合性を保持しながら、サーバオブジェクトの稼働中に変更できる必要がある。
【０００７】
本発明の目的は上記問題を解決し、稼働中にサーバオブジェクトを変更することが可能な技術を提供することにある。
【０００８】
【課題を解決するための手段】
本発明は、分散オブジェクト環境でオブジェクトの管理を行う分散オブジェクト管理システムにおいて、サーバオブジェクト情報が要求された場合に最新のサーバオブジェクトのサーバオブジェクト情報を要求元に返して最新のサーバオブジェクトが呼び出される様に制御することにより、呼び出されるサーバオブジェクトを古いものから最新のものへ変更するものである。
【０００９】
本発明の分散オブジェクト管理システムでは、サーバオブジェクトの新しさを示す変更情報を保持し、この変更情報の差違を判断することによってサーバオブジェクトの変更を識別することで、稼働中にオブジェクトを変更可能とする。
【００１０】
本発明では、要求元のクライアントオブジェクトやサーバオブジェクトから、呼び出し対象であるサーバオブジェクトのサーバオブジェクト情報が要求されると、前記要求されたサーバオブジェクトの変更情報を参照し、そのサーバオブジェクトの内で最新のサーバオブジェクトを選択して、そのサーバオブジェクト情報を要求元に返す。
【００１１】
最新のサーバオブジェクトのサーバオブジェクト情報を受け取った要求元では、前記返されたサーバオブジェクト情報で示されるサーバオブジェクトを呼び出して処理の実行を要求し、前記呼び出しによって呼び出されたサーバオブジェクトは、要求された処理を実行する。
【００１２】
また、サーバオブジェクトの名称やインタフェースを示す識別情報が同じであるサーバオブジェクトが複数存在する場合には、それらのサーバオブジェクトの変更情報を比較し、その変更情報の古いサーバオブジェクトを停止させる。
【００１３】
以上の様に本発明の分散オブジェクト管理システムによれば、サーバオブジェクト情報が要求された場合に最新のサーバオブジェクトのサーバオブジェクト情報を要求元に返して最新のサーバオブジェクトが呼び出される様に制御することにより、呼び出されるサーバオブジェクトを古いものから最新のものへ変更するので、稼働中にサーバオブジェクトを変更することが可能である。
【００１４】
【発明の実施の形態】
以下に稼働中にオブジェクトを変更する一実施形態の分散オブジェクト管理システムについて説明する。
【００１５】
図１は本実施形態の分散システムの構成を示す図である。図１に示す様に、本実施形態の分散システムは、マネジメントオブジェクト１０と、ファクトリオブジェクト２０と、クライアントオブジェクト３０と、既存サーバオブジェクトＡ４０と、既存サーバオブジェクトＡ４０から呼ばれる既存サーバオブジェクトＢ５０と、既存サーバオブジェクトＡ４０と既存サーバオブジェクトＢ５０を変更する為にファクトリオブジェクト２０より後から起動された新規サーバオブジェクトＡ６０と、新規サーバオブジェクトＢ７０と、また既存サーバオブジェクトＡ４０の起動（２３）及び登録（４１）でマネジメントオブジェクト１０とファクトリオブジェクト２０に渡される変更情報５２と、同様に新規サーバオブジェクトＢ７０の起動（２４）及び登録（７１）でマネジメントオブジェクト１０とファクトリオブジェクト２０に渡される変更情報７２とにより構成される。ここで各オブジェクトは、異なる情報処理装置で実行され、ネットワークを介して互いに通信を行って、起動及び停止の指示や登録及び検索に伴う情報の送受信を行うものとする。
【００１６】
本実施形態の分散システムにおいて、クライアントオブジェクト３０からの呼び出しによりサーバオブジェクトＡ及びサーバオブジェクトＢの処理を行う場合、まずファクトリオブジェクト２０により、マネジメントオブジェクト１０の起動（２１）、既存サーバオブジェクトＢ５０の起動（２２）、及び既存サーバオブジェクトＡ４０の起動（２３）を行っておく。ここでファクトリオブジェクト２０は、予め定義されたサーバオブジェクトの呼び出し順序に応じて、最後に呼び出されるサーバオブジェクトから順に、既存サーバオブジェクトＢ５０、既存サーバオブジェクトＡ４０の順序で起動を行う。
【００１７】
既存サーバオブジェクトＡ４０及び既存サーバオブジェクトＢ５０は、ファクトリオブジェクト２０により起動されると、そのサーバオブジェクト情報をマネジメントオブジェクト１０に送り、その位置を示すＩＰ(Internet Protocol)アドレス等の位置情報、サーバオブジェクトの名称やインタフェースを示す識別情報及びサーバオブジェクトの新しさを示す変更情報をマネジメントオブジェクト１０に登録する。前記変更情報は、同じサービスを提供する複数のサーバオブジェクトの新しさを識別する為のリビジョン情報等の情報であり、その分散システム内で決めることが可能な任意の情報である。ここでそのサーバオブジェクトが変更情報を送信する機能を有していない場合には、マネジメントオブジェクト１０が当該サーバオブジェクトの登録時の現在時刻等の情報を変更情報として登録を行うものとする。
【００１８】
以下に、この構成の分散システムでクライアントオブジェクト３０を実行したときの動作を示す。クライアントオブジェクト３０は、クライアントオブジェクト３０によって呼び出されるサーバオブジェクトＡのサーバオブジェクト情報の取得をマネジメントオブジェクト１０に依頼する。
【００１９】
マネジメントオブジェクト１０は、サーバオブジェクトＡのサーバオブジェクト情報の取得がクライアントオブジェクト３０から依頼されると、サーバオブジェクトＡのサーバオブジェクト情報を検索し、サーバオブジェクトＡとして現在起動されている既存サーバオブジェクトＡ４０のサーバオブジェクト情報を取得して要求元のクライアントオブジェクト３０へ返す（３１）。
【００２０】
クライアントオブジェクト３０は、マネジメントオブジェクト１０から既存サーバオブジェクトＡ４０のサーバオブジェクト情報が返されると、そのサーバオブジェクト情報を用いて既存サーバオブジェクトＡ４０を呼び出す（３２ａ）。
【００２１】
クライアントオブジェクト３０から呼び出された既存サーバオブジェクトＡ４０は、既存サーバオブジェクトＡ４０から呼び出されるサーバオブジェクトＢのサーバオブジェクト情報の取得をマネジメントオブジェクト１０に依頼する。
【００２２】
マネジメントオブジェクト１０は、サーバオブジェクトＢのサーバオブジェクト情報の取得が既存サーバオブジェクトＡ４０から依頼されると、サーバオブジェクトＢのサーバオブジェクト情報を検索し、サーバオブジェクトＢとして現在起動されている既存サーバオブジェクトＢ５０のサーバオブジェクト情報を取得して要求元の既存サーバオブジェクトＡ４０へ返す（４２）。
【００２３】
マネジメントオブジェクト１０から既存サーバオブジェクトＢ５０のサーバオブジェクト情報が返された既存サーバオブジェクトＡ４０は、そのサーバオブジェクト情報を用いて既存サーバオブジェクトＢ５０を呼び出し（４３）、クライアントオブジェクト３０から要求された処理を行う。
【００２４】
本実施形態の分散システムにおいて、既存サーバオブジェクトＡ４０と既存サーバオブジェクトＢ５０の変更を行う場合には、ファクトリオブジェクト２０により、新規サーバオブジェクトＢ７０の起動（２４）、新規サーバオブジェクトＡ６０の起動（２５）を行う。ここでファクトリオブジェクト２０は、予め定義されたサーバオブジェクトの呼び出し順序に応じて、最後に呼び出されるサーバオブジェクトから順に、新規サーバオブジェクトＢ７０、新規サーバオブジェクトＡ６０の順序で起動を行う。
【００２５】
この新しい構成の分散システムでクライアントオブジェクト３０を実行した場合、前記と同様にクライアントオブジェクト３０は、クライアントオブジェクト３０によって呼び出されるサーバオブジェクトＡのサーバオブジェクト情報の取得をマネジメントオブジェクト１０に依頼する。
【００２６】
マネジメントオブジェクト１０は、サーバオブジェクトＡのサーバオブジェクト情報の取得がクライアントオブジェクト３０から依頼されると、サーバオブジェクトＡのサーバオブジェクト情報を検索し、サーバオブジェクトＡとして現在起動されている既存サーバオブジェクトＡ４０と新規サーバオブジェクトＡ６０の変更情報を比較して新しいサーバオブジェクトＡである新規サーバオブジェクトＡ６０のサーバオブジェクト情報を取得して要求元のクライアントオブジェクト３０へ返す（３１）。
【００２７】
クライアントオブジェクト３０は、マネジメントオブジェクト１０から新規サーバオブジェクトＡ６０のサーバオブジェクト情報が返されると、そのサーバオブジェクト情報を用いて新規サーバオブジェクトＡ６０を呼び出す（３２ｂ）。
【００２８】
クライアントオブジェクト３０から呼び出された新規サーバオブジェクトＡ６０は、新規サーバオブジェクトＡ６０から呼び出されるサーバオブジェクトＢのサーバオブジェクト情報の取得をマネジメントオブジェクト１０に依頼する。
【００２９】
マネジメントオブジェクト１０は、サーバオブジェクトＢのサーバオブジェクト情報の取得が新規サーバオブジェクトＡ６０から依頼されると、サーバオブジェクトＢのサーバオブジェクト情報を検索し、サーバオブジェクトＢとして現在起動されている既存サーバオブジェクトＢ５０と新規サーバオブジェクトＢ７０の変更情報を比較して新しいサーバオブジェクトＢである新規サーバオブジェクトＢ７０のサーバオブジェクト情報を取得して要求元の既存サーバオブジェクトＡ４０へ返す（６２）。
【００３０】
マネジメントオブジェクト１０から新規サーバオブジェクトＢ７０のサーバオブジェクト情報が返された新規サーバオブジェクトＡ６０は、そのサーバオブジェクト情報を用いて新規サーバオブジェクトＢ７０を呼び出し（６３）、クライアントオブジェクト３０から要求された処理を行う。
【００３１】
また、新しい構成の分散システムでは、新規サーバオブジェクトＡ６０と新規サーバオブジェクトＢ７０が起動されると、ファクトリオブジェクト２０は、既存サーバオブジェクトＢ５０と既存サーバオブジェクトＡ４０で現在実行中の処理が終了次第、既存サーバオブジェクトＢ５０の停止（２６）と、既存サーバオブジェクトＡ４０の停止（２７）を行う。ここでファクトリオブジェクト２０は、予め定義されたサーバオブジェクトの呼び出し順序に応じて、最後に呼び出されるサーバオブジェクトから順に、既存サーバオブジェクトＢ５０、既存サーバオブジェクトＡ４０の順序で停止を行う。
【００３２】
図２は本実施形態のマネジメントオブジェクト１０の構成例を示す図である。図２に示す様に本実施形態のマネジメントオブジェクト１０は、サーバオブジェクト情報管理部１０ａと、サーバオブジェクト情報選択部１０ｂとを有している。
【００３３】
サーバオブジェクト情報管理部１０ａは、サーバオブジェクトからの登録要求を処理し、各サーバオブジェクトのサーバオブジェクト情報を管理する処理部である。サーバオブジェクト情報選択部１０ｂは、クライアントオブジェクト又はサーバオブジェクトから要求されたサーバオブジェクトの内で最新のサーバオブジェクトのサーバオブジェクト情報を選択して要求元に返す処理や、その要求元がサーバオブジェクトである場合に、要求元のサーバオブジェクトと同じかまたはそれよりも古い変更情報のサーバオブジェクトのサーバオブジェクト情報を選択して要求元に返す処理を行う処理部である。
【００３４】
マネジメントオブジェクト１０をサーバオブジェクト情報管理部１０ａ及びサーバオブジェクト情報選択部１０ｂとして機能させる為のプログラムは、ＣＤ−ＲＯＭ等の記録媒体に記録され磁気ディスク等に格納された後、メモリにロードされて実行されるものとする。なお前記プログラムを記録する記録媒体はＣＤ−ＲＯＭ以外の他の記録媒体でも良い。
【００３５】
図３は本実施形態のファクトリオブジェクト２０の構成例を示す図である。図３に示す様に本実施形態のファクトリオブジェクト２０はサーバオブジェクトライフサイクル管理部２０ａを有している。サーバオブジェクトライフサイクル管理部２０ａは、サーバオブジェクトの起動と停止を制御し、サーバオブジェクトの名称やインタフェースを示す識別情報が同じであるサーバオブジェクトが複数存在する場合に、その変更情報の古いサーバオブジェクトを停止させる処理部である。
【００３６】
ファクトリオブジェクト２０をサーバオブジェクトライフサイクル管理部２０ａとして機能させる為のプログラムは、ＣＤ−ＲＯＭ等の記録媒体に記録され磁気ディスク等に格納された後、メモリにロードされて実行されるものとする。なお前記プログラムを記録する記録媒体はＣＤ−ＲＯＭ以外の他の記録媒体でも良い。
【００３７】
図４は本実施形態のクライアントオブジェクト３０の構成例を示す図である。図４に示す様に本実施形態のクライアントオブジェクト３０は、サーバオブジェクト情報取得部３０ａと、サーバオブジェクト呼出し部３０ｂとを有している。
【００３８】
サーバオブジェクト情報取得部３０ａは、呼び出し対象のサーバオブジェクトのサーバオブジェクト情報をマネジメントオブジェクト１０に要求する処理部である。サーバオブジェクト呼出し部３０ｂは、マネジメントオブジェクト１０から取得したサーバオブジェクト情報で示されるサーバオブジェクトを呼び出す処理部である。
【００３９】
クライアントオブジェクト３０をサーバオブジェクト情報取得部３０ａ及びサーバオブジェクト呼出し部３０ｂとして機能させる為のプログラムは、ＣＤ−ＲＯＭ等の記録媒体に記録され磁気ディスク等に格納された後、メモリにロードされて実行されるものとする。なお前記プログラムを記録する記録媒体はＣＤ−ＲＯＭ以外の他の記録媒体でも良い。
【００４０】
図５は本実施形態のサーバオブジェクトの構成例を示す図である。図５に示す様に本実施形態のサーバオブジェクトは、サーバオブジェクト情報登録部４０ａと、要求処理部４０ｂと、他サーバオブジェクト情報取得部４０ｃと、他サーバオブジェクト呼出し部４０ｄとを有している。
【００４１】
サーバオブジェクト情報登録部４０ａは、マネジメントオブジェクト１０にサーバオブジェクトの登録を依頼し、そのサーバオブジェクトの新しさを示すリビジョン情報を変更情報としてマネジメントオブジェクト１０に送る処理部である。
【００４２】
要求処理部４０ｂは、クライアントオブジェクト又はサーバオブジェクトからの呼び出しによって要求された処理を行う処理部である。他サーバオブジェクト情報取得部４０ｃは、サーバオブジェクトが更に他のサーバオブジェクトを呼び出す場合にマネジメントオブジェクト１０に呼び出したい他のサーバオブジェクトを問合わせる処理部である。他サーバオブジェクト呼出し部４０ｄは、マネジメントオブジェクト１０から取得したサーバオブジェクト情報で示される他のサーバオブジェクトを呼び出す処理部である。
【００４３】
サーバオブジェクトをサーバオブジェクト情報登録部４０ａ、要求処理部４０ｂ、他サーバオブジェクト情報取得部４０ｃ及び他サーバオブジェクト呼出し部４０ｄとして機能させる為のプログラムは、ＣＤ−ＲＯＭ等の記録媒体に記録され磁気ディスク等に格納された後、メモリにロードされて実行されるものとする。なお前記プログラムを記録する記録媒体はＣＤ−ＲＯＭ以外の他の記録媒体でも良い。
【００４４】
図６は本実施形態のマネジメントオブジェクト１０がサーバオブジェクト情報管理部１０ａとサーバオブジェクト情報選択部１０ｂで使用するサーバオブジェクト登録情報の構成例を示す図である。図６に示す様に、マネジメントオブジェクト１０のサーバオブジェクト登録情報１００は、サーバオブジェクトの位置を格納する為の位置情報１０１と、サーバオブジェクトの名称やインタフェース情報等を格納する為の識別情報１０２と、サーバオブジェクトの変更を認識する為の情報を格納する変更情報１０３とにより構成される。
【００４５】
ここでマネジメントオブジェクト１０のサーバオブジェクト情報管理部１０ａは、サーバオブジェクトからそのサーバオブジェクトのリビジョンを示す変更情報が送られている場合にはそのリビジョン情報を変更情報１０３に登録し、サーバオブジェクトから変更情報が送られていない場合には変更情報が送られていないことを示すフラグと当該サーバオブジェクトの登録時の現在時刻を変更情報１０３に登録するものとする。
【００４６】
図７は本実施形態のファクトリオブジェクト２０のサーバオブジェクトライフサイクル管理部２０ａで使用するサーバオブジェクト管理情報の構成例を示す図である。図７に示す様に、ファクトリオブジェクト２０のサーバオブジェクト管理情報２００は、サーバオブジェクトの位置を格納する為の位置情報２０１と、サーバオブジェクトの名称やインタフェース情報等を格納する為の識別情報２０２と、サーバオブジェクトの変更を認識する為の情報を格納する変更情報２０３とにより構成される。
【００４７】
図８は本実施形態のマネジメントオブジェクト１０のサーバオブジェクト情報管理部１０ａの処理手順を示すフローチャートである。次に、前述の様に構成される本実施形態において、マネジメントオブジェクト１０のサーバオブジェクト情報管理部１０ａによるサーバオブジェクト（４０、５０、６０、７０）の登録処理（４１、５１、６１、６２）を図８のフローチャートを参照して説明する。
【００４８】
始めに、サーバオブジェクトの位置に関する情報を位置情報１０１に、サーバオブジェクトの名称やインタフェースに関する情報を識別情報１０２に格納する（ステップ３０１、３０２）。
【００４９】
ステップ３０３の処理で、サーバオブジェクトから変更情報５２または７２が渡されたか否かを判断して、変更情報５２または７２が渡された場合にはその変更情報５２または７２を変更情報１０３に格納し（ステップ３０４）、渡されていない場合には変更情報が渡されていないことを示すフラグと現在時刻を格納する（ステップ３０５）。
【００５０】
図９は本実施形態のマネジメントオブジェクト１０のサーバオブジェクト情報選択部１０ｂの処理手順を示すフローチャートである。次に、前述の様に構成される本実施形態において、マネジメントオブジェクト１０のサーバオブジェクト情報選択部１０ｂによるサーバオブジェクト（４０、５０、６０、７０）の選択処理（３１、４２、６２）を図９のフローチャートを参照して説明する。
【００５１】
始めに、ステップ４０１の処理で、要求元から渡されたサーバオブジェクトの情報から、サーバオブジェクト登録情報１００の識別情報１０２を検索して、選択するサーバオブジェクトが登録されていない場合には、要求元にサーバオブジェクトが登録されていない旨を返す（ステップ４０２）。
【００５２】
ステップ４０３の処理で、選択するサーバオブジェクトが複数登録されているか否かを判断して、複数登録されていない場合には、唯一登録されているサーバオブジェクトの位置情報１０１を選択して、要求元に返す（ステップ４０４、４１０）。
【００５３】
ステップ４０５の処理で、要求元もサーバオブジェクトとして登録されているか否かを判断して、登録されていない場合には、変更情報１０３の新しいサーバオブジェクトの位置情報１０１を選択して要求元に返す（ステップ４０６、４１０）。ここで選択対象のサーバオブジェクトの変更情報１０３全てにリビジョン情報が登録されている場合には最新のリビジョン情報のサーバオブジェクトを選択し、選択対象のサーバオブジェクトの変更情報１０３にリビジョン情報が登録されているものと変更情報が送られていないことを示すフラグが登録されているものとがある場合にはリビジョン情報が登録されているものから最新のリビジョン情報のサーバオブジェクトを選択し、選択対象のサーバオブジェクトの変更情報１０３全てに変更情報が送られていないことを示すフラグが登録されている場合には変更情報１０３中の時刻情報が最新のサーバオブジェクトを選択する。
【００５４】
ステップ４０７の処理で、要求元のサーバオブジェクトと同じ識別情報１０２を持つサーバオブジェクトが存在するか否かを判断して、他に同じ識別情報１０２を持つサーバオブジェクトが存在しない場合には、変更情報１０３の新しいサーバオブジェクトの位置情報１０１を選択して、要求元に返す（ステップ４０６、４１０）。
【００５５】
ステップ４０８の処理で、要求元のサーバオブジェクトの変更情報１０３と他の同じ識別情報１０２を持つサーバオブジェクトの変更情報１０３を参照して新しいサーバオブジェクトか否かを判断して、新しい場合には、変更情報１０３の新しいサーバオブジェクトの位置情報１０１を選択して、要求元に返し（ステップ４０６、４１０）、古い場合には、変更情報１０３の古いサーバオブジェクトの位置情報１０１を選択して、要求元に返す（ステップ４０９、４１０）。
【００５６】
図１０は本実施形態のファクトリオブジェクト２０のサーバオブジェクトライフサイクル管理部２０ａの処理手順を示すフローチャートである。次に、前述の様に構成される本実施形態において、ファクトリオブジェクト２０のサーバオブジェクトライフサイクル管理部２０ａによるサーバオブジェクト（４０、５０、６０、７０）の起動処理（２２、２３、２４、２５）と停止処理（２６、２７）を図１０のフローチャートを参照して説明する。
【００５７】
始めにファクトリオブジェクト２０のサーバオブジェクトライフサイクル管理部２０ａは、予め定義されたサーバオブジェクトの呼び出し順序に応じて、最後に呼び出されるサーバオブジェクトから順にサーバオブジェクトの起動を行い、サーバオブジェクトの位置に関する情報を位置情報２０１に、サーバオブジェクトの名称やインタフェースに関する情報を識別情報２０２に格納する（ステップ５０１〜５０３）。
【００５８】
ステップ５０４の処理で、サーバオブジェクトから変更情報５２または７２が渡されたか否かを判断して、変更情報５２または７２が渡された場合にはその変更情報５２または７２を変更情報２０３に格納し（ステップ５０５）、渡されていない場合には変更情報が渡されていないことを示すフラグと現在時刻を格納する（ステップ５０６）。
【００５９】
ステップ５０７の処理で、識別情報２０２が同じサーバオブジェクトが複数存在する（４０と６０、５０と７０）場合には、変更情報２０３を比較して、変更情報２０３の古いオブジェクト（４０、５０）が有れば停止させる（ステップ５０８）。ここでファクトリオブジェクト２０のサーバオブジェクトライフサイクル管理部２０ａは、古いオブジェクト（４０、５０）で現在実行中の処理が終了次第、予め定義されたサーバオブジェクトの呼び出し順序に応じて、最後に呼び出されるサーバオブジェクトから順に古いオブジェクト（４０、５０）の停止を行う。
【００６０】
前記の様に本実施形態の分散システムでは、マネジメントオブジェクトとファクトリオブジェクトが判断可能な情報を変更情報として保持し、この変更情報の差違によりサーバオブジェクトの変更を識別することで、稼働中にオブジェクトを変更することができる。
【００６１】
以上説明した様に本実施形態の分散オブジェクト管理システムによれば、サーバオブジェクト情報が要求された場合に最新のサーバオブジェクトのサーバオブジェクト情報を要求元に返して最新のサーバオブジェクトが呼び出される様に制御することにより、呼び出されるサーバオブジェクトを古いものから最新のものへ変更するので、稼働中にサーバオブジェクトを変更することが可能である。
【００６２】
【発明の効果】
本発明によればサーバオブジェクト情報が要求された場合に最新のサーバオブジェクトのサーバオブジェクト情報を要求元に返して最新のサーバオブジェクトが呼び出される様に制御することにより、呼び出されるサーバオブジェクトを古いものから最新のものへ変更するので、稼働中にサーバオブジェクトを変更することが可能である。
【図面の簡単な説明】
【図１】本実施形態の分散システムの構成を示す図である。
【図２】本実施形態のマネジメントオブジェクト１０の構成例を示す図である。
【図３】本実施形態のファクトリオブジェクト２０の構成例を示す図である。
【図４】本実施形態のクライアントオブジェクト３０の構成例を示す図である。
【図５】本実施形態のサーバオブジェクトの構成例を示す図である。
【図６】本実施形態のマネジメントオブジェクト１０がサーバオブジェクト情報管理部１０ａとサーバオブジェクト情報選択部１０ｂで使用するサーバオブジェクト登録情報の構成例を示す図である。
【図７】本実施形態のファクトリオブジェクト２０のサーバオブジェクトライフサイクル管理部２０ａで使用するサーバオブジェクト管理情報の構成例を示す図である。
【図８】本実施形態のマネジメントオブジェクト１０のサーバオブジェクト情報管理部１０ａの処理手順を示すフローチャートである。
【図９】本実施形態のマネジメントオブジェクト１０のサーバオブジェクト情報選択部１０ｂの処理手順を示すフローチャートである。
【図１０】本実施形態のファクトリオブジェクト２０のサーバオブジェクトライフサイクル管理部２０ａの処理手順を示すフローチャートである。
【符号の説明】
１０…マネジメントオブジェクト、２０…ファクトリオブジェクト、３０…クライアントオブジェクト、４０…既存サーバオブジェクトＡ、５０…既存サーバオブジェクトＢ、５２…変更情報、６０…新規サーバオブジェクトＡ、７０…新規サーバオブジェクトＢ、７２…変更情報、１０ａ…サーバオブジェクト情報管理部、１０ｂ…サーバオブジェクト情報選択部、２０ａ…サーバオブジェクトライフサイクル管理部、３０ａ…サーバオブジェクト情報取得部、３０ｂ…サーバオブジェクト呼出し部、４０ａ…サーバオブジェクト情報登録部、４０ｂ…要求処理部、４０ｃ…他サーバオブジェクト情報取得部、４０ｄ…他サーバオブジェクト呼出し部、１００…サーバオブジェクト登録情報、１０１…位置情報、１０２…識別情報、１０３…変更情報、２００…サーバオブジェクト管理情報、２０１…位置情報、２０２…識別情報、２０３…変更情報。
【図１】
0003904808.tif 000002
【図２】
0003904808.tif 000003
【図３】
0003904808.tif 000004
【図４】
0003904808.tif 000005
【図５】
0003904808.tif 000006
【図６】
0003904808.tif 000007
【図７】
0003904808.tif 000008
【図８】
0003904808.tif 000009
【図９】
0003904808.tif 000010
【図１０】
0003904808.tif 000011