<実施形態1>
図1は、本実施形態においてクラウドプリントサービスを利用するクライアントコンピューター(情報処理装置)のハードウェア構成図である。以下に詳細な説明を記載する。
CPU101は主記憶装置102のROM1021あるいはRAM1022あるいは補助記憶装置105に格納されたプログラムに従って装置全体の制御を行う。
RAM1022はCPU101が各種処理を行う際のワークエリアとしても使用される。補助記憶装置105はクラウドドライバー1050、オペレーションシステム(OS)1053やアプリケーション1051、印刷拡張アプリケーション1052等を記録する。以降の説明では、主記憶装置102と補助記憶装置105を合わせて記憶装置と記載する。
マウス・タッチパネルなどに代表されるポインティングデバイス109やキーボード108などの入力機器は、入力I/F103を通じてシステムバス107に接続され、ユーザーがコンピューターに対して各種指示を与えるためのデバイスである。
出力I/F104は、データを外部に出力するためのインターフェースであり、モニター110やパネル111のような出力機器に対してデータを出力する。また、クライアントコンピューター100は撮影機能を有しており、カメラ112が搭載されている。
クライアントコンピューター100は、通信I/F106を経由しネットワーク150を通じて図2にて後述するプリンター200や各システムと接続される。また、107は共通データシステムバスで、I/Fやモジュール間でデータのやり取りを行う。
図2は、本実施形態を示すネットワークの環境を簡略した印刷システムの概略図である。
ネットワーク150にはクライアントコンピューター100とプリンター200が接続されている。クライアントコンピューター100とプリンター200は同一イントラネットワークに接続され、通信可能な状態である。
また、別のイントラネット204にはプリンター201、プリンター202が接続されており、ネットワーク150はインターネット203を通じてイントラネット204に接続されている。インターネット203には、プリンタードライバー配布サービス300、印刷拡張アプリケーション配布サービス400、クラウドプリントサービス500が接続されている。
プリンタードライバー配布サービス300は、Webベースでプリンタードライバーをクライアントコンピューター100に配布するサービスを実行する1または複数台の情報処理装置で構成されるサーバシステムである。クライアントコンピューター100は、プリンター200をWSD(Web Services for Devices)やIPP(Internet Printing Protocol)などのプロトコルで探索する。クライアントコンピューター100は発見したプリンター200のプリンター識別情報や機種情報に基づき特定されるプリンタードライバーをプリンタードライバー配布サービス300から取得し、インストールする。プリンタードライバー配布サービス300に登録されているプリンタードライバーはプリンターベンダーによって更新される。クライアントコンピューター100は、バージョンの新しいプリンタードライバーを自動または手動でプリンタードライバー配布サービス300から取得し、インストールされているプリンタードライバーを更新する。
印刷拡張アプリケーション配布サービス400は、クライアントコンピューター100で実行されるアプリケーションを配布するサービスを実行する1または複数台の情報処理装置で構成されるサーバシステムである。印刷拡張アプリケーションとは、クラウドプリントサービスやOSが提供する印刷機能を拡張するためのアプリケーションである。クラウドプリントサービスやOSが提供する印刷機能ではいずれのベンダーのプリンターでも使用することのできる標準的な機能、たとえば、カラーモードや両面印刷等しか印刷設定を行うことができない。印刷拡張アプリケーションを利用することで、クラウドプリントサービスやOSの提供する印刷機能では設定することのできない印刷機能、例えば針なしステープルやポスター印刷、中綴じ製本などの機能を利用することができるようになる。
クライアントコンピューター100は、印刷拡張アプリケーションのインストールを要求するユーザー操作を受け付けた場合、印刷拡張アプリケーション配布サービス400にアクセスし、印刷拡張アプリケーションをインストールする。また、クライアントコンピューター100にインストールされたプリンタードライバーのInf(Information)ファイルにアプリケーション識別子が記述されている場合、印刷拡張アプリケーションのインストールが行われる。アプリケーション識別子は印刷拡張アプリケーション配布サービス400に登録されているアプリケーションのうち、クラウドプリントサービス500に登録されたプリンターに対応するアプリケーションを特定するためのアプリケーション識別情報である。クライアントコンピューター100は、印刷拡張アプリケーション配布サービス400にアクセスし、Infファイルに記述された識別子に対応する印刷拡張アプリケーションをインストールする。
クラウドプリントサービス500は、1台または複数台の情報処理装置からなるサーバシステムであるクラウド上に構築されるサービスである。本実施形態において、クラウドプリントサービス500は其々のイントラネットに対して接続が可能であり、インターネットを通じてクライアントコンピューター100およびプリンター200やプリンター201、プリンター202との接続が可能である。クラウドプリントサービス500は、ユーザーIDとPASSWORDを利用したアカウント管理がなされており、クライアントコンピューター100はユーザーが入力したアカウント情報を利用してクラウドプリントサービス500にアクセスする。
なお、本実施形態において、クライアントコンピューター100はクラウドプリントサービス500、印刷拡張アプリケーション配布サービス400のURLをあらかじめ記憶しているものとする。また、クラウドプリントサービス500は、プリンタードライバー配布サービス300のURLをあらかじめ記憶しているものとする。
図3Aは、プリンタードライバー配布サービス300の機能ブロックの一例を示した図である。プリンタードライバー配布サービス300は、図1に示す情報処理装置と同様の構成の1または複数台の情報処理装置で構成されるサーバシステムである。プリンタードライバー登録部301、プリンタードライバー応答部302は、プリンタードライバー配布サービス300を構成する情報処理装置のCPUがプログラムを実行することで実現される。
プリンタードライバー配布サービス300は、インターネットを通じたクラウド上に存在するサービスであり、外部サービスやクライアントコンピューター100にプリンタードライバーに関するパッケージの配布を可能とする。プリンタードライバーに関するパッケージとは、たとえば、プリンタードライバーやドライバー拡張パッケージなどである。
プリンタードライバー登録部301は、外部サービス及びクライアントコンピューター100からプリンタードライバーに関するパッケージの登録指示があった際に、アップロードされたパッケージをプリンタードライバーデータベース310に登録する。プリンタードライバー登録部301は、たとえば、プリンターベンダー等が配布するプリンタードライバーや、プリンタードライバーを拡張するためのドライバー拡張パッケージをプリンタードライバーデータベース310に登録する。
プリンタードライバー応答部302は、外部サービスやクライアントコンピューター100からプリンタードライバーや拡張パッケージに関する取得要求があった場合に、プリンタードライバーデータベース310から該当するパッケージを取得し、応答する。例えば、クライアントコンピューター100から、印刷キューが生成されたプリンター200に対応するプリンタードライバーの要求を受信したとする。プリンタードライバー応答部302は、プリンタードライバーデータベース310からプリンター200に対応するプリンタードライバーを読み出して、クライアントコンピューター100に送信する。プリンタードライバー応答部302は、クライアントコンピューター100から、インストールされているプリンタードライバーを拡張するためのドライバー拡張パッケージの取得要求を受信することもできる。その場合、プリンタードライバー応答部302は、プリンタードライバーデータベース310から要求されたプリンタードライバーに対応するドライバー拡張パッケージを読み出して、クライアントコンピューター100に送信する。
プリンタードライバーデータベース310には図5Bで後述するデータベースが記憶されている。プリンタードライバーデータベース310には様々なプリンターに対応するプリンタードライバーに加え、ドライバー拡張パッケージ303も記憶されている。
ドライバー拡張パッケージ303は、プリンタードライバー配布サービス300から配布されるパッケージの一例である。ドライバー拡張パッケージ303は、ドライバー情報部304とデバイス能力情報部305を持つ。ドライバー情報部304は、プリンターを識別するためのHWID、COID(Compatible ID)、当該パッケージがドライバー拡張パッケージであることを示す情報や、ドライバー拡張パッケージ303のバージョンなどの情報を持つ。デバイス能力情報部305は、対応するプリンター200のデバイス能力情報や禁則情報を持つ。デバイスの能力情報とは、たとえば、プリンター200がカラー印刷に対応しているか、両面印刷に対応しているか等の情報である。ドライバー拡張パッケージ303に含まれる能力情報は、上記の能力情報に加え、ベンダー特有の針なし綴じが可能か否か、中綴じ製本が可能であるか否か、複数種類の用紙を使って印刷する用紙混在印刷か可能であるか否かを含む。
図3Bは、印刷拡張アプリケーション配布サービス400の機能ブロックの一例を表した図である。アプリケーション登録部401、アプリケーション応答部402は、印刷拡張アプリケーション配布サービス400を構成する1または複数台の情報処理装置のCPUがプログラムを実行することで実現される。
印刷拡張アプリケーション配布サービス400は、インターネットを通じたクラウド上に存在するサービスであり、外部サービスやクライアントコンピューター100に印刷拡張アプリケーションの配布を可能とする。尚、印刷拡張アプリケーション配布サービス400は、印刷拡張アプリケーション1052に限らず、他のアプリケーションの配布が可能であっても構わない。
アプリケーション登録部401は、外部サービス及びクライアントコンピューター100から印刷拡張アプリケーション1052の登録指示があった際に、アップロードされたアプリケーションをアプリケーションデータベース410に登録する。
アプリケーション応答部402は、外部サービスやクライアントコンピューター100から印刷拡張アプリケーション1052の取得要求があった場合にアプリケーションデータベース410から該当するアプリケーションを取得し、要求元に送信する。
アプリケーションデータベース410は、ベンダー等が配布し、外部サービスやクライアントコンピューター100から登録要求を受信した印刷設定アプリケーションの情報が登録されるデータベースである。アプリケーションデータベース410に登録される情報の詳細は図5Cを用いて後述する。
本実施例における印刷拡張アプリケーション1052は、設定ファイル部10521と実行ファイル部10522を持つ。設定ファイル部10521は、印刷拡張アプリケーション1052を識別するためのアプリケーション識別情報や、対応するプリンター200を識別するためのHWIDやCOIDなどの情報を持つ。実行ファイル部10522は、印刷拡張アプリケーション1052の実行ファイル部である。実行ファイル部10522は印刷設定UI(User Interface)や印刷実行時に印刷ジョブに対する処理、外部サービスからのプッシュ通知を受け取って、印刷設定画面を表示することが可能である。本実施形態において、印刷拡張アプリケーションの実行ファイル部10522は、印刷データからPDL(Page Description Language)データを生成するモジュールを含んでいる。実行ファイル部10522は印刷拡張アプリケーションが提供する印刷設定画面で設定された印刷設定を反映したPDLデータを生成する。そして、生成したPDLデータをクラウドプリントサービス500に送信する。
印刷拡張アプリケーションでPDLデータを生成することで、クラウドプリントサービスが解釈することのできないIPP等の標準から外れた項目について印刷設定がなされていても、当該印刷設定を反映した印刷データを生成することができる。
図3Cは、本発明の実施形態を示すクラウドプリントサービス500の機能ブロック図である。それぞれの機能ブロックは、クラウドプリントサービス500を構成する1または複数台の情報処理装置のCPUがプログラムを実行することで実現される。
クラウドプリントサービス500は、インターネットを通じたクラウド上に存在するサービスであり、印刷に関連する機能を提供可能とする。本実施形態では、プリンター登録部501、印刷キュー生成部502、プリンターリスト生成部503、探索応答部504、プリンターデータベース510の機能を持つ。さらに、印刷ジョブ管理部505、印刷ジョブ生成部506、印刷ジョブ保存領域511の機能を持つ。また、これらの機能がクラウドプリントサービス500と連携する別のクラウドプリントサービスにあっても構わない。
以下、プリンター200をクラウドプリントサービス500に登録し、プリンター200を用いて印刷を行う場合を例に記載しているが、クラウドプリントサービス500と接続可能なプリンター201やプリンター202でも同様の処理で実現可能である。
プリンター登録部501は、プリンター200からプリンターの登録指示があった場合、印刷キュー生成部502を利用して印刷キューを生成させ、生成された印刷キューをプリンターデータベース510にプリンター識別情報と紐づけて登録する。このようにプリンターの印刷キューとプリンター識別情報とが紐づけて登録されていることを、プリンターが登録されていると記載する。ここで登録されたプリンターに対して、様々な属性が付加される場合がある。様々な属性とは、例えば、プリンターの所在地が該当する。
印刷キュー生成部502は、プリンター登録部501の制御に従い、クラウドプリントサービス500上の印刷キューを生成する。クライアントコンピューター100がクラウドプリントサービス500に印刷指示を送信すると、印刷キュー生成部502が生成した印刷キューに印刷ジョブが登録される。
プリンターリスト生成部503は、登録されたプリンターのリストを生成する。クライアントコンピューター100からクラウドプリントサービス500に登録されているプリンターのリストを要求された場合等にプリンターのリストを生成する。
探索応答部504は、クライアントコンピューター100からのクラウドプリントサービス500に対してプリンター探索に基づき、登録されているプリンターの情報をクライアントコンピューター100に応答する。探索応答部504は、探索結果をプリンターリスト生成部503に渡し、プリンターリストを生成させる。そして、プリンターリスト生成部503が生成したプリンターリストをクライアントコンピューター100に返す。
印刷ジョブ管理部505は、クライアントコンピューター100から画像データと印刷設定を受信したり、印刷ジョブ生成部506が生成した印刷ジョブをプリンター200に送信する。また、印刷ジョブ管理部505は、印刷ジョブ生成部506が生成した印刷ジョブを印刷ジョブ保存領域511に保存する。
プリンターデータベース510は、クラウドプリントサービス500に登録されているプリンターの情報を記憶するデータベースである。プリンターデータベース510に記憶される内容は、図5Aで後述する。
はじめに、プリンター200をクラウドプリントサービス500に登録する処理について説明する。
図4は、本発明の実施形態を示すプリンター200をクラウドプリントサービス500に登録する処理のシーケンス図である。本実施形態では、クライアントコンピューター100からプリンター200にアクセスし、プリンター200を操作することでクラウドプリントサービス500にプリンター200の登録要求を送信する。
プリンター200はクラウドプリント機能(クラウドプリントサービスから印刷ジョブを受信して印刷する機能)と、クライアントコンピューター100からプリンター200を操作するためのWebUI機能をサポートしている。WebUI機能とは、UIを生成してネットワーク上に公開する機能である。クライアントコンピューター100はクラウドプリントクライアント機能(クラウドプリントサービスにファイルを送信する機能)と、WebUIを操作するためのWebUIクライアント(例えば、Webブラウザー)をサポートしている。また、クラウドプリントサービス500はインターネット上のクラウドプリントサービスを表す。
ユーザーはまずクライアントコンピューター100のWebUIクライアントを利用して、プリンター200のWebUIを開き、当該WebUI上で、クラウドプリントサービスにプリンターを登録するためのボタンを選択する。当該選択がされると、S410において、クライアントコンピューター100は、クラウドプリントサービスへの登録要求をプリンター200に送信する。
S411において、プリンター200は、S410においてクラウドプリントサービスへの登録要求を受信すると、クラウドプリントサービス500にクラウドプリントサービスへの登録要求を送信する。このように、本実施形態では、クライアントコンピューター100のWebUIクライアントからクラウドプリントサービス500へのプリンター200の登録要求を送信している。プリンター200に付随した入力装置、例えばパネルから操作することで本要求を送信可能としてもよい。このとき、クライアントコンピューター100から要求を行わず、プリンター200がクラウドプリントサービス500にプリンターの登録要求を送信する。
S411において、クラウドプリントサービス500に送信されるクラウドプリントサービス登録要求には、プリンター200の情報が付随している。プリンター200の情報には、プリンター200の名称、プリンターの機種を識別する情報(HWID)、インクジェットプリンターやレーザープリンターなどのプリンターの種別を識別するためのCOIDが含まれる。さらに、プリンターの情報には、IPアドレス情報やIPPなどで標準化されている機能に関する能力情報ファイルが含まれる。
クラウドプリントサービス500は、S411において登録要求を受信すると、S412において、印刷キュー生成部502に、プリンター200に印刷ジョブを送信するための印刷キューを作成させる。プリンター登録部501は、プリンターデータベース510にプリンターの情報と能力情報を登録し、登録要求がなされたプリンターのレコードを生成する。さらに印刷キュー生成部502が印刷キューの生成を行う。この印刷キューは、受信したプリンター200の情報である、プリンターの名称(デバイス名)、プリンターの機種を識別するHWID、COIDや、プリンターのIPアドレスを利用して作成される。
次に、S413にて、クラウドプリントサービス500は、プリンタードライバー配布サービス300にドライバー拡張パッケージ303のダウンロード要求を送信する。これは、クラウドプリントサービス500に登録されたプリンターに対応するドライバー拡張パッケージ303を受信するための要求である。クラウドプリントサービス500は、ドライバー拡張パッケージ303ダウンロード要求とプリンター200のHWID、COIDをプリンタードライバー配布サービス300に送信する。
S414にて、プリンタードライバー配布サービス300は、受信したHWID及びCOIDに基づき、該当するドライバー拡張パッケージ303をクラウドプリントサービス500に送信する。プリンタードライバー配布サービス300は、プリンタードライバーデータベース310から、拡張フラグがTRUEのパッケージであって、受信したHWIDに一致するドライバー拡張パッケージを図5Bで示すプリンタードライバーデータベースから特定する。拡張フラグがTRUEであるが、受信したHWIDに一致するドライバー拡張パッケージが特定されない場合、プリンタードライバー配布サービス300は拡張フラグがTRUEであって、受信したCOIDに一致するドライバー拡張パッケージを特定する。そして、プリンタードライバー配布サービス300は、クラウドプリントサービス500に特定されたプリンター拡張パッケージを送信する。なお、HWIDのみでドライバー拡張パッケージが特定可能である場合、S413において、HWIDのみをプリンタードライバー配布サービス300に送信するとしてもよい。
ここで、図5Bを用いてプリンターデータベースについて説明する。図5Bは、プリンタードライバー配布サービス300が保持するプリンタードライバーデータベース310の一例である。パッケージ名は、登録時にドライバー情報部304から取得したパッケージの名称を指す。HWIDはプリンター200の機種を識別する際に用いる識別情報(機種固有の識別情報)を指す。COIDは、当該ドライバーを使用するプリンターのカテゴリーを識別する識別情報である。パッケージは、ドライバー拡張パッケージ303を含むパッケージの名称を指す。パッケージは当該レコードに対応するドライバーまたはドライバー拡張パッケージを特定することのできる情報であればファイルパス等の情報であってもよい。拡張は、ドライバー拡張パッケージ303が拡張ファイルかどうかを示している。拡張が“FALSE”の場合、当該パッケージは拡張パッケージではなくプリンタードライバーである。一方で、拡張が“TRUE”の場合、当該パッケージはプリンタードライバーではなく、ドライバーを拡張するパッケージである。アプリケーション識別子は、当該プリンター拡張パッケージの記憶する能力情報を使って印刷設定画面を拡張する際に使用するアプリケーションの識別情報である。本実施形態では、プリンター拡張パッケージのみがアプリケーション識別子を有しているが、プリンタードライバーがアプリケーション識別子を有していてもよい。
なお、図5Bに示すプリンタードライバーデータベースはプリンタードライバー登録部301によって更新される。プリンタードライバー登録部301は、パッケージをプリンタードライバーデータベース310に登録する際に、ドライバー情報部304を解析する。プリンタードライバー登録部301は、パッケージ名、HWIDやCOID、ドライバー拡張パッケージであるかどうかの情報を取得し、ドライバー拡張パッケージ303と共にプリンタードライバーデータベース310に登録をする。
S415にて、クラウドプリントサービス500は、ダウンロードされたドライバー拡張パッケージ303のデバイス能力情報部305を解析し、印刷キューを拡張する。クラウドプリントサービス500は、ドライバー拡張パッケージ303のデバイス能力情報部305からプリンター200の能力情報を取得する。そして、クラウドプリントサービス500は、プリンターデータベース510のプリンター情報の印刷キューに対応するプリンターの能力情報を更新する。S415において、クラウドプリントサービス500は、印刷キューに対応づけられている能力情報をドライバー拡張パッケージから取得された能力情報で書き換える。なお、クラウドプリントサービス500が、ドライバー拡張パッケージから取得された能力情報のうち、印刷キューに対応づけられていない設定項目に関する能力情報を印刷キューに対応する能力情報に追加するとしてもよい。また、クラウドプリントサービス500が、プリンター200からプリンター200のハードウェア構成を示す情報を取得し、ドライバー拡張パッケージに含まれる能力情報とハードウェア構成情報から能力情報を決定するとしてもよい。また、クラウドプリントサービス500が、プリンター200からプリンター200のハードウェア構成を示す情報を取得し、ドライバー拡張パッケージに含まれる能力情報とハードウェア構成情報から能力情報を決定するとしてもよい。
上記の処理により、クラウドプリントサービス500に登録されたプリンター200に対してベンダー特有のデバイス能力情報で印刷キューが拡張される。そして、S416にて、拡張されたプリンター200の情報でプリンターデータベース510を更新する。上記の処理により、ドライバー拡張パッケージにより拡張された能力情報が印刷キューに対応する能力情報としてプリンターデータベース510に登録される。
図5Aは、クラウドプリントサービス500が保持するプリンターデータベース510の一例である。デバイス名は、登録時にプリンター200から取得したプリンターの名称(デバイス名)を指す。HWIDはプリンター200の機種を識別する際に用いる識別子(機種固有の識別子)を指す。COIDはプリンター200がインクジェットプリンターであるかレーザービームプリンターであるかなどプリンターのカテゴリーを識別するための識別情報である。IPアドレスは、接続先のプリンターのIPアドレスを指す。パッケージは、当該プリンターに対応する印刷キューの拡張に使われるドライバー拡張パッケージ303のパッケージ名を指す。なお、拡張されていない場合には、nullとなる。さらに、不図示であるが、デバイスの能力情報などがJSON(Javascript Object Notation)形式でデータベースに登録される。プリンターの能力情報がドライバー拡張パッケージにより拡張されている場合は、拡張後の能力情報が記憶されている。デバイスの能力情報が記憶される形式は、JSONに限らず他のデータフォーマットであっても構わない。また、図5Aがプリンターの情報と当該プリンターを使用することのできるユーザーの情報を対応づけて記憶するとしてもよい。
図9は、印刷キューに対応づけて記憶される能力情報の一例である。一例として、能力情報は、JSON形式になっており、各設定は機能を表している。また、各機能は配列形式で設定できる選択肢を持つ。
901はIPP等で定義された標準的な能力情報を示している。“Duplex”は、両面機能に関する設定項目であり、当該設定項目の選択肢として両面印刷を表す“Duplex”と片面印刷を表す“One-Sided”を持つことを示している。“Color”は、カラー印刷に関する設定項目であり、選択肢として白黒印刷を示す“Mono”とカラー印刷を示す“Color”を持つことを示している。“Orientation”は印刷に使用する用紙の向きに関する設定項目であり、選択肢として縦長方向を示す“Portrait”と横長方向を示す”Landscape“を持つことを示している。901に記載の能力情報は、プリンター200からクラウドプリントサービス500に提供することのできるIPP等で定義された標準的な設定項目、選択肢である。ドライバー拡張パッケージを用いてデバイスの能力情報を拡張することで、901に記載のIPP等で定義された標準的な設定項目であっても、ベンダー固有の選択肢を持つことができる。たとえば、用紙の綴じに関する設定項目である”Staple“を拡張することで、標準的な選択肢である左上一か所綴じを示す”Staple left top“に加えて、中綴じを示す”Saddle Stitch“を設定することができるようになる。
902は、ドライバー拡張パッケージ303で拡張された能力情報であり、例えばベンダー固有の設定項目に関する能力情報である。機能がExtension_Setting1、Extension_Setting2となっており、その選択肢としてExntension_option1,Extension_option2となっている。Extension settingとしては、たとえば、針なし綴じに関する設定や、複数種類の用紙が一つのジョブに混在する用紙混在に関する設定などがある。用紙混在機能であれば、“Extension_Setting1”に用紙混在を示す文字列が入る。そして、“Exntension_option1”に例えばA3とA4の用紙を使用することを示す選択肢を示す文字列、“Exntension_option2”B4とB5の用紙を使用することを示す選択肢を示す文字列が入る。印刷拡張アプリケーションが図9に示すファイルを参照することで、ベンダー固有の設定項目を設定することのできる印刷設定画面の提供が可能となる。
図4に説明を戻す。S417において、クラウドプリントサービス500は、プリンターデータベース510への登録が完了すると、クラウドプリント登録用の登録URLを含むクラウドプリントサービス登録要求応答および登録URL提示要求をプリンター200に送信する。
S418において、プリンター200は、クラウドプリントサービス登録要求応答および登録URL提示要求を受信し、プリンター200は登録URL情報を出力する。S418において、プリンター200はモニター110にURLを表示する、もしくは登録URL情報が記載された紙を印刷し、ユーザーに登録URLを通知する。また、プリンター200がクライアントコンピューター100に対して、WebUI経由で登録URLを通知してもよい。
S419において、ユーザーは、プリンター200から提示された登録URLに位置するクラウドプリントサービス500にアクセスする。その際は、クラウドプリントサービス500にアクセス可能なクラウドアカウントにログインしている必要があるため、ユーザーIDとPASSWORDの入力が必要である。
クラウドプリントサービス500は、クラウドアカウントとプリンター情報を含む登録URLから、ユーザーとプリンター200を紐づける。紐づける方法として、例えば、プリンター情報とユーザートークンを紐づける方法がある。ただし、その方法に限定はしない。そして、S420にて、クラウドプリントサービス500は、クラウドプリントサービス500の情報を含めたユーザートークンをプリンター200に送信し、プリンター200のクラウドプリントサービス500への登録処理を終了する。プリンター200は、以降当該ユーザートークンを用いてクラウドプリントサービス500にアクセスする。
次に、クラウドプリントサービス500に登録されたプリンター200の印刷キューをクライアントコンピューター100に生成し、印刷拡張アプリケーションをインストールするときの処理を説明する。
図6は、本発明の実施形態を示すクライアントコンピューター100に印刷拡張アプリケーション1052をインストールする処理のシーケンス図である。
クライアントコンピューター100では、クラウドプリントを利用してプリンター200に出力する場合、クラウドプリントサービス500に対して印刷ジョブを送信する。そのため、クライアントコンピューター100に、クラウドプリントサービス500に対して印刷ジョブを送信する印刷キューを生成する必要がある。
本実施形態では、オペレーティングシステム1053が標準機能としてもつプリンター探索機能を利用して、クラウドプリントサービス500に登録されたプリンターの印刷キューを生成する。通常、プリンター探索を行う場合、同一イントラネット上にあるプリンターが対象となる。例えば、図2においてクライアントコンピューター100がプリンター探索を行うとプリンター200を見つけることはできるが、イントラネットを超えたプリンター201、プリンター202を見つけることはできない。本実施形態では、クライアントコンピューター100はクラウドプリントサービス500へのアクセスが可能である。クラウドプリントサービス500にプリンターが登録されている場合にはプリンター探索で、クラウドプリントサービス500に登録されているプリンターを見つけることができる。本実施形態では、前述したプリンター200に加え、プリンター201、プリンター202がクラウドプリントサービス500に登録されており、OSのプリンター探索機能でこれらのプリンターも見つけることができる。
クライアントコンピューター100は、前述したオペレーティングシステム1053の標準機能であるプリンター探索を行う(S610)。S610において、クライアントコンピューター100は、クライアントコンピューター100と同じイントラネット上にいるプリンターに加えて、クラウドプリントサービス500に登録されているプリンターを探索する。クライアントコンピューター100はクラウドプリントサービスにアクセスし、クラウドプリントサービス上に登録されているプリンター情報のリスト要求をクラウドプリントサービス500に送信する。
クラウドプリントサービス500の探索応答部504は、プリンター探索の情報を受信すると、クライアントコンピューター100に対して利用可能なプリンターを提示する。そのために、クラウドプリントサービス500は、クライアントコンピューター100からクラウドプリントサービス500にアクセスしているユーザーが使用することのできるプリンター情報を含むプリンターリストを生成する(S611)。このプリンター情報は、前述したプリンターの名称(デバイス名)、プリンターの機種を識別するHWID、プリンターのIPアドレスである。プリンター情報を含むプリンターリスト作成は、クラウドプリントサービス500のプリンターリスト生成部503がプリンターデータベース510の情報を利用して作成する。
クラウドプリントサービス500は、クライアントコンピューター100に対して、作成したプリンターリストを返答する(S612)。この際、クラウドプリントサービス500はプリンターリストに含まれるプリンター情報として図5に記載されているプリンター識別情報であるHWID、COID等の情報も付随して送信する。クライアントコンピューター100は、プリンターリストに基づきユーザーが利用可能なプリンターの選択画面をモニター110に表示させる。ユーザーは、提示されたプリンター一覧から使用したいプリンターを選択する。
クライアントコンピューター100のオペレーティングシステム1053が、クラウドプリントサービス500で利用されるクラウドドライバー1050をインストールし、選択されたプリンターの印刷キュー生成を行う(S613)。クライアントコンピューター100は、クラウドプリントサービス500からユーザーにより選択されたプリンターの情報を取得し、当該情報を使って印刷キューを生成する。クライアントコンピューター100は、クラウドプリントサービス500から取得したHWID、COID、IPアドレス、プリンターの能力情報に基づき印刷キューを生成する。なお、すでにクライアントコンピューター100にクラウドドライバー1050がインストールされている場合、クライアントコンピューター100はクラウドドライバー1050のインストールを行わない。クライアントコンピューター100はすでにインストールされているクラウドドライバー1050とクラウドプリントサービス500から取得したプリンターの情報を用いて、印刷キューを生成する。
クライアントコンピューター100のオペレーティングシステム1053は、印刷キューの生成に成功すると、プリンタードライバー配布サービス300に、ドライバー拡張パッケージ303のダウンロード要求を行う(S614)。クライアントコンピューター100は、クラウドプリントサービス500にHWID、COIDとドライバー拡張パッケージの取得要求を送信する。なお、クライアントコンピューター100は、HWIDとCOIDのいずれかのみをクラウドプリントサービス500に送信するとしてもよい。
プリンタードライバー配布サービス300は、ダウンロード要求を受信すると、クライアントコンピューター100に対してダウンロード処理を行う(S615)。プリンタードライバー配布サービス300は、プリンタードライバーデータベース310に登録されているドライバー拡張パッケージから受信したHWIDに一致するパッケージを特定し、クライアントコンピューター100に送信する。ドライバー拡張パッケージのうち受信したHWIDに一致するパッケージがない場合、プリンタードライバー配布サービス300は、受信したCOIDに一致するドライバー拡張パッケージを特定する。そして、プリンタードライバー配布サービス300は、特定したプリンター拡張パッケージをクライアントコンピューター100に送信する。
クライアントコンピューター100のオペレーティングシステム1053は、ドライバー拡張パッケージ303のインストールを行い、前述のクラウドドライバー1050を基に生成された印刷キューの能力情報の拡張を行う(S616)。クライアントコンピューターは、印刷キューに対応する能力情報をプリンター拡張パッケージのデバイス能力情報で更新する。即ち、クラウドプリントサービス500に登録されたプリンター200に対してベンダー特有のデバイス能力で印刷キューを拡張する。
次に、クライアントコンピューター100は、印刷拡張アプリケーション配布サービス400に対して、ダウンロード要求を送信する(S617)。その際、オペレーティングシステム1053は、前述の印刷拡張アプリケーション1052の識別子情報を基に、対象のプリンターと紐づく印刷拡張アプリケーション1052のダウンロード要求を行う。本実施形態では、印刷拡張アプリケーション配布サービス400において、ドライバー拡張パッケージ303の印刷拡張アプリケーション1052の識別子情報と印刷拡張アプリケーション1052は1対1で紐づいている。
また、印刷拡張アプリケーション配布サービス400において、印刷拡張アプリケーション1052の識別子情報とプリンター情報に含まれるHWIDの紐づけ情報を記載したメタデータを保存しておいてもよい。その場合、そのメタデータを利用して、適切な印刷拡張アプリケーション1052をダウンロードする仕組みとなる。
印刷拡張アプリケーション配布サービス400は、ダウンロード要求を受信すると、クライアントコンピューター100に対してダウンロード処理を行う(S618)。アプリケーション応答部402は、クライアントコンピューター100から通知されたアプリケーション識別子に対応するアプリケーションを図5Cに示すアプリケーションデータベース410から特定する。アプリケーション応答部402は特定した印刷拡張アプリケーションをクライントコンピューターに送信する。クライアントコンピューター100は、印刷拡張アプリケーション1052のインストールを行う(S619)。
図5Cは、印刷拡張アプリケーション配布サービス400が保持するアプリケーションデータベース410の一例である。アプリケーション名は、印刷拡張アプリケーション1052を含む当該データベースに東独されたアプリケーションの名称である。アプリケーション識別子は、印刷拡張アプリケーション1052を含むアプリケーションを識別するための情報である。アプリパッケージは、印刷拡張アプリケーション1052を含むアプリケーションの記憶されたファイルパスである。アプリパッケージは登録されている印刷拡張アプリケーションのパッケージを特定することのできる情報であれば、アプリケーションの記憶されたフォルダ名等であってもよい。
アプリケーションデータベース410は、アプリケーション登録部401により更新される。アプリケーション登録部401は、設定ファイル部10521を解析し、アプリケーション名とアプリケーション識別子を取得する。アプリケーション登録部401は、印刷拡張アプリケーション1052と共にアプリケーションデータベース410に上記の情報を登録する。
インストール後、クライアントコンピューター100において印刷拡張アプリケーション1052は、プリンター200と1対1で紐づいている。従って、プリンター200において、プリンター200の機種情報や印刷設定情報を保持していることにより、ユーザーに対して適切な印刷設定UIを提示することが可能となる。もしくは、印刷拡張アプリケーション1052が、クラウドプリントサービス500と通信し、対象の機種情報や印刷設定情報を取得し、その情報を用いてUIを提供してもよい。ユーザーは、印刷拡張アプリケーション1052のインストールが完了すると、詳細な印刷設定変更が利用可能となる。
なお、本実施形態では、クライアントコンピューター100に印刷キューを生成した後、クライアントコンピューターがプリンタードライバー配布サービスにアクセスし、ドライバー拡張パッケージを取得した。クライアントコンピューター100がクラウドプリントサービス500から拡張後の印刷キューの情報を取得し、クライアントコンピューター上での印刷キューの拡張を行わないとしてもよい。この場合、クライアントコンピューター100はS614~S616を省略する。また、クライアントコンピューター100がクラウドプリントサービス500から拡張後の印刷キューの情報を取得したうえで、S614~S616に記載の処理を実行するとしてもよい。
次に本実施形態において、クライアントコンピューター100で印刷を実行する場合の操作について説明する。
図8Aは、クライアントコンピューター100にOS1503が表示する印刷コモンダイアログの一例を示す図である。領域801はクラウドプリントサービス500に登録されたプリンターのプリンターキューであって、印刷に用いられる印刷キューを選択する領域である。ユーザーが印刷コモンダイアログの領域801を選択すると、クラウドプリントサービス500に登録されている印刷キューのリストが表示される。ユーザーは表示された印刷キューから印刷に使用する印刷キューを選択する。
詳細設定ボタン800は、印刷拡張アプリケーション1052を起動させるためのボタンである。ユーザーが詳細設定ボタン800を選択すると、図8Bで後述する印刷設定画面が表示される。
“印刷”ボタン802は、ユーザーが印刷開始を指示するためのボタンである。ユーザーが“印刷”ボタン802を選択すると、クライアントコンピューター100は、画像データと現在設定されている印刷設定をクラウドプリントサービス500に送信する。OS1053が表示させる印刷コモンダイアログにて印刷が指示された場合、クラウドドライバー1050は、画像データと印刷設定をクラウドプリントサービス500に送信する。クラウドプリントサービス500の印刷ジョブ生成部506は、クライアントコンピューター100から受信した画像データと印刷設定に基づきPDLデータを生成し、印刷ジョブとして印刷ジョブ保存領域511にジョブを格納する。
図8Bは、図8Aにおいて詳細設定ボタン800が選択された場合に、クライアントコンピューター100に表示される画面である。ユーザーが詳細設定ボタン800を選択すると、OS1053は選択されている印刷キューに対応する印刷拡張アプリケーション1052を特定する。OS1053は特定された印刷拡張アプリケーション1052を起動する。起動された印刷拡張アプリケーション1052は、図8Bに示す印刷設定画面を表示する。
領域803は、印刷設定が表示される領域である。領域803にはIPP等で標準的に定められた用紙向きや印刷部数、カラーモードに加え、製本印刷の設定や1つのジョブに複数の用紙サイズの用紙を使用する用紙混在の設定等、ベンダー固有の設定項目を設定することができる。
804は、拡張設定であり、ドライバー拡張パッケージ303で拡張された能力情報によって、生成された操作部である。805は、表示されている画面を切り替え、設定する項目を変更するための領域である。
“OK”ボタン806は、図8Bに示す印刷設定画面で設定された印刷設定を確定し、図8Aに示す印刷コモンダイアログに戻るためのボタンである。“OK”ボタンが選択されると、図8Bに示す印刷設定画面で設定された印刷設定がOS1053に渡される。
“印刷”ボタン807は、印刷拡張アプリケーション1052が、クラウドプリントサービス500に印刷指示をするためのボタンである。“印刷”ボタン807が選択された場合、印刷拡張アプリケーション1052は、印刷拡張アプリケーション1052の実行ファイル部10522を実行し、設定されている印刷設定を反映したPDLデータを生成する。そして、印刷拡張アプリケーション1052は、生成したPDLデータと印刷設定をクラウドプリントサービス500に送信する。印刷拡張アプリケーション1052にてPDLデータが生成されている場合、クラウドプリントサービス500はPDLデータの生成を行わずにPDLデータと印刷設定を印刷装置に送信する。
上記のように、第1の実施形態では、印刷拡張アプリケーションにてPDLデータを生成する。このようにすることで、印刷拡張アプリケーション1052による設定を反映したPDLデータをクラウドプリントサービス500が生成しなくても、印刷拡張アプリケーション1052による設定を反映したPDLデータを印刷装置に送信することができる。
図11を用いて、本実施形態において図8Aに示す印刷コモンダイアログからクラウドプリントサービス500に印刷を指示するときの処理を説明する。図11はOS1053がコモンダイアログを表示させた後に開始される。
OS1053は詳細設定ボタン800の選択を受け付ける(S1301)。OS1053は、印刷コモンダイアログで選択されている印刷キューに対応する印刷拡張アプリケーションを起動する(S1302)。印刷拡張アプリケーション1052は図8Bに示す印刷設定画面を表示する(S1303)。印刷拡張アプリケーション1052はユーザーから印刷設定の変更を受け付ける。印刷拡張アプリケーション1052は、“OK”ボタン805の選択を受け付ける(S1304)。ユーザーが“OK”ボタン805を選択した場合、印刷拡張アプリケーション1052は、OS1053に設定されている印刷設定を送信する(S1305)。OS1053は、印刷拡張アプリケーション1052から印刷設定を受信して、印刷コモンダイアログを表示する。ユーザーが印刷コモンダイアログの“印刷”ボタン802を選択する(S1306)。OS1053は印刷拡張アプリケーション1052から受信した印刷設定と印刷される画像データを印刷データとしてクラウドプリントサービス500に送信する(S1307)。
クラウドプリントサービス500は、クライアントコンピューター100のOS1053から画像データと印刷設定を受信し、受信した画像データと印刷設定に基づきPDLデータを生成する(S1308)。なお、ここではクラウドプリントサービス500が対応することのできる印刷設定のみが反映されたPDLデータが生成される。クラウドプリントサービス500は生成したPDLデータを印刷データとする印刷ジョブを印刷ジョブ保存領域511に保存する(S1309)。
上記のように、クラウドプリントサービス500でPDLデータを生成する場合、クラウドプリントサービス500が対応することのできる印刷設定しか、PDLデータに反映することができない。クラウドプリントサービス500が対応できる印刷設定とは、たとえばカラー、モノクロ印刷に関する設定や、両面印刷に関する設定などである。S1307で送信された印刷設定のうち、クラウドプリントサービス500が対応することのできない印刷設定についてはPDLデータに反映されず、プリンターによる出力にも反映されなくなってしまう。そこで、本実施形態では、印刷拡張アプリケーションを用いて印刷設定がなされた場合、図12のように印刷拡張アプリケーション1052で印刷を指示し、印刷拡張アプリケーションでPDLデータの生成を行う。このようにすることで、印刷拡張アプリケーションでクラウドプリントサービスが対応することのできない印刷設定が設定された場合であっても、当該印刷設定が反映されたPDLデータを用いて印刷をすることができる。本実施例において、クラウドプリントサービスが対応することができない印刷設定とは、例えば、複数ページを1枚の用紙に印刷する集約設定や、印刷時に記録材を節約するモードの設定、製本やスタンプの設定などである。
クライアントコンピューター100のオペレーティングシステム1053は、ユーザーから詳細設定ボタン800の選択を受け付ける(S1010)。OS1053は、選択されている印刷キューに対応する印刷拡張アプリケーション1052を起動する(S1011)。
印刷拡張アプリケーション1052は、ユーザーから設定変更を受け付け、“印刷”ボタン807の選択を受け付ける(S1012)。印刷拡張アプリケーション1052は、OS1053に対して、印刷する印刷データの取得要求を送信する(S1013)。そして、オペレーティングシステム1053は、画像データを印刷データとして印刷拡張アプリケーション1052に送信する(S1014)。印刷拡張アプリケーション1052は、印刷データとして受信された画像データと印刷設定をベンダー独自のPDLデータに変換する(S1015)。印刷拡張アプリケーション1052により生成されるPDLデータは、プリンター200が解析可能なデータ形式であり、プリンター200が搭載するすべての機能が実現可能な印刷コマンドを有しているものである。そのため、上記した印刷設定UIで変更した様々な機能を印刷コマンドに変換してPDLデータとして生成することができる。
そして、印刷拡張アプリケーション1052は、変換したPDLデータを印刷データとしてクラウドプリントサービス500に送信する(S1016)。なお、印刷拡張アプリケーション1052は、PDLデータとともに印刷設定を印刷データとしてクラウドプリントサービス500に送信するとしてもよい。また、印刷拡張アプリケーション1052は所定のAPI(Application Programming Interface)を使ってPDLデータをクラウドプリントサービス500に送信する。
クラウドプリントサービス500は、印刷拡張アプリケーション1052からPDLデータを含む印刷データを受信し、受信したPDLデータを含む印刷データを印刷ジョブとして印刷ジョブ管理部505が印刷ジョブ保存領域511に登録する(S1017)。
クラウドプリントサービス500が印刷拡張アプリケーション1052の生成したPDLデータを受信した場合、クラウドプリントサービス500の印刷ジョブ生成部506は動作しない。印刷ジョブ生成部506の処理は、プリンター200が解析できない形式のデータがクラウドプリントサービス500に送信された際、適切な形に変換する処理である。そのため、本実施形態のように、印刷拡張アプリケーションが生成したPDLデータを印刷ジョブの形式に変換しているものに対して追加の変換処理を行う必要はない。クラウドプリントサービス500は印刷拡張アプリケーション1052から受信した所定のAPIに基づき、受信したPDLデータに対してデータの変換を行わないよう制御する。
なお、クラウドプリントサービス500が印刷拡張アプリケーション1052から受信したデータや印刷設定を解析し、受信した印刷データをPDLデータに変換する処理を行うか否かを判定するとしてもよい。たとえば、印刷データの送信元が印刷拡張アプリケーションである場合、クラウドプリントサービス500が受信した印刷データをPDLデータに変換する処理を行わないとしてもよい。一方で、印刷データの送信元がOS1053である場合、受信した印刷データをPDLデータに変換する処理を行うとしてもよい。
よってクラウドプリントサービス500には、受信したデータを変換すべきかどうかを判断する処理を有している。また、印刷拡張アプリケーション1052が、クラウドプリントサービス500に対してジョブ変換処理を行わないように指示しても良い。本実施形態により、プリンター200が搭載する機能を実現可能とするPDLデータをクラウドプリントサービス500が管理することができる。
なお、本実施形態では、OS1053が提供する印刷コモンダイアログ、印刷拡張アプリケーション1052が提供する印刷設定画面の両方の画面からクラウドプリントサービス500を用いた印刷開始指示をすることができるとした。そして、印刷コモンダイアログから印刷を指示するか、印刷拡張アプリケーションから印刷を指示するかによって、クラウトプリントサービスでPDLデータを生成するか、印刷拡張アプリケーションにおいてPDLデータを生成するかを切り替えた。
OS1053が提供する印刷コモンダイアログの“印刷”ボタン802を選択すると、自動的に印刷拡張アプリケーション1052が起動し、画像データが印刷拡張アプリケーション1052に渡され、図8Bに示す印刷設定画面が表示されるとしてもよい。ユーザーは必要に応じて図8Bに示す印刷設定画面で印刷の詳細設定を行う。ユーザーが“印刷”ボタン807を選択すると、印刷拡張アプリケーション1052が取得した画像データと印刷設定に基づきPDLデータを生成し、生成したPDLデータと印刷設定をクラウドプリントサービス500に送信する。このとき、印刷拡張アプリケーション1052は所定のAPIを使用し、クラウドプリントサービス500がPDLデータの生成をしないよう制御する。なお、上記の変形例の場合には、図8Aの詳細設定ボタン800および図8Bの“OK”ボタン805はなくてもよいものとする。また、図8Aに示す印刷コモンダイアログには“印刷”ボタン802がなく、必ずユーザーが“詳細設定”ボタン800を選択し、印刷拡張アプリケーションを起動してから、印刷拡張アプリケーションにおいて印刷を指示するとしてもよい。この場合は、印刷設定の内容によらず、印刷拡張アプリケーションにてPDLデータが生成される。
次に、プリンター200からクラウドプリントサービス500に登録された印刷ジョブを印刷する処理について説明する。
ユーザーがプリンター200にログインすると、プリンター200はクラウドプリントサービス500の印刷キューに登録された印刷ジョブの書誌情報の取得要求をクラウドプリントサービス500に送信する。ここで取得される書誌情報とは、画像データのファイル名はカラーモード印刷部数、印刷ジョブの生成日時など、プリンター200のUI表示に必要な情報である。
クラウドプリントサービス500は、印刷キューに記憶された印刷ジョブの書誌情報から印刷可能ジョブリストを生成する。そして、クラウドプリントサービス500は、プリンター200に生成した印刷可能ジョブリストを送信する。クラウドプリントサービス500が送付した印刷可能ジョブリストをプリンター200が受信すると、その印刷ジョブのリストが操作パネルに表示される。図7は、クラウドプリントサービス500から受信した印刷可能ジョブリストを表示した操作パネルの一例である。“aaa.doc”~”jjj.pdf”はクラウドプリントサービスにある印刷ジョブである。ユーザーはその操作パネルから所望する印刷ジョブを選択しプリントボタン701を押下して印刷を実行する。印刷実行を受け付けたプリンター200は、クラウドプリントサービス500に対して印刷ジョブの取得要求を行う。なお、この取得要求には、取得したい印刷ジョブのID、即ち、印刷ジョブIDが含まれている。以下、図10に示す処理を実行することで印刷が実現される。
図10は、本実施形態を示すクラウドプリントサービス500にプリンター200から印刷ジョブの取得要求を受信した場合に、クラウドプリントサービス500が行う処理のフローチャート図である。特に明記しない場合、本処理はクラウドプリントサービス500の各処理部で行われる。まず、印刷ジョブ管理部505は、プリンター200から印刷ジョブ取得要求(出力対象の印刷ジョブの印刷ジョブIDを含む)を受信する(S1001)。
要求を受信した印刷ジョブ管理部505は、指定された印刷ジョブを印刷ジョブ保存領域511から特定する。印刷ジョブ管理部505は、特定された印刷ジョブを印刷ジョブ生成部506に渡し、出力先のプリンター200に適した印刷ジョブを生成する(S1002)。
印刷ジョブ管理部505は生成された印刷ジョブを印刷ジョブ生成部506から取得し、印刷要求元のプリンター200に印刷ジョブを送信する(S1003)。
本実施例では、ユーザーがプリンター200を操作し、選択した印刷ジョブをプリンター200がクラウドプリントサービス500から取得するとした。プリンター200が定期的にクラウドプリントサービス500にアクセスし、プリンター200の印刷キューと紐づいて管理される印刷ジョブをクラウドプリントサービス500から取得するとしてもよい。
以上の処理により、クラウドプリントサービス500に登録された印刷ジョブが実行される。
以上の構成により、クライアントコンピューター100において、クラウドプリントサービス500が対応することのできない印刷設定がなされても、当該印刷設定を反映した印刷データを印刷装置に送信することができる。
<第2の実施形態>
第1の実施形態では、クライアントコンピューター100の印刷拡張アプリケーション1052で印刷データを印刷装置に対応する印刷データに変換するとした。オペレーティングシステム1053の仕様上、印刷拡張アプリケーション1052がインストールできない環境の場合には実現することができないことが考えられる。第2の実施形態では、印刷拡張アプリケーション1052が存在しない場合でも、プリンター200が搭載するすべての機能を実現する手段について説明する。
第2の実施形態では、クラウドプリントサービス500がクライアントコンピューター100から印刷データを受信し、外部のサーバシステムにて印刷装置に対応するPDLデータを生成する場合を説明する。第2の実施形態のようにすることで、クライアントコンピューター100や印刷拡張アプリケーション1052が送信先となる印刷装置に則した印刷データの生成を行うことができない場合でも、印刷装置に則した印刷データの生成を行うことができる。
クライアントコンピューターのハードウェア構成は、第1の実施形態と同様であるため説明を省略する。
第2の実施形態におけるネットワーク構成の一例について図14を用いて説明する。図14について第1の実施形態と同様の構成については、第1の実施形態と同様の符号を記載し、異なる構成のみ説明する。
PDL変換サービス600は、プリンター200が解析可能なプリンター200のすべての機能を実現することができる印刷コマンドを有するPDLに変換するサービスのことを指す。PDL変換サービス600は、クラウドプリントサービス500に用意された拡張領域に対して登録するモジュールで実現しても良いし、別のクラウドサービスとして提供され、クラウドプリントサービス500と連携することで実現しても良い。クラウドプリントサービス500に対して、送信先としてPDL変換サービス600を設定しておくことで、クラウドプリントサービス500が印刷データを受信した後にPDL変換サービス600にデータを送信することが可能となる。
第2の実施形態において、プリンター200の登録および各コンポーネントにおける印刷キューの生成、ユーザーの印刷指示手段は実施形態1と同じであるため省略する。以下、ユーザーが印刷指示を行うことでクラウドプリントサービス500に印刷データを送信するところから説明する。
なお、第1の実施形態では、印刷コモンダイアログおよび印刷拡張アプリケーションが提供する印刷設定画面の両方から印刷指示を行えるとした。そして、印刷コモンダイアログで印刷指示がなされた場合は、オペレーションシステムがクラウドプリントサービス500に印刷データを送信した。そして、印刷拡張アプリケーションが提供する画面で印刷指示がなされた場合には印刷拡張アプリケーションが印刷データをクラウドプリントサービス500に送信するとした。第2の実施形態ではいずれの画面で印刷が指示された場合も、OS1053がクラウドプリントサービス500に印刷データを送信するとする。
図13は、第2の実施形態を示すクラウドプリントサービス500に印刷データを送信およびPDL変換サービス600を利用したPDL変換処理のシーケンス図である。
クライアントコンピューター100のオペレーティングシステム1053は、ユーザーから印刷指示を受け付ける(S1110)。OS1053は、クラウドプリントサービス500に画像データと印刷設定を含む印刷データを送信する(S1111)。
クラウドプリントサービス500は、印刷データを受信すると、あらかじめ送信先として設定されたPDL変換サービス600に対して印刷データを送信する(S1112)。
PDL変換サービス600は、クラウドプリントサービス500から印刷データを受信すると、プリンター200のすべての機能を実現可能とするPDLデータに変換する(S1113)。PDL変換サービス600は、変換したPDLデータをクラウドプリントサービス500に送信する(S1114)。なお、S1114において、PDL変換サービス600がPDLデータと印刷設定を印刷データの形でクラウドプリントサービス500に送信するとする。印刷ジョブ管理部505は受信したPDLデータを含む印刷データを印刷ジョブとして印刷ジョブ保存領域511に登録する(S1115)。本実施形態により、プリンター200が搭載する機能を実現可能なPDLデータをクラウドプリントサービス500が管理することができる。
上記の方法でクラウドプリントサービス500の印刷ジョブ保存領域511に記憶された印刷ジョブは第1の実施形態と同様の方法でプリンターから読み出され印刷される。
また、本実施形態ではクラウドプリントサービス500からPDL変換サービス600を利用してPDL変換処理を行っているが、別のタイミングで実現しても良い。例えば、クライアントコンピューター100からクラウドプリントサービス500を介さずにPDL変換サービス600に対して印刷データを送信し、PDL変換を行う。そして、PDL変換後にPDL変換サービス600がクラウドプリントサービス500に対してPDLデータと印刷設定を含む印刷データを送信して印刷ジョブを登録するとしてもよい。
上記手段により、印刷拡張アプリケーション1052がインストールできない環境においても、オペレーティングシステムによって提供された標準印刷システムを用いた印刷にて、プリンターが搭載するすべての機能を実現することができる。
<その他の実施形態>
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム又は装置のコンピュータ(又はCPUやMPU等)がプログラムコードを読み出して実行する処理である。この場合、そのコンピュータプログラム、及び該コンピュータプログラムを記憶した記憶媒体は本発明を構成することになる。