JP4810282B2 - モジュールインストール方法、モジュールインストール装置、及びプログラム - Google Patents

モジュールインストール方法、モジュールインストール装置、及びプログラム Download PDF

Info

Publication number
JP4810282B2
JP4810282B2 JP2006100194A JP2006100194A JP4810282B2 JP 4810282 B2 JP4810282 B2 JP 4810282B2 JP 2006100194 A JP2006100194 A JP 2006100194A JP 2006100194 A JP2006100194 A JP 2006100194A JP 4810282 B2 JP4810282 B2 JP 4810282B2
Authority
JP
Japan
Prior art keywords
module
add
order
information
modules
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006100194A
Other languages
English (en)
Other versions
JP2007272763A5 (ja
JP2007272763A (ja
Inventor
雅樹 山道
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2006100194A priority Critical patent/JP4810282B2/ja
Priority to PCT/JP2007/057713 priority patent/WO2007114513A1/en
Priority to US12/160,565 priority patent/US8627343B2/en
Publication of JP2007272763A publication Critical patent/JP2007272763A/ja
Publication of JP2007272763A5 publication Critical patent/JP2007272763A5/ja
Application granted granted Critical
Publication of JP4810282B2 publication Critical patent/JP4810282B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1205Improving or facilitating administration, e.g. print management resulting in increased flexibility in print job configuration, e.g. job settings, print requirements, job tickets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1224Client or server resources management
    • G06F3/1225Software update, e.g. print driver, modules, plug-ins, fonts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1293Printer information exchange with computer

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Description

本発明は、モジュールインストール方法、モジュールインストール装置、及びプログラムに関するものである。
近年、印刷結果の付加価値を高めるために、例えばコピーガード機能、フォームオーバーレイ、電子透かし、ジョブ追跡機能等の高度な新規付加機能をプリンタドライバに追加する動きがある。多くの場合、これらの付加機能は、通常印刷以上の付加価値を有するために、基本プリンタドライバセットに同梱せずに有償オプションとして提供されることが想定される。
また、複数のプリンタドライバのバージョンや印刷装置のモデルとの依存性を極力抑えるために、これらの機能は共通拡張インタフェースをもつ追加のアドイン(プラグイン)モジュールとして提供される。
この共通拡張インタフェースに対応していれば、過去にリリースした基本プリンタドライバセットとの組み合わせでも、アドインモジュールを提供しさえすれば、新規付加機能を実現可能という利点が存在する。言い換えると、新規機能をアドインで提供することにより、印刷装置の発売当初には想定されていない、印刷装置が認識できない機能も、付加的に後からプリンタドライバに追加することが可能である。
特許文献1においては、前述のような共通拡張インタフェースに対応したプリンタドライバに対してプログラムファイルやデータファイルなどの機能拡張モジュールを追加、削除するための詳細な方法が提示されている。
また、特許文献2には、ファイル検索プログラム7はレジストリファイル12に登録されているプリンタドライバを検索し、チェックプログラム6はレジストリファイル12に第2のプリンタ11のドライバと同一ラインナップのプリンタドライバが既に登録されているか否かを確認する。そして、新たに登録する第2のプリンタ11のドライバのリソースと、既に登録されている第1のプリンタのドライバのリソースとの競合の有無を判断する。すなわち、第2のプリンタ11に割り当てられるI/Oポートアドレスと、第1のプリンタに割り当てられているI/Oポートアドレスとが競合した場合はステップ106へ移行し、競合しなかった場合はステップ105へ移行する。そして、ファイル書き込みプログラム5によって第2のプリンタ11のドライバをレジストリファイル12に登録し、このプリンタドライバをコンピュータのハードディスク等の補助記憶装置に書き込むことによりインストールを実施する。また、I/Oポートアドレスが競合した場合はステップ106において、インストール順序が正しくないことを使用者に知らせるため、アラーム表示プログラム9によってモニタ13上に所定の警告を表示させる。そして、ドライバを消去し、インストール順序を変更するという技術が記載されている。
特開2005−208895号公報 特開平10−124435号公報
しかしながら従来の技術においてはモジュールを追加するときに既にインストールされているモジュールとの動作順番について考慮されていない。そのため、既存のプリンタドライバを構成するモジュールに対して追加で機能拡張モジュールを追加した際に、動作をしない場合や、正常な動作をしない場合があるという問題があった。
さらに、特許文献2は、一度インストールしてみて、ポートの設定が競合する場合に、インストール順序を入れ換えるものである。
なお、上記の問題は、プリンタドライバに限られるものではなく、モジュールを追加可能なプログラム全体に起こり得るものであった。
本発明は、上記の問題点を解決するためになされたものである。本発明の目的は、プリンタドライバ等のプログラムにモジュールを追加する際に、該追加するモジュールとプログラムを構成する既存のモジュールとの動作順番を正しく制御し、印刷処理の実行時に、プログラムを構成する各モジュールが適切に動作するようにする仕組を提供することである。
さらに本発明の別の目的として、本願発明は、前記の動作順番に応じて適切なインストール手順を事前に決定してインストールする仕組みを提供するという別の側面がある。
情報処理装置にインストール済みのプログラムに対してモジュールの追加が指示されると、該インストール済みのプログラムを構成する1又は複数のモジュールを検出する検出ステップと、該検出された前記1又は複数のモジュールと前記追加が指示されたモジュールとを動作させるべき順番を判定する判定ステップと、該判定された動作の順番で前記複数のモジュールが処理を実行するように、前記追加が指示されたモジュールを前記情報処理装置にインストールするモジュールインストールステップと、を有し、前記インストール済みのプログラムはプリンタドライバプログラムであって、改ざん検知モジュールと暗号化モジュールとの追加が指示された際に、前記判定ステップでは、前記動作の順番として、暗号化モジュールより後に改ざん検知モジュールが動作されるべきと判定され、前記モジュールインストールステップでは、前記暗号化モジュールがデータが処理を実行した後、該処理されたデータに対して前記改ざん検知モジュールが改ざん検知処理を実行するようにインストール順序を変更して、前記暗号化モジュールと前記改ざん検知モジュールをインストールされることを特徴とする。
本発明によれば、プリンタドライバ等のプログラムにモジュールを追加する際に、該追加するモジュールとプログラムを構成する既存のモジュールとの動作順番を正しく設定制御することが可能になる。
従って、プリンタドライバ等のプログラムを構成する各モジュールを適切な順番で適用し、適切に動作させることができる等の効果を奏する。
〔第1実施形態〕
以下、本発明を適用するのに好適である実施形態について説明を行う。
図1は、本発明を適用可能な情報処理装置の一例を示すブロック図である。
図1において、100は情報処理装置としてのコンピュータ(例えば、パーソナルコンピュータ)である。本発明の印刷システムでは、コンピュータ100とプリンタ30はセントロニクス等のインタフェースあるいはイーサネット(登録商標)等のネットワークによって接続されている。なお、図1においては、コンピュータ100とプリンタ30がネットワーク20によって接続されている場合を示しているが、図示しないインタフェース(例えば、USB,セントロニクスインタフェース等)を介して接続される構成であってもよい。
1はCPUで、ROM3のプログラム用ROM,外部メモリ12に記憶されたプログラム(BIOS,OS,アプリケーションプログラム,後述する、アドインインストーラを含む各種インストーラ等)に基づいてシステムバス4に接続された各デバイスを制御し、装置全体を統括制御する。
また、ROM3のフォント用ROMにはフォントデータ等を記憶し、ROM3のデータ用ROMには各種データを記憶する。2はRAMで、CPU1の主メモリ,ワークエリア等として機能する。
5はキーボードコントローラ(KBC)で、ポインティングデバイス9(例えばマウス)やキーボード(KB)10等からの入力を制御する。6はディスプレイコントローラ(DC)で、ディスプレイ11の表示を制御する。なお、ディスプレイ11は、CRTであってもLCD等のその他の形式の表示装置であってもよい。
7はメモリコントローラ(MC)で、外部メモリ12(ハードディスク(HD),図示しないフレキシブルディスク(FD),CD−ROM等)とのアクセスを制御する。8はネットワークインタフェース(NWI/F)で、ネットワーク20を介してプリンタ30との通信を制御する。
<システムの構成>
以下、図1に示したコンピュータ100を例にして、プリンタドライバおよびアドインモジュール、および本発明を実現するために必要なその他の構成について説明する。
図2は、本発明の第1実施形態に係る印刷システムの構成例を示すブロック図であり、図1と同一のものには同一の符号を付してある。
図2において、101はプリンタドライバである。プリンタドライバ101は、コンピュータ100からプリンタ30へ印刷を行うためのプログラムで、コンピュータ100のアプリケーション108等からの印刷命令をOS内の描画エンジン109を介して入力する。そして、プリンタドライバ101は、入力した印刷命令をプリンタ30が認識可能な制御コマンドに変換し、印刷サービス105を介してプリンタに転送する。
なお、プリンタドライバ101は、プリンタドライバインストーラ107またはOSが提供する図示しないプリンタドライバインストール方法によってインストールされ、利用可能となる。
アドインモジュール102は、例えばDLL(Dynamic Link Library)などのプログラムファイルを含むファイル群である。アドインモジュール102は、アドインインストーラ106にもしくはプリンタドライバ101によってインストールされることによって、プリンタドライバの共通インタフェースを用いて通信可能となり、機能拡張を実現する。即ち、アドインインストーラ106は、プリンタドライバ101がインストール済みの状態で実行可能なプログラムであり、アドインモジュール102はプリンタドライバの一部として動作する構成となっている。
次に、アドインモジュール情報ファイル103について説明する。
アドインモジュール情報ファイル103は、アドインモジュールを構成するファイル群の1ファイルであり、図3に例示するような情報を有する。なお、アドインモジュール情報ファイル103のファイル形式は可読性のあるテキスト形式やXML形式であってもかまわないし、バイナリファイルのような非可読形式であってもよい。ここで、図3を参照して、アドインモジュール情報ファイル103のデータ構成について説明する。
図3は、図2に示したアドインモジュール情報ファイル103のデータ構成を示すデータ構成図である。
図3において、201はアドインモジュール構成ファイル情報であり、アドインモジュール102のファイル構成が記述されている領域である。202はアドインモジュール102のバージョン情報が記述されている領域である。203はアドインモジュール102のリリース日が記述されている領域である。204はアドインモジュール102の製品名情報が記述されている領域である。205はアドインモジュール102の詳細情報が記述されている領域である。
206はPriorityNumber(プライオリティナンバ)であり、動作の順番を決定する一意の番号が記述されている領域である。207はアドインモジュール102のCopyright情報が記述されている領域である。
以下、図2の説明に戻る。
プリンタドライバファイル情報104は、OSが印刷サービス105を用いてプリンタドライバを利用するための一管理情報(構成情報)であり、外部メモリ12の所定領域(OSにより管理される所定の記憶領域)に登録されている。このプリンタドライバファイル情報104は、例えばWindows(登録商標)ではレジストリ中の「DependentFiles」が該当する。なお、プリンタドライバが複数インストールされている場合には、各プリンタドライバ毎に、プリンタドライバファイル情報104が外部メモリ12に登録される。
図2においては、アドインモジュール102がインストール済であり、プリンタドライバファイル情報104に、アドインモジュールファイル情報111が登録されている。このアドインモジュールファイル情報111には、アドインモジュール情報ファイルを特定する情報(例えば、アドインモジュール情報ファイル名称)112が含まれる。
また、図示しないがアドインモジュール102とは異なるアドインモジュールが別途インストールされていても、プリンタドライバ101は動作可能である。なお、プリンタドライバ101に複数のアドインモジュールがインストールされている場合には、各アドインモジュール毎にアドインモジュールファイル情報111(アドインモジュール情報ファイルを特定する情報112を含む)が登録される。
印刷サービス105は、オペレーティングシステム(OS)上で印刷やプリンタドライバ101のインストールを制御するサービスプログラムである。
アドインインストーラ106は、本発明の目的を達成するための中心となるものであり、インストール済のプリンタドライバ101にアドインモジュールを追加インストールするプログラムである。なお、追加インストールするアドインモジュールファイルは、アドインインストーラ106内又は外部メモリ12内の他の記憶領域に格納されているものとする。
なお、アドインインストーラ106は、主に以下の(1)〜(5)の機能を有する。
(1)1つまたは複数のプリンタドライバを構成する1つまたは複数のモジュールを検出する構成モジュール検出機能
(2)追加するアドインモジュールと、プリンタドライバ101を構成する1つまたは複数のモジュール(インストール済みのアドインモジュール102)との適切な動作の順番(該複数のアドインモジュールを動作させるべき順番)を判定するモジュール適正動作順番判定機能
(3)アドインモジュールファイルを追加するファイル追加機能
(4)上述のモジュール適正動作順番判定機能で判定された動作順番に従って追加された追加ファイルをプリンタドライバファイル情報104に登録するファイル登録機能
(5)印刷サービス105にモジュール構成の変更を認識させる認識機能
なお、アドインインストーラ106における処理の流れについては、後述する図4以降を用いて詳細に説明する。
プリンタドライバインストーラ107は、プリンタドライバ101をコンピュータ100にインストールするプログラムである。
なお、アドインインストーラ106,プリンタドライバインストーラ107は、図1に示したCPU1が外部メモリ12に格納されたプログラムをRAM2上で実行することにより実現されるものである。
<アドインインストーラ106における処理の流れ>
図4は、本発明における第1の制御処理手順の一例を示すフローチャートであり、アドインインストーラ106の処理の流れに対応する。即ち、このフローチャートの処理は、CPU1が外部メモリ12に格納されたアドインインストーラ106に対応するプログラムをRAM2上で実行することにより実現されるものである。なお、図中、S3000〜S3400は各ステップを示す。
まず、ステップS3000において、アドインインストーラ106は、アドインモジュールの追加対象プリンタドライバについて、インストール済みのアドインモジュールの検出を行う。なお、このアドインモジュールの追加対象プリンタドライバは、コンピュータ100にインストール済みのプリンタドライバであり、ユーザによってアドインモジュールの追加対象として選択されたものが対応する。ここでは、図2のプリンタドライバ101とする。また、このステップS3000の処理の詳細は図5において説明する。
次に、ステップS3100において、アドインインストーラ106は、アドインモジュール順番情報を作成する。この処理は、ステップS3000で検出されたインストール済みのアドインモジュール102と、アドインインストーラ106により追加するアドインモジュールを合わせた印刷処理において、適正な順番情報(前記複数のアドインモジュールを動作させるべき順番)を保持するアドインモジュール順番情報を作成する。なお、このアドインモジュール順番情報は、適正に動作可能な順番(前記複数のアドインモジュールを動作させるべき順番)が存在した場合にのみ作成される。
また、このアドインモジュール順番情報の保持形態としては、ファイル形式やRAM2上に保持する等形態は問わないが、ここではRAM2上に保持するものとして説明する。このアドインモジュール順番情報は、最小の情報構成として順番を示す番号とモジュール名称を保持している。なお、このステップS3100の処理の詳細は図6において説明する。
次に、ステップS3200において、アドインインストーラ106は、アドインモジュール順番情報がRAM2上に存在するか否かを判定する。そして、アドインモジュール順番情報がRAM2上に存在しないと判定した場合には、アドインインストーラ106は、ステップS3400に処理を進める。
ステップS3400では、アドインインストーラ106は、アドインモジュールインストール処理を中止し、本フローチャートの処理を終了する。
一方、ステップS3200で、アドインモジュール順番情報がRAM2上に存在すると判定した場合には、アドインインストーラ106は、ステップS3300に処理を進める。
ステップS3300では、アドインインストーラ106は、アドインモジュールインストール処理を行い、本フローチャートの処理を終了する。なお、このステップS3300の処理の詳細は図7において説明する。
図5は、本発明における第2の制御処理手順の一例を示すフローチャートであり、図4のステップS3000に示したアドインモジュール検出処理の詳細な流れに対応する。即ち、このフローチャートの処理は、CPU1が外部メモリ12に格納されたアドインインストーラ106に対応するプログラムをRAM2上で実行することにより実現されるものである。なお、図中、S4000〜S4600は各ステップを示す。
まず、ステップS4000において、アドインインストーラ106は、プリンタドライバファイル情報104を参照して、プリンタドライバ101についての構成情報を取得する。
次に、ステップS4100において、アドインインストーラ106は、アドインモジュール情報ファイル103が存在するか否かを判定する。なお、この判定は、ステップS4000によって取得された構成情報内にアドインモジュール情報ファイル103に関するファイル情報(アドインモジュールファイル情報111)が1つでも含まれている場合にアドインモジュール情報ファイル103が存在すると判定する。一方、構成情報内にアドインモジュールファイル情報111が1つも含まれていない場合にはアドインモジュール情報ファイル103が存在しないと判定する。
ステップS4100で、アドインモジュール情報ファイル103が存在しないと判定した場合には、アドインインストーラ106は、そのまま本フローチャートの処理を終了して、図4のステップS3100に処理を進める。
一方、ステップS4100で、アドインモジュール情報ファイル103が存在すると判定した場合には、アドインインストーラ106は、ステップS4200に処理を進める。
ステップS4200では、アドインインストーラ106は、ステップS4000で取得した構成情報内に登録された全てのアドインモジュール情報ファイル103の参照が終了したか否かを判定する。
そして、ステップS4200で、まだ全てのアドインモジュール情報ファイル103の参照が終了していないと判定した場合には、アドインインストーラ106は、ステップS4300に処理を進める。
ステップS4300では、アドインインストーラ106は、ステップS4000で取得した構成情報内に登録されており且つ未だ参照していないアドインモジュール情報ファイル103を1つ選択し、該アドインモジュール情報ファイル103内の情報を参照する。
次に、ステップS4400において、アドインインストーラ106は、ステップS4300でアドインモジュール情報ファイル103内の情報が正常に参照されたか否かを判定する。
ステップS4400において、ステップS4300でアドインモジュール情報ファイル103内の情報が正常に参照されなかったと判定した場合には、アドインインストーラ106は、ステップS4500に処理を進める。
ステップS4500では、アドインインストーラ106は、このアドインモジュールは正常に動作していない、即ちアドインされていないとみなし、ステップS4600に処理を進める。
一方、ステップS4400において、ステップS4300でアドインモジュール情報ファイル103内の情報が正常に参照さたと判定した場合には、アドインインストーラ106は、ステップS4600に処理を進める。
ステップS4600では、アドインインストーラ106は、次のアドインモジュール情報ファイル103の参照へ処理を進め、ステップS4200に処理を戻す。
そして、ステップS4200で、構成情報内に登録された全てのアドインモジュール情報ファイル103の参照が終了したと判定した場合には、アドインインストーラ106は、本フローチャートの処理を終了して、図4のステップS3100に処理を進める。
以上が、図4のステップS3000に示したアドインモジュール検出処理の詳細動作となり、アドインを追加するプリンタドライバが複数選択されている場合には、選択されているプリンタドライバの数だけ同様の処理を繰り返す。
図6は、本発明における第3の制御処理手順の一例を示すフローチャートであり、図4のステップS3100に示したアドインモジュール順番情報作成処理の詳細な流れに対応する。即ち、このフローチャートの処理は、CPU1が外部メモリ12に格納されたアドインインストーラ106に対応するプログラムをRAM2上で実行することにより実現されるものである。なお、図中、S5000〜S5800は各ステップを示す。
まず、ステップS5000において、アドインインストーラ106は、アドインモジュール順番情報の新規作成など初期化処理を行う。
ステップS5100において、アドインインストーラ106は、アドインの追加対象プリンタドライバに対し、図4のステップ3000で検出された及びこれから追加する全てのアドインモジュールのアドインモジュール情報ファイル取得を終了したか否かを判定する。即ち、アドインモジュール順番情報の作成処理を完了したか否かを判定する。
ステップS5100で、図4のステップS3000で検出された及びこれから追加するアドインモジュールの全てのアドインモジュール情報ファイル取得を未だ終了していないと判定した場合には、アドインインストーラ106は、ステップS5200に処理を進める。
ステップS5200では、アドインインストーラ106は、図4のステップS3000で検出された及びこれから追加するアドインモジュール内のまだ取得していないアドインモジュール情報ファイル103を1つ取得する。以下、このアドインモジュール情報ファイル103に対応するアドインモジュールを現在注目しているアドインモジュールと呼ぶ。
ステップS5300では、アドインインストーラ106は、ステップS5200で取得したアドインモジュール情報ファイル103からPriorityNumber206を取得する。なお、PriorityNumberとは例えば1以上の整数などであり、数値の大小によって動作する順番を定義するものである。このPriorityNumberによって新規にモジュールを追加した場合にも対応が可能となる。
ステップS5400では、アドインインストーラ106は、本ステップまでにアドインモジュール順番情報内に書き込み済みのアドインモジュールのPriorityNumberと現在注目しているアドインモジュールのPriorityNumberとを比較する。そして、アドインインストーラ106は、PriorityNumberの大きい順となるように順番(アドインモジュール順番情報への書き込み位置)を決定する。
次に、ステップS5500において、アドインインストーラ106は、ステップS5400で決定された書込位置に書き込みが可能か否かを判定する。なお、書き込みが不可能な場合としては、PriorityNumberが同一のものや共存が不可能なモジュールの競合等が考えられる。
ステップS5500で、書き込みが不可能であると判定した場合、アドインインストーラ106は、ステップS5800に処理を進める。
ステップS5800では、アドインインストーラ106は、適正な順番(予め追加されているアドインモジュールとこれから追加するアドインモジュールとを動作させるべき順番)が存在しないと判断して、現在RAM2に保持しているアドインモジュール順番情報を削除する。そして、アドインインストーラ106は、図示しないステップにおいて、PriorityNumberが同一であったり、共存が不可能なモジュールの競合等が発生しモジュールを適用する適正な順番(動作させるべき順番)が存在しない旨の通知をディスプレイ11に表示する。そして、本フローチャートの処理を終了し、図4のステップS3200に処理を進める。
一方、ステップS5500で、書き込みが可能であると判定した場合には、アドインインストーラ106は、ステップS5600に処理を進める。
ステップS5600では、アドインインストーラ106は、現在注目しているアドインモジュールのアドインモジュール名称を、ステップS5400で決定したアドインモジュール順番情報内の書込位置に書込処理する。本実施形態では、順番を示す番号とアドインモジュール名称を書込処理する。
次に、ステップS5700において、アドインインストーラ106は、次のアドインモジュール情報ファイルへ処理を進め、ステップS5100に処理を戻す。
そして、ステップS5100で、図4のステップ3000で検出された及びこれから追加するアドインモジュールの全てのアドインモジュール情報ファイル取得を終了したと判定した場合には、本フローチャートの処理を終了し、図4のステップS3200に処理を進める。
以上が図4のステップS3100に示したアドインモジュール順番情報作成処理の詳細動作となり、アドインを追加するプリンタドライバが複数選択されている場合には選択されているプリンタドライバの数だけ同様の処理を繰り返す。
なお、図6では各アドインモジュールがPriorityNumberを保持することでアドインモジュール順番情報を作成したが、アドインモジュール順番情報をファイル情報として外部から提供するようにしてもよい。例えば、アドインモジュール順番情報をファイル情報としてWeb上で公開し、該Web上でから取得して提供するように構成してもよい。
また、アドインモジュール順番情報は、XMLのようなテキスト形式でも非可読のバイナリ形式でもよくデータ形式は問わない。
図7は、本発明における第4の制御処理手順の一例を示すフローチャートであり、図4のステップS3300に示したアドインモジュールインストール処理の詳細な流れに対応する。即ち、このフローチャートの処理は、CPU1が外部メモリ12に格納されたアドインインストーラ106に対応するプログラムをRAM2上で実行することにより実現されるものである。なお、図中、S6000〜6500は各ステップを示す。
まず、ステップS6000において、アドインインストーラ106は、プリンタドライバファイル情報104内に登録されたアドインモジュールファイル情報111を初期化する。
次に、ステップS6100において、アドインインストーラ106は、ステップS3100で作成されたアドインモジュール順番情報を取得する。
次に、ステップS6200において、アドインインストーラ106は、ステップS6100で取得したアドインモジュール順番情報に記載されているアドインモジュールのインストール処理が全て完了したか否かを判定する。
ステップS6200で、ステップS6100で取得したアドインモジュール順番情報に記載されているアドインモジュールのインストール処理がまだ全て完了していないと判定した場合には、アドインインストーラ106は、ステップS6300に処理を進める。
ステップS6300では、アドインインストーラ106は、アドインモジュール順番情報に従い動作の順番が早いものから1つアドインモジュール(アドインモジュール構成ファイル)を取得する。
次に、ステップS6400において、アドインインストーラ106は、ステップS6300で取得したアドインモジュール構成ファイルを外部メモリ12内の所定領域(OSの記憶領域)に追加する。なお、このステップは、今回新たに追加インストールするアドインモジュールに対してのみ行い、予め追加済みであったアドインモジュールに関してはスキップするものとする。
次に、ステップS6500において、アドインインストーラ106は、プリンタドライバ構成情報(プリンタドライバファイル情報104)内にアドインモジュールファイル情報111(アドインモジュール情報ファイルを特定する情報112を含む)を登録する。
次に、ステップS6600において、アドインインストーラ106は、アドインモジュール順番情報に次の記載されているアドインモジュールに処理を移し、ステップS6200へ処理を戻す。
そして、ステップS6200で、アドインモジュール順番情報に記載されているアドインモジュールのインストール処理が全て完了したと判定した場合には、本フローチャートの処理を終了する。
以上のようにインストール処理することで、予め追加されているアドインモジュールと新たに追加したアドインモジュールとが、図4のステップS3100で判定された動作の順番で処理を実行するように、新たなアドインモジュールを登録することができる。
<アドインインストーラUIについて>
図8は、本発明における第5の制御処理手順の一例を示すフローチャートであり、アドインインストーラ106によるアドインインストール時のUI表示の流れに対応する。即ち、このフローチャートの処理は、CPU1が外部メモリ12に格納されたアドインインストーラ106に対応するプログラムをRAM2上で実行することにより実現されるものである。なお、図中、S7000〜S7400は各ステップを示す。
また、図9〜図13は、アドインインストーラ106によるアドインインストール時のUI表示処理時の表示画面の一例を示す模式図である。
まず、アドインセットアップウィザードが開始されると、アドインインストーラ106は、ステップS7000において、図9に示すようなスタート画面をディスプレイ11に表示する。
図9に示すスタート画面において、「次へ」ボタン801が指示されると(PD9でクリックされると)、アドインインストーラ106は、図8のステップS7100に処理を進める。
なお、図8のフローチャートには示していないが、図9に示すスタート画面において、「キャンセル」ボタン802が指示されると(PD9でクリックされると)、アドインインストーラ106は、図8のフローチャートの処理を中止する。
次に図8のステップS7100では、アドインインストーラ106は、図10(a)のようなドライバ機種選択画面をディスプレイ11に表示する。
図10(a)に示すドライバ機種選択画面では、901に示すように、現在アドインモジュールのインストール対象となっているプリンタドライバの一覧が表示されている。
このドライバ機種選択画面で、「追加と削除」ボタン902が指示されると(PD9でクリックされると)、アドインインストーラ106は、図10(b)のような画面をディスプレイ11に表示する。
図10(b)に示す画面では、906に示すように、アドインモジュールがインストール可能なプリンタドライバの一覧が表示される。
図10(b)に示す画面で、「インストールするドライバ一覧へ追加」ボタン907が指示されると(PD9でクリックされると)、アドインインストーラ106は、906において選択されているプリンタドライバをアドインモジュールのインストール対象となっているプリンタドライバの一覧を表す910に追加処理する。
また、図10(b)に示す画面で、「削除」ボタン908が指示されると(PD9でクリックされると)、アドインインストーラ106は、910で選択されているプリンタドライバをインストール対象から削除する。
また、図10(b)に示す画面で、「OK」ボタン909が指示されると(PD9でクリックされると)、アドインインストーラ106は、図10(b)を閉じ、910の内容を901に反映させて図10(a)の画面に戻す。
図10(b)に示す画面で、「キャンセル」ボタン910が指示されると(PD9でクリックされると)、アドインインストーラ106は、図10(b)を閉じ、図10(a)の画面に戻す。
図10(a)の画面で、「戻る」ボタン903が指示されると(PD9でクリックされると)、アドインインストーラ106は、図8のステップS7000に処理を戻す。
図10(a)の画面で、「開始」ボタン904が指示されると(PD9でクリックされると)、アドインインストーラ106は、図8のステップS7200に処理を進める。
なお、図8のフローチャートには示していないが、図10(a)の画面で、「キャンセル」ボタン905が指示されると(PD9でクリックされると)、アドインインストーラ106は、図8のフローチャートの処理を中止する。
図8のステップS7200において、アドインインストーラ106は、図11のようなインストール警告表示画面をディスプレイ11に表示する。
図11の画面で、「いいえ」ボタン1005が指示されると(PD9でクリックされると)、図8のフローチャートには示していないが、アドインインストーラ106は、図8のフローチャートの処理を中止する。
また、図11の画面で、「はい」ボタン1001が指示されると(PD9でクリックされると)、アドインインストーラ106は、ステップS7300に処理を進める。
次に、図8のステップS7300において、アドインインストーラ106は、図12のようなステータス画面をディスプレイ11に表示し、図4のフローチャートに示した処理(インストール実処理)を実行する。
そして図4に示したインストール実処理の完了後、アドインインストーラ106は、図8のステップS7400に処理を進める。
図8のステップS7400では、アドインインストーラ106は、図13のようなインストール結果画面をディスプレイ11に表示することで、アドインインストールが成功したか否かを表示する。図13に示した例では、図4に示した処理でアドインのインストールが成功(完了)した場合に対応する。
なお、アドインインストーラ106は、図4に示した処理で、動作において適切なインストール順番が存在しない場合等は、このインストール結果画面で、アドインのインストールが失敗した旨を表示する。
図13のインストール結果画面において、PD9で1201が選択されて「終了」ボタン1203が指示されると(PD9でクリックされると)、アドインインストーラ106は、図13の画面を閉じ、コンピュータ100の再起動を行う。これにより、アドインインストーラ106によって行われたプリンタドライバ101の変更をコンピュータ100に反映させる。
また、図13のインストール結果画面において、PD9で1202が選択されて「終了」ボタン1203が指示されると(PD9でクリックされると)、アドインインストーラ106は、図13を閉じる。
<アドインモジュール102の呼び出し処理の流れ>
本実施形態によりインストールされたアドインモジュールを備えたプリンタドライバの印刷処理の詳細を図1、図2、および図14を用いて説明する。
アプリケーション108、グラフィックエンジン109、プリンタドライバ101、および印刷サービス105は、外部メモリ12に保存されたファイルとして存在する。そして、これらは、CPU1により実行されるOSやそのモジュールを利用するモジュールによってRAM2にロードされて実行されるプログラムモジュールである。
また、アプリケーション108およびプリンタドライバ101は、外部メモリ12のFDやCD−ROM、あるいは不図示のネットワーク20を経由して外部メモリ12のHDに追加することが可能となっている。
外部メモリ12に保存されているアプリケーション108は、CPU1によりRAM2にロードされて実行される。しかし、このアプリケーション108からプリンタ30に対して印刷を行う際には、同様にRAM2にロードされ実行可能となっているグラフィックエンジン109を利用して出力(描画)を行う。
グラフィックエンジン109は、プリンタなどの印刷装置毎に用意されたプリンタドライバ101を外部メモリ12からRAM2にロードし、アプリケーション108の出力をプリンタドライバ101に設定する。また、グラフィックエンジン202は、アプリケーション108から受け取るGDI(Graphic Device Interface)関数をDDI(Device Driver Interface)関数に変換して、プリンタドライバ101へ出力する。
プリンタドライバ101は、グラフィックエンジン109から受け取ったDDI関数に基づいて、プリンタが認識可能な制御コマンド、例えばPDL(Page Description Language)に変換する。該変換されたプリンタ制御コマンドは、OSによってRAM2にロードされた印刷サービス105を経てプリンタ30へ印刷データとして出力される仕組みとなっている。
本実施形態の印刷システムは、プリンタドライバ101内にアドインモジュール処理部110を有する。
プリンタドライバ101は、アドインモジュール102の実行に際し、アドインモジュール処理部110を通してアドインモジュール102を呼び出し、処理を行う。アドインモジュール102の呼び出し処理の詳細に関しては図14を用いて示す。
図14は、本発明における第6の制御処理手順の一例を示すフローチャートであり、プリンタドライバ101によるアドインモジュールの呼び出し処理の流れに対応する。即ち、このフローチャートの処理は、CPU1が外部メモリ12に格納されたアドインインストーラ106に対応するプログラムをRAM2上で実行することにより実現されるものである。なお、図中、S13000〜S13700は各ステップを示す。
まず、ステップS13000において、プリンタドライバ101は、プリンタドライバファイル情報104を参照して、プリンタドライバ101についての構成情報を取得する。
次に、ステップS13100において、プリンタドライバ101は、アドインモジュール情報ファイル103が存在するか否かを判定する。なお、この判定は、ステップS13000によって取得された構成情報内にアドインモジュール情報ファイル103に関するファイル情報(アドインモジュールファイル情報111)が1つでも含まれている場合にアドインモジュール情報ファイル103が存在すると判定する。一方、構成情報内にアドインモジュールファイル情報111が1つも含まれていない場合にはアドインモジュール情報ファイル103が存在しないと判定する。なお、本実施形態において図7の処理が実行されている場合には、アドインモジュールファイル情報111は、プリンタドライバファイル情報104において動作順番の早いものから順番に登録されている。
ステップS13100で、アドインモジュール情報ファイル103が存在しないと判定した場合には、プリンタドライバ101は、のまま本フローチャートの処理を終了する。
一方、ステップS13100で、アドインモジュール情報ファイル103が存在すると判定した場合には、プリンタドライバ101は、ステップS13200に処理を進める。
ステップS13200では、プリンタドライバ101は、ステップS13000で取得した構成情報内に登録された全てのアドインモジュール情報ファイルの参照が終了したか否かを判定する。
そして、ステップS13200で、まだ全てのアドインモジュール情報ファイル103の参照が終了していないと判定した場合には、プリンタドライバ101は、ステップS13300に処理を進める。
ステップS13300では、プリンタドライバ101は、ステップS13000で取得した構成情報内に登録されており且つ未だ参照していないアドインモジュール情報ファイル103を1つ選択し、該アドインモジュール情報ファイル103内の情報を参照する。
次に、ステップS13400において、プリンタドライバ101は、ステップS13300でアドインモジュール情報ファイル内の情報が正常に参照されたか否かを判定する。
ステップS13400において、ステップS13300でアドインモジュール情報ファイル内の情報が正常に参照されなかったと判定した場合には、プリンタドライバ101は、ステップS13500に処理を進める。
そして、ステップS13500では、プリンタドライバ101は、このアドインモジュールは正常に動作していない、即ちアドインされていないとみなし、ステップS13700に処理を進める。
一方、ステップS13400において、ステップS13300でアドインモジュール情報ファイル内の情報が正常に参照さたと判定した場合には、プリンタドライバ101は、ステップS13600に処理を進める。
そして、ステップS13600では、プリンタドライバ101は、ステップS13300で参照したアドインモジュールを呼び出す。
なお、プリンタドライバ101は、ステップS13600において呼び出された対象アドインモジュールの動作にとって、不都合なその他のアドインモジュールがないかの確認を行う。そして、不都合がある場合には、警告画面をディスプレイ11に表示することでさらに順番制御の精度を高めることも可能である。例えば、機能制限を行うことを目的とするモジュールが対象モジュールとして呼び出された場合、対象モジュールは、後段モジュールからの書き換えによる機能制限を無効にするのを防止するために改ざん検知としてハッシュ値をデータに追加する。なお、ハッシュ値とは、ある規則に従って算出されたデータを代表する値である。例えば、ホスト側で埋め込んだハッシュ値とデバイス側で得られるハッシュ値を比較することで改ざんの検知を行うことができる。
ここで、後段の呼び出しモジュールとして暗号化モジュールのような、さらに印刷データに対して暗号表となる鍵を使用して暗号化を行うことで書き換えを行うような暗号化モジュールをアドインモジュール情報ファイル103において発見した場合を考える。このように、上述のようなハッシュ値が算出された後で、上述のような暗号化モジュールが実行されると、暗号化することで得られるハッシュ値も異なったものとなるため、改ざんされたとして検知されてしまう。そのため印刷を中止し、該当モジュールをアンインストールまたは暗号化モジュールと改ざん検知を含む機能制限モジュールの順番を換えてインストールする旨などを表示する。
つまり、ジョブの改ざん検知モジュールの処理の後に、暗号化モジュールが動作して、ジョブを暗号化すると、暗号化される前のデータは改ざんされていないにもかかわらず、改ざんされてしまっていると検知される場合がある。係る場合、暗号化処理の後にジョブの改ざん検知モジュールの処理を行うようにするほうがよい。
以下、フローチャートの説明に戻る。
ステップS13600の処理が終了すると、プリンタドライバ101は、ステップS13700に処理を進める。
ステップS13700では、プリンタドライバ101は、次のアドインモジュール情報ファイルの参照へ処理を進め、ステップS13200に処理を戻す。
そして、ステップS13200で、全てのアドインモジュール情報ファイルの参照が終了したと判定した場合には、プリンタドライバ101は、本フローチャートの処理を終了する。
以上説明したように、本実施形態によれば、プリンタドライバにアドインモジュールを追加する際に、該追加するアドインモジュールとプリンタドライバを構成する既存のアドインモジュールとの動作順番(適用順)が正しくなるように設定制御することが可能になる。
従って、印刷処理の実行時に、プリンタドライバは、プリンタドライバを構成する各アドインモジュールを適切な順序(動作させるべき順序)で適用して適切に動作させることが可能となる。
〔第2実施形態〕
上記第1実施形態では、プリンタドライバにアドインモジュールを追加する場合について説明したが、本実施形態では、Windows(登録商標) VistaのFilter Pipelineにおいてフィルタ構成で提供されるフィルタモジュールをプリンタドライバに追加する場合について説明する。なお、ハードウェア構成については第1実施形態と同様とする。
<システムの構成>
図15は、本発明の第2実施形態に係る印刷システムの構成例を示すブロック図であり、図2と同一のものには同一の符号を付してある。
図15において、1401はプリンタドライバ101においてフィルタ構成で提供されるフィルタモジュールの配置情報であり、フィルタモジュール1404の呼び出し順番を規定している。フィルタモジュール配置情報ファイル1401は、Windows(登録商標) VistaにおいてはFilter Configuration File対応する。
1404はプリンタドライバを構成しているフィルタモジュールであり、フィルタモジュール情報ファイル1405を含む。ここで、図16を参照して、フィルタモジュール情報ファイル1405のデータ構成について説明する。
図16は、図15に示したフィルタモジュール情報ファイル1405のデータ構成を示すデータ構成図である。
図16において、1501はフィルタモジュール1404のファイル構成が記述されている領域である。1502はフィルタモジュール1404のバージョン情報が記述されている領域である。1503はフィルタモジュール1404のリリース日が記述されている領域である。1504はフィルタモジュール1404の製品名情報が記述されている領域である。1505はフィルタモジュール1404の詳細情報が記述されている領域である。
1506はPriorityNumber(プライオリティナンバ)であり、動作の順番を決定する一意の番号が記述されている領域である。1507はフィルタモジュール1404のCopyright情報が記述されている領域である。
なお、プリンタドライバファイル情報104はOSが印刷サービス105を用いてプリンタドライバを利用するための一管理情報で、例えばWindows(登録商標)ではレジストリ中のDependentFilesが該当する。
以下、図15の説明に戻る。
プリンタドライバ101は、0個または1つ以上のフィルタモジュールを保持することが可能である。フィルタモジュール1404は、例えばDLL(Dynamic Link Library)などのプログラムファイルを含むファイル群である。
図15においては、フィルタモジュール1404がインストール済であり、プリンタドライバファイル情報104に、フィルタモジュール配置情報ファイル1401が登録されている。このフィルタモジュール配置情報ファイル1401には、フィルタモジュール情報ファイルを特定する情報(例えば、フィルタモジュール情報ファイル名称)1402が含まれる。
なお、プリンタドライバ101に複数のフィルタモジュールがインストールされている場合には、フィルタモジュール配置情報ファイル1401内には、各フィルタモジュール毎にフィルタモジュール情報ファイルを特定する情報1402が含まれる(呼出順)。
フィルタアドインインストーラ1403は、本発明の目的を達成するための中心となるものであり、フィルタモジュール1404をインストール済のプリンタドライバ101に追加インストールするプログラムである。なお、追加インストールするフィルタモジュールファイルは、フィルタアドインインストーラ1403内又は外部メモリ12内の他の記憶領域に格納されているものとする。
なお、フィルタアドインインストーラ1403は、主に以下の(1)〜(6)の機能を有する。
(1)1つまたは複数のプリンタドライバを構成する1つまたは複数のフィルタモジュールを検出する構成フィルタモジュール検出機能
(2)フィルタモジュールとプリンタドライバを構成する1つまたは複数のフィルタモジュールとの適切な動作の順番(該複数のフィルタモジュールを動作させるべき順番)を判定するフィルタモジュール適正動作順番判定機能
(3)フィルタモジュールファイルを追加するファイル追加機能
(4)上述の動作順番に従って(上述の動作順番で動作するように)フィルタモジュール配置情報を変更するフィルタモジュール配置情報変更機能
(5)追加された追加ファイルをプリンタドライバファイル情報104に登録するファイル登録機能
(6)印刷サービスにモジュール構成の変更を認識させる認識機能
なお、フィルタアドインインストーラ1403における処理の流れについては、後述する図17以降を用いて詳細に説明する。
<フィルタアドインインストーラ1403における処理の流れ>
図17は、本発明における第7の制御処理手順の一例を示すフローチャートであり、フィルタアドインインストーラ1403の処理の流れに対応する。即ち、このフローチャートの処理は、CPU1が外部メモリ12に格納されたアドインインストーラ106に対応するプログラムをRAM2上で実行することにより実現されるものである。なお、図中、S16000〜S16400は各ステップを示す。
まず、ステップS16000において、フィルタアドインインストーラ1403は、フィルタモジュールの追加対象プリンタドライバについて、インストール済みのフィルタモジュールの検出を行う。なお、このフィルタモジュールの追加対象プリンタドライバは、コンピュータ100にインストール済みのプリンタドライバであり、ユーザによってフィルタモジュールの追加対象として選択されたものが対応する。ここでは、図15のプリンタドライバ101とする。また、このステップS16000の処理の詳細は図18において説明する。
次に、ステップS16100において、フィルタアドインインストーラ1403は、リルタモジュール順番情報を作成する。この処理は、ステップS16000で検出されたインストール済みのフィルタモジュール1404と、フィルタアドインインストーラ1403により追加するフィルタモジュールを合わせた印刷処理において、適正な順番情報(前記複数のフィルタモジュールを動作させるべき順番)を保持するフィルタモジュール順番情報を作成する。なお、このフィルタモジュール順番情報は、適正に動作可能な順番(前記複数のフィルタモジュールを動作させるべき順番)が存在した場合にのみ作成される。
また、このフィルタモジュール順番情報の保持形態としては、ファイル形式やRAM2上に保持する等形態は問わないが、ここではRAM2上に保持するものとして説明する。このフィルタモジュール順番情報は、最小の情報構成として順番を示す番号とモジュール名称を保持している。なお、このステップS16100の処理の詳細は図19において説明する。
次に、ステップS16200において、フィルタアドインインストーラ1403は、フィルタモジュール順番情報がRAM2上に存在するか否かを判定する。そして、フィルタモジュール順番情報がRAM2上に存在しないと判定した場合には、フィルタアドインインストーラ1403は、ステップS16400に処理を進める。
ステップS16400では、フィルタアドインインストーラ1403は、フィルタモジュールインストール処理を中止し、本フローチャートの処理を終了する。
一方、ステップS16200で、アドインモジュール順番情報がRAM2上に存在すると判定した場合には、フィルタアドインインストーラ1403は、ステップS16300に処理を進める。
ステップS16300では、フィルタアドインインストーラ1403は、フィルタモジュールインストール処理を行い、本フローチャートの処理を終了する。なお、このステップS16300の処理の詳細は図20において説明する。
図18は、本発明における第8の制御処理手順の一例を示すフローチャートであり、図17のステップS16000に示したフィルタモジュール検出処理の詳細な流れに対応する。即ち、このフローチャートの処理は、CPU1が外部メモリ12に格納されたフィルタアドインインストーラ1403に対応するプログラムをRAM2上で実行することにより実現されるものである。なお、図中、S17000〜S17600は各ステップを示す。
まず、ステップS17000において、フィルタアドインインストーラ1403は、プリンタドライバファイル情報104を参照して、プリンタドライバ101についての構成情報を取得する。
次に、ステップS17100において、フィルタアドインインストーラ1403は、ステップS17000によって取得された構成情報内にフィルタモジュール配置情報ファイル1401が存在するか否かを判定する。
ステップS17100で、フィルタモジュール配置情報ファイル1401が存在しないと判定した場合には、フィルタアドインインストーラ1403は、そのまま本フローチャートの処理を終了して、図17のステップS16100に処理を進める。
一方、ステップS17100で、フィルタモジュール配置情報ファイル1401が存在すると判定した場合には、フィルタアドインインストーラ1403は、ステップS17200に処理を進める。
ステップS17200では、フィルタアドインインストーラ1403は、フィルタモジュール配置情報ファイル1401内に登録された全てのフィルタモジュール情報ファイル1405の参照が終了したか否かを判定する。
そして、ステップS17200で、まだ全てのフィルタモジュール情報ファイル1405の参照が終了していないと判定した場合には、フィルタアドインインストーラ1403は、ステップS17300に処理を進める。
ステップS17300では、フィルタアドインインストーラ1403は、フィルタモジュール配置情報ファイル1401内に登録されており且つ未だ参照していないフィルタモジュール情報ファイル1405を1つ選択し、該フィルタモジュール情報ファイル1405内の情報を参照する。
次に、ステップS17400において、フィルタアドインインストーラ1403は、ステップS17300でフィルタモジュール情報ファイル1405内の情報が正常に参照されたか否かを判定する。
ステップS17400において、ステップS17300でフィルタモジュール情報ファイル1405内の情報が正常に参照されなかったと判定した場合には、フィルタアドインインストーラ1403は、ステップS17500に処理を進める。
ステップS17500では、フィルタアドインインストーラ1403は、このフィルタモジュールは正常に動作していない、即ちインストールされていないとみなし、ステップS17600に処理を進める。
一方、ステップS17400において、ステップS17300でフィルタモジュール情報ファイル1405内の情報が正常に参照さたと判定した場合には、フィルタアドインインストーラ1403は、ステップS17600に処理を進める。
ステップS17600では、フィルタアドインインストーラ1403は、次のフィルタモジュール情報ファイル1405の参照へ処理を進め、ステップS17200に処理を戻す。
そして、ステップS17200で、フィルタモジュール配置情報ファイル1401内に登録された全てのフィルタモジュール情報ファイル1405の参照が終了したと判定した場合には、フィルタアドインインストーラ1403は、本フローチャートの処理を終了して、図17のステップS16100に処理を進める。
以上が、図17のステップS16000に示したフィルタモジュール検出処理の詳細動作となり、フィルタモジュールを追加するプリンタドライバが複数選択されている場合には、選択されているプリンタドライバの数だけ同様の処理を繰り返す。
図19は、本発明における第9の制御処理手順の一例を示すフローチャートであり、図17のステップS16100に示したフィルタモジュール順番情報作成処理の詳細な流れに対応する。即ち、このフローチャートの処理は、CPU1が外部メモリ12に格納されたフィルタアドインインストーラ1403に対応するプログラムをRAM2上で実行することにより実現されるものである。なお、図中、S18000〜S18800は各ステップを示す。
まず、ステップS18000において、フィルタアドインインストーラ1403は、フィルタモジュール順番情報の新規作成など初期化処理を行う。
ステップS18100において、フィルタアドインインストーラ1403は、フィルタモジュールの追加対象プリンタドライバに対し、図17のステップ16000で検出された及びこれから追加する全てのフィルタモジュールのフィルタ情報ファイル取得を終了したか否かを判定する。即ち、フィルタモジュール順番情報の作成処理を完了したか否かを判定する。
ステップS18100で、図17のステップS16000で検出された及びこれから追加するアドインモジュールの全てのフィルタモジュール情報ファイル取得を未だ終了していないと判定した場合には、フィルタアドインインストーラ1403は、ステップS18200に処理を進める。
ステップS18200では、フィルタアドインインストーラ1403は、図17のステップS16000で検出された及びこれから追加するフィルタモジュール内のまだ取得していないフィルタモジュール情報ファイル1405を1つ取得する。以下、このフィルタモジュール情報ファイル1405に対応するアドインモジュールを現在注目しているアドインモジュールと呼ぶ。
ステップS18300では、フィルタアドインインストーラ1403は、ステップS18200で取得したフィルタモジュール情報ファイル1405からPriorityNumber1506を取得する。なお、PriorityNumberとは例えば1以上の整数などであり、数値の大小によって動作する順番を定義するものである。このPriorityNumberによって新規にモジュールを追加した場合にも対応が可能となる。
ステップS18400では、フィルタアドインインストーラ1403は、本ステップまでにフィルタモジュール順番情報内に書き込み済みのフィルタモジュールのPriorityNumberと現在注目しているフィルタモジュールのPriorityNumberとを比較する。そして、フィルタアドインインストーラ1403は、PriorityNumberの大きい順となるように順番(フィルタモジュール順番情報への書き込み位置)を決定する。
次に、ステップS18500において、フィルタアドインインストーラ1403は、ステップS18400で決定された書込位置に書き込みが可能か否かを判定する。なお、書き込みが不可能な場合としては、PriorityNumberが同一のものや共存が不可能なモジュールの競合等が考えられる。
ステップS18500で、書き込みが不可能であると判定した場合、フィルタアドインインストーラ1403は、ステップS18800に処理を進める。
ステップS18800では、フィルタアドインインストーラ1403は、適正な順番(予め追加されているフィルタモジュールとこれから追加するフィルタモジュールとを動作させるべき順番)が存在しないと判断して、現在RAM2に保持しているフィルタモジュール順番情報を削除する。そして、フィルタアドインインストーラ1403は、図示しないステップにおいて、PriorityNumberが同一であったり、共存が不可能なモジュールの競合等が発生しモジュールを適用する適正な順番(動作させるべき順番)が存在しない旨の通知をディスプレイ11に表示する。そして、本フローチャートの処理を終了し、図17のステップS16200に処理を進める。
一方、ステップS18500で、書き込みが可能であると判定した場合には、フィルタアドインインストーラ1403は、ステップS18600に処理を進める。
ステップS18600では、フィルタアドインインストーラ1403は、現在注目しているフィルタモジュールのフィルタモジュール名称を、ステップS18400で決定したフィルタモジュール順番情報内の書込位置に書込処理する。本実施形態では、順番を示す番号とフィルタモジュール名称を書込処理する。
次に、ステップS18700において、フィルタアドインインストーラ1403は、次のフィルタモジュール情報ファイルへ処理を進め、ステップS18100に処理を戻す。
そして、ステップS18100で、図17のステップ16000で検出された及びこれから追加するフィルタモジュールの全てのフィルタモジュール情報ファイル取得を終了したと判定した場合には、本フローチャートの処理を終了し、図17のステップS16200に処理を進める。
以上が図17のステップS16100に示したフィルタモジュール順番情報作成処理の詳細動作となり、フィルタモジュールを追加するプリンタドライバが複数選択されている場合には選択されているプリンタドライバの数だけ同様の処理を繰り返す。
なお、図19では各フィルタモジュールがPriorityNumberを保持することでフィルタモジュール順番情報を作成したが、フィルタモジュール順番情報をファイル情報として外部から提供するようにしてもよい。例えば、フィルタモジュール順番情報をファイル情報としてWeb上で公開し、該Web上でから取得して提供するように構成してもよい。
また、フィルタモジュール順番情報は、XMLのようなテキスト形式でも非可読のバイナリ形式でもよくデータ形式は問わない。
図20は、本発明における第10の制御処理手順の一例を示すフローチャートであり、図17のステップS16300に示したフィルタモジュールアドインインストール処理の詳細な流れに対応する。即ち、このフローチャートの処理は、CPU1が外部メモリ12に格納されたフィルタアドインインストーラ1403に対応するプログラムをRAM2上で実行することにより実現されるものである。なお、図中、S19000〜19700は各ステップを示す。
まず、ステップS19000において、フィルタアドインインストーラ1403は、プリンタドライバファイル情報104内に登録されたフィルタモジュール配置情報ファイル1401を初期化する。ここでは一度、フィルタモジュール配置情報ファイル1401に記載されている各フィルタモジュール情報ファイルを特定する情報1402についての消去を行う。
次に、ステップS19100において、フィルタアドインインストーラ1403は、ステップS16100で作成されたフィルタモジュール順番情報を取得する。
次に、ステップS19200において、フィルタアドインインストーラ1403は、ステップS19100で取得したフィルタモジュール順番情報に記載されているフィルタモジュールのアドインインストール処理が全て完了したか否かを判定する。
ステップS19200で、ステップS19100で取得したフィルタモジュール順番情報に記載されているフィルタモジュールのアドインインストール処理がまだ全て完了していないと判定した場合には、フィルタアドインインストーラ1403は、ステップS19300に処理を進める。
ステップS19300では、フィルタアドインインストーラ1403は、フィルタモジュール順番情報に従い動作の順番が早いものから1つフィルタモジュール(フィルタモジュール構成ファイル)を取得する。
次に、ステップS19400において、フィルタアドインインストーラ1403は、ステップS19300で取得したフィルタモジュール構成ファイルを外部メモリ12内の所定領域(OSの記憶領域)に追加する。なお、このステップは、今回新たに追加インストールするフィルタモジュールに対してのみ行い、予め追加済みであったフィルタモジュールに関してはスキップするものとする。
次に、ステップS19500において、フィルタアドインインストーラ1403は、ステップS9400で取得したプリンタドライバ構成情報(プリンタドライバファイル情報104)内にフィルタモジュールを登録する。
次に、ステップS19600において、フィルタアドインインストーラ1403は、追加したフィルタモジュールのフィルタモジュール情報ファイルを特定する情報112を現在のフィルタモジュール配置情報ファイルのフィルタ構成の終端に追加する。
次に、ステップS19700において、フィルタアドインインストーラ1403は、フィルタモジュール順番情報に次の記載されているフィルタモジュールに処理を移し、ステップS19200へ処理を戻す。
そして、ステップS19200で、フィルタモジュール順番情報に記載されているフィルタモジュールのインストール処理が全て完了したと判定した場合には、本フローチャートの処理を終了する。
以上のようにインストール処理することで、予め追加されているフィルタモジュールと新たに追加したフィルタモジュールとが、図16のステップS13100で判定された動作の順番で処理を実行するように、新たなフィルタモジュールを登録することができる。
<フィルタアドインインストーラUIについて>
フィルタアドインインストーラUIについては、上述した第1実施形態におけるアドインインストーラUIと同様である。なお、アドインインストール処理自体は、図4の処理が図17の処理に置き換わるものとする。
<フィルタモジュール1404の呼び出し処理の流れ>
本実施形態によりインストールされたフィルタモジュールを備えたプリンタドライバの印刷処理の詳細を、図1、図15、および図21を用いて説明する。なお、第1実施形態において用いた図と番号が等しいものは同様のものを示している。
尚、Windows(登録商標) VistaのXPS(XML Paper Specification) Print Pathにおいてグラフィックエンジン109は、アプリケーション108から受け取る描画命令またはXPSドキュメントをXPSドキュメントとしてプリンタドライバ101へ出力する。
プリンタドライバ101は、グラフィックエンジン109から受け取ったXPSドキュメントをプリンタが認識可能な制御コマンド、例えばPDL(Page Description Language)に変換する。本実施形態の印刷システムは、プリンタドライバ101内のフィルタモジュール1404をOSが呼び出すことで印刷が実行される。プリンタドライバ101は、フィルタモジュール1404の実行に際しOSを通してフィルタモジュール1404を呼び出し、処理を行う。フィルタモジュールの呼び出し処理の詳細に関しては図21を用いて示す。
図21は、本発明における第11の制御処理手順の一例を示すフローチャートであり、プリンタドライバ101によるフィルタモジュールの呼び出し処理の流れに対応する。即ち、このフローチャートの処理は、CPU1が外部メモリ12に格納されたアドインインストーラ106に対応するプログラムをRAM2上で実行することにより実現されるものである。なお、図中、S20000〜S20700は各ステップを示す。
まず、ステップS20000において、プリンタドライバ101は、プリンタドライバファイル情報104を参照して、プリンタドライバ101についての構成情報を取得する。
次に、ステップS20100において、プリンタドライバ101は、ステップS20000によって取得された構成情報内にフィルタモジュール配置情報ファイル1401が存在するか否かを判定する。なお、本実施形態では、図20に示した処理によりフィルタモジュール配置情報ファイル1401は動作順番の早いものから順番にファイルタモジュール情報ファイルを特定する情報1402を登録している。
ステップS20100で、フィルタモジュール配置情報ファイル1401が存在しないと判定した場合には、プリンタドライバ101は、そのまま本フローチャートの処理を終了する。
一方、ステップS20100で、フィルタモジュール配置情報ファイル1401が存在すると判定した場合には、プリンタドライバ101は、ステップS20200に処理を進める。
ステップS20200では、プリンタドライバ101は、フィルタモジュール配置情報ファイル1401内に登録された全てのフィルタモジュール1404の呼出が終了したか否かを判定する。
そして、ステップS20200で、まだ全てのフィルタモジュール1404の呼出が終了していないと判定した場合には、プリンタドライバ101は、ステップS20300に処理を進める。
ステップS20300では、プリンタドライバ101は、フィルタモジュール配置情報ファイル1401内に登録されており且つ未だ呼び出されていないフィルタモジュール1404を1つ選択し、該フィルタモジュール1404を呼出処理する。
以上説明したように、本実施形態によれば、プリンタドライバにフィルタモジュールを追加する際、該追加するフィルタモジュールとプリンタドライバを構成する既存のフィルタモジュールとの印刷処理時の動作順番(適用順)が正しくなるように設定制御することが可能になる。
従って、印刷処理の実行時に、プリンタドライバは、プリンタドライバを構成する各フィルタモジュールを適切な順序(動作させるべき順番)で適用して適切に動作させることが可能となる。
なお、第1,2実施形態では、プリンタドライバに新たなモジュールを追加する際、該追加するモジュールとプリンタドライバを構成する既存のモジュールとの印刷処理時の動作順番(適用順)が正しくなるように新たなモジュールを追加するとともに、既存のモジュールの登録状態を変更制御する構成について説明した。
しかし、新たなに追加するモジュールがない状態で図4〜図8又は図17〜図20に示したフローチャートの処理を実行することにより、既存のモジュールの印刷処理時の動作順番(適用順)が正しくなるように既存のモジュールの登録を変更制御することが可能になる。
例えば、図4〜図8又は図17〜図20に示したフローチャートの処理を実行することなくユーザが従来の方法で新たなモジュールを追加した場合、該モジュールは既にインストールされているモジュールとの動作順番について考慮されず、正常な動作をしない場合がある。
このような場合、モジュール自体は追加済みであるので、新たなに追加するモジュールがない状態で図17〜図20に示したフローチャートの処理を実行する。これにより、インストーラは、新たなモジュールは追加しないが、既にインストールされているモジュールの動作順番(適用順)が正しくなるように、既存のモジュールの登録を変更制御する。
なお、上記各実施形態では、コンピュータにインストールされた1つまたは複数のプリンタドライバに1又は複数のアドインモジュール(フィルタモジュール)を追加するインストーラ及びプリンタドライバにおけるモジュールの適用制御について説明した。
しかしながら、アドインモジュール等を追加する対象は、プリンタドライバでなくても、アドインモジュール等を追加可能なアプリケーションプログラムであればどのようなアプリケーションプログラムであってもよい。即ち、コンピュータにインストールされた1つまたは複数のアプリケーションプログラムに1又は複数のアドインモジュール(フィルタモジュール)を追加するインストーラ及びアプリケーションプログラムにおけるモジュールの適用制御にも本発明は適用可能である。
なお、本実施形態では、上述の各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
以下、図21に示すメモリマップを参照して、本発明に係る情報処理装置(コンピュータ100)で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップの構成について説明する。
図21は、本発明に係る情報処理装置(コンピュータ100)で読み取り可能な各種データ処理プログラムを格納する記憶媒体(記録媒体)のメモリマップを説明する図である。
なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報,作成者等も記憶され、かつ、プログラム読み出し側のOS等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムをコンピュータにインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
本実施形態における図4,図5,図6,図7,図8,図14,図17,図18,図19,図20,図21に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、CD-ROMやフラッシュメモリやFD等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
以上のように、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
従って、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。
プログラムを供給するための記憶媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD-ROM、CD-R、CD-RW、磁気テープ、不揮発性のメモリカード、ROM、DVDなどを用いることができる。
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のプログラムそのものをハードディスク等の記憶媒体にダウンロードすることによっても供給できる。また、該ホームページから圧縮され自動インストール機能を含むファイルをハードディスク等の記憶媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバやFTPサーバ等も本発明の請求項に含まれるものである。
また、本発明のプログラムを暗号化してCD-ROM等の記憶媒体に格納してユーザに配布する。さらに、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。さらに、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、以下のような構成も含まれることは言うまでもない。例えば、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記憶媒体から読み出されたプログラムコードを、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込む。そして、該メモリに書き込まれたプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記憶媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施形態の有機的な組み合わせを含む)が可能であり、それらを本発明の範囲から排除するものではない。
本発明の様々な例と実施形態を示して説明したが、当業者であれば、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるのではない。
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
以上説明したように、本発明は、情報処理装置にインストールされたプリンタドライバに対してモジュールを追加することが可能なインストーラであって、モジュールを追加するときに現在インストールされているモジュールを検出し、追加するモジュールとインストールされているモジュールとの動作順番を考慮してインストールを行う。よって、プリンタドライバにモジュールを追加する際に、該追加するモジュールとプリンタドライバを構成する既存のモジュールとの動作順番を正しくなるように設定制御することが可能になる。
また、本発明は、印刷実行時には前記インストール方法に基づき適切な順番(動作させるべき順番)でインストールされているモジュールを動作させるプリンタドライバも含む。従って、印刷処理の実行時に、プリンタドライバは、プリンタドライバを構成する各タモジュールを適切に適用して動作させることが可能となる。
以上のように新規機能をアドインモジュールやフィルタモジュールで提供することにより、印刷装置の発売当初には想定されていない機能や、付加的に後から追加したい機能したい機能を、動作順序正しく追加することが可能なフレキシブルなプリンタドライバの新機能提供環境を構築することができる。
なお、上述した各実施形態及びその変形例のいずれか又は全てを組み合わせた構成も本発明に含まれるものである。
本発明を適用可能な情報処理装置の一例を示すブロック図である。 本発明の第1実施形態に係る印刷システムの構成例を示すブロック図である。 図2に示したアドインモジュール情報ファイルのデータ構成を示すデータ構成図である。 本発明における第1の制御処理手順の一例を示すフローチャートである。 本発明における第2の制御処理手順の一例を示すフローチャートである。 本発明における第3の制御処理手順の一例を示すフローチャートである。 本発明における第4の制御処理手順の一例を示すフローチャートである。 本発明における第5の制御処理手順の一例を示すフローチャートである。 アドインインストーラによるアドインインストール時のUI表示処理時の表示画面の一例を示す模式図である。 アドインインストーラによるアドインインストール時のUI表示処理時の表示画面の一例を示す模式図である。 アドインインストーラによるアドインインストール時のUI表示処理時の表示画面の一例を示す模式図である。 アドインインストーラによるアドインインストール時のUI表示処理時の表示画面の一例を示す模式図である。 アドインインストーラによるアドインインストール時のUI表示処理時の表示画面の一例を示す模式図である。 本発明における第6の制御処理手順の一例を示すフローチャートである。 本発明の第2実施形態に係る印刷システムの構成例を示すブロック図である。 図15に示したフィルタモジュール情報ファイルのデータ構成を示すデータ構成図である。 本発明における第7の制御処理手順の一例を示すフローチャートである。 本発明における第8の制御処理手順の一例を示すフローチャートである。 本発明における第9の制御処理手順の一例を示すフローチャートである。 本発明における第10の制御処理手順の一例を示すフローチャートである。 本発明における第11の制御処理手順の一例を示すフローチャートである。 本発明に係る情報処理装置(コンピュータ)で読み取り可能な各種データ処理プログラムを格納する記憶媒体(記録媒体)のメモリマップを説明する図である。
符号の説明
1 CPU
2 RAM
3 ROM
12 外部メモリ
30 プリンタ
100 コンピュータ
101 プリンタドライバ
102 アドインモジュール
103 アドインモジュール情報ファイル
104 プリンタドライバファイル情報
105 印刷サービス
106 アドインインストーラ
107 プリンタドライバインストーラ

Claims (10)

  1. 情報処理装置にインストール済みのプログラムに対してモジュールの追加が指示されると、該インストール済みのプログラムを構成する1又は複数のモジュールを検出する検出ステップと、
    該検出された前記1又は複数のモジュールと前記追加が指示されたモジュールとを動作させるべき順番を判定する判定ステップと、
    該判定された動作の順番で前記複数のモジュールが処理を実行するように、前記追加が指示されたモジュールを前記情報処理装置にインストールするモジュールインストールステップと、を有し、
    前記インストール済みのプログラムはプリンタドライバプログラムであって、
    改ざん検知モジュールと暗号化モジュールとの追加が指示された際に、
    前記判定ステップでは、前記動作の順番として、暗号化モジュールより後に改ざん検知モジュールが動作されるべきと判定され、
    前記モジュールインストールステップでは、前記暗号化モジュールがデータが処理を実行した後、該処理されたデータに対して前記改ざん検知モジュールが改ざん検知処理を実行するようにインストール順序を変更して、前記暗号化モジュールと前記改ざん検知モジュールをインストールされることを特徴とするモジュールインストール方法。
  2. 前記モジュールインストールステップは、前記追加が指示されたモジュール前記情報処理装置の記憶領域に記憶され、該追加モジュール前記動作の順番で処理実行するように前記情報処理装置の記憶領域に記憶される前記インストール済みのプログラムの構成情報への該追加モジュールの登録制御されることを特徴とする請求項1に記載のモジュールインストール方法。
  3. 前記モジュールインストールステップは、前記検出ステップで検出された前記1又は複数のモジュールが前記動作の順番で処理を実行するように、前記インストール済みのプログラムの構成情報の前記1又は複数のモジュールの登録が変更制御されることを特徴とする請求項2に記載のモジュールインストール方法。
  4. 前記判定ステップにおいて、前記検出ステップで検出された前記1つまたは複数のモジュールと前記追加が指示されたモジュールとを動作させるべき順番が存在しないと判定された場合、前記動作の順番が存在しない旨を通知する通知ステップを有することを特徴とする請求項1乃至のいずれか1項に記載のモジュールインストール方法。
  5. 前記判定ステップにおいて、前記検出ステップで検出された前記1つまたは複数のモジュールと前記追加が指示されたモジュールとを動作させるべき順番が存在しないと判定された場合、前記追加が指示されたモジュールのインストール処理を中止するインストール中止ステップを有することを特徴とする請求項に記載のモジュールインストール方法。
  6. 前記モジュールインストールステップにおいて前記動作の順番で前記検出ステップで検出された前記1又は複数のモジュールと前記追加が指示されたモジュールとが処理を実行するようにモジュールのインストールが完了された際に、該インストールの完了を表示するインストール結果表示ステップを有することを特徴とする請求項1乃至のいずれか1項に記載のモジュールインストール方法。
  7. 前記モジュールインストールステップでインストールされた複数のモジュールを、前記プログラムの構成情報に基づいて、前記動作の順番で呼び出すことを特徴とする請求項2又は3に記載のモジュールインストール方法。
  8. 追加指示されるモジュールの順序を変更してもよいかどうかを表示する表示ステップと、
    前記表示ステップによる表示後、前記モジュールインストールステップでは、前記暗号化モジュールがデータが処理を実行した後、該処理されたデータに対して前記改ざん検知モジュールが改ざん検知処理を実行するように、前記暗号化モジュールと前記改ざん検知モジュールをインストールされることを特徴とする請求項1記載のモジュールインストール方法。
  9. 情報処理装置にインストール済みのプログラムに対してモジュールの追加が指示されると、該インストール済みのプログラムを構成する1又は複数のモジュールを検出する検出手段と、
    該検出された前記1又は複数のモジュールと前記追加が指示されたモジュールとを動作させるべき順番を判定する判定手段と、
    該判定された動作の順番で前記複数のモジュールが処理を実行するように、前記追加が指示されたモジュールを前記情報処理装置にインストールするモジュールインストール手段と、を有し、
    前記インストール済みのプログラムはプリンタドライバプログラムであって、改ざん検知モジュールと暗号化モジュールとの追加が指示された際に、
    前記判定手段が、前記動作の順番として、暗号化モジュールより後に改ざん検知モジュールが動作されるべきと判定し、
    前記モジュールインストール手段が、前記暗号化モジュールがデータが処理を実行した後、該処理されたデータに対して前記改ざん検知モジュールが改ざん検知処理を実行するようにインストール順序を変更して、前記暗号化モジュールと前記改ざん検知モジュールをインストールすることを特徴とするモジュールインストール装置。
  10. 請求項1乃至のいずれか1項に記載された工程をコンピュータに実行させるためのプログラム。
JP2006100194A 2006-03-31 2006-03-31 モジュールインストール方法、モジュールインストール装置、及びプログラム Expired - Fee Related JP4810282B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006100194A JP4810282B2 (ja) 2006-03-31 2006-03-31 モジュールインストール方法、モジュールインストール装置、及びプログラム
PCT/JP2007/057713 WO2007114513A1 (en) 2006-03-31 2007-03-30 Information processing apparatus and data output managing system
US12/160,565 US8627343B2 (en) 2006-03-31 2007-03-30 Information processing apparatus and data output managing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006100194A JP4810282B2 (ja) 2006-03-31 2006-03-31 モジュールインストール方法、モジュールインストール装置、及びプログラム

Publications (3)

Publication Number Publication Date
JP2007272763A JP2007272763A (ja) 2007-10-18
JP2007272763A5 JP2007272763A5 (ja) 2009-05-07
JP4810282B2 true JP4810282B2 (ja) 2011-11-09

Family

ID=38563771

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006100194A Expired - Fee Related JP4810282B2 (ja) 2006-03-31 2006-03-31 モジュールインストール方法、モジュールインストール装置、及びプログラム

Country Status (3)

Country Link
US (1) US8627343B2 (ja)
JP (1) JP4810282B2 (ja)
WO (1) WO2007114513A1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4619433B2 (ja) * 2007-12-11 2011-01-26 キヤノンItソリューションズ株式会社 印刷制御装置及び印刷制御方法、並びにプログラム
JP5326477B2 (ja) * 2007-12-14 2013-10-30 株式会社リコー 情報処理装置、情報処理プログラム、記録媒体及び情報処理方法
JP5408904B2 (ja) * 2008-05-23 2014-02-05 キヤノン株式会社 情報処理装置、プレビュー方法、及びプログラム
US8479192B2 (en) * 2008-06-27 2013-07-02 Xerox Corporation Dynamic XPS filter
US8643871B2 (en) * 2008-07-22 2014-02-04 Xerox Corporation System and method for controlling printing of a print job in a printing system
JP5069645B2 (ja) * 2008-09-01 2012-11-07 アンリツ株式会社 制御装置及び制御方法
JP5343643B2 (ja) * 2009-03-17 2013-11-13 株式会社リコー プリンタドライバ、記憶媒体、及び情報処理装置
JP5441740B2 (ja) 2009-03-23 2014-03-12 キヤノン株式会社 情報配信装置、情報配信装置の制御方法、及びコンピュータプログラム
JP5446625B2 (ja) * 2009-09-07 2014-03-19 株式会社リコー プリンタドライバ、情報処理装置、およびプリンタドライバを記録したコンピュータ読み取り可能な記録媒体
US9317225B2 (en) * 2011-05-25 2016-04-19 Xerox Corporation Method and apparatus for dynamically configuring a filter pipeline for a print driver
JP5836706B2 (ja) 2011-08-31 2015-12-24 キヤノン株式会社 情報処理装置、文書アクセス方法、及びコンピュータプログラム
JP2014085749A (ja) * 2012-10-22 2014-05-12 Oki Data Corp ドライバインストーラ、画像処理装置、画像形成システム及び画像形成装置
US9821517B2 (en) * 2013-06-26 2017-11-21 Microsoft Technology Licensing, Llc 3D manufacturing platform
JP6500654B2 (ja) * 2015-07-07 2019-04-17 セイコーエプソン株式会社 印刷制御装置、印刷制御プログラムおよび印刷制御方法
JP6861670B2 (ja) 2018-07-10 2021-04-21 キヤノン株式会社 画像処理装置、その制御方法、及びプログラム

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63268031A (ja) * 1987-04-24 1988-11-04 Sharp Corp プログラム実行制御方式
JP3055473B2 (ja) 1996-10-16 2000-06-26 日本電気株式会社 ドライバインストール方法
US6418555B2 (en) * 1998-07-21 2002-07-09 Intel Corporation Automatic upgrade of software
US6674767B1 (en) * 1999-10-04 2004-01-06 Microsoft Corporation Flexible system and method for communicating between a broad range of networks and devices
US7218976B2 (en) * 2001-04-27 2007-05-15 Canon Kabushiki Kaisha User interface control apparatus and method
US20030043396A1 (en) * 2001-08-29 2003-03-06 Klosterman Elliot L. Printer driver access interface
US20030090704A1 (en) * 2001-11-15 2003-05-15 Hansen Von L. System and method for configuring a printing device
US7689673B2 (en) * 2002-04-23 2010-03-30 Canon Kabushiki Kaisha Remote creation of printer instances on a workstation
US7146609B2 (en) * 2002-05-17 2006-12-05 Sun Microsystems, Inc. Method, system and article of manufacture for a firmware image
US7853946B2 (en) * 2003-02-28 2010-12-14 Canon Kabushiki Kaisha Information processing apparatus, information processing method, and control program
JP4908731B2 (ja) * 2003-07-31 2012-04-04 キヤノン株式会社 情報処理装置、情報処理方法及び情報処理プログラム
US7522299B2 (en) * 2003-06-30 2009-04-21 Microsoft Corporation System and method for automatic configuration
JP2005208895A (ja) 2004-01-22 2005-08-04 Canon Inc 情報処理装置及びその制御方法及びそのプログラムと記憶媒体
JP2006085529A (ja) * 2004-09-17 2006-03-30 Canon Inc アプリケーションプログラム、情報処理装置および情報処理方法

Also Published As

Publication number Publication date
US20100235846A1 (en) 2010-09-16
US8627343B2 (en) 2014-01-07
JP2007272763A (ja) 2007-10-18
WO2007114513A1 (en) 2007-10-11

Similar Documents

Publication Publication Date Title
JP4810282B2 (ja) モジュールインストール方法、モジュールインストール装置、及びプログラム
JP4863450B2 (ja) デバイスドライバプログラムをカスタマイズするための情報処理装置及びデバイスドライバプログラムのカスタマイズ方法
US9052850B2 (en) Printer driver, storage medium, and information processing apparatus
US6965953B2 (en) Information processing apparatus, method for controlling information processing apparatus, and storage medium storing program for realizing the method
US8792116B2 (en) Printing controller, GUI display method, printer driver, and recording medium
US10558405B2 (en) Information processing apparatus and driver customizing method
US20190050173A1 (en) Information processing apparatus, control method, and recording medium
JP2006164240A (ja) データ処理装置および印刷設定処理方法およびコンピュータが読み取り可能な制御プログラムを格納した記憶媒体および制御プログラム
US8395787B2 (en) Information processing apparatus having customized driver, method of controlling the same, and medium storing control program
US20110075177A1 (en) Image forming apparatus and method thereof
US10809993B2 (en) System, management device, information processing device, control method for management device, control method for information processing device, and computer-readable storage medium
US20150264198A1 (en) Automatic installation system and method, information processing apparatus, and image forming apparatus
US20140300914A1 (en) Information processing apparatus, method for controlling the same, and recording medium
US10671365B2 (en) Information processing apparatus, storage medium, and control method
US9606761B2 (en) Information processing apparatus for controlling an output process and method for the same
US11372598B2 (en) Application and information processing apparatus
US20090293015A1 (en) Application Platform
JP4425808B2 (ja) 印刷情報処理装置、印刷情報処理プログラム及び記録媒体
JP4956259B2 (ja) 情報処理装置及びその制御方法、コンピュータプログラム
JP2009009494A (ja) 情報処理装置、情報処理方法、制御プログラム
JP7289940B2 (ja) プログラムのセット、記憶媒体、及び情報処理方法
JP2006092418A (ja) 情報処理装置、方法および媒体
JP2017162106A (ja) 情報処理装置及びデバイスドライバのインストール方法
JP2016081164A (ja) 情報処理装置、管理装置、情報処理装置の制御方法、管理装置の制御方法及びプログラム
JP2006085253A (ja) 情報処理装置および印刷制御方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラム

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20080108

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20080220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090324

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090324

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110111

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110310

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110816

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110822

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140826

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees