(57)【特許請求の範囲】
【請求項１】
プリンタドライバのコアモジュールに対して、前記コアモジュールが提供する所定の処理に対応する新規ユーザインタフェースの第１の拡張モジュールと、前記コアモジュールに新たな機能を提供する機能拡張モジュールと、前記機能拡張モジュールに対応するユーザインタフェースの第２の拡張モジュールとがプラグインとして提供される際に、
前記コアモジュールの提供する所定の処理に対応するユーザインタフェースに関する既存のモジュールを、当該既存のモジュールと同じインタフェースを持っている前記第１の拡張モジュールへと差し替える置換手段と、
前記機能拡張モジュールと前記第２の拡張モジュールとを前記コアモジュールに追加する追加手段と、
前記置換手段により差し替えられた前記第１の拡張モジュールの実行に伴って、前記所定の処理の指示部の位置が変更されたプリンタドライバのユーザインタフェースを表示し、前記追加手段により前記コアモジュールに前記機能拡張モジュール及び前記第２の拡張モジュールが追加された場合に前記第２の拡張モジュールの実行に伴って、前記プリンタドライバのユーザインタフェース上に前記機能拡張モジュールを操作するための新たなシートを表示する表示手段と、
前記第１の拡張モジュールを呼び出すための関数名を、前記第１の拡張モジュールのインストール時にインストールプログラムが前記プリンタドライバの一部であるインタフェース登録機能を制御するプログラムを実行することで、前記プリンタドライバのインタフェースとして登録する第１の登録手段と、
前記機能拡張モジュール及び前記第２の拡張モジュールを呼び出すための関数名を、インタフェースとして、前記機能拡張モジュール及び前記第２の拡張モジュールのインストール時に登録する第２の登録手段と、
前記第１の登録手段により登録された前記インタフェースを用いて、前記第１の拡張モジュールを呼び出す呼出手段と、を備えることを特徴とする情報処理装置。
【請求項２】
前記表示手段は、所定の複数の処理の中の１つであるスタンプ印刷機能をマスクして表示することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
プリンタドライバのコアモジュールに対して、前記コアモジュールが提供する所定の処理に対応する新規ユーザインタフェースの第１の拡張モジュールと、前記コアモジュールに新たな機能を提供する機能拡張モジュールと、前記機能拡張モジュールに対応するユーザインタフェースの第２の拡張モジュールとがプラグインとして提供される際に、
前記コアモジュールの提供する所定の処理に対応するユーザインタフェースに関する既存のモジュールを、当該既存のモジュールと同じインタフェースを持っている前記第１の拡張モジュールへと差し替える置換ステップと、
前記機能拡張モジュールと前記第２の拡張モジュールとを前記コアモジュールに追加する追加ステップと、
前記置換手段により差し替えられた前記第１の拡張モジュールの実行に伴って、前記所定の処理の指示部の位置が変更されたプリンタドライバのユーザインタフェースを表示し、前記追加手段により前記コアモジュールに前記機能拡張モジュール及び前記第２の拡張モジュールが追加された場合に前記第２の拡張モジュールの実行に伴って、前記プリンタドライバのユーザインタフェース上に前記機能拡張モジュールを操作するための新たなシートを表示する表示ステップと、
前記第１の拡張モジュールを呼び出すための関数名を、前記第１の拡張モジュールのインストール時にインストールプログラムが前記プリンタドライバの一部であるインタフェース登録機能を制御するプログラムを実行することで、前記プリンタドライバのインタフェースとして登録する第１の登録ステップと、
前記機能拡張モジュール及び前記第２の拡張モジュールを呼び出すための関数名を、インタフェースとして、前記機能拡張モジュール及び前記第２の拡張モジュールのインストール時に登録する第２の登録ステップと、
前記第１の登録手段により登録された前記インタフェースを用いて、前記第１の拡張モジュールを呼び出す呼出ステップと、を備えることを特徴とする情報処理方法。
【請求項４】
前記表示ステップにおいて、所定の複数の処理の中の１つであるスタンプ印刷機能をマスクして表示する請求項３記載の情報処理方法。
【請求項５】
コンピュータを、請求項１又は２記載の各手段として機能させるための情報処理プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報処理装置、情報処理方法及び情報処理プログラムに関する。
【０００２】
【従来の技術】
従来のプリンタドライバのインストール方法は、ＯＳ依存の方式、例えばＷｉｎｄｏｗｓ（登録商標）の場合には、プリンタのプロパティから「プリンタの追加」を選択して、その後ウィザードと呼ばれるユーザとの対話形式によってユーザに必要情報を入力させて、プリンタドライバをインストールさせていた。また、アプリケーションと同様に、インストーラを用いてユーザには最小限の操作を要求するだけでプリンタドライバのインストールを実現させる方法もあった。また、プリントサーバを用いたＰｏｉｎｔ＆Ｐｒｉｎｔでのインストールで、サーバ装置からクライアント装置に対して、プリンタドライバを自動配信する仕組みがＷｉｎｄｏｗｓ（登録商標） ＮＴ／２０００／ＸＰのサーバ上にあった。
【０００３】
プリンタドライバを備えたホスト装置には、接続するプリンタやそのプリンタドライバが持つ機能等の印刷データに関わるデータを提供するダイナミックリンクライブラリをプラグインでＯＳにロードするものがある（例えば、特許文献１）。
【０００４】
プリンタドライバ対して機能の追加や拡張を行いたい場合には、新しいバージョンのプリンタドライバのフルセットをインストールしていた。
【０００５】
また大手企業や損保・生保等では、一般市場向けにリリースされたプリンタドライバとは必要となる機能が異なる場合が有り、また、社内の一般ユーザに触らせたくない機能をマスクしたい場合なども有るので、カスタマイズされたドライバを必要とすることがある。
【０００６】
【特許文献１】
特開２００１−７５７５８号公報
【０００７】
【発明が解決しようとする課題】
しかしながら、上記のような従来のインストール方法では、企業ユーザのように多数のコンピュータを所有し多数のユーザ（クライアント）を抱えている場合には、その全てのクライアントにプリンタドライバをインストールさせる作業が発生するために様々な問題が生じていた。例えば、ユーザは自分がどのプリンタを利用してよいのか、そのプリンタのＩＰアドレス等を確認し、さらにそのプリンタに合致するプリンタドライバをサーバやベンダーサイトからダウンロードしてインストールし、且つ出力ポート等の環境設定を行う必要がある。このため、各ユーザにはある程度以上の知識や能力が要求されていた。さらに、このような作業には手間がかかる上に、これを補うための教育を行ったり、マニュアルを作成したりすることにも多くの工数がかかるという問題があった。
【０００８】
また各ユーザが好き勝手にプリンタドライバをインストールして無秩序にプリンタに接続すると、印刷処理システムとして不具合を生じかねないという問題があった。これを解決するためにプリンタ管理者（ＩＴマネージャ）が各クライアント装置にプリンタドライバをインストールしていたのでは、クライアント装置数が多い場合には非常に時間がかかってしまうという問題があった。
【０００９】
また、カスタマイズされたプリンタドライバを使う際には、通常はメーカーのサポートを受けることになるが、カスタマイズにはドライバセットの作り直しが必要なことから多大な工数がかかる。これはドライバセットを供給するメーカー側でも多品種少量生産が困難であるという問題が有った。
【００１０】
また、カスタマイズされたプリンタドライバを使う際は通常メーカーのサポートを受けることになるが、各部門によって異なるプリンタドライバを使いたいような場合は、細かいサポートをあきらめて共通のプリンタドライバを使うか、各ドライバセットに対して高い受注料金を払う必要があった。このため、部署ごとに仕様を変えるような多品種少量生産が難しかったり、受注が有償になったりしていた。
【００１１】
またＵＩのマスクに限らず、機能が複雑なためによく使う機能だけを表示した簡易版を使いたい、よく使う機能をひとまとめにしたＵＩを使いたい、外国人用にローカライズしたＵＩを使いたい、などカスタマイズの要求は多いが、これらに対する対応は上記したと同様に難しかった。またプリンタドライバで新しい機能を使うためには通常はより新しいバージョンのプリンタドライバを使うことになるが、プリンタドライバのアップデートや再インストールは手間がかかる上に、リブートが発生する場合があるため業務に影響をきたすという問題があった。
【００１２】
さらにまた、プリントサーバを用いたＰｏｉｎｔ＆Ｐｒｉｎｔ方式では、プリンタドライバの自動配信により全てのクライアントに対してそのインストールが可能となっているが、クライアント装置側の状態に関わらず勝手に実施されるため、ドライバ機能が勝手に変わったり、ドライバ構成に不整合を生じて正しく動作しなくなったりするなどの問題があった。
【００１３】
本発明は上記の従来技術の課題を解決するためになされたもので、その目的とするところは、ユーザが特別な知識を必要とせずに、自分のクライアント装置に利用可能なプリンタドライバを簡単にインストールすることを可能にすることにある。
【００１４】
【課題を解決するための手段】
請求項１の情報処理装置は、プリンタドライバのコアモジュールに対して、前記コアモジュールが提供する所定の処理に対応する新規ユーザインタフェースの第１の拡張モジュールと、前記コアモジュールに新たな機能を提供する機能拡張モジュールと、前記機能拡張モジュールに対応するユーザインタフェースの第２の拡張モジュールとがプラグインとして提供される際に、前記コアモジュールの提供する所定の処理に対応するユーザインタフェースに関する既存のモジュールを、当該既存のモジュールと同じインタフェースを持っている前記第１の拡張モジュールへと差し替える置換手段と、前記機能拡張モジュールと前記第２の拡張モジュールとを前記コアモジュールに追加する追加手段と、前記置換手段により差し替えられた前記第１の拡張モジュールの実行に伴って、前記所定の処理の指示部の位置が変更されたプリンタドライバのユーザインタフェースを表示し、前記追加手段により前記コアモジュールに前記機能拡張モジュール及び前記第２の拡張モジュールが追加された場合に前記第２の拡張モジュールの実行に伴って、前記プリンタドライバのユーザインタフェース上に前記機能拡張モジュールを操作するための新たなシートを表示する表示手段と、前記第１の拡張モジュールを呼び出すための関数名を、前記第１の拡張モジュールのインストール時にインストールプログラムが前記プリンタドライバの一部であるインタフェース登録機能を制御するプログラムを実行することで、前記プリンタドライバのインタフェースとして登録する第１の登録手段と、前記機能拡張モジュール及び前記第２の拡張モジュールを呼び出すための関数名を、インタフェースとして、前記機能拡張モジュール及び前記第２の拡張モジュールのインストール時に登録する第２の登録手段と、前記第１の登録手段により登録された前記インタフェースを用いて、前記第１の拡張モジュールを呼び出す呼出手段と、を備えることを特徴とする。
【００１６】
請求項２の情報処理装置は、請求項１の情報処理装置において、前記表示手段は、所定の複数の処理の中の１つであるスタンプ印刷機能をマスクして表示することを特徴とする。
【００１７】
請求項３の情報処理方法は、プリンタドライバのコアモジュールに対して、前記コアモジュールが提供する所定の処理に対応する新規ユーザインタフェースの第１の拡張モジュールと、前記コアモジュールに新たな機能を提供する機能拡張モジュールと、前記機能拡張モジュールに対応するユーザインタフェースの第２の拡張モジュールとがプラグインとして提供される際に、前記コアモジュールの提供する所定の処理に対応するユーザインタフェースに関する既存のモジュールを、当該既存のモジュールと同じインタフェースを持っている前記第１の拡張モジュールへと差し替える置換ステップと、前記機能拡張モジュールと前記第２の拡張モジュールとを前記コアモジュールに追加する追加ステップと、前記置換手段により差し替えられた前記第１の拡張モジュールの実行に伴って、前記所定の処理の指示部の位置が変更されたプリンタドライバのユーザインタフェースを表示し、前記追加手段により前記コアモジュールに前記機能拡張モジュール及び前記第２の拡張モジュールが追加された場合に前記第２の拡張モジュールの実行に伴って、前記プリンタドライバのユーザインタフェース上に前記機能拡張モジュールを操作するための新たなシートを表示する表示ステップと、前記第１の拡張モジュールを呼び出すための関数名を、前記第１の拡張モジュールのインストール時にインストールプログラムが前記プリンタドライバの一部であるインタフェース登録機能を制御するプログラムを実行することで、前記プリンタドライバのインタフェースとして登録する第１の登録ステップと、前記機能拡張モジュール及び前記第２の拡張モジュールを呼び出すための関数名を、インタフェースとして、前記機能拡張モジュール及び前記第２の拡張モジュールのインストール時に登録する第２の登録ステップと、前記第１の登録手段により登録された前記インタフェースを用いて、前記第１の拡張モジュールを呼び出す呼出ステップと、を備えることを特徴とする。
【００１９】
請求項４の情報処理方法は、請求項３の情報処理方法において、前記表示ステップにおいて、所定の複数の処理の中の１つであるスタンプ印刷機能をマスクして表示することを特徴とする。
【００２０】
請求項５の情報処理プログラムは、コンピュータを、上記情報処理装置が備える各手段として機能させる。
【００５３】
【発明の実施の形態】
本発明は、各ユーザが特別な知識を必要とせずに、自分のクライアント装置に利用可能なプリンタのドライバを簡単にインストールできることを目的とし、これを実現するために、プリントサーバにおいてあらかじめ各クライアント装置が利用可能なプリンタの設定やプリンタドライバの準備をしておき、クライアントユーザからの要求をトリガとしてインストールと環境設定とを自動的に行う。ここでは、この方式をプリンタドライバのプル型インストールと称する。
【００５４】
また、プリンタドライバセットをコアモジュールと拡張モジュールとを組み合わせたものによって構成して、ドライバの機能変更はこの拡張モジュールの追加や更新のみで行えるようにすることにより、ドライバのアップデートや特定ユーザ向けのカスタマイズ版ドライバセットの作成を容易にする。この方式をプラグイン型プリンタドライバと称する。
【００５５】
これらを組み合わせることにより、クライアントユーザもＩＴマネージャも最少限の工数でクライアント装置へのプリンタドライバのインストールや機能拡張、アップデートを行うことが可能になる。またＵＩモジュールのみの差し替えにより、カスタマイズ版ＵＩの利用を可能とする。ここではカスタマイズ版ドライバセットを作っても良いし、インストール後にＵＩモジュールだけ差し替えてもよい。またユーザの権限やレベル、好みに応じてユーザ毎に異なるＵＩを使えるようにすることも可能とする。
【００５６】
またプリントサーバ上で各クライアント装置にインストールしたモジュールやバージョンを管理することにより、ＩＴマネージャは各クライアント装置の状況を把握することが出来、且つ以降のプル型インストールにおいて差分モジュールのみをインストールすることにより、インストール時間の短縮やネットワークへの負荷削減を行うことが可能となる。
【００５７】
以下、本発明の実施の形態について図面を参照しながら詳細に説明する。
【００５８】
図１は、本発明の第１の実施の形態に係る情報処理方法を実施する印刷処理システムの概略構成を示す図である。
【００５９】
印刷処理システムでは、情報処理方法であるユーザインタフェースインストール方法が実行され、当該システムはネットワーク上にサーバ装置（情報処理装置）、複数のクライアント装置、およびプリンタが接続されて構成されている。プリンタドライバのインストールは、サーバ装置からクライアント装置に対して行うことが可能である。また、不図示であるが、スキャナ、デジタルカメラ、ファクシミリ、マウス、スピーカ、音源装置、電話、複写機などもネットワーク上に接続される。
【００６０】
図２は、本発明の第１の実施の形態に係る印刷処理システムの構成の一部を説明するブロック図である。
【００６１】
以下の説明において、ホストコンピュータとプリンタとを接続する形態はＬＡＮ、ＷＡＮ、公衆回線、インターネット等いかなる形態であっても適用できることは言うまでもない。
【００６２】
図２において、プリンタ１５００とホストコンピュータ３０００とがネットワーク１００，１０２を介して接続されている。ホストコンピュータ３０００はコンピュータ本体２０００にキーボード（ＫＢ）９、ディスプレイ（ＣＲＴ）１０、ハードディスク（ＨＤ）やフロッピー（登録商標）ディスク（ＦＤ）等の外部メモリ１１等が接続された構成を有している。ホストコンピュータ３０００の構成は図１におけるサーバ装置及びクライアント装置に共通する。
【００６３】
コンピュータ本体２０００は、ＣＰＵ１、ＲＡＭ２、ＲＯＭ３、キーボードコントローラ（ＫＢＣ）５、ＣＲＴコントローラ（ＣＲＴＣ）６、ディスクコントローラ（ＤＫＣ）７、プリンタコントローラ（ＰＲＴＣ）８等がシステムバス４を介して互いに接続されている。
【００６４】
ＣＰＵ１は、ＲＯＭ３のプログラム用ＲＯＭあるいは外部メモリ１１に記憶された文書処理プログラム等に基づいて図形、イメージ、文字、表（表計算等を含む）等が混在した文書処理を実行するとともに、システムバス４に接続される各デバイスを総括的に制御する。
【００６５】
ＲＡＭ２はＣＰＵ１の主メモリ、ワークエリア等として機能する。
【００６６】
ＲＯＭ３は、プログラムＲＯＭ、フォントＲＯＭ、データＲＯＭから構成されている。ＲＯＭ３のプログラムＲＯＭあるいは外部メモリ１１には、ＣＰＵ１の制御プログラムであるオペレーティングシステムプログラム（以下ＯＳ）等が記憶され、ＲＯＭ３のフォントＲＯＭあるいは外部メモリ１１には、上記文書処理の際に使用するフォントデータ等が記憶され、ＲＯＭ３のデータＲＯＭあるいは外部メモリ１１には上記文書処理等を行なう際に使用する各種データが記憶される。
【００６７】
ＫＢＣ５には、キーボード９や不図示のポインティングデバイスが接続されており、ＫＢＣ５はこれらからのキー入力を制御する。ＣＲＴＣ６には、ＣＲＴ１０が接続されており、ＣＲＴＣ６はＣＲＴ１０の表示を制御する。
【００６８】
ＤＫＣ７は、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、プリンタ制御コマンド生成プログラム（以下プリンタドライバ）等を記憶するハードディスク（ＨＤ）、フロッピーディスク（ＦＤ）等の外部メモリ１１とのアクセスを制御する。
【００６９】
ＰＲＴＣ８は、ネットワーク１００を介してプリンタ１５００に接続されており、プリンタ１５００との双方向通信制御処理を実行する。なお、送信の際に接続プロトコルに応じたコマンドを印刷ジョブに付加する場合もある。また、前記コマンドはＯＳが自動的に付加する場合もある。
【００７０】
なお、ＣＰＵ１は、例えばＲＡＭ２上に設定された表示情報ＲＡＭへのアウトラインフォントの展開（ラスタライズ）処理を実行し、ＣＲＴ１０上でのＷＹＳＩＷＹＧを可能にしている。
【００７１】
また、ＣＰＵ１は、ＣＲＴ１０上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。ユーザは印刷を実行する際に、印刷の設定に関するウインドウを開き、プリンタの設定、印刷モードの選択等、プリンタドライバに対する印刷処理方法の設定を行なえる。
【００７２】
プリンタ１５００はプリンタ制御部１０００に印刷部１７、ＨＤやＦＤの外部メモリ２１、操作部２２等が接続された構成を有している。
【００７３】
プリンタ制御部１０００は、プリンタＣＰＵ１２、ＲＡＭ１３、ＲＯＭ１４、印刷部Ｉ／Ｆ１６、入力部１８及びメモリコントローラ（ＭＣ）２０がシステムバス１５を介して互いに接続されている。
【００７４】
ＣＰＵ１２は入力部１８を介してホストコンピュータとの通信処理が可能であり、プリンタ１５００内の情報等をホストコンピュータ３０００に通知可能に構成されている。プリンタドライバから受信したデータはＲＡＭ１３に格納され、制御プログラムにより画像信号に変換される。なお、通信プロトコルに応じて付加されているコマンドの解釈も制御プログラムにより行なわれる。
【００７５】
ＲＡＭ１３はＣＰＵ１２の主メモリ、ワークエリア等として機能するＲＡＭで、不図示の増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができる。なお、ＲＡＭ１３は、出力情報展開領域、環境データ格納領域、ＮＶＲＡＭ等に用いられる。
【００７６】
ＲＯＭ１４のプログラムＲＯＭにはＣＰＵ１２の制御プログラム等が記憶されている。プリンタＣＰＵ１２は、このプログラムＲＯＭに記憶された制御プログラム等あるいは外部メモリ２１に記憶された制御プログラム等に基づいてシステムバス１５に接続される印刷部Ｉ／Ｆ１６を介して印刷部（プリンタエンジン）１７に出力情報としての画像信号を出力する。フォントＲＯＭには上記出力情報を生成する際に使用するフォントデータ等が記憶されており、データＲＯＭにはプリンタがハードディスク等の外部メモリ２１を備えていない場合に、ホストコンピュータ３０００上で利用される情報等が記憶されている。
【００７７】
前述したハードディスク（ＨＤ）、ＩＣカード等の外部メモリ２１は、ＭＣ２０によりアクセスを制御される。外部メモリ２１はオプションとしてプリンタ１５００に接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。
【００７８】
また、操作パネル２２は、種々の操作のためのスイッチやＬＥＤ表示器、液晶パネル等が配されている。また、前述した外部メモリ２１は１個に限らず、少なくとも１個以上備え、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。さらに、不図示のＮＶＲＡＭを有し、操作パネル２２からのプリンタモード設定情報を記憶するようにしてもよい。
【００７９】
図３は、図２のホストコンピュータ３０００のＲＡＭ２にロードされて実行可能となった制御プログラムのメモリマップを示す図であり、（ａ）はサーバ装置のメモリマップを示し、（ｂ）はクライアント装置のメモリマップを示す。
【００８０】
本実施の形態におけるプリンタドライバであるプル型インストールプログラムは、サーバ装置及びクライアント装置それぞれの、インストール処理関連プログラム３０４，３１４の一部として存在している。
【００８１】
図４は、プリンタドライバの構成及びプリンタドライバとシステムとの関係を示す図である。
【００８２】
プリンタドライバは、基本的にはコアモジュール４０１と拡張モジュール４１０ｘ（ｘ＝ａ、ｂ、．．．）で構成される。拡張モジュール４１０ｘはＵＩ(User Interface)モジュールと機能モジュールの総称である。図４では拡張モジュールとしてＵＩモジュール４１０ａだけが付加されている状態を示している。
【００８３】
コアモジュール４０１はシステム４２０や不図示のアプリケーションから直接呼び出されるモジュールであり、基本的な印刷設定処理や印刷実行処理を行う。
【００８４】
拡張モジュール４１０ｘは、特定の処理を行う差し替え可能な機能モジュールであり、必要に応じてコアモジュール４０１からインターフェースＩ／Ｆ４０２を介して呼び出される。なお、拡張モジュール４１０ｘは、ツール（インストーラ）を使ってプラグイン（追加や差し替え）を行うことができ、これによりプリンタドライバの機能の追加や更新を行うことができる。拡張モジュール４１０ｘが図示したようにＵＩモジュールの場合は、モジュールの変更・追加によりＵＩの変更・追加などを行うことが出来る。
【００８５】
コアモジュール４０１が拡張モジュール４１０ｘを呼び出すときの呼び出し方としては、例えば「インターフェース固定方式」、「インターフェース登録方式」、「ＣＯＭの使用」などが考えられる。
【００８６】
これらのうち「インターフェース固定方式」は、それぞれの機能を呼び出すときのファイル名や関数名、引数等を規定しておく方式である。コアモジュール４０１はそれぞれの機能を必要としたときに、各規定に従って拡張モジュール４１０ｘを呼び出して、合致したものがあればその処理を利用する。拡張モジュール４１０ｘは、各規定に則った作成を行うことになる。
【００８７】
また、「インターフェース登録方式」は、それぞれの機能を呼び出すときのファイル名や関数名をＩ／Ｆ４０２に登録しておく方式である。コアモジュール４０１はそれぞれの機能を必要としたときに、Ｉ／Ｆ４０２に登録されているインターフェースを用いて拡張モジュール４１０ｘを呼び出す。拡張モジュール４１０ｘは、任意のファイル名や関数名を使って提供することができ、他の拡張モジュールとの混在が可能である。また、既存のプリンタドライバセットに拡張モジュール４１０ｘをプラグインする際は、インストーラはインターフェース登録機能（Interface Registration）ＩＦＲ４０３を通してＩ／Ｆ４０２への登録や更新を行う。
【００８８】
また、「ＣＯＭの使用」は、それぞれの機能を呼び出すときの形式をあらかじめ規定しておき、拡張のプラグインはＣＯＭコンポーネントとしてシステム４２０に登録する方式である。ＣＯＭの特徴であるロケーションの透過性から、拡張モジュールの実体をプリントサーバに持つことなども可能となる。
【００８９】
これらのような方式を採ることで、拡張モジュール４１０ｘの呼び出し、及び追加や差し替えが可能になる。ただしここで挙げた呼び出し方法は一例であって、これらに限定するものではない。
【００９０】
なお、Ｉ／Ｆ４０２は、コアモジュール４０１の一部として機能しても良いし、独立したモジュールであっても良い。同様に、ＩＦＲ４０３もコアモジュール４０１と一体であっても良いし、独立であっても良い。
【００９１】
また、コアモジュール４０１が拡張モジュール４１０ｘの呼び出しに失敗した場合、すなわち該当する拡張モジュールが存在しなかった場合には、コアモジュール４０１にてベースとなる共通処理を行うか、若しくは該当する機能処理をスキップして処理を進める。
【００９２】
また、コアモジュール４０１と拡張モジュール４１０ｘとの機能の切り分けは、ここでは特に制限は設けないものとする。例えば、基本となる共通処理はコアモジュール４０１で行い、特定の個別機能（例えば、デバイスとの通信、色処理、レンダリング、等）のみを拡張モジュールとして独立させることも可能である。あるいはコアモジュール４０１はシステム４２０からの呼び出しのみを処理するラッパー（Wrapper）とし、処理全体の流れを管理する部分を拡張モジュール４１０ｘに置くことも可能である。以後の実施例では、様々なレベルでの切り分けを想定して説明する。
【００９３】
なお、以上説明した仕組みは、プリンタドライバという枠に限ったものではなく、他のユーティリティを含めた印刷システムにも適用できる。さらには印刷システム以外の他のシステムにも適用可能であることは言うまでもない。
【００９４】
図５は、カスタマイズしたプリンタドライバの構成を例示する図である。（ａ）は、図４に例示した構成とは異なる構成の一例を示し、（ｂ）は、他の構成例を示す。
【００９５】
（ａ）に示す構成例では、図４に示した構成例のUser Interface ＡがUser Interface Ａ’に差し替えられている点が異なる。この差し替えは同じＩ／Ｆであってもその処理内容を変えることができることを意味する。このＵＩ差し替え例の場合、印刷処理部分の変更無しに操作系部分だけを変えることができる。
【００９６】
また、（ｂ）に示す構成例では、図４に示した構成例に、User Interface ＢとFunc Module Ｂとが追加されている。モジュールの追加は特定の処理が追加できたり、特定処理のフックができたりすることを意味している。ＵＩ部に関して言えば、従来の操作系は残しつつ、新たな機能を追加すること及び追加した機能を制御する操作部を追加することができる。
【００９７】
このように、拡張モジュールの組み合わせを変えることで、特殊機能の追加や特定の機能の変更を行ったカスタマイズプリンタドライバセットを提供することが容易に行える。
【００９８】
図６は、プラグイン・インストールによるドライバ構成の変遷を示す図である。
【００９９】
図６に示した例では、インストール済みのプリンタドライバセット６０１に対して、インストーラを使ってUser Inter face Ａ’、User Interface Ｂ及びFunc Module Ｂの３つの拡張モジュール６０２をプラグインする処理を想定している。ここで、User Inter face Ａ’は既存のUser Inter face Ａと同じインターフェースを持っており、プラグインによってUser Inter face Ａと差し替えられる。またUser Interface ＢとFunc Module Ｂとは、相当する既存のモジュールがないので追加され、プラグインの結果としてプリンタドライバセットは６０３に示すような構成になる。
【０１００】
なお、プリンタドライバはシステムやアプリケーションによってロードされたままになって置き換えができず、更新にはリブートが必要になるケースも多々ある。しかし本実施の形態の場合にはコアモジュールがロードされていても拡張モジュールの更新は可能なので、システムやアプリケーションの影響を受けずにリブートなしにプリンタドライバセットの更新作業が進められる。
【０１０１】
このように、拡張モジュールのみをプラグインすることによって、プリンタドライバの機能更新を容易に行うことができる。
【０１０２】
図７から図１３までは、ＵＩ差し替えの具体例を示す図である。
【０１０３】
図７はベースとなるＵＩの一例を示す図であり、図８は、図７のＵＩ例の一部の機能をマスクしたＵＩモジュールに差し替えた場合のＵＩ例を示す図である。図８の例では、図７の例における右下の「スタンプ」がマスクされており、これは図５の（ａ）のUser Inter face Ａ’に相当する。このようなマスク版ＵＩへの差し替えにより、一般ユーザに特定の機能を操作させないように制限をかけることが可能となる。
【０１０４】
図９は、図７のＵＩ例の一部の機能を置き換えてカスタマイズしたＵＩモジュールに差し替えた場合のＵＩ例を示す図である。図８の例では、図７の例における右下の「スタンプ」が「印刷方法」に置き換えられており、これは図５の（ａ）のUser Inter face Ａ’に相当する。このようなカスタマイズ版ＵＩへの差し替えにより、よく使う機能を集中して配置することなどが可能となる。
【０１０５】
図１０は、図７のＵＩ例を英語表示にローカライズしたＵＩモジュールに差し替えた場合のＵＩ例を示す図である。これは図５の（ａ）のUser Inter face Ａ’に相当する。このようなローカライズ版ＵＩへの差し替えにより、基本機能を変更することなく表示だけを各国語表示に変更することが可能となる。
【０１０６】
図１１は、図７のＵＩ例を簡易化したＵＩモジュールに差し替えた場合のＵＩ例を示す図である。これは図５（ａ）のUser Inter face Ａ’に相当する。このような簡易版ＵＩへの差し替えにより、ユーザレベルに応じたサポート等が容易となる。
【０１０７】
図１２は、図７のＵＩ例を別のシェルに変更したＵＩモジュールに差し替えた場合のＵＩ例を示す図である。これは図５（ａ）のUser Inter face Ａ’に相当する。このように別のシェル版ＵＩへの差し替えにより、ユーザの好みに応じたＵＩを選択利用することが可能となる。
【０１０８】
図１３は、図７のＵＩ例に新しい機能を追加するためにＵＩモジュールを追加した場合のＵＩ例を示す図である。追加した機能は第５タブシートの「お気に入り」にとして例示したものであり、これは図５（ｂ）のUser Interface Ｂに相当する。このように新機能ＵＩの追加により、既存のＵＩを保持したまま新機能を操作するＵＩを追加することができる。ＵＩ機能を追加した場合はそれに対応した実処理モジュール（ここでは Func Module Ｂ）が追加される場合もある。
【０１０９】
図１４は、サーバにおける情報管理の準備処理を示すフローチャートである。
。
【０１１０】
先ず、ステップＳ１４０１においてネットワークに接続されているプリンタの情報を検索して、取得する。次に、ステップＳ１４０２において出力ポートなどの環境や該当するプリンタドライバ、また必要に応じて拡張モジュールも合わせて収集し、クライアント装置にインストールすべきドライバセットを構築して、管理する。
【０１１１】
次に、ステップＳ１４０３においてネットワークに接続されているクライアント装置の管理リストを作成する。ここでは、ＩＴマネージャが管理対象となるクライアント装置を登録しても良いし、管轄内に存在するすべてのクライアント装置の情報を自動収集して対象としても良い。
【０１１２】
次に、ステップＳ１４０４において図１５に例示するようなリソース管理テーブルを作成する。ここでは、サーバで管理しているプリンタ、拡張モジュール、クライアント装置等の一覧情報を持つ。プリンタ管理テーブルでは、各プリンタで必要となるプリンタドライバの格納場所やファイル名、また出力先のＩＰアドレスなどを管理し、拡張モジュール管理テーブルでは各拡張に該当するモジュールの格納場所やファイル名を管理し、クライアント管理テーブルでは各クライアント装置のＩＰアドレスを管理している様子を示した例である。これらを総称してリソース管理テーブルと呼ぶ。
【０１１３】
以上で、サーバはプリンタやクライアント装置を管理できる状態となる。図１４の処理は、システム構築時、プリンタ追加時、プリンタドライババージョンアップ時、機能追加時、クライアント装置追加時、等に実施する。
【０１１４】
図１６は、クライアント装置におけるプルインストール処理を示すフローチャートである。
【０１１５】
ステップＳ１６０１においてサーバに対してインストール要求を発行する。この際にクライアント装置に表示される、プルインストールを実行させるためのＵＩ例が図１７に示されている。Install Startボタンの押下によりサーバに対してインストール要求メッセージを送信することができる。インストール要求メッセージを送信した後のインストール処理は、要求メッセージを受け取ったサーバ側で行う。
【０１１６】
図１８は、クライアント装置からの要求に応じてサーバが行うプルインストール処理を示すフローチャートである。
【０１１７】
先ず、ステップＳ１８０１にてクライアント装置からのインストール要求を受信するまでインストール要求を受信したか否かの判断を繰り返す。クライアント装置からのインストール要求を受信した場合には、ステップＳ１８０２にてリソース管理テーブル（図１５参照）からモジュール一覧を取得して、インストールすべきモジュールの情報を確認する。なお本実施の形態では、例としてリソース管理テーブルのうちPrinter  Ａ・Ｂ・Ｃ、User Interface Ｄ、及びFunc Module Ｍをインストール対象のモジュールセットとする。
【０１１８】
次に、ステップＳ１８０３にて図１９に例示したようなインストール状況管理テーブルを読み出す。インストール状況管理テーブルは、管理対象の複数のクライアント装置及び各クライアント装置に既にインストールされているモジュール一覧やそのバージョンなどの情報が記録された、サーバ管理のテーブルである。このインストール状況管理テーブルを読み出すことにより、要求元クライアント装置のインストール状況を確認する。なおインストール状況管理テーブルは、システム構築時に空のテーブルを新規作成しておき、クライアント装置にモジュールをインストールする度に更新することによって、最新のインストール状況が保持される。
【０１１９】
ステップＳ１８０２とステップＳ１８０３とで取得した情報からモジュールの差分を判断し、ステップＳ１８０４にて差分のモジュールのみを要求元クライアント装置に対してインストールする。例えば要求元クライアント装置がClient Ｂである場合、図１９に示したインストール状況管理テーブルより、プリンタはPrinter Ａ・Ｂが、拡張モジュールはFunc Module Ｍがインストール済みであることが分かる。したがって、差分であるPrinter Ｃ、及びUser Inter face Ｄのインストール（プラグイン）を行うことになる。
【０１２０】
要求元がClient Ｃだった場合は、要求前は何もインストールされていないのでコアモジュールを含めたフルインストールを行うことになる。なおClient Ａは最新版の状態になっているため、インストール要求が発行されても新たな処理は行われない。
【０１２１】
上述したインストールするモジュールは、リソース管理テーブルを参照して取得する。またインストール時には併せて出力ポート等の環境設定を行う。
【０１２２】
インストールが終了した後、ステップＳ１８０５にてインストール状況管理テーブルを更新する。Client Ｂ・Ｃからのインストール要求が満たされた場合には、図２０に示すようにインストール状況管理テーブルが更新される。
【０１２３】
以上のようにして、クライアント装置へのプルインストールが完了する。
【０１２４】
次に、本発明の第２の実施の形態に係るユーザインタフェースインストール方法を説明する。なお、当該方法を実施するシステム等は第１の実施の形態で説明したものと同様であるのでそれらの説明を省略する。
【０１２５】
第１の実施の形態においては、いずれのクライアント装置にも同じプリンタと拡張がインストールされる例を示した。しかし、例えば異なるフロアのユーザを管理する場合や、業務内容によって利用可能なプリンタを変えたい場合など、ユーザ毎の管理が必要となる場合がある。
【０１２６】
このような場合の例として、ＩＴマネージャがユーザ毎に利用可能なプリンタや拡張モジュールを分けて設定する方法を述べる。
【０１２７】
図２１は、ＩＴマネージャによるプリンタ管理のサーバにおける処理を示すフローチャートである。
【０１２８】
ステップＳ２１０１からステップＳ２１０４までは図１４のステップＳ１４０１からステップＳ１４０４までと同じであるので説明を省略する。
【０１２９】
ステップＳ１４０４と同様にステップＳ２１０４でリソース管理テーブルを作成した後、ステップＳ２１０５において、図２２に例示するようなクライアント管理テーブルを作成する。このクライアント管理テーブルは各クライアント装置に対して使用許可するプリンタ及び拡張モジュールを管理するために作成される。
【０１３０】
これとは別に、ＩＴマネージャは、クライアント管理テーブルを作することができる。これを図２４を参照しながら説明する。
【０１３１】
図２４は、クライアント管理テーブルを作する際に表示されるＵＩ例を示す図である。
【０１３２】
ここでは、まず既存のクライアント管理テーブルがあればその内容（すなわち現在の各クライアント装置毎の設定）を読み込み表示する。Clients：欄で任意のクライアント装置を選択すると、そのクライアント装置に利用許可となっているプリンタと拡張モジュールが、それぞれPrinters：とFunctions：欄の一覧リストの中で選択状態として表示される。ＩＴマネージャは、これらを変更することによって一覧表を更新できる。またClients：欄のクライアント装置を変更することで、各クライアント装置の状態を確認することができる。初めての設定の時にはいずれの欄にも割り当がされていないので、どのクライアント装置にどのプリンタとどの機能をインストール許可するかをゼロから設定することになる。なお、管理対象とするクライアント装置の追加をこのＵＩ上から行っても良い。
【０１３３】
クライアント装置からのインストール要求とそれに対するサーバの処理は、第１の実施の形態の説明で使用した図１６及び図１８で示した処理フローによる処理と基本的に同じである。ただし本実施の形態では、図１８のステップＳ１８０４におけるモジュールの差分のインストールは、インストール状況管理テーブルと図２２に示すクライアント管理テーブルとを比較した差分のインストールである。
【０１３４】
図２３は、インストール状況管理テーブルの一例を示す図である。
【０１３５】
現在のインストール状況管理テーブルの内容が図示したような状態である場合には、ステップＳ１８０４において図２２と図２３のテーブルを比較することにより、Client Ｃからインストール要求があった場合はPrinter Ｂ・Ｃ及びUser Interface Ｄがインストールされ、Client Ｄからインストール要求があった場合はPrinter Ｂ及びUser Interface Ｅがインストールされることになる。なおClient Ａ・Ｂ・Ｅは最新版の状態になっているため、これらのクライアント装置からインストール要求が発行されても処理は行われない。
【０１３６】
以上で、クライアント装置別に管理されたプルインストールが完了する。
【０１３７】
次に、第３の実施の形態にかかるユーザインタフェースインストール方法を説明する。なお、当該方法を実施するシステム等は第１の実施の形態で説明したものと同様であるのでそれらの説明を省略する。
【０１３８】
上述の第２の実施の形態においてはサーバ上でクライアント装置毎の制限を行ったが、本実施の形態においてはこのような制限をサーバ上では行わずに、単に利用可能なプリンタと拡張モジュールを管理し、一方、クライアントユーザが必要なプリンタと拡張モジュールを選択して利用する。
【０１３９】
図２５は、第３の実施の形態におけるクライアント装置におけるプルインストール処理を示すフローチャートである。図２６は、クライアントユーザがプルインストール処理を実行させるためのＵＩ例を示す図である。
【０１４０】
図２５のフローチャートにおいて、先ず、ステップＳ２５０１においてクライアント装置は、サーバに問い合わせてサーバで管理しているプリンタおよび拡張モジュールの一覧情報を取得して、取得した情報をＵＩ上にリスト表示する。
【０１４１】
次にステップＳ２５０２において、クライアントユーザは図２６に示したＵＩ上にリスト表示されているものの中から利用したいプリンタや拡張モジュールを選択する。
【０１４２】
次にステップＳ２５０３において、インストールボタンの押下によりサーバに対してインストール要求メッセージを発行し、クライアント装置はインストールしたいプリンタ及び拡張モジュールを選択した一覧をサーバに送信する。その後のインストール処理は、インストール要求メッセージを受け取ったサーバ側で行う。
【０１４３】
クライアント装置からのインストール要求に対するサーバの処理は、第１の実施の形態についての記載において説明した、図１８にフローチャートで示した処理と基本的に同じである。ただし本実施の形態においては、図１８のステップＳ１８０４における処理としてインストール状況管理テーブルとクライアント装置から送られた要求一覧とを比較した差分をインストールする。また併せて出力ポート等の環境設定を行うことは上述した第１の実施の形態と同じである。
【０１４４】
なお、プルインストール開始のトリガを、ＵＩに表示されたインストールボタンの押下ではなく、プリンタや拡張モジュールリストからのドラッグ＆ドロップによる直感的な操作にすることも可能である。
【０１４５】
以上で、クライアント装置がプリンタ選択した場合のプルインストールが完了する。
【０１４６】
なお、上述した実施の形態においてはすべてインストール状況管理テーブルを参照して差分モジュールのみをインストールしたが、インストール要求時に、指定したドライバセットすべてをインストール、若しくは指定した拡張モジュールのみ全てプラグインすることも可能である。
【０１４７】
【発明の効果】
以上説明したように、本発明によれば、クライアントユーザはドライバインストールの要求を発行するだけで、またはサーバが管理しているプリンタから利用したいものを選択してからドライバインストールの要求を発行するだけで、自分のクライアント装置へのインストールや環境設定が行われる。従ってユーザが特別な知識を必要とせずに、自分のクライアント装置に利用可能なプリンタドライバを簡単にインストールすることが可能である。
【０１４８】
更に、企業などで一般ユーザがむやみに操作しないように制限したいような場合に、印刷機能を変えなくてもＵＩ上のコントロールをマスクしたＵＩモジュールをプラグインするだけで特定の機能の設定変更を防止できる。
【０１４９】
更に、業務で使いやすいようにカスタマイズしたＵＩ、外国人が扱えるようにローカライズしたＵＩ、ユーザのレベルに応じた簡易版ＵＩや高機能版ＵＩ、ユーザの好みに応じてシェルを変更したＵＩなど、ニーズに応じたＵＩモジュールをプラグインするだけで既存のシステムに影響を与えずにユーザビリティを向上できる。
【０１５０】
更に、ＩＴマネージャにより、機能の使用を制限したＵＩやカスタマイズしたＵＩの導入をユーザ毎に管理することを可能にする効果がある。
【０１５１】
更に、ユーザが自ら好ましいＵＩを選択して使うことが可能となる効果がある。
【０１５２】
更に、ＳＥや開発はＵＩモジュールのみを開発することでＵＩの変更が可能となるため、ユーザニーズに応じたＵＩを少ない工数で提供することが可能となる効果がある。
【０１５３】
更に、プリントサーバにて過去に各クライアント装置にインストールしたモジュールやバージョンを記録しておくことで、ＩＴマネージャはそれぞれのクライアント装置の状況を把握することができる。
【０１５４】
また差分モジュールやバージョンの違いを判別することでインストール作業は最小限のファイルの更新で済み、時間短縮とシステム不安定化要因削減の効果がある。
【０１５５】
更に、プリンタドライバの新規インストールだけでなくドライバ機能の追加や変更もリブートなしに容易に処理することが可能となる効果がある。
【０１５６】
またユーザの意思でアップデートを行えるため、ＯＳ提供の勝手に進行する自動配信機能を回避することができる効果がある。
【０１５７】
更に、カスタマイズ版プリンタドライバセットが容易に作成可能となる効果がある。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態に係る情報処理方法を実施する印刷処理システムの概略構成を示す図である。
【図２】本発明の第１の実施の形態に係る印刷処理システムの構成の一部を説明するブロック図である。
【図３】図２のホストコンピュータ３０００のＲＡＭ２にロードされて実行可能となった制御プログラムのメモリマップを示す図であり、（ａ）はサーバ装置のメモリマップを示し、（ｂ）はクライアント装置のメモリマップを示す。
【図４】プリンタドライバの構成及びプリンタドライバとシステムとの関係を示す図である。
【図５】カスタマイズしたプリンタドライバの構成を例示する図である。（ａ）は、図４に例示した構成とは異なる構成の一例を示し、（ｂ）は、他の構成例を示す。
【図６】プラグイン・インストールによるドライバ構成の変遷を示す図である。
【図７】ベースとなるＵＩの一例を示す図である。
【図８】図７のＵＩ例の一部の機能をマスクしたＵＩモジュールに差し替えた場合のＵＩ例を示す図である。
【図９】図７のＵＩ例の一部の機能を置き換えてカスタマイズしたＵＩモジュールに差し替えた場合のＵＩ例を示す図である。
【図１０】図７のＵＩ例を英語表示にローカライズしたＵＩモジュールに差し替えた場合のＵＩ例を示す図である。
【図１１】図７のＵＩ例を簡易化したＵＩモジュールに差し替えた場合のＵＩ例を示す図である。
【図１２】図７のＵＩ例を別のシェルに変更したＵＩモジュールに差し替えた場合のＵＩ例を示す図である。
【図１３】図７のＵＩ例に新しい機能を追加するためにＵＩモジュールを追加した場合のＵＩ例を示す図である。
【図１４】サーバにおける情報管理の準備処理を示すフローチャートである。
【図１５】リソース管理テーブルの一例を示した図である。
【図１６】クライアント装置におけるプルインストール処理を示すフローチャートである。
【図１７】プルインストールを実行させるためのＵＩ例を示す図である。
【図１８】クライアント装置からの要求に応じてサーバが行うプルインストール処理を示すフローチャートである。
【図１９】インストール状況管理テーブルの一例を示す図である。
【図２０】図１９に示すインストール状況管理テーブルが更新されたものの一例を示す図である。
【図２１】ＩＴマネージャによるプリンタ管理のサーバにおける処理を示すフローチャートである。
【図２２】図２１に示した処理において作成されるクライアント管理テーブルの一例を示す図である。
【図２３】インストール状況管理テーブルの一例を示す図である。
【図２４】クライアント管理テーブルを作する際に表示されるＵＩ例を示す図である。
【図２５】クライアント装置におけるプルインストール処理を示すフローチャートである。
【図２６】クライアントユーザがプルインストール処理を実行させるためのＵＩ例を示す図である。
【符号の説明】
１  ＣＰＵ
２  ＲＡＭ
３  ＲＯＭ
４  システムバス
１１  外部メモリ（ＨＤ、ＦＤ）
２０００  コンピュータ本体
３０００  ホストコンピュータ
１２  ＣＰＵ
１３  ＲＡＭ
１４  ＲＯＭ
１５  システムバス
１６  印刷部コントローラ
１７  印刷部
１８  ネットワークコントローラ
２０  メモリコントローラ
２１  外部メモリ（ＨＤ、ＦＤ）
１０００  プリンタコントローラ
１５００  プリンタ
３０４，３１４  インストール処理関連プログラム
４０１  コアモジュール
４０２  インターフェースＩ／Ｆ
４０３  インターフェース登録機能
４１０ａ  ＵＩモジュール
６０１  プリンタドライバセット
６０２  拡張モジュール
６０３  プリンタドライバセット
１００ ネットワーク
１０２ ネットワーク
【図１】
0004908731.tif 000002
【図２】
0004908731.tif 000003
【図３】
0004908731.tif 000004
【図４】
0004908731.tif 000005
【図５】
0004908731.tif 000006
【図６】
0004908731.tif 000007
【図７】
0004908731.tif 000008
【図８】
0004908731.tif 000009
【図９】
0004908731.tif 000010
【図１０】
0004908731.tif 000011
【図１１】
0004908731.tif 000012
【図１２】
0004908731.tif 000013
【図１３】
0004908731.tif 000014
【図１４】
0004908731.tif 000015
【図１５】
0004908731.tif 000016
【図１６】
0004908731.tif 000017
【図１７】
0004908731.tif 000018
【図１８】
0004908731.tif 000019
【図１９】
0004908731.tif 000020
【図２０】
0004908731.tif 000021
【図２１】
0004908731.tif 000022
【図２２】
0004908731.tif 000023
【図２３】
0004908731.tif 000024
【図２４】
0004908731.tif 000025
【図２５】
0004908731.tif 000026
【図２６】
0004908731.tif 000027