以下に添付図面を参照して、この発明に係る画像処理装置の好適な実施の形態を詳細に説明する。
図1は本発明の実施の形態による画像処理装置(以下、「複合機」と称する)を適用したネットワーク構成を示す。図1の画像処理システム1は、本発明の第1の実施の形態による複合機100、クライアント200a、クライアント200b、及びクライアント200c(以下、「クライアント200」と総称する。)等がLAN(Local Area Network)、イントラネット、又はインターネット等のネットワーク300を介して接続されている。
複合機100は、クライアント200からの要求に応じて文書データの印刷や、ファックス送信などの処理を実行する。また、複合機100は、クライアント200からのHTTPリクエストに応じて、当該HTTPリクエストにおいて要求された情報を表示するWebページをクライアント200に対して送信する。例えば、クライアント200のユーザがWebブラウザから複合機100のステータス情報を要求した場合は、複合機100は、ステータス情報を格納したHTML(HyperText Markup Language)データをクライアント200に送信する。
このような適用が可能な発明の第1の実施の形態である画像処理装置は、出荷後に、顧客、サードベンダ等の第三者が外部アプリケーションを開発し、開発された外部アプリケーションを所定のインストーラにて大容量記憶装置であるハードディスク装置(HDD)にインストールし、HDDの診断後、外部アプリケーション起動部によってインストールされた外部アプリケーションをHDDから起動する機能を有する。
図2は、本発明の第1の実施の形態の複合機100のハードウェア構成図である。同図に示すように、この複合機は、CPU802、SDRAM803、SRAM808、フラッシュメモリ(フラッシュROM)210、ICカードインタフェース部806及びHDD103等をASIC801に接続してなるコントローラボード800を含む。更に複合機100は、オペレーションパネル810と、ファックスコントロールユニット(FCU)820と、USB830と、IEEE1394 840と、エンジン850とを含む。オペレーションパネル810はASIC801に直接接続され、他方FCU820、USB830、IEEE1394 840及びエンジン850はPCIバスを介してASIC801に接続されている。
フラッシュメモリ210は後述する如く起動可否データ211及びコンフィグレーションファイル212を格納する。又、フラッシュメモリ210には、汎用OS121、コントロールサービス及びプリンタアプリケーション111、コピーアプリケーション112等の既存アプリケーション130のプログラムが格納されている。
ICカードインタフェース部806は、ICカード807を挿入し、このICカード807とデータのやりとりを行うためのインタフェースである。ICカード807はインストール用記憶媒体として使用することもできる。その場合、新たに開発された外部アプリケーション117をICカード807に格納しておく。そして図3に示すインストーラ118の機能により、この外部アプリケーション117がICカード807から読み出され、HDD103にインストールされる。
上記第1の実施の形態に係る複合機100では以下に述べる動作がなされる。即ち、HDD103の診断処理が実施され、その診断結果で異常が見出されなかった場合、外部アプリケーション起動部131の機能によって、予めHDD103に格納された外部アプリケーション117が起動される。このように予め診断を行なうため、HDD103を外部アプリケーション117の保存領域として使用しても結果的に複合機100の信頼性を維持することができる。又このようにしてHDD103からの外部アプリケーション117の起動が可能となるため、複合機100の出荷後にHDD103を利用して外部アプリケーション117を任意に追加することが出来る。そしてその後HDD103から同アプリケーション117を起動させることにより、複合機100による多種多様な機能の実現が可能となる。
又、本第1の実施の形態に係る複合機100では、外部アプリケーション起動部131の機能により、外部アプリケーション117のライセンスキーの有効性が判断される。そして、その結果ライセンスキーが有効とされた場合、外部アプリケーション117が起動される。その結果、外部アプリケーション117のセキュリティを強化することができる。
又、本発明の実施の形態におけるハードディスク装置の診断は、そこに格納した外部アプリケーションを起動可能な程度に故障の有無を診断するものであればよい。即ち、この診断の内容としては、例えばハードディスク装置の物理的欠陥の検査、ファイルシステムの整合性等の検査等が考えられる。しかしながらこれらに限定されるものではない。
本実施の形態の複合機100では、診断部132によってHDD103の診断処理を行っている。しかしながらこの構成に限らず、外部アプリケーション起動部131でHDD103の診断処理を実行するようにしても良い。
次に、上記複合機100の機能につき、図3のブロック図と共に説明する。同図に示す如く複合機100は、白黒ラインプリンタ(B&W LP)101、カラーラインプリンタ(Color LP)102、ハードディスク装置(HDD)103、スキャナ、ファクシミリ、メモリ、ネットワークインタフェース等のハードウェアリソース104を有する。又同複合機100は、プラットホーム120、アプリケーション130、複合機初期化部129、診断部132、外部アプリケーション起動部131を含むソフトウェア群110を備える。
尚、上記白黒ラインプリンタ(B&W LP)101、カラーラインプリンタ(Color LP)102、スキャナ及びファクシミリは図2に示すエンジン850に該当する。、又上記の如く、このアプリケーション130の内から外部アプリケーション117を除いたプリンタアプリケーション111、コピーアプリケーション112、ファックスアプリケーション113、スキャナアプリケーション114、ネットファイルアプリケーション115、工程検査アプリケーション116、及びプラットフォーム120の各プログラムは、当該複合機100の出荷時は図2に示すフラッシュメモリ210に格納されている。そして複合機100の動作時にCPU802によりフラッシュメモリ210から適宜読み出されて高速アクセスが可能なSDRAM803に展開される。そしてそれ以後、必要に応じてCPU802によりSDRAM803から読み出されて実行される。
外部アプリケーション起動部131は、本発明による外部アプリケーション起動手段を構成し、HDD103の診断結果が正常である場合に、HDD103にインストールされている外部アプリケーション117を起動する。複合機初期化部129は、汎用OS121の上で最初に起動されるプロセスであり、コントロールサービスやアプリケーション130(外部アプリケーション117を除く)の起動及び診断部132及び外部アプリケーション起動部131の起動を行う。複合機初期化部129は、本発明における初期化手段を構成する。
診断部132は、HDD103の物理的欠陥やHDD103に生成されたファイルシステムの整合性等を診断し、診断結果をメッセージ送信等のプロセス間通信を利用して外部アプリケーション起動部131に送信する。なお、本実施の形態に係る複合機100では診断部132はHDD103の診断を行っているが、この他、SDメモリカード等の記憶媒体の診断を行うように構成することもできる。
プラットホーム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、カラーラインプリンタ(カラーLP)102、スキャナ、ファクシミリ等のハードウェアリソース103のエンジンの制御を行う。
MCS125によるプロセスは、画像メモリの取得及び解放、ハードディスク装置(HDD)の利用、画像データの圧縮及び伸張等を行う。
FCS127によるプロセスはシステムコントローラの各アプリケーション層からPSTN/ISDN網を利用したファクシミリ送受信、BKM(バックアップSRAM)で管理されている各種ファクシミリデータの登録/引用、ファクシミリ読みとり、ファクシミリ受信印刷、融合送受信を行うためのAPIを提供する。
NCS128によるプロセスは、ネットワークI/Oを必要とするアプリケーションに対して共通に利用できるサービスを提供するためのプロセスであり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分けたり、アプリケーションからデータをネットワーク側に送信する際の仲介を行う。具体的には、ftpd、httpd、lpd、snmpd、telnetd、smtpd等のサーバデーモンや、同プロトコルのクライアント機能等を有している。
OCS126によるプロセスは、オペレータ(ユーザ)と本体制御間の情報伝達手段となるオペレーションパネル(操作パネル)の制御を行う。OCS126は、OCSプロセスの部分とOCSライブラリの部分とを有する。OCSプロセスの部分はオペレーションパネルからキー押下をキーイベントとして取得し、取得したキーに対応したキーイベント関数をSCS122に送信する。OCSライブラリには、アプリケーション130又はコントロールサービスからの要求によりオペレーションパネルに各種画面を描画出力する描画関数その他オペレーションパネルに対する制御を行う関数等が予め登録されている。
このOCSライブラリは、アプリケーション130及びコントロールサービスの各モジュールにリンクされて実装されている。尚、OCS126の全てをプロセスとして動作させるように構成しても良く、あるいはOCS126の全てをOCSライブラリとして構成しても良い。
アプリケーション130は、以下に述べる各種アプリケーションを含む。即ち、ページ記述言語(PDL)、PCL及びポストスクリプト(PS)を有するプリンタ用のアプリケーションであるプリンタアプリケーション111、コピー用アプリケーションであるコピーアプリケーション112、ファクシミリ用アプリケーションであるファックスアプリケーション113、スキャナ用アプリケーションであるスキャナアプリケーション114、ネットワークファイル用アプリケーションであるネットファイルアプリケーション115、工程検査用アプリケーションである工程検査アプリケーション116を含む。
これらアプリケーション130の各プロセス及び上記コントロールサービスの各プロセスは、関数呼び出しとその戻り値送信及びメッセージの送受信によってプロセス間通信を行う。このようにして、コピー、プリンタ、スキャナ、ファクシミリ等の画像形成処理に係るユーザサービスが実現される。
このように、第1の実施の形態に係る複合機100は、複数のアプリケーション130及び複数のコントロールサービスを有し、こららはいずれもプロセスとして動作する。そして、これらの各プロセス内部には、一又は複数のスレッドが生成され、スレッド単位の並列実行が行われる。そして、コントロールサービスがアプリケーション130に対し共通サービスを提供している。このため、これらの多数のプロセスが並列動作を行なう。又、スレッドの並列動作が行なわれる。そしてこららが互いにプロセス間通信を行って協調動作をしながら、コピー、プリンタ、スキャナ、ファクシミリ等の画像形成処理に係るユーザサービスが提供される。
又、同複合機100では、顧客、サードベンダ等の第三者が外部アプリケーション117を開発し、これを上記コントロールサービス層の上のアプリケーション層に搭載することが可能である。図3は、この外部アプリケーション117が搭載された例が示されている。
第1の実施の形態に係る複合機100では、複数のアプリケーション130のプロセスと複数のコントロールサービスのプロセスとが協調して動作している。
インストーラ118は、本発明におけるインストール手段を構成し、第三者が開発した外部アプリケーション117をHDD103にインストールする機能を有する。本実施の形態に係る複合機100では、ICカード等の記憶媒体内に格納された外部アプリケーション117がインストーラ118によって読み出されてHDD103にインストールされる。そして外部アプリケーション起動部131によって、HDD103から上記外部アプリケーション117が起動され、アプリケーション層で動作される。
一方上記の如く、複合機100の出荷時に同時に提供されるアプリケーション130、即ちプリンタアプリケーション111、コピーアプリケーション112、ファックスアプリケーション113、スキャナアプリケーション114、ネットファイルアプリケーション115、工程検査アプリケーション116等、各コントロールサービス、診断部132及び外部アプリケーション起動部131は、出荷時にフラッシュメモリに組み込まれている。そして、複合機100の起動時(電源投入時)に複合機初期化部129によって起動される。
次に、外部アプリケーション起動部131の構成について説明する。図4は、本実施の形態に係る複合機100の外部アプリケーション起動部131の機能的構成を示すブロック図である。外部アプリケーション起動部131は、図4に示すように、初期化部201、オプション解析部202、診断結果通信部203、フラッシュメモリ管理部204、起動設定処理部205、アプリケーション記述処理部206、ライセンス判断部207、アプリケーション起動部208を含む。
又、HDD103には、一又は複数の外部アプリケーション117、HDD103から起動される外部アプリケーション117を指定するデータが設定された起動設定ファイル221、外部アプリケーション117の各種情報が設定されたアプリケーション記述ファイル222が格納されている。このように、本実施の形態では、起動設定ファイル221とアプリケーション記述ファイル222は、いずれもHDD103に格納された構成となっている。しかしながら、いずれか一方又は双方のファイルをフラッシュメモリ210あるいはその他の記憶媒体に格納した構成としても良い。
フラッシュメモリ210には、外部アプリケーション117のHDD103からの起動を有効とするか否かの情報を示す起動可否データ211が格納されている。この起動可否データ211として、外部アプリケーション117のHDD103からの起動を許可する場合には「有効」が、許可しない場合には「無効」が設定されている。この起動可否データ211は、オペレーションパネル810に表示される初期設定画面から設定可能である。
本実施の形態では、これらの各データ及びファイルはフラッシュメモリ210に格納されている。しかしながらこの構成に限られず、不揮発性メモリである限り、他の記憶媒体に格納するように構成しても良い。
又、フラッシュメモリ210にはコンフィグレーションファイル212が格納されている。このコンフィグレーションファイル212には、上記コントロールサービス、プリンタアプリケーション111、コピーアプリケーション112等の予め組み込まれている既存のアプリケーション130のうちの、起動すべきプログラムが設定されている。複合機の電源投入時には、複合機初期化部129がこのコンフィグレーションファイルを読み込み、その設定内容に従ってコントロールサービス、プリンタアプリケーション111、コピーアプリケーション112等の予め組み込まれている既存のアプリケーション130を起動する。
外部アプリケーション起動部131の構成のうち、初期化部201は、外部アプリケーション起動部131の初期化処理を行う。オプション解析部202は、外部アプリケーション起動部131が複合機初期化部129から起動される際、指定されたコマンドのオプションパラメータを解析する。
診断結果通信部203は、診断部132によって行われるHDD103の診断の終了待ちを行い、その診断結果を、メッセージ等のプロセス間通信によって受信する。又、診断結果通信部203は、受信した診断結果によってHDD103の状態を判定する。
フラッシュメモリ管理部204は、フラッシュメモリ210に格納されているデータやファイルの設定内容を読み出し、或いはこれを書き込む。具体的には、フラッシュメモリ管理部204は、起動可否データ211を読み込み、外部アプリケーション117をHDD103から起動するか否かを判断する。
起動設定処理部205は、HDD103に格納されている起動設定ファイル221を読み出して、その解析処理を行う。アプリケーション記述処理部206は、HDD103に格納されているアプリケーション記述ファイル222を読み出して、その解析処理を行う。ライセンス判断部207は、アプリケーション記述ファイル222に設定されているライセンスキーの正当性を判断する。
アプリケーション起動部208は、HDD103に格納されている外部アプリケーション117を起動する。このとき、アプリケーション起動部208は、アプリケーション記述ファイル222に設定されている実行コマンドを発行することにより、外部アプリケーション117を起動する。
次に、HDD103に格納されている起動設定ファイル221の内容について説明する。起動設定ファイル221は、本発明における起動設定情報を構成する。起動設定ファイル221には、HDD103にインストールされている外部アプリケーション117のプログラム名称のリストが記述されている。インストーラ118によって外部アプリケーション117がHDD103にインストールされるたびに各外部アプリケーション117のプログラム名称が図5に示す如くに書き込まれる
図5は、起動設定ファイル221の内容の一例を示す説明図である。外部アプリケーションのプログラムファイル名には、HDD103に生成されたファイルシステムにおけるプログラムファイル名が記述される。即ち、例えば、図示の如く、xx.xxx.sample、yy.yy.test、...の如くに記述される。このプログラム名称は一つの複合機100内で一意の名称である必要がある。
次に、HDD103に格納されているアプリケーション記述ファイル222の内容について説明する。アプリケーション記述ファイル222は、外部アプリケーション117毎に存在し、外部アプリケーション117のプログラムの属性情報を記述したものである。アプリケーション記述ファイル222は、外部アプリケーション117とともに、インストール用記憶媒体に格納され、外部アプリケーション117のHDD103のインストール時に外部アプリケーション117とともにHDD103に格納される。従って、HDD103に複数の外部アプリケーション117が保存されている場合、各外部アプリケーション117に対応して複数のアプリケーション記述ファイル222が存在する。
図6は、アプリケーション記述ファイル222の内容の一例を示す説明図である。図6に示すように、アプリケーション記述ファイル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によって実行される。図7は、インストーラ118の起動処理の手順を示すフローチャートである。
ここで外部アプリケーションを外部から導入して当該複合機へインストールするため、当該複合機にはPCカードインタフェース1806を設けるものとする。但し、この構成に限られず、ICカードインタフェース806を使用してICカード807から外部アプリケーションを読み出してHDD103にインストールするようにしても良い。即ち、PCカード1807用にPCカードインタフェース1806を別途設けることをせず、ICカードインタフェース807を利用し、外部アプリケーションをICカード807に書き込んで外部からの導入・インストールを行なっても良い。
まず利用者は、インストールする外部アプリが記憶されたPCカード1807をPCカードインタフェース部1806に挿入して複合機100の電源投入を行う。複合機100が電源投入されると、複合機100中の所定のプログラムであるROMモニタ(図示せず)によって、まずハードウェア資源の初期化、コントローラボードの診断が行われた後、汎用OS121が起動される。そして、複合機初期化部129が汎用OS121により起動される。この複合機初期化部129は、汎用OS121上で最初に起動されるプロセスとなる。
起動された複合機初期化部129は、PCカード1807が装着されている場合、PCカード1807からインストーラ起動設定ファイル1807a(図4参照)を読み込む(ステップS1501)。そして、インストーラ起動設定ファイル1807aに記述されているインストーラ起動コマンドを実行することにより、PCカード1807内のインストーラ1807bを起動する(ステップS1502)。これによって、PCカード1807内のインストーラ1807bが起動され、図3、図4に示すように、アプリケーション層にインストーラ118のプロセスが生成される。
次に、複合機初期化部129によって起動されたインストーラ118による外部アプリ117のインストール処理について説明する。図8は、外部アプリケーション117のインストール処理の手順を示すフローチャートである。
まず、インストーラ118は上記コマンド入力時のオプションパラメータの解析を行った後、アプリケーション記述ファイルを読み込む(ステップS1601)。ここで読み込まれるアプリケーション記述ファイルは、HDD103に格納されているファイル222とPCカード1807に格納されているファイル1807cの両方である。
そして、インストーラ118はこれら各アプリケーション記述ファイルの内容を解析して、HDD103のアプリケーション記述ファイル222の内容からインストール済みの外部アプリケーション117の属性情報を取得する。又、PCカード1807のアプリケーション記述ファイル1807cの内容から、インストール中の外部アプリケーション117、及びこれからインストールする外部アプリケーション117の夫々属性を取得する。そして、その属性の内容を表示したインストーラ画面をオペレーションパネル810の操作表示部に表示する(ステップS1602)。
図9は、インストーラ画面の一例を示す説明図である。図9に示すように、インストーラ画面には、インストール対象アプリケーションとして、アプリケーション記述ファイルからアプリケーション名称、バージョン、ベンダ名、インストールメディア数が読み出されて表示される。また、インストーラ画面には、インストール済みアプリケーションとして、アプリケーション記述ファイルからアプリケーション名称、バージョン、インストール日、ベンダ名が読み出され、これらが表示される。また、状態フィールドには、インストールが成功している場合には「OK」の表示がなされる。一方、インストール中の外部アプリケーションについては、インストールメディア番号が状態フィールドに表示される。
図9のインストーラ画面でインストールボタンのタッチ操作が行われると、そのキーイベントがインストーラ118によって取得される。そして、インストーラ118は、次にライセンスキー入力画面をオペレーションパネル810の操作表示部に表示し(ステップS1603)、さらにライセンスキー入力のためのソフトウェアキーボードを表示する(ステップS1604)。
図10は、ライセンスキー入力画面の一例を示す説明図である。このライセンスキー入力画面において、利用者は外部アプリ117のライセンスキーを入力する。図11は、ライセンスキーが入力された状態のライセンスキー入力画面の一例を示す説明図である。
図11に示すライセンスキー入力画面でライセンスキーが入力される。更に、「OK 」ボタンのタッチ操作が行われると、インストーラ118は入力されたライセンスキーの正当性を判定する。この判定は、アプリケーション記述ファイル1807cに設定されたライセンスキーと、入力された比較することによりなされる(ステップS1605)。そして、正当でない(ライセンスキーが一致しない)と判定された場合には、その旨のエラーメッセージが表示され(ステップS1606)、インストール処理が終了される。
一方、入力されたライセンスキーが正当である(ライセンスキーが一致する)と判定された場合、インストーラ118はHDD103にインストールディレクトリを生成する(ステップS1607)。更にインストーラ118はPCカード1807のアプリケーションパッケージファイル1807dを展開し、外部アプリケーション117をHDD103のインストールディレクトリにコピーする(ステップS1608)。
次に、インストーラ118は、PCカード1807内のアプリケーション記述ファイル1807cをHDD103にコピーする(ステップS1609)。そしてインストーラ118はHDD103の起動設定ファイル221に、インストールした外部アプリケーション117のファイル名を追加する(ステップS1610)。これによって、外部アプリケーション117のインストール処理が完了する。これ以降は、外部アプリケーション起動部131の機能により、HDD103から外部アプリケーション117を起動することが可能となる。
次に、このように構成された本実施の形態の複合機100において、外部アプリケーション117の起動の前提となる複合機100の初期化処理について説明する。図12は、複合機初期化部129による初期化処理の手順を示すフローチャートである。複合機100が電源投入されると、ROMモニタ(図示せず)により、まずハードウェア資源の初期化、コントローラボードの診断が行われる。その後、汎用OS121が起動する。そして、複合機初期化部129は汎用OS121により起動される。この複合機初期化部129は、汎用OS121上で最初に起動されるプロセスとなる。
起動された複合機初期化部129は、フラッシュメモリ210からコンフィグレーションファイル212を読み込み、コンフィグレーションファイル212に設定されている内容からコントロールサービスの起動を行う(ステップS501)。次に、コンフィグレーションファイル212の設定内容に従って、プリンタアプリケーション111、コピーアプリケーション112、スキャナアプリケーション114、ファックスアプリケーション113、ネットファイルアプリケーション116及び工程検査アプリケーション116等の予め組み込まれている既存アプリケーションの起動を行う(ステップS502)。そして診断部132を起動し、HDD103の診断処理を実行させる(ステップS503)。これによって、HDD103の物理的欠陥の検査、ファイルシステムの検査等の診断処理が開始される。次に、外部アプリケーション起動部131の起動を行う(ステップS504)。
次に、複合機初期化部129によって起動された外部アプリケーション起動部131による外部アプリケーション117の起動処理について説明する。図13は、外部アプリケーション起動部131による外部アプリケーション117の起動処理の手順を示すフローチャートである。
外部アプリケーション起動部131は、まずフラッシュメモリ210から起動可否データ211を読み込み(ステップS601)、HDD103からの外部アプリケーション117の起動が有効に設定されているか否かを判断する(ステップS602)。そして、無効である場合には(ステップS602:No)、外部アプリケーション117の起動は行わず終了する。
一方、起動可否データ211に起動有効と設定されている場合には(ステップS602:Yes)、診断部132による診断結果の通知待ち状態となる(ステップS603)。そして診断部132から診断結果を受信した場合には(ステップS603:Yes)、診断結果が異常なしか否かを判断する(ステップS604)。診断結果が異常ありの場合(ステップS604:No)には、エラーメッセージ等をオペレーションパネル810の表示部に出力して、外部アプリケーション117の起動は行わない。
一方、診断結果が異常なしの場合には(ステップS604:Yes)、外部アプリケーション117の起動処理を行うため、HDD103から起動設定ファイル221を読み込む。そして、起動設定ファイル221に設定されているプログラム名称、すなわちHDD103にインストールされているすべての外部アプリケーション117のプログラム名称を取得する(ステップS605)。次に、取得したプログラム名称を有する外部アプリケーション117のアプリケーション記述ファイル222を読み込む(ステップS606)。
そして、アプリケーション記述ファイル222に設定されているライセンスキーが期限切れや異常でないか等、ライセンスキーの有効性について判定する(ステップS607)。そして、ライセンスキーが有効であると判定した場合には(ステップS607:Yes)、外部アプリケーション117をHDD103から起動する(ステップS608)。このとき、外部アプリケーション起動部131のアプリケーション起動部308は、アプリケーション記述ファイル222に設定されている実行コマンドを発行することにより外部アプリケーションを起動する。
一方、ライセンスキーが有効でないと判定した場合には(ステップS607:No)、HDD103からの外部アプリケーション117の起動は行わない。このとき、その旨のエラーメッセージをオペレーションパネル810の表示部に出力するようにしても良い。
上記ステップS606からS608までの処理を、起動設定ファイル221に設定されているすべての外部アプリケーション117について繰り返し行う(ステップS609)。これによって、図3に示すように、HDD103にインストールされているすべての外部アプリケーション117が起動され、アプリケーション層で実行される。
ここで、ステップS601で読み込まれる起動可否データ221の内容は、複合機100のオペレーションパネル810から設定することが可能である。初期設定画面は、SCS122によってOCS126の関数ライブラリの描画関数が呼び出されることにより、オペレーションパネル810に表示される。
図15は、初期設定画面の一例を示す説明図である。操作者は図15に示す画面上で外部アプリケーション起動の可否を設定する。すなわち、図15の画面において、操作者「有効」をタッチ操作し「OK」ボタンをタッチ操作すると、そのイベントがOCS126により取得される。そして、そのイベントはSCS122により外部アプリケーション起動部131のフラッシュメモリ管理部204に通知される。それを受け、フラッシュメモリ管理部204は、フラッシュメモリ210の起動可否データ221の内容を「有効」に更新する。
又、図15の画面において、「無効」がタッチ操作され「OK」ボタンがタッチ操作されると、同様の手順でフラッシュメモリ管理部204は、フラッシュメモリ210の起動可否データ221の内容を「無効」に更新する。
図14は上述の複合機初期化処理による各アプリケーションの起動の様子を時間を追って示したものである。同図に示す如く、複合機初期化部129によって各種サービス/アプリケーション111乃至116、122乃至128、診断部132、外部アプリケーション起動部131が順次起動される。そして診断部132は起動後HDD103の診断を実施し、他方、外部アプリケーション起動部131もこれと平行して外部アプリケーション117を起動するにあたって必要となる前処理を実行する。
又一方、それ以外の各種サービス/アプリケーション111乃至116、122乃至128、即ちHDD103ではなくフラッシュメモリ210に格納されたプログラムは、上記診断部132による診断処理とは独立して起動を完了し、夫々の機能が実行可能な状態となる。そのため、診断部132による診断動作中にあっても、例えばコピーアプリケーション112によるコピー処理、ファックスアプリケーション113によるファックス送信処理等が実行可能である。
診断部132によるHDD103の診断が終了して異常無しの診断結果が得られると、その情報が診断部132から外部アプリケーション起動部131に通知される。この通知を受けた外部アプリケーション起動部131はHDD103に格納された外部アプリケーション117の起動を行なう。その結果外部アプリケーション117によるサービスの提供が可能となる。
このように本発明の実施の形態によれば、HDD103に格納された外部アプリケーション117の診断中も、これとは独立して他のフラッシュメモリ210に格納されたプログラムの起動及び起動後の通常の動作が可能となる。したがってHDD103を利用することにより外部アプリケーション117による新たな機能付加が可能となると同時に、既存アプリケーションによる既存の機能についてはHDD103の診断の間待たされることなく迅速な利用が可能である。したがって利用者の利便性の効果的な向上が図れる。
尚、図14中、縦軸は各モジュールに対応し、それに沿ってハッチングが付された部分は、そのモジュールが動作している時間を示す。
尚、以下にHDD103に関し上述の如く診断が必要となる理由について説明する。その理由の一つは周知の如くHDD103は高速に磁気記録媒体としてのディスクを回転させ、その状態でリード/ライトヘッドによる情報の読み出し/書き込みを行なう。そのため、その他の機械的可動部を有さない半導体記憶装置等に比して、その機構部分における故障の可能性が高いと言われている。
第2の理由は、HDDを情報記録媒体として使用するにあたり、一般に周知の「ファイルシステム」と称されるソフトウェアが使用される。このファイルシステムは通常OSに装備され、HDDに情報をファイル形式で記録する際の当該ファイル構造の管理機能を果たす。このファイルシステムの存在により大容量のHDDを利用する際の利用者の利便性の向上が図られている。その機能の代表的なものとして、キャッシュメモリを利用した非同期書き込み機能が挙げられる。即ち、一般に半導体記憶装置に比してアクセス速度が遅いHDDに対してキャッシュメモリを使用して非同期書き込みを行なうことにより。利用者にとって見かけ上レスポンスタイムの向上が図られる。このようなファイルシステムの機能については、例えば以下のURLにて公開されている「Linuxファイルシステム技術解説」(http://www.atmarkit.co.jp/flinux/index/indexfiles/linuxfsindex.html、2003年8月8日現在)中の「第1回、VFSとファイルシステムの基礎技術」(http://www.atmarkit.co.jp/flinux/rensai/fs01/fs01a.html、2003年8月8日現在)に示されている。
ファイルシステムは上述の如くの機能の実現のため、HDDの記録領域中にFAT(ファイルアロケーションテーブル)等の管理情報を設け、その管理情報を解釈しながら情報の記録再生を行なう。即ち予め決められたアドレスに所定の順序で情報を書き込む形態の記録媒体とは異なり、HDDに対して情報を記録する場合必ずしも所定の順序で書き込まれない場合が多い。そのため、FAT等によりファイルを構成する情報の記録アドレスを管理する必要があるのである。その結果、何らかの原因により管理情報と実際の記録アドレスとの間の整合性が崩れた場合、正常な情報の読み出しは不可能となる。このような事態を防止するため、HDDでは一般に格納されたプログラムを起動する前にその診断処理を行うのである。
上述の如く、第1の実施の形態に係る複合機100は、HDD103の診断処理を行う。そしてその診断結果が正常を示す場合に、HDD103にインストールされている外部アプリケーション117を起動する。他方以下に説明する本発明の第2の実施の形態に係る複合機100は、HDD103に加え、フラッシュカード等のICカードに格納されている外部アプリケーション117をも起動する機能を有する。
第2の実施の形態に係る複合機100の機能的構成及びハードウェア構成は上記第1の実施の形態の複合機100と同様である。図16は、第2の実施の形態に係る複合機100の外部アプリケーション起動部931を中心とした特徴的構成を示すブロック図である。
図16に示すように、外部アプリケーション起動部931は、第1の実施の形態の複合機100同様、初期化部201、オプション解析部202、診断結果通信部203、フラッシュメモリ管理部204、起動設定処理部905、アプリケーション記述処理部906、ライセンス判断部207、アプリケーション起動部908を含む。
起動設定処理部905は、HDD103の他ICカード807に格納されている起動設定ファイル221を読み出し、その解析処理を行う。アプリケーション記述処理部906は、HDD103に加えてICカード807に格納されているアプリケーション記述ファイル222を読み出し、その解析処理を行う。アプリケーション起動部908は、HDD103に加えてICカード807に格納されている外部アプリケーション117を起動する。このとき、アプリケーション記述ファイル222に設定されている実行コマンドを発行することにより、外部アプリケーション117を起動する。なお、他の各部は第1の実施の形態の外部アプリケーション起動部131と同様の機能を有している。
HDD103には、第1の実施の形態と同様に、一又は複数の外部アプリケーション117、HDD103から起動すべき外部アプリケーション117を指定するデータが設定された起動設定ファイル221、及び外部アプリケーション117の各種情報が設定されたアプリケーション記述ファイル222が格納されている。
又、ICカード807にも、一又は複数の外部アプリケーション117、起動すべき外部アプリケーション117を指定するデータが設定された起動設定ファイル221、及び外部アプリケーション117の各種情報が設定されたアプリケーション記述ファイル222が格納されている。ICカード807は、本発明における外部アプリケーション記憶媒体を構成する。ICカード807に対し、本発明の記憶媒体インタフェース手段を構成するICカードインタフェース部806によってデータの入出力が行われる。ここで、ICカード807として、例えばSDカード等の不揮発性記憶媒体を使用してもよい。又、この実施の形態の場合、ICカード807として、書き込み不可のものを想定している。但しこの例に限られず、書き込み可な構成のICカードを適用した実施の形態を想定することも又可能である。
起動設定ファイル221とアプリケーション記述ファイル222の内容は、第1の実施の形態の複合機100におけるものと同様である。なお、本実施の形態では、起動設定ファイル221とアプリケーション記述ファイル222は、いずれも対象となる外部アプリケーション117が保存されている記憶媒体に格納されている。しかしながらこの構成に限られず、外部アプリケーション117が格納された記憶媒体と異なる記憶媒体、例えばフラッシュメモリ210あるいはその他の記憶媒体に格納されるようにしてもよい。
フラッシュメモリ210には、第1の実施の形態同様、コンフィグレーションファイル212、及び外部アプリケーション117のHDD103からの起動を有効とするか否かの情報を示す起動可否データ211が格納されている。起動可否データ211の設定内容については、第1の実施の形態の複合機100におけるものと同様である。なお、起動可否データ211に、さらにICカード807からの外部アプリケーション117の起動可否を設定するようにしても良い。
次に、このように構成された外部アプリケーション起動部931による外部アプリケーション117の起動処理について説明する。図17は、外部アプリケーション起動部931による外部アプリケーション117の起動処理の手順を示すフローチャートである。
外部アプリケーション起動部931は、まずフラッシュメモリ210から起動可否データ211を読み込み(ステップS1001)、HDD103からの外部アプリケーション117の起動が有効に設定されているか否かを判断する(ステップS1002)。そして、無効である場合には(ステップS1002:No)、HDD103からの外部アプリケーション117の起動は行わず、ICカード807のみからの起動処理を開始する。尚、この起動設定が無効である場合(ステップS1002:No)に、HDD103からの外部アプリケーション117の起動に加え、ICカード807からの外部アプリケーション117の起動も行なわないようにしても良い。
一方、起動可否データ211に起動有効と設定されている場合には(ステップS1002:Yes)、HDD103及びICカード807からの外部アプリケーション117の起動処理を開始し、診断部132による診断結果の通知待ち状態となる(ステップS1003)。そして診断部132から診断結果を受信した場合には(ステップS1003:Yes)、診断結果が異常なしか否かを判断する(ステップS1004)。診断結果が異常ありの場合(ステップS1004:No)には、エラーメッセージ等をオペレーションパネル810の表示部に出力して、HDD103からの外部アプリケーション117の起動は行わず、ICカード807のみからの外部アプリケーション117の起動処理を開始する。
一方、診断結果が異常なしの場合には(ステップS1004:Yes)、外部アプリケーション117の起動処理を行うため、HDD103及びICカード807から起動設定ファイル221を読み込み、起動設定ファイル221に設定されているプログラム名称、すなわちHDD103及びICカード807にインストールされているすべての外部アプリケーション117のプログラム名称を取得する(ステップS1005)。次に、取得したプログラム名称の外部アプリケーション117のアプリケーション記述ファイル222をHDD103及びICカード807から読み込む(ステップS1006)。
そして、アプリケーション記述ファイル222に設定されているライセンスキーが期限切れや異常でないか等、ライセンスキーの有効性について判断する(ステップS1007)。そして、ライセンスキーが有効であると判断した場合には(ステップS1007:Yes)、外部アプリケーション117をHDD103及びICカード807から起動する(ステップS1008)。このとき、外部アプリケーション起動部131のアプリケーション起動部308は、アプリケーション記述ファイル222に設定されている実行コマンドを発行することにより、HDD103及びICカード807から外部アプリケーション117を起動する。
一方、ライセンスキーが有効でないと判断した場合には(ステップS1007:No)、HDD103及びICカード807からの外部アプリケーション117の起動は行わない。このとき、その旨のエラーメッセージをオペレーションパネル810の表示部に出力するようにしても良い。
なお、ICカード807がICカードインタフェース部806に装着されていない場合には、HDD103にインストールされている外部アプリケーション117のみが起動される。
上記ステップS1006からS1009までの処理を、HDD103及びICカード807の起動設定ファイル221に設定されているすべての外部アプリケーション117について繰り返し行う(ステップS1014)。これによって、HDD103及びICカード807に保存されているすべての外部アプリケーション117が起動され、アプリケーション層で実行される。
ステップS1002によって、HDD103からの外部アプリケーション117の起動が無効であると判断された場合、及びステップS1004においてHDD103の診断結果が異常ありと通知された場合には、HDD103からの外部アプリケーション117の起動は行われず、ICカード807のみからの起動処理が実行される。
その場合まず、ICカード807から起動設定ファイル221が読み込まれ、起動設定ファイル221に設定されているプログラム名称、すなわちICカード807にインストールされているすべての外部アプリケーション117のプログラム名称が取得される(ステップS1010)。次に、取得されたプログラム名称の外部アプリケーション117のアプリケーション記述ファイル222がICカード807から読み込まれる(ステップS1011)。
そして、アプリケーション記述ファイル222に設定されているライセンスキーの有効性について判断する(ステップS1012)。そして、ライセンスキーが有効であると判断した場合には(ステップS1012:Yes)、外部アプリケーション117をICカード807から起動する(ステップS1013)。
一方、ライセンスキーが有効でないと判断した場合には(ステップS1012:No)、ICカード807からの外部アプリケーション117の起動は行わない。このとき、その旨のエラーメッセージをオペレーションパネル810の表示部に出力するようにしても良い。
上記ステップS1011からS1013までの処理を、ICカード807の起動設定ファイル221に設定されているすべての外部アプリケーション117について繰り返し行う(ステップS1014)。これによって、ICカード807に保存されているすべての外部アプリケーション117が起動され、アプリケーション層で実行される。
このように第2の実施の形態に係る複合機100では、外部アプリケーション起動部931がHDD103の診断が終了した後に、HDD103及びICカード807に格納された外部アプリケーション117を起動しているので、HDD103とICカード807を外部アプリケーション117の保存領域として利用する。このため、複合機100の信頼性を維持しつつ、HDD103からの外部アプリケーション117の起動を行うことができる。このため、複合機100の出荷後にICカード807とHDD103とを利用して外部アプリケーション117を任意に追加及び起動させることができ、複合機100に多種多様な機能を搭載することができる。
又、第2の実施の形態に係る複合機100では、外部アプリケーション部931が、HDD103の診断結果が異常である旨を通知されたとき、ICカード807に保存されている外部アプリケーション117のみを起動する。したがってHDD103が故障等している場合でも、起動処理を続行して複合機100にICカード807の外部アプリケーション117による機能を実現することができる。
又、第2の実施の形態に係る複合機100では、起動可否データ211にHDD103からの外部アプリケーション117の起動をしない旨の設定がされている場合、外部アプリケーション起動部931によって、ICカード807に格納された外部アプリケーション117のみが起動される。したがってHDD103からの外部アプリケーション117の起動の有無を設定することが出来る。そのため、必要に応じてHDD103の外部アプリケーション117の利用に制限を与えつつ、ICカード807の外部アプリケーション117による多種多様の機能を実現することができる。
なお、図17におけるICカード807からの外部アプリケーションの起動は、ステップS1004の診断結果を出すための診断動作の完了を待つこと無く、ステップS1002の判定が「有効」の場合に即実行可能である。
また、第1の実施の形態及び2に係る複合機100では、大容量記憶装置としてHDD103を使用した例をあげたが、この他SDメモリカードを使用した例についても本発明を適用することが可能である。