JP2007328429A - 情報処理装置、情報処理方法およびプログラム - Google Patents
情報処理装置、情報処理方法およびプログラム Download PDFInfo
- Publication number
- JP2007328429A JP2007328429A JP2006157491A JP2006157491A JP2007328429A JP 2007328429 A JP2007328429 A JP 2007328429A JP 2006157491 A JP2006157491 A JP 2006157491A JP 2006157491 A JP2006157491 A JP 2006157491A JP 2007328429 A JP2007328429 A JP 2007328429A
- Authority
- JP
- Japan
- Prior art keywords
- file
- rename
- identification value
- information processing
- list
- 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
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
【課題】情報処理装置、情報処理方法およびプログラムを提供すること。
【解決手段】アプリケーションの実行中に元ファイルのロックを検出するロック・モニタ48と、ロックされた元ファイルの元ファイル識別値から作成される変名ファイル識別値を指定する変名リスト56を作成し、インストール・ファイルと変名リスト56とを記憶装置に格納するとともに、変名ファイル識別値を検索するインストール処理部40と、変名リスト56にエントリされた元ファイル識別値を参照して変名ファイル識別値を取得し、変名ファイル識別値を使用してインストール・ファイルを呼出し、処理を実行するアプリケーション58を含むアプリケーション実行部54とを含んでいて、OSの再起動を行うことなく、インストールされたファイルをアプリケーション58に利用させ、データおよび処理のコンシステンシを改善している。
【選択図】 図2
【解決手段】アプリケーションの実行中に元ファイルのロックを検出するロック・モニタ48と、ロックされた元ファイルの元ファイル識別値から作成される変名ファイル識別値を指定する変名リスト56を作成し、インストール・ファイルと変名リスト56とを記憶装置に格納するとともに、変名ファイル識別値を検索するインストール処理部40と、変名リスト56にエントリされた元ファイル識別値を参照して変名ファイル識別値を取得し、変名ファイル識別値を使用してインストール・ファイルを呼出し、処理を実行するアプリケーション58を含むアプリケーション実行部54とを含んでいて、OSの再起動を行うことなく、インストールされたファイルをアプリケーション58に利用させ、データおよび処理のコンシステンシを改善している。
【選択図】 図2
Description
本発明は、アプリケーションのインストールに関し、より詳細には、ドキュメントが排他的に利用されている場合にでも、オペレーティング・システムの再起動を行うことなく、インストールされたアプリケーションにより排他的に利用されていたドキュメントを、継続的かつ安定な使用を可能とする、情報処理装置、情報処理方法およびプログラムに関する。
画像処理装置およびパーソナル・コンピュータなどの情報処理装置は、複数のアプリケーションが同一のファイルにアクセスしながらユーザに対応する処理を実行する。また、アプリケーション自体は、バージョンアップ、機能拡張性などの点から、種々の機能をダイナミック・リンク・ライブラリ(DLL)、SOファイル、プラグインまたはアドイン・プログラムとして実装される。また、複数のアプリケーションが同一のファイルにアクセスしながら処理を実行する場合、ファイルの内容のコンシステンシを確保するために、ロックなどの排他制御が行われる場合が多い。
このような実行環境下において、特定のアプリケーションをバージョンアップなどによりインストールする場合、ロック中のファイルがある場合にはロック中のファイル(以下、元ファイルとして参照する。)に対して異なるファイル名(以下、変名ファイルとして参照する。)を付して記憶装置に格納し、実行されているソフトウェアによる排他環境をリセットさせるため、オペレーティング・システム(OS)を再起動させる。そして、アプリケーションは、再起動後、アンロック状態にある変名ファイルを読出して処理を実行させていた。
ソフトウェアの更新処理を行う装置としては、例えば特開2004−318839号公報(特許文献1)に開示された通信装置を挙げることができる。特許文献1に開示された通信装置は、ネットワークを介して更新用ソフトウェアを受信して、更新用ソフトウェアによるアップデートを実行する。更新用ソフトウェアによるアップデートは、装置をリセットした後に実行され、再度装置が立ち上げられた後に、更新用ソフトウェアによる処理が提供されている。
特開2004−318839号公報
すなわち、アプリケーションをアップデートしたユーザは、アプリケーションの確実な実行を行おうとする場合、必ずOSレベルでの再起動の操作を要求され、OSのシャットダウンや再起動のための時間を待つ必要があった。また、再起動を行わないままでアプリケーションを使用し続けていると、ロックされたファイルにアクセスすることができず、ユーザがアプリケーションの正常な処理結果を受け取ることができない場合も考えられる。
すなわち、これまでファイルに対して排他的制御を実行するアプリケーションのアップデートなどのインストール時に、ユーザがOSを再起動させなくとも確実にロック中のファイルの内容を利用させることが、アプリケーションによる処理性を向上させるために必要とされていた。
また、ユーザがOSの再起動を行わなくともロック中のファイルの内容にアクセスし、アプリケーションによる処理に対してコンシステンシを提供することが必要とされていた。
本発明は、上記課題を解決するためになされたものであり、アップデートのインストールを行う場合、アプリケーションがロックされた状態にあるファイルの内容を、OSの再起動を行うことなく実行させる。本発明では、インストーラは、インストール・プログラムの起動後、ロックされているファイルが存在するか否かを判断する。この判断の結果、ロックされているファイルが存在すると判断した場合には、ロック中のファイルを読み出して、変名ファイルとして情報処理装置のハードディスクなどの適切な記憶装置に格納される。また、本発明では、元ファイル識別値と、変名ファイル識別値とは、変名リストにエントリされ、情報処理装置の適切な記憶装置に格納される。
インストールされたアプリケーションが元ファイルを参照している場合、アプリケーションは、変名リストを参照し、変名リストに呼び出すべき元ファイル識別値が登録されているか否かを検索する。アプリケーションは、変名リストに呼出し要求に対応する元ファイル識別値が登録されていない場合には、元ファイルの呼出しを実行し、処理を実行する。一方、変名リストに元ファイル識別値が登録されている場合には、元ファイルに対応して作成された変名ファイルを指定する変名ファイル識別値を取得する。アプリケーションは、取得した変名ファイル識別値を使用してインストール・ファイルの内容の変名ファイルを呼び出してアプリケーションの処理のために使用する。
本発明の他の実施形態では、変名リストは、アプリケーションのインストールが行われた回数だけ作成され、記憶装置にエントリされる。また、さらに他の実施形態では、アプリケーションのインストールの回数に対応して、インストール履歴を識別することが可能な変名ファイル識別値を変名リストに追加して行き、複数回のインストール処理があった場合にでも継続して要求する変名ファイル識別値で指定されるインストール・ファイルの内容を利用することを可能とする。
さらに本発明の他の実施形態では、情報処理装置がOSの再起動を実行する場合、ファイルがアプリケーションによりロックされる前に変名ファイル識別値を、元ファイル識別値の値を付して、記憶装置に格納する。同時に、変名リストにエントリされているものの、その段階で不要となった変名ファイル識別値が削除され、対応する変名ファイルが記憶装置から削除され、情報処理装置のハードウェア資源の消費を低減させる。本発明では、アプリケーションのアンインストール処理で変名リストに登録した変名ファイル識別値が削除される場合、変名リストのレコードのエントリを、ファイルの連続性を維持させるように最適化する。さらに、変名リストは、管理するべき変名ファイルが無くなったときには、情報処理装置から削除されて、不要なデータを情報処理装置に残さないようにさせている。
すなわち、本発明によれば、インストールされたファイルを、OSを再起動せずに実行する情報処理装置であって、
アプリケーションの実行中に元ファイルのロックを検出し、ロックされた前記元ファイルの元ファイル識別値から作成される変名ファイル識別値を指定するリストを作成し、前記インストール・ファイルと前記リストとを記憶装置に格納するとともに、前記変名ファイル識別値を検索するインストール処理部と、
前記リストにエントリされた前記元ファイル識別値を参照して前記変名ファイル識別値を取得し、前記変名ファイル識別値を使用して前記インストール・ファイルを呼出し、処理を実行するアプリケーション実行部と
を含む、情報処理装置が提供される。
アプリケーションの実行中に元ファイルのロックを検出し、ロックされた前記元ファイルの元ファイル識別値から作成される変名ファイル識別値を指定するリストを作成し、前記インストール・ファイルと前記リストとを記憶装置に格納するとともに、前記変名ファイル識別値を検索するインストール処理部と、
前記リストにエントリされた前記元ファイル識別値を参照して前記変名ファイル識別値を取得し、前記変名ファイル識別値を使用して前記インストール・ファイルを呼出し、処理を実行するアプリケーション実行部と
を含む、情報処理装置が提供される。
本発明の前記インストール処理部は、
前記元ファイルのロックを検出するロック・モニタと、
前記アプリケーションと共有され、前記変名ファイル識別値を作成する変名ルールを登録したルックアップ・テーブルと、
複数登録された前記変名ファイル識別値のうち最新の前記変名ファイル識別値を千鳥状に順にたどって検索する変名ファイル管理部と
を含むことができる。
前記元ファイルのロックを検出するロック・モニタと、
前記アプリケーションと共有され、前記変名ファイル識別値を作成する変名ルールを登録したルックアップ・テーブルと、
複数登録された前記変名ファイル識別値のうち最新の前記変名ファイル識別値を千鳥状に順にたどって検索する変名ファイル管理部と
を含むことができる。
本発明の前記変名ファイル管理部は、前記情報処理装置の再起動時に前記インストール・ファイルに前記元ファイル識別値を付して前記記憶装置に上書き保存することができる。
本発明の前記リストは、インストール履歴に対応した複数の変名ファイル識別値をエントリしており、前記変名ファイル管理部は、検索された最新の前記変名ファイル識別値を前記インストール・ファイルに付して上書き保存した後、前記リストを参照して変名ファイルおよび前記リストの対応するエントリを削除することができる。
本発明の前記変名ファイル管理部は、前記リストの内容を検査し、前記リストが空の場合に前記リストを前記記憶装置から削除することができる。
本発明の前記インストール処理部は、前記アプリケーションに対応した前記変名ファイル識別値を前記元ファイル識別値を使用して作成するためのルックアップ・テーブルと、
指定された前記元ファイルを前記記憶装置から削除し、前記リストの前記インストール履歴を保存するように前記リストのエントリ項目を修正させるアンインストーラと
を含むことができる。
指定された前記元ファイルを前記記憶装置から削除し、前記リストの前記インストール履歴を保存するように前記リストのエントリ項目を修正させるアンインストーラと
を含むことができる。
本発明の前記情報処理装置は、電子写真法を使用した画像形成装置とすることができる。
本発明によれば、インストールされたファイルを、OSを再起動せずに情報処理装置が実行する情報処理方法であって、
アプリケーションの実行中に元ファイルのロックを検出し、ロックされた前記元ファイルの元ファイル識別値から作成される変名ファイル識別値を指定するリストを作成し、前記インストール・ファイルと前記リストとを記憶装置に格納するとともに、前記変名ファイル識別値を検索するステップと、
前記リストを参照して最新の前記変名ファイル識別値を検索するステップと、
前記リストにエントリされた前記ファイル識別値を参照して前記変名ファイル識別値を取得し、前記変名ファイル識別値を使用して前記インストール・ファイルを呼出し、処理を実行するステップと
を前記情報処理装置に実行させる、情報処理方法が提供される。
アプリケーションの実行中に元ファイルのロックを検出し、ロックされた前記元ファイルの元ファイル識別値から作成される変名ファイル識別値を指定するリストを作成し、前記インストール・ファイルと前記リストとを記憶装置に格納するとともに、前記変名ファイル識別値を検索するステップと、
前記リストを参照して最新の前記変名ファイル識別値を検索するステップと、
前記リストにエントリされた前記ファイル識別値を参照して前記変名ファイル識別値を取得し、前記変名ファイル識別値を使用して前記インストール・ファイルを呼出し、処理を実行するステップと
を前記情報処理装置に実行させる、情報処理方法が提供される。
本発明によれば、前記情報処理装置の再起動時に、前記インストール・ファイルに前記元ファイル識別値を付して前記記憶装置に上書き保存するステップを前記情報処理装置に実行させることができる。
本発明では、前記リストに対してインストール履歴に対応した複数の変名ファイル識別値をエントリするステップと、
検索された最新の前記変名ファイル識別値を前記インストール・ファイルに付して上書き保存した後、前記リストを参照して変名ファイルおよび前記リストの対応するエントリを削除するステップと
を前記情報処理装置に実行させることができる。
検索された最新の前記変名ファイル識別値を前記インストール・ファイルに付して上書き保存した後、前記リストを参照して変名ファイルおよび前記リストの対応するエントリを削除するステップと
を前記情報処理装置に実行させることができる。
本発明では、さらに、ルックアップ・テーブルを参照して前記アプリケーションに対応した前記変名ファイル識別値を前記元ファイル識別値を使用して作成するステップと、
指定された前記元ファイルを前記記憶装置から削除し、前記リストの前記インストール履歴を保存するように前記リストのエントリ項目を修正するステップを前記情報処理装置に実行させることができる。
指定された前記元ファイルを前記記憶装置から削除し、前記リストの前記インストール履歴を保存するように前記リストのエントリ項目を修正するステップを前記情報処理装置に実行させることができる。
本発明では、上記いずれかに記載の情報処理方法を情報処理装置に対して実行させる、装置実行可能なプログラムが提供される。
以下、本発明を図面に示した実施形態をもって説明するが、本発明は後述する実施形態に限定されるものではない。
図1は、本発明の情報処理装置10のハードウェア構成を示すブロック図である。本発明の情報処理装置10は、概ねパーソナル・コンピュータまたはワークステーションなどを用いることができる。また、本発明の特定の態様では、電子写真法を使用し、感光体ドラム、現像装置、転写装置、スキャナ、半導体レーザ、ポリゴン・ミラーなどの画像形成エンジンを搭載する画像処理装置として情報処理装置を構成することもできる。
情報処理装置10は、概ね、中央処理装置(CPU)12と、CPU12が使用するデータの高速アクセスを可能とするキャッシュ・メモリ14と、CPU12の処理を可能とするRAM、DRAMなどの固体メモリ素子から形成されるシステム・メモリ16とを備える。CPU12、キャッシュ・メモリ14、およびシステム・メモリ16は、システム・バス18を介して、情報処理装置10の他のデバイスまたはドライバ、例えば、グラフィックス・ドライバ20およびネットワーク・デバイス(NIC)22へと接続されている。
グラフィックス・ドライバ20は、バスを介してディスプレイ24に接続されて、CPU12による処理結果をディスプレイ画面上に表示させている。また、ネットワーク・デバイス22は、トランスポート層レベルおよび物理層レベルで情報処理装置10をネットワークへと接続して、クライアント(図示せず)とのセッションを確立させている。
システム・バス18には、さらにI/Oバス・ブリッジ26が接続されている。I/Oバス・ブリッジの下流側には、PCIなどのI/Oバス28を介して、IDE、ATA、ATAPI、シリアルATA、SCSI、USBなどにより、ハードディスクなどの記憶装置30が接続されている。また、I/Oバス28には、USBなどのバスを介して、キーボードおよびマウスなどのポインティング・デバイスなどの入力装置32が接続され、システム管理者などのオペレータによる入力および指令を受付けている。また、I/Oバス28を介してページプリンタなどのプリンタ36が接続されている。プリンタ36は、プリンタ・ドライバ34がPJLなどの適切なフォーマットに変換された出力データをバスを通して受け取り、PDLなどのページ記述言語のフォーマットとして出力させている。
情報処理装置10が使用するCPUとしては、より具体的には、例えば、PENTIUM(登録商標)〜PENTIUM(登録商標) IV、PENTIUM(登録商標)互換CPU、POWER PC(登録商標)、MIPSなどを挙げることができる。
また、使用するオペレーティング・システム(OS)としては、MacOS(商標)、Windows(登録商標)UNIX(登録商標)、LINUX(登録商標)またはそれ以外の適切なOSを挙げることができる。さらに、情報処理装置10は、上述したOS上で動作する、C、C++、Visual C++、VisualBasic、Java(登録商標)などのオブジェクト指向のプログラミング言語により記述されたアプリケーション・プログラムを格納し、実行する。
図2は、本発明の情報処理装置10のソフトウェア構成を示した図である。本発明では、情報処理装置10は、インストール処理を実行するためのインストール処理オブジェクトのセットを含むインストール処理部40と、インストールされたアプリケーションを実行するためのアプリケーション実行部54とを含んで構成されている。
インストール処理部40は、本発明の特定の実施形態では、CD−ROMなどに各モジュールが格納したインストール・パッケージなどとしてユーザに提供することができる。ユーザは、インストール処理を実行する場合、CD−ROMドライブなどにインストール・パッケージを挿入して情報処理装置10に読み取らせ、インストール処理部40を情報処理装置10に実現させて、それぞれの処理を実行させている。なお、このとき、インストール・ファイル自体は、CD−ROM内に格納されており、以下に説明する処理の進行に応じて、インストール処理部40が情報処理装置10に読み出して、ロックされていないファイルのコピーおよび変名ファイルとして、記憶空間に格納する。
さらに本発明の他の実施形態では、インストール・パッケージは、インストールするべきプログラム・コードを含むオブジェクトのセットとして、アプリケーション・プロバイダから提供されても良い。この実施形態では、インストール・パッケージは、インターネットなどのネットワークを経由してアプリケーション・プロバイダからアップデートの必要に応じて情報処理装置10に伝送される。
本発明のインストール処理部40の構成を説明すると、インストール処理部40は、インストール処理を管理するインストーラ42と、ルックアップ・テーブルなどとして構成される変名ルール44と、アンインストーラ46と、ロック・モニタ48とを含んでいる。変名ルール44は、インストール処理が実行されると、インストーラ42により情報処理装置10のハードディスクまたはRAMなどの記憶空間にコピーされ、インストーラ42、または特定にインプリメンテーションに応じて後述する変名ファイル管理部によりルックアップされて、その後の情報処理装置10によるインストール・ファイルの利用をスムーズに実行させる。
また、本発明の特定の実施形態では、インストーラ42が変名ルール44を使用することなくインストールが終了した場合には、インストーラ42は、インストール処理の最後に変名ルール44を記憶空間から削除して、不要なハードウェア資源の消費を防止することもできる。
インストーラ42は、インストール処理時にロックされていると判断されたファイルがあると、情報処理装置10にロックされた状態で対応するファイルを伝送することができるように、変名ルール44をルックアップして、変名ルール44により指定されるプロトコルにしたがって、変名ファイル識別値を作成し、作成した変名ファイル識別値でインストール・ファイルの名称を変更して情報処理装置10の適切な記憶空間に、変名ファイル50として格納する。本発明の特定の実施形態では、対応するファイルに対して所定の変名識別値を付与することによりその名称を変更して登録する。
ロック・モニタ48は、インストールするべきファイルがロックされているか否かを判断し、ロックされていないと判断した場合には、インストーラ42へと通知する。インストーラ42は、ロックされていない通知をロック・モニタ48から受け取ると、インストール・ファイルを情報処理装置10に伝送して上書きさせる。
また、ロック・モニタ48は、インストールするべきファイルがロックされていると判断した場合には、インストーラ42に対してロックされている通知を発行し、インストーラ42に対して変名ファイルおよび変名リストの作成を指令する。以下、本発明で使用するファイルについて説明する。
本発明で、「変名ファイル」とは、元ファイルに対して変名ルールにしたがって作成された変名ファイル識別値で参照されるオブジェクト、データセットなどを意味する。
また、本発明で「元ファイル」とは、情報処理装置10にすでにインストールされ、インストールによる上書きの対象とされ、インストール・ファイルと同一のファイル識別値で参照される旧ファイルを意味する。
さらに、本発明で、「インストール・ファイル」とは、アプリケーション・プロバイダにより提供され、情報処理装置10に導入されるべき更新された内容を含むファイルを意味する。
さらに、本発明で、「インストール・ファイル」とは、アプリケーション・プロバイダにより提供され、情報処理装置10に導入されるべき更新された内容を含むファイルを意味する。
インストーラ42は、ロック・モニタ48からその時点で処理しているファイルがロックされている通知を受け取ると、変名ルール44をルックアップして所定のプロトコルにしたがって移植するべきファイルの変名ファイル識別値を生成する。同時にインストーラ42は、情報処理装置10に対して変名リスト56を作成し、少なくとも生成した変名ファイル識別値を指定することができるデータとともに変名ファイル識別値を登録するパスを記述する。
インストーラ42は、ロック・モニタ48からのロック通知を受付けるごとに変名ファイル識別値を作成し、変名リストに作成された変名ファイル識別値を指定するデータとともにパスを追加して行く。この結果、インストール処理が終了した段階で、変名ファイル識別値が付された変名ファイルおよびそのパスをルックアップ可能とするデータ構造を提供する変名リストが作成される。
なお、本発明のロック・モニタ48は、種々の構成として実装することができる。例えば、ロック・モニタ48は、インストーラ42が発行したcopyコマンドやwriteコマンドに対応するI/OExceptionErrorをモニタしておき、I/OExceptionErrorが返されると対象ファイルがロックされていると判断し、インストーラ42への通知を生成することができる。また、情報処理装置10が、ファイルのロックを、例えばロック・テーブルを使用して管理している場合には、ロック・テーブルを検査してロックされているファイルを特定し、ファイル識別値とともにロック通知をインストーラ42に発行することができる。
その後、インストーラ42は、作成した変名ファイル識別値を、例えば待ち行列52などに登録し、ロックによりインストールできなかったインストール・ファイルのリカバリを可能とする。
インストール処理部40によるアプリケーションのインストールが終了した時点では、インストール・ファイルすべては、元ファイル識別値または変名ファイル識別値が付与され、情報処理装置10のハードディスクなどとして構成される記憶装置の適切なディレクトリまたはフォルダ64、66に格納される。
本発明の情報処理装置10が含むアプリケーション実行部54の処理について説明する。アプリケーション実行部54は、図1に示したCPU12がアプリケーション58を実行するためのソフトウェア・モジュールを、RAMなどにより提供される実行空間62に呼び出して、OSの制御の下でソフトウェア・モジュールを機能させることにより各種の処理を実行させている。また、アプリケーション実行部54は、適切な記憶空間に管理され、インストーラ42が作成した変名リスト56をアプリケーション・プログラミング・インタフェース(API)を使用して、アプリケーション58が要求するファイルと変名ファイルとの間の関連づけを可能としている。
また、アプリケーション58は、ファイルの呼出しを実行する場合、APIに対して呼出しを要求するファイル識別値を渡し、APIから変えられた値を使用してオブジェクト呼出し、ランタイム呼出しなどの呼出し処理を実行する。本発明では、APIとして変名ファイル管理部68が提供されている。変名ファイル管理部68は、情報処理装置10がインストール・パッケージに格納された変名ファイル管理オブジェクトを読み込んで、オブジェクトを実行させることにより情報処理装置10に実現される。なお、本発明においては、同様の機能を提供することができる限り、いかなる構成または実装形態としてAPIまたは変名ファイル管理部68を構成させることができる。
本発明の変名ファイル管理部68は、アプリケーション58が呼び出そうとする元ファイルよりもバージョンの更新されたインストール・ファイルを指定する変名ファイル識別値を取得して、アプリケーション58へと渡す。アプリケーション58は、変名ファイルとして格納されたインストール・ファイルを呼び出すための変名ファイル識別値およびパス指定値などの値を、変名ファイル管理部68から渡される。アプリケーション58は、上述した処理により、元ファイルではなく、変名リスト56により対応づけられた変名ファイル識別値を呼出しのための引数として設定し、ランタイム呼出しなどの呼出し処理を実行することが可能とされ、アプリケーション58は、インストール・ファイルを使用した処理を、OSの再起動を行わずに実行することが可能となる。
変名ファイル管理部68は、また、情報処理装置10でアプリケーション58のファイル呼出しを受け取り、変名リスト56を検索して最新のバージョンのインストール・ファイルを指定する変名ファイル識別値を取得して、アプリケーション58に渡す処理を実行する。変名ファイル管理部68による上記処理は、ユーザがOSのインストールを繰り返して実行した場合でもアプリケーション58に対して最新のインストール・ファイルの使用を可能とする。
さらに、変名ファイル管理部68の処理を説明すると、変名ファイル管理部68は、OSがリセットされた場合に変名ファイルとしてアプリケーションが使用していたインストール・ファイルの内容を、元ファイル識別値として上書き保存する処理を実行し、同時に情報処理装置10から不要となった変名ファイルおよび変名リストのエントリまたは変名リスト自体を削除してハードウェア資源の有効利用を可能とする。
また、変名ファイル管理部68は、ユーザが、アプリケーションのアンインストール処理を要求した場合に、アンインストールに対応して不要となる元ファイルおよび変名ファイルの削除を実行する。また、変名ファイル管理部68は、アンインストール後に、変名リストが空ではない場合には、変名リストのエントリを、アンインストールにより削除された元ファイル識別値や変名ファイル識別値の前後関係のコンシステンシを保持するように変名リストを編集している。
図3は、本発明のインストール処理部40が実行する処理のフローチャートを示す。本発明の処理は、ステップS100から開始し、ステップS101で、例えばユーザに対して提供されるグラフィカル・ユーザ・インタフェース(GUI)の指令に応答して、またはAUTORUN.exeなどのバッチ・プログラムの起動により、インストーラ42が起動される。ステップS102では、ロック・モニタ48が起動され、ファイルの書き込みに対応したI/OExceptionErrorの発行イベントをモニタする準備を行う。
ステップS103では、インストーラ42は、ファイル書き込み指令またはコピー指令を発行し、ファイルのコピーを実行する。ステップS104では、ロック・モニタ48は、ファイルのロックを判断する。ファイルのロックの判断は、ロック・モニタ48が、インストーラ42が発行したファイル書き込み指令またはコピー指令に対応するI/OExceptionErrorをモニタして、I/OExceptionErrorを検出したときに、ファイルがロック状態にあると判断することにより実行される。
ステップS104でファイルがロックされていると判断した場合(yes)には、ステップS105で、変名リストを作成し、情報処理装置10の記憶空間に格納させる。また、ステップS104の処理でファイルがロックされていない場合(no)には、ファイルのコピーはそのまま完了するので、ステップS109へと処理を分岐させ、次に伝送するべき元ファイル識別値を、待ち行列52から取得して、書き込み処理またはコピー処理を、待ち行列に登録されたエントリがなくなるまで繰り返す。
一方ステップS106では、インストーラ42は、変名ルール44を参照して変名ファイル識別値を作成し、作成した変名ファイル識別値を付してインストール・ファイルの内容を複製し、変名ファイルとして、情報処理装置10の適切な記憶空間に保存する。ステップS107では、変名ファイル識別値および格納する記憶空間のパス指定値を変名リストにエントリし、ステップS108では、作成した変名ファイル識別値を、待ち行列のエントリに追加し、元ファイルと同一のパスに登録する準備を行う。
ステップS109では、待ち行列52内に次に処理するファイルの識別値がエントリされているか否かを判断する。待ち行列52にファイルの識別値がエントリされている場合(no)には、ステップS103に処理を分岐させて次のコピー処理を実行する。また、コピーするべきファイルが残されていない場合には(yes)ステップS110でファイルのインストール処理を終了する。
図3に示した処理が終了した時点では、情報処理装置10は、インストールするべきインストール・ファイルの内容を全部保持することになる。
図4は、本発明で使用する変名ルール44を登録するルックアップ・テーブルおよび変名リストの実施形態を示す。図4(a)は、本発明の変名ルールを登録するルックアップ・テーブル44の実施形態を示し、図4(b)は、本発明の処理により生成される変名リストの第1の実施形態を示す。図4(a)の変名ルール44は、インストーラ42の処理時に利用されると同時にアプリケーション実行部54が変名ファイルを管理するために利用され、インストーラ42によりアプリケーション実行部54の適切な記憶領域に保存される。
図4(a)に示した変名ルール44は、インストールに関連するアプリケーションを登録するフィールド44aとインストールされた時点で変名するための追加識別値とを格納するフィールド44bとを含んで構成されていて、アプリケーションごとに異なる変名識別値が登録されてレコードを構成している。インストーラ42は、アプリケーションとして、A〜Dを同時にインストールするような実施形態では、それぞれのインストール時に変名ファイルに「A_」〜「D_」の変名識別値をファイル名の先頭に付して変名ファイル識別値を生成する。本発明で、上述した変名ルールを使用することにより、インストール時のアプリケーションおよびインストール・バージョンを識別することが可能となる。
図4(b)は、本発明にしたがい生成される変名リスト56の実施形態を示す。図4(b)に示されるように、本発明で生成される変名リスト56は、変名ファイルが作成された順を指定するファイル情報Noをエントリするフィールド56aと、変名ファイルが作成された元ファイル識別値を登録するフィールド56bと、変名ファイルを登録する情報処理装置10内の記憶空間のパス指定値を登録するフィールド56cとを含んで構成されている。
図4(b)に示した実施形態では、変名ファイル識別値を登録するフィールドは設けられていないが、本発明においてOSのリセット以前に複数回のインストールを行う実施形態では、元ファイル識別値および変名ファイル識別値を、パス指定値とともにエントリする実施形態を採用することもできる。また、図4(b)で示した実施形態の変名リストを使用する場合、変名ファイル管理部68は、元ファイル識別値を取得した後、変名ルール44を参照して変名ファイル識別値を取得して以後の処理を実行する。
図5は、本発明の情報処理装置10がインストール処理の第2の実施形態を示した図である。図5に示した実施形態は本発明においてOSの再起動を行うことなく、複数回のインストール処理を実行する場合に、インストーラ42が実行する処理に対応する。図5に示した本発明の処理の第2の実施形態の処理は、ステップS200から開始し、ステップS201〜ステップS204、S209、S210の処理については、図3で説明したと同様に実行する。
一方、図5に示した処理は、ステップS205で、情報処理装置10の記憶空間に変名リストがすでに登録されているか否かを検査する。検査の結果、変名リストが登録されている場合(yes)には、ステップS206へと処理を分岐させ、インストール対象とされたインストール・ファイルに関連する変名ファイル識別値が、すでに変名リスト内にエントリされているか否かを、検査する。この際の検査は、インストール処理を実行しているインストール・ファイルと、変名リスト56にエントリされている変名ファイル識別値とが、共通する元ファイルのファイル名など、共通するストリング列を含むか否かの基準を使用して行うことができる。
検査の結果、対応する変名ファイル識別値が登録されていない場合には、ステップS207で、インストーラ42は、変名ルール44をルックアップして、インストール処理が1回目であると判断し、ステップS208で、変名識別値をファイル識別値の先頭に追加して変名ファイル識別値を作成する。
また、ステップS206の検査で、共通するストリング列を有する変名ファイルがエントリされていると判断された場合には、ステップS206、ステップS207およびステップS208で、より詳細には、以下の処理が実行される。まず、ステップS206で、共通するストリング列と変名ファイル識別値との差ストリングを取得する。
さらに、ステップS206で取得した差ストリングから最新の変名ファイルを特定する。最新の変名ファイルを特定する処理は、例えば、変名識別値が固定長のASCIIコードなどで付されている場合には、差ストリング列のビット数を使用することができる。また、変名識別値にデリミタに相当するコードを含めておき、デリミタの数をカウントして最もカウントの多いものを最新の変形ファイル識別値であるとして決定することができる。この他、本発明では、同様の処理を実行することができるいかなる方法でも使用することができる。さらに、変名リスト56がインストール履歴を指定することが可能に構成する場合には、ラダー状にエントリを順に検査して同一の処理を実行することができる。
ステップS207では、変名テーブル44をルックアップして変名識別値を取得し、ステップS208では、特定した変名ファイル識別値に対してさらに、ストリング列に対して左側となるように変名識別値を追加して、新たな変名ファイルを作成する。
ステップS208の処理が終了すると、処理は、ステップS211へと分岐する。ステップS211では、元ファイル識別値と作成した変名ファイル識別値と、パス指定値とを、ファイル情報Noをインクリメントさせて新たなレコードを作成し、変名リスト56の適切なレコード、例えば最下位レコードとしてエントリする。ステップS212では、インストール・ファイルを指定する変名ファイル識別値、パス指定値などを待ち行列にエントリして、以後のインストール処理で、情報処理装置10に伝送する準備を行う。その後、ステップS213では、待ち行列52内に次に処理するエントリがあるか否かを判断する。待ち行列52にエントリ項目が登録されている場合(no)には、ステップS203に処理を分岐させて次のコピー処理を実行する。また、コピーするべきエントリ項目が残されていない場合には(yes)ステップS214でファイルのインストール処理を終了する。
図6は、図5で説明した処理により作成される変名リスト56の実施形態を示した図である。図6に示した変名リスト56は、図4で説明した変名リストと同様に、ファイル情報Noをとエントリするフィールド56aと、元ファイル識別値をエントリするフィールド56bと、パス指定値をエントリするフィールド56cとを含んで構成される。図6に示した変名リスト56は、さらに変名後のファイルを明示的に指定する変名ファイル識別値をエントリするフィールド56dが設けられている。
図6に示した変名リスト56は、ユーザが、「Application」で指定されるアプリケーションについて3回インストール処理を実行した場合に、「DdsTkps.dll」で指定される元ファイルに対して作成される、「A_
DdsTkps.dll」といった変名ファイル識別値がエントリされている。詳細に説明すると、アプリケーションの1回目のインストール処理では、共通するストリング列を含む変名ファイルが変名リスト中に見出されないので、インストーラ42は、元ファイル識別値である、「DdsTkps.dll」のストリング列に対して左側から変名識別値「A_」を付した「A_DdsTkps.dll」を作成し、変名ファイル識別値とする。その後、インストーラ42は、元ファイル識別値と作成した変名ファイル識別値とを、元ファイル「DdsTkps.dll」を登録するべきパス指定値とともに、ファイル情報Noの値が「1」である各フィールドにエントリしてレコードを作成する。2度目のインストール処理では、共通するルとリング列がフィールド56dに見出されるので、差ストリング列を作成する。
DdsTkps.dll」といった変名ファイル識別値がエントリされている。詳細に説明すると、アプリケーションの1回目のインストール処理では、共通するストリング列を含む変名ファイルが変名リスト中に見出されないので、インストーラ42は、元ファイル識別値である、「DdsTkps.dll」のストリング列に対して左側から変名識別値「A_」を付した「A_DdsTkps.dll」を作成し、変名ファイル識別値とする。その後、インストーラ42は、元ファイル識別値と作成した変名ファイル識別値とを、元ファイル「DdsTkps.dll」を登録するべきパス指定値とともに、ファイル情報Noの値が「1」である各フィールドにエントリしてレコードを作成する。2度目のインストール処理では、共通するルとリング列がフィールド56dに見出されるので、差ストリング列を作成する。
この実施形態の場合、差ストリング列が「A_」のものが最長のストリング列を与えるので、「A_DdsTkps.dll」がインストール処理に関連する最新の変名ファイル識別値であると判断し、変名識別値である「A_」を見出されたストリング列に左から付して、新たな変名ファイル識別値である「A_A_DdsTkps.dll」を作成し、ファイル情報Noの値として「2」を作成し、元ファイル識別値と、作成した変名ファイル識別値と、パス指定値とを、各フィールド56a〜56dにエントリしてレコードを作成する。
なお、3度目にインストール処理が実行された場合についても同様処理が実行され、ファイル情報NOが「3」で指定されるレコードが生成されて、変名リスト56のレコードとして順次追加されて行く。
図6に示した実施形態では、さらに、プラグイン・プログラムである、「FmCollabo.dll」に対して、1度目のインストール処理で元ファイル「FmCollabo.dll」がインストールされ、この結果、変名ファイル「A_FmCollabo.dll」が作成され、2度目のインストール処理で、「A_A_FmCollabo.dll」が作成され、それぞれのフィールドにエントリされて行くのが示されている。なお、変名リスト56にレコードを追加して行く処理は、インストールの対象となるファイルに対して変名ファイル識別値を作成した順に行われ、インストール履歴を示す形式として登録しておくことができる。
また、本発明では、図6に示されるように、インストールにより追加されたレコードに対して、元ファイルのアルファベット順に、元ファイル識別値と変名ファイル識別値とパス指定値とをソーティングして、図6の実施形態として格納することもできる。図6に示した実施形態として変名リストを登録しておく場合には、後述する変名リストのエントリを削除する場合に検索対象空間の容量を少なくすることができるので、削除処理を効率化することができる。また、変名リスト56自体がインストール履歴データとして使用できるので、複数回インストールが行われた場合にでも最新の変名ファイル識別値の取得を効率的に行うことができる。
図7には、本発明において、ユーザが情報処理装置10に対して所定のアプリケーションをインストールした後、アプリケーションを実行し、要求する処理を終了して情報処理装置10をシャットダウンまたはOSを再起動させる場合に、情報処理装置10が実行する処理のうち、変名ファイル管理部68が実行する処理を示した図である。図7に示す変名ファイル管理部68の処理は、ステップS300から開始し、ステップS301でOSリセット指令またはOS再起動指令を受け取る。その後、ステップS302では、OSが起動され、すべてのファイルが特定のアプリケーションによりロックされる前に、変名リストから最新の変名ファイル識別値を検索する。
本発明において、最新の変更ファイル識別値を検索する方法としては、図6に示した変名リスト56の実施形態について説明すると、エントリされた元ファイルの変名履歴を昇順に、元ファイルのストリング列を含むファイルをたどり、同一の元ファイル識別値に対して登録された最もファイル情報Noが大きなレコードに登録された変名ファイル識別値を最新の変名ファイル識別値として取得することができる。
ステップS303では、変名ファイル識別値で指定される変名ファイルの内容に対し、元ファイル識別値の値を付して記憶空間66に上書き保存、すなわち、変名ファイルを元ファイルにリネームして登録する。ステップS304では、不要となった変名ファイルを記憶空間64から削除する。ステップS305では、変名リストが空か否かを判断する。ステップS305で変名リストが空であると判断された場合(yes)、ステップS306で変名リスト56を削除してステップS307へと処理を分岐させ、処理を終了する。一方、ステップS305の判断で変名リストが空ではないと判断された場合(no)、変名リストを使用するアプリケーションが存在する可能性があるので、削除せずに保存して、ステップS307で終了する。
図8は、図7のステップS302の検索のために使用する本発明の変名リストの第3の実施形態を示す。図8に示した変名リスト56は、ファイル情報Noをエントリするフィールド56aと、変名ファイル識別値をエントリするフィールド56dと、パス指定値を登録するフィールド56cとを含んでいる。さらに、図8に示した変名リストは、直前の変名ファイル識別値をエントリするフィールド56eを含んでいて、変名前後のシーケンスを、ファイル情報Noおよびフィールドの順序から特定できる構成とされている。例えば、変名ファイル管理部68が、最新の変名ファイル識別値を検索する場合について図8を使用して説明すると、登録されたレコードから直前変名ファイル識別値のフィールドに記述されている値を取得して、値がnullである場合には、対象とするファイルについて先頭レコードあると判断し、同一のレコードの変名ファイル識別値を登録したフィールドの値を元ファイル識別値として取得する。
その後、矢線Aで示す千鳥(staggered)状に昇順にファイル情報Noを処理して行き、取得した元ファイル識別値を見出し、該当するレコードの変名ファイル識別値を取得して新たな検索キーとして設定する。さらにその後新たに設定された検索キーを含むレコードを検索して検索された変名ファイル識別値を再度検索キーとして設定し、検索を続行する。最終的に、タイムアウト・タイマなどの満了などにより、新たな検索キーが設定できない場合、その時点で登録されている検索キーが、最新に更新された変名ファイル識別値に相当する。
その後、特定された変名ファイル識別値で特定されるファイルに対して元ファイル識別値を付与して元ファイルを上書きする。その後さらに、変名ファイル識別値で指定される変名ファイルを削除することにより、インストール・ファイルの識別値のコンシステンシを確保すると同時に、OS再起動後に不要な変名ファイルを削除することが可能となる。
図9は、図8に示した変名リスト56を作成する処理のフローチャートを示す。図9に示す処理は、本発明の特定の実施形態では、インストーラ42が、ロック・モニタ48からの通知を受け取って実行される。なお、本発明の特定の実装形態においては、変名ファイル管理部68が、インストーラ42から呼出しを受けて同様の処理を実行することもできる。
図9の処理は、ステップS400から開始し、ステップS401では、ロック・モニタ48は発行するインストール・ファイルに対応する元ファイルがロックされていることの通知を待機し、ロックされている通知を受領するまで(yes)待機処理を実行する。ステップS401でインストーラ42が、ロック通知を受領すると(yes)、処理はステップS402へと進み、変名リスト56が作成されていない場合には変名リスト56を作成し、変名ルール44をルックアップして、当該インストールに対して与えるべき変名識別値を取得する。
ステップS403では、初期値設定を実行する。初期値設定は、FileInfoNo= FIN_i; i=1; -backFileName=null;
-RenameFileName= OriginalFileNameとして設定する。ステップS404では、FIN_i.RenameFileName=
FIN_i+1.backFileNameを満足するiを検索し、ステップS405で、検索の結果が肯定的な結果を返すか否かを判断する。
-RenameFileName= OriginalFileNameとして設定する。ステップS404では、FIN_i.RenameFileName=
FIN_i+1.backFileNameを満足するiを検索し、ステップS405で、検索の結果が肯定的な結果を返すか否かを判断する。
該当するiの値が見出された場合には、iの値をインクリメントして、ステップS403の処理およびステップS405の判断を繰り返す。ステップS405の判断がfalseの値を返す場合には、処理しているiで指定されるレコードは、関連するファイルのうち最新の値を登録しており、新たなレコードを追加して、ファイル情報NoとしてFIN(i+1)を付与し、
-backFileName=FIN_i.RenameFileName;
-RenameFileName={FIN_i.RenameFileNameの値に変名識別値を追加した値}
として設定し、パス指定値を記述して変名リストを作成する。
-backFileName=FIN_i.RenameFileName;
-RenameFileName={FIN_i.RenameFileNameの値に変名識別値を追加した値}
として設定し、パス指定値を記述して変名リストを作成する。
図9の処理において、ステップS406の処理が終了すると、処理は、ステップS401へと分岐され、再度、ロック通知を受領するまでステップS401で待機する。
図8および図9に示した変名リストの実施形態では、ユーザがアンインストールを要求した場合にでも、インストール履歴を利用して変名リストの編集が可能となる。
本発明のアンインストーラの機能について、再度図2を使用して説明する。アンインストーラ46は、ユーザがインストール処理部40に登録されたアンインストーラを選択して起動することにより処理を開始する。アンインストーラ46は、アンインストールするべきアプリケーションに関連する元ファイルと変名ファイルとを、実行空間62、記憶空間64、66から削除する。また、アンインストーラ46は、変名ファイル管理部68に対して変名リスト編集指令を発行し、変名リスト56のエントリ項目の修正、削除などの処理を実行させる。
図10は、本発明のアンインストール処理のフローチャートを示す。図10に示した処理は、ステップS500から開始し、ステップS501で変名リスト56をルックアップし、アンインストールするべき元ファイルの元ファイル識別値が、変名リストにエントリされているか否かを判断する。変名リストにアンインストール対象の元ファイル識別値がエントリされていない場合(no)には、処理をステップS502へと進め、削除するべきファイルを検索し、記憶空間64から削除し、ステップS504でアンインストール処理を終了する。
一方、ステップS501の判断で変名リスト56にアンインストール対象の元ファイル識別値が登録されていると判断した場合(yes)には、ステップS505で変名ルール44をルックアップして削除するべきファイルを特定し、ステップS506で変名リスト56内にエントリされている元ファイル識別値および対応する変名ファイル識別値で指定される各ファイルを、記憶空間64、66から削除する。
ステップS507では、変名リスト56が空であるか否かを判断し、変名リストが空である場合(yes)には、ステップS503に処理を分岐させ、不要な変名リストを削除させるべく、変名ファイル管理部68に対して指令する。
また、変名リスト56が空でない場合(no)には、ステップS508で、変名ファイル管理部68に対し、変名リスト56のエントリ項目の削除に対応して変名リスト56のレコード・シーケンスを変更させた後、削除したファイルについて変名リストのエントリまたはレコードを削除する。
ステップS508の処理は、例えば、同一のファイルを使用する複数のアプリケーションがある場合、特定のアプリケーションをアンインストールすると、インストール履歴中で中間位置にあるレコードが削除され、千鳥状に最新ファイルを検索する処理が正確に最新ファイルを与えないようになることに対応して実行される。ステップS508の処理は、元ファイル識別値から変名ファイル識別値を検索するシーケンスを維持させ、アンインストール時に削除されたファイルが存在しても、確実に、元ファイルを最新の変名ファイルの内容に置換することができるようにする。
図11は、図10のステップS508で使用するエントリ項目を編集する処理のフローチャートを示す。なお、図11の処理は、以下、変名ファイル管理部68が実行するものとして説明するが、本発明では、いかなる処理部が実行しても良い。また、図11の処理は、本発明においてアンインストール処理の場合以外にも、図8で示した変名リスト56を使用する場合に、最新の変名ファイル識別値を取得させる必要がある場合に使用することができる。
図11に示すエントリ準位変更処理は、ステップS600から開始し、ステップS601で、記憶空間から削除したファイル識別値を受け取りFIN_i.RenameFileName = 削除したファイル識別値を満足する値がエントリされたレコード(FIN_i)を検索する。ステップS602では、FIN_iに対応するレコードが見出されたか否かの判断を実行し、見出されない場合(no)、処理をステップS608へと分岐させ、削除失敗をステップS508の処理に通知して処理を停止させる。この場合が発生するのは、何らかの理由で変名リスト56が破損した可能性があるためである。
ステップS603で、FIN_iに該当するレコードが見出された場合(yes)には、
FIN_i.backFileName = FIN_i-1.RenameFileName
または
FIN_i.RenameFileName = FIN_i+1.backFileName
を満足する、それぞれFIN_i-1およびFIN_i+1を検索する。
FIN_i.backFileName = FIN_i-1.RenameFileName
または
FIN_i.RenameFileName = FIN_i+1.backFileName
を満足する、それぞれFIN_i-1およびFIN_i+1を検索する。
また、ステップS604でFIN_i-1に対応するレコードが見出されない場合(yes)、処理をステップS608へと分岐させ、ステップS508の処理を中止する。また、FIN_i-1が見出された場合(no)には、ステップS605でさらにFIN_i+1が見出されたか否かを判断する。ステップS605で、FIN_i+1が見出されない場合(yes)、当該レコードが最終レコードなので、処理をステップS607に分岐させて変名リストのエントリを削除する処理を実行する。
ステップS605の処理で、FIN_i+1が見出された場合(no)には、処理をステップS606へと進め、FIN_i+1.backFileName
= FIN_i-1.RenameFileNameに書換える。その後、FIN_iのレコードを削除することにより、削除したレコードに登録されていた変名ファイル間の連続性を与えることができる。
= FIN_i-1.RenameFileNameに書換える。その後、FIN_iのレコードを削除することにより、削除したレコードに登録されていた変名ファイル間の連続性を与えることができる。
図12は、図11で説明した処理を、図8で示した変名リストに対して適用した場合について具体的に示した説明図である。ユーザによるアンインストール指令に応答して図12のファイル情報No(FIN=3、6)が記憶空間から削除されるものとする。
ここで、図11に説明した処理で、i=3として説明すると、FIN_3が見出され、FIN_3.backFileName=FIN_2.RenameFileName=
A_DsTkps.dllであり、FIN_3.RenameFileName = FIN_4.backFileName=A_A_DdsTkps.dllとなるので、ステップS607で、FIN_4.backFileName=FIN_2.RenameFile
Name=A_DdsTkps.dllと設定され、FIN_3の値が削除された場合にでもFIN_4の値を使用して参照することが可能となる。また、図12では、FIN_6についても同様に、FIN_7の値が、FIN_5のRenameFileNameの値で置き換えられていて、FIN_5からA_A_FmCollabo.dllが参照可能とされている。これらの処理により修正される変名リスト56のエントリ項目の変化を図12の矢線で示している。
A_DsTkps.dllであり、FIN_3.RenameFileName = FIN_4.backFileName=A_A_DdsTkps.dllとなるので、ステップS607で、FIN_4.backFileName=FIN_2.RenameFile
Name=A_DdsTkps.dllと設定され、FIN_3の値が削除された場合にでもFIN_4の値を使用して参照することが可能となる。また、図12では、FIN_6についても同様に、FIN_7の値が、FIN_5のRenameFileNameの値で置き換えられていて、FIN_5からA_A_FmCollabo.dllが参照可能とされている。これらの処理により修正される変名リスト56のエントリ項目の変化を図12の矢線で示している。
図13は、本発明のインストール処理によってファイルが更新された情報処理装置10の動作フローチャートを示す。情報処理装置10は、ステップS700で起動された後、ステップS701でアプリケーションを起動し、変名ファイル管理部68が、アプリケーションからのファイル要求をモニタする。ステップS702では、変名ファイル管理部68がアプリケーションからファイル要求を受付けると、変名ファイル管理部68は、変名リストを検索する。ステップS703で、変名リスト56をルックアップしてアプリケーションが要求するファイルが変名リスト56にエントリされているか否かを判断する。ステップS703で変名リスト56に呼び出そうとする元ファイル識別値がエントリされている場合(yes)には、ステップS704で、変名リスト56をさらに検索して、最新の変名ファイル識別値で指定される変名ファイルを呼び出して、ステップS705で、取得した最新の変名ファイル識別値の値をアプリケーションに渡し、アプリケーションによる変名ファイルの呼出しを実行させる。またエントリされていない場合(no)には、ステップS711で元ファイルを呼び出してアプリケーションを実行させる。
ステップS706では、ユーザによるアプリケーションの利用が終了した後、ステップS707でユーザが情報処理装置10に指令してOSがシャットダウンされる。その後、本発明において再度、ユーザが情報処理装置10を起動するか、またはOSの再起動指令により情報処理装置10が立ち上げられる。このとき、再起動時の設定については、WINDOWS(登録商標)XPを使用するプラットフォームでは、変名ファイルが存在している元での再起動である起動設定を、予め、レジストリキーに、「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft
\Windows(登録商標)\CurrentVersion\RunOnce」として、レジストリ・エディタなどを使用して設定しておくことで、正常な起動を行うことができる。
\Windows(登録商標)\CurrentVersion\RunOnce」として、レジストリ・エディタなどを使用して設定しておくことで、正常な起動を行うことができる。
また、同様の起動設定を行う場合、UNIX(登録商標)では、システム・ファイル(例えば、.login、.bash_profileなどの「ドット」から開始されるファイル)、LINUXでは、/usr/local/etc(インストールしたアプリケーションの設定ファイルを登録するディレクトリ、/usr/local/etc/rc.d(インストール・アプリケーションの起動、停止制御を記述するディレクトリ)などに、シャットダウンまたは再起動コマンドの発生により起動されるシェルスクリプトを作成しておくことができる。
さらに、本発明では、ステップS708で特定のアプリケーションによるロックが発生する前(ファイルのアンロック状態にあるとき)に最新の変名ファイルを検索し、元ファイル識別値を付して最新の変名ファイルを元ファイルに上書き保存し、同時に対応する変名ファイルを削除する。その後、ステップS709では、削除した変名リストの対応するエントリを削除して、情報処理装置10から不要なデータを削除するとともに変名リストを使用した最新変名ファイルの検索を可能とさせる。このとき、前回当該元ファイルをインストールしたときには変名リストを使用して変名ファイルが実質的に呼び出されていたので、ステップS708以後に利用される元ファイルは同一のファイルなので、データおよびファイルのコンシステンシは保持されている。
すなわち、本発明によれば、情報処理装置にファイルをインストールした直後であってもOSの再起動を行うことなく最新のファイルを使用した情報処理が可能となり、ユーザがインストールのたびごとにOSを再起動して最新ファイルの呼出し準備を実行させることなく、スムーズなインストール、アップデート、アンインストール処理が可能となる。
本発明の上記機能は、C++、Java(登録商標)、Java(登録商標)Beans、Java(登録商標)Applet、Java(登録商標)Script、Perl、Rubyなどのオブジェクト指向ブログラミング言語などで記述された装置実行可能なプログラムにより実現でき、装置可読な記録媒体に格納して頒布することができる。
これまで本発明を図面に示した実施形態をもって説明してきたが、本発明は図面に示した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
さらに、本発明を図面に示した特定の実施形態をもって説明してきたが、本発明は、パーソナル・コンピュータの他、UNIX(登録商標)、LINUXなどのカーネルを実装する画像形成装置または画像処理装置のファイル・アップデートに対しても適用することができ、例えば遠隔的に伝送されたアップデート・ファイルをAUTORUN.exeなどのバッチファイルやシェルシュクリプトとして実行させた場合でも、画像処理装置や画像処理装置のリセット処理を経ることなく、ユーザによりOSのリセットの必要が発生するまで、最新のファイルによるサービスを提供することができる。
10…情報処理装置、12…CPU、14…キャッシュ・メモリ、16…システム・メモリ、18…システム・バス、20…グラフィックス・ドライバ、22…ネットワーク・デバイス、24…ディスプレイ、26…I/Oバス・ブリッジ、28…I/Oバス、30…記憶装置、32…入力装置、34…プリンタ・ドライバ、36…プリンタ、40…インストール処理部、42…インストーラ、44…変名ルール、46…アンインストーラ、48…ロック・モニタ、50…変名ファイル、52…待ち行列、54…アプリケーション実行部、56…変名リスト、58…アプリケーション、62…実行空間、64…記憶空間、66…記憶空間、68…変名ファイル管理部
Claims (12)
- インストールされたファイルを、OSを再起動せずに実行する情報処理装置であって、
アプリケーションの実行中に元ファイルのロックを検出し、ロックされた前記元ファイルの元ファイル識別値から作成される変名ファイル識別値を指定するリストを作成し、前記インストール・ファイルと前記リストとを記憶装置に格納するとともに、前記変名ファイル識別値を検索するインストール処理部と、
前記リストにエントリされた前記元ファイル識別値を参照して前記変名ファイル識別値を取得し、前記変名ファイル識別値を使用して前記インストール・ファイルを呼出し、処理を実行するアプリケーション実行部と
を含む、情報処理装置。 - 前記インストール処理部は、
前記元ファイルのロックを検出するロック・モニタと、
前記アプリケーションと共有され、前記変名ファイル識別値を作成する変名ルールを登録したルックアップ・テーブルと、
複数登録された前記変名ファイル識別値のうち最新の前記変名ファイル識別値を千鳥状に順にたどって検索する変名ファイル管理部と
を含む、請求項1に記載の情報処理装置。 - 前記変名ファイル管理部は、前記情報処理装置の再起動時に前記インストール・ファイルに前記元ファイル識別値を付して前記記憶装置に上書き保存する、請求項2に記載の情報処理装置。
- 前記リストは、インストール履歴に対応した複数の変名ファイル識別値をエントリしており、前記変名ファイル管理部は、検索された最新の前記変名ファイル識別値を前記インストール・ファイルに付して上書き保存した後、前記リストを参照して変名ファイルおよび前記リストの対応するエントリを削除する、請求項2〜3のいずれか1項に記載の情報処理装置。
- 前記変名ファイル管理部は、前記リストの内容を検査し、前記リストが空の場合に前記リストを前記記憶装置から削除する、請求項2〜4のいずれか1項に記載の情報処理装置。
- 前記インストール処理部は、前記アプリケーションに対応した前記変名ファイル識別値を前記元ファイル識別値を使用して作成するためのルックアップ・テーブルと、
指定された前記元ファイルを前記記憶装置から削除し、前記リストの前記インストール履歴を保存するように前記リストのエントリ項目を修正させるアンインストーラと
を含む、請求項1〜5のいずれか1項に記載の情報処理装置。 - 前記情報処理装置は、電子写真法を使用した画像形成装置である、請求項1〜6のいずれか1項に記載の情報処理装置。
- インストールされたファイルを、OSを再起動せずに情報処理装置が実行する情報処理方法であって、
アプリケーションの実行中に元ファイルのロックを検出し、ロックされた前記元ファイルの元ファイル識別値から作成される変名ファイル識別値を指定するリストを作成し、前記インストール・ファイルと前記リストとを記憶装置に格納するとともに、前記変名ファイル識別値を検索するステップと、
前記リストを参照して最新の前記変名ファイル識別値を検索するステップと、
前記リストにエントリされた前記ファイル識別値を参照して前記変名ファイル識別値を取得し、前記変名ファイル識別値を使用して前記インストール・ファイルを呼出し、処理を実行するステップと
を前記情報処理装置に実行させる、情報処理方法。 - 前記情報処理装置の再起動時に、前記インストール・ファイルに前記元ファイル識別値を付して前記記憶装置に上書き保存するステップを前記情報処理装置に実行させる、請求項8に記載の情報処理方法。
- 前記リストに対してインストール履歴に対応した複数の変名ファイル識別値をエントリするステップと、
検索された最新の前記変名ファイル識別値を前記インストール・ファイルに付して上書き保存した後、前記リストを参照して変名ファイルおよび前記リストの対応するエントリを削除するステップと
を前記情報処理装置に実行させる、請求項8または9に記載の情報処理方法。 - さらに、ルックアップ・テーブルを参照して前記アプリケーションに対応した前記変名ファイル識別値を前記元ファイル識別値を使用して作成するステップと、
指定された前記元ファイルを前記記憶装置から削除し、前記リストの前記インストール履歴を保存するように前記リストのエントリ項目を修正するステップを前記情報処理装置に実行させる、請求項8〜10のいずれか1項に記載の情報処理方法。 - 請求項8〜11のいずれか1項に記載の情報処理方法を情報処理装置に対して実行させる、装置実行可能なプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006157491A JP2007328429A (ja) | 2006-06-06 | 2006-06-06 | 情報処理装置、情報処理方法およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006157491A JP2007328429A (ja) | 2006-06-06 | 2006-06-06 | 情報処理装置、情報処理方法およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007328429A true JP2007328429A (ja) | 2007-12-20 |
Family
ID=38928873
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006157491A Pending JP2007328429A (ja) | 2006-06-06 | 2006-06-06 | 情報処理装置、情報処理方法およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007328429A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011170608A (ja) * | 2010-02-18 | 2011-09-01 | Nec Infrontia Corp | 入退場管理システム、入退場管理装置、入退場管理方法及びプログラム |
JP2013536521A (ja) * | 2010-08-19 | 2013-09-19 | コーニンクレッカ フィリップス エヌ ヴェ | 拡張可能意思決定支援システム |
-
2006
- 2006-06-06 JP JP2006157491A patent/JP2007328429A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011170608A (ja) * | 2010-02-18 | 2011-09-01 | Nec Infrontia Corp | 入退場管理システム、入退場管理装置、入退場管理方法及びプログラム |
JP2013536521A (ja) * | 2010-08-19 | 2013-09-19 | コーニンクレッカ フィリップス エヌ ヴェ | 拡張可能意思決定支援システム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4549715B2 (ja) | ネットワーク化された周辺デバイスクライアントのための周辺デバイスドライバ維持管理スキーム | |
US5924102A (en) | System and method for managing critical files | |
US7472385B2 (en) | Method and computer-readable medium for installing an upgrade to an application program | |
US6434744B1 (en) | System and method for patching an installed application program | |
KR100424236B1 (ko) | 손상 검출 및 복구 방법과 그 시스템 및 기록 매체 | |
US7791745B2 (en) | Information processing apparatus on which printer driver can be installed, information processing apparatus, control method, program, and storage medium | |
US8407693B2 (en) | Managing package dependencies | |
US20050144528A1 (en) | Computing device configuration manager | |
JP2006099747A (ja) | 情報処理装置及びその制御方法、プログラム | |
US20140258704A1 (en) | Changing the personality of a device by intercepting requests for personality information | |
US8959120B2 (en) | Information processing apparatus, information processing method, and function expansion program | |
JP2003288191A (ja) | プリンタドライバを動的にアップデートするシステムおよび方法 | |
KR101806499B1 (ko) | 파일 관리 방법 및 이를 이용한 파일 관리 장치 | |
KR20040002739A (ko) | 영향을 주지 않는 방식으로 소프트웨어 애플리케이션을인스톨하기 위한 시스템 및 방법 | |
US8199351B2 (en) | Information processing system, information processing method, and computer-readable recording medium | |
US8185888B2 (en) | Software execution with minimal impact deployment | |
US20170024202A1 (en) | Information processing apparatus, method, and program | |
EP1001339A2 (en) | Apparatus and method for an installation recovery system | |
JP2011242891A (ja) | 配信装置、画像処理装置、配信方法及びインストール方法 | |
JP2005165874A (ja) | クライアント装置のシステム環境規約違反検出方法 | |
US7456991B2 (en) | Printer based file revision databasing | |
JP2007328429A (ja) | 情報処理装置、情報処理方法およびプログラム | |
JP2010157134A (ja) | 情報処理装置、情報処理方法及び情報処理システム | |
JP2009282775A (ja) | アプリケーションプラットフォーム | |
JP2006268643A (ja) | プログラム、情報処理装置および印刷システム |