(57)【要約】【課題】プログラムを安全に実行するセーフモードにおいて、セーフモードに実行するプログラムを選択可能とし、システムの構成に自由度を与える。【解決手段】インストールされるプログラムの中からセーフモード時に実行するプログラムを選択するプログラム選択手段と、選択されたプログラムをセーフモード時に実行するセーフモードプログラム実行手段を持つ。【選択図】        図１
2004334679.tif 000002
【特許請求の範囲】
【請求項１】
通常のプログラム実行モードとは別にプログラム群を正常に稼動させうるセーフモードを持つ情報処理装置において、
情報処理装置にインストールされるプログラムの中から、セーフモードにおいて実行するプログラムを選択するプログラム選択手段と、セーフモード時に既プログラム選択手段で選択したプログラムを実行するセーフモードプログラム実行手段を備えることを特徴とする情報処理装置。
【請求項２】
不要なプログラムを削除するプログラムアンインストール手段をもち、既プログラムアンインストール手段で、既セーフモードプログラム選択手段で選択されたプログラムを削除する際、既セーフモードプログラム実行手段において実行可能な形式で削除することを特徴とした請求項１に記載の情報処理装置。
【請求項３】
通常のプログラム実行モードとは別にプログラム群を正常に稼動させうるセーフモードを持つ情報処理装置において、
セーフモードにおいて実行するプログラムを選択し、セーフモード時に選択したプログラムを実行するプログラム実行方式。
【請求項４】
請求項１に記載の情報処理装置を実現するコンピュータプログラムを格納した記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のプログラムを選択的に実行する情報処理装置において、複数の実行モードを備え、各モードにおいてどのプログラムを実行するかを制御するプログラムの実行方式に関する。
【０００２】
【従来の技術】
従来、パーソナルコンピュータなどで稼動するオペレーティングシステムでは、アプリケーションプログラムやドライバプログラムなどの設定の誤りによって、システム全体がクラッシュしたり、動作が不安定になったりすることがある。
【０００３】
例えば、同じハードウェア資源を使用する複数のドライバがインストールされ、立ち上げの際にハードウェア資源をドライバ同士で奪い合うことによりこのような事態に陥る。
【０００４】
これらの状態を招いた設定を元に戻そうとしても、システム自体が再起動できずシステムの再設定ができない事態に陥ることもある。
【０００５】
それを防ぐためにパーソナルコンピュータなどで使用されているオペレーティングシステムは、通常の動作モードとは別に、最低限のドライバ、システムサービスなどを用いてシステムを立ち上げるモードを備えている。このモードをＷｉｎｄｏｗｓ（登録商標）ではセーフモード、Ｕｎｉｘ（登録商標）ではシングルユーザモードと呼んでいる。以降このモードをセーフモードと呼ぶ。通常モードとセーフモードを切り替えて立ち上げる手段も提供されている。
【０００６】
このセーフモードで立ち上げることにより、不具合を起こしているドラバを削除したり、ドライバやアプリケーションソフトウェアの設定を変更したりすることができ、システムクラッシュや動作不安定の要因を回避できるようになっている。
【０００７】
パーソナルコンピュータにおけるセーフモードでは、ハードウェアの最小構成が決められており、それに合わせた必要最小限のドライバ、サービスの構成をあらかじめ決めておき、セーフモードで立ち上げる指示があった際にあらかじめ決められた最小構成でシステムを起動できるようになっている。
【０００８】
一方、複写機のような組込み機器においては、機器に搭載されるアプリケーションはあらかじめ決められており、アプリケーションの設定の組み合わせも有限であり、設定の組み合わせが原因となる不具合をテストによって洗い出して出荷することによってシステムクラッシュや動作不安定の要因を回避することができていた。
【０００９】
しかしながら、組み込み機器においても、パーソナルコンピュータのように後からユーザがアプリケーションプログラムを追加して動作させられる環境を提供するものが出てきた。
【００１０】
このような状況において、後からインストールしたアプリケーションプログラムが原因となってシステム全体が起動しなくなるという事態に陥る可能性がある。
【００１１】
組み込み機器に搭載されているリアルタイムＯＳは、パーソナルコンピュータに搭載されている汎用ＯＳとは異なり、システムが最初に構築された後にアプリケーションプログラムをインストールする手段をＯＳレベルでサポートしているわけではなく、アプリケーションプログラムを実行するフレームワークを構築し、そのフレームワーク上にアプリケーションプログラムをインストールし、実行するように構成される。
【００１２】
図２は、従来例のソフトウェアシステムの構成を示している。同図において、２０１０は装置のハードウェア、２０２０はハードウェアとソフトウェアを制御するオペレーティングシステム、２０３０はオペレーティングシステム２０２０上で動作しアプリケーションの管理を行なうフレームワーク、２０４０は装置において操作してアプリケーションを管理するためのローカル管理ツール、２０５０はネットワークに接続されて繋がっている別の装置上でアプリケーションを管理するためのリモート管理ツール、２０６０はリモート管理ツールを別の装置上で操作を可能とするためのＨＴＴＰサーバである。
このようにアプリケーションプログラムをフレームワーク上にインストールするためのプログラムや、システムの管理を行うプログラムも一つのアプリケーションプログラムとしてフレームワーク上で実行される形態をとる。
【００１３】
また、組込み機器の機器構成によってインストールされるアプリケーションの組み合わせを変更することが考えられる。その場合、セーフモードで立ち上げたいアプリケーションが異なる機器構成によって変更される。
【００１４】
さらに、初期状態（ユーザサイドでアプリケーションをインストールしていない状態、工場出荷状態）で実行されるアプリケーションをセーフモードで実行させるアプリケーションとした場合、初期状態でインストールされているアプリケーションプログラムと同じ機能を持つ別のアプリケーションプログラムを初期状態のアプリケーションに代わってセーフモードにおいて立ち上げたいとしても、立ち上げることができない。
【００１５】
これらの問題を解決するために、従来はセーフモードで立ち上げるアプリケーションを選択する手段を提供するアプリケーションプログラムを別途提供していた。
【００１６】
【特許文献１】
特開平０８−０８９４０２号公報
【００１７】
【発明が解決しようとする課題】
しかしながら、セーフモードで実行されるアプリケーションを管理するための独立したアプリケーションプログラムを提供する方法では、通常のアプリケーション管理とセーフモードでのアプリケーション管理の二通りの管理方法が存在し、処理が煩雑になるという問題点が存在する。
【００１８】
また、この方法ではさらにアプリケーションを追加しなければならず、ハードウェア資源に余裕の無い組み込み機器においては、資源の無駄な使用となってしまう。
【００１９】
また、セーフモードで実行されるアプリケーションプログラムも通常のアプリケーションプログラムと同じ管理がされるため、後から追加されたアプリケーションプログラム用の資源を確保するため、セーフモードに必要なアプリケーションプログラムが誤って削除されてしまい、セーフモードで実行できなくなりセーフモードとしての機能を果たさなくなるという問題点が存在する。
【００２０】
【課題を解決するための手段】
上記問題点を解決するために本発明では、通常のプログラム実行モードとは別にプログラム群を正常に稼動させうるセーフモードを持つ情報処理装置において、セーフモードにおいて実行するプログラムを選択するプログラム選択手段と、セーフモード時に既プログラム選択手段で選択したプログラムを実行するセーフモードプログラム実行手段を備えるよう情報処理装置を構成する。
【００２１】
【発明の実施の形態】
（実施例１）
図１は本発明の第１実施例のシステム構成をあらわす図で、同図において１０１０は制御部でプログラムを実行し装置全体の制御を行う。１０２０は一次記憶部でＲＡＭ等の揮発性メモリで構成されプログラムやデータを一時蓄積しておく。１０３０は二次記憶部でハードディスクなどの不揮発性記憶装置で構成されプログラムやデータを記憶しておく。１０４０は入力部で外部から操作者の指示を行ったり、データを入力したりすることに用いる。１０５０は出力部で制御部において演算されたデータを外部に出力するために用いられる。１０６０はネットワーク部でネットワークを経由して他の装置とデータをやり取りするための通信制御を行う。１０７０はバスで各部間のデータの授受を行なう。
【００２２】
図１で示される構成の装置の上で、従来例と同様、図２に示す構成のソフトウェアシステムが稼動している。
【００２３】
図３は、フレームワークがインストールされているアプリケーションのうちシステム起動時に同時に起動するアプリケーションを管理するために一次記憶１０２０に記憶しているアプリケーション管理テーブルである。同図において、３０１０はアプリケーションリストでインストールされているアプリケーションとその実行順序を管理している。３０２０はアプリケーションエントリで各アプリケーションの属性を記述している。３０３０はアプリケーションＩＤであり、アプリケーションエントリ３０２０内のフィールドで、アプリケーションを識別するためにシステム上で唯一となる値をフレームワークによって割り当てる。３０４０は格納場所であり、アプリケーションエントリ３０２０内のフィールドで、インストールされたアプリケーションが二次記憶１０３０のどこに格納されているかを示している。３０５０はアプリケーション状態であり、アプリケーションエントリ３０２０内のフィールドで、アプリケーションの状態を示す。このアプリケーション状態にはインストール、アクティブ、アンインストール、擬似アンインストールの状態があり、電源断の時にはその時の各アプリケーション状態が反映される。３０６０はセーフモードフラグであり、アプリケーションエントリ３０２０内のフィールドで、セーフモード時に実行されるべきかどうかを示している。
図４はアプリケーションがインストールされる時にリモート管理ツール２０５０がリモート装置の表示装置のＨＴＭＬブラウザに表示されるＨＴＭＬの表示例を示すもので、リモート装置にはネットワーク部１０６０を使用しＨＴＴＰサーバ２０６０によって送られる。
同図において、４０１０はアプリケーション指定フィールドで、リモート装置内でアプリケーションが格納されている場所を指定するための文字列フィールドである。４０２０はセーフモードスイッチで、インストールするアプリケーションをセーフモード時に実行するか否かを指定するのに用いる。４０３０はインストールボタンで、このボタンが押下されると、アプリケーション指定フィールド４０１０、セーフモードスイッチ４０２０の設定が終了し、インストール処理を開始することが指示される。
【００２４】
このＨＴＭＬのフォーム部分のみのＨＴＭＬ記述は以下のようになる。
2004334679.tif 000003
このＨＴＭＬによって、インストールボタン４０３０を押下すると、指定されたファイルからデータを読み出し、ＰＯＳＴ  コマンドのマルチパートメッセージとしてサーバに送られる。
【００２５】
サーバ側では、送られてきたこのファイルのデータをプログラムだとして認識し、二次記憶１０３０に格納し、アプリケーションＩＤを付与し、セーフモードスイッチ４０２０の設定によってセーフモードフラグ３０６０を設定することにより、アプリケーションエントリ３０２０を生成し、アプリケーションリスト３０１０に登録することによりインストール処理を行なう。
【００２６】
このアプリケーションリスト３０１０は一次記憶部１０２０に記憶されるとともに、二次記憶部１０３０にも記憶される。
【００２７】
このように生成されたアプリケーションリスト３０１０を用いて、セーフモードでのアプリケーション起動手順を図６に示すフローチャートを用いて説明する。
【００２８】
セーフモードへは、電源投入時に入力部１０４０に接続されたボタンが押されていることを検知することにより移行する。セーフモードであることは一次記憶部１０２０に記憶されている。
【００２９】
アプリケーション立ち上げプログラムは、二次記憶部１０３０に記憶されているアプリケーションリスト３０１０を一次記憶部１０２０にロードする。
【００３０】
アプリケーションリスト３０１０がロードされると、ステップＳ６０１０においてアプリケーションリスト３０１０からアプリケーションエントリ３０２０を１個取り出す。
【００３１】
ステップＳ６０２０において、一次記憶部１０２０にセーフモードであることを示すデータが記憶されているかを調べる。セーフモードであれば、ステップＳ６０３０に進み、そうでなければステップＳ６０４０に進む。
【００３２】
ステップＳ６０３０において、アプリケーションエントリ３０２０のセーフモードフラグ３０６０を調べる。セーフモードフラグ３０６０が設定されていればステップＳ６０５０  に進み、そうでなければ、ステップＳ６０６０  に進む。
【００３３】
ステップＳ６０４０において、アプリケーションエントリ３０２０のアプリケーション状態３０５０を調べ、電源断のときに実行されていたかどうかを調べる。起動されていたらステップＳ６０５０に進み、そうでなければステップＳ６０６０に進む。
【００３４】
ステップＳ６０５０において、アプリケーションエントリ３０２０の格納場所３０４０で示される二次記憶部１０３０の格納位置からアプリケーションプログラムをロードして起動する。
【００３５】
ステップＳ６０６０において、アプリケーションリスト３０１０を調べ、まだ処理されていないアプリケーションエントリ３０２０が存在するかどうかを調べる。まだ残っているアプリケーションエントリが存在する場合はステップＳ６０１０に進み、存在しない場合は処理を終了する。
【００３６】
次に、アプリケーションのアンインストール時の処理について説明する。
【００３７】
図５は、本実施例で稼動するアプリケーションをリモートから管理するためにリモート管理ツール２０５０がリモート装置のＨＴＭＬブラウザに表示されるＨＴＭＬの表示例を示すもので、リモート装置にはネットワーク部１０６０を使用してＨＴＴＰサーバ２０６０によって送られる。
【００３８】
同図において、５０１０は操作対象となるアプリケーションを選択するための選択欄、５０２０はアプリケーションＩＤを表示するアプリケーションＩＤ欄、５０３０はアプリケーションの簡単な説明を表示するためのアプリケーション説明欄、５０４０はアプリケーションを起動するための起動ボタン、５０５０は起動されているアプリケーションを停止するための停止ボタン、５０６０は選択されているアプリケーションをアンインストールするためのアンインストールボタンである。
【００３９】
このＨＴＭＬはリモート管理ツール２０５０がリモート装置から要求があったときに、その時点でインストールされているアプリケーションをアプリケーションリスト３０１０から動的に生成する。
【００４０】
以下にこのＨＴＭＬのフォーム部分の生成例を示す。
2004334679.tif 000004
起動ボタン５０４０、停止ボタン５０５０、アンインストールボタン５０６０は、押下されるとフォームに設定されているデータを送り出すように指定されている。
【００４１】
送られるデータは、隠しフィールドの名前（”Ａ１”など）とスイッチの名前（”Ｃ１”など）の番号により、隠しフィールドとスイッチの対応を取る。それによって、隠しフィールドの値として設定されているアプリケーションＩＤとスイッチの値を結びつける。スイッチが恩であれば、対応する隠しフィールドに設定されているアプリケーションＩＤをもつアプリケーションが選択されているものとみなす。
【００４２】
図７はアプリケーションをアンインストールする際の処理フローである。
【００４３】
図７を用いて、第１の実施例におけるアプリケーションのアンインストール処理について説明する。
【００４４】
ステップＳ７０１０において、選択されているアプリケーションＩＤを一つ取り出す。アプリケーションリスト３０１０から選択されているアプリケーションＩＤと同じＩＤがアプリケーションＩＤ３０３０をもつアプリケーションエントリ３０２０を取り出す。
【００４５】
ステップＳ７０２０において、ステップＳ７０１０で取り出したアプリケーションエントリ３０２０のセーフモードフラグ３０６０を調べ、セーフモードフラグ３０６０が設定されている場合はステップＳ７０３０に進み、そうでなければステップＳ７０５０に進む。
【００４６】
ステップＳ７０３０において、使用しているユーザが管理者特権を持っているかが調べられる。管理者特権をもっていれば、ステップＳ７０５０に進み、持っていなければステップＳ７０４０に進む。
【００４７】
ステップＳ７０４０において、アプリケーションエントリ３０２０のアプリケーション状態３０５０を擬似アンインストール状態にする。その後ステップＳ７０６０に進む。
【００４８】
ステップＳ７０５０では、アプリケーションを削除し、アプリケーションエントリ３０２０をアプリケーションリスト３０１０から削除する。その後、ステップＳ７０６０に進む。
【００４９】
ステップＳ７０６０において、選択されているアプリケーションが残っているかを調べ、残っていればステップＳ７０１０に進み、そうでなければ処理を終了する。
【００５０】
通常の立ち上げ時には、アプリケーション状態３０５０が擬似アンインストール状態であるアプリケーションは立ち上げない。
【００５１】
また、セーフモード時の立ち上げ処理で説明したように、セーフモードフラグ３０６０が設定されているか否かで立ち上げるため、擬似アンインストール状態にあるアプリケーションも立ち上げられる。
【００５２】
もちろん、上記実施例を構成するプログラムを格納した記憶媒体をシステムに設置し、プログラムをシステムにロードして実行するよう構成しても良い。
【００５３】
【発明の効果】
以上説明したように、セーフモード時に実行すべきアプリケーションを通常モードで実行するアプリケーションの中から容易に選択することができる。
【００５４】
また、通常モード時に不要だと判断しアンインストールされたアプリケーションでもセーフモード時に他のアプリケーションと変わらずに起動することができる。
【図面の簡単な説明】
【図１】実施例１の情報処理装置の構成
【図２】実施例１、従来例のソフトウェア構成
【図３】実施例１のアプリケーション管理テーブル
【図４】実施例１のアプリケーションインストール画面
【図５】実施例１のアプリケーション管理画面
【図６】実施例１のセーフモード実行フロー
【図７】実施例１のアプリケーションアンインストール処理フロー
【符号の説明】
１０１０  制御部
１０２０  一次記憶
１０３０  二次記憶
１０４０  入力部
１０５０  出力部
１０６０  ネットワーク部
１０７０  バス
【図１】
2004334679.tif 000005
【図２】
2004334679.tif 000006
【図３】
2004334679.tif 000007
【図４】
2004334679.tif 000008
【図５】
2004334679.tif 000009
【図６】
2004334679.tif 000010
【図７】
2004334679.tif 000011