JP2014109821A - 情報処理装置、情報処理方法及びプログラム - Google Patents

情報処理装置、情報処理方法及びプログラム Download PDF

Info

Publication number
JP2014109821A
JP2014109821A JP2012262776A JP2012262776A JP2014109821A JP 2014109821 A JP2014109821 A JP 2014109821A JP 2012262776 A JP2012262776 A JP 2012262776A JP 2012262776 A JP2012262776 A JP 2012262776A JP 2014109821 A JP2014109821 A JP 2014109821A
Authority
JP
Japan
Prior art keywords
file
unit
damaged
cache area
application
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.)
Pending
Application number
JP2012262776A
Other languages
English (en)
Inventor
Manabu Sato
学 佐藤
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.)
Canon Inc
Original Assignee
Canon 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 Canon Inc filed Critical Canon Inc
Priority to JP2012262776A priority Critical patent/JP2014109821A/ja
Priority to US14/092,010 priority patent/US20140156943A1/en
Publication of JP2014109821A publication Critical patent/JP2014109821A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】復元させることができるファイルが破損した場合、リソースを圧迫することなく、かつ、キャッシュにあるユーザデータを削除せずに破損したファイルを復元させる。
【解決手段】キャッシュ領域内に格納されたファイルから破損したファイルを検知する検知手段と、前記検知手段により検知された破損したファイルが復元可能なファイルであるか否かを判断する判断手段と、前記判断手段により復元可能と判断された場合、キャッシュ領域内の復元可能なファイルを削除し、前記削除したファイルをキャッシュ領域内に復元させる復元手段と、前記判断手段により復元不可能と判断された場合、キャッシュ領域内のファイルを削除して初期化する初期化手段と、を有することによって課題を解決する。
【選択図】図7

Description

