(57)【特許請求の範囲】
【請求項１】
１つ又は複数のサーバを含むサーバシステム及びプリンタと通信可能な情報処理装置であって、
ユーザによって入力される印刷設定を受け付ける受付手段と、
前記受付手段によって受け付けられた印刷設定に基づいて実行すべき処理の中に前記サーバシステムにて実行すべき処理が含まれている場合には、プリントジョブを前記サーバシステムに送信し、且つ、印刷データを前記サーバシステムから取得する指示を前記プリンタに送信し、前記受付手段によって受け付けられた印刷設定に基づいて実行すべき処理の中に前記サーバシステムにて実行すべき処理が含まれていない場合には、前記プリントジョブを前記プリンタに送信する送信手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記印刷データは、前記プリントジョブに基づいて前記サーバシステムで生成されたデータであることを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記プリントジョブは、前記サーバシステムで実行すべき画像処理の内容を示す情報を含むことを特徴とする請求項１又は２記載の情報処理装置。
【請求項４】
前記送信手段によって送信される指示は、サーバシステムのアドレスを含むことを特徴とする請求項１から３のいずれか１項に記載の情報処理装置。
【請求項５】
前記プリントジョブを前記サーバシステムに送信するか前記プリンタに送信するか判断する判断手段を更に有し、
前記判断手段によって前記サーバシステムに送信すると判断された場合、前記送信手段は、前記プリントジョブを前記サーバシステムに送信し、且つ、前記印刷データを前記サーバシステムから取得する指示を前記プリンタに送信し、
前記判断手段によって前記プリンタに送信すると判断された場合、前記送信手段は、前記プリントジョブを前記プリンタに送信することを特徴とする請求項１から４のいずれか１項に記載の情報処理装置。
【請求項６】
前記受付手段により受け付けられた印刷設定の内容を前記サーバシステムに通知する通知手段と、
前記プリントジョブの送信先を示す情報を前記サーバシステムから受信する受信手段と、を更に有し、
前記判断手段は、前記受信手段によって受信された情報に基づいて、前記プリントジョブを前記サーバシステムに送信するか前記プリンタに送信するか判断することを特徴とする請求項５記載の情報処理装置。
【請求項７】
前記印刷設定は、基本印刷設定と拡張印刷設定とを含むことを特徴とする請求項１から６のいずれか１項に記載の情報処理装置。
【請求項８】
前記基本印刷設定は、用紙サイズ、用紙タイプ、部数、及びレイアウト、の少なくとも一つを含むことを特徴とする請求項７記載の情報処理装置。
【請求項９】
前記拡張印刷設定は、地紋の設定を含むことを特徴とする請求項７又は８記載の情報処理装置。
【請求項１０】
前記プリントジョブの送信に応じて、前記サーバシステムからジョブＩＤを受信することを特徴とする請求項１から５のいずれか１項に記載の情報処理装置。
【請求項１１】
前記送信手段は、前記サーバシステムから受信したジョブＩＤを前記プリンタに送信することを特徴とする請求項６記載の情報処理装置。
【請求項１２】
前記サーバシステムとインターネットを介して接続され、前記プリンタとＬＡＮ  （Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）を介して接続されることを特徴とする請求項１から１１のいずれか１項に記載の情報処理装置。
【請求項１３】
１つ又は複数のサーバを含むサーバシステム及びプリンタと通信可能な情報処理装置の制御方法であって、
ユーザによって入力される印刷設定を受け付ける受付工程と、
前記受付工程において受け付けられた印刷設定に基づいて実行すべき処理の中に前記サーバシステムにて実行すべき処理が含まれている場合には、プリントジョブを前記サーバシステムに送信し、且つ、印刷データを前記サーバシステムから取得する指示を前記プリンタに送信し、前記受付工程において受け付けられた印刷設定に基づいて実行すべき処理の中に前記サーバシステムにて実行すべき処理が含まれていない場合には、前記プリントジョブを前記プリンタに送信する送信工程と、
を有することを特徴とする情報処理装置の制御方法。
【請求項１４】
請求項１３記載の制御方法を情報処理装置に実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プリンター等の印刷を実行する際に用いられる情報処理装置、情報処理装置の制御方法及びコンピュータプログラムに関する。
【背景技術】
【０００２】
近年、自己のホストコンピューター等の情報処理装置において、アプリケーションを実行することなく、ネットワーク（例えば、インターネット）上で提供されているソフトウェアを利用する形態が普及しつつある。このようなインターネット上のソフトウェアを利用する技術として、所謂クラウドコンピューティングが知られている。
【０００３】
クラウドコンピューティングにおいては、一般的に複数のサーバー装置から構成されるクラウド内のいずれのサーバー装置においてプログラム等のソフトウェアが実行されているかを、ユーザーは意識する必要がない。そして、クラウドコンピューティングは、ユーザーの要求に対して各種のサービスを提供することを特徴としている。
【０００４】
一般に、このようなクラウドコンピューティングにおいては、サーバー装置（例えば、Ｗｅｂサーバー）は、要求受付サーバーと処理サーバーとを有している。そして、要求受付サーバーでホストコンピューターからの要求を受け付け、処理サーバーによって当該要求を実行する。また、サーバー装置は、データベース（ＤＢ）サーバーによって各種のデータを管理するようにしている。
【０００５】
クラウドコンピューティング環境下では、ユーザーは、新たにサーバー装置を設置する必要がなく、さらには目的とする処理を行うためのアプリケーションの購入等初期投資を抑えることができる。
【０００６】
さらに、クラウドによって各種のサービスが提供される関係上、新規のサービスの追加、各種のサービスのバージョンアップ等が容易となる。
【０００７】
このクラウドコンピューティング環境を、印刷環境に適用することを考えると、ホストコンピューター等の情報処理装置は、基本機能のみをサポートして、付加的な機能はネットワーク上のクラウドに処理を行わせるようにすればよい。
【０００８】
このようにすれば、ホストコンピューターを低コストで構築し、そして、クラウドによって高機能な付加価値を提供するというサービス環境を構築することができることになる。
【０００９】
ところが、一般に、クラウドはイントラネットではなく、インターネット上に構築されていることが多い。一方、ホストコンピューターはイントラネットで画像形成装置等の端末装置（例えば、印刷装置）に接続されている。
【００１０】
イントラネットにおいては、ＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）におけるＩＰ（インターネットプロトコル）アドレスの使用制限又はファイアウォール等によって、クラウドからイントラネット内の端末装置に対して画像データ（印刷データ）を送信することができないという問題点がある。
【００１１】
このような問題点に対処するため、例えば、前述のＤＢサーバーに印刷データを保存し、ホストコンピューター等の情報処理装置から印刷装置等の端末装置に印刷指示を行うようにしたものがある（例えば、特許文献１参照）。ここでは、端末装置は印刷指示を受けると、ＤＢサーバーに印刷データを要求する。
【００１２】
特許文献１に記載の手法によれば、イントラネットからインターネットへ向けての通信であるので、クラウドがインターネット上に存在しても印刷データを取得することができる。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２００６−１４６７３４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
しかしながら、特許文献１に記載の手法におけるクラウドを用いた印刷環境では、ホストコンピューター及び端末装置はイントラネット内に存在する。この点を考慮すると、付加的な機能を用いて印刷を実行しようとする場合には、ホストコンピューターからクラウドに対して要求を送信する。そして、基本機能のみを用いた印刷においては、ホストコンピューターから直接端末装置に要求を送信する方が効率的である。
【００１５】
従って、特許文献１に記載の手法においては、必ずＤＢサーバーに印刷データを送信する必要があり、上記の点を考慮すると、端末装置がＤＢサーバーから印刷データを取得するというだけでは効率の点で極めて不利である。
【００１６】
上記の課題を解決するため、本発明の目的は、インターネット等のネットワーク上に存在するサーバー装置を用いて、効率的に印刷を行うことのできる情報処理装置、情報処理装置の制御方法及びコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【００１７】
上記の目的を達成するため、本発明の情報処理装置は、１つ又は複数のサーバを含むサーバシステム及びプリンタと通信可能な情報処理装置であって、ユーザによって入力される印刷設定を受け付ける受付手段と、前記受付手段によって受け付けられた印刷設定に基づいて実行すべき処理の中に前記サーバシステムにて実行すべき処理が含まれている場合には、プリントジョブを前記サーバシステムに送信し、且つ、印刷データを前記サーバシステムから取得する指示を前記プリンタに送信し、前記受付手段によって受け付けられた印刷設定に基づいて実行すべき処理の中に前記サーバシステムにて実行すべき処理が含まれていない場合には、前記プリントジョブを前記プリンタに送信する送信手段と、を有することを特徴とする。
上記の目的を達成するため、本発明の情報処理装置の制御方法は、１つ又は複数のサーバを含むサーバシステム及びプリンタと通信可能な情報処理装置の制御方法であって、ユーザによって入力される印刷設定を受け付ける受付工程と、前記受付工程において受け付けられた印刷設定に基づいて実行すべき処理の中に前記サーバシステムにて実行すべき処理が含まれている場合には、プリントジョブを前記サーバシステムに送信し、且つ、印刷データを前記サーバシステムから取得する指示を前記プリンタに送信し、前記受付工程において受け付けられた印刷設定に基づいて実行すべき処理の中に前記サーバシステムにて実行すべき処理が含まれていない場合には、前記プリントジョブを前記プリンタに送信する送信工程と、を有することを特徴とする。
【発明の効果】
【００２３】
以上のように、本発明によれば、印刷データを生成する画像処理機能をイントラネットの外のサーバーに行わせる場合においても、印刷装置は印刷ジョブを受信してその処理を行うことができる。そして、イントラネット外のサーバーに画像処理機能を実行させる必要がない場合には、情報処理装置から印刷装置に直接的に印刷ジョブを送信して、印刷処理を実行させるようにしたので、効率的に印刷を行うことができるという効果がある。
【図面の簡単な説明】
【００２４】
【図１】本発明の実施の形態による印刷システムの一例を示すブロック図である。
【図２】図１に示すクラウドのハードウェア構成の一例を示すブロック図である。
【図３】図１に示すクラウドのソフトウェア構成を説明するためのブロック図である。
【図４】図１に示すホストコンピューター及びプリンターのハードウェア構成の一例を示すブロック図である。
【図５】図１に示すホストコンピューター及びプリンターのソフトウェア構成の一例を説明するためのブロック図である。
【図６】図１に示すプリンターの設定処理を説明するためのフローチャートである。
【図７】図４に示す操作部に表示されるネットワーク設定用表示画面の一例を示す図である。
【図８】図１に示すクラウドにおける設定処理を説明するためのフローチャートである。
【図９】図１に示すクラウドに登録されるユーザーデータ（登録情報）の一例を示す図である。
【図１０】図１に示すホストコンピューター上で動作するインストーラーのインストール処理を説明するためのフローチャートである。
【図１１】図４に示すＣＲＴに表示されるクラウドＩＤ入力画面の一例を示す図である。
【図１２】図４に示すＣＲＴに表示されるプリンターリストの画面の一例を示す図である。
【図１３】図１に示すホストコンピューター、クラウド、及びプリンター間の処理の流れを示すシーケンス図である。
【図１４】図５に示すプリンタードライバーが行う印刷処理を説明するためのフローチャートである。
【図１５】図４に示すＣＲＴに表示されるＵＩ（ユーザーインターフェース）を示す図であり、（ａ）は基本設定ＵＩを示す図、（ｂ）は拡張設定ＵＩを示す図である。
【図１６ａ】図１に示すクラウドにおける印刷処理を説明するためのフローチャートである。
【図１６ｂ】図１に示すクラウドにおける印刷処理を説明するためのフローチャートである。
【図１７ａ】図１に示すプリンター（デバイス）における印刷処理を説明するためのフローチャートである。
【図１７ｂ】図１に示すプリンター（デバイス）における印刷処理を説明するためのフローチャートである。
【発明を実施するための形態】
【００２５】
以下、本発明の実施の形態による情報処理装置及びこの情報処理装置を用いた印刷システムの一例について説明する。なお、以下の説明においては、印刷システムでは、クラウドコンピューティング環境におけるクラウド（１つ又は複数のサーバー装置）を利用して印刷を行うものとする。
【００２６】
図１は、本発明の実施の形態による印刷システムの一例を示すブロック図である。
【００２７】
図１を参照して、図示の印刷システムは、情報処理装置であるホストコンピューター５０００及び端末装置であるプリンター６０００を有している。これらホストコンピューター５０００及びプリンター６０００は、ネットワーク１１（例えば、イントラネット）によって相互に接続されている。図示の例では、プリンター６０００は一台のみ示されているが、複数のプリンター６０００が存在してもよい。
【００２８】
ネットワーク１１はネットワーク１０（例えば、インターネット）に接続されており、インターネット１０上にクラウド１００が存在する。図示の例では、１つのクラウド１００のみが示されているが、クラウド自体が複数存在する場合も考えられる。
【００２９】
図示の例では、クラウド１００は、ディレクトリーサーバー１０００、第１の処理サーバー２０００、及び第２の処理サーバー３０００を有している（なお、図示はしないが、クラウド１００は課金処理サーバーも有している）。そして、これらディレクトリーサーバー１０００、第１の処理サーバー２０００、及び第２の処理サーバー３０００はネットワーク１２によって相互に接続されている。
【００３０】
ここでは、ディレクトリーサーバー１０００は、ホストコンピューター５０００からネットワーク１０を介してジョブ（印刷ジョブ）の受け付けを行う。第１及び第２の処理サーバー２０００及び３０００は、ディレクトリーサーバー１０００と印刷ジョブとによって指定された設定（ジョブ設定）に応じて処理を行う。
【００３１】
なお、図示の例では、クラウド１００は第１及び第２の処理サーバー２０００及び３０００のみを有しているが、処理サーバーの数はクラウド１００が提供する機能の数等に応じて、自由に増やすことも可能である。
【００３２】
上述のようして、ユーザー環境のホストコンピューター５０００及びプリンター６０００とクラウド１００はインターネット１０を介して接続され、これによって、印刷システムが形成される。
【００３３】
図示の印刷システムでは、プリンター６０００によってサポートされていない機能がクラウド１００を利用することによって実現される。例えば、プリンター６０００は所謂地紋処理をサポートしていないが、クラウド１００では地紋処理のサービスを提供しているとする。この場合、印刷ジョブがホストコンピューター５０００からクラウド１００に送信される。そして、クラウド１００において、印刷ジョブに応じて地紋処理を行った後、地紋処理済データ（つまり、印刷データ）をクラウド１００からインターネット１０を介してプリンター６０００に送信して、印刷を実行することになる。
【００３４】
ところが、前述したように、クラウド１００は、イントラネット上ではなく、インターネット１０上に構築されている。このため、上述したような課題がある。ここでは、クラウド１００に拡張機能の１つである地紋処理を行わせて、プリンター６０００において印刷物を出力するという形態を例に挙げて説明する。
【００３５】
図示の例では、ホストコンピューター５０００で作成した印刷ジョブの設定に付加的な機能の設定があると、ホストコンピューター５０００はクラウド１００にインターネット１０を介して当該印刷ジョブを送信する。続いて、ホストコンピューター５０００は印刷ジョブが作成されたことをプリンター６０００にネットワーク１１を介して通知する。
【００３６】
この通知を受け取ると、プリンター６０００はインターネット１０を介してクラウド１００に印刷データの要求を行う。印刷データの要求に応じて、クラウド１００は印刷データをプリンター６０００に送信する。そして、プリンター６０００は当該印刷データに応じて印刷を実行する。
【００３７】
一方、ホストコンピューター５０００で作成した印刷ジョブの設定が基本機能のみであると、ホストコンピューター５０００はプリンター６０００に当該印刷ジョブをネットワーク１１を介してプリンター６０００に送信する。そして、プリンター６０００は、受信した印刷ジョブに基づいて印刷を実行する。
【００３８】
図２は、図１に示すクラウド（１つ又は複数のサーバー装置）１００のハードウェア構成の一例を示すブロック図である。
【００３９】
図２を参照すると、ディレクトリーサーバー１０００は、ＣＰＵ（中央処理装置）２０１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０２、及びＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）部２０３を有している。そして、ＲＯＭ部２０３には、フォントＲＯＭ２０３ａ、プログラムＲＯＭ２０３ｂ、及びデータＲＯＭ２０３ｃが備えられている。
【００４０】
さらに、ディレクトリーサーバー１００は、キーボードコントローラ（ＫＢＣ）２０５、ＣＲＴコントローラ（ＣＲＴＣ）２０６、ディスクコントローラ（ＤＫＣ）２０７、及びネットワークコントローラ（ＮＣ）２０８を備えている。そして、これら各構成要素はシステムバス２０４を介して相互に接続されている。
【００４１】
ＫＢＣ２０５は、キーボード（ＫＢ）２０９及びポインティングデバイス（図示せず）によるキー入力を制御する。ＣＲＴＣ２０６は、ＣＲＴディスプレイ（ＣＲＴ）２１０による表示を制御する。ＤＫＣ２０７は、ブートプログラム、各種のアプリケーション、ユーザファイル、及び編集ファイル等を記憶するハードディスク（ＨＤ）又はフロッピー（登録商標）ディスク（ＦＤ）等の外部メモリ２１１に対するアクセスを制御する。
【００４２】
ＮＣ２０８は、ネットワーク１２を介して第１及び第２の処理サーバー２０００及び３０００と課金処理サーバー（図示せず）とに接続されている。そして、ＮＣ２０８は、第１及び第２の処理サーバー２０００及び３０００と課金処理サーバーとの通信を制御する。
【００４３】
ＣＰＵ２０１は、プログラムＲＯＭ２０３ｂ又は外部メモリ２１１に記憶された制御プログラム（オペレーティングシステム（ＯＳ））に応じて動作する。そして、ＣＰＵ２０１は、プログラムＲＯＭ２０３ｂ又は外部メモリ２１１に記憶されたジョブ受付プログラム等に応じてジョブ振り分け処理を行う。つまり、ＣＰＵ２０１は、受信したジョブを第１及び第２の処理サーバー２０００及び３０００と課金処理サーバーのいずれかに振り分ける処理を行う。
【００４４】
ジョブ振り分け処理等を行う際には、データＲＯＭ２０３ｃ又は外部メモリ２１１に、ジョブ振り分け処理で用いられる各種データが記憶される。なお、ＲＡＭ２０２は、ＣＰＵ２０１の主メモリ及びワークエリア等として用いられる。
【００４５】
また、ＣＰＵ２０１はシステムバス２０４に接続される各構成要素を総括的に制御する。
【００４６】
第１及び第２の処理サーバー２０００及び３０００のハードウェア構成はディレクトリーサーバー１０００と同様であるので、ディレクトリーサーバー１０００の構成要素と同一の参照符号を用いている。なお、第１及び第２の処理サーバー２０００及び３０００においては、プログラムＲＯＭ２０３ｂ又は外部メモリ２１１にはジョブ処理プログラムが格納されている。
【００４７】
図３は、図１に示すクラウド１００のソフトウェア構成を説明するためのブロック図である。図３においては、ソフトウェアが有する機能が示されている。そして、これら機能は、ディレクトリーサーバー１０００と第１及び第２の処理サーバー２０００及び３０００のＣＰＵ２０１上で実行されることになる。なお、以下の説明では、ディレクトリーサーバー１０００と第１及び第２の処理サーバー２０００及び３０００とが一体的にクラウド１００として動作する場合について説明する。
【００４８】
図３を参照して、クラウド１００上で動作するソフトウェアは、通信部１０１、ジョブ要求受付部１０２、ジョブ処理部１０３、ユーザーデータ管理部１０４、拡張ＵＩ生成部１０５、送信先判定部１０６、ドライバーデータ格納部１０７、及び機能管理部１０８を有している。そして、ジョブ処理部１０３は、印刷ジョブの処理内容に対応して複数備えられている。
【００４９】
通信部１０１は、プリンター６０００から印刷ジョブを受信するとともに、クラウド１００におけるデータの送信を行う。ジョブ要求受付部１０２は、通信部１０１で受信した印刷ジョブを受け付けると、印刷ジョブが示す処理内容（印刷ジョブ処理内容）を解析する。そして、ジョブ受付部１０２は、解析結果に応じて印刷ジョブ処理内容に対応するジョブ処理部１０３に印刷ジョブを送信する。
【００５０】
また、ジョブ要求受付部１０２は、後述するように、通信部１０１からプリンター６０００の出力完了通知を受信すると、当該出力完了通知をジョブ処理部１０３に送信する。
【００５１】
ジョブ処理部１０３は、印刷ジョブ処理内容に応じて印刷ジョブ処理を行って、印刷データを生成する。そして、ジョブ処理部１０３はジョブ要求受付部１０２を介して通信部１０１に印刷データを送る。
【００５２】
ユーザーデータ管理部１０４は、クラウド１００を使用する契約単位毎に登録されるプリンター６０００のリストを管理する。拡張ＵＩ生成部１０５は、ホストコンピューター５０００から送られる拡張ＵＩ要求に応じて、機能管理部１０８から最新の機能情報を取得して、拡張ＵＩ情報を生成する。
【００５３】
送信先判定部１０６は、ホストコンピューター５０００から受信した印刷ジョブ設定情報に応じてクラウド１００における印刷処理があるか否かを判定する。そして、送信先判定部１０６は、クラウド１００における印刷処理があると判定すると、送信先をクラウド１００する。一方、クラウド１００における印刷処理がないと判定すると、送信先判定部１０６は、送信先をプリンター６０００とする。
【００５４】
ドライバーデータ格納部１０７は、ホストコンピューター５０００にインストールされるモジュールが格納されている。ドライバーデータ格納部１０７は、ホストコンピューター５０００からの要求に応じて、ホストコンピューター５０００に通信部１０１を介してモジュールを送信する。機能管理部１０８は、ジョブ処理部１０３と通信して、クラウド１００が備える機能の一覧と当該機能バージョンを管理する。
【００５５】
図４は、図１に示すホストコンピューター５０００及びプリンター６０００のハードウェア構成の一例を示すブロック図である。図４を参照すると、ホストコンピューター５０００は、ディレクトリーサーバー１０００と同様のハードウェア構成を有している。図４に示すホストコンピューター５０００おいて、図２に示すハードウェア要素と同一のハードウェア要素について同一の参照番号を付す。
【００５６】
図４に示すホストコンピューター５０００においては、プログラムＲＯＭ２０３ｂ又は外部メモリ２１１にアプリケーションプログラム及びプリンター制御コマンド生成プログラム等が格納されている。そして、ＣＰＵ２０１はこれらプログラムに基づいて図形、イメージ、文字、及び表（表計算等を含む）等が混在した文書データ作成処理を行う。さらに、ＣＰＵ２０１は文書データに関する印刷ジョブの生成処理を行う。
【００５７】
また、ホストコンピューター５０００においては、プログラムＲＯＭ２０３ｂ又は外部メモリ２１１に、ＣＰＵ２０１の制御プログラムであるオペレーティングシステム（ＯＳ）等が記憶されている。そして、フォントＲＯＭ２０３ａ又は外部メモリ２１１には、上記の文書データに関する印刷ジョブ生成処理の際に用いられるフォントデータ等が記憶されている。
【００５８】
なお、データＲＯＭ２０３ｃ又は外部メモリ２１１には文書データ作成処理及び印刷ジョブ生成処理等を行う際に使用する各種データが記憶される。
【００５９】
ホストコンピューター５０００において、ＮＣ２０８は、ネットワーク１１を介してプリンター６０００及びクラウド１００（図１）に接続され、プリンター６０００及びクラウド１００との通信の制御を行う。
【００６０】
なお、ＣＰＵ２０１は、例えば、ＲＡＭ２０２上に設定された表示情報ＲＡＭに対するアウトラインフォントの展開（ラスタライズ）処理を実行する。これによって、ＣＰＵ２０１は、ＣＲＴ２１０上におけるＷＹＳＩＷＹＧ（ウィジウィグ（Ｗｈａｔ  Ｙｏｕ  Ｓｅｅ  Ｉｓ  Ｗｈａｔ  Ｙｏｕ  Ｇｅｔ）が可能となる。
【００６１】
また、ＣＰＵ２０１は、ＣＲＴ２１０上に表示されるマウスカーソル（図示せず）等で指示されたコマンドに基づいて、登録された種々のウインドウを開いて、種々のデータ処理を実行する。ユーザーは、印刷処理を実行する際には、印刷の設定に関するウインドウを開いて、プリンター６０００の設定を行うことができる（ユーザー入力）。
【００６２】
図４において、プリンター６０００は、ハードウェア構成として、ＣＰＵ３１２、ＲＯＭ部３１３、印刷部Ｉ／Ｆ３１６、ＮＣ３１８、ＲＡＭ３１９、及びメモリーコントローラ（ＭＣ）３２０を有している。そして、ＲＯＭ部３１３には、フォントＲＯＭ３１３ａ、プログラムＲＯＭ３１３ｂ、及びデータＲＯＭ３１３ｃが備えられている。
【００６３】
ＮＣ３１８はネットワーク１１に接続されている。また、印刷部Ｉ／Ｆ３１６には印刷部（プリンターエンジン）３１７が接続され、ＭＣ３２０には外部メモリ３１４が接続される。プリンター６０００の各構成要素はシステムバス３１５によって相互に接続され、さらに、システムバス３１５には操作部３２１が接続されている。
【００６４】
ＣＰＵ３１２は、プログラムＲＯＭ３１３ｂ又は外部メモリ３１４に記憶された制御プログラム等に基づいて印刷部３１７に出力情報として画像信号（画像データ）を出力する。また、フォントＲＯＭ３１３ａには画像データを生成する際に用いられるフォントデータ等が記憶されている。
【００６５】
データＲＯＭ３１３ｃには、例えば、外部メモリ３１４が存在しない場合に、ホストコンピューター５０００上で用いられる各種データ等が記憶される。なお、外部メモリ３１４には、ユーザーの印刷データを格納することもできる。
【００６６】
ＣＰＵ３１２は、ＮＣ３１８を介してホストコンピューター５０００及びクラウド１００と通信を行うことができ、例えば、プリンター６０００内の各種データ等をホストコンピューター５０００及びクラウド１００に通知することができる。なお、ＲＡＭ３１９は、ＣＰＵ３１２の主メモリ及びワークエリア等として用いられる。
【００６７】
図５は、図１に示すホストコンピューター５０００及びプリンター６０００のソフトウェア構成の一例を説明するためのブロック図である。図５においては、ホストコンピューター５０００及びプリンター６０００が有するソフトウェアの機能が示されている。そして、これら機能は、ホストコンピューター５０００のＣＰＵ２０１及びプリンター６０００のＣＰＵ３１２上で実行されることになる。
【００６８】
図５を参照すると、ホストコンピューター５０００上で動作するソフトウェアは、アプリケーション部５０１０、プリンタードライバー５０２０、スプーラー５０３０、通信モジュール５０４０、及びインストーラー５０５０を有している。
【００６９】
また、プリンター６０００上で動作するソフトウェアは、通信制御部６０１０、ジョブ種別判別部６０２０、画像形成部６０３０、印刷制御部６０４０、及びクラウド設定部６０５０を有している。
【００７０】
ホストコンピューター５０００において、インストーラー５０５０は、インストールするモジュールをクラウド１００から取得して、ホストコンピューター５０００にインストールする。アプリケーション部５０１０によって印刷要求された描画データは、プリンタードライバー５０２０に与えられる。そして、プリンタードライバー５０２０は、描画データに応じた印刷ジョブを生成する。
【００７１】
この印刷ジョブは、スプーラー５０３０にスプールされる。スプールされた印刷ジョブは通信モジュール５０４０に与えられ、通信モジュール５０４０は印刷ジョブにおける印刷ジョブ設定情報をクラウド１００に送信して、後述するように送信先情報を取得する。
【００７２】
送信先情報が送信先としてクラウド１００を示している場合には、通信モジュール５０４０はクラウド１００に印刷ジョブを送信する。一方、送信先情報が送信先としてデバイスを示している場合には、通信モジュール５０４０はプリンター６０００に印刷ジョブを送信する。
【００７３】
プリンター６０００において、クラウド設定部６０５０はクラウド１００に関する設定を行って、登録情報とする。そして、登録情報が通信制御部６０１０を介してクラウド１００に送信される。通信制御部６０１０はホストコンピューター５０００から印刷ジョブを受信すると、この印刷ジョブをジョブ種別判別部６０２０に与える。
【００７４】
ジョブ種別判別部６０２０は、印刷ジョブに応じて当該印刷ジョブのジョブ種別を判別する。例えば、プリンター６００のみでクラウド１００を使用するジョブ種別であると判別されると、ジョブ種別判別部６０２０は通信制御部６０１０を介してクラウド１００に印刷データを要求する。
【００７５】
印刷データの要求に際しては、通信制御部６０１０によってポーリングが行われる。印刷データの要求に対する返答として、クラウド１００から印刷データがプリンター６０００に送信される。
【００７６】
一方、プリンター６０００のみで印刷ジョブが可能であるジョブ種別であると判別されると、ジョブ種別判別部６０２０は画像形成部６０３０に印刷ジョブを与える。画像形成部６０３０は印刷ジョブに基づいて画像データ（印刷データともいう）を生成する。そして、画像形成部６０３０は、印刷制御部６０４０に当該印刷データを送り、印刷制御部６０４０によって印刷出力処理が実行される。
【００７７】
ところで、プリンター６０００が通信制御部６０１０を介してクラウド１００から印刷データを受信すると、この印刷データは通信制御部６０１０からジョブ種別判別部６０２０に送られる。当該印刷データがクラウド１００から送信されたものであると判別すると、ジョブ種別判別部６０２０は、この印刷データを印刷制御部６０４０に送信する。
【００７８】
印刷制御部６０４０は印刷データに応じて印刷出力処理を実行する。そして、印刷制御部６０４０は、印刷出力処理が完了すると、ページ毎に通信制御部６０１０を介してクラウド１００に印刷出力完了を通知する。
【００７９】
（前準備の処理）
ここで、印刷を行う前に実行される前準備の処理について説明する。
【００８０】
図６は、図１に示すプリンター（デバイスともいう）６０００の設定処理を説明するためのフローチャートである。プリンター６０００を起動すると、例えば、ホストコンピューター５０００において、ＣＰＵ２０１はＣＲＴ２１０（図４）にネットワーク設定用画面を表示する。
【００８１】
図７は、図４に示すＣＲＴ２１０に表示されるネットワーク設定用表示画面の一例を示す図である。図７に示すように、ネットワーク設定用表示画面には、ＩＰアドレス、サブネットマスク、クラウドＩＤ（識別情報）、及びクラウドアドレスが表示されるとともに、ＯＫボタン７００が表示される。
【００８２】
図４、図６、及び図７を参照すると、前述のように、プリンター６０００が起動されると、ホストコンピューター５０００のＣＰＵ２０１は、ＣＲＴ２１０のディスプレイにネットワーク設定用画面を表示する（ステップＳ６０１）。そして、ＣＰＵ２０１はＯＫボタン７００が押下げられたか否かを監視する（ステップＳ６０２）。ユーザーはネットワーク設定用画面に応じて、例えば、クラウド１００を使用するためのネットワーク設定を行う（ユーザー入力）。
【００８３】
つまり、ユーザーは、ネットワーク設定用画面において、ネットワーク設定情報として、ＩＰアドレス、サブネットマスク、及びクラウドＩＤを入力する。ユーザーがネットワーク設定情報を設定した後、ネットワーク設定用画面上でＯＫボタン７００を押下げると（ステップＳ６０２において、ＹＥＳ）、ＣＰＵ２０１は、ネットワーク設定情報を、例えば、データＲＯＭ２０３ｃに格納する。そして、プリンター６０００からクラウド１００にネットワーク設定情報を含む登録情報が送信される（ステップＳ６０３）。なお、ＯＫボタン７００が押下げられないと（ステップＳ６０２において、ＮＯ）、ＣＰＵ２０１は待機する。
【００８４】
上記の登録情報は、例えば、デバイス名、デバイスの種類、ＩＰアドレス、サブネットマスク、及びデバイスＩＤである。
【００８５】
続いて、ＣＰＵ２０１は、クラウド１００から登録処理結果の通知を受信したか否かを判定する（ステップＳ６０４）。登録処理結果の通知を受信しないと（ステップＳ６０４において、ＮＯ）、ＣＰＵ２０１は登録処理結果の通知を受信するまで待機する。
【００８６】
一方、登録処理結果の通知を受信すると（ステップＳ６０４において、ＹＥＳ）、ＣＰＵ２０１は、登録処理結果が登録完了を示しているか否かを判定する（ステップＳ６０５）。登録処理結果が登録完了を示していると（ステップＳ６０５において、ＹＥＳ）、ＣＰＵ２０１はデバイスの設定処理を終了する。
【００８７】
登録処理結果が登録完了を示していないと（ステップＳ６０５において、ＮＯ）、ＣＰＵ２０１は、ＣＲＴ２１０にエラーを表示して（ステップＳ６０６）、デバイスの設定処理を終了する。
【００８８】
図８は、図１に示すクラウド１００における設定処理を説明するためのフローチャートである。
【００８９】
図２及び図８を参照すると、ディレクトリーサーバー１０００において、ＣＰＵ２０１は、プリンター（デバイス）６０００からの登録要求であるか否かを判定する（ステップＳ７０１）。プリンター６０００からの登録要求でないと（ステップＳ７０１において、ＮＯ）、ＣＰＵ２０１は待機する。
【００９０】
一方、プリンター６０００からの登録要求であると（ステップＳ７０１において、ＹＥＳ）、ＣＰＵ２０１は、登録情報に基づいて許可済みのクラウドＩＤ（識別情報）であるか否かを判定する（ステップＳ７０２）。つまり、ＣＰＵ２０１は、登録要求のクラウドＩＤが許可されているか否かを判別する。
【００９１】
登録要求のクラウドＩＤが許可されていないと（ステップＳ７０２において、ＮＯ）、ＣＰＵ２０１は、プリンター６０００に対して登録不許可を通知する（ステップＳ７０３）。そして、ＣＰＵ２０１はクラウド設定処理を終了する。
【００９２】
登録要求のクラウドＩＤが許可されていると（ステップＳ７０２において、ＹＥＳ）、ＣＰＵ２０１は、当該クラウドＩＤが登録済みのＩＤであるか否かを判定する（ステップＳ７０４）。なお、許可済みのクラウドＩＤは予めデータＲＯＭ２０３ｃ等に設定されている。
【００９３】
登録要求のクラウドＩＤが登録済でないと（ステップＳ７０４において、ＮＯ）、ＣＰＵ２０１は、新規にユーザーデータを生成する（ステップＳ７０５）。
【００９４】
図９は、図１に示すクラウド１００に登録されるユーザーデータ（登録情報）の一例を示す図である。図９に示すように、ユーザーデータ（登録情報）は、デバイス名欄を有しており、デバイス名（例えば、プリンター、複合機）に対応付けて、機種、ＩＰアドレス、及びサブネットマスクが設定されている。そして、ユーザーデータにはクラウドＩＤが表記されている。
【００９５】
その後、ＣＰＵ２０１は、新規に作成したユーザーデータをデバイスリストに追加して（ステップＳ７０６）、クラウドの設定処理を終了する。なお、上記のデバイスリストは、例えば、データＲＯＭ２０３ｃに格納されている。
【００９６】
一方、登録要求のクラウドＩＤが登録済であると（ステップＳ７０４において、ＹＥＳ）、ＣＰＵ２０１は、ステップＳ７０６に進んで、登録情報をユーザーデータとしてデバイスリストに追加して、クラウドの設定処理を終了する。
【００９７】
図１０は、図１に示すホストコンピューター５０００上で動作するインストーラーのインストール処理を説明するためのフローチャートである。
【００９８】
図５及び図１０を参照して、ホストコンピューター５０００において、ＣＰＵ２０１上でインストーラー５０５０が起動されると、ＣＰＵ２０１はＣＲＴ２１０にクラウドＩＤ入力画面を表示する（ステップＳ８０１）。
【００９９】
図１１は、図４に示すＣＲＴ２１０に表示されるクラウドＩＤ入力画面の一例を示す図である。図１１に示すように、クラウドＩＤ表示画面には、「クラウドＩＤ入力」の表題が表示されるとともに、「クラウドＩＤを入力してください。」という文言が表示される。
【０１００】
さらに、クラウドＩＤ入力画面には、クラウドＩＤ欄が表示されるとともに、クラウドアドレス欄が表示される。また、クラウドＩＤ表示画面の下側には、ＯＫボタン１１００が表示される。
【０１０１】
前述のクラウドＩＤ入力画面を表示した後、ＣＰＵ２０１はＯＫボタン１１００が押下げられたか否かを監視する（ステップＳ８０２）。ユーザーはクラウドＩＤ入力画面に応じて、クラウドＩＤの入力を行う。ユーザーがクラウドＩＤの入力を行った後、クラウドＩＤ入力画面上でＯＫボタン１１００を押下げると（ステップＳ８０２において、ＹＥＳ）、ＣＰＵ２０１は、当該クラウドＩＤとホストコンピューター情報（ＩＰアドレス、サブネットマスク）をクラウド１００に送信する（ステップＳ８０３）。なお、ＯＫボタン１１００が押下げられないと（ステップＳ８０２において、ＮＯ）、ＣＰＵ２０１は待機する。
【０１０２】
続いて、ＣＰＵ２０１は、インストール可能なプリンターのリスト（プリンターリスト）をクラウド１００から受信したか否かを判別する（ステップＳ８０４）。プリンターリストを受信すると（ステップＳ８０４において、ＹＥＳ）、ＣＰＵ２０１は、ＣＲＴ２１０にそのプリンターリストを表示する（ステップＳ８０５）。なお、プリンターリストを受信しないと（ステップＳ８０４において、ＮＯ）、ＣＰＵ２０１は待機する。
【０１０３】
図１２は、図４に示すＣＲＴ２１０に表示されるプリンターリストの画面の一例を示す図である。図１２に示すように、プリンターリスト画面においては、「デバイスの選択」の表題が表示されるとともに、「インストールするデバイスを選択してください。」という文言が表示される。さらに、プリンターリスト画面には、デバイスの一覧１２００が表示され、その下側に「次に」ボタン１２０１が表示される。
【０１０４】
その後、ＣＰＵ２０１は、インストールを開始するか否かを判別する（ステップＳ８０６）。つまり、ＣＰＵ２０１は、プリンターリスト画面において、ＯＫボタン（図示せず）が押されたか否かを判別する。
【０１０５】
ＯＫボタンが押されると（ステップＳ８０６において、ＹＥＳ）、ＣＰＵ２０１はインストール開始が指示されたと判別して、プリンターリスト画面で選択された機種のモジュールをクラウド１００からダウンロードする（ステップＳ８０７）。そして、ＣＰＵ２０１は、ダウンロードしたモジュールをホストコンピューター１００にインストールして（ステップＳ８０８）、ドライバーインストール処理を終了する。なお、ＯＫボタンが押されないと（ステップＳ８０６において、ＮＯ）、ＣＰＵ２０１は待機することになる。
（印刷時の処理）
続いて、印刷時における処理について説明する。初めに、図１に示すホストコンピューター５０００、クラウド１００、及びプリンター（デバイス）５０００間の処理の流れについて説明する。
【０１０６】
図１３は、図１に示すホストコンピューター５０００、クラウド１００、及びプリンター５０００間の処理の流れを示すシーケンス図である。なお、ここでは、予め規定された基本設定（基本印刷設定）として部数、拡張設定（拡張印刷設定）として地紋設定を行う場合について説明する。
【０１０７】
図３、図５、及び図１３を参照して、ホストコンピューター５０００において、まずアプリケーション部５０１０が起動される（ステップＳ１３０１）。そして、ユーザーはアプリケーション部５０１０によって文書を作成する。印刷を行う際には、プリンタードライバー５０２０が起動される（ステップＳ１３０２）。
【０１０８】
プリンタードライバー５０２０が起動されると、ＣＲＴ２１０（図４）に基本設定のＵＩが表示される（基本ＵＩ表示：ステップＳ１３０３）。地紋設定のため、拡張ＵＩタブを押下げる（ステップＳ１３０４）。これによって、クラウド１００に対して拡張ＵＩ情報が要求される。クラウド１００では、ホストコンピューター５０００が使用しようとしているプリンター６０００で利用可能な機能の最新バージョンを確認する。そして、クラウド１００では、拡張ＵＩ情報を生成して（ＵＩ情報生成：ステップＳ１３０５）、ホストコンピューター５０００に返送する。
【０１０９】
ホストコンピューター５０００では、返送された拡張ＵＩ情報から拡張ＵＩを生成して、拡張ＵＩをＣＲＴ２１０に表示する（ステップＳ１３０６）。そして、後述するようにして、拡張ＵＩにおいて地紋設定が行われ、基本ＵＩで部数が指定される（ステップＳ１３０７）。その後、ホストコンピューター５０００において、印刷指示が行われる（ステップＳ１３０８）。
【０１１０】
次に、ホストコンピューター５０００では、印刷ジョブの設定情報をクラウド１００に送信する。そして、前述したようにして、クラウド１００では、印刷ジョブの送信先を判定して（ステップＳ１３０９）、その判定結果をホストコンピューター５０００に返送する。
【０１１１】
図示の例では、印刷ジョブの設定に地紋設定があるので、判定結果においては、クラウド１００が送信先となる。従って、ホストコンピューター５０００では、クラウド１００に印刷ジョブを送信する。
【０１１２】
なお、地紋処理が設定されていない場合には、ホストコンピューター５０００では、デバイス、つまり、プリンター６０００に直接印刷ジョブを送信することになる。
【０１１３】
クラウド１００では、ホストコンピューター５０００から送られた印刷ジョブに対してクラウドジョブＩＤ（クラウドＩＤともいう）を割り当てる（ステップＳ１３１０）。そして、クラウド１００はホストコンピューター５０００にクラウドジョブＩＤを返送する。これによって、ホストコンピューター５０００は印刷開始をプリンター６０００に通知する。この印刷開始の通知には、クラウドジョブＩＤが含まれている。
【０１１４】
クラウド１００では、受信した印刷ジョブに対して地紋処理を行う（ステップＳ１３１１）。一方、プリンター６０００では、クラウド１００に対して、クラウドジョブＩＤを用いて印刷データを要求する印刷データ要求のポーリングを行う（ステップＳ１３１２）。
【０１１５】
プリンター６０００では、クラウド１００から印刷データを取得すると、部数処理を行い（ステップＳ１３１３）、そして、印刷処理を行う（ステップＳ１３１４）。プリンター６０００では、１ページの印刷が完了すると、ページ完了をクラウド１００に通知する（ステップＳ１３１５）。クラウド１００はページ完了の通知を受け取ると、該当するページの印刷データを削除する（ステップＳ１３１６）。
【０１１６】
以上のようにして、プリンター６０００において印刷が行われることになるが、続いて上述した各処理について説明する。
【０１１７】
図１４は、図５に示すプリンタードライバー５０２０が行う印刷処理を説明するためのフローチャートである。
【０１１８】
図４、図５、及び図１４を参照して、いま、ホストコンピューター５０００のＣＰＵ２０１上でプリンタードライバー５０２０が起動されると、ＣＰＵ２０１は、ＣＲＴ２１０に基本設定ＵＩを表示する（ステップＳ９０１）。そして、ＣＰＵ２０１はＯＫボタン（印刷ボタン）が押下げられたか否かを監視する（ステップＳ９０２）。
【０１１９】
図１５は、図４に示すＣＲＴ２１０に表示されるＵＩ（ユーザーインターフェース）を示す図である。ここで、図１５（ａ）は基本設定ＵＩを示す図であり、図１５（ｂ）は拡張設定ＵＩを示す図である。
【０１２０】
図１５（ａ）に示すように、基本設定ＵＩでは、プロパティの表題が表示されるとともに、基本ＵＩタブ１５００及び拡張ＵＩタブ１５０１が表示される。さらに、基本設定ＵＩにおいては、用紙サイズ、用紙タイプ、部数、及びレイアウトの各欄が表示されるとともに、ＯＫボタン１５０２が表示される。そして、ユーザーは基本設定ＵＩに応じて、例えば、印刷に係る基本設定を行う。
【０１２１】
つまり、ユーザーは、基本設定ＵＩにおいて、基本設定情報として用紙サイズ、用紙タイプ、部数、及びレイアウトを入力する。ユーザーが基本設定情報を設定した後、基本設定ＵＩ上でＯＫボタン１５０２を押下げると（ステップＳ９０２において、ＹＥＳ）、ＣＰＵ２０１は、後述するステップＳ９０７に移行する。
【０１２２】
一方、ＯＫボタン１５０２が押下げられないと（ステップＳ９０２において、ＮＯ）、ＣＰＵ２０１は、拡張ＵＩタブ１５０１が押下されたか否かを判別する（ステップＳ９０３）。拡張ＵＩタブ１５０１が押下げられると（ステップＳ９０３において、ＹＥＳ）、ＣＰＵ２０１はクラウド１００にプリンター６０００に関するデバイス情報を送信して（ステップＳ９０４）、拡張ＵＩ情報の要求を行う。このデバイス情報は、例えば、デバイスの機種とデバイス名である。
【０１２３】
なお、拡張ＵＩタブ１５０１が押下げられないと（ステップＳ９０３において、ＮＯ）、ＣＰＵ２０１はステップＳ９０３に戻ってＯＫボタン（印刷ボタン）１５０２が押下げられたか否かを監視する。
【０１２４】
続いて、ＣＰＵ２０１は、クラウド１００から拡張ＵＩ情報の要求に対する返答である拡張ＵＩ情報を受信する（ＵＩ情報受信：ステップＳ９０５）。そして、ＣＰＵ２０１は、この拡張ＵＩ情報に応じて、ＣＲＴ２１０に図１５（ｂ）に示す拡張設定ＵＩを表示する（ステップＳ９０６）。
【０１２５】
図１５（ｂ）に示すように、拡張設定ＵＩでは、プロパティの表題が表示されるとともに、基本ＵＩタブ１５００及び拡張ＵＩタブ１５０１が表示される。さらに、拡張設定ＵＩにおいては、地紋印刷を行うか否かを示すチェック欄１５０３が表示されるとともに、テキスト、フォント、及びサイズの各欄が表示される。また、拡張設定ＵＩでもＯＫボタン１５０２が表示される。そして、ユーザーは拡張設定ＵＩに応じて、例えば、印刷に係る拡張設定を行う。
【０１２６】
つまり、ユーザーは、拡張設定ＵＩにおいて、拡張設定情報として、チェック欄１５０３にチェックを入れるとともに、テキスト、フォント、及びサイズを入力し、拡張設定情報を設定する。
【０１２７】
その後、ＣＰＵ２０１は、ステップＳ９０２に戻って、ＯＫボタン１５０２が押下げられたか否かを監視する。そして、拡張設定ＵＩ上でＯＫボタン１５０２が押下げられると（ステップＳ９０２において、ＹＥＳ）、ＣＰＵ２０１は、後述するステップＳ９０７に移行する。
【０１２８】
図１４において、以下の説明では基本設定情報及び拡張設定情報をともに印刷ジョブ設定情報と呼ぶことがある。ステップＳ９０７において、ＣＰＵ２０１は、印刷ジョブ設定情報をクラウド１００に送信するとともに、送信先情報を要求する送信先要求を送信する。そして、ＣＰＵ２１０は、送信先要求の返答としてクラウド１００から送信先情報を受信する（ステップＳ９０８）。
【０１２９】
続いて、ＣＰＵ２０１は、送信先情報が示す送信先がクラウド１００であるか否かを判別する（ステップＳ９０９）、送信先がクラウド１００であると（ステップＳ９０９において、ＹＥＳ）、ＣＰＵ２０１は、クラウド１００に印刷ジョブを送信する（ステップＳ９１０）。そして、ＣＰＵ２０１は、印刷ジョブの送信の返答として、クラウド１００からクラウドジョブＩＤを受信する（ステップＳ９１１）。
【０１３０】
クラウドジョブＩＤを受信すると、ＣＰＵ２０１は、プリンター（デバイス）６０００に対して印刷ジョブの開始を通知して（ステップＳ９１２）、プリンタードライバー５０２０に係る印刷処理を終了する。
【０１３１】
なお、プリンター６０００に印刷ジョブの開始を通知する際には、ＣＰＵ２０１は、クラウドジョブＩＤ及び基本設定情報を通知する。
【０１３２】
一方、ステップＳ９０９において、送信先がクラウド１００でないと（ステップＳ９０９において、ＮＯ）、ＣＰＵ２０１は、印刷ジョブ設定情報に応じて印刷ジョブコマンドを生成する（ステップＳ９１３）。そして、ＣＰＵ２０１は、この印刷ジョブコマンドと印刷ジョブとをプリンター（デバイス）６０００に送信して（ステップＳ９１４）、プリンタードライバー５０２０に係る印刷処理を終了する。
【０１３３】
続いて、図１に示すクラウド１００における印刷処理について説明する。図１６ａ及び図１６ｂは、図１に示すクラウド１００における印刷処理を説明するためのフローチャートである。
【０１３４】
図３、図１６ａ及び図１６ｂを参照して、以下の説明においては、図２に示すディレクトリーサーバー１０００と第１及び第２の処理サーバー２０００及び３０００とが一体的に印刷処理の動作を行うものとして説明を行う。クラウド１００にはワーク領域として、印刷ジョブの総ページ数を管理するＴｏｔａｌ、送信済みページ数を管理するＳｅｎｔ  Ｐａｇｅ、印刷完了ページを管理するＰｒｉｎｔｅｄ  Ｐａｇｅ、ジョブＩＤを保持するＣｌｏｕｄ  Ｊｏｂ  ＩＤ等の変数が用意されている。
【０１３５】
クラウド１００において、ジョブ要求受付部１０２は、拡張ＵＩ情報の要求があった否かを判別する（ステップＳ１００１）。拡張ＵＩ情報の要求がないと（ステップＳ１００１において、ＮＯ）、ジョブ要求受付部１０２は待機する。
【０１３６】
一方、拡張ＵＩ情報の要求があると（ステップＳ１００１において、ＹＥＳ）、拡張ＵＩ生成部１０５において、受信したデバイスの機種とクラウド１００が提供する機能とに応じて拡張ＵＩ情報の生成が行われる（ステップＳ１００２）。そして、通信部１０１によって、拡張ＵＩ情報がホストコンピューター５０００（図１）に送られる（ステップＳ１００３）。
【０１３７】
続いて、ジョブ要求受付部１０２において、印刷ジョブ設定情報が受信されたか否かが判別される（ステップＳ１００４）、印刷ジョブ設定情報を受信しないと（ステップＳ１００４において、ＮＯ）、ジョブ要求受付部１０２では印刷ジョブ設定情報を受信するまで待機する。
【０１３８】
一方、印刷ジョブ設定情報を受信すると（ステップＳ１００４において、ＹＥＳ）、送信先判定部１０６によって、印刷ジョブ設定情報に基づいて印刷ジョブの送信先が判定される（ステップＳ１００５）。
【０１３９】
ここでは、印刷ジョブ設定情報に拡張ＵＩを用いた設定が含まれている場合には、送信先はクラウド１００とされる。印刷ジョブ設定情報に拡張ＵＩを用いた設定が含まれていないと、送信先はプリンター６０００とされる。そして、通信部１０１によって、送信先を示す送信先情報がホストコンピューター５０００に返送される（ステップＳ１００５）。
【０１４０】
続いて、送信先判定部１０６では、送信先がクラウド１００であるか否かを判別する（ステップＳ１００７）。送信先がクラウド１００でないと（ステップＳ１００７において、ＮＯ）、クラウド１００における印刷処理は終了する。
【０１４１】
送信先がクラウド１００であると（ステップＳ１００７において、ＹＥＳ）、ジョブ要求受付部１０２によって、印刷ジョブが受信されたか否かを判別する（ステップＳ１００８）。印刷ジョブを受信していないと（ステップＳ１００８において、ＮＯ）、ジョブ要求受付部１０２は印刷ジョブを受信するまで待機する。
【０１４２】
印刷ジョブを受信すると（ステップＳ１００８において、ＹＥＳ）、ジョブ要求受付部１０２によって、受信した印刷ジョブについてクラウドジョブＩＤが割り当てられて（ステップＳ１００９）、このクラウドジョブＩＤがＣｌｏｕｄ  Ｊｏｂ  ＩＤに格納される。
【０１４３】
続いて、通信部１０１によって、クラウドジョブＩＤがホストコンピューター５０００に返送される（ステップＳ１０１０）。そして、ジョブ処理部１０３によって印刷ジョブに応じた印刷処理が行われ（ステップＳ１０１１）、印刷データが生成される。例えば、印刷ジョブ設定情報に地紋の設定があると、地紋の付加処理が行われることになる。
【０１４４】
次に、ジョブ要求受付部１０２では、印刷ジョブ設定情報に応じて総ページ数をＴｏｔａｌに格納するとともに、Ｓｅｎｔ  ＰａｇｅとＰｒｉｎｔｅｄ  Ｐａｇｅとを０に初期化する（ステップＳ１０１２）。そして、ジョブ要求受付部１０２では、ホストコンピューター５０００から印刷ジョブコマンドを受信したか否かを判別する（ステップＳ１０１３）。
【０１４５】
印刷ジョブコマンドを受信していないと（ステップＳ１０１３において、ＮＯ）、ジョブ要求受付部１０２では、印刷ジョブコマンドを受信するまで待機する。なお、この印刷ジョブコマンドには、クラウドジョブＩＤ、印刷完了ページ数、及び印刷データ要求フラグが含まれている。
【０１４６】
一方、印刷ジョブコマンドを受信すると（ステップＳ１０１３において、ＹＥＳ）、ジョブ要求受付部１０２では、印刷ジョブコマンドに含まれるクラウドジョブＩＤがＣｌｏｕｄ  Ｊｏｂ  ＩＤと一致するか否かを判別する（ステップＳ１０１４）。一致していないと（ステップＳ１０１４において、ＮＯ）、ジョブ要求受付部１０２では、通信部１０１を介してホストコンピューター５０００に受信拒否を通知する（ステップＳ１０１５）。そして、ジョブ要求受付部１０２はステップＳ１０１３に戻る。
【０１４７】
印刷ジョブコマンドに含まれるクラウドジョブＩＤがＣｌｏｕｄ  Ｊｏｂ  ＩＤと一致すると（ステップＳ１０１４において、ＹＥＳ）、ジョブ要求受付部１０２では、印刷完了ページ数をＰｒｉｎｔｅｄ  Ｐａｇｅと比較する（ステップＳ１０１６）。そして、ジョブ要求受付部１０２では、印刷完了ページ数が増加しているか否かを判別する。
【０１４８】
印刷完了ページ数がＰｒｉｎｔｅｄ  Ｐａｇｅより増加していないと（ステップＳ１０１６において、ＮＯ）、ジョブ要求受付部１０２では、印刷ジョブコマンドに含まれる印刷データ要求フラグが立っているか否かを判別する（ステップＳ１０１７）。そして、印刷データ要求フラグが立っていないと（ステップＳ１０１７において、ＮＯ）、ジョブ要求受付部１０２はステップＳ１０１３に戻る。
【０１４９】
印刷データ要求フラグが立っていると（ステップＳ１０１７において、ＹＥＳ）、ジョブ要求受付部１０２では、ジョブ処理部１０３から受けた１ページ分の印刷データを、通信部１０１を介してプリンター６００に送信する（ステップＳ１０１８）。そして、ジョブ要求受付部１０２では、Ｓｅｎｔ  Ｐａｇｅをインクリメントして（ステップＳ１０１９）、ステップＳ１０１３に戻る。
【０１５０】
ステップＳ１０１６において、印刷完了ページ数がＰｒｉｎｔｅｄ  Ｐａｇｅより増加していると（ステップＳ１０１６において、ＹＥＳ）、ジョブ要求受付部１０２では、Ｐｒｉｎｔｅｄ  Ｐａｇｅに格納されたデータを削除して（ステップＳ１０２０）、続いて、Ｐｒｉｎｔｅｄ  Ｐａｇｅをインクリメントする（ステップＳ１０２１）。
【０１５１】
続いて、ジョブ要求受付部１０２では、ＴｏｔａｌとＰｒｉｎｔｅｄ  Ｐａｇｅとが一致するか否かを判別する（ステップＳ１０２２）。一致していないと（ステップＳ１０２２において、ＮＯ）、ジョブ要求受付部１０２は、ステップＳ１０１７に移行する。
【０１５２】
一方、ＴｏｔａｌとＰｒｉｎｔｅｄ  Ｐａｇｅとが一致していると（ステップＳ１０２２において、ＹＥＳ）、ジョブ要求受付部１０２では、Ｃｌｏｕｄ  Ｊｏｂ  ＩＤを０にリセットして（ステップＳ１９２３）、クラウド１００における印刷処理を終了する。
【０１５３】
図１７ａ及び図１７ｂは、図１に示すプリンター（デバイス）６０００における印刷処理を説明するためのフローチャートである。
【０１５４】
図４、図５、図１７ａ、及び図１７ｂを参照して、前述したように、図５に示す各機能は、図４に示すＣＰＵ３１２上で動作する。プリンター６０００には、ワーク領域として、総ページ数を保持するＴｏｔａｌ、受信したページ数を保持するＲｅｃｉｅｖｅｄ  Ｐａｇｅ、及び処理済のページ数を保持するＰｒｏｃｅｓｓｅｄ  Ｐａｇｅが備えられている。さらに、ワーク領域として、印刷完了したページ数を保持するＰｒｉｎｔｅｄ  Ｐａｇｅ、印刷中のジョブがあることを示す印刷中フラグが備えられている。
【０１５５】
プリンター６０００が起動されると、ＣＰＵ３１２は、印刷中の印刷ジョブがあるか否かを判別する（ステップＳ１１０１）。ここでは、印刷中フラグが立っていれば、ＣＰＵ３１２は印刷中の印刷ジョブがあると判別する。このように、印刷中フラグを用いることによって、例えば、印刷中に電源が落ちてしまった場合でも、印刷の途中から印刷を再開することが可能とある。
【０１５６】
印刷中の印刷ジョブがないと（ステップＳ１１０１において、ＮＯ）、ＣＰＵ３１２は、ホストコンピューター５０００から印刷ジョブを受信したか否かを判別する（ステップＳ１１０２）。印刷ジョブを受信していないと（ステップＳ１１０２において、ＮＯ）、ＣＰＵ３１２は印刷ジョブを受信するまで待機する。
【０１５７】
一方、印刷ジョブを受信すると（ステップＳ１１０２において、ＹＥＳ）、ＣＰＵ３１２は、受信した印刷ジョブがクラウド１００から取得する印刷ジョブであるか否かを判別する（ステップＳ１１０３）。
【０１５８】
受信した印刷ジョブがクラウド１００から取得する印刷ジョブであると（ステップＳ１１０３において、ＹＥＳ）、ＣＰＵ３１２は、受信した印刷ジョブに応じてその総ページ数をＴｏｔａｌに格納する（ステップＳ１１０４）。そして、ＣＰＵ３１２はＲｅｃｅｉｖｅｄ  Ｐａｇｅ、ＰｒｏｃｅｓｓｅｄＰａｇｅ及びＰｒｉｎｔｅｄ  Ｐａｇｅを０に初期化する。さらに、ＣＰＵ３１２は、印刷中フラグを立て、印刷中であることを示す印刷中情報を記録する（ステップＳ１１０５）。
【０１５９】
続いて、ＣＰＵ３１２は、印刷データ要求フラグを立て、クラウド１００に印刷ジョブコマンドを送信する（ステップＳ１１０６）。なお、ステップＳ１１０１において、印刷中の印刷ジョブがあると（ステップＳ１１０１において、ＹＥＳ）、ＣＰＵ３１２はステップＳ１１０６に移行する。
【０１６０】
次に、ＣＰＵ３１２は、クラウド１００から印刷データを受信したか否かを判別する（ステップＳ１１０７）。印刷データを受信していないと（ステップＳ１１０７において、ＮＯ）、ＣＰＵ３１２はステップＳ１１０６に戻って、処理を続行する。
【０１６１】
クラウド１００から印刷データを受信すると（ステップＳ１１０７において、ＹＥＳ）、ＣＰＵ３１２は、Ｒｅｃｅｉｖｅｄ  Ｐａｇｅをインクリメントする（ステップＳ１１０８）。そして、ＣＰＵ３１２は、印刷ジョブ設定情報に応じて、基本ＵＩ設定があるか否かを判別する（ステップＳ１１０９）。
【０１６２】
基本ＵＩ設定があると（ステップＳ１１０９において、ＹＥＳ）、ＣＰＵ３１２は、基本ＵＩ設定で設定された処理を実行する（ステップＳ１１１０）。例えば、基本ＵＩ設定において、部数が２部と設定されていれば、ＣＰＵ３１２はページ数を２部とする処理を行う。続いて、ＣＰＵ３１２は、Ｐｒｏｃｅｓｓｄ  Ｐａｇｅをインクリメントする（ステップＳ１１１１）。なお、ステップＳ１１０９において、基本ＵＩ設定がなければ（ステップＳ１１０９において、ＮＯ）、ＣＰＵ３１２はステップＳ１１１１に移行する。
【０１６３】
次に、ＣＰＵ３１２は、前述したようにして、出力処理を行う（ステップＳ１１１２）。そして、ＣＰＵ３１２は印刷ジョブ設定情報に応じて出力（印刷）が完了したかどうかを判別する（ステップＳ１１１３）。出力が完了していないと（ステップＳ１１１３において、ＮＯ）、ＣＰＵ３１２は出力が完了するまで待機する。
【０１６４】
出力が完了すると（ステップＳ１１１３において、ＹＥＳ）、ＣＰＵ３１２は、Ｐｒｉｎｔｅｄ  Ｐａｇｅをインクリメントする（ステップＳ１１１４）。そして、ＣＰＵ３１２は、印刷完了通知をクラウド１００に送信する（ステップＳ１１１５）。
【０１６５】
続いて、ＣＰＵ３１２は、Ｐｒｉｎｔｅｄ  ＰａｇｅとＴｏｔａｌとが一致するか否かを判別する（ステップＳ１１１６）。一致しないと（ステップＳ１１１６において、ＮＯ）、ＣＰＵ３１２はステップＳ１１０６に戻る。
【０１６６】
一方、Ｐｒｉｎｔｅｄ  ＰａｇｅとＴｏｔａｌとが一致すると（ステップＳ１１１６において、ＹＥＳ）、ＣＰＵ３１２は、出力が全て完了したとして、印刷中情報を削除する（ステップＳ１１１７）。そして、ＣＰＵ３１２は印刷処理を終了する。
【０１６７】
前述のステップＳ１１０３において、受信した印刷ジョブがクラウド１００から取得する印刷ジョブでないと（ステップＳ１１０３において、ＮＯ）、ＣＰＵ３１２は、印刷ジョブを基本ＵＩ設定に応じて実行する（ステップＳ１１１８）。そして、ＣＰＵ３１２は印刷物の出力処理を行って（ステップＳ１１１９）、印刷処理を終了する。
【０１６８】
このようにして、本発明の実施の形態によれば、クラウド１００を用いる必要がある拡張ＵＩ設定の際にのみクラウド１００を利用して印刷データを得て、この印刷データをプリンター６０００に送るようにしている。そして、クラウド１００を用いる必要のない基本ＵＩ設定においては、ホストコンピューター５０００から直接的に印刷ジョブをプリンター６０００に送るようにしている。従って、本実施の形態を用いれば、コストを低減しつつ必要に応じて外部のクラウド１００を用いて効率的に印刷処理を行うことができる。
【０１６９】
なお、上述の説明から明らかなように、ホストコンピューター５０００においては、ＣＰＵ２０１が送信先情報取得手段、第１の印刷ジョブ送信手段、及び第２の印刷ジョブ送信手段として機能することになる。
【０１７０】
また、クラウド１００においては、ＣＰＵ２０１が送信先判別手段、印刷処理手段、サーバー識別情報送信手段、及び印刷データ送信手段として機能することになる。
【０１７１】
以上、本発明について実施の形態に基づいて説明したが、本発明は、これらの実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。
【０１７２】
例えば、上記の実施の形態の機能を印刷制御方法として、この印刷制御方法を、選択的にホストコンピューター５０００、クラウド１００、及びプリンター６０００に実行させるようにすればよい。
【０１７３】
上述の実施の形態の機能を有するプログラムを印刷制御プログラムとして、この印刷制御プログラム、選択的にホストコンピューター５０００、クラウド１００、及びプリンター６０００に実行させるようにしてもよい。
【０１７４】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記録媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【０１７５】
１０  インターネット
１１  ＬＡＮ
１２  ＬＡＮ
１００  クラウド
１０００  ディレクトリーサーバー
２０００，３０００  処理サーバー
５０００  ホストコンピューター
６０００  プリンター
【図１】
0005528136.tif 000002
【図２】
0005528136.tif 000003
【図３】
0005528136.tif 000004
【図４】
0005528136.tif 000005
【図５】
0005528136.tif 000006
【図６】
0005528136.tif 000007
【図８】
0005528136.tif 000008
【図９】
0005528136.tif 000009
【図１０】
0005528136.tif 000010
【図１３】
0005528136.tif 000011
【図１４】
0005528136.tif 000012
【図１６ａ】
0005528136.tif 000013
【図１６ｂ】
0005528136.tif 000014
【図１７ａ】
0005528136.tif 000015
【図１７ｂ】
0005528136.tif 000016
【図７】
0005528136.tif 000017
【図１１】
0005528136.tif 000018
【図１２】
0005528136.tif 000019
【図１５】
0005528136.tif 000020