(57)【要約】【課題】プリンタドライバがインストールされていない外部装置からの指示に従って、プリンタにプリント動作を実行させることが可能なプリントサーバを提供する。【解決手段】プリントサーバは、ファイル共有プロトコルによって、メモリの記憶領域の一部である共有領域を、通信インタフェースを通じてプリントサーバに接続された外部装置がアクセス可能に公開する公開処理と、外部装置が通信インタフェースを通じて共有領域に書き込んだファイルを取得する第１取得処理（Ｓ４１：Ｙｅｓ＆Ｓ４２：共有フォルダ）と、第１取得処理で取得したファイルで示される画像をシートに記録するプリント動作を、通信インタフェースを通じて接続されたプリンタに実行させるプリント指示処理（Ｓ４９）とを実行する。【選択図】図５
2018106362.tif 000002
【特許請求の範囲】
【請求項１】
メモリと、通信インタフェースと、コントローラとを備えるプリントサーバであって、
前記コントローラは、
ファイル共有プロトコルによって、前記メモリの記憶領域の一部である共有領域を、前記通信インタフェースを通じて該プリントサーバに接続された外部装置がアクセス可能に公開する公開処理と、
前記外部装置が前記通信インタフェースを通じて前記共有領域に書き込んだファイルを取得する第１取得処理と、
前記第１取得処理で取得したファイルで示される画像をシートに記録するプリント動作を、前記通信インタフェースを通じて接続されたプリンタに実行させるプリント指示処理とを実行するプリントサーバ。
【請求項２】
前記コントローラは、
前記通信インタフェースを通じて通信可能なプリンタを検出したことに応じて、当該プリンタが解読可能なプリンタ言語を示すプリンタ情報を、前記通信インタフェースを通じて当該プリンタから取得する第２取得処理と、
前記プリンタ情報で示される前記プリンタ言語を該プリントサーバがサポートしているか否かを判断する第１判断処理と、
前記第１判断処理でサポートしていると判断したことに応じて、前記公開処理とを実行する請求項１に記載のプリントサーバ。
【請求項３】
前記コントローラは、
前記第２取得処理において、前記プリント動作の対象となり得るファイル形式をさらに示す前記プリンタ情報を取得し、
前記第１取得処理で取得したファイルの形式が前記プリンタ情報で示される前記ファイル形式と一致するか否かを判断する第２判断処理と、
前記第２判断処理で一致すると判断したことに応じて、前記プリント指示処理とを実行し、
前記第２判断処理で一致しないと判断したことに応じて、
前記第１取得処理で取得したファイルを、前記プリンタ情報で示される前記プリンタ言語で記述されたプリントデータに変換する変換処理と、
前記変換処理で変換した前記プリントデータで示される画像をシートに記録する前記プリント動作を前記プリンタに実行させる前記プリント指示処理とを実行する請求項２に記載のプリントサーバ。
【請求項４】
前記コントローラは、
前記第１取得処理で取得したファイルの形式が前記プリントデータに変換可能か否かを判断する第３判断処理と、
前記第３判断処理で変換可能だと判断したことに応じて、前記第２判断処理とを実行し、
前記第３判断処理で変換不能だと判断したことに応じて、前記第１取得処理で取得したファイルを、前記共有領域と異なる前記メモリの記憶領域の一部である退避領域に退避する退避処理を実行する請求項３に記載のプリントサーバ。
【請求項５】
前記コントローラは、
前記第３判断処理で変換可能だと判断したことに応じて、当該ファイルを受け付けたことを示すデータステータスを、当該ファイルの送信元の前記外部装置に通知する第１通知処理と、
前記第３判断処理で変換不能だと判断したことに応じて、当該ファイルを受け付けなかったことを示すデータステータスを、当該ファイルの送信元の前記外部装置に通知する第２通知処理とを実行する請求項４に記載のプリントサーバ。
【請求項６】
前記コントローラは、
前記公開処理において、各々に複数の前記プリンタのうちの１つが対応付けられた複数の前記共有領域を公開し、
前記プリント指示処理において、前記第１取得処理におけるファイルの取得元の前記共有領域に対応付けられた前記プリンタに、前記プリント動作を実行させる請求項１から５のいずれかに記載のプリントサーバ。
【請求項７】
前記コントローラは、
前記公開処理において、各々に前記プリント動作の実行条件が対応付けられた複数の前記共有領域を公開し、
前記プリント指示処理において、前記第１取得処理におけるファイルの取得元の前記共有領域に対応付けられた前記実行条件に従って、前記プリンタに前記プリント動作を実行させる請求項１から６のいずれかに記載のプリントサーバ。
【請求項８】
前記通信インタフェースは、
Ｅｔｈｅｒｎｅｔ（登録商標）或いはＷｉ−Ｆｉ（登録商標）に準拠した方式で前記外部装置と通信する第１インタフェースと、
一端に前記プリンタが接続されたＵＳＢケーブルの他端を着脱可能な第２インタフェースとを備える請求項１から７のいずれかに記載のプリントサーバ。
【請求項９】
前記ファイル共有プロトコルは、ＳＭＢ（Server Message Blockの略）、或いはＣＩＦＳ（Common Internet File Systemの略）である請求項１から８のいずれかに記載のプリントサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、外部装置からの指示に従って、プリンタにプリント動作を実行させるプリントサーバに関する。
【背景技術】
【０００２】
例えば特許文献１には、プリンタドライバ及びステータスモニタがインストールされたクライアントＰＣと、プリントサーバと、画像形成装置とを備える画像形成システムが開示されている。プリンタドライバは、文書データを印刷ジョブデータに変換し、変換した印刷ジョブデータをプリントサーバを介して画像形成装置に送信する。ステータスモニタは、画像形成装置の状態を示す情報をプリントサーバを介して受信し、受信した画像形成装置の状態をモニタに表示させる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−０１０５８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１のように、画像形成装置に印刷を実行させるためには、画像形成装置が認識可能なプロトコルに従って文書データを変換するプリンタドライバを、クライアントＰＣに予めインストールしておくのが一般的である。しかしながら、例えば、外出先の画像形成装置を一時的に利用する場合に、当該画像形成装置に対応するプリンタドライバをインストールしなければならないとすると、ユーザの作業が繁雑になるという課題を生じる。
【０００５】
本発明は、上記の事情に鑑みてなされたものであり、その目的は、プリンタドライバがインストールされていない外部装置からの指示に従って、プリンタにプリント動作を実行させることが可能なプリントサーバを提供することにある。
【課題を解決するための手段】
【０００６】
本明細書では様々な開示を行う。開示例の１つであるプリントサーバは、メモリと、通信インタフェースと、コントローラとを備える。前記コントローラは、ファイル共有プロトコルによって、前記メモリの記憶領域の一部である共有領域を、前記通信インタフェースを通じて該プリントサーバに接続された外部装置がアクセス可能に公開する公開処理と、前記外部装置が前記通信インタフェースを通じて前記共有領域に書き込んだファイルを取得する第１取得処理と、前記第１取得処理で取得したファイルで示される画像をシートに記録するプリント動作を、前記通信インタフェースを通じて接続されたプリンタに実行させるプリント指示処理とを実行する。
【０００７】
上記構成によれば、外部装置は、プリントサーバが公開した共有領域に、ファイル共有プロトコルを用いて所望のファイルを書き込むだけで、当該ファイルを対象とするプリント動作をプリンタに実行させることができる。すなわち、ファイル共有プロトコルをサポートしている外部装置であれば、プリンタドライバがインストールされていなくてもプリンタを利用することができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施形態に係るシステム１００の概略図である。
【図２】図２（Ａ）はプリントサーバ５０のブロック図を、図２（Ｂ）はデバイスリストの例を示す。
【図３】図３は、デバイス管理処理のフローチャートである。
【図４】図４は、プリンタ接続処理のフローチャートである。
【図５】図５は、プリント処理のフローチャートである。
【図６】図６は、モニタ処理のフローチャートである。
【図７】図７は、ステータス通知処理のフローチャートである。
【図８】図８は、情報処理端末２０のディスプレイの表示例であって、（Ａ）は通信ネットワーク１０１に接続されたデバイスに対応するデバイスアイコン１１１〜１１３を含む一覧画面を、（Ｂ）はプリントサーバ５０に接続されたプリンタ１０Ａ、１０Ｂに対応するフォルダアイコン１２１、１２２を含む一覧画面を示す。
【図９】図９は、情報処理端末２０のディスプレイに一覧画面１３０、１４０が同時に表示された状態を示す。
【図１０】図１０は、情報処理端末２０のディスプレイの表示例であって、（Ａ）は一覧ページを、（Ｂ）はステータスページを示す。
【発明を実施するための形態】
【０００９】
以下、適宜図面を参照して本発明の実施形態について説明する。なお、以下に説明される実施形態は本発明の一例にすぎず、本発明の要旨を変更しない範囲で、本発明の実施形態を適宜変更できることは言うまでもない。
【００１０】
図１は、本実施形態に係るシステム１００の概略図である。図１に示されるシステム１００は、プリンタ１０Ａ、１０Ｂ（以下、これらを総称して、「プリンタ１０」と表記することがある。）と、情報処理端末２０Ａ、２０Ｂ（以下、これらを総称して、「情報処理端末２０」と表記することがある。）と、プリントサーバ５０とで構成されている。
【００１１】
情報処理端末２０及びプリントサーバ５０は、通信ネットワーク１０１を通じて接続されている。通信ネットワーク１０１の具体例は特に限定されないが、例えば、有線ＬＡＮ、無線ＬＡＮ、或いはこれらの組み合わせであってもよい。一方、プリンタ１０及びプリントサーバ５０は、ＵＳＢケーブル１０２によって接続されている。なお、プリンタ１０及びプリントサーバ５０の間には、ＵＳＢハブ等が介在してもよい。また、プリンタ１０及びプリントサーバ５０は、ＵＳＢケーブル１０２に代えて、通信ネットワーク１０１を通じて接続されてもよい。
【００１２】
プリンタ１０は、画像データで示される画像をシートに記録するプリント動作を実行する。より詳細には、プリンタ１０は、ＵＳＢケーブル１０２を通じてプリントサーバ５０から受信したファイル或いはプリントデータを対象とするプリント動作を実行する。プリンタ１０の記録方式としては、インクジェット方式や電子写真方式などの公知の方式を採用することができる。プリンタ１０の構成は周知なので、詳細な説明は省略する。
【００１３】
プリンタ１０は、１以上のプリンタ言語を解読することができる。より詳細には、プリンタ１０は、プリンタ言語で記述されたプリントデータ（所謂、ＲＡＷデータ）に従って、プリント動作を実行することができる。プリンタ言語とは、プリンタに対して描画を指示するための言語であって、ページ記述言語等とも呼ばれる。プリンタ言語の具体例は特に限定されないが、例えば、ＰＳ（PostScriptの略、登録商標）、ＰＣＬ（Printer control Languageの略、登録商標）等がある。本実施形態では、プリンタ１０Ａがプリンタ言語“ＰＳ”、“ＰＣＬ”を両方を解読可能で、プリンタ１０Ｂがプリンタ言語“ＰＳ”のみを解読可能とする。また、プリンタ１０には、前述のページ記述言語で記述された印刷データによる印刷ジョブを管理するためのＰＪＬ（Priter Job Languageの略、登録商標）が実装されている。
【００１４】
また、プリンタ１０Ａは、ＪＰＥＧ形式のファイルを対象とするプリント動作を実行することができる。「ファイルを対象とするプリント動作」とは、例えば、プリントデータに変換されていないファイルで示される画像をシートに記録することを指す。一方、プリンタ１０Ｂは、ファイルを対象とするプリント動作を実行することができない。ファイルの形式とは、ファイル名の末尾に付加された拡張子によって区別されるものであって、例えば、画像形式（例えば、“．ＪＰＧ”、“．ＢＭＰ”等）、テキスト形式（例えば、“．ｔｘｔ”、“．ｄｏｃ”等）、その他の任意の形式（例えば、“．ＰＤＦ”、“．ｘｌｓ”等）がある。
【００１５】
なお、本明細書における「ファイル」とは、例えば、情報処理端末２０にインストール可能なアプリケーションを用いて、当該ファイルで示される画像をユーザに視認させることを前提して生成されたデータを指す。換言すれば、「ファイル」とは、プリンタ言語でプリントデータに変換されていない汎用画像データを指す。一方、「プリントデータ」とは、プリンタ言語で変換されたファイルであって、中間ファイル等とも呼ばれる。すなわち、「プリントデータ」は、当該データで示される画像をディスプレイ上でユーザに視認させることを前提としていないデータを指す。
【００１６】
プリンタ１０は、プリンタ情報をメモリに記憶している。プリンタ情報は、例えば、サポートするプリンタ言語と、プリント動作の対象となり得るファイル形式（以下、「プリンタ対応形式」と表記する。）とを示す。すなわち、プリンタ１０Ａのプリンタ情報Ａは、プリンタ言語“ＰＳ”、“ＰＣＬ”と、プリンタ対応形式“ＪＰＥＧ”とを示す。一方、プリンタ１０Ｂのプリンタ情報Ｂは、プリンタ言語“ＰＳ”と、プリンタ対応形式“なし”とを示す。プリンタ情報は、ＩＥＥＥ１２８４ＩＤに含まれている。
【００１７】
情報処理端末２０は、外部装置の一例であって、例えば、携帯電話、スマートフォン、タブレット端末、ＰＣ等である。情報処理端末２０は、ディスプレイと、メモリと、入力Ｉ／Ｆ（例えば、キーボード、タッチパネル、マウス）と、通信Ｉ／Ｆとを備える。情報処理端末２０のＯＳは、例えば図９に示されるように、ポインタ画像（例えば、矢印を表す画像）１１０をディスプレイに表示させ、マウスの移動に追従してディスプレイ上におけるポインタ画像１１０の位置を移動させる。
【００１８】
以下、ディスプレイに表示されたアイコンの位置にポインタ画像１１０を重ねた状態で、マウスの左ボタンを押下する操作を「アイコンに対する左クリック操作」と表記する。また、ディスプレイに表示されたアイコンの位置にポインタ画像１１０を重ねた状態で左ボタンを押下し、左ボタンを押下したままポインタ画像１１０を移動させ、移動開始位置と異なる移動終了位置で左ボタンの押下を解除する操作を「アイコンを移動終了位置に移動させるドラッグ操作」と表記する。
【００１９】
また、情報処理端末のＯＳは、例えば図９に示されるように、複数の画面（すなわち、ウィンドウ）を、ディスプレイに同時に表示させることが可能である。すなわち、ＯＳは、所謂マルチウィンドウ機能を有する。なお、ディスプレイに表示される画面は、ＯＳ自身が表示させるもの（例えば、デスクトップ画面）であってもよい。
【００２０】
また、情報処理端末２０には、例えば、「Ｅｘｐｌｏｒｅｒ」、「Ｆｉｎｄｅｒ」等と呼ばれる所謂ファイル管理プログラムがインストールされている。ファイル管理プログラムは、例えば図９の一覧画面１４０のように、情報処理端末２０のメモリに記憶されているファイルに対応するファイルアイコン１４１、１４２、１４３を一覧表示させることができる。
【００２１】
また、ファイル管理プログラムは、例えば図８（Ａ）に示されるように、通信ネットワーク１０１に接続されたデバイス（例えば、プリントサーバ５０、情報処理端末２０Ａ、２０Ｂ）に対応するデバイスアイコン１１１、１１２、１１３を一覧表示させることができる。通信ネットワーク１０１に接続されたデバイスの検出は、例えば、ＤＮＳ、ｍＤＮＳ、ＮｅｔＢＩＯＳ等の周知のプロトコルによって実現される。
【００２２】
さらに、ファイル管理プログラムは、例えば図９の一覧画面１３０のように、外部装置（例えば、プリントサーバ５０）が通信ネットワーク１０１上に公開した共有フォルダに対応するフォルダアイコン１３２、１３３を一覧表示させることができる。共有フォルダへのアクセスは、例えば、ＳＭＢ、ＣＩＦＳ等の周知のファイル共有プロトコルによって実現される。
【００２３】
また、情報処理端末２０には、ＨＴＭＬ等で記述されたページをディスプレイに表示させるブラウザプログラム等がインストールされている。ブラウザプログラムは、通信ネットワーク１０１に接続されたＷＥＢサーバにＨＴＭＬデータの送信を要求し、要求したＨＴＭＬデータをＷＥＢサーバから受信し、受信したＨＴＭＬデータで示されるページをディスプレイに表示させる。ＨＴＭＬデータの送受信は、例えば、ＨＴＴＰ等の周知のプロトコルによって実現される。
【００２４】
図１に示されるように、プリントサーバ５０上では、ＳＭＢサーバ４１、ＷＥＢサーバ４２、及びＣＵＰＳサーバ４３が稼働している。また、プリントサーバ５０は、図２（Ａ）に示されるように、ＬＡＮ−Ｉ／Ｆ５５と、ＵＳＢ−Ｉ／Ｆ５６と、スピーカ５７と、ＣＰＵ６１と、メモリ６２と、通信バス６３とを主に備える。プリントサーバ５０を構成する各構成要素は、通信バス６３を通じて相互に接続されている。プリントサーバ５０は、例えば、シングルボードコンピュータによって実現することができる。
【００２５】
ＳＭＢサーバ４１は、ファイル共有プロトコルを用いてメモリ６２の記憶領域の一部を、通信ネットワーク１０１を通じて接続された情報処理端末２０がアクセス可能な共有フォルダとして公開する。共有フォルダは、共有領域及び退避領域の一例である。ＷＥＢサーバ４２は、ＬＡＮ−Ｉ／Ｆ５５を通じて外部装置からＨＴＴＰリクエストを受信し、当該ＨＴＴＰリクエストで示されるＨＴＭＬデータをＬＡＮ−Ｉ／Ｆ５５を通じて外部装置に送信する。
【００２６】
ＣＵＰＳサーバ４３は、ＵＳＢ−Ｉ／Ｆ５６を通じて接続されたプリンタ１０にプリント動作を指示し、プリンタ１０の状態を示すプリンタステータスを取得する。また、ＣＵＰＳサーバ４３は、ＵＳＢ−Ｉ／Ｆ５６を通じて接続されたプリンタ１０Ａ、１０Ｂ毎にＲＡＷポートキューを管理している。すなわち、ＣＵＰＳサーバ４３は、ＲＡＷポートキューに登録されたファイル或いはプリントデータを対象とするプリント動作を、対応するプリンタ１０に対して登録された順に指示する。
【００２７】
また、ＣＵＰＳサーバ４３は、通信ネットワーク１０１上のデバイス（例えば、情報処理端末２０等）に対して、下記（１）、（２）の２種類の印刷キューを公開する機能を有する。これらの機能は、ＩＰＰプロトコル等により実現されている。
（１）  ＴＣＰプロトコルのポート番号９１００によるＲＡＷデータの印刷キュー
（２）  ネットワーク共有プリンタの印刷キュー（後述のＳＭＢサーバと協働）
【００２８】
ＳＭＢサーバ４１、ＷＥＢサーバ４２、及びＣＵＰＳサーバ４３は、プリントサーバ５０の起動時に起動され、ＣＰＵ６１によって実行される。ＳＭＢサーバ４１、ＷＥＢサーバ４２、及びＣＵＰＳサーバ４３は周知のサーバプログラムで実現できるので、詳細な説明は省略する。また、ＷＥＢサーバ４２は、サーバプログラムに代えて、所謂ＥＷＳ（Embedded Web Serverの略）で実現されてもよい。さらに、前述の共有フォルダは、ＳＭＢサーバ４１により実現される。このＳＭＢサーバ４１には、ＳＭＢ或いはＣＩＦＳ等の周知のプロトコルが使用される。
【００２９】
ＰＪＬは、プリンタと通信するための第１プロトコルの一例である。但し、第１プロトコルの具体例はＰＪＬに限定されず、例えばＰＳデータ、ＰＣＬデータを直に送るものであってもよいし、ＩＰＰ  ｏｖｅｒ  ＵＳＢに準拠したものであってもよい。さらに本実施例では、第１プロトコルとしてＵＳＢプリンタクラス仕様に規定されたプリンタステータスも使用する。また、ＨＴＴＰは、第１プロトコルと異なる第２プロトコルの一例である。但し、第２プロトコルの具体例はＨＴＴＰに限定されず、ＳＮＭＰ、ＨＴＴＰＳ等であってもよい。なお、第２プロトコルは、例えば、一般に普及している情報処理端末２０に標準でインストールされている汎用ツール（例えば、ブラウザプログラム、ＭＩＢビューア）がサポートしているプロトコルを想定している。また、本明細書中の「プロトコル」とは、例えば、ＩＰＰ／ＵＳＢ、ＨＴＴＰ、ＳＮＭＰ等のような通信プロトコルに限定されず、ＰＳ、ＰＣＬ、或いはＰＪＬ等のような使用言語を指してもよい。
【００３０】
ＬＡＮ−Ｉ／Ｆ５５は、通信ネットワーク１０１を通じて外部装置と通信可能な第２インタフェースの一例である。すなわち、プリントサーバ５０は、ＬＡＮ−Ｉ／Ｆ５５を通じて外部装置に各種情報を送信し、ＬＡＮ−Ｉ／Ｆ５５を通じて外部装置から各種情報を受信する。ＬＡＮ−Ｉ／Ｆ５５の具体的な通信手順は特に限定されないが、例えば、Ｅｔｈｅｒｎｅｔ（登録商標）或いはＷｉ−Ｆｉ（登録商標）を採用することができる。
【００３１】
ＵＳＢ−Ｉ／Ｆ５６は、ＵＳＢケーブル１０２が接続される第１インタフェースの一例である。ＵＳＢ−Ｉ／Ｆ５６の回路は、ＵＳＢケーブルから入力された電気信号に応じた制御信号を後述する各種プログラムに出力し、各種プログラムから入力された制御信号に応じた電気信号をＵＳＢケーブル１０２に出力する。
【００３２】
スピーカ５７は、音声を出力する。なお、プリントサーバ５０は、スピーカ５７を接続可能な装着インタフェースのみを有しており、装着インタフェースに接続されたスピーカ５７に音声を出力させてもよい。
【００３３】
ＣＰＵ６１は、プリントサーバ５０の全体動作を制御するものである。ＣＰＵ６１は、ＬＡＮ−Ｉ／Ｆ５５及びＵＳＢ−Ｉ／Ｆ５６を通じて外部装置から受信した各種情報等に基づいて、後述する各種プログラムをメモリ６２から取得して実行する。ＣＰＵ６１及びメモリ６２はコントローラの一例である。
【００３４】
メモリ６２は、ＯＳ６４と、プリントプログラム６５と、モニタプログラム６６とを記憶している。プリントプログラム６５及びモニタプログラム６６それぞれは、単一のプログラムであってもよいし、複数のプログラムの集合体であってもよい。また、メモリ６２は、プリントプログラム６５及びモニタプログラム６６の実行に必要なデータ或いは情報等を記憶する。メモリ６２は、例えば、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＨＤＤ、プリントサーバ５０に着脱されるＵＳＢメモリ等の可搬記憶媒体、ＣＰＵ６１が備えるバッファ等、或いはそれらの組み合わせによって構成される。
【００３５】
メモリ６２は、コンピュータが読み取り可能なストレージ媒体であってもよい。コンピュータが読み取り可能なストレージ媒体とは、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体である。ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体には、上記の例の他に、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等の記録媒体も含まれる。また、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな媒体は、ｔａｎｇｉｂｌｅな媒体でもある。一方、インターネット上のサーバなどからダウンロードされるプログラムを搬送する電気信号は、コンピュータが読み取り可能な媒体の一種であるコンピュータが読み取り可能な信号媒体であるが、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙなコンピュータが読み取り可能なストレージ媒体には含まれない。
【００３６】
プリントプログラム６５は、例えば、図３〜図５に示される処理を実行する。より詳細には、プリントプログラム６５は、ＬＡＮ−Ｉ／Ｆ５５を通じて情報処理端末２０からファイルを受信し、受信したファイルを対象とするプリント動作をＵＳＢ−Ｉ／Ｆ５６を通じて接続されたプリンタ１０に実行させる。プリントプログラム６５は、例えば、ＳＭＢサーバ４１及びＣＵＰＳサーバ４３の機能を利用して実現される。
【００３７】
モニタプログラム６６は、例えば、図６及び図７に示される処理を実行する。より詳細には、モニタプログラム６６は、ＵＳＢ−Ｉ／Ｆ５６を通じて接続されたプリンタ１０のプリンタステータスを取得し、取得したプリンタステータス及びデータステータスを含むＨＴＭＬデータ（以下、「ステータスＨＴＭＬ」と表記する。）をＬＡＮ−Ｉ／Ｆ５５を通じて情報処理端末２０に送信する。モニタプログラム６６は、例えば、ＷＥＢサーバ４２の機能を利用して実現される。
【００３８】
また、メモリ６２は、例えば図２（Ｂ）に示されるデバイスリストを記憶することができる。デバイスリストは、１以上のデバイスレコードを含む。デバイスレコードは、ＵＳＢ−Ｉ／Ｆ５６を通じて接続可能なデバイス（以下、「ＵＳＢデバイス」と表記する。）に対応する。デバイスレコードは、例えば、デバイスＩＤ、プリンタ情報、ステータス情報、ＵＲＬ、及び実行パラメータを含む。デバイスレコードは、例えば、後述するＳ１５、Ｓ３４でプリントプログラム６５によって登録され、後述するＳ１８でプリントプログラム６５によって削除される。
【００３９】
デバイスＩＤは、ＵＳＢデバイスを一意に識別するための情報である。デバイスＩＤの具体例は特に限定されないが、例えば、ＩＥＥＥ１２８４ＩＤ、或いはＵＳＢベンダーＩＤ、プロダクトＩＤ，シリアル番号の組み合わせ等を用いることができる。本実施形態では簡易的に、プリンタ１０ＡがデバイスＩＤ“プリンタＡ”で識別され、プリンタ１０ＢがデバイスＩＤ“プリンタＢ”で識別されるものとする。
【００４０】
プリンタ情報、ステータス情報、ＵＲＬ、実行パラメータは、ＵＳＢデバイスがプリンタクラスのデバイス（すなわち、プリンタ１０）である場合に、デバイスレコードとして記憶される。プリンタ情報は、後述するＳ３２で対応するプリンタ１０から取得する情報である。ＵＲＬは、対応するプリンタ１０のステータス等を記載したＨＴＭＬデータの所在を示す。ＵＲＬはアドレス情報の一例であり、ＵＲＬで所在が示されるステータス等を記載したＨＴＭＬデータは画面情報の一例である。実行パラメータは、対応するプリンタ１０に実行させるプリント動作の実行条件を示す。
【００４１】
ステータス情報は、対応するプリンタ１０の状態を示すプリンタステータスと、プリント動作の対象となるデータの受け付け状況を示すデータステータスとを含む。プリンタステータスには、例えば、プリンタ１０と接続されていることを示す“ＯＮＬＩＮＥ”、プリンタ１０がプリント動作を実行可能なことを示す“ＲＥＡＤＹ”、プリンタ１０の内部にシートが詰まったことを示す“ＳＨＥＥＴ  ＪＡＭ”、或いはプリンタ１０と接続されていないことを示す“ＯＦＦＬＩＮＥ”等が設定される。
【００４２】
データステータスには、例えば、共有フォルダに書き込まれたファイルを受け付けたことを示す“ＡＣＣＥＰＴ”、共有フォルダに書き込まれたファイルを受け付けなかったことを示す“ＲＥＦＵＳＥ”、或いは共有フォルダを通じてファイルを受け付け可能なことを示す“ＩＤＬＥ”等が設定される。“ＡＣＣＥＰＴ”は第１値の一例であり、“ＩＤＬＥ”は第２値の一例である。
【００４３】
プリント動作の実行条件は、複数の項目（例えば、“サイズ”、“用紙種”、“色”）それぞれに対応する複数の実行パラメータの組み合わせによって特定される。項目“サイズ”の実行パラメータは、画像を記録するシートの大きさ（例えば、“Ａ４”、“Ｂ５”、“ハガキ”）を示す。項目“用紙種”の実行パラメータは、画像を記録するシートの種類（例えば、“普通紙”、“光沢紙”）を示す。項目“色”の実行パラメータは、シートに画像を記録するのに用いる色（例えば、“カラー”、“モノクロ”）を示す。但し、プリント動作の実行条件は、前述の例に限定されない。
【００４４】
［システム１００の動作］
図３〜図７を参照して、本実施形態に係るシステム１００の動作を説明する。なお、本実施形態では、図３〜図５の処理がプリントプログラム６５によって実行され、図６及び図７の処理がモニタプログラム６６によって実行される例を説明する。しかしながら、プリントプログラム６５及びモニタプログラム６６の役割分担は前述の例に限定されず、図３〜図５の処理の一部がモニタプログラム６６によって実行されてもよいし、図６及び図７の処理の一部がプリントプログラム６５によって実行されてもよい。さらには、図３〜図７の処理が１つのプログラムによって実行されてもよい。
【００４５】
本明細書のフローチャートは、基本的に、プログラムに記述された命令に従ったＣＰＵ６１の処理を示す。すなわち、以下の説明における「判断」、「抽出」、「選択」、「算出」、「決定」、「特定」、「制御」等の処理は、ＣＰＵ６１の処理を表している。ＣＰＵ６１による処理は、ＯＳ６４を介したハードウェア制御も含む。また、本明細書中の「データ」とは、コンピュータに読取可能なビット列で表される。そして、実質的な意味内容が同じでフォーマットが異なるデータは、同一のデータとして扱われるものとする。本明細書中の「情報」についても同様である。
【００４６】
プリントプログラム６５は、デバイス管理処理を実行する。デバイス管理処理は、図２（Ｂ）に示されるデバイスリストを用いて、ＵＳＢデバイスを管理する処理である。図３を参照して、デバイス管理処理の詳細を説明する。
【００４７】
まず、プリントプログラム６５は、ＵＳＢデバイスの接続及び切断をＵＳＢ−Ｉ／Ｆ５６を通じて監視する（Ｓ１１、Ｓ１２）。ＵＳＢデバイスの接続とは、例えば、電源ＯＮされたＵＳＢデバイスから延びるＵＳＢケーブル１０２がＵＳＢ−Ｉ／Ｆ５６に接続されたこと、或いは既にＵＳＢケーブル１０２で接続されたＵＳＢデバイスが電源ＯＮされたこと等を含む。また、ＵＳＢデバイスの切断とは、ＵＳＢケーブル１０２がＵＳＢ−Ｉ／Ｆ５６から抜去されたこと、或いはＵＳＢケーブル１０２で接続されたＵＳＢデバイスが電源ＯＦＦされたこと等を含む。ＵＳＢデバイスの接続及び切断は、周知の方法で検出することができる。
【００４８】
プリントプログラム６５は、ＵＳＢ−Ｉ／Ｆ５６を通じてＵＳＢデバイスの接続を検出したことに応じて（Ｓ１１：Ｙｅｓ）、プリンタクラスのＵＳＢデバイスが接続されたか否かを判断する（Ｓ１３）。ＵＳＢデバイスのクラスは、例えば、当該ＵＳＢデバイスのデバイスディスクリプタを取得することによって判断できる。そして、プリントプログラム６５は、プリンタクラスのＵＳＢデバイスが接続されたと判断したことに応じて（Ｓ１３：Ｙｅｓ）、後述するプリンタ接続処理を実行する（Ｓ１４）。一方、プリントプログラム６５は、プリンタクラスでないＵＳＢデバイスが接続されたと判断したことに応じて（Ｓ１３：Ｎｏ）、当該ＵＳＢデバイスのデバイスＩＤを含むデバイスレコードをデバイスリストに登録する（Ｓ１５）。
【００４９】
また、プリントプログラム６５は、ＵＳＢ−Ｉ／Ｆ５６を通じてＵＳＢデバイスの切断を検出したことに応じて（Ｓ１２：Ｙｅｓ）、プリンタクラスのＵＳＢデバイスが切断されたか否かを判断する（Ｓ１６）。そして、プリントプログラム６５は、プリンタクラスのＵＳＢデバイスが切断されたと判断したことに応じて（Ｓ１６：Ｙｅｓ）、後述するＳ３７で当該ＵＳＢデバイスに対応付けて公開した共有フォルダを、非公開にする（Ｓ１７）。一方、プリントプログラム６５は、プリンタクラスでないＵＳＢデバイスが切断されたと判断したことに応じて（Ｓ１６：Ｎｏ）、当該ＵＳＢデバイスのデバイスＩＤを含むデバイスレコードを、デバイスリストから削除する（Ｓ１８）。
【００５０】
次に図４を参照して、プリンタ１０Ａが接続された場合のプリンタ接続処理を説明する。まず、プリントプログラム６５は、プリンタ１０Ａが初めて接続されたか否かを判断する（Ｓ３１）。より詳細には、プリントプログラム６５は、プリンタ１０ＡのデバイスＩＤ“プリンタＡ”を含むデバイスレコードがデバイスリストに登録されているか否かを判断する。そして、プリントプログラム６５は、デバイスＩＤ“プリンタＡ”を含むデバイスレコードがデバイスリストに登録されていると判断したことに応じて（Ｓ３１：Ｎｏ）、Ｓ３２〜Ｓ３４の処理をスキップする。
【００５１】
一方、プリントプログラム６５は、デバイスＩＤ“プリンタＡ”を含むデバイスレコードがデバイスリストに登録されていないと判断したことに応じて（Ｓ３１：Ｙｅｓ）、ＵＳＢ−Ｉ／Ｆ５６を通じてプリンタ１０Ａからプリンタ情報Ａを受信する（Ｓ３２）。Ｓ３２の処理は、第２取得処理の一例である。
【００５２】
次に、プリントプログラム６５は、デバイスリスト内でユニークなＵＲＬを生成する（Ｓ３３）。一例として、ＵＲＬは、“http://print-server/printer-a/status.html”、“http://print-server/printer-b/status.html”のように、異なるディレクトリ名によってユニークにされてもよい。他の例として、ＵＲＬは、“http://print-server:50000/status.html”、“http://print-server:50001/status.html”のように、異なるポート番号によってユニークにされてもよい。
【００５３】
次に、プリントプログラム６５は、プリンタ１０ＡのデバイスＩＤ“プリンタＡ”と、Ｓ３２で取得したプリンタ情報Ａと、Ｓ３３で生成したＵＲＬ−Ａとを含むデバイスレコードを、デバイスリストに登録する（Ｓ３４）。なお、Ｓ３４の時点において、ステータス情報には、プリンタステータス“ＯＮＬＩＮＥ”、データステータス“ＩＤＬＥ”が設定される。また、実行パラメータには、予め定められたデフォルトの実行パラメータが設定される。このステップＳ３１〜Ｓ３４の処理により、同一のプリンタ１０が接続された場合に、接続の順番や接続されたＵＳＢソケットに拘わらず、必ず同一のＵＲＬが割り当てられる。
【００５４】
次に、プリントプログラム６５は、モニタプログラム６６の新規スレッドを、接続されたプリンタ１０Ａに対応付けて起動する（Ｓ３５）。新たに起動されたモニタプログラム６６のスレッドは、後述するモニタ処理を実行する。すなわち、モニタプログラム６６のスレッド（以下、単に「モニタプログラム６６」と表記することがある。）は、プリントサーバ５０に接続されたプリンタ１０の数だけ起動され、対応するプリンタ１０に対するモニタ処理を独立して実行する。また、プリントプログラム６５は、プリンタ１０Ａがプリンタ言語“ＰＪＬ”を解読可能な場合において、起動したモニタプログラム６６がＳ６３の処理を実行するまで、Ｓ３６以降の処理の実行を待機する。
【００５５】
次に、プリントプログラム６５は、起動したモニタプログラム６６がＳ６３の処理を実行したことに応じて、プリンタが下記（Ａ）又は（Ｂ）のデータを印刷可能か否かを判断する（Ｓ３６）。Ｓ３６の処理は、第１判断処理の一例である。そして、プリントプログラム６５は、下記の（Ａ）及び（Ｂ）のデータをプリンタ１０が印刷可能でないと判断したことに応じて（Ｓ３６：Ｎｏ）、Ｓ３７の処理をスキップしてプリンタ接続処理を終了する。
（Ａ）当該プリンタ１０が直接印刷可能なデータ形式（ＩＥＥＥ１２８４ＩＤ内に対応言語として記載されるデータ形式）
（Ｂ）後述するＳ４８において変換可能なデータ形式
【００５６】
一方、プリントプログラム６５は、上記（Ａ）、（Ｂ）の少なくとも１つをサポートしていると判断したことに応じて（Ｓ３６：Ｙｅｓ）、プリンタ１０Ａに対応付けた共有フォルダを通信ネットワーク１０１に公開する（Ｓ３７）。ここで公開される共有フォルダは、例えば、図８（Ｂ）に示される親フォルダと、親フォルダの下の階層の印刷データフォルダ及び退避フォルダとを含む。Ｓ３７の処理は、公開処理の一例である。なお、このフォルダ名は、前述のＵＲＬとの関連がある名称とする。すなわちこのフォルダ名は、ＵＳＢの接続順や接続されたソケットに依存せず、且つ同一のプリンタ１０を接続した際には同一の名称で公開される。
【００５７】
これにより、フォルダ名と先のＵＲＬとの対応が容易に判断できる。この共有フォルダは、図９のフォルダアイコン１３２に付加された文字列“プリンタＡ印刷データフォルダ”、フォルダアイコン１３３に付加された文字列“プリンタＡ退避フォルダ”に対応する。次に、プリントプログラム６５は、接続されたプリンタ１０を、ＣＵＰＳサーバ４３及びＳＭＢサーバ４１の機能を使用して、共有プリンタに設定する。この共有プリンタは、図９のキューアイコン１３１に対応する。
【００５８】
次に図３に戻って、プリントプログラム６５は、Ｓ１４〜Ｓ１８のいずれかを実行したことに応じて、ＵＳＢデバイスの接続及び切断をＵＳＢ−Ｉ／Ｆ５６を通じて再び監視する（Ｓ１１、Ｓ１２）。すなわち、プリントプログラム６５は、ＵＳＢ−Ｉ／Ｆ５６を通じてプリンタ１０が接続される度に、当該プリンタ１０に対応付けられた共有フォルダを通信ネットワーク１０１に公開する。
【００５９】
また、プリントプログラム６５は、ＵＳＢ−Ｉ／Ｆ５６を通じて接続されたプリンタ１０を共有プリンタとして公開したことに応じて、プリント処理を実行する。プリント処理は、情報処理端末２０からファイル或いはプリントデータを取得し、取得したファイル或いはプリントデータを対象とするプリント動作をプリンタ１０に実行させる処理である。図５を参照して、プリント処理の詳細を説明する。
【００６０】
まず、プリントプログラム６５は、ＬＡＮ−Ｉ／Ｆ５５を通じて情報処理端末２０からファイル或いはプリントデータを受信するまで待機する（Ｓ４１）。「ファイルを受信する」とは、Ｓ３７で公開した印刷データフォルダに対して、情報処理端末２０のファイル管理プログラム等を使用してファイルがコピーされたこと、或いはＣＵＰＳサーバ４３により公開された共有プリンタキュー或いはＴＣＰプロトコルのポート番号９１００に対して、情報処理端末２０からプリントデータが送信されること等を指す。なお、ポート番号９１００に対するプリント動作の指示は、予め設定された特定の一種類のプリンタ１０に対してのみ作用する。
【００６１】
次に図８及び図９を参照して、情報処理端末２０がプリントサーバ５０にファイル或いはプリントデータを送信する手順の一例を説明する。なお、プリントサーバ５０には、プリンタ１０Ａ、１０Ｂが接続されているものとする。
【００６２】
まず、情報処理端末２０のファイル管理プログラムは、図８（Ａ）に示されるように、通信ネットワーク１０１に接続されたデバイスに対応するデバイスアイコン１１１、１１２、１１３を含む一覧画面をディスプレイに表示させる。デバイスアイコン１１１はプリントサーバ５０に対応し、デバイスアイコン１１２は情報処理端末２０Ａに対応し、デバイスアイコン１１３は情報処理端末２０Ｂに対応する。デバイスアイコン１１１〜１１３には、例えば、対応するデバイスのデバイス名（例えば、ＮｅｔＢＩＯＳ名）を示す文字列が付加される。
【００６３】
次に、ファイル管理プログラムは、例えば、デバイスアイコン１１１に対する左クリック操作を受け付けたことに応じて、図８（Ｂ）に示されるように、プリントサーバ５０が公開した親フォルダに対応するフォルダアイコン１２１、１２２を含む一覧画面をディスプレイに表示させる。フォルダアイコン１２１はプリンタ１０Ａの親フォルダに対応し、フォルダアイコン１２２はプリンタ１０Ｂの親フォルダに対応する。フォルダアイコン１２１、１２２には、例えば、対応するプリンタ１０Ａ、１０ＢのデバイスＩＤを示す文字列“プリンタＡ”、“プリンタＢ”が付加される。すなわち、図８（Ｂ）に示されるフォルダ名も、ＵＳＢの接続順や接続されたソケットに依存せず、且つ同一のプリンタ１０を接続した際には同一の名称で公開される。
【００６４】
次に、ファイル管理プログラムは、例えば、フォルダアイコン１２１に対する左クリック操作を受け付けたことに応じて、図９に示されるように、キューアイコン１３１と、フォルダアイコン１３２、１３３とを含む一覧画面１３０をディスプレイに表示させる。キューアイコン１３１は、共有プリンタとして公開されたプリンタ１０Ａに対応する。フォルダアイコン１３２はプリンタ１０Ａの印刷データフォルダに対応し、フォルダアイコン１３３はプリンタ１０Ａの退避フォルダに対応する。
【００６５】
また、ファイル管理プログラムは、図９に示されるように、ファイルアイコン１４１、１４２、１４３を含む一覧画面１４０を、ディスプレイ上の一覧画面１３０と別の領域に表示させることができる。ファイルアイコン１４１〜１４３は、情報処理端末２０のメモリに記憶されているファイルに対応する。ファイルアイコン１４１〜１４３には、対応するファイルのファイル名を示す文字列が付加される。
【００６６】
図９の例において、ファイルアイコン１４１に対応するファイル“写真．ＪＰＧ”は、プリンタ１０により直接印刷不可で、且つＳ４８で変換可能とする。また、ファイルアイコン１４２に対応するファイル“テキスト．ＰＤＦ”は、プリンタ１０により直接印刷可能とする。さらに、ファイルアイコン１４３に対応するファイル“報告書．ＤＯＣ”は、プリンタ１０により直接印刷不可で、且つＳ４８で変換不可とする。
【００６７】
まず、ファイル“報告書．ＤＯＣ”を印刷する場合について説明する。ユーザがファイルアイコン１４３をマウスにてダブルクリックすると、そのファイルに関連付けられたアプリケーションが起動され、ファイル“報告書．ＤＯＣ”が読み込まれる。さらに、ユーザは、起動したアプリケーションを操作して印刷を指示すると、アプリケーションは当該プリンタ１０に対応する不図示のプリンタドライバを呼び出して、対応するプリントデータを生成する。この作成されたプリントデータはポート番号９１００或いは対応する共有プリンタキューに対して送信される。
【００６８】
一方、ファイル管理プログラムは、例えば、ファイルアイコン１４１をフォルダアイコン１３２の位置に移動させるドラッグ操作を受け付けたことに応じて、ファイルアイコン１４１に対応付けられたファイル“写真．ＪＰＧ”を、プリントデータに変換せずに、通信ネットワーク１０１に公開されたプリンタ１０Ａの印刷データフォルダに書き込む。ファイルアイコン１４２、１４３をフォルダアイコン１３２の位置に移動させるドラッグ操作がなされた場合も、対応するファイルが印刷データフォルダに書き込まれる。
【００６９】
次に図５に戻って、プリントプログラム６５は、ＬＡＮ−Ｉ／Ｆ５５を通じて情報処理端末２０からプリントデータを受信したことに応じて（Ｓ４１：Ｙｅｓ＆Ｓ４２：共有プリンタ）、後述する“ＵＳＴＡＴＵＳ  ＤＥＶＩＣＥ”コマンドを打ち消すコマンドを、受信したプリントデータから削除する（Ｓ４３）。なお、当該コマンドがプリンデータに含まれていない場合は、Ｓ４３の処理はスキップされる。このＳ４３の処理により、プリントデータ中にステータス情報の送信を停止する情報があったとしても、ステータスモニタの機能を継続できる。
【００７０】
そして、プリントプログラム６５は、当該プリントデータをプリンタＡに対応付けられたＲＡＷポートキューに登録する（Ｓ４４）。そして、ＣＵＰＳサーバ４３は、ＲＡＷポートキューに登録されたプリントデータを対象とするプリント動作を、プリンタ１０Ａに実行させる。Ｓ４４の処理は、プリント指示処理の一例である。
【００７１】
一方、プリントプログラム６５は、通信ネットワーク１０１に公開されたプリンタ１０Ａの印刷データフォルダにファイル“写真．ＪＰＧ”が書き込まれたことに応じて（Ｓ４１：Ｙｅｓ＆Ｓ４２：共有フォルダ）、当該ファイルをメモリ６２（すなわち、プリンタ１０Ａの印刷データフォルダ）から読み出す。この処理は、第１取得処理の一例である。次に、プリントプログラム６５は、取得したファイル“写真．ＪＰＧ”が印刷可能形式か否かを判断する（Ｓ４５）。印刷可能形式とは、例えば、プリントプログラム６５がプリントデータに変換可能な予め定められたファイル形式を指す。Ｓ４５の処理は、第３判断処理の一例である。
【００７２】
次に、プリントプログラム６５は、取得したファイル“写真．ＪＰＧ”が印刷可能形式だと判断したことに応じて（Ｓ４５：Ｙｅｓ）、プリンタ１０Ａのデバイスレコードのデータステータスに“ＡＣＣＥＰＴ”を設定する（Ｓ４６）。また、プリントプログラム６５は、取得したファイル“写真．ＪＰＧ”がプリンタ対応形式か否かを判断する（Ｓ４７）。Ｓ４７の処理は、第２判断処理の一例である。
【００７３】
次に、プリントプログラム６５は、取得したファイル“写真．ＪＰＧ”がプリンタ対応形式でないと判断したことに応じて（Ｓ４７：Ｎｏ）、取得したファイル“写真．ＪＰＧ”を、プリンタ情報で示されるプリンタ言語で記述されたプリントデータに変換する（Ｓ４８）。ここで生成されるプリントデータは、ファイル“写真．ＪＰＧ”を対象とするプリント動作を、プリンタ１０Ａのデバイスレコードに含まれる実行パラメータ“Ａ４”、“普通紙”、“カラー”に従って実行させるためのデータである。Ｓ４８の処理は、変換処理の一例である。
【００７４】
そして、プリントプログラム６５は、Ｓ４８で生成したプリントデータを、Ｓ４２でファイルを取得した印刷データフォルダに対応するプリンタ１０ＡのＲＡＷポートキューに登録する（Ｓ４９）。次に、プリントプログラム６５は、印刷データフォルダに書き込まれたファイル“写真．ＪＰＧ”を退避フォルダに移動させ（Ｓ５０）、プリンタ１０Ａのデータステータスに“ＩＤＬＥ”を設定する（Ｓ５１）。Ｓ４９の処理はプリント指示処理の一例であり、Ｓ５０の処理は退避処理の一例である。
【００７５】
他の例として、通信ネットワーク１０１に公開されたプリンタ１０Ａの印刷データフォルダにファイル“テキスト．ＰＤＦ”が書きこまれた場合、プリントプログラム６５は、取得したファイル“テキスト．ＰＤＦ”が印刷可能形式で且つプリンタ対応形式だと判断して（Ｓ４５：Ｙｅｓ＆Ｓ４７：Ｙｅｓ）、Ｓ４８の処理をスキップして、取得したファイル及びプリンタ１０Ａの実行パラメータをプリンタ１０ＡのＲＡＷポートキューに登録する（Ｓ４９）。
【００７６】
なお、ＰＤＦ形式のファイルには、実行パラメータの一部（例えば、項目“サイズ”の実行パラメータ）が含まれている。そして、ＰＤＦ形式のファイルに含まれる実行パラメータは、デバイスレコードに含まれる実行パラメータより優先して適用される。すなわち、プリントプログラム６５は、プリンタ１０Ａのデバイスレコードに含まれる実行パラメータ“Ａ４”、“普通紙”、“カラー”のうち、ファイル“テキスト．ＰＤＦ”に含まれない項目（例えば、“用紙種”、“色”）の実行パラメータ“普通紙”、“カラー”をファイル“テキスト．ＰＤＦ”に付加して、ＲＡＷポートキューに登録する。
【００７７】
さらに他の例として、ファイル “報告書．ＤＯＣ”が通信ネットワーク１０１に公開されたプリンタ１０Ａの印刷データフォルダに書きこまれた場合、プリントプログラム６５は、取得したファイル“報告書．ＤＯＣ”が印刷可能形式でないと判断して（Ｓ４５：Ｎｏ）、データステータスに“ＲＥＦＵＳＥ”を設定して（Ｓ５２）、Ｓ４６〜Ｓ４９の処理をスキップして、Ｓ５０以降の処理を実行する。
【００７８】
次に図６を参照して、モニタ処理の詳細を説明する。まず、モニタプログラム６６は、プリンタ１０ＡのデバイスレコードからＵＲＬを読み出す。ここで読み出されるＵＲＬは、プリンタ１０Ａがプリントサーバ５０に初めて接続された際に、Ｓ３３で生成されたものである。すなわち、プリントサーバ５０に対してプリンタ１０Ａが接続される度に、同一のＵＲＬが読み出される。
【００７９】
次に、モニタプログラム６６は、プリンタ１０Ａのステータを記述したスＨＴＭＬデータを、読み出したＵＲＬで示されるメモリ領域に記憶させる（Ｓ６１）。モニタプログラム６６は、例えば、メモリ６２に予め記憶されたテンプレートＨＴＭＬをＵＲＬで示されるメモリ領域にコピーし、コピーしたテンプレートＨＴＭＬにプリンタ１０のステータス情報及び実行パラメータを設定する。また、モニタプログラム６６は、プリンタ１０Ａが特定言語“ＰＪＬ”を解読可能か否かを判断する（Ｓ６２）。ＰＪＬを解読可能か否かは、ＵＳＢプリンタクラス仕様に規定されたプリンタ１０のＩＥＥＥ１２８４ＩＤを読み取ることにより判断できる。
【００８０】
例えば、プリンタ１０Ａに対応付けられたモニタプログラム６６のスレッドは、プリンタ１０Ａがプリンタ言語“ＰＪＬ”を解読可能だと判断したことに応じて（Ｓ６２：Ｙｅｓ）、プリンタ言語“ＰＪＬ”に規定された“ＩＮＦＯ  ＤＥＶＩＣＥ”コマンドと、“ＵＳＴＡＴＵＳ  ＤＥＶＩＣＥ”コマンドとを、ＵＳＢ−Ｉ／Ｆ５６を通じてプリンタ１０Ａに送信する（Ｓ６３）。“ＩＮＦＯ  ＤＥＶＩＣＥ”コマンドは、現在のプリンタステータスの送信を指示する第１指示情報の一例である。“ＵＳＴＡＴＵＳ  ＤＥＶＩＣＥ”コマンドは、プリンタステータスが変化したタイミングで当該プリンタステータスの送信を指示する第２指示情報の一例である。
【００８１】
次に、モニタプログラム６６は、プリンタステータスを受信するか、プリンタ１０Ａの切断を検出するまで待機するまで（Ｓ６５：Ｎｏ＆Ｓ６７：Ｎｏ）、プリンタステータスの送信をプリンタ１０Ａに所定の時間間隔で繰り返し要求する（Ｓ６４）。そして、モニタプログラム６６は、ＵＳＢ−Ｉ／Ｆ５６を通じてプリンタ１０Ａからプリンタステータスを受信したことに応じて（Ｓ６５：Ｙｅｓ）、受信したプリンタステータスでプリンタ１０Ａのデバイスレコードのステータス情報を更新する。
【００８２】
なお、プリンタ１０Ａから受信するプリンタステータスは、ＰＪＬの規約に準拠したフォーマットのテキストデータである。そこで、モニタプログラム６６は、Ｓ６５で受信したプリンタステータスを、当該プリンタステータスで示されるプリンタ１０Ａの状態を表す文字列に変換する。そして、モニタプログラム６６は、プリンタ１０ＡのステータスＨＴＭＬに変換した文字列を設定する（Ｓ６８）。
【００８３】
次に、モニタプログラム６６は、Ｓ６５で受信したプリンタステータスが特定ステータスか否かを判断する（Ｓ６９）。特定ステータスとは、例えば、ユーザが解消可能なステータス、解消しないとプリント動作を継続できないステータス等の予め定められたプリンタステータス（例えば、紙無し、紙詰まり、インク無し等）である。そして、モニタプログラム６６は、特定ステータスだと判断したことに応じて（Ｓ６９：Ｙｅｓ）、当該ステータスを示す音声をスピーカ５７に出力させる（Ｓ７０）。一方、モニタプログラム６６は、特定ステータスでないと判断したことに応じて（Ｓ６９：Ｎｏ）、Ｓ７０の処理をスキップする。そして、モニタプログラム６６は、Ｓ６４以降の処理を再び実行する。
【００８４】
また、モニタプログラム６６は、ＵＳＢ−Ｉ／Ｆ５６を通じてプリンタ１０Ａの切断を検出したことに応じて（Ｓ６７：Ｙｅｓ）、プリンタ１０Ａのデバイスレコードのプリンタステータス、及びＨＴＭＬデータに記述されたプリンタステータスを“ＯＦＦＬＩＮＥ”に変更する（Ｓ７１）。そして、モニタプログラム６６は、Ｓ７１の処理を実行してから一定時間（例えば、３０秒）が経過したことに応じて、プリンタ１０ＡのステータスＨＴＭＬを、メモリ６２から削除する（Ｓ７２）。そして、プリンタ１０Ａに対応するモニタプログラム６６のスレッドは、処理を終了する（Ｓ７３）。
【００８５】
一方、プリンタ１０Ｂに対応付けられたモニタプログラム６６のスレッドは、プリンタ１０Ｂがプリンタ言語“ＰＪＬ”を解読不能だと判断したことに応じて（Ｓ６２：Ｎｏ）、ＵＳＢのプリンタクラスのプリンタステータスを、ＵＳＢ−Ｉ／Ｆ５６を通じてプリンタ１０Ｂから受信する（Ｓ７４）。このＵＳＢプリンタクラスのプリンタステータスは、エラーの有無、用紙エラーの有無のみを示すビット列である。モニタプログラム６６は、Ｓ７４で受信したビット列を解析して、ステータスを示す文字列を生成する（Ｓ７５）。Ｓ７６〜Ｓ７７の処理は、前述のＳ６９〜Ｓ７０と同様である。そして、モニタプログラム６６は、ＵＳＢ−Ｉ／Ｆ５６を通じてプリンタ１０Ｂの切断を検出するまで（Ｓ７８：Ｎｏ）、Ｓ７４〜７７の処理を所定の時間間隔（例えば、１秒）で繰り返し実行する。さらに、モニタプログラム６６は、ＵＳＢ−Ｉ／Ｆ５６を通じてプリンタ１０Ｂの切断を検出したことに応じて（Ｓ７８：Ｙｅｓ）、前述したＳ７１〜Ｓ７３の処理を実行する。
【００８６】
また図示は省略するが、モニタプログラム６６は、Ｓ４６、Ｓ５１、Ｓ５２でデバイスレコードのデータステータスが変更される度に、変更後のデータステータスを示す文字列を対応するステータスＨＴＭＬに設定する。さらに図示は省略するが、モニタプログラム６６は、後述するＳ８８でデバイスレコードの実行パラメータが変更される度に、変更後の実行パラメータを示す文字列を対応するステータスＨＴＭＬに設定する。すなわち、情報処理端末２０のブラウザプログラムにおいて、ステータスＨＴＭＬで示される画面を表示している場合、定常時はその時点のプリンタステータスが表示され、プリンタ１０が電源ＯＦＦあるいはＵＳＢケーブルが取り外された場合は、一定時間“ＯＦＦＬＩＮＥ”が表示された後にページが無くなる。
【００８７】
また、モニタプログラム６６は、モニタ処理と並行してステータス通知処理を実行する。ステータス通知処理は、モニタ処理で更新したステータスＨＴＭＬを情報処理端末２０に送信し、情報処理端末２０から送信された実行パラメータを対応するデバイスレコードに登録する処理である。この処理は、ＨＴＭＬデータ及び当該ＨＴＭＬデータに埋め込まれたＣＧＩプログラムに基づいてＷＥＢサーバ４２によって実行されるものであるが、ここでは機能説明のために本発明の機能を分離した形で模式的に図７を参照して、ステータス通知処理の詳細を説明する。
【００８８】
まず、モニタプログラム６６は、一覧ページ要求情報、個別ステータス要求情報、或いは登録要求情報を、ＬＡＮ−Ｉ／Ｆ５５を通じて情報処理端末２０から受信するまで待機する（Ｓ８１、Ｓ８２、Ｓ８３）。一覧ページ要求情報は、図１０（Ａ）に示される一覧ページを示すＨＴＭＬデータ（以下、「一覧ＨＴＭＬ」と表記する。）の送信を要求するＨＴＴＰリクエストである。個別ステータス要求情報は、ステータスＨＴＭＬの送信を要求するＨＴＴＰリクエストである。登録要求情報は、実行パラメータをデバイスレコードへの登録を要求するＨＴＴＰリクエストである。
【００８９】
次に、モニタプログラム６６は、ＬＡＮ−Ｉ／Ｆ５５を通じて情報処理端末２０から一覧ページ要求情報を受信したことに応じて（Ｓ８１：Ｙｅｓ）、現時点でメモリ６２に記憶されているデバイスリストに基づいて一覧ＨＴＭＬを生成する（Ｓ８４）。そして、モニタプログラム６６は、Ｓ８４で生成したＨＴＭＬを一覧ページ要求情報の応答として、ＬＡＮ−Ｉ／Ｆ５５を通じて情報処理端末２０に送信する（Ｓ８５）。
【００９０】
より詳細には、モニタプログラム６６は、デバイスリストに登録されたデバイスレコードそれぞれに対応するデバイスアイコン１５１、１５２を一覧ＨＴＭＬに含める。また、デバイスアイコン１５１、１５２には、対応するデバイスレコードのプリンタステータスを示す文字列が記述される。さらに、デバイスアイコン１５１、１５２に対応する＜ａ＞タグの“ｈｒｅｆ”属性には、対応するデバイスレコードのＵＲＬが設定される。
【００９１】
一方、情報処理端末２０のブラウザプログラムは、プリントサーバ５０から受信した一覧ＨＴＭＬに従って、図１０（Ａ）に示される一覧ページをディスプレイに表示させる。そして、ブラウザプログラムは、例えば、デバイスアイコン１５１に対する左クリック操作を受け付けたことに応じて、個別ステータス要求情報をプリントサーバ５０に送信する。ここで送信される個別ステータス要求情報は、デバイスアイコン１５１に対応する＜ａ＞タグの“ｈｒｅｆ”属性に設定されたＵＲＬ−Ａで所在が示されるステータスＨＴＭＬの送信を要求するための情報である。
【００９２】
次に、モニタプログラム６６は、ＬＡＮ−Ｉ／Ｆ５５を通じて情報処理端末２０から個別ステータス要求情報を受信したことに応じて（Ｓ８２：Ｙｅｓ）、要求されたステータスＨＴＭＬをＣＧＩ機能により生成する（Ｓ８６）。そして、モニタプログラム６６は、読み出したステータスＨＴＭＬを個別ステータス要求情報の応答として、ＬＡＮ−Ｉ／Ｆ５５を通じて情報処理端末２０に送信する（Ｓ８７）。
【００９３】
一方、情報処理端末のブラウザプログラムは、プリントサーバ５０から受信したステータスＨＴＭＬに従って、ステータスページをディスプレイに表示させる。ステータスページは、例えば図１０（Ｂ）に示されるように、プリンタ１０Ａのデバイスレコードに含まれるステータス情報を示す文字列“ＲＥＡＤＹ”、“ＩＤＬＥ”と、プルダウンメニュー１６１、１６２、１６３と、［変更］アイコン１６４とを含む。
【００９４】
プルダウンメニュー１６１〜１６３は、プリント動作の実行条件を構成する複数の項目“サイズ”、“用紙種”、“色”に対応する実行パラメータを、ユーザに指定させるためのオブジェクトである。最初に表示されるプルダウンメニュー１６１〜１６３には、プリンタ１０Ａのデバイスレコードに含まれる実行パラメータ“Ａ４”、“普通紙”、“カラー”が指定された状態になっている。
【００９５】
また、項目“サイズ”に対応するプルダウンメニュー１６１は、実行パラメータの候補“Ａ４”、“Ｂ５、“ハガキ”に対応する３つの選択肢を有する。項目“用紙種”に対応するプルダウンメニュー１６２は、実行パラメータの候補“普通紙”、“光沢紙”に対応する２つの選択肢を有する。項目“色”に対応するプルダウンメニュー１６３は、実行パラメータの候補“カラー”、“モノクロ”に対応する２つの選択肢を有する。
【００９６】
そして、ブラウザプログラムは、プルダウンメニュー１６１〜１６３で指定された実行パラメータの変更を受け付けたことに応じて、変更後の実行パラメータをプルダウンメニュー１６１〜１６３に表示させる。また、ブラウザプログラムは、［変更］アイコン１６４に対する左クリック操作を受け付けたことに応じて、プリントサーバ５０に登録要求情報を送信する。登録要求情報は、プルダウンメニュー１６１〜１６３に表示された実行パラメータを含む。登録要求情報の送信は、例えば、ＨＴＴＰに規定されたＰＯＳＴメソッドによって実現される。
【００９７】
次に、モニタプログラム６６は、ＬＡＮ−Ｉ／Ｆ５５を通じて情報処理端末２０から登録要求情報を受信したことに応じて（Ｓ８３：Ｙｅｓ）、受信した登録要求情報に含まれる実行パラメータで、プリンタ１０Ａのデバイスレコードの実行パラメータを上書きする（Ｓ８８）。そして、モニタプログラム６６は、Ｓ８５、Ｓ８７、Ｓ８８のいずれかを実行したことに応じて、ＬＡＮ−Ｉ／Ｆ５５を通じて情報処理端末２０からＨＴＴＰリクエストを受信するまで再び待機する（Ｓ８１〜Ｓ８３）。
【００９８】
［本実施形態の作用効果］
上記の実施形態によれば、情報処理端末２０のユーザは、プリントサーバ５０が公開した共有フォルダに、ファイル共有プロトコルを用いて所望のファイルを書き込むだけで、当該ファイルを対象とするプリント動作をプリンタ１０に実行させることができる。すなわち、ファイル共有プロトコルをサポートしている情報処理端末２０であれば、プリンタドライバがインストールされていなくてもプリンタ１０を利用することができる。
【００９９】
また、上記の実施形態によれば、プリントサーバ５０がサポートするプリンタ言語を解読可能なプリンタ１０が接続されたことに応じて、共有フォルダが情報処理端末２０に公開される。一方、プリントサーバ５０がサポートしていないプリンタ言語のみを解読可能なプリンタ１０が接続された場合、当該プリンタ１０に対応する共有フォルダは公開されない。しかしながら、当該プリンタ１０は共有プリンタとしては公開されるので、情報処理端末２０のＯＳが変換したプリントデータを対象とするプリント動作を、当該プリンタ１０に実行させることができる。
【０１００】
また、上記の実施形態によれば、共有フォルダに書き込まれたファイルがプリンタ対応形式でない場合に、当該ファイルがプリントデータに変換されてプリンタ１０に送信される。これにより、プリンタドライバがインストールされていない情報処理端末２０とプリンタ１０との間の通信を、適切に中継することが可能となる。
【０１０１】
また、上記の実施形態では、印刷データフォルダにコピーすることにより印刷されたファイルは、退避フォルダにコピーされる。したがって、情報処理端末２０のユーザは、退避フォルダを開き、その中に記憶されたファイルを再度印刷データフォルダにドラッグ＆ドロップすることにより、容易にリプリントを行うことができる。この退避フォルダされたファイルは一定時間経過後に、プリントプログラム６５或いはモニタプログラム６６によって削除されてもよい。
【０１０２】
また、上記の実施形態では、ＰＪＬをサポートしていないプリンタ１０Ｂが接続された場合には、ＵＳＢプリンタクラスにより規定されたプリンタステータスを用いるようにしている。これは、プリンタクラスのＵＳＢデバイスならば必ず装備されている機能だからである。このため、本実施形態のプリントサーバ５０は、汎用的に使用できるとともに、ＰＪＬをサポートしたプリンタ１０Ａが接続された場合にはより細かいステータス情報を提供できる。
【０１０３】
また、プリントサーバ５０は、情報処理端末２０が共有フォルダに書き込み得るあらゆる形式のファイルを、プリントデータに変換できるとは限らない。そこで上記の実施形態のように、共有フォルダに書き込まれたファイルの形式が印刷可能形式か否かを事前に判断することによって、プリント指示処理におけるプリンタ１０の誤動作を抑制することができる。
【０１０４】
また、上記の実施形態によれば、プリントサーバ５０に接続された複数のプリンタ１０Ａ、１０Ｂのうち、ファイルが書き込まれた共有フォルダに対応するプリンタ１０Ａにプリント動作を実行させることができる。すなわち、情報処理端末２０のユーザにとっては、プリントサーバ５０が公開した複数の共有フォルダのうち、所望のプリンタ１０Ａに対応付けられた共有フォルダにファイルを書き込めばよいので、プリンタ１０Ａを簡単に利用することができる。
【０１０５】
なお、プリントサーバ５０は、１台のプリンタ１０に対応付けられた複数の印刷データフォルダを通信ネットワーク１０１に公開してもよい。また、複数の印刷データフォルダそれぞれには、異なる実行パラメータが対応付けられていてもよい。すなわち、１つのデバイスレコードは、複数の実行パラメータを含んでいてもよい。そして、プリントプログラム６５は、ファイルの取得元の印刷データフォルダに対応付けられた実行パラメータに従って、プリンタ１０にプリント動作を実行させてもよい。
【０１０６】
上記の変形例によれば、情報処理端末２０のユーザは、プリントサーバ５０が公開した複数の印刷データフォルダのうち、所望の実行パラメータに対応付けられた印刷データフォルダにファイルを書き込むだけで、所望の実行パラメータに従ったプリント動作をプリンタ１０に簡単に実行させることができる。
【０１０７】
また、上記の実施形態によれば、プリンタ１０と通信するためのプロトコルをサポートしていない情報処理端末２０に、ＨＴＴＰを用いてステータスＨＴＭＬが送信される。すなわち、専用のステータスモニタを情報処理端末２０にインストールすることなく、情報処理端末２０にプリンタ１０の状態を通知することが可能となる。また、図６に示されるモニタ処理によれば、ＰＪＬをサポートするプリンタ１０Ａのみならず、ＰＪＬをサポートしていないプリンタ１０Ｂのステータスも取得することができる。さらに、上記の実施形態によれば、情報処理端末２０から指示されたプリント動作の状況を、データステータスとしてさらに通知することができる。
【０１０８】
なお、ステータスＨＴＭＬには、例えば、＜ｍｅｔａ＞タグの“ｈｔｔｐ−ｅｑｕｉｖ”属性に“ｒｅｆｒｅｓｈ”が設定されていていることが望ましい。これにより、ブラウザプログラムは、＜ｍｅｔａ＞タグの“ｃｏｎｔｅｎｔ”属性に設定された時間が経過したことに応じて、当該ステータスＨＴＭＬをプリントサーバ５０から自動的に再取得する。これにより、上記構成のように、ステータスＨＴＭＬの更新タイミング（Ｓ６８、Ｓ７５等）と、ステータスＨＴＭＬの送信タイミング（Ｓ８７）とが非同期の場合でも、プリンタステータスの変化を情報処理端末２０のユーザに適切に通知することができる。
【０１０９】
また、上記の実施形態では、データステータスをステータスＨＴＭＬに書き込み、個別ステータス要求情報を受信したタイミングで当該ステータスＨＴＭＬが送信される。しかしながら、情報処理端末２０へのデータステータスの送信タイミングは、前述の例に限定されない。他の例として、モニタプログラム６６は、プリントプログラム６５がデータステータスを書き換えたタイミング（Ｓ４６、Ｓ５１、Ｓ５２）で、書き換えられたデータステータスを示す文字列を、ＬＡＮ−Ｉ／Ｆ５５を通じて情報処理端末２０に送信してもよい。この場合において、Ｓ４６の処理は第１通知処理の一例であり、Ｓ５２の処理は第２通知処理の一例である。これにより、データステータスの変化を情報処理端末２０のユーザにリアルタイムに認識させることができる。
【０１１０】
また、上記の実施形態によれば、プリンタ１０Ａ、１０Ｂ毎に発行されたＵＲＬに対応付けて、当該プリンタ１０Ａ、１０Ｂの状態を示すステータスＨＴＭＬがメモリ６２に記憶される。また、ＵＲＬを指定した個別ステータス要求情報の応答として、当該ＵＲＬに対応付けられたステータスＨＴＭＬが情報処理端末２０に送信される。これにより、プリントサーバ５０に接続された複数のプリンタ１０Ａ、１０Ｂのうち、情報処理端末２０のユーザが所望するプリンタ１０Ａの状態を選択的に通知することができる。
【０１１１】
また、上記の実施形態によれば、プリントサーバ５０に対してプリンタ１０が接続及び切断を繰り返したとしても、当該プリンタ１０のステータスＨＴＭＬの所在を示すＵＲＬが変更されない。これにより、例えば情報処理端末２０が頻繁に利用するプリンタ１０ＡのＵＲＬ−Ａをブックマークしておけば、一覧ページを経由しなくてもプリンタ１０Ａのステータスページにアクセスすることが可能になる。
【０１１２】
また、プリントサーバ５０は、プリンタ１０の近くに設置されるのが一般的である。一方、情報処理端末２０は、プリンタ１０の近くに設置されるとは限らない。そこで、プリントサーバ５０に接続されたスピーカ５７を通じてプリンタ１０の特定ステータスを報知することによって、特定ステータスに応じた処理をプリンタ１０の近くにいるユーザが実行することが期待できる。
【０１１３】
なお、上記の実施形態では、プリンタ１０及びプリントサーバ５０がＵＳＢケーブル１０２で接続されている例を説明したが、プリントサーバ５０はプリンタ１０に内蔵されていてもよい。より詳細には、プリントプログラム６５及びモニタプログラム６６は、プリンタ１０に搭載されたＣＰＵによって実行されてもよい。すなわち、プリント動作を実現する構成要素（例えば、搬送ローラ、記録ヘッド等）と、プリントサーバ５０の機能を実現する構成要素（例えば、ＣＰＵ、メモリ等）とは、プリンタ１０の内部バスによって接続されていてもよい。
【０１１４】
また、上記の実施形態のプリントサーバ５０において、メモリ６２に記憶された各種プログラムがＣＰＵ６１によって実行されることによって、本発明のコントローラが実行する各処理が実現される例を説明した。しかしながら、コントローラの構成はこれに限定されず、その一部又は全部を集積回路等のハードウェアで実現してもよい。
【０１１５】
さらに、本発明は、プリントサーバ５０として実現できるだけでなく、プリントサーバ５０に処理を実行させるプログラムとして実現してもよい。そして、当該プログラムは、ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな記録媒体に記録されて提供されてもよい。ｎｏｎ−ｔｒａｎｓｉｔｏｒｙな記録媒体は、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ等の他、通信ネットワーク１０１を通じてプリントサーバ５０に接続可能なサーバに搭載されたメモリを含んでもよい。そして、サーバのメモリに記憶されたプログラムは、当該プログラムを示す情報或いは信号として、インターネット等の通信ネットワークを通じて配信されてもよい。
【符号の説明】
【０１１６】
１０・・・プリンタ
２０・・・情報処理端末
５０・・・プリントサーバ
５５・・・ＬＡＮ−Ｉ／Ｆ
５６・・・ＵＳＢ−Ｉ／Ｆ
６１・・・ＣＰＵ
６２・・・メモリ
６５・・・プリントプログラム
６６・・・モニタプログラム
【図１】
2018106362.tif 000003
【図２】
2018106362.tif 000004
【図３】
2018106362.tif 000005
【図４】
2018106362.tif 000006
【図５】
2018106362.tif 000007
【図６】
2018106362.tif 000008
【図７】
2018106362.tif 000009
【図８】
2018106362.tif 000010
【図９】
2018106362.tif 000011
【図１０】
2018106362.tif 000012