特許第5733239号(P5733239)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社デンソーの特許一覧 ▶ デンソー インターナショナル アメリカ インコーポレーテッドの特許一覧

<>
  • 特許5733239-アプリケーション実行方法及び実行装置 図000002
  • 特許5733239-アプリケーション実行方法及び実行装置 図000003
  • 特許5733239-アプリケーション実行方法及び実行装置 図000004
  • 特許5733239-アプリケーション実行方法及び実行装置 図000005
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5733239
(24)【登録日】2015年4月24日
(45)【発行日】2015年6月10日
(54)【発明の名称】アプリケーション実行方法及び実行装置
(51)【国際特許分類】
   G06F 11/30 20060101AFI20150521BHJP
   G06F 11/14 20060101ALI20150521BHJP
【FI】
   G06F11/30 310A
   G06F11/14 310Q
【請求項の数】14
【全頁数】13
(21)【出願番号】特願2012-35427(P2012-35427)
(22)【出願日】2012年2月21日
(65)【公開番号】特開2012-208923(P2012-208923A)
(43)【公開日】2012年10月25日
【審査請求日】2013年9月4日
(31)【優先権主張番号】61/469040
(32)【優先日】2011年3月29日
(33)【優先権主張国】US
(31)【優先権主張番号】13/102348
(32)【優先日】2011年5月6日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】000004260
【氏名又は名称】株式会社デンソー
(73)【特許権者】
【識別番号】500164385
【氏名又は名称】デンソー インターナショナル アメリカ インコーポレーテッド
(74)【代理人】
【識別番号】100106149
【弁理士】
【氏名又は名称】矢作 和行
(74)【代理人】
【識別番号】100121991
【弁理士】
【氏名又は名称】野々部 泰平
(74)【代理人】
【識別番号】100145595
【弁理士】
【氏名又は名称】久保 貴則
(72)【発明者】
【氏名】ワンピン ヤン
(72)【発明者】
【氏名】柴田 広明
(72)【発明者】
【氏名】篠田 浩司
【審査官】 多胡 滋
(56)【参考文献】
【文献】 特開平09−212389(JP,A)
【文献】 特開2002−007172(JP,A)
【文献】 特開2006−190153(JP,A)
【文献】 特開2004−086520(JP,A)
【文献】 特開2006−252388(JP,A)
【文献】 特開平08−279872(JP,A)
【文献】 特開2003−256240(JP,A)
【文献】 特開2004−326629(JP,A)
【文献】 特開2006−277062(JP,A)
【文献】 佐藤文優,MIRACLE LINUX,オープンソースマガジン,日本,ソフトバンククリエイティブ株式会社,2006年10月 1日,第15巻,第10号,pp.160-161
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/30
G06F 11/14
(57)【特許請求の範囲】
【請求項1】
アプリケーションを実行するための方法であって、
そのアプリケーションは、ファイルシステム(106)に記憶され、装置(100)のプロセッサ(102)によって実行され、さらに、アプリケーションからプロセッサへの命令を容易にするために、アプリケーションプログラムインターフェース(API:202)を利用するものであり、
ファイルシステムからアプリケーションを読み出すステップ(422)と、
そのアプリケーションをプロセッサにて実行するステップ(424)と、
APIコールに関して、アプリケーションとプロセッサとの間のインタラクションをモニタするステップ(426)と、
APIコールについてのモニタ結果に基づいて、アプリケーションがエラー状態にあると判定される場合に、バックアップメモリスペースからアプリケーションのバップアップコピーを読み出すステップ(418)と、
そのアプリケーションのバックアップコピーをファイルシステムに格納するステップ(418)と、
アプリケーションがエラー状態と連続して判定された回数をカウントするステップ(436)と、
カウントされた回数が第1の閾値を越えた時、ファイルシステムを再構築するステップ(416)と、を有し、
ファイルシステムが再構築される場合、アプリケーションのバックアップコピーは、ファイルシステムが再構築された後で読み出されてファイルシステムに格納されるアプリケーション実行方法。
【請求項2】
アプリケーションとプロセッサとの間のインタラクションをモニタするステップは、さらに、APIコールを観測することなしに経過した時間長さを決定し、その時間長さと時間閾値とを比較する(434)ものであり、その時間長さが時間閾値を超えたときに、アプリケーションがエラー状態にあると判定され、バックアップコピーが読み出されることを特徴とする請求項1に記載のアプリケーション実行方法。
【請求項3】
さらに、カウントされた回数が第2の閾値を超えたとき、装置をオフするステップ(446)を有し、カウントされた回数が第2の閾値を超えると、アプリケーションのバックアップコピーは読み出されないことを特徴とする請求項1又は2に記載のアプリケーション実行方法。
【請求項4】
さらに、アプリケーションの読み出しとアプリケーションの実行のいずれか一方の間に、アプリケーションをAPIにリンクさせるステップ(424)を有することを特徴とする請求項1に記載のアプリケーション実行方法。
【請求項5】
さらに、アプリケーションを動的にAPIにリンクさせるステップ(424)を有することを特徴とする請求項1に記載のアプリケーション実行方法。
【請求項6】
APIコールが所定時間以内に観測されたとき、アプリケーションのバックアップコピーを読み出すステップは実行されないことを特徴とする請求項1に記載のアプリケーション実行方法。
【請求項7】
装置は、テレマティクス装置及び携帯電話のいずれかであることを特徴とする請求項1に記載のアプリケーション実行方法。
【請求項8】
アプリケーションを実行するための装置であって、
そのアプリケーションは、コンピュータが実行可能な命令として具現化され、
そのアプリケーションを含む、複数のアプリケーションを記憶したファイルシステム(106)を有し、さらに、そのアプリケーションのバックアップコピーを含む、複数のアプリケーションの複数のバックアップコピーを記憶するバックアップメモリスペース(108)を有する不揮発性メモリ(104)と、
そのアプリケーションを実行可能に構成されたプロセッシングモジュール(102)と、
そのアプリケーションからプロセッシングモジュールへの命令を容易にすべく、プロセッシングモジュールで利用されるアプリケーションプログラムインターフェース(API:202)と、を備え、
前記プロセッシングモジュールは、
ファイルシステムからアプリケーションを読み出し、プロセッシングモジュールにて、そのアプリケーションを実行し、アプリケーションからプロセッシングモジュールへのAPIコールについて、アプリケーションとプロセッサとの間のインタラクションをモニタし、APIコールについてのモニタ結果に基づいて、アプリケーションがエラー状態にあると判定される場合に、バックアップメモリスペースからアプリケーションのバップアップコピーを読み出し、そのアプリケーションのバックアップコピーをファイルシステムに記憶アプリケーションがエラー状態と連続して判定された回数をカウントして、その回数が第1の閾値を越えた時、ファイルシステムを再構築するように構成されており、
ファイルシステムが再構築される場合、アプリケーションのバックアップコピーは、ファイルシステムが再構築された後で読み出されてファイルシステムに記憶されることを特徴とするアプリケーション実行装置。
【請求項9】
プロセッシングモジュールは、さらに、APIコールを観測することなしに経過した時間長さを決定し、その時間長さと時間閾値とを比較するように構成され、その時間長さが時間閾値を超えたときに、アプリケーションがエラー状態にあると判定され、バックアップコピーが読み出されることを特徴とする請求項に記載のアプリケーション実行装置。
【請求項10】
プロセッシングモジュールは、さらに、カウントされた回数が第2の閾値を超えたとき、装置をオフするように構成され、カウントされた回数が第2の閾値を超えると、アプリケーションのバックアップコピーは読み出されないことを特徴とする請求項8又は9に記載のアプリケーション実行装置。
【請求項11】
プロセッシングモジュールは、さらに、アプリケーションの読み出し時又はアプリケーションの実行の開始時に、アプリケーションをAPIにリンクさせるように構成されていることを特徴とする請求項に記載のアプリケーション実行装置。
【請求項12】
プロセッシングモジュールは、アプリケーションを動的にAPIにリンクさせることを特徴とする請求項に記載のアプリケーション実行装置。
【請求項13】
プロセッシングモジュールは、APIコールが所定時間以内に観測されたとき、アプリケーションのバックアップコピーを読み出さないことを特徴とする請求項に記載のアプリケーション実行装置。
【請求項14】
装置は、テレマティクス装置及び携帯電話のいずれかであることを特徴とする請求項に記載のアプリケーション実行装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、動的にリンクされる環境において、アプリケーションを復元して、そのアプリケーションを実行するための方法及び装置に関する。
【背景技術】
【0002】
この欄における記述は、本発明に関連する背景技術の情報を提供するものであるが、それは必ずしも公知技術に該当するものではない。
【0003】
今日の多くの装置は、コアソフトウエアを実行するプロセッサあるいはマイクロプロセッサを利用する。そして、それらプロセッサあるいはマイクとプロセッサのアーキテクチャは、その装置のためのアプリケーション開発のため、プログラマーにオープンにされている。例えば、サードパーティの開発者又はインハウスの開発者は、テレマティクス装置のためのアプリケーションを設計する。このような場合に、プロセッサにて実行される広範なアプリケーションの設計を容易にするため、プロセッサ製造者は、アプリケーション開発者がアプリケーションとプロセッサとの間をインターフェースで連結することができるように、アプリケーションプログラムインターフェース(API)を開発している。APIは、プロセッサにて実行されるオペレーティングシステムのサービスやリソースにアクセスしたりそれらを利用したりするために、アプリケーション開発者が使用する規則や規定のセットである。従って、APIは、第1のソフトウエアアプリケーションと第2のソフトウエアアプリケーションとの間のインターフェースとして機能するものである。例えば、APIは、プログラマーが、テレマティクス装置のオペレーティングシステム上で実行されるアプリケーションを開発することを可能にする。アプリケーション開発者は、テレマティクス装置において使用される特定のプロセッサ用、又はそこで実行されるオペレーティングシステム用の、特定のシステムコールを知っている必要はない。そうではなく、APIは、プロセッサ又はオペレーティングシステムから独立した、標準化された規則及び規定を有しているので、プログラマーは、APIのシンタックスや規則を使用することが可能であり、それにより、APIは、下位レベルのソフトウエア及び/又は装置のハードウエアコンポーネントに対する、抽象化層としての機能を提供する。
【発明の概要】
【発明が解決しようとする課題】
【0004】
慣例的に、ある装置向けに開発されるアプリケーションは、APIのリンクライブラリ及びファイルと静的にリンクされていた。つまり、アプリケーションは、コンパイル時に、リンクされていた。API設計者は、今日では、リンクライブラリの拡充及び変更をより強く望んでおり、装置のオペレーティングシステムは、アプリケーションを、APIのリンクライブラリに動的にリンクするようになってきた。例えば、BREW(Binary Runtime Environment for Wireless)は、開発者が携帯型装置用のアプリケーションを開発することができるように、Qualcomm社によって開発されたAPIである。歴史的に、BREWは、静的にリンクされていたが、最近の多くのBREWAPIでは、BREWアプリケーショの動的リンクが必要となっている。動的にリンクされるBREWアプリケーションを実行するためには、そのBREWアプリケーションを実行する前に実行されなければならない多くの複雑なプロセスがある。それらの複雑なプロセスの実行は、BREWアプリケーションが実行されないというリスクを増加させる。従って、動的にリンクされる環境では、静的にリンクされる環境における可能性とは対照的に、アプリケーションの動的なリンクが、アプリケーションが開始されないといったリスクを高めるという問題を生じさせる。そのため、動的にリンクされるアプリケーションの信頼性を高める必要がある。
【0005】
本発明のさらなる適用範囲は、以下に与えられる記載から明らかとなる。ただし、課題を解決する手段等における記載及び特定の例は、説明のみを目的とすることが意図され、本発明の範囲を制限することは何ら意図されないことが理解されるべきである。
【課題を解決するための手段】
【0006】
この欄では、本発明の全般的な概要が示されるが、それは、発明範囲すべての、あるいは発明の特徴の包括的な開示ではない。
【0007】
本発明の1つの態様として、アプリケーションを実行するための方法が開示される。アプリケーションは、ファイルシステムに記憶され、装置のプロセッサにて実行される。その際、アプリケーションからプロセッサへの命令を容易にするために、アプリケーションプログラムインターフェース(API)が使用される。本発明による方法は、ファイルシステムからアプリケーションを読み出し、プロセッサにてアプリケーションを実行し、APIコールについて、アプリケーションとプロセッサとの間のインタラクションをモニタし、APIコールについてのモニタ結果に基づいて、アプリケーションがエラー状態にあると判定される場合に、バックアップメモリスペースからアプリケーションのバップアップコピーを読み出し、そのアプリケーションのバックアップコピーをファイルシステムに格納し、アプリケーションがエラー状態と連続して判定された回数をカウントし、そのカウントされた回数が第1の閾値を越えた時、ファイルシステムを再構築するものであり、ファイルシステムが再構築される場合、アプリケーションのバックアップコピーは、ファイルシステムが再構築された後で読み出されてファイルシステムに格納される。
【0008】
本発明の別の態様では、アプリケーションが実行される装置が開示される。装置は、そのアプリケーションを含む、複数のアプリケーションを記憶したファイルシステムを有する不揮発性メモリを備える。ファイルシステムは、そのアプリケーションのバックアップコピーを含む、複数のアプリケーションのバックアップコピーを記憶するバックアップメモリスペースを有する。さらに、装置は、プロセッシングモジュールを含み、それは、アプリケーション、及び、アプリケーションからプロセッシングモジュールへの命令を容易にすべく、プロセッシングモジュールで利用されるアプリケーションプログラムインターフェース(API)を実行するように構成される。プロセッシングモジュールは、さらに、ファイルシステムからアプリケーションを読み出し、プロセッシングモジュールにて、そのアプリケーションを実行し、アプリケーションからプロセッシングモジュールへのAPIコールについて、アプリケーションとプロセッサとの間のインタラクションをモニタし、APIコールについてのモニタ結果に基づいて、アプリケーションがエラー状態にあると判定される場合に、バックアップメモリスペースからアプリケーションのバップアップコピーを読み出し、そのアプリケーションのバックアップコピーをファイルシステムに記憶し、アプリケーションがエラー状態と連続して判定された回数をカウントして、その回数が第1の閾値を越えた時、ファイルシステムを再構築するように構成されており、ファイルシステムが再構築される場合、アプリケーションのバックアップコピーは、ファイルシステムが再構築された後で読み出されてファイルシステムに記憶される。
【図面の簡単な説明】
【0009】
図1】代表例としての装置の構成を示すブロック図である。
図2】代表例としての装置の階層構造を示す図である。
図3】動的にリンクされるアプリケーションの実行時に、実施される代表例としての方法を示すフローチャートである。
図4】動的にリンクされるアプリケーションの実行時に、実施される別の代表例としての方法を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下、本発明の例示としての実施形態が、添付図面を参照しつつ、詳細に説明される。なお、図面は、選りすぐられた実施形態の説明のみを目的とするものであり、実現可能なすべての形態を示すものではなく、また、本発明の範囲を制限することは何ら意図されない。
【0011】
実行エラーが生じたときに、装置において実行されるべきアプリケーションを回復する枠組みのための装置及び方法が開示される。アプリケーションは、ファイルシステムに記憶され、装置のプロセッサは、ファイルシステムからアプリケーションをロードし、RAM上でそのアプリケーションを起動する。プロセッサは、アプリケーションがエラー状態にあるかを判定するために、アプリケーションによって発せられるAPIコールをモニタする。APIコールが実行されなかったとき、プロセッサはアプリケーションの回復動作を開始する。例えば、アプリケーションがバックアップ場所から回復され、あるいはファイルシステムが再構築される。
【0012】
図1は、代表例としての装置100を示している。装置100は、テレマティクス装置、セルラー電話、タブレットPC、PDA(Personal Digital Assistant)などとして機能するものである。装置100は、プロセッシングモジュール102,このプロセッシングモジュール102と通信可能な不揮発性メモリ104,及び、任意ではあるが、ユーザインターフェース112、通信モジュール110を備えている。
【0013】
プロセッシングモジュール102は、装置100のコアとなる機能を実行するように構成されている。プロセッシングモジュール102は、プロセッサ、マイクロプロセッサ、マイクロコントローラー、あるいは、その他のいずれかのプロセッシングユニットを有する。プロセッシングモジュール102は、さらにランダムアクセスメモリ(RAM)、もしくは他の揮発性メモリを有する。プロセッシングモジュール102は、装置100のオペレーティングシステムを実行するように構成されている。さらに、プロセッシングモジュール102は、不揮発性メモリ104からデータを読み出し、及び/又は不揮発性メモリ104にデータを書き込むように構成されている。プロセッシングモジュール102は、不揮発性メモリ104からアプリケーションを読み出し、そのアプリケーションをプロセッシングモジュール102のRAMに書き込む。
【0014】
不揮発性メモリ104は、適切ないずれのメモリデバイスであっても良い。例えば、不揮発性メモリデバイス104は、ハードディスクドライブであっても良いし、あるいはフラッシュメモリデバイスであっても良い。メモリデバイス104は、ファイルシステム106とバックアップメモリスペース108をそれぞれ含む少なくとも2つのセクションに仕切られている。ファイルシステム106は、プロセッシングモジュール102によって使用されるデータを複数のディレクトリ及び/又はファイルに組織化したものである。複数のファイルの中で、ファイルシステム106は、装置100のために開発されたアプリケーションを記憶している。なお、アプリケーションは、目的物に応じて変化することが理解されるべきである。例えば、テレマティクス装置では、アプリケーションはCDMAアプリケーション、GPSアプリケーション、もしくはインターネットアプリケーションを含むものであっても良い。アプリケーションは、装置製造者、もしくはサードパーティの開発者によって開発される。アプリケーションは、コンピュータにて実行可能な命令からなる。いくつかの実施形態では、アプリケーションはコンパイルされ、ファイルシステムに記憶されるが、ロード時もしくは実行時までリンクされない。
【0015】
バックアップメモリスペース108は、データのバックアップコピーを記憶するためのものである。例えば、バックアップメモリスペース108は、アプリケーションのバックアップコピーを記憶する。従って、ファイルシステム106に記憶されたアプリケーションが破損したとき、ファイルシステム106は、バックアップメモリスペース108からアプリケーションのバックアップコピーを読み出して、ファイルシステム106のアプリケーションを回復することができる。
【0016】
装置100は、さらにユーザインターフェース112及び/又は通信モジュール110を有する。ユーザインターフェース112は、ユーザからの入力データを受け取り、またユーザへデータを出力するように構成されている。例えば、テレマティクス装置においては、ユーザインターフェース112により、ユーザはタッチスクリーンを介してコマンドを入力することができ、またテレマティクス装置の状態を示す画面をユーザに表示することができる。
【0017】
通信モジュール110は、外部のデータソースにデータを送信し、及び/又は外部のデータソースからデータを受信するように構成されている。例えば、装置100がテレマティクス装置あるいは携帯電話である場合、通信モジュール110は、携帯電話の基地局あるいはGPS衛星と通信するように構成される。つまり、テレマティクス装置の例では、装置100がCDMAアプリケーションを実行する場合、通信モジュール110が、携帯電話の基地局のような通信ノードと通信するように構成される。通信モジュール110は、通信ノードにデータを送信し、及び通信ノードからデータを受信する。
【0018】
装置100は、さらに、追加の構成を含み得ることが理解されるべきである。上述の構成は、代表的なものにすぎず、また実例を示すためのみに与えられたものである。
【0019】
図2は、装置100の実行時の環境の代表的な階層構造を示すものである。第1レベル200では、オペレーティングシステムが装置100のコアとなる機能に関するタスクを実行する。オペレーティングシステムは、アプリケーションをオペレーティングシステムのレベル200とインターフェースで接続することを可能とするアプリケーションプログラムインターフェース(API)202を含んでいる。API202は、開発者が、好ましいシステムコールやオペレーティングシステムの機能を知らなくとも使用可能な、規則及び命令のセットを定義する。さらに、API202は、アプリケーションをサポートするための機能及びサブルーチンを定義するライブラリのセットを含んでいる。実行時等には、オペレーティングシステムが、アプリケーションの実行形式のコードとライブラリとを動的にリンクさせる。
【0020】
開発者がアプリケーションを開発するとき、開発者は、装置100専用のアプリケーションをプログラムする必要はなく、API202によって定義される命令を利用することができる。従って、API202は、アプリケーションが、種々のプラットフォームにおいて実行できることを可能とする。幾つかの実施形態では、API202として、Qualcomm社によって開発されたBREW(Binary Runtime Environment for Wireless)が用いられる。
【0021】
第2レベル210では、ファイルシステム106が、オペレーティングシステムのレベル200の上に乗っている。ファイルシステム106は、第1アプリケーション212及び第2アプリケーション214を含む複数のアプリケーションを格納している。第1アプリケーション212が実行のために呼び出されたとき、第1アプリケーション212とAPI202のリンクライブラリとが、オペレーティングシステムによってコンパイル及びリンクされ、RAM214に記憶される。
【0022】
第2レベル210の上には、第3レベル220において、バックアップメモリスペース108が乗っている。バックアップメモリスペース108は、第1アプリケーションのバックアップコピー222及び第2アプリケーションのバックアップコピー224を含む複数のアプリケーションのバックアップコピーを記憶している。バックアップメモリスペース108は、第2レベル210の上に乗っており、それにより、ファイルシステム106がフェイルしたとしても、ファイルシステム106は、バックアップメモリスペース108にアクセスし、第1及び第2アプリケーションのバックアップコピー222、224を引き出して、ファイルシステム106に格納し直すことが可能である。さらに、ファイルシステム106は、ファイルシステムそれ自体がフェイルした場合に、再び仕切られて、再構築されるように構成されている。
【0023】
なお、上述した階層構造は、いかなる意味においても、単なる代表例にすぎないことが理解されるべきであり、他の階層構造が、装置100に実装されることは想定され得ることである。
【0024】
図3は、プロセッシングモジュール102によって実行される代表的な方法を示している。図3に示された方法は、アプリケーションの実行がユーザ若しくはオペレーティングシステムのタスクによって要求される都度、実施される。その方法は、装置100の電源投入時にも実施される。例えば、ユーザが、テレマティクス装置によって実行可能なCDMAアプリケーションを使用して、通話を開始したいと考えた場合、図3に示される方法が実施される。
【0025】
装置100の電源投入時には、プロセッシングモジュール102は、装置100のコアソフトウエアを初期化する(ステップ312)。幾つかの実施形態では、コアソフトウエアは、装置100のオペレーティングシステムである。一旦、コアソフトウエアが初期化されると、装置100は、アプリケーションを開始するための命令を受け取る。ファイルシステム106からアプリケーションをロードする前に、プロセッシングモジュール102は、ステップ314に示されるように、アプリケーションの回復が必要とされるか否かを判定する。後に詳細に説明するように、アプリケーションの回復が必要とされるかを示すフラグ、もしくは類似の指標が、保持されている。従って、プロセッシングモジュール102は、アプリケーション回復フラグの値をチェックすることで、アプリケーションの回復が必要とされるかどうかを判定する。アプリケーションの回復が必要とされるならば、プロセッシングモジュール102は、ステップ316に示されるように、ファイルシステム106を初期化するとともに、再構築する。なお、ファイルシステム106を初期化するとともに再構築するために適したいかなる手段も利用することが可能である。一般的には、プロセッサ又はマイクロプロセッサは、再構築命令を受けたときに、ファイルシステム106の再構築プロセスを実行するための所定の命令セットを実行するよう、予めプログラムされている。
【0026】
ファイルシステム106が再構築されると、バックアップメモリスペース108は、ファイルシステム106から、バックアップメモリスペース108からアプリケーションのバックアップコピーを取得するための命令を受け取る。ファイルシステム106は、アプリケーションのバックアップコピーを受け取り、それを、ステップ318に示されるように、ファイルシステム106にコピーする。なお、ファイルシステム106は、複数のアプリケーションのバックアップコピーを要求できることが理解されるべきである。例えば、装置100が、GPSアプリケーションとCDMAアプリケーションとを含む場合には、ファイルシステム106は、バックアップGPSアプリケーションとバックアップCDMAアプリケーションとを要求する。そして、ファイルシステム106は、それらのアプリケーションのバックアップコピーを受け取り、その後、ファイルシステム106に格納する。
【0027】
アプリケーションが回復を必要としない場合、もしくは、再構築及び回復操作の実行が完了した後、プロセッシングモジュール102は、ステップ320に示されるように、アプリケーションをファイルシステム106からRAM214にロードする。そうするために、プロセッシングモジュール102は、ファイルシステム106に対してアプリケーションを要求する。すると、ファイルシステム106は、アプリケーションの実行形式のコードをプロセッシングモジュール102に返す。プロセッシングモジュール102が、アプリケーションを受け取ると、そのアプリケーションは、プロセッシングモジュール102のRAM214に保存される。
【0028】
次に、プロセッシングモジュール102は、ステップ322に示されるように、API202に含まれるいずれかのリンクファイルもしくはリンクライブラリに、アプリケーションをリンクさせる。いくつかの実施形態では、プロセッシングモジュール102は、ロード時に、アプリケーションの実行形式のコードと、API202に含まれるリンクライブラリあるいはリンクファイルの実行形式のコードとをリンクさせる。他の実施形態では、プロセッシングモジュール102は、実行時に、アプリケーションの実行形式のコードと、API202に含まれるリンクライブラリあるいはリンクファイルの実行形式のコードとをリンクさせる。アプリケーションプログラムがリンクファイルもしくはリンクライブラリにリンクされると、プロセッシングモジュール102は、そのアプリケーションの実行を開始する。
【0029】
アプリケーションの実行が開始されると、プロセッシングモジュール102は、ステップ324に示されるように、アプリケーションからのAPIコールがアプリケーションによって発せられたかどうかを判定する。実行の間、アプリケーションは、必ずAPIコールを発することが理解されるべきである。もし、アプリケーションがエラー状態にあり、例えば、アプリケーションプログラムが首尾よくリンクファイルにリンクされなかったりすると、アプリケーションはAPIコールを発生しない。APIコールがオペレーティングシステムによって受信されたならば、プロセッシングモジュール102は、アプリケーションが適切に実行されていると推測する。アプリケーションが適切に動作していれば、プロセッシングモジュール102は、ステップ326に示すように、再試行カウント値をゼロにセットする。再試行カウント値については、後に詳細に説明する。また、プロセッシングモジュール102は、ステップ328に示すように、アプリケーション回復フラグをオフにセットし、ステップ330に示すように、アプリケーションの実行を継続する。
【0030】
APIコールがプロセッシングモジュール102によって受信されない場合、プロセッシングモジュール102は、アプリケーションが実行を開始してから経過した時間長さを判定する。時間長さは、ステップ332に示されるように、時間閾値と比較される。時間閾値は、APIコールがアプリケーションによって発せられるまでに経過可能な最大時間長さを示すものである。このように、プロセッシングモジュール102は、ステップ332と324との間に形成されたループによって示されるように、APIコールが受信されるか、あるいは時間閾値を超えるかするまで、APIコールが受信されたかどうかのチェックを続ける。時間閾値を超えてしまった場合、プロセッシングモジュール102は、例えば、アプリケーションがAPI202のリンクファイル又はライブラリに適切にリンクされなかったなど、アプリケーションがエラー状態にあるとみなす。
【0031】
時間閾値を超えた場合には、プロセッシングモジュール102は、ステップ334に示すように、再試行カウント値をインクリメントする。再試行カウント値は、アプリケーションがエラー状態にあると連続して判定された回数を示す。この再試行カウント値は、ステップ336に示されるように、再試行閾値と比較される。再試行カウント値が再試行閾値を超えると、是正措置が取られる。例えば、ステップ338に示されるように、装置100がオフされる。
【0032】
再試行カウント値が、再試行閾値以下であれば、ステップ340に示されるように、アプリケーション回復フラグがオンにセットされる。この場合、プロセッシングモジュール102がアプリケーション回復フラグをチェックしたとき、プロセッシングモジュール102がアプリケーションのバックアップコピーを引き出すことができるように、プロセッシングモジュール102は、ステップ312において、コアソフトウエアを再度初期化する。もしくは、プロセッシングモジュール102は、コアソフトウエアの初期化ステップをスキップしても良い。
【0033】
上記方法の変形例も実施可能であり、それらは本発明の範囲に含まれることが理解されるべきである。さらに、図3において示された幾つかのステップは、結合して単一のステップにしても良く、その一方で、他のステップは複数のステップに分けて実行しても良いことに注意すべきである。
【0034】
図4は、図3を用いて説明された方法の別の実施形態を示すものである。図3を用いて説明されたと同様、電源投入に基づき、ステップ412に示されるように、コアソフトウエアがプロセッシングモジュール102によって初期化される。コアソフトウエアが初期化されると、プロセッシングモジュール102は、ステップ414に示されるように、ファイルシステム復元操作が実行されるべきかどうかを判定する。この判定に際して、幾つかの実施形態では、プロセッシングモジュール102は、ファイル復元フラグの値をチェックする。ファイルシステムの復元が必要である場合には、プロセッシングモジュール102は、ステップ416に示されるように、ファイルシステムを初期化するとともに再構築する。そして、プロセッシングモジュール102は、ステップ418に示されるように、1つもしくはそれ以上のアプリケーションのバックアップコピーをバックアップメモリスペース108から引き出し、そのバックアップアプリケーションをファイルシステム106にコピーする。
【0035】
ファイルシステム再構築操作が必要とされない場合には、プロセッシングモジュール102は、ステップ420に示されるように、アプリケーション回復操作の実行が必要であるか否かを判定する。例えば、幾つかの実施形態では、プロセッシングモジュール102は、アプリケーション回復操作の実行が必要であるかどうかを示すアプリケーション回復フラグを保持している。それらの実施形態では、オペレーティングシステムがアプリケーション回復フラグをチェックし、アプリケーションの回復が必要とされているかどうかを判定する。もし、アプリケーション回復フラグがオンにセットされていたとすると、ステップ418に示されるように、アプリケーションは、バックアップメモリスペース108からファイルシステム106にコピーされる。
【0036】
アプリケーション回復フラグ及びファイルシステム復元フラグのチェックが完了した後、プロセッシングモジュール102は、ステップ422に示されるように、ファイルシステム106からRAM214へとアプリケーションをロードする。そして、プロセッシングモジュール102は、ステップ424に示されるように、API202のファイルをアプリケーションにリンクさせ、アプリケーションの実行を開始する。いくつかの実施形態では、プロセッシングモジュール102は、ロード時に、アプリケーションの実行形式のコードと、API202に含まれるリンクライブラリあるいはリンクファイルの実行形式のコードとをリンクさせる。他の実施形態では、プロセッシングモジュール102は、実行時に、アプリケーションの実行形式のコードと、API202に含まれるリンクライブラリあるいはリンクファイルの実行形式のコードとをリンクさせる。アプリケーションプログラムがリンクファイルなどにリンクされると、プロセッシングモジュール102は、そのアプリケーションの実行を開始する。
【0037】
アプリケーションの実行が開始されると、オペレーティングシステムは、ステップ426に示されるように、APIコールがアプリケーションから発せられたかどうかを判定する。APIコールがアプリケーションによって発せられたならば、ステップ428から432に示されるように、再試行カウント値がゼロにセットされ、アプリケーション回復フラグ及びファイルシステム復元フラグがともにオフにセットされ、そして、プロセッシングモジュール102は、通常のアプリケーションプロセスの実行を継続する。
【0038】
しかしながら、もし、APIコールが受信されないならば、プロセッシングモジュール102は、ステップ434に示されるように、アプリケーションの実行を開始してから経過した時間長さと時間閾値とを比較する。APIコールが受信されることなく、アプリケーションが呼び出されてからの時間長さが時間閾値を超えてしまうと、ステップ436に示されるように、再試行カウント値がインクリメントされる。上述したように、再試行カウント値は、何回、アプリケーションがエラー状態にあると判定されたかを示すものである。
【0039】
本実施形態では、プロセッシングモジュール102は、最初に、ファイルシステム106を再構築することなく、アプリケーションを回復させることを試みる。そして、所定回数のアプリケーション回復の試行の後、プロセッシングモジュール102は、ファイルシステム106を再構築するとともに、アプリケーションの回復を試みる。もし、所定回数のファイルシステム復元の試行の後でさえ、エラーが解決されないのであれば、例えば装置100がオフされる等の、是正措置が取られる。
【0040】
そのため、プロセッシングモジュール102は、まずステップ438において、再試行カウント値を、第1再試行カウント閾値、例えば「2」と比較する。再試行カウント値が第1再試行カウント閾値を超えていなければ、ステップ440に示されるように、アプリケーション回復フラグがオンにセットされ、その後、ステップ412の処理に戻る。一方、再試行カウント値が第1再試行カウント閾値を超えている場合には、ステップ442に示されるように、再試行カウント値が第2再試行カウント閾値、例えば「4」と比較される。再試行カウント値が第2再試行カウント閾値を超えていなければ、ステップ444に示されるように、ファイルシステム復元フラグがオンにセットされ、その後、ステップ412の処理に戻る。一方、再試行カウント値が第2再試行カウント閾値を超えている場合には、プロセッシングモジュール102は、ステップ446に示されるように、例えば装置100をオフするなどの、是正措置を講ずる。
【0041】
上記方法の変形例も実施可能であり、それらは、本発明の範囲に含まれることが理解されるべきである。さらに、図4において示された幾つかのステップは、結合して単一のステップにしても良く、その一方で、他のステップは複数のステップに分けて実行しても良いことに注意すべきである。
【0042】
本明細書で使用された如く、「モジュール」との用語は、特定用途向けIC(ASIC)、電子回路、組み合わせ論理回路、書き換え可能ゲートアレイ(FPGA)、コードを実行するプロセッサ(共用、専用、あるいは集合)、説明した機能を提供する他の適当な構成、もしくは、システムオンチップのような、上述した構成のいくつかもしくはすべての組み合わせの、一部又は全体の構成を含むものとして使用されている。また、モジュールとの用語はプロセッサによって実行されるコードを記憶するメモリ(共用、専用、あるいは集合)を含むものであっても良い。
【0043】
上記において使用された、「コード」との用語は、ソフトウエア、ファームウエア、及び/又はマイクロコードを含み、プログラム、ルーチン、機能、クラス、及び/又はオブジェクトまで言い及ぶものである。また、上記の「共用」との用語は、複数のモジュールからの幾つか若しくは全てのコードが単一の(共用された)プロセッサを用いて実行されることを意味する。さらに、複数のモジュールからの幾つか若しくは全てのコードが、単一(共用された)メモリに記憶されることも意味する。上記において使用された「集合」との用語は、単一のモジュールからの幾つかの若しくは全てのコードが複数のプロセッサのグループを用いて実行されることを意味する。さらに、単一のモジュールからの幾つかの若しくは全てのコードが複数のメモリのグループを用いて記憶されることを意味する。
【0044】
本明細書に記載された装置及び方法は、1つあるいはそれ以上のプロセッサによって実行される1つあるいはそれ以上のコンピュータプログラムによって履行されるものである。コンピュータプログラムは、固定の実体的なコンピュータ読み出し可能媒体に記憶された、プロセッサが実行可能な命令を含むものである。コンピュータプログラムは、記憶されたデータも含むものであっても良い。固定の実体的なコンピュータ読み出し可能媒体の非制限的な例は、不揮発性メモリ、磁気メモリ、光メモリである。
【0045】
本発明の広範な教示は、種々の形態で実施されえるものである。それ故、本明細書では、特定の例を含むものであるが、他の変形例は図面、明細書、及び特許請求の範囲の内容から、当業者にあきらかとなるので、本発明の真の範囲は、そのようなものに限定されるべきものではない。
【符号の説明】
【0046】
100 装置
102 プロセッシングモジュール
104 RAM
106 ファイルシステム
108 バックアップメモリスペース
110 通信モジュール
112 ユーザインターフェース
図1
図2
図3
図4