本発明は、情報処理装置、情報処理方法及びプログラムに関する。
キャッシュを有するシステムにおいて、キャッシュファイルへ書き込みを行っている最中に電源切断されると、キャッシュファイルが破損した状態で書き込まれる可能性がある。そして、この破損したキャッシュファイルの読み込みが原因となり、システムやアプリケーションの動作不良が起こり得る。このようなキャッシュファイルが破損した場合の改善策としては、キャッシュファイルを全て削除し、製造直後の状態に戻す方法がある。また、これ以外にも以下のような技術が挙げられる。
電源の遮断に先立って終了処理が実施されたか否かを示す電源断フラグ信号を保持し、電源断フラグ信号が電源断に先立って終了処理が実施されていないことを示していれば、外部記憶装置に構築されたファイルシステムの修復を行う(特許文献1)。
各業務に対応した複数のデータをデータファイル領域で記憶すると共に、データバックアップ領域を設ける。そして、業務メニューから何れかの業務が選択されると、その業務のデータ処理を開始する前にその業務に対応するデータファイルをバックアップ領域に複写する。もし、データ処理中にアプリケーションプログラムが強制終了されると、バックアップ領域に記憶されているファイルをデータファイル領域に復元させる(特許文献2)。
操作パネル用プログラムの先頭部と、最終部とにそれぞれ同一のユニークなデータを設定し、操作パネル用プログラム起動時にユニークなデータの不一致を検出した場合、自動的に破損された操作パネル用プログラムの修復を行う(特許文献3)。
特開2011−76367号公報 特開2010−97560号公報 特開2008−18666号公報
キャッシュファイルの全削除では、キャッシュ内にある全てのファイルを削除してしまう。このため、キャッシュ内にアプリケーションが利用するデータが格納されている場合には、そのデータまでも削除されてしまう。
特許文献1に開示されている技術は、電源切断以前に処理が終了したか否かを判断し、終了していないと判断した場合に修復処理を行う。このため、特許文献1に開示されている技術は、ファイル破損が発生したという観点でしか復旧の対応をすることができない。
特許文献2、特許文献3に開示されている技術は、機器内部に予め復旧に必要なファイル等を格納し、ファイルが破損した際にはそれらを用いて修復を行う。このため、修復に必要なファイルが機器のリソースを圧迫してしまう。また、特許文献3に開示されている技術では、復旧に必要なファイルが機器内部に存在しない場合、問題が発生した際に対応することができない。
本発明は、上記問題を鑑みてなされたものであり、復元させることができるファイルが破損した場合であれば、リソースを圧迫することなく、かつ、ユーザデータを削除せずに復元させることができる技術を提供することを目的とする。また、本発明は、復元させることができないファイルが破損した場合であっても、システムが起動できなくなる問題に対して対処することができる技術を提供することを目的とする。
そこで、本発明は、キャッシュ領域内に格納されたファイルから破損したファイルを検知する検知手段と、前記検知手段により検知された破損したファイルが復元可能なファイルであるか否かを判断する判断手段と、前記判断手段により復元可能と判断された場合、キャッシュ領域内の復元可能なファイルを削除し、前記削除したファイルをキャッシュ領域内に復元させる復元手段と、前記判断手段により復元不可能と判断された場合、キャッシュ領域内のファイルを削除して初期化する初期化手段と、を有する。
本発明によれば、復元させることができるファイルが破損した場合、リソースを圧迫することなく、かつ、キャッシュにあるユーザデータを削除せずに破損したファイルを復元させることができる。また、復元させることができないファイルが破損した場合であっても、システムが起動できなくなる問題に対して対処することができる。
破損ファイル対応装置のハードウェア構成の一例を示す図である。 破損ファイル対応装置のソフトウェア構成の一例を示す図である。 記憶装置のディレクトリ構成の一例を示す図である。 フレームワークが有する機能の一例を示す図である。 破損ファイル対応装置の起動処理における機能と、起動処理の際に扱う情報との一例を示す図である。 破損対応部による処理の一例を示すフローチャートである。 アプリケーション起動準備部による処理の一例を示すフローチャートである。 アプリケーション起動部による処理の一例を示すフローチャートである。 管理情報読み込み部による処理の一例を示すフローチャートである。 管理情報書き込み部による処理の一例を示すフローチャートである。 アプリケーション監視部による処理の一例を示すフローチャートである。
以下、本発明の実施形態について図面に基づき説明する。
<実施形態1>
図1は、本実施形態の破損ファイル対応装置のハードウェア構成の一例を示す図である。
破損ファイル対応装置は、ハードウェア構成としてCPU(Central Processing Unit)101、入力装置102、記憶装置103、表示装置104を含む。なお、破損ファイル対応装置は、情報処理装置の一例である。
CPU101は、記憶装置103に格納されているプログラムを実行することにより後述の破損ファイル対応装置の機能(ソフトウェア構成)及びフローチャートに係る処理を実現する。
入力装置102は、キーボード、マウス、タッチディスプレイ等のユーザが情報を入力するためのデバイスである。
記憶装置103は、プログラムやアプリケーションの実行に要するデータであるユーザデータが格納されているハードディスクやRAM(Random Access Memory)等である。
表示装置104は、ユーザへ各種情報を表示するディスプレイである。
CPU101、入力装置102、記憶装置103、表示装置104は、バス105を介して、接続されている。
図2は、本実施形態の破損ファイル対応装置のソフトウェア構成の一例を示す図である。
破損ファイル対応装置は、ソフトウェア構成としてオペレーティングシステム201、実行環境202、フレームワーク203、アプリケーション204を含む。
オペレーティングシステム201は、システムの基盤となるソフトウェアである。
実行環境202は、オペレーティングシステム201上で動作し、自身の上でアプリケーション204が動作する環境を提供する。
フレームワーク203は、アプリケーション204の動作状態を管理するソフトウェアである。本実施形態では、Java(登録商標)モジュールの動的インストールや実行を管理するフレームワーク203として、OSGi(Open Services Gat
eway initiative)フレームワークを用いる。
フレームワーク203は、インストールされたアプリケーション204の起動順、状態、利用するデータの格納先等の情報(以下、管理情報という)をファイル(以下、管理ファイルという)に記述し、アプリケーション204の管理に利用している。また、フレームワーク203は、起動時に管理ファイルを読み込み、前回の起動時と同じ状態を再現する。そして、フレームワーク203は、アプリケーション204のインストールやアップデート、状態変更等により管理情報に変更が発生すると、それに合わせて管理ファイルを更新する。管理ファイルは、破損ファイル対応装置が保持する情報によってファイルが分かれており、複数個存在してもよい。
なお、本実施形態において、アプリケーション204をインストールするとは、より具体的には、アプリケーション204の機能を実現するためにCPU101が実行するアプリケーションファイルをインストールすることである。ただし、説明の便宜上、以後の説明ではアプリケーションファイルをインストールする場合でも、アプリケーションをインストールするという。
図3は、記憶装置103のディレクトリ構成の一例を示す図である。
記憶装置103は、キャッシュディレクトリ301、バンドルディレクトリ302、ライブラリディレクトリ303を含む。
キャッシュディレクトリ301には、インストールされたアプリケーション204、アプリケーション204が利用するデータであるユーザデータ、管理ファイル、後述するフラグファイル等が格納されている。
フレームワーク203は、キャッシュディレクトリ301内にアプリケーション204がインストールされると、インストールされたアプリケーション204そのものを格納し、ユーザデータを格納するディレクトリを作成する。また、フレームワーク203は、アプリケーション204と、ユーザデータとの関係について記述したファイルである管理ファイルを格納する。
バンドルディレクトリ302内には、破損ファイル対応装置を動作させるために必要となるアプリケーション204が格納されており、破損ファイル対応装置の初回起動時に利用される。
ライブラリディレクトリ303内には、破損ファイル対応装置が利用するライブラリファイルが格納されている。また、ライブラリディレクトリ303内には、初回起動時にインストールされるアプリケーションやアプリケーションをインストールする順番等の初期インストールに関する情報が記載されたファイルも格納されている。
次に、フレームワーク203の動作について、図4を用いて説明する。
図4は、フレームワーク203が有する機能の一例を示す図である。
フレームワーク203は、起動処理において、前回の動作で管理ファイルやアプリケーション204に問題が発生していないかをチェックし、対応する破損対応部401による処理を実行する。そして、フレームワーク203は、キャッシュディレクトリ301内に格納されたアプリケーション204の読み込み等を行うアプリケーション起動準備部402、アプリケーション204の起動を行うアプリケーション起動部403による処理を実行する。なお、フレームワーク203が管理しているアプリケーション204は、起動時に参照される起動レベルを含んでいる。一方で、フレームワーク203は、起動するアプリケーション204を制限するためのレベルである起動指示レベルを含んでいる。
アプリケーション起動部403は、フレームワーク203が起動指示レベル以下の起動レベルを含むアプリケーション204を順次起動させる。また、フレームワーク203は、ユーザが起動指示レベルを変更するための機能として、起動指示レベル変更部404を有する。同様に、フレームワーク203は、アプリケーション204の起動レベルを変更する機能として、起動レベル変更部405を有する。
フレームワーク203は、アプリケーション204の動作状態を管理する。すなわち、フレームワーク203は、アプリケーション204のインストール、アップデート、アンインストール、開始、停止を行う機能を有する。本実施形態では、上記の機能それぞれをアプリケーション追加部406、アプリケーション更新部407、アプリケーション削除部408、アプリケーション開始部409、アプリケーション停止部410とする。また、フレームワーク203は、アプリケーション204の開始時や動作中に異常が発生していないかをアプリケーション監視部411により監視している。
フレームワーク203は、起動時に管理情報読み込み部412により、記憶装置103のハードディスクに格納されている管理ファイルの読み込みを行い、記憶装置103のRAMに格納する。そして、フレームワーク203は、記憶装置103のRAMに格納した管理ファイルの内容に基づき処理を行う。また、フレームワーク203は、管理情報の更新が行われると、管理情報書き込み部413により管理情報を管理ファイルに記載し、ハードディスクに保存する。また、フレームワーク203は、起動指示レベル変更部404、起動レベル変更部405により、各種レベルの更新を行う。また、フレームワーク203は、アプリケーション追加部406、アプリケーション更新部407、アプリケーション削除部408、アプリケーション開始部409、アプリケーション停止部410により、アプリケーションに関する情報の更新を行う。
次に、破損ファイル対応装置の起動処理について、図5を用いて説明する。
図5は、破損ファイル対応装置の起動処理における機能と、起動処理の際に扱う情報との一例を示す図である。
破損ファイル対応装置の起動処理の機能は、破損対応部401、アプリケーション起動準備部402、アプリケーション起動部403の3つの機能に大きく分けることができる。
まず、破損対応部401について説明する。
破損対応部401は、部分削除部501、全削除部502を機能として有し、情報として段階1フラグファイル503、段階2フラグファイル504を利用する。
段階1フラグファイル503、段階2フラグファイル504とは、前回の動作時に管理ファイルやアプリケーション204に破損があったことを示すフラグファイルである。フラグファイルの詳細については後述する。
破損ファイル対応装置は、動作に必要となるアプリケーション204をバンドルディレクトリ302内に格納する。このため、破損ファイル対応装置は、バンドルディレクトリ302内に格納されているアプリケーション204がキャッシュディレクトリ301内から削除されても、再度インストールすることができる。なお、破損ファイル対応装置は、破損ファイル対応装置が通信可能なネットワークに接続されている場合、ネットワーク上にアプリケーションを格納することで、そこから再インストールを行うようにすることもできる。
また、管理ファイルにおいても、ライブラリディレクトリ303内に格納されている初期インストールに関する情報等を基に再作成が可能な管理ファイルが存在する。キャッシュディレクトリ301内に段階1フラグファイル503が存在するということは、このように再インストールや再作成が可能なファイルが破損したことを意味している。なお、上記の再インストールや再作成が可能なファイルは、復元可能なファイルの一例である。また、上述したようにバンドルディレクトリ内のファイル、ネットワーク上のファイル、ライブラリディレクトリ内のファイルに基づいて、破損したファイルをキャッシュ領域内に再インストールや再作成する処理は、復元処理の一例である。
また、フレームワーク203は、アプリケーション追加部406によって、バンドルディレクトリ302内に格納されていないアプリケーション204をインストールすることができる。しかし、破損ファイル対応装置は、バンドルディレクトリ302内にアプリケーション204が存在しないので、アプリケーション204がキャッシュディレクトリ301内から削除されると、再インストールや再作成をすることができなくなる。キャッシュディレクトリ301内に段階2フラグファイル504が存在するということは、このように再インストールや再作成が不可能なファイルが破損したことを意味している。なお、上記の再インストールや再作成が不可能なファイルは、復元不可能なファイルの一例である。
部分削除部501は、キャッシュディレクトリ301内に段階1フラグファイル503が存在した場合に、キャッシュディレクトリ301内に格納されている再インストールや再作成が可能なアプリケーション204や管理ファイル等の削除を行う。この際、部分削除部501は、破損したファイルだけでなく、キャッシュディレクトリ301内の再作成や再インストールが可能な全てのファイルを削除する。
部分削除部501が破損したファイルだけでなく、再作成や再インストールが可能な全てのファイルを削除するのは、管理ファイル間の整合性を保つためである。破損ファイル対応装置が保持している管理ファイルの再作成に利用する情報には、インストール後の変更内容が含まれていない。そのため、破損ファイル対応装置は、インストール直後の情報に基づいて管理ファイルを再作成する。破損ファイル対応装置が破損した管理ファイルのみを再作成すると、再作成した管理ファイルと、再作成していない管理ファイルとの間で整合性がとれず、破損ファイル対応装置が正常に動作しない可能性がある。そのため、破損ファイル対応装置は、整合性が取れるように再作成可能な管理ファイルを全て削除してから再作成を行う。なお、破損ファイル対応装置は、再インストール可能なアプリケーション204は削除するが、破損ファイル対応装置が持つ情報から再作成することができないユーザデータは削除しない。
一方、全削除部502は、キャッシュディレクトリ301内に段階2フラグファイル504が存在した場合に、各アプリケーション204のユーザデータを含むキャッシュディレクトリ301内の全てのファイルの削除を行う。
次に、アプリケーション起動準備部402について説明する。
アプリケーション起動準備部402は、初期インストール部505、キャッシュ読み込み部506、キャッシュ復元部507を機能として有し、情報としてキャッシュアプリケーション関連情報508を利用する。
初期インストール部505は、破損ファイル対応装置の出荷直後等のようにアプリケーション204が何もインストールされていない状態のときに、初期インストール等の処理を実行する。より具体的には、初期インストール部505は、バンドルディレクトリ302内に格納されているアプリケーション204のインストールや管理ファイルの新規作成を行う。なお、初期インストール部505は、全削除部502によりキャッシュディレクトリ301内の全ファイルが削除された場合に、バンドルディレクトリ302内に格納されているアプリケーション204のインストールや管理ファイルの新規作成を行う。
キャッシュ読み込み部506は、破損ファイル対応装置にアプリケーション204が既にインストールされている場合に、キャッシュディレクトリ301の読み込み等を行う。より具体的には、キャッシュ読み込み部506は、キャッシュディレクトリ301内に格納されているインストール済みのアプリケーション204の情報を読み取り、アプリケーションの起動準備を行う。
キャッシュ復元部507は、部分削除部501にてキャッシュディレクトリ301内の再インストールや再作成が可能なファイルが削除された場合に、削除されたファイルを復元させる処理を実行する。より具体的には、キャッシュ復元部507は、部分削除部501にて削除されたアプリケーション204、管理ファイルの再インストールや再作成、アプリケーション204を初期状態に戻す処理を行う。
最初に、部分削除部501にて削除されたアプリケーション204、管理ファイルの再インストールや再作成の処理について説明する。
部分削除部501により削除されたアプリケーション204は、バンドルディレクトリ302内に格納されている。そのため、キャッシュ復元部507は、バンドルディレクトリ302を参照することで再インストールをすることができる。
一方、キャッシュ復元部507は、部分削除部501にて削除された管理ファイルを、ライブラリディレクトリ303内に格納されている初期インストールに関する情報等から収集した必要な情報に基づいて再作成することができる。但し、キャッシュ復元部507により再作成された管理ファイルの記述に含まれる設定値は、初期値(インストール直後のアプリケーション204に設定される値)となる。これは、キャッシュ復元部507が管理ファイルの再作成に利用する情報が、インストール後の変更内容を含んでいないためである。また、キャッシュ復元部507は、部分削除部501で削除されなかったユーザデータと、アプリケーション204との関連が記載された管理ファイルを再作成する際に、キャッシュアプリケーション関連情報508を利用する。なお、キャッシュアプリケーション関連情報508は、アプリケーション204と、ユーザデータとが関連付けられた関連情報を持つ管理ファイルの破損に備えたバックアップ情報である。より具体的には、キャッシュアプリケーション関連情報508は、インストールされているアプリケーションと、ユーザデータとが関連付けられた関連情報であり、破損ファイル対応装置により作成される。なお、キャッシュアプリケーション関連情報508の作成は、関連情報作成処理の一例である。
次に、アプリケーション起動準備部402がアプリケーション204を初期状態に戻す処理について説明する。
破損ファイル対応装置では、アプリケーション204間で依存関係を有する可能性がある。依存関係の例としては、アプリケーションAを動作させるためには事前にアプリケーションBが動作している必要がある等のケースである。破損ファイル対応装置では、このような依存関係を有するアプリケーション204がインストールされている状況において、再作成可能な管理ファイルが初期値に変更された場合、依存関係が崩れ、起動時にエラーが発生する可能性がある。このような事態を避けるため、アプリケーション起動準備部402は、インストールされている全てのアプリケーション204の状態を初期状態に変更する必要がある。なお、初期状態とは、インストール直後のアプリケーション204の状態に設定されている状態のことである。
破損ファイル対応装置は、初回起動時にバンドルディレクトリ302内に格納されたアプリケーション204を、ライブラリディレクトリ303内に格納された初期インストールに関する情報に従ってインストールしている。このような初回起動時にインストールされるアプリケーション204については、初回起動時に設定される状態が初期状態となる。一方、初回起動時にインストールされていないアプリケーション204については、停止状態が初期状態となる。全てのアプリケーション204の状態を初期状態にすることで、アプリケーション204の動作状況が初回起動時と同じになり、依存関係が原因となるエラーを防ぐことができる。
次に、アプリケーション起動部403による処理について説明する。
アプリケーション起動部403は、前述した通り、フレームワーク203が有する起動指示レベル以下の起動レベルを含むアプリケーション204を起動レベルの一番低い順から起動させる。但し、対象となるアプリケーション204は、管理ファイルに記載されている前回の状態が起動中のアプリケーション204のみとなる。
以上のように、破損ファイル対応装置では、管理ファイルやアプリケーション204に破損が発生した場合、破損対応部401が破損したファイルを削除し、アプリケーション起動準備部402が前記ファイルの再インストールや再作成を行う。そして、アプリケーション起動部403は、再インストールや再作成されたファイルを利用し、通常通りにアプリケーションを起動させる。これにより、破損ファイル対応装置は、再インストールや再作成が可能なファイルが破損した場合に、ユーザデータを削除することなく復元させることができる。また、破損ファイル対応装置は、復元させることができないファイルが破損した場合であっても、正常起動することができるように対処を行うことができる。
次に、破損対応部401の動作について図6を用いて説明する。
図6は、破損対応部401による処理の一例を示すフローチャートである。
破損対応部401は、まずキャッシュディレクトリ301内に段階1フラグファイル503が存在するか否かを確認する(S601)。
段階1フラグファイル503が存在する場合、破損対応部401は、キャッシュディレクトリ301内の再作成や再インストールが可能なファイルが破損したと判断し、同ディレクトリ内の再作成や再インストールが可能なファイルを削除する(S602)。なお、前述したように、破損対応部401は、S602で各アプリケーションが利用するユーザデータを削除しない。
一方、段階1フラグファイル503が存在しない場合、破損対応部401は、段階2フラグファイル504がキャッシュディレクトリ301内に存在するか否かを確認する(S603)。
段階2フラグファイル504が存在する場合、破損対応部401は、キャッシュディレクトリ301内の再作成や再インストールが不可能なファイルが破損したと判断し、ユーザデータを含む同ディレクトリ内の全てのファイルを削除する(S604)。
なお、段階1フラグファイル503及び段階2フラグファイル504のどちらも存在しない場合、破損対応部401は、ファイルの破損は発生していないと判断し、破損ファイルの対応処理を行わない。
次に、アプリケーション起動準備部402の動作について図7を用いて説明する。
図7は、アプリケーション起動準備部402による処理の一例を示すフローチャートである。
アプリケーション起動準備部402は、まずキャッシュディレクトリ301が存在するか否かを確認する(S701)。
キャッシュディレクトリ301が存在しない場合、アプリケーション起動準備部402は、アプリケーション204が何もインストールされていないと判断する。そして、アプリケーション起動準備部402は、バンドルディレクトリ302内に格納されているアプリケーション204をインストールする(S702)。
そして、アプリケーション起動準備部402は、フレームワーク203が持つ起動指示レベルや各アプリケーションの起動レベル等の管理情報を記載した管理ファイルを新規に作成する(S703)。
一方、キャッシュディレクトリ301が存在する場合、アプリケーション起動準備部402は、段階1フラグファイル503がキャッシュディレクトリ301内に存在するか否かを確認する(S704)。
段階1フラグファイル503が存在する場合、アプリケーション起動準備部402は、破損対応部401により再作成や再インストールが可能なファイルが削除されたと判断する。そのため、アプリケーション起動準備部402は、削除されたアプリケーション204をバンドルディレクトリ302又はネットワーク上から再度インストールする(S705)。
そして、アプリケーション起動準備部402は、破損ファイル対応装置が保持している初期インストールに関する情報等を基に削除された管理ファイルを再作成する(S706)。
最後に、アプリケーション起動準備部402は、起動時のエラーを避けるためにアプリケーション204の状態を初期状態に変更する(S707)。
段階1フラグファイル503が存在しない場合、アプリケーション起動準備部402は、前回の動作で異常は何も発生していないと判断する。そして、アプリケーション起動準備部402は、キャッシュディレクトリ301内に格納されているアプリケーション204の情報を読み込み、アプリケーション204の起動準備を行う(S708)。
次に、アプリケーション起動部403の動作について図8を用いて説明する。
図8は、アプリケーション起動部403による処理の一例を示すフローチャートである。
アプリケーション起動部403は、まず管理ファイルからフレームワーク203が含む起動指示レベルを読み込む(S801)。
そして、アプリケーション起動部403は、1から起動指示レベルまでの起動レベルを含み、前回の状態が起動中であるアプリケーション204を起動レベルが一番低い順に起動させる(S802、S803、S804、S805、S806)。
このように、フレームワーク203は、起動処理において破損したファイルへの対処を行い、破損ファイル対応装置を正常起動させる。
次に、管理情報読み込み部412の動作について図9を用いて説明する。
図9は、管理情報読み込み部412による処理の一例を示すフローチャートである。
フレームワーク203では、管理ファイルが破損しているか否かのチェックを管理情報読み込み部412にて行う。
管理情報読み込み部412は、まず読み込み対象となる管理ファイルの末尾に記載されているチェックサムを取得する(S901)。このチェックサムは、後述する管理情報書き込み部413にて追加されたものである。管理情報読み込み部412は、この値を用いて動作確認を行う。なお、チェックサムは、誤り検出符号の一例である。
次に、管理情報読み込み部412は、読み込む対象となる管理ファイルの内容からチェックサムを計算する(S902)。
そして、管理情報読み込み部412は、管理ファイルが破損していないかを調べるために、S901で取得したチェックサムと、S902で計算したチェックサムとが一致するか否かを調べる(S903)。
取得したチェックサムと、計算したチェックサムとが一致する場合、管理情報読み込み部412は、管理ファイルは破損していないと判断し、そのまま管理ファイルの内容を読み込み、処理を終了する(S904)。
取得したチェックサムと、計算したチェックサムとが等しくなかった場合、管理情報読み込み部412は、管理ファイルの破損が発生したと判断する。そして、管理情報読み込み部412は、破損を示すフラグファイルを作成するため、破損した管理ファイルが再作成可能なファイルであるか否かを判断する(S905)。より具体的には、管理情報読み込み部412は、破損した管理ファイルがライブラリディレクトリ303内に格納されている初期インストールに関する情報等を基に再作成可能なファイルであるか否かを調べる。
管理情報読み込み部412は、破損した管理ファイルが再作成可能であると判断した場合、再作成可能なファイルが破損していることを表示装置104に表示する(S906)。
そして、管理情報読み込み部412は、破損した管理ファイルの再作成を実施するか否かを判断するため、入力装置102を介したユーザからの入力を待つ(S907)。
管理情報読み込み部412は、入力装置102を介してユーザから破損した管理ファイルの再作成を実施する旨の入力を受信した場合、再作成可能なファイルが破損したことを示す段階1フラグファイル503を作成する(S908)。なお、段階1フラグファイル503の作成は、フラグファイル作成処理の一例である。
一方、管理情報読み込み部412は、入力装置102を介してユーザから破損した管理ファイルの再作成を実施しない旨の入力を受信した場合、処理を終了する。
一方、S905で、管理情報読み込み部412は、破損した管理ファイルが再作成不可能であると判断した場合、再作成不可なファイルが破損していることを表示装置104に表示する(S909)。
そして、管理情報読み込み部412は、初期化を実施するか否かを判断するため、入力装置102を介したユーザからの入力を待つ(S910)。
管理情報読み込み部412は、入力装置102を介してユーザから初期化を実施する旨の入力を受信した場合、再作成不可なファイルが破損したことを示す段階2フラグファイル504を作成する(S911)。なお、段階2フラグファイル503の作成は、フラグファイル作成処理の一例である。
管理情報読み込み部412は、フラグファイルを作成すると、管理ファイルの修復を行う必要があるため、破損ファイル対応装置を再起動する(S912)。これは、破損ファイル対応装置が起動処理中に対処を行うためである。
なお、本実施形態では、管理情報読み込み部412は、対象の管理ファイルに記載されたチェックサムと、対象の管理ファイルの内容から計算したチェックサムとの比較基づいて管理ファイルの破損の有無を判断するようにしたが、これに限る必要はない。例えば、フレームワーク203は、ファイルのインストール等の処理を監視し、監視の結果、インストール処理が正常に終了しなかった場合等にファイルが破損したと判断するようにしてもよい。なお、上記のファイル破損の判断は、破損ファイルの検知処理の一例である。
次に、管理情報書き込み部413の動作について図10を用いて説明する。
図10は、管理情報書き込み部413による処理の一例を示すフローチャートである。
管理情報書き込み部413は、まず管理ファイルに書き込む内容からチェックサムを計算して取得する(S1001)。S1001で計算されたチェックサムは、図9で前述したように、管理情報読み込み部412が読み込み時の内容から取得するチェックサムと比較してファイルが破損しているか否かを調べるために利用される。
次に、管理情報書き込み部413は、書き込む内容をファイルに書き込む(S1002)。
そして、管理情報書き込み部413は、ファイルの末尾にS1001で計算して取得したチェックサムを書き込む(S1003)。
このように、フレームワーク203は、管理情報書き込み部413により破損チェックに利用するチェックサムを埋め込み、その後、管理情報読み込み部412により、埋め込まれたチェックサムを利用したファイル破損のチェックを行っている。これにより、フレームワーク203は、破損ファイル対応装置が管理ファイルの破損により動作しない状態になることを防いでいる。
次に、アプリケーション監視部411の動作について図11を用いて説明する。
図11は、アプリケーション監視部411による処理の一例を示すフローチャートである。
フレームワーク203は、アプリケーション204の状態管理を行っている。そのため、アプリケーション監視部411は、アプリケーション204が破損している等の異常を検知することができる。なお、アプリケーション204の破損等の異常検知は、検知処理の一例である。アプリケーション監視部411は、アプリケーション204の動作中に例外が発生したことを検知し、その対処を行う。
アプリケーション監視部411は、アプリケーション204の異常を検知すると、そのアプリケーション204が再インストール可能であるか否かを判断する(S1101)。より具体的には、アプリケーション監視部411は、S1101で異常を検知したアプリケーション204がバンドルディレクトリ302又はネットワーク上に格納されているアプリケーション204であれば再インストール可能であると判断する。
アプリケーション監視部411は、異常が発生したアプリケーション204が再インストール可能であると判断した場合、表示装置104を介して再作成可能なファイルが破損していることをユーザに通知する(S1102)。
そして、アプリケーション監視部411は、再作成を実施するか否かを判断するため、入力装置102を介したユーザからの入力を待つ(S1103)。
アプリケーション監視部411は、入力装置102を介してユーザから再作成を実施する旨の入力を受信した場合、再作成可能なファイルが破損したことを示す段階1フラグファイル503を作成する(S1104)。なお、段階1フラグファイル503の作成は、フラグファイル作成処理の一例である。
一方、アプリケーション監視部411は、異常が発生したアプリケーション204が再インストール不可能であると判断した場合、表示装置104を介して再作成不可なファイルが破損していることをユーザに通知する(S1105)。
そして、アプリケーション監視部411は、初期化を実施するか否かを判断するため、入力装置102を介したユーザからの入力を待つ(S1106)。
アプリケーション監視部411は、入力装置102を介してユーザから初期化を実施する旨の入力を受信した場合、再作成不可なファイルが破損したことを示す段階2フラグファイル504を作成する(S1107)。なお、段階2フラグファイル503の作成は、フラグファイル作成処理の一例である。
そして、アプリケーション監視部411は、異常が発生したアプリケーション204に対して対応するために破損ファイル対応装置の再起動を行う(S1108)。
このように、フレームワーク203は、アプリケーション監視部411によってアプリケーション204の破損を検知し、破損ファイル対応装置が動作しない状態になることを防いでいる。
なお、本実施形態では、アプリケーション監視部411は、破損したファイルの再作成を実施するか否か、キャッシュディレクトリの初期化を実施するか否かについて、入力装置102を介したユーザからの入力に基づいて判断するようにした。しかし、これに限る必要はない。例えば、アプリケーション監視部411は、予め定めておいた設定に従って、前記再作成及び前記初期化を実施するか否かを判断するようにしてもよい。
<その他の実施形態>
また、本実施形態は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。
以上、上述した各実施形態によれば、復元させることができるファイルが破損した場合、リソースを圧迫することなく、かつ、キャッシュにあるユーザデータを削除せずに破損したファイルを復元させることができる。また、復元させることができないファイルが破損した場合であっても、システムが起動できなくなる問題に対して対処することができる。
以上、本発明の好ましい形態について詳述したが、本実施形態は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。

