以下、本発明を実施するための形態について図面を用いて説明する。
図1は本実施形態におけるクラウドプリントにおける印刷システムの構成図を示したものである。クライアント端末101、クラウドプリントサーバ102、アプリケーション管理サーバ103、クラウドプリント対応プリンタ104、オンラインサポートサーバ105がネットワーク107を介して接続されている。
図1では、クライアント端末101およびクラウドプリント対応プリンタ104をそれぞれ1つずつ記載しているが、クライアント端末101およびクラウドプリント対応プリンタ104は複数台あってもよい。
また、クラウドプリントサーバ102、アプリケーション管理サーバ103、オンラインサポートサーバ105は複数台の情報処理装置で構成されるサーバシステムであってもよい。各サーバを複数台の情報処理装置で構成されるサーバシステムとすることで、負荷分散を複数台の情報処理装置に分散することができる。
また、クラウドプリントサーバ102、アプリケーション管理サーバ103、オンラインサポートサーバ105が物理的には1つの情報処理装置の内部に仮想的に構成されてもよい。
ネットワーク107は、クラウドサービスへの接続はインターネットなどのWANを想定しているが、すべてが社内LANなどの閉じた環境であってもよい。
クライアント端末101は、PCやタブレット、スマートフォンなどの情報処理装置であり、ユーザによって直接操作される端末である。クライアント端末101上では任意のアプリケーションソフトウェアを実行可能となっている。
クラウドプリント対応プリンタ104は、用紙等の記録媒体に対して実際に印刷を行うデバイスであり、ネットワーク107を介して受信した印刷データを画像データに変換して印刷する画像形成装置である。
クラウドプリント対応プリンタ104は、クラウドプリントサーバ102を介してクライアント端末101からの印刷データを受信することも、クラウドプリントサーバ102を介さずに、クライアント端末101から直接印刷データを受信することも可能である。
クラウドプリント対応プリンタ104は、クライアント端末101のクラウドプリンタドライバ311が生成した印刷データを、クラウドプリントサーバ102を介して受信する。また、クラウドプリント対応プリンタ104は、クラウドプリントサーバ102を介さずにクライアント端末101のローカルプリンタドライバ314が生成した印刷データを受信する。
クラウドプリントサーバ102は、外部から印刷指示と印刷データを受け付ける。そしてクラウドプリントサーバ102は受信した印刷データを、所定のクラウドプリント対応プリンタ104へ送信する。
アプリケーション管理サーバ103は、各種アプリケーションを保持および管理する。アプリケーション管理サーバ103は、クライアント端末101からアプリケーションの識別情報とダウンロード要求を受信し、受信した識別情報に基づき特定されるアプリケーションをクライアント端末101に送信する。
オンラインサポートサーバ105はオンラインサポートサービス351を提供するサーバ装置である。オンラインサポートサービス351は、クライアント端末101の機能を拡張するための情報が記述された拡張セットアップ情報ファイルをクライアント端末101に提供するためのサーバ装置である。
次に、図2を用いて、本実施形態のシステムにおけるハードウェア構成について説明する。
図2(a)は、クライアント端末101のハードウェア構成を示すブロック図である。
クライアント端末101は、表示部216、操作部217、記憶部214、制御部211、ネットワーク通信部215を備える。
記憶部214は、ハードディスクやSSDなどの不揮発性の記憶装置を指し、デジタルデータの保存と書き換えが可能である。
制御部211は、CPU212とメモリ213とから構成され、クライアント端末101の全体の動作を制御する。CPU212は、記憶部214に記憶されたプログラムをメモリ213に展開し、それを実行する。メモリ213は、CPU212の主記憶メモリでありワークエリアや各種プログラムを展開するための一時記憶領域として用いられる。
ネットワーク通信部215は、外部のネットワーク107と通信を行う装置であり、ネットワーク107を介して外部のサーバやクライアント端末等とのデジタルデータの入出力を行う。
表示部216は、液晶ディスプレイなどユーザに対して視覚的な情報を表示するための装置である。操作部217は、キーボードやマウスなどによりユーザからの入力を受け付けるための装置である。タッチパネルなど、表示部216と操作部217の両方の機能を備え持つ装置を用いてもよい。
図2(b)は、クラウドプリントサーバ102のハードウェア構成を示すブロック図である。クラウドプリントサーバ102は記憶部224、制御部221、ネットワーク通信部225を備える。
記憶部224、制御部221、ネットワーク通信部225の説明はクライアント端末101のものと同等であるため割愛する。
なお、クラウドプリントサーバ102は図2(b)に示すハードウェア構成を有する1台の情報処理装置で構成されるものとして説明するが、クラウドプリントサーバ102が図2(b)で示される複数の情報処理装置により構成されるとしてもよい。
図2(c)は、アプリケーション管理サーバ103のハードウェア構成を示すブロック図である。アプリケーション管理サーバ103は表示部236、操作部237、記憶部234、制御部231、ネットワーク通信部235を備える。
表示部236、操作部237、記憶部234、制御部231、ネットワーク通信部235の説明はクライアント端末101のものと同等であるため割愛する。
なお、アプリケーション管理サーバ103は図2(c)に示すハードウェア構成を有する1台の情報処理装置で構成されるものとして説明するが、アプリケーション管理サーバ103が複数の情報処理装置により構成されるとしてもよい。
図2(d)は、クラウドプリント対応プリンタ104のハードウェア構成を示すブロック図である。クラウドプリント対応プリンタ104は、表示部246、操作部247、記憶部244、制御部241、ネットワーク通信部245、印刷部248を備える。
表示部246は、クラウドプリント対応プリンタ104に備え付けのタッチパネルやLEDなど、ユーザに対して情報を表示するための装置である。
操作部247は、ユーザからの入力を受け付けるための装置であり、タッチパネルに加えてテンキーなどのハードキーを含むこともある。記憶部244、制御部241はクライアント端末101のものと同等であるため説明を割愛する。
ネットワーク通信部245は、外部のネットワーク107と通信を行う装置であり、主に印刷データの受信を行ったり、エラーなどのクラウドプリント対応プリンタ104の状態について外部のサーバ等に向けて送信したりする役割を持つ。
印刷部248は、カセットやトレイに用意された用紙に対して、給紙、印字、排紙の一連の動作を行うことで印刷処理を行う装置である。印字の方式は電子写真方式やインクジェット方式など特に限定されない。排紙時に使用される両面ユニットやステイプル、パンチ処理などのフィニッシング装置も印刷部248に含まれる。
なお、本実施形態では、クラウドプリント対応プリンタ104の例として印刷機能のみを行うシングルファンクションプリンタについて説明しているが、スキャナ機能やFAX機能も合わせて持つマルチファンクションプリンタ(複合機)を用いてもよい。
図2(e)はオンラインサポートサーバ105の詳細を示すハードウェアブロック図である。本実施形態において、オンラインサポートサーバ105は1台の情報処理装置で構成されるものとして説明するが、複数台の情報処理装置で構成されてもよい。オンラインサポートサーバは、表示部256、操作部257、記憶部254、制御部251、ネットワーク通信部255で構成される。表示部256、および操作部257は、クライアント端末101の表示部216、操作部217と同様であるため説明を省略する。記憶部254は、HDD、SSD等のメモリデバイスである。記憶部254には、クライアント端末101で提供される機能を拡張するための情報が記載されたファイルである拡張セットアップ情報ファイルが記憶されている。
制御部251はCPU252、メモリ253から構成される。CPU252はオンラインサポートサーバ105全体の制御を行う。メモリ253は、CPU252により実行される処理に用いられる。ネットワーク通信部255は、オンラインサポートサーバ105がクライアント端末101と通信するためのインタフェースである。オンラインサポートサーバ105は、ネットワーク通信部255を介して、記憶部254に記憶されたファイルの取得要求を受信し、対応するファイルをクライアント端末101に送信する。
次に図3を用いて、本実施形態におけるユーザの手順ならびに各ソフトウェアおよびプリントサービス間のシーケンスの一例を説明する。
まず、クラウドプリント対応プリンタ104は、ユーザからクラウドプリント対応プリンタ104をクラウドプリントサービス321に登録するためのプリンタ登録操作を受け付ける。クラウドプリント対応プリンタ104は、クラウドプリントサービス321に、プリンタのデバイス識別情報とともにプリンタ登録要求を送信する(S3001)。ここでクラウドプリントサービス321に送信されるデバイス識別情報とは、たとえばプリンタの機種ごとに割り振られるHWID(ハードウェアID)である。なお、デバイス識別情報はプリンタの機種を識別できる情報であればどのような情報であってもよい。
クラウドプリントサービス321は、登録要求を受信すると、プリンタ登録のためのクラウドプリントサービス321のURLをクラウドプリント対応プリンタ104に送信する。ユーザが、クラウドプリント対応プリンタ104または情報処理装置から当該URLにアクセスすると、当該URLにアクセスした端末の表示部にユーザID、パスワードを入力するための入力画面が表示される。ユーザはクラウドプリントサービス321を利用するためのユーザID、パスワードを入力し、クラウドプリントサービス321にログインする。ユーザのログインが成功すると、クラウドプリントサービス321はクラウドプリント対応プリンタ104にプリンタの登録に必要な情報の取得要求を送信する。クラウドプリント対応プリンタ104は、当該要求に応じてプリンタ情報をクラウドプリントサービス321に送信する。
次に、プリンタ登録要求を受けたクラウドプリントサービス321は、クラウドプリント対応プリンタ104の情報を登録し、クラウドプリント対応プリンタ104用のプリントキューを生成する。この際、クラウドプリントサービス321は、クラウドプリント対応プリンタ104の能力情報を取得し、生成したプリントキューに紐づける。能力情報とは、プリンタが搭載している機能を表す情報であり、両面可能情報や、カラー可能情報、ステイプル可能情報など、ユーザが印刷時に印刷設定として設定するために必要な情報を指す。
図5は能力情報の一例を示す図である。能力情報は、項目名と属性値で構成される。項目名は印刷設定の設定項目に相当する。属性値は各設定項目において、設定することができる設定値、選択肢や値域に相当する。クラウドプリント対応プリンタ104は、IPPにより業界標準の仕様として定義されている項目名、属性値に加え、プリンタベンダーが独自で定義する項目名、属性値も記憶している。例えば、図5に記載の項目名のうち「ジョブをプリンタに保存」「ジョブ名短縮」「針なしとじ」や、それに付随する属性値はプリンタベンダーが独自で定義している項目名、属性値である。「ジョブをプリンタに保存」は、プリンタがクラウドプリントサービス321から受信した印刷データを印刷後もプリンタに保存しておくか否かを設定するための設定項目である。「ジョブ名短縮」は、プリンタがクラウドプリントサービス321から受信した印刷データの書誌情報をプリンタの表示部に表示する際に、印刷データに付与された名称を短縮して表示するか否かを設定する項目である。「針なしとじ」は、プリンタがクラウドプリントサービス321から受信した印刷データに基づく出力用紙を、ステイプル針を用いずにとじるか否かを設定するための項目である。ステイプル針を用いずにとじるとは、たとえば圧着により用紙をとじることを示している。なお、業界標準の仕様として定義されている項目名に対応する属性値としてプリンタベンダー独自の属性値を定義してもよい。たとえば、「折り設定」は、IPPで定義されている項目名である。一方で「折り設定」の属性値の一つである「サドル折り」は、1枚以上の用紙をステイプルでとじることなく、まとめて折り排紙する機能であり、プリンタベンダーが独自に定義する属性値である。
本実施例では、通信プロトコルとしてIPPに則って能力情報をクラウドプリントサービス321に伝えるとする。クラウドプリント対応プリンタ104は、クラウドプリント対応プリンタ104がクラウドプリントサービス321に能力情報を登録するために用意されたコマンドを使用して能力情報の登録を行う。クラウドプリント対応プリンタ104は、図5に示される項目名と、各項目名に対応する属性値、デフォルト値をクラウドプリントサービス321に通知する。ここで通知する能力情報は、各項目、属性値がIPPで定義されているか否かにかかわらない。たとえば、図5に示す「ジョブをプリンタに保存」「ジョブ名短縮」「針なしとじ」についても、項目名と属性値がクラウドプリントサービス321に通知される。また、「折り設定」の属性値の一つでプリンタベンダー独自の属性値である「サドル折り」も、「折り設定」の属性値の一つとしてクラウドプリントサービス321に登録する。
次に、ユーザがクライアント端末101にて、クラウドプリント対応プリンタ104で印刷をするためのセットアップ操作をした場合に行われる印刷設定拡張アプリ312のインストールについて説明する。クライアント端末101にクラウドプリント対応プリンタ104の登録を行う際には、クライアント端末101のOS(オペレーティングシステム)313の有する機能の一つである標準印刷機能を利用する。
クライアント端末101のOS313は、ユーザによるクラウドプリント対応プリンタ104のセットアップ操作であるプリンタの追加操作を受け付ける(S3002)。クラウドプリント対応プリンタ104のセットアップ操作とは、例えば以下のような操作である。図4は、クライアント端末101のOS313が表示する、クライアント端末101に登録されているプリンタに関する画面である。ユーザがオブジェクト401を選択することでOS313にプリンタの探索指示が入力される。
プリンタの探索指示を受け付けたOS313は、クラウドプリントサービス321に対するトークンを保持しているか否かを判定する。OS313がトークンを保持していない場合、OS313は不図示のユーザ情報(ログイン名、パスワード)を入力するための画面を表示する。クライアント端末101のOS313は、当該画面を介して入力されたユーザ情報をクラウドプリントサービス321に送信して、ユーザ認証とアクセストークンを要求する(S3003)。
クラウドプリントサービス321は、クライアント端末101から受信したユーザ情報を用いて認証処理を行う(S3004)。クラウドプリントサービス321は、認証処理を完了すると、認証処理の結果をクライアント端末101に通知する。
ここで、ユーザ認証が成功であれば、クライアント端末101のOS313は、クラウドプリントサービス321からアクセストークンを取得する(S3005)。
S304においてユーザ認証が失敗した場合、クラウドプリントサービス321はクライアント端末101のOS313に認証エラーを通知する(S3006)。クライアント端末101のOS313は、受信した認証エラーの情報に基づき処理を中止する(S3007)。アクセストークンの取得が出来なかった場合、クライアント端末101のOS313は図3に記載の処理を終了する。
OS313がアクセストークンを保持している場合や、S3005でトークンを取得した場合、クライアント端末101のOS313はS3008へと処理を進める。OS313は、クラウドプリントサービス321に登録されたプリンタとネットワーク107に接続されたプリンタを探索する。
クライアント端末101のOS313は、クラウドプリントサービス321に登録されているプリンタ情報の取得要求を送信し、プリンタ探索を行う(S3008)。S3008において、クライアント端末101のOS313は、アクセストークンを添付したプリンタ情報の取得要求をクラウドプリントサービス321に送信する。
クラウドプリントサービス321は、取得要求に添付されていたアクセストークンで識別されるユーザが利用を許可されているプリンタの情報をクライアント端末101用に送信する(S3009)。S3009においてクライアント端末101に送信されるプリンタ情報とは、クラウドプリントサービス321に登録されたプリンタに付与されているプリンタ名および当該プリンタのHWIDである。
クライアント端末101のOS313はクラウドプリントサービス321が送信したプリンタ一覧およびそれぞれのプリンタのデバイス識別情報を取得する。なお、S3008、S3009の処理と並行して、クライアント端末101のOS313はクライアント端末101と同じネットワークに接続されているプリンタの探索を行う。これはmDNSやBonjour等によるデバイスの探索である。
OS313は、クラウドプリントサービス321から取得したプリンタ情報とネットワーク107への探索で検出したプリンタ情報をもとにクライアント端末101にプリンタ一覧を表示する。図4の領域402には、クラウドプリントサービス321から受信したプリンタ情報が一覧で表示されている。領域402に表示されているうち、「Cloud Printer 001/002/003」は、クラウドプリントサービス321に登録されているプリンタの情報である。一方で「Printer XX」はクライアント端末101がネットワーク107を探索して検出したプリンタである。このように、クラウドプリントサービス321から取得されたプリンタの情報と、ネットワーク107を探索して検出したプリンタの情報が一覧で表示される。クラウドプリントサービス321から受信したプリンタ情報はアイコン403が付加されて表示される。一方で、ネットワーク107を探索して検出したプリンタ情報はアイコン404が付加されて表示される。このようにすることで、クラウドプリントサービス321から受信したプリンタ情報とネットワーク107を探索して検出したプリンタ情報を区別して表示することができる。なお、クラウドプリントサービス321に登録されたプリンタの情報のみをクライアント端末101が表示してもよい。
次に、ユーザは領域402に表示されたプリンタ情報からクライアント端末101に登録したいプリンタに対応するプリンタ情報を選択する。
クライアント端末101のOS313は、クラウドプリントサービス321に選択されたプリンタ情報に対応するプリンタの能力情報を問い合わせる(S3010)。クライアント端末101のOS313がいずれの設定項目について能力情報を問い合わせるかはOS313の仕様にて決められており、OS313に設定されている。クライアント端末101のOS313は、あらかじめ記憶された設定項目を指定して能力情報の問い合わせを行う。OS313にあらかじめ設定された項目は、IPPにより標準の仕様として定義された設定項目であり、例えば「用紙サイズ」や「用紙の種類」、「カラーモード」といった項目である。
クラウドプリントサービス321は、クライアント端末101のOS313に対して、クラウドプリント対応プリンタ104の能力情報を応答する(S3011)。
なお、本実施例では、S3001の登録時にクラウドプリントサービス321に登録された情報がS3011でクライアント端末101に送信されるとして説明する。しかしながら上記以外のタイミングでクラウドプリントサービス321に登録された能力情報がクライアント端末101に送信されるとしてもよい。たとえば、クラウドプリント対応プリンタ104の能力情報の変更に伴いクラウドプリントサービス321に登録された能力情報がクライアント端末101に送信されてもよい。また、クラウドプリントサービス321が提供するユーザインタフェース上でユーザが能力情報の更新を指示し、当該指示に伴い更新された能力情報がクライアント端末101に送信されるとしてもよい。また、S3010のタイミングでクラウドプリントサービス321がクラウドプリント対応プリンタ104から能力情報を取得し、取得した能力情報をクライアント端末101に通知するとしてもよい。
S3011において、クラウドプリントサービス321は、クライアント端末101から指定された設定項目について、当該設定項目に対応する属性値とデフォルト値を回答する。ここで、回答される属性値は標準として定義されている属性値であるか否かにかかわらずクラウドプリントサービス321に登録されている全ての属性値である。デフォルト値は、クライアント端末101が印刷設定画面を表示するときに最初に設定される値である。なお、クラウドプリントサービス321は、クライアント端末101のOS313が問い合わせた属性に対する応答を記憶していない場合、OS313に対して応答しない。
次に、OS313は、ユーザが選択したプリンタのデバイス識別情報やプリンタ名を基にクラウドプリンタドライバ311のインストールを開始する。
そして、OS313は、OS313に同梱された基本的なデバイス能力情報をもったクラウドプリンタドライバ311のプリントキューを生成する(S3012)。デバイス能力情報とは、プリンタドライバの印刷設定能力情報を生成するために必要な定義情報、例えばPrintDeviceCapabilitesのようなXMLで記載されたものを指す。図6AはOS313に同梱された初期状態のデバイス能力情報の一例を示す図である。例えば、「Feature」は、用紙サイズを表す「PageMediaSize」が設定項目であることを示している。「Option」は、「PageMediaSize」に対応する選択肢を示す。デバイス能力情報の初期値では、図6Aのように、用紙サイズとして、「A4」と「LETTER」の2つの選択肢しかない。この情報はプリントキューの生成時にプリントキューと紐づけて記憶され、OS313により管理される。なお、初期状態のデバイス能力情報は、接続されているプリンタの情報にかかわらず固定のデバイス能力情報である。
その後、OS313は、クラウドプリントサービス321から取得した能力情報を用いて、クラウドプリンタドライバ311を構成するデバイス能力情報を更新する。図6Bは、クラウドプリントサービス321から取得した能力情報を用いて更新されたデバイス能力情報の一例を示す図である。例えば、用紙サイズを表す「PageMediaSize」に対して、クラウドプリント対応プリンタ104が印刷可能な用紙サイズとして、「A4」と「LETTER」以外の「Option」が追記される。このように、クライアント端末101は、まず、クラウドプリンタドライバ311とOS313に同梱されているデバイス能力情報を対応づけてプリントキューに登録する。そして、その後プリントキューに紐づけられたデバイス能力情報をクラウドプリントサービス321から取得した能力情報で更新する。このとき、OS313はクラウドプリントサービス321から取得した能力情報のうち、業界標準の仕様で定義される属性値のみを用いてデバイス能力情報を更新する。そのため、例えば、能力情報の取得において、用紙種としてベンダー独自の属性値が取得されたとしても、ベンダー独自の属性値はデバイス能力情報には追加されない。
このようにすることで、OS313が同梱するデバイス能力情報では設定することができない印刷設定値を設定することができるようになる。
以上により、クラウドプリンタドライバ311のインストールが完了する。ここまでの処理を行うことで、クライアント端末101からクラウドプリントサービス321に生成されたクラウドプリント対応プリンタ104用のプリントキューに印刷データを送信することができるようになる。
次にOS313は、当該プリンタに紐づき、クラウドプリントドライバを拡張するアプリケーションのインストール処理を開始する。
まず、OS313は、デバイス識別情報に対して識別付加情報付与処理を行う。これは、オンラインサポートサーバ105に対して拡張セットアップ情報ファイル700を取得する際に必要な処理であり、通常のデバイス識別情報と異なる文字列であればよい。本実施形態の場合、他のデバイスのアプリケーションと区別するために、OS313が、デバイス識別情報にプリンタに対応するアプリケーションであることを示す識別付加情報(“PrinterApp_”)を付与する。なお、“PrinterApp_”は一例であり他の文字列や数字や記号でも良い。上記処理の結果、例えばクラウドプリント対応プリンタ104のデバイス識別情報がdevice001であった場合、識別付加情報付与処理後のデバイス識別情報はPrinterApp_device001となる。
OS313は、オンラインサポートサービス351に対し、対象となる付加情報付きデバイス識別情報を含む拡張セットアップ情報ファイル700の探索要求を送信する(S3013)。S3013により、識別付加情報が付与された“PrinterApp_devoce001”がオンラインサポートサービス351に通知される。
オンラインサポートサービス351には、図7に示す拡張セットアップ情報ファイルが記憶されている。図7は拡張セットアップ情報ファイル700の一例である。拡張セットアップ情報ファイルはクラウドプリント対応プリンタ104のベンダーが作成し、オンラインサポートサービス351に登録するファイルである。
拡張セットアップ情報ファイル700には、クラウドプリント対応プリンタ104に送られる印刷データの設定に使用される印刷設定拡張アプリを特定するためのアプリケーション識別子が記述されている。図7に書かれた拡張セットアップ情報ファイルのうち「PackageFamilyName」という項目が印刷設定拡張アプリケーションの識別情報である。一方で、「PrinterHardwareID」は、クラウドプリント対応プリンタ104の識別情報に識別付加情報を付加した文字列が記述されている。
なお、オンラインサポートサービス351には、印刷設定拡張アプリケーションの識別情報が記述された拡張セットアップ情報ファイルに加えて、プリンタドライバの識別情報が記述された拡張セットアップ情報が格納されている。プリンタドライバの識別子が記述された拡張セットアップ情報ファイルは、「PackageFamilyName」にプリンタドライバの識別子が記述されている。また、拡張セットアップ情報ファイルの「PrinterHardwareId」は識別付加情報が書かれていないデバイス識別情報が記述されている。
このように、オンラインサポートサービス351には、プリンタドライバの識別子を記述した拡張セットアップ情報ファイルと印刷設定アプリケーションの識別子を記述した拡張セットアップ情報ファイルの両方が記憶されている。そのため、OS313が適宜必要な拡張セットアップ情報ファイルを取得するためにデバイス識別情報に識別付加情報の付加を行う。
探索のリクエストを受信したオンラインサポートサービス351は、リクエストで指定される識別付加情報付きのデバイス識別情報と、ファイル内の「PackageFamilyName」が一致する拡張セットアップ情報ファイルを特定する。
探索の結果、オンラインサポートサービス351が対象となるデバイス識別情報が含まれた拡張セットアップ情報ファイル700を格納している場合、OS313に拡張セットアップ情報ファイル700を返信する(S3014)。この時、拡張セットアップ情報ファイルの内容がOS313のレジストリに書き込まれる。
次に、OS313は、オンラインサポートサービス351から取得した拡張セットアップ情報ファイルに書かれた拡張セットアップ情報をS3012で生成したプリントキューと紐づけてインストールする(S3015)。
次に、OS313は、インストールした拡張セットアップ情報から、アプリケーションIDを抽出する(S3016)。アプリケーションIDとは、拡張セットアップ情報ファイルにおいて「PackageFamilyName」で規定される識別子である。ここまでが、オンラインサポートサービス351にクラウドプリント対応プリンタ104に対応する拡張セットアップファイルが格納されていた場合の処理である。
探索の結果、オンラインサポートサービス351が対象となるデバイス識別情報が含まれた拡張セットアップ情報ファイル700が検出されない場合がある。このとき、OS313は、クラウドプリントドライバのインストールを完了し、アプリケーションのインストール処理を中止する(S3017)。OS313は、S3013の探索リクエストから所定の時間内に拡張セットアップファイルを受信できなかった場合や、オンラインサポートサービス351からエラー通知を受けた場合にS3017に記載の処理を実行する。
S3018以降では拡張セットアップファイルが取得でき、かつ、S3916でアプリケーションIDが抽出できた場合の処理について説明する。
OS313は、アプリケーション管理サービス331に対して、抽出したアプリケーションIDが一致するアプリケーションの探索を要求する(S3018)。アプリケーション管理サービス331は、クライアント端末101で動作するアプリケーションと当該アプリケーションの識別子であるアプリケーションIDを対応づけて記憶する。アプリケーションおよびアプリケーションIDはクラウドプリント対応プリンタ104を提供するベンダーにより、アプリケーション管理サービス331に登録される。
アプリケーション管理サービス331が、要求されたアプリケーションIDと一致する印刷設定拡張アプリを保持している場合、アプリケーション管理サービス331は、印刷設定拡張アプリ312をクライアント端末101に返信する(S3019)。ここで、返信される印刷設定拡張アプリ312は、送信したアプリケーションIDと同じIDが付与されたアプリケーションである。
OS313は、取得した印刷設定拡張アプリ312を、クライアント側のプリントキューと関連付けてインストールする(S3020)。OS313は、レジストリにプリントキューの情報として、アプリケーションIDを保存する。また、印刷設定拡張アプリ312は、OS313に対して当該アプリケーションと紐づけられたプリントキューが印刷設定画面で設定されたタイミングでイベント通知をする様、OS313に設定する。インストールされた印刷設定拡張アプリ312は、クライアント端末101の電源がオンになり、OS313が起動したのちに、起動され、起動後はバックグラウンドタスクとして動作する。
アプリケーション管理サービス331が要求されたアプリケーションIDと一致する印刷設定拡張アプリを保持していない場合、OS313はアプリケーションのインストール処理を中止する(S3021)。この場合、生成されたプリントキューとクラウドプリンタドライバ311が紐づけてインストールされ、印刷設定拡張アプリ312はプリントキューと紐づけられずに処理が終了する。
なお、上記の説明では、クラウドプリント対応プリンタ104のデバイス識別情報に所定の文字列を付加して拡張セットアップファイルの探索を行った。プリンタドライバのインストール用のファイルを区別できる場合には所定の文字列を付加せず探索を行う構成であってもよい。
次に図8を用いて、本実施形態におけるユーザの手順ならびに各ソフトウェアおよびプリントサービス間のシーケンスの一例を説明する。
ドキュメント生成アプリ315は、文書データの作成アプリケーションやプレゼンテーション資料の作成アプリケーション、写真や画像データの表示アプリケーション等のアプリケーションである。
ドキュメント生成アプリ315は、プリントキューの選択をおこなう印刷設定画面(図11)を印刷設定初期画面として表示する。本実施形態では、ドキュメント生成アプリ315が印刷設定初期画面を表示するが、同様の画面をOS313が表示してもよい。印刷設定初期画面には、プリントキューを選択するためのオブジェクト1101や、様々な印刷設定を行うためのオブジェクト1102、印刷プレビュー画像1103が表示される。OS313はデフォルトプリンタとして設定されているプリンタに紐づくプリントキューを選択する(S801)。本実施例では、クラウドプリント対応プリンタ104がデフォルトプリンタとして選択されていたとする。なお、S801以降の処理はユーザがオブジェクト1101を操作して使用するプリンタを変更した場合にも実行される。
次に、OS313は、クラウドプリントサービス321のクラウドプリント対応プリンタ104に対応したクラウド上のキューに対してクラウドプリント対応プリンタ104の能力情報を問い合わせる(S802)。いずれの設定項目について能力情報を問い合わせるかはOS313の仕様にてあらかじめ決められている。そのため、このタイミングで取得される能力情報は図3のS3001にて取得したものと同様のものである。当該問い合わせは、例えば、Get-print-Attributesのような、IPPにより定義される標準プロトコルのコマンドを用いてクラウドプリント対応プリンタ104に対して行われる。Get-print-Attributesを用いる場合はOS313によって決められている能力情報をリスト形式で問い合わせする。
クラウドプリントサービス321は、OS313に対して、Get-print-Attributesで送られてきた能力情報のリストからクラウドプリントサービス321はクラウドプリント対応プリンタ104の能力情報を返答する(S803)。例えば、Get-print-Attributes(IPP)でメディアサイズの属性を指定されたとする。クラウドプリントサービス321はメディアサイズの属性を保有していた場合その属性に紐づく値(A4,B5,Letter等)を返答する。クラウドプリントサービス321はGet-print-Attributesで指定された属性がクラウドプリントサービス321のラウドプリント対応プリンタ104のキューに存在しない場合、紐づく値のレスポンスは行わない。S803で取得される能力情報はあくまでもOS313が接続されているプリンタの種類や能力にかかわらず問い合わせる能力情報である。
OS313は、クラウドプリントサービス321から取得した能力情報を用いて、デバイス能力情報を更新する。OS313は図3のS3012にて生成したデバイス能力情報に対して図8のS803にて取得した能力情報を追加する(S804)。デバイス能力情報に更新がある場合、S803を行うことでクライアント端末101が管理するデバイス能力情報を更新することができる。なお、S804におけるデバイス能力情報の更新では、業界標準の仕様により定義される属性値のみについて、デバイス能力情報が更新される。
次に、OS313は、印刷設定拡張アプリ312に対して、イベントとデバイス能力情報の編集に使われるAPIを通知する(S805)。本イベントの通知タイミングは、印刷設定拡張アプリ312がクライアント端末101のOS313にインストールされるときに登録される。
印刷設定拡張アプリ312は、本イベントを受信すると、クラウドプリントサービス321に能力情報の取得要求を行う。ここで行われる能力情報の取得は、プリンタベンダーが独自で定義する設定項目や属性値をデバイス能力情報に書き込むための能力情報の取得である。
印刷設定拡張アプリ312は、イベントをOS313から受信すると、クラウドプリントサービス321を介して、クラウドプリント対応プリンタ104の能力情報を問い合わせる(S806)。このとき印刷設定拡張アプリ312は、プリンタベンダー独自の設定項目や、プリンタベンダー固有の属性値を含む設定項目の能力情報をクラウドプリントサービス321に問い合わせる。問い合わせは図8のS802と同様、Get-print-Attributesを用いて行い、項目名として問い合わせたい設定項目の項目名を指定することで能力情報が取得される。なお、本実施例ではS806においてプリンタベンダー独自に定義した設定項目やプリンタベンダーが独自で定義した属性値を含む設定項目について能力情報取得を行うとして説明する。OS313による能力情報取得で取得済みの設定項目についても能力情報の取得を行うとしてもよい。
クラウドプリント対応プリンタ104は、印刷設定拡張アプリ312から独自能力情報の問い合わせがあると、クラウドプリントサービス321を介して、印刷設定拡張アプリ312に応答する(S807)。ここでの応答方法は、先に説明した図8のS3011と同様である。本実施例では、S807において、クラウドプリントサービス321は、クラウドプリントサービス321が記憶するクラウドプリント対応プリンタ104の能力情報を応答する。なお、S806の要求を受けて、クラウドプリントサービス321がクラウドプリント対応プリンタ104から能力情報を再取得し、クライアント端末101に応答するとしてもよい。
印刷設定拡張アプリ312は、クラウドプリント対応プリンタ104から能力情報を取得すると、構成情報オブジェクトを介して、OS313が管理するデバイス能力情報を編集する。構成情報オブジェクトとは、デバイス能力情報を編集するために必要なデータ群の集合である。印刷設定拡張アプリ312は、OS313が持つデバイス能力情報を直接編集することができない。そのため、この構成情報オブジェクトを利用して、OS313が持つデバイス能力情報を変更する。図8のS807で取得した「針無しとじ」や「ジョブをプリンタに保存」等の能力情報をデバイス能力情報に変換し、構成情報オブジェクトに追加することでデバイス能力情報を編集する(S808)。S808までの処理を行うことで、デバイス能力情報に、OS313の問い合わせで取得された標準的な設定項目に関する能力情報に加え、プリンタベンダー独自の設定項目、属性値が記憶される。
次に、印刷設定拡張アプリ312は、編集したデバイス能力情報をOS313に渡す(S809)。OS313は印刷設定拡張アプリ312から取得したデバイス能力情報をプリントキューと紐づけて記憶する。
OS313は、デバイス能力情報を更新すると、印刷設定拡張アプリ312のUIを表示するトリガーとなるオブジェクトが有効となる(S810)。印刷設定拡張アプリ312のUIを表示するトリガーとなるオブジェクトとは、たとえば、図11のオブジェクト1104である。S810の処理が完了するまで、オブジェクト1104はグレーアウトされており、ユーザがクリックしても印刷設定拡張アプリ312の印刷設定画面は表示されない。S810の処理が完了すると、オブジェクト1104のグレーアウトが解除され、ユーザはオブジェクト1104を選択することができるようになる。
ユーザがオブジェクト1104を選択すると、印刷設定拡張アプリ312が起動し、図10のような印刷設定画面を表示する(S811)。この印刷設定画面は利用するドキュメント生成アプリ315の種類に依存しない。
なお、選択されているプリントキューに印刷設定拡張アプリ312が紐づいていない場合は図9(a)のようにOS313に予め搭載されている標準印刷設定画面が表示される。標準印刷画面では詳細設定ボタン901を押すことで図9(b)の詳細印刷画面を表示し、図9(a)で表示しきれない設定項目を設定するための詳細印刷画面を表示する。なお、図9(b)に示す詳細印刷画面は、スクロールバーを操作することでスクロールが可能であり、図9(c)(d)のように、OS313でサポートされる複数の設定項目について印刷設定を行うことができる。なお、OKボタン902を選択することで、設定されている印刷設定を保存し、図9(a)に戻ることができる。図9(a)の適用ボタン903は印刷設定を保存するボタンであり、キャンセルボタン904は印刷設定を保存せずに図11の画面に戻るためのボタンである。OKボタン905を選択すると印刷設定を保存し、図11の画面に戻る。なお、図9(a)~(d)では、プリンタベンダーが独自に定義した印刷設定項目、属性値を設定することはできない。
印刷設定拡張アプリ312に話を戻す。印刷設定拡張アプリ312は、OS313がデバイス能力情報から生成した印刷設定能力情報を基に生成した印刷設定情報を受け取り、図10(a)に示す拡張印刷設定画面を表示する。拡張印刷設定画面は図10(a)~(e)に示すようにスクロールバーを操作することでスクロールすることができ、様々な印刷設定項目の設定値を設定することができる。
例えば、図10の設定項目1001の出力用紙サイズは図6(b)のpsk:PageMediaSizeから生成された印刷設定情報である。また出力用紙サイズの選択肢であるA4は印刷設定拡張アプリ312が印刷設定情報psk:IOSA4という情報を基に生成し、表示を行っている。このように、印刷設定拡張アプリ312はデバイス能力情報を設定値に変換して拡張印刷設定画面を表示する。拡張印刷設定画面は、プリンタベンダー固有の設定項目に関する能力情報を含むデバイス能力情報から生成されるため、OS313が提供する図9に示す画面では設定することが出来ない設定項目や設定値を設定することが可能である。
ユーザが印刷設定拡張アプリ312の表示する図10の画面において、オブジェクト1002を選択する。オブジェクト1002は印刷設定を確定するためのオブジェクトである。印刷設定拡張アプリ312は、ユーザによって任意に印刷設定を変更する機能を提供し、変更した場合はその設定値を保存する。例えば、ユーザがUI上でメディアサイズをA4からLetterへと変更したとする。その場合、印刷設定拡張アプリ312が保有している印刷設定情報がA4からLetterへと変わる。オブジェクト1002が選択されると、印刷設定拡張アプリ312は、印刷設定画面のコントロール内で処理した印刷設定情報を印刷設定画面から取得し、その印刷設定情報をOS313に渡す。印刷設定拡張アプリ312は、印刷設定情報をOS313に渡すと、図10に示す印刷設定画面の表示を終了する(S812)。S812の処理が完了すると、図11に示す印刷設定画面が表示される。この時、表示される印刷設定画面は、印刷設定拡張アプリ312で設定された設定値が設定された画面である。
ユーザが図11に示す画面において、オブジェクト1105を選択するとOS313に印刷指示が入力される。OS313は、ドキュメント生成アプリ315を介して入力された指示に基づき印刷に係る処理を実行する(S813)。
OS313は印刷の実行が指示されると、中間データを生成し、印刷設定拡張アプリ312に生成した中間データと印刷設定画面部で編集した印刷設定情報を渡す(S814)。中間データとは、PDLのような印刷データに変換する前に生成されるデータであり、例えばXPSがこれに当たる。印刷設定情報もこの中間データに包含されている。
印刷設定拡張アプリ312は、OS313から中間データと印刷設定情報を受け取ると中間データを基に印刷データを、印刷設定情報を基に印刷能力情報を生成する(S815)。印刷データとは例えば、PDFファイルのようなPDLを指し、印刷能力情報とは具体的には印刷設定情報をIPPで定義される属性値で記述した情報である。
印刷設定拡張アプリ312は印刷データを生成後、生成した印刷データと印刷能力情報をOS313のプリントキューに渡す(S816)。
S814~S816は、プリントキューに紐づく印刷設定拡張アプリ312がクライアント端末101にインストールされている場合の処理である。クライアント端末101に印刷設定拡張アプリ312がインストールされていない場合、クライアント端末101はS816で後述する処理を実行する。OS313はXPSデータを生成し、ページレイアウトを編集し、XPSデータを所定のフォーマットに変換し、印刷データと印刷能力情報を生成する(S817)。所定のフォーマットとは、例えばPDFやPWG―Raster等である。
OS313は印刷設定拡張アプリ312から渡された印刷データと印刷能力情報またはOS313が生成した印刷データと印刷能力情報を、プリントキューを介して、クラウドプリントサービス321に送信する(S818)。
クラウドプリントサービス321はクライアント端末101から渡された印刷データと印刷能力情報をクラウドプリント対応プリンタ104に送信する(S819)。なお、本実施例では、クラウドプリントサービス321が印刷データと印刷能力情報を受信すると、受信した印刷データと能力情報をクラウドプリント対応プリンタ104に送信するとした。クラウドプリント対応プリンタ104が定期的にクラウドプリントサービス321に問い合わせを行い、未印刷の印刷データと当該印刷データに対応する印刷能力情報の取得を行うとしてもよい。
以上のようにすることで、印刷設定拡張アプリ312を用いて行った印刷設定を反映した印刷データをクラウドプリントサービス321経由で、クラウドプリント対応プリンタ104に送信することができる。
図12は、クライアント端末101に印刷設定拡張アプリをインストールするまでのOS313の処理を示すフローチャートである。本フローチャートに記載の処理を実行するためのプログラムは、クライアント端末101の記憶部214に記憶されている。CPU212が当該プログラムを実行することで処理が実現される。
CPU212は、図4に示す画面を表示し、プリンタの探索指示を受け付ける(S1201)。ユーザが図4のオブジェクト401を選択すると、CPU212はプリンタ探索指示を受け付ける。
CPU212は、クラウドプリントサービス321のアクセストークンを記憶しているか否かを判定する(S1202)。クライアント端末101は、クライアント端末101にログインするユーザ毎にクラウドプリントサービス321から情報を取得するためのアクセストークンを記憶する。CPU212は、クライアント端末101にログインしているユーザに紐づけられたアクセストークンが記憶されているか否かを判定する。アクセストークンが記憶されている場合、CPU212は後述するS1206へと処理を進める。アクセストークンが記憶されていない場合、CPU212はクラウドプリントサービス321に認証要求を送信する(S1203)。そして、CPU212は、クラウドプリントサービス321から認証に必要となる情報を入力する画面を表示するために使われるURLを受信する。
CPU212は、受信したURLにアクセスし、認証に使われる情報を入力する画面を表示する(S1204)。認証に使われる情報とは、たとえば、ユーザID(ユーザ識別子)やパスワードである。
CPU212は、入力された認証に使われる情報をクラウドプリントサービス321に送信し、アクセストークンを取得する(S1205)。なお、クラウドプリントサービス321への認証が失敗した場合、CPU212はアクセストークンを取得することが出来ず、図12に示す処理を終了する。
CPU212は、アクセストークンを利用して、クラウドプリントサービス321に登録されるプリンタの情報の取得要求をクラウドプリントサービス321に送信する(S1206)。クラウドプリントサービス321は、受信したアクセストークンで識別されるユーザが利用することができるプリンタの情報を選択し、クライアント端末101に送信する。ここでは、クライアント端末101から受信したアクセストークンにより識別されるユーザが利用することができるプリンタと紐づけて登録されているプリンタ名と当該プリンタのHWIDがクライアント端末101に送信される。
CPU212は、クラウドプリントサービス321から取得したプリンタの情報をクライアント端末101の表示部に表示する(S1207)。S1207による表示を行うことで、図4の領域402にプリンタの情報がリストで表示される。
CPU212は、プリンタの情報が選択されたか否かを判定する(S1208)。CPU212はプリンタの情報が選択されるまでは、S1208の処理を繰り返し行う。プリンタの情報が選択された場合、CPU212はS1209に記載の処理を実行する。
CPU212は選択されたプリンタの能力情報の取得要求をクラウドプリントサービス321に送信する(S1209)。ここでは、OS313にあらかじめ登録された設定項目について、クラウドプリントサービス321に問いあわせをする。
CPU212は、クラウドプリントサービス321から取得した情報に基づき、クライアント端末101が記憶するプリンタ能力情報を更新し、プリントキューを生成する。
CPU212は、オンラインサポートサービス351に拡張セットアップ情報ファイルの取得要求を送信する(S1211)。この取得要求にはプリンタのHWIDが含まれている。
CPU212は、拡張セットアップ情報ファイルの取得に成功したか否かを判定する(S1212)。拡張セットアップ情報ファイルの取得に成功した場合、CPU212はS1213へと処理を進める。拡張セットアップ情報ファイルの取得に失敗した場合、CPU212は図12に記載の処理を終了する。
CPU212は、取得した拡張セットアップ情報ファイルに記述された印刷設定拡張アプリの取得要求をアプリケーション管理サービス331に送信する(S1213)。CPU212は、拡張セットアップ情報ファイルから、印刷設定拡張アプリのアプリ識別子を取得し、取得したアプリ識別子を指定して、当該印刷設定拡張アプリの取得要求をアプリケーション管理サービス331に送信する。
CPU212は、印刷設定拡張アプリの取得に成功したか否かを判定する(S1214)。印刷設定拡張アプリの取得に失敗した場合、CPU212は図12に記載の処理を終了する。印刷設定拡張アプリの取得に成功した場合、CPU212はS1215に記載の処理を実行する。
CPU212は、取得した印刷設定拡張アプリをインストールし、印刷設定拡張アプリのアプリ識別子をプリントキューに紐づけて登録する。さらに、OS313に通知のタイミングを示すイベント登録を行う。ここでは、ドキュメントアプリが表示する印刷設定画面で印刷設定拡張アプリと紐づけられたプリントキューが選択された場合に、印刷設定拡張アプリにイベントを通知する様、登録を行う。
以上が、印刷設定拡張アプリをクライアント端末101に登録するまでの処理である。
次に図13を用いて、インストールされた印刷設定拡張アプリを用いて印刷設定を行い、印刷データを生成する処理について説明する。図13に記載の処理を実行するためのプログラムは印刷設定拡張アプリ312が記憶しており、当該プログラムはクライアント端末101のメモリ213に展開され、CPU212により実行される。
CPU212は、イベント通知を受信したか否かを判定する(S1301)。イベントとはOS313により発行されるイベントであり、図12のS1215で登録したタイミングであることを印刷設定拡張アプリ312に通知するためのイベントである。CPU212は、イベント通知を受信していない場合、S1301に記載の処理を繰り返し行う。イベント通知を受信した場合、CPU212はS1302に記載の処理を実行する。
CPU212は、能力情報の取得要求をクラウドプリントサービス321に送信する(S1302)。CPU212は、印刷設定拡張アプリ312に設定されている設定項目について、能力情報の取得要求をクラウドプリントサービス321に送信する。ここでは、図12のS1206では取得しなかった設定項目についても能力情報を取得する。
CPU212は、能力情報の取得が完了したか否かを判定する(S1303)。能力情報の取得が完了していない場合、CPU212はS1303に記載の処理を繰り返し行う。能力情報の取得が完了した場合、CPU212はS1304に記載の処理を実行する。
CPU212は取得した能力情報でデバイス能力情報を更新する(S1304)。S1304の処理を行うことで、OS313が取得しない設定項目についてもその能力情報がクライアント端末101に記憶される。
CPU212は、印刷設定拡張アプリによる印刷設定画面の表示が指示を受け付けた否かを判定する(S1307)。印刷設定拡張アプリによる印刷設定画面の表示の指示とは、たとえば、図11のオブジェクト1104の選択等のユーザ操作に基づき発行される指示である。印刷設定画面の表示指示を受け付けていない場合、CPU212はS1309へと処理を進める。印刷設定画面の表示指示を受け付けた場合、CPU212はS1306に記載の処理を実行する。
CPU212は、S1304で更新したプリンタデバイス情報に基づき、図10に示す印刷設定画面を表示する(S1306)。そして、表示した印刷設定画面を介して設定値を選択するユーザ操作を受け付ける。
CPU212は、印刷設定拡張アプリによる印刷設定画面の表示を終了する指示がなされていたか否かを判定する(S1307)。印刷設定画面の表示を終了する指示がなされていない場合、CPU212はS1307に記載の処理を行う。印刷設定画面の表示を終了する指示がなされた場合、CPU212はS1308に記載の処理を実行する。
CPU212は、印刷設定拡張アプリが表示する印刷設定画面において選択されている設定値で印刷設定情報を編集する(S1308)。そして、CPU212は印刷設定拡張アプリによる印刷設定画面の表示を終了する。
CPU212は、印刷設定拡張アプリ312がOS313から中間データを受信したか否かを判定する(S1309)。中間データを受信していない場合、CPU212はS1305に処理を戻す。中間データを受信している場合S1310へと処理を進める。
CPU212は、印刷設定拡張アプリ312が受信した中間データに基づく印刷データと印刷能力情報の生成を行う(S1310)。CPU212は中間データと印刷設定情報に基づき、所定のフォーマットの画像データを生成する。また、CPU212は印刷設定情報に基づき、IPPで定義された属性値で記述される印刷能力情報を生成する。印刷能力情報には、IPPで定義された属性値に加えて、自由に記述することもできる。そのため、プリンタベンダーが独自に定義した設定項目、属性値についても印刷能力情報に記述をすることができる。
CPU212は、生成した印刷データをOS313へと提供する(S1312)。OS313はプリントキューを介して受け取ったデータをクラウドプリントサービス321へと送信する。
以上が、印刷設定拡張アプリ312を用いて印刷設定を行い、印刷データと印刷能力情報を生成するときの処理を示すフローチャートである。
上記の処理を行うことにより、汎用のクラウドプリンタドライバやローカルプリンタドライバと紐づくプリントキューを選択して印刷データを送信する場合に、プリンタベンダー独自の設定項目の設定値を設定することができる。
<その他の実施形態>
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施例の機能を実現するソフトウェア(プログラム)をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム又は装置のコンピュータ(又はCPUやMPU等)がプログラムコードを読み出して実行する処理である。この場合、そのコンピュータプログラム、及び該コンピュータプログラムを記憶した記憶媒体は本発明を構成することになる。