(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-07
(45)【発行日】2024-06-17
(54)【発明の名称】情報処理装置
(51)【国際特許分類】
G06F 3/12 20060101AFI20240610BHJP
B41J 29/46 20060101ALI20240610BHJP
【FI】
G06F3/12 359
G06F3/12 334
G06F3/12 310
G06F3/12 307
B41J29/46 Z
(21)【出願番号】P 2020014208
(22)【出願日】2020-01-30
【審査請求日】2023-01-17
(31)【優先権主張番号】P 2019088593
(32)【優先日】2019-05-08
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100126240
【氏名又は名称】阿部 琢磨
(74)【代理人】
【識別番号】100223941
【氏名又は名称】高橋 佳子
(74)【代理人】
【識別番号】100159695
【氏名又は名称】中辻 七朗
(74)【代理人】
【識別番号】100172476
【氏名又は名称】冨田 一史
(74)【代理人】
【識別番号】100126974
【氏名又は名称】大朋 靖尚
(72)【発明者】
【氏名】森田 佳佑
【審査官】松浦 かおり
(56)【参考文献】
【文献】特開2004-021692(JP,A)
【文献】特開2001-096853(JP,A)
【文献】特開2017-173913(JP,A)
【文献】特開2005-107837(JP,A)
【文献】米国特許出願公開第2017/0048405(US,A1)
【文献】特開2016-162133(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/09- 3/12
B41J 29/00-29/70
G03G 13/34
G03G 15/00
G03G 15/36
G03G 21/00-21/02
G03G 21/14
G03G 21/20
H04N 1/00
(57)【特許請求の範囲】
【請求項1】
印刷ジョブを情報処理装置から受信する第1の受信手段と、
前記印刷ジョブを、前記印刷ジョブを送信した情報処理装置にログイン中のユーザを示すユーザ識別情報と関連付けて保持する保持手段と、
画像形成装置に対して前記印刷ジョブを送信する第1の送信手段と、
前記印刷ジョブ内の印刷設定が前記画像形成装置で実行可能なものかを判定する判定手段と、
前記印刷ジョブを実行できない旨の第1の通知の送信範囲の設定であって、少なくとも前記ユーザ識別情報で識別されるユーザがログインしている情報処理装置を含む送信範囲の設定を取得する取得手段と、
前記判定手段が、前記印刷ジョブ内の印刷設定が前記画像形成装置で実行できないものと判定した場合に、前記ユーザ識別情報で識別されるユーザがログインしている情報処理装置
を含む前記送信範囲の設定に基づいて決定される送信先に前
記第1の通知を送信する第2の送信手段と、
を有することを特徴とするサーバシステム。
【請求項2】
前記判定手段は、前記印刷ジョブ内の印刷設定と、前記サーバシステムが提供するプリントサービスの追加機能に伴う印刷設定との競合の有無を判定することを特徴とする請求項1に記載のサーバシステム。
【請求項3】
前記第1の送信手段が送信した前記印刷ジョブの状態の通知を前記画像形成装置から受信する第2の受信手段を有し、
前記第2の受信手段が、前記印刷ジョブの実行に失敗したことを示す第2の通知を受信した場合に、前記第2の送信手段は、前記ユーザ識別情報で識別されるユーザがログインしている情報処理装置に前記印刷ジョブの実行に失敗した旨の第3の通知を行うことを特徴とする請求項1または請求項2に記載のサーバシステム。
【請求項4】
前記保持手段では、前記印刷ジョブを識別するジョブ識別情報と前記ユーザ識別情報は関連付けられており、
前記第2の送信手段が通知を送信しようとする際に、前記ジョブ識別情報と関連付けられた前記ユーザ識別情報を特定する特定手段をさらに有し、
前記第2の送信手段は、前記特定手段で特定されたユーザ識別情報で識別されるユーザがログインしている各装置に通知を行うことを特徴とする請求項1乃至3の何れか1項に記載のサーバシステム。
【請求項5】
前記第2の送信手段は、前記特定手段で特定されたユーザ識別情報で識別されるユーザがログインしている装置であれば、前記印刷ジョブを送信した情報処理装置とは異なる装置にも通知を送信することを特徴とする請求項4に記載のサーバシステム。
【請求項6】
前記第1の送信手段が送信した前記印刷ジョブの状態の通知を前記画像形成装置から受信する第2の受信手段を有し、
前記第2の受信手段が、前記印刷ジョブの実行に成功したことを示す第4の通知を受信した場合に、前記第4の通知に含まれる前記印刷ジョブを識別するジョブ識別情報で識別される前記印刷ジョブを削除する削除手段をさらに有することを特徴とする請求項1乃至5の何れか1項に記載のサーバシステム。
【請求項7】
印刷ジョブを情報処理装置から受信する第1の受信工程と、
前記印刷ジョブを、前記印刷ジョブを送信した情報処理装置にログイン中のユーザを示すユーザ識別情報と関連付けて保持する保持工程と、
画像形成装置に対して前記印刷ジョブを送信する第1の送信工程と、
前記印刷ジョブ内の印刷設定が前記画像形成装置で実行可能なものかを判定する判定工程と、
前記印刷ジョブを実行できない旨の第1の通知の送信範囲の設定であって、少なくとも前記ユーザ識別情報で識別されるユーザがログインしている情報処理装置を含む前記送信範囲の設定を取得する取得工程と、
前記判定工程において、前記印刷ジョブ内の印刷設定が前記画像形成装置で実行できないものと判定した場合に、前記ユーザ識別情報で識別されるユーザがログインしている情報処理装置
を含む前記送信範囲の設定に基づいて決定される送信先に前
記第1の通知を送信する第2の送信工程と、を行うことを特徴とするサーバシステムの制御方法。
【請求項8】
前記判定工程では、前記印刷ジョブ内の印刷設定と、前記サーバシステムが提供するプリントサービスの追加機能に伴う印刷設定との競合の有無を判定することを特徴とする請求項7に記載のサーバシステムの制御方法。
【請求項9】
前記第1の送信工程において送信した前記印刷ジョブの状態の通知を前記画像形成装置から受信する第2の受信工程をさらに有し、
前記第2の受信工程において、前記印刷ジョブの実行に失敗したことを示す第2の通知を受信した場合に、前記第2の送信工程において、前記ユーザ識別情報で識別されるユーザがログインしている情報処理装置に前記印刷ジョブの実行に失敗した旨の第3の通知を行うことを特徴とする請求項7または請求項8に記載のサーバシステムの制御方法。
【請求項10】
前記保持工程では、前記印刷ジョブを識別するジョブ識別情報と前記ユーザ識別情報は関連付けられており、
前記第2の送信工程において通知を送信しようとする際に、前記ジョブ識別情報と関連付けられた前記ユーザ識別情報を特定する特定工程をさらに有し、
前記第2の送信工程において、前記特定工程で特定されたユーザ識別情報で識別されるユーザがログインしている各装置に通知を行うことを特徴とする請求項7乃至9の何れか1項に記載のサーバシステムの制御方法。
【請求項11】
前記第2の送信工程は、前記特定工程で特定されたユーザ識別情報で識別されるユーザがログインしている装置であれば、前記印刷ジョブを送信した情報処理装置とは異なる装置にも通知を送信することを特徴とする請求項10に記載のサーバシステムの制御方法。
【請求項12】
前記第1の送信工程において送信した前記印刷ジョブの状態の通知を前記画像形成装置から受信する第2の受信工程をさらに有し、
前記第2の受信工程において、前記印刷ジョブの実行に成功したことを示す第4の通知を受信した場合に、前記受信した第4の通知に含まれる前記印刷ジョブを識別するジョブ識別情報で識別される前記印刷ジョブを削除する削除工程をさらに有することを特徴とする請求項7乃至11の何れか1項に記載のサーバシステムの制御方法。
【請求項13】
印刷ジョブを情報処理装置から受信する第1の受信工程と、
前記印刷ジョブを、前記印刷ジョブを送信した情報処理装置にログイン中のユーザを示すユーザ識別情報と関連付けて保持する保持工程と、
画像形成装置に対して前記印刷ジョブを送信する第1の送信工程と、
前記印刷ジョブ内の印刷設定が前記画像形成装置で実行可能なものかを判定する判定工程と、
前記印刷ジョブを実行できない旨の第1の通知の送信範囲の設定であって、少なくとも前記ユーザ識別情報で識別されるユーザがログインしている情報処理装置を含む前記送信範囲の設定を取得する取得工程と、
前記判定工程において、前記印刷ジョブ内の印刷設定が前記画像形成装置で実行できないものと判定した場合に、前記ユーザ識別情報で識別されるユーザがログインしている情報処理装置
を含む前記送信範囲の設定に基づいて決定される送信先に前
記第1の通知を送信する第2の送信工程と、をサーバシステムに実行させるためのプログラム。
【請求項14】
前記判定工程では、前記印刷ジョブ内の印刷設定と、前記サーバシステムが提供するプリントサービスの追加機能に伴う印刷設定との競合の有無を判定することを特徴とする請求項13に記載のプログラム。
【請求項15】
前記第1の送信工程において送信した前記印刷ジョブの状態の通知を前記画像形成装置から受信する第2の受信工程をさらに有し、
前記第2の受信工程において、前記印刷ジョブの実行に失敗したことを示す第2の通知を受信した場合に、前記第2の送信工程において、前記ユーザ識別情報で識別されるユーザがログインしている情報処理装置に前記印刷ジョブの実行に失敗した旨の第3の通知を行うことを特徴とする請求項13または請求項14に記載のプログラム。
【請求項16】
前記保持工程では、前記印刷ジョブを識別するジョブ識別情報と前記ユーザ識別情報は関連付けられており、
前記第2の送信工程において通知を送信しようとする際に、前記ジョブ識別情報と関連付けられた前記ユーザ識別情報を特定する特定工程をさらに有し、
前記第2の送信工程において、前記特定工程で特定されたユーザ識別情報で識別されるユーザがログインしている各装置に通知を行うことを特徴とする請求項13乃至15の何れか1項に記載のプログラム。
【請求項17】
前記第2の送信工程は、前記特定工程で特定されたユーザ識別情報で識別されるユーザがログインしている装置であれば、前記印刷ジョブを送信した情報処理装置とは異なる装置にも通知を送信することを特徴とする請求項16に記載のプログラム。
【請求項18】
前記第1の送信工程において送信した前記印刷ジョブの状態の通知を前記画像形成装置から受信する第2の受信工程をさらに有し、
前記第2の受信工程において、前記印刷ジョブの実行に成功したことを示す第4の通知を受信した場合に、前記受信した第4の通知に含まれる前記印刷ジョブを識別するジョブ識別情報で識別される前記印刷ジョブを削除する削除工程をさらに有することを特徴とする請求項13乃至17の何れか1項に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、サーバシステムを通した印刷における情報の通知方法に関する。
【背景技術】
【0002】
グーグルクラウドプリント等のクラウドプリントが知られている(特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
こうしたクラウドプリントの形態では、画像形成装置側で仮に印刷エラーが起きたとしても、当該印刷エラーがユーザに通知される仕組みが知られていなかった。
【課題を解決するための手段】
【0005】
印刷ジョブを情報処理装置から受信する第1の受信手段と、
前記印刷ジョブを、前記印刷ジョブを送信した情報処理装置にログイン中のユーザを示すユーザ識別情報と関連付けて保持する保持手段と、
画像形成装置に対して前記印刷ジョブを送信する第1の送信手段と、
前記印刷ジョブ内の印刷設定が前記画像形成装置で実行可能なものかを判定する判定手段と、
前記印刷ジョブを実行できない旨の第1の通知の送信範囲の設定であって、少なくとも前記ユーザ識別情報で識別されるユーザがログインしている情報処理装置を含む送信範囲の設定を取得する取得手段と、
前記判定手段が、前記印刷ジョブ内の印刷設定が前記画像形成装置で実行できないものと判定した場合に、前記ユーザ識別情報で識別されるユーザがログインしている情報処理装置を含む前記送信範囲の設定に基づいて決定される送信先に前記第1の通知を送信する第2の送信手段と、を有することを特徴とするサーバシステム。
【発明の効果】
【0006】
本願によれば、直接プリンターから情報通知を受け取ることのできないクラウドプリントの形態においても、通知を受け取ることができる。
【図面の簡単な説明】
【0007】
【
図1】コンピューターシステムのハードウェアとソフトウェアのブロック構成図
【
図2】クライアントとプリンターが接続された通信環境の構成図
【
図6】クライアントとクラウドサービスの通知に関する登録処理のシーケンス図
【
図12】クラウドプリントサービスで発生したイベントの通知を行うシーケンス図
【発明を実施するための形態】
【0008】
以下、本発明を実施するための形態について図面を用いて説明する。
【実施例1】
【0009】
図1は本発明の実施形態を示す一般的なコンピューター(情報処理装置)を用いたシステムのブロック構成図である。Central Processing Unit(CPU)101は、主記憶装置102のRead Only Memory(ROM)1021、Random Access Memory(RAM。)1022あるいは補助記憶装置105に格納されたプログラムに従ってコンピューター100全体の制御を行う。RAM1022はCPU101が各処理を行う際のワークエリアとしても使用される。補助記憶装置105には、アプリケーション(アプリ)1051やデバイスアプリケーション(デバイスアプリ)1052、汎用プリンタードライバー1053、オペレーティングシステム(OS)1054等の各種プログラムが格納される。キーボード1031やマウス、タッチパネル、タッチパッドなどに代表されるポインティングデバイス1032等の入力機器は、入力インターフェース(I/F)103を通してコンピューター100に接続される。これらの入力機器を通してユーザからのプログラムへの操作を受け付ける。出力I/F104にはモニター1041等の出力デバイスが接続され、プログラムの指示に従いモニター上にUIを表示する。なお、スマートフォンやタブレット端末を始めとする端末に関してはポインティングデバイス1032とモニター1041が一体となっているものがあるが、ここでは役割ごとに分離して表記を行っているだけであり、置き換えて考えてももちろん構わない。通信I/F106はネットワーク1061に接続されており、コンピューター100の外部機器、例えば、
図2のコンピューター1001、コンピューター1002、プリンター(画像形成装置)202との通信が可能である。上記モジュールは、システムバス107で接続され、各モジュール間でデータのやり取りが可能である。また、本発明の処理が含まれているアプリ1051~1054は、不図示のCD-ROMやUSBメモリーを介して補助記憶装置105に追加可能である。さらにネットワーク1061を経由して補助記憶装置105に追加することも可能である。なお、特に断らない限り、本発明の機能が実行されるのであれば、機器の構成に係わらず本発明を適用できることは言うまでもない。単体の機器であっても、複数の機器からなるシステムであっても、Localネットワークを介して接続が為され処理が行われるシステムであってもよい。
【0010】
図2は本発明の実施の形態におけるネットワーク1061の環境を簡略した図である。印刷を行う文書や画像を作成するコンピューター100/1001/1002が単体もしくは複数ネットワークに接続されている。さらにプリンター202が単体もしくは複数ネットワークに接続されていることやUSBを経由してコンピューター100/1001/1002に接続されることもある。加えて、コンピューター100は、ネットワーク上のクラウドプリントサービス300と接続されており、クラウドプリントサービス300を通すことで別のネットワーク管理下にあるプリンター200、プリンター201とも通信することが可能である。ネットワークにはPersonal Area Network(PAN)、LANなどの小規模から大規模までのネットワークがあり、これらの機器が全てのネットワークに接続されている。なお、クラウドなど、サーバーやプリンターがインターネットを経由して接続されていても構わない。この際の通信方式は限定は行わない。例えば、IEEE 802.11規格に則ったワイヤレスLANでの通信、Bluetooth(登録商標)通信などが考えられる。あるいはInternational Mobile Telecommunication 2000(IMT-2000)規格に則った携帯電話回線なども考えられる。また、USBに関しては直接接続する形態以外にもUSBハブや交換機のようなもので中継されていても構わない。
【0011】
図3はネットワーク上のクラウドプリントサービスであるサーバシステム300の構成図である。クラウドプリントサービス300は、複数のサーバシステム上に構築されるインターネット上のクラウドプリントサービスである。本実施例では、それぞれのイントラネットに対して接続が可能であり、インターネットを通じてコンピューター100やプリンター200と接続される。クラウドプリントサービス300は、ID(ユーザ識別情報)とPASSWORDを利用したアカウント管理がされており、ユーザはこのアカウントを利用してクラウドプリントサービス300にアクセスすることができる。また、ユーザ管理されているアカウントがOS1054のログインユーザと紐付いていてもよいし、アプリ1051が別途、ログイン認証を行い、ログイン中のため認証トークンを保持している場合などは、別途IDやPASSWORDの入力は必要ない。
【0012】
図3はクラウドプリントサービス300の構成図である。クラウドプリントサービス300は、インターネットを通じたクラウド上に存在するサービスであり、印刷に関連する機能を提供可能とする。本実施形態ではクラウドプリントサービス300は、操作制御部301、記憶部302、印刷処理部303、画像処理部304、認証制御部305、プリントサービス制御部306、ユーザ管理制御部307、印刷通知制御部308を持つ。また、これらの機能がクラウドプリントサービス300と連携する別のクラウドプリントサービスであっても構わない。以下、プリンター200を例に記載するが、クラウドプリントサービス300と接続可能な、プリンター201、プリンター202であっても同様の処理で実現可能である。
【0013】
ここで、操作制御部301は、クラウド環境に直接アクセス可能な操作画面、あるいはWebブラウザやクラウドプリントサービス300に対応したアプリケーションを通じて操作メニューを表示する。そして、ユーザからの指示入力を待ち受け、指示内容を他の制御部に転送する。
【0014】
記憶部302は、他の制御部からの指示により、指定されたデータをクラウド上で管理された記憶領域に記憶する、あるいは記憶しているデータを読み出す。記憶部302が管理するデータの例として、印刷ジョブを始めとする印刷データやユーザのアカウント情報やクラウドプリントサービス300にログインしている認証情報がある。
【0015】
印刷処理部303は、印刷ジョブの印刷設定の検証処理(Validate)や印刷対象のコンテンツデータを各環境やプリンターが解釈可能な形式にデータ変換を行い、データ転送を行う。
【0016】
画像処理部304は、印刷ジョブの印刷用の画像データや中間データにレンダリングする処理を行う。
【0017】
認証制御部305は、IDとPASSWORDを利用した認証や、ブラウザでCookieを利用したログイン制御や、アプリケーションで認証用トークンを利用した認証処理等を行う。他にもシングルサインオンを始めとするログインセッションを共有できる仕組みであれば方法は問わない。
【0018】
プリントサービス制御部306はコンピューター100から受信した印刷要求を解釈し、印刷を何時にどのユーザから受信した、といった管理データと共に印刷ジョブの記憶や、印刷ジョブをプリンター200に送信し、その際の通知を受信する処理を行う。
【0019】
ユーザ管理制御部307は、ユーザを管理する情報を取り扱う。例えば、本実施例では
図4のように、認証中のユーザ名や接続機器に関する情報を取り扱う。ここでのユーザ名はログイン認証を行ったユーザのIDを指す。なお、ゲストアカウントの場合には一時的な割り当てIDや共用のID、「Unknown」のようなデフォルト処理で割り当てられるものであっても構わない。パスワードはユーザが認証を行うためのパスフレーズとして記載しているが、画面上をマウスやタッチ操作でなぞって行うパターン認証や、画像認証、生体認証や対象アプリの認証トークン情報にあたるデータやそのリンクであっても問題は無い。グループ情報は、そのユーザが所属している会社や部署等の情報があたる。端末情報は、ユーザがアクセスしている端末を特定する情報である。本実施例では一例として端末が接続に使用しているネットワークカードのMACアドレスを例に挙げている。その他にも、ハードディスクのボリュームシリアル番号やOSから取得可能であればID値、携帯端末であるならSIMの情報や端末シリアル番号など、端末を一意に特定できる情報なら特に種類は問わない。加えると、iOSである場合ならidentifierForVendor(IDFV)やAdvertisingIdentifier等の識別情報を使用するのでも良い。アクセス先の情報は本実施例ではIPアドレスを指すが、これもリンクやURI等、特定の端末にアクセス可能な情報であるなら種類は問わない。
【0020】
印刷通知制御部308は、印刷に関する通知を出す処理を行う。また、それに伴うユーザのID,認証情報、印刷対象のプリンターのハードウェアID(HWID)、ユーザ端末のIPアドレス、アプリケーション情報など、通知を許可した通信機器に関する情報も保持する。
【0021】
本実施例では、コンピューター100がクラウドプリントサービス300を通じてプリンター200に対して印刷を行う。さらに、エラー等プリンター200で発生した通知イベントをクラウドプリントサービス300から通知を受け取り、
図5の画面通知501の表示処理を行う。
【0022】
この際、クライアントのコンピューター100で通知を出す際に、未知の接続先であるクラウドプリントサービス300との通信を受け付けるのは、セキュリティ上の問題から、デフォルトでは許可されていないことがある。このため
図6では、通知を行う上で、クライアントのコンピューター100をクラウドプリントサービス300に登録し、情報の通知を受け付けられるよう登録するシーケンスに関する図である。なお、最初からOS1054の仕組みとしてクラウドプリントサービス300から通知を受ける仕組みが組み込まれているのならば、必ずしも実施が必要というわけではない。また、ブラウザの機能を使って通知を受け取る場合は、「ブラウザを立ち上げてログインしておく」等の方法で、通知の待ち受けの代替としても良い。
【0023】
まずコンピューター100は通知チャネルのURIの生成を行う(601)。例えばhttp://user01@test.pc.com:8080/SampleServiceのようなクライアントのコンピューター100に対してアクセス可能なURIを指す。
【0024】
次に生成したURIをコンピューター100に対して登録する(602)。この際、通知に使用するアプリケーションやサービスに対して、通知の許可が必要な場合は許可も行う。なお、通知がされた際にユーザ側に「通知を許可しますか?」といった確認を行うような設定をしている場合等、任意のタイミングでも構わない。
【0025】
登録したURIをコンピューター100からクラウドプリントサービス300に送信を行い(603)、クラウドプリントサービス300でもURIを保存し、登録を行う(604)。これらの操作により通信するためのチャネルが確率される。
【0026】
この後、任意のタイミングでクラウドプリントサービス300からコンピューター100に対して、情報の通知を受ける(605)。
【0027】
図7は、コンピューター100が印刷時に情報通知を受ける処理を表すシーケンス図である。
【0028】
まず、ここで印刷ジョブのデータの持ち方の例について
図8を用いて説明する。まず、「優先度」はジョブをスケジュールするための優先度を指す。ここでは例えば1~100のうちの大きさの指定を行い、100を最高の優先度とすることで、各ジョブの印刷順序の制御を行う。なお、「与えられたより高い優先度を与えない」等、適切なルールの下で運用されるのであれば、詳細は特に問わない。「印刷部数」は印刷ジョブの部数を指す。「印刷設定」は印刷に必要な設定、例えば、カラーや両面の指定、メディア情報、フィニッシング情報、印刷品質や解像度などの画質情報が格納される。本設定はXPSやPrintTicketのようなXML形式を始めとする構造化されたテキスト形式データでも、Devmodeのようなバイナリ形式の印刷設定データでも構わない。「印刷コンテンツ」はXPS、PDFなどのPageDescriptionLanguage(PDL)データや、単なるテキストや画像データでも文書データへの参照を含める形でも、転送先で解釈可能であれば、ベンダー独自のものでも構わない。また、「属性パラメータ」は、直接印刷に必要に必要なデータとは別に、印刷時の処理のやりとりのために存在するパラメータであり、
図9を用いて、属性パラメータの説明を行う。この属性パラメータは、印刷データと共に印刷ジョブに付加する形で送付される。本実施例においては、ジョブの属性パラメータは「操作属性」に関するものと「ジョブオブジェクト属性」に関するものがあり、本実施例においては、特に追加で「拡張属性」も定義する。操作属性の状態コードは全体のやり取りに使用する。例えば、動作の実行に成功した(successful)、さらに動作が必要となる(redirection)、ジョブが実行不能(client-error)、有効と思われる要求の実行に失敗(server-error)、等がある。操作属性の言語コードは通信に使用する言語や文字コードを表す。ジョブオブジェクト属性のIDは数値やGUIDでジョブを一意に特定するためのものである。ジョブオブジェクト属性の状態はオブジェクトの状態を示すものである。具体的な例を数点挙げると、未処理(pending)、処理中(processing)、中断しているが原因が解消次第再開(processing-stopped)、Cancel-Job操作等でキャンセルされた(canceled)等がある。他にも、システムの異常により終了(abort)、ジョブの成功(completed)、等がある。ジョブオブジェクト属性の状態メッセージは、テキストデータを任意で書き込むことができる領域でメッセージの内容の記載に使う。
【0029】
次に拡張属性であるが、これは本実施例で使用するメッセージ通知に関連するものとなる。「拡張属性(管理情報)」はメッセージの通知を行うクライアントのコンピューター100に該当するもので、それぞれは
図4の例で説明済みであるため、詳細は省略する。これから以下で「拡張属性(通知情報)」の各パラメータに関して補足を行う。「情報種別」は、情報がどのような種類のものであるかで、「エラー」「警告」「情報」などがそれにあたる。「通知メッセージ」は、通知する内容のテキストデータとなる。「通知先」は通知先を特定する情報で、ユーザを指定する場合は「ユーザ名」、グループを指定する場合は「グループ情報」、端末を指定する場合はIPアドレスなどの「アクセス先」等の情報となる。「通知範囲」は、「端末」「ユーザ」「グループ」「端末全て」等、通知する範囲を指定する。例えば「通知範囲」を「ユーザ」で、「通知先」を「user01」と指定することで
図4の場合「user01」が管理する上から2つの端末に対してメッセージを飛ばす指定となる。他にも「通知範囲」を「グループ」で、「通知先」を「Group001」とすることで、「Group001」の組織でログインしている端末全てに通知を送る指定となる。
【0030】
まず、コンピューター100から印刷処理を行うため、ジョブの生成を行う(701)。ここでは、印刷に必要な「両面」「カラー」を始めとする印刷設定情報と印刷対象データとを、送信先のクラウドプリントサービス300で解釈可能なデータ、あるいは中間データに変換する処理を行う。変換された結果をジョブと呼ぶ。この際、印刷先の指定はクラウドプリントサービス300の仮想プリンターに対して行われる。この仮想プリンターは、クラウドプリントサービス300が提供している印刷機能のひとつである。ユーザがクラウド環境にログインしておくと、ActiveDirectoryのようなサービスシステムを通じて、通常のプリンターと同じように
図10のプリンターの追加ボタン1001から探索・追加が可能となる。また、仮想プリンターは、
図11のように他のプリンターと同様、「デバイス名」のほか、プリンターが持つ独自のIDである「HWID」や、プリンターの「接続ポート」情報を持つ。なお、本実施例で「接続ポート」情報はIPアドレスの指定を行ったが、「WSD-12345678-abcd-efgh-ab1234567890」のようなWSDポート指定でも構わない。また、接続先のアドレスもクラウドシステム自体のアドレスでも仮想的に割り当てられたアドレスでも構わない。コンピューターのOSやアプリケーションからは、
図10の仮想プリンター1002のような形で、通常の物理プリンターと同じような形で見えており、通常のプリンターと同様に印刷ジョブを送信することで印刷が行われる。本実施例においては、仮想プリンター1002に対して印刷処理を行う(即ち、上記ジョブを送信する)ことでプリンター200に対してジョブを送信する。しかしながら、クラウドプリントサービス300に一旦印刷ジョブを保存しておき、別のタイミングで印刷を行う別の方法もある。この別の方法をとる場合には、ユーザはブラウザ等でプリンター200の仮想プリンターを提供するクラウドプリントサービス300にログオンして自分の印刷ジョブを表示し、表示された印刷ジョブのうち印刷したい印刷ジョブを選択して印刷の指示を行う。
【0031】
ステップ702では、ユーザの識別情報の生成を行う。これは、印刷ジョブに付ける
図4のグループ情報や端末情報といったクラウドプリントサービス300のユーザ管理制御部307で使用する情報を指す。ここで、「ユーザ名」「パスワード」「グループ情報」等の情報は、クラウドプリントサービス300にログインした際の登録情報を元に、クラウドプリントサービス300に問い合わせることで得る。または、コンピューター100のシステムや対応アプリケーションの設定情報部に保存されている認証情報を元に生成される。また、「端末情報」「アクセス先」の情報はクラウドプリントサービス300との接続に使用しているコンピューター100のものが使用される。通常のクラウドプリントでは、印刷を行った際に印刷セッションが終了してしまうため、別途ブラウザ等で印刷の管理画面を呼び出さない限り、クラウドプリントサービス300から印刷を行ったコンピューター100を特定することができない。つまりコンピューター100は、印刷ジョブを送信した後に、発生したエラーを始めとする印刷処理の詳細などの情報をクラウドプリントサービス300から得ることが出来なかった。しかし、ここで本情報を使用することで、クラウドプリントサービス300からコンピューター100のような通知対象の端末を特定することが可能となる。
【0032】
この後ステップ703の処理にてクラウドプリントサービス300からの通知を受けられるよう通知の待ち受けを開始しておく。なお、OSの仕組みやサービスで待ち受けを行うほか、ブラウザの機能を利用して情報の通知を受ける場合は、「ログインセッションを確立させたブラウザを立ち上げて待機状態とする」等の処理でも良い。
【0033】
ジョブの生成とユーザの識別情報の生成を行った後は、これらの情報をまとめて、クライアントのコンピューター100がクラウドプリントサービス300に対して送信を行う(704)。
【0034】
印刷ジョブを受信したクラウドプリントサービス300は、受け取った印刷ジョブから印刷コンテンツのデータを抽出し、印刷先のプリンター200で解釈可能なデータへの変換を行う(705)。この際、クラウドプリントサービス300は印刷ジョブのリクエストに対しするレスポンスを返す(706)。次に印刷ジョブを受け取ったクラウドプリントサービス300は、印刷ジョブの属性パラメータ情報から
図9の「拡張情報(管理情報)」に該当する「グループ情報」「端末情報」や「アクセス先」等の、通知先のクライアント情報を特定するための情報を取得する。取得した情報は、ジョブID(ジョブを識別するジョブ識別情報)等のジョブ情報と関連付けて、クラウドプリントサービス300の記憶部302に登録される(707)。プリンター200に対して、印刷ジョブを送信し、印刷処理要求を行う(708)。この際、印刷ジョブの送信先である端末情報やアクセス先をプリンター200に切り替え、必要に応じてジョブのIDや状態も最新のものに更新する。また、印刷コンテンツがプリンター200で受けられないフォーマットで合った場合は、印刷コンテンツをプリンター200の解釈可能なフォーマットに変換する。
【0035】
印刷処理要求を受けたプリンター200は、印刷処理(709)を行うが、ここで何らかの通知イベントが発生した場合(710)、クラウドプリントサービス300に対して情報の通知を行う。ここで発生する通知イベントとは、例えば印刷時に発生したエラーが該当する。通知イベントが発生した場合はプリンター200が前述の
図9の「拡張属性(通知情報)」の情報を取得し、クラウドプリントサービス300に対して情報の通知を行う(711)。この際の通知は、クラウドプリントサービス300からの印刷のリクエストに対するレスポンスとして行われる。なお、印刷処理(709)を行ってから、印刷が完了、あるいはキャンセルされるまでの間は、クラウドプリントサービス300では、印刷ジョブが保持される。また、完了通知を受け取った際に、クラウドプリントサービス300上の印刷ジョブは削除される。
【0036】
情報の通知を受け取ったクラウドプリントサービス300は、クライアントのコンピューター100に対して、受け取った情報の通知を行う(712)。この際、通知先はプリンター200が格納した「通知範囲」や「通知先」情報(「通知範囲」が「ユーザ」で「通知先」が「user01」のため「user01に対して通知を行う」といった情報)を元に決定される。なお、その情報を
図4の情報と照合することでコンピューター100といった物理的な通知先のデバイスを特定する。なお、この際、プリンター200が拡張属性に対応していなかった場合は、クラウドプリントサービス300が予め定めておいたルールに従って下記の処理を行ってもよい。即ち、印刷ジョブのエラー情報や、別途独自通信処理を行って得た情報を元に「拡張属性(通知情報)」の情報を格納しても良い。
【0037】
最後に受け取った情報を元にコンピューター100が画面通知501の表示を行う(713)。
【0038】
以上の処理を行うことで、クラウドプリントサービス実行時の通知情報の表示を行う。
【0039】
なお、補足であるが、プリンター200で発生する通知イベントは印刷時のエラーを例に説明したが、正常に終了した場合でも、例えば「トナーや用紙の残量が減っている」といったユーザに通知したい情報が合った場合は、それを通知イベントとしても構わない。
【実施例2】
【0040】
実施例1では、クラウドプリントサービス300での印刷時にプリンター200で発生したエラー等の通知に関して説明したが、クラウドプリントサービス300側でも何かしら情報の通知が必要となることがある。例えば、実施例1では印刷ジョブ内の印刷設定等は変更せずに、そのままプリンター200に対して印刷指示を行っていた。しかし、クラウドプリントサービス300の方が高機能な印刷設定に対応している場合や、付加的な印刷サービスをもっている等のケースも考えられる。そのような場合には、追加機能に伴う追加の印刷設定を持つこととなるため、既存の印刷ジョブの設定と追加の印刷設定との競合が発生する可能性がある。また、追加機能が無かったとしても、クラウドプリントサービス300の方が、標準機能しか持たないクライアントのコンピューター100に比べて、より詳細な印刷設定の検証が可能な場合もある。このような場合には、プリンター200に印刷ジョブを送信するまでもなくエラーが発生することを予測することができるため、クラウドプリントサービス300上でエラー情報の通知を行う。
【0041】
図12はクラウドプリントサービス300で発生したイベントの通知を行うシーケンス図である。なお、ジョブの生成といった基本的な流れは
図7のシーケンスと同様であるため、説明を省略する。
【0042】
ジョブの送信(705)を受けたクラウドプリントサービス300が、印刷ジョブが持たない拡張機能を持っていた場合、その設定情報の追加を行う(1201)。なお、ここでユーザによる追加設定の指定が必要となる場合は、別途アプリケーションやWebブラウザを立ち上げ、設定をさせても構わない。
【0043】
次にジョブの設定情報の検証処理(Validate)を行う(1202)。この際、クラウドプリントサービス300は別途サービスやプリンター200と通信を行うことで追加の検証用のデータを取得しても構わない。
【0044】
検証の結果問題が発生した場合は、クライアントのコンピューター100に対して通知を行う(1203)。通知を受け取ったコンピューター100は画面通知501の表示を行う(1204)。なお、この際、画面通知501をクリックすることで、問題の起きた設定を修正するための設定画面の表示を行っても良い。
【0045】
以上に処理を行うことで、クラウドプリントサービス上で検出したエラーの通知を行うことが可能となる。
【実施例3】
【0046】
実施例1、実施例2では、基本的にプリンター200やクラウドプリントサービス300上で発生した「エラー」や「警告」に関するメッセージの通知を行った。しかし、クラウドプリントサービス300で問題が発生しない場合でもジョブの処理状態に関して「プリンター200にてジョブが処理中です」のような通知を表示した方が適切であるケースも存在する。特にクラウドプリントサービス300では、印刷ジョブが直接コンピューター100上からプリンター200に対して送信されるのではなく、間にクラウドプリントサービス300や関連サービスが、いくつか仲介している複雑な構成となることもある。このようにサービスの形態によっては、そもそもジョブがどこにあるか分からないといった問題も考えられるため、単にジョブの状態の通知を受けるだけでも意義は大きい。
【0047】
このため、本実施例においてはクラウドプリントサービス300において、ジョブを受信した際、プリンターにジョブを送信する際など、ジョブの処理状態が変わった際に、コンピューター100に通知を行う処理について述べる。
【0048】
また、実施例1、実施例2においては、印刷時にプリンター200を直接指定することで、印刷処理を実行していた。一方、本実施例においてはジョブを受け取った後、そのまま
図7の印刷ジョブを送信する処理(708)に移行せず、一旦ジョブを留めておく形態について述べる。この場合、留められた印刷ジョブはユーザから指示を受ける等のトリガーを受けることでプリンター200に送信される。
【0049】
なお、もちろん実施例1のようにクラウドプリントサービス300上にジョブを留めないケースにおいても、同様にジョブの処理状態の通知を行うことは可能であるものとする。
【0050】
次に、クラウドプリントサービス300の構成についてであるが、本願ではクラウドプリントサービス300にプリンター200が直接接続された構成を例に説明するが、プリンター200が直接接続される代わりに、別のシステムが間に入った構成でも構わない。別のシステムとは例えば、プリンター200を管理するプリントサーバや外部クラウドプリントサービスがそれに該当し、その場合はプリンター200から発行された通知を受け、それをクラウドプリントサービス300に対して転送する。この転送の際、もちろん外部クラウドプリントサービス上で通知情報の変換や独自情報の追加など更新をしても構わない。
【0051】
ここから通知の処理に関して説明する。通知はクラウドプリントサービス300がコンピューター100に対して行うもので、クラウドプリントサービス300が「ジョブを受信した際」「ジョブを送信する際」「一定時間ごと」「ジョブの生存期間が近づいている場合」のタイミングで通知を行う。タイミングの詳細に関しては、後述する。
【0052】
通知が確定した場合、通知情報がコンピューター100に送信され、『「クラウドプリントサービス300」上で、印刷ジョブ「無題ドキュメント.txt」が処理中です。』のようなメッセージが画面通知501としてコンピューター100上に表示される。なお、ここで対象とする機種名が確定している場合は、画面通知501のアイコン画像を表示する領域に機種のサムネイルを表示するなどしても構わない。
【0053】
また、画面通知501をクリックすることでクラウドプリントサービス300の管理アプリケーション、あるいは管理画面にアクセス可能なWebページが立ち上がるよう処理が登録されていても良い。加えて、画面通知501の上にマウスを重ねる等することで、画面通知501が広がって、より詳細な情報を表示するよう表示の切り替えをしても良い。ここでの詳細な情報とは、機種名、プリンターの場所、IPアドレス、プリンターに登録されているコメント、共有名、「モノクロ機」等の機器の能力情報など、対象のプリンターに関するものや、印刷設定やページ数等のジョブの書誌情報に関するものである。
【0054】
ここからは前述の通知のタイミングの詳細に関して述べる。
【0055】
まず、「ジョブを受信した際」の処理であるが、これはコンピューター100からジョブの送信を受け付けられる度に、「クラウドプリントサービス300にてジョブが処理中」である旨の通知を返す。この際、別のジョブが滞留している場合は、そのジョブに関しても通知を行っても良い。
【0056】
次に「ジョブを送信する際」の処理であるが、これはユーザがクラウドプリントサービス300の管理画面から印刷ジョブの処理を行った場合や、プリンター200のパネル上でのユーザ操作かプリンターのシステムがジョブの受付を行ったタイミングである。この場合、該当の「プリンター200に対してジョブを送信しました」という旨の通知を行う。
【0057】
次に「一定時間ごと」に行う処理であるが、これはクラウドプリントサービス300にジョブを投入した後にジョブの処理がされなかった場合に、ユーザに「印刷を忘れていないか?」等の通知を行う目的で実施される。これはクラウドプリントサービス300上で所定のタイミングごとにサービス内に滞留しているジョブが存在しているかの確認を行い、滞留ジョブが存在する場合に「クラウドサービス上で印刷ジョブが処理中」である旨の通知を行う。なお、通知対象のジョブが複数ある場合は、印刷ジョブをまとめて列挙する形で表示しても構わないし、ジョブの個数分通知を行っても構わない。
【0058】
最後に、「ジョブの生存期間が近づいている場合」に関してであるが、これもクラウドプリントサービス300上で一定時間ごとにジョブの確認処理を行うタイミングで行われるが、特に、一定時間でジョブを削除する設定がされている場合の処理となる。ジョブの存在確認の際に、さらにジョブの削除時間が近づいているような場合に、『「クラウドプリントサービス300」上の、印刷ジョブ「無題ドキュメント.txt」が、「あと〇〇」で削除されます。』といった通常とは異なる通知を行う。
【0059】
以上の処理を行うことで、クラウドプリントサービス300上でジョブの処理状態の通知を行うことが可能となる。
【0060】
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。