(57)【要約】【課題】アプリケーションプログラムを実行するアプリケーション実行装置において、アプリケーション異常実行の反復的な発生を抑制する。【解決手段】アプリケーション選択部２８は、アプリケーション格納部２０に格納された複数のアプリケーション２２（２２ａ，２２ｂ）の中から、リスタート要因事象に応じて、実行するアプリケーション２２を選択する。例えば、アプリケーション選択部２８は、リスタート要因事象がアプリケーション異常実行である場合には、リスタート信号発生前のアプリケーション（２２ａ）とは別のアプリケーション（２２ｂ）を選択し、リスタート要因事象がアプリケーション異常実行でない場合には、リスタート信号発生前のアプリケーション（２２ａ）を選択する。【選択図】　　　　図２
2004054325.tif 000002
【特許請求の範囲】
【請求項１】
所定のアプリケーションを実行するアプリケーション実行部と、
前記アプリケーション実行部の実行可能な複数のアプリケーションを格納するアプリケーション格納部と、
前記アプリケーション格納部に格納された複数のアプリケーションのうち前記アプリケーション実行部の実行するアプリケーションを選択するアプリケーション選択部と、
リスタート要因事象の発生に基づいて前記アプリケーション実行部においてアプリケーションをリスタートさせるためのリスタート信号を生成するリスタート信号生成部と、
を備え、
前記アプリケーション選択部は、前記リスタート要因事象に応じて前記アプリケーションを選択することを特徴とするアプリケーション実行装置。
【請求項２】
前記リスタート要因事象の履歴を格納するリスタート要因履歴格納部を備え、
前記アプリケーション選択部は、リスタート要因事象の履歴に基づいて前記アプリケーションを選択することを特徴とする請求項１に記載のアプリケーション実行装置。
【請求項３】
前記リスタート要因事象には前記アプリケーション実行部によるアプリケーション異常実行が含まれ、
前記アプリケーション選択部は、同一アプリケーションによるアプリケーション異常実行が所定回数発生したときには該異常実行を生じたアプリケーション以外のアプリケーションを選択することを特徴とする請求項２に記載のアプリケーション実行装置。
【請求項４】
前記アプリケーション格納部には、通信回線を介して前記アプリケーションを格納可能であることを特徴とする請求項１乃至３のうちいずれか一つに記載のアプリケーション実行装置。
【請求項５】
請求項１乃至４のうちいずれか一つに記載のアプリケーション実行装置を実現するためのプログラムであって、コンピュータを、前記アプリケーション選択部として機能させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、アプリケーション実行装置に関し、特に、遠隔地に設置されたアプリケーション実行装置に好適な技術に関する。
【０００２】
【従来の技術】
ソフトウェアアプリケーションを実行するアプリケーション実行装置では、しばしば、ソフトウェアのバグ等によりアプリケーションの異常実行が生じる。従来より、このような異常実行を速やかに停止させるためにウォッチドックタイマを備えたアプリケーション実行装置が知られている。この装置では、ウォッチドックタイマは、アプリケーション実行装置から所定のタイミングで正常動作していることを示す正常動作確認信号を取得する。そして、アプリケーション実行装置は、ウォッチドックタイマにおいて正常動作確認信号が取得されなかった場合、アプリケーションの実行を直ちに停止し、そのアプリケーションを再実行（リスタート）する。
【０００３】
【発明が解決しようとする課題】
しかしながら、上記従来装置では、再実行されるアプリケーションは、異常実行を起こしたアプリケーションであるため、再び同様の異常実行が生じる場合があった。
【０００４】
【課題を解決するための手段】
本発明にかかるアプリケーション実行装置は、所定のアプリケーションを実行するアプリケーション実行部と、前記アプリケーション実行部の実行可能な複数のアプリケーションを格納するアプリケーション格納部と、前記アプリケーション格納部に格納された複数のアプリケーションのうち前記アプリケーション実行部の実行するアプリケーションを選択するアプリケーション選択部と、リスタート要因事象の発生に基づいて前記アプリケーション実行部においてアプリケーションをリスタートさせるためのリスタート信号を生成するリスタート信号生成部と、を備え、前記アプリケーション選択部は、前記リスタート要因事象に応じて前記アプリケーションを選択する。
【０００５】
このような構成により、本発明にかかるアプリケーション実行装置は、格納された複数のアプリケーションの中からより適切なアプリケーションを選択してそれを実行することができるため、アプリケーションの異常実行が生じたような場合にも異常実行の再発を抑制することができる。
【０００６】
そして、アプリケーション実行部の実行するアプリケーション（以下、実行アプリケーションと記す）の選択は、リスタート要因事象に応じて行われるのが望ましい。例えば、アプリケーションの異常実行によりリスタートされた場合（すなわち、リスタート要因事象がアプリケーションの異常実行であった場合）には、実行アプリケーションとして、その異常実行を生じたアプリケーション以外のアプリケーションを選択するのが望ましい。また逆に、リスタート前に実行していたアプリケーションをそのまま実行して構わない場合もある。例えば、リスタート要因事象がアプリケーションによる異常実行でない場合、すなわち、電源の投入（ＯＮ）操作や、人為的なリスタートスイッチの操作、所定のリスタート要求信号の取得などがリスタート要因事象である場合が、これに該当する。これは、リスタート前に実行していたアプリケーションが、他のアプリケーションに比べてより確実な実績を有する（例えば正常稼動時間が長い、異常発生頻度が少ない等）場合には、特に有効である。
【０００７】
また、実行アプリケーションの選択は、リスタート要因事象の発生履歴に応じて行うのが好適である。例えば、ソフトウェアのバグには、異常実行の再発確率の比較的低い（発生頻度の比較的少ない）より軽微なバグや、逆に再発確率の高いより重大なバグがある。このため、一度アプリケーションの異常実行が生じたからと言って、直ちに別のアプリケーションの実行に変更したのでは、逆に変更したアプリケーションにより異常実行の発生確率が高くなってしまう場合もあり得る。この場合には、例えば、同一のアプリケーションについて複数回（所定回数）同じ異常実行が生じた場合に、該アプリケーション以外のアプリケーションを選択するようにすれば、その問題は解消される。また、発生履歴として、リスタート要因事象とその発生時刻とを取得しておけば、発生頻度（すなわち単位時間あたりのリスタート要因事象の発生回数）に応じてより適切なアプリケーションを選択することも可能となる。
【０００８】
さらに、上記本発明にかかるアプリケーション実行装置は、遠隔地、特に人による直接的な操作（例えばアプリケーション実行装置へのアプリケーションのインストール操作等）の難しい地点に設置され、該アプリケーション実行装置に通信回線を介して更新するアプリケーションを送信する場合に有効である。例えば、通信回線を介して送信したアプリケーションがバグ（特に重大なバグ）を含むものであった場合、アプリケーション実行装置においてこのバグを含むアプリケーションのみしか保持されないと、次にバグの解消されたアプリケーションを受信するまでは、異常実行が解消されないという事態が起こりうる。また、例えば通信回線の状態によってはアプリケーションが正しく送信されない場合も起こりうる。本発明にかかるアプリケーション実行装置は、複数のアプリケーションを保持することができるので、上記のような場合にも、より異常実行の発生しにくいアプリケーションを選択してそれを実行することが可能となる。
【０００９】
【発明の実施の形態】
以下、本発明の実施形態について図面を参照して説明する。図１は、本実施形態にかかるアプリケーション実行装置１０を複数含む処理実行システム１２の一例を示す図、また図２は、アプリケーション実行装置１０の概略構成を示すブロック図である。
【００１０】
図１に示すように、処理実行システム１２では、複数のアプリケーション実行装置１０が通信回線（例えば公衆電話回線網あるいはインターネット等）１４に接続されている。また、通信回線１４には、中央管理装置１６が接続されている。通信回線１４を介して、中央管理装置１６からアプリケーション実行装置１０へ、アプリケーション実行装置１０において実行可能なアプリケーションを送信することができる。このような構成により、例えばアプリケーションをバージョンアップする場合に、該バージョンアップ用アプリケーションを中央管理装置１６からアプリケーション実行装置１０へ送信することができる。なお、通信回線１４は、無線／有線を問わない。
【００１１】
このような処理実行システム１２としては、例えば通信システムがある。通信システムでは、中継局（例えば地上波放送やマイクロ波通信システムの中継局等）や、基地局（例えば移動通信システムの基地局等）、アクセスポイント（例えばインターネット無線アクセスシステムのアクセスポイント等）、端末装置（例えばインターネット無線アクセスシステムの端末装置等）などは、遠隔地に設置される場合がある。上記中継局、基地局、アクセスポイントあるいは端末装置等を、本実施形態にかかるアプリケーション実行装置１０を含む装置として構成することができる。
【００１２】
図２に示すように、アプリケーション実行装置１０は、アプリケーション実行部１８を備える。アプリケーション実行部１８は、アプリケーション格納部（例えばメモリやハードディスク等）２０に格納されたアプリケーション（ソフトウェアプログラム）２２（２２ａ，２２ｂ）にしたがい、所定の処理を実行する。例えば入力信号に所定の信号処理（例えば増幅、フィルタリング、誤り訂正、変復調等）を施して出力信号を出力したり、入力信号に基づいて電気的に動作する所定の動作実行部２４に対してその動作を制御するための制御信号を出力したりする。なお、通信回線１４を介して取得されたアプリケーション２２は、アプリケーション格納処理部２６によって、アプリケーション格納部２０に書き込まれる。
【００１３】
アプリケーション格納部２０には、複数（例えば二つ）のアプリケーション２２が格納される。二つのアプリケーション２２を格納する場合には、例えば、バージョンの新しいもの（最新版）２２ａと古いもの２２ｂとが格納される。そして、アプリケーション実行部１８において実行されるアプリケーション２２は、アプリケーション選択部２８によって選択される。このアプリケーション選択部２８によるアプリケーション２２の選択にかかる動作については後に詳しく述べる。
【００１４】
アプリケーション実行部１８におけるリスタートは、リスタート信号生成部３０から出力されるリスタート信号をトリガとして行われる。リスタート信号生成部３０には、複数のリスタート要因事象を示す信号（以下、リスタート要因信号と記す；例えばアプリケーション異常実行を示す信号、電源のＯＮ操作信号、人為的なリスタートスイッチの操作信号、通信回線１４を介しての中央管理装置１６からのリスタート要求信号など）が入力される。リスタート信号生成部３０は、複数のリスタート要因信号のうちいずれか一つを取得すると、アプリケーション実行部１８に対しリスタート信号を出力する。
【００１５】
上記リスタート要因信号のうち、アプリケーション異常実行を示す信号は、アプリケーション異常検出部（例えばウォッチドックタイマ等）３２によって生成される。アプリケーション異常検出部３２は、アプリケーション実行部１８から出力される動作確認信号（それ専用の信号、出力信号、制御信号等）に基づいて、アプリケーション異常実行の発生を検出する。具体的には、例えば、動作確認信号が所定のタイミング（例えば所定の時間間隔以内）で出力されていない場合には、アプリケーション異常実行と判定し、アプリケーション異常実行が生じたことを示す信号を生成する。
【００１６】
リスタート信号生成部３０は、リスタート要因事象を示すフラグをレジスタ３４に格納する。フラグは、例えばリスタート要因事象に応じた２ビット情報として設定される。そして、このフラグに基づいてリスタート要因事象の発生履歴を示す履歴情報が生成され、履歴情報格納部３６に格納される。なお本実施形態では、履歴情報の生成および格納はアプリケーション選択部２８において実行されるが、これに限定されないことは言うまでもない。
【００１７】
そして上記構成要素のうち、アプリケーション実行部１８や、アプリケーション選択部２８など（さらにアプリケーション格納処理部２６や、リスタート信号生成部３０などを含んでもよい）は、制御部（例えばＣＰＵ等）３８によって実現される。制御部３８は、プログラム保持部（図示せず；例えばメモリ、ハードディスク等）やアプリケーション格納部２０に格納されたプログラムにしたがって動作することにより、上記各構成要素として機能する。このプログラムは、通信回線１４や図示しないリムーバブルデバイスを介して、コンピュータ読み取り可能な記憶媒体（例えばハードディスク、ＣＤ、ＭＯ、ＤＶＤ等）から取得され、制御部３８によって上記プログラム保持部にインストールされる。なお、アプリケーション実行部１８以外の構成要素については適宜ハードウェアとして実装しても良い。
【００１８】
次に、図３を参照してアプリケーション２２の選択処理について説明する。図３は、アプリケーション２２の選択処理に関するフローチャートである。
【００１９】
リスタート要因事象の発生により、リスタート信号が出力されると（ステップＳ１０）、アプリケーション選択部２８は、レジスタ３４を参照して、リスタート要因事象を取得する（ステップＳ１２）。次いでアプリケーション選択部２８は、履歴情報格納部３６からリスタート要因事象の発生履歴（履歴情報）を取得し（ステップＳ１４）、最新のリスタート要因事象および過去のリスタート要因事象に基づいてアプリケーション２２を選択する（ステップＳ１６）。
【００２０】
ステップＳ１６では、所定のアルゴリズムにしたがって、アプリケーション２２が選択される。一例として、リスタート要因事象が、連続して複数回（例えば三回）にわたり、アプリケーション異常実行であった場合には、アプリケーション選択部２８は、その異常実行を生じたアプリケーション２２（例えば２２ａ）とは別のアプリケーション２２（例えば２２ｂ）を、実行アプリケーションとして選択する。またそれ以外の場合（すなわち最新のリスタート要因事象がアプリケーション異常実行でなかった場合およびアプリケーション異常実行が上記所定回数以下であった場合）、アプリケーション選択部２８は、実行アプリケーションとして、リスタート信号の生成される前に用いられていたアプリケーション２２（例えば２２ａ）を選択する。また別の例として、アプリケーション異常実行が所定時間内に所定回数以上生じていた場合に、リスタート信号の生成される前のアプリケーション２２（例えば２２ａ）とは別のアプリケーション２２（例えば２２ｂ）が選択されるようにしてもよい。なお、この場合には、履歴情報にはリスタート要因事象の発生時刻が含まれており、選択に際してそれが参照される。
【００２１】
また、アプリケーション選択部２８は、上記ステップＳ１６の終了後、適切なタイミング（例えば制御部における処理負荷が比較的少ないタイミング）において、最新のリスタート要因事象を示す情報（例えば、リスタート要因事象を識別する情報（フラグ）、リスタート要因事象の発生時刻、リスタート要因事象発生前において適用されていたアプリケーションを示す情報等）を履歴情報格納部に書き込み、その情報を履歴情報として追加する（ステップＳ１８）。
【００２２】
そして、アプリケーション実行部１８は、こうしてアプリケーション選択部２８で選択されたアプリケーション（すなわち実行アプリケーション）により処理の実行（再実行）を行う（ステップＳ２０）。
【００２３】
以上、本発明の好適な実施形態について説明したが、本発明は等価な範囲で種々の変形が可能であることは言うまでもない。例えば、上記実施形態では、リスタート要因事象が発生した後にそのリスタート要因事象に応じて再実行するアプリケーションを選択していたが、これには限定されず、過去のリスタート要因事象に基づいて予めアプリケーションを選択しておき、リスタート要因事象の発生とともに直ちに選択しておいたアプリケーションを実行するようにしてもよい。また、各アプリケーションについての種々の情報（例えば動作実績、属性情報等；具体的には連続正常稼動時間、アプリケーションのバージョン番号等）を履歴情報に含めておき、アプリケーションの選択に際しこれを参照してもよい。その場合、例えば、他の選択条件（例えば上述したようなリスタート要因事象の種別や連続発生回数による選択条件）を満たすアプリケーションが複数存在する場合に、連続正常稼動時間が長い方あるいはバージョンが新しい方）を選択するようにしてもよい。
【００２４】
【発明の効果】
以上説明したように、本発明にかかるアプリケーション実行装置によれば、格納された複数のアプリケーションの中からリスタート要因事象に応じたより適切なアプリケーションを選択してそれを実行することができるため、アプリケーションの異常実行が生じたような場合にも異常実行の再発を抑制することができる。
【図面の簡単な説明】
【図１】本発明の実施形態にかかるアプリケーション実行装置を含む処理実行システムの一例を示す図である。
【図２】本発明の実施形態にかかるアプリケーション実行装置の構成を示すブロック図である。
【図３】本発明の実施形態にかかるアプリケーション実行装置におけるアプリケーション選択処理を示すフローチャートである。
【符号の説明】
１０　アプリケーション実行装置、１２　処理実行システム、１４　通信回線、１６　中央管理装置、１８　アプリケーション実行部、２０　アプリケーション格納部、２２（２２ａ，２２ｂ）　アプリケーション、２４　動作実行部、２６　アプリケーション格納処理部、２８　アプリケーション選択部、３０　リスタート信号生成部、３２　アプリケーション異常検出部、３４　レジスタ、３６
履歴情報格納部、３８　制御部。
【図１】
2004054325.tif 000003
【図２】
2004054325.tif 000004
【図３】
2004054325.tif 000005