Claims (12)

  1. キャッシュ領域内に格納されたファイルから破損したファイルを検知する検知手段と、
    前記検知手段により検知された破損したファイルが復元可能なファイルであるか否かを判断する判断手段と、
    前記判断手段により復元可能と判断された場合、キャッシュ領域内の復元可能なファイルを削除し、前記削除したファイルをキャッシュ領域内に復元させる復元手段と、
    前記判断手段により復元不可能と判断された場合、キャッシュ領域内のファイルを削除して初期化する初期化手段と、
    を有する情報処理装置。
  2. 前記復元手段は、前記削除したファイルが前記情報処理装置の動作に要するアプリケーションファイルであった場合、アプリケーションファイルが格納されているバンドルディレクトリ内のファイルに基づいて前記削除したファイルを復元させる請求項1記載の情報処理装置。
  3. 前記復元手段は、前記削除したファイルがアプリケーションファイルの実行に要する管理ファイルであった場合、アプリケーションファイルの初期インストールに関する情報が記述されたファイルが格納されているライブラリディレクトリ内のファイルに基づいて前記削除したファイルを復元させる請求項1記載の情報処理装置。
  4. 前記検知手段により検知された破損したファイルが復元可能なファイルであるか否かの情報が記述されたフラグファイルを作成して前記情報処理装置を再起動するフラグファイル作成手段を更に有し、
    前記判断手段は、前記フラグファイル作成手段による前記再起動の後に、前記フラグファイル作成手段により作成された前記フラグファイルに基づいて前記破損したファイルが復元可能なファイルであるか否かを判断する請求項1乃至3何れか1項記載の情報処理装置。
  5. 前記復元可能なファイルとは、保持しているファイル、又は通信可能なネットワーク上に格納されているファイルに基づいて再インストール、又は再作成することができるファイルであり、
    前記判断手段は、前記検知手段により検知された破損したファイルが前記復元可能なファイルであるか否かを判断する請求項1乃至4何れか1項記載の情報処理装置。
  6. 前記検知手段は、キャッシュ領域内に格納されたファイルに記載されている誤り検出符号と、前記ファイルの内容から計算して取得した誤り検出符号とが一致するか否かに基づいて破損したファイルを検知する請求項1乃至5何れか1項記載の情報処理装置。
  7. 前記検知手段は、キャッシュ領域内に格納されたファイルのインストール処理が正常に終了しなかった場合、前記ファイルを破損しているファイルとして検知する請求項1乃至5何れか1項記載の情報処理装置。
  8. 入力装置を介してユーザからの指示を受信する受信手段を更に有し、
    前記復元手段は、前記受信手段により破損したファイルの復元を実行する旨の指示が受信された場合、キャッシュ領域内の復元可能なファイルを削除し、前記削除したファイルをキャッシュ領域内に復元させ、
    前記初期化手段は、前記受信手段により初期化を実行する旨の指示が受信された場合、キャッシュ領域内のファイルを削除して初期化する請求項1乃至7何れか1項記載の情報処理装置。
  9. 前記復元手段による復元及び前記初期化手段による初期化に係る処理を実行するか否かに関して予め設定する設定手段を更に有し、
    前記復元手段は、前記設定手段により破損したファイルの復元を実行する旨の設定がされている場合、キャッシュ領域内の復元可能な破損したファイルを削除し、前記削除したファイルをキャッシュ領域内に復元させ、
    前記初期化手段は、前記設定手段により初期化を実行する旨の設定がされている場合、キャッシュ領域内のファイルを削除して初期化する請求項1乃至7何れか1項記載の情報処理装置。
  10. 前記判断手段により復元可能と判断された場合、アプリケーションファイルが格納されているバンドルディレクトリ内のファイルの情報と、前記バンドルディレクトリ内のファイルの実行に要するキャッシュ領域のファイルの情報とを関連付けた関連情報を作成する関連情報作成手段を更に有し、
    前記復元手段は、前記関連情報作成手段により前記関連情報が作成されると、キャッシュ領域内の復元可能なファイルを削除し、前記削除したファイルをキャッシュ領域内に復元させる請求項1乃至9何れか1項記載の情報処理装置。
  11. 情報処理装置が実行する情報処理方法であって、
    キャッシュ領域内に格納されたファイルから破損したファイルを検知する検知ステップと、
    前記検知ステップにより検知された破損したファイルが復元可能なファイルであるか否かを判断する判断ステップと、
    前記判断ステップにより復元可能と判断された場合、キャッシュ領域内の復元可能なファイルを削除し、前記削除したファイルをキャッシュ領域内に復元させる復元ステップと、
    前記判断ステップにより復元不可能と判断された場合、キャッシュ領域内のファイルを削除して初期化する初期化ステップと、
    を含む情報処理方法。
  12. コンピュータに、
    キャッシュ領域内に格納されたファイルから破損したファイルを検知する検知ステップと、
    前記検知ステップにより検知された破損したファイルが復元可能なファイルであるか否かを判断する判断ステップと、
    前記判断ステップにより復元可能と判断された場合、キャッシュ領域内の復元可能なファイルを削除し、前記削除したファイルをキャッシュ領域内に復元させる復元ステップと、
    前記判断ステップにより復元不可能と判断された場合、キャッシュ領域内のファイルを削除して初期化する初期化ステップと、
    を実行させるためのプログラム。
JP2012262776A 2012-11-30 2012-11-30 情報処理装置、情報処理方法及びプログラム Pending JP2014109821A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012262776A JP2014109821A (ja) 2012-11-30 2012-11-30 情報処理装置、情報処理方法及びプログラム
US14/092,010 US20140156943A1 (en) 2012-11-30 2013-11-27 Information processing apparatus, information processing method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012262776A JP2014109821A (ja) 2012-11-30 2012-11-30 情報処理装置、情報処理方法及びプログラム

Publications (1)

Publication Number Publication Date
JP2014109821A true JP2014109821A (ja) 2014-06-12

Family

ID=50826671

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012262776A Pending JP2014109821A (ja) 2012-11-30 2012-11-30 情報処理装置、情報処理方法及びプログラム

Country Status (2)

Country Link
US (1) US20140156943A1 (ja)
JP (1) JP2014109821A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11586723B2 (en) 2019-03-27 2023-02-21 Canon Kabushiki Kaisha Information processing apparatus, control method for information processing apparatus, and storage medium

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102011726B1 (ko) * 2017-10-23 2019-08-19 숭실대학교산학협력단 동적 로딩 파일 추출 방법 및 장치
JP7105640B2 (ja) * 2018-07-10 2022-07-25 キヤノン株式会社 画像処理装置、その制御方法、及びプログラム
JP6861670B2 (ja) * 2018-07-10 2021-04-21 キヤノン株式会社 画像処理装置、その制御方法、及びプログラム
US11853261B2 (en) * 2020-06-10 2023-12-26 Telefonaktiebolaget Lm Ericsson (Publ) Coded-caching in a wireless communication network

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6571259B1 (en) * 2000-09-26 2003-05-27 Emc Corporation Preallocation of file system cache blocks in a data storage system
US6950836B2 (en) * 2002-03-14 2005-09-27 International Business Machines Corporation Method, system, and program for a transparent file restore
WO2004047078A2 (en) * 2002-11-20 2004-06-03 Filesx Ltd. Fast backup storage and fast recovery of data (fbsrd)
US7210061B2 (en) * 2003-04-17 2007-04-24 Hewlett-Packard Development, L.P. Data redundancy for writes using remote storage system cache memory
US20070239725A1 (en) * 2006-03-28 2007-10-11 Microsoft Corporation Active cache offline access and management of project files
US8473461B1 (en) * 2008-05-27 2013-06-25 Symantec Corporation File infection removal by differential copy
US8612398B2 (en) * 2010-03-11 2013-12-17 Microsoft Corporation Clean store for operating system and software recovery
US9971656B2 (en) * 2010-12-13 2018-05-15 International Business Machines Corporation Instant data restoration

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11586723B2 (en) 2019-03-27 2023-02-21 Canon Kabushiki Kaisha Information processing apparatus, control method for information processing apparatus, and storage medium

