説明

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

【課題】モジュール単位で認証を行うことで、セキュリティを向上させる。
【解決手段】複合機100は、更新対象となる各アプリを構成するモジュールと、更新の対象となるモジュールを識別するモジュールIDを入力する入力処理部151を有するROM更新アプリ117と、モジュールIDで識別されるモジュール毎に更新を許可するか否か示す情報を保持する認証情報に基づいて、モジュールIDで識別されるモジュールに対して、更新を許可する権限があるか否か認証を行うCCS130と、更新を許可する権限があることを認証した場合に、前記識別情報で識別されるモジュールの更新を行うROM更新部を有する複合機起動部140と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、モジュール単位でカスタマイズを行う画像処理装置、情報処理方法及び情報処理プログラムに関するに関するものである。
【背景技術】
【0002】
従来、複合機(MFP)上には、様々なアプリケーションが搭載されている。そして、近年、複合機上に搭載されるソフトウェアとしては、アプリケーション等ソフトウェアの構成単位である処理モジュールから、より細かい単位へと移行し、利用者の要求に応じてより柔軟なサービスの提供が可能となっている。
【0003】
また、複合機(MFP)はネットワークに接続されているため、ネットワークを介して接続されたPCからのソフトウェアのカスタマイズが可能となる。これにより、利用者の要求に応じたカスタマイズが容易となり、柔軟なサービスの提供が可能となった。
【0004】
しかしながら、従来は、複合機に搭載されたソフトウェアのカスタマイズは、特定の管理者に限定されていた。このため、利用者個人で、複合機に搭載されているソフトウェアのカスタマイズを行うことはできなかった。
【0005】
仮に、各利用者にソフトウェアカスタマイズを認めた場合、利用者はソフトウェアを使用目的に応じてカスタマイズすることで、柔軟に変更することが可能となる。つまり、アプリケーションのカスタマイズを、特定の管理者に限定することは、必ずしも望ましいものとではないといえる。
【0006】
そこで、各利用者にソフトウェアカスタマイズを可能とするためには、複合機における認証が必要となる。特許文献1には、利用者毎に認証を行う技術が記載されている。当該技術を用いることで、利用者毎に認証が可能となる。
【0007】
【特許文献1】特開2004−5408号公報
【発明の開示】
【発明が解決しようとする課題】
【0008】
しかしながら、特許文献1に記載された技術では、利用者毎の認証に制限され、カスタマイズの対象となるソフトウェア単位で、認証を行う技術ではない。
【0009】
つまり、複合機に搭載されたソフトウェアには、複合機に蓄積された重要データや、個人情報を含む機密情報を使用するソフトウェアもある。であれば、これら重要データや機密情報の漏洩を防止するためには、利用者単位で認証を行うのではなく、ソフトウェア単位でカスタマイズを許容するか否か設定する必要がある。
【0010】
本発明は、上記に鑑みてなされたものであって、カスタマイズの対象となるソフトウェア単位で認証を行うことで、利用者の利便性と機密性の両立を図る画像処理装置、情報処理方法及び情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【0011】
上述した課題を解決し、目的を達成するために、請求項1にかかる発明は、モジュールと、カスタマイズの対象となる前記モジュールを識別する識別情報を入力する入力処理手段と、前記識別情報で識別されるモジュール毎にカスタマイズを許可するか否か示す情報を保持する認証情報に基づいて、前記識別情報で識別されるモジュールに対して、カスタマイズを許可する権限があるか否か認証を行う認証手段と、カスタマイズを許可する権限があることを認証した場合に、前記識別情報で識別されるモジュールのカスタマイズを行う制御手段と、を備えたことを特徴とする。
【0012】
また、請求項2にかかる発明は、請求項1にかかる発明において、前記認証情報を記憶する記憶手段をさらに備え、前記判断手段は、前記記憶手段に記憶された識別情報に基づいて、前記識別情報で識別されるモジュールのカスタマイズを許可するか否か判断すること、を特徴とする。
【0013】
また、請求項3にかかる発明は、請求項1にかかる発明において、前記認証手段は、ネットワークを介して接続された認証装置に対して認証要求を行うことで、前記認証情報を備える認証装置から認証結果を得られることで、前記識別情報で識別されるモジュールに対して、カスタマイズを許可する権限があるか否か認証を行うこと、を特徴とする。
【0014】
また、請求項4にかかる発明は、請求項1乃至3のいずれか1つにかかる発明において、前記入力処理手段は、さらに、前記モジュールを構成するサブモジュールを識別する前記識別情報の入力し、前記認証手段は、前記認証情報に基づいて、前記識別情報で識別される前記サブモジュールに対して、カスタマイズを許可する権限があるか否か認証を行い、前記制御手段は、さらに、サブモジュール単位でカスタマイズを行うこと、を特徴とする。
【0015】
また、請求項5にかかる発明は、請求項1にかかる発明において、カスタマイズの対象となる前記モジュール単位の更新データを取得する取得手段を、さらに備え、前記制御手段は、前記取得手段により取得された更新データを用いて、前記モジュール単位で更新を行うこと、を特徴とする。
【0016】
また、請求項6にかかる発明は、請求項1乃至5のいずれか1つにかかる発明において、前記認証手段が認証に用いる前記認証情報は、個人情報を使用するモジュールに対してカスタマイズを許可しないことを示す情報が含まれていること、を特徴とする。
【0017】
また、請求項7にかかる発明は、請求項1乃至6のいずれか1つにかかる発明において、前記入力処理手段は、ネットワークを介して接続された情報処理装置から、当該情報処理装置がカスタマイズを実行する前記モジュールを識別する識別情報の入力すること、を特徴とする。
【0018】
また、請求項8にかかる発明は、カスタマイズの対象となる前記モジュールを識別する識別情報を入力する入力処理ステップと、前記識別情報毎にカスタマイズを許可するか否か示す情報を保持する認証情報に基づいて、前記識別情報で識別されるモジュールに対して、カスタマイズを許可する権限があるか否か認証を行う認証ステップと、カスタマイズを許可する権限があることを認証した場合に、前記識別情報で識別されるモジュールのカスタマイズを行う制御ステップと、を有することを特徴とする。
【0019】
また、請求項9にかかる発明は、カスタマイズの対象となる前記モジュールを識別する識別情報を入力する入力処理手段と、前記識別情報毎にカスタマイズを許可するか否か示す情報を保持する認証情報に基づいて、前記識別情報で識別されるモジュールに対して、カスタマイズを許可する権限があるか否か認証を行う認証手段と、カスタマイズを許可する権限があることを認証した場合に、前記識別情報で識別されるモジュールのカスタマイズを行う制御手段と、して機能させることを特徴とする。
【発明の効果】
【0020】
本発明によれば、モジュール単位でカスタマイズ可能か否かの制御を行うことが可能になるので、セキュリティを向上させることができるという効果を奏する。
【発明を実施するための最良の形態】
【0021】
以下に添付図面を参照して、この発明にかかる画像処理装置を適用した複合機の最良な実施の形態を詳細に説明する。なお、以下に示す実施の形態は、画像処理装置を複合機に制限するものではなく、さまざまな画像処理装置に適用することができる。
【0022】
以下に示す実施の形態は、コピー機能、ファクシミリ(FAX)機能、プリント機能、スキャナ機能及び入力画像(スキャナ機能による読み取り原稿画像やプリンタあるいはFAX機能により入力された画像)を配信する機能等を複合したいわゆるMFP(Multi Function Peripheral)と称される複合機100に適用した例を示す。
【0023】
複合機100における、モジュール又はサブモジュールの認証手法として2つの手法がある。第1の手法としては、認証処理を複合機100が実行するローカル認証手法とする。第2に手法としては、認証処理を、複合機100とネットワークを介して接続されたNTサーバやLDAPサーバ等の「認証サーバ」に実行させるリモート認証手法とする。そして、本実施の形態では、ローカル認証手法について説明する。
【0024】
まず、複合機100の全体構成について説明する。図1は、第1の実施の形態にかかる複合機100の全体構成を示すブロック図である。
【0025】
本図に示すように、複合機100は、白黒ラインプリンタ(B&W LP)101と、カラーラインプリンタ(Color LP)102と、HDD103と、ネットワークI/F105と、SDRAM106と、スキャナ、ファクシミリ、メモリなどのその他ハードウェアリソース104と、ソフトウェア群110とを有するように構成される。また、ソフトウェア群110は、プラットフォーム120と、アプリケーション150とを有するように構成される。
【0026】
プラットフォーム120は、アプリケーション150からの処理要求を解釈してハードウェア資源の獲得要求を発生させる各種コントロールサービスと、1つ以上のハードウェア資源の管理を行って各種コントロールサービスからの獲得要求を調停するシステムリソースマネージャ(以下、SRMという)123と、オペレーティングシステム(以下、OSという)121とを有するように構成されている。
【0027】
コントロールサービスは、システムコントロールサービス(以下、SCSという)122、エンジンコントロールサービス(以下、ECSという)124、メモリコントロールサービス(以下、MCSという)125、オペレーションパネルコントロールサービス(以下、OCSという)126、ファックスコントロールサービス(以下、FCSという)127、NCS(ネットワークコントロールサービス)128、UCS(ユーザ情報管理サービス)129、CCS(認証コントロールサービス)130など1つ以上のサービスモジュールを有するように構成されている。
【0028】
なお、プラットフォーム120は予め定義されている関数によりアプリケーション150からの処理要求を受信可能とするアプリケーションプログラムインターフェース(以下、APIという)を有するように構成されている。
【0029】
OS121は、UNIX(登録商標)などの汎用オペレーティングシステムであって、プラットフォーム120およびアプリケーション150の各ソフトウェアをプロセスとして並列実行する。
【0030】
SRM123のプロセスは、SCS122と共にシステムの制御およびリソースの管理を行うものである。例えば、SRM123のプロセスは、スキャナ部やプリンタ部などのエンジン、メモリ、ハードディスク装置(HDD)ファイル、ホストI/O(セントロインターフェース、ネットワークインターフェース、IEEE1394インターフェース、RS232Cインターフェースなど)のハードウェア資源を利用する上位層からの要求にしたがって調停を行い、実行制御する。
【0031】
具体的には、SRM123は、要求されたハードウェア資源が利用可能であるか(他の要求により利用されていないかどうか)を判定し、利用可能であれば要求されたハードウェア資源が利用可能である旨を上位層に伝える。また、SRM123は、上位層からの要求に対してハードウェア資源の利用スケジューリングを行い、例えばプリンタエンジンにより紙搬送と作像動作、メモリ確保、ファイル生成などの要求内容を直接実施している。
【0032】
SCS122のプロセスは、アプリ管理、操作部制御、システム画面表示、LED表示、リソース管理、割り込みアプリ制御などを行う。
【0033】
ECS124のプロセスは、白黒ラインプリンタ(B&W LP)101、カラーラインプリンタ(Color LP)102、HDD103、スキャナ、ファクシミリなどからなるハードウェアリソース107のエンジンの制御を行う。
【0034】
MCS125のプロセスは、画像メモリの取得および解放、ハードディスク装置(HDD)の利用、画像データの圧縮および伸張などを行う。
【0035】
OCS126は、オペレータ(ユーザ)と本体制御間の情報伝達手段となるオペレーションパネル(操作パネル170)の制御を行う。OCS126は、操作パネル170からキー押下(またはタッチ操作)をキーイベントとして取得し、取得したキーに対応したキーイベント関数をSCS122に送信するOCSプロセスの部分と、アプリケーション150またはコントロールサービスからの要求により操作パネル170に各種画面を描画出力する描画関数や、その他の操作パネル170に対する制御を行う関数などがあらかじめ登録されたOCSライブラリの部分とから構成される。
【0036】
このOCSライブラリは、アプリケーション150およびコントロールサービスの各モジュールにリンクされて実装されている。なお、OCS126のすべてをプロセスとして動作させるように構成してもよいし、あるいはOCS126のすべてをOCSライブラリとして構成してもよい。
【0037】
FCS127のプロセスは、システムコントローラの各アプリケーション層からPSTNまたはISDN網を利用したファクシミリ送受信、BKM(バックアップSRAM)で管理されている各種ファクシミリデータの登録/引用、ファクシミリ読みとり、ファクシミリ受信印刷、融合送受信を行うためのアプリケーションを提供する。
【0038】
NCS128は、ネットワークI/Oを必要とする複合機100上のスキャナアプリ114等のアプリケーションに対し、共通に利用できるサービスを提供するためのプロセスであり、ネットワーク側から受信したデータを各アプリケーションに振り分ける処理や、アプリケーションからデータをネットワーク側に送信する際の仲介処理を行う。
【0039】
UCS129は、図示しないユーザデータベース等により複合機100を使用するユーザ情報の管理を行うプロセスであり、要求に応じたユーザ情報が格納されている記憶装置を判定し、判定した記憶装置からユーザ情報を取得して各アプリケーションに供給する処理を行う。
【0040】
CCS130は、HDD103に格納されている認証ファイル226を用いて、カスタマイズ対象となるモジュール又はサブモジュールに対する認証を行うプロセスである。なお、詳細な構成等については後述する。
【0041】
そして、複合機100は、アプリケーション150として、プリンタアプリ111と、コピーアプリ112と、ファックスアプリ113と、スキャナアプリ114と、メール自動配信アプリ115と、工程検査アプリ116と、ROM更新アプリ117とを備えている。
【0042】
そして、アプリケーション150のうち、プリンタアプリ111、コピーアプリ112、ファックスアプリ113、スキャナアプリ114、メール自動配信アプリ115、及び工程検査アプリ116は、カスタマイズ対象となるアプリケーションとする。
【0043】
このように、本実施の形態にかかる複合機100には、アプリケーション150として、一つ以上のモジュールが搭載されている。そして、利用者が、アプリケーション等をカスタマイズする時に、モジュール単位でカスタマイズを許容するか否かを、CCS(認証コントロールサービス)130で認証する。そして、CCS130による認証結果に基づいて、各モジュールのカスタマイズを制御する。
【0044】
本実施の形態では、独立して分割できるソフトウェアの単位を、モジュールとする。図2は、本実施の形態にかかる複合機100に搭載されているアプリケーション150のモジュール構成を示した説明図である。図2に示すアプリケーション(111〜115)は、それぞれ1つのモジュールで構成されている。そして、各モジュールは、サブモジュール200a〜200nの組み合わせで構成されている。
【0045】
また、アプリケーション150のみならず、図1のプラットフォーム120内の各コントロールサービスも、モジュール単位で構成され、これらモジュールについてもサブモジュールの組み合わせで構成されている。
【0046】
本実施の形態では、これらモジュール又はサブモジュール単位で、認証を行うものとするが、さらに細かいソフトウェア単位で認証を行ってもよい。この認証手法についても本実施の形態と同様の手法で可能となる。
【0047】
図2に示すソフトウェア構成例では、モジュールの一つにアドレス帳を使用するサブモジュール(例えば、アドレス抽出処理サブモジュール200m)を含んでいる。このサブモジュールが使用するアドレス帳は、個人情報である。このため、アドレス帳を使用するアドレス抽出処理サブモジュール200mは、容易にカスタマイズをできないように保護する必要がある。
【0048】
図1に戻り、ROM更新アプリ117は、入力処理部151と、格納処理部152と、通知部153とを備え、モジュール又はサブモジュールが格納されたROMの更新を行うための処理を行うアプリケーションとする。ROM更新アプリ117は、リモートからのROM更新を可能にし、遠隔からアプリケーションの更新を可能とする。
【0049】
入力処理部151は、カスタマイズ(更新)に用いる更新データと共に、カスタマイズの対象となるモジュール又はサブモジュールを識別するモジュールIDを入力処理する。
【0050】
格納処理部152は、入力されたモジュールIDで識別されるモジュール又はサブモジュールの更新データをSDRAM106に格納する処理を行う。
【0051】
通知部153は、更新データをSDRAM106に格納したことを、SCS122に通知する。これにより、SCS122によるROMデータの更新処理が開始される。
【0052】
複合機起動部140は、複合機100が起動する際に処理を行うユニットとする。そして、複合機100の電源が投入された際、複合機起動部140は、ソフトウェア群110の動作を制御して、複合機100を利用可能な状態になるまで処理を行う。なお、詳細な構成などについては後述する。
【0053】
次に、複合機100のハードウェア構成について説明する。図3は、複合機100のハードウェア構成を示した図である。図3に示すように、複合機100は、CPU302、SDRAM106、SRAM306、フラッシュメモリ(以下、フラッシュROMともいう)304、フラッシュカードインターフェース部308及びHDD103などをASIC301に接続したコントローラボード300と、オペレーションパネル310と、ファックスコントロールユニット(FCU)320と、USB330と、LANボード350(100BASE−TX/10BASE−T、無線LANなどに対応)と、IEEE1394I/F340と、プリンタ360とから構成されている。オペレーションパネル310はASIC301に直接接続され、FCU320、USBI/F330、IEEE1394I/F340、LANボード350及びプリンタ360はPCIバスを介してASIC301に接続されている。
【0054】
フラッシュROM304は、製品出荷時から、上述したアプリケーション150内の各アプリ、プラットフォーム120を構成する各コントロールサービスやSRM123の各プログラムが予め格納されているものとする。
【0055】
SRAM306は、プログラムが利用する環境情報、例えばモードフラグなどを記憶する。
【0056】
USBI/F330、IEEE1394I/F340、LANボード350を介することで、複合機100は、PCと接続することができる。
【0057】
また、複合機100は、複合機100が備えるオペレーションパネル310からのカスタマイズ要求の他に、LAN等を介して接続されたPC(Personal Computer)からのカスタマイズ要求を受け付けることができる。図4は、複合機100を含むネットワーク構成を示した説明図である。図4に示すように、ネットワーク400には、モジュール提供サーバ401、複合機100、複合機403等が接続されている。そして、複合機100とPC402とは、LAN404を介して接続されている。
【0058】
PC402は、利用者から複合機100に対するカスタマイズ要求を受け付けた場合に、複合機100に対して、カスタマイズの要求を送信する。
【0059】
モジュール提供サーバ401は、ネットワークを介して接続された複合機(例えば、複合機100や複合機403)に対して、カスタマイズ要求の対象となったモジュール又はサブモジュールの更新データを提供する。
【0060】
そして、モジュール提供サーバ401が提供する更新データとしては様々なモジュールの更新データがある。例えば、モジュール提供サーバ401にログインできる利用者であれば、自由に利用できるモジュールの更新データがある。また、複合機100に対して提供することが制限されるモジュールの更新データも存在する。この提供することが制限されるモジュールとしては、例えば、特定の個人情報や重要データなどの機密保持すべきデータを利用するモジュール又はサブモジュールの更新データ等が考えられる。
【0061】
そして、複合機100は、ネットワーク400を介して接続されたPC402からのカスタマイズ(例えば更新)の要求を受け付ける。そして、複合機100は、カスタマイズ要求を受け付けた場合に、モジュール提供サーバ401から、ネットワーク400経由でフラッシュメモリ(フラッシュROM)上に記録されるソフトウェアをカスタマイズする機能を備える。これにより、複合機100は、ネットワーク経由の遠隔地のPCからもアプリケーションなどのソフトウェアをカスタマイズが可能となる。
【0062】
また、本実施の形態では、カスタマイズの例として、ソフトウェアを更新する場合について説明する。なお、本実施の形態は、カスタマイズを更新に制限するものではなく、あらゆるカスタマイズに対して適用することができる。
【0063】
また、複合機100は、このようにネットワーク経由でソフトウェアの更新が要求された場合に、カスタマイズ要求の対象となるソフトウェアモジュールに対する認証機能を備える。これにより、本実施の形態にかかる複合機100は、更新の対象となるモジュール又はサブモジュールに応じて、更新データによる更新を制限することを可能としている。
【0064】
本実施の形態にかかる複合機100では、モジュールなどの更新を、電源投入による起動した際に行われるものとする。そこで、複合機100の電源投入時に処理を行う複合機起動部140について説明する。
【0065】
図5は、複合機起動部140の構成を示すブロック図である。図5に示すように、複合機起動部140は、ROMモニタ510と、プログラム起動部520と、ROM更新部530とを備える。
【0066】
複合機起動部140は、複合機100の電源投入時に最初に実行される。そして、実行された複合機起動部140は、コントロールユニットやアプリケーションの起動を行う。
【0067】
ROMモニタ510は、フラッシュROM304のブートベクタに記録されているものとする。そして、複合機100の電源投入時に、ROMモニタ510が、最初に起動される。
【0068】
このROMモニタ510の起動は、外部からの起動命令でも可能とする。また、複合機100内部のROMモニタ起動命令でも実現できる。この起動命令の利用例としては、ネットワーク介してデータパケット(モジュールに必要な更新データ等)の受信及び格納が終了した後、遠隔から複合機100の再起動する場合などが考えられる。
【0069】
そして、起動した後のROMモニタ510は、ハードウェアの初期化、コントローラボードの診断、ソフトウェアの初期化、汎用OS121の起動などを行う。
【0070】
プログラム起動部520は、起動モード設定部521と、サービス層起動部522と、アプリ起動部523と、アプリ起動情報設定部524とを備えている。
【0071】
このプログラム起動部520は、汎用OS121から呼び出されることで、起動される。起動したプログラム起動部520により、アプリケーション150又はプラットフォーム120が適宜起動される。
【0072】
詳細な例としては、汎用OS121のカーネルを、プログラム起動部520としても良い。この場合、汎用OS121が起動される場合に、プログラム起動部520が起動され、ルートファイルシステムが展開され、アプリケーション150やプラットフォーム120に係るファイルシステムがルートファイルシステムにマウントされることになる。そして、アプリケーション150やプラットフォーム120のプログラムの起動が開始される。
【0073】
プログラム起動部520の処理実行内容は、起動モードに応じて決定される。プログラム起動部520の起動モードには、通常モードと、ROM更新モードとがある。通常モードは、複合機100でコピー、プリント、スキャナ、ファクシミリなど通常の複合サービスを行うために起動するモードとする。ROM更新モードは、フラッシュメモリ304の更新を行うために複合機100を起動するモードである。
【0074】
そして、プログラム起動部520がROM更新モードで起動した場合に、ハードディスクドライブ、メモリカードに記録された更新データ、又はネットワーク経由で提供された更新データに基づいて、フラッシュメモリ304のモジュール又はサブモジュールの更新が行われることになる。
【0075】
起動モード設定部521は、SRAM306に保持されているモードフラグから、プログラム起動部520の動作モードを、通常モード及びROM更新モードのいずれか一方に設定する。起動モード設定部521の設定に基づいて、プログラム起動部520が起動される。
【0076】
サービス層起動部522は、汎用OS121の起動情報を取得して、コントロールサービスを起動する。
【0077】
アプリ起動情報設定部524は、動作モードがROM更新モードの場合に実行され、各アプリの起動情報を取得して、取得したアプリ起動情報を環境変数に設定する。
【0078】
アプリ起動部523は、いずれの動作モードであっても、アプリケーションを起動させる処理を行う。例えば、動作モードがROM更新モードの場合に、アプリ起動部523は、ROM更新アプリ117の起動情報を取得して、ROM更新アプリ117を起動する。これによりROM更新アプリ117、SCS122及びCCS130による処理が行われた後、最終的にROM更新部530によるフラッシュROM304の更新処理が行われることになる。
【0079】
一方、動作モードが通常モードの場合に、アプリ起動部523は、各アプリの起動情報を取得して、各アプリを起動する。
【0080】
ROM更新部530は、ROM更新命令解読部531と、SRAM処理部532と、ROM更新処理部533と、表示制御部534と、から構成される。
【0081】
ROM更新命令解読部531は、SCS122からのROM更新命令を解析する。
【0082】
ROM更新処理部533は、更新先アドレスと解析したROM更新命令に基づいてフラッシュメモリ304のプログラムを更新する。
【0083】
SRAM処理部532は、ROM更新中の各種情報をSRAM306へ格納する。
【0084】
表示制御部534は、ROM更新処理中のユーザへの進捗表示を制御する。
【0085】
ところで、アプリ起動部523がROM更新モードで起動した場合に、最後にROM更新アプリ117が起動される。そして、ROM更新アプリ117が、更新データを確保した後、SCS122による処理が開始される。そして、SCS122は、認証を行う際に、CCS130を呼び出す。次に、認証を行うCCS130について説明する。
【0086】
図6は、CCS130で実行されるプロセスを説明した図である。図6に示すように、CCS130のプロセスは、制御スレッド601と、認証スレッド602と、XML変換スレッド603と、で構成されている。そして、CCS130のプロセスは、各モジュールに対してカスタマイズの認証処理を行い、各モジュールの認証の結果をXML形式に変換し、認証ファイル226としてHDD103に格納する。
【0087】
また、HDD106は、認証ファイル226の他に、設定情報611と、プログラムIDDB612と、を記憶する。
【0088】
設定情報611は、認証を行う主体や、認証方法が記載されている。認証を行う主体としては、認証スレッド602本体、又はネットワーク400を介して接続された認証用サーバなどが考えられる。記載されている認証方法としては、周知の手法を問わずあらゆる手法が考えられる。本実施の形態では、設定情報611には、HDD103のプログラムIDデータベース612を参照して、認証スレッド602が認証を行う旨が記載されているものとする。
【0089】
プログラムIDデータベース612は、カスタマイズを許可するモジュール又はサブモジュールを識別するID(以下、モジュールID、サブモジュールIDとする)を記憶する。図7は、プログラムIDデータベース612のテーブル構造を示した図である。図7に示すように、プログラムIDデータベース612は、カスタマイズを許可するモジュールID又はサブモジュールIDを格納する。
【0090】
本実施の形態では、アドレス情報が記録されたアドレス帳を利用するモジュール又はサブモジュールのIDが、プログラムIDデータベース612に登録されているものとする。これにより、アドレス帳を利用するモジュール又はサブモジュールのカスタマイズが禁止されることになる。これにより、モジュール又はサブモジュールのカスタマイズ時に、アドレス帳に格納された、機密情報(個人情報)であるアドレス情報を保護することができる。
【0091】
図6に戻り、制御スレッド601は、CCS130の種々の機能を制御する。例えば、制御スレッド601は、SCS122などのプログラムからの認証要求を受け付けた場合に、認証スレッド602、及びXML変換スレッド603の生成し、生成した各スレッドに対する処理要求を行う。また、制御スレッド601は、認証方式の採択処理や、SCS122のプロセスとプロセス間通信で各種情報の送受信処理を行う。なお、設定情報611を設定するための処理も制御スレッド601が行ってもよい。
【0092】
認証スレッド602は、HDD103に格納された設定情報611を読み取り、設定情報611に記載された認証手法で、モジュールカスタマイズ認証を行う。本実施の形態では、認証スレッド602で認証を行う例とする。
【0093】
SCS122は、CCS130との関連では、CCS130に対して初期設定の要求や、認証処理時の認証画面の表示等を行う。
【0094】
本実施の形態は、HDD103に格納された情報により認証を行う例とする。そこで、各スレッドは以下に示す処理を行う。つまり、認証スレッド602は、設定情報611を参照し、当該設定情報611に記載された情報に従って、認証手法を決定する。
【0095】
そして、認証スレッド602は、決定された認証手法を利用して、プログラムIDデータベース612に格納されているモジュールID又はサブモジュールIDと、更新要求のあったモジュール又はサブモジュールを識別するモジュールID又はサブモジュールIDとを比較し、モジュール単位で更新が許容されるか否かの認証を行う。その後、認証スレッド602は、認証結果(認証OK、認証NG等)を生成する。
【0096】
その後、XML変換スレッド603が、認証スレッド602によって生成された認証結果を、それぞれXML形式に変換して、認証ファイル226としてHDD103に格納する。なお、XML形式への変換処理は公知の手法で行われる。
【0097】
図8は、カスタマイズ用の認証ファイル226の概念を示した図である。図8に示すような複合機100でカスタマイズ可能なモジュールID又はサブモジュールIDが、XML形式で列挙して格納されている。認証ファイル226は、ソフトウェア(モジュール)単位でカスタマイズ(更新)するときに参照される。
【0098】
これにより、複合機100に搭載するソフトウェアを更新する場合には、既に記憶されている認証ファイル226を用いて照合することもできる。この認証ファイル226の更新及び当該認証ファイル226を用いた照合は起動時のみに制限するものではなく、例えば、任意のタイミングで認証ファイル226を更新した後に、更新した認証ファイル226を用いて照合しても良い。
【0099】
なお、本実施の形態では、カスタマイズ要求を行った複合機100の使用者を特定していないが、使用者単位で認証ファイル226を更新するように構成してもよい。
【0100】
そして、生成された認証ファイル226を参照することで、ROM更新部530が、モジュール単位でカスタマイズの更新を行うことが可能となる。
【0101】
次に、以上のように構成された本実施の形態にかかる複合機100が起動してから、モジュールの更新が行われるまでの処理について説明する。図9は、本実施の形態にかかる複合機100における上述した処理の手順を示すフローチャートである。
【0102】
まず、複合機起動部140のROMモニタ510が、ハードウェアの初期化を行う(ステップS901)。
【0103】
次に、ROMモニタ510は、コントローラボードの診断処理を行う(ステップS902)。そして、ROMモニタ510は、ソフトウェアの初期化処理を行う(ステップS903)。
【0104】
次に、ROMモニタ510は、複合機100のフラッシュROM304に記録されている機種識別情報を取得する(ステップS904)。機種識別情報は、複合機の機種を特定するものであり、機種ごとに固有のデータとする。
【0105】
そして、ROMモニタ510は、HDD103から、プログラムIDデータベース612を読み込む(ステップS905)。この読み込む対象は、フラッシュメモリ304に記録されている機種識別情報に対応した認証ファイル226に特定される。
【0106】
その後、ROMモニタ510は、汎用OS121を起動する(ステップS906)。
【0107】
この後、汎用OS121からの呼出により、プログラム起動部520が起動し、プログラム起動部520は、コントロールサービスやアプリケーションの起動を行う(S907)。そして、ROM更新を行う場合には、ROM更新アプリ117が起動する。なお、ROM更新を行わない場合には、これで起動処理を終了する。
【0108】
次に、ROM更新アプリ117が起動した場合、ROM更新アプリ117が、ROMの更新に用いる更新データを、SDRAM106に格納する(ステップS908)。
【0109】
そして、SCS122が、格納された更新データのうち、更新に用いる更新データの選定処理を行う(ステップS909)。この選定処理を行う際に、認証ファイル226のモジュールID又はサブモジュールIDを用いて、認証処理を行う。
【0110】
そして、ROM更新部530が、選定処理が行われた更新データを用いて、モジュール又はサブモジュールの更新処理を行う(ステップS910)。
【0111】
次に、以上のように構成された本実施の形態にかかるプログラム起動部520における、図9のステップS907で示したコントロールサービス又はアプリを起動する処理について説明する。図10は、本実施の形態にかかるプログラム起動部520における上述した処理の手順を示すフローチャートである。
【0112】
プログラム起動部520が、起動モード設定部521によって、SRAM306に格納されているリモートROM更新フラグの状態をチェックする(ステップS1001)。
【0113】
このリモートROM更新フラグは、複合機100の前回の終了時に設定されるものとする。例えば、前回の起動時に、複合機100のNCS128は、PC402またはモジュール提供サーバ401からの更新要求を受信する。そして、更新要求を受信したNCS128は、SCS122に対して複合機100の再起動リブート依頼通知を送信する。その後、リブート依頼通知を受けたSCS122は、SRAM306に格納されているリモートROM更新フラグをONに設定する。その後、SCS122が再起動コマンドを発行して、複合機100を再起動する。このようにして、リモートROM更新フラグがONに設定されることになる。なお、通常通りに複合機100を終了した場合には、リモートROM更新フラグがOFFに設定される。
【0114】
そして、リモートROM更新フラグがONである場合(ステップS1001:ON)、起動モード設定部521は、起動モードをROM更新モードに設定する(ステップS1002)。
【0115】
その後、サービス層起動部522が、フラッシュROM304のファイルシステムをマウントする(ステップS1003)。次に、サービス層起動部522が、フラッシュROM304からSCS122、ECS124、MCS125、CCS130などのコントロールサービスの起動情報を取得する(ステップS1004)。取得するCCS130の起動情報の中には、認証ファイル226、プログラムIDデータベース612、及び設定情報611が含まれている。
【0116】
そして、サービス層起動部522が、ステップS1004で取得した起動情報を環境変数に設定する(ステップS1005)。
【0117】
次に、サービス層起動部522が、SCS122、ECS124、MCS125などのコントロールサービスを汎用OS121上で起動する(ステップS1006)。このとき、各種コントロールサービス(SCS122を含む)では、ROM更新モードスレッドが起動される。さらに、CCS130では、制御スレッド601、認証スレッド602、及びXML変換スレッド603が起動される。
【0118】
そして、サービス層起動部522は、SCS122のROM更新モードスレッドが起動した後、起動したコントロールサービスのコントロールサービス起動情報を環境変数に設定する(ステップS1007)。
【0119】
コントロールサービス起動情報とは、起動したコントロールサービスのプロセスIDやモジュール名など、コントロールサービスのプログラムを識別するものであり、各コントロールサービスに固有の情報とする。
【0120】
そして、アプリ起動情報設定部524は、フラッシュROM304のファイルシステムをマウントする(ステップS1008)。
【0121】
次に、アプリ起動情報設定部524は、マウントしたファイルシステムを検索して、格納されているアプリのプログラムを抽出し、複合機100で起動されるアプリのアプリ起動情報を取得する(ステップS1009)。
【0122】
そして、アプリ起動情報設定部524が、ステップS1009で取得したアプリ起動情報を環境変数に設定する(ステップS1010)。
【0123】
ここで、アプリ起動情報とは、複合機100で動作可能なアプリを識別するアプリ固有の情報であり、アプリのモジュールID、モジュール名などである。また、環境変数に設定されたコントロールサービス起動情報とアプリ起動情報は、SCS122に受け渡される。ただし、ROM更新モードでは、受け渡されるアプリ起動情報は、ROM更新アプリ117のアプリ起動情報のみとする。
【0124】
そして、アプリ起動部523が、ROM更新アプリ117を起動する(ステップS1011)。ここで、環境変数に設定されたコントロールサービス起動情報は、SCS122などのコントロールサービスへ、アプリ起動情報は、アプリケーションSCS122へ受け渡される。また、ROM更新モードでは、ROM更新アプリ117以外のアプリは起動しない。
【0125】
一方、リモートROM更新フラグがOFFである場合(ステップS1001:OFF)、起動モード設定部521は、起動モードを通常モードに設定する(ステップS1012)。
【0126】
そして、サービス層起動部522が、フラッシュROM304のファイルシステムをマウントする(ステップS1013)。
【0127】
次に、サービス層起動部522が、フラッシュROM304からSCS122,ECS124,MCS125などのコントロールサービスの起動情報を取得する(ステップS1014)。
【0128】
その後、サービス層起動部522が、SCS122、ECS124、MCS125などのコントロールサービスを汎用OS上で起動する(ステップS1015)。このとき、各コントロールサービスのプロセスでは、通常モードスレッドが起動される。
【0129】
そして、アプリ起動部523が、フラッシュROM304のファイルシステムをマウントする(ステップS1016)。
【0130】
次に、アプリ起動部523が、マウントしたファイルシステムから複合機100で起動される上述のアプリ起動情報を取得する(ステップS1017)。
【0131】
そして、アプリ起動部523が、各アプリを起動する(ステップS1018)。なお、ステップS1018においては、ROM更新アプリ117は起動しない。
【0132】
上述した処理手順でステップS1011により、ROM更新アプリ117が起動した後、ROM更新アプリ117の処理の後に、更新要求があったモジュール又はサブモジュール単位で認証を行っていくことになる。そして、認証結果、許容されたサービス層プログラム(モジュール)、または、アプリプログラム(モジュール)だけがカスタマイズされる。
【0133】
また、CCS130についてもカスタマイズを行う場合、CCS130を先にカスタマイズする。その後に、サービス層プログラム(モジュール)またはアプリプログラム(モジュール)のカスタマイズを、CCS130を使用して認証を行うことになる。
【0134】
後述するネットワークを介して遠隔から複合機へソフトウェアをカスタマイズする場合には、アプリの登録要求に対して認証処理を実行する。
【0135】
そして、ステップS1011で呼び出されたROM更新アプリ117は、SCS122のROM更新モードスレッドを利用して、フラッシュメモリ304の内容の書き換える又は書き込みに関する処理を行う。
【0136】
このため、ROM更新アプリ117は、上述した処理を行うためにSCS122やMCS125等のコントロールサービスを利用する。詳細には、ROM更新アプリ117は、HDD103やフラッシュカード307に記録された更新データ、又は、ネットワーク400を介して接続されているモジュール提供サーバ401から提供された更新データを、ROM更新モードスレッドによってMCS125を介して確保されたSDRAM303の更新データ領域に格納する。
【0137】
次に、以上のように構成された本実施の形態にかかるROM更新アプリ117における更新データの格納処理について説明する。図11は、本実施の形態にかかるROM更新アプリ117における上述した処理の手順を示すフローチャートである。本処理手順では、当然ながら、複合機100はROM更新モードで起動されているため、各コントロールユニット及びアプリケーションについて、ROM更新可能な状態となっている。
【0138】
まず、ROM更新アプリ117の入力処理部151は、更新データの入力処理を行う。具体的には、入力処理部151は、HDD103やフラッシュカード307に記録された更新データの読み込み、又は、ネットワーク400を介して接続されているモジュール提供サーバ401から提供された更新データの受信処理を行う(ステップS1101)。
【0139】
また、ROM更新アプリ117の入力処理部151は、更新データと共に、更新対象となるモジュールのモジュールID又はサブモジュールのサブモジュールID等の読み取り又は受信処理を行う。
【0140】
次に、ROM更新アプリ117の格納処理部152が、更新データファイルの更新データを格納するために必要な領域を得るために、MCS125に対して、SDRAM303上に更新データ領域の確保を要求する(ステップS1102)。そして、確保要求を受けたMCS125のROM更新モードスレッドが、SDRAM303上に更新データ領域を確保して、その領域の先頭アドレスと確保した領域サイズとをROM更新アプリ117に送信する。
【0141】
そして、ROM更新アプリ117の格納処理部152は、更新データファイルの更新データをMCS125のROM更新モードスレッドから通知されたSDRAM303の領域の先頭アドレスから展開する(ステップS1103)。ここで、更新データファイルの更新データの展開とは、受信した更新データファイルから、更新に不要な宛先ネットワークアドレス、パケット長などのネットワーク情報を除去して、ROM更新に必要なデータのみを、SDRAM303の領域に参照可能に書き込むことをいう。
【0142】
図12は、ROM更新アプリ117により更新データが格納された更新データ領域の例を示した図である。図12に示すように、更新データ領域は、ヘッダ部1201と、データ部1202とで構成されている。
【0143】
ヘッダ部1201は、更新するモジュール毎にヘッダブロックを保持している。各ヘッダブロックは、次のヘッダブロックまでのオフセットである次ヘッダオフセットと、モジュールの更新データまでのオフセットである更新データオフセットと、更新データのサイズと、モジュールの識別情報であるモジュールID1203と、そのモジュールのフラッシュメモリ(フラッシュROM)304上での相対番地を示す更新先アドレスと、そのモジュールのサイズである『更新先領域長』とから構成されている。
【0144】
ここでモジュールとは、MCS125、ECS124、NCS128などのコントロールサービス単位のプログラム、プリンタアプリ111、コピーアプリ112などのアプリ単位のプログラム、プリンタエンジン101,102、スキャナエンジンなどのエンジン単位のプログラムとする。これらプログラムを更新可能とされている。
【0145】
受信または読み取った更新データは、これらのモジュールに対する変更プログラムのバイナリデータに対して圧縮処理を施したデータとする。圧縮された更新データは、SDRAM303に展開される際に、ROM更新アプリ117によって伸張される。
【0146】
また、ヘッダ部1201のモジュールID1203には、モジュールIDの他に、更新対象のサブモジュールを識別するサブモジュールIDを格納してもよい。そして、データ部1202には、更新データの実体が格納されている。データ部1202には、モジュール毎の更新データが格納されている。このように更新データ領域は、(プログラム)モジュール単位で区別できるような構成になっている。
【0147】
さらに、更新データ領域には、ヘッダ部1201に続いてデータ部1202が記録されている。データ部1202には、更新データがモジュールごとに格納されている。各モジュールの更新データの先頭は、モジュール毎のヘッダブロックの更新データオフセットを参照することで特定できる。
【0148】
図11に戻り、ROM更新アプリ117の通知部153は、更新データファイルの更新データを格納したSDRAM303上の領域の先頭アドレスを、SCS122へ通知する(ステップS1104)。これにより、SCS122のROM更新モードスレッドで更新データの選定処理が開始される。
【0149】
つまり、SCS122のROM更新モードスレッドは、SDRAM303に格納された更新データ領域を参照して、複合機100の構成に応じた更新データを選定する。
【0150】
次に、以上のように構成された本実施の形態にかかるSCS122のROM更新モードスレッドで実行される更新データの選定処理およびROM更新命令発行処理について説明する。図13及び図14は、本実施の形態にかかるSCS122における上述した処理の手順を示すフローチャートである。
【0151】
まず、SCS122のROM更新モードスレッドは、SRAM306にモジュールIDやSDRAM303の更新データ(モジュールID、バージョン情報、更新先アドレス、更新データオフセットおよび更新データサイズ)がすでに記憶されているか否かを確認する(ステップS1301)。これは、フラッシュROM304の更新データは、ROM更新処理が始まったときにSRAM306に書き込まれ、更新データは順次取り出されて更新処理が進むので、更新処理が途中で中断された場合には、SRAM306には未処理な更新情報が記録されていることになる。
【0152】
そして、SCS122のROM更新モードスレッドは、SRAM306に更新データがすでに記憶されていると判断した場合(ステップS1301:Yes)、ROM更新モードスレッドはROM更新処理が中断された後の起動であると判断し、SRAM306から更新情報を取得する(ステップS1302)。
【0153】
次に、SCS122のROM更新モードスレッドは、SDRAM303の先頭のヘッダブロックを参照する(ステップS1303)。
【0154】
そして、SCS122のROM更新モードスレッドは、ヘッダブロックからモジュールIDを取得する(ステップS1304)。この取得したモジュールIDは、CCS130に出力される。
【0155】
その後、CCS130により、取得したモジュールIDで識別されるモジュールについても認証処理が行われる(ステップS1305)。認証結果は、認証ファイルに格納される。なお、詳細な認証処理については後述する。
【0156】
そして、SCS122のROM更新モードスレッドは、認証ファイルを参照し、認証結果に基づいて、カスタマイズを許容するか否か判断する(ステップS1306)。カスタマイズを許容しないと判断した場合(ステップS1306:No)、ステップS1310から処理を開始する。
【0157】
そして、カスタマイズを許容すると判断した場合(ステップS1306:Yes)、SCS122のROM更新モードスレッドは、ヘッダブロックから取得したモジュールIDが、ステップS1302でSRAM306から取得した更新データに相当するか否かを判断する(ステップS1307)。
【0158】
そして、ヘッダブロックから取得したモジュールIDが、SRAM306から取得した更新データに該当すると判断した場合(ステップS1307:Yes)、SCS122のROM更新モードスレッドは、当該モジュールIDの更新データを選定し、さらにヘッダブロックから更新先アドレス、更新データオフセット、更新データサイズを取得する(ステップS1308)。
【0159】
その後、SCS122のROM更新モードスレッドは、取得した更新先アドレス、更新データオフセット、更新データサイズを、「更新対象」の変数等に設定する(ステップS1309)。
【0160】
一方、ステップS1307で、ROMモード更新スレッドが、ヘッダブロックから取得したモジュールIDを、SRAM306から取得した更新情報に相当しないと判断した場合(ステップS1307:No)、SCS122のROM更新モードスレッドは取得したモジュールIDの更新データを選定などの処理を行わず、ステップS1310に進む。
【0161】
そして、SCS122のROM更新モードスレッドは、更新データが格納された領域のうち、次ヘッダブロックオフセットを参照し、次のヘッダブロックが存在するか否かを判断する(ステップS1310)。
【0162】
そして、ROMモード更新スレッドが、次のヘッダブロックが存在すると判断した場合(ステップS1310:Yes)、次のヘッダブロックを参照する(ステップS1311)。そして、SCS122のROM更新モードスレッドは、ステップS1304からステップS1310までの処理を繰り返し行う。
【0163】
一方、ROMモード更新スレッドが、次のヘッダブロックが存在しないと判断した場合(ステップS1310:No)、ヘッダブロックのモジュールIDについての更新データの選定が終了したものとして、ROM更新部530を起動し、ROM更新部530に対して、ROM更新命令を発行すると共に、更新対象の変数を引き渡して、処理を終了する(ステップS1312)。
【0164】
一方、SCS122のROM更新モードスレッドが、SRAM306に更新データが存在しないと判断した場合(ステップS1301:No)、図14のステップS1401に進む。
【0165】
そして、SCS122のROM更新モードスレッドは、ROM更新アプリ117から、SDRAM303上の更新データ領域の先頭アドレスを、SCS122に通知されるまで待機する。そして、通知を受け付けた場合に、SCS122のROM更新モードスレッドは、SDRAM303の先頭のヘッダブロックを参照する(ステップS1401)。その後、ROMモード更新スレッドは、ヘッダブロックからモジュールIDを取得する(ステップS1402)。この取得したモジュールIDは、CCS130に出力される。
【0166】
その後、CCS130により、取得したモジュールIDで識別されるモジュールについても認証処理が行われる(ステップS1403)。認証結果は、認証ファイルに格納される。なお、詳細な認証処理については後述する。
【0167】
そして、SCS122のROM更新モードスレッドは、認証ファイルを参照し、認証結果に基づいて、カスタマイズを許容するか否か判断する(ステップS1404)。カスタマイズを許容しないと判断した場合(ステップS1404:No)、ステップS1408から処理を開始する。
【0168】
そして、カスタマイズを許容すると判断した場合(ステップS1404:Yes)、SCS122のROM更新モードスレッドは、ヘッダブロックから取得したモジュールIDが、環境変数の中のコントロールサービスまたはアプリに相当するか否かを判断する(ステップS1405)。
【0169】
そして、ROMモード更新スレッドが、上記のモジュールIDが、環境変数の中のコントロールサービスまたはアプリに相当すると判断した場合(ステップS1405:Yes)、当該モジュールIDの更新データを選定し、ヘッダブロックから更新先アドレス、更新データオフセット、更新データサイズを取得する(ステップS1406)。
【0170】
そして、SCS122のROM更新モードスレッドは、取得した更新先アドレス、更新データオフセット、及び更新データサイズを、「更新対象」の変数等に設定する(ステップS1407)。
【0171】
一方、ROMモード更新スレッドが、ヘッダブロックから取得したモジュールIDが、環境変数の中のコントロールサービスまたはアプリに相当しないと判断した場合(ステップS1403:No)、ROM更新モードスレッドは、取得したモジュールIDの更新データを選定せず、ステップS1408に進む。
【0172】
そして、SCS122のROM更新モードスレッドが、次ヘッダブロックオフセットを参照し、次のヘッダブロックが存在するか否かを判断する(ステップS1408)。ROMモード更新スレッドが、次のヘッダブロックが存在すると判断した場合(ステップS1408:Yes)、次のヘッダブロックを参照する(ステップS1409)。そして、SCS122のROM更新モードスレッドは、ステップS1402〜S1408までの処理を繰り返し行う。
【0173】
一方、SCS122のROM更新モードスレッドが、次のヘッダブロックが存在しないと判断した場合(ステップS1408:No)、すべてのヘッダブロックのモジュールIDについての更新データの選定が終了したものとして、ROM更新部530を起動し、ROM更新部530に対してROM更新命令を発行し、更新対象の変数を引き渡して、終了する(ステップS1410)。
【0174】
上述した処理フローにより、更新データ領域に格納された更新データから、複合機100内に存在するモジュールであって、更新する認証が得られた更新データが選定されることになる。その後、ROM更新部530が、更新データでフラッシュROM304を更新する。
【0175】
次に、以上のように構成された本実施の形態にかかるCCS130における、図13のステップS1305及び図14のステップS1403の認証処理について説明する。図15は、本実施の形態にかかるCCS130における上述した処理の手順を示すフローチャートである。
【0176】
認証を行う際に、CCS130の制御スレッドが、認証スレッド602、及びXML変換スレッド603を生成する。そして、制御スレッドが、設定情報611を読み取り、認証スレッド602で認証を行うと決定されたものとする。
【0177】
まず、CCS130の認証スレッド602は、SCS122から入力された、カスタマイズ対象であるモジュールIDzを読み込む(ステップS1501)。
【0178】
次に、CCS130の認証スレッド602は、プログラムIDデータベース612からカスタマイズ可能なモジュールIDiを抽出する(ステップS1502)。
【0179】
そして、認証スレッド602は、モジュールIDzが、カスタマイズ可能なモジュールIDiに含まれているか否かを判断する(ステップS1503)。
【0180】
そして、認証スレッド602が、モジュールIDzがカスタマイズ可能なモジュールIDiに含まれていると判断した場合(ステップS1503:Yes)、当該モジュールIDzで識別されるモジュールのカスタマイズは許容される旨の認証を行う。そして、XML変換スレッド603が、当該モジュールIDzをXML形式の認証ファイル226に追加して、処理を終了する(ステップS1504)。なお、認証ファイル226が存在しない場合、新たに生成する。
【0181】
一方、認証スレッド602が、モジュールIDzがカスタマイズ可能なモジュールIDiに含まれていないと判断した場合(ステップS1503:No)、当該モジュールIDzで識別されるモジュールのカスタマイズは許容されない旨の認証を行い、処理を終了する(ステップS1505)。
【0182】
上述した処理手順に示すように、認証処理には、モジュールIDを使用して照合するものとする。また、当然ながら、モジュールIDのみならず、サブモジュールIDも同様の処理手順で認証を行うこととする。
【0183】
また、複数のモジュールを複数回でカスタマイズする場合、まだカスタマイズされていないモジュールについてだけ認証してもよい。この場合、既にカスタマイズしたモジュールを識別するモジュールIDをHDD103内に更新情報として保持し、該更新情報に含まれていないモジュールを、カスタマイズする必要があるモジュールとみなせばよい。
【0184】
次に、本実施の形態とは異なる別の認証処理について説明する。本実施の形態の変形例にかかるCCS130におけるサブモジュールIDを用いた認証処理について説明する。図16は、変形例にかかるCCS130における上述した処理の手順を示すフローチャートである。
【0185】
一般的にソフトウェア(モジュール)は、サブモジュールで構成されている。そこで、本変形例では、アプリケーションが、カスタマイズを許容できないサブモジュールを備える場合、該サブモジュールをカスタマイズできないように制御する。このカスタマイズから保護する必要のあるサブモジュールには、アドレス帳を使用するサブモジュール等がある。アドレス帳は個人情報の一つであり、アドレス帳を使用するサブモジュールを使用するアプリは、個人情報を使用するサブモジュールといえる。
【0186】
まず、CCS130の認証スレッド602は、SCS122から入力された、カスタマイズ対象であるサブモジュールを含むアプリケーションプログラムAPxを読み込む(ステップS1601)。
【0187】
次に、CCS130の認証スレッド602は、プログラムIDデータベース612からカスタマイズ可能なサブモジュールIDiを抽出する(ステップS1602)。
【0188】
そして、認証スレッド602は、APxを構成するサブモジュールを識別するサブモジュールIDxが、カスタマイズ可能なサブモジュールIDiに含まれているか否かを判断する(ステップS1603)。
【0189】
そして、認証スレッド602は、モジュールIDxがカスタマイズ可能なサブモジュールIDiに含まれていると判断した場合(ステップS1603:Yes)、当該サブモジュールIDzで識別されるアプリケーションプログラムAPxのサブモジュールのカスタマイズは許容される旨の認証を行う。そして、XML変換スレッド603が、アプリケーションプログラムAPxの識別情報及び当該サブモジュールIDxをXML形式の認証ファイル226に追加して、処理を終了する(ステップS1604)。なお、認証ファイル226が存在しない場合、新たに生成する。
【0190】
一方、認証スレッド602が、サブモジュールIDxがカスタマイズ可能なモジュールIDiに含まれていないと判断した場合(ステップS1603:No)、当該モジュールIDxで識別されるモジュールのカスタマイズは許容されない旨の認証を行い、処理を終了する(ステップS1605)。
【0191】
上述した認証処理では、カスタマイズするアプリケーションを構成するサブモジュールを調べ、該サブモジュール単位で照合を行い、該サブモジュールがカスタマイズを許容できない場合、許容されないように認証する。このような認証処理を行うことで、個人情報を使用するアプリのカスタマイズの認証を実施することができる。
【0192】
また、本実施の形態及び変形例にかかる複合機100では、プログラムIDデータベース612に個人情報を利用するモジュール又はサブモジュールのIDを登録することで、個人情報を使用するモジュールが含まれるかどうか判定ことが可能となる。
【0193】
次に、以上のように構成された本実施の形態にかかるROM更新部530におけるフラッシュROM304の更新処理について説明する。図17は、本実施の形態にかかるROM更新部530における上述した処理の手順を示すフローチャートである。
【0194】
まず、ROM更新部530は、SCS122のROM更新モードスレッドにより起動され、SCS122からROM更新命令を受け取って、更新データでフラッシュROM304の更新処理を開始する。この受け取ったROM更新命令は、ROM更新命令解読部531が解析する。
【0195】
そして、ROM更新部530のSRAM処理部532は、SCS122から受け渡された更新対象の変数から、モジュールID、更新先アドレス、更新データオフセットおよび更新データサイズを順次取り出して、SRAM306に格納する(ステップS1701)。なお、ステップS1701で更新処理が途中でエラー発生等により中断した場合でも、次回の起動後に以降の処理を再実行することができる。
【0196】
次に、ROM更新部530のROM更新処理部533は、SDRAM303の先頭アドレスから更新データオフセットで示されるアドレスから更新データサイズ分のデータを更新データとして読み出し、この更新データでフラッシュメモリ304上の更新先アドレスから始まるモジュールを更新する(ステップS1702)。
【0197】
そして、ROM更新部530のROM更新処理部533は、SDRAM303の更新データと、更新されたフラッシュROM304内のモジュールのデータとの間で同一性をチェックする(ステップS1703)。
【0198】
ROM更新部530のROM更新処理部533が、同一性がないと判断した場合(ステップS1703:異なる)、表示制御部534が、更新処理が失敗した旨のエラーを表示して(ステップS1704)、再びステップS1702から処理を開始する。
【0199】
一方、ROM更新処理部533が、更新データと、更新されたフラッシュROM304内のモジュールのデータとの間に同一性があると判断した場合(ステップS1703:同一)、ROM更新処理部533が、更新対象の変数に、次のモジュールID、更新先アドレス、更新データオフセットおよび更新データサイズが存在するか否かを判断する(ステップS1705)。
【0200】
そして、ROM更新部530のROM更新処理部533が、次のモジュールID、更新先アドレス、更新データオフセットおよび更新データサイズが存在すると判断した場合(ステップS1705:Yes)、次のモジュールID、更新先アドレス、更新データオフセットおよび更新データサイズを用いて、ステップS1702から処理を開始する。つまり、ROM更新処理部533は、SCS122から引き渡されたすべてのモジュールID、更新先アドレス、更新データオフセットおよび更新データサイズについて、ステップS1702〜S1704の処理を実行する。
【0201】
そして、ROM更新部530のROM更新処理部533が、次のモジュールID、更新先アドレス、更新データオフセットおよび更新データサイズが存在しないと判断した場合(ステップS1705:No)、SRAM処理部532がSRAM306をクリアして、ROM更新処理を終了する(ステップS1706)。
【0202】
上述した処理手順により、SCS122で認証及び選定が終了したモジュールをフラッシュROMに書き込むことができる。
【0203】
複合機100では、オペレーションパネル310又はPC402から更新要求を受け付けた場合に、フラッシュカード307又はモジュール提供サーバ401から提供された更新データのモジュール又はサブモジュール毎に認証及び選定を行った後に、カスタマイズが許容され且つ選定された更新データで、フラッシュROM304上のモジュールを更新する。
【0204】
従来の複合機では、利用者毎にソフトウェアのカスタマイズを許可すると、各ソフトウェアが利用している機密情報(個人情報等)の保護を維持することが難しくなる。これに対し、本実施の形態にかかる複合機100では、モジュール又はサブモジュール単位でカスタマイズ可能か否か設定できるので、機密情報(個人情報等)を利用するモジュール又はサブモジュールのカスタマイズを抑止することが可能となる。これにより、機密情報(個人情報等)を保護することができる。
【0205】
つまり、本実施の形態にかかる複合機100においては、モジュール単位でのカスタマイズを許可するか否かの認証をすることが可能となる。換言すれば、本実施の形態にかかる複合機100は、アプリケーションのカスタマイズ時に、アプリケーションを構成するモジュール単位で認証する機能を備えているので、モジュール単位の使用許容制御をすることが可能となる。これにより、セキュリティを向上させることができる。
【0206】
特に、本実施の形態にかかる複合機100では、プログラムIDデータベース612にアドレス帳を利用するモジュール又はサブモジュールのIDが登録されているので、利用者の個人情報を第三者が閲覧することを抑止することができる。
【0207】
認証情報に個人情報を使用するモジュールに対してカスタマイズを許可しないことを示す情報が格納されていることで、個人情報を使用するモジュールに対して使用制限を加えることができる。これにより、セキュリティを向上させることができる。
【0208】
この個人情報の例としては、個人のネットワークアドレスなどが考えられる。ネットワークアドレスは、個人の住所に相当し、特に重要であるため、当該個人情報を利用するモジュール又はサブモジュールのカスタマイズに制限を掛けることで、セキュリティを向上させることができる。
【0209】
さらに、本実施の形態にかかる複合機100は、自装置内部で認証を行うことで、より効率的な認証を実現できる。
【0210】
(第2の実施の形態)
第1の実施の形態では、CCS130の認証スレッド602による、ローカル認証の例について説明した。しかしながら、認証を複合機100本体で行うことに制限するものではなく、外部に認証を行わせてもよい。そこで、第2の実施の形態では、認証サーバで認証を行うリモート認証の例について説明する。なお、複合機100の構成は特に変更がないので説明を省略する。
【0211】
図18は、第2の実施の形態にかかる複合機100を含むネットワーク構成を示した図である。図18に示すように、ネットワーク400には、さらに認証サーバ1801が接続されている。
【0212】
そして、認証サーバ1801は、プログラムIDデータベース612を備え、モジュール単位又はサブモジュール単位で、カスタマイズ可能か否かの認証を行う。
【0213】
図19は、CCS130で実行されるプロセスを説明した図である。図19に示すように、CCS130のプロセスは、制御スレッド601と、認証スレッド1901と、XML変換スレッド603と、で構成されている。そして、CCS130のプロセスは、各モジュールに対してカスタマイズの認証処理を行い、各モジュールの認証の結果をXML形式に変換し、認証ファイルとしてHDD103に格納する。
【0214】
また、HDD106は、認証ファイル226と、設定情報1902と、機器ID1903と、を記憶する。本実施の形態にかかる設定情報1902では、認証サーバ1801で認証する旨と、図20に示すような認証サーバのアドレスが記載されている。機器ID1903は、複合機100を特定する機器IDとする。
【0215】
認証スレッド1901は、設定情報1902を参照することで、認証を認証サーバ1801で行うこと、及び当該認証サーバ1801のアドレスを認識する。そして、認証スレッド1901は、当該アドレスが指し示す認証サーバ1801にアクセスし、認証を要求する。このために、認証スレッド1901は、HDD103の機器ID1903と、カスタマイズの対象となるモジュールID又はサブモジュールIDを、認証サーバ1801に送信する。この送信には、NCS128を用いる。
【0216】
そして、認証サーバ1801は、機器IDに対応したプログラムIDデータベース612に含まれたモジュールIDと、を受信した(サブ)モジュールIDと、の照合で、認証を行う。そして、認証結果を、複合機100の認証スレッド1901に送信する。なお、認証スレッド1901が行う認証処理は、図16と同様として説明を省略する。
【0217】
このように、ネットワーク400を介して接続された認証サーバ1801でも認証を行うことができる。この場合、よりセキュリティの高い認証を行うことが可能となる。
【0218】
また、認証スレッド1901から認証を行う際に、XML変換スレッド603が認証要求をXML形式に変換し、SOAPメッセージを生成する。また、XML変換スレッド603は、認証サーバ1801から受信した認証結果が記載されたSOAPメッセージを、XML形式から、認証スレッド1901が認識可能な形式に変換し、認証結果を、認証スレッド1901に受け渡す。このように、認証サーバ1801と複合機100間で、SOAPメッセージによる送受信がなされる。
【0219】
そして、SOAPメッセージの送受信を行うためには、NCS128を用いる。NCS128は、SOAPプロキシ1911と、SOAPリスナ1912と、httpによるサービスを提供するスレッド1913と、ftpによるサービスを提供するスレッド1914と、smtpによるサービスを提供するスレッド1915等と、が動作している。
【0220】
SOAPプロキシ1911は、メッセージ送信手段を構成し、XML形式の認証(結果)ファイル226を含み、また送信先のSOAPサーバとなるネットワーク上の他の複合機、PC又は管理サーバのURI(Uniform Resource Identifier)を指定した送信用のSOAPメッセージを生成する。
【0221】
SOAPプロキシ1911は、SOAPメッセージで指定されたアドレスに、生成されたSOAPメッセージを送信する。本実施の形態においては、SOAPメッセージの送信先は設定情報1902で設定されている。
【0222】
SOAPリスナ1912は、メッセージ受信手段を構成し、SOAPメッセージの受信と、受信したSOAPメッセージの内容を解析とを行う。そして、SOAPリスナ1912は、SOAPメッセージの解析結果を、他のコントロールサービスやアプリに受け渡す。このために、SOAPリスナ1912は、解析結果の受け渡し先であるコントロールサービス又はアプリを選定して、SOAPメッセージの解析結果、又はSOAPメッセージを受信した旨を、選定されたプロセスに通知する。
【0223】
図21は、SOAPプロキシ1911による、送信用のSOAPメッセージに格納されるデータの構造を示した図である。図21では、データ構造のみ示し、XMLのタグ等は省略してある。そして、図21に示すように、SOAPメッセージの本文には、機器IDの他、(サブ)モジュールIDが格納される。そして、SOAPメッセージに、機器IDと、(サブ)モジュールIDが格納されていることで、認証サーバ1801で認証を行うことが可能となる。
【0224】
図22は、NCS128のSOAPプロキシ1911により生成されるSOAPメッセージの構造を示す説明図である。図22に示すように、SOAPメッセージは、ヘッダ2200とSOAPエンベロープ2210から構成される。更に、SOAPエンベロープ2210は、SOAPヘッダ2211とSOAPメッセージ本体2212から構成される。
【0225】
図22に示すように、SOAPヘッダ2200には、SOAPメッセージの送信先のURI(Uniform Resource Identifier)が設定される。SOAPメッセージ本体2212には、<SOAP−ENV:Body>タグの要素として、図21に示した内容がXML形式で挿入される。
【0226】
図23は、複合機100及び認証サーバ1801による認証処理を示すシーケンスを示す図である。
【0227】
まず、CCS130は、HDD103に格納された設定情報611から認証サーバ1801のアドレスを読み取る(ステップS2301)。
【0228】
その後、CCS130は、読み取ったアドレスを用いて機器IDと共に、カスタマイズの対象である(サブ)モジュールを識別する(サブ)モジュールIDを、認証サーバ1801に送信する(ステップS2302)。
【0229】
認証サーバ1801は、受信した(サブ)モジュールIDと、受信した機器IDに対するプログラムIDデータベース612に格納されたモジュールIDと、を照合することにより認証を行い、認証結果をCCS130に送信する(ステップS2303)。
【0230】
上述した処理手順により、認証サーバ1801で行った認証結果をCCS130が取得できるので、認証結果に基づいたモジュール又はサブモジュールのカスタマイズが可能となる。
【0231】
本実施の形態にかかる複合機100は、ネットワークを介して接続されたPCのカスタマイズを受け付けることを可能にするとともに、認証も認証サーバ1801で実行できる。つまり、複合機100は、遠隔地からの制御を可能としている。
【0232】
第2の実施の形態にかかる複合機100は、ネットワークを介して接続された認証サーバで認証を行うことで、より客観的な認証が可能となる。
【図面の簡単な説明】
【0233】
【図1】第1の実施の形態にかかる複合機の全体構成を示すブロック図である。
【図2】第1の実施の形態にかかる複合機に搭載されているアプリケーションのモジュール構成を示した説明図である。
【図3】複合機のハードウェア構成を示した図である。
【図4】複合機を含むネットワーク構成を示した説明図である。
【図5】複合機起動部の構成を示すブロック図である。
【図6】CCSで実行されるプロセスを説明した図である。
【図7】プログラムIDデータベースのテーブル構造を示した図である。
【図8】カスタマイズ用の認証ファイルの概念を示した図である。
【図9】第1の実施の形態にかかる複合機が起動してから、モジュールの更新が行われるまでの処理の手順を示すフローチャートである。
【図10】第1の実施の形態にかかるプログラム起動部における、コントロールサービス又はアプリを起動する処理の手順を示すフローチャートである。
【図11】第1の実施の形態にかかるROM更新アプリにおける更新データの格納処理の手順を示すフローチャートである。
【図12】第1のROM更新アプリにより更新データが格納された更新データ領域の例を示した図である。
【図13】第1の実施の形態にかかるSCSにおける、更新データの選定処理およびROM更新命令発行処理の第1の手順を示すフローチャートである。
【図14】第1の実施の形態にかかるSCSにおける、更新データの選定処理およびROM更新命令発行処理の第2の手順を示すフローチャートである。
【図15】第1の実施の形態にかかるCCSにおける認証処理の手順を示すフローチャートである。
【図16】変形例にかかるCCSにおける認証処理の手順を示すフローチャートである。
【図17】第1の実施の形態にかかるROM更新部における、フラッシュROMの更新処理の手順を示すフローチャートである。
【図18】第2の実施の形態にかかる複合機を含むネットワーク構成を示した図である。
【図19】第2の実施の形態にかかるCCSで実行されるプロセスを説明した図である。
【図20】第2の実施の形態にかかる設定情報に含まれる認証サーバのアドレスの例を示す図である。
【図21】第2の実施の形態にかかる、SOAPプロキシによる、送信用のSOAPメッセージに格納されるデータの構造を示した図である。
【図22】第2の実施の形態にかかる、NCSのSOAPプロキシにより生成されるSOAPメッセージの構造を示す説明図である。
【図23】第2の実施の形態にかかる複合機及び認証サーバによる認証処理を示すシーケンスを示す図である。
【符号の説明】
【0234】
100 複合機
101,102 プリンタエンジン
103 HDD
104 その他ハードウェアリソース
105 ネットワークI/F
106 SDRAM
110 ソフトウェア群
111 プリンタアプリ
112 コピーアプリ
113 ファックスアプリ
114 スキャナアプリ
115 メール自動配信アプリ
116 工程検査アプリ
117 ROM更新アプリ
120 プラットフォーム
121 OS
122 SCS
123 SRM
124 ECS
125 MCS
126 OCS
127 FCS
128 NCS
129 UCS
130 CCS
140 複合機起動部
150 アプリケーション
151 入力処理部
152 格納処理部
153 通知部
170 操作パネル
200a〜200m サブモジュール
226 認証ファイル
300 コントローラボード
301 ASIC
302 CPU
304 フラッシュメモリ
306 SRAM
307 フラッシュカード
308 フラッシュカードインターフェース部
309 フラッシュカード
310 オペレーションパネル
320 FCU
330 USB
340 IEEE1394
350 LANボード
360 プリンタ
400 ネットワーク
401 モジュール提供サーバ
402 PC
403 複合機
510 モニタ
520 プログラム起動部
521 起動モード設定部
522 サービス層起動部
523 アプリ起動部
524 アプリ起動情報設定部
530 ROM更新部
531 ROM更新命令解読部
532 SRAM処理部
533 ROM更新処理部
534 表示制御部
601 制御スレッド
602 認証スレッド
603 変換スレッド
611 設定情報
612 プログラムIDデータベース
1801 認証サーバ
1901 認証スレッド
1911 SOAPプロキシ
1912 SOAPリスナ
1913 httpスレッド
1914 ftpスレッド
1915 smtpスレッド

