(57)【要約】【課題】  アクセスが制約され得るようなモジュールにデータの受け渡しの機能を設ける場合でも、その制約がある期間にもモジュール間でのデータの受け渡しを行えるようにする。【解決手段】  渡された設定情報を保持し所定の通知を受信した場合にその保持した設定情報をその通知の送信元に渡すデータ保持部１８０と、データ保持部１８０に対して上記所定の通知を送信してデータ保持部１８０が保持する設定情報を取得し、その設定情報を保存領域１９０に保存する第２ランゲージモニタ１６０と、上記設定情報をデータ保持部１８０に渡して保持させるＵＩ部１２１と、保存領域１９０に保存されている設定情報を取得してその設定情報に従って処理を行う描画部１２２とを設けた。【選択図】        図３
2015176547.tif 000002
【特許請求の範囲】
【請求項１】
渡された第１データを保持し所定の通知を受信した場合に該保持した第１データを該通知の送信元に渡すデータ保持手段と、
前記データ保持手段に対して前記所定の通知を送信して前記データ保持手段が保持する前記第１データを取得し、そのデータを所定の保存位置に保存する第１処理手段と、
前記第１データを前記データ保持手段に渡して保持させる第２処理手段と、
前記保存位置に保存されている前記第１データを取得してその第１データに従って処理を行う第３処理手段とを備えたことを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記第１処理手段と同時に動作させることが禁止されている第４処理手段を備え、
前記第２処理手段は、前記第１データを前記第４処理手段に保持させることができない場合に、該第１データを前記データ保持手段に渡して保持させることを特徴とする情報処理装置。
【請求項３】
請求項１又は２に記載の情報処理装置であって、
前記第１データが印刷設定であることを特徴とする情報処理装置。
【請求項４】
請求項１乃至３のいずれか一項に記載の情報処理装置であって、
前記第１処理手段がランゲージモニタであり、
前記第２処理手段がプリンタドライバの印刷設定受付手段であり、
前記第３処理手段がプリンタドライバの描画手段であることを特徴とする情報処理装置。
【請求項５】
渡された第１データを保持し所定の通知を受信した場合に該保持した第１データを該通知の送信元に渡すデータ保持手段と、
前記データ保持手段に対して前記所定の通知を送信して前記データ保持手段が保持する前記第１データを取得し、そのデータを所定の保存位置に保存する第１処理手段と、
前記第１データを前記データ保持手段に渡して保持させる第２処理手段と、
前記保存位置に保存されている前記第１データを取得してその第１データに従って処理を行う第３処理手段とを備えたことを特徴とする情報処理システム。
【請求項６】
コンピュータを、
渡された第１データを保持し所定の通知を受信した場合に該保持した第１データを該通知の送信元に渡すデータ保持手段に前記第１データを渡して保持させる第２処理手段と、
所定の保存位置に保存されている前記第１データを取得してその第１データに従って処理を行い、その処理後のデータを、第４処理手段を介して画像処理装置に送信する第３処理手段と、
第１処理手段と同時に動作させることが禁止されている前記第４処理手段として機能させるための第１プログラムと、
前記コンピュータを、
前記データ保持手段に対して前記所定の通知を送信して前記データ保持手段が保持する前記第１データを取得し、そのデータを前記所定の保存位置に保存する前記第１処理手段と、
データを処理し、その処理後のデータを前記第１処理手段を介して画像処理装置に送信する第５処理手段として機能させるための第２プログラムと、
前記第３処理手段又は前記第５処理手段により送信されたデータに基づき画像処理を行う画像処理装置とを備えることを特徴とする画像処理システム。
【請求項７】
渡された第１データを保持するデータ保持手段が、所定の通知を受信した場合に該保持した第１データを該通知の送信元に渡すデータ保持手順と、
前記データ保持手段に対して前記所定の通知を送信して前記データ保持手段が保持する前記第１データを取得し、そのデータを所定の保存位置に保存する第１処理手順と、
前記第１データを前記データ保持手段に渡して保持させる第２処理手順と、
前記保存位置に保存されている前記第１データを取得してその第１データに従って処理を行う第３処理手順とを備えたことを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、情報処理装置、情報処理システム、画像処理システム、及び情報処理方法に関する。
【背景技術】
【０００２】
従来から、ＰＣ（パーソナルコンピュータ）等の情報処理装置において、複数の処理モジュール間でデータの受け渡しを行うことが広く行われている。例えば、プリンタドライバにおいてユーザインタフェース（ＵＩ）の制御を行うＵＩ部と、描画処理を行う描画部との間で、ＵＩ部が受け付けた印刷設定に関する情報を受け渡す等である。このことにより、描画部は、ＵＩが受け付けた印刷設定に従って、アプリケーションから受け取った印刷内容を示すデータに対し描画処理を行い、プリンタに印刷を実行させるための印刷データを生成することができる。
【０００３】
このような印刷に関する技術として、特許文献１には、ユーザがアプリケーション上で印刷命令を出した後に、印刷設定確認のための簡易確認画面表示を出力し、ユーザに印刷設定を変更させることを可能にする構成が開示されている。印刷設定を変更する前にアプリケーションで印刷開始指示を出してしまうと、あらかじめ設定され保持されている印刷設定で出力されてしまい、ユーザの意図とは異なる設定で印刷されてしまう。特許文献１に記載の技術は、これを回避し、ユーザの所望した出力結果を得られる設定で印刷できるようにすることを目的としたものである。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、上記のようなデータの受け渡しは、データを渡す側と受け取る側以外の第３のモジュールを介して行うこともある。このようにすれば、データを渡す側のモジュールと受け取る側のモジュールとが相互に通信を行う機能を持っていなくても、データの受け渡しが可能である。このような手法は、ＯＳ（オペレーティングシステム）の仕様上の制約により相互の通信が制約されているモジュール間でデータの受け渡しを行う場合に有効である。
【０００５】
しかし、上記のように第３のモジュールを用いる場合でも、データを渡す側又は受け取る側のモジュールからその第３のモジュールに対するアクセスが制約されてしまうと、データの受け渡しができなくなってしまう。一方で、システムの設計上の都合から、ＯＳの仕様により場合によってアクセスが制約され得るようなモジュールに、データの受け渡しの機能を設けたい場合もある。
【０００６】
この発明は、このような事情に鑑みてなされたものであり、アクセスが制約され得るようなモジュールにデータの受け渡しの機能を設ける場合でも、その制約がある期間にもモジュール間でのデータの受け渡しを行えるようにすることを目的とする。
なお、このデータ受け渡しは、上述した印刷に関するものには限らない。
【課題を解決するための手段】
【０００７】
以上の目的を達成するため、この発明は、情報処理装置において、渡された第１データを保持し所定の通知を受信した場合にその保持した第１データをその通知の送信元に渡すデータ保持手段と、上記データ保持手段に対して上記所定の通知を送信して上記データ保持手段が保持する上記第１データを取得し、そのデータを所定の保存位置に保存する第１処理手段と、上記第１データを上記データ保持手段に渡して保持させる第２処理手段と、上記保存位置に保存されている上記第１データを取得してその第１データに従って処理を行う第３処理手段とを設けたものである。
【発明の効果】
【０００８】
上記構成によれば、アクセスが制約され得るようなモジュールにデータの受け渡しの機能を設ける場合でも、その制約がある期間にもモジュール間でのデータの受け渡しを行えるようにすることができる。
【図面の簡単な説明】
【０００９】
【図１】この発明の一実施形態であるＰＣを含む画像形成システムの構成を示す図である。
【図２】図１に示したＰＣのハードウェア構成を示す図である。
【図３】図１に示したＰＣの機能構成を示す図である。
【図４】図３に示した第２ランゲージモニタの機能構成を示す図である。
【図５】処理中の印刷データがない状態でアプリケーションが第２プリンタドライバを用いた印刷の実行を指示された場合のＰＣ１０の動作を示す図である。
【図６】図５の動作により第２ランゲージモニタを使用中に、アプリケーションが第１プリンタドライバを用いた印刷の実行を指示された場合のＰＣ１０の動作を示す図である。
【図７】第２ランゲージモニタが所定の通知を送信するために用いる関数の例を示す図である。
【図８】データ処理部が所定の通知を処理するために用いる関数の例を示す図である。
【図９】第１プリンタドライバ及び第２プリンタドライバが取り扱う設定情報の例を示す図である。
【図１０】第１参考例のＰＣの機能構成を示す、図３と対応する図である。
【図１１】第２参考例のＰＣの機能構成を示す、図３と対応する図である。
【図１２】第２参考例の問題点について説明するための図である。
【図１３】第１実施形態の変形例におけるＰＣの機能構成を示す、図３と対応する図である。
【図１４】第２実施形態における画像形成システムの構成を示す図である。
【図１５】サーバサイドレンダリングのポイントアンドプリント機能を利用した場合のプリンティングシナリオを示す図である。
【図１６】ポイントアンドプリント機能による印刷の場合に動作するモジュールについて説明するための図である。
【図１７】第２実施形態におけるクライアントＰＣとサーバＰＣの機能構成を示す、図３と対応する図である。
【図１８】第２実施形態においてクライアントＰＣ及びサーバＰＣの各部が行う印刷実行時の動作を示す図である。
【図１９】第３参考例のクライアントＰＣ及びサーバＰＣの機能構成を示す、図１７と対応する図である。
【図２０】第３参考例の問題点について説明するための図である。
【発明を実施するための形態】
【００１０】
以下、この発明を実施するための形態について、具体的に説明する。
〔第１実施形態：図１乃至図９〕
まず、この発明の第１実施形態について説明する。
図１に、この発明の一実施形態であるＰＣを含む画像形成システムの構成を示す。
図１に示す画像形成システムは、複数のＰＣ１０（図１では２台のＰＣ１０−１，２）と、プリンタ２０とを、ネットワーク３０により相互に通信可能なように接続したものである。
【００１１】
このうちプリンタ２０は、ＰＣ１０から送信される印刷データに基づき印刷を行って用紙に画像を形成する画像処理装置である。なお、プリンタ２０は、印刷以外の機能を兼ね備えた画像処理装置であってもよい。例えば、プリンタ２０を、スキャン、コピー、ファクシミリ通信、文書蓄積等の機能を備えたＭＦＰ（デジタル複合機）として構成することが考えられる。
【００１２】
ＰＣ１０は、プリンタ２０を制御するためのプリンタドライバが複数インストールされた情報処理装置である。そして、プリンタドライバの機能により、ユーザから印刷に用いる設定を受け付けると共に、アプリケーションが出力した印刷ジョブの実行要求に基づき、受け付けた設定に従って印刷データを生成する機能を備える。また、その生成した印刷データを後述する通信機能によりプリンタ２０に送信して画像形成を実行させる機能を備える。個体を特定する必要がない場合にはＰＣ１０の符号を用いる。
【００１３】
また、ネットワーク３０は、有線無線を問わず、任意の規格のものを使用可能である。また、プリンタ２０の全部又は一部が、ネットワーク３０を介さずにＰＣ１０のローカルのプリンタポートに接続されていても構わない。
【００１４】
次に、図２に、ＰＣ１０のハードウェア構成を示す。
ＰＣ１０は、ハードウェアとしては一般的なコンピュータでよい。すなわち、ＰＣ１０は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、ＨＤＤ（ハードディスクドライブ）１４、通信Ｉ／Ｆ（インタフェース）１５、表示部１６、及び操作部１７を備え、それらをシステムバス１８により接続した構成としている。
【００１５】
そして、ＣＰＵ１１が、ＲＡＭ１３をワークエリアとしてＲＯＭ１２又はＨＤＤ１４に記憶されたプログラムを実行することにより、ＰＣ１０全体を制御し、図３を用いて後述するものをはじめとする各種機能を実現する。
ＨＤＤ１４は、不揮発性記憶媒体（記憶手段）であり、ＣＰＵ１１が実行する各種プログラムや後述する各種データを格納している。
通信Ｉ／Ｆ１５は、プリンタ２０をはじめとする外部装置と通信するためのインタフェースである。使用する通信規格は、有線、無線を問わず、任意でよい。
【００１６】
表示部１６は、ディスプレイ等の、オペレータに情報を提示するための表示手段である。
操作部１７は、キーボード、マウス、タッチパネル等の、オペレータから操作を受け付けるための操作手段である。
なお、表示部１６や操作部１７が外付けであったり、ＰＣ１０がネットワークを介して外部の端末装置から操作を受け付けることができるようにしたりしてもよい。
【００１７】
次に、図３に、ＰＣ１０の機能構成を示す。この実施形態において特徴的な点は、プリンタドライバのＵＩ部と描画部との間で設定情報（第１データに該当する）を受け渡すための構成であり、図３にはこれに関係する機能を中心に示した。また、図３に示す機能は、ＣＰＵ１１が所要のプログラムを実行して図２に示した各種ハードウェアを制御することにより実現されるものである。特に、第１プリンタドライバ１２０及び第１ランゲージモニタ１５０の機能を実現するためのプログラムが第１プログラムであり、第２プリンタドライバ１３０及び第２ランゲージモニタ１６０の機能を実現するためのプログラムが第２プログラムである。
【００１８】
図３に示すように、ＰＣ１０は、アプリケーション１１０、第１プリンタドライバ１２０、第２プリンタドライバ１３０、スプーラ１４０、第１ランゲージモニタ１５０、第２ランゲージモニタ１６０、ポートモニタ１７０、データ保持部１８０及び保存領域１９０を備える。
【００１９】
このうちアプリケーション１１０は、アプリケーションソフトウェアにより実現される機能であり、ユーザの操作に従って文書を編集又は操作する機能を備える。このアプリケーション１１０が実現する機能としては、ワードプロセッサ、画像作成・編集・加工、表計算等が考えられる。
そして、アプリケーション１１０は、ユーザの操作に従い又は自動的に、印刷に使用するものとして選択されているプリンタドライバ（ここでは第１プリンタドライバ１２０又は第２プリンタドライバ１３０とする）に対し、編集中の文書を印刷する印刷ジョブの実行要求を行う機能を備える。この実行要求には、印刷すべき画像の内容を示すデータが含まれる。
【００２０】
また、アプリケーション１１０は、選択されているプリンタドライバのＵＩ部に対し、印刷設定を行うためのＵＩの提供を要求する機能を備える。ＵＩ部は、この要求に応じて印刷設定を受け付けるためのＵＩを表示部１６に表示させ、そのＵＩにて受け付けた印刷設定（のデータ）を、後で印刷時に使用するために設定情報として保持する。また、この設定情報は、アプリケーション１１０が保持し、印刷ジョブの実行要求と共にプリンタドライバに渡すことも考えられる。なお、図３では、第１プリンタドライバ１２０のみにＵＩ部１２１を示しているが、第２プリンタドライバ１３０もＵＩ部を備える。
【００２１】
次に、第１プリンタドライバ１２０は、ＵＩ部１２１と描画部１２２を備える。
このうちＵＩ部１２１は、第２処理手段である印刷設定受付手段であり、上記のように印刷設定を受け付けるためのＵＩを制御すると共に、設定情報を保持する機能を備える。また、ＵＩ部１２１は、第１プリンタドライバ１２０がアプリケーション１１０から印刷ジョブの実行要求を受けた場合に、印刷に使用する設定情報を、第１プリンタドライバ１２０と対応するランゲージモニタである第１ランゲージモニタ１５０に渡して保持させる機能を備える。また、後述のように、第１ランゲージモニタ１５０にアクセスできない場合には、設定情報をデータ保持部１８０に渡して保持させる（登録する）機能を備える。
【００２２】
描画部１２２は、第３処理手段である描画手段であり、アプリケーション１１０から渡される、印刷すべき画像の内容のデータに基づき描画処理を行って、第１プリンタドライバ１２０と対応付けられているプリンタ２０に印刷を実行させるための印刷データを生成する機能を備える。そして、生成した印刷データをスプーラ１４０に送信することにより、その印刷データをプリンタ２０への送信を待つ状態とする機能を備える。
【００２３】
また、描画部１２２は、上記の描画処理を設定情報に従って行うが、参照すべき設定情報は、まず、第１ランゲージモニタ１５０にアクセスして、ＵＩ部１２１が第１ランゲージモニタ１５０に保持させたものを取得することを試みる。しかし、上述のようにＵＩ部１２１が第１ランゲージモニタ１５０に設定情報を保持させることができない場合がある。このような場合、保存領域１９０に定期的にアクセスして、この保存領域１９０に保存されている設定情報を取得する。これは、後述のように、ＵＩ部１２１がデータ保持部１８０に保持させ、第２ランゲージモニタ１６０が取得して保存領域１９０に保存した設定情報を取得することに該当する。
【００２４】
次に、第２プリンタドライバ１３０も、第１プリンタドライバ１２０と上述した範囲では同様な機能のＵＩ部及び描画部を備える。対応付けられているプリンタもプリンタ２０で共通であるが、対応するページ記述言語が異なり、ユーザの好みで第１プリンタドライバ１２０と使い分けられるように設けたものである。
【００２５】
スプーラ１４０は、各プリンタドライバ１２０，１３０から送信される印刷データをスプールし、先にスプールした印刷データから順に、送信元プリンタドライバと対応するランゲージモニタに順番に送信する機能を備える。
【００２６】
第１ランゲージモニタ１５０は、第４処理手段であり、第１プリンタドライバ１２０と対応するランゲージモニタである。そして、プリンタ２０における印刷データの処理状況を参照しつつ、スプーラ１４０から送信される印刷データを適切な速度及びタイミングでプリンタ２０に送信すべくポートモニタ１７０に送信する機能を備える。また、第１プリンタドライバ１２０のＵＩ部１２１から設定情報を受け取って保持する機能と、その保持した設定情報を第１プリンタドライバ１２０の描画部１２２からの要求に従って描画部１２２に渡す機能を備える。すなわち、ＵＩ部１２１と描画部１２２との間での設定情報の受け渡しを仲介する機能を備える。
【００２７】
また、第２ランゲージモニタ１６０は、第１処理手段であり、第２プリンタドライバ１３０と対応するランゲージモニタである。そして、第１ランゲージモニタ１５０と同じく、プリンタ２０における印刷データの処理状況を参照しつつ、スプーラ１４０から送信される印刷データを適切な速度及びタイミングでプリンタ２０に送信すべくポートモニタ１７０に送信する機能を備える。なお、ポートモニタ１７０に印刷データをプリンタ２０へ送信させる際に用いるポートも、第１ランゲージモニタ１５０と共通である。
【００２８】
また、第２ランゲージモニタ１６０は、第２プリンタドライバ１３０のＵＩ部から設定情報を受け取って保持する機能と、その保持した設定情報を第２プリンタドライバ１３０の描画部からの要求に従ってその描画部に渡す機能を備える。すなわち、第２プリンタドライバ１３０のＵＩ部と描画部との間での設定情報の受け渡しを仲介する機能を備える。
ポートモニタ１７０は、プリンタポートと対応して設けられ、第１ランゲージモニタ１５０又は第２ランゲージモニタ１６０から渡された印刷データを、対応するプリンタポートを通じてプリンタ２０へ送信する機能を備える。
【００２９】
ところで、ＰＣ１０が備えるＯＳ（ここではＷｉｎｄｏｗｓ（登録商標）とする）の制約により、あるランゲージモニタを使用中には、そのランゲージモニタと同じポートを利用する他のランゲージモニタにアクセスすることが禁止されている。「同じポートを利用」とは、ポートモニタ１７０に印刷データをプリンタ２０へ送信させる際に使用するプリンタポートが同じであることをいう。従って、例えばスプーラ１４０が第２プリンタドライバ１３０から送信されたデータを第２ランゲージモニタ１６０が処理している間は、第１ランゲージモニタ１５０に対し、ＵＩ部１２１から設定情報を送信して保持させることができない。従って、描画部１２２がその設定情報を取得することもできない。
【００３０】
データ保持部１８０及び保存領域１９０は、このような情況に対応するために設けたものである。
データ保持部１８０は、データ保持手段に該当し、ＵＩ部１２１から渡された設定情報を保持する機能と、所定の通知を受信した場合にその受信元装置に対し返信として保持している設定情報を渡す機能とを備える。
【００３１】
そして、第２ランゲージモニタ１６０には、上述の機能の他、データ保持部１８０に対しその所定の通知を送信し、返信として設定情報を受け取る機能を設けている。さらに、その受け取った設定情報を、ＲＡＭ１３等に設けた所定の保存位置である保存領域１９０に保存する機能も設けている。所定の通知を送信するタイミングは、任意に設定可能である。例えば、第２ランゲージモニタ１６０がスプーラ１４０から印刷データを受け取ったタイミングや、スプーラ１４０から全ての印刷データを受け取って印刷が完了したタイミングとすることが考えられる。
【００３２】
この機能により、第２ランゲージモニタ１６０は、印刷データの処理中（すなわち第１ランゲージモニタ１５０へのアクセスが不能な期間中）に、データ保持部１８０に保持されている設定情報を保存領域１９０に保存することができる。
なお、ＵＩ部１２１は第１ランゲージモニタ１５０へのアクセスが不能な場合にデータ保持部１８０に設定情報を保持させ、描画部１２２は保存領域１９０に保存されている設定情報を取得する。したがって、第２ランゲージモニタ１６０と、データ保持部１８０及び保存領域１９０の機能により、第１ランゲージモニタ１５０へアクセスできない場合でも、ＵＩ部１２１から描画部１２２へ設定情報を受け渡すことができる。
【００３３】
この場合において、ＵＩ部１２１及び描画部１２２は、第２ランゲージモニタ１６０の存在を把握している必要すらない。ＵＩ部１２１がアクセスするのはデータ保持部１８０のみであり、描画部１２２がアクセスするのは保存領域１９０のみであり、データ保持部１８０から保存領域１９０への設定情報のコピーには、ＵＩ部１２１及び描画部１２２のいずれも関与しないためである。
【００３４】
なお、第１ランゲージモニタ１５０にも、同様な、データ保持部１８０に対し所定の通知を送信して設定情報を受け取り、その受け取った設定情報を保存領域１９０に保存する機能を設けてもよい。このようにすれば、第２ランゲージモニタ１６０へのアクセスが不能な期間中に、第２プリンタドライバ１３０のＵＩ部と描画部の間での設定情報の受け渡しを可能とすることができる。
【００３５】
次に、図４に、第２ランゲージモニタ１６０の機能構成を示す。
図４に示すように、第２ランゲージモニタ１６０は、設定情報保持部１６１、通知送信部１６２、設定情報書込部１６３及び印刷データ処理部１６４を備える。
このうち設定情報保持部１６１は、第２プリンタドライバ１３０のＵＩ部から受け取った設定情報を保持し、ＵＩ部と描画部との間での設定情報の受け渡しを仲介する機能を備える。
【００３６】
通知送信部１６２は、データ保持部１８０に対し所定の通知を送信して、返信として設定情報を受け取る機能を備える。
設定情報書込部１６３は、保存領域に設定情報を書き込んで保存する機能を備える。
印刷データ処理部１６４は、スプーラ１４０から送信された印刷データを上述のように適当なタイミングでポートモニタ１７０に送信する機能を備える。この時、印刷データに何らかの加工を行ってもよい。
【００３７】
次に、図５及び図６を用いて、ＰＣ１０の各部が行う印刷実行時の動作について説明する。
図５に示すのは、処理中の印刷データがない状態でアプリケーション１１０が第２プリンタドライバ１３０を用いた印刷の実行を指示された場合の動作である。図６に示すのは、図５の動作により第２ランゲージモニタ１６０を使用中に、アプリケーション１１０が第１プリンタドライバ１２０を用いた印刷の実行を指示された場合の動作である。なお、図５及び図６に示す動作は、必ずしも連続的に実行されるものではない。また、図３中に示したステップ番号は、図５及び図６の動作と対応するものである。
【００３８】
図５の動作においてはまず、アプリケーション１１０が、検出した印刷実行指示に応じて、選択された第２プリンタドライバ１３０に対し、印刷ジョブの実行要求を送信する（Ｓ１１）。そして、これを受けた第２プリンタドライバ１３０のＵＩ部は、対応する第２ランゲージモニタ１６０にアクセスする（Ｓ１２）。ここでは、いずれのランゲージモニタも使用中でないため、アクセス可能である（Ｓ１３のＹｅｓ）。そこで、第２プリンタドライバ１３０のＵＩ部は、今回指示された印刷に用いる設定情報を第２ランゲージモニタ１６０に渡して保持させる（Ｓ１４）。
【００３９】
一方、第２プリンタドライバ１３０の描画部は、第２ランゲージモニタ１６０にアクセスして、ステップＳ１３で保持された設定情報を取得する（Ｓ１５）。そして、その設定情報に従い、印刷ジョブの実行要求に係る印刷を実行するための印刷データを生成し（Ｓ１６）、スプーラ１４０に送信する（Ｓ１７）。
印刷データを受け取ったスプーラ１４０は、送信元の第２プリンタドライバ１３０と対応する第２ランゲージモニタ１６０に、受け取った印刷データを送信する（Ｓ１８）。そして、第２ランゲージモニタ１６０はその印刷データをポートモニタ１７０に送信し（Ｓ１９）、ポートモニタ１７０がその印刷データをプリンタ２０に送信する（Ｓ２０）。
【００４０】
以上でＰＣ１０側の動作は終了する。ステップＳ２０で送信された印刷データを受信したプリンタ２０は、その印刷データに基づき印刷を実行する。
なお、仮にステップＳ１３でアクセス不能であれば、図６のステップＳ３４乃至Ｓ３９と同様な動作を、第２プリンタドライバ１３０と第１ランゲージモニタ１５０が行う。その後、ステップＳ１６以下の動作に進む。
【００４１】
次に、図６の動作においては、まずアプリケーション１１０が、検出した印刷実行指示に応じて、選択された第１プリンタドライバ１２０に対し、印刷ジョブの実行要求を送信する（Ｓ３１）。そして、これを受けた第１プリンタドライバ１２０のＵＩ部１２１は、対応する第１ランゲージモニタ１５０にアクセスする（Ｓ３２）。ここでは、図５の動作により第２ランゲージモニタ１６０が使用中であるため、アクセス不可である（Ｓ３３のＮｏ）。そこで、第１プリンタドライバ１２０のＵＩ部１２１は、今回指示された印刷に用いる設定情報を、データ保持部１８０に渡して保持させる（Ｓ３４）。その後、データ保持部１８０は所定の通知を受信するのを待つ（Ｓ３５）。
【００４２】
一方、使用中の第２ランゲージモニタ１６０は、適当なタイミングでデータ保持部１８０に対し所定の通知を送信する（Ｓ３６）。データ保持部１８０は、ステップＳ３６の通知を受けると、ステップＳ３４で保持した設定情報を第２ランゲージモニタ１６０に返信する（Ｓ３７）。また、第２ランゲージモニタ１６０は、ステップＳ３７で設定情報を取得すると、保存領域１９０に保存する（Ｓ３８）。
【００４３】
一方、第１プリンタドライバ１２０の描画部１２２は、対応する第１ランゲージモニタ１５０にアクセスして設定情報を取得することを試みるが、第１ランゲージモニタ１５０にアクセスできないため取得に失敗する（Ｓ３９）。これを受けて、描画部１２２は、以後保存領域１９０に定期的にアクセスし、設定情報の取得を試みる。そして、ステップＳ３８で設定情報が保存されると、取得に成功する（Ｓ４０）。その後、描画部１２２は、取得した設定情報に従い、印刷ジョブの実行要求に係る印刷を実行するための印刷データを生成し（Ｓ４１）、スプーラ１４０に送信する（Ｓ４２）。
【００４４】
印刷データを受け取ったスプーラ１４０は、図５の動作における第２ランゲージモニタ１６０の使用が終了すると、送信元の第１プリンタドライバ１２０と対応する第１ランゲージモニタ１５０に、受け取った印刷データを送信する（Ｓ４３）。そして、第１ランゲージモニタ１５０はその印刷データをポートモニタ１７０に送信し（Ｓ４４）、ポートモニタ１７０がその印刷データをプリンタ２０に送信する（Ｓ４５）。
以上でＰＣ１０側の動作は終了する。ステップＳ２０で送信された印刷データを受信したプリンタ２０は、その印刷データに基づき印刷を実行する。
【００４５】
以上の動作により、ＵＩ部１２１が描画部１２２に設定情報を渡そうとした時点でその受け渡し機能を担う第１ランゲージモニタ１５０にアクセスできない場合でも、描画部１２２に設定情報を渡すことができる。従って、印刷に関する処理を先に進めることができる。また、ステップＳ３７がデータ保持手順の動作、ステップＳ３６及びＳ３８が第１処理手順の動作、ステップＳ３４が第２処理手順の動作、ステップＳ４０及びＳ４１が第３処理手順の動作である。
【００４６】
なお、図６の動作において、仮にステップＳ３３でアクセス可能であれば、図５のステップＳ１４及びＳ１５と同様な動作を、第１プリンタドライバ１２０と第１ランゲージモニタ１５０が行う。その後、ステップＳ１６以下の動作に進む。
また、第２ランゲージモニタ１６０によるステップＳ３６の通知送信は、データ保持部１８０に設定情報が保持されているか否かに関わらず行う。すなわち、第２ランゲージモニタ１６０は、動作中に通知送信の条件が満たされた場合には、データ保持部１８０に設定情報が保持されているか否かを気にせず所定の通知を送信する。そして、データ保持部１８０は、設定情報を保持していない状態で所定の通知を受信した場合には、設定情報を保持していない旨の返信を返す。この返信を受けた第２ランゲージモニタ１６０は、保存領域１９０に対する保存は行わずに、所定の通知に関する処理を終了する。
【００４７】
このようにすることにより、第２ランゲージモニタ１６０が、第１プリンタドライバ１２０のＵＩ部１２１がいつデータ保持部１８０に設定情報を保持させるかがわからなくても、適当なタイミングでデータ保持部１８０に保持された設定情報を取得できる。
【００４８】
ここで、第２ランゲージモニタ１６０が送信する所定の通知は、例えば図７に示す関数を用いて送信することができる。Windows  OSには、Spooler  Notificationという機能が用意されており、この機能を用いることによりランゲージモニタから任意のモジュールに通知を送ることが出来るようになる。この機能を利用するための関数が図７に示すもので、Windows  OSに予め用意されている。この関数を呼び出すことにより、第２ランゲージモニタ１６０はデータ保持部１８０に通知を送ることができる。
【００４９】
また、データ保持部１８０は、例えば図８に示す関数を用いて上記所定の通知を処理することができる。図８の関数もWindows  OSに予め用意されている。この関数を用いることにより、データ保持部１８０は、第２ランゲージモニタ１６０を含むランゲージモニタからの所定の通知を受け取り、その通知に対して返信することができる。
【００５０】
図９に、以上説明してきたＰＣ１０で第１プリンタドライバ１２０及び第２プリンタドライバ１３０が取り扱う設定情報の例を示す。この設定情報は、原稿サイズ、原稿方向、集約、両面といった設定項目毎に、印刷に反映させる設定値の情報を含むものである。
【００５１】
〔第１実施形態の参考例：図１０乃至図１２〕
次に、参考例を用いて第１実施形態の効果について説明する。なお、以下に説明する参考例においても、第１実施形態と共通の又は対応する構成についは同じ符号を用いる。変形例及び第２実施形態においても同様とする。
図１０は、第１参考例の機能構成を示す、図３と対応する図である。
【００５２】
この第１参考例のＰＣ９００は、図３の構成と比較して、データ保持部１８０及び保存領域１９０を設けず、これに伴って他の各部にもデータ保持部１８０及び保存領域１９０にアクセスする機能を設けていない点が異なるものである。また、プリンタドライバは、プリンタドライバ９２０のみであり、これに対応してランゲージモニタもランゲージモニタ９５０のみ設けている。
【００５３】
この構成の場合も、図５に示したものと同様な動作により、ＵＩ部９２１から描画部９２２に対し、設定情報を受け渡すことができる。
すなわち、アプリケーション１１０がプリンタドライバ９２０に対し、印刷ジョブの実行要求を送信する（Ｓ１０１）と、プリンタドライバ９２０のＵＩ部９２１は、対応するランゲージモニタ９５０に今回指示された印刷に用いる設定情報を渡して保持させる（Ｓ１０２）。
【００５４】
一方、プリンタドライバ９２０のＵＩ部９２１は、ランゲージモニタ９５０にアクセスして、ステップＳ１０２で保持された設定情報を取得する（Ｓ１０３）。そして、その設定情報に従い、印刷ジョブの実行要求に係る印刷を実行するための印刷データを生成し、スプーラ１４０に送信する（Ｓ１０４）。
【００５５】
印刷データを受け取ったスプーラ１４０は、送信元のプリンタドライバ９２０と対応するランゲージモニタ９５０に、受け取った印刷データを送信する（Ｓ１０５）。そして、ランゲージモニタ９５０はその印刷データをポートモニタ１７０に送信し（Ｓ１０６）、ポートモニタ１７０がその印刷データをプリンタ２０に送信する。
ランゲージモニタが１つのみであれば、他のランゲージモニタが使用中でステップＳ１０２においてランゲージモニタ９５０にアクセスできないという事態は起こらず、特に問題なく動作可能である。
【００５６】
次に、図１１に、第２参考例の機能構成を示す。
この第２参考例は、図１０の構成と比較して、同じポートを利用する２つのプリンタドライバ（第１プリンタドライバ９２３及び第２プリンタドライバ９２４）を備える点が異なる。また、これに対応してランゲージモニタも第１ランゲージモニタ９５１と第２ランゲージモニタ９５２を設けている。
【００５７】
この構成であっても、第１ランゲージモニタ９５１と第２ランゲージモニタ９５２とが同時に使用されなければ、第１プリンタドライバ９２３及び第２プリンタドライバ９２４を特に問題なく動作させることができる。すなわち、図１０のステップＳ１０１〜Ｓ１０６と同じ手順により、印刷を実行できる。第２プリンタドライバ９２４に関する動作をＳ１１１〜Ｓ１１４で、第１プリンタドライバ９２３に関する動作をＳ１２１〜Ｓ１２４で示した（設定情報の受け渡しに関する処理は図示を省略した）。
【００５８】
しかし、例えば、第２ランゲージモニタ９５２の使用中に第１プリンタドライバ９２３を用いた印刷を実行しようとすると、図１２に示すように、ＵＩ部が第１ランゲージモニタ９５１にアクセスして設定情報を保持させようとした時に、ＯＳの制約によりアクセスが拒否されてしまう。第１ランゲージモニタ９５１と同じポートを利用する第２ランゲージモニタ９５２が使用中であるためである。
【００５９】
従って、第１プリンタドライバ９２３において、ＵＩ部から描画部へ設定情報を受け渡すことができず、印刷動作を進めることができない。第１プリンタドライバ９２３のＵＩ部が第２ランゲージモニタ９５２にアクセスできるようになるのは、第２プリンタドライバ９２４が生成した印刷データが全てプリンタ２０へ送信されて、第２ランゲージモニタ９５２の使用が終了した後である。すなわち、印刷に関するＰＣ１０側での処理が終了した後である。そのため、第１プリンタドライバ９２３は、第２プリンタドライバ９２４による印刷が終了するまで、処理を待たなければならないことになる。
【００６０】
これに対し、上述した第１実施形態の構成では、データ保持部１８０及び保存領域１９０を設けると共に、第２ランゲージモニタ１６０が、所定のタイミングでデータ保持部１８０から保存領域１９０へ設定情報をコピーする。従って、第２ランゲージモニタ１６０の使用中でも、データ保持部１８０及び保存領域１９０を介して第１プリンタドライバ１２０のＵＩ部１２１から描画部１２２へ設定情報を受け渡しでき、第１プリンタドライバ１２０の印刷処理を進めることができる。
【００６１】
〔第１実施形態の変形例：図１３〕
なお、図３に示した例では、プリンタドライバ及び同一ポートを利用するランゲージモニタが２つのみであったが、３つ以上であっても構わない。
図１３に、プリンタドライバ及びランゲージモニタを３つずつ設けた場合の、図３と対応する機能構成を示す。
【００６２】
図１３の構成は、図３の構成に加え、第３プリンタドライバ２３０及び第３ランゲージモニタ２５０を設けている。これらのうち第３プリンタドライバ２３０は、第１プリンタドライバ１２０及び第２プリンタドライバ１３０と同等に、データ保持部１８０及び保存領域１９０にアクセスする機能を備える。第３ランゲージモニタ２５０は、第１ランゲージモニタ１５０及び第２ランゲージモニタ１６０と同等に、データ保持部１８０及び保存領域１９０にアクセスする機能を備える。
【００６３】
以上の構成において、例えば第３プリンタドライバ２３０を用いた印刷処理を実行し、第３ランゲージモニタ２５０を使用中には、第１ランゲージモニタ１５０及び第２ランゲージモニタ１６０へのアクセスが禁止される。従って、この状態で第１プリンタドライバ１２０を用いた印刷処理を実行しようとすると、ＵＩ部１２１が第１ランゲージモニタ１５０にアクセスできない。
【００６４】
しかし、ＵＩ部１２１がデータ保持部１８０に設定情報を保持させておけば、第３ランゲージモニタ２５０がデータ保持部１８０に所定の通知を送信し、返信として設定情報を取得する。そして、保存領域１９０にその設定情報を保存する。従って、描画部１２２は、図３の場合と同様、保存領域１９０から設定情報を取得することができる。
以上により、第１実施形態の場合と同様、第１ランゲージモニタ１５０にアクセスできない場合でも、ＵＩ部１２１から描画部１２２への設定情報の受け渡しが可能である。
【００６５】
なお、図１３の構成において、第２ランゲージモニタ１６０の使用中に第１プリンタドライバ１２０を用いた印刷処理を実行しようとした場合にも、同様にＵＩ部１２１から描画部１２２への設定情報の受け渡しが可能である。この場合、データ保持部１８０に所定の通知を送信するのは第２ランゲージモニタ１６０であるが、第３ランゲージモニタ２５０が所定の通知を送信する場合と比べ、設定情報の受け渡し動作全体の流れに特段の違いはない。
データ保持部１８０が複数のランゲージモニタから所定の通知を受け得る状態にあることも、全く問題ない。どのランゲージモニタから通知を受けた場合も、その通知の送信元に設定情報を渡せばよい。
【００６６】
〔第２実施形態：図１４乃至図１８〕
次に、この発明の第２実施形態について説明する。
この第２実施形態は、第１実施形態の場合と同様な、ランゲージモニタの使用中でもプリンタドライバのＵＩ部から描画部へ設定情報を受け渡しできるようにする機能を、ポイントアンドプリントを用いて印刷を行う場合に適した形態で設けたものである。
【００６７】
図１４に、この発明の一実施形態であるクライアントＰＣ及びサーバＰＣを含む画像形成システムの構成を示す。
図１４に示す画像形成システムは、複数のクライアントＰＣ４０（図１では３台のＰＣ４０−１〜３）と、サーバＰＣ５０と、プリンタ２０とを、ネットワーク３０により相互に通信可能なように接続したものである。
【００６８】
このうちクライアントＰＣ４０−１〜３はそれぞれ、ポイントアンドプリント機能を用いた印刷におけるクライアント装置として機能する情報処理装置である。個体を識別する必要がない場合にはＰＣ４０の符号を用いる。サーバＰＣ５０は、ポイントアンドプリント機能を用いた印刷におけるサーバ装置として機能する情報処理装置である。
これらのクライアントＰＣ４０及びサーバＰＣ５０のハードウェア構成は、図２に示したものと同様である。
【００６９】
プリンタ２０は、第１実施形態におけるプリンタ２０と同様なプリンタであり、サーバＰＣ５０のローカルポートに接続される。ネットワーク３０も、第１実施形態と同様である。
【００７０】
図１５に、サーバサイドレンダリングのポイントアンドプリント機能を利用した場合のプリンティングシナリオを示す。このシナリオはＯＳによって規定されているものである。
図１５に示すプリンティングシナリオは、大まかに以下の(1)-(11)の手順を示している。
(1)クライアントＰＣのアプリケーションが印刷処理を開始
(2)プリンタデバイスコンテキストへの描画のため、アプリケーションがＧＤＩ（Graphics  Device  Interface）のＡＰＩ(Application  Programming  Interface)を呼び出す。
(3)呼び出されたＡＰＩとそのパラメータから、ＧＤＩがWinSpool経由でＮＴ  ＥＭＦ（拡張メタファイル）スプールファイルを作成する
(4)スプーラプロセスＮＴ  ＥＭＦスプールファイルをサーバＰＣに送信する
(5)サーバＰＣのプリントプロセッサがＮＴ  ＥＭＦスプールファイルを再生する
(6)ＮＴ  ＥＭＦレコードの内容をもとに、ＧＤＩがプリンタデバイスコンテキストへ描画を行う
(7)プリンタドライバがプリンタ言語に基づいてＲＡＷデータを生成する
(8)ランゲージモニタが必要な処理を行う
(9)ポートモニタが、プリンタポートの種類(ＵＳＢ、ＴＣＰ／ＩＰなど)に合わせて出力処理を行う
(10)カーネルモードドライバにＲＡＷデータが通知される
(11)プリンタにＲＡＷデータが通知される
【００７１】
また、符号３０１で示す箇所がプリンタドライバのＵＩ部の動作、符号３０２で示す箇所が同じく描画部の動作、符号３０３で示す箇所がランゲージモニタの動作を示す。
すなわち、図１６に示すように、ＵＩ部はクライアントＰＣ４０側で動作し、描画部とランゲージモニタはサーバＰＣ５０側で動作するものである。
【００７２】
次に、図１７に、クライアントＰＣ４０及びサーバＰＣ５０の図３と対応する機能構成を示す。
図１７に示すように、クライアントＰＣ４０は、アプリケーション４１０、プリンタドライバ４２０、及びデータ保持部４８０を備えている。また、サーバＰＣ５０は、第１プリンタドライバ５２０、第２プリンタドライバ５３０、スプーラ５４０、第１ランゲージモニタ５５０、第２ランゲージモニタ５６０、ポートモニタ５７０及び保存領域５９０を備える。
【００７３】
これらのうち、アプリケーション４１０は、図３のアプリケーション１１０と同様な機能を備える。
プリンタドライバ４２０は、ポイントアンドプリント機能によりサーバＰＣ５０からダウンロードしてインストールしたものである。そして、図３の第１プリンタドライバ１２０と同様、ＵＩ部４２１と描画部４２２を備える。
【００７４】
プリンタドライバ４２０は、描画部４２２にて描画処理を行わず、印刷すべき画像の内容を示すデータを、図１５に示したＮＴ  ＥＭＦスプールファイルの形でサーバＰＣ５０のプリンタドライバ５２０に渡すものである。従って、これに伴って描画部４２２が設定情報の取得を行わない点が図３の第１プリンタドライバ１２０と異なる。
【００７５】
また、ＵＩ部４２１による設定情報の登録先は、サーバＰＣ５０の第１ランゲージモニタ５５０であり、ここにアクセスできない場合はデータ保持部４８０である。ＵＩ部４２１が登録した設定情報は、サーバＰＣ５０側に対応する第１プリンタドライバ５２０の描画部５２２が取得する。すなわち、図１７の構成では、クライアントＰＣ４０側のプリンタドライバ４２０のＵＩ部４２１から、サーバＰＣ５０側の第１プリンタドライバ５２０の描画部５２２へ設定情報を受け渡す。
その他の点については、プリンタドライバ４２０は第１プリンタドライバ１２０と同様である
【００７６】
サーバＰＣ５０側の構成につき、第１プリンタドライバ５２０の描画部５２２は、クライアントＰＣ４０側のプリンタドライバ４２０から渡されたＮＴ  ＥＭＦスプールファイルに対し、描画部５２２が取得した設定情報に従って描画処理を行う。このとき参照すべき設定情報は、まず、第１ランゲージモニタ５５０にアクセスして、プリンタドライバ４２０のＵＩ部４２１が第１ランゲージモニタ５５０に保持させたものを取得することを試みる。しかし、上述のようにＵＩ部４２１が第１ランゲージモニタ５５０に印刷設定を保持させることができない場合がある。このような場合、保存領域５９０に定期的にアクセスして、この保存領域５９０に保存されている設定情報を取得する。
【００７７】
次に、第２プリンタドライバ５３０も、第１プリンタドライバ５２０と上述した範囲では同様な機能のＵＩ部及び描画部を備える。対応付けられているプリンタもプリンタ２０で共通である。なお、図１７に示したクライアントＰＣには第２プリンタドライバ５３０と対応するプリンタドライバはインストールされていないが、不図示の他のクライアントＰＣには対応するプリンタドライバがインストールされているとする。
スプーラ５４０は、図３のスプーラ１４０と同様な機能を備える。
【００７８】
第１ランゲージモニタ５５０及び第２ランゲージモニタ５６０も、図３の第１ランゲージモニタ１５０及び第２ランゲージモニタ１６０と同様な機能を備える。ただし、所定の通知の送信先は、クライアントＰＣ４０のデータ保持部４８０であり、データ保持部４８０から取得した設定情報の保存先は、サーバＰＣ５０のＲＡＭ等に設けた保存領域５９０である。
ポートモニタ５７０及び保存領域５９０も、図３のポートモニタ１７０及び保存領域１９０と同様な機能を備える。
【００７９】
図１７の構成においても、プリンタドライバ４２０のＵＩ部４２１は、印刷を実行する際に、データ保持部４８０及び保存領域５９０を介して、第１実施形態の場合と同様な手順で設定情報をプリンタドライバ５２０の描画部５２２に渡すことができる。
次に、図１８を用いて、クライアントＰＣ４０及びサーバＰＣ５０の各部が行う印刷実行時の動作について説明する。図１８に示すのは、クライアントＰＣ４０のアプリケーション４１０がプリンタドライバ４２０を用いた印刷の実行を指示された場合の動作である。なお、図１８に示す動作は、必ずしも連続的に実行されるものではない。また、図１７中に示したステップ番号は、図１８の動作と対応するものである。
【００８０】
図１８の動作においてはまず、アプリケーション４１０が、検出した印刷実行指示に応じて、選択されたプリンタドライバ４２０に対し、印刷ジョブの実行要求を送信する（Ｓ７１）。そして、これを受けたプリンタドライバ４２０のＵＩ部４２１は、サーバＰＣ５０における対応する第１ランゲージモニタ５５０にアクセスする（Ｓ７２）。ここで第２ランゲージモニタ５６０が使用中であり、第１ランゲージモニタ５５０にアクセス可能でない場合（Ｓ７３のＮｏ）、ＵＩ部４２１は、今回指示された印刷に用いる設定情報を、データ保持部４８０に渡して保持させる（Ｓ７４）。その後、データ保持部１８０は所定の通知を受信するのを待つ（Ｓ７５）。
【００８１】
一方、使用中の第２ランゲージモニタ５６０は、適当なタイミングでデータ保持部４８０に対し所定の通知を送信する（Ｓ７６）。データ保持部４８０は、ステップＳ７６の通知を受けると、ステップＳ７４で保持した設定情報を第２ランゲージモニタ５６０に返信する（Ｓ７７）。また、第２ランゲージモニタ５６０は、ステップＳ７７で設定情報を取得すると、保存領域５９０に保存する（Ｓ７８）。
【００８２】
一方、プリンタドライバ４２０は、サーバＰＣ５０側の第１プリンタドライバ５２０に対し、印刷すべき画像を示すスプールファイルを送信する（Ｓ７９）。そして、第１プリンタドライバ５２０の描画部５２２は、スプールファイルを受信すると、対応する第１ランゲージモニタ５５０にアクセスして設定情報を取得することを試みる。しかし、第１ランゲージモニタ５５０にアクセスできないため取得に失敗する（Ｓ８０）。
【００８３】
これを受けて、描画部５２２は、以後保存領域５９０に定期的にアクセスし、設定情報の取得を試みる。そして、ステップＳ７８で設定情報が保存されると、取得に成功する（Ｓ８１）。その後、描画部５２２は、取得した設定情報に従い、ステップＳ７９で受信したスプールファイルが示す画像の印刷を実行するための印刷データを生成し（Ｓ８５）、スプーラ５４０に送信する（Ｓ８６）。
【００８４】
印刷データを受け取ったスプーラ５４０は、第２ランゲージモニタ５６０の使用が終了すると、送信元の第１プリンタドライバ５２０と対応する第１ランゲージモニタ５５０に、受け取った印刷データを送信する（Ｓ８７）。そして、第１ランゲージモニタ５５０はその印刷データをポートモニタ５７０に送信し（Ｓ８８）、ポートモニタ５７０がその印刷データをプリンタ２０に送信する（Ｓ８９）。
【００８５】
以上でサーバＰＣ５０側の動作は終了する。ステップＳ８９で送信された印刷データを受信したプリンタ２０は、その印刷データに基づき印刷を実行する。
また、ステップＳ７２でアクセス可である場合は、ＵＩ部４２１は、今回指示された印刷に用いる設定情報を第１ランゲージモニタ５５０に渡して保持させる（Ｓ８２）。
【００８６】
一方、プリンタドライバ４２０は、サーバＰＣ５０側の第１プリンタドライバ５２０に対し、印刷すべき画像を示すスプールファイルを送信する（Ｓ８３）。そして、第１プリンタドライバ５２０の描画部５２２は、スプールファイルを受信すると、対応する第１ランゲージモニタ５５０にアクセスして、ステップＳ８２で保持された設定情報を取得する（Ｓ８４）。
その後、描画部５２２は、取得した設定情報に従い、ステップＳ８３で受信したスプールファイルが示す画像の印刷を実行するための印刷データを生成し（Ｓ８５）、以下の処理を行う。
【００８７】
以上の動作により、クライアントＰＣ４０側のＵＩ部４２１がサーバＰＣ５０側の描画部５２２に設定情報を渡そうとした時点でその受け渡し機能を担う第１ランゲージモニタ５５０にアクセスできない場合でも、描画部５２２に設定情報を渡すことができる。従って、第１実施形態の場合と同様、印刷に関する処理を先に進めることができる。また、ステップＳ７７がデータ保持手順の動作、ステップＳ７６及びＳ７８が第１処理手順の動作、ステップＳ７４が第２処理手順の動作、ステップＳ８１及びＳ８５が第３処理手順の動作である。
【００８８】
〔第２実施形態の参考例：図１９，図２０〕
次に、参考例を用いて第２実施形態の効果について説明する。
図１９は、第３参考例の機能構成を示す、図１７と対応する図である。
この第３参考例のクライアントＰＣ９０１及びサーバＰＣ９０２は、図１７の構成と比較して、データ保持部４８０及び保存領域５９０を設けず、これに伴って他の各部にもデータ保持部４８０及び保存領域５９０にアクセスする機能を設けていない点が異なるものである。また、クライアントＰＣ９０１側のプリンタドライバはプリンタドライバ８２０であり、ＵＩ部８２１と描画部８２２を備える。サーバＰＣ９０２側のプリンタドライバは第１プリンタドライバ９２３及び第２プリンタドライバ９２４であり、第１プリンタドライバ９２３はＵＩ部９２５と描画部９２６を備える。ランゲージモニタは、第１ランゲージモニタ９５１と第２ランゲージモニタ９５２を設けている。
【００８９】
この構成であっても、第１ランゲージモニタ９５１と第２ランゲージモニタ９５２とが同時に使用されなければ、プリンタドライバ８２０を用いたプリントを特に問題なく実行することができる。すなわち、図１８のステップＳ７１〜Ｓ７３及びＳ８２乃至Ｓ８９と同じ手順により、印刷を実行できる。その手順を、Ｓ１３１〜Ｓ１３７として示した。
【００９０】
しかし、例えば、第２ランゲージモニタ９５２の使用中に第１プリンタドライバ９２３を用いた印刷を実行しようとすると、ＵＩ部８２１が第１ランゲージモニタ９５１にアクセスして設定情報を保持させようとした時に、ＯＳの制約によりアクセスが拒否されてしまう。第１ランゲージモニタ９５１と同じポートを利用する第２ランゲージモニタ９５２が使用中であるためである。
この点の影響は、ポイントアンドプリント環境では特に顕著である。
【００９１】
図２０に示すように、１台のサーバＰＣ９０２に複数のクライアントＰＣ９０１−１〜４が接続している場合を考える。
この状態で、クライアントＰＣ９０１−１〜３が第２プリンタドライバ９２４を用いて印刷を実行するとする。すると、他のクライアントＰＣ９０１−４から、第１プリンタドライバ９２３（クライアントＰＣ９０１側ではプリンタドライバ８２０）を用いて印刷を実行しようとしても、設定情報を第１ランゲージモニタ９５１に登録できないため、印刷ができなくなってしまう。さらに、第１プリンタドライバ９２３が第２プリンタドライバ９２４による印刷処理が終わるまで待っている間に、第２プリンタドライバ９２４を用いた別の印刷がいずれかのクライアントＰＣ９０１から指示されるような場合、第１プリンタドライバ９２３はその印刷も待たなければいけなくなる。
極端なケースでは、第２プリンタドライバ９２４を用いた印刷がいつまでも続けられ、第１プリンタドライバ９２３を用いた印刷が延々と待たされることもあり得る。
【００９２】
これに対し、上述した第１実施形態の構成では、データ保持部４８０及び保存領域５９０を設けると共に、第２ランゲージモニタ５６０が、所定のタイミングでデータ保持部４８０から保存領域５９０へ設定情報をコピーする。従って、第２ランゲージモニタ５６０の使用中でも、データ保持部４８０及び保存領域５９０を介してプリンタドライバ４２０のＵＩ部４２１から第１プリンタドライバ５２０の描画部５２２へ設定情報を受け渡しでき、第１プリンタドライバ５２０の印刷処理を進めることができる。
一旦印刷データをスプーラ５４０に登録してしまえば、先着順で処理されるため、印刷が混んでいる場合でも、リーズナブルな待ち時間で済む。
【００９３】
以上で実施形態の説明を終了するが、この発明において、各部の具体的な構成や処理の手順、取り扱うデータの構成及び形式等は、実施形態で説明したものに限るものではない。
また、上述した実施形態については、全てのプリンタドライバ及びランゲージモニタが、データ保持部１８０又は４８０と、保存領域１９０又は５９０とを介した設定情報の受け渡しに係る機能を備えている例について説明した。しかし、これは必須ではなく、少なくとも１つのポートを使用する全てのプリンタドライバ及びランゲージモニタが上記の受け渡しの機能を備えていれば、そのポートを使用するプリンタドライバにおける設定情報の受け渡しに支障はない。
【００９４】
また、１つのポートを使用するプリンタドライバ及びランゲージモニタの中で、１つのプリンタドライバＡと、他の１つのプリンタドライバＢと対応する１つのランゲージモニタＢとに、上記の受け渡しに係る機能を設けるのみでも、効果はある。すなわち、プリンタドライバＢによる印刷処理を実行中でランゲージモニタＢを使用中でも、プリンタドライバＡのＵＩ部と描画部との間で設定情報を受け渡し可能とすることができる。
【００９５】
例えば、ＵＩ部から描画部へ受け渡すデータは、印刷設定に限らず、任意のものでよい。また、データの受け渡しも、プリンタドライバのＵＩ部から描画部への受け渡しに限らず、任意のモジュール間の受け渡しに適用可能である。受け渡しを実行するモジュールも、ランゲージモニタには限られない。また、受け渡されたデータを用いて実行する処理も、印刷データの生成に限られない。この処理後のデータの用途も、画像形成に限られず、任意である。
また、第２実施形態において、データ保持部４８０をクライアントＰＣ４０に設ける例について説明したが、データ保持部をサーバＰＣ５０側に設けてもよい。
【００９６】
また、上述した実施形態におけるＰＣ１０、クライアントＰＣ４０及びサーバＰＣ５０の機能は、複数の情報処理装置に分散して設け、それらの装置が協働してＰＣ１０と同様な機能を実現するようにしてもよい。その複数の装置により構成されるシステムが、この発明の情報処理システムの実施形態である。なお、情報処理システムを１台の情報処理装置のみで構成することも妨げられない。
【００９７】
この発明の実施形態であるプログラムは、１のコンピュータを、または複数のコンピュータを協働させて、上述したＰＣ１０、クライアントＰＣ４０あるいはサーバＰＣ５０の機能を実現させるためのプログラムである。そして、このようなプログラムをコンピュータに実行させることにより、上述したような効果を得ることができる。
【００９８】
このようなプログラムは、はじめからコンピュータに備えるＲＯＭや他の不揮発性記憶媒体（フラッシュメモリ，ＥＥＰＲＯＭ等）などに格納しておいてもよい。しかし、メモリカード、ＣＤ、ＤＶＤ、ブルーレイディスク等の任意の不揮発性記録媒体に記録して提供することもできる。それらの記録媒体に記録されたプログラムをコンピュータにインストールして実行させることにより、上述した各手順を実行させることができる。
【００９９】
さらに、ネットワークに接続され、プログラムを記録した記録媒体を備える外部装置あるいはプログラムを記憶手段に記憶した外部装置からダウンロードし、コンピュータにインストールして実行させることも可能である。
【０１００】
また、この発明の画像処理システムは、上述のプログラム（特に第１及び第２プリンタドライバと、第１及び第２ランゲージモニタの機能を実現するためのプログラム）と、そのプログラムが提供する機能により送信されるデータに基づき画像処理を行う画像処理装置とを備えるシステムである。このプログラムとデバイスとの組み合わせにより、実施形態及び変形例において述べた効果を得ることができる。
また、以上説明してきた実施形態及び変形例の構成は、相互に矛盾しない限り任意に組み合わせて実施可能であることは勿論である。また、実施形態等において説明した全ての構成要件を同時に実施する必要がないことも、もちろんである。
【符号の説明】
【０１０１】
１０，９００：ＰＣ、１１：ＣＰＵ、１２：ＲＯＭ、１３：ＲＡＭ、１４：ＨＤＤ、１５：通信Ｉ／Ｆ、１６：表示部、１７：操作部、１８：システムバス、２０：プリンタ、３０：ネットワーク、４０，９０１：クライアントＰＣ、５０，９０２：サーバＰＣ、１１０，４１０：アプリケーション、１２０，５２０，９２３：第１プリンタドライバ、１２１，４２１，５２１，８２１，９２１，９２５：ＵＩ部、１２２，４２２，５２２，８２２，９２２，９２６：描画部、１３０，５３０，９２４：第２プリンタドライバ、１４０，５４０：スプーラ、１５０，５５０，９５１：第１ランゲージモニタ、１６０，５６０，９５２：第２ランゲージモニタ、１６１：設定情報保持部、１６２：通知送信部、１６３：設定情報書込部、１６４：印刷データ処理部、１７０，５７０：ポートモニタ、１８０，４８０：データ保持部、１９０，５９０：保存領域、２３０：第３プリンタドライバ、２５０：第３ランゲージモニタ、４２０，８２０，９２０：プリンタドライバ、９５０：ランゲージモニタ
【先行技術文献】
【特許文献】
【０１０２】
【特許文献１】特開２００６−７９２４６号公報
【図１】
2015176547.tif 000003
【図２】
2015176547.tif 000004
【図３】
2015176547.tif 000005
【図４】
2015176547.tif 000006
【図５】
2015176547.tif 000007
【図６】
2015176547.tif 000008
【図７】
2015176547.tif 000009
【図８】
2015176547.tif 000010
【図９】
2015176547.tif 000011
【図１０】
2015176547.tif 000012
【図１１】
2015176547.tif 000013
【図１２】
2015176547.tif 000014
【図１３】
2015176547.tif 000015
【図１４】
2015176547.tif 000016
【図１５】
2015176547.tif 000017
【図１６】
2015176547.tif 000018
【図１７】
2015176547.tif 000019
【図１８】
2015176547.tif 000020
【図１９】
2015176547.tif 000021
【図２０】
2015176547.tif 000022