(57)【特許請求の範囲】
【請求項１】
処理を要求するクライアントと、前記クライアントからの要求に応じて処理を行う複数のサーバとを備え、前記クライアントおよび前記サーバには通信を行うオブジェクトが配置される分散オブジェクト環境に適用される通信システムであって、
通信を行うオブジェクトが配置され、クライアントとサーバとの間の通信を中継する代理装置を備え、
クライアントは、自装置に配置されるオブジェクトに従って、要求する処理の情報を代理装置に送信し、
代理装置は、自装置に配置されるオブジェクトに従って、クライアントが要求する処理の情報を各サーバにブロードキャスト通信によって送信し、サーバから最初に受信した処理結果をクライアントに送信し、
各サーバは、自装置に配置されるオブジェクトに従って、代理装置から受信する情報に基づいて同じ処理を行い、前記処理の処理結果を代理装置に送信する
ことを特徴とする分散オブジェクト環境に適用される通信システム。
【請求項２】
通信を行うオブジェクトが配置され、クライアントが要求する各種処理と代理装置との対応関係を示す情報を予め保持する管理装置を備え、
クライアントは、自装置に配置されるオブジェクトに従って、要求する処理の情報を管理装置に送信し、管理装置から受信する情報に基づいて定められる代理装置に、要求する処理の情報を送信し、
管理装置は、自装置に配置されるオブジェクトに従って、クライアントが要求する処理に対応する代理装置を特定し、前記代理装置の情報をクライアントに送信する
請求項１記載の分散オブジェクト環境に適用される通信システム。
【請求項３】
処理を要求するクライアントと、前記クライアントからの要求に応じて処理を行う複数のサーバとを備え、前記クライアントおよび前記サーバには通信を行うオブジェクトが配置される分散オブジェクト環境に適用される通信システムであって、
通信を行うオブジェクトが配置され、クライアントとサーバとの間の通信を中継する代理装置と、
通信を行うオブジェクトが配置され、クライアントが要求する各種処理と代理装置との対応関係を示す情報を予め保持する管理装置とを備え、
クライアントは、自装置に配置されるオブジェクトに従って、要求する処理の情報を管理装置に送信し、管理装置から受信する情報に基づいて定められる代理装置に、要求する処理の情報を送信し、
管理装置は、自装置に配置されるオブジェクトに従って、クライアントが要求する処理に対応する代理装置を特定し、前記代理装置の情報をクライアントに送信し、
代理装置は、自装置に配置されるオブジェクトに従って、クライアントが要求する処理の情報を各サーバにブロードキャスト通信によって送信し、サーバから最初に受信した処理結果をクライアントに送信し、
各サーバは、自装置に配置されるオブジェクトに従って、代理装置から受信する情報に基づいて処理を行い、前記処理の処理結果を代理装置に送信する
ことを特徴とする分散オブジェクト環境に適用される通信システム。
【請求項４】
管理装置に配置されるオブジェクトは、共通オブジェクト・リクエスト・ブローカ・アーキテクチャに従って通信を行う
請求項２または請求項３記載の分散オブジェクト環境に適用される通信システム。
【請求項５】
管理装置は、各種処理と、処理を実行する複数のサーバにブロードキャスト通信を行う代理装置との対応関係を示す情報を予め保持する
請求項２から請求項４のうちのいずれか１項に記載の分散オブジェクト環境に適用される通信システム。
【請求項６】
クライアント、サーバ、および代理装置に配置されるオブジェクトは、共通オブジェクト・リクエスト・ブローカ・アーキテクチャに従って通信を行う
請求項１から請求項５のうちのいずれか１項に記載の分散オブジェクト環境に適用される通信システム。
【請求項７】
各サーバは、処理結果をブロードキャスト通信によって代理装置に送信する
請求項１から請求項６のうちのいずれか１項記載の分散オブジェクト環境に適用される通信システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ネットワーク上に分散配置されたオブジェクトが相互に通信を行う分散オブジェクト環境に適用される通信システムおよび通信プログラムに関し、特に、ＣＯＲＢＡ（Common Object Request Broker Architecture ：共通オブジェクト・リクエスト・ブローカ・アーキテクチャ）に基づいて通信を行う通信システムおよび通信プログラムに関する。
【０００２】
【従来の技術】
ネットワーク上に分散配置されたオブジェクトが相互に通信を行う分散オブジェクト環境において、オブジェクトが通信を行う機能をＯＲＢ（Object Request Broker ：オブジェクト・リクエスト・ブローカ）という。オブジェクト技術の標準化を図る団体であるＯＭＧ（Object Management Group ：オブジェクト・マネジメント・グループ）は、ＯＲＢの仕様として、ＣＯＲＢＡを規定している。また、ＯＭＧは、ＯＲＢ同士を相互に接続するためのプロトコルとして、ＩＩＯＰ（Internet Inter-ORB Protocol ）を規定している。ＣＯＲＢＡの中で規定されているＩＩＯＰでは、ＴＣＰ／ＩＰをベースとしてピア・ツー・ピア通信（Peer-to-Peer通信）を行う。
【０００３】
分散オブジェクト環境では、クライアントがサーバに対して処理を要求し、その応答を得る。また、ＩＩＯＰでは、ＴＣＰ／ＩＰをベースとするピア・ツー・ピア通信を行うので、通信に先立ち送受信間に論理的な通信回線（以下、コネクションと記す。）を設定し、通信終了後にコネクションを解放する。クライアントとサーバは、コネクションを確立したならば、一連の要求および応答の送受信を終えて通信が終了するまでそのコネクションを利用し続けなければならない。
【０００４】
また、ＣＯＲＢＡでは、オブジェクトを特定するための情報を格納するフォーマットとしてＩＯＲ（Interoperable Object Reference）を定めている。各オブジェクトは、ＩＯＲに記載される情報によって、他のオブジェクトとのコネクションを確立する。
【０００５】
図４は、従来の分散オブジェクト環境に適用される通信システムの一例を示すブロック図である。図４に示す通信システムはサーバを多重化し、障害発生時にはサーバを切り替えることにより、信頼性を高めている。
【０００６】
各装置の記憶装置１０３，１１３，１２３，１３３は、それぞれオブジェクト１０４、管理オブジェクト１１４、サービスオブジェクト１２４、１３４を保持する。各ＣＰＵ１０２，１１２，１２２，１３２は、それぞれオブジェクト１０４，１１４，１２４，１３４に従い処理を実行する。各オブジェクトは、ＣＯＲＢＡおよびＩＩＯＰに従って通信を行う。
【０００７】
各装置のインタフェース部１０５，１１５，１２５，１３５は、通信ネットワーク１５０を介して他の装置と情報を送受信する。インタフェース部１０５，１１５は、通信ネットワーク１５０に接続される。各サーバ１２１，１３１のインタフェース部１２５，１３５は、経路切替機１４０に接続される。経路切替機１４０は、各サーバ１２１，１３１のいずれかを通信ネットワーク１５０に接続する。経路切替機１４０は、オペレータの手動操作によって、通信ネットワーク１５０に接続するサーバを切り替える。
【０００８】
各サーバ１２１，１３１には、同一のＩＰアドレスが割り当てられる。しかし、経路切替機１４０は、いずれか一つのサーバのみを通信ネットワーク１５０に接続させるので、通信ネットワーク１５０においてＩＰアドレスの重複による不整合は生じない。
また、各サーバ１２１，１３１の内部状態やコンテンツは、同一性が保たれ、いずれのサーバも同一の処理を行う。
【０００９】
クライアント１０１（オブジェクト１０４）は、ユーザから指示された処理をいずれかのサービスオブジェクトに要求する。サービスオブジェクト１２４，１３４は、クライアント１０１が要求する処理を行う。管理オブジェクト１１４は、クライアント１０１が要求する処理を実行するサービスオブジェクトを定める。
【００１０】
図５は、従来の通信システムにおいて、クライアントが処理を要求し、サーバが要求された処理を実行する際の動作の一例を示す流れ図である。クライアント１０１は、ユーザの操作に基づき、要求する処理の情報を管理オブジェクト１１４に送信する（ステップＳ１７１）。この情報の中には、実行する関数名が含まれる。
【００１１】
続いて、管理オブジェクト１１４は、その関数を実行するサービスオブジェクトを決定する（ステップＳ１７２）。管理オブジェクト１１４は、各処理（各関数）と、その関数を実行するサービスオブジェクトを備えるサーバのＩＰアドレスとの対応関係を示す情報を、予め保持する。管理オブジェクト１１４は、ステップＳ１７１において受信した情報から関数名を抽出し、その関数名に対応するＩＰアドレスを特定する。管理オブジェクト１１４は、ＩＰアドレスを特定することにより、クライアント１０１が要求する処理を実行するサービスオブジェクトを決定する。
【００１２】
例えば、サービスオブジェクト１２４，１３４が「関数Ａ」を実行するのであれば、管理オブジェクト１１４は、サーバ１２１，１３１に共通のＩＰアドレスと、関数Ａとの対応を示す情報を予め保持する。そして、ステップＳ１７１において「関数Ａ」の要求があったときに、サーバ１２１，１３１に共通のＩＰアドレスを特定する。このＩＰアドレスを特定することにより、クライアント１０１が要求する処理（関数Ａ）を実行するのはサービスオブジェクト１２４またはサービスオブジェクト１３４であると決定される。ただし、どちらのサービスオブジェクトがクライアント１０１から処理要求を受信するのかは、経路切替機１４０の状態によって定まる。
【００１３】
続いて、管理オブジェクト１１４は、決定したサービスオブジェクトの情報をクライアント１０１に送信する（ステップＳ１７３）。管理オブジェクトは、サービスオブジェクトの情報として、ステップＳ１７２において特定したＩＰアドレスの情報をクライアント１０１に送信する。管理オブジェクト１１４は、ＩＯＲを使ってＩＰアドレスを送信する。
【００１４】
クライアント１０１は、ＩＯＲの中からＩＰアドレスの情報を取り出し、サービスオブジェクトとのコネクションを確立する（ステップＳ１７４）。クライアント１０１は、ＴＣＰ／ＩＰのピア・ツー・ピア通信により、ＩＰアドレスによって特定されるサーバ（サービスオブジェクト）とのコネクションを確立する。経路切替機１４０は、同一のＩＰアドレスを割り当てられた複数のサーバのうち、いずれか一つのみを通信ネットワーク１５０に接続するので、ステップＳ１７４では、経路切替機１４０によって接続されるサーバとの間でコネクションが確立される。例えば、図４に示す場合には、クライアント１０１とサーバ１２１との間でコネクションが確立される。続いて、クライアント１０１は、そのサーバ１２１に、要求する処理の情報を送信する（ステップＳ１７５）。
【００１５】
サービスオブジェクト１２４が要求された処理を行っているときに、サーバ１２１に障害が生じたならば、クライアント１０１は、通信エラーを検出し、オペレータに出力する（ステップＳ１７６）。サーバ１２１の障害を確認したオペレータは、経路切替機１４０を操作し、通信ネットワーク１５０に接続するサーバをサーバ１３１に切り替える（ステップＳ１７７）。ＩＩＯＰでは、このような切替を行う場合、クライアント１０１とサービスオブジェクト１２４との間のコネクションは破棄される。その後、クライアント１０１は、サービスオブジェクト１３４とのコネクションを確立し（ステップＳ１７８）、サービスオブジェクト１３４に処理を要求する。ステップＳ１７８において、通信システムは、ステップＳ１７１〜Ｓ１７４と同様の動作を行う。
【００１６】
【発明が解決しようとする課題】
このようにクライアントとサーバとが通信を行っている間にサーバに障害が発生したならば、処理を行うサーバを切り替える。しかし、ＩＩＯＰでは、一旦確保されたコネクションは、一連の処理を終えて通信が終了するまで利用されなければならず、コネクションを解放する前に経路を切り替えることになると、処理途中であってもクライアントとサーバとの間のコネクションは破棄される。そのため、サーバを切り替えたならば、再度コネクションを確立しなければならない。例えば、サーバ１２１に障害が発生し、サーバ１３１に切り替える場合、通信システムは、ステップＳ１７１〜Ｓ１７４と同様の処理を繰り返さなければならない。
【００１７】
また、オペレータは、クライアント１０１が通信エラーを検出することによって、障害の発生を認識し、経路切替機１４０を操作する。しかし、通信エラーの発生はＯＳ（Operating System）に依存するので、通信エラーの検出の可否や検出のタイミングは、ＯＳに依存することになる。したがって、ＯＳの種類によって、オペレータが障害の発生を認識するタイミングが遅れることがある。
【００１８】
また最近は、障害により装置が停止すると業務に多大な支障を与えるようなシステムにもＣＯＲＢＡが適用されようとしている。例えば、銀行のＡＴＭ（Automatic Teller's Machine）、企業内の受発注システム等にＣＯＲＢＡが適用されようとしている。このようなシステムでは、通信エラーの発生を契機にコネクションを再確立する必要のない通信システムを実現することが好ましい。
【００１９】
また、従来の通信システムでは、ディスクのミラー装置等（図示せず。）によって各サーバ１２１，１３１のコンテンツ等の同一性を確保しているが、このような特別な機器を用いずに各サーバの同一性を確保できる方が好ましい。
【００２０】
本発明は、サーバに障害が発生した場合であってもコネクションの破棄や再確立を行う必要がなく、また、応答時間等のパフォーマンスが低下しない分散オブジェクト環境に適用される通信システムおよび通信プログラムを提供することを目的とする。また、本発明は、特別な機器を用いなくても各サーバの内部状態やコンテンツ等の同一性を確保できる通信システムおよび通信プログラムを提供することを目的とする。
【００２１】
【課題を解決するための手段】
本発明による分散オブジェクト環境に適用される通信システムは、処理を要求するクライアントと、前記クライアントからの要求に応じて処理を行う複数のサーバとを備え、前記クライアントおよび前記サーバには通信を行うオブジェクトが配置される分散オブジェクト環境に適用される通信システムであって、通信を行うオブジェクトが配置され、クライアントとサーバとの間の通信を中継する代理装置を備え、クライアントは、自装置に配置されるオブジェクトに従って、要求する処理の情報を代理装置に送信し、代理装置は、自装置に配置されるオブジェクトに従って、クライアントが要求する処理の情報を各サーバにブロードキャスト通信によって送信し、サーバから最初に受信した処理結果をクライアントに送信し、各サーバは、自装置に配置されるオブジェクトに従って、代理装置から受信する情報に基づいて同じ処理を行い、前記処理の処理結果を代理装置に送信することを特徴とする。
【００２３】
また、通信を行うオブジェクトが配置され、クライアントが要求する各種処理と代理装置との対応関係を示す情報を予め保持する管理装置を備え、クライアントは、自装置に配置されるオブジェクトに従って、要求する処理の情報を管理装置に送信し、管理装置から受信する情報に基づいて定められる代理装置に、要求する処理の情報を送信し、管理装置は、自装置に配置されるオブジェクトに従って、クライアントが要求する処理に対応する代理装置を特定し、前記代理装置の情報をクライアントに送信する。
また、本発明による分散オブジェクト環境に適用される通信システムは、処理を要求するクライアントと、前記クライアントからの要求に応じて処理を行う複数のサーバとを備え、前記クライアントおよび前記サーバには通信を行うオブジェクトが配置される分散オブジェクト環境に適用される通信システムであって、通信を行うオブジェクトが配置され、クライアントとサーバとの間の通信を中継する代理装置と、通信を行うオブジェクトが配置され、クライアントが要求する各種処理と代理装置との対応関係を示す情報を予め保持する管理装置とを備え、クライアントは、自装置に配置されるオブジェクトに従って、要求する処理の情報を管理装置に送信し、管理装置から受信する情報に基づいて定められる代理装置に、要求する処理の情報を送信し、管理装置は、自装置に配置されるオブジェクトに従って、クライアントが要求する処理に対応する代理装置を特定し、前記代理装置の情報をクライアントに送信し、代理装置は、自装置に配置されるオブジェクトに従って、クライアントが要求する処理の情報を各サーバにブロードキャスト通信によって送信し、サーバから最初に受信した処理結果をクライアントに送信し、各サーバは、自装置に配置されるオブジェクトに従って、代理装置から受信する情報に基づいて処理を行い、前記処理の処理結果を代理装置に送信することを特徴とする。
【００２４】
管理装置に配置されるオブジェクトは、共通オブジェクト・リクエスト・ブローカ・アーキテクチャに従って通信を行う
【００２５】
管理装置は、各種処理と、処理を実行する複数のサーバにブロードキャスト通信を行う代理装置との対応関係を示す情報を予め保持する。
また、クライアント、サーバ、および代理装置に配置されるオブジェクトは、共通オブジェクト・リクエスト・ブローカ・アーキテクチャに従って通信を行う。
また、各サーバは、処理結果をブロードキャスト通信によって代理装置に送信する。
【００２７】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
図１は、本発明による分散オブジェクト環境に適用される通信システムの実施の一形態を示すブロック図である。本例の通信システムでは、多重化された複数のサーバ２１，３１が通信ネットワーク５０に接続される。すなわち、サーバ２１，３１は、同じ処理を行うことができる。なお、多重化されるサーバの台数は２台に限定されない。
【００２８】
クライアント１、管理装置１１、サーバ２１，３１、代理装置４１は、通信ネットワーク５０を介して相互に接続される。各サーバ２１，３１は、それぞれ独自のＩＰアドレスを割り当てられ、いずれも通信ネットワーク５０に接続される。各装置の記憶装置３，１３，２３，３３，４３は、それぞれオブジェクト４、管理オブジェクト１４、サービスオブジェクト２４、３４、代理オブジェクト４４を保持する。各ＣＰＵ２，１２，２２，３２，４２は、それぞれ記憶装置が記憶するプログラム（オブジェクト４，１４，２４，３４，４４）に従い処理を実行する。各装置のインタフェース部５，１５，２５，３５，４５は、通信ネットワーク５０に接続され、他の装置と情報の送受信を行う。各オブジェクト４，１４，２４，３４，４４は、ＣＯＲＢＡおよびＩＩＯＰに従って通信を行う。
サーバ２１，３１の内部状態やコンテンツ等は、同一である。
【００２９】
また、クライアント１は、ユーザから指示が入力される入力装置（図示せず。）および情報を出力する出力装置（図示せず。）を備える。入力装置は、例えば、キーボードやマウス等であり、出力装置は、例えば、ディスプレイ装置である。
【００３０】
クライアント１（オブジェクト４）は、ユーザから指示された処理の情報を代理オブジェクト４４に送信する。サービスオブジェクト２４，３４は、クライアント１が要求する処理を実行する。
【００３１】
代理オブジェクト４４は、クライアント１と各サービスオブジェクト２４，３４との間で行われる処理要求および応答の通信を中継する。具体的には、代理オブジェクト４４は、クライアント１が要求する処理の情報をクライアント１から受信して、その情報をブロードキャスト通信（ｂｒｏａｄｃａｓｔ通信）によって各サービスオブジェクト２４，３４に送信する。また、いずれかのサービスオブジェクトから処理結果を受信して、その処理結果をクライアント１に送信する。
【００３２】
管理オブジェクト１４は、クライアント１からの要求に応じて代理オブジェクト４４を一意に定める。図１では、代理装置を１台のみ示しているが、代理装置の台数は複数であってもよい。
図２は、通信システムが複数の代理装置を備える場合の例を示す説明図である。サーバ５６，５７は多重化されたサーバであり、内部状態やコンテンツ等は同一である。また、サーバ２１，３１とサーバ５６，５７は異なる処理を行う。代理装置４１，５５がブロードキャスト通信を行うセグメントは予め定められ、各代理装置は、そのセグメント内のサービスオブジェクト（サーバ）に処理の要求を送信する。例えば、代理装置４１は、サーバ２１，３１を含むセグメントにブロードキャスト通信を行い、代理装置５５は、サーバ５６，５７を含むセグメントにブロードキャスト通信を行う。
【００３３】
次に、動作について説明する。
図３は、クライアントが処理を要求し、サーバが要求された処理を実行する際の動作の一例を示す流れ図である。クライアント１は、ユーザの操作に基づき、要求する処理の情報を管理オブジェクト１４に送信する（ステップＳ７１）。ステップＳ７１において、クライアント１は、要求する処理の情報の中に実行すべき関数名を含める。
【００３４】
管理オブジェクト１４は、ステップＳ７１において関数名を含む情報を受信したならば、その関数を実行するサービスオブジェクトとクライアントとの間の通信を中継する代理オブジェクトを決定する（ステップＳ７２）。管理オブジェクト１４は、各処理（各関数）と、各代理装置との対応関係を示す情報を予め保持する。この情報は、各関数と各代理装置のＩＰアドレスとの対応関係を示す。管理オブジェクト１４は、ステップＳ７１において受信した情報から関数名を抽出し、その関数名に対応するＩＰアドレスを特定する。管理オブジェクト１４は、代理装置のＩＰアドレスを特定することにより、代理オブジェクトを決定する。
【００３５】
管理オブジェクト１４が保持する関数とＩＰアドレスとの対応関係を示す情報について説明する。管理オブジェクト１４は、各関数と、その関数を実行する複数のサーバにブロードキャスト通信を行う代理装置のＩＰアドレスとを対応させ、その対応関係を示す情報を保持する。例えば、サービスオブジェクト２４，３４が「関数Ａ」を実行するのであれば、管理オブジェクト１４は、サーバ２１，３１に対してブロードキャスト通信で処理を要求する代理装置４１のＩＰアドレスと、「関数Ａ」とを対応させて、その対応情報を保持する。そして、ステップＳ７１において「関数Ａ」の要求を受信したならば、関数Ａに対応する代理装置４１のＩＰアドレスを特定する。
【００３６】
管理オブジェクト１４は、ステップＳ７２で決定した代理オブジェクト４４の情報をクライアント１に送信する（ステップＳ７３）。管理オブジェクト１４は、代理オブジェクト４４の情報として、ステップＳ７２において特定したＩＰアドレスの情報をクライアント１に送信する。管理オブジェクト１１は、ＩＯＲを使ってＩＰアドレスを送信する。
【００３７】
クライアント１は、ＩＯＲの中から代理オブジェクト４４（代理装置４１）のＩＰアドレスの情報を取り出し、そのＩＰアドレスによって特定される代理オブジェクトとのコネクションを確立する（ステップＳ７４）。クライアント１は、ＴＣＰ／ＩＰのピア・ツー・ピア通信により、代理オブジェクトとのコネクションを確立する。
【００３８】
続いて、クライアント１は、要求する処理の情報を代理オブジェクト４４に送信する（ステップＳ７５）。ステップＳ７５において送受信される情報では、送信元の情報としてクライアント１のＩＰアドレスが設定され、送信先の情報として代理装置４１のＩＰアドレスが設定される。具体的には、送受信される情報のＩＰヘッダに、送信元の情報としてクライアント１のＩＰアドレスが書き込まれ、送信先の情報として代理装置４１のＩＰアドレスが書き込まれる。また、ＩＩＯＰにも送信元のアドレスが入れられる。
【００３９】
代理オブジェクト４４は、ステップＳ７５において受信した、クライアント１が要求する処理の情報を、ＴＣＰ／ＩＰのブロードキャスト通信によって、各サービスオブジェクト２４，３４に送信する（ステップＳ７６）。ブロードキャスト通信を行う際、代理オブジェクト４４は、クライアント１から受信した情報の送信元および送信先の情報を変換し、各サービスオブジェクト２４，３４に送信する。すなわち、ＩＰヘッダにおける送信元の情報をクライアント１のＩＰアドレスから、代理装置４１のＩＰアドレスに変換し、送信先の情報を代理装置４１のＩＰアドレスから、ブロードキャスト通信に用いるアドレスに変換する。また、ＩＩＯＰに入っている送信元のアドレスも、クライアント１のアドレスから代理装置４１のアドレスに変換する。
【００４０】
ステップＳ７６ではブロードキャスト通信を行うので、代理装置４１は、一つのサービスオブジェクトにのみ処理を要求するのではなく、複数のサービスオブジェクト２４，３４に処理を要求する。なお、図３では、代理オブジェクト４４がサービスオブジェクト２４，３４に処理を要求しているが、代理オブジェクト４４が送信する情報は、サービスオブジェクト２４，３４だけでなく、同一セグメント内の他の装置にも送信される。
【００４１】
サービスオブジェクト２４，３４は、それぞれ要求された処理を行う。この動作に伴い、サーバ２１，３１の内部状態やコンテンツは変化する。しかし、各サービスオブジェクト２４，３４は、ともに同じ処理要求に従って同一の処理を行うので、サーバ２１，３１の内部状態やコンテンツの変化の仕方は同一になる。
【００４２】
サービスオブジェクト２４，３４は、それぞれ処理結果を代理装置４１に送信する（ステップＳ７７，Ｓ７８）。各サービスオブジェクト２４，３４は、ＴＣＰ／ＩＰのブロードキャスト通信により、処理結果を送信する。各サービスオブジェクトが送信する情報のＩＰヘッダには、送信元の情報としてサーバのＩＰアドレスが書き込まれ、送信先の情報としてブロードキャスト通信に用いるアドレスが書き込まれる。また、ＩＩＯＰにも送信元となるサーバのアドレスが入っている。なお、図３では、サービスオブジェクト２４，３４が代理オブジェクト４４に情報を送信しているが、ブロードキャスト通信であるので、代理オブジェクト４４だけでなく同一セグメント内の他の装置にも送信する。
【００４３】
代理オブジェクト４４は、各サービスオブジェクトから処理結果を受信し、最初に処理結果を受信した後に、その処理結果をクライアント１に送信する（ステップＳ７９）。代理オブジェクト４４は、ＴＣＰ／ＩＰのピア・ツー・ピア通信によって、処理結果をクライアント１に送信する。図３に示す例では、サービスオブジェクト２４は、サービスオブジェクト３４よりも先に処理結果を代理オブジェクト４４に送信する。従って、ステップＳ７６の後、最初に受信する処理結果は、サービスオブジェクト２４が実行した処理の結果である。よって、代理オブジェクト４４は、サービスオブジェクト２４から処理結果を受信した後に、その処理結果をクライアント１に送信する。
【００４４】
クライアント１に処理結果を送信する際、代理オブジェクト４４は、サービスオブジェクト２４から受信した情報の送信元および送信先の情報を変換し、クライアント１に送信する。すなわち、ＩＰヘッダにおいて、送信元の情報をサーバ２１のＩＰアドレスから、代理装置４１のＩＰアドレスに変換し、送信先の情報をブロードキャスト通信に用いられたアドレスから、クライアント１のＩＰアドレスに変換する。また、ＩＩＯＰに入っている送信元のアドレスも、サーバ２１のアドレスからクライアント１のアドレスに変換する。
【００４５】
サーバ２１に障害が発生した場合、代理オブジェクト４４は、サービスオブジェクト２４から処理結果を受信できなくなる。この場合、サービスオブジェクト３４からの処理結果が最初に受信する処理結果となる。したがって、代理オブジェクト４４は、サービスオブジェクト３４から受信した処理結果をクライアント１に送信する。一方、サーバ３１に障害が発生した場合には、サービスオブジェクト２４からの処理結果が最初に受信する処理結果となる。この場合、代理オブジェクト４４は、サービスオブジェクト２４から受信した処理結果をクライアント１に送信する。
【００４６】
以上のように、本発明による通信システムでは、代理オブジェクト４４が、多重化したサービスオブジェクト２４，３４に対して処理要求を送信し、最初に返送される処理結果をクライアント１に送信する。したがって、一部のサーバに障害が発生した場合であっても、他のサーバから処理結果を受信することができ、信頼性が向上する。
【００４７】
そして、通信システム内で経路を切り替えなくても、障害が発生していないサーバから受信する処理結果をクライアント１に送信することができる。経路を切り替える必要がないので、一旦確立したコネクションを破棄して新たにコネクションを確立し直す必要がない。したがって、障害発生時の通信システムの動作を少なくすることができる。
【００４８】
さらに、経路切替機が不要となり、クライアント１が障害発生に伴う通信エラーを認識して、経路切替機を操作する必要もなくなる。したがって、ＯＳの種類によって、オペレータが障害の発生を認識するタイミングが遅れることがあるという問題が生じなくなる。
【００４９】
また、本発明による通信システムでは、代理オブジェクト４４が、同一の処理要求を各サービスオブジェクト２４，３４に送信し、各サービスオブジェクト２４，３４は同一の処理を行う。そのため、要求された動作に伴う各サーバ２１，３１の内部状態やコンテンツ等の変化の仕方は同一である。したがって、ディスクのミラー装置等の特別な機器を用いなくても、各サーバの内部状態等の同一性を保つことができる。
【００５０】
また、一部のサーバに、代理オブジェクト４４から要求された処理とは別の処理が発生し、代理オブジェクト４４に対する応答時間がかかってしまう場合もある。しかし、このような場合であっても、代理オブジェクト４４は、最初に受信した処理結果をクライアント１に送信する。したがって、一部のサービスオブジェクトの応答が遅れても、パフォーマンスの低下を防止することができる。
【００５１】
【発明の効果】
本発明によれば、通信を行うオブジェクトが配置され、クライアントとサーバとの間の通信を中継する代理装置を備え、クライアントは、自装置に配置されるオブジェクトに従って、要求する処理の情報を代理装置に送信し、代理装置は、自装置に配置されるオブジェクトに従って、クライアントが要求する処理の情報を各サーバにブロードキャスト通信によって送信し、サーバから最初に受信した処理結果をクライアントに送信し、各サーバは、自装置に配置されるオブジェクトに従って、代理装置から受信する情報に基づいて同じ処理を行い、前記処理の処理結果を代理装置に送信する。また、通信を行うオブジェクトが配置され、クライアントとサーバとの間の通信を中継する代理装置と、通信を行うオブジェクトが配置され、クライアントが要求する各種処理と代理装置との対応関係を示す情報を予め保持する管理装置とを備え、クライアントは、自装置に配置されるオブジェクトに従って、要求する処理の情報を管理装置に送信し、管理装置から受信する情報に基づいて定められる代理装置に、要求する処理の情報を送信し、管理装置は、自装置に配置されるオブジェクトに従って、クライアントが要求する処理に対応する代理装置を特定し、前記代理装置の情報をクライアントに送信し、代理装置は、自装置に配置されるオブジェクトに従って、クライアントが要求する処理の情報を各サーバにブロードキャスト通信によって送信し、サーバから最初に受信した処理結果をクライアントに送信し、各サーバは、自装置に配置されるオブジェクトに従って、代理装置から受信する情報に基づいて処理を行い、前記処理の処理結果を代理装置に送信する。従って、一部のサーバに障害が発生した場合であっても、他のサーバから処理結果を受信することができる。そして、一旦確立したコネクションを破棄して新たにコネクションを確立する必要がないので、障害発生時の動作を少なくすることができ、また、障害発生時のパフォーマンスの低下を防止することができる。また、ディスクのミラー装置等を用いなくても、サーバのコンテンツ等の同一性を確保することができる。さらに、ＯＳの種類によってオペレータが障害の発生を認識するタイミングが遅れることがあるという問題も解決することができる。
【図面の簡単な説明】
【図１】  本発明による分散オブジェクト環境に適用される通信システムの実施の一形態を示すブロック図である。
【図２】  通信システムが複数の代理装置を備える場合の例を示す説明図である。
【図３】  クライアントが処理を要求し、サーバが要求された処理を実行する際の動作の一例を示す流れ図である。
【図４】  従来の分散オブジェクト環境に適用される通信システムの一例を示すブロック図である。
【図５】  従来の通信システムにおいて、クライアントが処理を要求し、サーバが要求された処理を実行する際の動作の一例を示す流れ図である。
【符号の説明】
１  クライアント
２  ＣＰＵ
３  記憶装置
４  オブジェクト
１１  管理装置
１２  ＣＰＵ
１３  記憶装置
１４  管理オブジェクト
２１，３１  サーバ
２２，３２  ＣＰＵ
２３，３３  記憶装置
２４，３４  サービスオブジェクト
４１  代理装置
４２  ＣＰＵ
４３  記憶装置
４４  代理プロジェクト
５０  通信ネットワーク
【図１】
0003690303.tif 000002
【図２】
0003690303.tif 000003
【図３】
0003690303.tif 000004
【図４】
0003690303.tif 000005
【図５】
0003690303.tif 000006