(57)【要約】【課題】  ネットワークを介して接続している端末からの要求に応じて実行させるアプリケーションの起動手段に障害が発生した場合に、当該起動手段を自動的に復旧させることのできる情報処理装置、機能復旧方法、機能復旧プログラム及び記録媒体の提供を目的とする。【解決手段】  ネットワークを介して接続している端末からの要求に応じ、該要求に対応したプログラムを実行させるプログラム実行手段を有する情報処理装置であって、前記プログラム実行手段に対して所定の要求を送信し、該所定の要求に対する応答に基づいて前記プログラム実行手段が正常に動作しているかを判断し、前記プログラム実行手段が動作していないと判断した場合に、前記プログラム実行手段を起動させる監視手段を有することにより上記課題を解決する。【選択図】  図２
2005078163.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して接続している端末からの要求に応じ、該要求に対応したプログラムを実行させるプログラム実行手段を有する情報処理装置であって、
前記プログラム実行手段に対して所定の要求を送信し、該所定の要求に対する応答に基づいて前記プログラム実行手段が正常に動作しているかを判断し、前記プログラム実行手段が動作していないと判断した場合に、前記プログラム実行手段を起動させる監視手段を有することを特徴とする情報処理装置。
【請求項２】
前記監視手段は、前記プログラム実行手段に対して定期的に前記所定の要求を送信することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記監視手段が前記プログラム実行手段を起動させた後に前記端末より受信した要求に応じて、前記端末のユーザに該ユーザのユーザ情報を入力させるためのログイン画面を前記端末に対して送信させ、前記ログイン画面に基づいて前記端末より送信される要求に応じて、前記監視手段が前記プログラム実行手段を起動させる前に、前記端末において最後に表示されていた最終画面を前記端末に対して送信させる情報提供手段を有することを特徴とする請求項１又は２記載の情報処理装置。
【請求項４】
前記端末からの要求はＨＴＴＰリクエストであり、
前記監視手段が前記プログラム実行手段に対して送信する所定の要求は、ＨＴＴＰリクエストであることを特徴とする請求項１乃至３いずれか一項記載の情報処理装置。
【請求項５】
前記プログラム実行手段は、サーブレットコンテナであることを特徴とする請求項１乃至４いずれか一項記載の情報処理装置。
【請求項６】
ネットワークを介して接続している端末からの要求に応じ、該要求に対応したプログラムを実行させるプログラム実行手段を有する情報処理装置における機能復旧方法であって、
前記プログラム実行手段に対して所定の要求を送信する要求送信手順と、
該所定の要求に対する応答を受信する応答受信手順と、
前記応答受信手順において受信された応答に基づいて前記プログラム実行手段が正常に動作しているかを判断する動作判断手順と、
前記動作判断手順における判断結果に基づいて、前記プログラム実行手段を起動させる起動手順とを有することを特徴とする機能復旧方法。
【請求項７】
前記起動手順において前記プログラム実行手段が起動された後に前記端末より受信した要求に応じて、前記端末のユーザに該ユーザのユーザ情報を入力させるためのログイン画面を前記端末に対して送信するログイン画面送信手順と、
前記ログイン画面に基づいて前記端末より送信される要求に応じて、前記起動手順において前記プログラム実行手段が起動される前に前記端末において最後に表示されていた最終画面を前記端末に対して送信する最終画面送信手順とを有することを特徴とする請求項６記載の機能復旧方法。
【請求項８】
ネットワークを介して接続している端末からの要求に応じ、該要求に対応したプログラムを実行させるプログラム実行手段を有する情報処理装置に、
前記プログラム実行手段に対して所定の要求を送信する要求送信手順と、
該所定の要求に対する応答を受信する応答受信手順と、
前記応答受信手順において受信された応答に基づいて前記プログラム実行手段が正常に動作しているかを判断する動作判断手順と、
前記動作判断手順における判断結果に基づいて、前記プログラム実行手段を起動させる起動手順とを実行させるための機能復旧プログラム。
【請求項９】
前記起動手順において前記プログラム実行手段が起動された後に前記端末より受信した要求に応じて、前記端末のユーザに該ユーザのユーザ情報を入力させるためのログイン画面を前記端末に対して送信するログイン画面送信手順と、
前記ログイン画面に基づいて前記端末より送信される要求に応じて、前記起動手順において前記プログラム実行手段が起動される前に前記端末において最後に表示されていた最終画面を前記端末に対して送信する最終画面送信手順とを有することを特徴とする請求項８記載の機能復旧プログラム。
【請求項１０】
ネットワークを介して接続している端末からの要求に応じ、該要求に対応したプログラムを実行させるプログラム実行手段を有する情報処理装置に、
前記プログラム実行手段に対して所定の要求を送信する要求送信手順と、
該所定の要求に対する応答を受信する応答受信手順と、
前記応答受信手順において受信された応答に基づいて前記プログラム実行手段が正常に動作しているかを判断する動作判断手順と、
前記動作判断手順における判断結果に基づいて、前記プログラム実行手段を起動させる起動手順とを実行させるための機能復旧プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１１】
前記起動手順において前記プログラム実行手段が起動された後に前記端末より受信した要求に応じて、前記端末のユーザに該ユーザのユーザ情報を入力させるためのログイン画面を前記端末に対して送信するログイン画面送信手順と、
前記ログイン画面に基づいて前記端末より送信される要求に応じて、前記起動手順において前記プログラム実行手段が起動される前に前記端末において最後に表示されていた最終画面を前記端末に対して送信する最終画面送信手順とを有することを特徴とする請求項１０記載の機能復旧プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、機能復旧方法、機能復旧プログラム及び記録媒体に関し、特に障害が発生した場合に自動的に機能を復旧させる情報処理装置、機能復旧方法、機能復旧プログラム及び記録媒体に関する。
【背景技術】
【０００２】
ＷｅｂクライアントからのＨＴＴＰリクエストに応じて、Ｗｅｂサーバ上においてアプリケーションを動作させるための手段の一つとしてＪａｖａ（登録商標）サーブレット（以下、単に「サーブレット」という。）が知られている。サーブレットは、それぞれが独立したプロセスとして起動されるＣＧＩと異なり、サーブレットコンテナと呼ばれるアプリケーションによってスレッドとして起動される。したがって、サーブレットによってＷｅｂアプリケーションを実装することによって、Ｗｅｂサーバへの負荷を軽減できるというメリットがある。
【０００３】
ここで、サーブレットはサーブレットコンテナと同じプロセス空間において動作するため、サーブレットにおける不具合等により、サーブレットコンテナごとストールしてしまうことがある。サーブレットコンテナがストールしてしまうと、以降にＷｅｂクライアントから送信されるＨＴＴＰリクエストに対する処理の実行が不可能となる。
【０００４】
ところで、ＯＳ等によって提供されているＡＰＩや所定のツールを用いることで、コンピュータ上で動作するアプリケーションの動作を自動的に監視することができる。したがって、かかるツール等（以下、「監視ツール」という。）を用いることによって、サーブレットコンテナの動作を監視することが考えられる。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、監視ツールは、アプリケーションが対応するプロセスの存在を監視することによって、アプリケーションの監視を実現しているため、サーブレットコンテナを直接監視することはできない。サーブレットコンテナは、Ｊａｖａ（登録商標）Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ（以下、「ＪＶＭ」という。）上で動作するＪａｖａ（登録商標）アプリケーションとして実装されており、独立したプロセスとしてではなく、ＪＶＭのプロセス空間内で動作するからである。
【０００６】
図１は、一般的な監視ツールによるアプリケーションの監視の様子を示す図である。図１においては、ＯＳ上に、監視ツール５０１、アプリ（アプリケーション）５０２、アプリ５０３、及びＪＶＭ５０４がそれぞれプロセスとして起動されており、更に、ＪＶＭ５０４においては、サーブレットコンテナ５０５、アプリ５０５及びアプリ５０６等のＪａｖａ（登録商標）アプリケーションが動作している様子を示している。
【０００７】
ここで、プロセス単位で監視を行う監視ツール５０１は、アプリ５０２、アプリ５０３及びＪＶＭ５０４の動作については監視することができるが、ＪＶＭ５０４上で動作するサーブレットコンテナ５０５等については監視することができない。
【０００８】
したがって、結局のところ、Ｗｅｂサーバの管理者が人手によってサーブレットコンテナがストールした旨を検知し、サーブレットコンテナの再起動を行なわなければならず、障害が発生してから復旧されるまで時間がかかるという問題があった。
【０００９】
本発明は、上記の点に鑑みてなされたものであって、ネットワークを介して接続している端末からの要求に応じて実行させるアプリケーションの起動手段に障害が発生した場合に、当該起動手段を自動的に復旧させることのできる情報処理装置、機能復旧方法、機能復旧プログラム及び記録媒体の提供を目的とする。
【課題を解決するための手段】
【００１０】
そこで上記課題を解決するため、本発明は、請求項１に記載されるように、ネットワークを介して接続している端末からの要求に応じ、該要求に対応したプログラムを実行させるプログラム実行手段を有する情報処理装置であって、前記プログラム実行手段に対して所定の要求を送信し、該所定の要求に対する応答に基づいて前記プログラム実行手段が正常に動作しているかを判断し、前記プログラム実行手段が動作していないと判断した場合に、前記プログラム実行手段を起動させる監視手段を有することを特徴とする。
【００１１】
このような情報処理装置では、Ｗｅｂアプリケーション等の起動手段であるプログラム実行手段に障害が発生している旨を検知できると共に、障害の発生の検知に基づいてプログラム実行手段を再起動させることができる。
【００１２】
また上記課題を解決するため、本発明は、上記情報処理装置における機能復旧方法、前記機能復旧方法をコンピュータに実行させるための機能復旧プログラム、又は前記機能復旧プログラムを記録した記録媒体としてもよい。
【発明の効果】
【００１３】
本発明によれば、ネットワークを介して接続している端末からの要求に応じて実行させるアプリケーションの起動手段に障害が発生した場合に、当該起動手段を自動的に復旧させることのできる情報処理装置、機能復旧方法、機能復旧プログラム及び記録媒体を提供することができる。
【発明を実施するための最良の形態】
【００１４】
以下、図面に基づいて本発明の実施の形態を説明する。図２は、本発明の実施の形態におけるＷｅｂシステムの構成例を示す図である。図２に示されるＷｅｂシステム１は、ＬＡＮ又はインターネット等のネットワーク３０を介して接続されたＷｅｂサーバ１０及び端末２０等によって構成されている。
【００１５】
Ｗｅｂサーバ１０は、端末２０に対してＷｅｂページを提供するいわゆるＷｅｂサーバであり、Ｗｅｂサーバプログラム１１、サーブレットコンテナ１２、Ｗｅｂアプリ１３及び監視アプリ１４等を有している。
【００１６】
Ｗｅｂサーバプログラム１１は、一般にＨＴＴＰｄ（HTTP daemon）と呼ばれるプログラムに相当するものであり、端末２０からのＨＴＴＰリクエストを受信し、当該ＨＴＴＰリクエストにおいて要求されたリソースをＨＴＴＰレスポンスに含めて端末２０に対して返信する。
【００１７】
サーブレットコンテナ１２は、例えば、Ａｐａｃｈｅ  Ｓｏｆｔｗａｒｅ  Ｆｏｕｎｄａｔｉｏｎによって提供されているＴｏｍｃａｔ（トムキャット）等、いわゆるサーブレットコンテナであり、Ｗｅｂサーバプログラム１１の受信したＨＴＴＰリクエストの内容を解釈し、Ｗｅｂアプリ１３を呼び出す。
【００１８】
Ｗｅｂアプリ１３は、Ｊａｖａ（登録商標）サーブレットとして実装されているいわゆるＷｅｂアプリケーションであり、所定の処理を実行し、その処理結果としてＷｅｂページを出力する。
【００１９】
監視アプリ１４は、サーブレットコンテナ１２の動作を監視するためのアプリケーションであり、サーブレットコンテナ１２のストールの検知及びサーブレットコンテナの再起動等を実行する。
【００２０】
一方、端末２０は、Ｗｅｂシステム１のユーザが直接利用する、ＰＣ（Personal
Computer）、ＰＤＡ（Personal
Digital(Data) Assistants）、携帯電話等の端末であり、Ｗｅｂサーバ１０によって提供されるＷｅｂページを閲覧するためのＷｅｂブラウザ２１を備えている。
【００２１】
図３は、本発明の実施の形態におけるＷｅｂサーバのハードウェア構成例を示す図である。図３のＷｅｂサーバ１０は、それぞれバスBで相互に接続されているドライブ装置１００と、補助記憶装置１０２と、メモリ装置１０３と、演算処理装置１０４と、インタフェース装置１０５とを有するように構成される。
【００２２】
Ｗｅｂサーバ１０での処理を実現するプログラムは、CD―ROM等の記録媒体１０１によって提供される。プログラムを記録した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００２３】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。演算処理装置１０４は、メモリ装置１０３に格納されたプログラムに従ってＷｅｂサーバ１０に係る機能を実行する。インタフェース装置１０５は例えばモデム、ルータ等で構成され、図２のネットワーク３０に接続するために用いられる。
【００２４】
以下、図２のＷｅｂサーバ１０の処理手順について説明する。図４は、監視アプリによるサーブレットコンテナの監視処理を説明するためのフローチャートである。
【００２５】
ステップＳ１０１において、監視アプリ１４は、定期的に送信しているＨＴＴＰリクエストの一つとして、所定のＨＴＴＰリクエストをサーブレットコンテナ１２に対して送信する。ここで、所定のＨＴＴＰリクエストは、サーブレットコンテナ１２によって正常に処理され得るものであればどのようなものでもよい。
【００２６】
ステップＳ１０１に続いてステップＳ１０２に進み、監視アプリ１４は、ＨＴＴＰリクエストに応じて返信されたＨＴＴＰレスポンスを受信する。
【００２７】
ステップＳ１０２に続いてステップＳ１０３に進み、監視アプリ１４は、ＨＴＴＰレスポンスに含まれているステータスコードを参照することによって、サーブレットコンテナ１２が正常に動作しているか否かを判断する。例えば、ステータスコードが２００（ＯＫ）である場合は、サーブレットコンテナ１２は正常に動作しているものと判断することができる。一方、ステータスコードが４０４（ＮｏｔＦｏｕｎｄ）であれば、サーブレットコンテナ１２はストールしている等、障害が発生しているものと判断することができる。
【００２８】
サーブレットコンテナ１２が正常に動作していると判断した場合は、監視アプリ１４は、所定時間待機した後（Ｓ１０４）、ステップＳ１０１以降の処理を繰り返す。
【００２９】
サーブレットコンテナ１２に異常が発生していると判断した場合は、監視アプリ１４は、起動コマンドによってサーブレットコンテナ１２を再起動し（Ｓ１０５）、ステップＳ１０１以降の処理を繰り返す。
【００３０】
上述したように、本実施の形態における監視アプリ１４によれば、ＨＴＴＰリクエストを送信し、その応答であるＨＴＴＰレスポンスに基づいてサーブレットコンテナ１２が正常に動作しているか否かを判断するため、サーブレットコンテナ１２が独立したプロセスとして起動されていない場合であっても、サーブレットコンテナ１２の動作を監視することができる。また、監視アプリ１４は、異常を検知した場合は、サーブレットコンテナ１２の起動処理も実行するため、サーブレットコンテナ１２の障害から自動的に復旧させることができる。したがって、システム管理者の負担を軽減することができると共に、Ｗｅｂサーバ１０にアクセスしていたユーザについても、復旧までに長時間待たすことなく、障害が発生したことを認識させずに済む場合もある。
【００３１】
ここで、Ｗｅｂアプリ１３が、例えば、図５に示されるようなページ遷移によってサービスを提供するものである場合を考える。図５は、本発明の実施の形態におけるＷｅｂアプリのページ遷移を説明するための図である。図５においては、Ｗｅｂアプリ１３が、ログインページ２１０、Ａページ２２０、Ｂページ２３０、Ｃページ２４０という順番でページを遷移させることを表している。ログインページ２１０は、セッションを開設するためにユーザ情報の入力を要求するためのページである。Ａページ２２０は、ログインページ２１０において入力されたユーザ情報に基づいてユーザが認証された場合に遷移するページであり、例えばポータルページのようなものを想定すればよい。Ｂページ２３０は、Ａページ２２０における所定の操作に基づいて遷移するページである。また、Ｃページ２４０は、Ｂページ２３０における所定の操作に基づいて遷移するページである。
【００３２】
ここで、端末２０のＷｅｂブラウザ２１にＢページ２３０が表示されていた際に、Ｗｅｂサーバ１０において、図４において説明した処理によってサーブレットコンテナ１２の再起動が実行されたとする。この場合、ログインページ２１０に入力され、Ｗｅｂアプリ１３によってメモリ上に管理されていたセッション情報に含まれていたユーザ情報は、ストールと共に失われてしまっている。したがって、Ｂページ２３０に基づいて端末２０からＨＴＴＰリクエストが送信されても、その後の処理を正常に継続することができないという問題がある。
【００３３】
そこで、次に、上述した監視アプリ１４によってサーブレットコンテナ１２が再起動された後に、端末２０からＨＴＴＰリクエストを受信した場合の処理について説明する。
【００３４】
図６は、サーブレットコンテナの再起動が実行された後の処理を説明するためのシーケンス図である。図６の説明の前提として、端末２０のＷｅｂブラウザ２１には、ログインページ２１０、Ａページ２２０を経てＢページ２３０が表示されており、Ｂページ２３０が表示されている間に、図４の処理が実行されたものとする。
【００３５】
ステップＳ２０１において、ユーザが、Ｂページ２３０においてＣページ２４０に遷移させるための所定の操作を行うと、端末２０のＷｅｂブラウザ２１はＣページ２４０の送信を要求するＨＴＴＰリクエストをＷｅｂサーバ１０に対して送信する。
【００３６】
ステップＳ２０１に続いてステップＳ２０２に進み、ＨＴＴＰリクエストに基づいてＷｅｂサーバプログラム１１を介してサーブレットコンテナ１２によってＷｅｂアプリ１３が呼び出されると、Ｗｅｂアプリ１３は、セッション情報が無効となっている旨を検知する。サーブレットコンテナ１２が再起動されたことにより、メモリ上に管理されていたセッション情報がクリアされてしまっているからである。
【００３７】
ステップＳ２０２に続いてステップＳ２０３に進み、Ｗｅｂアプリ１３は、セッション情報がクリアされている旨の検知に基づいて、セッションの開設に必要なユーザ情報の再度の入力を要求すべく、ＨＴＴＰリクエストにおいて要求されているＣページ２４０ではなく、ログインページ２１０を端末２０に対する送信対象とする。
【００３８】
ステップＳ２０３に続いてステップＳ２０４に進み、Ｗｅｂサーバプログラム１１が端末２０に対してログインページ２１０を送信すると、Ｗｅｂブラウザ２１によってログインページが表示される（Ｓ２０５）。端末２０のユーザは、Ｃページ２４０ではなくログインページ２１０が表示されたことにより、何らかの原因によってセッションが無効となってしまった旨を知ることになる。
【００３９】
ユーザが、ログインページ２１０においてユーザ名及びパスワード等のユーザ情報を入力すると、Ｗｅｂブラウザ２１は、ユーザ情報を伴ってＡページ２２０を要求するＨＴＴＰリクエストをＷｅｂサーバ１０に対して送信する（Ｓ２０６）。
【００４０】
ステップＳ２０６に続いてステップＳ２０７に進み、ＨＴＴＰリクエストに基づいて呼び出されたＷｅｂアプリ１３は、ユーザ情報に基づいてユーザの認証を行うとともにＷｅｂブラウザ２１とのセッションを開設する。
【００４１】
ステップＳ２０７に続いてステップＳ２０８に進み、Ｗｅｂアプリ１３は、サーブレットコンテナ１２の再起動が実行される前に、Ｗｅｂブラウザ２１において最後に表示されていたＷｅｂページ（以下、「最終ページ」という。）を判断し、ＨＴＴＰリクエストにおいて要求されているＡページ２１０ではなく、最終ページを端末２０に対する送信対象とする。
【００４２】
最終ページの判断方法は種々考えられるが、例えば、Ｗｅｂアプリ１３がＷｅｂブラウザ２１に対して送信したＷｅｂページのＵＲＬをその都度ファイル等に保存しておき、当該ファイル等を参照することにより判断するようにしてもよい。上述したように、本実施の形態においてはＢページ２３０がＷｅｂブラウザ２１に表示されている最中にサーブレットコンテナ１２の再起動が実行されているため、ここではＢページ２３０が最終ページとして判断される。
【００４３】
ステップＳ２０８に続いてステップＳ２０９に進み、Ｗｅｂサーバプログラム１１が、最終ページであるＢページ２３０を端末２０に対して送信すると、Ｗｅｂブラウザ２１によってＢページ２３０が表示される。
【００４４】
上述したように、図６におけるＷｅｂサーバ１０によれば、図４において説明した処理によりサーブレットコンテナ１２が再起動されることによりセッション情報が無効となった場合に、ユーザは、ログインページ２１０によって再度のユーザ情報の入力が要求されるものの、ログインページ２１０の次には、Ａページ２２０ではなく最終ページに自動的に遷移させるため、ユーザは、自身でページを遷移させる必要はなく、最終ページにおける作業をそのまま継続させることができる。
【００４５】
以上、本発明の好ましい実施例について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【００４６】
【図１】一般的な監視ツールによるアプリケーションの監視の様子を示す図である。
【図２】本発明の実施の形態におけるＷｅｂシステムの構成例を示す図である。
【図３】本発明の実施の形態におけるＷｅｂサーバのハードウェア構成例を示す図である。
【図４】監視アプリによるサーブレットコンテナの監視処理を説明するためのフローチャートである。
【図５】本発明の実施の形態におけるＷｅｂアプリのページ遷移を説明するための図である。
【図６】サーブレットコンテナの再起動が実行された後の処理を説明するためのシーケンス図である。
【符号の説明】
【００４７】
１            Ｗｅｂシステム
１０          Ｗｅｂサーバ
１１          Ｗｅｂサーバプログラム
１２          サーブレットコンテナ
１３          Ｗｅｂアプリ
１４          監視アプリ
２０          端末
２１          Ｗｅｂブラウザ
３０          ネットワーク
１００        ドライブ装置
１０１        記録媒体
１０２        補助記憶装置
１０３        メモリ装置
１０４        演算処理装置
１０５        インタフェース装置
２１０        ログインページ
２２０        Ａページ
２３０        Ｂページ
２４０        Ｃページ
５０１        監視ツール
５０２、５０３、５０６、５０７    アプリ
５０４        ＪＶＭ
５０５        サーブレットコンテナ
Ｂ    バス
【図１】
2005078163.tif 000003
【図２】
2005078163.tif 000004
【図３】
2005078163.tif 000005
【図４】
2005078163.tif 000006
【図５】
2005078163.tif 000007
【図６】
2005078163.tif 000008