(57)【特許請求の範囲】
【請求項１】
画像形成装置であって、
システムアプリケーションを削除する際に削除対象外として扱うファイルあるいはディレクトリを特定する削除対象外情報を保持する保持手段と、
前記システムアプリケーション、一般アプリケーションを含む複数種類のアプリケーションのうち、削除対象とするアプリケーションを指定する指定手段と、
前記指定されたアプリケーションに関するファイルあるいはディレクトリのうち、前記削除対象外情報を用いて、削除対象外として扱うファイルあるいはディレクトリを除いた、前記アプリケーションに関するファイルあるいはディレクトリを削除する削除手段を有し、
前記一般アプリケーションは、前記画像形成装置に追加されるアプリケーションであり、
前記システムアプリケーションを削除する際に削除対象外として扱う削除対象外情報は、前記一般アプリケーションに関連する情報であることを特徴とする画像形成装置。
【請求項２】
複数種類のアプリケーションを保持するアプリケーション保持手段を有することを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記アプリケーション保持手段は、アプリケーションの展開領域であることを特徴とする請求項２に記載の画像形成装置。
【請求項４】
前記削除手段による削除の後、前記アプリケーションを新たな展開領域に、再展開する再展開手段と、
前記新たな展開領域に、削除対象外のファイルをコピーするコピー手段を有することを特徴とする請求項３に記載の画像形成装置。
【請求項５】
前記コピー手段によるコピーの後、コピーされる前の展開領域にある削除対象外のファイルを削除することを特徴とする請求項４に記載の画像形成装置。
【請求項６】
前記システムアプリケーションを削除する際に削除対象外として扱う削除対象外情報は、前記一般アプリケーションのライセンス情報であることを特徴とする請求項１乃至５の何れか１項に記載の画像形成装置。
【請求項７】
前記システムアプリケーションは、前記一般アプリケーションの管理を行うことを特徴とする請求項１乃至６の何れか１項に記載の画像形成装置。
【請求項８】
画像形成装置の制御方法であって、
指定手段が、システムアプリケーション、一般アプリケーションを含む複数種類のアプリケーションのうち、削除対象とするアプリケーションを指定する指定工程と、
削除手段が、前記指定されたアプリケーションに関するファイルあるいはディレクトリのうち、保持手段に保持されている前記システムアプリケーションを削除する際に削除対象外として扱うファイルあるいはディレクトリを特定する削除対象外情報を用いて、削除対象外として扱うファイルあるいはディレクトリを除いた、前記アプリケーションに関するファイルあるいはディレクトリを削除する削除工程を有し、
前記一般アプリケーションは、前記画像形成装置に追加されるアプリケーションであり、
前記システムアプリケーションを削除する際に削除対象外として扱う削除対象外情報は、前記一般アプリケーションに関連する情報であることを特徴とする画像形成装置の制御方法。
【請求項９】
前記システムアプリケーションを削除する際に削除対象外として扱う削除対象外情報は、前記一般アプリケーションのライセンス情報であることを特徴とする請求項８に記載の画像形成装置の制御方法。
【請求項１０】
前記システムアプリケーションは、前記一般アプリケーションの管理を行うことを特徴とする請求項８又は請求項９に記載の画像形成装置の制御方法。
【請求項１１】
請求項１乃至７の何れか１項に記載の画像形成装置としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばアプリケーションをインストール可能な画像形成装置およびアプリケーションプログラム（以下「アプリ」と略称する）の展開領域の削除方法等に関するものである。
【背景技術】
【０００２】
近年、画像形成装置においては、ＪＡＶＡ（登録商標、以下省略）環境に代表されるようなアプリ動作環境が提供されている。ＪＡＶＡの持つプログラムの可搬性を利用して、拡張可能なアプリを提供する技術が提案されている。画像形成装置の機能やユーザビィリティの向上を図るために、上記ＪＡＶＡ環境などの環境下で動作するアプリを作成し、画像形成装置にインストールすることで、当該アプリにより所望の機能を実現できる。
【０００３】
アプリプラットフォームとしては、組み込み機器向けのＪＡＶＡアプリプラットフォームである、ＯＳＧｉ（Ｏｐｅｎ  Ｓｅｒｖｉｃｅｓ  Ｇａｔｅｗａｙ  Ｉｎｉｔｉａｔｉｖｅ）Ｓｅｒｖｉｃｅ  Ｐｌａｔｆｏｒｍ（以下、ＯＳＧｉ）がある。ＯＳＧｉでは、ソフトウェアモジュールの管理単位としてバンドルを定義しており、インストール／開始／停止／更新／アンインストールからなるライフサイクルを管理するための仕様を定義している。ここで、バンドルとは、ＪＡＶＡモジュールのことを指し、本明細書においては、アプリと同義である。そのため、以後アプリのことをバンドルと表記する。
【０００４】
このようなアプリプラットフォームでは、コピー、スキャン、プリント等の組み込み機能をバンドルが提供することができる。この画像形成装置において、バンドルに何かトラブルが発生した場合、サービスマンが記憶装置のバンドル展開領域、及びバンドルが保持しているデータを一旦削除することで、復旧を試みることが対処方法として考えられる。このとき、特許文献１に示すように、削除すべきファイルの選択を容易にして、削除する方法が提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平０９−０３４７５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１の方法は、削除を実行するサービスマンがどのファイルを削除すればいいかを判断する必要がでてくる。そこで、バンドル展開領域、及びバンドルが保持しているデータを一括、または、部分的に指定して削除する方法が考えられる。しかしながら、例えば、部分的に指定して削除を行った場合、バンドル展開領域におけるデータの保持の仕方によっては、必要なデータも削除されてしまうという問題がある。
【０００７】
本発明は、システムアプリケーション、一般アプリケーションを含む複数種類のアプリケーションを部分的に削除する場合であっても、一般アプリケーションに関連する情報が削除されることによる整合性が崩れてしまうことを防ぐ技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために本発明の画像形成装置は、システムアプリケーションを削除する際に削除対象外として扱うファイルあるいはディレクトリを特定する削除対象外情報を保持する保持手段と、前記システムアプリケーション、一般アプリケーションを含む複数種類のアプリケーションのうち、削除対象とするアプリケーションを指定する指定手段と、前記指定されたアプリケーションに関するファイルあるいはディレクトリのうち、前記削除対象外情報を用いて、削除対象外として扱うファイルあるいはディレクトリを除いた、前記アプリケーションに関するファイルあるいはディレクトリを削除する削除手段を有し、前記一般アプリケーションは、前記画像形成装置に追加されるアプリケーションであり、前記システムアプリケーションを削除する際に削除対象外として扱う削除対象外情報は、前記一般アプリケーションに関連する情報であることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、システムアプリケーション、一般アプリケーションを含む複数種類のアプリケーションを部分的に削除する場合であっても、一般アプリケーションに関連する情報が削除されることによる整合性が崩れてしまうことを防ぐことが可能となる。
【図面の簡単な説明】
【００１０】
【図１】画像形成装置のハードウェア構成図。
【図２】画像形成装置のソフトウェアモジュール階層図。
【図３】バンドルのインストールする流れを示したブロック図。
【図４】バンドルのインストールとインストール先のバンドル展開領域について示したブロック図。
【図５】削除時に必要なＵＩと削除ファイルについて説明した図。
【図６】削除タイプ番号の指定から、再起動後の削除処理までを示したシーケンス図。
【図７】画像形成装置起動時にバンドル展開領域を削除するときのフローチャート。
【図８】バンドル展開領域のデータを削除するときの削除対象例外リストを考慮して削除するときのフローチャート。
【図９】削除対象例外リストの例を示した図。
【図１０】削除対象例外パスリストの例を示した図。
【図１１】バンドル展開領域を削除してからシステムバンドルを再展開するまでのフローチャート。
【図１２】バンドル展開領域のシステムバンドルの再展開処理が実行されるときの削除対象例外ファイルの移管されるデータの動きを示したブロック図。
【図１３】削除対象例外ファイルの移管処理のフローチャート。
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための形態について図面を用いて説明する。
【００１２】
［実施例１］
＜画像形成装置のハードウェア構成＞
図１は、プリント機能やスキャン機能、ネットワーク通信機能などを備える画像形成装置１３０のハードウェア構成図である。
【００１３】
図１において、コントローラ１００は画像形成装置１３０のコントローラである。
【００１４】
コントローラ１００はスキャナ部１１３やプリンタ部１１４と電気的に接続され、一方でＬＡＮ１１６を介して外部デバイスと接続される。
【００１５】
ＣＰＵ１０１は、ＲＯＭ１０２に記憶された制御プログラム等に基づいて接続中の各種ハードウェアとのアクセスを統括的に制御し、またコントローラ内部で行われる各種処理についても統括的に制御する。
【００１６】
ＲＯＭ１０２は読み出し専用の不揮発記憶領域であり、画像形成装置１３０のブートプログラム、ファームウェアなどが格納されている。
【００１７】
ＲＡＭ１０３は、ＣＰＵ１０１が動作するためのシステムワークメモリであり、各種データを一時記憶するためのメモリである。このＲＡＭ１０３は、記憶した内容を電源ｏｆｆ後も保持可能なＦＲＡＭ（登録商標）およびＳＲＡＭ、電源ｏｆｆ後に記憶内容が消去されるＤＲＡＭなどにより構成される。
【００１８】
ＨＤＤ１０４は不揮発記憶領域であり、システムバンドルなどを格納する。図３で説明するインストールするバンドルすなわちアプリケーションを含むファームウェアは、ＨＤＤ１０４に格納される。
【００１９】
操作部Ｉ／Ｆ１０５は、システムバス１１９と操作部１１８とを接続するインタフェース部である。具体的には操作部１１８に表示するデータをシステムバス１１９から受取り表示すると共に、操作部１１８からの入力情報をシステムバス１１９へ出力する。画像形成装置１３０に対するユーザの指示や情報提示は、操作部１１８を介して行う。
【００２０】
ネットワークＩ／Ｆ１０６はＬＡＮ１１６、ＷＡＮ１１７及びシステムバス１１９に接続し、外部との情報の入出力を行う。
【００２１】
スキャナＩ／Ｆ１０８は、スキャナ部１１３から受取った画像データに対して、補正、加工、及び編集を行う。
【００２２】
画像形成部１０９は、画像データの方向変換、画像圧縮、伸張などを行う。
【００２３】
プリンタＩ／Ｆ１１０は、画像形成部１０９から送られた画像データを受取り、画像形成後にプリンタ部１１４にて印刷する。
【００２４】
＜画像形成装置のソフトウェアモジュール＞
図２は、本発明に関係する画像形成装置１３０のソフトウェアモジュール階層図である。なお図２以降に示す各ソフトウェアはＲＯＭ１０２、もしくは、ＨＤＤ１０４に保存され、ＣＰＵ１０１にて実行される。また、実行時に使用する各種情報はＲＡＭ１０３もしくはＨＤＤ１０４に保持してソフトウェア機能間での各種情報のやりとりを行う。さらに外部機器との通信は、ネットワークＩ／Ｆ１０６を用いて通信を行う。
【００２５】
次に各ソフトウェアの説明をする。ソフトウェアは、まずオペレーティングシステム（ＯＳ）プラットフォーム２０１を含む。
【００２６】
ＵＩ２０２はユーザインタフェースモジュールであり、オペレータが画像形成装置１３０に対する各種操作・設定を行う際に、装置とユーザ操作との仲介を行うモジュールである。このモジュールは、オペレータの操作に従い、後述の各種モジュールに入力情報を転送して処理の依頼、或いはデータの設定変更等を行う。
【００２７】
設定データベース２０４は、画像形成装置１３０の設定データを取り扱うデータベースである。後で述べる削除タイプもこのデータベースに値が保持される。また、図９で述べる削除対象例外リストもここに保持される。このデータを管理しているのが、設定データ管理部２０３であり、各バンドルは、データの値について、この設定データ管理部２０３に対して問い合わせることで取得可能である。
【００２８】
削除指定ファイル生成部２０５は、メニューから削除が実行されたときに削除対象を示す削除指定ファイルを生成するモジュールである。
【００２９】
再起動制御部２０６は、再起動指令があったときに、それに対応して画像形成装置１３０の再起動を行うモジュールである。
【００３０】
次に、ＪＡＶＡ側の構成について述べる。
【００３１】
ＪＡＶＡ側のソフトウェアプラットフォームは、ＪａｖａＶＭ２０７のランタイム環境として構成されており、インタプリタとしてのＪａｖａＶＭ２０７、ライブラリ２０８、フレームワーク群２０９で構成される。ライブラリ２０８は、標準のＡＰＩライブラリを含んで構成される。フレームワーク群２０９は、ＯＳＧｉ２１０を含んで構成され、このＯＳＧｉ２１０は、単一のＪａｖａＶＭ２０７に複数のバンドルを動作させる。更に、ＯＳＧｉ拡張部２１１は、このＯＳＧｉ２１０の仕様を満たす範囲で必要に応じて機能を拡張可能であることを示す。このＯＳＧｉ２１０、及びＯＳＧｉ拡張部２１１は、バンドルのライフサイクルの管理やバンドル間通信機能などを提供する。
【００３２】
このＯＳＧｉ２１０上には、複数のシステムバンドル群２１２がある。これらは、初回起動時に展開先フォルダがないとき、もしくは、アップデートが必要なことを示すアップデートフラグが所定の場所にあるときに、ＯＳＧｉ拡張部２１１によって、格納されているファームウェアからインストールされる。このときのインストールについては、図４で示す。
【００３３】
システムバンドル群２１２としては、複数のバンドルを管理し、新たなバンドルの追加、更新、削除をするためのバンドル管理サービス２１４がある。バンドル管理サービス２１４は、インストール制御サービス２１３を利用して、バンドルの追加、更新、削除を行う。
【００３４】
システムバンドル群２１２の中には、画像形成装置１３０の認証機能を担う認証バンドル２１５がある。認証バンドル２１５は、ユーザが画像形成装置に認証中に任意のバンドルから任意のタイミングで認証情報の問い合わせがあるため、停止できない特性を持つバンドルである。仮に認証バンドルが停止していた場合、認証情報の取得ができなくなるため、認証情報に紐づくデータを利用しているようなバンドルがあると、データの取得に失敗し動作に支障が生じる。ここで、認証情報とは、現在、画像形成装置１３０に認証しているユーザの認証名やメールアドレスなどの情報を指す。認証バンドルは複数インストールされていてもかまわない。しかしながら、前記のように停止できない特性を持つため、画像形成装置１３０が起動中において、この認証バンドル２１５は、必ず１つだけ動作するものとなる。どの認証バンドルが動作しているかは、ＯＳＧｉ拡張部２１１の設定として、保持される。
【００３５】
一方で、後からインストールするタイプの後入れバンドル群２１７がある。バンドルのインストールについては、図３で示す。後入れバンドル群２１７として、後入れバンドル２１９は、画像形成装置１３０において各種処理をユーザに提供する追加的なアプリケーションである。例えば、画像の加工や圧縮バンドル、印刷制限などの部門管理を行うバンドルなどがある。
【００３６】
各種機能を実現する後入れバンドル２１９は、バンドル管理サービス２１４の管理下で動作する。バンドル管理サービス２１４は、管理下に追加されたバンドルのバージョンを含むバンドル情報、ライセンス情報などを保持している。
【００３７】
＜バンドルのインストール＞
図３は、ユーザが、ＰＣ３００から画像形成装置１３０へ、後入れバンドル２１９をインストールする流れを示したブロック図である。
【００３８】
ＰＣ３００のＷＥＢブラウザにアプリケーションインストールＵＩ（ユーザインタフェース）３０１を表示し、このアプリケーションインストールＵＩ３０１からインストールしたいバンドルを指定し、インストールを行う。アプリケーションインストールＵＩ３０１で指定されたバンドルを受信したバンドル管理サービス２１４は、それをインストール制御サービス２１３に渡す。バンドルファイルを受信したインストール制御サービス２１３は、ＯＳＧｉ２１０にインストールを依頼し、ＯＳＧｉ２１０は指定されたバンドルのインストールを行う。インストールされたバンドルは、バンドル管理サービス２１４によって管理される。
【００３９】
＜バンドル展開領域の例＞
図４は、画像形成装置１３０における、ＯＳＧｉ拡張部２１１によるファームウェアからバンドル展開領域４０２へのシステムバンドル群２１２のインストールの流れと展開後のバンドル展開領域について示したブロック図である。
【００４０】
バンドル展開領域４０２には、展開先フォルダ４０３が存在する。ただし、この展開先フォルダ４０３は、通常初回起動時、または、展開先フォルダ４０３が削除された直後の起動時にＯＳＧｉ拡張部２１１によって作成される。
【００４１】
ＯＳＧｉ拡張部２１１は、バンドルの展開先フォルダ４０３が存在しないことを検知した場合、あるいは、システムバンドル群の展開先フォルダ４０４が存在しないことを検知した場合に、次の処理を行う。すなわち、ファームウェア４０１に格納されているシステムバンドル群２１２をバンドル展開領域４０２にある展開先フォルダ４０３にインストールを行う。
【００４２】
次に、展開先フォルダ４０３であるＡｐｐＦｏｌｄｅｒについて説明する。このフォルダには、ファームウェア４０１に配置されているシステムバンドル群２１２が展開されたシステムバンドル群の展開先フォルダ４０４と、後入れバンドル群２１７が展開された後入れバンドル群の展開先フォルダ４１０が存在する。
【００４３】
ＯＳＧｉ拡張部２１１は、インストールされたバンドルごとにフォルダを作成する。以下、このフォルダのことをバンドルディレクトリと呼ぶ。このバンドルディレクトリは、インストール日時などから生成したユニークな名前を付けることが可能である。この図の場合、システムバンドルＡが、ｘｘｘ４０５というバンドルディレクトリにインストールされていることを示す。バンドルディレクトリには、インストールされたｊａｒ４０６がａｐｐ０．ｊａｒという名前で配置される。更に、各バンドルのデータを格納するためのｄａｔａフォルダ４０７が配置され、この場合システムバンドルＡの設定データｓｅｔｔｉｎｇ．ｔｘｔファイルが格納されている。
【００４４】
また、システムバンドルＢが、ｙｙｙ４０８というバンドルディレクトリにインストールされていることを示す。システムバンドルＡと同様にインストールされたｊａｒがａｐｐ０．ｊａｒという名前で配置される。更に、システムバンドルＢが保持するバンドルのライセンスデータがｄａｔａフォルダ４０９以下のｌｉｃｅｎｓｅｓフォルダ以下に格納される。この場合、後入れバンドルＡのライセンスであるｌｉｃｅｎｓｅＡファイルが保持されている。
【００４５】
一方で、図３で示した方法により、ユーザが後からインストールする後入れバンドルも、後入れバンドル群の展開先フォルダ４１０で示すように、システムバンドル群の展開先フォルダ４０４と同様のディレクトリ構成でインストールされる。
【００４６】
展開先フォルダ４０３には、システムバンドル群の展開先フォルダ４０４と、後入れバンドル群の展開先フォルダ４１０以外に、これらのインストールした情報を管理するための管理データ４１２がある。この管理データとしては、バンドルとバンドルディレクトリの対応付けを管理するテーブル４５０のデータを保持している。これにより、バンドルがわかれば、それに対応したバンドルディレクトを知ることが可能となる。
【００４７】
また、図２で説明した、現在どの認証バンドルが動作しているかの設定情報も保持している。
【００４８】
バンドル展開領域の一部分を指定する分け方はいろいろな視点で分ける方法が考えられるが、余り細かい指定ができるようになったとしても、サービスマンがどれを指定すればいいかの判断が難しくなってくる為、使い勝手がよくない。サービスにおける問題解決の視点で考えた場合は、サービスマンが認識できるわかりやすい単位で、かつ、それにより問題が解決する可能性が高いのが望ましい。
【００４９】
ここでは、バンドル展開領域のうち、システムバンドル群の展開先フォルダ４０４と、後入れバンドル群の展開先フォルダ４１０とで分ける方法とする。また、各バンドルディレクトリ全てを削除するか、ｄａｔａフォルダ４０７のみを削除するかの指定を選択可能なものとする。
【００５０】
このようにバンドルは、当該バンドルのフォルダ（ディレクトリ）にインストールされる。インストールされるファイルにはｊａｒファイルおよびｄａｔａフォルダ（データフォルダ）が含まれ、これらをまとめてバンドル関連ファイルと呼ぶ。なおｊａｒファイルとは、Ｊａｖａ（登録商標）バイトコード（すなわちプログラムの実体）およびそれが使用するリソースをまとめてアーカイブしたファイルであり、バンドルすなわちアプリケーションのプログラムそのものということもできる。本実施例では、バンドル展開領域、すわなち、アプリケーション保持部に、複数種類のアプリケーションを保持する。
【００５１】
図５（ａ）は、バンドル展開領域の中で削除したい一部分の領域を指定するＵＩを説明した図である。このＵＩ５００は、操作部１８８に表示される。
【００５２】
サービスマンメニューは、サービスマンがユーザサポートをするときに必要な機能一覧を表示したメニューである。ユーザは、バンドル展開領域を削除しようとした場合、以下の操作を行う。
【００５３】
バンドル展開領域の中で削除したい一部分の領域を示す削除タイプ５０１を選択後、削除タイプ番号５０２を入力し、ＯＫボタン５０４を押下する。
【００５４】
この例では、削除タイプ５０１に１を指定した場合、システムバンドルのｄａｔａフォルダ４０７を削除することを示すものとする。それ以外でも、２を指定した場合は、後入れバンドルのｄａｔａフォルダ、３を指定した場合は、システムバンドルのバンドルディレクトリ、４を選択した場合は、後入れバンドルのバンドルディレクトリを削除することができるものとする。
【００５５】
その削除タイプを指定後、バンドル展開領域削除５０３を選択し、ＯＫボタン５０４を押下する。この後、画像形成装置１３０を再起動すると、バンドル展開領域４０２内の削除タイプで指定された対象ファイルが削除される。
【００５６】
図５（ｂ）は、図５（ａ）で指定した削除タイプの情報を、ＯＳＧｉ拡張部２１１に伝達する為の削除指定ファイル５５０の記載例を示した図である。キー文字列であるＴａｒｇｅｔＡｐｐ５５１には、削除対象バンドルを指定する。キー文字列であるＴａｒｇｅｔＦｉｌｅ５５２には、削除対象バンドルが保持するファイルの内、どのファイルを削除するかを示す内容を指定する。
【００５７】
この例では、ＴａｒｇｅｔＡｐｐ５５１にｓｙｓｔｅｍ、ＴａｒｇｅｔＦｉｌｅ５５２にｄａｔａとなり、システムバンドルのｄａｔａフォルダ４０７を削除することを示すものとする。
【００５８】
図６は、バンドル展開領域の一部分を指定し、再起動後の削除処理までを示したシーケンス図である。
【００５９】
Ｓ６００において、ユーザが、ＵＩ５００から削除タイプ５０１を選択した状態で、削除タイプ番号５０２を入力しＯＫボタンを押下する。Ｓ６０１において、ＵＩは、設定データ管理部２０３に入力された削除タイプ番号を設定データベース２０４に格納するように依頼する。
【００６０】
Ｓ６０２において、ユーザが、バンドル展開領域削除５０３を選択した状態で、ＯＫボタンを押下する。Ｓ６０３において、ＵＩは、削除指定ファイル生成部２０５に展開領域削除の実行指示を行う。Ｓ６０４において、削除指定ファイル生成部２０５は、設定データ管理部２０３に指定されている削除タイプの値（削除タイプ番号）を取得しにいく。Ｓ６０５において、削除指定ファイル生成部２０５は、取得した削除タイプの値を基に、削除指定ファイル５５０を生成する。
【００６１】
Ｓ６０６において、ユーザが、画像形成装置１３０を再起動する。Ｓ６０７において、ＯＳＧｉ拡張部２１１は、削除指定ファイル５５０を参照する。Ｓ６０８において、ＯＳＧｉ拡張部２１１は、削除指定ファイル５５０による指定に従ってバンドル展開領域を削除する。このＳ６０７、及び、Ｓ６０８におけるＯＳＧｉ拡張部２１１のフローは、図７で示す。
【００６２】
＜ＯＳＧｉ拡張部によるバンドル展開領域の削除フロー＞
図７は、ＯＳＧｉ拡張部２１１が、起動時にバンドル展開領域を削除するときのフローチャートである。
【００６３】
Ｓ７００において、バンドル展開領域削除処理が開始される。Ｓ７０１において、ＯＳＧｉ拡張部２１１は、削除指定ファイル５５０が、存在するかどうかをチェックする。削除指定ファイル５５０が存在しなければ、Ｓ７１１に進み、処理を終了する。削除指定ファイル５５０が存在していれば、Ｓ７０２に進む。
【００６４】
Ｓ７０２において、ＯＳＧｉ拡張部２１１は、削除指定ファイル５５０からバンドル指定（以下、ＴａｒｇｅｔＡｐｐということもある）５５１の値を読みとり、メモリに値を確保して、Ｓ７０３に進む。Ｓ７０３において、ＯＳＧｉ拡張部２１１は、ＴａｒｇｅｔＦｉｌｅ５５２の値を読みとり、メモリに値を確保して、Ｓ７０４に進む。Ｓ７０４において、ＯＳＧｉ拡張部２１１は、バンドル展開領域にインストールされているバンドルリストをバンドル管理サービス２１４から取得し、Ｓ７０５に進む。
【００６５】
Ｓ７０５において、バンドルリストの最初のバンドルのバンドルタイプとＳ７０２で読み取ったＴａｒｇｅｔＡｐｐ５５１が一致するかどうかをチェックする。バンドルタイプとは、後入れバンドル（ｎｏｒｍａｌ）、システムバンドル（ｓｙｓｔｅｍ）のいずれかである。ＴａｒｇｅｔＡｐｐ５５１でｎｏｒｍａｌが指定されている場合は、バンドルタイプが後入れバンドルであれば一致とみなされる。ＴａｒｇｅｔＡｐｐ５５１でｓｙｓｔｅｍが指定されている場合は、バンドルタイプがシステムバンドルであれば一致とみなされる。Ｓ７０５において、いずれとも一致しなければ、Ｓ７１０に進む。Ｓ７０５において、一致した場合、Ｓ７０６に進む。Ｓ７０６において、Ｓ７０３において読み取ったＴａｒｇｅｔＦｉｌｅ５５２の値が何かを判定する。Ｓ７０６において、ＴａｒｇｅｔＦｉｌｅ５５２の値がａｌｌであった場合、Ｓ７０７に進み、削除対象をそのバンドルのバンドルディレクトリとして、Ｓ７０９の削除対象例外を考慮した削除処理に進む。Ｓ７０６において、ＴａｒｇｅｔＦｉｌｅ５５２の値がｄａｔａであった場合、Ｓ７０８に進み、削除対象をそのバンドルのバンドルディレクトリのｄａｔａフォルダ４０７として、Ｓ７０９の削除対象例外を考慮した削除処理に進む。Ｓ７０９における、削除対象例外を考慮した削除処理は、図８で説明する。Ｓ７１０において、バンドルリストの最後のバンドルかどうかを判定し、最後でなければ、Ｓ７０５に戻り、処理を繰り返す。Ｓ７１０において、バンドルリストの最後のバンドルであると判定された場合、Ｓ７１１に進み、処理を終了する。
【００６６】
図８は、バンドル展開領域のデータを削除するときに、この削除対象例外リストにある削除対象例外ファイル（ディレクトリ）を考慮して削除するときのフローチャートである。
【００６７】
ＯＳＧｉ拡張部２１１は、削除対象例外リストを参照することが可能である。削除対象例外リストは、バンドル展開領域を削除するときに、部分的にある領域だけが削除されることでシステム全体の整合性に影響を与えてしまう可能性のあるファイル、及び、ディレクトリをリスト化している。削除対象例外リストは、設定データベース２０４で保持されている。
【００６８】
図９で、この削除対象例外リストについて説明する。図９、１０は、削除対象外として扱うファイルを特定する情報である。
【００６９】
削除対象例外バンドル９００は、削除対象外にしたいファイル／ディレクトリが、どのバンドルのデータに属するかを示す。削除例外ファイル／ディレクトリ９０１は、各バンドルのバンドルディレクトリからの相対パスで、削除対象外にしたいファイル／ディレクトリのパスが記されている。この例で、削除対象例外バンドル９００がシステムバンドルＡ、削除例外ファイル／ディレクトリ９０１が．／ｄａｔａ／ｓｅｔｔｉｎｇ．ｔｘｔとなっているのは、
「システムバンドルＡのバンドルディレクトリ」／ｄａｔａ／ｓｅｔｔｉｎｇ．ｔｘｔ
のパスを持つファイルを示す。
【００７０】
また、削除対象例外バンドル９００がシステムバンドルＢ、削除例外ファイル／ディレクトリ９０１が．／ｄａｔａ／ｌｉｃｅｎｓｅｓとなっているのは、
「システムバンドルＢのバンドルディレクトリ」／ｄａｔａ／ｌｉｃｅｎｓｅｓのパスを持つディレクトリを示す。
【００７１】
Ｓ８００において、削除対象例外を考慮した削除処理を開始する。Ｓ８０１において、削除対象のファイル／ディレクトリリストをＯＳのファイルシステムから取得する。Ｓ７０７からＳ８００にくるときは、バンドルディレクトリのファイル、及びディレクトリであり、Ｓ７０８からＳ８００にくるときは、バンドルディレクトリのｄａｔａフォルダのファイル、及びディレクトリとなる。Ｓ８０２において、Ｓ８０１で取得したファイル／ディレクトリリストの最初がファイルかディレクトリかを判断する。ファイルと判断した場合、Ｓ８０３に進む。Ｓ８０３において、削除対象例外リストにそのファイルが含まれているかどうかを判断する。含まれていないと判断した場合、Ｓ８０４に進む。Ｓ８０４において、そのファイルを削除する。一方、Ｓ８０３において、含まれていると判断した場合、Ｓ８０５に進み、そのファイルは削除せずに、代わりにＯＳＧｉ拡張部２１１はそのファイルのパスを図１０で示すような削除対象例外パスリストとして記憶しておく。
【００７２】
Ｓ８０２において、ディレクトリと判断した場合、Ｓ８０６に進む。Ｓ８０６において、削除対象例外リストにそのディレクトリが含まれているかどうかを判断する。含まれていないと判断した場合、Ｓ８０７に進む。Ｓ８０７において、そのディレクトリを削除対象とするために、Ｓ８００を再帰的に呼び出す。この再帰呼び出し処理が終了した後に、Ｓ８０８に進む。Ｓ８０８において、そのディレクトリを削除し、Ｓ８０９に進む。一方、Ｓ８０６において、含まれていると判断した場合、Ｓ８０５に進み、そのディレクトリは削除せずに、代わりにＯＳＧｉ拡張部２１１はそのディレクトリのパスを図１０で示すような削除対象例外パスリストとして記憶しておく。
【００７３】
Ｓ８０８において、ファイル／ディレクトリリストの最後かどうかを判断する。Ｓ８０８において、最後でないと判断した場合、Ｓ８０２に戻り、再度処理を進める。一方、Ｓ８０８において、最後と判断した場合、Ｓ８０９に進み、処理を終了する。
【００７４】
図１０は、Ｓ８０５で生成する削除対象例外パスリストの状態を示す。
【００７５】
削除対象例外バンドル１０００は、削除対象外にしたファイル／ディレクトリが、どのバンドルのデータに属するかを示す。削除例外パス１００１は、削除対象外にしたファイル／ディレクトリの絶対パスが記されている。この例では、図９で示した削除対象例外リストに従って削除しなかったファイルとディレクトリの例を示している。ここで、「システムバンドルＡのバンドルディレクトリ」がｘｘｘだったので、削除例外パス１００１は、ｘｘｘ／ｄａｔａ／ｓｅｔｔｉｎｇ．ｔｘｔとなる。一方、「システムバンドルＢのバンドルディレクトリ」がｙｙｙだったので、削除例外パス１００１は、ｙｙｙ／ｄａｔａ／ｌｉｃｅｎｓｅｓとなる。
【００７６】
以上、実施例１で示した方法により、具体的には以下に示すような効果を得ることができる。
【００７７】
＜効果事例１＞
システムバンドルとして、ＰＣ上にバンドル管理情報を表示するサーブレットバンドルＳがあるとする。このサーブレットバンドルＳの設定データは、システムバンドルであるサーブレットバンドルのｄａｔａフォルダに配置されている。サーブレットバンドルＳにアクセスする方法は、２通りの方法があり、デフォルトでは、アクセス方法Ａがオン、アクセス方法Ｂがオフとなっている。この設定を変更すると、サーブレットバンドルＳの設定データが更新される。デフォルトでは、設定データは存在せず、その場合は、デフォルトの動きをする。サーブレットバンドルＳにアクセスするときには、認証バンドルとの組み合わせが重要となり、認証バンドルＤが動作している場合は、アクセス方法Ｂがオンになっている必要がある。
【００７８】
ここで、バンドル管理領域の内、システムバンドル領域のファイルのみを削除するケースを考える。システムバンドルであるサーブレットバンドルＳの設定データは削除されてしまうため、設定がデフォルトに戻ってしまう。一方、認証バンドルの設定情報は、管理データ４１２が保持しているため、削除されず、認証バンドルの動作情報は変わらない。この結果、認証バンドルＤは動作したままであるが、アクセス方法Ｂがデフォルトのオフに戻ってしまうため、アクセスができないことになる。
【００７９】
実施例１によれば、削除対象例外リストにこのサーブレットバンドルＳの設定データを登録しておくことで、ある一部分のファイルが削除されることで、残った設定との整合性が崩れるような状況を防ぐことが可能となる。
【００８０】
＜効果事例２＞
システムバンドルとして、バンドル管理サービスを考える。バンドル管理サービスは、後入れバンドルのインストール時に使用したライセンス情報を、システムバンドルのバンドル管理サービスのｄａｔａフォルダのライセンスディレクトリで管理している。後入れバンドルの各バンドルディレクトリではなく、自身（システムバンドルのバンドル管理サービス）のｄａｔａフォルダで管理しているのは、一括で管理でき、扱いやすいためである。
【００８１】
ここで、バンドル管理領域の内、システムバンドル領域のファイルのみを削除するケースを考える。システムバンドルであるバンドル管理サービスのライセンスディレクトリは削除され、後入れバンドルは削除されない。つまり、後入れバンドルが存在するのに、それに対応したライセンスがないという不整合状態となり、その後の処理に支障をきたす可能性がある。実施例１によれば、削除対象例外リストにこのバンドル管理サービスのライセンスディレクトリを登録しておくことで、ある一部分のディレクトリが削除されることで、残ったバンドルとの整合性が崩れるような状況を防ぐことが可能となる。
【００８２】
［実施例２］
実施例２では、実施例１で示した削除されなかったシステムバンドルの削除対象例外のファイルやディレクトリを、その後のシステムバンドルの再展開まで考慮したときについて述べる。システムバンドルのバンドルディレクトリが削除されるケースにおいては、その後、システムバンドルの再展開処理が必要となる。システムバンドルのバンドルディレクトリが削除されるというのは、削除指定ファイルにおいて、ＴａｒｇｅｔＡｐｐ５５１でｓｙｓｔｅｍ、及び、ＴａｒｇｅｔＦｉｌｅ５５２でａｌｌが指定された場合である。
【００８３】
図１１は、画像形成装置の起動処理時における、ＯＳＧｉ拡張部２１１のフローチャートを示す。
【００８４】
Ｓ１１００において、起動処理を開始する。Ｓ１１０１において、バンドル展開領域の削除処理が行われ、Ｓ１１０２に進む。Ｓ１１０１の処理は、図７で示したフローである。その後、Ｓ１１０２において、システムバンドルのバンドルディレクトリが削除されたかにより、システムバンドルの再展開処理が必要かどうかを判断する。Ｓ１１０２において、再展開処理が必要と判断された場合は、Ｓ１１０３に進む。Ｓ１１０３において、システムバンドルの再展開処理を行う。このときの、バンドルディレクトリの動きについては、図１２（ａ）で説明する。その後、Ｓ１１０４において、削除対象例外ファイル（ディレクトリの移管処理が行われ、移管処理が終了するとＳ１１０５に進む。一方、Ｓ１１０２において、不要と判断された場合、Ｓ１１０５に進む。Ｓ１１０５において、各バンドルの開始処理が行われ、Ｓ１１０６に進む。Ｓ１１０６において、起動処理が終了する。
【００８５】
図１２は、バンドル展開領域のシステムバンドルの再展開処理が実行されるときの展開領域の動きを示したブロック図である。
【００８６】
図１２（ａ）は、システムバンドルのバンドルディレクトリへの展開時の扱いについて説明したものである。１２００において、システムバンドルＡのバンドルディレクトリがｘｘｘ、システムバンドルＢのバンドルディレクトリがｙｙｙであったとする。その後、一旦これらのバンドルディレクトリが削除された後に再展開された場合、１２０１で示すように、同じシステムバンドルＡのバンドルディレクトリはｚｚｚ、システムバンドルＢのバンドルディレクトリがｗｗｗとなる。これは、図４で説明したように、インストール日時などから生成したユニークな名前を付けるためである。このような処理にする理由としては、バンドルディレクトリへの展開時に強制シャットダウンなどによる処理が中断されゴミディレクトリが残る場合がある。そのため、再展開が必要な際は、常にバンドルディレクトリを新規に作成したほうがよいと考えられるためである。
【００８７】
図１２（ｂ）は、このような再展開処理の場合の削除対象例外ファイルのあるべき動きについて説明したものである。
【００８８】
１２０２において、システムバンドルＡのバンドルディレクトリｘｘｘのｄａｔａフォルダに削除対象例外ファイル１２５０（ｓｅｔｔｉｎｇ．ｔｘｔ）があったとする。バンドル展開領域が削除された場合、実施例１で示したようにシステムバンドルのバンドルディレクトリが削除対象だったとしても、このファイルは削除されない為、１２０３で示すようにファイルは残る。その後、システムバンドルが再展開されると、１２０４で示すように、システムバンドルＡのバンドルディレクトリはｚｚｚとなる。その後、１２０５において、残っていた削除対象例外ファイル１２５０を、システムバンドルＡの新たなバンドルディレクトリｚｚｚのｄａｔａフォルダ１２５１にコピーする。その後、１２０６において、不要となった削除対象例外ファイル１２５０を含むｘｘｘのフォルダを全て削除する。こうして、削除対象例外ファイルが、コピーされることにより、正しく利用を続けられる。
【００８９】
図１３は、図１２（ｂ）で示した削除対象例外ファイルの移管処理のフローチャートである。
【００９０】
Ｓ１３００において、削除対象例外ファイル（ディレクトリ）移管処理を開始する。Ｓ１３０１において、ＯＳＧｉ拡張部２１１がメモリ上に保持している図１０で示した削除対象例外パスリストによってループ処理を開始する。Ｓ１３０２において、削除対象例外パスリストが１つ以上あるかを判断する。１つもないと判断した場合は、Ｓ１３０８に進んで、処理を終了する。１つ以上あると判断した場合は、Ｓ１３０３に進む。Ｓ１３０３において、削除対象例外バンドル１０００の再展開後のバンドルディレクトリのパスを取得し、Ｓ１３０４に進む。図１０の例で説明すると、システムバンドルＡの現在のバンドルディレクトリを取得することになる。図１２（ｂ）で説明したようにシステムバンドルＡの現在のバンドルディレクトリは、ｚｚｚとなる。Ｓ１３０４において、削除例外パス１００１のバンドルディレクトリのパスと再展開後のバンドルディレクトリのパスが異なるかを判断する。図１０の例で説明すると、削除例外パス１００１は、ｘｘｘ／ｄａｔａ／ｓｅｔｔｉｎｇ．ｔｘｔとなるため、この場合、バンドルディレクトリのパスは、ｘｘｘとなる。よって、Ｓ１３０３で取得したｚｚｚと異なるため、Ｓ１３０５に進む。一致する場合は、Ｓ１３０６に進む。Ｓ１３０６において、削除対象例外パスリストの最後かどうかを判断し、まだリストに残っている場合は、Ｓ１３０３に戻り処理を繰り返す。全ての削除対象例外パスリストに対して処理を行った場合、Ｓ１３０７に進む。Ｓ１３０７において、削除対象例外パスリストの削除例外パスのファイル（ディレクトリ）をバンドルディレクトリごと削除し、Ｓ１３０８に進む。図１０の例で説明すると、１つ目の例では、ｘｘｘフォルダを、２つ目の例では、ｙｙｙのフォルダを削除することになる。Ｓ１３０８において、移管処理を終了する。
【００９１】
以上、実施例２で示した方法により、再展開後でバンドルディレクトリが新規に作成されるようなケースであっても、削除対象例外として残したファイル／ディレクトリを、継続して使い続けることが可能となる。
【００９２】
以上、説明した実施例によれば、システム全体に影響を与えてしまうようなファイル、ディレクトリを定義した、削除対象例外リストを用いることで、部分的なファイル削除時に、必要なデータを削除されることを防ぐことが可能となる。
【００９３】
［その他の実施例］
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
0006570364.tif 000002
【図２】
0006570364.tif 000003
【図３】
0006570364.tif 000004
【図４】
0006570364.tif 000005
【図５】
0006570364.tif 000006
【図６】
0006570364.tif 000007
【図７】
0006570364.tif 000008
【図８】
0006570364.tif 000009
【図９】
0006570364.tif 000010
【図１０】
0006570364.tif 000011
【図１１】
0006570364.tif 000012
【図１２】
0006570364.tif 000013
【図１３】
0006570364.tif 000014