(57)【要約】【課題】  サービスに登録されるプログラムの不具合発生時に、ユーザのオペレーションを発生させること無く、以降のプログラムの自動起動を停止するプログラム管理方法を提供することを目的とする。【解決手段】  サービスに登録されて、別プログラムを実行し、自身と実行したプログラムの両方を監視する役割の第１のプログラムと、第１のプログラムにより実行、監視される第２のプログラムにおいて、第１の第２のプログラムは、ステータス情報を保存し、第１のプログラムは、取得したステータス情報に応から異常終了を判断して、第１のプログラム自身のサービスへの登録を削除する。【選択図】  図３
2011118706.tif 000002
【特許請求の範囲】
【請求項１】
オペレーティングシステムの起動時に実行されるサービスプログラムとして登録される第１のプログラムと、前記第１のプログラムから起動される第２のプログラムとを実行する情報処理装置であって、
前記第１のプログラムの起動、または終了を示すステータス情報と、前記第２のプログラムの起動、または終了を示すステータス情報を保存する保存手段と、
前記第１のプログラムの起動時に、前記保存手段により保存されたステータス情報を読み込み、読み込まれた前記第１のプログラムのステータス情報が起動を示した場合、または、前記第２のプログラムのプロセスが存在していない際に前記保存手段により保存されたステータス情報を読み込み、読み込まれた前記第２のプログラムのステータス情報が起動を示した場合、サービスプログラムとして登録されている前記第１のプログラムを削除する削除手段とを有することを特徴とする情報処理装置。
【請求項２】
前記ステータス情報をファイルとして保存することを特徴とする請求項１記載の情報処理装置。
【請求項３】
上位バージョンの第１のプログラムのインストールにより、前記ステータス情報を削除して、第１のプログラムをサービスプログラムとして登録することを特徴とする請求項１または２記載の情報処理装置。
【請求項４】
オペレーティングシステムの起動時に実行されるサービスプログラムとして登録される第１のプログラムと、前記第１のプログラムから起動される第２のプログラムとを管理する情報処理方法において、
前記第１のプログラムの起動、または終了を示すステータス情報と、前記第２のプログラムの起動、または終了を示すステータス情報を保存する保存ステップと、
前記第１のプログラムの起動時に、前記保存ステップにより保存されたステータス情報を読み込み、読み込まれた前記第１のプログラムのステータス情報が起動を示した場合、または、前記第２のプログラムのプロセスが存在していない際に前記保存手段により保存されたステータス情報を読み込み、読み込まれた前記第２のプログラムのステータス情報が起動を示した場合、サービスプログラムとして登録されている前記第１のプログラムを削除する削除ステップとを有することを特徴とする情報処理方法。
【請求項５】
前記ステータス情報をファイルとして保存することを特徴とする請求項４記載の情報処理方法。
【請求項６】
上位バージョンの第１のプログラムのインストールにより、前記ステータス情報を削除して、第１のプログラムをサービスプログラムとして登録することを特徴とする請求項４または５記載の情報処理方法。
【請求項７】
オペレーティングシステムの起動時に実行されるサービスプログラムとして登録される第１のプログラムと、前記第１のプログラムから起動される第２のプログラムとを実行するするコンピュータで実行されるプログラムであって、
前記第１のプログラムの起動、または終了を示すステータス情報と、前記第２のプログラムの起動、または終了を示すステータス情報を保存する保存ステップと、
前記第１のプログラムの起動時に、前記保存ステップにより保存されたステータス情報を読み込み、読み込まれた前記第１のプログラムのステータス情報が起動を示した場合、または、前記第２のプログラムのプロセスが存在していない際に前記保存手段により保存されたステータス情報を読み込み、読み込まれた前記第２のプログラムのステータス情報が起動を示した場合、サービスプログラムとして登録されている前記第１のプログラムを削除する削除ステップとをコンピュータに実行させることを特徴とするプログラム。
【請求項８】
前記ステータス情報をファイルとして保存することを特徴とする請求項７記載のプログラム。
【請求項９】
上位バージョンの第１のプログラムのインストールにより、前記ステータス情報を削除して、第１のプログラムをサービスプログラムとして登録することを特徴とする請求項７または８記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はプログラムの管理を行なう情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、オペレーティングシステム（以下ＯＳと称する）には、ＯＳの起動時に自動的にプログラムを実行する機能がある。この機能を用いて実行される自動的に実行されるプログラムは、サービスプログラムと呼ばれる。サービスプログラムは、Ｗｅｂサーバ機能やメールサーバ機能のように、バックグラウンドで常駐して、ユーザの操作を伴わずに処理を行なうことが多い。そのため、サービスプログラムが何らかの不具合によりクラッシュした場合、ユーザはその対処方法を知ることが難しかった。この問題を回避するために、例えば  マイクロソフト社製のＷｉｎｄｏｗｓ（登録商標）ＸＰでは、ＯＳがサービスプログラムの監視を行い、クラッシュしたサービスプログラムを停止させる機能を搭載している。また、クラッシュした状態からの復帰方法としては、特許文献１に、常駐プログラムに対応したリストを持ち、本リストには障害が発生した常駐プログラムを回復する為に再ロードが必要な常駐プログラムを登録する。障害発生時、本リストを参照して障害回復に必要な常駐プログラムを再ロードする、というものがある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−３５３１８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、ＯＳが行なうサービスプログラムの監視方法では、そのサービスプログラムのプロセスのみを監視しているために、その子プロセスを監視対象とすることが出来なかった。また、特開平１１−３５３１８６では、復帰不可能な場合には、サービスの停止をユーザが行なう必要があるという問題があった。そこで、本発明はサービスに登録されるプログラムおよびそのプログラムから起動されるプログラムのいずれかの不具合発生時に、ユーザのオペレーションを発生させること無く、以降のプログラムの自動起動を停止する情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上述のような課題を解決するための本発明の情報処理装置は、オペレーティングシステムの起動時に実行されるサービスプログラムとして登録される第１のプログラムと、前記第１のプログラムから起動される第２のプログラムとを実行する情報処理装置であって、
前記第１のプログラムの起動、または終了を示すステータス情報と、前記第２のプログラムの起動、または終了を示すステータス情報を保存する保存手段と、
前記第１のプログラムの起動時に、前記保存手段により保存されたステータス情報を読み込み、読み込まれた前記第１のプログラムのステータス情報が起動を示した場合、または、前記第２のプログラムのステータス情報が起動を示した場合、サービスプログラムとして登録されている前記第１のプログラムを削除する削除手段とを有することを特徴とする。
【発明の効果】
【０００６】
サービスに登録されるプログラムの不具合発生時に、ユーザのオペレーションを発生させること無く、以降のプログラムの自動起動を中止することで、不具合の影響を軽減する効果を奏する。
【図面の簡単な説明】
【０００７】
【図１】本発明の実施形態に係る情報処理装置を示すブロック図である。
【図２】本発明の実施形態に係るプログラム構成を示すブロック図である。
【図３】本発明の実施形態に係る本実施例の動作（処理）を表すシーケンス図である。
【図４】本発明の実施形態に係る異常終了判定処理を表すフローチャート図である。
【図５】本発明の実施形態に係るステータス情報ファイルのデータ構造を表す図である。
【図６】本発明の実施形態に係るインストール処理を表すフローチャート図である。
【発明を実施するための形態】
【０００８】
以下、図面を参照して本発明の好適な実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【０００９】
図１は、本発明の第１の実施形態におけるブロック図であり、本発明に係る情報処理装置全体の構成である。１はパーソナルコンピュータやワークステーション等のホストコンピュータ（情報処理装置）である。ホストコンピュータ１にはＣＰＵ２が備えられている。ＣＰＵ２は起動時にＲＯＭ３に記憶されたプログラムにより外部記憶装置１１に記憶されているＯＳ（オペレーティングシステム）１３をＲＡＭ４に読み込み、システムバス１２を通じてシステムを統括的に制御する。
【００１０】
８はディスプレイコントローラで、ＣＰＵ２の制御に従い、エラー警告や処理状況など各種の表示を行えるディスプレイ５を制御する。９はキーボードコントローラで入力装置であるキーボード６を制御する。１０はポインティングデバイスコントローラで入力装置であるポインティングデバイス７を制御する。
【００１１】
外部記憶装置１１には、ＯＳ１３、サービスプログラムとしてＯＳに登録されるモニタプログラム（第１のプログラム）１４、モニタプログラム１４から起動されるサブプログラム（第２のプログラム）１５の各プログラムが記憶されている。また、外部記憶装置１１には、ステータス情報ファイル１６、１７が記憶される。
【００１２】
なお、モニタプログラムは、例えば、サブプログラムを起動するスケジュールを管理するプログラムを含む。また、サブプログラム１５は、例えば、ホストコンピュータ１に接続されるプリンタのログを取得し、外部記憶装置に記憶するサブプログラムＡ、その記憶されたログをサーバに送信するサブプログラムＢを含む。
【００１３】
図２は、本実施形態におけるＯＳ１３、モニタプログラム１４、サブプログラム１５の関係を示した図である。ＯＳ１３はＯＳ１３起動時にモニタプログラム１４を起動する。モニタプログラム１４はサブプログラム１５を起動して、特定の処理の実行を依頼する。サブプログラム１５は特定の処理に特化したプログラムであり、モニタプログラム１４からの依頼に応じて特定の処理を行い、処理結果をモニタプログラム１４に返却する。
【００１４】
モニタプログラム１４は、ステータス情報ファイル１６をホストコンピュータ１に保存する。同様にサブプログラム１５は、ステータス情報ファイル１７をホストコンピュータ１に保存する。ステータス情報ファイル１６、１７はプログラムが正常終了したかどうかの情報を判別するためのファイルである。ステータス情報ファイル１６、１７の詳細については後述する。モニタプログラム１４はサブプログラム１５が異常終了していないかどうかを監視する役割を有する。
【００１５】
図３は、本実施形態における、本実施例の動作（処理）を表すシーケンス図であり、この図面に従って動作の説明をする。
【００１６】
ＯＳ１３は起動時にモニタプログラム１４を起動する。（Ｓ３００１）
なお、モニタプログラムの起動は、例えば２４時間ごとに起動するサービスとしてＯＳに登録でき、２４時間ごとに起動される。
【００１７】
モニタプログラム１４は、起動時に前回のモニタプログラム１４が正常に終了したかどうかを判別するために、モニタプログラム１４のステータス情報ファイル１６を読み込む。（Ｓ３００２）
モニタプログラム１４は起動したことをステータス情報ファイル１６に記録する。（Ｓ３００３）
モニタプログラム１４はＳ３００２において取得したステータス情報ファイル１６の内容から、異常終了が発生したかどうかを判定する。（Ｓ３００４）尚、判定はモニタプログラム終了まで定期的に行なう。（Ｓ３００５）サブプログラム１５起動後はサブプログラムのステータス情報ファイル１７も判定処理の対象に含む。尚、この異常終了判定処理の詳細については後述する。
【００１８】
Ｓ３００４における異常終了判定処理の結果に応じて以降の処理を変更する。（Ｓ３００６）
Ｓ３００４において、プログラムが異常終了したと判定した場合には、ＯＳ１３に対してモニタプログラム１４のサービス登録を削除する。（Ｓ３００７）これにより以降のＯＳ１３起動時にはモニタプログラム１４は起動されることがなくなる。
Ｓ３００４において、正常終了したと判定した場合には、処理を続行する。Ｓ３００４において、正常終了したと判断し、かつサブプログラムが未起動の場合には、サブプログラム１５を実行する処理に入る。（Ｓ３００８）
Ｓ３００８において、サブプログラムが未起動で合った場合には、サブプログラム１５を起動する。（Ｓ３００９）
なお、サブプログラムの起動は、モニタプログラムによりスケジュールされ、例えば、サブプログラムＡは１ヶ月に１回起動し、サブプログラムＢは３ヶ月に１回起動する。
サブプログラム１５はモニタプログラム１４から起動された後で起動したことをステータス情報ファイル１７に書き込む。（Ｓ３０１０）
モニタプログラム１４はサブプログラム１５起動後に、サブプログラムに対して特定処理の実行を依頼する。（Ｓ３０１１）
サブプログラム１５はモニタプログラム１４からの依頼に従い、特定処理を実行して、処理結果をモニタプログラム１４に返却する。（Ｓ３０１２）
サブプログラム１５は、処理結果返却後、プログラムを終了する時に、終了することをステータス情報ファイル１７に書き込む。（Ｓ３０１３）
なお、サブプログラムＡはログの記憶が終了すると終了し、サブプログラムＢはサーバに記憶されたログを送信すると終了する。
【００１９】
モニタプログラム１４は終了時に終了したことをステータス情報ファイル１６に記録する。（Ｓ３０１４）異常終了と判定されていない場合には次回のＯＳ１３起動時にはこのステータス情報ファイル１６を読み込む。
【００２０】
なお、モニタプログラムは、サブプログラムのスケジュールを管理し、起動した際に実行すべきサブプログラムがなければ終了する。また、起動した際に実行すべきサブプログラムがある場合は、サブプログラムの処理が終了した後に終了する。
【００２１】
図４は、本実施形態における、図３のシーケンス図におけるＳ３００４で示した異常終了判定処理の詳細を表すフローチャートである。
【００２２】
はじめに、判定対象がモニタプログラム１４とサブプログラム１５のどちらであるかを判別する。（Ｓ４００１）
Ｓ４００１において、判定対象がサブプログラム１５である場合には、サブプログラム１５のプロセスが存在しているかを調べる。（Ｓ４００２）
Ｓ４００２において、対象プロセスが存在していない場合には、ステータス情報ファイル１７を読み込む。（Ｓ４００３）
Ｓ４００１において、判定対象がモニタプログラム１４であった場合、またはＳ４００３においてステータス情報ファイル１７を読み込んだ後に、モニタプログラム１４はステータス情報ファイル内の値を参照して、ステータスを取得する。（Ｓ４００４）判定対象がモニタプログラム１４であった場合には、ステータス情報ファイル１６はＳ３００２で読み込み済みである。
ステータスが起動を示しているかどうかを判別する。（Ｓ４００５）
Ｓ４００５において、ステータスが起動を示している場合、判別結果を異常終了とする。（Ｓ４００６）
Ｓ４００５において、ステータスが終了を示している場合、判別結果を正常終了とする。（Ｓ４００７）
図５は、本実施形態におけるステータス情報ファイル１６、１７の構成を表した図である。図４のフローチャートのＳ４００４において参照するデータの構成である。
ステータス情報ファイル１６、１７には値として、プログラムがどのステップまで進んだかが記録される。５０１は、モニタプログラム１４とサブプログラム１５は起動時に起動したことを示す値を保存した場合の構成である。５０２はモニタプログラム１４とサブプログラム１５は終了時に終了したことを示す値を保存した場合の構成である。
【００２３】
図６は、本実施形態におけるインストール処理を表したフローチャート図である。図１のシーケンス図のＳ３００４において、異常終了と判断した場合、以後モニタプログラム１４がＯＳ１３により自動起動することはなくなるが、その状態から再度モニタプログラム１４を自動起動されるようにするための処理である。
【００２４】
まず、新規インストールかどうかを判別する。新規インストールとはホストコンピュータ１にモニタプログラム１４、サブプログラム１５が記憶されていない状態を表す。（Ｓ６００１）
Ｓ６００１において、新規インストールでは無い場合には、次にアップグレードインストールかを判別する。アップグレードインストールとは、プログラムの上位バージョンに置き換えることである。（Ｓ６００２）通常、上位バージョンでは下位バージョンのプログラムにおける不具合が修正されていたり、機能が追加されていたりするので、プログラムを置き換えることが多い。逆にダウングレードは通常インストール処理においてはエラーとして扱い、プログラムを置き換えないことが多い。
【００２５】
Ｓ６００２において、アップグレードインストールであった場合には、ステータス情報ファイル１６、１７を削除する。（Ｓ６００３）これにより、モニタプログラム１４は、ステータス情報ファイル１６、１７から異常終了と判断することが無くなる。
【００２６】
Ｓ６００１において、新規インストールであった場合には、または、Ｓ６００２において上書きインストールであった場合には、モニタプログラム、サブプログラムをホストコンピュータにコピーする。（Ｓ６００４）
最後に、モニタプログラム１４をサービスに登録する。（Ｓ６００５）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００２７】
１  ホストコンピュータ
２  ＣＰＵ
３  ＲＯＭ
４  ＲＡＭ
５  ディスプレイ
６  キーボード
７  ポインティングデバイス
８  ディスプレイコントローラ
９  キーボードコントローラ
１０  ポインティングデバイスコントローラ
１１  外部記憶装置
１２  システムバス
１３  ＯＳ
１４  モニタプログラム
１５  サブプログラム
１６  ステータス情報ファイル（モニタプログラム用）
１７  ステータス情報ファイル（サブプログラム用）
５０１  ステータス情報ファイルの内部構造（起動時）
５０２  ステータス情報ファイルの内部構造（終了時）
【図１】
2011118706.tif 000003
【図２】
2011118706.tif 000004
【図３】
2011118706.tif 000005
【図４】
2011118706.tif 000006
【図５】
2011118706.tif 000007
【図６】
2011118706.tif 000008