このような新規な複合機では、アプリケーションと、ハードウェア資源にアクセスするような開発が難しい処理を行うコントロールサービスとを別個に設けているため、複合機の出荷後にユーザもしくは第三者であるサードベンダが新規な外部アプリケーションを開発して複合機に搭載可能な構成となっている。このため、複合機には、その出荷時に搭載されるコピー、プリンタ、スキャナ、ファクシミリなどの画像形成処理にかかる既存アプリケーションとは別に、このような外部アプリケーションをインストールする必要性が生じてくる。
しかしながら、一般的に、複合機の内蔵メモリに、後から外部アプリケーションを組み込むことは困難であり、また内蔵メモリの容量にも制限がある。このため、複合機の出荷後に顧客先で外部アプリケーションを追加することができないという、出荷後に外部アプリケーションを搭載することを想定していない従来の複合機では問題にならなかった新規な課題が生じてくる。
この発明は上記に鑑みてなされたもので、外部アプリケーションのインストールを可能とし、多種多様な機能を追加することができる画像形成装置およびアプリケーションインストール方法を得ることを目的とする。
上記目的を達成するため、請求項1にかかる発明は、画像形成処理にかかるユーザサービスを提供する画像形成装置であって、前記ユーザサービスを提供する外部アプリケーションを格納可能な大容量記憶装置と、画像形成装置に挿脱可能で前記外部アプリケーションをインストール可能な形式で格納する外部アプリ記憶媒体から前記外部アプリケーションを読み込む記憶媒体インタフェース手段と、前記外部アプリケーションを、前記外部アプリ記憶媒体から前記大容量記憶装置にインストールするインストール手段と、を備えたことを特徴とする。
この請求項1にかかる発明によれば、インストール手段によって、外部アプリケーションを、外部アプリ記憶媒体から大容量記憶装置にインストールすることで、大容量記憶装置を外部アプリケーションの保存領域として利用してインストールすることができ、画像形成装置の出荷後に大容量記憶装置を利用して外部アプリケーションを任意に追加することができ、画像形成装置に多種多様な機能を搭載することが可能となる。
ここで、本発明における外部アプリケーションは、画像形成処理にかかるユーザサービスを提供するものであれば良く、例えば、予め搭載されているアプリケーションとは別個に生成されたアプリションも含まれる。また、このような外部アプリケーションとしては、画像形成装置の提供者の他、画像形成装置の顧客、サードベンダなどの第三者で開発したアプリケーションが含まれる。
また、本発明における大容量記憶装置は、インストール処理前に、物理的欠陥の検査や、ファイルシステムの整合性など故障の有無を診断するように構成してもよい。この場合には、大容量記憶媒体を、その信頼性を維持した上で、外部アプリケーションの保存領域として利用することができるという利点がある。
また、請求項2にかかる発明は、請求項1に記載の画像形成装置において、前記外部アプリ記憶媒体には、さらに外部アプリケーションに関する詳細情報を設定したアプリ設定情報が記憶されており、前記インストール手段は、前記アプリ設定情報に基づいて前記外部アプリケーションをインストールすることを特徴とする。
この請求項2にかかる発明によれば、インストール手段によって、外部アプリケーションに関する詳細情報を設定したアプリ設定情報に基づいて外部アプリケーションをインストールすることで、インストール処理中にインストール対象の外部アプリケーションの詳細な情報を利用者に知らせることができ、インストールを行う利用者の便宜が図られる。
また、請求項3にかかる発明は、請求項1または2に記載の画像形成装置において、前記外部アプリケーションごとに起動の可否を設定した起動可否情報を記憶する記憶手段をさらに備え、前記インストール手段は、インストール時にインストール対象の前記外部アプリケーションについての起動可否情報を設定することを特徴とする。
この請求項3にかかる発明によれば、インストール手段によって、インストール時にインストール対象の外部アプリケーションについての起動可否情報を設定することで、必要に応じて大容量記憶装置の外部アプリケーションの起動に制限を与えることででき、画像形成装置のセキュリティを強化することができる。
また、この請求項3にかかる発明によれば、外部アプリケーションの起動に制限を与えることができるので、大容量記憶装置にインストールされた一部(または全部)の外部アプリケーションに障害があり画像形成装置の動作に支障が生じる場合に外部アプリケーションの起動を一括的に制限することができる。このため、障害が発生した場合、出荷時に予めインストールされている基本的なアプリケーションのみを起動させて、外部アプリケーション障害時の画像形成装置の安定性を維持することができる。
また、請求項4にかかる発明は、請求項3に記載の画像形成装置において、前記インストール手段は、前記起動可否情報の指定を入力させる設定画面を、操作入力および操作表示を行うオペレーションパネルに表示して、前記設定画面からの入力に基づいて前記起動可否情報を設定することを特徴とする。
この請求項4にかかる発明によれば、インストール手段によって、起動可否情報の指定を入力させる設定画面を、操作入力および操作表示を行うオペレーションパネルに表示して、設定画面からの入力に基づいて起動可否情報を設定することで、大容量記憶装置からの外部アプリケーションの起動の可否を画像形成装置の利用者がインストール時に自在に設定することができ、外部アプリケーションの利用に対して利用者の便宜を図ることができる。
また、請求項5にかかる発明は、請求項1〜4のいずれか一つに記載の画像形成装置において、前記インストール手段は、インストール時に前記外部アプリケーションのライセンスの有効性を判断し、前記ライセンスが有効である場合に、前記外部アプリケーションのインストールを続行することを特徴とする。
この請求項5にかかる発明によれば、インストール手段によって、インストール時に外部アプリケーションのライセンスの有効性を判断し、ライセンスが有効である場合に外部アプリケーションのインストールを続行することで、画像形成装置に対する外部アプリケーションの不正なインストールを防止することができる。
また、請求項6にかかる発明は、請求項1〜5のいずれか一つに記載の画像形成装置において、前記インストール手段は、前記大容量記憶媒体に格納された前記外部アプリケーションのアンインストールを行うアンインストール手段を備えたことを特徴とする。
この請求項6にかかる発明によれば、アンインストール手段によって、大容量記憶媒体に格納された外部アプリケーションのアンインストールを行うことで、大容量記憶媒体にインストールされた外部アプリケーションのうち、不要となった外部アプリケーションを削除することができ、大容量記憶媒体の資源の節約を図ることができる。
また、請求項7にかかる発明は、請求項6に記載の画像形成装置において、前記アンインストール手段は、前記外部アプリケーションのアンインストール時に、前記外部アプリケーションのインストール時に使用した前記外部アプリ記憶媒体の判断を行い、前記外部アプリ記憶媒体がアンインストールする外部アプリケーションを格納したものである場合に、前記外部アプリケーションのアンインストールを続行することを特徴とする。
この請求項7にかかる発明によれば、アンインストール手段によって、外部アプリケーションのアンインストール時に、外部アプリケーションのインストール時に使用した外部アプリ記憶媒体の判断を行い、外部アプリ記憶媒体がアンインストールする外部アプリケーションを格納したものである場合に、外部アプリケーションのアンインストールを続行することで、不正な利用者による外部アプリケーションのアンインストールを防止することができ、インストールされている外部アプリケーションのセキュリティを強化することができる。
また、請求項8にかかる発明は、請求項1〜7のいずれか一つに記載の画像形成装置において、画像形成装置の初期化処理を行う初期化手段をさらに備え、前記インストール手段は、前記初期化手段によって起動されることを特徴とする。
この請求項8にかかる発明によれば、インストール手段は、画像形成装置の初期化処理を行う初期化手段によって起動されるので、画像形成装置の初期化処理の一連の処理の中で、外部アプリケーションのインストールを行うことができ、画像形成装置の起動処理の完了後にインストールのための特別な処理を新たな操作で別個に行う必要がなくなり、画像形成装置に多種多様な機能を搭載することが容易となる。
また、請求項9にかかる発明は、請求項8に記載の画像形成装置において、画像形成処理で使用されるハードウェア資源と、画像形成処理にかかるユーザサービスにそれぞれ固有の処理を行うアプリケーションと、前記アプリケーションと前記ハードウェア資源との間に介在し、ユーザサービスを提供する際に、アプリケーションの少なくとも2つが共通的に必要とする前記ハードウェア資源の獲得要求、管理、実行制御並びに画像形成処理を行うコントロールサービスと、をさらに備え、前記インストール手段は、前記アプリケーションとして搭載され、前記初期化手段は、前記コントロールサービスとして搭載されることを特徴とする。
この請求項9にかかる発明によれば、画像形成処理で使用されるハードウェア資源と、画像形成処理にかかるユーザサービスにそれぞれ固有の処理を行うアプリケーションと、前記アプリケーションと前記ハードウェア資源との間に介在し、ユーザサービスを提供する際に、アプリケーションの少なくとも2つが共通的に必要とする前記ハードウェア資源の獲得要求、管理、実行制御並びに画像形成処理を行うコントロールサービスと、をさらに備え、前記インストール手段は、前記アプリケーションとして搭載され、前記初期化手段は、前記コントロールサービスとして搭載されることで、インストール手段をはじめとするアプリケーションのソフトウェア開発をユーザサービスに固有の部分だけで行うことができ、ソフトウェア開発の労力軽減を図ることができる。
また、請求項10にかかる発明は、画像形成処理にかかるユーザサービスを提供する画像形成装置に前記ユーザサービスを提供する外部アプリケーションをインストールするアプリケーションインストール方法であって、前記外部アプリケーションを、外部アプリケーションをインストール可能な形式で格納する外部アプリ記憶媒体から大容量記憶装置にインストールするインストールステップを含むことを特徴とする。
この請求項10にかかる発明によれば、インストールステップによって、外部アプリケーションを、外部アプリケーションをインストール可能な形式で格納する外部アプリ記憶媒体から大容量記憶装置にインストールすることで、大容量記憶装置を外部アプリケーションの保存領域として利用してインストールすることができ、画像形成装置の出荷後に大容量記憶装置を利用して外部アプリケーションを任意に追加することができ、画像形成装置に多種多様な機能を搭載することが可能となる。
また、請求項11にかかる発明は、請求項10に記載のアプリケーションインストール方法において、前記外部アプリ記憶媒体には、さらに外部アプリケーションに関する詳細情報を設定したアプリ設定情報が記憶されており、前記インストールステップは、前記アプリ設定情報に基づいて前記外部アプリケーションをインストールすることを特徴とする。
この請求項11にかかる発明によれば、インストールステップによって、外部アプリケーションに関する詳細情報を設定したアプリ設定情報に基づいて外部アプリケーションをインストールすることで、インストール処理中にインストール対象の外部アプリケーションの詳細な情報を利用者に知らせることができ、インストールを行う利用者の便宜が図られる。
また、請求項12にかかる発明は、請求項10または11に記載のアプリケーションインストール方法において、前記インストールステップは、インストール時にインストール対象の前記外部アプリケーションについて、起動の可否を指定する起動可否情報を設定することを特徴とする。
この請求項12にかかる発明によれば、インストールステップによって、インストール時にインストール対象の外部アプリケーションについて、起動の可否を指定する起動可否情報を設定することで、必要に応じて大容量記憶装置の外部アプリケーションの起動に制限を与えることででき、画像形成装置のセキュリティを強化することができる。
また、この請求項12にかかる発明によれば、外部アプリケーションの起動に制限を与えることができるので、大容量記憶装置にインストールされた一部(または全部)の外部アプリケーションに障害があり画像形成装置の動作に支障が生じる場合に外部アプリケーションの起動を一括的に制限することができる。このため、障害が発生した場合、出荷時に予めインストールされている基本的なアプリケーションのみを起動させて、外部アプリケーション障害時の画像形成装置の安定性を維持することができる。
また、請求項13にかかる発明は、請求項12に記載のアプリケーションインストール方法において、前記インストールステップは、前記起動可否情報の指定を入力させる設定画面を、操作入力および操作表示を行うオペレーションパネルに表示して、前記設定画面からの入力に基づいて前記起動可否情報を設定することを特徴とする。
この請求項13にかかる発明によれば、インストールステップによって、起動可否情報の指定を入力させる設定画面を、操作入力および操作表示を行うオペレーションパネルに表示して、設定画面からの入力に基づいて起動可否情報を設定することで、大容量記憶装置からの外部アプリケーションの起動の可否を画像形成装置の利用者がインストール時に自在に設定することができ、外部アプリケーションの利用に対して利用者の便宜を図ることができる。
また、請求項14にかかる発明は、請求項10〜13のいずれか一つに記載のアプリケーションインストール方法において、前記インストールステップは、インストール時に前記外部アプリケーションのライセンスの有効性を判断し、前記ライセンスが有効である場合に、前記外部アプリケーションのインストールを続行することを特徴とする。
この請求項14にかかる発明によれば、インストールステップによって、インストール時に外部アプリケーションのライセンスの有効性を判断し、ライセンスが有効である場合に、前記アプリケーションのインストールを続行することで、画像形成装置に対する外部アプリケーションの不正なインストールを防止することができる。
また、請求項15にかかる発明は、請求項10〜14のいずれか一つに記載のアプリケーションインストール方法において、前記インストールステップは、前記大容量記憶媒体に格納された前記外部アプリケーションのアンインストールを行うアンインストールステップを含むことを特徴とする。
この請求項15にかかる発明によれば、インストールステップは、前記大容量記憶媒体に格納された前記外部アプリケーションのアンインストールを行うアンインストールステップを含むことで、大容量記憶媒体にインストールされた外部アプリケーションのうち、不要となった外部アプリケーションを削除することができ、大容量記憶媒体の資源の節約を図ることができる。
また、請求項16にかかる発明は、請求項15に記載のアプリケーションインストール方法において、前記アンインストールステップは、前記外部アプリケーションのアンインストール時に、前記外部アプリケーションのインストール時に使用した前記外部アプリ記憶媒体の判断を行い、前記外部アプリ記憶媒体がアンインストールする外部アプリケーションを格納したものである場合に、前記外部アプリケーションのアンインストールを続行することを特徴とする。
この請求項16にかかる発明によれば、アンインストールステップによって、外部アプリケーションのアンインストール時に、前記外部アプリケーションのインストール時に使用した前記外部アプリ記憶媒体の判断を行い、前記外部アプリ記憶媒体がアンインストールする外部アプリケーションを格納したものである場合に、前記外部アプリケーションのアンインストールを続行することで、不正な利用者による外部アプリケーションのアンインストールを防止することができ、インストールされている外部アプリケーションのセキュリティを強化することができる。
また、請求項17にかかる発明は、請求項10〜16のいずれか一つに記載のアプリケーションインストール方法において、前記インストールステップは、画像形成装置の初期化処理中に実行されることを特徴とする。
この請求項17にかかる発明によれば、インストールステップは、画像形成装置の初期化処理中に実行されるので、画像形成装置の初期化処理の一連の処理の中で、外部アプリケーションのインストールを行うことができ、画像形成装置の起動処理の完了後にインストールのための特別な処理を新たな操作で別個に行う必要がなくなり、画像形成装置に多種多様な機能を搭載することが容易となる。
以上説明したように、請求項1にかかる発明によれば、画像形成装置の出荷後に大容量記憶装置を利用して外部アプリケーションを任意に追加することができ、画像形成装置に多種多様な機能を搭載することができるという効果を奏する。
また、請求項2にかかる発明によれば、インストール処理中にインストール対象の外部アプリケーションの詳細な情報を利用者に知らせることができ、インストールを行う利用者の便宜が図られるという効果を奏する。
また、請求項3にかかる発明によれば、必要に応じて大容量記憶装置の外部アプリケーションの起動に制限を与えることででき、画像形成装置のセキュリティを強化することができるという効果を奏する。また、この請求項3にかかる発明によれば、障害が発生した場合、出荷時に予めインストールされている基本的なアプリケーションのみを起動させて、外部アプリケーション障害時の画像形成装置の安定性を維持することができるという効果を奏する。
また、請求項4にかかる発明によれば、大容量記憶装置からの外部アプリケーションの起動の可否を画像形成装置の利用者がインストール時に自在に設定することができ、外部アプリケーションの利用に対して利用者の便宜を図ることができるという効果を奏する。
また、請求項5にかかる発明によれば、画像形成装置に対する外部アプリケーションの不正なインストールを防止することができるという効果を奏する。
また、請求項6にかかる発明によれば、大容量記憶媒体にインストールされた外部アプリケーションのうち、不要となった外部アプリケーションを削除することができ、大容量記憶媒体の資源の節約を図ることができるという効果を奏する。
また、請求項7にかかる発明によれば、不正な利用者による外部アプリケーションのアンインストールを防止することができ、インストールされている外部アプリケーションのセキュリティを強化することができるという効果を奏する。
また、請求項8にかかる発明によれば、画像形成装置の初期化処理の一連の処理の中で、外部アプリケーションのインストールを行うことができ、画像形成装置の起動処理の完了後にインストールのための特別な処理を新たな操作で別個に行う必要がなくなり、画像形成装置に多種多様な機能を搭載することが容易となるという効果を奏する。
また、請求項9にかかる発明によれば、インストール手段をはじめとするアプリケーションのソフトウェア開発をユーザサービスに固有の部分だけで行うことができ、ソフトウェア開発の労力軽減を図ることができるという効果を奏する。
また、請求項10にかかる発明によれば、画像形成装置の出荷後に大容量記憶装置を利用して外部アプリケーションを任意に追加することができ、画像形成装置に多種多様な機能を搭載することができるという効果を奏する。
また、請求項11にかかる発明によれば、インストール処理中にインストール対象の外部アプリケーションの詳細な情報を利用者に知らせることができ、インストールを行う利用者の便宜が図られるという効果を奏する。
また、請求項12にかかる発明によれば、必要に応じて大容量記憶装置の外部アプリケーションの起動に制限を与えることででき、画像形成装置のセキュリティを強化することができるという効果を奏する。また、この請求項12にかかる発明によれば、障害が発生した場合、出荷時に予めインストールされている基本的なアプリケーションのみを起動させて、外部アプリケーション障害時の画像形成装置の安定性を維持することができるという効果を奏する。
また、請求項13にかかる発明によれば、大容量記憶装置からの外部アプリケーションの起動の可否を画像形成装置の利用者がインストール時に自在に設定することができ、外部アプリケーションの利用に対して利用者の便宜を図ることができるという効果を奏する。
また、請求項14にかかる発明によれば、画像形成装置に対する外部アプリケーションの不正なインストールを防止することができるという効果を奏する。
また、請求項15にかかる発明によれば、大容量記憶媒体にインストールされた外部アプリケーションのうち、不要となった外部アプリケーションを削除することができ、大容量記憶媒体の資源の節約を図ることができるという効果を奏する。
また、請求項16にかかる発明によれば、不正な利用者による外部アプリケーションのアンインストールを防止することができ、インストールされている外部アプリケーションのセキュリティを強化することができるという効果を奏する。
また、請求項17にかかる発明によれば、画像形成装置の初期化処理の一連の処理の中で、外部アプリケーションのインストールを行うことができ、画像形成装置の起動処理の完了後にインストールのための特別な処理を新たな操作で別個に行う必要がなくなり、画像形成装置に多種多様な機能を搭載することが容易となるという効果を奏する。
以下に添付図面を参照して、この発明にかかる画像形成装置およびアプリケーションインストール方法の好適な実施の形態を詳細に説明する。
(実施の形態1)
図1は、この発明の実施の形態1である画像形成装置(以下、「複合機」というの構成を示すブロック図である。本実施の形態にかかる複合機100は、複合機の出荷後に、顧客、サードベンダなどの第三者が外部アプリを開発し、開発された外部アプリケーションを複合機用のインストーラによってPCカードから大容量記憶装置であるハードディスク装置(HDD)にインストールするものである。
図1に示すように、複合機100は、白黒レーザプリンタ(B&W LP)101と、カラーレーザプリンタ(Color LP)102と、ハードディスク装置(HDD)103と、スキャナ、ファクシミリ、メモリ、ネットワークインタフェースなどのハードウェアリソース104を有するとともに、プラットホーム120と、アプリケーション130と、複合機初期化部129と、診断部132と、外部アプリ起動部131とインストーラ118から構成されるソフトウェア群110とを備えている。
プラットホーム120は、アプリケーションからの処理要求を解釈してハードウェア資源の獲得要求を発生させるコントロールサービスと、一または複数のハードウェア資源の管理を行い、コントロールサービスからの獲得要求を調停するシステムリソースマネージャ(SRM)123と、汎用OS121とを有する。
コントロールサービスは、複数のサービスモジュールから形成され、SCS(システムコントロールサービス)122と、ECS(エンジンコントロールサービス)124と、MCS(メモリコントロールサービス)125と、OCS(オペレーションパネルコントロールサービス)126と、FCS(ファックスコントロールサービス)127と、NCS(ネットワークコントロールサービス)128とから構成される。なお、このプラットホーム120は、あらかじめ定義された関数により前記アプリケーション130から処理要求を受信可能とするアプリケーションプログラムインタフェース(API)を有する。
汎用OS121は、UNIX(登録商標)などの汎用オペレーティングシステムであり、プラットホーム120並びにアプリケーション130の各ソフトウェアをそれぞれプロセスとして並列実行する。
SRM123のプロセスは、SCS122とともにシステムの制御およびリソースの管理を行うものである。SRM123のプロセスは、スキャナ部やプリンタ部などのエンジン、メモリ、HDDファイル、ホストI/O(セントロI/F、ネットワークI/F、IEEE1394 I/F、RS232C I/Fなど)のハードウェア資源を利用する上位層からの要求にしたがって調停を行い、実行制御する。
具体的には、このSRM123は、要求されたハードウェア資源が利用可能であるか(他の要求により利用されていないかどうか)を判断し、利用可能であれば要求されたハードウェア資源が利用可能である旨を上位層に伝える。また、SRM123は、上位層からの要求に対してハードウェア資源の利用スケジューリングを行い、要求内容(例えば、プリンタエンジンにより紙搬送と作像動作、メモリ確保、ファイル生成など)を直接実施している。
SCS122のプロセスは、アプリ管理、操作部制御、システム画面表示、LED表示、リソース管理、割り込みアプリ制御などを行う。
ECS124のプロセスは、白黒レーザプリンタ(B&W LP)101、カラーレーザプリンタ(Color LP)102、スキャナ、ファクシミリなどからなるハードウェアリソース104のエンジンの制御を行う。
MCS125のプロセスは、画像メモリの取得および解放、ハードディスク装置(HDD)の利用、画像データの圧縮および伸張などを行う。
FCS127のプロセスは、システムコントローラの各アプリ層からPSTN/ISDN網を利用したファクシミリ送受信、BKM(バックアップSRAM)で管理されている各種ファクシミリデータの登録/引用、ファクシミリ読みとり、ファクシミリ受信印刷、融合送受信を行うためのAPIを提供する。
NCS128のプロセスは、ネットワークI/Oを必要とするアプリケーションに対して共通に利用できるサービスを提供するためのプロセスであり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分けたり、アプリケーションからデータをネットワーク側に送信する際の仲介を行う。具体的には、ftpd、httpd、lpd、snmpd、telnetd、smtpdなどのサーバデーモンや、同プロトコルのクライアント機能などを有している。
OCS126のプロセスは、オペレータ(ユーザ)と本体制御間の情報伝達手段となるオペレーションパネル(操作パネル)の制御を行う。OCS126は、オペレーションパネルからキー押下をキーイベントとして取得し、取得したキーに対応したキーイベント関数をSCS122に送信するOCSプロセスの部分と、アプリケーション130またはコントロールサービスからの要求によりオペレーションパネルに各種画面を描画出力する描画関数やその他オペレーションパネルに対する制御を行う関数などがあらかじめ登録されたOCSライブラリの部分とから構成される。このOCSライブラリは、アプリケーション130およびコントロールサービスの各モジュールにリンクされて実装されている。なお、OCS126のすべてをプロセスとして動作させるように構成しても良く、あるいはOCS126のすべてをOCSライブラリとして構成しても良い。
アプリケーション130は、ページ記述言語(PDL)、PCLおよびポストスクリプト(PS)を有するプリンタ用のアプリケーションであるプリンタアプリ111と、コピー用アプリケーションであるコピーアプリ112と、ファクシミリ用アプリケーションであるファックスアプリ113と、スキャナ用アプリケーションであるスキャナアプリ114と、ネットワークファイル用アプリケーションであるネットファイルアプリ115と、工程検査用アプリケーションである工程検査アプリ116とを有している。
アプリケーション130の各プロセス、コントロールサービスの各プロセスは、関数呼び出しとその戻り値送信およびメッセージの送受信によってプロセス間通信を行いながら、コピー、プリンタ、スキャナ、ファクシミリなどの画像形成処理にかかるユーザサービスを実現している。
このように、実施の形態1にかかる複合機100には、複数のアプリケーション130および複数のコントロールサービスが存在し、いずれもプロセスとして動作している。そして、これらの各プロセス内部には、一または複数のスレッドが生成されて、スレッド単位の並列実行が行われる。そして、コントロールサービスがアプリケーション130に対し共通サービスを提供しており、このため、これらの多数のプロセスが並列動作、およびスレッドの並列動作を行って互いにプロセス間通信を行って協調動作をしながら、コピー、プリンタ、スキャナ、ファクシミリなどの画像形成処理にかかるユーザサービスを提供するようになっている。
また、複合機100には、複合機100の顧客、サードベンダなどの第三者がコントロールサービス層の上のアプリケーション層に外部アプリ117を開発して搭載することが可能となっている。図1では、この外部アプリ117が搭載した例を示している。
なお、実施の形態1にかかる複合機100では、複数のアプリケーション130のプロセスと複数のコントロールサービスのプロセスとが動作しているが、アプリケーション130とコントロールサービスのプロセスがそれぞれ単一の構成とすることも可能である。また、各アプリケーション130は、アプリケーションごとに追加または削除することができる。
インストーラ118は、本発明におけるインストール手段を構成し、第三者が開発した外部アプリ117を、PCカードからHDD103にインストールするものである。本実施の形態にかかる複合機100では、ICカードなどの記憶媒体に生成した外部アプリ117とインストーラ118を格納し、PCカードからインストーラ118を実行して、PCカード内の外部アプリ117をHDD103にインストールし、外部アプリ起動部131によって、HDD103から外部アプリ117を起動してアプリケーション層で動作させるようになっている。
一方、プリンタアプリ111、コピーアプリ112、ファックスアプリ113、スキャナアプリ114、ネットファイルアプリ115、工程検査アプリ116などの複合機100の出荷時に提供されるアプリケーション130、各コントロールサービス、診断部132および外部アプリ起動部131は、フラッシュメモリに出荷時に組み込まれており、複合機100の起動時(電源投入時)に複合機初期化部129によって起動されるようになっている。
外部アプリ起動部131は、HDD103の診断結果が正常である場合に、HDD103にインストールされている外部アプリ117を起動するものである。
複合機初期化部129は、本発明における初期化手段を構成し、汎用OS121の上で最初に起動されるプロセスであり、コントロールサービスやアプリケーション130(外部アプリ117を除く)の起動および診断部132および外部アプリ起動部131の起動を行うものである。複合機初期化部129は、本発明における初期化手段を構成する。
診断部132は、HDD103の物理的欠陥やHDD103に生成されたファイルシステムの整合性などを診断し、診断結果をメッセージ送信などのプロセス間通信を利用して外部アプリ起動部131に送信するものである。なお、本実施の形態に係る複合機100では、診断部132はHDD103の診断を行っているが、この他、SDメモリカードなどの記憶媒体の診断を行うように構成することもできる。
次に、インストーラ118の構成について説明する。図2は、本実施の形態にかかる複合機100のインストーラ118の機能的構成を示すブロック図である。インストーラ118は、図2に示すように、初期化部201と、オプション解析部202と、HDD診断結果通信部203と、インストール処理部204と、起動設定処理部205と、アプリケーション記述処理部206と、ライセンス判断部207と、アンインストール処理部208と、キーイベント処理部209と、表示処理部210とから構成される。
また、HDD103には、外部アプリ117と外部アプリ117の各種情報が設定されたアプリケーション記述ファイル222が外部アプリ117ごとにインストールされるようになっている。また、HDD103には、HDD103から起動する外部アプリ117を指定したデータを設定した起動設定ファイル221が予め格納されている。なお、本実施の形態では、起動設定ファイル221とアプリケーション記述ファイル222は、いずれもHDD103に格納された構成となっているが、いずれか一方または双方のファイルをフラッシュメモリなどの記憶媒体に格納する構成としても良い。
また、本実施の形態にかかる複合機100には、PCカードインタフェース部230が設けられている。このPCカードインタフェース部230は、インストール可能な外部アプリ117などが記憶されたPCカード240を挿入して、PCカード240とデータのやりとりを行うインタフェースである。ここで、PCカードインタフェース部230は、本発明における記憶媒体インタフェース手段を構成し、PCカード140は、本発明における外部アプリ記憶媒体を構成する。
PCカード240は、例えばフラッシュカードなど該当する。インストール用の記憶媒体であるPCカード240には、インストーラ起動設定ファイル241と、インストーラ242と、アプリケーション記述ファイル222と、アプリケーションパッケージファイル243が保存されている。
インストーラ起動設定ファイル241は、PCカード240内のインストーラ242を起動するためのコマンドとそのコマンドライン引数としてアプリケーション名称が記述されたものである。複合機初期化部129がこのインストーラ起動設定ファイル241を読み込んでPCカード240内のインストーラ242を起動する。
インストーラ242は、インストーラ118の実行形式ファイルであり、このインストーラ242を起動することによって、図1に示すように、インストーラ118のプロセスがアプリケーション層で実行されるようになっている。
アプリケーション記述ファイル222は、本発明におけるアプリ設定情報を構成し、PCカード240内の外部アプリの属性情報が記述されたものである。このアプリケーション記述ファイル222は、インストール時にHDD103に外部アプリ117とともにインストールされるようになっている。
アプリケーションパッケージファイル243は、外部アプリ227の実行形式ファイルを含む関連ファイル一式を1つのファイルにまとめたものである。インストーラ118によって、このアプリケーションパッケージファイル243が展開されてHDD103に外部アプリ117がインストールされるようになっている。
インストーラ118の構成のうち、初期化部201は、インストーラ118の初期化処理を行うものである。オプション解析部202は、インストーラ118が複合機初期化部129から起動されるときに指定されたコマンドのオプションパラメータを解析するものである。
HDD診断結果通信部203は、診断部132によって行われるHDD103の診断の終了待ちを行い、その診断結果をメッセージなどのプロセス間通信によって受信する。また、HDD診断結果通信部203は、受信した診断結果によってHDD103の状態を判定する。
起動設定処理部205は、HDD103に格納されている起動設定ファイル221を読み出して、その解析処理を行うものであり、アプリケーション記述処理部206は、PCカード240アプリケーション記述ファイル222を読み出して、その解析処理を行うものである。ライセンス判断部207は、アプリケーション記述ファイル222に設定されているライセンスキーの正当性を判断するものである。
インストール処理部204は、PCカード240に格納されているアプリケーションパッケージファイル243を展開して外部アプリ117をHDD103にインストールするものである。
アンインストール処理部208は、HDD103にインストールされている外部アプリおよび外部アプリ117に対応するアプリケーション記述ファイル222の削除や起動設定ファイル211からの削除する外部アプリ117に関する記述を削除するなどのアンインストール処理を行うものである。
表示処理部210は、オペレーションパネル810の操作表示部に対しインストール画面、アンインストール画面やライセンスキー入力画面などの表示処理を行うものである。具体的には、OCS関数ライブラリで提供される描画関数呼び出しを行うことによって各種画面をオペレーションパネル810の操作表示部に表示している。
キーイベント処理部209は、オペレーションパネル810の操作表示部に表示された各種画面からのタッチ操作、押下操作などによるキーイベントを取得してインストール処理部やアンインストール処理部に受け渡すものである。キーイベントは、OCS126、SCS122を経由してキーイベント処理部に通知されるようになっている。
次に、HDD103に格納されている起動設定ファイル221の内容について説明する。起動設定ファイル221は、HDD103にインストールされている外部アプリ117のプログラム名称のリストが記述されたものであり、インストーラ118によって外部アプリ117をHDD103にインストールするたびに各外部アプリ117のプログラム名称が「プログラム名称 外部アプリのプログラムファイル名」の形式で追加される。
図3は、起動設定ファイル221の内容の一例を示す説明図である。外部アプリのプログラムファイル名には、HDD103に生成されたファイルシステムにおけるプログラムファイル名が、図3の例(xx.xxx.sample、yy.yy.test等)に示すように記述される。このプログラム名称は一つの複合機100内で一意の名称である必要がある。
次に、HDD103に格納されているアプリケーション記述ファイル222の内容について説明する。アプリケーション記述ファイル222は、外部アプリ117ごとに存在し、外部アプリ117のプログラムの属性情報を記述したものである。アプリケーション記述ファイル222は、外部アプリ117とともに、インストール用記憶媒体であるPCカード240に格納され、外部アプリ117のHDD103へのインストール時に外部アプリ117とともにHDD103に格納される。従って、HDD103に複数の外部アプリ117が保存されている場合には、各外部アプリ117に対応して複数のアプリケーション記述ファイル222が存在する。
図4は、アプリケーション記述ファイル222の内容の一例を示す説明図である。図4に示すように、アプリケーション記述ファイル222には、プログラム名称、表示名称、バージョン、ベンダ名称、実行コマンド、インストールメディア番号、インストールメディア総数、インストール済インストールメディア総数、インストール日時、ライセンスキーの各項目が設定されている。ここで、プログラム名称、表示名称、バージョン、ベンダ名称、実行コマンドの項目は、インストール用記憶媒体への外部アプリ117の格納時に外部アプリ117の開発者によって設定される。
プログラム名称は、外部アプリのプログラム名を示すものであり、インストール後、このプログラム名称が起動設定ファイル221のプログラム名称となる。
表示名称は、外部アプリ117の表示名称であり、インストーラ118による外部アプリ117のインストール時および外部アプリ起動部131による外部アプリ117の起動時にオペレーションパネル810の表示部に表示されるものである。
バージョンは、外部アプリ117のバージョン情報を示す文字列であり、インストーラ118による外部アプリ117のインストール時および外部アプリ起動部131による外部アプリ117の起動時にオペレーションパネル810の表示部に表示されるものである。
ベンダ名称は、外部アプリ117を開発したベンダ名称を表す文字列であり、インストーラ118による外部アプリ117のインストール時および外部アプリ起動部131による外部アプリ117の起動時にオペレーションパネル810の表示部に表示されるものである。
実行コマンドは、外部アプリ117の実行のためのコマンドを相対パスにより指定したものである。必要な場合には、コマンドラインオプションも指定可能である。外部アプリ起動部131により、ここで設定されるコマンドが実行されるようになっている。
インストールメディア番号は、外部アプリ117が複数枚のインストール用記憶媒体に分割されている場合に、その媒体が何枚目のものであるかを示すものである。記憶媒体が1枚だけの場合には0が指定される。インストールメディア番号は、インストーラ118による外部アプリ117のインストール時にオペレーションパネル810の表示部に表示されるものである。
インストールメディア総数は、外部アプリ117が複数枚のインストール用記憶媒体に分割されている場合に、その総数が指定される。記憶媒体が1枚だけの場合には0が指定される。インストールメディア番号は、インストーラ118による外部アプリ117のインストール時にオペレーションパネル810の表示部に表示されるものである。
インストール済インストールメディア総数は、インストール済みインストールメディアナンバーを指定したものである。外部アプリ117が複数枚のインストール用記憶媒体に分割されている場合、この設定は複数現れる。
インストール日時は、インストールされた日時を示すものである。インストーラ118のユーザインタフェースに表示される。
ライセンスキーは、外部アプリ117のライセンスキーを指定したものである。インストール時にユーザにより入力された文字列が保存されるようになっている。
次に、このように構成された本実施の形態の複合機100において、インストーラ118の起動処理について説明する。インストーラ118の起動処理は複合機初期化部129によって実行される。図5は、インストーラ118の起動処理の手順を示すフローチャートである。
まず利用者は、インストールする外部アプリが記憶されたPCカード240をPCカードインタフェース部230に挿入して複合機100の電源投入を行う。複合機100が電源投入されると、ROMモニタ(図示せず)によって、まずハードウェア資源の初期化、コントローラボードの診断が行われた後、汎用OS121が起動する。そして、ROMモニタが複合機初期化部129を汎用OS121上で起動する。この複合機初期化部129は、汎用OS121上で最初に起動されるプロセスとなる。
起動された複合機初期化部129は、PCカード240が装着されている場合、PCカード240からインストーラ起動設定ファイル241を読み込む(ステップS501)。そして、インストーラ起動設定ファイル241に記述されているインストーラ起動コマンドを実行することにより、PCカード240内のインストーラ242を起動する(ステップS502)。これによって、PCカード240内のインストーラ242が起動され、図1に示すように、アプリケーション層にインストーラ118のプロセスが生成される。
次に、複合機初期化部129によって起動されたインストーラ118による外部アプリ117のインストール処理について説明する。図6は、外部アプリ117のインストール処理の手順を示すフローチャートである。
まず、インストーラ118のオプション解析部202によってコマンド入力時のオプションパラメータの解析を行った後、アプリケーション記述処理部206によってアプリケーション記述ファイル222を読み込む(ステップS601)。アプリケーション記述ファイル222は、HDD103に格納されているものとPCカード204に格納されているものの両方を読み込む。
そして、各アプリケーション記述ファイル222の内容を解析して、HDD103のアプリケーション記述ファイル222の内容からインストール済みの外部アプリ117の属性情報を、PCカード240のアプリケーション記述ファイル222の内容からインストール中およびこれからインストールする外部アプリ117の属性を取得して、属性の内容を表示したインストーラ画面をオペレーションパネル810の操作表示部に表示する(ステップS602)。
図7は、インストーラ画面の一例を示す説明図である。図7に示すように、インストーラ画面には、インストール対象アプリとして、アプリケーション記述ファイル222からアプリケーション名称、バージョン、ベンダ名、インストールメディア数が表示される。また、インストーラ画面には、インストール済みアプリとして、アプリケーション記述ファイル222からアプリケーション名称、バージョン、インストール日、ベンダ名が表示される。また、状態フィールドにはインストールが成功している場合に「OK」の表示がなされる。一方、インストール中の外部アプリについては、インストールメディア番号が状態フィールドに表示される。
図7のインストーラ画面でインストールボタンのタッチ操作が行われると、そのキーイベントをキーイベント処理部209で取得する。そして、インストール処理部204は、表示処理部210は、次にライセンスキー入力画面をオペレーションパネル810の操作表示部に表示し(ステップS603)、さらにライセンスキー入力のためのソフトウェアキーボードを表示する(ステップS604)。
図8は、ライセンスキー入力画面の一例を示す説明図である。このライセンスキー入力画面において、利用者は外部アプリ117のライセンスキーを入力する。図9は、ライセンスキーが入力された状態のライセンスキー入力画面の一例を示す説明図である。
図9に示すライセンスキー入力画面でライセンスキーが入力され、かつ「OK」ボタンのタッチ操作が行われたら、インストーラ118のライセンス判断部207によって入力されたライセンスキーの正当性を、アプリケーション記述ファイル222に設定されたライセンスキーと比較することにより判断する(ステップS605)。そして、正当でない(ライセンスキーが一致しない)と判断した場合には、その旨のエラーメッセージを表示し(ステップS606)、インストール処理を終了する。
一方、入力されたライセンスキーが正当である(ライセンスキーが一致する)と判断した場合には、インストール処理部204はHDD103にインストールディレクトリを生成し(ステップS607)、PCカード240のアプリケーションパッケージファイル243を展開して、外部アプリ117をHDD103のインストールディレクトリにコピーする(ステップS608)。
次に、インストール処理部204は、PCカード240内のアプリケーション記述ファイル222をHDD103にコピーし(ステップS609)、HDD103の起動設定ファイル221にインストールした外部アプリ117のファイル名を追加する(ステップS610)。これによって、外部アプリ117のインストール処理が完了する。これ以降は、外部アプリ起動部131によってHDD103から外部アプリ117を起動することが可能となる。
次に、インストーラ118による外部アプリ117のアンインストール処理について説明する。図7に示すインストーラ画面のインストール済みアプリの欄において、外部アプリに対応して表示されているアンインストールボタンのタッチ操作を行うことにより、タッチ操作を行ったボタンに対応する外部アプリ117のアンインストール処理が開始される。図10は、外部アプリ117のアンインストール処理の手順を示すフローチャートである。
インストーラ118のアンインストール処理部208は、まず表示処理部210を介してオペレーションパネル810の操作表示部にアンインストール画面を表示する(ステップS1001)。図11は、アンインストール画面の一例を示す説明図である。そして、図11のアンインストール画面からでOKボタンのキーイベント入力待ちとなる(ステップS1002)。アンインストール画面からOKボタン以外の操作(キャンセル操作)があった場合には、アンインストール処理を終了する。
アンインストール画面からOKボタンのタッチ操作(OKボタンのキーイベント入力)があった場合には、アンインストール処理部208は、表示処理部210を介してインストールを行ったPCカード240の挿入要求メッセージを操作表示部に表示する(ステップS1003)。図12は、アンインストール画面に挿入要求メッセージが表示された場合の一例を示す説明図である。
そして、利用者によりインストール用のPCカードの挿入が行われた場合には、ライセンス判断部207によって、HDD103にインストールされている外部アプリ117のライセンスキーと同一のライセンスキーの外部アプリ117がPCカード240にあるか否かを判断する(ステップS1004)。このライセンスキーの判断は、HDD103内のアプリケーション記述ファイル222とPCカード240内のアプリケーション記述ファイル222とを比較することによって行う。
そして、アンインストールしようとする外部アプリ117のライセンスキーと同一ライセンスキーの外部アプリ117がPCカード240内にある場合には、アンインストール処理を続行し、HDD103から指定された外部アプリ117を削除する(ステップS1005)。次いで、アンインストール処理部208は、HDD103からアンインストールを行う外部アプリ117のアプリケーション記述ファイル222を削除し(ステップS1006)、さらにHDD103内の起動設定ファイル221からアンインストールを行う外部アプリ117の記述を削除する(ステップS1007)。これによって、外部アプリ117のアンインストール処理が完了する。
このように実施の形態1にかかる複合機100では、インストーラ118によって、外部アプリ117を、PCカード240からHDD103にインストールしているので、HDD103を外部アプリ117の保存領域として利用してインストールすることができ、複合機100の出荷後にHDD103を利用して外部アプリ117を任意に追加することができ、複合機100に外部アプリ117による多種多様な機能を搭載することができる。
なお、実施の形態1の複合機100では、さらにインストール処理前に、診断部132によるHDD103の診断を行い、診断結果が正常である場合にのみインストーラ118によるインストール処理を実行するようにしても良い。
(実施の形態2)
実施の形態1にかかる複合機100は、インストール処理において外部アプリ117の起動に関する処理を行うものではなかったが、この実施の形態2にかかる複合機100は、インストール処理において、起動する外部アプリ117の指定を行えるものである。
実施の形態2にかかる複合機100の機能的構成、インストーラ118の構成は、図1および図2に示した実施の形態1の複合機100と同様である。また本実施の形態の複合機100のインストーラ118によるインストール処理も、図6に示す実施の形態1の複合機100におけるインストール処理と同様である。
本実施の形態のインストーラ118では、図6に示したインストール処理のステップS602において、図13に示すインストーラ画面をオペレーションパネル810の操作表示部に表示する。このインストーラ画面では、図13に示すように、インストール済みアプリの欄において、外部アプリを外部アプリ起動部131によって起動するか否かを設定する項目が表示される。図13の例では、○印が付されている認証アプリとテストアプリが、インストール終了後に複合機100を電源投入したときに外部アプリ起動部131によって起動するが、課金アプリは起動しない旨の指定を行っている。
かかるインストーラ画面において、起動の項目に○印が付された外部アプリ117については、図6のステップS610の起動設定ファイル1401への追加処理時に、起動の旨の設定が行われる。一方、インストーラ画面において、起動の項目に○印が付されない外部アプリ117については、図6のステップS610の起動設定ファイル1401への追加処理時に、起動せずの旨の設定が行われる。
この起動設定ファイル1401は、本発明における起動可否情報を構成する。図14は、起動設定ファイル1401の内容を示す説明図である。かかる起動設定ファイル1401は、外部アプリ起動部131によって参照され、「起動」が設定されている外部アプリのみが起動されアプリケーション層で実行される。なお、インストール終了後、例えば初期設定画面において、図13に示したインストーラ画面と同様の設定画面をオペレーションパネル810の操作表示部に表示し、「起動」項目を動的に変更できるように構成しても良い。
このように実施の形態2にかかる複合機100では、インストーラ118によって、インストール時にインストール対象の外部アプリ117についての起動設定ファイル1401に起動可否を設定しているので、必要に応じてHDD103の外部アプリ117の起動に制限を与えることででき、複合機100のセキュリティを強化することができる。
また、実施の形態2にかかる複合機100では、外部アプリ117の起動に制限を与えることができるので、HDD103にインストールされた一部または全部の外部アプリ117何らかの障害があり複合機100の全体システムの動作に支障が生じる場合に外部アプリ117の起動を一括的に制限することができる。このため、障害が発生した場合、出荷時に予めインストールされているプリンタアプリ111,コピーアプリ112などの基本アプリのみを起動させて、外部アプリ117の障害時の複合機100の安定性を維持することができる。
なお、実施の形態1および2にかかる複合機100では、大容量記憶装置としてHDD103を使用した例をあげたが、この他SDメモリカードを使用した例についても本発明を適用することが可能である。