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