(57)【要約】    【課題】  障害等によるサーバ切り替えに要するオーバヘッドを最小限とするオブジェクト指向のネットワーク分散型コンピューティングシステム、その負荷分散装置及びサーバを提供する。    【解決手段】  クライアント１０からのリクエストによりサーバ３１、３２に備えられるサーバオブジェクト３１３、３２３のメソッドを呼び出し、クライアントに対するサービスを提供するオブジェクト指向のネットワーク分散型コンピューティングシステムであり、クライアント１０とサーバ３１、３２間でサーバ切り替えによる負荷分散を行う負荷分散装置２０に、サーバ上のオブジェクト毎に、メソッドの呼び出しにより生じるオブジェクトの内部状態の差分を蓄積し、サーバの代替サーバが蓄積された差分に基づいてオブジェクトの内部状態を復元する。【選択図】      図３
2005259080.tif 000002
【特許請求の範囲】
【請求項１】
クライアントからのリクエストによりサーバに備えられるオブジェクトのメソッドを呼び出し、前記クライアントに対するサービスを提供するオブジェクト指向のネットワーク分散型コンピューティングシステムであって、
前記クライアントとサーバ間でサーバ切り替えによる負荷分散を行う負荷分散装置に、前記サーバ上のオブジェクト毎に、前記メソッドの呼び出しにより生じる前記オブジェクトの内部状態の差分を蓄積し、
前記サーバの代替サーバが、蓄積された前記差分に基づいてオブジェクトの内部状態を復元することを特徴とするオブジェクト指向のネットワーク分散型コンピューティングシステム。
【請求項２】
前記負荷分散装置が、前記サーバの切り替えに際し、元のサーバの前記オブジェクトに関する前記差分を結合して前記代替サーバに送り、
前記代替サーバが、
前記差分を受け取り前記オブジェクトの内部状態を復元することを特徴とする請求項１に記載のオブジェクト指向のネットワーク分散型コンピューティングシステム。
【請求項３】
前記サーバが、前記クライアントからのリクエストに対する応答メッセージに、前記メソッドの呼び出しにより生じる前記オブジェクトの内部状態の差分を付加して、前記負荷分散装置に送信することを特徴とする請求項１又は請求項２に記載のオブジェクト指向のネットワーク分散型コンピューティングシステム。
【請求項４】
前記負荷分散装置が、前記サーバからの応答メッセージに前記差分が付加されている場合に、前記差分を取り除いて、前記応答メッセージを前記クライアントに返却し、取り除いた前記差分を蓄積することを特徴とする請求項３に記載のオブジェクト指向のネットワーク分散型コンピューティングシステム。
【請求項５】
前記負荷分散装置が、前記サーバの切り替えに際し、元のサーバの前記オブジェクトに関する前記差分を結合し、前記クライアントからのリクエストに差分情報として付加して、前記代替先のサーバに前記リクエストを転送し、
前記代替先のサーバが、前記リクエストに前記差分情報が存在するかを判別し、前記差分情報が存在する場合に、当該差分情報を取り出して前記オブジェクトの内部状態を復元することを特徴とする請求項１から請求項４の何れか１項に記載のオブジェクト指向のネットワーク分散型コンピューティングシステム。
【請求項６】
前記負荷分散装置は、前記クライアントとのセッションが切断された場合に、対応するサーバのセッションを切断し、当該サーバの前記オブジェクトに関する差分を破棄することを特徴とする請求項１から請求項５の何れか１項に記載のオブジェクト指向のネットワーク分散型コンピューティングシステム。
【請求項７】
クライアントからのリクエストによりサーバに備えられるオブジェクトのメソッドを呼び出し、前記クライアントに対するサービスを提供するオブジェクト指向のネットワーク分散型コンピューティングシステムにおいて前記クライアントとサーバ間でサーバ切り替えによる負荷分散を行う負荷分散装置であって、
前記サーバ上のオブジェクト毎に、前記メソッドの呼び出しにより生じる前記オブジェクトの内部状態の差分を蓄積し、
前記サーバの前記代替サーバに対して、オブジェクトの内部状態を復元するために、前記差分を送信することを特徴とする負荷分散装置。
【請求項８】
前記サーバの切り替えに際し、元のサーバの前記オブジェクトに関する前記差分を結合して前記代替サーバに送信することを特徴とする請求項７に記載の負荷分散装置。
【請求項９】
前記サーバから受け取る前記クライアントからのリクエストに対する応答メッセージに、前記メソッドの呼び出しにより生じる前記オブジェクトの内部状態の差分が付加されている場合に、前記差分を取り出して蓄積することを特徴とする請求項７又は請求項８に記載の負荷分散装置。
【請求項１０】
前記サーバからの応答メッセージに前記差分が付加されている場合に、前記差分を取り除いて、前記応答メッセージを前記クライアントに返却し、取り除いた前記差分を蓄積することを特徴とする請求項９に記載の負荷分散装置。
【請求項１１】
前記サーバの切り替えに際し、元のサーバの前記オブジェクトに関する前記差分を結合し、前記クライアントからのリクエストに差分情報として付加して、前記代替先のサーバに前記リクエストを転送することを特徴とする請求項７から請求項１０の何れか１項に記載の負荷分散装置。
【請求項１２】
前記クライアントとのセッションが切断された場合に、対応するサーバのセッションを切断し、当該サーバの前記オブジェクトに関する差分を破棄することを特徴とする請求項７から請求項１１の何れか１項に記載の負荷分散装置。
【請求項１３】
クライアントからのリクエストによりサーバに備えられるオブジェクトのメソッドを呼び出し、前記クライアントに対するサービスを提供するオブジェクト指向のネットワーク分散型コンピューティングシステムにおける前記サーバであって、
前記クライアントとサーバ間でサーバ切り替えによる負荷分散を行う負荷分散装置に蓄積された、前記サーバ上のオブジェクト毎の前記メソッドの呼び出しにより生じる前記オブジェクトの内部状態の差分を受け取り、
前記差分に基づいてオブジェクトの内部状態を復元することを特徴とするサーバ。
【請求項１４】
前記負荷分散装置によるサーバの切り替えに際して、前記負荷分散装置から送信される元のサーバの前記オブジェクトに関する前記差分を結合した差分情報を受け取り、前記オブジェクトの内部状態を復元することを特徴とする請求項１３に記載のサーバ。
【請求項１５】
前記クライアントからのリクエストに対する応答メッセージに、前記メソッドの呼び出しにより生じる前記オブジェクトの内部状態の差分を付加して、前記負荷分散装置に送信することを特徴とする請求項１３又は請求項１４に記載のサーバ。
【請求項１６】
前記負荷分散装置から、前記クライアントからのリクエストに、元のサーバの前記オブジェクトに関する前記差分を結合した差分情報が付加されて転送された場合に、
前記リクエストに前記差分情報が存在するかを判別し、前記差分情報が存在する場合に、当該差分情報を取り出して前記オブジェクトの内部状態を復元することを特徴とする請求項１３から請求項１５の何れか１項に記載のサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オブジェクト指向のネットワーク分散型コンピューティングシステムに関し、特に、障害等によるサーバ切り替えに要するオーバヘッドを最小限とするオブジェクト指向のネットワーク分散型コンピューティングシステム、負荷分散装置及びサーバに関する。
【背景技術】
【０００２】
オブジェクト指向のネットワーク分散型コンピューティングシステムにおけるサーバファームのように複数のサーバ上にサーバオブジェクトが存在する場合、１台のサーバがサーバオブジェクトの障害などで使用不能になった場合でも処理を継続してクライアントに対するサービスを提供する必要がる。
【０００３】
このような場合、代替サーバに切り替えることで処理の継続を実現しているが、従来では、代替サーバに切り替える際に、障害の発生したサーバのサーバオブジェクトを他の全てのサーバに対して複製するといったサーバ間の複製処理によって対処していた。
【０００４】
従来のネットワーク分散システムにおけるサーバ間におけるオブジェクトの複製に関する技術が、例えば特開平１０−２０７８４９号公報（特許文献１）に開示されている。この特許文献１では、負荷の大きなサーバから負荷の小さなサーバに対して複製オブジェクトを移動することでサーバ切り替えによる負荷分散を行う方法が提案されている。
【特許文献１】特開平１０−２０７８４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記従来のサーバ間でサーバオブジェクトを複製する方式では、障害の発生したサーバのサーバオブジェクトを他の全てのサーバに対して複製する方式がとられているので、サーバの台数が多い場合、サーバオブジェクトの複製処理に手間と時間がかかると共にネットワーク負荷の増大等が発生することから、サーバオブジェクトの複製によるオーバヘッドが極めて大きくなるという問題点があった。
【０００６】
また、従来のサーバ間でサーバオブジェクトを複製する方式では、各サーバ毎にサーバオブジェクトの状態を管理する必要があるため、状態管理に手間がかかるといった問題点もある。
【０００７】
本発明の目的は、障害等によるサーバ切り替えに要するオーバヘッドを最小限とするオブジェクト指向のネットワーク分散型コンピューティングシステム、その負荷分散装置及びサーバを提供することにある。
【０００８】
本発明の他の目的は、各サーバのサーバオブジェクトの状態管理が容易となるオブジェクト指向のネットワーク分散型コンピューティングシステム、その負荷分散装置及びサーバを提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成する本発明は、クライアントからのリクエストによりサーバに備えられるオブジェクトのメソッドを呼び出し、前記クライアントに対するサービスを提供するオブジェクト指向のネットワーク分散型コンピューティングシステムであって、前記クライアントとサーバ間でサーバ切り替えによる負荷分散を行う負荷分散装置に、前記サーバ上のオブジェクト毎に、前記メソッドの呼び出しにより生じる前記オブジェクトの内部状態の差分を蓄積し、前記サーバの代替サーバが、蓄積された前記差分に基づいてオブジェクトの内部状態を復元することを特徴とする。
【００１０】
請求項２によるオブジェクト指向のネットワーク分散型コンピューティングシステムでは、前記負荷分散装置が、前記サーバの切り替えに際し、元のサーバの前記オブジェクトに関する前記差分を結合して前記代替サーバに送り、前記代替サーバが、前記差分を受け取り前記オブジェクトの内部状態を復元することを特徴とする。
【００１１】
請求項３によるオブジェクト指向のネットワーク分散型コンピューティングシステムでは、前記サーバが、前記クライアントからのリクエストに対する応答メッセージに、前記メソッドの呼び出しにより生じる前記オブジェクトの内部状態の差分を付加して、前記負荷分散装置に送信することを特徴とする。
【００１２】
請求項４によるオブジェクト指向のネットワーク分散型コンピューティングシステムでは、前記負荷分散装置が、前記サーバからの応答メッセージに前記差分が付加されている場合に、前記差分を取り除いて、前記応答メッセージを前記クライアントに返却し、取り除いた前記差分を蓄積することを特徴とする。
【００１３】
請求項５によるオブジェクト指向のネットワーク分散型コンピューティングシステムでは、前記負荷分散装置が、前記サーバの切り替えに際し、元のサーバの前記オブジェクトに関する前記差分を結合し、前記クライアントからのリクエストに差分情報として付加して、前記代替先のサーバに前記リクエストを転送し、前記代替先のサーバが、前記リクエストに前記差分情報が存在するかを判別し、前記差分情報が存在する場合に、当該差分情報を取り出して前記オブジェクトの内部状態を復元することを特徴とする。
【００１４】
請求項６によるオブジェクト指向のネットワーク分散型コンピューティングシステムでは、前記負荷分散装置は、前記クライアントとのセッションが切断された場合に、対応するサーバのセッションを切断し、当該サーバの前記オブジェクトに関する差分を破棄することを特徴とする。
【００１５】
また、他の本発明によれば、クライアントからのリクエストによりサーバに備えられるオブジェクトのメソッドを呼び出し、前記クライアントに対するサービスを提供するオブジェクト指向のネットワーク分散型コンピューティングシステムにおいて前記クライアントとサーバ間でサーバ切り替えによる負荷分散を行う負荷分散装置であって、前記サーバ上のオブジェクト毎に、前記メソッドの呼び出しにより生じる前記オブジェクトの内部状態の差分を蓄積し、前記サーバの前記代替サーバに対して、オブジェクトの内部状態を復元するために、前記差分を送信することを特徴とする。
【００１６】
さらに他の本発明によれば、クライアントからのリクエストによりサーバに備えられるオブジェクトのメソッドを呼び出し、前記クライアントに対するサービスを提供するオブジェクト指向のネットワーク分散型コンピューティングシステムにおける前記サーバであって、前記クライアントとサーバ間でサーバ切り替えによる負荷分散を行う負荷分散装置に蓄積された、前記サーバ上のオブジェクト毎の前記メソッドの呼び出しにより生じる前記オブジェクトの内部状態の差分を受け取り、前記差分に基づいてオブジェクトの内部状態を復元することを特徴とする。
【発明の効果】
【００１７】
本発明のオブジェクト指向のネットワーク分散型コンピューティングシステムによれば、以下の効果が達成される。
【００１８】
第１に、サーバオブジェクトの状態復元を行なうためのオーバヘッドを最小とすることができる。従来のサーバ間のサーバオブジェクトの復元では複数のサーバ全てにサーバオブジェクトの復元を行う必要があるためにネットワークの負荷が増大していたが、本実施例では負荷分散装置２０とサーバ３１、３２間でのみサーバオブジェクトの状態復元を行なうため、処理が簡単となりかつネットワークの負荷増大等も発生しないためである。
【００１９】
第２に、各サーバのサーバオブジェクトの状態の管理が極めて容易となる。サーバ間でサーバオブジェクトの複製を行う従来の方法では、全てのサーバにサーバオブジェクトを複製するため、各サーバ毎にサーバオブジェクトを管理する必要があるが、本実施例では負荷分散装置２０の差分保存部２６でサーバオブジェクトの内部状態の復元に必要な差分情報を集中的に管理するようにしたためである。
【実施例】
【００２０】
以下、本発明の好適な実施例について図面を参照して詳細に説明する。
図１を参照すると、本発明の好適な実施例によるオブジェクト指向のネットワーク分散型コンピューティングシステムは、クライアント１０と、負荷分散装置２０、サーバ３１、サーバ３２から構成されている。ここでは、クライアント１０と負荷分散装置２０がネットワーク１００で接続され、負荷分散装置２０とサーバ３１、３２とがネットワーク２００により互いに接続されている。
【００２１】
図２は、クライアント１０の内部構成を示すブロック図である。
【００２２】
図２において、クライアント１０は、クライアントアプリケーション１１と通信手段１２とを備えている。
【００２３】
図３は、負荷分散装置２０の内部構成を示すブロック図である。
【００２４】
図３において、負荷分散装置２０は、通信手段２１、負荷分散手段２２、サーバ位置記憶部２３、通信管理手段２４、差分結合手段２５、差分保存部２６、通信手段２７とを備えている。
【００２５】
図４は、サーバ３１（サーバ３２）の内部構成を示している。
【００２６】
図４において、サーバ３１（サーバ３２）は、それぞれ通信手段３１１（通信手段３２１）、差分検出手段３１２（差分検出手段３２２）、サーバオブジェクト３１３（サーバオブジェクト３２３）、状態保存部３１４（状態保存部３２４）、差分復元手段３１５（差分復元手段３２５）を備えている。
【００２７】
以下、それぞれの構成要素の機能について説明する。
【００２８】
クライアントアプリケーション１１は、クライアント１０であるコンピュータ装置（ＣＰＵ）上で実行され、サーバ３１、３２が有するサーバオブジェクト３１３、３２３に対してメソッドの実行をリクエストし、サーバ３１、３２から返されるメソッドの実行結果である応答メッセージを受け取る。
【００２９】
クライアント１０の通信手段１２と負荷分散装置２０の通信手段２１は、ネットワーク１００上でクライアント１０と負荷分散装置２０が通信（データ送受信）を行うための機能を有している。また、サーバ３１の通信手段３１１とサーバ３２の通信手段３２１は、ネットワーク２００を介して負荷分散装置２０の通信手段２１と通信を行う機能を有する。
【００３０】
負荷分散装置２０の負荷分散手段２２は、通信の開始時点でサーバ３１と通信するのか、あるいはサーバ３２と通信するのかを決定するための機能を有する。
【００３１】
サーバ位置記憶装置２３は、負荷分散装置２０が使用できるサーバの情報を記憶する。本実施例においては、サーバ３１とサーバ３２の情報が記録されている。
【００３２】
通信管理手段２４は、クライアント１０が接続しているサーバを管理する機能を有する。
【００３３】
差分保存部２６は、サーバ３１、サーバ３２から送信された差分情報を順次蓄積する。
【００３４】
この差分情報は、サーバ上のサーバオブジェクト毎に蓄積される。本実施例では、サーバ３１とサーバ３２のサーバオブジェクト３１３、３２３毎にその差分情報が蓄積される。ここで、差分情報とは、サーバ３１又はサーバ３２から送られるサーバオブジェクト３１３又はサーバオブジェクト３２３のデータの差分内容を示している。
【００３５】
例えば、各サーバにそれぞれ複数のサーバオブジェクトが備えられる構成の場合、上記差分情報は、サーバ毎ではなく個々のサーバオブジェクト毎に蓄積される。従って、どのサーバオブジェクトがどのサーバに存在するかを示す情報が、上記差分情報と共に対応付けて格納される。
【００３６】
差分結合手段２５は、差分保存部２６に蓄積されている差分情報をサーバオブジェクト毎に結合することにより最新の状態を復元する機能を有する。
【００３７】
サーバ３１とサーバ３２のサーバオブジェクト３１３とサーバオブジェクト３２３は、ネットワーク分散コンピューティングにおいてサーバ上に格納されるオブジェクト指向のプログラムである。
【００３８】
このサーバオブジェクトの例としては、例えば、Java(R)をビジネスアプリケーションで活用する際にサーバ側に必要な機能をまとめたEnterprise Java(R)仕様によるEJB（Enterprise Java(R)Beans）等がある。
【００３９】
サーバ３１とサーバ３２の状態保存部３１４及び状態保存部３２４は、それぞれのサーバオブジェクト３１３とサーバオブジェクト３２３の内部状態（サーバオブジェクトが扱うデータの内容）を保存する。
【００４０】
差分検出手段３１５（差分検出手段３２５）は、サーバオブジェクト３１３（サーバオブジェクト３２３）のメソッドの呼び出し前（実行前）と呼び出し後（実行後）のデータ内容について差分があるかどうを検出する機能を有する。
【００４１】
差分復元手段３１５（差分復元手段３２５）は、負荷分散装置２０から受け取った差分情報を元にサーバオブジェクト３１３（サーバオブジェクト３２３）の内部状態（データ内容）を復元すると共に、その復元した内部状態を状態保存部３１４（状態保存部３２４）に格納する機能を有する。
【００４２】
本実施例では、負荷分散装置２０の差分検出手段３１２と差分結合手段２５を使用することで、障害などでサーバの切り替えが行われた場合、差分復元手段３２５を用いて切り替え前のサーバのサーバオブジェクトの内部状態（データ内容）を切り替え後のサーバのサーバオブジェクトの内部状態（データ内容）として復元する。このようにして、サーバオブジェクトの動的復元を可能とする。
【００４３】
上記クライアント１０、負荷分散装置２０及びサーバ３１、３２は、それぞれコンピュータ装置で実現される。これらの各機能は、ハードウェア的に実現することが可能であることは勿論として、ソフトウェア的に実現することも可能である。
【００４４】
クライアント１０の通信手段１２、負荷分散装置２０の通信手段２１、２７、負荷分散手段２２、通信管理手段２４、差分結合手段２５、サーバ３１と３２の通信手段３１１、３２１、差分検出手段３１２、３２２、差分復元手段３１５、３２５の各機能は、クライアント１０、負荷分散装置２０及びサーバ３１、３２を構成するプログラム制御可能なコンピュータ処理装置上で、各装置の機能を実現するプログラムをロードして実行しコンピュータの動作を制御することにより、各装置の固有の機能として実現できる。
【００４５】
次に、図１に示すように構成される本実施例の動作について、図５、図６及び図７のフローチャートを参照して説明する。
【００４６】
まず、サーバ３１上でサーバオブジェクト３１３が起動すると、サーバオブジェクト３１３の初期の内部状態（サーバオブジェクトが扱うデータの内容）が状態保存部３１４に記録される。サーバ３２についても予め起動しているため、サーバ３１と同様にそのサーバオブジェクト３２３の初期の内部状態が状態保存部３２４に記録される。
【００４７】
クライアントアプリケーション１１が、サーバ（サーバ３１又はサーバ３２）のサーバ・オブジェクトに対してメソッド呼び出しを要求する場合、通信手段１２から負荷分散装置２０の通信手段２１に対してリクエストを送信する。サーバオブジェクトのサービスを使用するクライアント１０は、メソッドの呼び出しによって、サーバオブジェクトのデータにアクセスし、操作を実行する。
【００４８】
図５のフローチャートを参照すると、負荷分散装置２０の通信手段２１にて、クライアント１０からの上記リクエストを受信すると（ステップ５０１）、通信管理手段２４は、サーバが割り当てられているかを判別し（ステップ５０２）、任意のサーバが割り当てられていない場合は、負荷分散手段２２がサーバ位置記憶部２３から任意のサーバを選択する（ステップ５０４）。ここでは、サーバ３１が選択されたものとする。
【００４９】
サーバが選択されると、負荷分散装置２０は、通信手段２７を使用してサーバ３１の通信手段３１１に対して通信手段２１で受け取った上記リクエストを転送する（ステップ５０５）。
【００５０】
ステップ５０２で、既にサーバが割り当てられている場合には、さらに、割り当てられているサーバの障害（サーバオブジェクトの障害）によるダウンあるいはサーバの高負荷に対する負荷分散のために負荷分散手段２２によるサーバの切り替えが行われていない場合（ステップ５０３）、そのサーバに対して上記リクエストを転送する（ステップ５０５）。その後、当該サーバからの応答メッセージの受信を待つ（ステップ５０６）。
【００５１】
ステップ５０３でサーバの切り替えが行われている場合には、後述する図７に示す動作が実行される。
【００５２】
図６のフローチャートを参照すると、サーバ３１の通信手段３１１で負荷分散装置２０から転送されたリクエストを受け取ると（ステップ６０１）、差分復元手段３１５がそのリクエストに差分情報が含まれているかどうかを判断する（ステップ６０２）。
【００５３】
ステップ５０４でサーバの選択がなされた場合、最初のリクエストには差分情報は含まれていないため、差分情報の取り出し、サーバオブジェクトの内部状態の復元はなされず、そのままクライアント１０からのリクエストに従ってサーバオブジェクト３１３のメソッドが呼び出される（ステップ６０３）。
【００５４】
サーバオブジェクト３１３のメソッドの処理が完了すると（ステップ６０４）、差分検出手段３１２が現在のサーバオブジェクト３１３の内部状態（データの内容）と状態保存部３１４に保持されている内部状態（データの内容）を比較して差分があるかどうを検出する（ステップ６０５）。
【００５５】
差分がある場合（ステップ６０６）は、差分検出手段３１２がその差分を抽出する。そして、通信手段３１１が抽出した当該差分を応答メッセージに差分情報として付加し（ステップ６０７）、負荷分散装置２０の通信手段２７に返却する（ステップ６０８）。
【００５６】
負荷分散装置２０の通信手段２７は、サーバ３１の通信手段３１１から送信された応答メッセージを受信する（ステップ５０６）。
【００５７】
通信管理手段２４は、受信した応答メッセージに差分情報が付加されているかどうかを判定し（ステップ５０７）、付加されている場合には、差分情報を取り出し差分保存部２６に格納する（ステップ５０８）。このように、サーバからの応答メッセージを受信する度に、付加されている差分情報が存在すれば、その差分情報を順次差分保存部２６に蓄積していく。この差分情報の蓄積は、上述したようにサーバオブジェクト毎に対応付けて行われる。
【００５８】
通信手段２１は、差分情報を取り除いた応答メッセージをクライアント１０の通信手段１２に返却する（ステップ５０９）。
【００５９】
クライアント１０の通信手段１２では、受信した応答メッセージをクライアントアプリケーション１１に通知する。これにより、クライアント１０によるサーバオブジェクトのメソッド呼び出しが終了する。
【００６０】
クライアント１０からの２回目以降のリクエストについては、負荷分散装置２０の通信手段２１がリクエストを受信した場合、負荷管理手段２４は、既にサーバ３１とのコネクションが確立されているため、サーバの選択をすることなく（ステップ５０４）、サーバ３１に対して１回目と同様に通信手段２７によって当該リクエストを転送する（ステップ５０５）。
【００６１】
その場合のサーバ３１の動作は、上述した１回目の動作と同様であり差分情報を付加した応答メッセージを返却する（ステップ６０７、６０８）。負荷分散装置２０は、応答メッセージから差分情報を取り出して差分保存部２６に格納し（ステップ５０８）、応答メッセージをクライアント１０に返却する（ステップ５０９）。
【００６２】
サーバ３１が障害（サーバオブジェクトの障害）によりダウンした場合やサーバ３１の高負荷により負荷分散のためのサーバの切換えが行われた場合（ステップ５０３）、負荷分散装置２０では、以下の手順で動的にオブジェクトを復元する。
【００６３】
負荷分散手段２２によるサーバの切り替えが行われている場合（ステップ５０３）、通信管理手段２４は、サーバ位置記憶装置２３から新たなサーバ３２を代替サーバとして選択する（ステップ７０１）。
【００６４】
差分結合手段２５は、差分保存部２６に格納されている全ての差分情報（この場合は、サーバ３１のサーバオブジェクト３１３に対応する差分情報）を結合することにより、新たに選択したサーバ３２に送信する差分情報として復元する（ステップ７０２）。
【００６５】
通信手段２７は、復元された差分情報をクライアント１０からのリクエストに付加する（ステップ７０３）。その後、サーバ３２の通信手段３２１に対して当該リクエストを送信する（ステップ５０５）。
【００６６】
サーバ切り替えにより選択された代替サーバとしてのサーバ３２の差分復元手段３２２は、負荷分散装置２０より受け取ったリクエストから付加されている差分情報を取り出し（ステップ６０９）、当該差分情報によってサーバオブジェクト３２３の内部状態（データ内容）を復元する（ステップ６１０）。また、復元した内部状態（データ内容）を自身の状態保存部３２４に記録する（ステップ６１１）。
【００６７】
そして、復元処理が完了した後、サーバオブジェクト３２３のメソッドの呼び出しを行う（ステップ６０３）。呼び出されたメソッドの処理が完了した後の応答メッセージの送信動作は、サーバ切り替えが行われない場合と同様であり、ステップ６０４からステップ６０８による動作が実行される。
【００６８】
また、負荷分散装置２０の通信手段２１が、クライアント１０とのコネクションの切断を検出した場合、通信管理手段２４は対応するサーバ３１又は３２へのコネクションを通信手段２７を使用して切断する。その場合、差分保存部２６に保存されているコネクションを切断したサーバのサーバオブジェクトに関する差分情報を全て消去して破棄する動作を行う。
【００６９】
上述した本実施例によれば、次のような効果が得られる。
【００７０】
従来のサーバ間のサーバオブジェクトの復元では複数のサーバ全てにサーバオブジェクトの復元を行う必要があるためにネットワークの負荷が増大していたが、本実施例では負荷分散装置２０とサーバ３１、３２間でのみサーバオブジェクトの内部状態の復元を行なうため、処理が簡単となりかつネットワークの負荷増大等も発生せず、復元のためのオーバヘッドを最小とすることができる。
【００７１】
また、サーバ間でサーバオブジェクトの複製を行う従来の方法では、全てのサーバにサーバオブジェクトを複製するため、各サーバ毎にサーバオブジェクトを管理する必要があるが、本実施例では負荷分散装置２０の差分保存部２６でサーバオブジェクトの内部状態の復元に必要な差分情報を集中的に管理するようにしたので、サーバオブジェクトの状態管理が極めて容易となる。
【００７２】
本発明の上記実施例では、２台のサーバ３１、３２を用いる場合について説明したが、サーバの数については複数であればこれに限定されない。クライアント１０の数についても図示の構成に限定されず何台であってもよい。
【００７３】
負荷分散装置２０が１台の場合を示したが、クラスタ構成において２台以上の負荷分散装置を備える構成であっても本発明を適用することができる。
【００７４】
以上好ましい実施例をあげて本発明を説明したが、本発明は必ずしも、上記実施例に限定されるものでなく、その技術的思想の範囲内において様々に変形して実施することができる。
【図面の簡単な説明】
【００７５】
【図１】本発明の好適な実施例によるオブジェクト指向のネットワーク分散型コンピューティングシステムの全体構成を示す図である。
【図２】本発明の実施例におけるクライアントの内部構成を示すブロック図である。
【図３】本発明の実施例における負荷分散装置の内部構成を示すブロック図である。
【図４】本発明の実施例におけるサーバの内部構成を示すブロック図である。
【図５】本発明の実施例における負荷分散装置の動作を説明するフローチャートである。
【図６】本発明の実施例におけるサーバの動作を説明するフローチャートである。
【図７】本発明の実施例における負荷分散装置のサーバ切り替え時の動作を説明するフローチャートである。
【符号の説明】
【００７６】
１０：クライアント
１１：クライアントアプリケーション
１２：通信手段
２０：負荷分散装置
２１、２７：通信手段
２２：負荷分散手段
２３：サーバ位置記憶部
２４：通信管理手段
２５：差分結合手段
２６：差分保存部
３１、３２：サーバ
３１１、３２１：通信手段
３１２、３２２：差分検出手段
３１３、３２３：サーバオブジェクト
３１４、３２４：状態保存部
３１５、３２５：差分復元手段
１００、２００：ネットワーク
【図１】
2005259080.tif 000003
【図２】
2005259080.tif 000004
【図３】
2005259080.tif 000005
【図４】
2005259080.tif 000006
【図５】
2005259080.tif 000007
【図６】
2005259080.tif 000008
【図７】
2005259080.tif 000009