(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-06
(45)【発行日】2024-12-16
(54)【発明の名称】画像処理装置、クラウドプリントサービスの提供方法、およびプログラム
(51)【国際特許分類】
G06F 3/12 20060101AFI20241209BHJP
B41J 29/38 20060101ALI20241209BHJP
H04N 1/00 20060101ALI20241209BHJP
【FI】
G06F3/12 360
G06F3/12 310
G06F3/12 387
G06F3/12 367
B41J29/38 201
H04N1/00 127A
H04N1/00 912
(21)【出願番号】P 2020192506
(22)【出願日】2020-11-19
【審査請求日】2023-11-07
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100114775
【氏名又は名称】高岡 亮一
(74)【代理人】
【識別番号】100121511
【氏名又は名称】小田 直
(74)【代理人】
【識別番号】100208580
【氏名又は名称】三好 玲奈
(72)【発明者】
【氏名】井上 剛
【審査官】佐藤 実
(56)【参考文献】
【文献】特開2020-119016(JP,A)
【文献】特開2019-133399(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/09 - 3/12
B41J 29/00 -29/70
H04N 1/00
(57)【特許請求の範囲】
【請求項1】
画像処理装置をクラウドプリントサービスに登録
することで、前記クラウドプリントサービス上に前記画像処理装置に送信すべき印刷ジョブを格納するプリンタキューを生成
させる画像処理装置であって、
前記クラウドプリントサービス上
の仮想プリンタが管理する印刷ジョブの情報を前記クラウドプリントサービスから取得する取得手段と、
前記取得手段が取得した印刷ジョブの情報に対応する当該印刷ジョブのうち、1以上の印刷ジョブを印刷するための操作を受け付けた場合、
印刷対象とされる前記1以上の印刷ジョブを、前記クラウドプリントサービス上に設けられた前記画像処理装置用のプリンタキューに移動することを指示する制御手段と、
前記クラウドプリントサービスの前記プリンタキューに
移動された印刷ジョブを
IPP(Internet Printing Procotol)を用いて取得するジョブ取得手段と、を有することを特徴とする画像処理装置。
【請求項2】
画像処理装置であって、
前記画像処理装置をクラウドプリントサービスに登録し、前記クラウドプリントサービス上に前記画像処理装置に送信すべき印刷ジョブを格納するプリンタキューを生成する登録手段と、
前記画像処理装置が、前記クラウドプリントサービス上で仮想プリンタに関連付けられている場合に、当該仮想プリンタが管理する印刷ジョブの情報を前記クラウドプリントサービスから取得する取得手段と、
前記仮想プリンタが管理する印刷ジョブを印刷するための操作を受け付けた場合、前記取得手段が取得した印刷ジョブの情報に少なくとも基づき特定される印刷ジョブを、前記クラウドプリントサービス上に設けられた前記画像処理装置用のプリンタキューに移動することを指示する制御手段と、
前記クラウドプリントサービスの前記プリンタキューに格納された印刷ジョブを取得するジョブ取得手段と、
前記取得手段で取得された印刷ジョブの情報に基づき、ジョブ選択画面を表示する表示制御手段と、
前記ジョブ選択画面を介したユーザ操作に基づいて、印刷対象とすべき1以上の印刷ジョブを特定する特定手段と、を有し、
前記制御手段は、前記特定手段で特定された前記1以上の印刷ジョブを前記クラウドプリントサービス上に設けられた前記画像処理装置用のプリンタキューに移動することを指示することを特徴とする画像処理装置。
【請求項3】
前記取得手段は、前記画像処理装置にログインしたユーザに対応する印刷ジョブであって、前記仮想プリンタが管理する印刷ジョブの情報を前記クラウドプリントサービスから取得することを特徴とする請求項1
又は2に記載の画像処理装置。
【請求項4】
前記取得手段で取得された印刷ジョブの情報に基づき、ジョブ選択画面を表示する表示制御手段と、
前記ジョブ選択画面を介したユーザ操作に基づいて、
前記印刷対象とすべき1以上の印刷ジョブを特定する特定手段と、を有し、
前記制御手段は、前記特定手段で特定された前記1以上の印刷ジョブを前記クラウドプリントサービス上に設けられた前記画像処理装置用のプリンタキューに移動することを指示することを特徴とする請求項
1に記載の画像処理装置。
【請求項5】
前記クラウドプリントサービスから前記画像処理装置に関連付けることができる仮想プリンタの候補を受信する受信手段と、
前記受信した候補の中からユーザ操作で選択された仮想プリンタの配下の画像処理装置として、前記画像処理装置を関連付ける要求を前記クラウドプリントサービスに依頼する依頼手段と、を有する特徴とする請求項1乃至
4のいずれか1項に記載の画像処理装置。
【請求項6】
前記クラウドプリントサービス上に設けられた前記画像処理装置用のプリンタキューへのアクセスに利用する第1のアクセストークンと、前記仮想プリンタへのアクセスに利用する第2のアクセストークンとを管理する管理手段を有し、
前記依頼手段の依頼に基づき関連付けが行われたことに従って前記第2のアクセストークンが発行されることを特徴とする請求項
5に記載の画像処理装置。
【請求項7】
前記クラウドプリントサービス上の前記仮想プリンタの利用を有効とするか否かを設定する第2の設定手段を有することを特徴とする請求項1乃至
6のいずれか1項に記載の画像処理装置。
【請求項8】
クラウドプリントサービスを提供する提供方法であって、
複数の画像処理装置に関連付けられた仮想プリンタと、当該仮想プリンタに対応する仮想プリンタキューを管理する第1の管理工程と、
前記仮想プリンタキューに格納された印刷ジョブを対象として指定した所定の要求を第1の画像処理装置から受信した場合に、前記第1の画像処理装置用に設けられたプリンタキューに当該対象として指定された印刷ジョブを移動するジョブ制御工程と、有し、
前記第1の画像処理装置用に設けられたプリンタキューに格納された印刷ジョブを取得する要求を前記第1の画像処理装置から受け付けた場合に前記要求に対応する印刷ジョブを前記第1の画像処理装置に送信する送信制御工程と、
を有することを特徴とする提供方法。
【請求項9】
ユーザ操作に基づき、仮想プリンタを生成する生成工程と、
前記クラウドプリントサービスに登録されている画像処理装置を管理する第2の管理工程と、
ユーザ操作に基づき、仮想プリンタと、前記登録されている画像処理装置の対応関係を設定する設定工程と、
を有することを特徴とする請求項
8に記載の提供方法。
【請求項10】
前記所定の要求は、対象として指定された印刷ジョブを前記仮想プリンタキューから前記第1の画像処理装置用に設けられたプリンタキューに移すことを要求する移動要求であることを特徴とする請求項
8又は
9に記載の提供方法。
【請求項11】
請求項
8又は
9に記載の提供方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、クラウドプリントサービスの提供方法、およびプログラムに関する。
【背景技術】
【0002】
クラウド経由で投入された印刷ジョブを印刷装置等の画像処理装置に送信して実行する印刷システムが提案されている(例えば、特許文献1参照)。このようなクラウド印刷を行う印刷システムでは、管理者が、印刷装置をクラウドプリントサービス(以降、CPSとも呼ぶ)へ登録する。その後、クラウドプリントサービスの使用を許可されているユーザが、それぞれのクライアント端末を使用して、CPSに登録されたプリンタの検索、プリンタの追加を行った上で、所望の印刷設定を行い、CPSに対して印刷ジョブを送信する。そして、印刷ジョブの実行時に、CPSが印刷装置に対して印刷ジョブを出力し、印刷装置は出力された印刷ジョブに基づき印刷を実行する。
【0003】
上述したような印刷システムの例は、PWG5100.18やRFC3995およびRFC3996などで言及されている。これらの規格では、クラウドプリントサービスから印刷装置に対してイベントを通知する方法も規定されている。通知を実現する1方式として、印刷装置が定期的にクラウドプリントサービスに問合せを行い、当該問合せの応答としてイベント通知を受信するといった通知方式が規定されている。また、印刷装置とCPSが常時接続を維持し、CPSでイベントが発生すると印刷装置にプッシュ通知される通知方式も規定されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
クラウドプリントサービスを組織単位で使用する場合、クラウドプリントサービスに組織が所有するプリンタを登録することとなる。例えば、大企業や官公庁などの組織では、多数のプリンタを所有していることが多く、多数のプリンタがクラウドプリントサービスに登録されることになる。
【0006】
上述した環境の場合にユーザがクライアント端末からクラウドプリントサービスに登録されている印刷装置を検索すると、数十台あるいは数百台の印刷装置が検索結果に表示され、所望の印刷装置を見つけにくい。
【0007】
複数の印刷装置をまとめて1つのプリンタとして管理するための仮想プリンタをクラウドプリントサービス上に生成し、仮想プリンタを当該複数の印刷装置の代表として探索結果に表示するよう構成することが考えられる。
しかしながら、単純に仮想プリンタに多数の印刷装置を関連付けると、仮想プリンタを実現するソフトウェアモジュールに負荷が集中する可能性がある。例えば、複数の印刷装置が同一の仮想プリンタに対して印刷ジョブデータの取得要求を行う場合がある。この場合、クラウドプリントサービス上の仮想プリンタに長時間且つ複数のデータアクセスが集中する場合がある。具体的には、印刷装置Aが、ユーザAが投入した印刷ジョブデータを取得している間に、印刷装置Bは別のユーザBの要求に応じて別のユーザが投入した印刷ジョブデータを取得する場合がある。これら複数のアクセスやデータ送受信制御を1のソフトウェアモジュールである仮想プリンタで対応しようとすると、通信やパフォーマンスの遅延を引きおこす可能性がある。本発明は、上述の問題点の1つを鑑みなされたものである。本発明の1つの側面としては、仮想プリンタを利用した画像処理の際の仮想プリンタの負荷を抑制することができる画像処理装置の提供を目的の1つとする。
【課題を解決するための手段】
【0008】
本発明の一実施形態の画像処理装置は、画像処理装置をクラウドプリントサービスに登録することで、前記クラウドプリントサービス上に前記画像処理装置に送信すべき印刷ジョブを格納するプリンタキューを生成させる画像処理装置であって、前記クラウドプリントサービス上の仮想プリンタが管理する印刷ジョブの情報を前記クラウドプリントサービスから取得する取得手段と、前記取得手段が取得した印刷ジョブの情報に対応する当該印刷ジョブのうち、1以上の印刷ジョブを印刷するための操作を受け付けた場合、印刷対象とされる前記1以上の印刷ジョブを、前記クラウドプリントサービス上に設けられた前記画像処理装置用のプリンタキューに移動することを指示する制御手段と、前記クラウドプリントサービスの前記プリンタキューに移動された印刷ジョブをIPP(Internet Printing Procotol)を用いて取得するジョブ取得手段と、を有する。
【発明の効果】
【0009】
本発明の画像処理装置によれば、仮想プリンタを利用した画像処理の際の仮想プリンタの負荷を抑制することができる。
【図面の簡単な説明】
【0010】
【
図2】クラウドプリントサービスを利用した印刷処理の一例を示す図である。
【
図3】プリンタ検索に関する画面の一例を示す図である。
【
図4】印刷装置のハードウェア構成の一例を示す簡略図である。
【
図7】仮想プリンタの検索の際に表示される画面の一例を示す図である。
【
図8】クラウドプリントサービスが管理するプリンタ一覧の例を示す図である。
【
図9】印刷装置における設定画面の一例を示す図である。
【
図10】ログイン画面と、ログイン中に表示される画面の一例を示す図である。
【
図12】印刷装置の動作処理の一例を説明するフローチャートである。
【
図13】ログイン処理の一例を説明するフローチャートである。
【
図14】印刷ジョブの投入イベントの発生時の印刷処理を説明する図である。
【
図15】クラウド印刷の際にやりとりされるパケットの一例を示す図である。
【
図16】クラウド印刷の設定に用いる画面の一例を示す図である。
【
図17】クラウド印刷の設定に用いる画面の一例を示す図である。
【
図18】仮想プリンタの設定処理の例を説明する図である。
【
図19】印刷装置が実行する処理の一例を説明するフローチャートである。
【
図20】クラウドプリントサービスの設定画面の一例を示す図である。
【
図21】クラウドプリントサービスの設定画面の一例を示す図である。
【
図22】クラウドプリントサービスの設定画面の一例を示す図である。
【
図23】仮想プリンタの設定処理の例を説明する図である。
【
図24】関連付け通知に用いられるパケットの一例を示す図である。
【
図25】関連付け通知がされた際の印刷装置の動作処理を説明する図である。
【発明を実施するための形態】
【0011】
(実施例1)
<システム構成>
図1は、本実施形態のシステム構成を示すブロック図である。
本実施形態では、印刷装置が、クラウドプリントサービス上の仮想プリンタに対して、印刷装置のユーザに対応する印刷ジョブを、印刷装置のプリンタキューに移動することを指示する。
【0012】
図1に示すシステムは、複数の印刷装置101、102と、クラウドプリントサービス103と、クライアント端末104とを有する。クライアント端末104は、ユーザの操作に応じて、クラウドプリントサービス103に対して印刷ジョブを投入するコンピュータである。クラウドプリントサービス103は、クライアント端末から受信した画像処理に関するジョブ(例えば印刷ジョブ)を保存し、印刷装置からの要求に応じて当該印刷装置に対してジョブを出力するサービスである。クラウドプリントサービス103が提供する各サービス本実施形態の処理を実現するためのプロセッサ、メモリ、ストレージ等の所謂汎用コンピュータを構成するサーバリソースにより実現される。クラウドプリントサービス103は、例えば、仮想マシン(クラウドサービス)が提供するコンピューティングリソースより実現されてもよいし、サーバ装置等の情報処理装置によって実現されてもよい。また、複数のサーバ装置等を協働させて実現されていてもよい。また、本発明の適用範囲は、印刷処理のための印刷ジョブに限定されない。本発明は、印刷処理以外の、例えば画像データの読み取り処理、加工/編集処理、メッセージ共有システムへの投稿処理など、任意の画像処理に関するジョブに適用可能である。
【0013】
続けて、
図2、
図3を用いてクラウドプリントサービス103へのプリンタ登録と、クラウド経由の印刷について簡単に説明する。
管理者は、印刷装置101、102のそれぞれをクラウドプリントサービス103に登録する(
図2のS201乃至210)。これにより、それぞれの印刷装置のプリンタキューがクラウドプリントサービス上に生成される。ユーザがクライアント端末104を操作してクラウドプリントサービス103にプリンタ検索の要求を行うと、検索結果が表示される(S211乃至S214)。例えば、
図3の画面301の操作によりプリンタ検索が行われ、画面302のように検索結果が表示される。ユーザが検索結果から印刷装置を選択すると、印刷装置が登録されて、画面303に表示される(
図2のS215、S216)。登録が完了すると、ユーザはクライアント端末上に登録された印刷装置を用いてクラウドプリントサービス103経由の印刷を行うことができるようになる。ユーザは、クラウドプリントサービス上の印刷装置が出力先のプリンタとして選択し、印刷指示を行う。クライアント端末104は、印刷対象のデータに基づき印刷データを生成する。また、当該生成した印刷データと印刷設定を含む印刷ジョブをクラウドプリントサービス103に送信する(
図2のS217、218)。クラウドプリントサービス103のプリンタキューに印刷ジョブが投入されると、当該キューに1対1対応しているプリンタである印刷装置101にイベントが通知される。イベントの通知を受信した印刷装置101は、クラウドプリントサービス103上のプリンタキューから印刷ジョブを取得して、印刷処理を実行する(S219乃至S222)。
また、本実施形態のクラウドプリントサービス103は、クラウドプリントサービス103の配下の複数の印刷装置を1つの仮想プリンタに関連づけて管理する機能を提供する。仮想プリンタや関連付けについては後述する。
【0014】
図1の説明に戻る。印刷装置101、102は、クラウドプリントサービス103から画像処理に関するジョブ(印刷ジョブ)を取得し、画像処理を実行する画像処理装置の一例である。本発明が適用可能な画像処理装置は、例えば、プリンタ、複写機、デジタル複合機、3Dプリンタ等である。印刷装置101、102とクラウドプリントサービス103とは、ネットワーク(NW)100およびインターネットを介して通信可能に接続されている。また、クライアント端末104とクラウドプリントサービス103とは、インターネットを介して通信可能に接続されている。なお、印刷装置の台数は2台に限定されない。
【0015】
<印刷装置のハードウェア構成>
図4は、印刷装置のハードウェア構成の一例を示す簡略図である。
印刷装置101は、制御部412、操作部409、スキャナ410、プリンタ411を有する。制御部412は、CPU401乃至ネットワークI/F408を有し、印刷装置101全体を制御する。操作部409は、タッチ操作可能なディスプレイであり、本実施形態における各種の設定画面が表示される。ユーザまたは管理者は、操作部409を操作することによって各種の設定を行うことができる。スキャナ410は画像データをスキャンするスキャンエンジンである。プリンタ411は、ネットワークI/F408を介して外部装置から受信された印刷ジョブに基づきシートに画像を印刷するプリンタエンジンである。プリンタ411は、外部装置やクラウドプリントサービス103から受信した印刷ジョブに基づく印刷画像を紙などのシートに印刷する。印刷が完了したシートは図示省略の出力トレイに出力される。
【0016】
CPU(Central Processing Unit)401を含む制御部412は、印刷装置101全体の動作を制御する。CPU401は、ROM402又はストレージ404に記憶された制御プログラムを読みだして実行し、印刷装置101が有する各処理部を直接あるいは間接的に制御する。ROM402には、BIOS(Basic Input/Output System)が格納される。ROMは、Read Only Memoryの略称である。
【0017】
RAM403は、CPU401のワーク領域として利用されたり、本発明を実現するためのソフトウェアモジュールをロードする為の一次記憶として利用されたりする記憶装置である。RAMは、Random Access Memoryの略称である。ストレージ404は、基本ソフトウェアであるOS(Operating System)やソフトウェアモジュールが記憶されているHDD、もしくはSSDなどの記憶装置である。HDDは、Hard Disk Driveの略称である。また、SSDは、Solid
State Driveの略称である。また、ストレージ404は、画像データ、印刷データ、印刷装置101の各種設定情報等も記憶する。
このように、CPU401、ROM402、RAM403、ストレージ404等のハードウェアは、いわゆるコンピュータを構成している。なお、印刷装置101は、印刷データのレンダリングを行うASICなどを更に備えていてもよい。本実施形態では、説明のため、1つのプロセッサ(CPU401)が1つのメモリ(RAM403)を用いて後述するフローチャートに示す各処理を実行する場合を例示するが、他の様態であっても構わない。例えば複数のプロセッサ、RAM、ROM、ストレージを協働させて後述するフローチャートに示す各処理を実行することもできる。また、印刷処理、読取処理、データ送受信処理等の処理はI/Fに接続されたハードウェアと協働して実現される。
【0018】
なお、クラウドプリントサービス103を提供する実リソースとして機能するコンピュータも、制御部412が有するCPU401~ストレージ404、ネットワークI/F408と同様の構成を有している。当該実リソースとして機能するコンピュータは、クラウドプリントサービスの機能を提供するソフトウェアモジュール群をメモリに読みだし、プロセッサにより実行することで、クラウドプリントサービスの各機能を提供する。
【0019】
印刷装置101の説明に戻る。スキャナI/F406は、制御部412とスキャナ410との通信を媒介する。また、プリンタI/F407は、制御部412とプリンタ411との通信を媒介する。ネットワークI/F408は、NW100などインターネットやオフィスのLAN(Local Area Network)に接続するためのインタフェースである。印刷装置102の構成は、印刷装置101と同様である。
【0020】
<印刷装置のソフトウェア構成>
図5は、印刷装置の機能ブロック図の一例である。
図5には、本発明を実現するための主な処理部を示す。
図5に示す印刷装置101が有する各処理部の機能は、
図4のCPU401が本発明を実現するためのプログラムを実行することによって実現される。
【0021】
印刷装置101は、プリンタ登録部2001、仮想プリンタ設定部2002、一覧情報取得部2003、制御部2004、ジョブ取得部2005、有効/無効設定部2006、トークン管理部2007、通信部2008を有する。
【0022】
プリンタ登録部2001は、印刷装置101をクラウドプリントサービス103に登録し、クラウドプリントサービス103上に印刷装置101に送信すべき印刷ジョブを格納するプリンタオブジェクトを生成する。プリンタオブジェクトは外部から受信した印刷ジョブを一時的にスプールする印刷装置101用のプリンタキューと、スプールした印刷ジョブを物理リソースであるプリンタエンジンを備える印刷装置101に転送する機能を有するソフトウェアモジュールである。印刷装置101の登録処理は、例えば、
図2のS201乃至S204に示す方法で実行される。すなわち、プリンタ登録部2001が、通信部2008を介してプリンタ(印刷装置101)の登録要求を行うことで、クラウドプリントサービス103の傘下のプリンタとして印刷装置101が登録される。登録が完了するとクラウドプリントサービス103内に印刷装置101に印刷ジョブを転送するためのプリンタオブジェクトが生成される。また、クラウドプリントサービス103にアクセスするためのアクセストークン(第1のアクセストークン)や問合せ先URLが発行される。
印刷装置101用のプリンタキューに印刷ジョブが投入されると、クラウドプリントサービス103は、印刷装置101には新規印刷ジョブが発生したことを通知する(S219)。当該通知を受信した印刷装置101は、クラウドプリントサービス103に対して第1のアクセストークンを含む印刷ジョブの取得要求を送信する(S220)。取得要求を受信したクラウドプリントサービス103は、アクセストークンを検証し、正当な要求であるかどうかを判断する。正当な要求であると判断すると、当該取得要求の応答として印刷装置101に印刷ジョブを送信する。印刷装置101は、クラウドプリントサービス103から受信した印刷ジョブに基づきシートに画像を印刷する。印刷ジョブに基づく印刷が完了すると、プリンタキューからジョブは削除される。このように印刷装置101用のプリンタキューに投入された印刷ジョブは、逐次印刷装置101に転送される。
【0023】
続けて、本実施形態のクラウドプリントシステムにおける、仮想プリンタ機能について説明する。クラウドプリントサービス103上には、複数の画像処理装置を1つのプリンタとしてまとめて管理する目的で仮想的なプリンタオブジェクトを生成することができる。以降、説明のため複数の画像処理装置を1つのプリンタとしてまとめて管理するためにクラウドプリントサービス103上に設けられた仮想的なプリンタオブジェクトを仮想プリンタと呼ぶ。仮想プリンタの配下には、実際に印刷を担う1以上の実プリンタ装置やプリントサーバ等を関連付けることが可能である。一方で、仮想プリンタのキュー(仮想プリンタキュー)には、印刷ジョブの出力先を紐づけないように構成する。したがって、仮想プリンタキューに投入された印刷ジョブは、キュー内に留め置かれることになる。
【0024】
一方、仮想プリンタは、関連付けられた印刷装置(例えば、印刷装置101)からの仮想プリンタキューに関する情報の問い合わせには適宜応答できるように構成される。仮想プリンタに関連付けられた印刷装置101は、仮想プリンタのキューに投入されている印刷ジョブの書誌項目を示す一覧情報を取得することができる。すなわち、仮想プリンタは、印刷ジョブの受信や一時保存を行うとともに、配下の印刷装置から実際の印刷要求を受け付けるまでの間、実プリンタと書誌情報のやり取りを行うフロントエンドモジュールとして機能する。
【0025】
また、本実施形態では、仮想プリンタを構成しているソフトウェアモジュールに負荷が集中することを抑制するため、仮想プリンタが管理する印刷ジョブの出力を別のソフトウェアモジュールである実プリンタ用に用意されたプリンタオブジェクトに担当させる。具体的には、クラウドプリントサービス103は、仮想プリンタキューに格納された印刷ジョブを対象として指定した所定の要求(移動要求)を印刷装置から受信した場合に、以下の処理を実行する。クラウドプリントサービス103は、上記印刷装置用に設けられたプリンタキュー(実プリンタ用のプリンタキュー)に当該対象として指定された印刷ジョブを移動する(ジョブ制御工程)。移動が完了すると、実プリンタ用に設けられたプリンタオブジェクトが管理する印刷ジョブとなる。クラウドプリントサービス103は、印刷装置用に設けられたプリンタキューに格納された印刷ジョブを取得する要求を印刷装置から受け付けた場合に、当該要求に対応する印刷ジョブを印刷装置に送信する(送信制御工程)。これにより、実プリンタ用のプリンタキューに投入された印刷ジョブは、逐次実プリンタに転送され、印刷される。すなわち、実プリンタとの間で発生するサイズが大きいデータ通信は、実プリンタ用に用意されたプリンタオブジェクトが仮想プリンタの代わりに担当することになる。
【0026】
これは、プリンタキューと出力先が1対1対応している実プリンタ用に用意されたソフトウェアモジュールであるプリンタオブジェクトを負荷分散用のバックエンドモジュールとして機能させることを意味する。言い換えると、サービス103は、仮想プリンタを実現するソフトウェアモジュールのプロセスと、実プリンタ用のプリンタオブジェクトを実現するソフトウェアモジュールのプロセスは別プロセスで独立して動作させている。したがって、仮想プリンタを実現するためのプロセスに負荷が集中することを抑制できる。以下、具体的な制御方法について説明する。
【0027】
仮想プリンタ設定部2002は、クラウドプリントサービス103上の仮想プリンタを、クラウドプリントサービス103に登録された印刷装置101に関連付けて設定する。設定部2002は、仮想プリンタに属したいことを示す要求をクラウドプリントサービス103に送信する。クラウドプリントサービス103は、当該要求と、管理者によって予め定義された対応関係とに基づき印刷装置101と仮想プリンタを関連付ける。関連付けについては
図8で説明する。
【0028】
仮想プリンタと、クラウドプリントサービス103に登録された印刷装置101に関連付ける設定が完了すると、クラウドプリントサービスにアクセスするためのアクセストークン(第2のアクセストークン)が発行される。当該第2のアクセストークンはトークン管理部2007に格納される。この第2のアクセストークンは、仮想プリンタに関する問い合わせを行う場合に使用される。また、関連付けが完了すると、サービス103から当該仮想プリンタとの問い合わせを行う場合に使用すべき問合せ先URLが発行される。
【0029】
一覧情報取得部2003は、印刷装置101がクラウドプリントサービス103上で仮想プリンタに関連付けられている場合に、当該仮想プリンタが管理する印刷ジョブの情報をクラウドプリントサービス103から取得する。具体的には、一覧情報取得部2003は、印刷装置101にログインしたユーザに対応する印刷ジョブであって、上記仮想プリンタが管理する印刷ジョブの一覧情報を、クラウドプリントサービス103から取得する。本実施形態において、一覧情報とはジョブの書誌項目(ジョブ名やファイルサイズ、ジョブの生成日時、印刷設定情報等のユーザがジョブを特定するための項目)を意味する。一覧情報取得部2003は、印刷ジョブの一覧情報の取得要求を、通信部2008を介してクラウドプリントサービス103上の仮想プリンタに送信する。印刷ジョブの一覧情報の取得要求には、仮想プリンタへのアクセスのためのアクセストークン(第2のアクセストークン)と問合せ先URLが利用される。クラウドプリントサービス103は、取得要求に用いられたURLに基づき対象となるプリンタオブジェクトを特定する。クラウドプリントサービス103は、印刷ジョブの一覧情報の取得要求に応じて、特定されたプリンタオブジェクトのプリンタキューに投入されている印刷ジョブの一覧情報を応答する。なお、アクセストークン及び問合せ先URLに基づき要求が正当でないと判断した場合、当該要求にエラーを示す情報を応答する。
【0030】
制御部2004は、印刷装置101全体を制御する。制御処理の一例として、制御部2004は、ユーザから、仮想プリンタが管理する印刷ジョブを印刷するための操作を受け付けた場合、以下の処理を実行する。制御部2004は、一覧情報取得部2003が取得した印刷ジョブの情報に少なくとも基づき特定される印刷ジョブを、クラウドプリントサービス103上に設けられた画像処理装置用(印刷装置101用)のプリンタキューに移動することを指示する。
より具体的には、まず、制御部2004は、表示制御手段として機能し、印刷ジョブの一覧情報に基づき、ジョブ選択画面を表示する。制御部2004は、ジョブ選択画面を介したユーザ操作に基づいて、印刷対象とすべき1以上の印刷ジョブを特定する。制御部2004は、印刷対象として特定された印刷ジョブに、クラウドプリントサービス103の仮想プリンタに留め置かれた印刷ジョブがあるかどうかを判断する。仮想プリンタに留め置かれた印刷ジョブがある場合、クラウドプリントサービス103に、当該印刷ジョブを、印刷装置101用に設けられた、印刷装置101に印刷ジョブを転送するためのプリンタキューに移動する要求を送信する。クラウドプリントサービス103は、印刷装置101から受けた指示にしたがって、仮想プリンタの仮想プリンタキューに記憶している当該印刷対象ジョブを、印刷装置101用に設けられたプリンタキューに移動(投入)する。通信部2008は、外部装置との通信を実行する。
【0031】
ジョブ取得部2005は、クラウドプリントサービス103に登録された印刷装置101のプリンタキューから印刷ジョブを取得するジョブ取得手段として機能する。具体的には、ジョブ取得部2005は、通信部2008を介して、印刷ジョブの取得要求をクラウドプリントサービス103に送信する。当該取得要求には、第1のアクセストークンが含まれる。クラウドプリントサービス103上で動作する印刷装置101用のプリンタオブジェクトは、印刷ジョブの取得要求に応じて、印刷装置101用のプリンタキューに格納されている該当の印刷ジョブを印刷装置101に送信する。
【0032】
有効/無効設定部2006は、クラウドプリントサービス103上の仮想プリンタの利用を有効とするか否かを設定する第2の設定手段として機能する。一覧情報取得部2003は、仮想プリンタの利用を有効とする設定がされている場合に、上述した印刷ジョブの一覧情報の仮想プリンタからの取得処理を実行する。
【0033】
トークン管理部2007は、プリンタキューへのアクセスに利用する第1のアクセストークンと、仮想プリンタへのアクセスに利用する第2のアクセストークンとを管理する。前述したように、第1のアクセストークンは、印刷装置101のクラウドプリントサービス103へのプリンタキューの登録処理の際に取得される。また、第2のアクセストークンは、例えば、仮想プリンタと印刷装置101との関連付け処理の際に取得される。
【0034】
<印刷装置のユーザアカウント管理>
図9乃至
図11を用いて、本実施形態における印刷装置の設定画面例を説明する。
図9は、印刷装置における印刷ジョブ留置き設定画面とユーザアカウント設定画面の一例を示す図である。
図10は、ログイン画面と、ログイン中に表示される画面の一例を示す図である。
図11は、ジョブリスト画面の一例を示す図である。
【0035】
図9の印刷ジョブ留置き設定画面801における「印刷ジョブ留置き設定」は、印刷装置101が、受信した印刷ジョブをすぐに排紙するか、印刷装置101のストレージに保存してユーザの指示があるときに排紙するかを設定するための設定項目である。本設定が有効の場合、CPU401(
図4)は、受信した印刷ジョブを印刷装置101のストレージ404に保存する制御を行う。
【0036】
「ユーザログイン設定」は、印刷装置101の操作部409を使用する場合にユーザ認証を行うか否かを設定するための設定項目である。本設定が有効の場合、例えば、
図10(A)に示すようにユーザ名とパスワードを入力するログイン画面901が表示され、認証に成功したユーザしか印刷装置の使用を許可させない制御を行う。ログインはICカードによる認証など他の手段を使用して実現してもよい。
【0037】
また、
図9において、「ユーザ登録設定」が選択されると、ユーザ登録設定画面802が表示される。ユーザ登録設定画面802を用いた操作によって、印刷装置101で管理するユーザを追加・削除・編集できる。本画面例では、二人のユーザが印刷装置101に登録されており、「Alice」、「Bob」は、印刷装置101に登録されているユーザ名である。その為、Aliceが印刷装置101にログインする場合、ユーザ名に「Alice」を入力してログインする。また、「クラウドアカウント名」は、クラウドプリントサービス103に登録されているアカウント名を設定するための設定項目である。印刷装置101で管理するユーザ名と、クラウドプリントサービス103で管理するアカウント名は一致する場合もあれば一致しない場合もある。
【0038】
Aliceが印刷装置101にログインすると、
図10(B)に示す画面902が表示される。
図11(A)のジョブリスト画面903は、ログインしたAliceに対応する印刷ジョブのリスト(一覧情報)が表示される画面である。また、Bobが印刷装置101にログインすると、
図10(C)に示す画面904が表示される。
図11(B)のジョブリスト画面905は、ログインしたBobに対応する印刷ジョブのリスト(一覧情報)が表示される画面である。
【0039】
<全体シーケンス>
図6は、本実施例のシステム全体の処理の一例を示す図である。
図7は、仮想プリンタの検索の際に表示される画面の一例を示す図である。また、
図8は、クラウドプリントサービスが管理するプリンタ一覧の例を示す図である。
本実施形態では、例えば、IPP(Internet Printing Procotol)のプロトコルを使用するものとする。
【0040】
ユーザが、クラウドプリントサービス103に登録されている仮想プリンタを検索して追加する処理から説明する。まず、S501において、クライアント端末104が、ユーザの操作に応じて、クラウドプリントサービス103のプリンタを検索する。
図7に示す画面601は、プリンタの検索に用いられる画面である。
【0041】
S502において、クライアント端末104が、ユーザからのプリンタ検索の指示を検知すると、ユーザに関連するクラウドテナントに対して、プリンタ検索要求を送信する。S503において、クラウドプリントサービス103が、プリンタの検索結果を示すプリンタ一覧をクライアント端末104に応答する。そして、S504において、クライアント端末104が、
図7の画面602のように、受信したプリンタ一覧を表示する。ここで、クラウドプリントサービス103から取得されるプリンタ一覧に含まれるプリンタ(印刷装置)は、例えば、
図8の701に示すように、クラウドプリントサービス103側で共有設定が有効になっているプリンタとする。
図8に示す例では、仮想プリンタ501および502に対応する共有設定が有効となっている。したがって、仮想プリンタ501および502が、応答されるプリンタ一覧に含まれる。
図8に例示した仮想プリンタや仮想プリンタに関連付けるべきプリンタの関係はあらかじめサービスの利用単位であるテナント管理者によって定義されているものとする。例えば、テナントの管理者は、仮想プリンタの名称の定義、仮想プリンタに関連づけるプリンタの定義、各プリンタの共有設定等を列挙した設定ファイルを生成する。続けて、テナントの管理者は、クラウドプリントサービス103にログインし、自身のテナントに設定ファイルをアップロードする。クラウドプリントサービス103は、当該設定ファイルに基づき
図8に例示した対応関係を構築する。クラウドプリントサービス103は、印刷装置(例えば印刷装置101)の仮想プリンタ設定部2002から設定の依頼を受け付けると、設定ファイルに基づいた対応関係の構築を行う。例えば、印刷装置101を仮想プリンタ501及び502に関連付ける処理、並びに印刷装置101が各仮想プリンタにアクセスするための問い合わせURLとアクセストークンを発行する処理が行われる。
【0042】
S505において、ユーザは、表示されたプリンタ一覧に含まれるプリンタから所望のプリンタを選択する。S506において、クライアント端末104は、プリンタ一覧に含まれるプリンタから任意の1つのプリンタが選択されたことを検知したら、該当するプリンタをクライアント端末104に追加する処理を行う。プリンタの追加処理が完了すると、クライアント端末104が、登録が完了したことを示す
図7の画面603を表示する。画面603に示す例では、仮想プリンタ501が登録されている。
【0043】
クラウドプリントサービス103には、複数のプリンタ(印刷装置)が登録されているが、共有設定を無効に設定することで、クライアント端末104への応答に含まれない。複数の印刷装置をまとめた仮想プリンタのみについて、共有設定を有効に設定することで、限定した数の仮想プリンタだけがクライアント端末104への応答に含まれる。したがって、プリンタ検索要求に応じて膨大な数のプリンタが検索結果として表示されることがないので、ユーザは所望のプリンタを検索し易くなる。
【0044】
次に、S507において、ユーザが、任意のドキュメントを選択し、印刷指示を行う。S508において、印刷指示を受けたクライアント端末104が、印刷ジョブを仮想プリンタ501に送信する。そして、S509において、印刷ジョブを受信した仮想プリンタ501が、印刷ジョブをクラウドストレージ(仮想プリンタキュー)に保存する。これにより、仮想プリンタ501に印刷ジョブが投入される。
図8に示す例では、仮想プリンタ501に関連付く印刷装置は、印刷装置101、102、108、109の4台である。これら4台の印刷装置いずれかから印刷ジョブの取得要求が来るまで、クラウドプリントサービス103に当該印刷ジョブが保存される。仮想プリンタと印刷装置との関連付けについては後述する。
【0045】
次に、クラウドプリントサービス103に保存された印刷ジョブを出力する方法について説明する。
図6のS510において、ユーザが、任意の印刷装置にログインする。本実施形態では、ユーザは、印刷装置101にログインしたものとする。
図8に示す例では、印刷装置101は、仮想プリンタ501および502と関連付いている。したがって、S511において、印刷装置101のCPU401は、仮想プリンタ502に対して、ログインしたユーザに対応する印刷ジョブの一覧情報の取得要求を行う。具体的には、CPU401は、仮想プリンタ502に関連付けを行った際に取得された問合せURL宛に、仮想プリンタ502用に管理しているアクセストークンを付与した取得要求を送信する。また、当該取得要求にはユーザアカウントを特定する情報も含まれる。
【0046】
また、S513において、印刷装置101のCPU401は、仮想プリンタ501に対して、ログインしたユーザに対応する印刷ジョブの一覧情報の取得要求を行う。具体的には、CPU401は、仮想プリンタ501に関連付けを行った際に取得された問合せURL宛に、仮想プリンタ501用に管理しているアクセストークンを付与した取得要求を送信する。また、当該取得要求にはユーザアカウントを特定する情報も含まれる。
印刷ジョブの一覧情報の取得要求は、例えば、「Get-Jobs」というIPPで定義されているオペレーションを使用して行ってもよい。
【0047】
図15は、印刷装置とクラウドプリントサービスとの間でやりとりされるパケットの一例を示す図である。
印刷ジョブの一覧情報の取得要求では、例えば、
図15(A)のパケット1301が送信される。この例では、Aliceというユーザが印刷装置にログインしているので、パケットには、当該ユーザに関するアカウント情報が格納される。印刷ジョブの一覧情報の取得要求を受信したクラウドプリントサービス103は、一覧情報の取得要求を受け付けた問合せURLに基づき仮想プリンタを特定する。続けて、クラウドプリントサービス103は、当該特定した仮想プリンタに当該ユーザの印刷ジョブが保存されているかどうかを確認し、その結果を応答する。クラウドプリントサービス103は、当該ユーザの印刷ジョブがある場合は、
図15(B)のパケット1302のように、該当するジョブIDの情報を含むパケットを応答し、当該ユーザの印刷ジョブがない場合は、ジョブ情報をパケットに格納せずに応答する。
図6に示す例では、S512において、クラウドプリントサービス103は、仮想プリンタ502が管理するユーザAliceの印刷ジョブの一覧情報を印刷装置101に応答する。また、S514において、クラウドプリントサービス103は、仮想プリンタ501が管理するユーザAliceの印刷ジョブの一覧情報を印刷装置101に応答する。ここでは一例として、S508で仮想プリンタ501にはAliceの印刷ジョブが投入されているものとする。一方、仮想プリンタ502にはAliceの印刷ジョブが投入されていないとする。この場合、仮想プリンタ501からの応答には印刷ジョブIDが含まれ、仮想プリンタ502からの応答には、印刷ジョブIDが含まれない。
【0048】
図6のS515において、印刷装置101のCPU401が、クラウドプリントサービス103から取得した各仮想プリンタに対応する一覧情報を示す応答結果をマージして、取得した印刷ジョブの情報を含むジョブリスト画面を表示する。
図11(A)の画面903は、S515で表示されるジョブリスト画面の一例である。なお、本実施形態では、クラウドプリントサービス103の仮想プリンタ上に留め置かれた印刷ジョブの一覧を表示する場合を例示しているがこれに限定されるものではない。印刷装置に対して直接投入された留め置き印刷ジョブも当該ジョブリスト画面にマージして表示するよう構成することもできる。ジョブリスト画面は印刷対象のジョブをユーザに選択させるためのジョブ選択画面として機能する。
【0049】
S516において、印刷装置101のCPU401が、ユーザが印刷ジョブの一覧情報に含まれる印刷ジョブのうち、実行(印刷)したい任意の印刷ジョブを選択したことを検知する。続いて、S517において、CPU401は、クラウドプリントサービス103に対して印刷ジョブの移動要求を送信する。移動要求は、対象として指定された印刷ジョブを仮想プリンタキューから印刷装置101用に設けられたプリンタキューに移すことを求める要求である。当該移動要求には、移動先のプリンタキューを特定する情報と、印刷ジョブを現在格納している仮想プリンタに対応するアクセストークンが含まれる。印刷ジョブの移動要求は、例えば「Move-Job」というような独自オペレーションを使用して行ってもよい。印刷ジョブの移動要求では、例えば
図15(C)のパケット1303が送信される。パケット1303は、
図11(A)に例示したジョブ番号1、2の2つの印刷ジョブの印刷要求を受け付けた場合の移動要求パケットを例示している。
【0050】
パケット1303には、移動したいジョブを特定するジョブIDと移動先のプリンタを特定するプリンタUUIDとが指定される。この例では、仮想プリンタ501に投入された印刷ジョブを印刷装置101用のプリンタキューに移動させたいので、印刷装置101のUUIDを指定する。S518において、印刷ジョブの移動要求を受信したクラウドプリントサービス103は、移動要求のパケットに指定された印刷ジョブを、仮想プリンタ501のプリンタキューから印刷装置101用のプリンタキューに移動する。なお、移動先のプリンタUUIDと第1のアクセストークンを対応付けた移動要求パケットを送信するよう構成することもできる。この場合、クラウドプリントサービス103は、UUIDに基づき移動先のプリンタキューを特定する。続けて、当該プリンタキューへのアクセスを許可すべきかどうかを当該第1のアクセストークンを用いて検証する。クラウドプリントサービス103は検証の結果、アクセスを許可すべきと判断した場合に、キュー間のジョブ移動処理を行う。一方、アクセスを許可すべきでないと判断した場合、当該要求にエラーを応答する。
【0051】
S519において、クラウドプリントサービス103上に設けられた印刷装置101用のプリンタキューへのジョブ移動を検知した印刷装置101用のプリントオブジェクトは、以下の処理を行う。当該プリントオブジェクトは、印刷装置101に対して、印刷ジョブが投入されたことを示すイベントのプッシュ通知を行う。プッシュ通知には、例えば「Get-Notification」というIPPで定義されているオペレーションが使用される。印刷装置101は、起動時にクラウドプリントサービス103に対して、印刷ジョブ投入のイベントの通知要求を送信し、イベントが発生するまで接続を維持して待機する。印刷装置101には、印刷ジョブが投入されたことを示すJob-Fetchableのイベントを含んだプッシュ通知がなされる。S520において、プッシュ通知を受信した印刷装置101のCPU401が、該当ユーザの印刷ジョブの取得を求める印刷ジョブの取得要求を、クラウドプリントサービス103に対して行う。CPU401は、当該取得要求に、第1のアクセストークンを含める。印刷ジョブの取得要求には、例えば、「Fetch-Job」というIPPで定義されているオペレーションが使用される。
【0052】
印刷ジョブの取得要求では、例えば、
図15(E)のパケット1305が送信される。パケット1305では、取得対象である印刷ジョブの識別情報であるジョブIDが指定される。印刷ジョブの取得要求は、印刷装置101用のプリンタオブジェクトに転送される。印刷装置101用のプリントオブジェクトは、印刷ジョブの取得要求に応じて、該当の印刷ジョブのデータを印刷装置101に対して送信する。印刷ジョブのデータの送信には、例えば、
図15(F)のパケット1306が用いられる。
【0053】
S521において、印刷装置101が、クラウドプリントサービス103が送信した該当の印刷ジョブのデータを受信する。そして、S522において、印刷装置101が、印刷処理を行う。本実施形態では、Fetch-Jobを適用する例を説明したが、Fetch-Documentオペレーションなど、印刷ジョブの取得を実現できる任意のプロトコルやオペレーションを用いてもよい。
【0054】
<印刷装置の処理フロー>
図12は、本実施形態の印刷装置の動作処理の一例を説明するフローチャートである。まず、S1001において、印刷装置101に電源が入れられる。S1002において、CPU401が、自装置すなわち印刷装置101がクラウドプリントサービス103に登録済みであるかを判断する。印刷装置101がクラウドプリントサービス103に登録済みである場合は、処理がS1003に進む。印刷装置101がクラウドプリントサービス103に未登録である場合は、処理がS1004に進む。そして、S1004において、CPU401が、ユーザからの登録処理のイベントが発生するまで待機する。
【0055】
S1003において、CPU401が、クラウドプリントサービス103にイベント確認要求を送信する。イベント確認要求には、例えば、Get-Notificationリクエストなどが使用される。続いて、S1004において、CPU401が、イベント発生までクラウドプリントサービス103との接続を維持しながら待機する。
【0056】
次に、S1005において、CPU401が、イベントが発生したかを判断する。イベントが発生していない場合は、処理がS1005に戻る。イベントが発生した場合、発生したイベントに応じて、S1006乃至S1009のいずれかの処理が実行される。登録指示のイベントが発生した場合は、処理がS1006に進む。
【0057】
S1006において、CPU401が、クラウドプリントサービス103に対して、印刷装置101を登録する。印刷装置101の登録が成功すると、クラウドプリントサービス103に印刷装置101のプリンタキューが生成される。印刷装置101の登録処理は、
図2のS201乃至S204の処理に該当する。印刷装置101の登録が完了した後、CPU401は、クラウドプリントサービス103に対してイベント確認要求を送信し、クラウドプリントサービス103でイベントが発生するまで、つまり、プッシュ通知が来るまで、接続を維持して待機する。
【0058】
ログインイベントが発生した場合は、処理がS1007に進む。そして、S1007において、ログイン処理が実行される。印刷ジョブ投入のイベントが発生した場合は、処理がS1008に進む。そして、S1008において、印刷処理が実行される。仮想プリンタとの関連付け指示のイベントが発生した場合は、処理がS1009に進む。そして、S1009において、クラウドプリントサービス103上の仮想プリンタと印刷装置101との関連付け処理が実行される。
【0059】
図13は、ログイン処理の一例を説明するフローチャートである。
まず、S1101において、CPU401が、ログインイベントが発生したこと、すなわち、ユーザが印刷装置101にログインしたことを検知する。続いて、S1102において、CPU401が、印刷装置101がクラウドプリントサービス103に登録済みであって、かつ、仮想プリンタを利用する設定が有効であるか判断する。印刷装置101が表示する、
図16(A)に示すクラウド印刷設定画面1401を用いた操作によって、設定項目「仮想プリンタを使う」が有効に設定されている場合、CPU401は、仮想プリンタを利用する設定が有効であると判断する。仮想プリンタを利用する設定が無効である場合は、処理が終了し、CPU401は、再びイベント待ち状態に戻る。仮想プリンタを利用する設定が有効である場合は、処理がS1103に進む。
【0060】
S1103において、CPU401が、クラウドプリントサービス103上で印刷装置101に関連付けて設定されている仮想プリンタが管理する印刷ジョブであり、ログインユーザに対応する印刷ジョブの一覧情報の取得要求を送信する。S1103の処理は、
図6のS511、S513の処理に対応する。
続いて、
S1104において、CPU401が、仮想プリンタが管理する、ログインユーザに対応する印刷ジョブの一覧情報の応答を受信する。続いて、S1105において、CPU401が、印刷装置101に関連付けて設定されている全ての仮想プリンタに対して、印刷ジョブの一覧情報の取得要求を送信済みであるかを判断する。印刷ジョブの一覧情報の取得要求を送信済みでない仮想プリンタがある場合は、処理がS1103に戻る。印刷装置101に関連付けて設定されている全ての仮想プリンタに対して、印刷ジョブの一覧情報の取得要求を送信済みである場合は、処理がS1106に進む。
【0061】
S1106において、CPU401が、例えば、
図11(A)のジョブリスト画面903に、印刷ジョブの一覧情報を表示する。続いて、S1107において、CPU401が、ユーザの操作によって、印刷ジョブの一覧情報に含まれる印刷情報から任意の印刷ジョブの選択操作を受け付け、当該選択された印刷ジョブの印刷指示を検知したかを判断する。印刷ジョブの選択操作は、ジョブリスト画面を介して1以上の印刷ジョブを選択する操作を意味する。また、印刷指示の検知は、ジョブリスト画面を介して「印刷」キーを選択する操作を検知することを意味する。印刷ジョブが選択されない場合は、処理が終了し、イベント待ち状態に戻る。1以上の印刷ジョブが選択された後に、印刷指示を検知した場合は、処理がS1108に進む。
【0062】
S1108において、CPU401が、選択された印刷ジョブを印刷装置101用のプリンタキューに移動するための移動要求を送信する。S1108の処理は、
図6のS517の処理に対応する。この印刷ジョブの移動要求により、選択された印刷ジョブが、仮想プリンタキューから印刷装置101のプリンタキューに移動する。S1108の処理の後、CPU401が、再度イベント待ち状態に戻る。
【0063】
図14は、印刷ジョブの投入イベントが発生した場合の印刷処理の一例を説明するフローチャートである。
図13を参照して説明した処理によって、クラウドプリントサービス103内で、印刷ジョブが仮想プリンタから印刷装置101のプリンタキューに移動する。これにより、
図6のS519のように、クラウドプリントサービス103は、印刷ジョブの投入イベントのプッシュ通知を印刷装置101に対して行う。これにより、S1201において、CPU401が、印刷ジョブの投入イベントのプッシュ通知を検知する。
【0064】
次に、S1202において、CPU401が、クラウドプリントサービス103内の印刷装置101のプリンタキューに対して、印刷ジョブの取得要求を送信する。続いて、S1203において、印刷ジョブの取得要求に応じたプリンタキューから、印刷ジョブのデータを受信する。そして、S1204において、CPU401が、受信した印刷ジョブのデータに基づいて、印刷処理を実行する。
【0065】
次に、CPU401が、プリンタキューから受信した全ての印刷ジョブについて処理を完了したかを判断する。未処理の印刷ジョブがある場合は、処理がS1202に戻る。プリンタキューから受信した全ての印刷ジョブについて処理を完了した場合は、CPU401が、再度イベント待ち状態に戻る。本実施例によれば、印刷装置101は、印刷ジョブを仮想プリンタキューから自装置のプリンタキューへ移動させ、印刷ジョブの取得要求は当該プリンタキューに対して行うので、長時間仮想プリンタと通信することはない。また、印刷ジョブデータの送信制御等や、実プリンタにおける印刷エラー発生時の待機制御等を別のソフトウェアモジュールである印刷装置用のプリンタオブジェクトに担わせることができるようになる。
【0066】
以上説明したように、実施例1では、仮想プリンタ用のプリンタオブジェクトを印刷ジョブの一時保存から実際の印刷要求を受け付けるまでのフロントエンドモジュールとして機能させる。また、実プリンタとの間で発生するサイズの大きいデータ通信のやり取りは、実プリンタ用に用意されたプリンタオブジェクトに担当させる。すなわち、プリンタキューと出力先が1対1対応している実プリンタ用に用意されたソフトウェアモジュールをバックエンドモジュールとして機能させ、負荷分散を図ることができる。これにより、仮想プリンタの負荷を軽減することができ、クラウド印刷の性能の向上とパフォーマンスの向上を実現することができる。
【0067】
(実施例2)
実施例2の印刷装置は、クラウドプリントサービス103に登録されている仮想プリンタを検索する。印刷装置は、上記検索によって、クラウドプリントサービス103から印刷装置に関連付けることができる仮想プリンタの候補を受信する。そして、印刷装置は、受信した候補の中からユーザ操作で選択された仮想プリンタの配下の印刷装置として、印刷装置を関連付ける要求をクラウドプリントサービス103に依頼する。クラウドプリントサービス103は、当該要求を印刷装置から受け付け、上記仮想プリンタの配下の印刷装置として印刷装置を関連付ける処理、並びに当該印刷装置が仮想プリンタにアクセスするための問い合わせURLとアクセストークンを発行する処理を行う。すなわち、実施例2では、実施例1で説明した管理者による事前設定に加え、クラウドプリントサービス103に登録された印刷装置からも仮想プリンタの生成や対応付けを行える仕組みを提供する。
【0068】
図16および
図17は、印刷装置が表示する、クラウド印刷の設定に用いる画面の一例を示す図である。また、
図18は、印刷装置による仮想プリンタの設定処理の例を説明する図である。
図16(A)は、クラウド印刷の設定トップ画面であるクラウド印刷設定画面1401を示す。印刷装置101のクラウドプリントサービス103への初回登録は、設定項目「クラウド印刷を使う」に対応する詳細設定ボタンの選択操作から開始される。この詳細設定ボタンの選択により、印刷装置101が表示する画面が、
図16(B)に示すクラウド印刷詳細設定画面1402に遷移する。クラウド印刷詳細設定画面1402における登録ボタンが選択されると、登録指示のイベントが発生する。その後、必要に応じてクラウドアカウント情報などの入力による認証処理が実行され、印刷装置101の登録が完了する。登録が完了すると、印刷装置101が、クラウド印刷詳細設定画面1403を表示する。クラウド印刷詳細設定画面1403においては、印刷装置101の登録状態が登録済みとなっている。
【0069】
次に、仮想プリンタの設定処理について説明する。ユーザが、
図16(A)に示すクラウド印刷設定画面1401において、設定項目「仮想プリンタを使う」を有効に設定し、詳細設定ボタンを選択する。これにより、印刷装置101が表示する画面が、
図17(A)に示す仮想プリンタ詳細設定画面1404に遷移する。この例では、仮想プリンタ501は、印刷装置101に関連付く仮想プリンタとして追加(登録)済みの状態である。
【0070】
ユーザが、仮想プリンタ詳細設定画面1404における検索ボタンを選択すると、印刷装置101に対して、
図18のS1501における仮想プリンタの検索指示がされる。仮想プリンタの検索指示は、仮想プリンタの関連付け指示のイベントに対応する。検索ボタンの選択により、印刷装置101が表示する画面が、
図17(B)に示す仮想プリンタ検索画面1405に遷移する。仮想プリンタ検索画面1405は、
図18のS1502で表示されるアカウント入力画面として機能する。
【0071】
ユーザは、仮想プリンタ検索画面1405を用いた操作によって、クラウドプリントサービスにアクセスするための認証情報であるクラウドアカウント情報を入力し(
図18のS1503)、検索ボタンを選択する。これにより、入力されたクラウドアカウント情報に対応するクラウドのテナントに登録されている仮想プリンタが検索される。具体的には、
図18のS1504において、印刷装置101からクラウンドプリントサービス18に対して認証要求が送信される。S1505において、クラウンドプリントサービス18から印刷装置101に対して認証応答が送信される。続いて、S1506において、印刷装置101が、クラウドプリントサービス103に対して、クラウドのテナントに登録されている仮想プリンタの一覧情報の取得要求を行う。S1507において、クラウドプリントサービス103が、印刷装置101に対して、仮想プリンタの一覧情報を送信する。そして、S1508において、印刷装置101が、受信した仮想プリンタの一覧情報を含む画面を表示する。例えば、印刷装置101は、
図17(C)に示す仮想プリンタ検索結果画面1406を表示する。
【0072】
図18のS1509において、ユーザが、仮想プリンタ検索結果画面1406において表示されている仮想プリンタから所望の仮想プリンタを選択し、追加ボタンを選択する。この例では、仮想プリンタ502が選択されたものとする。S1510において、印刷装置101が、選択された仮想プリンタを、自装置に関連付けて設定(追加)する。印刷装置101は、仮想プリンタを追加する際に、当該仮想プリンタに対して1回だけ通信確認のために接続要求を行う。そして、印刷装置101は、当該接続要求に応じた仮想プリンタから、その後に当該仮想プリンタにアクセスするためのアクセストークン(第2のアクセストークン)を取得する。
【0073】
仮想プリンタが追加されると、印刷装置101は、例えば、
図17(D)に示す、仮想プリンタ詳細設定画面1407を表示する。仮想プリンタ詳細設定画面1407には、仮想プリンタ501に加えて、追加された仮想プリンタ502が、印刷装置101に関連付く仮想プリンタとして含まれる。
【0074】
なお、印刷装置101が、認証情報の入力に用いられる仮想プリンタ検索画面1405を、仮想プリンタを検索する度に表示してもよいし、印刷装置101がキャッシュで保持し、2回目以降の検索では仮想プリンタ検索画面1405の表示を省略してもよい。
【0075】
図19は、本実施例の印刷装置が実行する処理の一例を説明するフローチャートである。
まず、S1601において、CPU401が、仮想プリンタの検索指示がされたことを検知する。S1602において、CPU401が、アカウント入力画面を表示する。続いて、S1603において、CPU401が、ユーザによる認証情報の入力を検知する。
【0076】
次に、S1604において、CPU401が、クラウドプリントサービス103に対して、入力された認証情報を含む認証要求を送信する。続いて、S1605において、CPU401が、クラウドプリントサービス103から、認証応答を受信する。そして、S1606において、CPU401が、クラウドプリントサービス103に対して、仮想プリンタの一覧情報の取得要求を送信する。
【0077】
S1607において、CPU401が、クラウドプリントサービス103から仮想プリンタの一覧情報の応答を受信する。そして、S1608において、CPU401が、受信した仮想プリンタの一覧情報を表示する。続いて、S1609において、CPU401が、ユーザによる仮想プリンタの選択を検知する。そして、S1610において、CPU401が、選択された仮想プリンタの配下の印刷装置として、印刷装置101を関連付ける要求をクラウドプリントサービス103に依頼する。これにより、選択された仮想プリンタが印刷装置101に関連付けられる。
【0078】
(実施例3)
本実施例では、クラウドプリントサービス103が提供するWeb画面を介して仮想プリンタの作成や仮想プリンタに対する配下のプリンタの関連付けの設定や、変更を容易に行えるようにする。そして、印刷装置101は、クラウドプリントサービス103から、印刷装置101が当該仮想プリンタに関連付けられたことを示す通知を受けて、当該仮想プリンタを自装置に関連付くプリンタとして設定する。
【0079】
<クラウドプリントサービスの画面>
図20乃至
図22は、クラウドプリントサービスの設定画面の一例を示す図である。
クラウドプリントサービス103では、WEBサーバが動作している。本実施形態では、管理者が、任意の端末のブラウザから当該WEBサーバにアクセスして、設定画面を操作することを想定している。管理者は、端末に
図20(A)に示す画面1701が表示された状態で、クラウドアカウント情報を入力し、クラウドプリントサービス103の設定画面にログインする。これにより、管理者ログイン状態となり、端末に
図20(B)に示す設定トップ画面1702が表示される。
【0080】
設定トップ画面1702上での操作により、設定項目「プリンタ管理」に対応する詳細設定ボタンが選択されると、
図20(C)に示すように、クラウドプリントサービス103に登録されている印刷装置の一覧情報を含む設定画面1703が表示される。印刷装置の一覧情報に含まれる印刷装置は、クラウドプリントサービス103への登録処理(
図2のS201乃至S204)が成功した印刷装置である。管理者は、設定画面1703上で編集ボタンを選択することにより、印刷装置を削除したり、備考情報を編集したりすることができる。
【0081】
管理者が、
図20(B)の設定トップ画面1702上で、設定項目「仮想プリンタ管理」に対応する詳細設定ボタンを選択する。これにより、
図21(A)に示すように、クラウドプリントサービス103に登録されている仮想プリンタの一覧情報を含む設定画面1704が表示される。この例では、仮想プリンタ501は登録済みであることがわかる。管理者は、設定画面1704上の作成ボタンを選択することで、新規の仮想プリンタをクラウドプリントサービス103に登録可能である。作成ボタンが選択されると、
図21(B)の仮想プリンタ新規作成画面1705が表示される。
【0082】
仮想プリンタ新規作成画面1705において、設定項目「仮想プリンタ名称」は、仮想プリンタの名称を設定する項目である。管理者は、設定項目「仮想プリンタ名称」に対して任意の仮想プリンタの名称を設定することができる。新規の仮想プリンタとして仮想プリンタ502を作成するものとすると、設定項目「仮想プリンタ名称」には、「仮想プリンタ502」と設定される。設定項目「仮想プリンタUUID」は、仮想プリンタのUUIDを設定する項目である。UUIDは、クラウドプリントサービス103内で仮想プリンタを一意に管理するためのユニークな識別情報(ID)である。管理者の操作に応じて、クラウドプリントサービス103は、UUIDを自動生成することができる。また、重複しなければ管理者が手動でUUIDを設定することもできる。
【0083】
また、設定項目「仮想プリンタ構成」は、仮想プリンタの構成情報、能力情報を設定する項目である。管理者が、設定項目「仮想プリンタ構成」を選択すると、
図21(C)に示す設定画面1706が表示される。管理者は、設定画面1706上の操作により、基本的な印刷装置の構成情報や能力情報を設定する。これにより、例えば、印刷装置がカラー機と白黒機のいずれなのか、印刷装置が、両面印刷と片面印刷のいずれに対応させるか等を設定することができる。設定画面1706を用いて設定される構成情報は、理想的には、仮想プリンタに関連付けて設定される印刷装置群の構成情報と等しくなることが望ましい。管理者が、仮想プリンタの構成情報、能力情報を設定した後、設定画面1706において完了ボタンを選択すると、仮想プリンタの作成指示がクラウドプリントサービス103に対して行われ、クラウドプリントサービス103が、仮想プリンタを作成する。
【0084】
また、仮想プリンタ新規作成画面1705において、設定項目「プリンタ関連付け」は、仮想プリンタにどの印刷装置を関連付けるかを設定する項目である。管理者が、設定項目「プリンタ関連付け」を選択すると、
図22(A)に示すように、設定対象の仮想プリンタ(この例では仮想プリンタ502)に関連付けされている印刷装置の一覧情報を含む画面1707が表示される。デフォルトでは、関連付けされている印刷装置がない状態なので、画面1707には仮想プリンタに関連付けされている印刷装置は表示されない。管理者が、新規に関連付けする印刷装置を追加したい場合は、検索ボタンを選択する。検索が選択されると、クラウドプリントサービス103は、自テナント内に登録済みの印刷装置のプリンタキューを検索する。そしてクラウドプリントサービス103は、
図22(B)に示すように、検索により発見した登録済みの印刷装置の一覧情報を含む画面1708を表示する。画面1708に表示される印刷装置は、
図2のS201乃至S204の処理によって、クラウドプリントサービス103に登録処理が成功した印刷装置である。
【0085】
管理者が、画面1708に表示された印刷装置の一覧情報に含まれる印刷装置から、任意の印刷装置を選択すると、クラウドプリントサービス103が、選択された印刷装置と仮想プリンタとを関連付ける。そして、
図22(C)に示す設定画面1709が表示される。設定画面1709では、仮想プリンタ502に印刷装置101と印刷装置102とが関連付けられている。管理者が戻るボタンを選択すると、表示される画面が設定画面1706に遷移する。当該設定画面1706上の操作で、作成完了ボタンが選択されると、仮想プリンタの登録が完了し、
図22(D)に示す設定画面1710が表示される。
【0086】
図23は、実施例3における仮想プリンタの設定処理の例を説明する図である。
S1801乃至S1811の処理は、
図20乃至
図22を参照して説明した処理と同様の処理である。
図23の説明では、仮想プリンタ501を作成して、印刷装置101を関連付ける処理を例にとる。まず、S1801において、管理者は、端末に表示された設定画面に、新規に作成する仮想プリンタ501の情報を入力して、クラウドプリントサービス103に対して、仮想プリンタ501の作成指示を行う。S1802において、クラウドプリントサービス103が、仮想プリンタ501の作成指示に基づいて、テナント内に仮想プリンタ501および仮想プリンタキューを作成して管理する。
【0087】
S1804において、管理者が、
図21の仮想プリンタ新規作成画面1705上の操作で、設定項目「プリンタ関連付け」を選択する。続いて、S1804において、管理者が、クラウドプリントサービス103に対して、仮想プリンタ501に関連付けする印刷装置の検索指示を行う。S1805,S1807において、クラウドプリントサービス103に作成された仮想プリンタ501が、上記の検索指示に応じて、同じテナント内において登録済みの印刷装置のプリンタキューに対して検索要求を行う。S1808,S1807において、仮想プリンタ501が、当該検索要求に応じた印刷装置のプリンタキューから、検索応答を受ける。この例では、仮想プリンタ501は、印刷装置101のプリンタキューと印刷装置102のプリンタキューから検索応答を受けるものとする。
【0088】
S1809において、仮想プリンタ501が、印刷装置の検索結果を管理者の端末に応答する。これにより、管理者の端末に、仮想プリンタ501に関連付けする候補となる印刷装置の一覧情報が表示される。続いて、管理者が、表示された印刷装置の一覧情報に含まれる印刷装置から任意の印刷装置を選択する。この例では、印刷装置101が選択されたものとする。S1810において、仮想プリンタ501に対して、選択された印刷装置101の情報が送信される。そして、S1811において、仮想プリンタ501が、選択された印刷装置101のプリンタキューに対して登録通知を送信する。これにより、仮想プリンタ501と印刷装置101とが関連付けられる。
【0089】
また、クラウドプリントサービス103上で仮想プリンタ501と関連付けされたことを印刷装置101に通知する必要がある。したがって、S1812において、クラウドプリントサービス103が、印刷装置101に対して関連付け通知を行う。関連付け通知は、印刷装置101が仮想プリンタ501と関連付けられたことを知らせるプッシュ通知である。
【0090】
図24は、関連付け通知に用いられるパケットの一例を示す図である。
図24に示すパケット1901に示すように、関連付け通知には、例えば、「Get-Notification Response」というオペレーションが用いられる。パケット109の例では、「notify-subscribe-event」は、イベント種別を表す。この例では、イベント種別として、仮想プリンタの関連付けというイベントが発生したことを示す情報が格納される。これにより、パケット109を受信した印刷装置101は、
図12のS1005において、関連付け指示のイベントが発生したことを検知する。また、「device-uuid」には、印刷装置101に関連付けされた仮想プリンタのUUID情報が格納される。「device-name」には、印刷装置101に関連付けされた仮想プリンタの名称が格納される。「access-token」には、印刷装置101が、関連付けられた仮想プリンタに接続する際に使用するトークン情報(第2のアクセストークン)が格納される。クラウドプリントサービス103上の印刷装置101のプリンタキューにアクセスするためのアクセストークンと同様のトークン情報を用いて仮想プリンタにアクセスできる場合には、「access-token」へのトークン情報の格納は省略されてもよい。
【0091】
図23の説明に戻る。S1813において、関連付け通知を受けた印刷装置101が、関連付け通知に対応する仮想プリンタを印刷装置101に関連付けて設定する。S1813の処理は、
図19のS1610を参照して説明した仮想プリンタの追加処理と同様である。
【0092】
図25は、クラウドプリントサービスから関連付け通知がされた際の印刷装置の動作処理の一例を説明するフローチャートである。
S3001において、印刷装置101のCPU401が、クラウドプリントサービスから関連付け通知を受信する。そして、S3002において、CPU401が、関連付け通知に対応する仮想プリンタの情報を印刷装置101に関連付けて設定する。本実施例によれば、クラウドプリントサービス103上で仮想プリンタと印刷装置との関連付けを行った場合も、印刷装置に関連付けされたことが通知されるので、当該通知に応じて、印刷装置側でも適切に仮想プリンタの設定を行うことができる。
【0093】
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【符号の説明】
【0094】
101 印刷装置
103 クラウドプリントサービス
104 クライアント端末