(57)【要約】コンピュータ（１４）、ＰＤＡ（１６）、電話機（１８）などの発信デバイスを操作するユーザが電子メール・メッセージ（４８）を介して印刷すべきコンテンツを送信して印刷することができるシステム。電子メール・メッセージ（４８）は、電子メール・サーバ（５０）によりホストされる仮想プリンタ電子メール・アドレス経由で送信される。電子メール・メッセージは、ドライバレス・プリント・サーバ（４０）により検索され、メイン・ファイルと添付ファイルとに分けられ、プリンタ（３２）で印刷される。このシステムにより、ターゲット・プリンタ（３２）に対応するプリンタ・デバイス・ドライバがなくてもドキュメントを印刷することができる。
2005521166.tif 000002
【特許請求の範囲】
【請求項１】
電子メール・メッセージを介してターゲット・プリンタ上でソース・データを印刷する方法であって、
ターゲット・プリンタの仮想電子メール・アドレスを決めること、
仮想電子メール・アドレスに対応する電子メール・アカウントをホストする電子メール・サーバから、ターゲット・プリンタの仮想電子メール・アドレスにアドレスされたソース・データを含む電子メール・メッセージを検索すること、
電子メール・メッセージからソース・データを抽出すること、
ソース・データの印刷元とすることができるプリント・サーバ上で走っている対応するアプリケーションまたはブラウザにソース・データをロードすること、
プリント・サーバ上で実行されているオペレーティング・システムの対応するアプリケーションまたはブラウザと印刷サブシステムを介してソース・データに対応するプリンタ・データを生成すること、および、
プリント・サーバからプリンタ・データをターゲット・プリンタにサブミットすることを含む方法。
【請求項２】
複数のマシン語命令が格納されるマシン可読媒体であって、前記のマシン語命令が、コンピューティング・マシンにより実行されたときに、ユーザが電子メール・メッセージを介してターゲット・プリンタでソース・データを印刷するために、
仮想電子メール・アドレスに対応する電子メール・アカウントをホストする電子メール・サーバから、ターゲット・プリンタに対し決められている仮想電子メール・アドレスにアドレスされたソース・データを含む電子メール・メッセージを検索することと、
電子メール・メッセージからソース・データを抽出することと、
ソース・データの印刷元とすることができるプリント・サーバ上で走っている対応するアプリケーションまたはブラウザにソース・データをロードすることと、
対応するアプリケーションまたはブラウザおよびプリント・サーバ上で実行されているオペレーティング・システムの印刷サブシステムを介してソース・データに対応するプリンタ・データを生成することと、
プリント・サーバからプリンタ・データをターゲット・プリンタにサブミットすることとを実行するマシン可読媒体。
【請求項３】
電子メール・メッセージを介してターゲット・プリンタ上でソース・データを印刷するシステムであって、
仮想電子メール・アドレスに対応する電子メール・アカウントをホストする電子メール・サーバから、ターゲット・プリンタに対して決められた仮想電子メール・アドレスにアドレスされたソース・データを含む電子メール・メッセージを検索する手段と、
電子メール・メッセージからソース・データを抽出する手段と、
ソース・データの印刷元とすることができるプリント・サーバ上で走っている対応するアプリケーションまたはブラウザにソース・データをロードする手段と、
対応するアプリケーションまたはブラウザ内で印刷アクションを呼び出し、対応するアプリケーションかブラウザと、プリント・サーバ上で走っているオペレーティング・システムの印刷サブシステムとを介してソース・データに対応するプリンタ・データを生成する手段と、
プリント・サーバからプリンタ・データをターゲット・プリンタにサブミットする手段とを備えるシステム。
【請求項４】
電子メール・メッセージを介してターゲット・プリンタ上でソース・データを印刷する方法であって、
ターゲット・プリンタの仮想電子メール・アドレスを決めること、
仮想電子メール・アドレスに対応する電子メール・アカウントをホストする電子メール・サーバから、ターゲット・プリンタの仮想電子メール・アドレスにアドレスされたソース・データを含む電子メール・メッセージを検索すること、
電子メール・メッセージからソース・データを抽出すること、
ソース・データがプリンタ・ファイルを含むかどうかを判定し、プリンタ・ファイルを含む場合、
ソース・データをプリンタ・スプーラにサブミットすること、
プリント・スプーラの出力をターゲット・プリンタに送ることを含む方法。
【請求項５】
複数のマシン語命令が格納されるマシン可読媒体であって、前記のマシン語命令が、コンピューティング・マシンにより実行されたときに、ユーザが電子メール・メッセージを介してターゲット・プリンタでソース・データを印刷するために、
仮想電子メール・アドレスに対応する電子メール・アカウントをホストする電子メール・サーバから、ターゲット・プリンタに対して決められている仮想電子メール・アドレスにアドレスされたソース・データを含む電子メール・メッセージを検索することと、
電子メール・メッセージからソース・データを抽出することと、
ソース・データがプリンタ・ファイルを含むかどうかを判定し、プリンタ・ファイルを含む場合、
ソース・データをプリンタ・スプーラにサブミットすることと、
プリント・スプーラの出力をターゲット・プリンタに送ることを実行するマシン可読媒体。
【請求項６】
電子メール・メッセージを介してターゲット・プリンタ上でソース・データを印刷するシステムであって、
仮想電子メール・アドレスに対応する電子メール・アカウントをホストする電子メール・サーバから、ターゲット・プリンタに対して決められている仮想電子メール・アドレスにアドレスされたソース・データを含む電子メール・メッセージを検索する手段と、
電子メール・メッセージからソース・データを抽出する手段と、
ソース・データがプリンタ・ファイルを含むかどうかを判定する手段と、
ソース・データをプリンタ・スプーラにサブミットする手段と、
プリント・スプーラの出力をターゲット・プリンタに送る手段とを備えるシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、全体としてコンピュータの印刷機能に関するものであり、具体的には、電子メール・メッセージを使用してドキュメントなどをプリンタで印刷するために使用するシステムと方法に関する。
【背景技術】
【０００２】
通常、ドキュメントを印刷する場合、印刷前に予め、パーソナル・コンピュータ（ＰＣ）、ラップトップ・コンピュータ、携帯情報端末（ＰＤＡ）、ポケットＰＣなどの発信デバイスにプリンタ・デバイス・ドライバをロードをしておく必要がある。そのプリンタ・デバイス・ドライバがオペレーティング・システム（ＯＳ）と特定のプリンタとの間に抽象インターフェースを提供し、そのオペレーティング・システム（およびこのＯＳ上で実行されるアプリケーション）が、テキスト、グラフィック、レイアウトの共通コマンドのセットを使用するＯＳによってサポートされているプリンタと通信することができるようにしている。これにより、開発者はそのアプリケーションと共に使用できる様々なプリンタの特定の動作を（一般的に）気にせずにアプリケーションを開発することができる。これらの特定の動作は、ＯＳによるプリンタ・デバイス・ドライバとの連携で処理される。
【０００３】
今日のモバイル・ビジネス環境では、ビジネスマンは本社から離れた状況に置かれることが多く、しかも近くにあるプリンタや、ドキュメントの送り先である取引相手の近くにある選択されたプリンタでドキュメントを印刷できることが必要である。一般に、プリンタで印刷するには、２つのことが必要である。第１に、ドキュメント・ファイルが格納されている（またはドキュメント・ファイルにアクセスするために使用する）モバイル・コンピューティング・デバイスが送信先プリンタと通信するためにリンクされる必要がある。この作業は、通常、プリンタにアクセスするためのネットワークに接続するか、またはプリンタ・ケーブル（例えば、シリアル・ケーブル、パラレル・ケーブル、またはＵＳＢケーブル）でプリンタに直接接続することにより実行することができる。多くの場合、これらの接続解決策はどちらも、実用的でない、あるいは利用できない可能性がある。例えば、多くの事務用プリンタはネットワークに接続するように設計されており、管理者は、プリンタ・ケーブルを介して発信モバイル・コンピューティング・デバイスにプリンタを接続することで自分が使っているネットワーク接続が中断されることを望まない。さらに、プリンタが接続されているネットワークは、管理者が「外部」コンピュータの接続を許可しないプライベート・ネットワークであるかもしれない。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
前記の問題の残り半分は、プリンタ・デバイス・ドライバに関するものである。上述のように、モバイル・コンピューティング・デバイスがプリンタ経由で印刷することが可能であるためには、適切なプリンタ・デバイス・ドライバがモバイル・コンピューティング・デバイスにロードされなければならない。一般に、独自の種類のプリンタ毎に特定のデバイス・ドライバが必要になる（類似のプリンタ製品群内の独自モデルであっても）。これらのドライバは、ロードに時間がかかり、格納領域を占有し、モバイル・コンピューティング・デバイス上で他のアプリケーションとソフトウェア衝突を引き起こすことがある。さらに、ビジネスマンは、必要なドライバにアクセスできない場合もある。場合によっては、ＯＳを最初にインストールした際に使用した媒体に適切なプリンタ・ドライバがインストールされていることがあるが、このような媒体は一般に、オフィスから離れるときに携帯されない。多くの場合、プリンタはＯＳのリリース後に販売されたモデルを含んでおり、そのため、適切なドライバをロードする方法としては、プリンタに付属している特定のデバイス・ドライバを持つことしかない。インターネットを介して特定のドライバをダウンロードできる場合を除いて、ビジネスマンは出力先プリンタで印刷する手だてがないということになる。
【課題を解決するための手段】
【０００５】
本発明は、様々なネットワークを介して様々なオペレーティング・システムが稼働する様々な発信デバイス間で交信し、発信デバイスに印刷用デバイス・ドライバをロードすることなく発信デバイスが「ドライバレス」プリント・サーバ・システムを介してドキュメントを印刷することができるシステムと方法を提供する。サーバ・システムは、テーブル駆動型メカニズムを使用して、発信デバイスのオペレータが印刷したいドキュメントに関係する様々なソフトウェア・アプリケーションにより生成される様々なプリンタ・イベントを処理し、取り扱う。出力は、様々なネットワークを介して、選択されたターゲット・プリンタに送られる。サーバ・システムは、サーバと発信デバイスとの間の双方向通信だけでなく、サーバとターゲット・プリンタとの間の双方向通信にも対応する。
【０００６】
通常の実装では、ＰＣ、ラップトップ、ＰＤＡ、ポケットＰＣ、携帯電話などの発信デバイスを操作するユーザは、ユーザが電子メール・メッセージに含まれる、または添付されているソース・データ（例えば、ドキュメント・ファイル）を印刷するのに使用することを望んでいる「ターゲット」プリンタに対応する「仮想」プリンタ電子メール・アドレスに電子メール・メッセージを送信することにより、ドライバレス・プリント・サーバ（ＤＰＳ）システムにアクセスする。ＤＰＳシステムは、システムによってホストされるプリンタに対応する１つまたは複数の仮想プリンタ電子メール・アドレスに送信された電子メールを検索し、それぞれの電子メールを処理して、その中のソース・データをそのメッセージが送信された先の仮想プリンタ電子メール・アドレスに対応するプリンタに印刷する。
【０００７】
電子メールを処理する作業は、電子メールの本文と添付を別々のファイルに切り分ける作業と各ファイルに対するジョブ要求をサブミットする作業とを含む。ジョブ要求が処理されると、ファイルのファイル・タイプが判定され、ファイルは適切なアプリケーションまたはブラウザにロードされる、または直接、プリンタ・スプーラに送られる。その後、印刷アクションが呼び出され、アプリケーションまたはブラウザが実行されるオペレーティング・システムの印刷サブシステムと連携してアプリケーションまたはブラウザを介してプリンタ・データが生成される。プリンタ・データは、その後、ターゲット・プリンタに送信され、印刷される。
【発明を実施するための最良の形態】
【０００８】
本発明の前述の態様およびそれに伴う利点の多くは、添付の図面と共に、以下の詳細な説明を参照することによってよりよく理解することができるため、より容易に理解できるであろう。
【０００９】
本明細書では、発信デバイスを操作するユーザが、印刷対象のオブジェクトに対応するソース・データを電子メール・メッセージで送信することにより、「ドライバレス」プリント・サーバ（ＤＰＳ）システムを介してドキュメント、画像、Ｗｅｂページを印刷できるシステムと方法について詳述する。以下の説明では、本発明の実施形態を完全に理解できるように、多数の具体的詳細が開示されている。ただし、当業者であれば、１つまたは複数の具体的な詳細がなくても、あるいは他の方法、コンポーネントなどを使用しても、本発明を実施できることを理解するであろう。他の例では、よく知られている構造または動作については、本発明の様々な実施形態の態様をわかりにくくしないために詳しく示していないか、あるいは詳述していない。
【００１０】
本明細書全体を通して「一実施形態」または「実施形態」と記載した場合、その実施形態と関連して説明されている特定の機能、構造、または特性が本発明の少なくとも１つの実施形態に含まれる。したがって、本明細書全体の様々な場所に「一実施形態では」または「実施形態では」という語句が出現しても、必ずしもすべて同じ実施形態を指しているわけではない。さらに、特定の機能、構造、または特性を１つまたは複数の実施形態において適切な方法により組み合わせることができる。
【００１１】
用語
以下の説明では、ドライバレス・プリント・サービスを実装し、それにより発信デバイスがプライベート・ネットワークとパブリック・ネットワークの両方でターゲット・プリンタに出力するドキュメントをサブミットできるようにする本発明による実施形態を開示する。開示されている一実施形態では、以下の用語が使用される。
【００１２】
サーバ：ネットワーク経由でアクセスできるソフトウェアが走っているコンピュータ。
【００１３】
Ｗｅｂサーバ：ハイパーテキスト伝送プロトコル（ＨＴＴＰ）を使用してクライアント・コンピュータとサーバ・コンピュータとの間でハイパーテキスト・マークアップ言語（ＨＴＭＬ）ファイル、共通ゲートウェイ・インターフェース（ＣＧＩ）データ、データ・ファイルを送信するクライアント・コンピュータと通信するコンピュータまたはサーバ上で走っているソフトウェア・プログラム。
【００１４】
Ｗｅｂブラウザ：ネットワーク経由でリソースを取得しかつポストするための、およびコンテンツの描画を行うためのソフトウェア・アプリケーション。
【００１５】
ＵＲＬ（Ｕｎｉｖｅｒｓａｌ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）：ネットワーク上のリソースのＨＴＴＰアドレス文字列。これは、通常、Ｗｅｂページまたはドキュメント・ファイルである。
【００１６】
ソース・データ：本ドキュメント内でのソース・データとは検索されることができ、デバイスに出力することができるあらゆるドキュメントまたは媒体のことである。サポートされている入力データ形式には、ドキュメント・プロセッサでサポートしている種類のすべて（例えば、ＰＤＦ、ＰｏｓｔＳｃｒｉｐｔ、Ｍｉｃｒｏｓｏｆｔ  Ｗｏｒｄ）、Ｗｅｂ  ＵＲＬリンク、電子メール、または電子メール添付ファイルがあるが、これらに限定はされない。
【００１７】
ジョブ要求：これは、処理され、出力デバイスに送信される、ユーザがシステムにサブミットする要求のことである。
【００１８】
ジョブ・ステータス：これは、処理している要求の現在の進捗状況を示すジョブ要求のステータスのことである。これは、ユーザがジョブ要求のステータスを理解すること、またシステム管理者がそれらを管理することを補助するためのメカニズムである。
【００１９】
プリンタ：電子データ・ストリームを受け取って、紙などの媒体に画像を出力するハードウェア・デバイス（例えば、ドキュメントのハードコピー出力）。
【００２０】
Ｗｉｎｄｏｗｓプリンタ：Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓオペレーティング・システムでは、「プリンタ」とは、プリンタ・ドライバ、プリント・プロセッサ、言語モニタ、ポート・モニタの組合せに名前をつけたものとして定義される。
【００２１】
スプール・ファイル：ＭＳ  Ｗｉｎｄｏｗｓプリンタ・ドライバによって作成されるプリンタ言語ファイル。このファイルの内容が、直接プリンタに送られて印刷される。
【００２２】
インターネット印刷プロトコル（ＩＰＰ）：ネットワーク接続プリンタにスプール・ファイルを送信し、ネットワーク接続プリンタから印刷ジョブ・ステータスを取得するためのＨＴＴＰに似たプロトコル。
【００２３】
ライン・プリンタ・リモート（ＬＰＲ）：スプール・ファイルをネットワーク接続プリンタにサブミットするためのプロトコル。
【００２４】
インフラストラクチャの概要
本発明の実装例に対応するネットワーク・インフラストラクチャ１０の概要が図１に示されている。ネットワーク・インフラストラクチャ１０は、ラップトップ・コンピュータ１２、１４、ＰＤＡ  １６、携帯電話１８を含む４つの発信デバイスを示している。発信デバイスは、ＰＣ、ワークステーション、ラップトップ・コンピュータ、ＰＤＡ、ポケットＰＣ、携帯電話、無線双方向ページャ（例えば、Ｂｌａｃｋｂｅｒｒｙデバイス）、Ｗｅｂ  ＴＶアプライアンスなど、電子メール・メッセージを電子メール・アドレスに送信できる任意のデバイスを含むことができることは理解されるであろう。発信デバイスはそれぞれ、ドライバレス・プリント・サーバ・サイトによりサポートされているターゲット・プリンタに、そのプリンタの「仮想」電子メール・アドレスを介してアクセスできる。図１に示されているこのようなターゲット・プリンタには、ＰｏｓｔＳｃｒｉｐｔプリンタ２０、２２、ＡＳＣＩＩライン・プリンタ２４、Ｈｅｗｌｅｔｔ−Ｐａｃｋａｒｄ（ＨＰ）レーザ・プリンタ２６、２８、３０、ＩＢＭレーザ・プリンタ３２、３４、プロッタ３６がある。一般に、どのような種類のプリンタまたはプロッタであってもターゲット・プリンタとして使用することができる。したがって、図１のプリンタやプロッタは、説明のみを目的としており、本発明により実装できるプリンタの種類を制限する意図はない。
【００２５】
それぞれのターゲット・プリンタは、ドライバレス・プリント・サーバ・コンピュータ３８、４０、４２、４４により示されているようなドライバレス・プリント・サーバ・コンピュータに接続される。ドライバレス・プリント・サーバ・コンピュータは、ＰＣ、ワークステーション、ラップトップ、またはコンピュータ・サーバなどのコンピューティング・デバイス上で動作する一組のＤＰＳソフトウェア・モジュール４６（ここでは、ドライバレス・プリント・サーバまたはドライバレス・プリント・サーバ・ソフトウェアとも呼ばれる）を備える。以下で詳しく説明するように、ドライバレス・プリント・サーバ・ソフトウェアは電子メール・モジュール４８と連携して動作するため、発信デバイスのユーザは、オプションの添付が含まれる電子メール・メッセージをターゲット・プリンタの仮想アドレスに送信することにより、電子メール・メッセージとそのメッセージと共に送信される添付に関連付けられている１つまたは複数のハードコピー出力ドキュメントをターゲット・プリンタで印刷するよう要求することができる。一般に、電子メール・メッセージは、ドライバレス・プリント・サーバ・コンピュータが電子メール・メッセージをダウンロードすることができる、典型的にはＬＡＮまたはワイド・エリア・ネットワーク（ＷＡＮ）経由でアクセスされるエンタプライズ電子メール・サーバ５０などの電子メール・サーバからアクセスでき、または、電子メール・サーバは、ＩＳＰ電子メール・サーバ５１によって示される、インターネットを介してアクセスされるインターネット・サービス・プロバイダ（ＩＳＰ）によってホストされる。オプションにより、電子メール・サーバ・ソフトウェアは、ドライバレス・プリント・サーバ・コンピュータ上にインストールすることができる。
【００２６】
グループ化の括弧５２で示されているように、ラップトップ・コンピュータ１２、ドライバレス・プリント・サーバ・コンピュータ３８、プリンタ２０、２４、２６は、ホテル５４などの通常の物理的な場所に配置されている。通常の「ホスピタリティ」実装では、ホテル、空港、コピーセンターなどの印刷サービス・プロバイダは、発信デバイスがＬＡＮ経由で電子メール・メッセージ電子メール・サーバに直接送信できるようにするＬＡＮ  ５６などのローカル・エリア・ネットワーク（ＬＡＮ）を備え、メッセージはドライバレス・プリント・サーバにより検索され、ホスピタリティ・サイトに備えられている関連するプリンタで印刷される。
【００２７】
図１に例示されているように、通常のＤＰＳサイトはさらに、オフィス・サイトと家庭サイトも含んでいる。ＤＳＰホスト・コンピュータがモバイル・コンピュータを含む場合、ＤＰＳサイトは、適切なネットワーク接続があって、対応する電子メール・サーバへのアクセスが可能であればどのような場所にも配置できる（またはそのような電子メール・サーバ・サービスはモバイル・コンピュータ上で動作しているソフトウェアにより提供される）。
【００２８】
ＰＤＡ  １６や携帯電話１８などの無線デバイスの場合、無線デバイスは、通常、無線サービス加入者（ＰＤＡ  １６や携帯電話１８のユーザ）向けに電子メール・サポート・サービスを提供するサービス・プロバイダ・データ・センター６２を含む携帯電話網６０を経由して電子メール・メッセージの送受信を行うことができる。サービス・プロバイダ・データ・センターは、インターネット５８に接続されており、メッセージをサービス・プロバイダ・データ・センターから宛先電子メール・アドレスに配信することができる。
【００２９】
本発明を実装するソフトウェア・コンポーネントの一実施形態の他の詳細な説明が図２に示されている。ソフトウェア・コンポーネントは、論理的に、セットアップ・コンポーネント１００、電子メール・モジュール４８、ドキュメント処理コンポーネント１０１、管理コンポーネント１０２を含む４つのグループに分けられる。これらのコンポーネントはそれぞれさらに、複数のソフトウェア・アプリケーション、スクリプト、コンポーネント、および／またはモジュールを含む。セットアップ・コンポーネント１００は、印刷設定モジュール１０３とアカウント・ウィザード・モジュール１０４を備える。電子メール・モジュール４８は、電子メール・アカウント及び構成モジュール１０５、電子メール処理コンポーネント１０６、電子メール・トリガ共通ゲートウェイ・インターフェース（ＣＧＩ）スクリプト１０７を含む。ドキュメント処理コンポーネント１００は、ＤＰＳ  ＣＧＩスクリプト１０８、ドライバレス・プリント・サーバ・モジュール４６、ポート・モニタ１１０、ステータス・モニタ１１２を備える。管理者コンポーネント１０２は、システム・モニタ１１４、管理用Ｗｅｂページ１１６、自動拡張モジュール１１８、自動更新モジュール１１９を含む。
【００３０】
一般に、管理用ＷｅｂサーバはＷｅｂサーバ経由でサービスを受ける。一実施形態では、Ｗｅｂサーバは、Ｗｅｂサーバ・コンポーネント１２０で示されているように、ドライバレス・プリント・サーバ・コンピュータ上で走るソフトウェアの一部を含む。オプションにより、Ｗｅｂサーバは、当業者であれば理解するように、ｎ層構成でＤＰＳコンピュータにリンクされている別のマシン上で走るようにできる。
【００３１】
一実施形態では、印刷設定モジュール１０３は、システムによって使用されるＷｉｎｄｏｗｓプリンタの構成を変更するためにシステム管理者により実行されるＭｉｃｒｏｓｏｆｔ（ＭＳ）Ｗｉｎｄｏｗｓアプリケーションを含む。このアプリケーションは、既存のプリンタの変換、新規プリンタのインストール、またはプリンタの削除を行うのに使用することができる。既存のプリンタの変換は、既存のプリンタのインストールを行い、ＭＳ  Ｗｉｎｄｏｗｓのポート・モニタによって提供されるオペレーションをポート・モニタ１１０で置き換えることを含む。ポート・モニタ１１０を使用すると、ＤＰＳシステムはスプール・ファイルを操作することができ、またステータス・モニタ１１２はスプール・ファイルを選択されたターゲット・プリンタに送信することができる。
【００３２】
印刷設定モジュール１０３は、新規プリンタを適切なプリンタ・デバイス・ドライバと共にインストールする場合にも使用できる。例えば、管理者はプリンタのＰｏｓｔＳｃｒｉｐｔプリンタ記述（ＰＰＤ）ファイルを使用し、ＤＰＳシステムで使用するＡｄｏｂｅ  ＰｏｓｔＳｃｒｉｐｔ（商標）ドライバをインストールすることにより、ＰｏｓｔＳｃｒｉｐｔプリンタをセットアップすることができる。管理者がＰＰＤを提供すると、プリンタ・セットアップ・モジュールは、ＰｏｓｔＳｃｒｉｐｔドライバをインストールし、ＤＰＳシステムで使用できるように構成する。他の場合、管理者は新しいプリンタ用の適切なプリンタ・デバイス・ドライバ・ソフトウェアを用意することができる。
【００３３】
印刷設定モジュール１０３はさらに、プリンタの削除にも使用できる。このような場合、Ｗｉｎｄｏｗｓポート・モニタをシステムのポート・モニタとして復元するか、または選択されたプリンタのＤＰＳサーバのサポートを完全に削除することができる。
【００３４】
アカウント・ウィザード・モジュール１０４は、セキュリティを管理コントロール・パネルＷｅｂページ・ファイルのセットに適用し、管理者のログインによりどのＷｅｂページのセットにアクセスできるかが決定される。一実施形態では、システムは、モニタ・レベル、マネージャ・レベル、管理レベルを含む３つの管理レベルを実装する。一実施形態では、アカウント・ウィザードはこれら３つのグループをＭＳ  Ｗｉｎｄｏｗｓユーザ・グループとして作成する。さらに、アカウント・ウィザードは、ＭＳ  Ｗｉｎｄｏｗｓユーザ・アカウントを作成して、それらを管理ユーザ・グループの１つに置く。一実施形態では、アカウント・ウィザード・モジュール１０４は、ＭＳ  Ｗｉｎｄｏｗｓアプリケーションを含む。
【００３５】
一実施形態では、電子メール・アカウント及びプリンタ・セットアップ・コンポーネント１０５と、電子メール処理コンポーネント１０６とが提供するオペレーションは、ドライバレス・プリント・サーバ・コンピュータ上で走るＭＰＥｍａｉｌ．ｅｘｅという名前のＭＳ  Ｗｉｎｄｏｗｓアプリケーション（ＭＰＥｍａｉｌアプリケーション１２１）により実装される。ＭＰＥｍａｉｌアプリケーション１２１は、ダイアログ・ボックス・ユーザ・インターフェース（ＵＬ）を備えるＷｉｎ３２アプリケーションを含む。メイン・ウィンドウ上のメニュー項目は、電子メール・アカウントを設定し、電子メール・モジュールを構成するための様々なダイアログ・ボックスへの入口となる。以下で詳しく説明するように、ＭＰＥｍａｉｌアプリケーションは、Ｐｏｓｔ  Ｏｆｆｉｃｅ  Ｐｒｏｔｏｃｏｌバージョン３（ＰＯＰ３）経由で電子メール・アカウントからメールを検索するという形で動作する。検索されたメールは、印刷のためドライバレス・プリント・サーバ４６にサブミットされる。
【００３６】
ＭＰＥｍａｉｌアプリケーション１２１のメインＵＩ  １２２の表現は図３に示されている。メインＵＩ  １２２には、「Ｆｉｌｅ」プルダウン・メニュー１２４、「Ｅｄｉｔ」プルダウン・メニュー１２５、「Ｈｅｌｐ」プルダウン・メニュー１２６を含むメニュー・バーが用意されている。このＵＩは、さらに、アプリケーションのステータスが表示されるステータス・テキスト・ボックス１２８を含む。このＵＩがドライバレス・プリント・サーバ・コンピュータ上で走っているため、管理者しかアクセスできず、コンシューマ・ユーザからはアクセスできない。
【００３７】
電子メール印刷機能をサポートするために、ターゲット・プリンタ毎に、１）プリンタの仮想電子メール・アドレスとして使用される、ＰＯＰ３アクセスが可能な電子メール・アカウント、２）ドライバレス・プリント・サーバ・システムで印刷できるように構成されているプリンタ、３）電子メール・アドレスをターゲット・プリンタに結び付ける構成済みのＭＰＥｍａｉｌが構成されなければならない。
【００３８】
一般に、電子メール・アカウントは、ＰＯＰ３プロトコル経由で電子メール・アクセスをサポートする電子メール・アカウントであってよい。当業者は、他の電子メール・プロトコルであっても、それらのプロトコルをサポートするように対応する修正が電子メール・モジュール４８に加えられていれば使用できることを理解するであろう。特定のアカウントの設定は、本発明の範囲外である。ターゲット・プリンタの設定は、ＭＰＥｍａｉｌ  ＵＩが備えるダイアログ・ボックスを利用して実行することができる。
【００３９】
既存のＭＰＥｍａｉｌアカウントを表示する、既存のＭＰＥｍａｉｌアカウントを編集する、または新規ＭＰＥｍａｉｌアカウントを作成するために、管理者は、「Ｅｄｉｔ」プルダウン・メニュー１２６をアクティブにし、アカウント・オプション（図示せず）を選択する。これにより、図４に示されているように、電子メール・アカウント・ダイアログ・ボックス１３０が起動する。既存の電子メール・アカウントは、選択可能なテキスト・ボックス１３２の中に表示される。「Ａｄｄ」ボタン１３４をアクティブにすると、新しい電子メール・アカウントが追加される。既存の電子メール・アカウントを編集するには、選択可能なテキスト・ボックス１３２内の目的のアカウントを選択し（例えば、表示されているアカウントのリスト内のアカウント・エントリをクリックすることにより）、「Ｅｄｉｔ」ボタン１３６をアクティブにする。同様に、既存の電子メール・アカウントを削除するには、アカウントを選択し、「Ｒｅｍｏｖｅ」ボタン１３８をアクティブにする。
【００４０】
「Ａｄｄ」ボタン１３４または「Ｅｄｉｔ」ボタン１３６をアクティブにすると、図５に示されているように、「Ａｄｄ／Ｅｄｉｔ」ダイアログ・ボックス１４０が起動する。ＭＰＥｍａｉｌアカウント名を、編集ボックス１４２に入力する。このアカウント名は、電子メール・アカウント・ダイアログ・ボックス１３０での表示用に使用され、またデバッギングがアクティブにされているときに参照として使用される。ＵｓｅｒＩＤを編集ボックス１４４に入力する。ＵｓｅｒＩＤは、ＭＰＥｍａｉｌが電子メール・アカウントからメールを検索するときにＰＯＰ３ログイン処理時に使用されるアカウント名である。
【００４１】
電子メール・アカウントに対するパスワードを編集ボックス１４６に入力する。通常、所定の電子メール・サーバに格納されている電子メールは適切なログイン資格証明を送ることによりアクセスされる。資格証明には、ＵｓｅｒＩＤや、電子メール・アカウントが最初に設定されたときにユーザ（この場合、ＭＰＥｍａｉｌインスタンス）によって選択された対応するパスワードが含まれる。
【００４２】
入力ＰＯＰ３サーバを編集ボックス１４８の中に指定する。この値は、ＭＰＥｍａｉｌが電子メール・アカウントからメールを検索するときにＰＯＰ３ログイン処理時に使用される電子メール・サーバのＤＮＳ（ドメイン・ネーム・システム）名を含む。出力ＳＭＴＰ（Ｓｉｍｐｌｅ  Ｍａｉｌ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ）サーバを、編集ボックス１５０の中に指定する。この値は、ＭＰＥｍａｉｌが、電子メール印刷要求をサブミットしたコンシューマ・ユーザにステータスを送り返すために電子メール返信を送るときに使用される電子メール・サーバのＤＮＳ名を含む。
【００４３】
関連するポート値は、ドロップダウン・コントロール１５２を介して選択することができる。関連するポートは、ターゲット・プリンタに割り当てられたＤＮＳ名またはＩＰアドレスを含む。ドロップダウン・リストは、所定のインストール済みのドライバレス・プリント・サーバ用のすべての構成されているプリンタのポート名を含む。
【００４４】
ポーリング頻度値は、編集ボックス１５４で入力するか、または編集ボックスの隣にある上矢印および下矢印のコントロールで変更することができる。ポーリング頻度は、ＰＯＰ３プロトコル経由で電子メールを検索しようとする際の秒単位の時間間隔で指定する。一実施形態では、最小許容可能入力は３０秒であり、最大許容可能入力は３６００秒である。
【００４５】
トリガ・チェック・ボックス１５６を選択して、電子メールの検索の開始に使用されるＭＰＥｍａｉｌアプリケーションが備えている電子メール・トリガ・メソッドをオンにする。電子メール・トリガ・メソッドは、上述のポーリング方法の代替えとなるものであり、適切な動作を行わせるためにさらに設定を必要とする。電子メール・トリガ・メソッドの詳細をさらに、以下で説明する。トリガ・チェック・ボックス１５６に選択のマークが付けられると、編集ボックス１５４と対応する上矢印と下矢印のコントロール１５５は無効にされる。
【００４６】
「Ａｄｄ／Ｅｄｉｔ」ダイアログ・ボックス１４０の目的の値が入力または選択されると、管理者は「ＯＫ」ボタン１５８をアクティブにして値を保存することができる。オプションにより、管理者は「Ｃａｎｃｅｌ」ボタン１５４をアクティブにして、「Ａｄｄ」または「Ｅｄｉｔ」オペレーションを取り消すことができる。
【００４７】
電子メール印刷活動をログに記録するには、ＭＰＥｍａｉｌアプリケーションに用意されているオプションのロギング機能をアクティブにする。アプリケーションは、ロギングが有効になっている場合に、アカウント毎にログ・ファイルを保持する。ロギングを有効にするには、管理者側で、「Ｅｄｉｔ」プルダウン・メニュー１２６をアクティブにし、「Ｏｐｔｉｏｎｓ」メニュー・オプションを選択する。これにより、「Ｅｎａｂｌｅ  ｌｏｇｇｉｎｇ」チェック・ボックスを含む「Ｏｐｔｉｏｎｓ」ダイアログ・ボックス（図示せず）が起動する。ロギングは、「Ｅｎａｂｌｅ  Ｌｏｇｇｉｎｇ」チェック・ボックスがオンにされるとすべてのアカウントについて有効にされる。
【００４８】
ログ・ファイルは、ＭＰＥｍａｉｌアプリケーションがインストールされているのと同じディレクトリ内に作成される。ファイル名は、先頭にＭＰＥｍａｉｌ＿が付き、その後にＭＰＥｍａｉｌアカウント名が続き、そして．ｌｏｇが付加される。例えば、ＣｏｐｙＲｏｏｍ＠ＭｙＣｏｍｐａｎｙ．ｃｏｍというアカウント名の場合、そのアカウントのログ・ファイルはＭＰＥｍａｉｌ＿ＣｏｐｙＲｏｏｍ＠ＭｙＣｏｍｐａｎｙ．ｃｏｍ．ｌｏｇという名前になる。一実施形態では、ログ・ファイルは、発生したと思われる障害に対するエントリと、電子メールの成功した検索に対するエントリとを作成する。
【００４９】
「Ｓｅｎｄ  ｒｅｐｌｙ」機能が有効になっていれば、ＭＰＥｍａｉｌアプリケーションは、電子メール応答を電子メール印刷サービス・ユーザに送り返す。これは、「Ｏｐｔｉｏｎｓ」ダイアログ・ボックス内の「Ｓｅｎｄ  ｒｅｐｌｙ」チェック・ボックスを選択することにより有効にすることができる。一実施形態では、「Ｓｅｎｄ  ｒｅｐｌｙ」チェック・ボックスをオンにすると、「Ｓｅｎｄ  ｒｅｐｌｙ」機能がすべてのアカウントに対して有効になる。
【００５０】
電子メール・サーバでは、メールが電子メール・サーバに到着したときそのことを電子メール・モジュール４８に通知するイベント・トリガを実装することができる。新規メールが電子メール・サーバに到着すると（例えば、エンタプライズ電子メール・サーバ５０またはＩＳＰ電子メール・サーバ５１に）、電子メール・サーバは、ドライバレス・プリント・サーバ・コンピュータに格納されている、電子メール・トリガＣＧＩスクリプト１０７を呼び出す。ＣＧＩ呼び出しが成功すると、ＭＰＥｍａｉｌアプリケーションは即座に電子メール・サーバからメールを検索する。
【００５１】
トリガ・スクリプト呼び出しは、電子メール・サーバ上の任意のポートとドライバレス・プリント・サーバ・コンピュータ上のポート８０との間のＴＣＰ／ＩＰ接続である。データは、Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ  Ｃｏｎｓｏｒｔｉｕｍ（Ｗ３Ｃ）Ｒｅｑｕｅｓｔ  Ｆｏｒ  Ｃｏｍｍｅｎｔｓ（ＲＦＣ）２０６８規約に定められているとおり、ＨＴＴＰ／１．１プロトコルで、ＰＯＳＴメソッドを使用して送信される。ＰＯＳＴの送信先は、電子メール・トリガ・スクリプトの場所（例えば、ｃｇｉ−ｂｉｎ／ｔｒｉｇｇｅｒ．ｃｇｉ）であり、データ内容は以下の表１に説明されているように名前付きの値のペアを含む。電子メール・トリガＣＧＩスクリプトは、ＰＯＳＴデータを確認し、テキスト文字列ステータスをデータ・セクション返信で返す。可能な返却文字列は表１に示されている。
【００５２】
【表１】
2005521166.tif 000003
【００５３】
ＨＴＴＰ  ＰＯＳＴで送信されたデータは、ＡｃｃｏｕｎｔＮａｍｅ＝Ｓの形の名前値ペア形式である。名前値フィールドは、以下の表２に定義されている。
【００５４】
【表２】
2005521166.tif 000004
【００５５】
電子メール・アドレスｐｒｉｎｔｅｒ１＠ｍａｇｉｃｐｒｉｎｔ．ｎｅｔに対するトリガＣＧＩ呼び出しの一例は以下のとおりである。
POST /cgi-bin/trigger.cgi HTTP/1.1[CRLF]Content-Type:text/xml[CRLF]Content-Length:35[CRLFCRLF]AccountName=printer1@magicprint.net
【００５６】
電子メールを検索した後、ＭＰＥｍａｉｌアプリケーションは、ドライバレス・プリント・サーバにサブミットするため、電子メールを複数のドキュメント・ファイルに分割する。電子メールの主要なコンテンツは、メインの電子メール・コンテンツ・ファイルになり、電子メールのファイル添付は（もしあれば）それぞれ添付ファイルになる。メインの電子メール・コンテンツがテキストとＨＴＭＬの両方であれば、ＨＴＭＬコンテンツが使用される。
【００５７】
ドキュメント・ファイルの作成前に、メインの電子メール・コンテンツの上に、電子メール・ヘッダ情報が追加される。メインの電子メール・コンテンツ・ファイルおよびそれぞれの添付ファイルは、別々の印刷ジョブとして、ドライバレス・プリント・サーバにサブミットされる。例えば、ＭＳ  Ｗｏｒｄ文書およびＡｄｏｂｅ  Ａｃｒｏｂａｔ文書を含む添付のある電子メールがＭＰＥｍａｉｌアカウントに電子メールで送信されると、３つの印刷ジョブがドライバレス・プリント・サーバ上のキューに入れられる。これには、メインの電子メール・コンテンツ・ファイル用の印刷ジョブや、ＭＳ  Ｗｏｒｄ文書とＡｄｏｂｅ  Ａｃｒｏｂａｔ文書のそれぞれ用の印刷ジョブが含まれる。
【００５８】
ドキュメント処理コンポーネント１０１に話を進めると、ＣＧＩスクリプト１０８は、詳細機能を含む管理パネルＷｅｂページを供給する。ＣＧＩスクリプトの詳細な説明が図６に示されている。「印刷ジョブをキャンセル」ＣＧＩスクリプト１６０を使用して、印刷ジョブ要求をシステムから削除する。管理コントロール・パネルＷｅｂページからは、システムにサブミットされたが、スプール・ファイルをまだプリンタに送信していない印刷ジョブに対しスクリプトを呼び出すことができる。
【００５９】
自動拡張構成ＣＧＩスクリプト１６２は、サーバ・コンピュータ内のインストール済みアプリケーションを探索し、見つかったアプリケーションによってサポートできるドキュメント・タイプを発見し、発見されたファイル・タイプの印刷ジョブ要求を実行するようにシステムを構成する。システム更新ＣＧＩスクリプト１６４を使用して、インストール済みシステム・コンポーネントと最新の利用可能なコンポーネントとを比較し、新しいコンポーネント（該当する場合）をダウンロードし、システムにインストールする。
【００６０】
印刷要求ＣＧＩスクリプト１６６は、ＭＰＥｍａｉｌアプリケーションによって供給されるファイルを受け取り、システムへの対応する印刷ジョブ要求を作成する。ジョブ・キューＣＧＩスクリプト１６８は、システムから印刷ジョブ要求のキューを読み取り、そのリストをスクリプトの呼び出し側Ｗｅｂページに返す。
【００６１】
リセットＣＧＩスクリプト１７０は、システム・アプリケーションを閉じて、再び起動する。このスクリプトは、発生したと思われるプログラム・エラーを解消するために最後の手段としてシステム管理者によって使用される。ステータスＣＧＩスクリプト１７２は、印刷ジョブ要求の進行状況が示される管理コントロール・パネルＷｅｂページを表示する。
【００６２】
ドライバレス・プリント・サーバ４６によって実装されるコンポーネントが図７に示されている。ドライバレス・プリント・サーバは、システムの主要ソフトウェア・コンポーネントである。これは、ジョブ要求を受け付け、その要求をキューに入れ、要求から最終印刷までのドキュメント、画像、またはＵＲＬの印刷プロセスを指令するＤＰＳサーバ・コンピュータ上で走るアプリケーションを備えている。ドライバレス・プリント・サーバには、ファイル・タイプ構成リスト１７４、ブラウザ印刷コンポーネント１７６、補助アプリケーション印刷コンポーネント１７８、シェル拡張印刷コンポーネント１８０、ジョブ要求サーバ・コンポーネント１８２、ジョブ処理コンポーネント１８４、ウィンドウ処理コンポーネント１８６、ジョブ・ステータス・コンポーネント１８８がある。
【００６３】
ファイル・タイプ構成リスト１７８は、ドライバレス・プリント・サーバによって保持されている。構成リストには、ファイル・タイプ毎に、拡張子とそのファイル・タイプを印刷するために使用される方法が記述される。補助アプリケーション印刷コンポーネント１７８によって印刷方法が用意されている場合、リストには、印刷に使用されるアプリケーションへのパス、アプリケーションが印刷に使用するメニュー・コマンド、アプリケーションがアプリケーションを閉じるために使用するメニュー・コマンドが含まれる。
【００６４】
ブラウザ印刷コンポーネント１７６は、ドライバレス・プリント・サーバが印刷に使用する３つの方法のうち１つを備える。一実施形態では、このコンポーネントは、Ｍｉｃｒｏｓｏｆｔ  Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ（ＩＥ）Ｗｅｂブラウザによって提供されるアプリケーション・プログラミング・インターフェース（ＡＰＩ）を使用する。コンポーネントは、ＩＥ  ＡＰＩを使用して、ドライバレス・プリント・サーバ・アプリケーション上のウィンドウ内でブラウザを実行する。通常、ブラウザ印刷コンポーネントは、画像とＰＤＦ（Ｐｏｒｔａｂｌｅ  Ｄｏｃｕｍｅｎｔ  Ｆｏｒｍａｔ）ドキュメントを印刷する場合に使用される。
【００６５】
ＤＰＳサーバ・コンピュータ上のＩＥブラウザ・インスタンスがドキュメントまたは画像ファイルの要求されたタイプ用のブラウザ・プラグインと共に構成されている場合、この方法を使用して、ドキュメントと画像ファイルを印刷することができる。例えば、Ａｄｏｂｅ  Ａｃｒｏｂａｔ（商標）用のＩＥプラグインを考える。Ａｄｏｂｅ  Ａｃｒｏｂａｔドキュメント・ファイルはＰＤＦ拡張子を持つ。Ａｃｒｏｂａｔプラグインがサーバにインストールされている場合、ＩＥのナビゲート・プログラミング・インターフェースを使用すると、ＰＤＦファイルをＩＥにロードし、ＩＥの印刷プログラミング・インターフェースによりファイルを印刷することができる。
【００６６】
補助アプリケーション印刷コンポーネント１７８は、ドライバレス・プリント・サーバが印刷に使用する他の方法を備える。このコンポーネントでは、ファイル・タイプ構成リスト１７４を使用してそのファイル拡張子に関連付けられたアプリケーションを見つけ、ファイルをアプリケーションにロードし、アプリケーションの印刷メニュー・コマンドを実行し、印刷オペレーションの完了後、アプリケーションを閉じる。ファイル・タイプ構成リストと補助アプリケーション印刷メソッドの組合せにより、システム管理者は、サーバ・マシンにアプリケーションをインストールし、ファイル・タイプ構成リストを編集することにより、追加ドキュメントまたは画像の種類のサポートを追加することができる。
【００６７】
シェル拡張印刷コンポーネント１８０は、ドライバレス・プリント・サーバが印刷に使用する第３の方法を備える。このコンポーネントは、ＭＳ  Ｗｉｎｄｏｗｓ  Ｓｈｅｌｌ  Ｅｘｔｅｎｓｉｏｎｓプログラミング・インターフェースを使用して印刷する。ＭＳ  Ｗｉｎｄｏｗｓ  Ｓｈｅｌｌ  Ｅｘｔｅｎｓｉｏｎｓインターフェースは、ユーザがそのドキュメント・タイプをサポートするアプリケーションに送られるコマンドを使ってドキュメント・タイプを印刷できるようにするオペレーティング・システム機能である。アプリケーションがＳｈｅｌｌ  Ｅｘｔｅｎｓｉｏｎインターフェースをサポートしている場合、アプリケーションはドキュメントをロードし、印刷し、そして自動的に閉じる。ファイル・タイプ構成リストとシェル拡張印刷メソッドの組合せにより、システム管理者は、サーバ・マシンにアプリケーションをインストールし、ファイル・タイプ構成リスト１７４を編集することにより、追加ドキュメントまたは画像の種類のサポートを追加することができる。
【００６８】
ジョブ要求サーバ・コンポーネント１８２は、印刷要求ＣＧＩスクリプト１６６から印刷ジョブ要求を受け取り、キューに入れて処理を待つ。
【００６９】
ジョブ処理コンポーネント１８４は、スプール・ファイルがプリンタに送信されるまで、ジョブ・キューへの挿入から印刷ジョブ要求を管理する。このコンポーネントは、キューに入っているジョブ要求を読み取り、印刷に使用する３つの印刷方法のうちの１つを決定し、ドキュメント、画像、またはＵＲＬを決定された印刷方法にサブミットし、印刷コマンドの実行を処理し、スプール・ファイルを印刷のためステータス・モニタにサブミットする。印刷処理の各段階で、ステータスを追跡し、実行できるステータスＣＧＩスクリプト１７２呼び出しを利用できるようにする。
【００７０】
ウィンドウ処理コンポーネント１８６は、信頼できる印刷を行うために使用される。アプリケーションの多くは、印刷プロセスの実行中にメッセージ・ボックスおよび／またはダイアログを表示し、印刷サービスを要求しているユーザに情報を提供したり、ユーザから情報を収集したりする。印刷要求の自動処理をサポートするには、要求を印刷するのに使用されるアプリケーションにメッセージ・ボックスまたはダイアログが表示された場合にそれらのメッセージ・ボックスまたはダイアログに応答するメカニズムが必要である。このメカニズムは、ウィンドウ処理コンポーネント１８６によって提供される。ドライバレス・プリント・サーバが、印刷プロセス実行中にメッセージ・ボックスとダイアログが表示されないかサーバを監視している。新しいメッセージ・ボックスまたはダイアログが表示されると、ウィンドウ処理コンポーネントがその情報を読み込み、知られているメッセージまたは知られているステートメントと比較し、そのプログラムされているロジックに従ってメッセージ・ボックスまたはダイアログを閉じる。ウィンドウ処理コンポーネントの詳細について、図１８を参照しながら以下で説明する。
【００７１】
ジョブ・ステータス・コンポーネント１８８が各ドライバレス・プリント・サーバ・キュー内にすべてのジョブのメモリマップト・ファイルを保持するために設けられている。周期的に、ジョブ・ステータス情報をメモリマップト・ファイルに書き込むことで、ステータスＣＧＩスクリプトがジョブ要求のステータスを読み込めるようにしている。
【００７２】
ポート・モニタは、ＭＳ  Ｗｉｎｄｏｗｓ印刷サブシステム内の標準コンポーネントを含む。ポート・モニタは、印刷サブシステムを介してプリンタ・ドライバからスプールされたデータを受け取る。従来のポート・モニタは、プリンタ・ドライバからスプールされたデータを受け取り、プリンタに引き渡す役割が与えられている。ドライバレス・プリント・サーバ・システムでは、ポート・モニタ・モジュール１１０（図２）がスプールされているデータをファイルに書き込む。スプール・ファイル全体がファイルに書き込まれると、ポート・モニタ・モジュール１１０がドライバレス・プリント・サーバに、スプールされたファイルの名前と場所をメッセージとして送る。
【００７３】
ステータス・モニタ１１２は、ＤＰＳサーバ・コンピュータ上で走るアプリケーションを含む。これは、複数の機能を実行するが、主にスプール・ファイルをプリンタに送信する役割を持つ。ドライバレス・プリント・サーバは、ポート・モニタ１１０からスプール・ファイルの場所を示すメッセージを受け取った後、スプール・ファイルの場所と、スプール・ファイルの送信先プリンタのＵＲＬと、スプール・ファイルをプリンタに送信するためのプロトコル情報とを示すメッセージをステータス・モニタ１１２に送信する。ステータス・モニタ１１２は、それぞれの要求されたプリンタＵＲＬのキューを作成する。プリンタは、一度に１つのスプール・ファイルしか受け取れないので、スプール・ファイルの送信をシリアライズする。ステータス・モニタ１１２は、複数のキューを同時に作成し維持することができる。
【００７４】
スプール・ファイルがプリンタに正常に送信された後、ステータス・モニタ１１２はドライバレス・プリント・サーバに、ジョブが完了していることをメッセージで知らせる。ジョブ履歴が更新され、ドライバレス・プリント・サーバ・キューからジョブが削除される。ステータス・モニタ１１２は、スプール・ファイルがプリンタに送信される前後にメッセージを外部システムに送信するように構成されている。外部システムの一例として、この情報を使用して課金を客の請求書に記載することができるホテルの請求システムがある。
【００７５】
管理コンポーネント１０２に話を進めると、システム・モニタ１１４は、他のすべてのシステム・コンポーネントを監視し、エラーがないか調べ、特定の要求の着信を待つアプリケーションを備えている。印刷ジョブ要求が印刷要求ＣＧＩスクリプト１６６から届くと、ドライバレス・プリント・サーバ・アプリケーションが動作していない場合、印刷要求ＣＧＩスクリプトは、システム・モニタ１１４がドライバレス・プリント・サーバを起動し、印刷ジョブ要求を実行するよう要求することができる。システム・モニタ１１４は、定期的に、メッセージをドライバレス・プリント・サーバに送信し、プログラムとキュー内の印刷ジョブのステータスを取得する。システム・モニタは、エラーを検出すると、この問題をクリアする。
【００７６】
システム・モニタ１１４はさらに、より新しいシステム・コンポーネントをダウンロードし、インストールする場合に使用できる。システム内のすべてのコンポーネントのバージョン番号を収集し、それらをシステムの更新Ｗｅｂサイトに送信する。更新Ｗｅｂサイトは、新しいコンポーネントが利用できるかどうかについての情報と共に返信する場合、それらのコンポーネントを検索して、システムにインストールする。システム・モニタは、メニューから、または「システムを更新」ＣＧＩスクリプト１６４から更新要求を受け付ける。
【００７７】
管理用（パネル）Ｗｅｂページ１２４では、管理ユーザがシステムのリモート構成と監視を実行できる。セキュリティ機能は、コンシューマ・ユーザによるこれらのＷｅｂページへのアクセスを禁止する場合に使用される。管理パネルＷｅｂページ１９０の例が図８に示されている。管理パネルＷｅｂページ１９０は、「ｐｒｉｎｔ  ｊｏｂ」タブ１９２、「ａｂｏｕｔ」タブ１９４、「ｆｉｌｅ  ｔｙｐｅｓ」タブ１９６、「ｃｏｎｓｕｍｅｒ  ｃｏｎｔａｃｔ」タブ１９８、「ｐｒｉｎｔｅｒ  ｍａｎａｇｅｍｅｎｔ」タブ２００、および「ｃｏｎｆｉｇｕｒａｔｉｏｎ」タブ２０２を含む、複数の最上位レベルのタブを備え、これらのタブに対応する管理Ｗｅｂページにナビゲートする。
【００７８】
「ｐｒｉｎｔ  ｊｏｂｓ」タブ１９２をアクティブにすると、下位のタブ群が図８に示されているように描画される。これらには、「ｖｉｅｗ  ｐｒｉｎｔ  ｑｕｅｕｅ」タブ２０４、「ｌｉｓｔ  ｂｙ  ｄａｔｅ」タブ２０６、「ｌｉｓｔ  ｂｙ  ｏｗｎｅｒ」タブ２０８、「ｌｉｓｔ  ｂｙ  ｐｒｉｎｔｅｒ」タブ２１０、「ａｌｌ  ｊｏｂｓ」タブ２１２、「ａｄｖａｎｃｅｄ  ｓｅａｒｃｈ」タブ２１４がある。図８に示されているように、「ｖｉｅｗ  ｐｒｉｎｔ  ｑｕｅｕｅ」タブ２０４をアクティブにすると、管理者は、プルダウン・コントロール２１６で選択したプリンタの保留印刷ジョブを表示することができる。保留印刷ジョブがテキスト・ボックス２１８内に表示され、キュー内のジョブの個数がテキスト・ボックス２２０に表示される。「ｍｏｒｅ  ｉｎｆｏ」ボタン２２２をアクティブにすると、管理者は選択した印刷ジョブの詳細を確認することができる。
【００７９】
「ｌｉｓｔ  ｂｙ  ｄａｔｅ」タブ２０６、「ｌｉｓｔ  ｂｙ  ｏｗｎｅｒ」タブ２０８、「ｌｉｓｔ  ｂｙ  ｐｒｉｎｔｅｒ」タブ２１０、「ａｌｌ  ｊｏｂｓ」タブ２１２をアクティブにすると、管理者は、選択された特定のタブに関係する印刷ジョブの履歴を表示することができる。例えば、「ｌｉｓｔ  ｂｙ  ｄａｔｅ」タブ２０６をアクティブにすると、管理者は図９に示されている管理パネルＷｅｂページ２２４に示されているように、選択された日付範囲に関して指定されたドライバレス・プリント・サーバのすべての印刷ジョブを表示することができる。その後、管理者は、編集ボックス２２６、２２８を介して開始日と終了日の値を入力して、「ｇｏ」ボタン２３０をアクティブにし、検索される日付範囲内のすべての印刷ジョブのレコードを要求する。１ページ当たりの結果の数は、プルダウン・コントロール２３２を使用して選択することができ、レコード間のナビゲーションは、一組のナビゲーション・コントロール２３４により有効にされる。各レコードには、開始時刻、所有者、ドキュメント名、印刷ステータス、終了時刻、印刷ページ数、料金合計、所有者アドレス、プリンタ・アドレスに関する情報が含まれる。
【００８０】
「ｌｉｓｔ  ｂｙ  ｏｗｎｅｒ」タブ２０８をアクティブにすると、管理者は、図１０の管理パネルＷｅｂページ２３６に示されているように、特定の所有者にサブミットされるすべてのジョブに関する情報を表示することができる。通常、所有者は、コンシューマ・ユーザが電子メール印刷要求を送信するのに使用した個人用電子メール・アカウントに対応する返信先電子メール・アドレスでよい。必要ならば、電子メール・アドレスを実際の人々または企業にマッピングするテーブルを実装することで、電子メール・アドレスではなく、人または企業の名前を入力するだけで所有者情報へアクセスできるようにする。所有者情報は、編集ボックス２３８に入れられる。その後、管理者は、「ｇｏ」ボタン２４０をアクティブにして、その所有者に対応するレコードを検索する。上述のように、１ページ当たりの結果の数は、対応するコントロール（図には示されていない）により選択することができ、またレコード間のナビゲーションは、ナビゲーション・コントロール・セット２４２により有効にされる。
【００８１】
「ｌｉｓｔ  ｂｙ  ｐｒｉｎｔｅｒ」タブ２１０をアクティブにすると、管理者は、図１１の管理パネルＷｅｂページ２４４に示されているように、選択されたプリンタに対し完了したすべてのジョブを表示することができる。印刷ジョブ履歴が必要なプリンタのＩＤがプルダウン・コントロール２４６により選択され、その後、「ｇｏ」ボタン２４８がアクティブにされた応答として対応するレコードが検索される。１ページ当たりの結果の数は、プルダウン・コントロール２５０を使って選択することができ、レコード間のナビゲーションは、ナビゲーション・コントロール・セット２５２により有効にされる。
【００８２】
「ａｌｌ  ｊｏｂｓ」タブ２１２をアクティブにすると、管理者は、図１２の管理パネルＷｅｂページ２５４に示されているように、特定のドライバレス・プリンタ・サーバを通じて印刷されるすべてのジョブに関係する情報を表示することができる。上述のように、１ページ当たりの結果の数は、対応するコントロール（図には示されていない）により選択することができ、またレコード間のナビゲーションは、一組のナビゲーション・コントロール２９４により有効にされる。
【００８３】
「ａｄｖａｎｃｅｄ  ｓｅａｒｃｈ」タブ２５２をアクティブにすると、管理者は、図１３の管理パネルＷｅｂページ２５８に示されているように、様々な入力値に基づいて選択される印刷ジョブに関係する情報を表示することができる。サーチの日付範囲は、開始日編集ボックス２６０と終了日編集ボックス２６２を使用して入力する。プルダウン・コントロール２６４を使って、１つまたは複数のプリンタを選択することができる。プリンタの所有者は、ブロック２６６の中で指定できる。所有者が指定されていなければ、サーチがすべての所有者について実行される。サイト識別は、プルダウン・コントロール２６８を使って選択できる。プルダウン・コントロール２７０を使って、１ページ当たりの結果数を選択することができる。プルダウン・コントロール２７２は、管理者が並べ替えの対象となる列を定義できるように用意されている。一対のラジオ・ボタン２７４により、並べ替え順を昇順または降順のいずれかとして定義することができる。目的の値を入力し、選択した後、管理者は「ｇｏ」ボタン２７６でサーチを開始することができる。前のサーチ・パラメータ・セットを検索するには「ＰＲＥＶＩＯＵＳ」ボタン２７８をアクティブにし、様々なサーチ・パラメータに対する値をデフォルト値にリセットするには、「ＲＥＳＥＴ」ボタン２８０をアクティブにする。
【００８４】
「ｆｉｌｅ  ｔｙｐｅｓ」タブ２３４をアクティブにすることにより、管理者は、図１４のＷｅｂページ２８２に示されているように、ドライバレス・プリント・サーバによって印刷することができるドキュメントと画像ファイルのファイル・タイプを表示かつ／または編集することができる。各種のファイル・タイプ・レコードのナビゲーションは、編集コントロール・セット２８４と編集コントロール・セット２８６により実行される。プルダウン・コントロール２８８を使って、１ページ当たりのレコード数を選択することができる。特定のファイル・タイプに対する値を編集したい場合、管理者は、該当する行の「ｅｄｉｔ」ボタン２９０をアクティブにすることで、値列の値を編集できるようになる。これらの列には、「Ｅｘｔｅｎｓｉｏｎ」列、「Ａｐｐｌｉｃａｔｉｏｎ」列、および「Ｅｎａｂｌｅｄ」列、「Ｍｅｔｈｏｄ」列、「ＴｏＬａｕｎｃｈ」列、「ＴｏＰｒｉｎｔ」列、「ＴｏＣｌｏｓｅ」列、および「Ｓｔａｔｉｃ」列がある。ファイル・タイプの拡張子は、「Ｅｘｔｅｎｓｉｏｎ」列に入力する。対応するアプリケーションまたはアプリケーションのタイプの名前（例えば、「Ｉｍａｇｉｎｇ」）を「Ａｐｐｌｉｃａｔｉｏｎ」列に入力する。アプリケーションを起動するファイル・パスは、「ＴｏＬａｕｎｃｈ」列に入力する。アプリケーションから印刷し、アプリケーションを閉じる内部コマンドは、それぞれ「ＴｏＰｒｉｎｔ」列および「ＴｏＣｌｏｓｅ」列に入力することができる。指定された行に対応するファイル・タイプ・マッピング情報は、削除列内の該当するチェック・ボックスをオンにし、「ｄｅｌｅｔｅ」ボタン２９２をアクティブにすることにより削除することができる。
【００８５】
「ｃｏｎｆｉｇｕｒａｔｉｏｎ」タブ２０２をアクティブにすることにより、管理者は、ドライバレス・プリント・サーバのインストレーションを更新しそのオペレーションを構成することができる。図１５に示されているように、「ｃｏｎｆｉｇｕｒａｔｉｏｎ」タブをアクティブにすると、「ｕｐｄａｔｅ」タブ２９６、「ｅｘｔｅｎｓｉｏｎｓ」タブ２９８、「ｊｏｂ  ａｃｃｏｕｎｔｉｎｇ  ｓｅｒｖｅｒ」タブ３００などの、３つの追加タブを備えるＷｅｂページ２９４がロードされる。「ｅｘｔｅｎｓｉｏｎｓ」タブ２９８をアクティブにすると、Ｗｅｂページ２９４に対応する「Ｅｘｔｅｎｓｉｏｎｓ」Ｗｅｂページが起動する。
【００８６】
印刷のためファイルをサブミットすると、ドライバレス・プリント・サーバがファイルのファイル・タイプに対応するアプリケーションを開く。例えば、ファイルの拡張子が．ｄｏｃであれば、一般的にＭＳ  Ｗｏｒｄアプリケーションが開かれる。次に、アプリケーションはファイルを開き、組み込みの印刷コマンドを使用して、サブミットされているファイルを選択されたプリンタに送信する。「ｅｘｔｅｎｓｉｏｎｓ」Ｗｅｂページ（つまり、Ｗｅｂページ２９４）では、（「Ｅｘｔｅｎｓｉｏｎｓ」列に）ファイル・タイプ情報の一覧を表示する行（エントリ）と（「Ａｐｐｌｉｃａｔｉｏｎ  Ｎａｍｅ」列に）ファイル・タイプに対応するソフトウェア・アプリケーションが表示される。また、それぞれのエントリには、拡張子の優先度レベル（サブミットされたファイルに対する適切なアプリケーションを決定するため同じ拡張子を持つファイル・タイプを評価する順序を定義する）、アプリケーションに関するＯＳレジストリ情報の格納先を識別するレジストリ・ロケーション、アプリケーションのデフォルト・パス、アプリケーションの実行可能名、さらにはアプリケーションを印刷しアプリケーションを閉じるための内部コードが表示される。管理者は、「ａｄｄ  ｎｅｗ  ｅｎｔｒｙ」ボタン３０２をアクティブにして新規ファイル・タイプを追加し、Ｗｅｂページ２９４（図示せず）の各列の対応する編集コントロールでＷｅｂページを描画することができる。「ｕｐｄａｔｅ  ｆｉｌｅ  ｔｙｐｅｓ」ボタン３０４をアクティブにすることに対する応答として類似のＷｅｂページが描画され、この場合のみ、編集コントロールに、更新対象の選択されたファイル・タイプに関係する値が埋められる。ファイル・タイプの更新は、さらに、「ｅｄｉｔ」ボタン３０６をアクティブにしても開始することができる。前述のように、レコード間のナビゲーションは、一組のナビゲーション・コントロール３０８により有効にされる。
【００８７】
ドライバレス・プリント・サーバでは、ファイル・タイプの値に対応する拡張子テーブルを使用して、拡張子テーブルに列挙されている各ファイル・タイプのファイルの印刷に使用するサーバ・コンピュータ上にインストールされているアプリケーションを判定する。さらに、このテーブルに含まれる情報を使用して、サーバ・コンピュータ上の実行可能ファイルの場所を判定する。一実施形態では、拡張子テーブルや、他の様々な構成と印刷ジョブ・データがデータベース内に保持される。通常、データベースは、ＤＰＳソフトウェアのホストとなるマシンと同じマシンをホストとするが、当業者であれば理解できるであろうが、データベースのホストとして別のマシンを使用することもできる。
【００８８】
印刷要求の処理
電子メール印刷要求への応答として電子メール・モジュールとＤＰＳシステム・ソフトウェア・コンポーネントにより実行されるデータの流れと動作を説明するデータ流れ図が図１６に示されている。最初に、発信デバイス３２０のユーザは、電子メール・メッセージ３２２を、電子メール・サーバ３２４によりホストされる電子メール・アドレス・アカウントに対応する仮想プリンタ電子メール・アドレスに送信する。一般に、電子メール・メッセージは、ＬＡＮ、ＷＡＮ、またはインターネットなどのコンピュータ・ネットワーク３２６を介して発信デバイスから電子メール・サーバに送信される。上述のように、電子メール・サーバは、ＩＳＰが提供するか、エンタプライズ電子メール・サーバであるか、またはドライバレス・プリント・サーバ・コンピュータ３２８上で走っている電子メール・サーバ・ソフトウェアにより実現することができる。ＩＳＰとエンタプライズ電子メール・サーバは両方とも、一般的に、電子メール・サーバがアカウント毎に０個またはそれ以上のメッセージを格納するという形で、複数の電子メール・アカウントをサポートする。これらのメッセージは、電子メール・メッセージ３３０として示されており、電子メール・メッセージ３２２を含む。
【００８９】
上述のように、図２に示されているソフトウェア・コンポーネントはすべて、電子メール・モジュール４８とドキュメント処理コンポーネント１０１を含むドライバレス・プリント・サーバ上で走っており、前者はＭＰＥｍａｉｌアプリケーションを含み、後者はドライバレス・プリント・サーバ・ソフトウェア４６を含む。「Ａｄｄ／Ｅｄｉｔ」ダイアログ・ボックス１４０で選択された電子メール通知方法に基づき、電子メール・モジュール４８は、電子メール・サーバ３２４をポーリングし、上述の方法でターゲット・プリンタ３３４の仮想プリンタのアドレスに対応するメッセージが受信されていないかを調べるポーリング方法３３２を採用する。オプションにより、トリガ・チェック・ボックス１５６がオンになっている場合、電子メール・サーバ３２４は、仮想プリンタ電子メール・アドレスを宛先とする電子メールが受信されたときに適切な呼び出しメカニズムによりドライバレス・プリント・サーバ・コンピュータ３２８に格納されている電子メール・トリガＣＧＩスクリプト１０６を呼び出す。その後、電子メール・トリガＣＧＩスクリプトは上述の方法で実行される。
【００９０】
一般に、ドライバレス・プリント・サーバのインストレーションまたは「サイト」は１つまたは複数のプリンタに対するサポートを行う。図１６に示されているように、本発明の実施形態に対応するＤＰＳサイトは、ＰｏｓｔＳｃｒｉｐｔプリンタ３３６、ＨＰレーザ・プリンタ３３８、プロッタ３４０、さらにターゲット・プリンタ３３４を含む。プリンタ毎に別々の構成パラメータ・セットが設定され、ＤＰＳデータベース３４２に格納される。複数のプリンタが利用できるサイトによっては、複数のプリンタをサポートするようにポーリング方法３３２および／または電子メール・トリガＣＧＩスクリプト呼び出しメカニズムを構成しなければならない場合がある。例えば、一実施形態では、ポーリング方法３３２は、ＤＰＳサイトのプリンタのそれぞれについて仮想プリンタ電子メール・アドレスに対応する電子メールをチェックすることができる。他の実施形態では、ポーリング方法は、プリンタ毎に別々に呼び出すことができる。同様に、電子メール・トリガ呼び出しメカニズムは、ＤＰＳサイトのプリンタのどれかに対応する電子メール・アカウントでメールが受信されるといつでも電子メール・トリガＣＧＩスクリプト１０７が呼び出されるように電子メール・サーバ上で設定できる。
【００９１】
仮想プリンタ電子メール・アドレスの１つに対応する電子メールが受信されたと判断されると、電子メール・サーバから電子メールが検索される。通常、これは、適切なログイン方法を使用した電子メール・サーバへのログインを含む（例えば、ＰＯＰ３ホスト・アドレス、ＰＯＰ３用のＵｓｅｒＩＤおよびパスワードを用意する）。このロジックの方法は、図１６のログイン方法３４４として示されている。
【００９２】
電子メールを受信すると、それぞれの電子メール・メッセージがＭＰＥｍａｉｌアプリケーション１２１により個々に処理される。上述のように、電子メールのコンテンツは、別のメイン電子メールと添付ファイルに分割され、印刷要求ＣＧＩスクリプト１６６が呼び出されて、印刷ジョブ要求３４６を生成する。一実施形態では、印刷ジョブ要求は、印刷要求ＣＧＩスクリプトを介してジョブ・キュー３４８に送信されるＴｍｐｄｏｃ．ｄｐｓｎ（ｎは番号を表す）という名前のドキュメントを含む。一実施形態では、ジョブ・キューは先入れ先出し（ＦＩＦＯ）型のジョブ・キューを含む。オプションにより、他の種類のジョブ・キューも使用することができるが、このことは、当業者であれば理解するであろう。上述のように、ジョブ・キューの動作はジョブ処理コンポーネント１８４により実行される。
【００９３】
ジョブ・キューはジョブ要求をサブミットし、ジョブ要求はシステムによって処理される。それぞれの要求は、ブロック３５０で処理され、そこでは、ｔｍｐｄｏｃ．ｄｐｓｎファイルが解析され、ドキュメント・ファイル３５２に格納されている、印刷要求に対応する印刷ジョブ・パラメータが検索される。例えば、解析された情報には、プリンタの選択、部数、コンシューマ・ユーザのＩＤ、ドキュメント名などが含まれる。印刷ジョブ・パラメータの一部は、ＤＰＳデータベース３４２に格納される。
【００９４】
決定ブロック３５４で、現在の印刷ジョブに対応しているのがどのような種類のファイルなのか、例えば、テキスト・ファイルなのか、アプリケーション・ファイルなのか、画像ファイルなのか、プリンタ・ファイルなのかが判定される。そのドキュメントが、ブラウズ可能なドキュメント、画像、ＰＤＦファイル、またはブラウザ上に描画できる他の種類のオブジェクトに関係している場合、ロジックの流れはブロック３５６に進み、そこで、ドライバレス・プリント・サーバのブラウザを介して画像またはＰＤＦドキュメントがロードされる。そうでない場合、ロジックの流れはブロック３５８に入り、そこで、ドキュメントとそのドキュメントの印刷に使用することができる適切な補助アプリケーションがロードされる。例えば、ドキュメントがＭＳ  Ｅｘｃｅｌのスプレッドシートを含む場合、ＭＳ  Ｅｘｃｅｌアプリケーションのインスタンスが、Ｅｘｃｅｌドキュメントと共にロードされる。
【００９５】
ブロック３６０で、ブラウザまたは補助アプリケーションにソース・データの印刷を行わせる印刷オペレーションを呼び出す内部コマンドが生成される。例えば、ほとんどのアプリケーションでは、アプリケーションの印刷プロセスを起動する「Ｆｉｌｅ」→「Ｐｒｉｎｔ」メニュー・オプションを備えている。この場合、ＤＰＳソフトウェアは、印刷コマンドに対応するイベントを発生させるが、このイベントは、ユーザが「Ｆｉｌｅ」→「Ｐｒｉｎｔ」メニュー・オプションを選択したかのようにアプリケーションによって処理される。オプションにより、上述のように、ＤＰＳソフトウェアは、シェル拡張印刷コンポーネント１８０を使用し、適切なオペレーティング・システムＡＰＩ呼び出しを実行して、ソース・データの印刷を行わせる印刷オペレーションを呼び出すことができる。
【００９６】
内部アプリケーションまたはブラウザの印刷要求への応答として、様々な印刷情報とドキュメント情報が内部的に、プリンタ・オペレーションを処理するオペレーティング・システム・コンポーネントに受け渡される。上述のように、一実施形態では、ドライバレス・プリント・サーバは、ＭＳ  Ｗｉｎｄｏｗｓ（登録商標）  ＯＳ環境で動作する。したがって、この環境は、ターゲット・プリンタに送られて出力ドキュメントを生成する適切なプリンタ（つまり、出力デバイス）データを生成するターゲット・プリンタに対応するプリンタ・デバイス・ドライバ３６４と相互作用するグラフィカル・デバイス・インターフェース（ＧＤＩ）コンポーネント３６２を含むＯＳ印刷サブシステム３６１を備える。プリンタ・データは、ポート・モニタ１１０によって受信されるプリンタ・データを含む印刷スプール・ファイルを出力するＭＳ  Ｗｉｎｄｏｗｓ印刷スプーラ・コンポーネント３６６によって内部的に処理される。
【００９７】
図に示されている例では、ターゲット・プリンタ３３４はＰｏｓｔＳｃｒｉｐｔプリンタを含むと仮定している。そこで、Ｗｉｎｄｏｗｓ印刷スプーラは、ＰｏｓｔＳｃｒｉｐｔファイル３６８を含むプリンタ・データをポート・モニタ１１０に送信し、次に、ステータス・モニタ１１２を起動し、ＰｏｓｔＳｃｒｉｐｔファイルをステータス・モニタにサブミットする。次に、ステータス・モニタ１１２は、ＰｏｓｔＳｃｒｉｐｔファイル３６８をターゲット・プリンタ３３４にサブミットする。このイベントと共に、ＤＰＳデータベース３４２内のジョブ履歴情報が更新される。
【００９８】
一実施形態では、ドライバレス・プリント・サーバはプリンタ・ファイルの直接印刷をサポートしている。例えば、印刷ジョブ・ファイルがプリンタ・ファイルを含む場合、ターゲット・プリンタのプリンタ・ファイル・タイプに対応していれば、直接印刷することができる。例えば、ＰｏｓｔＳｃｒｉｐｔファイルをＰｏｓｔＳｃｒｉｐｔプリンタに印刷することができる。同様に、他の種類のプリンタのプリンタ・ファイルは、印刷プロセスで「ｓａｖｅ  ｔｏ  ｆｉｌｅ」オプションを選択することによりすでに作成されている場合がある。決定ブロック３５４でファイルがプリンタ・ファイルであると判定された場合、このロジックはブロック３５７に進み、そこで、プリンタ・ファイル（プリンタ・ファイル３５９で示されている）は直接、Ｗｉｎｄｏｗｓ印刷スプーラ３６６に送信される。
【００９９】
上述のように、システムを、元の電子メール印刷要求の送信元の電子メール・アカウントに返信メッセージを自動的に送り返すように構成することができる。したがって、決定ブロック３６９で、返信オプションが選択されているかどうかの判定が行われ、もしそうであれば、印刷要求のステータスを含む電子メール返信メッセージ３７０が生成され、電子メール・メッセージ３２２をサブミットしたユーザの電子メール・アカウント・アドレスに送信される。一実施形態では、ＭＰＥｍａｉｌアプリケーション１２１は、ステータスＣＧＩスクリプト１７２を呼び出して、印刷要求に対応する印刷ジョブのステータスを検索し、そのステータスを電子メール返信メッセージに付加し、元の電子メール印刷要求メッセージ（例えば、電子メール・メッセージ３２２）のヘッダを解析して、送信者の電子メール・アドレスを抽出し、電子メール返信メッセージをそのアドレス宛に送信する。
【０１００】
ドライバレス・プリント・サーバ・ソフトウェア４６の内部動作の詳細を、図１７に示す。前述のように、電子メール３２２は、メイン電子メールまたは添付ファイル毎に印刷要求ＣＧＩスクリプト１６６を呼び出す電子メール・モジュール４８により検索され、処理される。それに対する応答として、印刷要求ＣＧＩスクリプト１６６は、それぞれのファイルについて印刷ジョブ・ドキュメント（つまり、ｔｍｐｄｏｃ．ｄｐｓｎドキュメント３４６）を作成する。印刷要求ＣＧＩスクリプトはさらに、パイプで、印刷要求が含まれるメッセージを新規ジョブ・パイプ・サーバ３７１に送り込み、メッセージをメッセージ・キュー３７２に格納する。印刷要求メッセージ毎に、メッセージ・キュー・ハンドラ３７４が、対応する印刷ジョブ・ドキュメントを解析する対応するスレッドを起動し、ドキュメント・ファイル３５２を生成し、印刷ジョブをジョブ・キュー３４８にサブミットする。
【０１０１】
「ジョブ・キュー・ループの起動」ブロック３７６と「ジョブ・キュー・ループの終了」ブロック３７７に示されているように、これらのループ端の間に表示される以下の動作とロジックは印刷ジョブ毎に実行される。まず、ブロック３７８で、ジョブ・キュー３４８から次のジョブが検索される。決定ブロック３８０で、どのような種類のファイル・タイプの印刷方法を使用しなければならないかの判定を行う。ファイルが補助アプリケーション（例えば、ＭＳ  Ｗｏｒｄ、ＭＳ  Ｅｘｃｅｌ、ＡｕｔｏＣａｄなど）を必要とする場合、ロジックはブロック３６６に進み、そこで、上で説明したように、ドキュメントと適切な補助アプリケーションがロードされる。補助アプリケーションにファイルがロードされると、ファイル印刷コマンドがブロック３６０内に内部的に生成され、前述のように、ファイルをサブミットしＯＳによる印刷に任せる。
【０１０２】
次に、決定ブロック３８２で、「Ｃｏｍｐｌｅｔｅｄ」メッセージがポート・モニタ１１０から届いたかどうか判定される。この判定は、定期的に、またはソフトウェア割り込みメカニズムにより、「Ｃｏｍｐｌｅｔｅｄ」メッセージが受信されるまで実行される。その後、ブロック３８４でステータス・モニタ１１２が起動し、印刷ドキュメント３６８がターゲット・プリンタ３３４に送信され、ＤＰＳデータベース３４２内のジョブ履歴データが前述のように更新される。
【０１０３】
決定ブロック３８０に戻り、ドキュメント・タイプが、補助アプリケーションなしでドライバレス・プリント・サーバ・コンピュータにより直接印刷できるファイル・タイプの場合（例えば、ＰＤＦドキュメントまたは様々なタイプの画像ファイル）、ロジックはブロック３５６に進み、そこで、ＤＰＳコンピュータのブラウザが画像またはドキュメントをロードし、対応する画像またはドキュメントを描画する。描画されると、上述の方法で残りの印刷オペレーションが実行されるが、これはブロック３６０から始まる。上述のように、ドキュメント・タイプがプリンタ・ファイルの場合、ドキュメントは直接、Ｗｉｎｄｏｗｓ印刷スプーラ３６６に送られる。
【０１０４】
ウィンドウ処理コンポーネント２２４によって実行されるロジックと動作を説明する流れ図を図１８に示す。図１６の開始ブロック４５０に示されているように、ウィンドウ処理スレッドが決定ブロック３５４の始めと、ブロック３６０で印刷アクションが呼び出された直後に起動される。上述のように、ウィンドウ処理コンポーネントは、アプリケーションがロードされるとき、ドキュメントがアプリケーションにロードされるとき、印刷アクションを開始するとき、印刷プロセス中などに起動することができる様々なダイアログとメッセージ・ボックスを処理するのに使用される。
【０１０５】
図１８の流れ図に戻ると、ウィンドウ処理スレッドは、起動後、ブロック４５２で調べなければならないデスクトップ・ウィンドウがまだあるか判定する。このようなウィンドウは、一般に、ダイアログ・ボックスとメッセージ・ボックスを備える。調べるべきウィンドウがもうなければ、「スレッドの終了」ブロック４５４に示されているように、スレッドは終了する。調べるべきウィンドウがまだあれば、ロジックはブロック４５６に進み、ウィンドウのウィンドウ情報を取得する。ＭＳ  Ｗｉｎｄｏｗｓオペレーティング・システムでは、適切なＷｉｎｄｏｗｓ  ＡＰＩコールを実行することによりウィンドウ情報を取得することができる。
【０１０６】
次に、決定ブロック４５８で、ウィンドウが描画アプリケーションの子ウィンドウかどうかを判定する（つまり、補助アプリケーションまたはブラウザで生成されたかどうか）。決定が「いいえ」ならば、ウィンドウはその描画アプリケーションに応答せず、ロジックは決定ブロック４５２に進み、次のウィンドウを評価する。決定ブロック４５８に対する答えが「はい」（ＴＲＵＥ）ならば、ロジックはブロック４６０に進み、ウィンドウのテキストとコントロール・ボタンが調べられる。
【０１０７】
決定ブロック４６２により判定されるのであるが、テキストが標準メッセージ文字列に一致する場合、ロジックはブロック４６４に進み、そこで、「ウィンドウを閉じる」コマンドが内部的に与えられ、ユーザがウィンドウ上の「閉じる」ボタンまたはウィンドウのフレーム内の「ウィンドウを閉じる」アイコンをアクティブにする動作をエミュレートする。その後、ロジックは決定ブロック４５２に戻り、次のウィンドウを処理する。
【０１０８】
テキストが標準メッセージ文字列に一致しない場合、決定ブロック４６２に対する答えは「いいえ」（ＦＡＬＳＥ）であり、ロジックは決定ブロック４６６に進み、そこで、テキストがＤＰＳデータベース３８６内のウィンドウ処理テーブル４７０に格納されている対応するエントリ・リストのＭｅｓｓａｇｅＴｅｘｔ値と一致するかどうかが判定される。一致する値がある場合、ロジックはブロック４６８に進み、そこで、一致するＭｅｓｓａｇｅＴｅｘｔ値の行内のデータを検索し、データによって与えられるパラメータに基づき対応するメッセージをＷｉｎｄｏｗｓ  ＡＰＩに発行することによりテーブル・コマンドが実行される。例えば、通常のエントリ・リストの行４７２は、図１８の最上段に示されている。この行には、ＭｅｓｓａｇｅｌＤ、Ｗｐａｒａｍ、Ｌｐａｒａｍ値を含む、Ｗｉｎｄｏｗｓ  ＡＰＩに関係する情報が格納される。これらのパラメータは、ウィンドウを処理する所望の動作を実行するための対応するＡＰＩを呼び出すのに使用される。テーブル・コマンドが実行されると、または決定ブロック４６６に対する答えが「いいえ」（ＦＡＬＳＥ）であれば、ロジックは決定ブロック４５２に戻り、次のウィンドウの処理を開始する。
【０１０９】
前記の説明および付属の図面では、ＭＳ  Ｗｉｎｄｏｗｓオペレーティング・システム・コンポーネントによって提供されるソフトウエア・オペレーションを実装する本発明の実施形態が開示されていた。本発明の原理および教示は、ＵＮＩＸ（登録商標）ベースのオペレーティング・システムやＬＩＮＵＸベースのオペレーティング・システムなどの他のオペレーティング・システムが使用される実装にも適用できるため、これは制限することを意味しない。例えば、様々なＵＮＩＸ（登録商標）やＬＩＮＵＸオペレーティング・システムは、上で説明したＭＳ  Ｗｉｎｄｏｗｓ印刷サポート・コンポーネントと類似する動作を実現するＯＳカーネル・コンポーネントによってサポートされているグラフィカル・ユーザ・インターフェース、アプリケーションＡＰＩ、印刷機能を備える。
【０１１０】
ファイル・サーバー・コンピュータ・システムの例
図１９を参照すると、一般的に従来型であるコンピュータ・サーバ５００が例示されているが、本発明を実践することに関連して使用するのに適しており、独立したコンピュータがＷｅｂサーバのオペレーションを実行するのに使用されるＤＰＳサーバ・コンピュータやＷｅｂサーバ・コンピュータで使用することができる。これらの目的に適していると考えられるコンピュータ・システムの例として、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ、ＵＮＩＸ（登録商標）ベース、ＬＩＮＵＸベースのオペレーティング・システムが稼働するコンピュータ・サーバが挙げられる。
【０１１１】
コンピュータ・サーバ５００は、一般的に、当業者であればよく知っているように、１つまたは複数のプロセッサ５０４やメモリ（例えば、ＤＩＭＭまたはＳＩＭＭ）５０６を含む、適切な集積回路が配置されているマザーボード（図示せず）が取り付けられているシャシ５０２を備える。モニタ５０８は、コンピュータ・サーバによって実行されるソフトウェア・プログラムとプログラム・モジュールにより生成されたグラフィックスを表示しかつテキストを表示する。マウス５１０（またはその他のポインティング・デバイス）は、シャシ５０２の背面のシリアル・ポート（またはバス・ポートまたはＵＳＢポート）に接続されている。マウス５１０からの信号はマザーボードに伝達され、これにより、コンピュータ上で走るソフトウェア・プログラムやモジュールによりディスプレイ上のカーソルが制御され、モニタ５０８に表示されるテキスト、メニュー・オプション、グラフィック・コンポーネントが選択される。さらに、キーボード５１２は、ユーザがコンピュータ上で走るソフトウェア・プログラムの実行に影響を及ぼすテキストとコマンドを入力できるようにマザーボードに結合されている。コンピュータ・サーバ５００は、さらに、サーバがネットワーク５１６を介してデータを送受信できるようにするネットワーク・インターフェース・カード（ＮＩＣ）５１４または同等の回路をマザーボード内に組み込んでいる。
【０１１２】
本発明に対応するファイル・システムの記憶装置は、シャシ５０２内部に収納されている複数のハード・ディスク５１８によって、および／またはマザーボードに組み込まれているＳＣＳＩカード５２２または同等のＳＣＳＩ回路を介してアクセスできる外部ディスク・アレイ５２０内に収納されている複数のハード・ディスクによって実装することができる。オプションにより、ディスク・アレイ５２０は、適切なＦｉｂｒｅ  Ｃｈａｎｎｅｌインターフェース・カード（図示せず）または組み込み回路を使用してＦｉｂｒｅ  Ｃｈａｎｎｅｌリンクを使用してアクセスすることができる。
【０１１３】
コンピュータ・サーバ５００は、一般に、コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）ドライブ５２４を備えている。このドライブにＣＤ−ＲＯＭを挿入することで、ディスク上の実行可能ファイルとデータを読み込んで、メモリ５０６および／またはハード・ディスク５１８上の記憶域に転送できるすることができる。同様に、フロッピー（登録商標）・ドライブ５２６をそのような目的のために備えることができる。光記録媒体またはＤＶＤドライブなどの他の大容量メモリ記憶装置デバイスも備えることができる。上で説明した本発明の動作をプロセッサ２０４に実行させるソフトウェア・プログラム、コンポーネント、モジュールを含むマシン語命令は、通常、フロッピー（登録商標）・ディスク５２８またはＣＤ−ＲＯＭ  ５３０（またはその他のメモリ媒体）で配布するか、または１つまたは複数のハード・ディスク５１８上に格納しておき、プロセッサ５０４によって実行するときにメモリ５０６にロードする。オプションにより、ネットワーク５１６を介してマシン語命令を搬送波ファイルとしてロードすることもできる。
【０１１４】
本発明について、本発明を実践する好ましい形態とその修正例に関連して説明したが、当業者であれば、特許請求の範囲内で本発明に他の多数の修正を加えられることは理解できるであろう。したがって、本発明の範囲は、決して上記の説明により制限されず、特許請求の範囲を参照することにより全体的に決定されるものとする。
【図面の簡単な説明】
【０１１５】
【図１】様々な発信デバイスのユーザが「ドライバレス」プリント・サーバ（ＤＰＳ）システムにより仮想プリンタ電子メール・アドレスに送信され、検索され、処理される電子メール・メッセージを経由して選択されたターゲット・プリンタでドキュメントを印刷することを可能にする本発明の一実施形態によるインフラストラクチャの例の概略図である。
【図２】本発明の一実施形態によるＤＰＳシステムが備える動作を実現するために使用される様々なソフトウェア・コンポーネントを示す概略ブロック図である。
【図３】システムを構成し、仮想プリンタ電子メール・アドレスに送信される電子メール・メッセージを処理するためにＤＰＳシステムにより使用されるＭＰＥｍａｉｌアプリケーションに対応するメイン・ユーザ・インターフェースを表す図である。
【図４】仮想プリンタ電子メール・アドレスの電子メール・アカウントを構成できるようにする「Ｅ−ＭＡＩＬ  Ａｃｃｏｕｎｔｓ」ダイアログ・ボックスを表す図である。
【図５】管理者がターゲット・プリンタの様々なパラメータを構成できるようにする「Ａｄｄ／Ｅｄｉｔ」ダイアログ・ボックスと、発信デバイス上のブラウザを介して描画され、ユーザがＤＰＳシステムを介してすでにサブミットされている印刷要求に関係するステータス情報を表示することができるＷｅｂページを表す図である。
【図６】コンシューマおよび管理者ユーザとの対話を可能にするためＤＰＳシステムによって使用される様々なＣＧＩスクリプトを例示する概略ブロック図である。
【図７】本発明の一実施形態によるドライバレス・プリント・サーバ・ソフトウェアに対応する様々なソフトウェア・コンポーネントを例示する概略ブロック図である。
【図８】ＤＰＳサーバ上のブラウザまたは管理者ユーザによって使用されるクライアント・デバイスを介して描画され、所定のＤＰＳサイトのプリント・キュー情報を管理者が表示できる、Ｗｅｂページを表す図である。
【図９】ＤＰＳサーバ上のブラウザまたは管理者ユーザが使用するクライアント・デバイスを介して描画され、所定のＤＰＳサイトに対する選択された日付範囲の完了している印刷ジョブを管理者が表示できる、Ｗｅｂページを表す図である。
【図１０】ＤＰＳサーバ上のブラウザまたは管理者ユーザが使用するクライアント・デバイスを介して描画される、所定のＤＰＳサイトに対する選択された所有者の完了している印刷ジョブを管理者が表示できる、Ｗｅｂページを表す図である。
【図１１】ＤＰＳサーバ上のブラウザまたは管理者ユーザが使用するクライアント・デバイスを介して描画される、所定のＤＰＳサイトに対する選択されたプリンタの完了している印刷ジョブを管理者が表示できる、Ｗｅｂページを表す図である。
【図１２】ＤＰＳサーバ上のブラウザまたは管理者ユーザが使用するクライアント・デバイスを介して描画される、所定のＤＰＳサイトに対する完了しているすべての印刷ジョブを管理者が表示できる、Ｗｅｂページを表す図である。
【図１３】ＤＰＳサーバ上のブラウザまたは管理者ユーザが使用するクライアント・デバイスを介して描画される、管理者によって入力された選択可能なサーチ情報に基づき完了している様々な印刷ジョブ情報を管理者が表示できる、Ｗｅｂページを表す図である。
【図１４】ＤＰＳサーバ上のブラウザまたは管理者ユーザが使用するクライアント・デバイスを介して描画される、所定のＤＰＳサイトによってサポートされているドキュメント・ファイル・タイプに関係するファイル・タイプ情報を管理者が表示し編集できる、Ｗｅｂページを表す図である。
【図１５】ＤＰＳサーバ上のブラウザまたは管理者ユーザが使用するクライアント・デバイスを介して描画される、所定のＤＰＳサイトによってサポートされているドキュメント・ファイル・タイプに関係する拡張子および対応するアプリケーション情報を管理者が表示し編集できる、Ｗｅｂページを表す図である。
【図１６】電子メール経由でドライバレス・プリント・サーバにサブミットされる印刷要求に対応する代表的なデータ・フロー・プロセスを例示する概略図である。
【図１７】ドライバレス・プリント・サーバ・ソフトウェアによって実現される他の動作およびロジックを例示する概略図と流れ図を組み合わせた図である。
【図１８】印刷ジョブを処理するときに起動される様々なダイアログ・ボックスおよびメッセージ・ボックスを取り扱うためウィンドウ処理コンポーネントにより使用される動作およびロジックを例示する流れ図および概略図である。
【図１９】ドライバレス・プリント・サーバ・インストールのホストとなるためのコンピュータ・サーバの例の概略図である。
【図１】
2005521166.tif 000005
【図２】
2005521166.tif 000006
【図３】
2005521166.tif 000007
【図４】
2005521166.tif 000008
【図５】
2005521166.tif 000009
【図６】
2005521166.tif 000010
【図７】
2005521166.tif 000011
【図８】
2005521166.tif 000012
【図９】
2005521166.tif 000013
【図１０】
2005521166.tif 000014
【図１１】
2005521166.tif 000015
【図１２】
2005521166.tif 000016
【図１３】
2005521166.tif 000017
【図１４】
2005521166.tif 000018
【図１５】
2005521166.tif 000019
【図１６】
2005521166.tif 000020
【図１７】
2005521166.tif 000021
【図１８】
2005521166.tif 000022
【図１９】
2005521166.tif 000023
【国際調査報告】
2005521166.tif 000024