(57)【特許請求の範囲】
【請求項１】
コンピュータ上で動作するアプリケーションプログラムとウェブブラウザを備え、前記アプリケーションプログラムにより前記ウェブブラウザを利用するコンピュータシステムにおいて、
前記コンピュータシステム上で動作し、前記ウェブブラウザを監視する再起動制御部と、前記コンピュータシステム上で動作し、前記ウェブブラウザと前記アプリケーションプログラムとの間に前記ウェブブラウザへの命令および命令へのレスポンスを中継するラッピングオブジェクトとを備え、
前記再起動制御部は前記ウェブブラウザの再起動を行う際、前記ラッピングオブジェクトに対して前記ウェブブラウザの再起動を行う旨の通知を行い、
前記ラッピングオブジェクトは、前記再起動を行う旨の通知を受けると、前記アプリケーションプログラムに対して、前記ウェブブラウザの再起動の可否の問合せを行い、前記アプリケーションプログラムから再起動可能の旨の応答があった場合に前記ウェブブラウザの再起動を行うとともに、前記ウェブブラウザの再起動中に前記アプリケーションプログラムから前記ウェブブラウザへの命令を受け付けると、再起動の完了まで当該命令を保持することを特徴とするコンピュータシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータシステムの再起動装置に関し、特にアプリケーションプログラムがＷｅｂ（ウェブ）ブラウザを利用するシステムにおけるものである。
【０００２】
【従来の技術】
従来のコンピュータシステムにおいては、即時にサービスの提供が中止されるような障害を検知してシステムを再起動させることはできた。しかし、アプリケーションプログラムのバグなどによるメモリーリーク等が原因によって、即時に障害とはならないが、運用を継続していくといつか障害となるような異常の発生を事前に検知することはできなかった。
【０００３】
そのため、実際に障害が発生してから対応するか、あるいはメモリの使用率などを運用管理者が監視して対処を行っていた。
【０００４】
【発明が解決しようとする課題】
しかしながら、運用時間が延長され、２４時間の連続サービスを提供するシステムが増加してきて、有人での対処には限界があること、また、障害の発生を予測して予防的に保守して可用性を向上させる必要が生じてきた。また、現在の端末システムはＷｅｂ（ウェブ）ベースで作成されることが多くなってきたが、その場合にはウェブブラウザ特有の異常を検知して対処する必要がある。以上述べた従来の方法では、以下の問題がある。
【０００５】
（１）アプリケーションプログラムはウェブブラウザに対して直接命令を発行しており、命令実行中にウェブブラウザの再起動を行うとアプリケーションプログラムが動作しなくなる可能性がある。
（２）ウェブブラウザの再起動を行う際に、アプリケーションプログラムが再起動中にウェブブラウザへの命令を発行するとウェブブラウザでは命令を受けることができず、結果としてアプリケーションプログラムにおいてエラーが発生してしまう。
（３）ウェブブラウザの再起動を行う際に、ウェブブラウザ内にて保持している情報が消滅してしまい、再起動後にその情報が利用できなくなりウェブブラウザにてエラーが発生してしまう。
したがって、上記の各問題があるため、技術的に満足できるものではなかった。
【０００６】
【課題を解決するための手段】
本発明は、コンピュータ上で動作するアプリケーションプログラムとウェブブラウザを備え、前記アプリケーションプログラムにより前記ウェブブラウザを利用するコンピュータシステムにおいて、
前記コンピュータシステム上で動作し、前記ウェブブラウザを監視する再起動制御部と、前記コンピュータシステム上で動作し、前記ウェブブラウザと前記アプリケーションプログラムとの間に前記ウェブブラウザへの命令および命令へのレスポンスを中継するラッピングオブジェクトとを備え、
前記再起動制御部は前記ウェブブラウザの再起動を行う際、前記ラッピングオブジェクトに対して前記ウェブブラウザの再起動を行う旨の通知を行い、
前記ラッピングオブジェクトは、前記再起動を行う旨の通知を受けると、前記アプリケーションプログラムに対して、前記ウェブブラウザの再起動の可否の問合せを行い、前記アプリケーションプログラムから再起動可能の旨の応答があった場合に前記ウェブブラウザの再起動を行うとともに、前記ウェブブラウザの再起動中に前記アプリケーションプログラムから前記ウェブブラウザへの命令を受け付けると、再起動の完了まで当該命令を保持することを特徴としたものである。
【００１１】
【発明の実施の形態】
（実施例１）
図1は、この発明の実施例を示す構成例であって、監視対象ソフトウェアであるウェブブラウザ101、ウェブブラウザに命令を発行しているアプリケーションプログラム102、命令発行状態の通知を行うアプリケーションプログラムインターフェース(API)103、ウェブブラウザを監視及び再起動を行う再起動装置104から構成されている。これらはオペレーティング・システム（以下、OSと表記する)105上に構成される。
【００１２】
ウェブブラウザの再起動を行う手順を図２のフローチャートに示す。 まず、 アプリケーションプログラム102では命令発行中か否かをAPI 103を用いて再起動装置104に通知する（S201）。通知時にはウェブブラウザの再起動時間の待ち合わせを行い命令を実行する（S202）。 再起動装置104ではウェブブラウザ101の監視を行う（S203）。 再起動装置104にて再起動を行う必要があることが検出された後（S204）、API 103による再起動可能である旨の通知が来た場合（S205）、再起動装置104では、ウェブブラウザ101の再起動を行う（S206）。
【００１３】
以上、実施例１によれば、ウェブブラウザへ実際に命令を発行しているアプリケーションプログラムが再起動可能時期の通知を行っているため、再起動時にアプリケーションプログラムがウェブブラウザを使用していることがなくなり、命令実行中にウェブブラウザの再起動を行うことにおいて、アプリケーションプログラムが動作しなくなることがなくなる（第一の課題の解決）。
【００１４】
（実施例２）
図３はこの発明の実施例を示す構成例であって、監視対象ソフトウェアであるウェブブラウザ301、ウェブブラウザのかわりにアプリケーションプログラムからの命令を受け付け、ウェブブラウザの再起動を行うラッピングオブジェクト302、ウェブブラウザに命令を発行しているアプリケーションプログラム303、ウェブブラウザの監視を行う再起動装置304から構成されている。これらはOS305上に構成される。
【００１５】
ウェブブラウザの再起動を行う手順を図４のフローチャートを用いて説明する。まず、ラッピングオブジェクト302ではアプリケーションプログラムから、ウェブブラウザへの命令を受けウェブブラウザへ通知する(S401)。命令のレスポンスもウェブブラウザから返却されるものをそのまま返却する(S402)。再起動装置304ではウェブブラウザ301の監視を行う(S403)。
【００１６】
再起動装置304にて再起動を行う必要が検出後(S404)、ラッピングオブジェクト302に対し再起動を行う旨の通知を行う(S405)。ラッピングオブジェクト302ではウェブブラウザ301の再起動を行う(S406)。ラッピングオブジェクト302において、ウェブブラウザが再起動中ならば(S407)、アプリケーション303からの命令を受け付けるが、ウェブブラウザ301には通知せず保持する(S408)。ウェブブラウザ301の再起動が完了後、アプリケーション302の命令をウェブブラウザ301に通知する(S409)。
【００１７】
以上の実施例によれば、ウェブブラウザの再起動を行う際に、アプリケーションが再起動中にウェブブラウザのへの命令を発行した際にラッピングオブジェクトにて再起動終了まで命令を保持するため、命令を受けることができずにアプリケーションにてエラーが発生してしまうということがなくなる。[第2の課題の解決]
【００１８】
（実施例３）
図５は、この発明の実施例を示す構成例であって、  監視対象ソフトウェアであるウェブブラウザ501、ウェブブラウザのかわりにアプリケーションプログラムからの命令を受け、ウェブブラウザの再起動を行うラッピングオブジェクト502、ウェブブラウザに命令を発行しているアプリケーションプログラム503、ウェブブラウザの監視を行う再起動装置504、ウェブブラウザの情報を保存する情報記憶領域505から構成されている。これらはOS506上に構成される。
【００１９】
実施例３におけるウェブブラウザの再起動の方法を図６のフローチャートをもとに説明する。ラッピングオブジェクト502ではアプリケーションプログラムから、ウェブブラウザへの命令を受けウェブブラウザへ通知する(S601)。命令のレスポンスもウェブブラウザから返却されるものをそのまま返却する(S602)。
【００２０】
再起動装置504ではウェブブラウザ501の監視を行う(S603)。再起動装置504にて再起動を行う必要が検出後(S604)、ラッピングオブジェクト502に対し再起動を行う旨の通知を行う(S605)。ラッピングオブジェクト602ではウェブブラウザ601の保持データの取得を行い情報記憶領域105に保存する(S606)。
【００２１】
ラッピングオブジェクト502ではウェブブラウザ501の再起動を行う(S607)。ラッピングオブジェクト502では再起動中ならば(S608)アプリケーション503からの命令を受け付けるがウェブブラウザ501には通知せず保持する(S609)。ウェブブラウザ501の再起動が完了後アプリケーション502の命令をウェブブラウザ501に通知する(S610)。
【００２２】
以上、実施例３によれば、ウェブブラウザの再起動を行う際に、ウェブブラウザ内にて保持している情報を保持及び再現することができ、ウェブブラウザ再起動後にその情報が利用できなくなることがなくなり、ウェブブラウザが正常に動作可能となる。[第3の課題の解決]
【００２３】
（実施例４）
図７は、この発明の実施例４を示す構成であって、監視対象ソフトウェアであるウェブブラウザ701、ウェブブラウザのかわりにアプリケーションプログラムからの命令を受け、ウェブブラウザの再起動を行うラッピングオブジェクト702、ウェブブラウザに命令を発行しているアプリケーションプログラム703、ウェブブラウザの監視を行う再起動装置704、 ウェブブラウザの情報を保存する情報記憶領域705、再起動のタイミングが保持されている再起動タイミング管理テーブル706から構成されている。これらはOS707上に構成される。
【００２４】
実施例４におけるウェブブラウザの再起動を行う手順を図８のフローチャートをもとに説明する。ラッピングオブジェクト702ではアプリケーションプログラムから、ウェブブラウザへの命令を受けウェブブラウザへ通知する(S801)。命令のレスポンスもウェブブラウザから返却されるものをそのまま返却する(S802)。
【００２５】
再起動装置704ではウェブブラウザ701の監視を行う(S803)。再起動装置704にて再起動を行う必要が検出後(S804)、ラッピングオブジェクト702に対し再起動を行う旨の通知を行う(S805)。
【００２６】
ラッピングオブジェクト702ではウェブブラウザ101の動作ステップの監視(イベント及び命令実行の監視)を行い(S806)、再起動タイミング管理テーブル706に保持されている再起動タイミングデータと一致するステップであるかを比較する(S807)。比較結果が一致した場合、ラッピングオブジェクト702ではウェブブラウザ701の保持データの取得を行い情報記憶領域705に保存する(S808)。一致しない場合は動作ステップの監視を続ける（S806）。
【００２７】
ラッピングオブジェクト702ではウェブブラウザ701の再起動を行う(S809)。ラッピングオブジェクト702では再起動中のときは(S810)、アプリケーション703からの命令を受け付けるがウェブブラウザ701には通知せず保持する(S811)。ウェブブラウザ701の再起動が完了後アプリケーション702の命令をウェブブラウザ701に通知する(S812)。
【００２８】
以上、実施例４によれば、ウェブブラウザの動作ステップを監視し、あらかじめ決めておいた再起動タイミングでのみ再起動を行うことにより、アプリケーションプログラムによる命令実行途中でのウェブブラウザの再起動がなくなる。[第1の課題の解決]
【００２９】
（実施例５）
実施例５においては、構成は先に用いた実施例2と同じであるため、構成図は再び図３を用いる。監視対象ソフトウェアであるウェブブラウザ301、ウェブブラウザのかわりにアプリケーションプログラムからの命令を受け、ウェブブラウザの再起動を行うラッピングオブジェクト302、ウェブブラウザに命令を発行しているアプリケーション303、ウェブブラウザの監視を行う再起動装置304から構成されている。これらはOS305上に構成される。
【００３０】
実施例５におけるウェブブラウザの再起動を行う手順を図９のフローチャートをもとに説明する。まずラッピングオブジェクト302ではアプリケーションプログラムから、ウェブブラウザへの命令を受けウェブブラウザへ通知する(S901)。命令のレスポンスもウェブブラウザから返却されるものをそのまま返却する(S902)。
【００３１】
再起動装置304ではウェブブラウザ301の監視を行う(S903)。再起動装置304にて再起動を行う必要があるかどうかを判定し(S904)、必要な場合にはラッピングオブジェクト302に対し再起動を行う旨の通知を行う(S905)。再起動が必要でない場合には監視状態に戻る。ラッピングオブジェクト302ではアプリケーションプログラム303へウェブブラウザ301の再起動を行うことが可能であるかの問い合わせを行う(S906)。
【００３２】
ラッピングオブジェクト302では、アプリケーションプログラム903からの応答が再起動可能(S907)であれば、ウェブブラウザ301の再起動を行う(S908)。可能でなければ可能になるまで、アプリケーションプログラム303への問い合わせを繰り返し行う。
【００３３】
アプリケーションプログラム303では再起動中はウェブブラウザ301への処理を中止する(S909)。ウェブブラウザ301の再起動が完了後(S910)、アプリケーションプログラム302へ再起動を完了した旨の通知を行う(S911)。アプリケーションプログラム302は処理を再開する(S912)。
【００３４】
ウェブブラウザへの処理を行っているアプリケーションプログラムへウェブブラウザの再起動を行うことが可能であるかを問い合わせることにより、再起動中にアプリケーションからウェブブラウザへの命令の発行がなくなるためアプリケーションにてエラーが発生することがなくなる。又、アプリケーションプログラムがウェブブラウザに対して命令発行中にウェブブラウザの再起動を行うことがなくなるためアプリケーションプログラムが動作しなくなる問題が解決する[第1の課題と第2の課題の解決]。
【００３５】
【効果の説明】
以上、実施例で説明したように、ウェブブラウザへ実際に命令を発行しているアプリケーションプログラムが再起動可能時期の通知を行っているため、再起動時にアプリケーションプログラムがウェブブラウザを使用していることがなくなり、命令実行中にウェブブラウザの再起動を行うことにおいて、アプリケーションプログラムが動作しなくなることがなくなる。これにより、プログラムを停止することなく再起動を実行することが可能になり、障害の発生が予測された場合に事前に再起動を行うことに支障が少なくなり、ウェブブラウザに起因する障害を防止することができる。これにより、システム全体の保守性、安全性、連続運用性を向上させることができる。
【００３６】
また、ウェブブラウザの再起動を行う際に、アプリケーションプログラムが再起動中にウェブブラウザのへの命令を発行した際にラッピングオブジェクトにて再起動終了まで命令を保持するため、命令を受けることができずにアプリケーションプログラムにてエラーが発生してしまうということがなくなる。このためプログラム実行の効率が低下することなく再起動を実行することが可能になる。
【００３７】
さらに、ウェブブラウザの再起動を行う際に、ウェブブラウザ内にて保持している情報を保持及び再現することができ、ウェブブラウザ再起動後にその情報が利用できなくなることがなくなり、ウェブブラウザが正常に動作可能となる。このため、再起動を行っても再起動前の情報を利用することができ、再起動がプログラムに与える影響を小さくすることが可能になる。
【図面の簡単な説明】
【図１】実施例１の構成図である。
【図２】実施例１において再起動を実行するフローチャートである。
【図３】実施例２の構成図である。
【図４】実施例２において再起動を実行するフローチャートである。
【図５】実施例３の構成図である。
【図６】実施例３において再起動を実行するフローチャートである。
【図７】実施例４の構成図である。
【図８】実施例４において再起動を実行するフローチャートである。
【図９】実施例５において再起動を実行するフローチャートである。
【符号の説明】
301  ウェブブラウザ
302  ラッピングオブジェクト
303  アプリケーションプログラム
304  再起動装置
305  OS
【図１】
0004854107.tif 000002
【図２】
0004854107.tif 000003
【図３】
0004854107.tif 000004
【図４】
0004854107.tif 000005
【図５】
0004854107.tif 000006
【図６】
0004854107.tif 000007
【図７】
0004854107.tif 000008
【図８】
0004854107.tif 000009
【図９】
0004854107.tif 000010