JP2012208923A - アプリケーション実行方法及び実行装置 - Google Patents

アプリケーション実行方法及び実行装置 Download PDF

Info

Publication number
JP2012208923A
JP2012208923A JP2012035427A JP2012035427A JP2012208923A JP 2012208923 A JP2012208923 A JP 2012208923A JP 2012035427 A JP2012035427 A JP 2012035427A JP 2012035427 A JP2012035427 A JP 2012035427A JP 2012208923 A JP2012208923 A JP 2012208923A
Authority
JP
Japan
Prior art keywords
application
processing module
file system
api
backup copy
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2012035427A
Other languages
English (en)
Other versions
JP5733239B2 (ja
Inventor
Wan-Ping Yang
ヤン ワンピン
Hiroaki Shibata
広明 柴田
Koji Shinoda
浩司 篠田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Corp
Denso International America Inc
Original Assignee
Denso Corp
Denso International America Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Denso Corp, Denso International America Inc filed Critical Denso Corp
Publication of JP2012208923A publication Critical patent/JP2012208923A/ja
Application granted granted Critical
Publication of JP5733239B2 publication Critical patent/JP5733239B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Retry When Errors Occur (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】動的にリンクされるアプリケーションの信頼性を高める。
【解決手段】装置(100)は、アプリケーションを記憶したファイルシステムを有する不揮発性メモリ(104)を備える。不揮発性メモリは、そのアプリケーションのバックアップコピーを記憶するバックアップメモリスペース(108)を有する。さらに、装置は、プロセッシングモジュール(102)を含み、それは、アプリケーションからプロセッシングモジュールへの命令を容易にすべく、アプリケーションプログラムインターフェース(API)を用いる。そして、プロセッシングモジュールは、ファイルシステムからアプリケーションを読み出して実行しつつ、そのアプリケーションからのAPIコールについてモニタし、そのモニタ結果に基づいて、アプリケーションのバップアップコピーを読み出し、ファイルシステムに記憶する。
【選択図】図1

Description

本発明は、動的にリンクされる環境において、アプリケーションを復元して、そのアプリケーションを実行するための方法及び装置に関する。
この欄における記述は、本発明に関連する背景技術の情報を提供するものであるが、それは必ずしも公知技術に該当するものではない。
今日の多くの装置は、コアソフトウエアを実行するプロセッサあるいはマイクロプロセッサを利用する。そして、それらプロセッサあるいはマイクとプロセッサのアーキテクチャは、その装置のためのアプリケーション開発のため、プログラマーにオープンにされている。例えば、サードパーティの開発者又はインハウスの開発者は、テレマティクス装置のためのアプリケーションを設計する。このような場合に、プロセッサにて実行される広範なアプリケーションの設計を容易にするため、プロセッサ製造者は、アプリケーション開発者がアプリケーションとプロセッサとの間をインターフェースで連結することができるように、アプリケーションプログラムインターフェース(API)を開発している。APIは、プロセッサにて実行されるオペレーティングシステムのサービスやリソースにアクセスしたりそれらを利用したりするために、アプリケーション開発者が使用する規則や規定のセットである。従って、APIは、第1のソフトウエアアプリケーションと第2のソフトウエアアプリケーションとの間のインターフェースとして機能するものである。例えば、APIは、プログラマーが、テレマティクス装置のオペレーティングシステム上で実行されるアプリケーションを開発することを可能にする。アプリケーション開発者は、テレマティクス装置において使用される特定のプロセッサ用、又はそこで実行されるオペレーティングシステム用の、特定のシステムコールを知っている必要はない。そうではなく、APIは、プロセッサ又はオペレーティングシステムから独立した、標準化された規則及び規定を有しているので、プログラマーは、APIのシンタックスや規則を使用することが可能であり、それにより、APIは、下位レベルのソフトウエア及び/又は装置のハードウエアコンポーネントに対する、抽象化層としての機能を提供する。
慣例的に、ある装置向けに開発されるアプリケーションは、APIのリンクライブラリ及びファイルと静的にリンクされていた。つまり、アプリケーションは、コンパイル時に、リンクされていた。API設計者は、今日では、リンクライブラリの拡充及び変更をより強く望んでおり、装置のオペレーティングシステムは、アプリケーションを、APIのリンクライブラリに動的にリンクするようになってきた。例えば、BREW(Binary Runtime Environment for Wireless)は、開発者が携帯型装置用のアプリケーションを開発することができるように、Qualcomm社によって開発されたAPIである。歴史的に、BREWは、静的にリンクされていたが、最近の多くのBREWAPIでは、BREWアプリケーショの動的リンクが必要となっている。動的にリンクされるBREWアプリケーションを実行するためには、そのBREWアプリケーションを実行する前に実行されなければならない多くの複雑なプロセスがある。それらの複雑なプロセスの実行は、BREWアプリケーションが実行されないというリスクを増加させる。従って、動的にリンクされる環境では、静的にリンクされる環境における可能性とは対照的に、アプリケーションの動的なリンクが、アプリケーションが開始されないといったリスクを高めるという問題を生じさせる。そのため、動的にリンクされるアプリケーションの信頼性を高める必要がある。
本発明のさらなる適用範囲は、以下に与えられる記載から明らかとなる。ただし、課題を解決する手段等における記載及び特定の例は、説明のみを目的とすることが意図され、本発明の範囲を制限することは何ら意図されないことが理解されるべきである。
この欄では、本発明の全般的な概要が示されるが、それは、発明範囲すべての、あるいは発明の特徴の包括的な開示ではない。
本発明の1つの態様として、アプリケーションを実行するための方法が開示される。アプリケーションは、ファイルシステムに記憶され、装置のプロセッサにて実行される。その際、アプリケーションからプロセッサへの命令を容易にするために、アプリケーションプログラムインターフェース(API)が使用される。本発明による方法は、ファイルシステムからアプリケーションを読み出し、プロセッサにてアプリケーションを実行し、APIコールについて、アプリケーションとプロセッサとの間のインタラクションをモニタし、APIコールについてのモニタ結果に基づいて、バックアップメモリスペースからアプリケーションのバップアップコピーを読み出し、そのアプリケーションのバックアップコピーをファイルシステムに記憶する。
本発明の別の態様では、アプリケーションが実行される装置が開示される。装置は、そのアプリケーションを含む、複数のアプリケーションを記憶したファイルシステムを有する不揮発性メモリを備える。ファイルシステムは、そのアプリケーションのバックアップコピーを含む、複数のアプリケーションのバックアップコピーを記憶するバックアップメモリスペースを有する。さらに、装置は、プロセッシングモジュールを含み、それは、アプリケーション、及び、アプリケーションからプロセッシングモジュールへの命令を容易にすべく、プロセッシングモジュールで利用されるアプリケーションプログラムインターフェース(API)を実行するように構成される。プロセッシングモジュールは、さらに、ファイルシステムからアプリケーションを読み出し、プロセッシングモジュールにて、そのアプリケーションを実行し、アプリケーションからプロセッシングモジュールへのAPIコールについて、アプリケーションとプロセッサとの間のインタラクションをモニタし、APIコールについてのモニタ結果に基づいて、バックアップメモリスペースからアプリケーションのバップアップコピーを読み出し、そのアプリケーションのバックアップコピーをファイルシステムに記憶する。
代表例としての装置の構成を示すブロック図である。 代表例としての装置の階層構造を示す図である。 動的にリンクされるアプリケーションの実行時に、実施される代表例としての方法を示すフローチャートである。 動的にリンクされるアプリケーションの実行時に、実施される別の代表例としての方法を示すフローチャートである。
以下、本発明の例示としての実施形態が、添付図面を参照しつつ、詳細に説明される。なお、図面は、選りすぐられた実施形態の説明のみを目的とするものであり、実現可能なすべての形態を示すものではなく、また、本発明の範囲を制限することは何ら意図されない。
実行エラーが生じたときに、装置において実行されるべきアプリケーションを回復する枠組みのための装置及び方法が開示される。アプリケーションは、ファイルシステムに記憶され、装置のプロセッサは、ファイルシステムからアプリケーションをロードし、RAM上でそのアプリケーションを起動する。プロセッサは、アプリケーションがエラー状態にあるかを判定するために、アプリケーションによって発せられるAPIコールをモニタする。APIコールが実行されなかったとき、プロセッサはアプリケーションの回復動作を開始する。例えば、アプリケーションがバックアップ場所から回復され、あるいはファイルシステムが再構築される。
図1は、代表例としての装置100を示している。装置100は、テレマティクス装置、セルラー電話、タブレットPC、PDA(Personal Digital Assistant)などとして機能するものである。装置100は、プロセッシングモジュール102,このプロセッシングモジュール102と通信可能な不揮発性メモリ104,及び、任意ではあるが、ユーザインターフェース112、通信モジュール110を備えている。
プロセッシングモジュール102は、装置100のコアとなる機能を実行するように構成されている。プロセッシングモジュール102は、プロセッサ、マイクロプロセッサ、マイクロコントローラー、あるいは、その他のいずれかのプロセッシングユニットを有する。プロセッシングモジュール102は、さらにランダムアクセスメモリ(RAM)、もしくは他の揮発性メモリを有する。プロセッシングモジュール102は、装置100のオペレーティングシステムを実行するように構成されている。さらに、プロセッシングモジュール102は、不揮発性メモリ104からデータを読み出し、及び/又は不揮発性メモリ104にデータを書き込むように構成されている。プロセッシングモジュール102は、不揮発性メモリ104からアプリケーションを読み出し、そのアプリケーションをプロセッシングモジュール102のRAMに書き込む。
不揮発性メモリ104は、適切ないずれのメモリデバイスであっても良い。例えば、不揮発性メモリデバイス104は、ハードディスクドライブであっても良いし、あるいはフラッシュメモリデバイスであっても良い。メモリデバイス104は、ファイルシステム106とバックアップメモリスペース108をそれぞれ含む少なくとも2つのセクションに仕切られている。ファイルシステム106は、プロセッシングモジュール102によって使用されるデータを複数のディレクトリ及び/又はファイルに組織化したものである。複数のファイルの中で、ファイルシステム106は、装置100のために開発されたアプリケーションを記憶している。なお、アプリケーションは、目的物に応じて変化することが理解されるべきである。例えば、テレマティクス装置では、アプリケーションはCDMAアプリケーション、GPSアプリケーション、もしくはインターネットアプリケーションを含むものであっても良い。アプリケーションは、装置製造者、もしくはサードパーティの開発者によって開発される。アプリケーションは、コンピュータにて実行可能な命令からなる。いくつかの実施形態では、アプリケーションはコンパイルされ、ファイルシステムに記憶されるが、ロード時もしくは実行時までリンクされない。
バックアップメモリスペース108は、データのバックアップコピーを記憶するためのものである。例えば、バックアップメモリスペース108は、アプリケーションのバックアップコピーを記憶する。従って、ファイルシステム106に記憶されたアプリケーションが破損したとき、ファイルシステム106は、バックアップメモリスペース108からアプリケーションのバックアップコピーを読み出して、ファイルシステム106のアプリケーションを回復することができる。
装置100は、さらにユーザインターフェース112及び/又は通信モジュール110を有する。ユーザインターフェース112は、ユーザからの入力データを受け取り、またユーザへデータを出力するように構成されている。例えば、テレマティクス装置においては、ユーザインターフェース112により、ユーザはタッチスクリーンを介してコマンドを入力することができ、またテレマティクス装置の状態を示す画面をユーザに表示することができる。
通信モジュール110は、外部のデータソースにデータを送信し、及び/又は外部のデータソースからデータを受信するように構成されている。例えば、装置100がテレマティクス装置あるいは携帯電話である場合、通信モジュール110は、携帯電話の基地局あるいはGPS衛星と通信するように構成される。つまり、テレマティクス装置の例では、装置100がCDMAアプリケーションを実行する場合、通信モジュール110が、携帯電話の基地局のような通信ノードと通信するように構成される。通信モジュール110は、通信ノードにデータを送信し、及び通信ノードからデータを受信する。
装置100は、さらに、追加の構成を含み得ることが理解されるべきである。上述の構成は、代表的なものにすぎず、また実例を示すためのみに与えられたものである。
図2は、装置100の実行時の環境の代表的な階層構造を示すものである。第1レベル200では、オペレーティングシステムが装置100のコアとなる機能に関するタスクを実行する。オペレーティングシステムは、アプリケーションをオペレーティングシステムのレベル200とインターフェースで接続することを可能とするアプリケーションプログラムインターフェース(API)202を含んでいる。API202は、開発者が、好ましいシステムコールやオペレーティングシステムの機能を知らなくとも使用可能な、規則及び命令のセットを定義する。さらに、API202は、アプリケーションをサポートするための機能及びサブルーチンを定義するライブラリのセットを含んでいる。実行時等には、オペレーティングシステムが、アプリケーションの実行形式のコードとライブラリとを動的にリンクさせる。
開発者がアプリケーションを開発するとき、開発者は、装置100専用のアプリケーションをプログラムする必要はなく、API202によって定義される命令を利用することができる。従って、API202は、アプリケーションが、種々のプラットフォームにおいて実行できることを可能とする。幾つかの実施形態では、API202として、Qualcomm社によって開発されたBREW(Binary Runtime Environment for Wireless)が用いられる。
第2レベル210では、ファイルシステム106が、オペレーティングシステムのレベル200の上に乗っている。ファイルシステム106は、第1アプリケーション212及び第2アプリケーション214を含む複数のアプリケーションを格納している。第1アプリケーション212が実行のために呼び出されたとき、第1アプリケーション212とAPI202のリンクライブラリとが、オペレーティングシステムによってコンパイル及びリンクされ、RAM214に記憶される。
第2レベル210の上には、第3レベル220において、バックアップメモリスペース108が乗っている。バックアップメモリスペース108は、第1アプリケーションのバックアップコピー222及び第2アプリケーションのバックアップコピー224を含む複数のアプリケーションのバックアップコピーを記憶している。バックアップメモリスペース108は、第2レベル210の上に乗っており、それにより、ファイルシステム106がフェイルしたとしても、ファイルシステム106は、バックアップメモリスペース108にアクセスし、第1及び第2アプリケーションのバックアップコピー222、224を引き出して、ファイルシステム106に格納し直すことが可能である。さらに、ファイルシステム106は、ファイルシステムそれ自体がフェイルした場合に、再び仕切られて、再構築されるように構成されている。
なお、上述した階層構造は、いかなる意味においても、単なる代表例にすぎないことが理解されるべきであり、他の階層構造が、装置100に実装されることは想定され得ることである。
図3は、プロセッシングモジュール102によって実行される代表的な方法を示している。図3に示された方法は、アプリケーションの実行がユーザ若しくはオペレーティングシステムのタスクによって要求される都度、実施される。その方法は、装置100の電源投入時にも実施される。例えば、ユーザが、テレマティクス装置によって実行可能なCDMAアプリケーションを使用して、通話を開始したいと考えた場合、図3に示される方法が実施される。
装置100の電源投入時には、プロセッシングモジュール102は、装置100のコアソフトウエアを初期化する(ステップ312)。幾つかの実施形態では、コアソフトウエアは、装置100のオペレーティングシステムである。一旦、コアソフトウエアが初期化されると、装置100は、アプリケーションを開始するための命令を受け取る。ファイルシステム106からアプリケーションをロードする前に、プロセッシングモジュール102は、ステップ314に示されるように、アプリケーションの回復が必要とされるか否かを判定する。後に詳細に説明するように、アプリケーションの回復が必要とされるかを示すフラグ、もしくは類似の指標が、保持されている。従って、プロセッシングモジュール102は、アプリケーション回復フラグの値をチェックすることで、アプリケーションの回復が必要とされるかどうかを判定する。アプリケーションの回復が必要とされるならば、プロセッシングモジュール102は、ステップ316に示されるように、ファイルシステム106を初期化するとともに、再構築する。なお、ファイルシステム106を初期化するとともに再構築するために適したいかなる手段も利用することが可能である。一般的には、プロセッサ又はマイクロプロセッサは、再構築命令を受けたときに、ファイルシステム106の再構築プロセスを実行するための所定の命令セットを実行するよう、予めプログラムされている。
ファイルシステム106が再構築されると、バックアップメモリスペース108は、ファイルシステム106から、バックアップメモリスペース108からアプリケーションのバックアップコピーを取得するための命令を受け取る。ファイルシステム106は、アプリケーションのバックアップコピーを受け取り、それを、ステップ318に示されるように、ファイルシステム106にコピーする。なお、ファイルシステム106は、複数のアプリケーションのバックアップコピーを要求できることが理解されるべきである。例えば、装置100が、GPSアプリケーションとCDMAアプリケーションとを含む場合には、ファイルシステム106は、バックアップGPSアプリケーションとバックアップCDMAアプリケーションとを要求する。そして、ファイルシステム106は、それらのアプリケーションのバックアップコピーを受け取り、その後、ファイルシステム106に格納する。
アプリケーションが回復を必要としない場合、もしくは、再構築及び回復操作の実行が完了した後、プロセッシングモジュール102は、ステップ320に示されるように、アプリケーションをファイルシステム106からRAM214にロードする。そうするために、プロセッシングモジュール102は、ファイルシステム106に対してアプリケーションを要求する。すると、ファイルシステム106は、アプリケーションの実行形式のコードをプロセッシングモジュール102に返す。プロセッシングモジュール102が、アプリケーションを受け取ると、そのアプリケーションは、プロセッシングモジュール102のRAM214に保存される。
次に、プロセッシングモジュール102は、ステップ322に示されるように、API202に含まれるいずれかのリンクファイルもしくはリンクライブラリに、アプリケーションをリンクさせる。いくつかの実施形態では、プロセッシングモジュール102は、ロード時に、アプリケーションの実行形式のコードと、API202に含まれるリンクライブラリあるいはリンクファイルの実行形式のコードとをリンクさせる。他の実施形態では、プロセッシングモジュール102は、実行時に、アプリケーションの実行形式のコードと、API202に含まれるリンクライブラリあるいはリンクファイルの実行形式のコードとをリンクさせる。アプリケーションプログラムがリンクファイルもしくはリンクライブラリにリンクされると、プロセッシングモジュール102は、そのアプリケーションの実行を開始する。
アプリケーションの実行が開始されると、プロセッシングモジュール102は、ステップ324に示されるように、アプリケーションからのAPIコールがアプリケーションによって発せられたかどうかを判定する。実行の間、アプリケーションは、必ずAPIコールを発することが理解されるべきである。もし、アプリケーションがエラー状態にあり、例えば、アプリケーションプログラムが首尾よくリンクファイルにリンクされなかったりすると、アプリケーションはAPIコールを発生しない。APIコールがオペレーティングシステムによって受信されたならば、プロセッシングモジュール102は、アプリケーションが適切に実行されていると推測する。アプリケーションが適切に動作していれば、プロセッシングモジュール102は、ステップ326に示すように、再試行カウント値をゼロにセットする。再試行カウント値については、後に詳細に説明する。また、プロセッシングモジュール102は、ステップ328に示すように、アプリケーション回復フラグをオフにセットし、ステップ330に示すように、アプリケーションの実行を継続する。
APIコールがプロセッシングモジュール102によって受信されない場合、プロセッシングモジュール102は、アプリケーションが実行を開始してから経過した時間長さを判定する。時間長さは、ステップ332に示されるように、時間閾値と比較される。時間閾値は、APIコールがアプリケーションによって発せられるまでに経過可能な最大時間長さを示すものである。このように、プロセッシングモジュール102は、ステップ332と324との間に形成されたループによって示されるように、APIコールが受信されるか、あるいは時間閾値を超えるかするまで、APIコールが受信されたかどうかのチェックを続ける。時間閾値を超えてしまった場合、プロセッシングモジュール102は、例えば、アプリケーションがAPI202のリンクファイル又はライブラリに適切にリンクされなかったなど、アプリケーションがエラー状態にあるとみなす。
時間閾値を超えた場合には、プロセッシングモジュール102は、ステップ334に示すように、再試行カウント値をインクリメントする。再試行カウント値は、アプリケーションがエラー状態にあると連続して判定された回数を示す。この再試行カウント値は、ステップ336に示されるように、再試行閾値と比較される。再試行カウント値が再試行閾値を超えると、是正措置が取られる。例えば、ステップ338に示されるように、装置100がオフされる。
再試行カウント値が、再試行閾値以下であれば、ステップ340に示されるように、アプリケーション回復フラグがオンにセットされる。この場合、プロセッシングモジュール102がアプリケーション回復フラグをチェックしたとき、プロセッシングモジュール102がアプリケーションのバックアップコピーを引き出すことができるように、プロセッシングモジュール102は、ステップ312において、コアソフトウエアを再度初期化する。もしくは、プロセッシングモジュール102は、コアソフトウエアの初期化ステップをスキップしても良い。
上記方法の変形例も実施可能であり、それらは本発明の範囲に含まれることが理解されるべきである。さらに、図3において示された幾つかのステップは、結合して単一のステップにしても良く、その一方で、他のステップは複数のステップに分けて実行しても良いことに注意すべきである。
図4は、図3を用いて説明された方法の別の実施形態を示すものである。図3を用いて説明されたと同様、電源投入に基づき、ステップ412に示されるように、コアソフトウエアがプロセッシングモジュール102によって初期化される。コアソフトウエアが初期化されると、プロセッシングモジュール102は、ステップ414に示されるように、ファイルシステム復元操作が実行されるべきかどうかを判定する。この判定に際して、幾つかの実施形態では、プロセッシングモジュール102は、ファイル復元フラグの値をチェックする。ファイルシステムの復元が必要である場合には、プロセッシングモジュール102は、ステップ416に示されるように、ファイルシステムを初期化するとともに再構築する。そして、プロセッシングモジュール102は、ステップ418に示されるように、1つもしくはそれ以上のアプリケーションのバックアップコピーをバックアップメモリスペース108から引き出し、そのバックアップアプリケーションをファイルシステム106にコピーする。
ファイルシステム再構築操作が必要とされない場合には、プロセッシングモジュール102は、ステップ420に示されるように、アプリケーション回復操作の実行が必要であるか否かを判定する。例えば、幾つかの実施形態では、プロセッシングモジュール102は、アプリケーション回復操作の実行が必要であるかどうかを示すアプリケーション回復フラグを保持している。それらの実施形態では、オペレーティングシステムがアプリケーション回復フラグをチェックし、アプリケーションの回復が必要とされているかどうかを判定する。もし、アプリケーション回復フラグがオンにセットされていたとすると、ステップ418に示されるように、アプリケーションは、バックアップメモリスペース108からファイルシステム106にコピーされる。
アプリケーション回復フラグ及びファイルシステム復元フラグのチェックが完了した後、プロセッシングモジュール102は、ステップ422に示されるように、ファイルシステム106からRAM214へとアプリケーションをロードする。そして、プロセッシングモジュール102は、ステップ424に示されるように、API202のファイルをアプリケーションにリンクさせ、アプリケーションの実行を開始する。いくつかの実施形態では、プロセッシングモジュール102は、ロード時に、アプリケーションの実行形式のコードと、API202に含まれるリンクライブラリあるいはリンクファイルの実行形式のコードとをリンクさせる。他の実施形態では、プロセッシングモジュール102は、実行時に、アプリケーションの実行形式のコードと、API202に含まれるリンクライブラリあるいはリンクファイルの実行形式のコードとをリンクさせる。アプリケーションプログラムがリンクファイルなどにリンクされると、プロセッシングモジュール102は、そのアプリケーションの実行を開始する。
アプリケーションの実行が開始されると、オペレーティングシステムは、ステップ426に示されるように、APIコールがアプリケーションから発せられたかどうかを判定する。APIコールがアプリケーションによって発せられたならば、ステップ428から432に示されるように、再試行カウント値がゼロにセットされ、アプリケーション回復フラグ及びファイルシステム復元フラグがともにオフにセットされ、そして、プロセッシングモジュール102は、通常のアプリケーションプロセスの実行を継続する。
しかしながら、もし、APIコールが受信されないならば、プロセッシングモジュール102は、ステップ434に示されるように、アプリケーションの実行を開始してから経過した時間長さと時間閾値とを比較する。APIコールが受信されることなく、アプリケーションが呼び出されてからの時間長さが時間閾値を超えてしまうと、ステップ436に示されるように、再試行カウント値がインクリメントされる。上述したように、再試行カウント値は、何回、アプリケーションがエラー状態にあると判定されたかを示すものである。
本実施形態では、プロセッシングモジュール102は、最初に、ファイルシステム106を再構築することなく、アプリケーションを回復させることを試みる。そして、所定回数のアプリケーション回復の試行の後、プロセッシングモジュール102は、ファイルシステム106を再構築するとともに、アプリケーションの回復を試みる。もし、所定回数のファイルシステム復元の試行の後でさえ、エラーが解決されないのであれば、例えば装置100がオフされる等の、是正措置が取られる。
そのため、プロセッシングモジュール102は、まずステップ438において、再試行カウント値を、第1再試行カウント閾値、例えば「2」と比較する。再試行カウント値が第1再試行カウント閾値を超えていなければ、ステップ440に示されるように、アプリケーション回復フラグがオンにセットされ、その後、ステップ412の処理に戻る。一方、再試行カウント値が第1再試行カウント閾値を超えている場合には、ステップ442に示されるように、再試行カウント値が第2再試行カウント閾値、例えば「4」と比較される。再試行カウント値が第2再試行カウント閾値を超えていなければ、ステップ444に示されるように、ファイルシステム復元フラグがオンにセットされ、その後、ステップ412の処理に戻る。一方、再試行カウント値が第2再試行カウント閾値を超えている場合には、プロセッシングモジュール102は、ステップ446に示されるように、例えば装置100をオフするなどの、是正措置を講ずる。
上記方法の変形例も実施可能であり、それらは、本発明の範囲に含まれることが理解されるべきである。さらに、図4において示された幾つかのステップは、結合して単一のステップにしても良く、その一方で、他のステップは複数のステップに分けて実行しても良いことに注意すべきである。
本明細書で使用された如く、「モジュール」との用語は、特定用途向けIC(ASIC)、電子回路、組み合わせ論理回路、書き換え可能ゲートアレイ(FPGA)、コードを実行するプロセッサ(共用、専用、あるいは集合)、説明した機能を提供する他の適当な構成、もしくは、システムオンチップのような、上述した構成のいくつかもしくはすべての組み合わせの、一部又は全体の構成を含むものとして使用されている。また、モジュールとの用語はプロセッサによって実行されるコードを記憶するメモリ(共用、専用、あるいは集合)を含むものであっても良い。
上記において使用された、「コード」との用語は、ソフトウエア、ファームウエア、及び/又はマイクロコードを含み、プログラム、ルーチン、機能、クラス、及び/又はオブジェクトまで言い及ぶものである。また、上記の「共用」との用語は、複数のモジュールからの幾つか若しくは全てのコードが単一の(共用された)プロセッサを用いて実行されることを意味する。さらに、複数のモジュールからの幾つか若しくは全てのコードが、単一(共用された)メモリに記憶されることも意味する。上記において使用された「集合」との用語は、単一のモジュールからの幾つかの若しくは全てのコードが複数のプロセッサのグループを用いて実行されることを意味する。さらに、単一のモジュールからの幾つかの若しくは全てのコードが複数のメモリのグループを用いて記憶されることを意味する。
本明細書に記載された装置及び方法は、1つあるいはそれ以上のプロセッサによって実行される1つあるいはそれ以上のコンピュータプログラムによって履行されるものである。コンピュータプログラムは、固定の実体的なコンピュータ読み出し可能媒体に記憶された、プロセッサが実行可能な命令を含むものである。コンピュータプログラムは、記憶されたデータも含むものであっても良い。固定の実体的なコンピュータ読み出し可能媒体の非制限的な例は、不揮発性メモリ、磁気メモリ、光メモリである。
本発明の広範な教示は、種々の形態で実施されえるものである。それ故、本明細書では、特定の例を含むものであるが、他の変形例は図面、明細書、及び特許請求の範囲の内容から、当業者にあきらかとなるので、本発明の真の範囲は、そのようなものに限定されるべきものではない。
100 装置
102 プロセッシングモジュール
104 RAM
106 ファイルシステム
108 バックアップメモリスペース
110 通信モジュール
112 ユーザインターフェース

Claims (20)

  1. アプリケーションを実行するための方法であって、
    そのアプリケーションは、ファイルシステム(106)に記憶され、装置(100)のプロセッサ(102)によって実行され、さらに、アプリケーションからプロセッサへの命令を容易にするために、アプリケーションプログラムインターフェース(API:202)を利用するものであり、
    ファイルシステムからアプリケーションを読み出すステップ(320、422)と、
    そのアプリケーションをプロセッサにて実行するステップ(322,424)と、
    APIコールに関して、アプリケーションとプロセッサとの間のインタラクションをモニタするステップ(324,426)と、
    APIコールについてのモニタ結果に基づいて、バックアップメモリスペースからアプリケーションのバップアップコピーを読み出すステップ(318,418)と、
    そのアプリケーションのバックアップコピーをファイルシステムに格納するステップ(318,418)と、からなるアプリケーション実行方法。
  2. アプリケーションとプロセッサとの間のインタラクションをモニタするステップは、さらに、APIコールを観測することなしに経過した時間長さを決定し、その時間長さと時間閾値とを比較する(332,434)ものであり、その時間長さが時間閾値を超えたときに、バックアップコピーが読み出されることを特徴とする請求項1に記載のアプリケーション実行方法。
  3. さらに、APIコールについてのモニタ結果に基づいて、ファイルシステムを再構築するステップ(316、416)を有することを特徴とする請求項1に記載のアプリケーション実行方法。
  4. さらに、アプリケーションとプロセッサとの間のインタラクションが、アプリケーションがエラー状態にあることを示す時間長さを示すカウント値を維持するステップ(334,436)を有し、APIコールが観測されることなく所定時間長さが経過したとき、エラーが発生したとされることを特徴とする請求項1に記載のアプリケーション実行方法。
  5. さらに、カウント値が第1の閾値を超えたとき、ファイルシステムを再構築するステップ(416)を有し、アプリケーションのバックアップコピーは、ファイルシステムが再構築された後で読み出されることを特徴とする請求項4に記載のアプリケーション実行方法。
  6. さらに、カウント値が第2の閾値を超えたとき、装置をオフするステップ(446)を有し、カウント値が第2の閾値を超えると、アプリケーションのバックアップコピーは読み出されないことを特徴とする請求項4に記載のアプリケーション実行方法。
  7. さらに、アプリケーションの読み出しとアプリケーションの実行のいずれか一方の間に、アプリケーションをAPIにリンクさせるステップ(322,424)を有することを特徴とする請求項1に記載のアプリケーション実行方法。
  8. さらに、アプリケーションを動的にAPIにリンクさせるステップ(322,424)を有することを特徴とする請求項1に記載のアプリケーション実行方法。
  9. APIコールが所定時間以内に観測されたとき、アプリケーションのバックアップコピーを読み出すステップは実行されないことを特徴とする請求項1に記載のアプリケーション実行方法。
  10. 装置は、テレマティクス装置及び携帯電話のいずれかであることを特徴とする請求項1に記載のアプリケーション実行方法。
  11. アプリケーションを実行するための装置であって、
    そのアプリケーションは、コンピュータが実行可能な命令として具現化され、
    そのアプリケーションを含む、複数のアプリケーションを記憶したファイルシステム(106)を有し、さらに、そのアプリケーションのバックアップコピーを含む、複数のアプリケーションの複数のバックアップコピーを記憶するバックアップメモリスペース(108)を有する不揮発性メモリ(104)と、
    そのアプリケーションを実行可能に構成されたプロセッシングモジュール(102)と、
    そのアプリケーションからプロセッシングモジュールへの命令を容易にすべく、プロセッシングモジュールで利用されるアプリケーションプログラムインターフェース(API:202)と、を備え、
    前記プロセッシングモジュールは、
    ファイルシステムからアプリケーションを読み出し、プロセッシングモジュールにて、そのアプリケーションを実行し、アプリケーションからプロセッシングモジュールへのAPIコールについて、アプリケーションとプロセッサとの間のインタラクションをモニタし、APIコールについてのモニタ結果に基づいて、バックアップメモリスペースからアプリケーションのバップアップコピーを読み出し、そのアプリケーションのバックアップコピーをファイルシステムに記憶する、ように構成されていることを特徴とするアプリケーション実行装置。
  12. プロセッシングモジュールは、さらに、APIコールを観測することなしに経過した時間長さを決定し、その時間長さと時間閾値とを比較するように構成され、その時間長さが時間閾値を超えたときに、バックアップコピーが読み出されることを特徴とする請求項11に記載のアプリケーション実行装置。
  13. プロセッシングモジュールは、さらに、APIコールについてのモニタ結果に基づいて、ファイルシステムを再構築するように構成されていることを特徴とする請求項11に記載のアプリケーション実行装置。
  14. プロセッシングモジュールは、さらに、アプリケーションとプロセッサとの間のインタラクションが、アプリケーションがエラー状態にあることを示す時間長さを示すカウント値を維持するように構成され、プロセッシングモジュールがAPIコールを観測することなく所定時間長さが経過したとき、エラーが発生したとみなすことを特徴とする請求項11に記載のアプリケーション実行装置。
  15. プロセッシングモジュールは、さらに、カウント値が第1の閾値を超えたとき、ファイルシステムを再構築するように構成され、アプリケーションのバックアップコピーは、ファイルシステムが再構築された後に、バックアップメモリスペースから読み出されることを特徴とする請求項14に記載のアプリケーション実行装置。
  16. プロセッシングモジュールは、さらに、カウント値が第2の閾値を超えたとき、装置をオフするように構成され、カウント値が第2の閾値を超えると、アプリケーションのバックアップコピーは読み出されないことを特徴とする請求項14に記載のアプリケーション実行装置。
  17. プロセッシングモジュールは、さらに、アプリケーションの読み出し時又はアプリケーションの実行の開始時に、アプリケーションをAPIにリンクさせるように構成されていることを特徴とする請求項11に記載のアプリケーション実行装置。
  18. プロセッシングモジュールは、アプリケーションを動的にAPIにリンクさせることを特徴とする請求項11に記載のアプリケーション実行装置。
  19. プロセッシングモジュールは、APIコールが所定時間以内に観測されたとき、アプリケーションのバックアップコピーを読み出さないことを特徴とする請求項11に記載のアプリケーション実行装置。
  20. 装置は、テレマティクス装置及び携帯電話のいずれかであることを特徴とする請求項11に記載のアプリケーション実行装置。
JP2012035427A 2011-03-29 2012-02-21 アプリケーション実行方法及び実行装置 Expired - Fee Related JP5733239B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201161469040P 2011-03-29 2011-03-29
US61/469040 2011-03-29
US13/102,348 US8516506B2 (en) 2011-03-29 2011-05-06 Method and system for restoring an application in a dynamically linked environment
US13/102348 2011-05-06

Publications (2)

Publication Number Publication Date
JP2012208923A true JP2012208923A (ja) 2012-10-25
JP5733239B2 JP5733239B2 (ja) 2015-06-10

Family

ID=46929080

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012035427A Expired - Fee Related JP5733239B2 (ja) 2011-03-29 2012-02-21 アプリケーション実行方法及び実行装置

Country Status (3)

Country Link
US (1) US8516506B2 (ja)
JP (1) JP5733239B2 (ja)
CN (1) CN102750200A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101653685B1 (ko) * 2015-11-27 2016-09-02 주식회사 비디 컴퓨터 수행 가능한 api 관리 방법

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150242282A1 (en) * 2014-02-24 2015-08-27 Red Hat, Inc. Mechanism to update software packages
US10114661B2 (en) 2014-11-07 2018-10-30 Roku, Inc. System and method for fast starting an application
CN105138420A (zh) * 2015-07-31 2015-12-09 小米科技有限责任公司 数据备份方法、装置及系统、数据恢复方法、装置和系统
CN113138869A (zh) * 2016-01-15 2021-07-20 创新先进技术有限公司 远程调用方法及装置
CN111142940B (zh) * 2019-12-23 2023-06-30 成都海光微电子技术有限公司 处理器与软件的适配方法、装置、处理器、芯片和设备

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08279872A (ja) * 1995-04-07 1996-10-22 Ricoh Co Ltd ファクシミリ装置
JPH09212389A (ja) * 1996-01-31 1997-08-15 Sumitomo Electric Ind Ltd コンピュータシステムの異常状態検出方法および装置
JP2002007172A (ja) * 2000-06-16 2002-01-11 Nec Software Shikoku Ltd ストール監視装置及びストール監視方法並びにストール監視プログラムを記録した記録媒体
JP2003256240A (ja) * 2002-02-28 2003-09-10 Toshiba Corp 情報処理装置及びその障害回復方法
JP2004086520A (ja) * 2002-08-27 2004-03-18 Fujitsu Access Ltd 監視制御装置及び監視制御方法
JP2004326629A (ja) * 2003-04-28 2004-11-18 Fujitsu Ten Ltd 異常監視装置
JP2006190153A (ja) * 2005-01-07 2006-07-20 Canon Inc 障害復旧方法及び障害復旧プログラム
JP2006252388A (ja) * 2005-03-14 2006-09-21 Hitachi Kokusai Electric Inc ソフトウェア異常検出方法
JP2006277062A (ja) * 2005-03-28 2006-10-12 Mitsubishi Electric Corp アプリケーション管理装置およびそのソフトウェアを格納した記憶媒体

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5513314A (en) * 1995-01-27 1996-04-30 Auspex Systems, Inc. Fault tolerant NFS server system and mirroring protocol
US6314532B1 (en) * 1998-12-04 2001-11-06 Lucent Technologies Inc. Method and system for recovering from a software failure
US6513051B1 (en) * 1999-07-16 2003-01-28 Microsoft Corporation Method and system for backing up and restoring files stored in a single instance store
US6496944B1 (en) * 1999-10-06 2002-12-17 International Business Machines Corporation Method for database assisted file system restore
US7000154B1 (en) * 2001-11-28 2006-02-14 Intel Corporation System and method for fault detection and recovery
US8667035B2 (en) * 2004-02-12 2014-03-04 International Business Machines Corporation Method of converting a filesystem while the filesystem remains in an active state
US20060004890A1 (en) * 2004-06-10 2006-01-05 International Business Machines Corporation Methods and systems for providing directory services for file systems
US7549079B2 (en) * 2005-11-30 2009-06-16 Oracle International Corporation System and method of configuring a database system with replicated data and automatic failover and recovery
US7865472B1 (en) * 2007-09-28 2011-01-04 Symantec Corporation Methods and systems for restoring file systems
CN101751306B (zh) * 2008-12-12 2012-01-11 内江市效率源信息安全技术有限责任公司 缺陷硬盘的数据恢复设备和恢复方法
US20100262797A1 (en) * 2009-04-10 2010-10-14 PHD Virtual Technologies Virtual machine data backup
CN101908064A (zh) * 2010-07-20 2010-12-08 中兴通讯股份有限公司 数据库备份恢复方法和装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08279872A (ja) * 1995-04-07 1996-10-22 Ricoh Co Ltd ファクシミリ装置
JPH09212389A (ja) * 1996-01-31 1997-08-15 Sumitomo Electric Ind Ltd コンピュータシステムの異常状態検出方法および装置
JP2002007172A (ja) * 2000-06-16 2002-01-11 Nec Software Shikoku Ltd ストール監視装置及びストール監視方法並びにストール監視プログラムを記録した記録媒体
JP2003256240A (ja) * 2002-02-28 2003-09-10 Toshiba Corp 情報処理装置及びその障害回復方法
JP2004086520A (ja) * 2002-08-27 2004-03-18 Fujitsu Access Ltd 監視制御装置及び監視制御方法
JP2004326629A (ja) * 2003-04-28 2004-11-18 Fujitsu Ten Ltd 異常監視装置
JP2006190153A (ja) * 2005-01-07 2006-07-20 Canon Inc 障害復旧方法及び障害復旧プログラム
JP2006252388A (ja) * 2005-03-14 2006-09-21 Hitachi Kokusai Electric Inc ソフトウェア異常検出方法
JP2006277062A (ja) * 2005-03-28 2006-10-12 Mitsubishi Electric Corp アプリケーション管理装置およびそのソフトウェアを格納した記憶媒体

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSND200700020018; 佐藤文優: 'MIRACLE LINUX' オープンソースマガジン 第15巻,第10号, 20061001, pp.160-161, ソフトバンククリエイティブ株式会社 *
JPN6014032070; 佐藤文優: 'MIRACLE LINUX' オープンソースマガジン 第15巻,第10号, 20061001, pp.160-161, ソフトバンククリエイティブ株式会社 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101653685B1 (ko) * 2015-11-27 2016-09-02 주식회사 비디 컴퓨터 수행 가능한 api 관리 방법

Also Published As

Publication number Publication date
CN102750200A (zh) 2012-10-24
US20120254901A1 (en) 2012-10-04
US8516506B2 (en) 2013-08-20
JP5733239B2 (ja) 2015-06-10

Similar Documents

Publication Publication Date Title
JP5733239B2 (ja) アプリケーション実行方法及び実行装置
JP4901095B2 (ja) 不揮発性ストレージにカスタム・ソフトウェア・イメージ・アップデートを適用するフェイルセーフな方法
KR101636870B1 (ko) 최소 부트 이미지의 생성 방법 및 장치
JP5608139B2 (ja) 不揮発性メモリからの装置ブートアップ中のエラーの取り扱い
US7337434B2 (en) Off-device class/resource loading methods, systems and computer program products for debugging a Java application in a Java micro device
WO2019019643A1 (zh) 应用程序热更新方法、装置、终端和存储介质
US9740562B2 (en) Method for checkpointing and restoring program state
TWI296778B (en) Method and system for maintaining smbios
US20140304497A1 (en) Electronic device having function of booting operating system by bootloader, method of performing the same function, and storage medium
JP2008502968A (ja) 中間オブジェクト指向言語を備えるソフトウェアをポータブル・デバイスにロードするための方法
US20130007439A1 (en) Multicore processor system, computer product, and notification method
CN113157303A (zh) 升级方法、嵌入式系统、终端及计算机存储介质
US10459823B1 (en) Debugging using dual container images
CN113032183A (zh) 系统管理方法、装置、计算机设备和存储介质
US10592329B2 (en) Method and electronic device for continuing executing procedure being aborted from physical address where error occurs
US10698790B1 (en) Proactive debugging
TWI663544B (zh) 容錯操作方法與使用此方法的電子裝置
CN110681153B (zh) 游戏存档管理系统、方法、计算机设备及介质
TWI448967B (zh) 軟體更新方法與電腦可讀取媒體
TW201530434A (zh) 電子裝置與其非揮發性儲存裝置中開機程式的恢復方法
JP5969528B2 (ja) 情報処理システム、情報処理装置起動方法および起動プログラム
CN113050887A (zh) 闪存分区数据处理方法、装置、计算机设备和存储介质
CN118259936A (en) Operating system updating method, device, computing equipment and storage medium
CN115481403A (zh) 用于固件修补的方法和装置
CN117055934A (zh) 系统启动方法、装置、终端及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130904

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140723

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140805

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150317

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150330

R150 Certificate of patent or registration of utility model

Ref document number: 5733239

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees