(57)【要約】【課題】分散オブジェクト基盤を利用したクライアントサーバシステムにおいて、サーバ装置の障害発生に迅速に対処する技術が求められている。【解決手段】アプリケーションプログラム（11）を実行するクライアント装置（10）と、クライアント装置との交信によりアプリケーションプログラムに対応するサーバプログラム（21）を実行する現用系のサーバ装置（20A）と、自装置においてサーバプログラムを起動するためのエージェントプログラム（22）を具備する予備系のサーバ装置（20B）とを備える。クライアント装置は、現用系のサーバ装置における障害の有無を監視する手段（12）と、現用系のサーバ装置における障害が検知されたとき予備系のサーバ装置に対しエージェントプログラムの実行を指示し該サーバ装置を現用系のサーバ装置として認識する手段（13）とを有する。【選択図】図１
2007200103.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションプログラムを実行するクライアント装置と、前記クライアント装置との交信によりアプリケーションプログラムに対応するサーバプログラムを実行する現用系のサーバ装置と、自装置においてサーバプログラムを起動するためのエージェントプログラムを具備する予備系のサーバ装置とを備え、
前記クライアント装置は、
現用系のサーバ装置における障害の有無を監視する手段と、
現用系のサーバ装置における障害が検知されたとき予備系のサーバ装置に対しエージェントプログラムの実行を指示し該サーバ装置を現用系のサーバ装置として認識する手段とを有することを特徴とするクライアントサーバシステム。
【請求項２】
前記クライアント装置は、
障害が検知された現用系のサーバ装置の復旧の可否を監視し、復旧が可能であることを検知したとき該サーバ装置を予備系のサーバ装置として認識する手段を有することを特徴とする請求項１記載のクライアントサーバシステム。
【請求項３】
前記クライアント装置は、
予備系から現用系として認識したサーバ装置に対し、その認識以前にアプリケーションプログラムの実行により形成したデータを複写する手段を有することを特徴とする請求項１又は２記載のクライアントサーバシステム。
【請求項４】
アプリケーションプログラムを実行するクライアント装置と、前記クライアント装置との交信によりアプリケーションプログラムに対応するサーバプログラムを実行する現用系のサーバ装置と、自装置においてサーバプログラムを起動するためのエージェントプログラムを具備する予備系のサーバ装置とを備えるシステムにおいて、
前記クライアント装置が、
現用系のサーバ装置における障害の有無を監視し、
現用系のサーバ装置における障害が検知されたとき予備系のサーバ装置に対しエージェントプログラムの実行を指示し該サーバ装置を現用系のサーバ装置として認識することを特徴とするリソース制御方法。
【請求項５】
前記クライアント装置が、さらに、
障害が検知された現用系のサーバ装置の復旧の可否を監視し、復旧が可能であることを検知したとき該サーバ装置を予備系のサーバ装置として認識することを特徴とする請求項４記載のリソース制御方法。
【請求項６】
前記クライアント装置が、さらに、
予備系から現用系として認識したサーバ装置に対し、その認識以前にアプリケーションプログラムの実行により形成したデータを複写することを特徴とする請求項４又は５記載のリソース制御方法。
【請求項７】
アプリケーションプログラムを実行するクライアント装置に、
前記クライアント装置との交信によりアプリケーションプログラムに対応するサーバプログラムを実行する現用系のサーバ装置について、障害の有無を監視するステップと、
前記ステップにおいて障害が検知されたとき、自装置においてサーバプログラムを起動するためのエージェントプログラムを具備する予備系のサーバ装置に対し、エージェントプログラムの実行を指示し該サーバ装置を現用系のサーバ装置として認識するステップとを実行させることを特徴とするプログラム。
【請求項８】
前記クライアント装置に、さらに、
障害が検知された現用系のサーバ装置の復旧の可否を監視するステップと、
前記ステップにおいて復旧が可能であることを検知したとき該サーバ装置を予備系のサーバ装置として認識するステップとを実行させることを特徴とする請求項７記載のプログラム。
【請求項９】
前記クライアント装置に、さらに、
予備系から現用系として認識したサーバ装置に対し、その認識以前にアプリケーションプログラムの実行により形成したデータを複写するステップを実行させることを特徴とする請求項７又は８記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散オブジェクト技術を利用したクライアントサーバシステムに関し、特に、サーバ装置の障害発生に対処する技術に関する。
【背景技術】
【０００２】
従来、ネットワーク上の複数のコンピュータに対し共通した規格のソフトウェアを設定し、それらのコンピュータを連携動作させる分散オブジェクト技術が知られている。分散オブジェクト技術は、例えば、業務処理を行うためのクライアントサーバシステムに利用される。
【０００３】
ところで、業務用途のシステムにおいてサーバ装置に障害が発生すると、業務の遂行に支障を来し、ときには、多大な損害を被ることがある。そのため、サーバ装置の障害に迅速に対処する技術が求められている。
【０００４】
クライアントサーバシステムの運用に関する技術として、例えば、後述の特許文献１及び特許文献２に記載のものがある。特許文献１に記載の技術は、複数のサーバに予め所定の運用ドメインを割り当てておき、システム障害が発生した場合、その障害を検出して故障部位を特定するというものである。また、特許文献２に記載の技術は、複数のノードコンピュータが接続されたネットワークに、各ノードコンピュータの排熱状況に応じてシステムの負荷分散を制御する処理配分装置を接続するというものである。
【特許文献１】特開２００２−３４２１０７号公報
【特許文献２】特開２００５−１４１６６９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載の技術にあっては、負荷分散の対象となるサーバ装置の数量が予め制限されているため、サーバ装置の高負荷状態を解消し難いという不都合がある。よって、予想されなかった膨大なアクセスが発生した場合、システム全体が停止するおそれがある。また、新たにサーバ装置を追加しようとしても、その装置に対するプログラムのセットアップには、オペレータ操作が必要とされる。したがって、障害発生に対し迅速な復旧が求められるシステムには不向きである。
【０００６】
一方、特許文献２に記載のシステムは、複数のノードコンピュータの負荷分散を特定の装置に制御させるものであるが、その装置に障害が発生した場合、負荷分散を適正に行うことが困難となる。そうすると、例えば、あるノードコンピュータが高負荷状態に陥りダウンする一方で、何ら障害の無いノードコンピュータが使用されずに放置されるという、運用効率上、不適切な事態を招くおそれがある。
【０００７】
本発明は、上記課題に鑑みてなされたものであり、クライアントサーバシステムにおいて、サーバの障害に迅速に対処する技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係るクライアントサーバシステムは、アプリケーションプログラムを実行するクライアント装置と、前記クライアント装置との交信によりアプリケーションプログラムに対応するサーバプログラムを実行する現用系のサーバ装置と、自装置においてサーバプログラムを起動するためのエージェントプログラムを具備する予備系のサーバ装置とを備え、前記クライアント装置は、現用系のサーバ装置における障害の有無を監視する手段と、現用系のサーバ装置における障害が検知されたとき予備系のサーバ装置に対しエージェントプログラムの実行を指示し該サーバ装置を現用系のサーバ装置として認識する手段とを有する。
【０００９】
本発明に係るリソース制御方法は、アプリケーションプログラムを実行するクライアント装置と、前記クライアント装置との交信によりアプリケーションプログラムに対応するサーバプログラムを実行する現用系のサーバ装置と、自装置においてサーバプログラムを起動するためのエージェントプログラムを具備する予備系のサーバ装置とを備えるシステムにおいて、前記クライアント装置が、現用系のサーバ装置における障害の有無を監視し、現用系のサーバ装置における障害が検知されたとき予備系のサーバ装置に対しエージェントプログラムの実行を指示し該サーバ装置を現用系のサーバ装置として認識するという方法である。
【発明の効果】
【００１０】
本発明によれば、クライアント装置が利用する現用系のサーバ装置に障害が発生したとき、クライアント装置が、予備系のサーバ装置を自動的に現用系へ切替えることから、障害発生に迅速に対処することができる。これにより、アプリケーションプログラムによるオンライン業務を円滑に遂行できる。
【発明を実施するための最良の形態】
【００１１】
図１に、本発明の実施形態の構成を示す。本実施形態のシステム100は、分散オブジェクト技術を利用したクライアントサーバシステムであり、図１に示すように、クライアント装置10と、現用系のサーバ装置20Aおよび予備系のサーバ装置20Bとがインターネットのような通信ネットワーク100Aに接続された形態を成す。
【００１２】
クライアント装置10は、業務処理などを行うためのアプリケーションプログラムであるクライアントアプリケーション11を実行するコンピュータであり、クライアントアプリケーション11の実行により形成した処理データ16を順次メモリデバイス17へ格納する。
【００１３】
現用系のサーバ装置20Aは、クライアントアプリケーション11に対応したアプリケーションプログラムであるサーバアプリケーション21を実行することにより、自装置が持つ情報資源をクライアント装置10へ提供するコンピュータである。
【００１４】
予備系のサーバ装置20Bは、障害が発生した現用系のサーバ装置20Aの代替としてシステム100のリソースプール30に確保されるコンピュータである。これら予備系のサーバ装置20Bには、サーバアプリケーション21を起動させるためのエージェントプログラム22が設定されている。
【００１５】
図１に示すように、クライアント装置10は、その機能として、通信制御部12、リソース制御部13および復旧管理部15を有する。これらの機能は、クライアント装置10のＣＰＵ（図示略）が、メモリデバイス17に保存されているプログラムを実行することによる作用に対応する。
【００１６】
通信制御部12は、通信ネットワーク100Aへの接続に関する通信処理を行うと共に、現用系のサーバ装置20Aにおける障害の有無を監視する。リソース制御部13は、現用系のサーバ装置20Aに障害が発生したとき予備系のサーバ装置20Bに切り替える処理を行う。また、リソース制御部13は、現用系のサーバ装置20A及び予備系のサーバ装置20Bに関するサーバ情報14をメモリデバイス17に保持する。復旧管理部15は、障害が発生した現用系のサーバ装置20Aの復旧が可能である場合に、この装置を予備系としてリソースプール30へ移行させる処理を行う。
【００１７】
図２に、リソース制御部13が記録するサーバ情報14の例を示す。図示のサーバ情報14には、サーバ装置（20A／20B）の系統を表すサーバ種別14aと、そのサーバ装置のＩＰアドレス14b及び交信に用いるポート番号14cと、そのサーバ装置の現時点の動作状態14dと、復旧管理部15の処理結果に基づく復旧情報14eとが設定されている。リソース制御部13は、通信ネットワーク100A上のサーバ装置（20A／20B）について認識した情報をもとにサーバ情報14を更新する。
【００１８】
図３に示すシーケンスを参照して、システム100の動作について説明する。クライアント装置10は、クライアントアプリケーション11によるビジネス処理を開始すると、処理要求を通信制御部12により現用系のサーバ装置20Aへ送信する（S1、S2）。その後、通常は、処理要求に対する応答が現用系のサーバ装置20Aからクライアント装置10へ送信されるが、ここでは、現用系のサーバ装置20Aが過度の高負荷状態に陥り、処理要求に応答できない状況にあるとする（S3）。
【００１９】
クライアント装置10の通信制御部12は、所定期間内に応答が無いことにより現用系のサーバ装置20Aの障害発生を検知すると（S4）、その旨をリソース制御部13へ通知する（S5）。障害発生を認識したリソース制御部13は、図２に示すサーバ情報14において、対象のサーバ装置20Aに関する情報を更新する（S6）。具体的には、サーバ種別14a「現用系」の２段目のレコードのように、動作状態14dを「異常」とし、復旧情報14eを「復旧調査中」とする。
【００２０】
また、リソース制御部13は、サーバ情報14を参照し、現用系のサーバ装置20Aの代替として利用する予備系のサーバ装置20Bを１つ選定する（S7）。そして、選定した予備系のサーバ装置20Bに対し、サーバアプリケーション21のインストールパッケージデータを送信する（S8）。
【００２１】
さらにまた、リソース制御部13は、障害が発生した現用系のサーバ装置20Aについて、その復旧が可能か否かを別処理にて監視する。この処理については、後に説明する。
【００２２】
予備系のサーバ装置20Bは、エージェントプログラム22により、クライアント装置10からのパッケージデータを受信し（S9）、受信が完了した旨をクライアント装置10へ応答する（S10）。クライアント装置10は、受信完了の通知を認識した後（S11）、パッケージデータのインストールおよび起動を予備系のサーバ装置20Bへ指示する（S12）。
【００２３】
予備系のサーバ装置20Bは、クライアント装置10からの指示を受信すると（S13）、パッケージデータをインストールすることによりサーバアプリケーション21を実行可能に設定し（S14）、これを起動する（S15）。そして、サーバアプリケーション21を起動させた旨と、自装置のＩＰアドレス及びポート番号とをクライアント装置10へ通知する（S16）。
【００２４】
クライアント装置10は、予備系のサーバ装置20Bからの通知を受けると（S17）、この予備系のサーバ装置20Bを現用系に切り替えるべくサーバ情報14を更新する（S18）。これにより、図２に示すサーバ種別14a「現用系」の１段目のような情報が記録される。その後、クライアント装置10は、先に通知されたＩＰアドレス及びポート番号を用いて新たな現用系サーバ装置20Aと交信しつつ、クライアントアプリケーション11を実行する。
【００２５】
なお、クライアント装置10は、サーバ情報14の更新内容を、更新ごと、あるいは、定期的に一括して他のクライアント装置（10）へ通知する。通知を受けた各クライアント装置（10）は、受信した情報に基づき自装置のサーバ情報14を更新する。これにより、各クライアント装置（10）のサーバ情報14が、システムの現状に即したものに維持されることから、障害が発生した現用系のサーバ装置20Aに新規接続を試みるといった不適切な動作を防ぐことができる。
【００２６】
以上説明した実施形態によれば、クライアント装置10が利用する現用系のサーバ装置20Aに障害が発生したとき、クライアント装置10が、予備系のサーバ装置20Bを自動的に現用系へ切替えることから、障害発生に迅速に対処することができる。これにより、クライアントアプリケーション11によるオンライン業務を円滑に遂行できる。
【００２７】
図４に示すシーケンスを参照して、障害が発生した現用系のサーバ装置20Aの復旧を監視する処理について説明する。クライアント装置10のリソース制御部13は、現用系のサーバ装置20Aについて、高負荷状態等の障害が発生したことを認識したとき、現用系のサーバ装置20Aの復旧が可能か否かを監視するよう復旧管理部15に指示する（S21）。
【００２８】
指示を受けた復旧管理部15は、対象のサーバ装置20Aに対し、通信を確立するための信号を定期的に送信することにより、そのサーバ装置20Aの復旧が可能か否かを監視する（S22）。そして、送信した信号に対し、サーバ装置20Aから所定期間内に適正な応答を受信したとき（S23）、このサーバ装置20Aの障害が解消され復旧が可能であると判定する（S24）。なお、適正な応答が無い間は、いまだ障害が解消されず復旧できないものとして、通信の確立処理を再試行する（S25）。
【００２９】
復旧管理部15は、現用系のサーバ装置20Aの復旧が可能であることを認識すると、その旨をリソース制御部13へ通知する（S26）。通知を受けたリソース制御部13は、対象のサーバ装置20Aを予備系のサーバ装置20Bとしてリソースプール30に確保すべくサーバ情報14を更新する（S27）。これにより、サーバ情報14には、図２に示すサーバ種別14a「予備系」の１段目又は２段目のような情報が記録される。
【００３０】
このように、本実施形態によれば、クライアント装置10が、障害発生後のサーバ装置の状況を監視し、復旧が可能となった際にそのサーバ装置を予備系として登録することから、システムの情報資源を効率的に運用することができる。これにより、サーバ装置の枯渇によるシステムの稼動停止を回避できる。
【００３１】
次に、クライアントサーバシステムにおいてビジネス処理を継続的に実行する会話型処理を想定した実施形態を示す。クライアント装置10は、会話型処理において現用系のサーバ装置20Aから供給された処理データ16を順次メモリデバイス17へ格納する（図１）。処理中、現用系のサーバ装置20Aに障害が発生した場合、クライアント装置10は、図３により説明した前述の手順に沿って、予備系のサーバ装置20Bへの切り替えを行う。
【００３２】
一般に、会話型処理が中断された場合は、その処理を最初からやり直す必要があるが、このような不都合に対処する手法を、図５に示すシーケンスを参照して以下に説明する。
【００３３】
クライアント装置10のリソース制御部13は、障害が発生したサーバ装置（20A）の代替となる予備系のサーバ装置20Bから、サーバアプリケーション21のパッケージデータのインストールが完了した旨を通知されたとき、このサーバ装置を新たな現用系のサーバ装置20A´として認識すべくサーバ情報14を更新する（図３：S17、S18）。
【００３４】
続いて、リソース制御部13は、交信すべきサーバ装置が切り替わった旨を通信制御部12へ通知する（S31）。これを受けた通信制御部12は、新たな現用系のサーバ装置20A´から通知されたＩＰアドレス及びポート番号と、それまでにメモリデバイス17へ保存した処理データ16とを読み出し（S32）、読み出した処理データ16を現用系のサーバ装置20A´へ送信する（S33）。
【００３５】
サーバ装置20A´のサーバアプリケーション21は、クライアント装置10からの処理データ16を受信し（S34）、それらを自装置のメモリデバイス（図示略）へ書き込む（S35）。これにより、今回現用系として使用されるサーバ装置20A´の動作環境が、以前現用系として使用されていたサーバ装置（20A）のそれと同等のものとなる。
【００３６】
現用系のサーバ装置20A´は、処理データ16の書き込みが終了すると、データの複写が完了した旨をクライアント装置10へ通知する（S36）。クライアント装置10は、上記通知を受信すると（S37）、そのサーバ装置20A´に対し処理要求が可能であることを認識する。そして、クライアントアプリケーション11から処理要求が出されたとき（S38）、通信制御部12が、この要求を現用系のサーバ装置20A´へ送信する（S39）。
【００３７】
現用系のサーバ装置20A´は、クライアント装置10から要求された処理を実行して処理データ16を作成し（S40、S41）、これをクライアント装置10へ送信する（S42）。クライアント装置10は、現用系のサーバ装置20A´からの処理データ16を受信し（S43）、メモリデバイス17へ格納する（S44）。これにより、中断されていた会話型処理が再開する。以降、クライアントアプリケーション11から処理要求が出される都度、その要求を上記手順（S38〜S44）により処理する。
【００３８】
以上、図５に沿って説明した実施形態によれば、会話型処理の途中にてサーバ装置に障害が発生しても、それまでの処理をやり直すことなく、一連の会話型処理を継続させることができる。
【図面の簡単な説明】
【００３９】
【図１】本発明の実施形態の構成を示すブロック図である。
【図２】実施形態のサーバ情報を説明するための説明図である。
【図３】実施形態の動作手順を示すシーケンス図である。
【図４】実施形態の動作手順を示すシーケンス図である。
【図５】実施形態の動作手順を示すシーケンス図である。
【符号の説明】
【００４０】
100  システム
100A  通信ネットワーク
10  クライアント装置
11：クライアントアプリケーション、12：通信制御部、13：リソース制御部、14：サーバ情報、15：復旧管理部、16：処理データ、17：メモリデバイス
20A  現用系のサーバ装置
20B  予備系のサーバ装置
21：サーバアプリケーション、22：エージェントプログラム
30  リソースプール
【図１】
2007200103.tif 000003
【図２】
2007200103.tif 000004
【図３】
2007200103.tif 000005
【図４】
2007200103.tif 000006
【図５】
2007200103.tif 000007