JP2004213671A - ネットワークにおいて印刷ドキュメントをクライアントサイドでレンダリングする方法、システム、およびコンピュータ可読媒体 - Google Patents

ネットワークにおいて印刷ドキュメントをクライアントサイドでレンダリングする方法、システム、およびコンピュータ可読媒体 Download PDF

Info

Publication number
JP2004213671A
JP2004213671A JP2004000705A JP2004000705A JP2004213671A JP 2004213671 A JP2004213671 A JP 2004213671A JP 2004000705 A JP2004000705 A JP 2004000705A JP 2004000705 A JP2004000705 A JP 2004000705A JP 2004213671 A JP2004213671 A JP 2004213671A
Authority
JP
Japan
Prior art keywords
document
print server
print
computer
server computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2004000705A
Other languages
English (en)
Other versions
JP4989844B2 (ja
Inventor
Mark A Lawrence
エー.ローレンス マーク
Steven Kiraly
キラリー スティーブン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2004213671A publication Critical patent/JP2004213671A/ja
Application granted granted Critical
Publication of JP4989844B2 publication Critical patent/JP4989844B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1211Improving printing performance
    • G06F3/1212Improving printing performance achieving reduced delay between job submission and print start
    • G06F3/1214Improving printing performance achieving reduced delay between job submission and print start at the submitting node
    • EFIXED CONSTRUCTIONS
    • E21EARTH DRILLING; MINING
    • E21BEARTH DRILLING, e.g. DEEP DRILLING; OBTAINING OIL, GAS, WATER, SOLUBLE OR MELTABLE MATERIALS OR A SLURRY OF MINERALS FROM WELLS
    • E21B44/00Automatic control systems specially adapted for drilling operations, i.e. self-operating systems which function to carry out or modify a drilling operation without intervention of a human operator, e.g. computer-controlled drilling systems; Systems specially adapted for monitoring a plurality of drilling variables or conditions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1208Improving or facilitating administration, e.g. print management resulting in improved quality of the output result, e.g. print layout, colours, workflows, print preview
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1229Printer resources management or printer maintenance, e.g. device status, power levels
    • G06F3/1232Transmitting printer device capabilities, e.g. upon request or periodically
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1239Restricting the usage of resources, e.g. usage or user levels, credit limit, consumables, special fonts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1244Job translation or job parsing, e.g. page banding
    • G06F3/1247Job translation or job parsing, e.g. page banding by conversion to printer ready format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • G06F3/1288Remote printer device, e.g. being remote from client or server in client-server-printer device configuration
    • EFIXED CONSTRUCTIONS
    • E21EARTH DRILLING; MINING
    • E21BEARTH DRILLING, e.g. DEEP DRILLING; OBTAINING OIL, GAS, WATER, SOLUBLE OR MELTABLE MATERIALS OR A SLURRY OF MINERALS FROM WELLS
    • E21B7/00Special methods or apparatus for drilling
    • E21B7/02Drilling rigs characterized by means for land transport with their own drive, e.g. skid mounting or wheel mounting
    • E21B7/022Control of the drilling operation; Hydraulic or pneumatic means for activation or operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1218Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources
    • G06F3/122Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources with regard to computing resources, e.g. memory, CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1244Job translation or job parsing, e.g. page banding
    • G06F3/1245Job translation or job parsing, e.g. page banding by conversion to intermediate or common format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1253Configuration of print job parameters, e.g. using UI at the client
    • G06F3/1254Automatic configuration, e.g. by driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1253Configuration of print job parameters, e.g. using UI at the client
    • G06F3/1255Settings incompatibility, e.g. constraints, user requirements vs. device capabilities

Abstract

【課題】 印刷機能を容易にするネットワークにおいて、リモートプリンタを対象とする印刷ジョブを格納された管理設定を使用してクライアントコンピュータ上でレンダリングする手段を提供すること。
【解決手段】 クライアントのアプリケーションに対して透過に、クライアントコンピュータは、格納されたリモートプリンタの管理設定を、プリントサーバに格納された情報と同期した状態に保つ。格納された管理設定を使用して、クライアントは、印刷ジョブを、直接プリンタによって認識することが可能なネイティブプリンタ言語にレンダリングし、その後レンダリングしたファイルをプリンタへの転送のためにプリントサーバに送信する。これらのリモートの印刷ジョブをキューに入れることにより、それぞれのプリントサーバのオンラインステータスもクライアントのアプリケーションに対して透過となり、オフラインの印刷が容易になる。
【選択図】 図2

Description

本発明は、一般にはコンピュータネットワークシステムに関し、より詳細には、ネットワーク環境で文書(ドキュメント)を印刷することに関する。
プリンタを含む従来のネットワークでは、1つまたは複数の物理的なプリンタおよび1つまたは複数のプリントクライアントにプリントサーバを接続する。通例では、それらのクライアントコンピュータが、印刷すべき情報を、何らかの中間データフォーマットに符号化された印刷ジョブと呼ばれるドキュメントの形で、どのプリンタを使用すべきかに関する情報とともにプリントサーバに送信する。プリントサーバは、印刷ジョブとプリンタ情報を受け取ると、選択されたプリンタに関連付けられた適切なプリントキューにそのジョブをルートする。ジョブをキューから接続されたプリンタに印刷する際、サーバは、管理設定、プリンタ設定、およびプリンタドライバを含むそのプリンタに関して格納された情報を使用して印刷ジョブを解釈し、翻訳する。プリントサーバは次いで、印刷ジョブを転送された中間データフォーマットから、ネイティブのプリンタ言語にレンダリングし、プリンタに送信する。このレンダリングのプロセスとは、単に、何らかの中間データフォーマットから、直接プリンタに送信することができる最終的なプリンタ固有のフォーマットへのこうした翻訳である。
この軽いクライアントと重いサーバの技術には、いくつかの関連した問題が伴う。このリソース集約的なサーバサイドのレンダリングに伴う最も顕著な問題は、サーバネットワークのスケーリングが困難な点である。クライアントはほとんど印刷機能を提供せず、それらのタスクが代わりにサーバに課されるので、サーバの過負荷を避けるために、プリントサーバに接続されてアクティブに印刷を行うクライアントの数を厳重に制限しなければならない。別の問題点は、クライアントに通知することなく印刷ジョブがサーバに到達した際に管理設定およびプリンタ設定の適用に伴う。どの管理設定が有効であるかをクライアントが知らない場合、実際のプリント出力が予期しないものになる可能性がある。一般的なプリントネットワークのさらに別の欠点は、クライアントが、特定のプリンタのドライバが指定する中間データフォーマットで印刷ジョブを送信する場合に生じる。何らかの理由で、格納されたプリンタドライバがサーバとクライアントとで異なる場合、サーバによるその中間データフォーマットの翻訳が失敗し、低質な印刷パフォーマンスとなる恐れがある。最後に、印刷ジョブはサーバでのみキューに入れられるので、サーバサイドのレンダリングによりオフライン印刷が妨げられる。典型的なプリントネットワークでは、サーバがオフライン状態になると、クライアントは、そのサーバに接続されたプリンタを使用することができないだけでなく、そのオフラインプリンタに対してドキュメントをキューに入れることもできなくなるであろう。したがって、サーバが再び使用可能になった時に、特定のドキュメントを印刷する責任はそのクライアントのユーザに課せられることになる。
いくつかのプリントネットワークの実装により、これらの問題のすべてではないが一部は解決された。そのため、たとえば、一部のプリントネットワークではクライアントサイドのレンダリングがサポートされている。クライアントサイドのレンダリングの実装では、プリントサーバが印刷ジョブを適切なプリンタにルートするが、中間データフォーマットのドキュメントからネイティブのプリンタ言語へのレンダリングをクライアントが行う。クライアントは、このプリンタフォーマットのドキュメントをプリントサーバに渡すことができるが、クライアントが意図するフォーマッティングが、サーバに格納された管理設定に正しく適用されない可能性があるという問題が残る。また、クライアントによるドキュメントのオフラインレンダリングは管理上の委任統治(administrative mandates)に違反する可能性があり、そのため使用不可にされることが多い。
他のプリントネットワークでは、管理設定をクライアントに通信するが、クライアントはドキュメントをレンダリングすることができず、代わりに中間のデータフォーマットをレンダリングのためにプリントサーバに送信する。こうしたネットワークでは上の段落で述べた問題の多くが残る。こうしたネットワークでは、ドキュメントをレンダリングするタスクがなおサーバの負担となるのでプリントサーバのスケーリングはほぼ不可能であり、サーバとクライアントのプリントドライバを常に一致させなければならない。
この結果、自動化された透過的な印刷の解決法としての、オフライン印刷をサポートするプリントネットワークが必要とされている。
本発明は、レンダリングした印刷ジョブをプリントサーバに送る前に、クライアントに格納された管理設定を使用してクライアント上で印刷ジョブをキューに入れ、レンダリングすることを対象とする。本発明はさらに、プリントサーバが使用可能でない時にユーザが印刷コマンドし、およびプリントサーバが再び使用可能になるとその印刷ジョブを適切なプリントサーバを通じてルーティングできるようにすることを対象とする。
本発明の一実施形態では、クライアントはネットワークを通じて、少なくとも1つのプリンタへのアクセスを有するプリントサーバと通信している。プリントサーバは、リモートプリンタに印刷するのに必要な情報をすべて格納し、この情報にはプリンタ設定、プリンタドライバ、および管理設定が含まれる。クライアントでは、2つのはっきり異なるモジュールである、リモート印刷システムおよびローカル印刷システムが印刷機能を提供する。リモート印刷システムは、プリントサーバと通信して、リモートプリンタに関連するプリンタ設定および管理設定をキャッシュする。これらの格納された設定も、印刷システムによって定期的に更新されて、プリントサーバの最も新しい設定と同期した状態を保つ。また、リモートプリンタのプリンタドライバもクライアントに格納され、リモート印刷システムおよびローカル印刷システムの両方からアクセスすることができる。
クライアント上のアプリケーションが、リモートプリンタに印刷するコマンドを送信すると、アプリケーションおよび関連するプログラムはまず印刷ジョブを何らかの中間データフォーマットに翻訳する。次いでリモート印刷システムを通じて印刷ジョブを渡す。従来のプリントネットワークのように直接プリントサーバに渡すのではなく、印刷ジョブは次いでローカル印刷システムにルーティングし、そこでローカルキューに格納し、最終的には格納されたプリンタドライバを使用してローカル印刷エンジンによってレンダリングされる。このレンダリングプロセスは、格納された適切なプリンタ設定および管理設定に従って行う。それらの設定をクライアントに格納するので、サーバのオンラインステータスはアプリケーションに対して透過になる。ローカル印刷エンジンは次いで、完全にレンダリングした印刷ジョブを、リモート印刷システムを通じてプリントサーバに送信する。
ローカル印刷エンジンがリモート印刷システムを通じて印刷ジョブの送信し始める時にプリントサーバが使用可能でない場合、ローカル印刷システムは単にプリントサーバがオンライン状態に復帰するまでその印刷ジョブのキューを一時停止する。このプロセスを容易にするために、リモート印刷システムは、予め決められた時間間隔でプリントサーバについてネットワークをポーリングし、また新しいネットワークノードが使用可能になっている可能性がある旨の指示を受け取った時はいつでもポーリングする。プリントサーバが再度論理的にクライアントに接続されると、ローカル印刷システムは、リモート印刷アーキテクチャを通じてプリントサーバに印刷ジョブを送信する。
本発明のこの他の特徴および利点は、添付の図面を参照して進める以下の例示的実施形態の詳細な説明から明らかになろう。
添付の特許請求の範囲に本発明の特徴を具体的に開示したが、本発明は、その目的および利点と共に、添付図面と併せて以下の詳細な説明から最もよく理解できよう。
図面を参照して、コンピューティング環境の関連で以下に本発明を説明する。図面では同様の要素には同様の参照符号を付している。本発明の実施には必須ではないが、本発明は、PC(PC)によって実行されるプログラムモジュールなどのコンピュータ実行可能命令によって実施されるものとして説明する。一般に、プログラムモジュールには、特定のタスクを行うか、特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。
本発明は、PC以外のコンピュータシステム構成でも実施することができる。たとえば、本発明は、ハンドヘルド機器、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な民生用電子機器、ネットワークPC、ミニコンピュータ、メインフレームコンピュータなどに実現することができる。本発明は、通信ネットワークを通じてリンクされた遠隔(リモート)の処理デバイスによってタスクが実行される分散コンピューティング環境でも実施することができる。分散コンピューティング環境では、プログラムモジュールは、ローカルおよびリモート両方のメモリ記憶装置に置くことができる。
本発明は、上述のような多種のコンピューティング環境に組み込むことが可能であるが、以下の本発明の詳細な説明は、従来型のPC20の形態である例示的な汎用コンピューティングデバイスの関連において開示する。
本発明を詳細に説明する前に、本発明が動作するコンピューティング環境を図1との関連で説明する。
PC20は、処理装置21、システムメモリ22、およびシステムメモリ23を含み、このシステムバスはシステムメモリから処理装置21までを含む各種のシステム構成要素を結合する。システムバス23は、各種のバスアーキテクチャの任意のものを使用したメモリバスまたはメモリコントローラ、ペリフェラルバス、およびローカルバスを含む数タイプのバス構造のいずれでもよい。システムメモリは、読み取り専用メモリ(ROM)24およびランダムアクセスメモリ(RAM)25を含む。起動時などにPC20内の要素間の情報転送を助ける基本ルーチンを含む基本入出力システム(BIOS)26は、ROM24に格納される。PC20はさらに、ハードディスク60との間で読み出しおよび書き込みを行うハードディスクドライブ27、および取り外し可能な磁気ディスク29との間で読み出しおよび書き込みを行う磁気ディスクドライブ28を含む。
ハードディスクドライブ27および磁気ディスクドライブ28は、それぞれハードディスクドライブインタフェース32および磁気ディスクドライブインタフェース33によってシステムバス23に接続される。これらのドライブとそれらに関連付するコンピュータ可読媒体は、PC20のコンピュータ可読命令、データ構造、プログラムモジュールおよびその他のデータの不揮発性の記憶を提供する。ここで説明する例示的環境ではハードディスク60および取り外し可能磁気ディスク29を用いるが、当業者に理解されるように、光ディスクドライブおよびディスク、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイカートリッジ、ランダムアクセスメモリ、読み取り専用メモリなど、データを格納することができ、コンピュータからのアクセスが可能な他種のコンピュータ可読媒体もこの例示的動作環境で使用することができる。
ハードディスク60、磁気ディスク29、ROM24またはRAM25には複数のプログラムモジュールを格納することができ、これにはオペレーティングシステム35、1つまたは複数のアプリケーションプログラム36、他のプログラムモジュール37、およびプログラムデータ38が含まれる。ユーザは、キーボード40やポインティングデバイス42などの入力装置を通じてPC20にコマンドと情報を入力することができる。この他の入力装置(図示せず)には、マイクロフォン、ジョイスティック、ゲームパッド、衛星受信アンテナ、スキャナなどが挙げられる。これらおよびその他の入力装置は、システムバスに結合されたシリアルポートインタフェース46を通じて処理装置21に接続されることが多いが、パラレルポート34、ゲームポート、ユニバーサルシリアルバス(USB)など、他のインタフェースで接続することもできる。ビデオアダプタ48などのインタフェースを介して、モニタ47またはその他のタイプの表示装置もシステムバス23に接続される。モニタに加えて、PCは通例、パラレルポートインタフェース34を通じてシステムバス23に接続されたスピーカやプリンタ30などの他の周辺出力装置を含む。
PC20は、プリントサーバ49などの1つまたは複数のリモートコンピュータとの論理接続を使用するネットワーク化された環境で動作することができる。プリントサーバ49は、別のPC、サーバ、ルータ、ネットワークPC、ピアデバイス、あるいは他の共通ネットワークノードでよく、通例は、PC20との関連で上述した要素の多くを含むが、プリントサーバ49は、PC20からの印刷要求を接続されたプリンタ50にルーティングすることの専用とされることが多い。図1に示した論理接続は、ローカルエリアネットワーク(LAN)51およびワイドエリアネットワーク(WAN)52を含む。このようなネットワーキング環境は、オフィス、企業全体のコンピュータネットワーク、イントラネット、インターネットに一般的に見られる。
LANネットワーキング環境で使用する場合、PC20はネットワークインタフェースまたはアダプタ53を通じてローカルネットワーク51に接続される。WANネットワーキング環境で使用する場合、PC20は通例、WAN52を通じて通信を確立するためのモデム54またはその他の手段を含む。モデム54は内蔵でも外付けでもよく、シリアルポートインタフェース46を介してシステムバス23に接続される。ネットワーク化された環境では、PC20との関連で図示したプログラムモジュール、またはその一部は遠隔のメモリ記憶装置に格納することができる。図示したネットワーク接続は例示的なものであり、コンピュータ間に通信リンクを確立する他の手段を使用することができることは理解されよう。
以下の説明では、別途示されない限りは、1つまたは複数のコンピュータによって行われる行為および動作の記号表現を参照して本発明を説明する。そのため、場合によってはコンピュータによって実行するものとしてみなされるこうした行為および動作には、構造化された形態でデータを表す電気信号のコンピュータの処理装置による操作が含まれることは理解されよう。この操作ではデータを変形するか、コンピュータのメモリシステム中の場所にデータを保持するが、それにより、当業者によく知られる態様で、コンピュータの動作が再構成されるか、そうでなければ変更される。データが保持されるデータ構造は、そのデータのフォーマットによって規定される特定のプロパティを有するメモリの物理的な場所である。しかし、本発明は前述の関連において説明しているが、以下で述べる行為および動作の多くはハードウェアに実装することもできることが当業者には理解されるように、これは限定的であることを意味するものではない。
本発明の重要な一態様によれば、クライアントPC20は、プリントサーバ49の管理設定と同期して、格納された管理設定を使用してローカルにドキュメントをレンダリングし、ドキュメントを適切なネイティブプリンタ言語でプリントサーバ49に転送する前にローカルでキューに入れる。
本発明によれば、クライアントPC20は、プリントサーバ49に論理的に接続されていない時には、リモートプリンタ50にレンダリングするためにドキュメントを準備するさらなる能力を有する。そしてクライアントPC20は、プリントサーバ49が使用可能になるまでプリントサーバ49をポーリングし、そうなった時間の後にドキュメントをレンダリングし、印刷のために転送することができる。
図面を参照すると、本発明の一実施形態を実施するための例示的ソフトウェアアーキテクチャを図2に示す。クライアントPC20上で、単一のアプリケーション36がユーザレベルで実行されるのが図示されている。ユーザレベルとは、コンピュータで実行されるプログラムがコンピュータユーザとやりとりするレベルのことである。他の実施形態では、クライアントPC20で多くのアプリケーションが同時に実行していてもよく、そのそれぞれが印刷サブシステム202〜203にアクセスすることができる。ローカルまたはリモートにPC20に接続されたプリンタに印刷するために、大半のアプリケーション36は、必要とされる機能のすべてをそれ自体で実装することはなく、代わりに外部モジュールに依存する。しかし、代替の実施形態では、印刷サブシステムは、アプリケーション36自体の一部、オペレーティングシステム35の一部、あるいは基礎となるオペレーティングシステム機能を使用する別個のプログラムであってもよい。
図2に示す実施形態では、ドキュメントを印刷しようとするアプリケーション36はまずオペレーティングシステムモジュール35と通信する。それらのオペレーティングシステムモジュール35は、アプリケーション36と共に、アプリケーション固有のドキュメントデータをより汎用的な中間データフォーマットに翻訳するのに必要な機能を提供し、新たにフォーマットされたドキュメントを印刷サブシステムに転送する。別の実施形態では、オペレーティングシステム35の支援を受けずに、アプリケーション36自体がアプリケーション固有のドキュメントデータを汎用的な中間データフォーマットに翻訳する。さらに別の実施形態では、アプリケーション36は、どのアプリケーション36がそれを送ったのかを示す何らかの指示とともにアプリケーション固有のドキュメントデータを印刷サブシステムに送信し、印刷サブシステムは、アプリケーション固有のデータをネイティブのプリンタ言語に翻訳することができる。あるいは、アプリケーション36が印刷サブシステム自体を実装し、後に、アプリケーション固有のデータをネイティブのプリンタ言語に直接翻訳する。
アプリケーション固有のデータが中間データフォーマットに翻訳されると、オペレーティングシステムモジュール35は、印刷サブシステムの最初のレベルであるプリンティングルータ201にドキュメントを転送する。このプリンティングルータ201は、その宛先プリンタが、プリントサーバ49を通じてクライアントPC20に接続されたリモートプリンタ50であるか、あるいはプリントサーバ49を利用せずにパラレルポートインタフェース34または何らかの他の通信媒体を通じて論理的にクライアントPC20に接続されたローカルプリンタ30であるかなど、その宛先プリンタに応じて印刷ジョブをルーティングする。一実施形態では、プリンティングルータ201は、オペレーティングシステムモジュール35またはアプリケーション36によって印刷ジョブとともに送られてくる別個のリモートまたはローカルのインジケータに基づいてこの決定を行う。あるいは、プリンティングルータ201は、ドキュメント自体からこのインジケータを取り出すこともできる。印刷ジョブがリモートプリンタ50に向けられている場合は、リモート印刷機能202専用のサブモジュール群がそのジョブを受け取り、処理する。一方、印刷ジョブがローカルプリンタ30に向けられている場合は、ローカル印刷機能203専用のサブモジュール群がそのジョブを受け取り、処理する。他の実施形態では、プリンティングルータ201を印刷サブシステムのオプションのコンポーネントとしてもよい。代わりに、クライアントPC20は、リモートまたはローカルのプリンタに印刷するだけでよく、その特定のサブモジュールのセットのみを実装することができる。クライアントPC20はまた、リモートおよびローカル両方のプリンタに印刷することもできるが、両方の印刷機能に同一のサブモジュールの多くを再利用することもできる。
図2に示す実施形態では、ローカル印刷サブシステム203は図示する構成要素を備えるが、他の実施形態では、これらの構成要素によって表す機能は、ローカル印刷サブシステム203においてこれよりも少ないか、または多い構成要素で実装することもできる。ローカルプロバイダ220は、サブシステム203のその他の構成要素を調整し、開始から終了までローカルの印刷プロセス全体を連携させる。オペレーティングシステム機能221は、種々雑多の翻訳を行ったり、関数を転送したりして、オペレーティングシステム35によってすでに実装されている機能へのアクセスを提供する。ローカルプリンタ30をアクティブな印刷機能としてオペレーティングシステム35に最初に登録する際に、ローカル印刷サブシステム203は、プリンタ固有のデータをプリンタのリスト223に格納する。このデータは、ローカルプリンタ30の仕様と使用するドライバおよび設定を含むことが多い。代替の実施形態では、印刷ジョブを送信する時にのみプリンタ30を登録し、プリンタリスト223で指定される各種の設定を印刷時に取り出し、適用する。
印刷ジョブがローカルプロバイダ220にルーティングされると、ジョブはまずスケジューラコンポーネント224に登録され、スケジューラコンポーネント224はジョブをスプールファイルの適切なキュー225に入れる。これらのスプールファイルは、中間データフォーマットのドキュメントを表す情報と、このドキュメントをレンダリングする際に使用すべき各種の印刷特性を格納する。ジョブがデスプール(de‐spooling)の状態になる(印刷準備状態)と、スケジューラ224は、スプールファイルをキュー225からプリントプロセッサ222に転送し、プロセッサ222はドキュメントを印刷する準備をする。次いでプリントプロセッサコンポーネント222は、ドキュメントをネイティブプリンタ言語にレンダリングするためにプリンタドライバ226に転送する。ローカルプリンタ30固有のフォーマットされたレンダリング後のドキュメントはローカルプロバイダ220に送り返され、プロバイダ220は、レンダリングされたドキュメントを、ポートモニタ204を通じて提供されるオペレーティングシステム機能を利用して適切なプリンタに送信する。ローカルプリンタ30を行先とする場合は、ポートモニタ204はたとえばパラレルポートインタフェース34を使用することができる。オペレーティングシステム機能にアクセスすることにより、ポートモニタ204は、可能性として各種の通信媒体を通じて通信し、それらの通信媒体をモニタすることができる。
代替の実施形態では、スプールファイルのキュー225をローカル印刷サブシステム203で維持する必要はなく、代わりにオペレーティングシステム35またはアプリケーション36に実装することができる。たとえば、アプリケーション36は、印刷サブシステム203と緊密な通信をとり、前のドキュメントが完全に印刷された時にのみ新規ドキュメントの印刷を開始するであろう。図2を参照して説明するローカルシステム203は通例今日の多くのPC20に見られるが、他の実施形態では、図2を参照して説明する各種の構成要素を同様の、しかしはっきり異なるモジュールに置き換えることもできるであろう。
本発明によれば、図2に示すように、リモート印刷サブシステム202は、図示した構成要素に分解される。他の実施形態では、これらの構成要素によって表す機能はこの例よりも少ないか、または多い構成要素で実装される。第1のコンポーネント、コア210は、ローカルプロバイダコンポーネント220によって提供される機能と同様の機能を提供する。すなわち、各種の他のリモートコンポーネントを連携および調整し、同時に受信から完了まで特定のジョブをトラックする。
一実施形態では、アクティブな印刷機能のためにリモートプリンタ50が選択されると、リモート印刷サブシステム202のコア210は、様々なネットワーキングプロトコル(SMB219やRPC218など)へのアクセスを有する接続マネジャ217を通じて、リモートプリンタ50が接続されたプリントサーバ49と通信する。接続マネジャ217は、リモートプリンタ50に関連する情報を受け取り、この情報には管理設定、プリンタ設定、ドライバ、およびその他の設定が含まれる。この情報は再度コア210に渡され、コア210はローカル印刷サブシステムのプリンタリスト223と記憶空間としてのキャッシュマネジャ215の両方を使用する。この格納された情報は、定期的に同期マネジャ216によって同期されて、プリントサーバ49に格納された最新の情報と一致させる。いくつかの実施形態では、同期マネジャ216は、ある一定の長さの時間の後に更新情報を要求する。他の実施形態では、同期マネジャ216は、情報の変更がプリントサーバ49に登録されたという通知を受け取った後にのみ、格納された情報を更新する。さらに他の実施形態では、プリントサーバ49に格納された情報がクライアント20のコア210によって変更されると、それらの設定を先取りしてにキャッシュに入れる。
そして、印刷ジョブがリモート印刷サブシステム202にルーティングされると、コア210は、同期マネジャ216を使用して各種設定およびドライバが最新のものであることを確認し、次にローカル印刷およびリモート印刷の機能を使用してジョブをレンダリングし、印刷する。リモートプリンタ50が接続されたプリントサーバ49が使用不可である場合、コア210は、到達可能性イベントシステム212に信号を送ってプリントサーバ49についてネットワークをポーリングする。サーバ49が使用可能になると、コア210に通知され、レンダリングされた印刷ジョブが送信される。他の実施形態では、プリントサーバ49が使用不可である場合、印刷ジョブがキャンセルされるか、アプリケーション36自体または他のシステム機能が、プリントサーバ49がオンライン状態に復帰するまで予め決められた時間間隔で印刷ジョブを送信し続ける。図2に示す実施形態では、プリントサーバ49と通信するものとして各種コンポーネントを上記に説明したが、接続マネジャ217がプリントサーバ49との論理接続を有し、すべての通信は接続マネジャ217を通じてルーティングされる。代替の実施形態では、それらの他のコンポーネントは、接続マネジャ217が使用するものと同じネットワークプロトコルを通じてネットワークハードウェアにアクセスする。
リモート印刷サブシステム202の残りのコンポーネントは、上述のコンポーネントに対するサポートを提供する。イベントマネジャ211は、リモート印刷サブシステム202のコンポーネント間で各種のイベント通知を転送する機能を果たす。ポートモニタ213は、ネットワーク51を通じてプリントサーバ49に送られる通信を調整し、外部のポートモニタ204との間で使用されるものと同様のシステム要求に応答する。最後に、スカベンジャー214は、各種の理由で(たとえば要求元のユーザがクライアントPC20からログオフしたなど)その有効性を失っているプリンタおよびジョブのインスタンスを削除する。
図2に示すリモート印刷サブシステム202のソフトウェアアーキテクチャによって行われる各種機能をさらに詳細に説明する際に、以下の図3〜7を参照するとよりこのアーキテクチャについて一層理解されよう。
図3に示すように、本発明による印刷サービスでは、クライアントサイドのレンダリングと管理情報の維持管理をサポートするためにいくつかの重要なタスクを行う。ステップ301で、印刷サービスは、プリントサーバ49から受け取った特定のプリンタ50に関連する管理情報およびデバイス情報の格納を調整する。一実施形態では、印刷サービスのコンポーネント(構成要素)が、プリントサーバ49からの管理情報およびデバイス情報の受信を調整する。この情報はその後クライアントPC20上に配置されたデータ構造に格納され、そこでこの情報はその後ドキュメントを正しく印刷するためにアクセスすることができる。
ステップ303で、そのプリンタ50がアクティブである限り、印刷サービスは、クライアント20の管理情報およびデバイス情報をプリントサーバ49に格納された情報と引き続き同期する。一実施形態では、この同期は、クライアント20に格納された情報をプリントサーバ49に格納された情報と定期的に置き換えることによって行われる。別の実施形態では、プリントサーバ49が該当するプリンタ50に関連する何らかの情報を更新した後にのみ情報を同期する。さらに別の実施形態では、これらの同期法を両方とも実装してネットワークトラフィックを増大し、同時にクライアントPC20に格納された情報の精度も高める。
ステップ305で、印刷サービスは、格納された管理設定およびデバイス設定をドキュメントに適用する。それらの設定を適用することにより、印刷サービスは、ドキュメントのフォーマッティングが適切であり、ネットワークセキュリティの問題が解決されるようにする。これらの設定はサーバが使用不可であってもプリントサーバ49に格納された設定に比較的現状を反映しているので、オフラインのレンダリングが容易になる。これらの設定の適用の詳細については下記でさらに説明する。
最後にステップ307で、印刷サービスは、レンダリングしたドキュメントをプリンタ50に転送するためにプリントサーバ49に送信する。クライアントPC20でドキュメントをレンダリングすることにより、プリントサーバ49から大幅な計算上の負担が取り除かれ、プリントサーバ49をより容易にスケーリングできるようになる。サーバ49およびクライアント20両方の設定がステップ303により頻繁に同期されるので、大半の場合レンダリングプロセスは両方で同じものになり、したがって逸脱したプロセスに伴う問題が回避される。
上述のステップは概略的に説明したが、以下の図4〜7では本発明の実施形態をさらに詳細に示す。指定されたリモートプリンタ50にドキュメントをプリントする際の最初のステップは、今後の印刷タスクのためにプリンタ50をオペレーティングシステム35に登録することである。プリンタの登録は当技術分野でよく知られているが、本発明の特定の態様は、図4および5に示す登録プロセスをユニークなものにしている。図4は、本発明に従ってオペレーティングシステム35がプリンタ50を登録する全体プロセスを示し、図5は、図2の例示的ソフトウェアアーキテクチャでそのプロセスを行う一方式を示す。
当技術分野でよく知られるように、本実施形態は、以降の印刷コマンドがプリンタ50を識別することができるようにステップ401で新しいリモートプリンタ50をオペレーティングシステム35に追加する方法について検討している。一実施例では、オペレーティングシステム35は、ネットワークを通じてブラウズし、使用可能なプリントサーバ49から、それらの接続されたリモートプリンタ50のリストを取り出す。オペレーティングシステム35は、次いでそのリモートプリンタ50を自動的にデータベースに追加するか、またはユーザに印刷ジョブを送信したいプリンタ50を選択させる。他の実施形態では、ユーザが追加したいリモートプリンタ50のネットワークパスを指定し、その新しいプリンタがオペレーティングシステムのデータベースに登録される。さらに他の実施形態では、この最初の登録がオペレーティングシステム35によって行われず、特定の印刷ジョブがアプリケーション36によって送信された時にのみ、以降のステップ403〜407を行う。
ユーザがリモートプリンタ50を登録すると、印刷を制御するこれらのサービスが、ステップ403でプリントサーバ49から管理およびデバイスの情報を受け取る。別の実装では、これらの印刷サービスは、アプリケーション36、オペレーティングシステム35、または印刷サブシステム202、203に実装される。プリントサーバ49から受け取るデバイス情報は、ドライバのバージョン情報、プリンタドライバ自体、プリンタの仕様、プリンタに行われた変更、プリンタの好ましい出力などを含む。一方、プリントサーバ49の管理設定には、リモートプリンタ50の好ましい設定、リモートプリンタ50に許可された特定の設定、クライアントPC20に許可されたアクセスのレベルなどが含まれる。この情報を取り出すために、クライアントPC20は登録時にこの情報をプリントサーバ49に要求する。一実施形態では、この取り出しは、PC20の動作を低下させない非同期プロセスである。別の実施形態では、この情報は、印刷ジョブを処理しようとする時にのみプリントサーバ49から取り出す。
次いで、受け取ったこの情報をステップ405でクライアントPC20に格納する。この情報をローカルに格納することにより、クライアントPC20は、以後プリントサーバ49にアクセスせずにこの管理設定とプリンタ設定を使用してドキュメントをレンダリングすることができる。これにより、より高速のレンダリングプロセスが可能になり(クライアントPC20がネットワーク通信の結果を待つ必要がないため)、またオフラインのレンダリングも可能になる(クライアントPC20が格納された管理設定を使用することができるため)。一実施形態では、印刷サブシステム、アプリケーション36、およびオペレーティングシステム35が、この格納された情報にアクセスする。
プリントサーバ49から受け取ったデバイス情報を使用して、ステップ407で、クライアントPC20でプリンタインスタンスを作成する。プリンタインスタンスとは、単に、印刷サービスが印刷ジョブを処理する際にそのデバイス情報にアクセスできるように、ひとまとまりのデバイス情報を格納したデータ抽象化を指す。異なるプリンタを表すデバイス情報を別々にすることにより、プリンタインスタンスは、アプリケーション36から特定のプリンタに送信される印刷コマンドの実行を容易にする。当技術分野でよく知られるように、プリンタインスタンスはクライアント20で維持されることが多く、ユーザによって入力された情報、またはパラレルポートインタフェース34、USBなどの一般的な通信インタフェースを通じて検出された情報を用いて、ローカルに接続されたプリンタ30を表す。一実施例では、リモートプリンタ50を表すプリンタインスタンスは、ローカルプリンタ30を表すプリンタインスタンスと同様のフォーマットで格納される。
最後に、印刷サービスのいくつかのコンポーネントはまた、ステップ409で、管理およびデバイス情報をプリントサーバに格納された情報と同期する。このステップは、先にステップ303を参照して説明したステップと実質的に同じである。クライアント20に格納された管理およびデバイス情報をプリントサーバ49に格納された情報と同じ状況に保つことにより、本実施形態は、印刷とオフラインレンダリングの精度を促進する。
これらのステップを図4の高レベルの概略図に開示したので、図5では図2の例示的なソフトウェアアーキテクチャにおけるプリンタ登録の一実施例を説明する。最初のステップ501はステップ401と同じであり、オペレーティングシステムによって実装される同様のレガシープロトコルに依存する。残りのステップはほぼ次のように分けられる。ステップ503〜507はステップ403に対応し、ステップ509〜511はステップ405に対応し、ステップ513はステップ407に対応する。
ユーザが新しいリモートプリンタ50を追加すると、オペレーティングシステム35は、リモート印刷サブシステム202のコアコンポーネント210に通知を転送する。ステップ503で、コア210はリモートプリンタ50に関する管理設定およびデバイス情報を接続マネジャ217に要求する。代替の実施形態では、この機能を異なるコンポーネントに実装する必要はない。実際、コア210および接続マネジャ217は、オペレーティングシステム35またはアプリケーション36の一部とすることができる。
この要求を受け取ると、接続マネジャ217は、ステップ505で適切なネットワークプロトコル218、219を使用してプリントサーバ49から情報を取り出す。一実施形態では、接続マネジャ217は、プリントサーバ49と通信するのにRPC(remote procedure call)プロトコル218を優先的に使用しつつ、SMB(あるいはUNIX(登録商標)環境におけるSamba)219などの他の一般的なプロトコルを使用して通信する能力も保持する。代替の実施形態では、他のプロトコルを使用してクライアントPC20とプリントサーバ49間の通信チャネルを実装する。クライアントPC20とプリントサーバ49のどちらか一方が特定のネットワーキングプロトコルをサポートしない場合は、相互に理解可能なプロトコルが選択されるまでそれら2つのコンピュータは代替のプロトコルを試みる。プリントサーバ49は通例、上述のプリンタインスタンスと同様のデータ抽象化に管理およびデバイス情報を格納する。したがって、一実施形態では、接続マネジャ217は、特定のリモートプリンタ50についての情報を要求し、プリントサーバ49はプリンタ50のネットワーク識別子を、データ抽象化に格納されたそのプリンタの関連した特性と照合し、それらの関連した特性を返す。
接続マネジャ217は、この情報を受け取ると、ステップ507で処理のためにその情報をコア210に転送する。一実施形態では、コア210は、プリントサーバ49によって適用された管理設定を、ステップ509でリモートサブシステムのキャッシュマネジャ215のキャッシュエントリに格納する。キャッシュマネジャ215は、情報を格納するキャッシュエントリを備えるデータ構造である。一実施例では、識別子テーブル、好ましくはハッシュテーブルを使用してそのキャッシュエントリをそれぞれのリモートプリンタに関連付けて、キャッシュエントリへのアクセスを高速にする。あるいは、当技術分野で周知の他の記憶手段を使用して、管理設定を格納し、アクセスする。
一実施形態では、管理設定はリモート印刷サブシステム202に格納されるが、コア210によって受け取られる他のデバイス情報はステップ511でローカルプロバイダ220に転送される。ステップ513で、ローカルプロバイダ220は、そのプリンタリスト223中のリモートプリンタ50を表すローカルのシャドウプリンタインスタンスを作成する。このリモートプリンタ50に対応するローカルのシャドウプリンタインスタンスは、上述のローカルプリンタ30に対応するローカルプリンタインスタンスと同じフォーマットとされる。しかし、ローカルプリンタ30を表すローカルプリンタインスタンスは外部ポートモニタ204を通じて印刷ジョブを送信するのに対して、リモートプリンタ49を表すローカルシャドウプリンタインスタンスは、リモート印刷サブシステムのポートモニタ213を通じて印刷ジョブを送信する。ローカル印刷サブシステム203は、それらリモートプリンタ50への印刷コマンドを処理する際にはローカル印刷機能を利用して、すべての他のローカルプリンタインスタンスと同様にローカルシャドウプリンタインスタンスを扱うことが好ましい。
ステップ515で、リモート印刷サブシステム202内のプロセスが、クライアントPC20に格納された管理およびデバイス情報がプリントサーバ49に格納された情報と同期されていることを確認する。一実施形態では、同期マネジャ216が更新された情報を定期的にプリントサーバ49に要求し、これによりキャッシュマネジャ215およびローカル印刷サブシステム203に格納された情報を置き換える。別の実施形態では、同期マネジャ216は定期的に、ローカルに格納された管理およびデバイスの情報をプリントサーバ49の情報と比較する。それらの情報が異なる場合、同期マネジャ216は、キャッシュマネジャ215およびローカル印刷サブシステム203に格納された相違する情報を置き換える。さらに別の実施形態では、コア210は、接続マネジャ217を通じてプリントサーバ49をポーリングして、プリントサーバ49上の管理およびデバイス設定が変化したかどうかを判定する。プリントサーバ49は、変化が生じたかどうかを示す小さなデータ構造を保持することができ、このデータ構造にはコア210からアクセスすることができる。コア210が受け取った応答は同期マネジャ216に送信され、同期マネジャ216はローカルに格納された設定を適切に更新する。これらの方法は単に例示的なものであり、管理設定およびデバイス設定を新しい内容に保つためには同期マネジャ216またはリモート印刷サブシステム202の別のコンポーネントは他の方法を使用することができる。
リモートプリンタ50がオペレーティングシステム35に登録されると、アプリケーション36はそのプリンタに印刷ジョブを送ることができる。本発明が企図するユニークな印刷プロセスを図6および7に記載する。図6は、アプリケーション36がリモートプリンタ50に印刷する全体的なプロセスを記載し、図7は、図2の例示的ソフトウェアアーキテクチャでそのプロセスを行う一方式を示している。
リモートプリンタ50にデータを印刷する際の最初のステップは、言うまでもなく、プリント機能を有するアプリケーション36にアクセスし、その機能を利用することである。したがって、ステップ601では、ユーザはアプリケーション36から何らかの印刷コマンドを送信し、リモートプリンタ50にドキュメントを送信すべきことを知らせる。別のアプリケーションでは、別の方法を使用してこの機能を行う。一実施例では、ユーザはメニューから、あるいはキーボード40のキーの組み合わせてまたは連続して押すことで「印刷」コマンドを選択する。この印刷コマンドは選択方法に関係なく、次いで、ユーザに対象とするプリンタに関する入力を求める。代替の実装では、リモートプリンタ50は、現在の「デフォルト」プリンタとして事前に選択してもよい。
この印刷コマンドを処理すると、アプリケーション36は、オペレーティングシステムモジュール35の支援により、ステップ603で、独自の(proprietary)アプリケーションフォーマットで格納されたドキュメントを中間データフォーマットに翻訳する。この中間データフォーマットは、リモートプリンタ50でドキュメントを正確に印刷するのに十分な情報を含んでいる。しかし、この中間データフォーマットは、リモートプリンタ50にもアプリケーション36にも固有ではない。このようにして、その特定のアプリケーションソースやターゲットプリンタを気にすることなくドキュメントをフォーマットし、変更することができ、こうした変形を実行するこれらのサブシステムは、プリンタ50またはアプリケーション36の選択にはほとんど依存しない。しかし、他の実施形態では、中間データフォーマットが必要とされないこともある。アプリケーション36が基礎となるオペレーティングシステム35によって提供される機能にアクセスせずに直接リモートプリンタ50んい印刷する上述の場合は、アプリケーション36は単に、送信のためにファイルをネイティブプリンタ言語に翻訳しなければならなくなるまでは、自身のアプリケーション固有のフォーマットを使用する。さらに他の実施形態では、ドキュメントに行われるフォーマットの変更は、異なるアプリケーション固有のフォーマットそれぞれに関して印刷サブシステムによって実行され、中間データへの翻訳を不要にする。
中間ファイルを作成すると、ステップ607でそれをクライアント20のキューに入れる。一実施形態では、このキューはプリンタインスタンスにつき1つのキューをもつデータ構造を表す。キューにドキュメントを追加する際、当分野の技術者に良く知られるように、そのドキュメントは一定の例外を除いて先入れ先出しのフォーマットで配置される。キューに最初に追加されたドキュメントはリモートプリンタ50に最初に印刷される。リモートプリンタ50に接続されたプリントサーバ49はまた、それ自身のキューに関するデータをクライアント20に送信し、2つのコンピュータは各自のキューを併合して、クライアント20が、プリントサーバ49によって受け取られる他の印刷ジョブとの関係で適切な時間に印刷ジョブを送るようにする。クライアント20は、受け取ったデータを使用して、その印刷ジョブがいつ印刷されることになるか、そして他のユーザのドキュメントとの関係でどのような順序で印刷されることになるかをユーザに通知することもできる。他の実施形態では、このキューをアプリケーション36内で実装するか、あるいはキューを実装しなくともよく、元の印刷要求が否定された場合、アプリケーション36は予め決められた時間間隔で印刷要求を送信する。
ドキュメントがキューの先頭に到達し、リモートプリンタ50に送信される状態になると、クライアント20は、ステップ609でプリントサーバ49が使用可能であるかどうかを判定する。当技術分野でよく知られるように、クライアント20はこの決定をいくつかの可能な方法の1つで行う。その方法には、単に基礎となるネットワーク機能を使用してプリントサーバ49にpingすること、同意されたネットワークプロトコルの1つを使用して印刷ジョブを受け付けることができるかどうかをプリントサーバ49に尋ねること、あるいは印刷要求が失敗するまではプリントサーバ49が使用可能であると想定することが含まれる。クライアント20が、プリントサーバ49が使用可能であると判断した場合は、中間ファイルをリモートプリンタ50のネイティブプリンタ言語にレンダリングし、結果として得られるドキュメントをステップ611でプリントサーバ49に送信する。
ステップ405〜407に記載したように、リモートプリンタ50のドライバ、プリンタ設定、および管理設定に関する情報はクライアント20に格納されているので、中間ファイルを効率的にネイティブプリンタ言語にレンダリングすることができる。これらの格納された設定は、同期マネジャ216による最後の更新時に格納された古い設定であっても、特定のドキュメントを印刷する直前にプリントサーバ49から受け取った新しい設定であってもよい。一実施形態では、ネットワークトラフィックは増大するが新しい設定を利用することが好ましい方法である。代替の実施形態では、サーバ49とクライアント20の設定が同期されない可能性がより高くなるが、古い設定が好ましい。デバイスおよびプリンタの設定はリモートプリンタ50の物理的特性を記述するが、管理設定は、レンダリングされる際に中間ファイルに各種のフォーマッティングの編集と印刷の編集(紙の両面に内容を印刷するなど)を行うことを要求することが好ましい。他の実施形態では、ステップ603の前にアプリケーション36によって管理設定を受け取り、アプリケーション36はこれらの設定を使用して、すでに管理設定が適用された中間ファイルを作成する。さらに他の実施形態では、初めにプリンタおよび管理の設定を中間ファイルに適用し、次いでそのプリンタ設定とドライバを使用して、中間ファイルをリモートプリンタ50により可読のドキュメントに変換する。そのようなドキュメントは、リモートプリンタ50のネイティブのプリンタ言語で書かれる。レンダリングされるとそのドキュメントはプリントサーバ49に送られ、そこで該当するリモートプリンタ50にルーティングされる。プリントサーバ49は、必要に応じてそのドキュメントを該当するプリンタのキューに追加するが、一般的な印刷ネットワークとは異なり、プリントサーバ49は、ファイルをプリンタ50に送る前にファイル変換やフォーマットの変更を行う必要がない。ドキュメントをクライアント20でレンダリングすることにより、プリントサーバ49のリソースが他のタスクのために解放される。
クライアント20がポーリングした時にプリントサーバ49が使用可能でない場合は、中間ファイルは単にステップ613でそのプリンタのキューの中に残る。一実施形態では、クライアント20は、予め決められた時間間隔でプリンタサーバ49をポーリングして、サーバが使用可能になったか否かを判定する。クライアント20は、プリントサーバ49が使用可能になった可能性があることを示すネットワークまたはデバイスのアクティビティを待機することもできる。クライアント20は次いで予め決められた時間間隔と特定アクティビティの後の両方でポーリングを行って、できるだけ早く印刷できるようにする。代替の実施形態では、クライアント20は、予め決められた時間間隔でプリントサーバ49をポーリングする。不都合なことに、この時間間隔は、通例は、ドキュメントを印刷する前に起こりうる待機時間を延長して長すぎるか、あるいは短すぎ、その場合は貴重なネットワークとCPUのリソースをポーリングで使用してしまう。別の実施形態では、クライアント20は、デバイスとネットワークのアクティビティに耳を傾けて、告知を受け取るとプリントサーバ49をポーリングする。しかし、クライアント20がデバイスまたはネットワークの告知を見逃した場合は、クライアント20はプリンタサーバ49をポーリングせず、ドキュメントを印刷しないことになる。これらの2つの方法を組み合わせることにより、第1の実施形態は上記の不都合点の多くを回避しつつ、両方式の利点を備える。
これらのステップを高レベルで説明したので、図7では、図2の例示的ソフトウェアアーキテクチャにおける本発明の一実施形態による印刷プロセスの一実施例を示す。最初のステップ701〜703は、ステップ601および603と同じである。残りのステップは次のように分けられる。ステップ705〜707はステップ605に対応し、ステップ709〜711はステップ607に対応し、ステップ713はステップ609に対応し、ステップ715〜717はステップ611に対応し、ステップ719〜721はステップ613に対応する。アプリケーション36を通じて印刷コマンドを送信し、中間データフォーマットのファイルを作成する最初のステップについては上記でかなり詳細に説明したので、以下の説明はステップ705から始める。
アプリケーション36およびオペレーティングシステムモジュール35が中間ファイルフォーマットを作成すると、ステップ705でプリンティングルータ201により中間ファイルをリモート印刷サブシステムのコア210にルーティングする。一実施形態では、プリンティングルータ201は、オペレーティングシステム35に登録されたリモートおよびローカルのプリンタのリストを保持しており、印刷ジョブをルータ201に転送すると、ターゲットプリンタがどのリストのメンバであるかに基づいて印刷ジョブが適切な印刷サブシステムに送信される。代替の実施形態では、その印刷ジョブがリモートプリンタを行先とするかまたはローカルプリンタを行先とするかについての別個の指示とともに印刷ジョブを送信し、その指示をルータ201がインターセプトし、処理する。
中間ファイルを受け取り、処理すると、ステップ709でコアは中間ファイルをローカルプロバイダ220に転送する。一実施形態では、この転送されたファイルは、ローカル印刷ジョブと同様にローカルプロバイダ220が受け取り、処理する。したがって、本発明のこの実施形態では、リモート印刷の状況においてローカルの印刷機能を使用し、それら機能の多くを二重にする必要性をなくしている。ステップ711で、ローカルプロバイダ220は、その印刷ジョブがどのローカルシャドウプリンタインスタンスを対象とするかを判定し、そのローカルシャドウプリンタインスタンスに関連付けられたキューにジョブを入れる。代替の実施形態では、リモート印刷サブシステム202は、ローカルの印刷機能をそれ自体で実装し、したがって印刷ジョブをリモートキューに入れ、ローカル印刷サブシステム203がローカル印刷ジョブに集中できるようにする。
印刷ジョブが該当するキューの先頭に来るようにすると、レンダリング済みのドキュメントをプリントサーバ49に送信する前に、リモートポートモニタ213がまずプリントサーバ49が使用可能であるかどうかをステップ713で判定する。一実施形態では、リモートポートモニタ213は、ローカル印刷サブシステム203によってレンダリングが行われる前に使用可能性を調べる。代替の実施形態では、印刷ドキュメントの一部の処理がパイプライン化される。したがって、リモートポートモニタ213は、ローカル印刷サブシステム203によって何らかのレンダリングが行われた後にのみ使用可能性をチェックする。しかし、サーバが使用不可であると判定されると、第2の実施形態で部分的にレンダリングされたデータが失われるので両実施形態は収斂する。
プリントサーバ49が使用可能である場合、例示的な実施形態では、ローカルプロバイダ220は、プリントプロセッサ222に印刷ジョブを転送し、プリントプロセッサ222は、ローカルシャドウプリンタインスタンスに関連付けられ、格納されたデバイスおよび管理の設定を適用する。これらの管理設定には、ステップ611に関して上述した設定が含まれる。キャッシュマネジャ215によって格納されたキャッシュエントリは、管理設定をそれぞれのリモートプリンタ50およびプリントサーバ49と一致させるので、プリンタの識別がキャッシュマネジャ215に送られ、要求された設定が返される。ある場合では、コア210は、現在格納されている設定がプリントサーバ49に格納された設定と同期していることを検証する。一実施形態では、コア210は、同期マネジャ216と通信し、接続マネジャ217を使用して上記のステップ509で記載したように最新の管理設定でキャッシュマネジャ215を更新する。しかし、このプロセスの間にプリントサーバ49が使用可能でない場合は、プリントプロセッサ222は格納されたデバイスおよび管理の設定を更新せずに使用する。格納された設定を更新せずに印刷プロセスを続行できるようにすることにより、本実施形態はオフラインの印刷とレンダリングを容易にする。他の実施形態では、コア210は、印刷プロセスを続ける前に管理設定をプリントサーバ49と更新することを要求し、オフラインの印刷とレンダリングを妨げる。さらに他の実施形態では、コア210は管理設定を更新せず、代わりに、明示的に更新を指示されるまでは同期マネジャ216によって最後に同期された管理設定を使用する。
ステップ715で、クライアント20に格納されたプリンタドライバ226とオペレーティングシステム機能221によってドキュメントを適切なネイティブプリンタ言語に翻訳する。このデバイスおよび管理設定の適用と適切なプリンタドライバによる翻訳は、当技術分野でよく知られる方法を使用して行われる。実際、一実施形態では、これらの機能はほとんど変更を行わない従来のローカル印刷サブシステム203によって実行され、それにとってファイルの最終的な宛先は透過となる。
本発明の一実施形態では、印刷ドキュメントの一部の処理がパイプライン化される。したがって、ステップ717で、ネイティブプリンタ言語になっているドキュメントの一部をリモート印刷サブシステムのポートモニタ213を通じて送信する。ドキュメントの一部分がレンダリングされると、後続の部分がレンダリングされている間、それらはポートモニタ213を通じて送信される。言うまでもなく、上述のように、リモートポートモニタ213は、これらのタスクを連携させるだけである。リモートポートモニタ213は接続マネジャ217と通信し、接続マネジャ217は、印刷ジョブをプリントサーバ49に送るのに必要なネットワークプロトコルを実装する。代替の実施形態では、リモートポートモニタ213は、ドキュメントをレンダリングと同時に送信する必要はない。代わりに、ローカルプロバイダ220が、ドキュメントをスプールファイルのキュー225に入れる前にレンダリングするか、またはローカルプロバイダ220が、ドキュメントをポートモニタ213に転送する前にキューから完全にレンダリングする。ここに特定した動作を実行する正確な態様は、本発明の実施にとって本質的ではない。
図7のステップ713に開示するように、リモートポートモニタ213は、プリントサーバ49が使用可能でないと判断した場合、制御はステップ719に渡り、そこでローカル印刷サブシステム203による設定の適用と翻訳が停止され、プリントサーバ49に対応するクライアントのキューが一時停止される。その後、ステップ721でクライアント20はサーバ49のポーリングを開始する。一実施形態では、ローカルプロバイダ220によって管理されるキューをリモートポートモニタ213によって一時停止する。これは、この方法が、多くの既存のローカル印刷サブシステム203でプリンタの障害に対処する単純でよく知られる方法だからである。代替の実施形態では、ローカル印刷サブシステム203がプリンタ障害に対処する任意の特定の方法を実装し、これには、すべての印刷ジョブをキャンセルし、アプリケーション36がその後の何らかの時点で印刷ジョブデータを再送すべきことを知らせることが含まれる。
本発明の一実施形態では、ステップ721で、リモート印刷サブシステム202に組み込まれた到達可能性イベントシステム212が接続マネジャ217を使用してプリントサーバ49をポーリングする。到達可能性イベントシステム212は、ステップ613との関係で上述したポーリング方式の1つを実装することが好ましい。リモートの到達可能性イベントシステム212が、プリントサーバ49が使用可能である旨の通知をコア210に送信すると、キューの一時停止が解除され、プリント動作がステップ715に進んで、中間ファイルが処理され、プリントサーバ49に送られる。
リモート印刷サブシステムのコンポーネントの一部またはすべてに障害が発生した場合、あるいはすべての印刷ジョブが実行される前にユーザがログオフした場合には、本発明の一実施形態はスカベンジャーコンポーネント214も提供する。スカベンジャー214は、キャンセルされたか、もはや印刷すべきでないジョブに対応するローカルシャドウプリンタインスタンス、キャッシュされたエントリ、あるいはスプールファイルが確実に削除されるようにする。したがって、複数のサブシステムおよびコンポーネントにわたって印刷ジョブを調整することに伴う潜在的な問題が、このコンポーネントの機能によって緩和される可能性がある。
本発明の原理を適用できる多くの可能な実施形態に鑑みて、図面との関係でここに記載する実施形態は、単に説明のために過ぎず、本発明の範囲を限定するものとして解釈すべきでないことを認識されたい。たとえば、当業者には理解されるように、ソフトウェアとして図示した例示的実施形態の要素はハードウェアに実装してもよく、その逆も同様であり、あるいはここに例示した実施形態は本発明の精神から逸脱することなく構成と詳細を変更することができる。さらに、説明のためのステップは、本発明から逸脱することなく変更、補足、および/または順序を変えてもよい。したがって、本明細書に記載する本発明は、添付の特許請求の範囲およびその均等物に該当するそのようなすべての実施形態が企図されている。
本発明の一実施形態で使用することが可能な例示的コンピュータシステムを一般的に示す概要図である。 本発明の一実施形態を実施する例示的プログラム構造を示す概要図である。 本発明の一実施形態によるコンピュータシステムで実行される印刷ステップを説明する流れ図である。 本発明の一実施形態によるリモートプリンタのインスタンス化を説明する流れ図である。 本発明の一実施形態による図2の例示的プログラム構造を使用したリモートプリンタのインスタンス化を説明する詳細な流れ図である。 本発明の一実施形態によるアプリケーションがリモートプリンタに印刷することを説明する流れ図である。 本発明の一実施形態による図2の例示的プログラム構造を使用してアプリケーションがリモートプリンタに印刷することを説明する詳細な流れ図である。
符号の説明
20 PC
21 処理装置
22 システムメモリ
23 システムバス
24 ROM
25 RAM
26 BIOS
27 ハードディスクドライブ
28 磁気ディスクドライブ
29 磁気ディスク
30 プリンタ
32 ハードディスクドライブインタフェース
33 磁気ディスクドライブインタフェース
34 パラレルポート
35 オペレーティングシステム
36 アプリケーションプログラム
37 プログラムモジュール
38 プログラムデータ
40 キーボード
42 ポインティングデバイス
46 シリアルポートインタフェース
48 ビデオアダプタ
49 プリントサーバ
50 リモートプリンタ
51 LAN
52 WAN
54 モデム
60 ハードディスク
201 プリンティングルータ
202、203 印刷サブシステム(サブモジュール群)
204、213 ポートモニタ
210 コア
211 イベントマネジャ
212 到達可能性イベントシステム
214 スカベンジャー
215 キャッシュマネジャ
216 同期マネジャ
217 接続マネジャ
218 RPC
219 SMB
220 ローカルプロバイダ
221 オペレーティングシステム機能
222 プリントプロセッサ
223 プリンタリスト
224 スケジューラコンポーネント
225 キュー
226 プリンタドライバ

Claims (25)

  1. ネットワーク化されたクライアントコンピュータ、ターゲットとなるネットワーク化されたプリンタデバイス、およびプリントサーバコンピュータを含むネットワーク上でドキュメントをリモートに印刷する方法であって、
    前記プリントサーバコンピュータによって適用される前記ターゲットとなるネットワーク化されたプリンタデバイスの管理設定を前記クライアントコンピュータ上に格納するステップと、
    前記クライアントコンピュータ上の同期マネジャを使用して、前記格納された管理設定を更新して、現在のプリントサーバコンピュータの管理設定との同期を維持するステップと、
    前記格納された管理設定を前記クライアントコンピュータ上で前記ドキュメントに適用するステップと、
    前記クライアントコンピュータ上で、前記ドキュメントを前記ターゲットとなるネットワーク化されたプリンタデバイスのネイティブプリンタ言語でレンダリングするステップと、
    前記レンダリングしたドキュメントを前記プリントサーバコンピュータに送信するステップと
    を備えることを特徴とする方法。
  2. 前記クライアントコンピュータ上で前記ドキュメントをレンダリングするステップと前記レンダリングしたドキュメントを送信するステップは、実質的に同時に行われることを特徴とする請求項1に記載の方法。
  3. 前記クライアントコンピュータ上で前記ドキュメントをレンダリングするステップは、
    前記プリントサーバコンピュータが使用可能でない時には前記ネットワークをポーリングして前記プリントサーバコンピュータが使用可能になるときを判定するステップ
    をさらに備えることを特徴とする請求項2に記載の方法。
  4. 前記ネットワークをポーリングするステップは、前記プリントサーバコンピュータが使用可能である可能性があることを示すデバイスおよびネットワークアクティビティに応答して前記プリントサーバコンピュータをポーリングするステップをさらに備えることを特徴とする請求項3に記載の方法。
  5. 前記ネットワークをポーリングするステップは、前記ネットワークを定期的にポーリングするステップをさらに備えることを特徴とする請求項3に記載の方法。
  6. 前記クライアントコンピュータ上で前記ドキュメントをレンダリングするステップは、ローカル印刷機能を利用することを特徴とする請求項1に記載の方法。
  7. 前記レンダリングしたドキュメントを前記プリントサーバコンピュータに送信するステップは、ローカル印刷機能を利用することを特徴とする請求項6に記載の方法。
  8. 前記クライアントコンピュータ上で前記ドキュメントをレンダリングするステップは、非同期に行われることを特徴とする請求項1に記載の方法。
  9. 前記クライアントコンピュータ上で前記ドキュメントをレンダリングするステップは、前記ドキュメントをキューに加えるステップを含むことを特徴とする請求項1に記載の方法。
  10. 前記管理設定を更新するステップは、クライアントコンピュータ上で前記ターゲットとなるネットワーク化されたプリンタデバイスを登録することと関連して最初に行われることを特徴とする請求項1に記載の方法。
  11. 前記格納された管理設定を前記ドキュメントに適用するステップは、
    前記プリントサーバコンピュータが使用可能でない場合は、前記格納された設定を前記ドキュメントに適用するステップ
    をさらに備えることを特徴とする請求項1に記載の方法。
  12. 前記格納された管理設定を前記ドキュメントに適用するステップは、
    前記プリントサーバコンピュータが使用可能である場合は、前記格納された管理設定を前記ドキュメントに適用する前に前記格納された管理設定を更新するステップを行うステップ
    をさらに備えることを特徴とする請求項1に記載の方法。
  13. アプリケーションがドキュメントを印刷するコマンドを発行することに応答してクライアントサイドの印刷レンダリングを容易にするネットワークの中のクライアントコンピュータシステムであって、
    前記印刷コマンドを処理および解釈するオペレーティングシステムと、
    指定されるターゲットとなるネットワーク化されたプリンタデバイスに応じて前記印刷コマンドをリモート印刷サブシステムにルーティングするプリンティングルータと、
    プリントサーバコンピュータから受け取った管理設定を格納し、ネイティブプリンタ言語に変換された前記ドキュメントを前記プリントサーバコンピュータに転送する前記リモート印刷サブシステムと、
    前記格納された管理設定を前記ドキュメントに適用し、前記ターゲットとなるネットワーク化されたプリンタデバイスによって利用される前記ネイティブプリンタ言語に従って前記ドキュメントを変換するレンダリングサブシステムと、
    前記プリントサーバコンピュータに、前記ターゲットとなるネットワーク化されたプリンタデバイスの現在の管理設定を要求する同期マネジャと
    を備えたことを特徴とするコンピュータシステム。
  14. 前記同期マネジャは、前記現在の管理設定を定期的に要求することを特徴とする請求項13に記載のコンピュータシステム。
  15. 前記同期マネジャは、前記レンダリングサブシステムが前記格納された管理設定を適用する前に前記現在の管理設定を要求することを特徴とする請求項13に記載のコンピュータシステム。
  16. 前記プリントサーバコンピュータが使用可能でない場合に前記プリントサーバコンピュータをポーリングする到達可能性イベントシステム
    をさらに備えたことを特徴とする請求項13に記載のコンピュータシステム。
  17. 前記到達可能性イベントシステムは、前記プリントサーバコンピュータを定期的にポーリングすることを特徴とする請求項16に記載のコンピュータシステム。
  18. 前記到達可能性イベントシステムは、前記プリントサーバコンピュータが使用可能である可能性があることを示すデバイスおよびネットワークのアクティビティに応答して前記プリントサーバコンピュータをポーリングすることを特徴とする請求項16に記載のコンピュータシステム。
  19. ネットワーク化されたクライアントコンピュータ、ターゲットとなるネットワーク化されたプリンタデバイス、およびプリントサーバコンピュータを含むネットワーク上でドキュメントをリモートに印刷する方法を行うコンピュータ実行可能命令を備えるコンピュータ可読媒体であって、前記方法は、
    前記プリントサーバコンピュータによって適用される前記ターゲットとなるネットワーク化されたプリンタデバイスの管理設定を前記クライアントコンピュータ上に格納するステップと、
    前記クライアントコンピュータ上の同期マネジャを使用して、前記格納された管理設定を更新して、現在のプリントサーバコンピュータの管理設定との同期を維持するステップと、
    前記格納された管理設定を前記クライアントコンピュータ上で前記ドキュメントに適用するステップと、
    前記クライアントコンピュータ上で、前記ドキュメントを前記ターゲットとなるネットワーク化されたプリンタデバイスのネイティブプリンタ言語でレンダリングするステップと、
    前記レンダリングしたドキュメントを前記プリントサーバコンピュータに送信するステップと
    を備えたことを特徴とするコンピュータ可読媒体。
  20. 前記クライアントコンピュータ上で前記ドキュメントをレンダリングするステップは、
    前記プリントサーバコンピュータが使用可能でない時には前記ネットワークをポーリングして前記プリントサーバコンピュータが使用可能になるときを判定するステップ
    をさらに備えたことを特徴とする請求項19に記載のコンピュータ可読媒体。
  21. 前記ネットワークをポーリングするステップは、前記プリントサーバコンピュータが使用可能である可能性があることを示すデバイスおよびネットワークアクティビティに応答して前記プリントサーバコンピュータをポーリングするステップをさらに備えたことを特徴とする請求項20に記載のコンピュータ可読媒体。
  22. 前記ネットワークをポーリングするステップは、前記ネットワークを定期的にポーリングするステップをさらに備えたことを特徴とする請求項20に記載のコンピュータ可読媒体。
  23. 前記格納された管理設定を前記ドキュメントに適用するステップは、
    前記プリントサーバコンピュータが使用可能でない場合は前記格納された設定を前記ドキュメントに適用するステップ
    をさらに備えたことを特徴とする請求項19に記載のコンピュータ可読媒体。
  24. 前記格納された管理設定を前記ドキュメントに適用するステップは、
    前記プリントサーバコンピュータが使用可能である場合は、前記格納された管理設定を前記ドキュメントに適用する前に前記格納された管理設定を更新するステップを行うステップ
    をさらに備えたことを特徴とする請求項19に記載のコンピュータ可読媒体。
  25. アプリケーションがドキュメントを印刷するコマンドを発行するのに応答してクライアントサイドの印刷レンダリングを容易にするネットワークシステムであって、
    クライアントコンピュータであって、
    前記印刷コマンドを処理および解釈するオペレーティングシステムと、
    指定されるターゲットとなるネットワーク化されたプリンタデバイスに応じて前記印刷コマンドをリモート印刷サブシステムにルーティングするプリンティングルータと、
    プリントサーバコンピュータから受け取った管理設定を格納し、ネイティブプリンタ言語に変換された前記ドキュメントを前記プリントサーバコンピュータに転送する前記リモート印刷サブシステムと、
    前記格納された管理設定を前記ドキュメントに適用し、前記ターゲットとなるネットワーク化されたプリンタデバイスによって利用される前記ネイティブプリンタ言語に従って前記ドキュメントを変換するレンダリングサブシステムと、
    前記ターゲットとなるネットワーク化されたプリンタデバイスの現在の管理設定を前記プリントサーバコンピュータに要求する同期マネジャと
    を備えたクライアントコンピュータと、
    前記ターゲットとなるネットワーク化されたプリンタデバイスの前記現在の管理設定を保持し、要求を受信すると前記現在の管理設定を前記クライアントコンピュータに送信し、前記変換したドキュメントを前記ターゲットとなるネットワーク化されたプリンタデバイスに転送する前記プリントサーバコンピュータと、
    前記変換されたドキュメントから出力を作成する前記ターゲットとなるネットワーク化されたプリンタデバイスと
    を備えたことを特徴とするネットワークシステム。

JP2004000705A 2003-01-03 2004-01-05 ネットワークにおいて印刷ドキュメントをクライアントサイドでレンダリングする方法、システム、およびコンピュータ可読媒体 Expired - Fee Related JP4989844B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/337,115 2003-01-03
US10/337,115 US7365872B2 (en) 2003-01-03 2003-01-03 Client computer system, method and computer readable medium comprising executable instructions for rendering printable documents in a native printer language on the network

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2011004573A Division JP5133430B2 (ja) 2003-01-03 2011-01-13 ネットワークにおいて印刷ドキュメントをクライアントサイドでレンダリングする方法、システム、およびコンピュータ可読媒体

Publications (2)

Publication Number Publication Date
JP2004213671A true JP2004213671A (ja) 2004-07-29
JP4989844B2 JP4989844B2 (ja) 2012-08-01

Family

ID=32507428

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2004000705A Expired - Fee Related JP4989844B2 (ja) 2003-01-03 2004-01-05 ネットワークにおいて印刷ドキュメントをクライアントサイドでレンダリングする方法、システム、およびコンピュータ可読媒体
JP2011004573A Expired - Fee Related JP5133430B2 (ja) 2003-01-03 2011-01-13 ネットワークにおいて印刷ドキュメントをクライアントサイドでレンダリングする方法、システム、およびコンピュータ可読媒体

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2011004573A Expired - Fee Related JP5133430B2 (ja) 2003-01-03 2011-01-13 ネットワークにおいて印刷ドキュメントをクライアントサイドでレンダリングする方法、システム、およびコンピュータ可読媒体

Country Status (14)

Country Link
US (2) US7365872B2 (ja)
EP (1) EP1435565B1 (ja)
JP (2) JP4989844B2 (ja)
KR (1) KR101099262B1 (ja)
CN (1) CN1525305B (ja)
AU (1) AU2003271331B2 (ja)
BR (1) BR0306093A (ja)
CA (1) CA2454492C (ja)
MX (1) MXPA03012018A (ja)
MY (1) MY143417A (ja)
PL (1) PL364213A1 (ja)
RU (1) RU2349953C2 (ja)
TW (2) TWI450534B (ja)
ZA (1) ZA200309901B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009516235A (ja) * 2005-07-13 2009-04-16 マイクロソフト コーポレーション モジュラフィルタのパイプライン内でのスプールファイルとpdlとの間の変換
JP2011081843A (ja) * 2003-01-03 2011-04-21 Microsoft Corp ネットワークにおいて印刷ドキュメントをクライアントサイドでレンダリングする方法、システム、およびコンピュータ可読媒体

Families Citing this family (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6553414B1 (en) * 1998-10-02 2003-04-22 Canon Kabushiki Kaisha System used in plural information processing devices for commonly using peripheral device in network
US8843617B2 (en) 2000-03-01 2014-09-23 Printeron Inc. Multi-stage polling mechanism and system for the transmission and processing control of network resource data
CA2301996A1 (en) 2000-03-13 2001-09-13 Spicer Corporation Wireless attachment enabling
US7716742B1 (en) 2003-05-12 2010-05-11 Sourcefire, Inc. Systems and methods for determining characteristics of a network and analyzing vulnerabilities
CN100354859C (zh) * 2003-10-06 2007-12-12 佳能株式会社 信息处理装置、信息处理方法
WO2006099892A1 (en) * 2005-03-25 2006-09-28 3Dconnexion Holding Sa Synchronizing settings for manual input devices
CN100440131C (zh) * 2005-03-30 2008-12-03 精工爱普生株式会社 打印作业信息显示系统、打印系统、打印作业管理装置
US7685316B2 (en) * 2005-06-16 2010-03-23 Cisco Technology, Inc. System and method for coordinated network configuration
KR100727946B1 (ko) * 2005-06-29 2007-06-14 삼성전자주식회사 오프라인 상태의 화상 형성 장치에 대한 인쇄 작업 제어방법 및 장치.
US7733803B2 (en) * 2005-11-14 2010-06-08 Sourcefire, Inc. Systems and methods for modifying network map attributes
JP4685624B2 (ja) * 2005-12-28 2011-05-18 スター精密株式会社 環境設定データ設定方法、環境設定データ設定プログラム及び印刷データ供給装置
US7941504B2 (en) * 2006-02-07 2011-05-10 Efraim Gershom Global peripheral device sharing system and method
US20070294335A1 (en) * 2006-02-07 2007-12-20 Efraim Gershom Global peripheral device sharing system and method
JP4298738B2 (ja) * 2006-10-24 2009-07-22 キヤノン株式会社 クライアントコンピュータ及び情報処理方法
KR101188394B1 (ko) * 2007-06-28 2012-10-05 삼성전자주식회사 네트워크 화상형성장치에서의 패킷 허용방법 및 패킷 송수신 제한이 가능한 화상형성 장치
JP5137641B2 (ja) * 2008-03-19 2013-02-06 キヤノン株式会社 情報処理装置、画像処理システム及び画像処理方法並びにプログラム
US8474043B2 (en) * 2008-04-17 2013-06-25 Sourcefire, Inc. Speed and memory optimization of intrusion detection system (IDS) and intrusion prevention system (IPS) rule processing
WO2010045089A1 (en) 2008-10-08 2010-04-22 Sourcefire, Inc. Target-based smb and dce/rpc processing for an intrusion detection system or intrusion prevention system
TWI450185B (zh) * 2009-01-09 2014-08-21 Hon Hai Prec Ind Co Ltd 列印系統及方法
WO2011090474A1 (en) 2010-01-20 2011-07-28 Hewlett-Packard Development Company, L.P. Cloud printer with a common user print experience
US8610928B2 (en) 2010-02-09 2013-12-17 Apple Inc. Framework that supports driverless printing
US8610927B2 (en) 2010-02-09 2013-12-17 Apple Inc. Walk-up printing without drivers
JP2011180954A (ja) * 2010-03-03 2011-09-15 Seiko Epson Corp 機器制御装置、機器制御プログラムおよびサーバー
JP5809238B2 (ja) 2010-04-16 2015-11-10 シスコ テクノロジー,インコーポレイテッド 準リアルタイムネットワーク攻撃検出のためのシステムおよび方法、ならびに検出ルーティングによる統合検出のためのシステムおよび方法
US9436414B2 (en) 2010-05-08 2016-09-06 Hewlett-Packard Development Company, L.P. Managing a printing device behind a firewall
US8433790B2 (en) 2010-06-11 2013-04-30 Sourcefire, Inc. System and method for assigning network blocks to sensors
US8671182B2 (en) 2010-06-22 2014-03-11 Sourcefire, Inc. System and method for resolving operating system or service identity conflicts
JP2012043398A (ja) * 2010-07-21 2012-03-01 Canon Inc コンテンツ印刷システム、および印刷中継システム、および制御方法、およびプログラム
US8570566B2 (en) 2010-09-17 2013-10-29 Printeron Inc. System and method that provides user interface on mobile network terminal for releasing print jobs based on location information
US8970873B2 (en) 2010-09-17 2015-03-03 Printeron Inc. System and method for managing printer resources on an internal network
US9853864B2 (en) 2010-09-17 2017-12-26 Printeron Inc. System and method for updating printer location information field
JP5763904B2 (ja) * 2010-09-30 2015-08-12 キヤノン株式会社 プリントシステム、印刷方法、プリントサーバおよびその制御方法、並びにプログラム
JP5717407B2 (ja) * 2010-11-15 2015-05-13 キヤノン株式会社 印刷中継システム、画像形成装置、システムの制御方法、およびプログラム
JP5713641B2 (ja) * 2010-11-16 2015-05-07 キヤノン株式会社 印刷中継システム、および印刷中継システムの制御方法、およびプログラム
CA2759736C (en) 2010-11-30 2020-12-29 Printeron Inc. System for internet enabled printing
US8601034B2 (en) 2011-03-11 2013-12-03 Sourcefire, Inc. System and method for real time data awareness
JP5565346B2 (ja) 2011-03-11 2014-08-06 ブラザー工業株式会社 プリンタ
US8630008B2 (en) 2011-05-20 2014-01-14 Xerox Corporation Method and system for managing print device information using a cloud administration system
US8730502B2 (en) * 2011-05-20 2014-05-20 Xerox Corporation Method and system for managing print jobs using a cloud administration system
CN102999300A (zh) * 2011-09-08 2013-03-27 泰金宝电通股份有限公司 互动式系统
JP5921156B2 (ja) * 2011-11-16 2016-05-24 キヤノン株式会社 印刷装置、レイアウト変更方法、及びプログラム
WO2013089763A1 (en) * 2011-12-16 2013-06-20 Intel Corporation Driverless printing by a target printer
US8675215B2 (en) 2012-01-31 2014-03-18 Apple Inc. Using regions of interest to scale print data for print jobs
US9298401B2 (en) 2012-02-03 2016-03-29 Apple Inc. Configuring print jobs associated with unsupported document formats
US8891115B2 (en) 2012-02-03 2014-11-18 Apple Inc. Configuration of print data for print jobs based on document-processing capabilities of printers
US9069501B2 (en) 2012-02-28 2015-06-30 Hewlett-Packard Development Company, L.P. Mechanism that allows initiating print without being aware of the printer email address
WO2014003712A1 (en) 2012-06-26 2014-01-03 Hewlett-Packard Development Company, L.P. Exposing network printers to wi-fi clients
US9400622B2 (en) 2012-06-29 2016-07-26 Hewlett-Packard Development Company, L.P. Path independent print queues
JP6182855B2 (ja) * 2012-12-04 2017-08-23 株式会社リコー 画像処理システム及び情報同期方法
US9122436B2 (en) 2013-03-11 2015-09-01 Xerox International Partners Virtual printer interface node
US8913272B2 (en) * 2013-03-11 2014-12-16 Xerox International Partners Virtual printer interface node
US9098218B2 (en) 2013-03-11 2015-08-04 Xerox International Partners System for authenticating communications between a non-cloud ready networked printer and a cloud-based servise through a virtual printer interface device
US8908214B2 (en) 2013-03-11 2014-12-09 Xerox International Partners Virtual printer interface node
US9047027B2 (en) 2013-03-11 2015-06-02 Xerox International Partners System for authenticating communications between a non-cloud ready networked printer and a cloud-based service through a virtual printer interface device
US8917414B2 (en) 2013-03-11 2014-12-23 Xerox International Partners Virtual printer interface node
US8908213B2 (en) 2013-03-11 2014-12-09 Xerox International Partners Virtual printer interface node
US8970885B2 (en) 2013-03-11 2015-03-03 Xerox International Partners Virtual printer interface node
US8970859B2 (en) 2013-03-11 2015-03-03 Xerox International Partners Virtual printer interface node
US9277353B2 (en) * 2013-04-02 2016-03-01 Xerox Corporation Methods and systems for locating peripheral devices
US9356882B2 (en) 2014-02-04 2016-05-31 Printeron Inc. Streamlined system for the transmission of network resource data
RU2575994C2 (ru) * 2014-06-19 2016-02-27 Российская Федерация, от имени которой выступает Государственная корпорация по атомной энергии "Росатом" - Госкорпорация "Росатом" Способ реализации сетевой печати
KR200483273Y1 (ko) 2014-11-10 2017-04-27 엠아이산업 주식회사 도난 방지 기능이 부가된 그레이팅
JP6499423B2 (ja) 2014-11-18 2019-04-10 キヤノン株式会社 情報処理システム、情報処理装置、及びその制御方法とプログラム
KR200482817Y1 (ko) 2015-05-08 2017-03-07 엠아이산업 주식회사 완충 그레이팅
CN106354439A (zh) * 2015-07-15 2017-01-25 日本冲信息株式会社 一种印刷系统
EP3376748B1 (en) 2017-03-15 2020-02-26 Zhuhai Seine Technology Co., Ltd. Image forming apparatus and system
JP7207947B2 (ja) * 2018-10-29 2023-01-18 キヤノン株式会社 印刷制御装置および印刷変換プログラム
WO2022060364A1 (en) * 2020-09-18 2022-03-24 Hewlett-Packard Development Company, L.P. Data visualization models and instruction models for rendering data visualization models
US11573747B2 (en) 2020-09-25 2023-02-07 Fmr Llc Systems and methods for a printer reverse redirector
JP2022070771A (ja) * 2020-10-27 2022-05-13 シャープ株式会社 画像形成装置、設定方法及びシステム

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07225731A (ja) * 1994-02-10 1995-08-22 Fuji Xerox Co Ltd ネットワークにおける文書処理装置
JPH07248889A (ja) * 1994-03-11 1995-09-26 Fuji Xerox Co Ltd プリントシステム
JP2000172465A (ja) * 1998-12-01 2000-06-23 Canon Inc インターネットプリンティングシステム
JP2000301803A (ja) * 1999-04-21 2000-10-31 Canon Inc 印刷システム、印刷データ処理装置、印刷データ処理方法および記憶媒体
JP2001043046A (ja) * 1999-07-27 2001-02-16 Canon Inc 印刷処理システム及びその処理方法
JP2001146049A (ja) * 1999-11-19 2001-05-29 Nec Corp プリンタシステム及びそれを用いた描画処理方法及び描画処理を行うプログラムを記録した記録媒体
JP2001282474A (ja) * 2000-03-30 2001-10-12 Canon Inc 印刷制御装置、印刷システム、印刷制御方法及び記憶媒体
JP2002140297A (ja) * 2000-10-31 2002-05-17 Pfu Ltd 稼働率算出方法、稼働率算出システム、および記録媒体
JP2002215350A (ja) * 2001-01-16 2002-08-02 Canon Inc 情報処理装置、情報処理システム、分散出力制御方法および記録媒体

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US626693A (en) * 1899-06-13 Bicycle-support
US4466065A (en) * 1982-05-17 1984-08-14 International Business Machines Corporation Queuing capability in a foreground task
JP2741726B2 (ja) * 1993-06-28 1998-04-22 富士通株式会社 共用出力手段のセキュリティ確保方法及びセキュリティ確保システム
US5580177A (en) * 1994-03-29 1996-12-03 Hewlett-Packard Company Printer/client network with centrally updated printer drivers and printer status monitoring
JP3056948B2 (ja) * 1994-06-09 2000-06-26 キヤノン株式会社 印刷装置及びその制御装置、及び印刷装置の制御方法
US6043898A (en) 1996-05-31 2000-03-28 Sun Microsystems, Inc. Method and system for concurrently executing multiple spooling systems in a networked computer system
US6452692B1 (en) * 1996-12-02 2002-09-17 Sun Microsystems, Inc. Networked printer server
JP3262518B2 (ja) * 1996-12-27 2002-03-04 キヤノン株式会社 プリントシステムおよび情報処理装置および印刷制御装置およびその方法およびコンピュータ読み取り可能なプログラムが格納された記憶媒体
US6184996B1 (en) * 1997-06-18 2001-02-06 Hewlett-Packard Company Network printer with remote print queue control procedure
US6144959A (en) * 1997-08-18 2000-11-07 Novell, Inc. System and method for managing user accounts in a communication network
JPH11161451A (ja) * 1997-09-26 1999-06-18 Hitachi Koki Co Ltd 印刷システム
EP0907120A3 (en) 1997-10-02 2004-03-24 Tumbleweed Software Corporation Method amd apparatus for delivering documents over an electronic network
US6288790B1 (en) * 1998-05-15 2001-09-11 International Business Machines Corporation Mobility support for printing
RU2189638C2 (ru) 1998-05-27 2002-09-20 Дайболд, Инкорпорейтед Способ напечатания документа с помощью автоматического банковского аппарата, автоматический банковский аппарат (варианты) и способ печатания документа с его помощью
US6498656B1 (en) * 1998-08-26 2002-12-24 International Business Machines Corporation Rule based selection criteria for controlling print job distribution
US6266693B1 (en) * 1998-08-31 2001-07-24 Toshiba America Information Systems Inc. Method of controlling printer information in a network environment
US6563955B2 (en) * 1998-11-13 2003-05-13 Xerox Corporation Method and apparatus for analyzing image data to use multiple transforms for enhanced image data transmission
US6424424B1 (en) * 1999-01-19 2002-07-23 Hewlett-Packard Company Method and apparatus for automatic installation of shared printers over a network
JP2000330734A (ja) 1999-05-14 2000-11-30 Tokyo Denshi Sekkei Kk ネットワークプリント方法および該方法を用いたネットワークプリントシステム
JP3927731B2 (ja) * 1999-07-29 2007-06-13 キヤノン株式会社 印刷システム、情報処理装置、情報処理方法、印刷ジョブ登録方法及び記録媒体
US6842766B2 (en) * 1999-12-09 2005-01-11 Microsoft Corporation Client side caching of printer configuration
TW448653B (en) 1999-12-21 2001-08-01 Inventec Corp Sever structure supporting client's terminal equipment
JP2001222481A (ja) 2000-02-08 2001-08-17 Canon Inc 印刷システム及び印刷制御方法
JP4438036B2 (ja) * 2000-06-13 2010-03-24 キヤノン株式会社 印刷システム、印刷方法及び記憶媒体、画像処理装置及びその制御方法
US6814510B1 (en) * 2000-08-02 2004-11-09 Xerox Corporation Method and apparatus for automatic update of a printer driver configuration and status
JP2002215361A (ja) * 2001-01-16 2002-08-02 Canon Inc 情報処理装置及び印刷管理装置及び印刷管理システム及びその方法及びコンピュ―タ読み取り可能なプログラムが格納された記憶媒体及び印刷制御プログラム
JP3826080B2 (ja) * 2001-10-30 2006-09-27 キヤノン株式会社 情報処理装置及びその制御方法、制御プログラム、並びに媒体
US7149826B2 (en) * 2002-08-05 2006-12-12 Hewlett-Packard Development Company, L.P. Peripheral device output job routing
US7365872B2 (en) * 2003-01-03 2008-04-29 Microsoft Corporation Client computer system, method and computer readable medium comprising executable instructions for rendering printable documents in a native printer language on the network
US20050213115A1 (en) * 2004-03-29 2005-09-29 Bruce Johnson Print job system and method
US7505168B2 (en) * 2004-12-30 2009-03-17 Microsoft Corporation Distributed client side printing methods and systems

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07225731A (ja) * 1994-02-10 1995-08-22 Fuji Xerox Co Ltd ネットワークにおける文書処理装置
JPH07248889A (ja) * 1994-03-11 1995-09-26 Fuji Xerox Co Ltd プリントシステム
JP2000172465A (ja) * 1998-12-01 2000-06-23 Canon Inc インターネットプリンティングシステム
JP2000301803A (ja) * 1999-04-21 2000-10-31 Canon Inc 印刷システム、印刷データ処理装置、印刷データ処理方法および記憶媒体
JP2001043046A (ja) * 1999-07-27 2001-02-16 Canon Inc 印刷処理システム及びその処理方法
JP2001146049A (ja) * 1999-11-19 2001-05-29 Nec Corp プリンタシステム及びそれを用いた描画処理方法及び描画処理を行うプログラムを記録した記録媒体
JP2001282474A (ja) * 2000-03-30 2001-10-12 Canon Inc 印刷制御装置、印刷システム、印刷制御方法及び記憶媒体
JP2002140297A (ja) * 2000-10-31 2002-05-17 Pfu Ltd 稼働率算出方法、稼働率算出システム、および記録媒体
JP2002215350A (ja) * 2001-01-16 2002-08-02 Canon Inc 情報処理装置、情報処理システム、分散出力制御方法および記録媒体

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011081843A (ja) * 2003-01-03 2011-04-21 Microsoft Corp ネットワークにおいて印刷ドキュメントをクライアントサイドでレンダリングする方法、システム、およびコンピュータ可読媒体
JP2009516235A (ja) * 2005-07-13 2009-04-16 マイクロソフト コーポレーション モジュラフィルタのパイプライン内でのスプールファイルとpdlとの間の変換

Also Published As

Publication number Publication date
US7365872B2 (en) 2008-04-29
MXPA03012018A (es) 2005-04-11
AU2003271331A1 (en) 2004-07-22
EP1435565A2 (en) 2004-07-07
CN1525305B (zh) 2010-05-26
US20040130740A1 (en) 2004-07-08
RU2349953C2 (ru) 2009-03-20
KR101099262B1 (ko) 2011-12-28
TWI342693B (en) 2011-05-21
TW201101744A (en) 2011-01-01
CA2454492C (en) 2013-07-30
CA2454492A1 (en) 2004-07-03
BR0306093A (pt) 2005-05-17
JP2011081843A (ja) 2011-04-21
CN1525305A (zh) 2004-09-01
TW200417200A (en) 2004-09-01
ZA200309901B (en) 2004-08-13
JP4989844B2 (ja) 2012-08-01
JP5133430B2 (ja) 2013-01-30
US8233177B2 (en) 2012-07-31
TWI450534B (zh) 2014-08-21
KR20040062888A (ko) 2004-07-09
AU2003271331B2 (en) 2009-12-10
EP1435565A3 (en) 2007-12-05
RU2003137777A (ru) 2005-06-10
PL364213A1 (en) 2004-07-12
MY143417A (en) 2011-05-13
EP1435565B1 (en) 2018-03-21
US20080130051A1 (en) 2008-06-05

Similar Documents

Publication Publication Date Title
JP4989844B2 (ja) ネットワークにおいて印刷ドキュメントをクライアントサイドでレンダリングする方法、システム、およびコンピュータ可読媒体
JP4596696B2 (ja) 情報処理装置および印刷装置
JP5885410B2 (ja) プルプリントシステム、プリントサーバおよびその制御方法、並びにプログラム
JP5319237B2 (ja) 印刷システム及びその制御方法
US20030184799A1 (en) Load balancing print jobs across multiple printing devices
JPH11161529A (ja) データ記録媒体
JPH1124870A (ja) ネットワークプリンタの制御方法
US7461069B2 (en) Log information management device, log information generation device, and computer-readable medium storing log information management program therein
JP5419637B2 (ja) 管理装置、その方法及びプログラム
JP2006285840A (ja) 文書管理システム
US7505168B2 (en) Distributed client side printing methods and systems
JP2001296976A (ja) ネットワークプリンタシステム
JP5732755B2 (ja) 配信システム、配信装置、配信方法、及びプログラム
JP2009217353A (ja) 印刷システム、印刷システムの管理プログラム、記憶媒体
JP2005100348A (ja) 印刷処理装置、画像処理装置、印刷処理装置の制御方法、印刷処理装置の制御プログラム及び記録媒体
JP2006168063A (ja) 画像形成装置
JP2006168134A (ja) 印刷方法、印刷デバイス及び印刷システム
JP2014197245A (ja) プリントシステム、スプールサーバ、プリントシステムの構築方法、及びプログラム
JP2001296988A (ja) 周辺装置モニタ
JPH11102265A (ja) 印刷処理システム及び印刷処理方法並びに印刷処理制御プログラムを記録したコンピュータ読み取り可能な記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061220

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090330

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090410

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090710

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20090812

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20090824

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100203

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100506

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100913

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110113

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20110120

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20110210

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120501

R150 Certificate of patent or registration of utility model

Ref document number: 4989844

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150511

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees