以下、本発明の実施形態について説明するが、本発明の実施形態は、以下に説明する実施形態に限定されるものではない。なお、以下に説明する実施形態では、処理要求を処理する要求処理システムの一例として、電子機器に複合機およびプロジェクタと、サーバ装置にジョブ仲介サーバと、端末装置にタブレット端末およびスマートフォン端末とを含み、処理要求としてジョブを処理するジョブ処理システムを用いて説明する。
図1は、本実施形態によるジョブ処理システムのネットワーク環境を例示する図である。図1に例示されるネットワーク環境100(以下、図1に示すものをネットワーク環境100Aと参照する)では、インターネット102にルータ104を介して接続された複数のLAN(Local Area Network)120,130が構築されている。インターネット102には、本実施形態におけるサーバ装置として機能するジョブ仲介サーバ110(以下、図1に示すものをジョブ仲介サーバ110Aと参照する。)が接続され、ジョブ仲介サーバ110Aは、インターネット102などのグローバルなネットワークからアクセス可能に構成されている。
LAN120,130は、例えば官公庁、大学や企業などの組織内ネットワークまたは家庭内ネットワークである。図1に例示するネットワーク環境100Aにおいて、LAN120,130は、図示しないファイア・ウォールにより制限された状態でインターネット102に接続される。すなわち、LAN120,130に属するノードによるインターネット102へのアクセスが可能とされている一方で、LAN120,130に属するノードに対するグローバルなネットワークからのアクセスは禁止されている。
図1に示す破線枠150は、同一ロケーションを表している。図1に例示する第1のロケーション150A内のLAN120上には、ノート型パーソナル・コンピュータ122と、レーザプリンタ124とが接続されている。第2のロケーション150B内のLAN130上には、デスクトップ型パーソナル・コンピュータ132と、複合機134と、プロジェクタ136とが接続されている。LAN130には、さらに、アクセスポイント138が接続され、同一ロケーション150B内に存在する無線通信装置を備える機器に対し、IEEE(The Institute of Electrical and Electronics Engineers, Inc.)802.11a/b/g/nなどによる無線通信を提供している。
レーザプリンタ124、複合機134およびプロジェクタ136は、ネットワーク接続された端末装置に対し、装置固有の機能を提供する電子機器であり、端末装置から要求されたジョブを処理する。レーザプリンタ124は、プリント機能を提供する画像形成装置であり、要求されたプリントジョブを処理し、印刷出力する。複合機134は、コピー、スキャナ、プリント、ファクシミリなどの各種画像処理機能を提供する画像形成装置であり、本実施形態においては、プリントジョブまたはスキャンジョブを処理する。プロジェクタ136は、投影機能を有する映像表示装置であり、端末装置から要求された投影ジョブを処理する。電子機器としては、その他、スキャナ、ファクシミリ、フォトフレーム、デジタルカメラ、デジタルビデオカメラなどの種々の装置を挙げることができる。
図1に示すネットワーク環境100Aにおいては、パーソナル・コンピュータ122,132、タブレット端末126およびスマートフォン端末140が電子機器124,134,136に対しジョブを要求する端末装置となることができる。これらの中でも、パーソナル・コンピュータ122,132は、それぞれのロケーション150A,150Bにおいて、LAN120,130に接続されており、LAN120,130上のDHCPサーバからIPアドレスが割り当てられている。したがって、パーソナル・コンピュータ122,132は、TCP/IPプロトコル・スタックにより、同一ネットワーク上の電子機器とのエンド・ツー・エンドの直接通信が可能とされている。
各ロケーション150に存在する無線通信端末装置(タブレット端末126,スマートフォン端末140)は、アクセスポイント138やVPNなどを用いて、LAN120,130にそれぞれ接続する機能を有する場合もある。しかしながら、無線通信端末装置126,140がアクセスポイント138やVPNを用いてLAN120,130に参加するためには、SSID(Service Set Identifier)およびWEP(Wired Equivalent Privacy)キーの設定や、VPN接続設定を事前に行う必要がある。一方、組織のネットワーク運用ポリシーによっては、SSIDやパスワードやVPN接続情報が厳重に管理されており、組織内LAN120,130への参加に厳しい制約が課せられている場合がある。
図1に例示においては、無線通信端末装置126,140は、LAN120,130には接続されておらず、3G/3.9G/4Gなどの移動通信網や、WIMAX(Worldwide Interoperability for Microwave Access)など無線通信網を介してモバイルデータ通信によりインターネット102に接続している。したがって、図1の例示においては、無線通信端末装置126,140は、電子機器124,134,136とは直接通信を確立することができない。
一方で、近年のタブレット端末やスマートフォン端末の普及および高機能化に伴い、これらの端末から、内部のLAN上に存在する電子機器を活用できると望ましい。そこで、本実施形態によるジョブ仲介サーバ110は、これら直接通信を確立できない状態にある無線通信端末装置126,140から、電子機器124,134,136へのジョブ要求を仲介する、詳細を後述するジョブ仲介機能を提供する。
特定の実施形態において、ジョブ仲介サーバ110は、Webサーバとして実装され、電子機器124,134,136および無線通信端末装置126,140は、Webクライアント機能を実装する。特定の実施形態においては、ジョブ仲介サーバ110は、電子機器124,134,136および無線通信端末装置126,140とHTTPプロトコルによるトランザクションを行う。電子機器124,134,136および無線通信端末装置126,140は、ジョブ仲介サーバ110へHTTPリクエストを送信し、ジョブ仲介サーバ110からHTTPレスポンスを受信する。ジョブ仲介サーバ110は、端末装置との直接通信が可能ではなく、かつ、外部ネットワーク上のノード主導で行われる通信を受けることができない電子機器に対し、上述したHTTPトランザクションを介して端末装置からのジョブを伝達する機能を提供する。ジョブ仲介サーバ110をWebサーバとして実装する実施形態では、電子機器は、Webクライアント機能を有すればよく、実装が容易となる。
また、図1に例示するネットワーク環境100Aでは、ジョブ仲介サーバ110Aは、外部公開されており、インターネット102側からのアクセスを受け付けている。一方、組織内のポリシーによっては、ジョブ仲介サーバ110自体を公開することが望ましくない場合もある。図2は、このような場合に好適に実施することができる、他の実施形態によるネットワーク環境100Bを例示する。
図2に例示されるネットワーク環境100Bでは、ジョブ仲介サーバ110Bは、ロケーション150CのLAN160に接続されている。そして、ジョブ仲介サーバ110Bへのインターネット102側からアクセスは、ファイア・ウォール162によって遮断されている。一方、インターネット102上には、端末装置および電子機器からのリクエストを受け付けて、このリクエストをキューに追加するメッセージキュー・サーバ170が設けられ、LAN160上には、メッセージ・リレー・ワーカが設けられる。メッセージ・リレー・ワーカは、メッセージキュー・サーバ170のキューに追加されたリクエストを、LAN160上のノードにリレーするサーバである。メッセージ・リレー・ワーカは、図2に例示するようにジョブ仲介サーバ110Bがその役割を兼用してもよいし、他のサーバがその役割を担っても良い。
図1および図2に例示したいずれのネットワーク環境100A,100Bにおいても、電子機器124,134,136および無線通信端末装置126,140からジョブ仲介サーバ110Bへの通信の確立は確保される。
以下、図3〜図16を参照しながら、本実施形態のジョブ処理システムにおける、ジョブ仲介サーバによるジョブ仲介機能について、詳細を説明する。図3は、本実施形態によるジョブ処理システム200において実現される機能ブロックを示す図である。図3に示す機能ブロックは、ジョブ仲介サーバ110上に実現される機能ブロックと、端末装置(以下、代表してスマートフォン端末140を参照して説明する。)上に実現される機能ブロックと、電子機器(以下、代表して複合機134を参照して説明する。)上に実現される機能ブロックとを含む。
ジョブ仲介サーバ110上には、通信部210と、表示処理部212と、伝達処理部214と、登録処理部216と、セッションID生成部218と、セッション管理部220と、データ格納部222とが構成されている。これに対して、複合機134上の機能ブロックは、通信部230と、複合機ブラウザ232と、画像符号化部234と、プリント処理部236と、スキャン処理部238とを含み構成される。また端末装置140上の機能ブロックは、通信部250と、撮像部252と、コードリーダ部254と、プリント要求部256と、スキャン要求部258とを含み構成される。
上述した通信部210、通信部230および通信部250は、それぞれ、ジョブ仲介サーバ110、複合機134および端末装置140が備えるネットワーク・インタフェース機器を制御し、外部ノードとのデータ送受信を管理する送信手段および受信手段である。ジョブ仲介サーバ110上の表示処理部212、登録処理部216および伝達処理部214は、それぞれ、通信部210を介して外部ノードからのリクエストを受け取り、リクエストに対応して処理を実行し、通信部210を介して処理結果をレスポンスとして返す処理手段である。
図4(A)は、複合機134に対し端末装置140からジョブ要求を行うためユーザが行う作業を説明する図である。説明する実施形態において、複合機134は、当該複合機134を利用するための接続情報を符号化したコード画像304を、当該複合機134が備える操作パネル300のディスプレイ302上に表示する。複合機134は、このコード画像表示を行うため、複合機ブラウザ232を用いて、事前指定されたジョブ仲介サーバ110のコード画像表示画面用のアドレスに対しリクエストを送信する。上記ジョブ仲介サーバ110上の表示処理部212は、コード画像表示画面を指定するアドレスに対するリクエストに応答して、コード画像表示画面を定義する画面データを生成し、セッションIDを含めて画面データをレスポンスとして返す。アドレスは、例えば、URL(Uniform Resource Locator)やURN(Uniform Resource Name)などのURI(Uniform Resource Identifier)で指定される。画面データは、例えば、HTML(HyperText Markup Language)形式で記述される。
複合機134上の複合機ブラウザ232は、画面データを取得すると、画像符号化部234を呼び出して、画面データに含まれていたセッションIDを渡す。画像符号化部234は、セッションIDを含む接続情報を一次元コード、二次元コードまたは一次コードおよび二次元コードの合成コード(コンポジットシンボル)やその他の多次元コードによるコード画像へ符号化する。二次元コードは、マトリックス式またはスタック式のいずれであってもよく、例えばQRコード(登録商標)を例示することができる。そして、複合機ブラウザ232は、図4(A)に示すように、符号化されたコード画像304を操作パネル300上に表示する。
符号化される接続情報としては、上述したセッションIDの他、スキーマ情報、プリント機能やスキャン機能など電子機器の能力を記述するデバイスタイプ情報、および、ジョブ仲介サーバ110へアクセスしてジョブを登録するための事前設定されたアクセス情報を挙げることができる。上記スキーマ情報は、コード画像がセッションIDを有しており、本実施形態によるジョブ仲介機能の対象となることを示す情報である。
セッションIDは、本実施形態においては、ジョブ仲介サーバ110上のセッションID生成部218により生成される。セッションID生成部218は、表示処理部212からの呼び出しに応答して、複合機134に対し固有なセッションIDを生成し、表示処理部212に返す。セッションIDは、複合機134が参加するセッションを固有に識別する識別情報であり、好ましくは、一時的に複合機134に割り当てられる情報である。ここで、セッションとは、ジョブの要求元の端末装置および要求先の電子機器が参加する、該ジョブにかかる処理が終了するまでの一連の通信をいう。セッションIDとしては、取得リクエスト毎に異なるよう生成されるUUID(Universally Unique Identifier)、ランダム値、ハッシュ値などとすることができる。
複合機134に割り当てられたセッションIDは、本実施形態の管理手段であるセッション管理部220によって管理される。セッション管理部220は、表示処理部212からの呼び出しに応答して、セッションIDを受け取り、有効期限を付して、セッション管理テーブルに保存する。また、セッション管理部220は、有効期限が満了したセッションIDについては、データを削除するか、またはデータに削除フラグを付す。有効期限を設定することにより、電子機器を識別するシリアル番号や機器IDの管理、IDの盗聴および誤用によるセキュリティ上の問題を軽減することができる。また、このセッションIDの登録により、ジョブ仲介サーバ110は、複合機134に対して行われるジョブの登録を受付可能な状態となる。
なお、説明する実施形態では、ジョブ仲介サーバ110が複合機134に対しセッションIDを生成して与え、複合機134が、与えられたセッションIDを用いてコード画像を符号化するものとして説明する。しかしながら、他の実施形態では、複合機134がセッションIDを生成して、ジョブ仲介サーバ110にセッションIDを渡して登録させる態様としてもよい。
また好適な実施形態においては、図3において点線枠224で示すように、ジョブ仲介サーバ110が画像符号化部226を備えてもよい。この場合、ジョブ仲介サーバ110は、複合機134からデバイスタイプ情報を取得し、セッションID、スキーマ情報、デバイスタイプ情報およびアクセス情報を含む接続情報を用いて符号化し、符号化されたコード画像を画面データ中に含めて複合機134へ送信する。この好適な実施形態では、電子機器側に画像符号化部234を実現するための特別なソフトウェアを導入する必要がなく、電子機器のリソース消費量も抑制することができる。
説明する実施形態においては、端末装置140は、図4(A)に示すように、上記複合機134が表示するコード画像304を、カメラなどの撮像部252を用いて読み取り、コード画像から取得される接続情報に基づいて、複合機134に対しジョブ要求を行う。コードリーダ部254は、撮像部252を起動し、撮影視野に入るコード画像を認識し、撮影されたコード画像をデコードして、上記コード画像に符号化された接続情報を抽出する。
撮像部252は、カメラ、バーコードリーダ、スキャナなどの画像読取手段である。このような画像読取手段は、マニュアルスキャン方式、CCDスキャン方式、レーザスキャン方式、イメージセンシング方式、リニアイメージセンシング方式などの種々の方式によりコード画像を読み取る。
コードリーダ部254は、コード画像から接続情報を抽出すると、抽出されたデバイスタイプ情報から、起動する候補となるアプリケーションを判定し、またユーザからの選択に応じて、要求部256,258を呼び出す。候補のアプリケーションは、電子機器からセッションIDとともに読み取られるデバイスタイプ情報に基づいて判定することができる。例えば、プリント処理およびスキャン処理を行う能力を有する複合機134のデバイスタイプ情報から、プリント用アプリケーションおよびスキャナ用アプリケーションがユーザ選択可能に提示される。ユーザは、提示された選択肢の中から所望のアプリケーションを選択することができる。
プリント要求部256およびスキャン要求部258は、それぞれ、コードリーダ部254からの呼び出しに応答して起動し、ユーザからのジョブ実行の指示を受け付ける。プリント要求部256は、プリント対象の文書ファイルを指定したプリント実行指示に応答して、接続情報にアクセス情報として記述されたジョブ登録用のアドレスを用いて、通信部250を介してジョブ仲介サーバ110に、プリントジョブの登録を求める登録リクエストを送信する。登録リクエストには、登録を求める処理要求がプリントジョブであることを示す情報、要求先の複合機134を識別するセッションID、およびプリント対象のプリントデータが付される。
スキャン要求部258も同様に、スキャン条件を指定したスキャン指示に応答して、ジョブ登録用のアドレスを用いて、通信部250を介してジョブ仲介サーバ110に、スキャンジョブの登録リクエストを送信する。登録リクエストには、登録を求める処理要求がスキャンジョブであることを示す情報、セッションID、およびスキャン条件データが付される。
ジョブ仲介サーバ110上の登録処理部216は、端末装置140から送られたジョブの登録リクエストに応答して、登録リクエストに付加されたセッションIDに紐付けて、登録リクエストに付加されたジョブをセッション管理部220に登録する。このセッションIDは、端末装置140が複合機134から読み取り送付してきたセッションIDである。登録処理部216は、また、プリントジョブとともに送られてきたプリントデータ、またはスキャンジョブとともに送られてきたスキャン条件データをデータ格納部222に保存し、リンク情報をセッション管理部220に保存する。
登録処理部216は、リクエストに応答して、通信部210を介して、登録が成功裡に完了した旨の結果、または登録が失敗した旨の結果をレスポンスとして返す。スキャンジョブである場合には、登録処理部216は、スキャン条件データにさらにスキャン結果の保存先アドレスを付加し、登録が成功裡に完了した旨の結果を示すレスポンスを、スキャン結果保存先アドレスを付して返す。なお、スキャン結果保存先アドレスは、ジョブ仲介サーバ110上の記憶領域を指してもよいし、複合機134のファイルサーバや他のコンテンツ管理サーバ上の記憶領域を指してもよい。
上述したように複合機134上の複合機ブラウザ232は、ジョブ仲介サーバ110から画面データを取得し、符号化されたコード画像304を操作パネル300上に表示する。上記画面データは、上記セッションIDが埋め込まれたコード画像304を端末装置140が外部読取可能に表示している間、定期的または不定期にジョブ仲介サーバ110に、セッションIDとともにジョブの取得リクエストを送信するためのコード記述を含む。コード記述は、JavaScript(登録商標)などのブラウザ解釈可能言語で記述される。特定の実施形態では、コード画像304を有効期限内の所定期間だけ表示する構成とすることができる。これにより、操作者が複合機134から離れた後も接続情報を表示し続けてしまうことを防止することができる。
ジョブ仲介サーバ110上の伝達処理部214は、まず、取得リクエストに付加されたセッションIDに一致するジョブが登録されているかを判定する。登録されていれば、伝達処理部214は、取得リクエストに付加されたセッションIDに紐付けて登録されたジョブをセッション管理部220から取得し、対応する実体データ(プリントデータやスキャン条件データ)をデータ格納部222から取得する。伝達処理部214は、ジョブおよび実体データを成功裡に取得すると、複合機134から送られたジョブの取得リクエストに応答して、通信部210を介して、ジョブおよび実体データを付加したレスポンスを返す。これにより、要求元の端末装置140から要求されたジョブを要求先の複合機134へ伝達する。
上記画面データは、さらに、取得リクエストに対するレスポンスとしてジョブが取得されたことに応答して、取得されたジョブを処理させる要求処理部236,238を呼び出すためのブラウザ解釈可能なコード記述を含む。複合機134上のプリント処理部236は、取得されたジョブがプリントジョブであった場合に呼び出され、プリントジョブとともに送られてきたプリントデータのプリント出力を実行する。
スキャン処理部238は、取得されたジョブがスキャンジョブであった場合に呼び出される。スキャン処理部238は、呼び出されると、スキャンジョブとともに送られてきたスキャン条件データに従い、スキャン入力を実行し、スキャン結果保存先アドレスで指定される記録領域にスキャンデータを保存する。スキャンデータは、以後、端末装置140から取得可能となる。
なお、上述した説明では、プリントジョブにおけるプリントデータなどの実体データは、端末装置140からのジョブ登録リクエストに付加され、また、複合機134からの取得リクエストに対するレスポンスに付加されるものとした。しかしながら、他の実施形態では、登録リクエスト、および取得リクエストに対するレスポンスには、実体データ自体を付することに代えて、実体データの取得先を示す取得先アドレスまたは実体データを識別する識別情報を付することができる。
取得先アドレスが付される場合は、複合機134は、取得先アドレスで特定されるジョブ仲介サーバ110または外部の他のサーバの記憶領域から実体データを取得し、いわゆるプル型印刷を行うことができる。あるいは、ジョブ仲介サーバ110が、特定される記憶領域から実体データを取得し、複合機134は、ジョブ仲介サーバ110から転送される実体データを受信する態様としてもよい。また、複合機134内の文書を識別する文書IDなど、実体データを識別する識別情報が付される場合は、実体データは、複合機134内の記憶領域から取得される。
以下、図5および図6を参照しながら、電子機器が、ディスプレイにコード画像を表示させて、ジョブが登録されるのを待ち受ける処理について説明する。図5は、本実施形態による複合機134が実行する処理を示すフローチャートである。図5に示す処理は、ステップS100から開始し、ステップS101では、複合機134は、操作者からのメニュー画面表示指示を受け付ける。このメニュー画面は、上述したコード画像を表示するコード画像表示画面に対応し、例えば複合機ブラウザ232にブックマークなどとして登録される。ステップS102では、複合機134は、複合機ブラウザ232により、事前設定されたジョブ仲介サーバ110にアクセスし、ジョブ仲介サーバ110から画像データとともに、自身に割り当てられたセッションIDを取得する。
ステップS103では、複合機134は、画像符号化部234により、取得されたセッションIDと、自身の能力を記述するデバイスタイプ情報と、事前設定されたジョブ登録用アドレスを含むアクセス情報とを用いて符号化し、例えば二次元コードを生成する。ステップS104では、複合機134は、生成された二次元コードをメニュー画面内に表示させる。図7(A)は、複合機ブラウザ232のブラウザ画面340内に表示されるメニュー画面を例示する図である。図7(A)に示すように、ブラウザ画面340には、二次元コードの読み取りを促すメッセージ表示342と、二次元コード344とが含まれている。
なお、説明する実施形態では、複合機ブラウザ232上にコード画像をメニュー表示する態様として説明するが、他の実施形態では、コード画像は、図7(B)に示すようなスクリーンセーバー画面360、起動ロゴ表示画面、システム画面、アバウト画面などに表示する態様としてもよく、特に限定されるものではない。図7(B)に示すスクリーンセーバー画面360も同様に、メッセージ表示362と、二次元コード364とを含んでいる。
引き続き複合機134は、ジョブ仲介サーバ110にジョブが登録されるのを待ち受ける。ステップS105では、複合機134は、セッションIDとともに受け取った有効期限と、現在時刻とを比較し、セッションIDの有効期限を過ぎているか否かを判定する。ステップS105で、有効期限が過ぎていると判定された場合(YES)は、ステップS113へ分岐させる。ステップS113では、複合機134は、タイムアウト画面に遷移させて、ステップS112で、本処理を終了する。
一方、ステップS105で、有効期限を過ぎていないと判定された場合(NO)は、ステップS106へ処理が進められる。ステップS106では、複合機134は、上記ジョブ仲介サーバ110に対し、セッションIDを付して、ジョブの取得リクエストを送信し、これに対応したレスポンスを受信する。ステップS107では、複合機134は、ジョブが取得されたか否かを判定する。
ステップS107で、ジョブが取得されなかったと判定された場合(NO)は、ステップS108へ処理を分岐させる。ステップS108では、複合機134は、所定時間待機し、ステップS105へループさせて、定期的に取得リクエストのポーリングを行う。一方、ステップS107で、ジョブがレスポンスに含まれており、ジョブが取得されたと判定された場合(YES)は、ステップS109へ処理が進められる。
ステップS109では、複合機134は、取得されたジョブに対応する要求処理部236,238を呼び出す。プリントジョブを取得した場合は、プリント処理部236が呼び出され、スキャンジョブを取得した場合は、スキャン処理部238が呼び出される。ステップS110では、複合機134は、対応する処理要求部236,238によってジョブを処理する。プリントジョブの場合は、プリント処理部236がプリントデータに従い印刷出力を行う。スキャンジョブの場合は、スキャン処理部238がスキャン条件データに従いスキャン処理を実行し、得られたスキャンデータを指定の保存先に保存する。ジョブにかかる処理が終了すると、ステップS111で、複合機134は、要求されたジョブが完了したことを示す処理完了画面に遷移させ、ステップS112で本処理を終了する。
図6は、他の実施形態による複合機134が実行する処理を示すフローチャートである。図6に示す処理は、ステップS200から開始する。なお、ステップS201からS204までの処理は、図5に示したステップS101からS104までの処理と同様であるため、説明を割愛する。ステップS204後、図5に示す処理フローと同様に、複合機134は、ジョブ仲介サーバ110にジョブが登録されるのを引き続き待ち受ける。ステップS205では、複合機134は、セッションIDの有効期限を過ぎているか否かを判定する。ステップS205で、有効期限が過ぎていると判定された場合(YES)は、ステップS213へ分岐させる。ステップS213では、複合機134は、タイムアウト画面に遷移させて、ステップS212で、本処理を終了する。
一方、ステップS205で、有効期限を過ぎていないと判定された場合(NO)は、ステップS206へ処理が進められる。ステップS206では、複合機134は、上記ジョブ仲介サーバ110に対し、セッションIDを付して、取得リクエストを送信する。図6に示す実施形態においては、ジョブ仲介サーバ110は、取得リクエストを受信すると、これに応答したレスポンスを一旦待機し、当該セッションIDに紐付けられたジョブが登録されるのを待ち受ける。当該セッションIDに紐付けられたジョブが登録された段階で、ジョブ仲介サーバ110は、待機を解除し、取得リクエストに対しレスポンスを返す。
ステップS207では、複合機134は、レスポンスを受信したか否かを判定する。ステップS207で、レスポンスを受信していないと判定された場合(NO)は、ステップS208へ処理を分岐させる。ステップS208では、複合機134は、所定のタイムアウト時間が過ぎたか否かを判定する。ステップS208で、タイムアウト時間を未だ過ぎていないと判定された場合(NO)は、ステップS207へループさせる。一方、ステップS208で、タイムアウト時間が過ぎたと判定された場合(YES)は、ステップS205へ処理をループさせて、さらなる取得リクエストの送信を行う。
一方、ステップS207で、レスポンスを受信したと判定された場合(YES)は、ステップS209へ処理を進める。ステップS209では、複合機134は、受信したレスポンスに含まれる処理要求に対応する要求処理部236,238を呼び出す。ステップS210では、複合機134は、対応する処理要求部236,238によりジョブを処理する。ステップS211では、複合機134は、処理完了画面に遷移させ、ステップS212で本処理を終了する。図6に示す処理フローの場合は、定期的にポーリングを行う場合に比較して、問い合わせのトラフィックを低減することができる。
以下、図8を参照しながら、端末装置が、電子機器のディスプレイに表示されたコード画像を読み取り、ジョブを登録するまでの処理について説明する。図8は、本実施形態による端末装置140が実行する処理を示すフローチャートである。図8に示す処理は、ステップS300から開始し、ステップS301では、端末装置140は、利用者からの指示に応答してコードリーダ部254を起動する。
ステップS302では、端末装置140は、撮像部252を起動して、ステップS303では、撮像部252により、複合機134の操作パネル上に表示された二次元コードを撮像する。ステップS304では、複合機134は、コードリーダ部254により、撮像された二次元コードをデコードする。ステップS305では、端末装置140は、コードリーダ部254により、接続情報に含まれるスキーマ情報から、本実施形態のジョブ仲介機能に対応したフォーマットのものであるか、または通常のURLを記述するフォーマットであるかを判定する。
ステップS305で、スキーマ情報がジョブ仲介機能に対応したフォーマットであることを示す場合(YES)は、ステップS306へ処理を進める。ステップS306では、端末装置140は、接続情報に含まれるデバイスタイプ情報から、呼び出す候補となる処理部を判定し、端末装置140が備えるディスプレイ上に候補を選択可能に提示する。ステップS307では、端末装置140は、ユーザにより候補の中から処理部が選択されたか、またはキャンセルされたかを判定する。
ステップS307で、ユーザにより処理部が選択されたと判定された場合(処理部選択)は、ステップS308へ処理を進める。ステップS308では、端末装置140は、選択された処理部を呼び出し、セッションIDおよびアクセス先アドレスを渡す。これにより、詳細を後述するが、呼び出された処理部は、アクセス先アドレスで特定されるジョブ仲介サーバ110にアクセスし、セッションIDとともにジョブの登録リクエストを行う。ステップS309では、端末装置140は、コードリーダ部254を終了させて、ステップS310で本処理を終了させる。
一方、ステップS307で、キャンセルされた場合(キャンセル)は、ステップS309へ直接分岐させる。この場合、ステップS309で、コードリーダ部254を終了させて、ステップS310で本処理を終了する。一方、ステップS305で、スキーマ情報が通常のフォーマットを示していた場合(NO)は、ステップS311へ処理を分岐させる。ステップS311では、通常の二次元コードの処理を行い、ステップS309で、コードリーダ部254を終了させて、ステップS310で本処理を終了させる。ここで、通常の処理としては、特に限定されるものではないが、二次元コードから抽出された記号をURLとして認識し、例えばブラウザを呼び出す処理である。
以下、図9を参照しながら、ジョブ仲介サーバ110が、電子機器および複合機からのリクエストを受信してレスポンスを返信する処理について説明する。図9は、本実施形態によるジョブ仲介サーバ110が実行する処理を示すフローチャートである。図9に示す処理は、ステップS400から開始し、ステップS401では、ジョブ仲介サーバ110は、通信部210により、電子機器または複合機からのリクエストを受信する。ステップS402では、リクエストの種類に応じて、処理を分岐させる。
ステップS402で、受信したリクエストがメニュー画面を求めるメニュー画面リクエストである場合(メニュー画面リクエスト)には、ステップS403へ処理が分岐される。ステップS403では、ジョブ仲介サーバ110は、セッションID生成部218により、セッションIDを採番し、ステップS404で、セッション管理部220にセッションIDを保存する。図10は、セッション管理部220が管理するセッション管理テーブルを例示する。図10に示すように、セッションIDの新規生成により、セッション管理テーブル380に、セッションIDカラム380aに値を有するレコードが追加される。ステップS405では、ジョブ仲介サーバ110は、セッションIDを含むメニュー画面を記述する画面データをレスポスに付して、通信部210により、要求元(複合機134)に送信し、ステップS406で本リクエストに応答した処理を終了する。
ステップS402で、受信したリクエストがジョブの登録リクエストである場合(登録リクエスト)には、ステップS407へ処理が分岐させる。ステップS407では、ジョブ仲介サーバ110は、登録リクエストに付されたセッションIDがセッション管理テーブル380に登録されているか否かを判定する。セッションID自体が未登録であるか、セッションIDの有効期限が満了していた場合は、登録されていないと判定される。ステップS407でセッションIDが登録されていないと判定された場合(NO)は、ジョブ仲介サーバ110は、ステップS410で、要求元(端末装置140)に失敗を示すレスポンスを送信し、ステップS406で本処理を終了させる。
一方、ステップS407で、セッションIDが登録されていると判定された場合(YES)は、ステップS408へ処理が進められる。ステップS408では、ジョブ仲介サーバ110は、登録リクエストに付されたセッションIDを保持するレコードのカラム380bに所定の有効期限を入力し、ジョブおよび実体データをデータ格納部222に保存し、カラム380cにジョブおよび実体データへのリンク情報を入力する。ステップS409では、要求元である端末装置140に登録の成功を示すレスポンスを送信し、ステップS406で本処理を終了する。
ステップS402で、受信したリクエストがジョブの取得リクエストである場合(取得リクエスト)は、ステップS411へ処理が分岐される。ステップS411では、ジョブ仲介サーバ110は、取得リクエストに付されたセッションIDに紐付けられたジョブがセッション管理部テーブル380に登録されているか否かを判定する。セッションIDに対応するジョブが未登録であるか、セッションIDの有効期限が満了していた場合は、登録されていないと判定される。ステップS411で、セッションIDに紐付けられたジョブが登録されていないと判定された場合(NO)は、ジョブ仲介サーバ110は、ステップS410で、要求元である複合機134に失敗を示すレスポンスを送信し、ステップS406で本処理を終了させる。
一方、ステップS411で、セッションIDに紐付けられたジョブが登録されていると判定された場合(YES)は、ステップS412へ処理を進める。ステップS412では、ジョブ仲介サーバ110は、取得リクエストに付されたセッションIDを有するレコードをセッション管理部テーブル380読み出し、カラム380cのリンク情報に基づいてジョブおよび実体データをデータ格納部222から読み出し、ステップS413で、要求元である複合機134にジョブおよび実体データを付してレスポンスを送信し、ステップS406で本処理を終了する。
図11は、本実施形態によるジョブ処理システム200でプリントジョブを実行する流れを示すシーケンス図である。なお、図11の開始時点では、複合機134からジョブ仲介サーバ110へメニュー画面リクエストが行われ、複合機134の操作パネル上には、コード画像が表示されているものとする。
ステップS500では、複合機134は、ジョブ仲介サーバ110に対し、ジョブの取得リクエストをセッションIDとともに送信する。この時点では、このセッションIDに紐付けてジョブが登録されていないので、ステップS501では、ジョブ仲介サーバ110は、複合機134に対し、登録無しのレスポンスを送信する。
ステップS502では、端末装置140は、複合機134の操作パネル上からコード画像を読み取り、ユーザからプリントジョブが指令されたことに応答して、プリントジョブの登録リクエストをジョブ仲介サーバ110に送信する。登録リクエストには、セッションIDおよびプリントデータが付加される。ステップS503では、ジョブ仲介サーバ110は、登録リクエストに応答して、セッション管理テーブル380にプリントジョブを登録する。
ステップS504では、複合機134は、再度、ジョブ仲介サーバ110に対し、ジョブの取得リクエストをセッションIDとともに送信する。この時点では、ステップS502およびS503で、このセッションIDに紐付けてジョブが登録されているので、ステップS505では、ジョブ仲介サーバ110は、複合機134に対し、登録有りレスポンスを送信する。登録有りレスポンスには、プリントデータが付加される。ステップS506では、複合機134は、受信されたジョブがプリントジョブであると判断し、付加されたプリントデータに従って処理し、プリント出力を実行する。このようにして、本実施形態によるジョブ処理システム200において、端末装置140から複合機134に対して要求されたプリントジョブが実行される。
図12は、本実施形態によるジョブ処理システム200でスキャンジョブを実行する流れを示すシーケンス図である。なお、図12の開始時点では、図11と同様に、複合機134からジョブ仲介サーバ110へメニュー画面リクエストが行われ、複合機134の操作パネル上には、コード画像が表示されている。ステップS600では、複合機134は、ジョブ仲介サーバ110に対し、ジョブの取得リクエストをセッションIDとともに送信し、ステップS601では、ジョブ仲介サーバ110は、複合機134に対し、登録無しのレスポンスを送信する。
ステップS602では、端末装置140は、複合機134の操作パネル上からコード画像を読み取り、ユーザからスキャン条件の設定を受けてスキャンジョブが指令されたことに応答して、スキャンジョブの登録リクエストをジョブ仲介サーバ110に送信する。登録リクエストには、セッションIDおよびスキャン条件データが付加される。ステップS603では、ジョブ仲介サーバ110は、登録リクエストに応答して、セッション管理テーブル380にスキャンジョブを登録する。また、ステップS604では、スキャン結果保存先アドレスを生成し、登録リクエストに対するレスポンスにスキャン結果保存先アドレスを付加して送信する。
ステップS605では、端末装置140は、スキャン結果保存先アドレスで指定されるジョブ仲介サーバ110にアクセスし、スキャン結果の取得を試みる。この時点では、スキャン処理が完了していないので、ステップS606では、ジョブ仲介サーバ110は、端末装置140に対し、結果無しのレスポンスを送信する。
ステップS607では、複合機134は、再度、ジョブ仲介サーバ110に対し、ジョブの取得リクエストをセッションIDとともに送信する。この時点では、ステップS602およびS603で、このセッションIDに紐付けてジョブが登録されているので、ステップS608では、ジョブ仲介サーバ110は、複合機134に対し、登録有りレスポンスを送信する。登録有りレスポンスには、スキャン条件データ(スキャン結果保存先アドレスを含む。)が付加される。
ステップS609では、複合機134は、受信されたジョブがスキャンジョブであると判断し、付加されたスキャン条件データに従ってスキャン入力を実行する。ステップS610では、複合機134は、スキャン結果として得られたスキャンデータを、スキャン結果保存先アドレスで指定されるジョブ仲介サーバ110の保存先に送信する。ステップS611では、ジョブ仲介サーバ110は、受信したスキャンデータを所定の保存領域に保存する。
ステップS612では、端末装置140は、スキャン結果保存先アドレスで指定されるジョブ仲介サーバ110に再度アクセスし、スキャン結果の取得を試みる。この時点では、ステップS609〜S611で、スキャン処理が完了し、スキャンデータが保存されている。したがって、ステップS613では、ジョブ仲介サーバ110は、端末装置140に対し、スキャンデータを付加したレスポンスを送信する。このようにして、本実施形態によるジョブ処理システム200において、端末装置140から複合機134に対して要求されたスキャンジョブが実行される。
上述までは、電子機器として複合機134について説明してきたが、以下、図13および図14を参照しながら、本実施形態のジョブ処理システムにおける、ジョブ仲介サーバによるジョブ仲介機能について、電子機器がプロジェクタ136で有る場合について説明する。図13は、本実施形態によるジョブ処理システム200において実現される他の機能ブロックを示す図である。図13には、ジョブ仲介サーバ110および端末装置140上に実現される機能ブロックと、プロジェクタ136上に実現される機能ブロックとが示されている。
ジョブ仲介サーバ110上には、図3と同様の機能部220〜222が示されている。プロジェクタ136上の機能ブロックは、プロジェクタ136が備えるネットワーク・インタフェース機器を制御する通信部270と、クライアント部272と、画像符号化部274と、映像投影処理部276とを含み構成される。また図13に示す端末装置140上の機能ブロックは、図3に示したプリント要求部256およびスキャン要求部258(これらは図13において図示しない。)の他、投影要求部260を含み構成される。
端末装置140は、図4(B)に示すように、上記プロジェクタ136がスクリーン320に投影するコード画像322を、カメラなどの撮像部252を用いて読み取り、コード画像から取得される接続情報に基づいて、プロジェクタ136に対しジョブ要求を行う。コードリーダ部254は、コード画像から接続情報を抽出すると、抽出されたデバイスタイプ情報およびユーザ選択に応じて、要求部256,258、260を呼び出す。プロジェクタ136から読み取られたコード画像には、投影機能を有する旨を記述するデバイスタイプが含まれるので、プロジェクタ操作用アプリケーションがユーザ選択可能に提示される。
投影要求部260は、コードリーダ部254からの呼び出しに応答して起動し、ユーザからの投影対象のプレゼンテーション・ファイルを指定した投影実行指示を受け付ける。投影要求部260は、この指示に応答して、接続情報中のジョブ登録用のアドレスを用いてジョブ仲介サーバ110に投影ジョブの登録を求める登録リクエストを送信する。登録リクエストには、登録を求める処理要求が投影ジョブであることを示す情報、要求先のプロジェクタ136を識別するセッションID、および投影対象の投影データが付される。投影データは、例えば、プレゼンテーション・ファイル、PDF(Portable Document File)など、プロジェクタ136が投影可能な任意のファイルとすることができる。登録処理部216は、投影ジョブをセッション管理部220に登録するとともに、投影ジョブとともに送られてきた投影データをデータ格納部222に保存し、リンク情報をセッション管理部220に保存する。
プロジェクタ136上のクライアント部272は、ジョブ仲介サーバ110から画面データを取得し、画像符号化部274により符号化されたコード画像をスクリーン上に投影する。プロジェクタ136は、複合機134と同様に、上記セッションIDが埋め込まれたコード画像を端末装置140が外部読取可能に投影している間、定期的または不定期にジョブ仲介サーバ110に、セッションIDとともにジョブの取得リクエストを送信する。伝達処理部214は、プロジェクタ136から送られたジョブの取得リクエストに応答して、取得リクエストに付加されたセッションIDに紐付けて登録されたジョブおよび対応する投影データを付加したレスポンスを返す。これにより、要求元の端末装置140から要求されたジョブを要求先のプロジェクタ136へ伝達する。
クライアント部272は、取得リクエストに対するレスポンスとして投影ジョブが取得されたことに応答して、取得された投影ジョブを処理させる映像投影処理部276を呼び出す。映像投影処理部276は、投影ジョブとともに送られてきた投影データの投影出力を実行する。
図14は、本実施形態によるジョブ処理システム200で投影ジョブを実行する流れを示すシーケンス図である。なお、図14の開始時点では、図11と同様に、プロジェクタ136からジョブ仲介サーバ110へメニュー画面リクエストが行われ、プロジェクタ136が投影するスクリーン上には、コード画像が表示されているものとする。
ステップS700では、プロジェクタ136は、ジョブ仲介サーバ110に対し、ジョブの取得リクエストをセッションIDとともに送信する。この時点では、このセッションIDに紐付けてジョブが登録されていないので、ステップS701では、ジョブ仲介サーバ110は、プロジェクタ136に対し、登録無しのレスポンスを送信する。
ステップS702では、端末装置140は、プロジェクタ136が投影するスクリーンからコード画像を読み取り、ユーザから投影ジョブが指令されたことに応答して、投影ジョブの登録リクエストをジョブ仲介サーバ110に送信する。登録リクエストには、セッションIDおよび投影データが付加される。ステップS703では、ジョブ仲介サーバ110は、登録リクエストに応答して、セッション管理テーブル380に投影ジョブを登録する。
ステップS704では、プロジェクタ136は、再度、ジョブ仲介サーバ110に対し、ジョブの取得リクエストをセッションIDとともに送信する。ステップS705では、ジョブ仲介サーバ110は、プロジェクタ136に対し、登録有りレスポンスを送信する。登録有りレスポンスには、投影データが付加される。ステップS706では、プロジェクタ136は、受信されたジョブが投影ジョブであると判断し、付加された投影データに従って処理し、投影出力を実行する。このようにして、本実施形態によるジョブ処理システム200において、端末装置140からプロジェクタ136に対して要求された投影ジョブが実行される。
以下、図15および図16を参照しながら、本実施形態による電子機器134,136およびジョブ仲介サーバ110のハードウェア構成について説明する。図15は、本実施形態による(A)複合機および(B)ジョブ仲介サーバのハードウェア構成を示す図である。図16は、本実施形態によるプロジェクタのハードウェア構成を示す図である。図15(A)に示す複合機134は、CPU(中央演算処理装置)を含む制御部22と、RAM(Random Access Memory)などの主記憶部24とを含む。複合機134は、さらに、HDD(Hard Disk Drive)やSSD(Solid State Drive)などの補助記憶部26と、外部記憶装置I/F部28と、NIC(Network interface Card)などのネットワークI/F部30と、エンジン部32と、操作パネル部34とを含む。
補助記憶部26は、画像データ、文書データ、プログラム、フォントデータやフォームデータなどを蓄積し、また、複合機134を制御するためのOS、上述した機能部を実現するための制御プログラムや各種システム情報や各種設定情報を格納する。外部記憶装置I/F部28は、USBフラッシュメモリ、スマートメディア(登録商標)、SDメモリーカード(登録商標)などの外部記憶メディアと接続するためインタフェース機器である。ネットワークI/F部30は、複合機134をネットワークに接続させるインタフェース機器である。
エンジン部32は、電子写真方式などのプロッタ・エンジンと、CCD(Charge Coupled Device)方式やCIS(Contact Image Sensor)方式などのスキャナ・エンジンとを含む。操作パネル部34は、適宜液晶ディスプレイなどの表示装置と、ハードキーやタッチパネルなどの入力装置とを含む。操作パネル部34は、コード画像を出力する出力手段であり、複合機134のオペレータからの各種指示の入力を受け付けるためのユーザ・インタフェースを提供する。複合機134は、補助記憶部26から各種プログラムを読み出し、主記憶部24が提供する作業空間に展開することにより、制御部22の制御の下、上述した各機能部および各処理を実現する。
ジョブ仲介サーバ110は、デスクトップ型パーソナル・コンピュータ、ワークステーション、ブレードサーバ、ラックマウントサーバなどの汎用コンピュータ装置として構成される。図15(B)に示すジョブ仲介サーバ110は、シングルコアまたはマルチコアのCPUを含む制御部52と、RAMなどの主記憶部54と、HDDやSSDを備える補助記憶部56と、外部記憶装置I/F部58と、ネットワークI/F部60とを含む。
ジョブ仲介サーバ110は、さらに、入力部62と、ディスプレイ部64とを含むことができ、ジョブ仲介サーバ110のオペレータからの各種指示の入力を受け付けるためのユーザ・インタフェースを提供する。入力部62は、マウス、キーボード、タッチパネルなどの入力装置を含む。ジョブ仲介サーバ110は、補助記憶部56からOSや上記ジョブ処理サーバを実現するためのプログラムを読み出し、主記憶部54が提供する作業空間に展開することにより、制御部52の制御の下、上述した各機能部および各処理を実現する。なお、タブレット端末126およびスマートフォン端末140についても、個々の具体的なハードウェア要素は異なるものの、上記ジョブ仲介サーバ110と類似する構成を採用すればよい。
図16に示すプロジェクタは、プロセッサを含む制御部82と、RAMなどの主記憶部84と、フラッシュメモリなどの補助記憶部86と、外部記憶装置I/F部88と、ネットワークI/F部90とを含む。プロジェクタ136は、映像表示部92と、キー操作を受け付ける操作部94とを含む。映像表示部92は、コード画像を出力する出力手段であり、液晶,DLP(登録商標),LCOS(Liquid Crystal On Silicon)などの方式で、スクリーンに映像を投影する。プロジェクタ136は、補助記憶部86からOSや上記プロジェクタを実現するためのプログラムを読み出し、主記憶部84が提供する作業空間に展開することにより、制御部82の制御の下、上述した各機能部および各処理を実現する。
なお、説明する実施形態では、ビデオ・プロジェクタとしたが、ネットワークを経由して、投影ないし表示データを受信し、投影ないし表示操作を受け付けることができる液晶ディスプレイ、有機ELディスプレイ、プラズマ・ディスプレイ、リアプロジェクション・ディスプレイなどを対象としてもよい。
また、上述までの実施形態では、セッションID、スキーマ情報、デバイスタイプ情報、アクセス情報を含む接続情報が、コード画像の形態で、ディスプレイまたはスクリーンへ映像出力されるものとして説明してきた。しかしながら、接続情報が映像出力される実施形態に限定されるものではない。例えば、電子機器が複合機134などのようにプリント機能を有する場合は、接続情報を符号化したコード画像を印刷出力してもよい。
また、他の実施形態では、接続情報をコード画像の形態で出力することに代えて、RFID(Radio Frequency IDentification)機能などの非接触の無線出力の形態で出力することができる。非接触による無線出力においては、セッションIDは、セッションIDを符号化した無線信号の形態で出力される。端末装置140は、カメラなどの画像読取手段に代えて、出力された無線信号を読み取る、RFIDリーダなどの無線読取手段を備える。コードリーダ部254は、無線信号から得られるデータ信号を解析して、接続情報をデコードする。
以上説明したように、本実施形態によれば、互いに異なるネットワークに属する端末装置および電子機器の組み合わせであっても、ネットワークを介して端末装置から電子機器に対し処理要求を行うことを可能とするサーバ装置、要求処理システムおよび電子機器を提供することができる。また、上記構成によれば、ネットワークを介して端末装置から電子機器に対し処理要求を行うユーザの作業を簡略化することができる。
上記機能部は、アセンブラ、C、C++、C#、Java(登録商標)などのレガシープログラミング言語やオブジェクト指向プログラミング言語などで記述されたコンピュータ実行可能なプログラムにより実現でき、ROM、EEPROM、EPROM、フラッシュメモリ、フレキシブルディスク、CD−ROM、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、ブルーレイディスク、SDカード、MOなど装置可読な記録媒体に格納して、あるいは電気通信回線を通じて頒布することができる。
これまで本発明の実施形態について説明してきたが、本発明の実施形態は上述した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。