以下、適宜図面を参照して本発明の実施形態について説明する。なお、以下に説明される実施形態は本発明の一例にすぎず、本発明の要旨を変更しない範囲で、本発明の実施形態を適宜変更できることは言うまでもない。
図1は、本実施形態に係るシステム100の概略図である。図1に示されるシステム100は、プリンタ10A、10B(以下、これらを総称して、「プリンタ10」と表記することがある。)と、情報処理端末20A、20B(以下、これらを総称して、「情報処理端末20」と表記することがある。)と、プリントサーバ50とで構成されている。
情報処理端末20及びプリントサーバ50は、通信ネットワーク101を通じて接続されている。通信ネットワーク101の具体例は特に限定されないが、例えば、有線LAN、無線LAN、或いはこれらの組み合わせであってもよい。一方、プリンタ10及びプリントサーバ50は、USBケーブル102によって接続されている。なお、プリンタ10及びプリントサーバ50の間には、USBハブ等が介在してもよい。また、プリンタ10及びプリントサーバ50は、USBケーブル102に代えて、通信ネットワーク101を通じて接続されてもよい。
プリンタ10は、画像データで示される画像をシートに記録するプリント動作を実行する。より詳細には、プリンタ10は、USBケーブル102を通じてプリントサーバ50から受信したファイル或いはプリントデータを対象とするプリント動作を実行する。プリンタ10の記録方式としては、インクジェット方式や電子写真方式などの公知の方式を採用することができる。プリンタ10の構成は周知なので、詳細な説明は省略する。
プリンタ10は、1以上のプリンタ言語を解読することができる。より詳細には、プリンタ10は、プリンタ言語で記述されたプリントデータ(所謂、RAWデータ)に従って、プリント動作を実行することができる。プリンタ言語とは、プリンタに対して描画を指示するための言語であって、ページ記述言語等とも呼ばれる。プリンタ言語の具体例は特に限定されないが、例えば、PS(PostScriptの略、登録商標)、PCL(Printer control Languageの略、登録商標)等がある。本実施形態では、プリンタ10Aがプリンタ言語“PS”、“PCL”を両方を解読可能で、プリンタ10Bがプリンタ言語“PS”のみを解読可能とする。また、プリンタ10には、前述のページ記述言語で記述された印刷データによる印刷ジョブを管理するためのPJL(Priter Job Languageの略、登録商標)が実装されている。
また、プリンタ10Aは、JPEG形式のファイルを対象とするプリント動作を実行することができる。「ファイルを対象とするプリント動作」とは、例えば、プリントデータに変換されていないファイルで示される画像をシートに記録することを指す。一方、プリンタ10Bは、ファイルを対象とするプリント動作を実行することができない。ファイルの形式とは、ファイル名の末尾に付加された拡張子によって区別されるものであって、例えば、画像形式(例えば、“.JPG”、“.BMP”等)、テキスト形式(例えば、“.txt”、“.doc”等)、その他の任意の形式(例えば、“.PDF”、“.xls”等)がある。
なお、本明細書における「ファイル」とは、例えば、情報処理端末20にインストール可能なアプリケーションを用いて、当該ファイルで示される画像をユーザに視認させることを前提して生成されたデータを指す。換言すれば、「ファイル」とは、プリンタ言語でプリントデータに変換されていない汎用画像データを指す。一方、「プリントデータ」とは、プリンタ言語で変換されたファイルであって、中間ファイル等とも呼ばれる。すなわち、「プリントデータ」は、当該データで示される画像をディスプレイ上でユーザに視認させることを前提としていないデータを指す。
プリンタ10は、プリンタ情報をメモリに記憶している。プリンタ情報は、例えば、サポートするプリンタ言語と、プリント動作の対象となり得るファイル形式(以下、「プリンタ対応形式」と表記する。)とを示す。すなわち、プリンタ10Aのプリンタ情報Aは、プリンタ言語“PS”、“PCL”と、プリンタ対応形式“JPEG”とを示す。一方、プリンタ10Bのプリンタ情報Bは、プリンタ言語“PS”と、プリンタ対応形式“なし”とを示す。プリンタ情報は、IEEE1284IDに含まれている。
情報処理端末20は、外部装置の一例であって、例えば、携帯電話、スマートフォン、タブレット端末、PC等である。情報処理端末20は、ディスプレイと、メモリと、入力I/F(例えば、キーボード、タッチパネル、マウス)と、通信I/Fとを備える。情報処理端末20のOSは、例えば図9に示されるように、ポインタ画像(例えば、矢印を表す画像)110をディスプレイに表示させ、マウスの移動に追従してディスプレイ上におけるポインタ画像110の位置を移動させる。
以下、ディスプレイに表示されたアイコンの位置にポインタ画像110を重ねた状態で、マウスの左ボタンを押下する操作を「アイコンに対する左クリック操作」と表記する。また、ディスプレイに表示されたアイコンの位置にポインタ画像110を重ねた状態で左ボタンを押下し、左ボタンを押下したままポインタ画像110を移動させ、移動開始位置と異なる移動終了位置で左ボタンの押下を解除する操作を「アイコンを移動終了位置に移動させるドラッグ操作」と表記する。
また、情報処理端末のOSは、例えば図9に示されるように、複数の画面(すなわち、ウィンドウ)を、ディスプレイに同時に表示させることが可能である。すなわち、OSは、所謂マルチウィンドウ機能を有する。なお、ディスプレイに表示される画面は、OS自身が表示させるもの(例えば、デスクトップ画面)であってもよい。
また、情報処理端末20には、例えば、「Explorer」、「Finder」等と呼ばれる所謂ファイル管理プログラムがインストールされている。ファイル管理プログラムは、例えば図9の一覧画面140のように、情報処理端末20のメモリに記憶されているファイルに対応するファイルアイコン141、142、143を一覧表示させることができる。
また、ファイル管理プログラムは、例えば図8(A)に示されるように、通信ネットワーク101に接続されたデバイス(例えば、プリントサーバ50、情報処理端末20A、20B)に対応するデバイスアイコン111、112、113を一覧表示させることができる。通信ネットワーク101に接続されたデバイスの検出は、例えば、DNS、mDNS、NetBIOS等の周知のプロトコルによって実現される。
さらに、ファイル管理プログラムは、例えば図9の一覧画面130のように、外部装置(例えば、プリントサーバ50)が通信ネットワーク101上に公開した共有フォルダに対応するフォルダアイコン132、133を一覧表示させることができる。共有フォルダへのアクセスは、例えば、SMB、CIFS等の周知のファイル共有プロトコルによって実現される。
また、情報処理端末20には、HTML等で記述されたページをディスプレイに表示させるブラウザプログラム等がインストールされている。ブラウザプログラムは、通信ネットワーク101に接続されたWEBサーバにHTMLデータの送信を要求し、要求したHTMLデータをWEBサーバから受信し、受信したHTMLデータで示されるページをディスプレイに表示させる。HTMLデータの送受信は、例えば、HTTP等の周知のプロトコルによって実現される。
図1に示されるように、プリントサーバ50上では、SMBサーバ41、WEBサーバ42、及びCUPSサーバ43が稼働している。また、プリントサーバ50は、図2(A)に示されるように、LAN−I/F55と、USB−I/F56と、スピーカ57と、CPU61と、メモリ62と、通信バス63とを主に備える。プリントサーバ50を構成する各構成要素は、通信バス63を通じて相互に接続されている。プリントサーバ50は、例えば、シングルボードコンピュータによって実現することができる。
SMBサーバ41は、ファイル共有プロトコルを用いてメモリ62の記憶領域の一部を、通信ネットワーク101を通じて接続された情報処理端末20がアクセス可能な共有フォルダとして公開する。共有フォルダは、共有領域及び退避領域の一例である。WEBサーバ42は、LAN−I/F55を通じて外部装置からHTTPリクエストを受信し、当該HTTPリクエストで示されるHTMLデータをLAN−I/F55を通じて外部装置に送信する。
CUPSサーバ43は、USB−I/F56を通じて接続されたプリンタ10にプリント動作を指示し、プリンタ10の状態を示すプリンタステータスを取得する。また、CUPSサーバ43は、USB−I/F56を通じて接続されたプリンタ10A、10B毎にRAWポートキューを管理している。すなわち、CUPSサーバ43は、RAWポートキューに登録されたファイル或いはプリントデータを対象とするプリント動作を、対応するプリンタ10に対して登録された順に指示する。
また、CUPSサーバ43は、通信ネットワーク101上のデバイス(例えば、情報処理端末20等)に対して、下記(1)、(2)の2種類の印刷キューを公開する機能を有する。これらの機能は、IPPプロトコル等により実現されている。
(1) TCPプロトコルのポート番号9100によるRAWデータの印刷キュー
(2) ネットワーク共有プリンタの印刷キュー(後述のSMBサーバと協働)
SMBサーバ41、WEBサーバ42、及びCUPSサーバ43は、プリントサーバ50の起動時に起動され、CPU61によって実行される。SMBサーバ41、WEBサーバ42、及びCUPSサーバ43は周知のサーバプログラムで実現できるので、詳細な説明は省略する。また、WEBサーバ42は、サーバプログラムに代えて、所謂EWS(Embedded Web Serverの略)で実現されてもよい。さらに、前述の共有フォルダは、SMBサーバ41により実現される。このSMBサーバ41には、SMB或いはCIFS等の周知のプロトコルが使用される。
PJLは、プリンタと通信するための第1プロトコルの一例である。但し、第1プロトコルの具体例はPJLに限定されず、例えばPSデータ、PCLデータを直に送るものであってもよいし、IPP over USBに準拠したものであってもよい。さらに本実施例では、第1プロトコルとしてUSBプリンタクラス仕様に規定されたプリンタステータスも使用する。また、HTTPは、第1プロトコルと異なる第2プロトコルの一例である。但し、第2プロトコルの具体例はHTTPに限定されず、SNMP、HTTPS等であってもよい。なお、第2プロトコルは、例えば、一般に普及している情報処理端末20に標準でインストールされている汎用ツール(例えば、ブラウザプログラム、MIBビューア)がサポートしているプロトコルを想定している。また、本明細書中の「プロトコル」とは、例えば、IPP/USB、HTTP、SNMP等のような通信プロトコルに限定されず、PS、PCL、或いはPJL等のような使用言語を指してもよい。
LAN−I/F55は、通信ネットワーク101を通じて外部装置と通信可能な第2インタフェースの一例である。すなわち、プリントサーバ50は、LAN−I/F55を通じて外部装置に各種情報を送信し、LAN−I/F55を通じて外部装置から各種情報を受信する。LAN−I/F55の具体的な通信手順は特に限定されないが、例えば、Ethernet(登録商標)或いはWi−Fi(登録商標)を採用することができる。
USB−I/F56は、USBケーブル102が接続される第1インタフェースの一例である。USB−I/F56の回路は、USBケーブルから入力された電気信号に応じた制御信号を後述する各種プログラムに出力し、各種プログラムから入力された制御信号に応じた電気信号をUSBケーブル102に出力する。
スピーカ57は、音声を出力する。なお、プリントサーバ50は、スピーカ57を接続可能な装着インタフェースのみを有しており、装着インタフェースに接続されたスピーカ57に音声を出力させてもよい。
CPU61は、プリントサーバ50の全体動作を制御するものである。CPU61は、LAN−I/F55及びUSB−I/F56を通じて外部装置から受信した各種情報等に基づいて、後述する各種プログラムをメモリ62から取得して実行する。CPU61及びメモリ62はコントローラの一例である。
メモリ62は、OS64と、プリントプログラム65と、モニタプログラム66とを記憶している。プリントプログラム65及びモニタプログラム66それぞれは、単一のプログラムであってもよいし、複数のプログラムの集合体であってもよい。また、メモリ62は、プリントプログラム65及びモニタプログラム66の実行に必要なデータ或いは情報等を記憶する。メモリ62は、例えば、RAM、ROM、EEPROM、HDD、プリントサーバ50に着脱されるUSBメモリ等の可搬記憶媒体、CPU61が備えるバッファ等、或いはそれらの組み合わせによって構成される。
メモリ62は、コンピュータが読み取り可能なストレージ媒体であってもよい。コンピュータが読み取り可能なストレージ媒体とは、non−transitoryな媒体である。non−transitoryな媒体には、上記の例の他に、CD−ROM、DVD−ROM等の記録媒体も含まれる。また、non−transitoryな媒体は、tangibleな媒体でもある。一方、インターネット上のサーバなどからダウンロードされるプログラムを搬送する電気信号は、コンピュータが読み取り可能な媒体の一種であるコンピュータが読み取り可能な信号媒体であるが、non−transitoryなコンピュータが読み取り可能なストレージ媒体には含まれない。
プリントプログラム65は、例えば、図3〜図5に示される処理を実行する。より詳細には、プリントプログラム65は、LAN−I/F55を通じて情報処理端末20からファイルを受信し、受信したファイルを対象とするプリント動作をUSB−I/F56を通じて接続されたプリンタ10に実行させる。プリントプログラム65は、例えば、SMBサーバ41及びCUPSサーバ43の機能を利用して実現される。
モニタプログラム66は、例えば、図6及び図7に示される処理を実行する。より詳細には、モニタプログラム66は、USB−I/F56を通じて接続されたプリンタ10のプリンタステータスを取得し、取得したプリンタステータス及びデータステータスを含むHTMLデータ(以下、「ステータスHTML」と表記する。)をLAN−I/F55を通じて情報処理端末20に送信する。モニタプログラム66は、例えば、WEBサーバ42の機能を利用して実現される。
また、メモリ62は、例えば図2(B)に示されるデバイスリストを記憶することができる。デバイスリストは、1以上のデバイスレコードを含む。デバイスレコードは、USB−I/F56を通じて接続可能なデバイス(以下、「USBデバイス」と表記する。)に対応する。デバイスレコードは、例えば、デバイスID、プリンタ情報、ステータス情報、URL、及び実行パラメータを含む。デバイスレコードは、例えば、後述するS15、S34でプリントプログラム65によって登録され、後述するS18でプリントプログラム65によって削除される。
デバイスIDは、USBデバイスを一意に識別するための情報である。デバイスIDの具体例は特に限定されないが、例えば、IEEE1284ID、或いはUSBベンダーID、プロダクトID,シリアル番号の組み合わせ等を用いることができる。本実施形態では簡易的に、プリンタ10AがデバイスID“プリンタA”で識別され、プリンタ10BがデバイスID“プリンタB”で識別されるものとする。
プリンタ情報、ステータス情報、URL、実行パラメータは、USBデバイスがプリンタクラスのデバイス(すなわち、プリンタ10)である場合に、デバイスレコードとして記憶される。プリンタ情報は、後述するS32で対応するプリンタ10から取得する情報である。URLは、対応するプリンタ10のステータス等を記載したHTMLデータの所在を示す。URLはアドレス情報の一例であり、URLで所在が示されるステータス等を記載したHTMLデータは画面情報の一例である。実行パラメータは、対応するプリンタ10に実行させるプリント動作の実行条件を示す。
ステータス情報は、対応するプリンタ10の状態を示すプリンタステータスと、プリント動作の対象となるデータの受け付け状況を示すデータステータスとを含む。プリンタステータスには、例えば、プリンタ10と接続されていることを示す“ONLINE”、プリンタ10がプリント動作を実行可能なことを示す“READY”、プリンタ10の内部にシートが詰まったことを示す“SHEET JAM”、或いはプリンタ10と接続されていないことを示す“OFFLINE”等が設定される。
データステータスには、例えば、共有フォルダに書き込まれたファイルを受け付けたことを示す“ACCEPT”、共有フォルダに書き込まれたファイルを受け付けなかったことを示す“REFUSE”、或いは共有フォルダを通じてファイルを受け付け可能なことを示す“IDLE”等が設定される。“ACCEPT”は第1値の一例であり、“IDLE”は第2値の一例である。
プリント動作の実行条件は、複数の項目(例えば、“サイズ”、“用紙種”、“色”)それぞれに対応する複数の実行パラメータの組み合わせによって特定される。項目“サイズ”の実行パラメータは、画像を記録するシートの大きさ(例えば、“A4”、“B5”、“ハガキ”)を示す。項目“用紙種”の実行パラメータは、画像を記録するシートの種類(例えば、“普通紙”、“光沢紙”)を示す。項目“色”の実行パラメータは、シートに画像を記録するのに用いる色(例えば、“カラー”、“モノクロ”)を示す。但し、プリント動作の実行条件は、前述の例に限定されない。
[システム100の動作]
図3〜図7を参照して、本実施形態に係るシステム100の動作を説明する。なお、本実施形態では、図3〜図5の処理がプリントプログラム65によって実行され、図6及び図7の処理がモニタプログラム66によって実行される例を説明する。しかしながら、プリントプログラム65及びモニタプログラム66の役割分担は前述の例に限定されず、図3〜図5の処理の一部がモニタプログラム66によって実行されてもよいし、図6及び図7の処理の一部がプリントプログラム65によって実行されてもよい。さらには、図3〜図7の処理が1つのプログラムによって実行されてもよい。
本明細書のフローチャートは、基本的に、プログラムに記述された命令に従ったCPU61の処理を示す。すなわち、以下の説明における「判断」、「抽出」、「選択」、「算出」、「決定」、「特定」、「制御」等の処理は、CPU61の処理を表している。CPU61による処理は、OS64を介したハードウェア制御も含む。また、本明細書中の「データ」とは、コンピュータに読取可能なビット列で表される。そして、実質的な意味内容が同じでフォーマットが異なるデータは、同一のデータとして扱われるものとする。本明細書中の「情報」についても同様である。
プリントプログラム65は、デバイス管理処理を実行する。デバイス管理処理は、図2(B)に示されるデバイスリストを用いて、USBデバイスを管理する処理である。図3を参照して、デバイス管理処理の詳細を説明する。
まず、プリントプログラム65は、USBデバイスの接続及び切断をUSB−I/F56を通じて監視する(S11、S12)。USBデバイスの接続とは、例えば、電源ONされたUSBデバイスから延びるUSBケーブル102がUSB−I/F56に接続されたこと、或いは既にUSBケーブル102で接続されたUSBデバイスが電源ONされたこと等を含む。また、USBデバイスの切断とは、USBケーブル102がUSB−I/F56から抜去されたこと、或いはUSBケーブル102で接続されたUSBデバイスが電源OFFされたこと等を含む。USBデバイスの接続及び切断は、周知の方法で検出することができる。
プリントプログラム65は、USB−I/F56を通じてUSBデバイスの接続を検出したことに応じて(S11:Yes)、プリンタクラスのUSBデバイスが接続されたか否かを判断する(S13)。USBデバイスのクラスは、例えば、当該USBデバイスのデバイスディスクリプタを取得することによって判断できる。そして、プリントプログラム65は、プリンタクラスのUSBデバイスが接続されたと判断したことに応じて(S13:Yes)、後述するプリンタ接続処理を実行する(S14)。一方、プリントプログラム65は、プリンタクラスでないUSBデバイスが接続されたと判断したことに応じて(S13:No)、当該USBデバイスのデバイスIDを含むデバイスレコードをデバイスリストに登録する(S15)。
また、プリントプログラム65は、USB−I/F56を通じてUSBデバイスの切断を検出したことに応じて(S12:Yes)、プリンタクラスのUSBデバイスが切断されたか否かを判断する(S16)。そして、プリントプログラム65は、プリンタクラスのUSBデバイスが切断されたと判断したことに応じて(S16:Yes)、後述するS37で当該USBデバイスに対応付けて公開した共有フォルダを、非公開にする(S17)。一方、プリントプログラム65は、プリンタクラスでないUSBデバイスが切断されたと判断したことに応じて(S16:No)、当該USBデバイスのデバイスIDを含むデバイスレコードを、デバイスリストから削除する(S18)。
次に図4を参照して、プリンタ10Aが接続された場合のプリンタ接続処理を説明する。まず、プリントプログラム65は、プリンタ10Aが初めて接続されたか否かを判断する(S31)。より詳細には、プリントプログラム65は、プリンタ10AのデバイスID“プリンタA”を含むデバイスレコードがデバイスリストに登録されているか否かを判断する。そして、プリントプログラム65は、デバイスID“プリンタA”を含むデバイスレコードがデバイスリストに登録されていると判断したことに応じて(S31:No)、S32〜S34の処理をスキップする。
一方、プリントプログラム65は、デバイスID“プリンタA”を含むデバイスレコードがデバイスリストに登録されていないと判断したことに応じて(S31:Yes)、USB−I/F56を通じてプリンタ10Aからプリンタ情報Aを受信する(S32)。S32の処理は、第2取得処理の一例である。
次に、プリントプログラム65は、デバイスリスト内でユニークなURLを生成する(S33)。一例として、URLは、“http://print-server/printer-a/status.html”、“http://print-server/printer-b/status.html”のように、異なるディレクトリ名によってユニークにされてもよい。他の例として、URLは、“http://print-server:50000/status.html”、“http://print-server:50001/status.html”のように、異なるポート番号によってユニークにされてもよい。
次に、プリントプログラム65は、プリンタ10AのデバイスID“プリンタA”と、S32で取得したプリンタ情報Aと、S33で生成したURL−Aとを含むデバイスレコードを、デバイスリストに登録する(S34)。なお、S34の時点において、ステータス情報には、プリンタステータス“ONLINE”、データステータス“IDLE”が設定される。また、実行パラメータには、予め定められたデフォルトの実行パラメータが設定される。このステップS31〜S34の処理により、同一のプリンタ10が接続された場合に、接続の順番や接続されたUSBソケットに拘わらず、必ず同一のURLが割り当てられる。
次に、プリントプログラム65は、モニタプログラム66の新規スレッドを、接続されたプリンタ10Aに対応付けて起動する(S35)。新たに起動されたモニタプログラム66のスレッドは、後述するモニタ処理を実行する。すなわち、モニタプログラム66のスレッド(以下、単に「モニタプログラム66」と表記することがある。)は、プリントサーバ50に接続されたプリンタ10の数だけ起動され、対応するプリンタ10に対するモニタ処理を独立して実行する。また、プリントプログラム65は、プリンタ10Aがプリンタ言語“PJL”を解読可能な場合において、起動したモニタプログラム66がS63の処理を実行するまで、S36以降の処理の実行を待機する。
次に、プリントプログラム65は、起動したモニタプログラム66がS63の処理を実行したことに応じて、プリンタが下記(A)又は(B)のデータを印刷可能か否かを判断する(S36)。S36の処理は、第1判断処理の一例である。そして、プリントプログラム65は、下記の(A)及び(B)のデータをプリンタ10が印刷可能でないと判断したことに応じて(S36:No)、S37の処理をスキップしてプリンタ接続処理を終了する。
(A)当該プリンタ10が直接印刷可能なデータ形式(IEEE1284ID内に対応言語として記載されるデータ形式)
(B)後述するS48において変換可能なデータ形式
一方、プリントプログラム65は、上記(A)、(B)の少なくとも1つをサポートしていると判断したことに応じて(S36:Yes)、プリンタ10Aに対応付けた共有フォルダを通信ネットワーク101に公開する(S37)。ここで公開される共有フォルダは、例えば、図8(B)に示される親フォルダと、親フォルダの下の階層の印刷データフォルダ及び退避フォルダとを含む。S37の処理は、公開処理の一例である。なお、このフォルダ名は、前述のURLとの関連がある名称とする。すなわちこのフォルダ名は、USBの接続順や接続されたソケットに依存せず、且つ同一のプリンタ10を接続した際には同一の名称で公開される。
これにより、フォルダ名と先のURLとの対応が容易に判断できる。この共有フォルダは、図9のフォルダアイコン132に付加された文字列“プリンタA印刷データフォルダ”、フォルダアイコン133に付加された文字列“プリンタA退避フォルダ”に対応する。次に、プリントプログラム65は、接続されたプリンタ10を、CUPSサーバ43及びSMBサーバ41の機能を使用して、共有プリンタに設定する。この共有プリンタは、図9のキューアイコン131に対応する。
次に図3に戻って、プリントプログラム65は、S14〜S18のいずれかを実行したことに応じて、USBデバイスの接続及び切断をUSB−I/F56を通じて再び監視する(S11、S12)。すなわち、プリントプログラム65は、USB−I/F56を通じてプリンタ10が接続される度に、当該プリンタ10に対応付けられた共有フォルダを通信ネットワーク101に公開する。
また、プリントプログラム65は、USB−I/F56を通じて接続されたプリンタ10を共有プリンタとして公開したことに応じて、プリント処理を実行する。プリント処理は、情報処理端末20からファイル或いはプリントデータを取得し、取得したファイル或いはプリントデータを対象とするプリント動作をプリンタ10に実行させる処理である。図5を参照して、プリント処理の詳細を説明する。
まず、プリントプログラム65は、LAN−I/F55を通じて情報処理端末20からファイル或いはプリントデータを受信するまで待機する(S41)。「ファイルを受信する」とは、S37で公開した印刷データフォルダに対して、情報処理端末20のファイル管理プログラム等を使用してファイルがコピーされたこと、或いはCUPSサーバ43により公開された共有プリンタキュー或いはTCPプロトコルのポート番号9100に対して、情報処理端末20からプリントデータが送信されること等を指す。なお、ポート番号9100に対するプリント動作の指示は、予め設定された特定の一種類のプリンタ10に対してのみ作用する。
次に図8及び図9を参照して、情報処理端末20がプリントサーバ50にファイル或いはプリントデータを送信する手順の一例を説明する。なお、プリントサーバ50には、プリンタ10A、10Bが接続されているものとする。
まず、情報処理端末20のファイル管理プログラムは、図8(A)に示されるように、通信ネットワーク101に接続されたデバイスに対応するデバイスアイコン111、112、113を含む一覧画面をディスプレイに表示させる。デバイスアイコン111はプリントサーバ50に対応し、デバイスアイコン112は情報処理端末20Aに対応し、デバイスアイコン113は情報処理端末20Bに対応する。デバイスアイコン111〜113には、例えば、対応するデバイスのデバイス名(例えば、NetBIOS名)を示す文字列が付加される。
次に、ファイル管理プログラムは、例えば、デバイスアイコン111に対する左クリック操作を受け付けたことに応じて、図8(B)に示されるように、プリントサーバ50が公開した親フォルダに対応するフォルダアイコン121、122を含む一覧画面をディスプレイに表示させる。フォルダアイコン121はプリンタ10Aの親フォルダに対応し、フォルダアイコン122はプリンタ10Bの親フォルダに対応する。フォルダアイコン121、122には、例えば、対応するプリンタ10A、10BのデバイスIDを示す文字列“プリンタA”、“プリンタB”が付加される。すなわち、図8(B)に示されるフォルダ名も、USBの接続順や接続されたソケットに依存せず、且つ同一のプリンタ10を接続した際には同一の名称で公開される。
次に、ファイル管理プログラムは、例えば、フォルダアイコン121に対する左クリック操作を受け付けたことに応じて、図9に示されるように、キューアイコン131と、フォルダアイコン132、133とを含む一覧画面130をディスプレイに表示させる。キューアイコン131は、共有プリンタとして公開されたプリンタ10Aに対応する。フォルダアイコン132はプリンタ10Aの印刷データフォルダに対応し、フォルダアイコン133はプリンタ10Aの退避フォルダに対応する。
また、ファイル管理プログラムは、図9に示されるように、ファイルアイコン141、142、143を含む一覧画面140を、ディスプレイ上の一覧画面130と別の領域に表示させることができる。ファイルアイコン141〜143は、情報処理端末20のメモリに記憶されているファイルに対応する。ファイルアイコン141〜143には、対応するファイルのファイル名を示す文字列が付加される。
図9の例において、ファイルアイコン141に対応するファイル“写真.JPG”は、プリンタ10により直接印刷不可で、且つS48で変換可能とする。また、ファイルアイコン142に対応するファイル“テキスト.PDF”は、プリンタ10により直接印刷可能とする。さらに、ファイルアイコン143に対応するファイル“報告書.DOC”は、プリンタ10により直接印刷不可で、且つS48で変換不可とする。
まず、ファイル“報告書.DOC”を印刷する場合について説明する。ユーザがファイルアイコン143をマウスにてダブルクリックすると、そのファイルに関連付けられたアプリケーションが起動され、ファイル“報告書.DOC”が読み込まれる。さらに、ユーザは、起動したアプリケーションを操作して印刷を指示すると、アプリケーションは当該プリンタ10に対応する不図示のプリンタドライバを呼び出して、対応するプリントデータを生成する。この作成されたプリントデータはポート番号9100或いは対応する共有プリンタキューに対して送信される。
一方、ファイル管理プログラムは、例えば、ファイルアイコン141をフォルダアイコン132の位置に移動させるドラッグ操作を受け付けたことに応じて、ファイルアイコン141に対応付けられたファイル“写真.JPG”を、プリントデータに変換せずに、通信ネットワーク101に公開されたプリンタ10Aの印刷データフォルダに書き込む。ファイルアイコン142、143をフォルダアイコン132の位置に移動させるドラッグ操作がなされた場合も、対応するファイルが印刷データフォルダに書き込まれる。
次に図5に戻って、プリントプログラム65は、LAN−I/F55を通じて情報処理端末20からプリントデータを受信したことに応じて(S41:Yes&S42:共有プリンタ)、後述する“USTATUS DEVICE”コマンドを打ち消すコマンドを、受信したプリントデータから削除する(S43)。なお、当該コマンドがプリンデータに含まれていない場合は、S43の処理はスキップされる。このS43の処理により、プリントデータ中にステータス情報の送信を停止する情報があったとしても、ステータスモニタの機能を継続できる。
そして、プリントプログラム65は、当該プリントデータをプリンタAに対応付けられたRAWポートキューに登録する(S44)。そして、CUPSサーバ43は、RAWポートキューに登録されたプリントデータを対象とするプリント動作を、プリンタ10Aに実行させる。S44の処理は、プリント指示処理の一例である。
一方、プリントプログラム65は、通信ネットワーク101に公開されたプリンタ10Aの印刷データフォルダにファイル“写真.JPG”が書き込まれたことに応じて(S41:Yes&S42:共有フォルダ)、当該ファイルをメモリ62(すなわち、プリンタ10Aの印刷データフォルダ)から読み出す。この処理は、第1取得処理の一例である。次に、プリントプログラム65は、取得したファイル“写真.JPG”が印刷可能形式か否かを判断する(S45)。印刷可能形式とは、例えば、プリントプログラム65がプリントデータに変換可能な予め定められたファイル形式を指す。S45の処理は、第3判断処理の一例である。
次に、プリントプログラム65は、取得したファイル“写真.JPG”が印刷可能形式だと判断したことに応じて(S45:Yes)、プリンタ10Aのデバイスレコードのデータステータスに“ACCEPT”を設定する(S46)。また、プリントプログラム65は、取得したファイル“写真.JPG”がプリンタ対応形式か否かを判断する(S47)。S47の処理は、第2判断処理の一例である。
次に、プリントプログラム65は、取得したファイル“写真.JPG”がプリンタ対応形式でないと判断したことに応じて(S47:No)、取得したファイル“写真.JPG”を、プリンタ情報で示されるプリンタ言語で記述されたプリントデータに変換する(S48)。ここで生成されるプリントデータは、ファイル“写真.JPG”を対象とするプリント動作を、プリンタ10Aのデバイスレコードに含まれる実行パラメータ“A4”、“普通紙”、“カラー”に従って実行させるためのデータである。S48の処理は、変換処理の一例である。
そして、プリントプログラム65は、S48で生成したプリントデータを、S42でファイルを取得した印刷データフォルダに対応するプリンタ10AのRAWポートキューに登録する(S49)。次に、プリントプログラム65は、印刷データフォルダに書き込まれたファイル“写真.JPG”を退避フォルダに移動させ(S50)、プリンタ10Aのデータステータスに“IDLE”を設定する(S51)。S49の処理はプリント指示処理の一例であり、S50の処理は退避処理の一例である。
他の例として、通信ネットワーク101に公開されたプリンタ10Aの印刷データフォルダにファイル“テキスト.PDF”が書きこまれた場合、プリントプログラム65は、取得したファイル“テキスト.PDF”が印刷可能形式で且つプリンタ対応形式だと判断して(S45:Yes&S47:Yes)、S48の処理をスキップして、取得したファイル及びプリンタ10Aの実行パラメータをプリンタ10AのRAWポートキューに登録する(S49)。
なお、PDF形式のファイルには、実行パラメータの一部(例えば、項目“サイズ”の実行パラメータ)が含まれている。そして、PDF形式のファイルに含まれる実行パラメータは、デバイスレコードに含まれる実行パラメータより優先して適用される。すなわち、プリントプログラム65は、プリンタ10Aのデバイスレコードに含まれる実行パラメータ“A4”、“普通紙”、“カラー”のうち、ファイル“テキスト.PDF”に含まれない項目(例えば、“用紙種”、“色”)の実行パラメータ“普通紙”、“カラー”をファイル“テキスト.PDF”に付加して、RAWポートキューに登録する。
さらに他の例として、ファイル “報告書.DOC”が通信ネットワーク101に公開されたプリンタ10Aの印刷データフォルダに書きこまれた場合、プリントプログラム65は、取得したファイル“報告書.DOC”が印刷可能形式でないと判断して(S45:No)、データステータスに“REFUSE”を設定して(S52)、S46〜S49の処理をスキップして、S50以降の処理を実行する。
次に図6を参照して、モニタ処理の詳細を説明する。まず、モニタプログラム66は、プリンタ10AのデバイスレコードからURLを読み出す。ここで読み出されるURLは、プリンタ10Aがプリントサーバ50に初めて接続された際に、S33で生成されたものである。すなわち、プリントサーバ50に対してプリンタ10Aが接続される度に、同一のURLが読み出される。
次に、モニタプログラム66は、プリンタ10Aのステータを記述したスHTMLデータを、読み出したURLで示されるメモリ領域に記憶させる(S61)。モニタプログラム66は、例えば、メモリ62に予め記憶されたテンプレートHTMLをURLで示されるメモリ領域にコピーし、コピーしたテンプレートHTMLにプリンタ10のステータス情報及び実行パラメータを設定する。また、モニタプログラム66は、プリンタ10Aが特定言語“PJL”を解読可能か否かを判断する(S62)。PJLを解読可能か否かは、USBプリンタクラス仕様に規定されたプリンタ10のIEEE1284IDを読み取ることにより判断できる。
例えば、プリンタ10Aに対応付けられたモニタプログラム66のスレッドは、プリンタ10Aがプリンタ言語“PJL”を解読可能だと判断したことに応じて(S62:Yes)、プリンタ言語“PJL”に規定された“INFO DEVICE”コマンドと、“USTATUS DEVICE”コマンドとを、USB−I/F56を通じてプリンタ10Aに送信する(S63)。“INFO DEVICE”コマンドは、現在のプリンタステータスの送信を指示する第1指示情報の一例である。“USTATUS DEVICE”コマンドは、プリンタステータスが変化したタイミングで当該プリンタステータスの送信を指示する第2指示情報の一例である。
次に、モニタプログラム66は、プリンタステータスを受信するか、プリンタ10Aの切断を検出するまで待機するまで(S65:No&S67:No)、プリンタステータスの送信をプリンタ10Aに所定の時間間隔で繰り返し要求する(S64)。そして、モニタプログラム66は、USB−I/F56を通じてプリンタ10Aからプリンタステータスを受信したことに応じて(S65:Yes)、受信したプリンタステータスでプリンタ10Aのデバイスレコードのステータス情報を更新する。
なお、プリンタ10Aから受信するプリンタステータスは、PJLの規約に準拠したフォーマットのテキストデータである。そこで、モニタプログラム66は、S65で受信したプリンタステータスを、当該プリンタステータスで示されるプリンタ10Aの状態を表す文字列に変換する。そして、モニタプログラム66は、プリンタ10AのステータスHTMLに変換した文字列を設定する(S68)。
次に、モニタプログラム66は、S65で受信したプリンタステータスが特定ステータスか否かを判断する(S69)。特定ステータスとは、例えば、ユーザが解消可能なステータス、解消しないとプリント動作を継続できないステータス等の予め定められたプリンタステータス(例えば、紙無し、紙詰まり、インク無し等)である。そして、モニタプログラム66は、特定ステータスだと判断したことに応じて(S69:Yes)、当該ステータスを示す音声をスピーカ57に出力させる(S70)。一方、モニタプログラム66は、特定ステータスでないと判断したことに応じて(S69:No)、S70の処理をスキップする。そして、モニタプログラム66は、S64以降の処理を再び実行する。
また、モニタプログラム66は、USB−I/F56を通じてプリンタ10Aの切断を検出したことに応じて(S67:Yes)、プリンタ10Aのデバイスレコードのプリンタステータス、及びHTMLデータに記述されたプリンタステータスを“OFFLINE”に変更する(S71)。そして、モニタプログラム66は、S71の処理を実行してから一定時間(例えば、30秒)が経過したことに応じて、プリンタ10AのステータスHTMLを、メモリ62から削除する(S72)。そして、プリンタ10Aに対応するモニタプログラム66のスレッドは、処理を終了する(S73)。
一方、プリンタ10Bに対応付けられたモニタプログラム66のスレッドは、プリンタ10Bがプリンタ言語“PJL”を解読不能だと判断したことに応じて(S62:No)、USBのプリンタクラスのプリンタステータスを、USB−I/F56を通じてプリンタ10Bから受信する(S74)。このUSBプリンタクラスのプリンタステータスは、エラーの有無、用紙エラーの有無のみを示すビット列である。モニタプログラム66は、S74で受信したビット列を解析して、ステータスを示す文字列を生成する(S75)。S76〜S77の処理は、前述のS69〜S70と同様である。そして、モニタプログラム66は、USB−I/F56を通じてプリンタ10Bの切断を検出するまで(S78:No)、S74〜77の処理を所定の時間間隔(例えば、1秒)で繰り返し実行する。さらに、モニタプログラム66は、USB−I/F56を通じてプリンタ10Bの切断を検出したことに応じて(S78:Yes)、前述したS71〜S73の処理を実行する。
また図示は省略するが、モニタプログラム66は、S46、S51、S52でデバイスレコードのデータステータスが変更される度に、変更後のデータステータスを示す文字列を対応するステータスHTMLに設定する。さらに図示は省略するが、モニタプログラム66は、後述するS88でデバイスレコードの実行パラメータが変更される度に、変更後の実行パラメータを示す文字列を対応するステータスHTMLに設定する。すなわち、情報処理端末20のブラウザプログラムにおいて、ステータスHTMLで示される画面を表示している場合、定常時はその時点のプリンタステータスが表示され、プリンタ10が電源OFFあるいはUSBケーブルが取り外された場合は、一定時間“OFFLINE”が表示された後にページが無くなる。
また、モニタプログラム66は、モニタ処理と並行してステータス通知処理を実行する。ステータス通知処理は、モニタ処理で更新したステータスHTMLを情報処理端末20に送信し、情報処理端末20から送信された実行パラメータを対応するデバイスレコードに登録する処理である。この処理は、HTMLデータ及び当該HTMLデータに埋め込まれたCGIプログラムに基づいてWEBサーバ42によって実行されるものであるが、ここでは機能説明のために本発明の機能を分離した形で模式的に図7を参照して、ステータス通知処理の詳細を説明する。
まず、モニタプログラム66は、一覧ページ要求情報、個別ステータス要求情報、或いは登録要求情報を、LAN−I/F55を通じて情報処理端末20から受信するまで待機する(S81、S82、S83)。一覧ページ要求情報は、図10(A)に示される一覧ページを示すHTMLデータ(以下、「一覧HTML」と表記する。)の送信を要求するHTTPリクエストである。個別ステータス要求情報は、ステータスHTMLの送信を要求するHTTPリクエストである。登録要求情報は、実行パラメータをデバイスレコードへの登録を要求するHTTPリクエストである。
次に、モニタプログラム66は、LAN−I/F55を通じて情報処理端末20から一覧ページ要求情報を受信したことに応じて(S81:Yes)、現時点でメモリ62に記憶されているデバイスリストに基づいて一覧HTMLを生成する(S84)。そして、モニタプログラム66は、S84で生成したHTMLを一覧ページ要求情報の応答として、LAN−I/F55を通じて情報処理端末20に送信する(S85)。
より詳細には、モニタプログラム66は、デバイスリストに登録されたデバイスレコードそれぞれに対応するデバイスアイコン151、152を一覧HTMLに含める。また、デバイスアイコン151、152には、対応するデバイスレコードのプリンタステータスを示す文字列が記述される。さらに、デバイスアイコン151、152に対応する<a>タグの“href”属性には、対応するデバイスレコードのURLが設定される。
一方、情報処理端末20のブラウザプログラムは、プリントサーバ50から受信した一覧HTMLに従って、図10(A)に示される一覧ページをディスプレイに表示させる。そして、ブラウザプログラムは、例えば、デバイスアイコン151に対する左クリック操作を受け付けたことに応じて、個別ステータス要求情報をプリントサーバ50に送信する。ここで送信される個別ステータス要求情報は、デバイスアイコン151に対応する<a>タグの“href”属性に設定されたURL−Aで所在が示されるステータスHTMLの送信を要求するための情報である。
次に、モニタプログラム66は、LAN−I/F55を通じて情報処理端末20から個別ステータス要求情報を受信したことに応じて(S82:Yes)、要求されたステータスHTMLをCGI機能により生成する(S86)。そして、モニタプログラム66は、読み出したステータスHTMLを個別ステータス要求情報の応答として、LAN−I/F55を通じて情報処理端末20に送信する(S87)。
一方、情報処理端末のブラウザプログラムは、プリントサーバ50から受信したステータスHTMLに従って、ステータスページをディスプレイに表示させる。ステータスページは、例えば図10(B)に示されるように、プリンタ10Aのデバイスレコードに含まれるステータス情報を示す文字列“READY”、“IDLE”と、プルダウンメニュー161、162、163と、[変更]アイコン164とを含む。
プルダウンメニュー161〜163は、プリント動作の実行条件を構成する複数の項目“サイズ”、“用紙種”、“色”に対応する実行パラメータを、ユーザに指定させるためのオブジェクトである。最初に表示されるプルダウンメニュー161〜163には、プリンタ10Aのデバイスレコードに含まれる実行パラメータ“A4”、“普通紙”、“カラー”が指定された状態になっている。
また、項目“サイズ”に対応するプルダウンメニュー161は、実行パラメータの候補“A4”、“B5、“ハガキ”に対応する3つの選択肢を有する。項目“用紙種”に対応するプルダウンメニュー162は、実行パラメータの候補“普通紙”、“光沢紙”に対応する2つの選択肢を有する。項目“色”に対応するプルダウンメニュー163は、実行パラメータの候補“カラー”、“モノクロ”に対応する2つの選択肢を有する。
そして、ブラウザプログラムは、プルダウンメニュー161〜163で指定された実行パラメータの変更を受け付けたことに応じて、変更後の実行パラメータをプルダウンメニュー161〜163に表示させる。また、ブラウザプログラムは、[変更]アイコン164に対する左クリック操作を受け付けたことに応じて、プリントサーバ50に登録要求情報を送信する。登録要求情報は、プルダウンメニュー161〜163に表示された実行パラメータを含む。登録要求情報の送信は、例えば、HTTPに規定されたPOSTメソッドによって実現される。
次に、モニタプログラム66は、LAN−I/F55を通じて情報処理端末20から登録要求情報を受信したことに応じて(S83:Yes)、受信した登録要求情報に含まれる実行パラメータで、プリンタ10Aのデバイスレコードの実行パラメータを上書きする(S88)。そして、モニタプログラム66は、S85、S87、S88のいずれかを実行したことに応じて、LAN−I/F55を通じて情報処理端末20からHTTPリクエストを受信するまで再び待機する(S81〜S83)。
[本実施形態の作用効果]
上記の実施形態によれば、情報処理端末20のユーザは、プリントサーバ50が公開した共有フォルダに、ファイル共有プロトコルを用いて所望のファイルを書き込むだけで、当該ファイルを対象とするプリント動作をプリンタ10に実行させることができる。すなわち、ファイル共有プロトコルをサポートしている情報処理端末20であれば、プリンタドライバがインストールされていなくてもプリンタ10を利用することができる。
また、上記の実施形態によれば、プリントサーバ50がサポートするプリンタ言語を解読可能なプリンタ10が接続されたことに応じて、共有フォルダが情報処理端末20に公開される。一方、プリントサーバ50がサポートしていないプリンタ言語のみを解読可能なプリンタ10が接続された場合、当該プリンタ10に対応する共有フォルダは公開されない。しかしながら、当該プリンタ10は共有プリンタとしては公開されるので、情報処理端末20のOSが変換したプリントデータを対象とするプリント動作を、当該プリンタ10に実行させることができる。
また、上記の実施形態によれば、共有フォルダに書き込まれたファイルがプリンタ対応形式でない場合に、当該ファイルがプリントデータに変換されてプリンタ10に送信される。これにより、プリンタドライバがインストールされていない情報処理端末20とプリンタ10との間の通信を、適切に中継することが可能となる。
また、上記の実施形態では、印刷データフォルダにコピーすることにより印刷されたファイルは、退避フォルダにコピーされる。したがって、情報処理端末20のユーザは、退避フォルダを開き、その中に記憶されたファイルを再度印刷データフォルダにドラッグ&ドロップすることにより、容易にリプリントを行うことができる。この退避フォルダされたファイルは一定時間経過後に、プリントプログラム65或いはモニタプログラム66によって削除されてもよい。
また、上記の実施形態では、PJLをサポートしていないプリンタ10Bが接続された場合には、USBプリンタクラスにより規定されたプリンタステータスを用いるようにしている。これは、プリンタクラスのUSBデバイスならば必ず装備されている機能だからである。このため、本実施形態のプリントサーバ50は、汎用的に使用できるとともに、PJLをサポートしたプリンタ10Aが接続された場合にはより細かいステータス情報を提供できる。
また、プリントサーバ50は、情報処理端末20が共有フォルダに書き込み得るあらゆる形式のファイルを、プリントデータに変換できるとは限らない。そこで上記の実施形態のように、共有フォルダに書き込まれたファイルの形式が印刷可能形式か否かを事前に判断することによって、プリント指示処理におけるプリンタ10の誤動作を抑制することができる。
また、上記の実施形態によれば、プリントサーバ50に接続された複数のプリンタ10A、10Bのうち、ファイルが書き込まれた共有フォルダに対応するプリンタ10Aにプリント動作を実行させることができる。すなわち、情報処理端末20のユーザにとっては、プリントサーバ50が公開した複数の共有フォルダのうち、所望のプリンタ10Aに対応付けられた共有フォルダにファイルを書き込めばよいので、プリンタ10Aを簡単に利用することができる。
なお、プリントサーバ50は、1台のプリンタ10に対応付けられた複数の印刷データフォルダを通信ネットワーク101に公開してもよい。また、複数の印刷データフォルダそれぞれには、異なる実行パラメータが対応付けられていてもよい。すなわち、1つのデバイスレコードは、複数の実行パラメータを含んでいてもよい。そして、プリントプログラム65は、ファイルの取得元の印刷データフォルダに対応付けられた実行パラメータに従って、プリンタ10にプリント動作を実行させてもよい。
上記の変形例によれば、情報処理端末20のユーザは、プリントサーバ50が公開した複数の印刷データフォルダのうち、所望の実行パラメータに対応付けられた印刷データフォルダにファイルを書き込むだけで、所望の実行パラメータに従ったプリント動作をプリンタ10に簡単に実行させることができる。
また、上記の実施形態によれば、プリンタ10と通信するためのプロトコルをサポートしていない情報処理端末20に、HTTPを用いてステータスHTMLが送信される。すなわち、専用のステータスモニタを情報処理端末20にインストールすることなく、情報処理端末20にプリンタ10の状態を通知することが可能となる。また、図6に示されるモニタ処理によれば、PJLをサポートするプリンタ10Aのみならず、PJLをサポートしていないプリンタ10Bのステータスも取得することができる。さらに、上記の実施形態によれば、情報処理端末20から指示されたプリント動作の状況を、データステータスとしてさらに通知することができる。
なお、ステータスHTMLには、例えば、<meta>タグの“http−equiv”属性に“refresh”が設定されていていることが望ましい。これにより、ブラウザプログラムは、<meta>タグの“content”属性に設定された時間が経過したことに応じて、当該ステータスHTMLをプリントサーバ50から自動的に再取得する。これにより、上記構成のように、ステータスHTMLの更新タイミング(S68、S75等)と、ステータスHTMLの送信タイミング(S87)とが非同期の場合でも、プリンタステータスの変化を情報処理端末20のユーザに適切に通知することができる。
また、上記の実施形態では、データステータスをステータスHTMLに書き込み、個別ステータス要求情報を受信したタイミングで当該ステータスHTMLが送信される。しかしながら、情報処理端末20へのデータステータスの送信タイミングは、前述の例に限定されない。他の例として、モニタプログラム66は、プリントプログラム65がデータステータスを書き換えたタイミング(S46、S51、S52)で、書き換えられたデータステータスを示す文字列を、LAN−I/F55を通じて情報処理端末20に送信してもよい。この場合において、S46の処理は第1通知処理の一例であり、S52の処理は第2通知処理の一例である。これにより、データステータスの変化を情報処理端末20のユーザにリアルタイムに認識させることができる。
また、上記の実施形態によれば、プリンタ10A、10B毎に発行されたURLに対応付けて、当該プリンタ10A、10Bの状態を示すステータスHTMLがメモリ62に記憶される。また、URLを指定した個別ステータス要求情報の応答として、当該URLに対応付けられたステータスHTMLが情報処理端末20に送信される。これにより、プリントサーバ50に接続された複数のプリンタ10A、10Bのうち、情報処理端末20のユーザが所望するプリンタ10Aの状態を選択的に通知することができる。
また、上記の実施形態によれば、プリントサーバ50に対してプリンタ10が接続及び切断を繰り返したとしても、当該プリンタ10のステータスHTMLの所在を示すURLが変更されない。これにより、例えば情報処理端末20が頻繁に利用するプリンタ10AのURL−Aをブックマークしておけば、一覧ページを経由しなくてもプリンタ10Aのステータスページにアクセスすることが可能になる。
また、プリントサーバ50は、プリンタ10の近くに設置されるのが一般的である。一方、情報処理端末20は、プリンタ10の近くに設置されるとは限らない。そこで、プリントサーバ50に接続されたスピーカ57を通じてプリンタ10の特定ステータスを報知することによって、特定ステータスに応じた処理をプリンタ10の近くにいるユーザが実行することが期待できる。
なお、上記の実施形態では、プリンタ10及びプリントサーバ50がUSBケーブル102で接続されている例を説明したが、プリントサーバ50はプリンタ10に内蔵されていてもよい。より詳細には、プリントプログラム65及びモニタプログラム66は、プリンタ10に搭載されたCPUによって実行されてもよい。すなわち、プリント動作を実現する構成要素(例えば、搬送ローラ、記録ヘッド等)と、プリントサーバ50の機能を実現する構成要素(例えば、CPU、メモリ等)とは、プリンタ10の内部バスによって接続されていてもよい。
また、上記の実施形態のプリントサーバ50において、メモリ62に記憶された各種プログラムがCPU61によって実行されることによって、本発明のコントローラが実行する各処理が実現される例を説明した。しかしながら、コントローラの構成はこれに限定されず、その一部又は全部を集積回路等のハードウェアで実現してもよい。
さらに、本発明は、プリントサーバ50として実現できるだけでなく、プリントサーバ50に処理を実行させるプログラムとして実現してもよい。そして、当該プログラムは、non−transitoryな記録媒体に記録されて提供されてもよい。non−transitoryな記録媒体は、CD−ROM、DVD−ROM等の他、通信ネットワーク101を通じてプリントサーバ50に接続可能なサーバに搭載されたメモリを含んでもよい。そして、サーバのメモリに記憶されたプログラムは、当該プログラムを示す情報或いは信号として、インターネット等の通信ネットワークを通じて配信されてもよい。