【特許請求の範囲】
【請求項1】
モジュールと、
カスタマイズの対象となる前記モジュールを識別する識別情報を入力する入力処理手段と、
前記識別情報で識別されるモジュール毎にカスタマイズを許可するか否か示す情報を保持する認証情報に基づいて、前記識別情報で識別されるモジュールに対して、カスタマイズを許可する権限があるか否か認証を行う認証手段と、
カスタマイズを許可する権限があることを認証した場合に、前記識別情報で識別されるモジュールのカスタマイズを行う制御手段と、
を備えたことを特徴とする画像処理装置。
【請求項2】
前記認証情報を記憶する記憶手段をさらに備え、
前記判断手段は、前記記憶手段に記憶された識別情報に基づいて、前記識別情報で識別されるモジュールのカスタマイズを許可するか否か判断すること、
を特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記認証手段は、ネットワークを介して接続された認証装置に対して認証要求を行うことで、前記認証情報を備える認証装置から認証結果を得られることで、前記識別情報で識別されるモジュールに対して、カスタマイズを許可する権限があるか否か認証を行うこと、
を特徴とする請求項1に記載の画像処理装置。
【請求項4】
前記入力処理手段は、さらに、前記モジュールを構成するサブモジュールを識別する前記識別情報の入力し、
前記認証手段は、前記認証情報に基づいて、前記識別情報で識別される前記サブモジュールに対して、カスタマイズを許可する権限があるか否か認証を行い、
前記制御手段は、さらに、サブモジュール単位でカスタマイズを行うこと、
を特徴とする請求項1乃至3のいずれか1つに記載の画像処理装置。
【請求項5】
カスタマイズの対象となる前記モジュール単位の更新データを取得する取得手段を、さらに備え、
前記制御手段は、前記取得手段により取得された更新データを用いて、前記モジュール単位で更新を行うこと、
を特徴とする請求項1に記載の画像処理装置。
【請求項6】
前記認証手段が認証に用いる前記認証情報は、個人情報を使用するモジュールに対してカスタマイズを許可しないことを示す情報が含まれていること、
を特徴とする請求項1乃至5のいずれか1つに記載の画像処理装置。
【請求項7】
前記入力処理手段は、ネットワークを介して接続された情報処理装置から、当該情報処理装置がカスタマイズを実行する前記モジュールを識別する識別情報の入力すること、
を特徴とする請求項1乃至6のいずれか1つに記載の画像処理装置。
【請求項8】
カスタマイズの対象となる前記モジュールを識別する識別情報を入力する入力処理ステップと、
前記識別情報毎にカスタマイズを許可するか否か示す情報を保持する認証情報に基づいて、前記識別情報で識別されるモジュールに対して、カスタマイズを許可する権限があるか否か認証を行う認証ステップと、
カスタマイズを許可する権限があることを認証した場合に、前記識別情報で識別されるモジュールのカスタマイズを行う制御ステップと、
を有することを特徴とする情報処理方法。
【請求項9】
カスタマイズの対象となる前記モジュールを識別する識別情報を入力する入力処理手段と、
前記識別情報毎にカスタマイズを許可するか否か示す情報を保持する認証情報に基づいて、前記識別情報で識別されるモジュールに対して、カスタマイズを許可する権限があるか否か認証を行う認証手段と、
カスタマイズを許可する権限があることを認証した場合に、前記識別情報で識別されるモジュールのカスタマイズを行う制御手段と、
して機能させる情報処理プログラム。




【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate


【公開番号】特開2009−205539(P2009−205539A)
【公開日】平成21年9月10日(2009.9.10)
【国際特許分類】
【出願番号】特願2008−48562(P2008−48562)
【出願日】平成20年2月28日(2008.2.28)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】