以下,本発明の実施の形態を添付図面を参照しながら説明する。尚,各図において対応する構成要素には同一の符号が付され,重複する説明は省略される。
1.構成
図1は本発明の一実施形態としての印刷システムを示すブロック図である。印刷システムは,登録されたプリンター4,5に対応付けられた電子メールアドレスに電子メールを送信することによって電子メールの本文および添付ファイルを印刷できるクラウドコンピューティングシステムとして構成され,印刷制御サーバー1と,複数のプリンター4,5とを備えている。
本実施形態の印刷制御サーバー1は,SMTPサーバー101,データ変換サービスアプリケーション(AP)サーバー102,データ変換サーバー103,XMPPサーバー104,プリンター通信APサーバー105,DBサーバー106,アカウント管理APサーバー107,HTTPサーバー108,コンテンツ管理APサーバー107,HTTPサーバー110とから構成される。
SMTPサーバー101は,電子メールを送受信する機能を有するサーバーである。
印刷依頼受信手段および誘導手段としてのデータ変換サービスAPサーバー102は,印刷依頼としてSMTPサーバー101が受信する電子メールから本文と添付ファイルを抽出し,データ変換サーバー103に本文と添付ファイルを印刷対象として引き渡す機能を有するアプリケーションサーバーである。
データ変換手段としてのデータ変換サーバー103はデータ変換APサーバー102から印刷対象として取得したファイルをプレビューデータまたは印刷データに変換する機能を有するサーバーである。
DBサーバー106はプリンター4,5の各種の情報を管理するとともに印刷データおよびプレビューデータを記憶するデータベースサーバーである。
XMPPサーバー104はプリンター4,5とXMPPを用いて通信することによって各種のパラメータを送受信する機能を有するサーバーである。
印刷データ送信手段としてのプリンター通信APサーバー105は,印刷待ち情報を生成する機能などを有するアプリケーションサーバーである。
印刷制御要求受付手段としてのアカウント管理APサーバー107はHTTPサーバー110と他のサーバーとを中継するアプリケーションサーバーであって、プリンター4,5を印刷システムに登録したり印刷制御ページを生成する機能を有する。
HTTPサーバー108はプリンター4,5とHTTPを用いて通信する機能を有するサーバーである。
コンテンツ管理APサーバー107はHTTPサーバー108と他のサーバーとを中継するアプリケーションサーバーであって,印刷ジョブをDBサーバー106から取得してHTTPサーバー108に引き渡す機能などを有する。
HTTPサーバー110はゲスト端末2,管理者端末3とHTTPを用いて通信する機能を有するサーバーである。
SMTPサーバー101,データ変換サービスAPサーバー102,データ変換サーバー103,XMPPサーバー104,プリンター通信APサーバー105,DBサーバー106,アカウント管理APサーバー107,HTTPサーバー108,コンテンツ管理APサーバー107,HTTPサーバー110のそれぞれは,図2Aに示すように,CPU11とRAM12とROM13とハードディスク装置(HDD)14と外部インターフェース(I/F)15とそれらを接続する内部インターフェース(I/F)16とを備える。ROM13には起動プログラムが格納されている。HDD14にはオペレーティングシステム(OS)や上記した各機能を実現するためのコンピュータープログラムが格納されている。これらのプログラムは,RAM12にロードされCPU11によって実行される。外部I/F15は,他のサーバーやプリンター4,5やゲスト端末2や管理者端末3等とインターネットを介して接続するためのインターフェースや周辺機器と接続するためのインターフェース等で構成されている。
プリンター4,5のそれぞれは,図2Bに示すように,コントローラー41と外部I/F42とユーザーI/F46と印刷エンジン43とこれらを接続する内部I/F47とを備える。コントローラー41は,CPUや不揮発性メモリやRAMやASIC等からなり,不揮発性メモリに記憶されている印刷プログラムを実行することによって印刷エンジン43の動作を制御するための処理を実行する。また,コントローラー41は,不揮発性メモリに記憶されているウェブサービスプログラムを実行することによって管理者端末3や印刷制御サーバー1と通信してプリンター4,5を印刷制御サーバー1に登録したり,印刷制御サーバー1から印刷データを取得するための処理を実行する。印刷エンジン43はインクジェット方式,レーザー方式など周知の印刷方式で印刷を実行するためのアクチュエーターやセンサーや駆動回路や機械部品を備えている。外部I/F42は,印刷制御サーバー1や管理者端末3とインターネットを介して接続するためのインターフェースを含む。ユーザーI/F46はディスプレイや操作キー等で構成された操作パネルである。
2.セットアップシーケンス
プリンター4,5は印刷制御サーバー1に登録されることによって,印刷システムに組み込まれ,印刷制御サーバー1で受け付ける印刷依頼に応じて印刷を実行することが可能になる。図3は印刷制御サーバー1にプリンター4,5を登録するためのセットアップシーケンスを示す図である。本実施形態では,プリンター4の所有者が所有するPC(Personal Computer)からなる管理者端末3を操作することによってプリンター4を印刷制御サーバー1に登録する例について説明する。
はじめに,ウェブブラウザ等を実行する管理者端末3がプリンター4とHTTPを用いて通信することによってプリンター4へセットアップ開始要求を送信する(S100)。例えば管理者端末3は,セットアップ開始要求として,DNSモード,プライマリDNS,セカンダリDNS,プロキシーモード,プロキシーサーバーのアドレス,および,プロキシーサーバーのポート番号をセットアップ開始要求に対応するプリンター4のURLにHTTPを用いて送信する。
セットアップ開始要求を取得したプリンター4は,登録処理を起動し,登録状態情報を管理者端末3にHTTPを用いて送信する(S102)。登録状態情報には,受信の成否(成功/失敗),DNSモード,プライマリDNS,セカンダリDNS,プロキシーモード,プロキシサーバーのアドレス,プロキシーサーバーのポート番号,ウェブサービスモード,URL,印刷制御サーバー1へのプリンター4の登録状態(登録済み/未登録),プリンター4に対応する管理ページのURL,プリンター4に対応する管理ページのログインパスワード,プリンター4に割り当てられた電子メールアドレス,HTTPサーバー108とプリンター4との接続状態,および,XMPPサーバー104とプリンター4との接続状態が含まれる。この段階では,印刷制御サーバー1へのプリンター4の登録はなされていないため,登録状態"未登録"を含む登録状態情報が管理者端末3に送信される。
登録状態情報を受信した管理者端末3は,受信した登録状態情報に基づいてセットアップステータスを画面表示する(S104)。この段階では,例えば,セットアップ中であることを示すテキストや画像が管理者端末3の画面にブラウザによって表示される。
セットアップ開始要求に応じて登録状態情報を送信したプリンター4は,プリンター4に対応する登録要求として,プリンター4の機種固有ID,プリンター4のシリアル番号および既存情報の削除フラグを,登録要求に対応するHTTPサーバー108のURLにHTTPを用いて送信する(S106)。
登録要求をHTTPサーバー108において取得した印刷制御サーバー1は,登録要求に基づいてプリンター4を印刷システムの出力機器として印刷制御サーバー1に登録する(S108)。
具体的には,HTTPサーバー108から登録要求のパラメーターを取得したアカウント管理APサーバー107が,プリンター4の機種固有IDおよびシリアル番号に対応する内部ID,XMPPログインパスワード,管理ページのURL,管理ページパスワードおよび電子メールアドレスを,DBサーバー106に既に登録されている他のプリンターの登録情報を参照しながらプリンター4に割り当てる。内部IDをプリンター4の機種固有IDおよびシリアル番号に基づいて割り当てることによって機種毎に異なる体系でシリアル番号がプリンターに割り振られている場合であっても,確実にプリンターの機体毎に異なる内部IDをプリンター4に割り当てることができる。管理ページは,DBサーバー106に記憶されているこれらの情報をHTTPを用いて編集するためのウェブページである。
そして,アカウント管理APサーバー107は,XMPPログインパスワード,管理ページのURL,管理ページパスワード,電子メールアドレスとを,プリンター4の機種固有IDおよびシリアル番号に対応する内部IDに対応付けてDBサーバー106にプリンター4の登録情報として記憶させる。
さらに,アカウント管理APサーバー107は,プリンター4に割り当てた電子メールアドレスをSMTPサーバー101に登録する。プリンター4に割り当てた電子メールアドレスをSMTPサーバー101に登録することによって,プリンター4を出力機器とする印刷依頼としての電子メールを印刷制御サーバー1が受信することが可能になる。
またアカウント管理APサーバー107は,プリンター4に割り当てた内部IDとXMPPログインパスワードとを対応付けてXMPPサーバー104に登録する。XMPPサーバー101がプリンター4とXMPPを用いて通信するためのXMPP JIDは,"内部ID"@"XMPPサーバー104のXMPPドメイン名"となる。プリンター4の内部IDとXMPPログインパスワードをXMPP接続情報としてXMPPサーバー104に登録することによって,プリンター4と印刷制御サーバー1とがXMPPを用いて通信することが可能になる。なお,負荷分散のために印刷制御サーバー1にXMPPサーバーを複数設ける場合には,プリンター毎に当該プリンターに対応するXMPPサーバーを割り当ててDBサーバー106に登録する必要がある。
プリンター4を印刷システムの出力機器として印刷制御サーバー1に登録したアカウント管理APサーバー107は,プリンター4の登録結果情報を,登録要求の送信元であるプリンター4にHTTPサーバー108を介して送信する(S110)。登録結果情報には,プリンター4に割り当てられた内部ID,XMPPログインパスワード,管理ページのURL,管理ページパスワード、電子メールアドレス,XMPPサーバー104のドメイン名および登録要求の受信の成否(成功/失敗)が含まれている。なお,負荷分散のために印刷制御サーバー1にXMPPサーバーを複数設ける場合には,プリンター4に割り当てられたXMPPサーバーのドメイン名をプリンター4に通知する必要があるが,印刷制御サーバー1に登録される全てのプリンターが通信するXMPPサーバーが共通である場合には,必ずしもXMPPサーバーのドメイン名をプリンター4に通知する必要はない。
登録結果情報をHTTPサーバー108から取得したプリンター4は,プリンター4に割り当てられた内部ID,XMPPログインパスワード,管理ページのURL,管理ページパスワードおよび電子メールアドレスおよびXMPPサーバー104のドメイン名を不揮発性メモリに記憶するとともに,内部IDおよびXMPPドメイン名からXMPP JIDを生成し,XMPP JIDおよびXMPPログインパスワードをXMPP接続情報としてXMPPサーバー104に送信する(S112)。
XMPP JIDおよびXMPPログインパスワードをプリンター4から取得したXMPPサーバー104は,プリンター4とXMPP接続を確立し,XMPP接続結果(成功/失敗)をプリンター4に送信する(S114)。このときXMPP接続に成功すると,プリンター4とXMPPサーバー104とのXMPP接続はプリンター4の電源が遮断されるまで継続する。
印刷制御サーバー1とのXMPP接続が確立されると,プリンター4はプリンター情報をHTTPサーバー108に送信する(S116)。プリンター情報は,プリンター4に割り当てられた内部ID,通信仕様のバージョン,プリンターのメニュータイプ情報(仕向け情報),プリンターのサブメニュータイプ情報(仕向け情報)およびプリンターの言語情報を含み,プリンター情報に対応するHTTPサーバー108のURLにHTTPを用いて送信される。言語情報等を含むプリンター情報を印刷制御サーバー1に送信することによって,プリンター4の仕向けに応じた登録レポート,印刷レポート等の印刷データを印刷制御サーバー1において生成することが可能になる。
プリンター4からプリンター情報をHTTPサーバー108が受信すると,コンテンツ管理APサーバー107は,プリンター情報を内部IDと対応付けてDBサーバー106に記憶させるとともに,受信結果(成功/失敗)を送信元のプリンター4に送信する(S118)。プリンター4のプリンター情報は,プリンター4とのXMPP接続が終了するまでDBサーバー106に記憶される。
プリンター情報の受信結果(成功)を受信したプリンター4は登録結果通知ジョブ作成依頼をHTTPサーバー108に送信する(S122)。登録結果通知ジョブは,プリンター4の印刷制御サーバー1への登録内容をプリンター4で印刷するための印刷ジョブである。具体的には内部IDが,登録結果通知ジョブ作成依頼として登録結果通知ジョブ作成依頼に対応するHTTPサーバー108のURLに送信される。
登録結果通知ジョブ作成依頼を受信したHTTPサーバー108は,受信結果(成功/失敗)を送信元のプリンター4に送信する(S124)。
HTTPサーバー108から登録結果通知ジョブ作成依頼の受信結果(成功)を送信すると,印刷制御サーバー1は登録レポートをプリンター4が印刷するための登録結果通知ジョブを生成する(S126)。具体的には次の通りである。まずコンテンツ管理APサーバー107は,登録結果通知ジョブ作成依頼からプリンター4の内部IDを取得し,取得した内部IDに関連づけて記憶されている管理ページのURL,管理ページパスワードおよび電子メールアドレス等,管理者端末3のユーザーに通知すべき情報と,内部IDに対応付けて記憶されているプリンター4の機種固有IDとをDBサーバー106から取得してプリンター通信APサーバー105に引き渡す。続いてプリンター通信APサーバー105は,管理者端末3のユーザーに通知すべき情報をプリンター4で登録レポートとして印刷するための印刷データの生成をデータ変換サービスAPサーバー102にジョブIDおよび機種IDと対応付けて依頼する。依頼を受けたデータ変換サービスAPサーバー102は,機種固有IDに対応した印刷データをデータ変換サーバー103に生成させる。続いてプリンター通信APサーバー105は,データ変換サーバー103から印刷データを取得してプリンター4の印刷ジョブとして内部IDおよびジョブIDに関連づけてDBサーバー106に記憶させる。
登録結果通知ジョブを生成した印刷制御サーバー1は,新規印刷ジョブの発生を登録要求の送信元のプリンター4にXMPPを用いて通知する(S128)。具体的には,プリンター通信APサーバー105は,プリンター4の新規印刷ジョブが発生したことを示す印刷待ち情報をプリンター4にXMPPサーバー104を介して通知する。このとき,XMPPサーバー104はプリンター通信APサーバー105から取得した内部IDに基づいてXMPP通信の相手をプリンター4に特定し,印刷待ち情報をプリンター4にXMPPを用いて送信する。このように印刷ジョブが生成されてから印刷待ち情報がプリンター4に送信されるまでの処理は,印刷待ち情報をXMPPを用いて送信するため,印刷制御サーバー1が自律的に実行することができ,プリンター4からのポーリングを必要としない。したがって,印刷ジョブの生成を即座にプリンター4に通知することができ,また,最小限の通信量で印刷ジョブの生成をプリンター4に通知することができる。
印刷待ち情報を取得したプリンター4は,受信結果(成功/失敗)をXMPPサーバー104にXMPPを用いて送信する(S138)。
続いてプリンター4は,印刷データを取得するために必要な印刷ジョブ情報を印刷制御サーバー1に要求する(S140)。具体的には,プリンター4は印刷ジョブ情報の要求に対応するHTTPサーバー108のURLにプリンター4の内部IDをHTTPを用いて送信する。
印刷ジョブ情報の要求を受けた印刷制御サーバー1は,受信結果(成功/失敗)と,ジョブIDと,ジョブIDに対応するHTTPサーバー108のURLと,印刷データのページ記述言語の種類とを印刷ジョブ情報としてプリンター4に送信する(S142)。具体的には,コンテンツ管理APサーバー107は,印刷ジョブ情報の要求としてHTTPサーバー108が取得した内部IDを取得し,内部IDと関連づけて記憶されているジョブIDと印刷データと印刷データのページ記述言語とをDBサーバー106から取得してHTTPサーバー108に引き渡す。HTTPサーバー108は,ジョブIDに対応する印刷データの取得要求を受け付けるURLを生成し,受信結果(成功/失敗)と,ジョブIDと,印刷データの取得要求を受け付けるURLと,印刷データのページ記述言語の種類とを印刷ジョブ情報としてプリンター4にHTTPを用いて送信する。
印刷ジョブ情報を取得したプリンター4は,プリンター4がアイドル状態になるのを待ち,アイドル状態になると,印刷データを要求する(S146)。具体的には,プリンターは,印刷データの取得要求を受け付けるHTTPサーバー108のURLに印刷データの取得要求としてプリンター4の内部IDをHTTPを介して送信する。
印刷データを要求された印刷制御サーバー1は,受信結果(成功/失敗)と,要求された印刷データとをHTTPを用いてプリンター4に送信する(S148)。具体的には,HTTPサーバー108が,印刷データの要求を受け付けたURLに対応する印刷データと,受信結果とをプリンター4にHTTPを用いて送信する。
印刷データを取得したプリンター4は,印刷データに基づいて登録レポートの印刷を実行する(S150)。
印刷を終了したプリンター4は,実行結果情報をHTTPサーバー108に送信する(S154)。具体的には,プリンター4は,プリンター4の内部ID,印刷を実行したジョブID,印刷ジョブの実行結果(成功/失敗),実行結果が生じた理由(正常,紙詰まり,インク切れなど)を,HTTPサーバー108の実行結果情報に対応するURLに送信する(S152)。
実行結果情報をHTTPサーバー108において取得した印刷制御サーバー1は,実行結果情報に基づいて印刷ジョブを更新する(S156)。具体的には,HTTPサーバー108は実行結果情報の受信結果(成功/失敗)をプリンター4に送信し,コンテンツ管理APサーバー107は,HTTPサーバー108が受信した実行結果情報に基づいて,ジョブIDに対応する印刷データをDBサーバー106から削除する。
上述したセットアップシーケンスの実行中,セットアップ開始要求を送信した管理者端末3は定期的にセットアップステータスをプリンター4に要求する(S130)。具体的には,セットアップステータスの要求に対応するプリンター4のURLにセットアップのステータスの要求を送信する。
セットアップステータスの要求を受け付けたプリンター4は,登録状態情報を管理者端末3にHTTPを用いて送信する(S132)。登録状態情報は,セットアップ開始要求を取得した直後にプリンター4がS102で管理者端末3に送信する内容と同じである。
登録状態情報を受信した管理者端末3は,S104と同様に,受信した登録状態情報に基づいて登録状態を画面表示する(S134)。印刷制御サーバー1へのプリンター4の登録が完了している段階では,例えば,管理ページのURL,管理ページパスワード,電子メールアドレス等が管理者端末3の画面に表示される。
以上説明したセットアップシーケンスでは,HTTP(Hyper Text Transfer Protocol)およびXMPP(eXtensible Messaging and Presence Protocol)を用いてプリンター4と接続しながらプリンター4を印刷制御サーバー1に登録する過程で,登録要求の受信の成否,登録結果情報,XMPP接続結果,プリンター情報の受信結果および登録結果通知ジョブ作成依頼の受信結果が印刷制御サーバー1からプリンター4に送信される。これらの情報は,プリンター4と印刷制御サーバー1との間でのHTTP接続およびXMPP接続の成否や,プリンター4に対する印刷依頼を印刷制御サーバー1が処理するために必要な登録が行われたか否かを示している。したがって,プリンター4はこれらの情報に基づいてプリンター4と印刷制御サーバー1との接続の成否とプリンター4の印刷制御サーバー1に対する登録の成否とを印刷したりユーザーI/F46のディスプレイに表示することができる。このため,プリンター4に対応付けられた電子メールアドレスに電子メールを送信することによって電子メールの本文または添付ファイルを印刷できるクラウドコンピューティングシステムである印刷システムにプリンター4が登録されたか否かをユーザーに確実に通知することができる。
3.ログインシーケンス
図4はログインシーケンスを示す図である。ログインシーケンスは,セットアップシーケンス終了後にユーザーがプリンター4の電源ボタンを押して電源を遮断した後に再び電源ボタンを押して電源を投入すると開始する。ログインシーケンスにおいて,プリンター4は各部の初期化処理を行うともに,印刷制御サーバー1とのXMPP接続を確立し,印刷ジョブの確認を行う。
具体的にはセットアップシーケンスのS112と同様に,プリンター4はXMPP接続情報をXMPPサーバー104に送信する(S200)。XMPP接続情報を取得したXMPPサーバー104は,S114と同様にXMPP接続を確立する(S202)。
印刷制御サーバー1とのXMPP接続を確立したプリンター4は,セットアップシーケンスのS116と同様にHTTPを用いてプリンター情報を印刷制御サーバー1に送信する(S206)。すなわちプリンター情報の送信は,印刷制御サーバー1との間でXMPP接続が確立される度に実施される。プリンター情報を取得したサーバーは,S118と同様にHTTPを用いて受信結果をプリンター4に送信するとともにプリンター情報をXMPP接続終了まで記憶する(S208)。
プリンター情報を印刷制御サーバー1に送信したプリンター4は,セットアップシーケンスのS140と同様にHTTPを用いて印刷ジョブ情報を印刷制御サーバー1に要求する(S212)。印刷ジョブ情報の要求を取得した印刷制御サーバー1は,S142と同様に印刷ジョブ情報をHTTPを用いてプリンター4に送信する(S214)。印刷ジョブ情報を取得したプリンター4は印刷ジョブがあれば印刷データを要求して印刷を実行する。このように電源投入後にプリンター4が自動的に印刷ジョブ情報を取得することによって,電源遮断中に印刷制御サーバー1において生成された印刷ジョブを電源投入直後にプリンター4が実行することが可能になる。
4.印刷シーケンス
図5は印刷シーケンスを示す図である。印刷シーケンスは,印刷依頼としての電子メールを,登録された電子メールアドレスに管理者端末3やゲスト端末2から送信することによって開始する(S300)。印刷制御サーバー1は,後述するように,登録されている電子メールアドレスにおいて受信した電子メールの本文と添付ファイルとを印刷対象として処理する。このため,ユーザーが印刷対象を本文または添付ファイルとして電子メールを送信すると,その電子メールが印刷依頼として印刷制御サーバー1によって処理される。プリンター毎に異なる印刷依頼の宛先電子メールアドレスは,既に述べたとおり,セットアップシーケンスにおいて管理者端末3に画面表示されたりプリンター4によって印刷される。したがって,管理者端末3を用いてプリンター4を印刷制御サーバー1に登録した管理ユーザーと管理ユーザーから電子メールアドレスを通知されたゲストユーザーとがプリンター4に対する印刷依頼をインターネットに接続された任意の端末を用いて印刷制御サーバー1に送信することができる。以下,プリンター4に対応する電子メールアドレスに印刷依頼としての電子メールがゲスト端末2から送信されたものとする。
印刷依頼を受信すると,印刷制御サーバー1は印刷依頼に関連づけられた識別情報としてのURLを含む誘導電子メールを印刷依頼の送信元に送信する(S302)。以下、誘導電子メールの送信処理の詳細について図6のフローチャートを参照しながら説明する。
印刷依頼としての電子メールはSMTPサーバー101によって受信される。登録されている電子メールアドレス宛の電子メールをSMTPサーバー101が受信すると,データ変換サービスAPサーバー102は,印刷依頼を受信した電子メールアドレスから印刷依頼に関連づけられた内部IDを特定するとともにSMTPサーバー101からその電子メールを取得して解析し,本文と,データ変換サーバー103が対応している添付ファイルとを印刷対象として抽出し,抽出した印刷対象についてファイル毎に内部IDおよびジョブIDを割り当てる(S3020)。ここで,データ変換サービスAPサーバー102は,印刷依頼に関連づけられた内部ID,すなわちプリンター4に割り当てられている内部IDを,印刷依頼の宛先電子メールアドレスに関連づけられた内部IDをDBサーバー106から取得することによって特定する。なお、電子メールにデータ変換サーバー103が対応していない添付ファイルが添付されていた場合、その添付ファイルに対しては、内部IDおよびジョブIDを割り当てることなく、印刷依頼の送信元を宛先とする電子メールを送信してエラー通知を行う。そして、本文と,データ変換サーバー103が対応している添付ファイルのみに対し、内部IDおよびジョブIDを割り当てる。
次にデータ変換サービスAPサーバー102はデータ変換サーバー103を用いてジョブID毎にプレビューデータを生成する(S3022)。詳細には,データ変換サービスAPサーバー102は電子メールの宛先となっている電子メールアドレスに対応するプリンター4の内部IDと機種IDをDBサーバー106を参照して特定する。続いてデータ変換APサーバー102はデータ変換サーバー103に初期印刷設定と印刷対象とを対応付けて引き渡す。データ変換サーバー103は取得した印刷対象のそれぞれを初期印刷設定に応じてプレビューデータに変換する。
次にデータ変換サービスAPサーバー102は内部ID及びジョブIDに関連づけて印刷対象及びプレビューデータをDBサーバー106に記憶させる(S3024)。
次にデータ変換サービスAPサーバー102はジョブIDに対応するHTTPサーバー110のURLを本文に含み,印刷依頼の送信元を宛先とする誘導電子メールを生成し,SMTPサーバー101を介してゲスト端末2に送信する(S3026)。データ変換APサーバー102は,誘導電子メールの本文に含めるURLにジョブIDを含めることによってURLを印刷依頼に関連づける。印刷依頼から複数の印刷対象が抽出されている場合,最初に抽出された印刷対象に割り当てられたジョブIDに,誘導電子メールに含めるURLを関連づける。このようにジョブIDを一部に含むURLを誘導URLというものとする。以上,誘導電子メールの送信処理の詳細について説明した。
誘導電子メールを受信したゲスト端末2のユーザーが誘導電子メールを開き,誘導URLをクリックすると初期印刷制御ページ要求が印刷制御サーバー1に送信される(S304)。具体的には,誘導電子メールの本文を表示したゲスト端末2のメールユーザーエージェントがウェブブラウザを介して誘導URLをHTTPを用いて初期印刷制御ページ要求として送信する。
誘導URLにおいて初期印刷制御ページ要求を取得した印刷制御サーバー1は,印刷依頼に関連づけられた初期印刷制御ページを初期印刷制御ページ要求の送信元のゲスト端末2に送信する(S306)。以下,初期印刷制御ページの送信処理の詳細について図7のフローチャートを参照しながら説明する。
初期印刷制御ページ要求はHTTPサーバー110によって誘導URLにおいて取得される。初期印刷制御ページ要求をHTTPサーバー110が取得すると,アカウント管理APサーバー107は誘導URLからジョブIDを取得する(S3120)。
次にアカウント管理APサーバー107は,ジョブIDに関連づけられているプレビューデータをDBサーバー106から取得する(S3122)。
次にアカウント管理APサーバー107は,初期印刷制御ページを生成する(S3124)。初期印刷制御ページは,図8に示す印刷制御ページのうち,初期印刷制御ページ要求に対して送信されるものである。印刷制御ページには,図8Aに示すテキスト主体の印刷対象に対応するテキスト用印刷制御ページと,図8Bに示す画像主体の印刷対象に対応する画像用印刷制御ページとがある。いずれの印刷制御ページを生成するかは,アカウント管理APサーバー107が印刷対象のファイルの拡張子に基づいて判定する。
テキスト用印刷制御ページには,図8Aに示すように,設定対象選択用ドロップダウンリスト65,用紙サイズ選択用ドロップダウンリスト61,両面印刷選択用ドロップダウンリスト62,レイアウト選択用ドロップダウンリスト63,部数選択用テキストボックス64,印刷ボタン67,再プレビューボタン68,キャンセルボタン69およびプレビュー画像66が配置される。
画像用印刷制御ページには,図8Bに示すように,設定対象選択用ドロップダウンリスト65,用紙サイズ選択用ドロップダウンリスト61,自動画質調節選択用ドロップダウンリスト71,画質選択用ドロップダウンリスト72,部数選択用テキストボックス64,印刷ボタン67,再プレビューボタン68,キャンセルボタン69およびプレビューデータに基づくプレビュー画像66が配置される。
初期印刷制御ページが生成されるとき,用紙サイズ選択用ドロップダウンリスト61,両面印刷選択用ドロップダウンリスト62,レイアウト選択用ドロップダウンリスト63,部数選択用テキストボックス64,自動画質調節選択用ドロップダウンリスト71,画質選択用ドロップダウンリスト72においては予め決められた初期印刷設定に対応する項目が選択状態となる。設定対象選択用ドロップダウンリスト65は,これらのドロップダウンリストによって印刷設定が変更されるジョブIDを選択するためのものである。初期印刷制御ページが生成されるとき,1つの印刷依頼に対応する印刷対象が複数ある場合,最初に割り当てられたジョブIDが設定対象選択用ドロップダウンリスト65の選択項目となり,当該ジョブIDに対応する印刷対象のファイル名が表示される。
次にアカウント管理APサーバー107は,初期印刷制御ページをHTTPサーバ110を介して初期印刷制御ページ要求の送信元に送信する(S3126)。以上,初期印刷制御ページの送信処理の詳細について説明した。
印刷制御サーバー1から初期印刷制御ページが送信されると,ゲスト端末2のウェブブラウザによって初期印刷制御ページが表示される(S308)。ゲスト端末2のユーザーは,初期印刷制御ページの設定対象選択用ドロップダウンリスト65の操作によって印刷設定を変更するジョブIDを選択することができ,初期印刷制御ページのドロップダウンリスト61,62,63,64,71,72やテキストボックス64を操作することによって印刷設定を変更することができ,初期印刷制御ページの印刷ボタン67をクリックすることによって印刷実行要求を送信することができ,再プレビューボタン68をクリックすることによって他のジョブIDのプレビュー画像や変更後の印刷設定に対応するプレビュー画像がレイアウトされた印刷制御ページを要求することができる。なお、再プレビューボタン68がクリックされなくても、いずれかの項目が操作されたことに応じて、他のジョブIDのプレビュー画像や変更後の印刷設定に対応するプレビュー画像がレイアウトされた印刷制御ページを要求するようにしてもよい。
ここでドロップダウンリスト63が操作されることによって選択項目が変更された状態で再プレビューボタン68がクリックされたとする。その結果,ゲスト端末2から印刷制御サーバー1に印刷制御ページ要求が送信される(S310)。印刷制御ページ要求は,ドロップダウンリスト61,62,63,65,71,72の選択項目やテキストボックス64の数値を再プレビューボタン68に埋め込まれた誘導URLに送信するHTTPリクエストである。
再プレビューボタン68に埋め込まれた誘導URLにおいて印刷制御ページ要求を取得した印刷制御サーバー1は,印刷依頼に関連づけられた印刷制御ページを印刷制御ページ要求の送信元であるゲスト端末2に送信する(S312)。以下,印刷制御ページの送信処理の詳細について図9のフローチャートを参照しながら説明する。
印刷制御ページ要求はHTTPサーバー110によって取得される。印刷制御ページ要求をHTTPサーバー110が取得すると,アカウント管理APサーバー107は印刷制御ページ要求からジョブIDおよび印刷設定を取得する(S3120)。ジョブIDは設定対象選択用ドロップダウンリスト65の選択項目に対応する。印刷設定はドロップダウンリスト61,62,63,71,72の選択項目とテキストボックス64の数値に対応する。
次にアカウント管理APサーバー107はS3120で取得したジョブIDに関連づけられた印刷対象をDBサーバー106から取得する(S3122)。またこのときアカウント管理APサーバー107はジョブIDに関連づけられたプレビューデータをDBサーバー106から削除する。
次にアカウント管理APサーバー107は取得した印刷設定に応じた印刷対象のプレビューデータをデータ変換サーバー103を用いて生成する(S3124)。詳細には,アカウント管理APサーバー107はDBサーバー106から取得した印刷対象と印刷制御ページ要求から取得した印刷設定とを対応付けてデータ変換サーバー103に引き渡す。データ変換サーバー103は取得した印刷対象を取得した印刷設定に応じてプレビューデータに変換する。
次にアカウント管理APサーバー107は新たに生成されたプレビューデータに基づくプレビュー画像66がレイアウトされた印刷制御ページを生成する(S3126)。印刷制御ページが生成されるとき,用紙サイズ選択用ドロップダウンリスト61,両面印刷選択用ドロップダウンリスト62,レイアウト選択用ドロップダウンリスト63,部数選択用テキストボックス64,自動画質調節選択用ドロップダウンリスト71,画質選択用ドロップダウンリスト72においては印刷制御ページ要求から取得された印刷設定に対応する項目が選択状態となる。設定対象選択用ドロップダウンリスト65においては,印刷制御ページ要求から取得されたジョブIDが選択状態となり,当該ジョブIDに対応するファイル名が表示される。
次にアカウント管理APサーバー107は,印刷制御ページをHTTPサーバ110を介して印刷制御ページ要求の送信元に送信する(S3126)。以上,印刷制御ページの送信処理の詳細について説明した。
印刷制御サーバー1から印刷制御ページが送信されると,ゲスト端末2のウェブブラウザによって印刷制御ページが表示される(S314)。初期印刷制御ページが表示された状態と同様に,ゲスト端末2のユーザーは,印刷制御ページの設定対象選択用ドロップダウンリスト65の操作によって印刷設定を変更するジョブIDを選択することができ,印刷制御ページのドロップダウンリスト61,62,63,64,71,72やテキストボックス64を操作することによって印刷設定を変更することができ,印刷制御ページの印刷ボタン67をクリックすることによって印刷実行要求を送信することができ,再プレビューボタン68をクリックすることによって他のジョブIDのプレビュー画像や変更後の印刷設定に対応するプレビュー画像がレイアウトされた印刷制御ページを要求することができる。すなわち,初期印刷制御ページに対する操作に応じた処理と印刷制御ページに対する操作に応じた処理とは完全に同じである。
今度は印刷ボタン67がクリックされたとする。この場合,ゲスト端末2から印刷制御サーバー1に印刷実行要求が送信される(S316)。印刷実行要求は,ドロップダウンリスト61,62,63,65,71,72の選択項目やテキストボックス64の数値を印刷ボタン67に埋め込まれた誘導URLに送信するHTTPリクエストである。印刷対象が複数存在する場合には、印刷対象毎に印刷ボタン67のクリックを受け付け、印刷対象毎に印刷実行要求を送信する。ただし、印刷対象毎に行われた設定を記憶しておき、印刷ボタン67が1度クリックされたことに応じて、全ての印刷対象についての印刷実行要求を送信するようにしても良い。なお、印刷制御ページに印刷しないというチェックボックスを設けたり、部数設定で0を許容する等により、任意の印刷対象について印刷対象からはずせるようにしても良い。
印刷ボタン67に埋め込まれた誘導URLにおいて印刷実行要求を取得した印刷制御サーバー1は,印刷実行要求に応じた印刷ジョブを生成する(S320)。以下,印刷ジョブの生成処理を図10のフローチャートを参照しながら説明する。なお、印刷対象が複数存在する場合には、全ての印刷対象についての印刷実行要求を取得するか、一部の印刷対象についての印刷実行要求を取得した後に、タイムアウトをするまで待機をし、その後取得した全ての印刷実行要求に応じた印刷ジョブを順次、生成する。
印刷実行要求は,HTTPサーバー110によって取得される。印刷実行要求をHTTOサーバー110が取得すると,アカウント管理APサーバー107は印刷実行要求からジョブIDおよび印刷設定を取得する。続いてアカウント管理APサーバー107は取得したジョブIDおよび印刷設定をプリンタ通信APサーバー105に引き渡す(S3180)。
次にプリンタ通信APサーバー105は取得したジョブIDに対応する印刷対象および機種IDをDBサーバー106から取得する(S3182)。
次にプリンタ通信APサーバー105は,取得した印刷対象から機種と印刷設定に応じた印刷データをデータ変換サーバー103を用いて生成する(S3184)。詳細にはまず,プリンタ通信APサーバー105は,取得した印刷対象と印刷設定と機種IDとをデータ変換サーバー103に引き渡す。次にデータ変換サーバー103は取得した印刷対象のそれぞれを機種IDと印刷設定に基づいてプリンター4の機種と印刷設定とに対応する印刷データに変換する。このとき,データ変換サーバー103は印刷対象がテキスト主体であればテキストに特化したページ記述言語で印刷データを生成し,印刷対象が画像主体であれば画像に特化したページ記述言語で印刷データを生成する。印刷対象がテキスト主体であるか画像主体であるかは,印刷対象として取得するファイルの拡張子に基づいて判断される。印刷データが生成されると,プリンタ通信APサーバー105はプリンター4の内部IDおよびジョブIDと関連づけることによって印刷データをプリンター4の印刷ジョブとしてDBサーバー106に記憶させる。
次に,印刷制御サーバー1は印刷待ち情報を印刷実行要求の依頼元であるゲスト端末2にXMPPを用いて送信する(S320)。具体的には,プリンター通信APサーバー105は,セットアップシーケンスのS128と同様に,印刷待ち情報をプリンター4にXMPPを用いて通知する。このように印刷依頼を受信してから印刷待ち情報をプリンター4に送信するまでの処理は,印刷待ち情報をXMPPを用いて送信するため,印刷制御サーバー1が自律的に実行することができ,プリンター4からのポーリングを必要としない。このため,印刷ジョブの生成を即座にプリンター4に通知することができ,また,最小限の通信量で印刷ジョブの生成をプリンター4に通知することができる。
印刷待ち情報を取得したプリンター4は,セットアップシーケンスのS138と同様に,受信結果(成功/失敗)をXMPPサーバー104にXMPPを用いて送信する(S322)。
続いてS140と同様に,プリンター4は,印刷データを取得するために必要な印刷ジョブ情報を印刷制御サーバー1にHTTPを用いて要求する(S324)。具体的にはプリンター4は印刷ジョブ情報の要求に対応するHTTPサーバー108のURLにプリンター4の内部IDをHTTPを用いて送信する。
印刷ジョブ情報の要求を受けた印刷制御サーバー1は,S142と同様に,受信結果(成功/失敗)と,ジョブIDと,ジョブIDに対応するHTTPサーバー108のURLと,印刷ジョブのページ記述言語の種類とを印刷ジョブ情報としてプリンター4にHTTPを用いて送信する(S326)。印刷対象が複数のファイルからなる場合,ファイル毎のジョブIDとURLとが印刷ジョブ情報としてプリンター4に送信される。
印刷ジョブ情報を取得したプリンター4は,S146と同様に,プリンター4がアイドル状態になるのを待ち,アイドル状態になると,印刷データの取得要求を受け付けるURLをHTTPサーバー108に送信することによって印刷データの送信を要求する(S328)。このときプリンター4は,取得した印刷ジョブ情報に複数のジョブIDが含まれている場合,ジョブID毎に印刷データの送信を要求する。
印刷ジョブの送信を要求されたHTTPサーバー108は,S148と同様に,受信結果(成功/失敗)と印刷データの取得要求を受け付けたURLに対応付けられた印刷データとをHTTPを用いてプリンター4に送信する(S330)。
印刷データを取得したプリンター4は,S150と同様に,印刷データに基づいて印刷を実行する(S332)。
印刷を終了したプリンター4は,S154と同様に,印刷ジョブの実行結果情報をHTTPサーバー108に送信する(S334)。
実行結果情報をHTTPサーバー108において取得した印刷制御サーバー1は,S156と同様に実行結果情報に基づいて印刷ジョブを更新するとともに,実行が完了した印刷ジョブに対応するプレビューデータを削除する(S336)。ここでは,コンテンツ管理APサーバー107が,実行結果情報から取得したジョブIDに関連づけてDBサーバー106に記憶されているプレビューデータを削除することによって,実行が完了した印刷ジョブに対応するプレビューデータを削除する。
続いて,印刷制御サーバー1は印刷依頼の送信元であるゲスト端末2に印刷依頼の実行結果(成功/失敗)を電子メールによって送信する(S338)。具体的には,コンテンツ管理APサーバー107は,実行結果情報に基づいて印刷が完了または失敗したことと,印刷が完了または失敗した印刷対象とを示すテキストを本文とし宛先を印刷依頼の送信元であるゲスト端末2とする電子メールを生成し,生成した電子メールをSMTPサーバー11を介してゲスト端末2に送信する。
ゲスト端末2が電子メールを受信すると(S340),ゲスト端末2のユーザーは印刷依頼の処理結果を知ることができる。
S328からS340の処理は,DBサーバー106に記憶された順で,印刷ジョブ毎に実行される。例えばプリンター4は,取得した印刷ジョブ情報に電子メール本文に対応するジョブIDと添付ファイル"A"に対応するジョブIDが含まれ,電子メール本文に対応する印刷ジョブの方が先にDBサーバー106に記憶されている場合,電子メール本文に対応する第一のURLをHTTPサーバー108に送信することによって電子メール本文に対応する印刷データを取得して印刷を実行し,実行結果情報をHTTPサーバー108に送信する。HTTPサーバー108が実行結果情報を受信すると,コンテンツ管理APサーバー107は,HTTPサーバー108から取得した実行結果情報に基づいて,電子メール本文に対応する印刷ジョブをDBサーバー106から削除する。そしてコンテンツ管理APサーバー107は,電子メール本文に対応する印刷ジョブが完了したことをSMTPサーバー101を介して電子メールによってゲスト端末2に送信する。続いてプリンター4は,添付ファイル"A"に対応する第二のURLをHTTPサーバー108に送信することによって添付ファイル"A"に対応する印刷データを取得して印刷を実行し,実行結果情報をHTTPサーバー108に送信する。HTTPサーバー108が実行結果情報を受信すると,コンテンツ管理APサーバー107は,HTTPサーバー108から取得した実行結果情報に基づいて,添付ファイルに対応する印刷ジョブをDBサーバー106から削除する。そしてコンテンツ管理APサーバー107は,添付ファイルに対応する印刷ジョブが完了したことをSMTPサーバー101を介して電子メールによってゲスト端末2に送信する。
なお、印刷制御ページのキャンセルボタン69がクリックされた場合、ゲスト端末2から印刷制御サーバー1に印刷中止要求が送信され、印刷制御サーバー1において、プレビューデータおよび印刷対象がDBサーバー10から削除される。
以上説明した印刷シーケンスでは、ウェブブラウザを使って印刷設定の変更を可能にする印刷制御ページが印刷依頼の送信元に送信されるため、印刷依頼を送信したユーザーは簡便な方法で印刷設定を変更することができる。また初期印刷制御ページおよび印刷制御ページにはプレビュー画像がレイアウトされるため、印刷依頼を送信したユーザーはプレビュー画像を確認した上で印刷実行を要求することができる。さらに初期印刷制御ページおよび印刷制御ページで印刷設定を変更した場合には、変更後の印刷設定に応じたプレビュー画像を確認した上で印刷実行を要求することができる。
5.他の実施形態
尚,本発明の技術的範囲は,上述した実施の形態に限定されるものではなく,本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
例えば,上記実施形態では管理者端末3を操作してプリンター4を印刷制御サーバー1に登録する例を説明したが,プリンター4のユーザーI/F46をユーザーが操作してプリンター4を印刷制御サーバー1に登録しても良い。
また,ゲスト端末2から受信した印刷依頼に応じて生成される全ての印刷ジョブについて上述したS336までの処理が全て完了したときに,印刷制御サーバー1から印刷依頼の送信元であるゲスト端末2に印刷依頼全体の実行結果(成功/失敗)を1つの電子メールによって送信してもよい。
さらに上記実施形態では,プリンター4は印刷制御サーバー1から印刷待ち情報を受信すると自動的に印刷ジョブを実行する例を示したが,例えば印刷待ち情報を受信したプリンター4のユーザーI/F46に印刷ジョブの存在を示す情報を表示させ,ユーザーによる印刷ジョブの実行指示を待ってプリンター4が印刷ジョブを実行してもよい。
また上記実施形態では,印刷制御サーバー1が物理的に独立した複数のサーバーコンピューターによって構成される例を説明したが,印刷制御サーバー1の機能を単一のサーバーコンピューターで実現することも可能である。
また,プリンター4と印刷制御サーバー1との通信プロトコルについては,印刷待ち情報がプッシュ型のプロトコル(サーバーからクライアントに対する処理を実行するためにクライアントからの要求を必要としないプロトコル)で印刷制御サーバー1からプリンター4に送信できれば良く,XMPPとは別のプッシュ型通信プロトコルが用いられても良いし,HTTPを用いた通信の一部が別のプル型通信プロトコル(サーバーからクライアントに対する処理が必ずクライアントからの要求に応えて実行されるプロトコル)に置き換えることもできるし,また,HTTPを用いた通信の一部をXMPPやその他のプッシュ型プロトコルに置き換えることもできる。
また,印刷依頼に印刷制御ページや印刷設定を関連づけるために誘導URLにジョブIDを含める例を説明したが,印刷制御サーバーと印刷依頼の送信元との間でHTTPメッセージのパラメーターとしてジョブIDを送受信し,このジョブIDによって印刷依頼に印刷制御ページと印刷設定を関連づけても良い。
また,ゲスト端末がサーバーから取得する印刷制御ページについて,印刷依頼の電子メールにおいてテキスト用印刷制御ページ,画像用印刷制御ページのいずれかを選択可能にしてもよい。具体的には例えば,印刷依頼を受け付ける電子メールアドレスとして,テキスト主体の印刷対象に対応した電子メールアドレスと画像主体の印刷対象に対応した電子メールアドレスとをプリンターに割り当て,印刷依頼を受信した電子メールアドレスに応じて印刷制御ページの送信処理及び印刷ジョブの生成処理を分岐させればよい。また,印刷依頼としての電子メールの本文にテキストに対応する所定の文字列または画像に対応する所定の文字列のいずれかを記載させ,サーバーにおいて電子メールの本文を解析することによってテキスト,画像のいずれとして印刷対象を処理すべきか判定してもよい。