(57)【要約】【課題】  ソフトウェアのバージョンアップに伴って生じる利用者の設定作業を容易にし、インストール作業の利便性を向上させる。【解決手段】  ネットワークに接続可能な情報処理装置において、ソフトウェアをインストールするセットアッププログラムであって、前記セットアッププログラムは、前記情報処理装置が備えるコンピュータに、前記情報処理装置において前記ソフトウェアが備える機能が実行可能であるか否かを判別する判別工程（環境モジュール（１）８０６が実行）と、前記ソフトウェアが備える機能のうち、前記判別工程により、実行可能であると判別された機能について、インストール後の設定処理を行う設定工程（設定実行モジュール（１）８０７が実行）とを実行させることを特徴とする。【選択図】  図８
2006072526.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアをインストールするためのセットアッププログラムが実行される情報処理装置であって、
前記セットアッププログラムは、前記情報処理装置が備えるコンピュータを、
前記情報処理装置において前記ソフトウェアが備える機能が実行可能であるか否かを判別する判別手段と、
前記ソフトウェアが備える機能のうち、前記判別手段により、実行可能であると判別された機能について、インストール後の設定処理を行う設定手段
として動作させるためのプログラムであることを特徴とする情報処理装置。
【請求項２】
前記判別手段は、前記ソフトウェアが新たにインストールされたことに応じて、前記判別を行なうことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記判別手段により設定可能と判別された機能の前記設定手段による設定を実行するか否かを、選択指示可能な選択画面を表示部に表示させる表示制御手段を有することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記セットアッププログラムは、
前記コンピュータを前記判別手段及び前記設定手段として動作させるプラグインを、備えることを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
ネットワークに接続可能な情報処理装置において、ソフトウェアをインストールする際に実行されるセットアッププログラムであって、前記情報処理装置が備えるコンピュータに、
前記情報処理装置において前記ソフトウェアが備える機能が実行可能であるか否かを、判別する判別工程と、
前記ソフトウェアが備える機能のうち、前記判別工程において、実行可能であると判別された機能について、インストール後の設定処理を行う設定工程と
を実行させることを特徴とするセットアッププログラム。
【請求項６】
前記判別工程は、前記ソフトウェアが新たにインストールされたことに応じて、前記判別を行なうことを特徴とする請求項５に記載のセットアッププログラム。
【請求項７】
前記判別工程により設定可能と判別された機能の前記設定工程による設定を実行するか否かを、選択指示可能な選択画面を表示部に表示させる表示制御工程を更に実行させることを特徴とする請求項５又は６に記載のセットアッププログラム。
【請求項８】
前記セットアッププログラムは、
前記コンピュータに前記判別工程及び前記設定工程を実行させるプラグインであることを特徴とする請求項５乃至７のいずれか１項に記載のセットアッププログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアをインストールする際の処理技術に関するものである。
【背景技術】
【０００２】
印刷デバイスとＰＣ等の情報処理装置とがネットワークを介して通信可能に接続された印刷処理システムにおいて、印刷デバイスの構成を検出したり、印刷デバイスに備えられたリソースの更新を検出したりすることにより、情報処理装置側の設定を適宜更新するといった発明が開示されている（例えば、特許文献１、２参照）。かかる発明によれば、印刷デバイスにおいて環境の変化が生じた場合であっても、情報処理装置側の設定変更を容易に行うことができる。
【特許文献１】特開２００２−６３００７号公報
【特許文献２】特開２００１−２４９８７９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
一方、印刷処理システムにおいて、例えば、印刷デバイス側の環境は維持しつつ、情報処理装置側にインストールされたソフトウェア（例えば、プリンタドライバ）だけをバージョンアップするといった場合がある（なお、ここでいうバージョンアップとは、すでに情報処理装置にソフトウェアがインストールされている状態において、新たな機能を追加したり、従来の機能を拡張したりすべく、同種のソフトウェアをさらにインストールすることを指す）。
【０００４】
このような場合、これまでは、バージョンアップに伴って追加・拡張されたソフトウェアの機能が印刷デバイスで利用できるか否かを、利用者が判断していた。しかし、バージョンアップに不案内な利用者にとって、かかる判断は容易ではなく、また、必要だと判断できた場合であっても当該機能を使用するために具体的にどのような設定をすればよいかがわからず、利用者にとっては利便性が悪いという問題があった。
【０００５】
本発明は、上記課題に鑑みてなされたものであり、ソフトウェアのバージョンアップに伴って生じる利用者の設定作業を容易にし、インストール作業の利便性を向上させることを目的とする。
【課題を解決するための手段】
【０００６】
上記の目的を達成するために本発明に係る情報処理装置は以下のような構成を備える。即ち、
ソフトウェアをインストールするためのセットアッププログラムが実行される情報処理装置であって、
前記セットアッププログラムは、前記情報処理装置が備えるコンピュータを、
前記情報処理装置において前記ソフトウェアが備える機能が実行可能であるか否かを判別する判別手段と、
前記ソフトウェアが備える機能のうち、前記判別手段により、実行可能であると判別された機能について、インストール後の設定処理を行う設定手段
として動作させるためのプログラムであることを特徴とする。
【発明の効果】
【０００７】
ソフトウェアのバージョンアップに伴って生じる利用者の設定作業が容易になり、インストール作業の利便性が向上する。
【発明を実施するための最良の形態】
【０００８】
以下に、図面を参照して、本発明の好適な実施の形態を例示的に詳しく説明する。ただし、以下の実施の形態に記載されている構成要素はあくまで例示であり、本発明をそれらの範囲のみに限定する趣旨のものではない。
【０００９】
例えば、本発明のセットアッププログラムは、様々なハードウェア構成を備えるシステムにおいて実行可能であるが、以下の各実施形態では、情報処理装置とネットワークプリンタとがネットワークを介して接続された印刷処理システムを対象について適用する場合を説明する。
【００１０】
また、本発明が適用される印刷処理システムには様々なソフトウェアがインストールされており、種々の機能をユーザに提供することが可能であるものとする。ただし、以下の各実施形態で説明する印刷処理システムは、いずれも印刷ジョブ制御機能を備えており、ここでは当該印刷ジョブ制御機能を実現するための印刷ジョブ制御プログラムをバージョンアップする場合について特に説明することとする。ただし、本発明のセットアッププログラムが適用対象とするソフトウェアは印刷ジョブ制御プログラムに限られるものではなく、例えば、プリンタドライバ等、他のソフトウェアであってもよいことはいうまでもない。
【００１１】
さらに、本発明の適用にあたり、印刷ジョブ制御プログラムのバージョンアップに伴って追加される機能は特に限定されるものではないが、以下の各実施形態では、１）サポート機種の追加（第１、第２の実施形態）、２）ＰＤＬ負荷分散機能の追加（第３の実施形態）、３）デバイス組込サーバ機能の追加（第４の実施形態）について説明することとする。
【００１２】
［第１の実施形態］
＜印刷処理システムの構成例＞
図１は、本発明の第１の実施形態に係る情報処理装置を備える印刷処理システムの構成を示す図である。同図において、１０１、１０２、１０３、１０４は、ネットワーク１０６に接続され、相互に通信可能な情報処理装置（ネットワークコンピュータ）であり、典型的にはパーソナルコンピュータ（ＰＣ）である。また、１０５は、印刷デバイスとしてのネットワークプリンタである。
【００１３】
これらのうち、１０２、１０３、１０４はクライアントコンピュータ（以下、クライアント）であり、それぞれイーサネット（登録商標）などのネットワークケーブルによってネットワーク１０６に接続され、アプリケーションプログラム等の各種のプログラムを実行可能であり、印刷データをプリンタ言語に変換する機能を有するプリンタドライバを搭載している。ここで、各クライアントは複数のプリンタドライバをサポートするものとする。
【００１４】
これに対し１０１はサーバコンピュータ（以下、サーバ）であり、ネットワークケーブルによってネットワーク１０６に接続され、ネットワークで使用されるファイルを蓄積したり、ネットワーク１０６の使用状態を監視したりする。なお、本実施形態において、このサーバは、ネットワーク１０６に接続されているネットワークプリンタ１０５を管理するプリントサーバとして機能する。具体的には、プリントサーバ１０１は、クライアント１０２〜１０４から印刷データを含まない印刷ジョブ情報を受け取って印刷順序を管理し、印刷順序になったクライアント１０２〜１０４に対して印刷データを含む印刷ジョブの送信許可を通知する機能や、ネットワークプリンタ１０５のステータスや印刷ジョブの各種情報を取得してクライアント１０２〜１０４に通知する機能などを有している。
【００１５】
ネットワークプリンタ１０５は、ネットワークインタフェースを介してネットワーク１０６と接続されており、クライアント１０２〜１０４から送信されてくる印刷ジョブを解析し、１ページずつドットイメージに変換して印刷する。なお、同図にネットワークプリンタ１０５は１台しか示されていないが、他にも複数のネットワークプリンタが接続されているものとする。各ネットワークプリンタの機能は相違するものであってもよい。
【００１６】
また、１０６はネットワークであり、クライント１０２〜１０４、プリントサーバ１０１、ネットワークプリンタ１０５等と接続している。
【００１７】
＜ネットワークコンピュータのハードウエア構成例＞
図２は、クライアント１０２〜１０４やプリントサーバ１０１として使用されるネットワークコンピュータの構成を説明するブロック図である。なお、本実施形態においては、クライント１０２〜１０４もプリントサーバ１０１も同様あるいは同等のハードウエア構成とするが、それぞれ専用のハードウエア構成であっても構わない。
【００１８】
図２において、２００は装置全体の制御を行うＣＰＵであり、ハードディスク（ＨＤ）２０５に格納されているアプリケーションプログラム、プリンタドライバ、ＯＳ（オペレーティングシステム）や印刷ジョブ制御プログラム等を実行し、ＲＡＭ２０２にプログラムの実行に必要な情報、ファイル等を一時的に格納する制御を行う。なお、ＯＳとしてはＷｉｎｄｏｗｓ（登録商標）に限定されるものではなく、描画命令を備えていれば他のＯＳも適用可能である。また、プリンタドライバは印刷ジョブ制御プログラムがＯＳを介して各種情報を取得する際に利用されるものであり、この点で、印刷ジョブ制御プログラムに含めるように考えても良い。
【００１９】
２０１は記憶手段としてのＲＯＭであり、内部には、基本Ｉ／Ｏプログラム等のプログラム、文書処理の際に使用するフォントデータ、テンプレート用データ等の各種データを記憶する。２０２は一時記憶手段としてのＲＡＭであり、ＣＰＵ２００の主メモリ、ワークエリア等として機能する。
【００２０】
２０３は記憶媒体読み込み手段としてのフロッピ（登録商標）ディスクドライブ（ＦＤドライブ）であり、ＦＤドライブ２０３を通じて、記憶媒体としてのＦＤ２０４に記憶されたプログラム等を本ネットワークコンピュータにロードすることができる。
【００２１】
２０５は外部記憶手段の一つであり、大容量メモリとして機能するハードディスク（ＨＤ）であり、アプリケーションプログラム、プリンタドライバ、ＯＳ、印刷ジョブ制御プログラム、その他の関連プログラム等を格納している。更に、スプール手段であるスプーラはここに確保される。スプール手段は、クライアント（１０２、１０３、１０４）ではクライアントスプーラのことであり、プリントサーバ１０１ではサーバスプーラのことである。また、プリントサーバ１０１では、クライアント（１０２、１０３、１０４）から受けた印刷ジョブを格納し、順序制御を行うためのテーブルもＨＤ２０５に生成されて格納される。
【００２２】
２０６は入力装置としてのキーボードであり、ユーザがクライアント（１０２、１０３、１０４）に対して、また、オペレータや管理者がプリントサーバ１０１に対して、デバイスの制御コマンドの命令等を入力指示するものである。２０７は表示装置としてのディスプレイであり、キーボード２０６から入力した制御コマンドの命令や、ネットワークプリンタの能力等を表示したりするものである。
【００２３】
２０８はシステムバスであり、クライアント（１０２、１０３、１０４）やプリントサーバ１０１であるネットワークコンピュータ内のデータの流れを司るものである。２０９は入出力手段であるインタフェースであり、クライアント（１０２、１０３、１０４）やプリントサーバ１０１はインタフェース２０９を介して外部装置とのデータのやり取りを行う。
【００２４】
なお、上記ネットワークコンピュータの構成はその一例であり、図２の構成例に限定されるものではない。例えば、データやプログラムの格納先は、その特徴に応じてＲＯＭ、ＲＡＭ、ＨＤなどに変更することも可能である。
【００２５】
＜ＲＡＭ内及びＦＤ内のメモリマップの構成＞
図３は、図２に示したＲＡＭ２０２のメモリマップの一例を示す図であり、ＦＤ２０４からロードされる印刷ジョブ制御プログラムが、ＲＡＭ２０２にロードされ実行可能となった状態のメモリマップである。
【００２６】
なお、本実施形態では、印刷ジョブ制御プログラムおよび関連データをＦＤ２０４から直接ＲＡＭ２０２にロードして実行させる例を示すが、これ以外にも、印刷ジョブ制御プログラムを動作させる度に、既に印刷ジョブ制御プログラムがＦＤ２０４からインストールされているＨＤ２０５から、ＲＡＭ２０２にロードするようにしてもよい。また、以上の各装置と同等の機能を実現するソフトウェアをもって、ハードウェア装置の代替として構成することもできる。
【００２７】
３０１は基本Ｉ／Ｏプログラムであり、コンピュータの電源がＯＮされたときに、ＨＤ２０５からＯＳがＲＡＭ２０２に読み込まれ、ＯＳの動作を開始させるＩＰＬ（イニシャルプログラムローデイング）機能などを有しているプログラムである。３０２はＯＳであり、３０３は印刷ジョブ制御プログラムであり、３０４は関連データである。印刷ジョブ制御プログラム３０３及び関連データ３０４は、ＲＡＭ２０２上に確保される領域に記憶される。３０５はワークエリアで、ＣＰＵ２００が他のプログラムを実行するための領域である。
【００２８】
図４は、図２に示したＦＤ２０４のメモリマップの一例を示す図である。図４において、４０１はデータの情報を示すボリューム情報であり、４０２はディレクトリ情報、４０３は印刷ジョブ制御プログラム、４０４はその関連データである。印刷ジョブ制御プログラム４０３は、本実施形態で説明するフローチャートに基づいてプログラム化したものであり、本実施形態では、クライアント（１０２〜１０４）及びサーバ（１０１）共に、同様の構成をとっている。
【００２９】
＜印刷ジョブ制御プログラムについて＞
上述したように印刷処理システムを構成する各クライアント１０２〜１０４及びサーバ１０１には、印刷ジョブ制御機能を実現するための印刷ジョブ制御プログラムがインストールされており、各クライアント１０２〜１０４及びサーバ１０１にインストールされた当該印刷ジョブ制御プログラムが連動して動作することにより、上記印刷処理システムは、「印刷ジョブ制御システム」を形成する（なお、以下、本明細書において、「印刷処理システム」は、ハードウェアの構成の面からとらえた表現であり、「印刷ジョブ制御システム」は、当該ハードウェア上で各種プログラムが実行されることにより実現される機能の面からとらえた表現であるものとする）。
【００３０】
印刷ジョブ制御プログラムは、クライアント（１０２〜１０４）においては、印刷ジョブの印刷先の変更を指示したり、印刷順序の変更を指示したりするために機能する。一方、プリントサーバ（１０１）においては、印刷ジョブの順序制御を行ったり、印刷ジョブの印刷終了や印刷先変更要求などを通知したりするために機能する。なお、当該印刷ジョブ制御プログラムは、クライアント（１０２〜１０４）にインストールされるモジュール（「ジョブ制御プリントサービス」）と、プリントサーバ（１０１）にインストールされるモジュール（「ジョブ制御サーバ」）を別々に分けてもよいし、ひとつの印刷ジョブ制御プログラムが、実行される環境によりクライアント用として機能したり、プリントサーバ用として機能したりするようにしてもよい。あるいは、一台のコンピュータに、クライアント用の機能を持つモジュール（ジョブ制御プリントサービス）とプリントサーバ用として機能するモジュール（ジョブ制御サーバ）とを共にインストールし、同時にあるいは時分割で、擬似的に平行動作させるように構成してもよい。
【００３１】
＜印刷処理システムにおけるソフトウェア構成例＞
はじめに、上記印刷ジョブ制御機能を備える印刷処理システムにおけるプリンタの概念について説明する。デバイスであるネットワークプリンタ（物理プリンタ）と区別して、プリンタドライバとプリンタ出力ポートとの組み合わせを、以下、「プリンタ」と称して説明する。
【００３２】
また、上記印刷処理システムでは、当該複数のプリンタを仮想的に束ねて１つにした、単独では為しえない機能を備えた仮想的なプリンタを「グループプリンタ」として設定することができる。即ち、アプリケーションプログラムから、グループプリンタに対して印刷指示を発行することにより、グループプリンタに属する複数のネットワークプリンタの何れかに印刷を行なわせることができる。ここで、束ねられる複数のネットワークプリンタの各々を「メンバプリンタ」と称する。なお、グループプリンタおよびメンバプリンタには、グループプリンタドライバおよびＰＤＬドライバが対応している。
【００３３】
次に図５を用いて、印刷処理システムにおけるソフトウェア構成について説明する。図５は、印刷処理システムにおけるソフトウェア構成を示す図であり、特に、Ｍｉｃｒｏｓｏｆｔ  Ｗｏｒｄ（登録商標）などの一般的なアプリケーションプログラム５０１から発行された描画コマンドを含む印刷ジョブが、印刷処理システムにおいてどのように処理されるかを示した図である。
【００３４】
通常、印刷の指示がされると、アプリケーションプログラム５０１は一連の描画命令をＯＳを介して生成する。
【００３５】
生成された描画命令は、グループプリンタドライバ５０３或はＰＤＬドライバ５０２の何れか指定されたプログラムに引き渡される。
【００３６】
ＯＳを介して生成された描画命令がグループプリンタドライバ５０３に渡された場合には、グループプリンタドライバ５０３は、中間形式ファイル（詳細は後述）を生成し、当該中間形式ファイルをスプーラ（Ｗｉｎｄｏｗｓ（登録商標）Ｓｐｏｏｌｅｒ）５０４に渡す。スプーラ５０４は、ユーザがユーザインタフェースを介して選択し指示したポートモニタに印刷ジョブを渡して、ネットワークプリンタ１０５に送信させる手順をとる。本実施形態では、ネットワークプリンタ１０５へ印刷ジョブを送信する従来のポートモニタではなく、印刷ジョブ制御システム用のポートモニタ５２１（以降、ジョブ制御ポートモニタと略記）をユーザがあらかじめ指定しているものとする。
【００３７】
グループプリンタドライバ５０３のユーザインタフェース（ＵＩ）を介して設定された用紙サイズ、ステープル指示等の印刷設定情報も、ジョブ制御ポートモニタ５２１に送信される。
【００３８】
ジョブ制御ポートモニタ５２１は、中間形式ファイルのデータをネットワークプリンタ１０５に送信するのではなく、印刷ジョブ制御システム用プリントサービスであるジョブ制御プリントサービス５２２に転送する。
【００３９】
一方、ＯＳを介して生成された描画命令がＰＤＬドライバ５０２に投入された場合には（かかる場合を「直接印刷」とも呼ぶ）、ＰＤＬドライバ５０２よって頁記述言語が生成され、生成された頁記述言語は、印刷処理を行うよう設定されたＰＤＬドライバ５０２に対応するジョブ制御ポートモニタ５２１、ジョブ制御プリントサービス５２２を介して対応するネットワークプリンタ１０５に送信される。
【００４０】
印刷ジョブ制御システム用のプリントマネージャであるプリントマネージャ５２３は、ユーザがジョブ制御プリントサービス５２２内部で印刷ジョブがどのような状態にあるかを調べたり、印刷ジョブを操作したりするためのユーザインタフェースを提供するプログラムである。プリントマネージャ５２３は、ジョブ制御プリントサービス５２２のソフトウェアのインタフェース（ＡＰＩ：Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）を介して、ジョブ制御プリントサービス５２２と情報・指示をやり取りしている。例えば、プリントマネージャ５２３がジョブ制御プリントサービス５２２に対してネットワークプリンタを指定したイベントを発行し、ジョブ制御プリントサービス６２２は発行されたイベントに基づくネットワークプリンタ１０５のステータスを監視して、監視に基づく結果をプリントマネージャ５２３に通知する。
【００４１】
印刷ジョブ制御システム用のサーバであるジョブ制御サーバ５３０は、個々のクライアント１０２〜１０４上のジョブ制御プリントサービス５２２がネットワークプリンタ１０５に印刷ジョブを送信するタイミングを集中制御（スケジューリング）している。印刷ジョブ制御システム用のマネージメントコンソール５３３（以降、マネージメントコンソールと略記）は、ＡＰＩを介して、ジョブ制御サーバ５３０と情報・指示をやり取りすることで、印刷ジョブ制御システム全体を監視することができる。
【００４２】
また、ジョブ制御サーバ５３０は、デバイス情報コントロールモジュール５３１を用いて各ネットワークプリンタ１０５と通信を行い、各ネットワークプリンタに対して発行された印刷ジョブやネットワークプリンタ１０５の動作状態に関する情報を入手したり、操作を行ったりする。入手した情報は、クライアント１０２〜１０４側のジョブ制御プリントサービス５２２に渡すことができる。
【００４３】
＜印刷処理システムの動作例＞
次に、印刷処理システムにおけるグループプリンタドライバ５０３からの印刷について説明する。
【００４４】
グループプリンタドライバ５０３は、アプリケーションプログラム５０１が生成した一連の描画コマンドをネットワークプリンタやＯＳの種類に依存しない中間形式データに変換する。この中間形式データは、スプーラ５０４からジョブ制御ポートモニタ５２１を経て（図５の矢印ａ）、中間形式ファイルとしてジョブ制御プリントサービス５２２に導かれる（図５の矢印ｂ）。
【００４５】
ジョブ制御プリントサービス５２２は、この印刷ジョブに対して行うジョブ制御の種類に応じて、中間形式ファイルをもとに描画コマンドを生成してＰＤＬドライバに渡す（図５の矢印ｃ）。そして、続けてＰＤＬドライバ５０２がその描画コマンドをネットワークプリンタ１０５が解釈可能なＰＤＬ形式のファイルにする。
【００４６】
図５では、ジョブ制御プリントサービス５２２で、この印刷ジョブに対してネットワークプリンタ１０５側のエラー等を検知して「代行印刷」を行う例を示しており、実線で示されるのは当初印刷を予定していた印刷ジョブであり、破線については代行印刷のために生成された印刷ジョブを示している（図５の矢印ｃ）。
【００４７】
ＰＤＬドライバ５０２で生成されたＰＤＬファイルはスプーラ５０４、ジョブ制御ポートモニタ５２１を経て（図５の矢印ｄ）、再びジョブ制御プリントサービス５２２に渡される（図５の矢印ｅ）。ジョブ制御プリントサービス５２２は、ジョブ制御サーバ５３０の指示に従ってＰＤＬファイルの印刷ジョブをネットワークプリンタ１０５に送信する（図５の矢印ｆ）。
【００４８】
ジョブ制御プリントサービス５２２は、中間形式ファイル中の印刷指示書の指示にしたがって、１つの中間形式ファイルを複数の印刷ジョブに論理的に分割してそれぞれ別のネットワークプリンタに送信したり、一度送信した印刷ジョブを別のネットワークプリンタに送信し直したりする。図５中に示す矢印ｃ、ｄ、ｅ、ｆはそのような場合の印刷ジョブの経路を示している。
【００４９】
＜中間形式ファイルの構成例＞
図６は、構築された中間形式ファイルの構成の一例を示した図である。本実施形態で使用される中間形式ファイルは、印刷指示部６ａ（前述の印刷指示書に相当）とドキュメントデータ部６ｂとからなる。印刷指示部６ａは、ドキュメントの情報と印刷指示とを記述した部分である。また、ドキュメントデータ部６ｂは、アプリケーションのドキュメントのデータを汎用的な形式のデータに変換したものであり、プリンタ言語やＯＳの種類に依存しない或は依存しにくい中間形式データとなっている。
【００５０】
中間形式データとしては、印刷リソースデータとして利用可能でかつワードプロセッサアプリケーション等により再度編集可能な形式のデータであることが必要とされ、実質的な標準形式のうち、例えば、ＸＭＬ形式や、ＷＩＮＤＯＷＳ（登録商標）システムにより提供されるＥＭＦ形式、Ａｄｏｂｅ  Ｓｙｓｔｅｍｓ  ＩｎｃｏｒｐｏｒａｔｅｄによるＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）形式、ＳＶＧ形式などがあげられる。
【００５１】
また、図示はされてはいないが、中間形式ファイルには、各メンバプリンタに対応したＤＥＶＭＯＤＥの設定も含まれているものとする。ＤＥＶＭＯＤＥの設定には共通及び拡張設定項目の双方が含まれる。
【００５２】
更に詳細に説明すると、印刷指示部６ａは、ヘッダ部６０１、ページ情報部６０２、ドキュメント属性部６０３、印刷体裁指示部６０４、出力方法指定部６０５、メンバプリンタ数６０６、メンバプリンタドライバ名６０７などから構成されている。
【００５３】
ヘッダ部６０１は、本ファイルのバージョン識別やファイル情報などの情報を格納する部分である。ページ情報部６０２は、ドキュメントデータ部６ｂのドキュメントデータのページ数、各ページのサイズなどの情報を格納する部分である。
【００５４】
印刷体裁指示部６０４は、グループプリンタドライバのＵＩや、メンバプリンタドライバの個別のＵＩを介して設定された印刷ページ範囲、印刷部数、ドキュメントデータの面付け情報（Ｎ−ＵＰや製本印刷など）、ステイプル指示やパンチ指示など、出力体裁に関する情報を格納する部分である。尚、ステイプル、パンチ指示については、ページ単位で指定（サブセットステイプ等）されることもある。尚、各メンバプリンタドライバの個別のＵＩを介して設定された内容は印刷指示部６０４に反映されると共に、各メンバプリンタに対応するＤＥＶＭＯＤＥにも反映させるために保存される。
【００５５】
出力方法指定部６０５は、出力方法として、代行印刷、通常印刷（代行しない印刷）などの出力方法に関する情報を格納する部分である。この出力方法指定部６０５に代行印刷が設定されている場合には、更に優先順位情報（第一候補、第二候補・・・）を付したプリンタ情報が含まれる。
【００５６】
メンバプリンタ数６０６は、グループプリンタに関連付けているメンバプリンタの数を格納する部分である。メンバプリンタドライバ名６０７は、メンバプリンタのプリンタドライバ名を格納する部分である。このメンバプリンタドライバ名６０７は、前述のメンバプリンタ数６０６の数だけの格納エリアを持っている。
【００５７】
前述の図５で説明したジョブ制御プリントサービス５２２では、中間形式データより中間形式ファイルを生成する際、グループプリンタドライバのユーザインタフェース上での設定を印刷指示部６ａへ記憶する。更に、グループプリンタドライバから受け取った中間形式データを、中間形式ファイルのドキュメントデータ部６ｂに記録する処理も、ジョブ制御プリントサービス５２２により実行される。
【００５８】
＜印刷ジョブの流れ＞
次に、図７を用いて印刷処理システムにおける印刷ジョブの流れをさらに詳しく述べる。ここで、図５と同じ機能は同じ参照番号を付与しており、その機能については詳説しない。
【００５９】
図７において、印刷ジョブ制御システム７００は、制御プログラムが動作するプリントサーバ１０１とクライアント１０２〜１０４の物理的なマシンをまたいだ、印刷ジョブ制御システムの範囲を示している。また、プリントサーバ１０１が管理しているアウトプットポート（Ｏｕｔｐｕｔ  Ｐｏｒｔ）７１１Ａ、７１１Ｂは、クライアント１０２〜１０４のジョブ制御プリントサービス５２２のプロキシアウトプットポート（Ｐｒｏｘｙ  Ｏｕｔｐｕｔ  Ｐｏｒｔ）７１２Ａ、７１２Ｂとそれぞれ関連付けられ、ひとつのポートに関連づけられた各クライアント（１０２〜１０４）上のプロキシアウトプットポートの全てを統一的に管理している。本実施形態では、実際の印刷ジョブは各々のクライアント（１０２〜１０４）のプリントキューを含むプロキシアウトプットポート７１２Ａ、７１２Ｂに保持される。
【００６０】
ジョブ制御サーバ５３０は、印刷データ自体の送信処理は行わず、ジョブ制御プリントサービス５２２に対して印刷ジョブの送信指示のみを行う。その指示に応じて、クライアント（１０２〜１０４）のジョブ制御プリントサービス５２２は印刷データをネットワークプリンタ１０５に送信する。
【００６１】
次に、印刷ジョブ制御システム７００が、代行印刷を行う場合の処理を説明する。
【００６２】
アプリケーション５０１がグループプリンタドライバ５０３に対応するグループプリンタに対して印刷指示を発行すると、ジョブ制御プリントサービス５２２は、グループプリンタドライバ５０３によって生成された中間形式データをジョブ制御ポートモニタ５２１を介して受け取る。ジョブ制御プリントサービス５２２は、この中間形式データより中間形式ファイルを構築し（図７の７１５）、先に説明した印刷指示部６ａの指示内容に従う印刷指示をデスプーラ（Ｄｅｓｐｏｏｌｅｒ）７０１に対して行う。そしてデスプーラ７０１を介してＰＤＬドライバ５０２が割り当てられた別のプリンタに印刷指示を発行する。これにより、各ＰＤＬドライバ５０２において、ＰＤＬファイルを実体とする印刷ジョブが生成される。この印刷ジョブをメンバジョブと称する。つまり、メンバジョブとは、グループプリンタドライバ５０３を経て中間形式ファイルに基づき生成したジョブを指す。また、複数のメンバジョブを束ねた印刷ジョブをグループジョブと呼ぶこともある。
【００６３】
このとき、デスプーラ７０１は、ジョブ制御プリントサービス５２２の印刷指示部６ａの解釈に基づく指示に応じて、ドキュメントデータ部６ｂのドキュメントデータを加工してＧＤＩに変換し、ＰＤＬドライバ５０２に対して印刷指示を行い、印刷ジョブを発行する。例えば、印刷体裁指定部６０４に２−ＵＰに相当する指示が記録されていた場合、用紙１枚に２ページ分のドキュメントデータを縮小レイアウトするようにＤＥＶＭＯＤＥを介してメンバプリンタに対して指示する。また、印刷体裁指定部６０４にステイプル指示がある場合にはＤＥＶＭＯＤＥを介してステイプルの指示を行う。また、代行印刷時には、印刷指示部６ａに記述されている代行先メンバプリンタに印刷ジョブを発行する。尚、２−ＵＰ等の縮小レイアウトを処理する場合にデスプーラ自身が印刷体裁指定部６０４の内容に基づき縮小レイアウトするようにして、メンバプリンタにはＤＥＶＭＯＤＥを介して１−ＵＰを指示するようにしても良い。
【００６４】
またデスプーラ７０１はメンバプリンタに印刷ジョブを発行する際、メンバプリンタのＰＤＬドライバに対応する印刷指示として、メンバプリンタのＤＥＶＭＯＤＥを作成する必要があるが、このＤＥＶＭＯＤＥは印刷指示部６ａ或いは各メンバプリンタに対応して保存されたＤＥＶＭＯＤＥに記載された内容を適宜各メンバプリンタのＤＥＶＭＯＤＥに反映させて生成する。
【００６５】
クライアント（１０２〜１０４）側のジョブ制御プリントサービス５２２は、ＰＤＬドライバ５０２によってレンダリングされたそれぞれのメンバジョブの印刷データをジョブ制御ポートモニタ５２１を介して受け取り、受け取った印刷ジョブをジョブ制御サーバ５３０側に知らせ、印刷ジョブのデータは自身のプロキシアウトプットポート７１２で一時保持する。その後、ジョブ制御サーバ５３０からの送信指示を受けた後にネットワークプリンタ１０５に送信する。
【００６６】
尚、ここでプロキシアウトプットポート７１２で一時保持される印刷ジョブのデータには、少なくとも印刷データと該印刷データの管理情報とが含まれる。この管理情報には、（Ａ）印刷データの格納場所のポインタ、（Ｂ）ジョブＩＤ、（Ｃ）中間形式ファイルから作成されたメンバジョブか否かを識別するためのメンバジョブフラグ、（Ｄ）プリンタ名、（Ｅ）どのような種別及びバージョンのプリンタ言語に対応するＰＤＬドライバかを識別するためのＰＤＬドライバ名称、（Ｆ）ポート名（プロキシアウトプットポート識別子）、（Ｇ）ネットワークプリンタを識別する際にも利用するＩＰアドレス、（Ｈ）ジョブ発行時刻、（Ｉ）ユーザ名、（Ｊ）ＰＤＬデータのファイル名、（Ｋ）ホストコンピュータ名、（Ｌ）両面やステイプルなどを含む印刷設定が少なくとも含まれる。（Ａ）〜（Ｌ）の各項目の情報は（１）管理情報に直接含めるようにしても良いし、（２）例えば、プリンタ名をパラメータに間接的に取得するようにしても良い。以下に説明する各フローチャートの各ステップにおいて、下の情報を取得する場合には、上記（１）、（２）の方法の何れかで行なっているものとする。
【００６７】
【表１】
2006072526.tif 000003
【００６８】
＜セットアッププログラムの構成＞
図８は印刷ジョブ制御プログラムのバージョンアップにあたり、印刷ジョブ制御プログラムをクライアント（１０２、１０３、１０４）またはサーバ１０１にインストールするためのセットアッププログラムのモジュール構成を示す図である（つまり、セットアッププログラムは情報処理装置（クライアント１０２〜１０４またはサーバ１０１）において実行される）。インストール全体制御モジュール８０１は印刷ジョブ制御プログラムのインストール処理全体を制御するモジュールであり、配下のインストールエンジン８０２、機能別設定プラグイン管理モジュール８０４を後述するように適宜呼び出して処理をさせる。
【００６９】
インストールエンジンモジュール８０２はインストールデータ／情報８０３から読み出したファイル（つまり、インストールされるソフトウェア。本実施形態にあっては印刷ジョブ制御プログラム）をターゲットシステム（印刷処理システム）中の所定の場所にコピーし、レジストリに書き込みを行う等の処理を行う。これらの処理の内容はインストールデータ／情報８０３が保持するファイル中で指定されている（ただし、インストール処理中にユーザがデフォルト設定をオーバーライドする指示を行うようにしてもよい）。
【００７０】
機能別設定プラグイン管理モジュール８０４は、新機能に関する設定処理全体を統括する。機能別設定制御モジュール（１）８０５、同（２）８０８、同（３）８１１は各新機能それぞれの設定処理を統括する。この機能別設定制御モジュールは、新に追加・拡張される機能について、プログインモジュールとクライアント外部から入力し、追加可能であり、以前には想定されていなかったような新機能に対しても柔軟に追加することができる。環境分析モジュール（１）８０６、同（２）８０９、同（３）８１２はそれぞれの新機能の設定が可能な環境か否かを調べる。設定実行モジュール（１）８０７、同（２）８１０、同（３）８１３は各新機能固有の具体的な設定を行う。ここで、セットアッププログラムのうち新機能に関する設定処理を行う各モジュールを、機能単位にプラグイン構成とすることで、以下のメリットが得られる。
【００７１】
・新機能の設定のユーザインタフェースを機能単位に独自に用意するのではなく、機能別設定プラグイン管理モジュール８０４に統括させているため、機能別設定プラグイン管理モジュール８０４が用意する一つのメイン画面から、Ｗｉｚａｒｄ型ユーザインタフェース画面を機能ごとに立ち上げるという枠組みを提供することが可能となり、その結果、統一感のあるユーザインタフェースが実現できる。
【００７２】
・上記のようなユーザインタフェースの全体の枠組みを機能別設定プラグイン管理モジュール８０４に用意させることで、各新機能については環境分析と設定実行というロジック部分の処理を主として担当することができ、セットアッププログラムの開発効率も向上する。
【００７３】
・インストールされるソフトウェアのバージョンアップを重ねていくごとに機能拡張していった場合でも、拡張された機能についてのモジュールを追加するだけで対応できるため、拡張性に優れている。
【００７４】
＜印刷ジョブ制御プログラムのインストール処理の流れ＞
次に図９のフローチャートを用いて、上記セットアッププログラムを用いて印刷ジョブ制御プログラムを印刷処理システムにインストールする場合の処理の内容をステップごとに説明する。
【００７５】
まずステップＳ９０１においてユーザあるいは別プロセスがインストール全体制御モジュール８０１を起動することにより、インストール処理が始まる。ここで、図８で説明した機能別設定制御モジュールもプラグインとして既にクライアントコンピュータに格納されているものとする。
【００７６】
ステップＳ９０２では、インストール全体制御モジュール８０１がインストールエンジンモジュール８０２を起動して、インストールデータ／情報８０３であるバージョンアップされた印刷ジョブ制御プログラムをインストールする。これにより印刷ジョブ制御プログラムが動作するのに最低限必要な環境は準備される。しかしながら、この時点では印刷ジョブ制御プログラムの設定は旧バージョンのものを引き継いでいるだけであり、新しく追加・拡張された機能に関してはインストール時のデフォルト状態にとどまっている。そのため、印刷ジョブ制御プログラムの新機能を十分に活用することができない。
【００７７】
そこで、続くステップＳ９０３以降、まず、ステップＳ９０１及び９０２においてインストールされた印刷ジョブ制御プログラムの追加・拡張された新機能が、インストールが行なわれたクライアントに反映できるか否かの判定を、上に説明したプラグイン管理モジュール８０４の処理に基づき行なう。また、ステップＳ９０１及びＳ９０２においてインストールされた印刷ジョブ制御プログラムのバージョンにおいて追加・拡張された機能についての設定を必要に応じて行う。
【００７８】
ステップＳ９０３では、インストール全体制御モジュール８０１は、新に印刷ジョブ制御プログラムがインストールされたことに応じて、機能別設定プラグイン管理モジュール８０４を起動する。また、機能別設定プラグインモジュール８０４を起動する際には、該起動をユーザに促し、ユーザの操作に応じて許容する旨の入力がユーザインタフェースを介して行なわれた場合にステップＳ９０４以降の処理に移行するようにしても良い。
【００７９】
ステップＳ９０４では、機能別設定プラグイン管理モジュール８０４が機能別設定制御モジュールを探す。ここでは、三種類の新機能についての機能別設定制御モジュール８０５、８０８、８１１が見出されることになる。
【００８０】
続いてステップＳ９０５では、各新機能を使用するために必要な設定処理を行わせるべく、機能別設定制御モジュールを１つずつ起動する。ステップＳ９０６では呼び出された機能別設定制御モジュール８０５（または、８０８、８１１）はその配下の環境分析モジュール（１）８０６（または、同（２）８０９、同（３）８１２）を呼び出し、印刷処理システムの環境分析を行わせる。ステップＳ９０７では、環境分析の結果に基づいて、当該印刷処理システムの環境において当該新機能を使用することが可能かどうかを判断する。
【００８１】
ステップＳ９０７において適用可能と判断された場合には、ステップＳ９０８に進み、機能別設定制御モジュール８０５（または８０８、８１１）は設定実行モジュール（１）８０７（または、同（２）８１０、同（３）８１３）を呼び出して、各機能固有の設定処理を行わせ、ステップＳ９０９に進む。一方、適用可能でないと判断された場合には、直接ステップＳ９０９に進む。
【００８２】
ステップＳ９０９では、全ての機能別設定制御モジュールを起動したかどうかを調べ、まだ残りがある場合はステップＳ９０５に戻って別の機能別設定制御モジュールを起動させ、当該機能についての設定を行う。残りがない場合は終了する。
【００８３】
ここで、ステップＳ１００７の判断によりＹＥＳと判断された場合に、ユーザに新機能をクライアントのソフトウェア環境に反映するか否かを問い合わせる表示（メッセージ）を行い、ユーザの操作に応じて反映を許容する旨の入力が行なわれた場合にステップＳ１００８以降の処理に以降するようにしても良い。尚、ユーザに許容しない旨の入力が行なわれた場合にはステップＳ９０９に処理を直接移せばよい。
【００８４】
また、全ての新機能についてＳ９０７の判断処理を行なった後に、ユーザのクライアントのソフトウェア環境に新たな機能の設定を反映さえるか否かを、ユーザの指示に応じて選択的に決定するようにしても良い。つまり、ステップＳ９０７でＹＥＳと判断された単数或いは複数の機能について、ステップＳ９０８において実行される設定を行なうか否かの選択画面を表示部に表示し、ユーザが設定画面を介して設定を指示すれば、設定を行なうようにしても良い。また、ステップＳ９０７において、複数の機能についてＹＥＳと判断された場合に機能毎にステップＳ９０７の設定を実行させるか否かをユーザに選択させるようにしても良い。
【００８５】
＜セットアッププログラムによる処理＞
以下、図９におけるフローチャートの処理をより具体的した、上述の印刷処理システムにおいて、印刷ジョブ制御プログラムをバージョンアップする場合のセットアッププログラムによる処理の内容を具体例を挙げてさらに詳細に説明する。
【００８６】
ここでは、印刷ジョブ制御プログラムのバージョンアップに伴う新機能として、サポート機種が追加された場合について述べる。
【００８７】
一般に、印刷ジョブ制御プログラムとネットワークプリンタの互いのリリース時期は同期しないか、あるいは同期してリリースされたとしても実際のネットワークプリンタ設置と印刷ジョブ制御プログラムのバージョンアップとの間には多かれ少なかれ時間のギャップが存在する。
【００８８】
このため、印刷ジョブ制御プログラムのバージョンアップに伴って、後からネットワークプリンタとしての登録が可能となったような場合には、ユーザは再度、設定作業を行わなければならない。
【００８９】
例えば、印刷ジョブ制御プログラムをバージョンアップする前にＭＦＰデバイス（多機能プリンタ：複写機としてもネットワークプリンタとしても使用できるデバイス）が設置され、まず複写機としてスタンドアローンの形で使用され、後からＭＦＰデバイスをサポート機種としている印刷ジョブ制御プログラムにバージョンアップされるといったケースは、その典型である。
【００９０】
このような場合、当該ＭＦＰデバイスがサポート機種として追加された印刷ジョブ制御プログラムをインストールするにあたり、本実施形態にかかるセットアッププログラムを用いることとすれば、当該ＭＦＰデバイスがすぐにネットワークプリンタとして使用できるようになり、ユーザの管理作業の手間が省け、利便性が向上する。
【００９１】
以下、サポート機種が追加された印刷ジョブ制御プログラムをインストールする場合について図１０を用いて説明する。
【００９２】
機能別設定制御モジュール８０４が起動されると、環境分析モジュール（１）８０５はネットワーク上に当該機種のデバイス（ネットワークプリンタ）が存在するかどうかを調べる。そのためにステップＳ１００１でまず新規サポート機種の機種名を取得する。この情報はバージョンアップされる印刷ジョブ制御プログラムが内部的に保持しているものを利用する。
【００９３】
ステップＳ１００２では印刷処理システムのネットワークにブロードキャストパケットを送信し、そのレスポンスをもとにデバイスの存在の有無を調べるといういわゆる「デバイス探索」を行う。デバイス探索を行うことで、ネットワーク上に存在するデバイスからは機種名、デバイス名、ＩＰアドレス、ＭＡＣアドレスが返ってくる。
【００９４】
ステップＳ１００３では、デバイス探索の結果見つかったデバイスの中に新規サポート機種のネットワークプリンタが存在するかどうかを調べる。存在しなければ当該機能別設定制御モジュール８０５の処理を終了する。
【００９５】
一方、新規サポート機種のネットワークプリンタが存在する場合には、ステップＳ１００４に進み、デバイス探索の結果見つかった複数の新規サポート機種のネットワークプリンタのうち、ユーザにより指示された１つのネットワークプリンタを選択する。
【００９６】
ステップＳ１００５では、当該選択されたネットワークプリンタで直接印刷できるよう、設定実行モジュール（１）８０７により、このネットワークプリンタのためのポート及びプリンタが作成される。
【００９７】
ステップＳ１００６では、ステップＳ１００３において探索された新規サポート機種のネットワークプリンタのうち、ステップＳ１００４において選択されていないネットワークプリンタがあるか否かを判定し、選択されていないネットワークプリンタがある場合には、ステップＳ１００４に戻る。一方、全ての新規サポート機種のネットワークプリンタについて選択された場合には、処理を終了する。
【００９８】
以上の説明から明らかなように、本実施形態によれば、印刷ジョブ制御プログラムのバージョンアップに伴い、新機能（新規サポート機種）の追加があった場合であっても、セットアッププログラムのプラグインが、当該印刷ジョブ制御プログラムがインストールされる印刷処理システムの環境を分析し、当該新機能の適用可否（新規サポート機種に対応するネットワークプリンタの存在有無）を判断したうえで、自動的にポート及びプリンタの設定処理を行うため、印刷ジョブ制御プログラムのバージョンアップ時のユーザの作業負荷を軽減させることが可能となる。
【００９９】
なお、本実施形態に類似の技術として、デバイスをＵＳＢケーブル等でコンピュータに接続すると、当該デバイスの機種に対応するプリンタドライバが自動的にダウンロードされ、インストールされるという技術がすでに知られているが、本実施形態はプリンタドライバ側の機能追加に伴ってなされる点で、当該既知の技術とは異なる。
【０１００】
また、すでに使用しているデバイスの装備情報が変化したことを検知してプリンタドライバ側の設定を自ら更新する技術がすでに知られている（例えば、デバイスに新たにフィニッシャユニットが取り付けられ、ステープル印刷が可能になったとき、プリンタドライバが持つ「ステープル機能」設定をオフからオンに変更する技術など）。しかし、かかる技術も、すでに内包していた機能の範囲で設定を変更しただけであって、プリンタドライバ自身の機能追加に伴って設定を更新したわけではないので、上述の場合と同様に本実施形態とは異なっていることは明らかである。
【０１０１】
［第２の実施形態］
上記第１の実施形態では、印刷ジョブ制御プログラムのバージョンアップに伴う新機能として、サポート機種が追加された場合の処理について述べた。ここで、上記第１の実施形態では、ＯＳを介して生成された描画命令がＰＤＬドライバに投入される場合に対応すべく（つまり直接印刷に対応すべく）、上記セットアッププログラムが各種設定を行うこととしたが、本発明はこれに限られず、ＯＳを介して生成された描画命令がグループプリンタドライバに投入されることを想定して、セットアッププログラムが各種設定を行う場合について図１１を用いて説明する。
【０１０２】
機能別設定制御モジュール８０５が起動されると、ステップＳ１１０１では、環境分析モジュール（１）８０６が新規サポート機種の機種名をバージョンアップされる印刷ジョブ制御プログラムから取得する。続いてステップＳ１１０２ではＯＳに登録済みのネットワークプリンタに関する情報（プリンタ名、機種名等）を取得する。
【０１０３】
さらに、ステップＳ１１０３ではＯＳに登録済みのネットワークプリンタの中に新規サポート機種のネットワークプリンタが存在するかどうかを調べ、存在する場合はステップＳ１１０４に進む。
【０１０４】
ステップＳ１１０４では、ＯＳにグループプリンタが登録されているかどうかを調べる。ステップＳ１１０４において、グループプリンタが登録されていると判定された場合には、ステップＳ１１０５に進み、設定実行モジュール（１）８０７は、そのうちの一つのグループプリンタを選択し、ステップＳ１１０６で新規サポート機種のネットワークプリンタについてプリンタを作成し、選択されたグループプリンタへ追加する処理を行う（追加すべきかどうかはダイアログを表示してユーザの判断に委ねる）。
【０１０５】
ステップＳ１１０７では、新規サポート機種のネットワークプリンタに対応するプリンタが追加されていないグループプリンタが存在するか否かを判定し、存在する場合にはステップＳ１１０５に戻る一方、すべてのグループプリンタに対して追加が完了したと判定された場合（あるいは、追加するか否かの指示がユーザからあった場合）には処理を終了する。
【０１０６】
このように、インストールされる印刷処理システムにおいて、すでに、グループプリンタが存在していた場合には、新規サポート機種のネットワークプリンタがそのメンバプリンタとしてユーザの指示に基づいて追加されることとなり、印刷ジョブ制御プログラムのバージョンアップ時のユーザの作業負荷を軽減させることが可能となる。
【０１０７】
［第３の実施形態］
上記第１、２の実施形態では、印刷ジョブ制御プログラムの新機能として新規サポート機種の追加があった場合について述べたが、本発明はこれに限られない。本実施形態では、印刷ジョブ制御プログラムの新機能としてＰＤＬ負荷分散機能が追加された場合について説明する。
【０１０８】
＜ＰＤＬ負荷分散機能の説明＞
はじめにＰＤＬ負荷分散機能について説明する。図７においてアプリケーション５０１からＰＤＬドライバ５０２に対して直接印刷ジョブ（直接印刷ジョブ）が投入された場合、当該投入されたＰＤＬドライバと同じ種類のＰＤＬドライバを持ったプリンタに直接印刷ジョブを移動させることが可能である。直接印刷ジョブの移動においては、印刷ジョブ制御システム７００は印刷ジョブの実体であるＰＤＬファイルをプロキシアウトプットポート７１２Ａ、７１２Ｂ間で移すことにより実現する。これは、一つの機種用のＰＤＬドライバによって生成されたＰＤＬファイルはそれとは異なる機種のデバイスで印刷しても結果が保証されないからである。
【０１０９】
印刷ジョブがメンバジョブの場合、ＰＤＬファイルを実体としていながらも、そのＰＤＬファイルの元になった中間形式ファイル７１６に基づく印刷データの変換を、移動先ネットワークプリンタに対応するＰＤＬドライバ５０２Ｂに行わせ、メンバジョブを再生成することができるため、印刷ジョブの移動先としては、移動先がメンバプリンタのプリントキューであるか否かだけを考えればよく、機種（ドライバの種類）の制約がない。
【０１１０】
更に、メンバジョブの移動方法には２通りの処理方法がある。１つ目は、移動先と移動元とのプリンタが同じ種類のネットワークプリンタに対応している場合であり、２つ目は移動先と移動元とのプリンタが異なる種類のネットワークプリンタに対応している場合である。特に後者のほうは、異なる種類のネットワークプリンタと対応しているアウトプットポート７１１Ａ、７１１Ｂやプロキシアウトプットポート７１２Ａ、７１２Ｂに関連付けられたプリンタ間の移動を可能とする。これは、図５における中間形式ファイル７１６から移動先のプリンタに割当てられているＰＤＬドライバ５０２を介して再度ＰＤＬデータ及びその管理情報を生成しなおしプリントキューに登録する処理に対応する。以降の説明においては、メンバジョブの移動に関して、同じ種類のプリンタが移動先となる場合には上記の何れの方法でも良いものとする。
【０１１１】
ただし、これらＰＤＬファイルを実体とした２種類の印刷ジョブのいずれの場合も、グループプリンタドライバ５０３を持ったグループプリンタのプリントキューへの移動は行えないものとする。また、グループプリンタ用に生成されたグループジョブは他のいかなるプリントキューへも移動できないものとする。
【０１１２】
そして、ＰＤＬファイルを実体とした直接印刷ジョブのプリンタ間における移動機能を利用した機能が以下に述べる「ＰＤＬ負荷分散印刷機能」である。
【０１１３】
ＰＤＬ負荷分散機能とは、印刷処理システムにおいて、ＰＤＬファイルを実体とした直接印刷ジョブのプリンタ間における移動機能の特徴を利用した機能である。
【０１１４】
上述のように直接印刷ジョブの場合、同じ種類のＰＤＬドライバを持ったプリンタにＰＤＬファイルの管理を移管することで移動処理が可能である。そこで、ある印刷ジョブを印刷しようとしているプリンタに関して、当該印刷ジョブより先に印刷すべきジョブがすでに存在するとき、同じ種類のＰＤＬドライバを持ったプリンタであってアイドル状態のものが他に利用可能な状態である場合に、当該印刷ジョブを後者のプリンタに移動して出力させることにより、二つのプリンタの利用効率を高めることができる。ここで注目すべき点は、この処理中、印刷ジョブの移動においては、基本的に移動前のプリンタのために作成されたＰＤＬファイルをそのまま利用でき、したがって処理が高速な点である。
【０１１５】
図１２を用いて「ＰＤＬ負荷分散印刷機能」について例示説明する。アプリケーションプログラム１２００がプリンタＡ（１２０１）に対して発行した印刷ジョブＪＢ（１２０９）はプリンタＡ中のプロキシアウトプットポート１２０４にキューイングされる。このとき、印刷ジョブＪＢ（１２０９）よりも前に印刷ジョブＪＡ（１２０７）が存在する。そこで、プリンタＡ（１２０１）のバックアッププリンタとして登録されているプリンタＢ（１２０２）、プリンタＣ（１２０３）のうちアイドル中かつ優先度の高いプリンタＢ（１２０２）のプロキシアウトプットポート１２０５に図中の矢印によって示されるように印刷ジョブＪＢ（１２０９）が移動される。こうしてできた新たな印刷ジョブＪＣ（１２１０）はネットワークプリンタＢ（１２１２）に転送され、印刷される。
【０１１６】
このようにＰＤＬ負荷分散印刷機能は、同一種類のＰＤＬドライバを持ったプリンタが複数利用可能な場合に適用が限定されるが、そのような印刷環境においては非常に有効な機能である。
【０１１７】
＜新機能としてＰＤＬ負荷分散機能が追加された印刷ジョブ制御プログラムをインストールする場合＞
バージョンアップされた印刷ジョブ制御プログラムにおいて新たにＰＤＬ負荷分散機能が追加された場合のセットアッププログラムの処理について説明する。図１３に、ＰＤＬ負荷分散機能がサポートされていない旧バージョンの印刷ジョブ制御プログラムとサポートされている新バージョンの印刷ジョブ制御プログラムにおける主な設定項目を示す。図１３からわかるように、旧バージョンの印刷ジョブ制御プログラムにおいてすでに直接印刷を行うプリンタが作成されていた場合において、新バージョンの印刷ジョブ制御プログラムをインストール後にＰＤＬ負荷分散機能を利用するためには、「出力方法」と「バックアッププリンタ」の設定を新たに行えばよい。図１４にその処理を示す。
【０１１８】
ステップＳ１４０１では、環境分析モジュール（２）８０９が、まずＯＳに登録されているプリンタの情報（プリンタ名、プリンタドライバ名等）を取得する。次にステップＳ１４０２で同一のＰＤＬドライバを用いたプリンタが複数存在するかどうかを調べる。存在しない場合は当該機能別設定処理を終了する。
【０１１９】
一方、同一のＰＤＬドライバを用いたプリンタが複数存在する場合は、ステップＳ１４０３において、設定実行モジュール（２）８１０がその中からプリンタ一つを選択し、続いてステップＳ１４０４で当該選択したプリンタのバックアッププリンタとして、同一ＰＤＬドライバを用いたその他のプリンタを登録する。同時に出力方法を「負荷分散」に設定する。
【０１２０】
なお、ステップＳ１４０３からＳ１４０４にかけての処理は全て自動的に行ってもよいが、その場合、必ずしもユーザが望むようなバックアッププリンタ構成になるとは限らない。そこでダイアログを表示して、設定実行モジュール（２）８１０が選択するプリンタおよびバックアッププリンタとして登録するプリンタをユーザが指示できるようにしてもよい。
【０１２１】
以上の説明から明らかなように、本実施形態によれば、バージョンアップされる印刷ジョブ制御プログラムにおいて新機能としてＰＤＬ負荷分散機能が追加された場合であっても、環境分析モジュールがプリンタの情報を取得、解析し、設定実行モジュールが所定の設定項目を設定するため、当該印刷ジョブ制御プログラムインストール時のユーザの設定作業が軽減される。
【０１２２】
［第４の実施形態］
本実施形態では、印刷ジョブ制御プログラムの新機能としてデバイス組込みサーバ機能が追加された場合のインストールプログラムの処理について説明する。
【０１２３】
＜印刷態様についての説明＞
一般に、プリンタドライバは、いくつかの印刷態様の異なる構成で運用することが可能である。図１５は、印刷態様の異なる３つの構成（（Ａ）〜（Ｃ）））を模式的に示したものである。
【０１２４】
構成（Ａ）は、各クライアント（１５０１、１５０２）で発行された印刷ジョブ（１５０５乃至１５０８）が互いに協調することなく無秩序にネットワークプリンタ１５０９に対して転送され印刷される様子を示したものである。
【０１２５】
構成（Ａ）によれば、ある印刷ジョブ（例えば、印刷ジョブ１５０５、１５０６）を他の印刷ジョブ（例えば、印刷ジョブ１５０７、１５０８）の転送中に行おうとするなどの無駄が生じたり、一部のネットワークプリンタに負荷が偏ったりするといった現象が発生し、複数のネットワークプリンタの効率的な利用を図ることが難しい。また、ネットワークプリンタ内の印刷ジョブやネットワークプリンタそのものの状態に関する情報をそれぞれのクライアント１５０１、１５０２がネットワークプリンタ１５０９と通信して取得するため、クライアント数が増大するにつれてネットワークプリンタの負荷が非常に高くなるといった問題がある。
【０１２６】
これに対して構成（Ｂ）では、印刷ジョブ制御プログラムのサーバ１５１９が存在する。各クライアント１５１０、１５１１は印刷ジョブが発行されるとそれをサーバ１５１９に登録する。サーバ１５１９は内部のテーブル１５２０に印刷ジョブの情報を保持し、次にネットワークプリンタ１５１８に転送すべき印刷ジョブをその情報をもとに決定し、当該印刷ジョブの発行元であるクライアント（図１５では１５１０）に対して送信指示を送る。
【０１２７】
また、ネットワークプリンタ１５１８の状態情報を取得して各クライアント１５１０、１５１１に通知する役割を担う。この方法によると、構成（Ａ）の欠点であったネットワークプリンタとクライアント間の頻繁な情報伝達が整理され、ネットワークプリンタの負荷が低く抑えられるようになる。また、サーバ１５１９が各クライアントからネットワークプリンタ１５１８に出力される印刷ジョブの情報や出力タイミングを一元的に制御・掌握できるため、それを利用した機能を実現することも可能になる。
【０１２８】
一方、構成（Ｃ）では、構成（Ｂ）でサーバ１５１９が担っていた役割をネットワークプリンタ１５２９内部で動作するサーバ（ネットワークインタフェースカード（以後、ＮＩＣと略す）上で動作するアプリケーションとする）が担っており、また、クライアント１５２１、１５２２の印刷ジョブ制御プログラムには、かかる構成に対応するための「デバイス組込みサーバ機能」が備えられている。すなわち、ネットワークプリンタ１５２９で印刷すべき印刷ジョブ（１５２５乃至１５２８）がクライアント１５２１、１５２２で発行されると、クライアント１５２１、１５２２はその印刷ジョブ（１５２５乃至１５２８）を当該ネットワークプリンタ１５２９内部で動作しているＮＩＣに登録する。以下は構成（Ｂ）と同様である。この方法によると、構成（Ｂ）の利点を継承しつつ、サーバ１５１９を用意する必要がないというメリットがある。
【０１２９】
図１６は、各構成における印刷ジョブ制御プログラムの主な設定情報を示す表である。各構成とも、印刷ジョブを送信する先のデバイスアドレスには、ＮＩＣに割り当てられたＩＰアドレスを設定する点は共通である。ポート名の形式は構成（Ａ）の場合は文字種、長さ等についての所定の範囲内で任意であるが、構成（Ｂ）の場合はポート名＠サーバのＩＰアドレスまたはホスト名の形をとる必要がある。ここで「ポート名」は、＠マーク以下によって示されたサーバに登録されているポートの名前に限られる。一方、構成（Ｃ）の場合は、図１５に示した構成をとる場合は、＠マーク以下がサーバではなく、印刷を行うネットワークプリンタのＮＩＣのアドレスまたはホスト名を指定する。さらに構成（Ｃ）の場合だけサーバモードの設定を行う必要があり、図１５に示した構成をとる場合は「ネットワークプリンタ１５２９」を選択する。もし構成（Ｂ）と同様の構成での運用を望むならば、「サーバ１５１９」を選択すればよい。
【０１３０】
＜新機能としてデバイス組込みサーバ機能が印刷ジョブ制御プログラムに追加された場合＞
本実施形態では、旧バージョンの印刷ジョブ制御プログラムが構成（Ａ）で動作していたところに、構成（Ｃ）を新たにサポートした印刷ジョブ制御プログラムをインストールする場合について説明する。この場合のインストール時のセットアッププログラムの処理を示したのが図１７である。
【０１３１】
まずステップＳ１７０１において、環境分析モジュール（３）８１２がＯＳに登録されているポートを列挙し、ステップＳ１７０２においてその中にバージョンアップされた印刷ジョブ制御プログラムに固有のポートが存在するかどうかを調べる。存在しない場合は当該機能設定処理を終了する。
【０１３２】
一方、インストールされる印刷ジョブ制御プログラムに固有のポートが存在する場合は、ステップＳ１７０３においてそれらの各々が対応付けられているネットワークプリンタに関する情報を取得する。次にステップＳ１７０４で、それらのネットワークプリンタの中に構成（Ｃ）を可能とする新型ＮＩＣを搭載するネットワークプリンタが存在するかどうかを調べる。存在しない場合は当該機能設定処理を終了する。
【０１３３】
一方、存在する場合は、設定実行モジュール（３）８１３が、ステップＳ１７０５において新型ＮＩＣ搭載のネットワークプリンタを一つ選び、ステップＳ１７０６で、そのＮＩＣ上で当該印刷ジョブ制御プログラムのサーバモジュールが動作しているかどうかを調べる。ステップＳ１７０７においてサーバモジュールが動作していないと判断された場合にはステップＳ１７０９に進む。動作していると判断された場合は、当該構成（Ａ）のポートの設定を図１６の右端カラムに示したように変更する。これにより、バージョンアップ前には構成（Ａ）で使用していたネットワークプリンタが、バージョンアップ後は自動的に構成（Ｃ）で使用できるようになる。
【０１３４】
以上の説明から明らかなように、本実施形態によれば、バージョンアップされる印刷ジョブ制御プログラムにおいて新機能としてデバイス組込みサーバ機能が追加された場合であっても、環境分析モジュールがネットワークプリンタの情報を取得、解析し、設定実行モジュールが所定の設定項目を設定するため、当該印刷ジョブ制御プログラムインストール時のユーザの設定作業が軽減される。
【０１３５】
［第５の実施形態］
上記各実施形態では、新機能としてサポート機種の追加と、ＰＤＬ負荷分散機能の追加、ならびにデバイス組込みサーバ機能の追加について説明したが、本発明の適用範囲は上記各実施形態において例示した新機能に限定されるわけではなく、また特定の組合せや個数を要求するものでもない。また、上記各実施形態では、インストールされるソフトウェアとしてバージョンアップされた印刷ジョブ制御プログラムについて述べてきたが、本発明の適用範囲はそれらに限定されるわけではなく、設定により新たな機能が使用できるようになるソフトウェアまで含めてより広く解されるべきである。さらに、ソフトウェアがインストールされる対象は、印刷処理システムに限定されないことはいうまでもない。
【０１３６】
［他の実施形態］
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【０１３７】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【０１３８】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１３９】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピ（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【０１４０】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１４１】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【０１４２】
【図１】印刷処理システムの構成を説明する図である。
【図２】コンピュータの構成を説明するブロック図である。
【図３】ＲＡＭのメモリマップの一例を示す図である。
【図４】ＦＤのメモリマップの一例を示す図である。
【図５】印刷処理システムにおけるソフトウェア構成を示す図である。
【図６】構築された中間形式ファイルの構成の一例を示した図である。
【図７】印刷処理システムにおける印刷ジョブの流れを示す図である。
【図８】印刷ジョブ制御プログラムをクライアントまたはサーバにインストールするためのセットアッププログラムのモジュール構成を示す図である。
【図９】セットアッププログラムを用いて印刷ジョブ制御プログラムを印刷処理システムにインストールする場合の処理の流れを示す図である。
【図１０】サポート機種が追加された印刷ジョブ制御プログラムをインストールする場合の処理の流れを示す図である。
【図１１】サポート機種が追加された印刷ジョブ制御プログラムをインストールする場合の処理の流れを示す図である。
【図１２】ＰＤＬ負荷分散印刷機能を説明するための図である。
【図１３】ＰＤＬ負荷分散機能がサポートされていない旧バージョンの印刷ジョブ制御プログラムとサポートされている新バージョンの印刷ジョブ制御プログラムにおける主な設定項目の一例を示す図である。
【図１４】旧バージョンの印刷ジョブ制御プログラムにおいてすでに直接印刷を行うプリンタが作成されていた場合において、新バージョンの印刷ジョブ制御プログラムをインストール後にＰＤＬ負荷分散機能を利用するための処理の流れを示す図である。
【図１５】印刷態様の異なる３つの構成（（Ａ）〜（Ｃ）））を模式的に示した図である。
【図１６】各構成における印刷ジョブ制御プログラムの主な設定情報を示す図である。
【図１７】旧バージョンの印刷ジョブ制御プログラムが構成（Ａ）で動作していたところに、構成（Ｃ）を新たにサポートした印刷ジョブ制御プログラムをインストールする場合の処理の流れを示す図である。
【図１】
2006072526.tif 000004
【図２】
2006072526.tif 000005
【図３】
2006072526.tif 000006
【図４】
2006072526.tif 000007
【図５】
2006072526.tif 000008
【図６】
2006072526.tif 000009
【図７】
2006072526.tif 000010
【図８】
2006072526.tif 000011
【図９】
2006072526.tif 000012
【図１０】
2006072526.tif 000013
【図１１】
2006072526.tif 000014
【図１２】
2006072526.tif 000015
【図１３】
2006072526.tif 000016
【図１４】
2006072526.tif 000017
【図１５】
2006072526.tif 000018
【図１６】
2006072526.tif 000019
【図１７】
2006072526.tif 000020