Also Published As

Publication number Publication date
US20140156943A1 (en) 2014-06-05

Similar Documents

Publication Publication Date Title
US7774636B2 (en) Method and system for kernel panic recovery
CN110780890B (zh) 系统升级方法、装置、电子设备和介质
JP5113700B2 (ja) ファームウェア更新装置及び方法
JP5757509B2 (ja) システム・リセット
US8495609B2 (en) Methods, systems, and computer program products for taking a snapshot of installed software on a data processing system as part of a software update process
WO2022111097A1 (zh) 一种文件更新方法及装置、设备、存储介质
JP5183542B2 (ja) 計算機システム及び設定管理方法
JP2007249340A (ja) ソフトウェアアップデート方法、アップデート管理プログラム、情報処理装置
JP2014109821A (ja) 情報処理装置、情報処理方法及びプログラム
JP6861886B2 (ja) カスタマイズされたオペレーティングシステム変換のためのシステムおよび方法
JPWO2006104197A1 (ja) 処理装置、プログラムおよび記憶媒体
US7188278B1 (en) Method, system, and apparatus for utilizing compressed program code in the boot block portion of a computer BIOS
WO2011066261A1 (en) Fast restart on a virtual machine
JP6198229B2 (ja) 並列化可能で信頼できるインストールのためのインストールエンジン及びパッケージフォーマット
US8468388B2 (en) Restoring programs after operating system failure
US20150242282A1 (en) Mechanism to update software packages
KR101576370B1 (ko) 컴퓨터 시스템의 원격 복원 시스템 및 그 방법, 그리고 기록한 컴퓨터로 읽어 들일 수 있는 기록매체
JP4648097B2 (ja) レジストリ情報の修復方法および情報処理装置
US20110131181A1 (en) Information processing device and computer readable storage medium storing program
JP6160688B2 (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
JP5317182B2 (ja) Pos端末、モジュールアップデート方法およびモジュールアップデートプログラム
KR20130040636A (ko) 빠른 부팅을 위한 부트 이미지를 생성하는 방법 및 이를 수행하는 화상형성장치, 부트 이미지를 이용하여 빠른 부팅을 수행하는 방법 및 이를 수행하는 화상형성장치
KR101845467B1 (ko) 빠른 부팅을 위한 부트 이미지의 에러를 복구하는 방법 및 이를 수행하는 화상형성장치
JP2013105349A (ja) 動的リンクライブラリの更新、実行方法
JP6016129B2 (ja) 設定情報複製範囲作成装置、設定情報複製範囲作成方法、およびプログラム