(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-09
(45)【発行日】2024-02-20
(54)【発明の名称】印刷装置、制御方法及びプログラム
(51)【国際特許分類】
B41J 29/38 20060101AFI20240213BHJP
G06F 3/12 20060101ALI20240213BHJP
H04N 1/00 20060101ALI20240213BHJP
【FI】
B41J29/38 201
B41J29/38 203
G06F3/12 367
G06F3/12 303
G06F3/12 387
H04N1/00 127A
H04N1/00 912
(21)【出願番号】P 2020101205
(22)【出願日】2020-06-10
【審査請求日】2023-05-25
【早期審査対象出願】
【前置審査】
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100126240
【氏名又は名称】阿部 琢磨
(74)【代理人】
【識別番号】100223941
【氏名又は名称】高橋 佳子
(74)【代理人】
【識別番号】100159695
【氏名又は名称】中辻 七朗
(74)【代理人】
【識別番号】100172476
【氏名又は名称】冨田 一史
(74)【代理人】
【識別番号】100126974
【氏名又は名称】大朋 靖尚
(72)【発明者】
【氏名】井上 剛
【審査官】大浜 登世子
(56)【参考文献】
【文献】特開2019-209508(JP,A)
【文献】特開2019-202502(JP,A)
【文献】特開2016-175248(JP,A)
【文献】特開2015-018404(JP,A)
【文献】特開2014-056438(JP,A)
【文献】特開2013-238924(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
B41J 29/38
G06F 3/12
H04N 1/00
(57)【特許請求の範囲】
【請求項1】
クラウドプリントサービスから印刷ジョブを取得し、取得した印刷ジョブに基づいて印刷を行う印刷装置であって、
前記印刷装置にユーザをログインさせるログイン処理を実行するログイン制御手段と、
前記クラウドプリントサービスから送信されるイベント通知に取得可能な印刷ジョブがあることを示す情報が含まれている場合に、前記クラウドプリントサービスに対して、取得可能な印刷ジョブを要求する制御手段と、を有し、
前記制御手段は、前記ログイン制御手段によるログイン処理が行われたことを条件に、前記クラウドプリントサービスに対して、ログインしたユーザのログインアカウント
に1対1で関連付けられておりかつ当該ログインアカウントと同一画面上でその関連付けが表示されるクラウドアカウントで取得可能な印刷ジョブを要求し、当該要求の際に当該クラウドアカウントを送信することを特徴とする印刷装置。
【請求項2】
前記印刷装置のユーザアカウントと前記クラウドプリントサービスのクラウドアカウントとを対応付ける設定を行う設定手段を更に有し、
前記ログインしたユーザのログインアカウントに対応するクラウドアカウントで取得可能な印刷ジョブの要求は、前記印刷装置にログインしたユーザのユーザアカウントに対応付くように設定された前記クラウドアカウントの印刷ジョブに関する要求であることを特徴とする請求項1に記載の印刷装置。
【請求項3】
前記制御手段は、前記印刷装置にログインしたユーザのユーザアカウントに対応するクラウドアカウントが設定されていない場合、前記ログイン制御手段によるログイン処理が行われたことを条件に前記クラウドプリントサービスに対して、前記印刷装置で取得可能な前記印刷ジョブを要求することを特徴とする請求項2に記載の印刷装置。
【請求項4】
前記印刷ジョブの要求で得られた情報を用いてジョブ情報を管理する管理手段と、
前記ログイン制御手段によるログイン処理が行われた後、所定の指示を受け付けた場合に、前記管理手段で管理されているジョブ情報に基づき、前記ログインしたユーザのユーザアカウントに対応付けて管理されている印刷ジョブを印刷対象として選択することが可能な選択画面を表示する表示制御手段を更に有することを特徴とする請求項2又は3に記載の印刷装置。
【請求項5】
前記管理手段は、前記得られた情報を用いて前記クラウドプリントサービスで管理されている印刷ジョブに対応する印刷データを受信し、当該印刷データを前記印刷装置が有する記憶領域に格納し、前記印刷ジョブの実行に必要となる情報と、当該格納した印刷データとを対応付けて管理することを特徴とする請求項4に記載の印刷装置。
【請求項6】
前記クラウドプリントサービスからのイベント通知方式にサーバプッシュ技術を用いる設定が記憶されている場合、所定の間隔で前記クラウドプリントサービスにイベント通知の有無を確認する処理は行われないことを特徴とする請求項1乃至5のいずれか1項に記載の印刷装置。
【請求項7】
サーバプッシュ通知を前記クラウドプリントサービスに要求し、受信した応答に基づきサーバプッシュ通知が可能か否かを判断する判断手段をさらに有し、
可能であると判断された場合に、サーバプッシュのイベント通知に用いるネットワークセッションを確立し、可能でないと判断された場合にポーリングによるイベント通知が行われることを特徴とする請求項6に記載の印刷装置。
【請求項8】
クラウドプリントサービスから印刷ジョブを取得し、取得した印刷ジョブに基づいて印刷を行う印刷装置の制御方法であって、
前記印刷装置にユーザをログインさせるログイン処理を実行するログイン制御工程と、
前記クラウドプリントサービスから送信されるイベント通知に取得可能な印刷ジョブがあることを示す情報が含まれている場合に、前記クラウドプリントサービスに対して、取得可能な印刷ジョブを要求する制御工程と、を有し、
前記制御工程は、前記ログイン制御工程によりログイン処理が行われたことを条件に、前記クラウドプリントサービスに対して、ログインしたユーザのログインアカウント
に1対1で関連付けられておりかつ当該ログインアカウントと同一画面上でその関連付けが表示されるクラウドアカウントで取得可能な印刷ジョブを要求し、当該要求の際に当該クラウドアカウントを送信することを特徴とする制御方法。
【請求項9】
前記印刷装置のユーザアカウントと前記クラウドプリントサービスのクラウドアカウントとを対応付ける設定を行う設定工程を更に有し、
前記ログインしたユーザのログインアカウントに対応するクラウドアカウントで取得可能な印刷ジョブの要求は、前記印刷装置にログインしたユーザのユーザアカウントに対応付く前記クラウドアカウントの印刷ジョブに関する要求であることを特徴とする請求項8に記載の制御方法。
【請求項10】
前記制御工程では、前記印刷装置にログインしたユーザのユーザアカウントに対応するクラウドアカウントが設定されていない場合、前記ログイン制御工程によるログイン処理が行われたことを条件に前記クラウドプリントサービスに対して前記印刷ジョブを要求することを特徴とする請求項9に記載の制御方法。
【請求項11】
前記印刷ジョブの要求で得られた情報を用いてジョブ情報を管理する管理工程と、
前記ログイン制御工程によるログイン処理が行われた後、所定の指示を受け付けた場合に、前記管理工程により管理されたジョブ情報に基づき、前記ログインしたユーザのユーザアカウントに対応付けて管理されている印刷ジョブを印刷対象として選択することが可能な選択画面を表示する表示制御工程を更に有することを特徴とする請求項9又は10に記載の制御方法。
【請求項12】
前記管理工程では、前記得られた情報を用いて前記クラウドプリントサービスで管理されている印刷ジョブに対応する印刷データを受信し、当該印刷データを前記印刷装置が有する記憶領域に格納し、前記印刷ジョブの実行に必要となる情報と、当該格納した印刷データとを対応付けて管理することを特徴とする請求項11に記載の制御方法。
【請求項13】
前記クラウドプリントサービスからのイベント通知方式にサーバプッシュ技術を用いる設定がなされている場合、所定の間隔で前記クラウドプリントサービスにイベント通知の有無を確認する処理は行われないことを特徴とする請求項8乃至12のいずれか1項に記載の制御方法。
【請求項14】
サーバプッシュ通知を前記クラウドプリントサービスに要求し、受信した応答に基づきサーバプッシュ通知が可能か否かを判断する判断ステップをさらに含み、
可能であると判断された場合に、サーバプッシュのイベント通知に用いるネットワークセッションを確立し、可能でないと判断された場合にポーリングによるイベント通知が行われることを特徴とする請求項13に記載の制御方法。
【請求項15】
請求項8乃至14の何れか1項に記載の印刷装置の制御方法を前記印刷装置に実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、外部から印刷ジョブを受信する印刷装置に関する。
【背景技術】
【0002】
近年、クラウド経由で印刷ジョブを投入し、印刷装置に印刷ジョブを送信するクラウドプリントの仕組みが普及し始めている(特許文献1)。このような印刷システムでは、まず管理者が印刷装置を、管理者が所属するクラウドプリントサービス(以降、CPSとも呼ぶ)へ登録する。その後、CPSの使用を許可されているユーザは、それぞれのクライアント端末を使用して、CPSに登録されたプリンタを出力プリンタとして選択し、所望の印刷設定を行い、CPSに対して印刷ジョブを送信する。印刷ジョブを受信したCPSは印刷装置に対して当該印刷ジョブを転送する。印刷装置は当該転送された印刷ジョブに基づき印刷を実行する。
【0003】
これらのクラウドプリントの仕組みは、PWG5100.18やRFC3995およびRFC3996などで規定されている。これらの規格では、クラウドプリントサービスから印刷装置に対してイベントを通知する方法も規定されている。具体的には通知を実現する1方式として、印刷装置が定期的にクラウドプリントサービスに問合せを行い、当該問合せの応答としてイベント通知を受信するといった通知方式が規定されている。以降紙面の都合上、印刷装置が定期的にクラウドプリントサービスに問合せを行い、当該問合せの応答としてイベント通知を受信するといった通知方式を単純にポーリング方式とも呼ぶ。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、組織や会社などに設置され、複数のユーザが使用することが想定される印刷装置では、ユーザ管理機能を有効にする場合がある。この場合、組織や会社等に所属するユーザは、印刷装置にログインして、印刷装置が有する各機能を使用する。また、このようにユーザ管理を行う印刷装置の場合、第三者による持ち去り、ミスプリント防止などを目的とした留め置き印刷機能を活用する場合もある。留め置き印刷機能とは、印刷装置が印刷ジョブを受信しても当該受信を契機としては印刷せず、一時的にストレージに保存する機能である。留め置き印刷機能が有効に設定されている印刷装置の場合、ユーザのログインが成功した後に、当該ユーザの印刷ジョブを印刷することとなる。
【0006】
また、前述したポーリングを行う間隔は、一般的にCPSを提供する事業者が取り決めた間隔が採用されることが多い。CPSを提供する事業者は、クラウドリソースの負荷や維持運用コストの削減を目的として、ポーリング間隔を長めに設定することが多いと想定される。
【0007】
ここで、ポーリング方式の問い合わせの間隔と、ユーザが印刷装置にログインするタイミングによっては、当該ログインしたユーザの印刷ジョブがCPSに存在することを印刷装置が把握する前に、ユーザのログイン処理が行われる場合がある。例えば、会議で配布する資料を会議の直前に印刷する場合など、成果物の出力を急ぎたいユーザは、クライアント端末から印刷ジョブを投入した直後に印刷装置にログインする場合がある。この場合、例えばユーザが印刷ジョブの一覧を確認しようとしても、CPS経由で投入したジョブが表示されず、困惑する可能性がある。
【0008】
本発明は上述の問題点の少なくとも1つを鑑みなされたものである。本発明の1つの側面としては、ポーリング方式でクラウドプリントサービスからイベントを受信する印刷装置において、ユーザのログインを条件に、クラウドプリントサービスに印刷ジョブに対する問合せを行う仕組みを提供することを目的の1つとする。また、本発明の1つの側面としては、クラウドプリントサービスを経由する印刷の利便性を高めることを目的の1つとする。
【課題を解決するための手段】
【0009】
上記の少なくとも1つの目的を達成するために本発明の印刷装置は、クラウドプリントサービスから印刷ジョブを取得し、取得した印刷ジョブに基づいて印刷を行う印刷装置であって、前記印刷装置にユーザをログインさせるログイン処理を実行するログイン制御手段と、前記クラウドプリントサービスから送信されるイベント通知に取得可能な印刷ジョブがあることを示す情報が含まれている場合に、前記クラウドプリントサービスに対して、取得可能な印刷ジョブを要求する制御手段と、を有し、前記制御手段は更に、前記ログイン制御手段によるログイン処理が行われたことを条件に、前記クラウドプリントサービスに対して、ログインしたユーザのログインアカウントに1対1で関連付けられておりかつ当該ログインアカウントと同一画面上でその関連付けが表示されるクラウドアカウントで取得可能な印刷ジョブを要求し、当該要求の際に当該クラウドアカウント送信することを特徴とする。
【発明の効果】
【0010】
本発明の1つの側面によれば、印刷装置において、ポーリングによる問合せに加えて、ユーザのログインを条件にジョブに関する問い合わせを行うことができるようになる。従って、ユーザが印刷装置にログインした時に、適切にクラウドプリントサービス上の印刷ジョブの有無を検知できるようになる。また、本発明の1つの側面によれば、クラウドプリントサービスを経由する印刷の利便性を高めることができるようになる。
【図面の簡単な説明】
【0011】
【
図2】印刷装置のハードウェア構成の一例を示す図である。
【
図3】ポーリング方式のイベント通知の問題を説明するシーケンス図の一例である。
【
図4】第1の実施形態における印刷ジョブの送受信シーケンスの一例である。
【
図5】ユーザアカウントとクラウドアカウントの関連付けを説明する図である。
【
図6】印刷装置の操作部に表示される画面の一例である。
【
図7】ポーリング方式のイベント通知に用いるパケットの一例である。
【
図8】ポージングを契機としたジョブ情報の取得に用いるパケットの一例である。
【
図9】ログインを契機としたジョブ情報の取得に用いるパケットの一例である。
【
図10】印刷ジョブの取得に関係する送受信パケットの一例である。
【
図11】印刷装置の制御の一例を示すフローチャートである。
【
図12】第2の実施形態における印刷装置の制御の一例を示すフローチャートである。
【
図13】第2の実施形態において印刷装置の操作部に表示される画面の一例である。
【
図14】第3の実施形態における印刷装置の制御の一例を示すフローチャートである。
【発明を実施するための形態】
【0012】
以下、本発明を実施するための実施形態について図面を用いて説明する。なお、以下の実施の形態は特許請求の範囲に係る発明を限定するものではなく、また、実施の形態で説明されている特徴の組み合わせのすべてが発明の解決手段に必須のものとは限らない。
【0013】
<第1の実施形態>
まず、
図1を用いて、本発明に係る印刷システムの構成を説明する。本実施形態に係る印刷システムは、印刷装置101、クライアント端末103~104、クラウドプリントサービス(以下、CPSとも呼ぶ)102を含む。印刷装置101は、ネットワーク100を経由してインターネット上のCPS102と通信する。ネットワーク100は例えばLAN、WANなどの通信ネットワーク、セルラネットワーク(例えば、LTEや5Gなど)、IEEE802.11に準拠する無線ネットワークなどを組み合わせて構成されてもよい。すなわち、ネットワーク100はデータの送受信が可能であればよく、物理レイヤの通信方式はいずれの方式を採用してもよい。クライアント端末103~104も、通信ネットワークやセルラネットワークを介してインターネット上のCPS102と通信する。
【0014】
印刷装置101は、スキャナを用いて読み取って得られた画像に基づくデータを外部に送信するスキャン機能や、外部装置から受信した印刷ジョブに基づき紙などのシートに画像を印刷する印刷機能、コピー機能を有する。また、印刷装置101はCPS102を経由して印刷ジョブを受信し、印刷を行うこともできる。本実施形態では、印刷装置の一例として複数の機能を有するMFP(Multi Function Peripheral)を例示しているがこれに限定されるものではない。例えば、印刷機能のみを有する単機能のSFP(Single Function Peripheral)などであってもよい。また、本実施形態では、一例として紙などのシートへの印刷を例示しているがこれに限定されるものではなく、3次元形状データに基づき立体物を成型する3Dプリントなどにおける印刷制御にも適用することができる。
【0015】
また、本実施形態の印刷装置101は、ユーザ管理機能を有している。印刷装置101の動作設定として、ユーザ管理機能が有効に設定された場合、ユーザは、印刷装置にログインして、印刷装置が有する各機能を使用することになる(詳細は後述する。)また、印刷装置101は、第三者による持ち去り、ミスプリント防止などを目的とした留め置き印刷機能を有する。留め置き印刷機能とは、印刷装置が印刷ジョブを受信しても当該受信を契機としては印刷せず、一時的にストレージに保存する機能である。留め置き印刷機能が有効に設定されている印刷装置の場合、ユーザのログインが成功した後に、当該ユーザの印刷ジョブを印刷することになる。
【0016】
CPS102はクライアント端末103~104等のクライアント端末から印刷ジョブを受信し、当該印刷ジョブを保存する。続けて、CPS102に登録された印刷装置101に対して印刷ジョブが入稿されたことを通知する。当該通知を受け取った印刷装置101は印刷ジョブを取得し、ストレージに一時的に保存する。印刷装置101に保存された印刷ジョブは印刷装置101にユーザがログインした後、印刷を開始する操作を受け付けたことに従って印刷される。
【0017】
<ポーリング方式が抱える課題>
続けて、従来から知られている一般的なクラウドプリントサービス(CPS)におけるジョブの送受信について
図2を用いて説明する。
図2は、一般的なCPSにおけるジョブの送受信のシーケンスの一例を示している。本実施形態では一例としてIPP(Internet Printing Procotol)のプロトコルで通信のやり取りを行う場合であり、CPSから印刷装置に対するイベント通知方式にポーリング方式を採用する場合を例に説明する。
【0018】
印刷装置は、CPSにポーリングを行うタイミングであると判断すると、イベント通知の有無を確認する要求をCPSに対して送信し、その応答としてイベント通知を受信する(シーケンスS201~S202)。ここでは、特に処理すべきイベントがない場合を例示している。続けて、印刷装置はポーリング間隔に相当する時間(例えば30秒)が経過したことを検知するタイマー処理を開始する(S203)。S203で開始したタイマー処理によりポーリング間隔に相当する時間が経過したことを検知すると、印刷装置はイベント通知を確認する要求をCPSに送信する(S204~S206)。このようにポーリング方式を採用する場合、S203~S206で説明した処理を繰り返すことで、所定の待機時間が経過する度に確認の問い合わせを行う。
【0019】
ところで、ポーリング方式で用いられるポーリング間隔は、一般的にCPSを提供する事業者が取り決めた間隔が採用されることが多い。CPSを提供する事業者は、クラウドリソースの負荷や維持運用コストの削減を目的として、ポーリング間隔を長めに設定することが多いと想定される。
【0020】
ここで、ポーリング方式の問い合わせの間隔と、ユーザが印刷装置にログインするタイミングによっては、当該ログインしたユーザの印刷ジョブがCPSに存在することを印刷装置が把握する前に、ユーザのログイン処理が行われる場合がある。
【0021】
S207~S217のシーケンスを用いて詳しく説明する。印刷装置はS207において次回のポーリング処理のためタイマー処理を開始する。続けて、クライアント端末のユーザは、CPSに登録されたプリンタである印刷装置を出力プリンタとして選択し印刷実行を指示する(S208)。実行指示を検知したクライアント端末は、CPSに対して印刷ジョブを送信し、当該印刷ジョブを受信したCPSは印刷ジョブを保存し、CPS上で管理されるジョブとしてジョブIDを割り当てる(S209~S210)。しかしながら、ポーリング方式を採用する場合、イベント確認要求の応答という形でないと印刷装置に情報を通知することができない。従って、このタイミングでは印刷装置にジョブが発生したことを通知することができない。またCPSは、他のクライアント端末からも同様に印刷ジョブを受信し、印刷ジョブを保存する(S211~S213)。
【0022】
いずれか一方のクライアント端末からジョブを投入したユーザは、印刷を行うべく印刷装置にログインを試みる(S214)。続けて、印刷装置は、ログイン処理を実行し、ユーザを印刷装置にログインさせる。ログインに成功すると、印刷装置が備える各機能(例えば、留め置かれた印刷ジョブの印刷を開始する機能、コピー機能、スキャン機能)が利用可能になる。続けて、留め置き印刷機能のジョブリストを表示するためのボタンを選択するユーザ操作を検知すると、印刷装置は留め置かれている印刷ジョブの中から、当該ログインユーザのジョブを抽出し、ジョブリストを表示する(S215~S216)。ここで、印刷装置は、S209~S210、S212~S213でCPSに投入された印刷ジョブの存在をまだ把握できていない。従ってCPS経由で印刷ジョブを投入したユーザに、ジョブがないことが通知されることになる。このように、ポーリング間隔が比較的長く設定されている場合、ログインユーザが印刷ジョブの一覧を確認しようとしても、CPS経由で投入したジョブが表示されず、困惑する可能性がある。
【0023】
続けて、CPSからの印刷ジョブがあることが通知され、正常に表示するまでのシーケンスについて説明する。印刷装置は、S203で開始したタイマー処理によりポーリング間隔に相当する時間が経過したことを検知すると、印刷装置はイベント通知を確認する要求をCPSに送信する(S218~S219)。S219で送信したイベント通知の確認要求の応答として、CPSは、取得可能な新たな印刷ジョブがあることを印刷装置に通知する(S220)。以降、CPSと印刷装置との間でジョブ一覧の取得操作や、実ジョブの取得操作、ジョブの保存処理が順次行われる(S221~S226)。この後再度、クライアント端末からCPS経由で印刷ジョブを投入したユーザがジョブリストを表示するためのボタンをユーザが再度選択する。すると、ログインユーザのジョブであって、CPS経由で投入されたジョブを含むジョブリストが表示される(S229~S230)。
【0024】
このように、ポーリング間隔が比較的長い場合、印刷装置がCPS上の印刷ジョブがあることと把握するまでタイムラグが表示する。例えば、会議で配布する資料を会議の直前に印刷する場合など、成果物の出力を急ぎたいユーザが、印刷ジョブを投入した直後に印刷装置にログインして印刷指示を試みようとするケースなどにおいて、投入したジョブが表示されない恐れがある。この画面を見たユーザは困惑する可能性が高い。
【0025】
これらの問題点の少なくとも1つを鑑み、本実施形態では、ポーリング方式でクラウドプリントサービスからイベントを受信する印刷装置において、ユーザのログインを条件に、クラウドプリントサービスに印刷ジョブに対する問合せを行う仕組みを提供する。以下具体的に説明する。
【0026】
<印刷装置101のハードウェア構成>
本実施形態における印刷装置101のハードウェア構成について
図3を用いて説明する。
図3は、印刷装置101のハードウェア構成を示すブロック図である。印刷装置101はシート上の画像を読み取る読取機能、当該読み取った画像を外部の通信装置に送信可能なファイル送信機能などを有している。また、シートに画像を印刷する印刷機能も有する。また、CPS102から印刷ジョブを受信して印刷する機能や、前述したユーザ管理機能、留め置き印刷機能も有しているものとする。
【0027】
CPU(Central Processing Unit)111を含む制御部110は、印刷装置101全体の動作を制御する。CPU111は、ROM(Read Only Memory)112又はストレージ114に記憶された制御プログラムを読み出して、印刷制御や読取制御などの各種制御を行う。ROM112は、CPU111で実行可能な制御プログラムを格納する。RAM(Random Access Memory)113は、CPU111がアクセスする主記憶メモリであり、ワークエリア又は各種制御プログラムを展開するための一時記憶領域として用いられる。ストレージ114は、印刷ジョブ、画像データ、各種プログラム、及び各種設定情報を記憶する。このように、CPU111、ROM112、RAM113、ストレージ114等のハードウェアは、いわゆるコンピュータを構成している。
【0028】
なお、本実施形態の印刷装置101では、1つのCPU111が1つのメモリ(RAM113)を用いて後述するフローチャートに示す各処理を実行するものとするが、他の様態であっても構わない。例えば複数のプロセッサ、メモリ、及びストレージを協働させて後述するフローチャートに示す各処理を実行することもできる。また、ハードウェア回路を用いて一部の処理を実行するようにしてもよい。
【0029】
プリンタI/F(インタフェース)119は、プリンタ120(プリンタエンジン)と制御部110とを接続する。印刷装置101は、印刷ジョブに基づきプリンタ120に転送する印刷画像及び印刷制御コマンドを生成する。プリンタ120は、プリンタI/F119を介して入力された印刷画像や印刷制御コマンドに基づいて、不図示の給紙カセットから給紙されたシートに画像を印刷する。印刷の方式はトナーを紙に転写して定着させる電子写真方式であってもよいし、紙にインクを吐出して印刷するインクジェット方式であってもよい。
【0030】
スキャナI/F117は、スキャナ118と制御部110とを接続する。スキャナ118は、図示省略の原稿台に載置された原稿を読み取り、そして画像データを生成する。スキャナ118が生成した画像データは、プリンタ120で印刷されたり、ストレージ114に記憶されたり、ネットワークI/F121を介して外部装置に送信されたりする。
【0031】
操作部I/F115は、操作部116と制御部110とを接続する。操作部116には、タッチパネル機能を有する液晶表示部や各種ハードキーなどが備えられている。操作部116は、ユーザに情報を表示する表示部やユーザの指示を受け付ける受付部として機能する。CPU111は、操作部116と協働して情報の表示制御やユーザ操作の受け付け制御を行う。
【0032】
ネットワークI/F121には、ネットワークケーブルが接続され、ネットワーク100上やインターネット上の外部装置と通信を実行することができる。本実施形態では、ネットワークI/F121がイーサネット(登録商標)に準拠する有線通信を行う通信インタフェースである場合を想定しているがこれに限定されるものではない。例えば、IEEE802.11シリーズに準拠する無線通信インタフェースであってもよい。また、両方が無線通信インタフェースであってもよい。また、CDMA等の3G回線、LTEなどの4G回線、5G NRなどの移動体通信を行う通信インタフェースであってもよい。
【0033】
続けて、印刷装置の動作設定について
図4、
図5を用いて説明する。
図4(A)及び(B)は印刷装置101の操作部116に表示される設定画面の一例である。また、
図5はユーザ管理機能におけるユーザログイン制御と、強制留め置き印刷機能を説明するための操作画面の一例である。まず
図4(A)の設定画面について説明する。
図4(A)は、印刷装置101の管理画面の一例であり、管理者権限を有するユーザに提供される画面である。
図4(A)では、ユーザ管理機能が有効に設定されており、印刷ジョブの強制留め置き機能が有効に設定されている場合を例示している。
図4の画面を介してなされた設定は、ストレージ114に記憶され、適宜印刷装置の各種制御を行う際に参照される。ユーザ管理設定キーは、ユーザ管理機能で管理するユーザのユーザアカウントを登録したり、当該ユーザアカウントの編集を行ったりする場合に使用するキーである。
【0034】
ユーザ管理設定キーが選択されたことを検知すると、印刷装置101のCPU111は、操作部116に表示する画面をユーザ管理画面に切り替える。ここでは、一例として、「Alice」と「Bob」のユーザアカウントが、印刷装置101に登録されている場合を例示している。
【0035】
本実施形態では、印刷装置101がユーザアカウントを管理するデータベースを管理する場合を例示しているがこれに限定されるものではない。印刷装置101を使用するユーザのユーザアカウントの管理は外部の認証サーバと連携して実現することもできる。例えば、Microsoft(登録商標)が提供するActiveDirectoryサービスやAzure(登録商標) ActiveDirectoryサービスと連携して、ユーザアカウントを管理するようにしてもよい。
【0036】
図4の説明に戻る。登録キーは新たなユーザを登録する際に使用するキーである。編集キーは選択されたユーザアカウントを編集する場合に使用するキーである。印刷装置101のCPU111は、編集キーが押下されたことを検知すると操作部116に表示する画面を
図4(B)の編集画面に切り替える。ユーザは、編集画面を介して、ユーザ名やパスワードを変更することができる。また、当該ユーザアカウントと、CPS102上でユーザが使用するクラウドアカウントを対応付けることができる。「クラウドアカウント名」はCPS102に登録されているアカウント名を設定する項目である。画像形成装置で管理するユーザ名と、CPS102で管理するアカウント名は一致する場合もあれば一致しない場合もある。アカウント名が一致しない場合、当該対応付けを事前登録することで、CPS102上のクラウドアカウントと、印刷装置101のユーザアカウントを連動させることができる。
【0037】
また、ユーザは、
図4(B)の編集画面を介してログインに使用する他のユーザクレデンシャルを登録することもできる。カードIDキーは、社員証や学生証、免許証などのICカードをユーザアカウントに紐づける場合に使用するキーである。また、モバイルはモバイルアプリケーションを使用したログインを使用するかどうかを設定する場合に使用するキーである。生体情報キーは、顔情報や指紋情報といった生体情報をユーザアカウントに紐づける場合に使用するキーである。
【0038】
続けて、
図5を用いてユーザ管理機能並びに、強制留め置き機能によって、ストレージ114に一時的に記憶された留め置き印刷ジョブの印刷方法について説明する。画面500は、印刷装置101にユーザがログインしていないログアウト状態の画面を例示している。この画面500は、印刷装置101にユーザがログインしていない状態で表示されるロック画面とユーザクレデンシャルを入力するための画面を兼ねている。ロック画面が表示されている間は、印刷装置101は、コピー機能の画面やスキャン機能の操作部116上に表示しないよう制御する。
【0039】
印刷装置101にログインしたいユーザは、画面500を介してユーザID及びパスワードで構成されるユーザクレデンシャルを入力する。ユーザクレデンシャルが入力された後にログインキーが押下されたことを検知すると、印刷装置101はユーザ認証処理を行う。具体的には、印刷装置101は、入力されたユーザクレデンシャルに対応するユーザアカウントが印刷装置101に登録されているか否かを判定する。登録されている場合、ユーザ認証に成功したと判断し、ログイン処理を実行し、登録されていない場合、ユーザ認証に失敗したと判断し、図示省略のエラーメッセージを表示する。なお、ユーザアカウントにカードIDや生体情報が紐づけられている場合、ICカードから読み出されたカードIDやカメラや指紋認証センサから得られた生体情報をユーザクレデンシャルとして使用することもできる。
【0040】
続けて、印刷装置101は、ユーザを印刷装置101にログインさせるログイン処理を実行し、当該ユーザ用の操作画面を表示する。画面510は、
図4で説明したAliceがログインした場合を例示しており、画面530は、Bobがログインした場合を例示している。ここでは、印刷装置101が提供する各機能を選択するためのメニュー画面が表示される場合を例示している。
【0041】
COPYキーは、スキャナ118で原稿を読み取って得られたスキャン画像をシートに印刷するコピー機能の画面を表示する場合に使用されるキーである。スキャンして送信キーは、スキャナ118で原稿を読み取って得られたスキャン画像を外部装置に送信する送信機能の画面を表示する場合に使用されるキーである。ジョブリストキーは、強制留め置き印刷機能などでストレージ114に一時的に留め置かれた印刷ジョブの中から印刷対象を選択する選択画面を表示する場合に使用するキーである。
【0042】
ジョブリストキーが選択されたことを検知すると、印刷装置101は、操作部116に表示する画面をジョブリスト画面に遷移させる。画面520は、ログインユーザがAliceの場合に表示されるジョブリスト画面を例示しており、画面540は、ログインユーザがBobの場合に表示されるジョブリスト画面を例示している。
【0043】
画面520には、Aliceが投入した印刷ジョブが表示される。一方、画面540には、Bobが投入した印刷ジョブが表示される。ログインユーザは、当該ジョブリスト画面を介して印刷対象とする印刷ジョブを選択することができる。1以上の印刷ジョブが選択された後に、印刷キーが選択されたことを検知すると、印刷装置101は、当該選択された印刷対象の印刷ジョブに基づき印刷処理を実行する。削除キーは選択された印刷ジョブを削除する場合に使用するキーであり、閉じるキーは留め置き印刷機能のジョブリスト画面を閉じ、メインメニュー画面に戻る場合に使用するキーである。本実施形態では、ジョブリスト画面に、CPS102から投入された印刷ジョブが表示されている場合を例示しているが、これに限定されるものではない。例えば、PC上にインストールされたプリンタドライバから直接受信した印刷ジョブについても当該ジョブリスト画面に表示するよう構成することもできる。例えば、AliceのPCから、プリンタドライバを用いて投入された、Aliceがジョブオーナーの印刷ジョブも画面520に表示するようにしてもよい。
【0044】
<第1の実施形態における印刷ジョブの送受信シーケンス>
続けて、
図6を用いて本実施形態における印刷ジョブの取得シーケンスについて説明する。なお、
図2で説明した一般的なシーケンスと同様の制御については適宜説明を省略するものとする。
【0045】
まず、印刷装置101のCPU111は、CPS102にポーリングを行うタイミングであると判断すると、イベント通知の有無を確認する要求をCPS102に対して送信する(S601)。イベント通知とは、CPS102から印刷装置101に送信される通知であり、印刷装置101が取得可能な印刷ジョブがあることや、印刷ジョブのステータスの変更が発生したことなど、イベントの発生及びその内容を通知することを示している。
【0046】
図7はイベント通知のやり取りに用いられるパケットの一例を示す図であり、
図7(A)は、S401で送信する要求の一例を示している。S401で送信される確認の要求には、例えば「Get-Notification」というIPPで規定されているオペレーションを用いることができる。「notify-event」属性は検知したいイベントの種別を示している。本実施形態では、検知したいイベントの種別として「job-state-changed」と、「job-fetchable」が指定されている場合を例示している。
【0047】
「job-state-changed」は検知したいイベントが、CPS102の管理する印刷ジョブにおいて、状態の変更が発生したといったイベントであることを示している。印刷装置101は、CPS102上で印刷ジョブがキャンセルされた場合等に、ジョブ状態がキャンセルになったことなどを検知し、適切にジョブキャンセルを行うために当該イベントを購読する。また、「job-fetchable」は検知したいイベントが、CPS102に印刷ジョブが投入され、印刷装置101が取得可能な印刷ジョブが格納されたといったイベントであることを示している。
【0048】
「notify-wait」属性はポーリング方式(プル方式とも呼ぶ)でのイベント通知を希望するか、サーバプッシュ方式でのイベント通知を希望するかを表す属性値である。「notify-wait」に「False」を指定した場合、ポーリング方式(プル方式)希望し、「True」を指定した場合サーバプッシュ方式を希望するといった指定となる。本実施形態では、ポーリング方式を使用することを想定しているため「False」を指定している場合を例示している。
【0049】
図6の説明に戻り、CPS102は、印刷装置101に通知すべきイベントが発生していない場合、イベントがないことを示す応答を送信する。印刷装置101は当該応答を受信する(S602)。
図7(C)は、イベントなしの応答パケットを例示している。
【0050】
本応答の中で指定される「notify-get-interval」の値は、次回、Get-Notification要求を送信するまでのインターバル時間(ポーリング間隔)を示している。例えば、
図7(C)に示す応答の様に「300」が指定されている場合、印刷装置101は次回の確認要求を送信する迄待機する待機時間に300秒を設定することとなる。
図7(B)は、イベントが発生している場合の応答の一例であり、印刷装置101が取得可能な印刷ジョブが格納されたといったイベント通知の一例を示している。
図7(B)に例示するイベントを受信した印刷装置101はCPS102から印刷ジョブの取得を試みる。イベント通知に基づく印刷ジョブの取得制御については後述のフローチャートにて詳述する。
【0051】
図6の説明に戻り、S603~S607のタイマー機能を用いたポーリング処理は
図2のS203~S207と同様のため説明を省略する。
【0052】
次に印刷装置101が、S607で次回の確認要求を送信するまで待機する状態に遷移した後、かつ、その待機期間内にジョブ投入とユーザログインが発生した場合の制御について説明する。実行指示を検知したクライアント端末103は、CPSに対して印刷ジョブを送信する(S608~S609)。本実施形態では、「alice_aa@canon.cloud.com」がジョブオーナーの印刷ジョブがCPS102に送信されたものとして説明する。クライアント端末103からジョブを受信したCPS102は、当該印刷ジョブを保存し、CPS102上で管理される印刷ジョブとしてジョブIDを割り当てる(S610)。また、実行指示を検知した別のクライアント端末104は、CPSに対して印刷ジョブを送信し、CPSは当該ジョブをCPS上に保存する(S611~S613)。本実施形態では、「bob_bb@canon.cloud.com」がジョブオーナーの印刷ジョブがCPS102に保存されたものとして説明する。なお、CPS102の内部ではクラウドアカウント名で印刷ジョブのジョブオーナーを管理する。
【0053】
続けて、クライアント端末からCPS102に対して印刷ジョブを投入したユーザは、印刷を実行すべく印刷装置101にログインする(S614)。ここでは、印刷装置101にAliceがログインした場合を例示している。
【0054】
続けて、印刷装置101は、ログインしたユーザのユーザアカウントに対応付けられたクラウドアカウントを特定する(S615)。印刷装置101は、ユーザDBを参照し、ログインしたユーザアカウントの「Alice」に対応付けられたクラウドアカウント名を探索する。例えば、
図4で説明したユーザアカウントと、クラウドアカウントが登録されている場合、ユーザアカウント「Alice」から「alice_aa@canon.cloud.com」といったクラウドアカウントが特定される。
【0055】
続けて、印刷装置101は、クラウドアカウントを特定する情報を含む印刷ジョブ一覧の取得要求をCPS102に送信する(S616)。印刷ジョブ一覧取得要求は、IPPに規定された「Get-Jobs」オペレーションを使用することができる。
図9は、特定のユーザのジョブの一覧を要求する取得要求とその応答の一例を示している。
図9(A)は、「alice_aa@canon.cloud.com」がジョブオーナーであり、且つ、印刷装置101が取得可能な印刷ジョブを取得する要求を例示している。印刷装置101は、本要求に「which-jobs」属性に「fetchable」を指定する。この属性値の指定は、取得可能状態の印刷ジョブの一覧を要求することを意味している。また印刷装置101は本要求に、901に示す属性の組み合わせを指定する。具体的には、「my-jobs」属性に「True」を指定する。更に、「Requesting-user-name」属性や「Requesting-user-uri」属性を用いて、ユーザを一意に特定するための属性値を指定する。本実施形態では、「Requesting-user-name」の属性値に、印刷装置にログインしたユーザのユーザアカウント名である「Alice」をしている。また、「Requesting-user-uri」の属性値に、S615で特定したクラウドアカウント名である、「alice_aa@canon.cloud.com」を指定する。本実施例では「Requesting-user-name」「Requesting-user-uri」の2つを含めているが、これに限定されるものではない。CPS102上でユーザを一意に特定できる1つの属性情報が含まれていればよい。
【0056】
図6の説明に戻り、S615で送信された要求を受信したCPS102は、自身のストレージに保存している印刷ジョブの中から条件に一致する印刷ジョブを抽出する。本実施例ではCPS102が管理する印刷ジョブのクラウドアカウント名と「Requesting-user-uri」属性に含まれている属性値を比較して判断するものとする。具体的には、CPS102は、「alice_aa@canon.cloud.com」にジョブオーナー名がマッチする印刷ジョブであり、取得可能な状態の印刷ジョブを応答対象として抽出する。ここでは、「alice_aa@canon.cloud.com」によって投入された、ジョブID1の印刷ジョブが抽出されたものとして説明する。なお、クラウドサービス上で管理するユーザ名と「Requesting-user-name」とを用いてジョブオーナーの特定を行うようにしてもよい。
【0057】
抽出が完了すると、CPS102は、S616の要求の応答として、抽出された印刷ジョブの一覧を示す応答を送信する(S617)。
図9(B)は、
図9(A)に例示した要求の応答として得られる印刷ジョブの一覧を示す応答を例示している。当該応答には、印刷ジョブの取得処理に必要となるジョブIDが列挙される。本実施形態では、902に示すようにAliceが投入した、印刷待ち状態の印刷ジョブのジョブIDのみが抽出されることになる。なお、条件に一致するジョブが1つもない場合、CPS102は、
図9(C)に例示する応答を送信する。
【0058】
続けて、印刷装置101はCPS102に対してジョブ取得要求を送信する(S618)。
図10は、ジョブ取得に関する要求、応答の一例を示しており、
図10(A)はジョブ取得に関する要求の一例を示している。印刷装置101は、
図10(A)に例示するように、要求に取得したい印刷ジョブを特定するジョブIDを指定した、「Fetch-job」リクエストオペレーションをCPS102に対して送信する。当該要求を受信したCPS102は、ジョブIDに対応するジョブデータを印刷装置101に送信する。印刷装置101はジョブデータを受信する(S619)。
図10(B)はS619で受信するジョブデータの一例である。当該ジョブデータには、ジョブ名称、部数、色設定、CPS102上でのジョブオーナーを一意に特定するための情報など印刷ジョブの属性情報(印刷設定とも呼ぶ)が格納されている。
図10(B)は、Job1のジョブオーナーを識別するための情報として、クラウドアカウント名である「alice_aa@canon.cloud.com」が格納されている場合を例示している。また、ジョブオーナーを識別するための情報として、クラウドディスプレイ名である「alice_aa」が格納されている場合を例示している。
【0059】
印刷装置101は、クラウドアカウント名から印刷装置におけるユーザアカウントを特定する(S620)。印刷装置101は、ユーザDBを参照し、ジョブデータに含まれているジョブオーナーを識別される情報に対応するクラウドアカウントが紐づけけられているユーザアカウントを探索する。例えば、ジョブオーナーを特定する情報である「alice_aa@canon.cloud.com」を用いてユーザDBを検索することで「Alice」といったユーザアカウントを特定する。
【0060】
続けて印刷装置101は、S619で受信したジョブデータに基づき、S620で特定したユーザが所有する印刷ジョブ(ジョブ情報と実印刷データ)をストレージ114に保存する(S621)。なお、印刷ジョブの強制留め置き機能が無効である場合、S621の処理に代えて、当該取得したジョブデータの印刷処理が行われる。
【0061】
以上説明した、ユーザログインをトリガとしたS615~S621の処理を行うことで、で次回の確認要求を送信するまで待機している間に、CPS102に投入されたユーザジョブを適切に検知することができるようになる。
【0062】
最後に、印刷装置101にログインしたユーザにより、ジョブリストの表示するための操作がなされたことを検知すると、印刷装置101は、強制留め置き機能のジョブリストを表示する(S422~S423)。ジョブリストには、
図5で説明したように、ログインユーザが投入した印刷ジョブが表示される。
【0063】
ジョブリストから印刷対象を選択するユーザ操作がなされた後、印刷を開始するユーザ操作を検知すると、印刷装置101は、印刷対象として選択された1以上の印刷ジョブの印刷処理を実行する(S424~S425)。印刷が完了すると、目的を達成したユーザはログアウト操作を行う。ログアウト操作を検知した印刷装置101は、印刷装置101からユーザをログアウトさせるログアウト処理を実行し、操作部116に表示する画面をログアウト画面500に切り替える(S426)。
【0064】
最後に定期ポーリングによるCPS102上のジョブ取得について説明する。S607で開始したタイマー機能により、待機時間に相当する時間が経過したと判断すると、印刷装置101は、CPS102にイベント通知の有無を確認する要求を送信する(S627~S628)。当該要求を受信したCPS102は、Bobが投入したジョブID2のジョブが存在するため、
図7(B)に例示した「job-fetchable」といったイベントを含む応答を印刷装置101に送信する(S629)。
【0065】
S629の応答を受信した印刷装置101は、印刷ジョブ一覧の取得要求を送信する。
図8は定期ポーリングによるイベント通知で、印刷装置101が取得可能な印刷ジョブが発生しているといったイベントを受信した場合の取得要求及び応答の一例を示している。印刷装置101は、
図8(A)に示すように取得要求に「which-jobs」属性に「fetchable」を指定し、「my-jobs」属性に「False」を指定する。「my-jobs」属性に「False」を指定することにより、印刷装置101で取得可能なすべての印刷ジョブの取得を試みることができる。S629の要求を受信したCPS102は、印刷装置101が取得可能な印刷ジョブを抽出し、当該結果を含む応答を送信する(S630)。
図8(B)はS630で送信される応答の一例である。なお、印刷装置101が取得可能な印刷ジョブが1つもない場合、CPS102は
図8(C)に例示する応答を送信するものとする。
【0066】
S632~S635のジョブIDに基づくジョブデータの取得処理~保存処理はS618~S621と同様の方法であるため説明を省略する。ジョブデータの取得、保存が完了すると、印刷装置101は、S629で送信された応答に含まれるインターバル時間(ポーリング間隔)に基づきタイマー機能を起動する(S636)。
【0067】
印刷装置101の制御について
図11のフローチャートを用いて説明する。
図11のフローチャートに示す各動作(ステップ)は、CPU111がROM112またはストレージ114に記憶された制御プログラムを実行することにより実現される。
図9の処理は、印刷装置101に電源が投入されて、印刷装置101が正常に起動した後、繰り返し実行されるものとする。
【0068】
S1101において、CPU111は、ログインイベントが発生したかどうかを判断する。具体的には、CPU111は画面500が表示された状態で取得したユーザクレデンシャルに基づきユーザ認証を試みる。ユーザ認証を試みた結果当該ユーザをログインさせると判断した場合に処理をS1110に進める。ユーザ認証に失敗した場合や、ユーザ認証が要求されていない場合は処理をS1102に進める。
【0069】
S1102において、CPU111は、ポーリングによるイベント通知の確認条件を満たしたかどうかを判断する。ポーリングによるイベント通知の確認条件を満たしていると判断すると処理をS1103に進め、満たしていないと判断すると処理をS1112に進める。当該判断は、前述したタイマー機能によるタイマー割り込みを用いて実現することができる。
【0070】
S1103において、CPU111は、CPS102に対してイベント通知の有無を確認するための確認要求を送信する。例えば、CPU111は、
図7(A)で例示した要求をCPS102に対して送信する。
【0071】
S1104において、CPU111は、CPS102から受信した応答に基づき、CPS102から取得すべき印刷ジョブがあるかどうかを判断する。具体的には
図7(B)で例示した「job-fetchable」を含む応答である場合、処理をS1105に進める。一方、「job-fetchable」を含まない応答である場合、処理をS1120に進める。
【0072】
S1120において、CPU111は、応答(イベント通知)の内容に応じて印刷ジョブのキャンセル、ジョブ設定の変更などの処理を行う。処理が完了すると処理をS1001に進める。なお、CPU111は、応答(イベント通知)でイベント無しが通知された場合、特段の処理を行うことなく、処理をS1001に進める。
【0073】
一方、S1105において、CPU111は、
図8(A)に例示した印刷ジョブ一覧の取得要求を送信する。当該要求は前述した通り、ジョブオーナーを特定せず、印刷装置101が取得可能な全印刷ジョブの一覧の取得を試みる要求である。
【0074】
S1106において、CPU111は、CPS102から印刷装置101が取得可能なジョブの一覧を示す応答を受信する。当該応答は、
図8(B)に例示したように、印刷装置101が取得可能な印刷ジョブを特定するためのジョブIDが含まれる。
【0075】
S1107において、CPU111は、ジョブIDを指定したジョブ取得要求をCPS102に対して送信する。続けて、当該要求の応答として印刷ジョブを取得する。具体的には、CPU111は、fetch―jobオペレーションを送信し、job-templete属性を取得する。当該属性は
図10(B)に例示した印刷設定とクラウドアカウントを特定する情報を含んでいる。続けてacknowledge-jobリクエストを送信する。このリクエストはジョブを受け入れたことをCPS102に対して通知するためのリクエストである。当該リクエストに対する応答を受信したことに従って、CPU111は、CPS102にfetch-documentリクエストを送信する。このリクエストは、印刷データ(PDLデータ)の要求である。CPU111は、当該fetch-documentリクエストの応答としてCPS102から印刷データ(PDLデータ)を受信する。本実施形態では、
図10(B)に示した印刷設定を示す属性と、印刷データの組み合わせを、印刷ジョブと呼ぶものとする。なお本実施形態では、PWG5100.18に規定されている印刷ジョブの取得方法を例示したが、これに限定されるものではない。
【0076】
S1108において、CPU111は、S1107で取得したクラウドアカウントを特定する情報に基づき、印刷装置101におけるユーザアカウントを特定する。続けて、特定したユーザアカウントの留め置き印刷ジョブとしてジョブを管理するためのジョブ情報をストレージ114に保存する。ここで、ジョブ情報とは、印刷設定やジョブオーナー名などの書誌情報と、印刷データ(PDLデータ)の対応関係を含む情報である。書誌情報は、前述したジョブリストの表示にも用いられる。
【0077】
S1109において、CPU111は、未取得の印刷ジョブがあるかどうかを判断する。具体的には、S1106の応答に含まれているジョブIDであって、S1107~S1108で説明した印刷ジョブの取得を試みていないジョブIDがある場合、未印刷の印刷ジョブがあると判断する。未印刷の印刷ジョブがあると判断された場合、当該取得を試みていないジョブIDを指定し、S1107~S1108のジョブ取得処理及びジョブ情報と印刷データの保存処理を実行する。一方S1106の応答に含まれているすべてのジョブIDについてジョブの取得を試みたと判断した場合、処理をS1001に進める。
【0078】
続けて、ログインイベントが発生した場合の制御について説明する。S1110において、CPU111は、CPS102に対してログインユーザのジョブ一覧を取得する要求を送信する。当該要求には前述したようにmy-job属性に「True」が指定される。また、当該要求は、ログインユーザに対応付けられたクラウドアカウントを特定する情報を含むよう構成される。
図9(A)はログインユーザのジョブ一覧を取得する要求の一例である。続けて、CPU111は、操作部116にログインに成功したユーザ向けの操作画面を表示する。操作画面の切り替えが完了すると、処理をS1106に進める。なお、以降のジョブIDに基づく印刷ジョブの取得シーケンスはイベント通知をトリガとしてジョブIDを取得した場合と同様である。
【0079】
一方、S1112において、CPU111は、画面遷移の指示を受け付けたかどうかを判断する。画面遷移の指示を受け付けた場合、処理をS1113に進め、画面遷移の指示を受け付けていない場合、処理をS1118に進める。
【0080】
S1113において、CPU111は、画面遷移の指示の種類がジョブリスト画面への遷移を示しているか否かを判断する。ジョブリスト画面への遷移を示している場合は処理をS1114に進め、ジョブリスト画面への遷移を示していない場合は処理をS1117に進める。S1117において、CPU111は、操作部116上に指示に応じたその他の画面を表示する。例えば、ログアウトの指示が行われた場合、画面500を表示する。また、コピー画面に遷移する指示が行われた場合、操作部116上に図示省略のコピー画面を表示する。スキャン画面に遷移する指示が行われた場合、操作部116上に図示省略のスキャン画面を表示する。
【0081】
S1114において、CPU111は、ストレージ114に記憶されたジョブ情報(書誌情報)に基づき、印刷装置101にログインしているユーザに対応付けられた印刷ジョブを抽出する。続けて、CPU111は、当該抽出した印刷ジョブを選択可能な選択画面(ジョブリスト)を表示する。
図5の画面520、画面540に例示するジョブリストは選択画面の一例である。
【0082】
S1115において、CPU111は、印刷開始の指示を受け付けたか否かを判断する。印刷開始の指示を受け付けた場合は処理をS1116に進め、受け付けていない場合は、S1114に戻り、画面を介した選択操作を待ち受ける。
【0083】
S1116において、CPU111は、プリンタ120と協働して、印刷対象として選択された印刷ジョブの印刷処理を実行する。具体的には、CPU111は、ストレージ114に管理されるジョブ情報に基づき特定される印刷設定と、印刷データに基づき印刷画像とプリンタを制御する制御コマンドを生成する。続けてプリンタ120に当該制御コマンドと印刷画像を送信する。プリンタ120は、制御コマンドに基づき、給紙部から適切なシート(用紙)を選択して、図示省略の搬送路に搬送し、当該搬送路上を移動するシート上に印刷画像を印刷する。印刷が完了したシート(成果物)は図示省略の排出トレイに排出される。CPU111は、選択された印刷ジョブに基づく印刷処理が完了すると処理をS1101に進める。
【0084】
最後にS1118において、CPU111はシャットダウン指示を受け付けたか否かを判断する。シャットダウン指示を受け付けた場合、電源OFFのためのシャットダウン処理を行って一連の処理を終了する。一方。シャットダウン指示を受け付けていない場合、処理をS1101に進め更なる操作やイベントの発生を待ち受ける。
【0085】
以上説明した一連の処理により、印刷装置において、ポーリングによる問合せに加えて、ユーザのログインを条件にジョブに関する問い合わせを行うことができるようになる。従って、ユーザが印刷装置にログインした時に、適切にCPS102上の印刷ジョブの有無を検知できるようになる。
【0086】
<第2の実施形態>
第2の実施形態では、第1の実施形態の処理に加えて、ユーザアカウントからクラウドアカウントが特定できない場合における例外制御を行う仕組みについて説明する。なお、第2の実施形態における各装置のハードウェア構成は第1の実施形態と同様である。以下第1の実施形態との差分について説明する。
【0087】
図12は、第1の実施形態に追加する例外処理を説明するためのフローチャートの一例である。
図12のフローチャートに示す各動作(ステップ)は、CPU111がROM112またはストレージ114に記憶された制御プログラムを実行することにより実現される。第2の実施形態では、第1の実施形態のS1101でログインイベントが発生したと判定された場合に、
図12に例示するS1200の判定処理を行う。具体的には、S1200において、CPU111は、ログインユーザに対応するユーザアカウントにクラウドアカウントが紐づけられているか否かを判断する。ログインユーザに対応するユーザアカウントにクラウドアカウントが紐づけられていると判断した場合は、処理をS1110に例示したログインユーザのジョブ取得処理に進める。一方、ログインユーザに対応するユーザアカウントにクラウドアカウントが紐づけられていないと判断した場合は、処理をS1105で説明したすべてのジョブを取得する処理に進める。
【0088】
図13は、第2の実施形態における選択画面(ジョブリスト)の表示方法の一例を示す図である。ここでは、第1の実施形態のAlice、Bobに加えて、Carolなるユーザアカウントが登録されている場合を例に説明している。ここで、Carolは印刷装置101用のユーザアカウントを有しているが、当該ユーザアカウントにクラウドアカウントを紐づけていないものとする。本実施形態では、クラウドアカウントがユーザアカウントに対して紐づけられていないCarolが印刷装置101にログインしてジョブリストを表示する場合に、CPS102経由で受信したすべての印刷ジョブを表示するよう制御する。一方、Bobのようにクラウドアカウントが紐づけられているユーザが印刷装置にログインしてジョブリストを表示する場合、第1の実施形態と同様にBobの印刷ジョブのみを抽出したジョブリスト560を表示するよう制御する。
【0089】
この処理により、クラウドアカウントを紐づけていないユーザがCPS102からジョブを投入した場合であっても、ログインをトリガとしてCPS102から取得可能な印刷ジョブを全て取得することができるようになる。また、当該取得した印刷ジョブを含むジョブリストをユーザに適切に提示することが可能となる。
【0090】
<第3の実施形態>
第1の実施形態及び第2の実施形態では、CPS102と印刷装置101の間のイベント通知を実現するためにポーリング方式を採用する場合を例示した。一方、前述したようにサーバプッシュ方式を利用する場合、ポーリング間隔に起因する問題は発生しない。
【0091】
第3の実施形態では、第1の実施形態及び第2の実施形態の制御に加えて、クラウドプリントサービスや印刷装置101の機能アップデート等により、サーバプッシュ方式が利用可能となった場合に通知方式を切り替える制御について説明する。なお、第3の実施形態における各装置のハードウェア構成は第1の実施形態と同様である。以下第1の実施形態との差分について説明する。
【0092】
図14は、第1の実施形態に追加する例外処理を説明するためのフローチャートの一例である。
図14のフローチャートに示す各動作(ステップ)は、CPU111がROM112またはストレージ114に記憶された制御プログラムを実行することにより実現される。第3の実施形態では、第1の実施形態のS1102で確認条件を満たしたと判定された場合に、第1の実施形態のS1103の処理に代えて
図14の代替処理を行う。
【0093】
具体的には、S1401において、CPU111は、「notify-wait」属性を「True」に指定したイベント有無の確認要求を送信する。このように第3の実施形態では、「notify-wait」属性を「True」に指定することで、サーバプッシュ通知を希望するという意思表示を行う。続いて、S1402において、CPU111は、CPS102から受信した応答(イベント通知)に基づき、CPS102においてサーバプッシュへの切り替えが受け入れられたか否かを判断する。サーバプッシュへの切り替えが受け入れられたと判断した場合、処理をS1403に進める。サーバプッシュへの切り替えが受け入れられなかったと判断した場合、処理をS1104に進める。
【0094】
S1403において、CPU111は、クラウドプリントサービスの動作設定をサーバプッシュを使用する方式に変更する。続けて、サーバプッシュの通知に用いるネットワークセッションを確立する。例えば、CPU111は、CPS102との間でXMPP(Extensible Messaging and Presence Protocol)などのチャットセッションを確立する。当該確立したチャットセッションを介してイベント通知を受信するよう構成することができる。なお、サーバプッシュを実現する方法は一例であり、これに限定されるものではない。CPU111は、サーバプッシュ方式への変更が完了すると処理をS1404に進める。
【0095】
S1404において、CPU111は、ポーリング方式による確認処理及び、ログイン時のジョブ取得処理を行わない動作モードとなるよう印刷装置の動作設定を変更する。変更が完了すると処理をS1104に進める。S1404の処理により、サーバプッシュ方式への切り替えによって、不要となるポーリングによる確認要求処理やログイン時のジョブ取得要求処理を行わないようにすることができる。
【0096】
<変形例>
上述の実施形態では、強制留め置き機能で留め置かれた印刷ジョブがジョブリストを介して選択された後に印刷される場合を例示した。しかしながらこれに限定されるものではない。具体的には、ログイン処理を実行した後、当該ログインユーザに対応する、留め置かれた印刷ジョブを自動的に印刷する場合にも適用することができる。この場合、
図4(B)で例示したユーザアカウントごとの設定に、ログイン後に自動印刷を行うか否かの設定を設ける。CPU111は、ログインイベントの発生時に、当該ログインしたユーザのユーザアカウントを参照する。そして、CPU111は、当該ログインしたユーザのユーザアカウントにログイン後に自動印刷を行う設定がなされていない場合、上述の実施形態と同様の処理を行う。一方、CPU111は、当該ログインしたユーザのユーザアカウントにログイン後に自動印刷を行う設定がなされている場合、S1108の保存処理に代えて、自動印刷処理を行う。具体的には、CPU111は、プリンタ120と協働して、当該ログインしたユーザに対応付けて記憶されている印刷ジョブと、CPS102から新たに取得されたログインしたユーザに対応する印刷ジョブを自動的に印刷する印刷処理を実行する。
【0097】
<その他の実施形態>
本発明は、上述の各実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASICやFPGA)によっても実現可能である。
【符号の説明】
【0098】
101 印刷装置
102 クラウドプリントサービス
103 クライアント端末
104 クライアント端末