(57)【要約】【課題】印刷に用いる画像形成装置を選択するための画面をより適切に制御することを目的とする。【解決手段】印刷に用いられる画像形成装置の情報を有し、印刷のサービスを提供するサービス提供装置、及び、サービス提供装置から取得した画像形成装置の情報をもとに生成する、印刷の設定値を受け付ける印刷画面の画面情報を提供する画面提供装置、と通信可能であり、サービスの利用の際に用いられるユーザのユーザ情報と画像形成装置を識別可能な識別情報とを関連付けて記憶する記憶部を有する画像形成装置が、サービスの利用の際にユーザから当該ユーザのユーザ情報を受け付け、受け付けたユーザ情報に関連付けられている識別情報を記憶部から取得し、取得した識別情報を画面提供装置に送信し、画面提供装置から識別情報により識別された画像形成装置の情報が選択された印刷画面の画面情報を受信することによって課題を解決する。【選択図】図４
2013116559.tif 000002
【特許請求の範囲】
【請求項１】
印刷に用いられる画像形成装置の情報を有し、印刷のサービスを提供するサービス提供装置、及び、前記サービス提供装置から取得した画像形成装置の情報をもとに生成する、印刷の設定値を受け付ける印刷画面の画面情報を提供する画面提供装置、と通信可能であり、前記サービスの利用の際に用いられるユーザのユーザ情報と画像形成装置を識別可能な識別情報とを関連付けて記憶する記憶部を有する画像形成装置であって、
前記サービスの利用の際にユーザから当該ユーザのユーザ情報を受け付ける受付手段と、
前記受付手段で受け付けられたユーザ情報に関連付けられている識別情報を前記記憶部から取得する取得手段と、
前記取得手段で取得された識別情報を前記画面提供装置に送信し、前記画面提供装置から前記識別情報により識別された画像形成装置の情報が選択された印刷画面の画面情報を受信する通信手段と、を有することを特徴とする画像形成装置。
【請求項２】
前記記憶部には、当該画像形成装置の利用の際に用いられるユーザのユーザ情報が更に関連付けられて記憶され、
前記受付手段は、当該画像形成装置の利用の際にユーザから当該ユーザのユーザ情報を受け付け、
前記取得手段は、当該画像形成装置の利用の際に前記受付手段で受け付けられたユーザ情報に関連付けられている識別情報を前記記憶部から取得することを特徴とする請求項１記載の画像形成装置。
【請求項３】
前記受付手段で受け付けられたユーザ情報に関連付けられている識別情報を前記記憶部から前記取得手段が取得できないと判断した場合、前記ユーザ情報あるいは前記受付手段で新たに受け付けられたユーザ情報を前記サービス提供装置に送信し、送信されたユーザ情報に対して前記サービス提供装置で発行された画像形成装置を識別可能な識別情報を受信し、前記識別情報を前記ユーザ情報と関連付けて前記記憶部に記憶する記憶手段を更に有することを特徴とする請求項１記載の画像形成装置。
【請求項４】
当該画像形成装置の位置を特定可能な特定情報を取得する特定情報取得手段を更に有し、
前記通信手段は、前記特定情報取得手段で取得された特定情報を前記画面提供装置に送信し、前記画面提供装置から前記特定情報で特定される位置から一定の位置に存在する画像形成装置の情報が設定された印刷画面の画面情報を受信することを特徴とする請求項１記載の画像形成装置。
【請求項５】
印刷のサービスとして前記印刷の設定値を受け付ける印刷画面の画面情報を提供するサービスシステムと通信可能であり、前記サービスの利用の際に用いられるユーザのユーザ情報と画像形成装置を識別可能な識別情報とを関連付けて記憶する記憶部を有する画像形成装置であって、
前記サービスの利用の際にユーザから当該ユーザのユーザ情報を受け付ける受付手段と、
前記受付手段で受け付けられたユーザ情報に関連付けられている識別情報を前記記憶部から取得する取得手段と、
前記識別情報により識別された画像形成装置の情報が選択された印刷画面を前記サービスシステムに要求し、前記サービスシステムから送信された前記印刷画面の画面情報をもとに前記印刷画面を表示部に表示する表示手段と、を有することを特徴とする画像形成装置。
【請求項６】
印刷に用いられる画像形成装置の情報を有し、印刷のサービスを提供するサービス提供装置、及び、前記サービス提供装置から取得した画像形成装置の情報をもとに生成する、印刷の設定値を受け付ける印刷画面の画面情報を提供する画面提供装置、と通信可能であり、前記サービスの利用の際に用いられるユーザのユーザ情報と画像形成装置を識別可能な識別情報とを関連付けて記憶する記憶部を有する画像形成装置の制御方法であって、
受付手段が、前記サービスの利用の際にユーザから当該ユーザのユーザ情報を受け付ける受付工程と、
取得手段が、前記受付工程で受け付けられたユーザ情報に関連付けられている識別情報を前記記憶部から取得する取得工程と、
通信手段が、前記取得工程で取得された識別情報を前記画面提供装置に送信し、前記画面提供装置から前記識別情報により識別された画像形成装置の情報が選択された印刷画面の画面情報を受信する通信工程と、を有することを特徴とする制御方法。
【請求項７】
印刷のサービスとして前記印刷の設定値を受け付ける印刷画面の画面情報を提供するサービスシステムと通信可能であり、前記サービスの利用の際に用いられるユーザのユーザ情報と画像形成装置を識別可能な識別情報とを関連付けて記憶する記憶部を有する画像形成装置の制御方法であって、
受付手段が、前記サービスの利用の際にユーザから当該ユーザのユーザ情報を受け付ける受付工程と、
取得手段が、前記受付工程で受け付けられたユーザ情報に関連付けられている識別情報を前記記憶部から取得する取得工程と、
表示手段が、前記識別情報により識別された画像形成装置の情報が選択された印刷画面を前記サービスシステムに要求し、前記サービスシステムから送信された前記印刷画面の画面情報をもとに前記印刷画面を表示部に表示する表示工程と、を有することを特徴とする制御方法。
【請求項８】
印刷に用いられる画像形成装置の情報を有し、印刷のサービスを提供するサービス提供装置、及び、前記サービス提供装置から取得した画像形成装置の情報をもとに生成する、印刷の設定値を受け付ける印刷画面の画面情報を提供する画面提供装置、と通信可能であり、前記サービスの利用の際に用いられるユーザのユーザ情報と画像形成装置を識別可能な識別情報とを関連付けて記憶する記憶部を有する画像形成装置のコンピュータに、
前記サービスの利用の際にユーザから当該ユーザのユーザ情報を受け付ける受付工程と、
前記受付工程で受け付けられたユーザ情報に関連付けられている識別情報を前記記憶部から取得する取得工程と、
前記取得工程で取得された識別情報を前記画面提供装置に送信し、前記画面提供装置から前記識別情報により識別された画像形成装置の情報が選択された印刷画面の画面情報を受信する通信工程と、を実行させるプログラム。
【請求項９】
印刷のサービスとして前記印刷の設定値を受け付ける印刷画面の画面情報を提供するサービスシステムと通信可能であり、前記サービスの利用の際に用いられるユーザのユーザ情報と画像形成装置を識別可能な識別情報とを関連付けて記憶する記憶部を有する画像形成装置のコンピュータに、
前記サービスの利用の際にユーザから当該ユーザのユーザ情報を受け付ける受付工程と、
前記受付工程で受け付けられたユーザ情報に関連付けられている識別情報を前記記憶部から取得する取得工程と、
前記識別情報により識別された画像形成装置の情報が選択された印刷画面を前記サービスシステムに要求し、前記サービスシステムから送信された前記印刷画面の画面情報をもとに前記印刷画面を表示部に表示する表示工程と、を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置、制御方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、クライアントからサーバに対して印刷指示を送信し、印刷指示を受信したサーバが印刷対象のコンテンツを印刷データに変換するコンテンツ印刷システムがある。近年、クラウドコンピューティングが注目されているが、これも前述のコンテンツ印刷システム同様、サーバがクライアントにサービスを提供する形態の１つと捉えることができる。
クラウドコンピューティングとしては、多くのコンピューティング・リソースを用いてデータ変換、データ処理などを分散して実行し、多くのクライアントからの要求を同時に処理することが主な特徴である。現在、クラウドコンピューティングを実現するクラウドコンピューティング環境上にＷｅｂサービスを実装し、多種多様なサービスを提供するベンダが乱立しつつある。
【０００３】
中でも注目すべきベンダは、検索エンジンであるＧｏｏｇｌｅ（登録商標）を提供するグーグル社である。グーグル社は、大規模なデータセンターを多数設立する他、画像形成装置などのデバイスと連携させて提供するサービスを提案し、デバイスとサービス間のデータ通信の仕組みを開発する等の積極的な動きを見せている。例えば、グーグル社は、画像形成装置と連携してサービスを提供するためのデータ通信の仕組みを開発し、グーグル社が用意したクラウドコンピューティング環境において画像形成装置がデータ通信を行うためのインターフェースを公開した。
このインターフェースが画像形成装置に実装されることで、画像形成装置とサーバとがインターネットを介して接続されていた場合、クライアントから画像形成装置を指定して印刷させることが可能になる。また、このようなシステムに対して印刷を依頼するためのインターフェースも公開されており、このインターフェースを実装することで、容易に印刷機能を備えたＷｅｂアプリケーションを開発することが可能となる。
【０００４】
一方で、ＰＣ（パーソナルコンピュータ）などの情報処理装置がネットワーク上のＷｅｂサーバに接続され、Ｗｅｂサーバにより提供される操作画面を、情報処理装置が備えるＷｅｂブラウザ上に表示することが知られている。
この場合、まず情報処理装置のＷｅｂブラウザが、Ｗｅｂサーバに対して操作画面を要求（リクエスト）する。そして、ＷｅｂサーバのＷｅｂアプリケーションが情報処理装置からの要求に応えて、Ｗｅｂブラウザに操作画面を表示させるためのＨＴＭＬデータを情報処理装置に応答（レスポンス）する。情報処理装置のＷｅｂブラウザは、受信したＨＴＭＬデータを解析し、ＨＴＭＬデータの記述に基づいた操作画面を表示する。
更に、Ｗｅｂブラウザに表示された操作画面を介してユーザが指示を入力すると、入力された指示をＷｅｂブラウザがＷｅｂサーバに対して通知する。そして、この通知を受けたＷｅｂサーバのＷｅｂアプリケーションは、入力された指示に従って処理を実行する。
【０００５】
近年、スキャナ、プリンタ等を備えたＭＦＰ（Multi Function Peripheral）の中にも、上述したようなＷｅｂブラウザを備えているものがある。そして、ＭＦＰは、上述した手順を用いてＷｅｂサーバにより提供される操作画面をＭＦＰのＷｅｂブラウザに表示し、ユーザからの各種の指示を受け付ける。
また更には、ＭＦＰが備える各機能を利用するための指示を入力する操作画面をＷｅｂサーバが提供し、ユーザがＷｅｂブラウザに表示された操作画面を介して、ＭＦＰに対する指示を入力するシステムも考えられている。このシステムでは、Ｗｅｂサーバは、ユーザから入力された指示の内容に従って、ＭＦＰに対して各種の処理の実行を依頼する。そして、この依頼を受けたＭＦＰは、依頼された処理を実行する。これにより、ＭＦＰを操作するための全ての操作画面をＭＦＰ内で保持しておく必要がなくなり、また操作画面の変更もＷｅｂサーバにおいて容易に行うことができるようになる。
【０００６】
より具体的には、ＲＰＣ（Remote Procedure Call）等のようにリモートからの呼び出しがができるようにＭＦＰの各機能を公開し、Ｗｅｂサーバから適宜呼び出す方法が考えられている。この方法では、Ｗｅｂサーバに処理のメインロジックを持たせ、ＭＦＰの制御、ユーザとの対話的処理などをＷｅｂサーバに実行させて、ＭＦＰにおける処理の負荷を軽減させることができる。
例えば、ＷｅｂサービスとしてＭＦＰの機能を公開することで、Ｗｅｂサーバからはローカルなサブルーチンを呼び出すようにＭＦＰが提供する機能を実行できる。また、この呼び出しの応答を管理することで、処理のメインロジックをＷｅｂサーバに持たせることができる。
また更には、Ｗｅｂブラウザに表示された操作画面を介して入力された指示に基づいてＷｅｂサーバが制御スクリプトを提供し、ＭＦＰなどのデバイスがその制御スクリプトを実行することで、デバイスを操作する仕組みも考えられている。
【０００７】
上述したシステムでは、制御スクリプトは、Ｗｅｂブラウザからのリクエストに対する応答としてデバイスに渡される。そのため、Ｗｅｂサーバからデバイスにコネクションを張る必要がなく、デバイスがファイアウォールで守られていたり、ネットワークアドレス変換を用いる環境に存在したりする場合でも利用が可能である。
ここで、特許文献１では、デバイスの機能に対する設定値を示す機器情報をサーバに送信する仕組みが提案されており、予め決められたＵＩ画面をサーバからデバイスに送るのみではなく、デバイス毎の設定可能な項目に応じた設定画面を送る方法が開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００６−１２９３５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上述のようなシステムを利用するＷｅｂアプリケーションでは、システムに対して印刷の実行の指示を出す際には、印刷を実行する対象となるプリンタ（ＭＦＰ）をユーザに予め選択させる。即ち、ユーザは、システムに対してどのプリンタで印刷するのかについての指示を出す必要がある。
しかしながら、ユーザがプリンタの選択画面からプリンタを選択する際に、ユーザが利用可能なプリンタの選択肢が多く表示されている場合、ユーザは、プリンタの選択に手間取る。また、ユーザが間違ってプリンタを選択した場合は、ユーザが意図したプリンタとは違うプリンタで印刷が実行されてしまう。特に、Ｗｅｂブラウザを搭載したＭＦＰをクライアントとした場合、ユーザは操作中のＭＦＰで印刷をしたいという意図があるため、プリンタを選択する作業そのものがそのユーザにとって手間となる。
特許文献１では、デバイスの能力に応じたＵＩを作成して提供する構成が提案されているが、外部の印刷サービスを利用した際のＵＩ画面の作成方法については言及されていない。よって、特許文献１に記載のシステムの構成では、外部の印刷サービスから提供されるプリンタの選択画面においてプリンタの選択の手間を省くことはできない。
【００１０】
本発明はこのような問題点に鑑みなされたもので、印刷に用いる画像形成装置を選択するための画面をより適切に制御することを目的とする。
【課題を解決するための手段】
【００１１】
そこで、本発明に係る画像形成装置は、印刷に用いられる画像形成装置の情報を有し、印刷のサービスを提供するサービス提供装置、及び、前記サービス提供装置から取得した画像形成装置の情報をもとに生成する、印刷の設定値を受け付ける印刷画面の画面情報を提供する画面提供装置、と通信可能であり、前記サービスの利用の際に用いられるユーザのユーザ情報と画像形成装置を識別可能な識別情報とを関連付けて記憶する記憶部を有する画像形成装置であって、前記サービスの利用の際にユーザから当該ユーザのユーザ情報を受け付ける受付手段と、前記受付手段で受け付けられたユーザ情報に関連付けられている識別情報を前記記憶部から取得する取得手段と、前記取得手段で取得された識別情報を前記画面提供装置に送信し、前記画面提供装置から前記識別情報により識別された画像形成装置の情報が選択された印刷画面の画面情報を受信する通信手段と、を有することを特徴とする。
【００１２】
また、本発明は、方法、プログラム、システム、記憶媒体としてもよい。
【発明の効果】
【００１３】
本発明によれば、印刷に用いる画像形成装置を選択するための画面をより適切に制御することができる。
【図面の簡単な説明】
【００１４】
【図１】コンテンツ印刷システムの構成の一例を示す図である。
【図２】ＭＦＰのハードウェアの構成の一例を示す図である。
【図３】情報処理装置のハードウェアの構成の一例を示す図である。
【図４】コンテンツ印刷システムのソフトウェアの構成の一例を示す図である。
【図５】ユーザ情報管理テーブルの一例を示す図である。
【図６】スキャンを実行する一連の処理に係るシーケンスの一例を示す図である。
【図７】シーケンスに係るフローチャートの一例を示す図である。
【図８】ＨＴＴＰレスポンスの一例を示す図である。
【図９】結果の一例を示す図である。
【図１０】印刷を実行する一連の処理に係るシーケンスの一例を示す図である。
【図１１】画面、プリンタ情報の一例を示す図である。
【図１２】印刷指示、印刷指示応答の一例を示す図である。
【図１３】画面、画面のＨＴＭＬデータの一例を示す図である。
【図１４】通知情報の一例を示す図である。
【図１５】印刷設定値の一例を示す図である。
【図１６】ジョブ状態変更通知、ジョブ状態変更通知応答の一例を示す図である。
【図１７】ジョブ状態取得要求、ジョブ状態取得要求応答の一例を示す図である。
【図１８】印刷を実行する一連の処理に係るシーケンスの一例を示す図である。
【図１９】画面、プリンタ登録指示、プリンタ登録指示応答の一例を示す図である。
【図２０】プリンタ登録処理に係るフローチャートの一例を示す図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態について図面に基づいて説明する。なお、実施形態は、本発明を限定するものではなく、また、実施形態で説明されている全ての構成が本発明の課題を解決するための手段に必須であるとは限らない。
【００１６】
＜第１の実施形態＞
図１は、本実施形態に係るコンテンツ印刷システムの構成の一例を示す図である。本コンテンツ印刷システムは、印刷のサービスを提供するサービスシステムの一例であり、ＭＦＰ１０１と、Ｗｅｂアプリケーションサーバ１０２と、印刷サーバ１０３とを含んで構成される。ネットワーク１００は、各装置間で通信を行うための媒体であって、インターネット１０４に接続されている。
ＭＦＰ１０１、Ｗｅｂアプリケーションサーバ１０２、及び印刷サーバ１０３は、インターネット１０４を介して通信可能に接続され、互いにデータ通信することができる。なお、各装置は、複数台あってもよい。
ここで、ＭＦＰ１０１は、画像形成装置の一例であり、ローカルなＩＰアドレスで管理されていてもよい。その場合、ネットワーク１００及びＭＦＰ１０１の間にゲートウェイ（不図示）が存在し、ゲートウェイがアドレス変換を行う。なお、ゲートウェイにはルータが含まれる。即ち、コンテンツ印刷システムは、ゲートウェイ、ファイアウォール機能を有するＭＦＰ１０１を備えていてもよい。
Ｗｅｂアプリケーションサーバ１０２は、Ｗｅｂコンテンツ（ＨＴＭＬデータ等）を、ネットワークを介して配信する機能を有し、ＭＦＰ１０１からのリクエストに応じてＷｅｂコンテンツを返す。
【００１７】
図２は、ＭＦＰ１０１のハードウェアの構成の一例を示す図である。ＭＦＰ１０１は、当該装置を制御するＣＰＵ２０１、ＣＰＵ２０１のワークエリアを提供するＲＡＭ２０２、画像を読み取る読取装置２０３、画像を印刷する印刷装置２０４、及びプログラム、設定値等を記憶する記憶装置２０５（ＨＤＤ、ＮＶＲＡＭ等）を有する。ＲＡＭ２０２及び記憶装置２０５は、各種の情報を記憶する記憶部の一例である。
更に、ＭＦＰ１０１は、ユーザがコマンドの入力を行うユーザ入力装置２０６、画面の表示を行うＵＩ表示装置２０７、他装置とネットワーク１００を介した通信を行うネットワーク装置２０８、及びメインバス２００を有する。ＵＩ表示装置２０７は、各種の情報を表示する表示部の一例である。
なお、本実施形態では特に断らない限り、ＣＰＵ２０１が、メインバス２００を介してＲＡＭ２０２、読取装置２０３、印刷装置２０４、記憶装置２０５、ユーザ入力装置２０６、ＵＩ表示装置２０７、及びネットワーク装置２０８を制御する。また、タッチパネルディスプレイのように、ＵＩ表示装置２０７がユーザ入力装置２０６を兼ねる構成であってもよい。
【００１８】
図３は、Ｗｅｂアプリケーションサーバ１０２及び印刷サーバ１０３が有する情報処理装置（コンピュータ）のハードウェアの構成の一例を示す図である。情報処理装置は、当該装置を制御するＣＰＵ３０１、ＣＰＵ３０１のワークエリアを提供するＲＡＭ３０２、プログラム、設定値等を記憶する記憶装置３０３、他装置とネットワーク１００による通信を行うネットワーク装置３０４、及びメインバス３００を有する。
なお、本実施形態では特に断らない限り、ＣＰＵ３０１が、メインバス３００を介してＲＡＭ３０２、記憶装置３０３、及びネットワーク装置３０４を制御する。付言するならば、ＭＦＰ１０１は、上述した情報処理装置の構成と同様な構成、即ちＣＰＵ２０１、ＲＡＭ２０２、記憶装置２０５、ネットワーク装置２０８等を含んで構成される情報処理装置（コンピュータ）を有している。
【００１９】
図４は、コンテンツ印刷システムのソフトウェア（機能部）の構成の一例を示す図である。図４に示す各機能部、及び後述する処理は、各装置の各々が有しているＣＰＵがプログラムを記憶装置からＲＡＭに読み出して実行することにより実現される。なお、各装置における機能部および後述する処理の一部、又は全部を専用のハードウェアを用いて構成してもよい。
Ｗｅｂアプリケーションサーバ１０２は、Ｗｅｂアプリケーション４１０を有する。Ｗｅｂアプリケーション４１０は、プレゼンテーション部４１１、ロジック部４１２、プリンタ情報取得部４１３、印刷指示部４１４、及びジョブ状態取得部４１５を有する。
【００２０】
プレゼンテーション部４１１は、ＭＦＰ１０１からのリクエストに応答してＷｅｂブラウザ４２０で表示すべき画面の情報（ＨＴＭＬデータ等）、サービスプロバイダ４４０への処理要求などを、ＭＦＰ１０１にレスポンスとして送信する。また、プレゼンテーション部４１１は、ＭＦＰ１０１のＷｅｂブラウザ４２０に表示された画面を介して入力されたユーザからの入力情報をＭＦＰ１０１から受信する。
ロジック部４１２は、プレゼンテーション部４１１から渡されたＭＦＰ１０１からの入力情報に対して処理を行う。例えば、ユーザからの入力情報に応じて、表示すべき画面を変更したり、ＭＦＰ１０１の各種の機能の実行のための処理要求を作成したりする。
プリンタ情報取得部４１３、印刷指示部４１４、及びジョブ状態取得部４１５は、ロジック部４１２からの指示に従って、印刷サービス４７０の印刷サービス提供部４７５と通信を行う。印刷サービス提供部４７５との通信の詳細については後述する。
【００２１】
ＭＦＰ１０１は、Ｗｅｂブラウザ４２０、転送アプリケーション４３０、サービスプロバイダ４４０、ジョブ制御部４５０、及び印刷プロキシ４６０を有する。なお、上述したように、Ｗｅｂブラウザ４２０、転送アプリケーション４３０、サービスプロバイダ４４０等は、ＭＦＰ１０１のＣＰＵ２０１がプログラムを記憶装置２０５からＲＡＭ２０２に読み出して実行することにより実現される。
ここで、Ｗｅｂブラウザ４２０については、Ｗｅｂアプリケーションサーバ１０２のコンテンツを表示するものに限定するものではない。同様に、Ｗｅｂアプリケーションサーバ１０２についてもＨＴＴＰプロトコルに従ってリクエスト／レスポンスを送受信するＷｅｂアプリケーションサーバに限定するものではない。Ｗｅｂブラウザ４２０は、任意のサーバと通信を行うことによってコンテンツを取得し、画面に表示するといった機能を有するものである。
【００２２】
Ｗｅｂブラウザ４２０は、通信部４２１、解析部４２２、画面表示部４２３、転送アプリ起動部４２４、及びアップロード処理部４２５を有する。通信部４２１は、ＨＴＴＰプロトコルに従って、Ｗｅｂアプリケーションサーバ１０２のＷｅｂアプリケーション４１０のプレゼンテーション部４１１と通信する。より具体的には、通信部４２１は、Ｗｅｂブラウザ４２０で表示した画面を介して入力される情報（入力情報）をＷｅｂアプリケーション４１０に対するリクエストとして送信する。また、通信部４２１は、Ｗｅｂアプリケーション４１０から送信されるレスポンスを受信する。
解析部４２２は、Ｗｅｂアプリケーション４１０から受信したレスポンスを解析する。レスポンスの中にはＷｅｂブラウザ４２０に表示すべき画面の内容を示すＨＴＭＬデータ、サービスプロバイダ４４０への処理要求などが含まれている。解析部４２２は、レスポンス（より具体的にはＨＴＴＰレスポンスヘッダ）のＣｏｎｔｅｎｔ−Ｔｙｐｅフィールドが既定の情報「ａｐｐｌｉｃａｔｉｏｎ／ｖｎｄ．ｋａｎｏｎ．ｗｅｂｓｅｒｖｉｃｅ」であるかを確認する。既定の情報である場合は、解析部４２２は、レスポンスがサービスプロバイダ４４０への処理要求であると判断し、転送アプリ起動部４２４に受信したレスポンスに対する処理を依頼する。
【００２３】
画面表示部４２３は、解析部４２２による解析結果に基づいて、ＨＴＭＬデータを画面としてＵＩ表示装置２０７に表示する。転送アプリ起動部４２４は、解析部４２２による解析結果に基づいて、Ｗｅｂアプリケーション４１０から受信したレスポンスを処理要求とみなして、転送アプリケーション４３０に対し、サービスプロバイダ４４０に転送するように依頼する。
なお、レスポンスがＭＦＰ１０１への処理要求であるかどうかを判別する構成については、上述の構成に限られるものではなく、ＨＴＴＰレスポンスヘッダを参照する以外の適宜の構成を採用してもよい。
アップロード処理部４２５は、ＭＦＰ１０１内部からの要求に応じて、指定されたデータを、通信部４２１を介してＷｅｂアプリケーションサーバ１０２に送信する。本実施形態では、ＨＴＴＰ ＰＯＳＴコマンドを用いて指定のデータをアップロードする構成を採用しているが、Ｗｅｂブラウザ４２０が処理可能なプロトコルを適宜採用することができる。
【００２４】
転送アプリケーション４３０は、動作要求送信部４３１及び制御部４３２を有する。動作要求送信部４３１は、制御部４３２から依頼を受け、サービスプロバイダ４４０の動作要求受信部４４１に処理要求を転送し、処理要求に対する処理部４４２による処理の結果を受信する。
制御部４３２は、Ｗｅｂブラウザ４２０の転送アプリ起動部４２４からの依頼を受け、サービスプロバイダ４４０への処理要求を、動作要求送信部４３１を介して転送する。このとき、制御部４３２は、Ｗｅｂアプリケーション４１０から受信したレスポンスに含まれている宛先（図８（Ａ）に示すようなＨＴＴＰレスポンスヘッダ８００の宛先８０１）に転送を行う。
【００２５】
また、転送アプリケーション４３０は、Ｗｅｂブラウザ４２０が受信したレスポンスの一部をサービスプロバイダ４４０へ転送したり、サービスプロバイダ４４０の処理結果をＷｅｂブラウザ４２０へ転送したりする。また、転送アプリケーション４３０は、一般的にＷｅｂブラウザ４２０で対応できない形式のファイル（音声、動画、アニメーションなど）を処理できるようにするヘルパーアプリケーションとして動作し、Ｗｅｂブラウザ４２０と独立して動作する。
しかしながら、転送アプリケーション４３０は、ヘルパーアプリケーションである必要はなく、処理要求の転送を行う機能を有するプラグイン、Ｗｅｂブラウザ４２０の一機能でもよい。また、転送アプリケーション４３０については、Ｗｅｂアプリケーション４１０から受信したレスポンスに含まれるＪＡＶＡＳＣＲＩＰＴ（登録商標）で記述されたソースコードが実行されることで実現されてもよい。
【００２６】
サービスプロバイダ４４０は、動作要求受信部４４１及び処理部４４２を有する。動作要求受信部４４１は、転送アプリケーション４３０から処理要求を受け付ける。処理部４４２は、動作要求受信部４４１が受け付けた処理要求を受け取り、依頼された処理を実行する。
なお、サービスプロバイダ４４０は、様々な処理を行う機能部であり、機能ごとに分かれて複数存在してもよい。例えば、印刷機能を持ったサービスプロバイダ及びスキャン機能を持ったサービスプロバイダが存在し、これらのサービスプロバイダは、処理要求に従って、ジョブ制御部４５０のジョブ管理部４５１に対してジョブを登録する。
【００２７】
ジョブ制御部４５０は、ジョブ管理部４５１及びジョブ実行部４５２を有する。ジョブ管理部４５１は、スキャン、プリントなど、ハードウェア資源を利用するジョブの管理を行う。ジョブ実行部４５２は、ジョブ管理部４５１で管理されているジョブに従って処理を実行する。
印刷プロキシ４６０は、印刷サービス通信モジュール４６１、印刷ジョブ生成部４６６、制御部４６７、プリンタ識別情報提供部４６８、及びユーザ情報格納部４６９を有する。印刷サービス通信モジュール４６１は、印刷データ取得部４６２、ジョブ状態送信部４６３、印刷設定取得部４６４、印刷通知受信部４６５、及びプリンタ登録指示部４９１を有する。
【００２８】
印刷通知受信部４６５は、印刷サービス４７０の印刷通知送信部４８３から送信される通知情報を受信する。印刷サービス通信モジュール４６１と、印刷サービス４７０のプリンタ通信モジュール４８０とは、対をなす機能部であり、印刷通知受信部４６５は、印刷通知送信部４８３が送信する通知情報を解釈することが可能である。印刷通知受信部４６５と印刷通知送信部４８３との通信コネクションは、印刷通知送信部４８３から必要に応じて張ってもよいし、常に張られている状態でもよい。また、印刷通知受信部４６５から一定時間ごとに印刷通知送信部４８３に通知情報を問い合わせる構成であってもよい。印刷通知受信部４６５から一定時間ごとに印刷通知送信部４８３に通知情報を問い合わせる構成を採用した場合は、ユーザ情報格納部４６９により記憶装置２０５に格納されているユーザ情報のユーザごとに一定時間ごとに切り替えて問い合わせを行う。
更に、印刷サービス通信モジュール４６１とプリンタ通信モジュールと４８０との間の通信コネクションを確立する際に、ユーザ認証を行う必要がある場合が存在する。この場合は、利用しているユーザに合わせて認証を行う。
【００２９】
印刷データ取得部４６２は、印刷通知受信部４６５で受信した通知情報に含まれている印刷データの取得先を示す印刷データ取得先情報をもとに印刷データを取得する。印刷設定取得部４６４は、印刷通知受信部４６５で受信した通知情報に含まれている印刷設定値の取得先を示す印刷設定取得先情報をもとに印刷設定値を取得する。
プリンタ登録指示部４９１は、制御部４６７の指示に従って、プリンタ登録受付部４８５に対して、印刷サービス４７０にＭＦＰ１０１を登録するように依頼する。制御部４６７は、印刷データ取得部４６２及び印刷設定取得部４６４が取得した印刷データ及び印刷設定値に従って、印刷ジョブ生成部４６６にジョブ（印刷ジョブ）の生成を依頼する。印刷ジョブ生成部４６６は、制御部４６７の依頼に従ってジョブを生成し、生成したジョブをジョブ管理部４５１に渡す。
ジョブ状態送信部４６３は、印刷サービス４７０で管理されるジョブの状態の変更を通知する。ジョブ状態送信部４６３は、印刷が完了した場合など、ジョブの状態が変更された場合に、制御部４６７の指示に従ってジョブ状態受信部４８４に対してジョブ状態変更通知を送信する。
【００３０】
プリンタ識別情報提供部４６８は、サービスプロバイダ４４０からのプリンタＩＤ取得要求に従って、制御部４６７を介してユーザ情報格納部４６９により格納された該当ユーザに対応するプリンタＩＤを取得し、サービスプロバイダ４４０に提供する。この際、サービスプロバイダ４４０からのプリンタＩＤ取得要求には、プリンタＩＤを特定するための情報が含まれる。本実施形態においては、プリンタＩＤを特定するための情報としてユーザアカウントが用いられる。
ユーザ情報格納部４６９は、ユーザ情報管理テーブルを管理する。図５にユーザ情報管理テーブルの一例（ユーザ情報管理テーブル５００）を示す。ユーザ情報管理テーブル５００には、プリンタＩＤ５０１、並びに、ユーザが印刷サービス４７０を利用する際に必要なユーザアカウント５０２及びパスワード５０３が記憶されている。即ち、ＭＦＰ１０１の記憶装置２０５には、プリンタＩＤ５０１、ユーザアカウント５０２、及びパスワード５０３が関連付けられて格納されている。
プリンタＩＤ５０１は、印刷サービス４７０を利用するユーザ、及び印刷サービス４７０に対応したプリンタ（ＭＦＰ）に一意であり、ユーザごとにプリンタを識別可能な識別子である。プリンタＩＤ５０１は、印刷プロキシ４６０のプリンタ登録指示部４９１からの、印刷サービス４７０のプリンタ登録受付部４８５に対するプリンタ登録指示に従って印刷サービス４７０が予め発行したものであり、印刷サービス４７０により管理されている。
【００３１】
印刷プロキシ４６０は、ＭＦＰ１０１一台に対して、利用するユーザごとに印刷サービス４７０に対してプリンタＩＤ５０１の発行を要求し、ユーザごとにプリンタＩＤを管理している。これにより、印刷サービス４７０に対するクライアントとして、ＭＦＰ１０１を複数のユーザで利用することが可能となる。
また、印刷プロキシ４６０は、印刷サービス４７０と通信する際は、利用しているユーザに合わせてユーザアカウント５０２及びパスワード５０３を利用し、印刷サービス４７０の認証をパスする。
また、ユーザ情報格納部４６９は、制御部４６７の指示に従って、ユーザアカウント５０２をもとに、ユーザアカウント５０２のユーザに対するプリンタＩＤ５０１と、ユーザアカウント５０２に対応するパスワード５０３とを特定することができる。
【００３２】
上述したように、本実施形態では、ユーザ情報管理テーブル５００からプリンタＩＤ５０１を特定するためにユーザアカウント５０２が利用されるが、プリンタＩＤ５０１を特定する構成は、この構成に限られるものではない。例えば、ＭＦＰ１０１ではユーザ管理が行われ、ＭＦＰ１０１を利用する際にログインが必要な仕組みであった場合、ユーザ情報管理テーブル５００にＭＦＰ１０１のユーザアカウントを追加して管理してよい。
即ち、ユーザ情報格納部４６９は、制御部４６７の指示に従って、ＭＦＰ１０１にログインしているユーザのユーザアカウントからプリンタＩＤを特定してもよい。この場合、サービスプロバイダ４４０からプリンタ識別情報提供部４６８へのプリンタＩＤ取得要求は、プリンタＩＤを特定するための情報を含む必要はない。
【００３３】
印刷サーバ１０３は、印刷のサービスを提供するサービス提供装置の一例であり、印刷サービス４７０を有する。印刷サービス４７０は、印刷データ情報取得部４７１、制御部４７２、プリンタ情報格納部４７３、ジョブ状態格納部４７４、印刷サービス提供部４７５、及びプリンタ通信モジュール４８０を有する。印刷サービス４７０は、Ｗｅｂアプリケーション４１０から印刷データを取得し、プリンタ、またはそれに準拠するインターフェースを持つデバイスに対して通知情報を送信することで印刷を遂行する。
印刷サービス提供部４７５は、印刷指示受付部４７６、プリンタ情報提示部４７７、及びジョブ状態提示部４７８を有する。プリンタ情報提示部４７７は、Ｗｅｂアプリケーション４１０のプリンタ情報取得部４１３からの一覧リスト取得要求を受けたことに応じて、プリンタの一覧リスト（図１１（Ｂ）に示すようなプリンタ情報）をプリンタ情報取得部４１３に送信する。なお、プリンタ情報提示部４７７は、Ｗｅｂアプリケーション４１０から送信されるユーザ情報（ユーザアカウント等）をもとに、当該ユーザ情報のユーザが利用可能なプリンタの一覧リストを生成する。印刷指示受付部４７６は、印刷に係る情報を含む印刷指示（図１２（Ａ）に示すような印刷指示）をＷｅｂアプリケーション４１０の印刷指示部４１４から受信する。
【００３４】
制御部４７２は、印刷指示受付部４７６から印刷指示を受信し、印刷データ情報取得部４７１は、制御部４７２の指示に従って、印刷指示に含まれるコンテンツの取得先を示す情報をもとにＷｅｂアプリケーション４１０から印刷対象となるコンテンツを取得する。また、印刷データ情報取得部４７１は、印刷指示に含まれるユーザが指定した印刷設定値を取得し、印刷指示に含まれる選択されているプリンタのプリンタＩＤを取得する。
なお、印刷データ情報取得部４７１は、Ｗｅｂアプリケーション４１０から取得したコンテンツと印刷設定値とをもとに、必要に応じてコンテンツを印刷データに変換する場合もある。即ち、印刷設定値でファイルフォーマット変換が指定されている場合、印刷データ情報取得部４７１は、コンテンツのファイルフォーマット変換を行う。
また、印刷データ情報取得部４７１は、プリンタ情報格納部４７３により格納されているプリンタ情報から、印刷を実行する対象となるプリンタが印刷可能なファイルフォーマットを特定し、コンテンツを当該ファイルフォーマットに変換してもよい。プリンタ情報には、印刷サーバ１０３から印刷の指示を出すことができるプリンタのプリンタＩＤ、プリンタ名、印刷可能なファイルフォーマット等が記載されている。
制御部４７２は、印刷データ情報取得部４７１から印刷データ、印刷設定値、及びプリンタＩＤを取得する。
【００３５】
プリンタ通信モジュール４８０は、印刷サービス通信モジュール４６１を有するＭＦＰ１０１と通信を行うことが可能であり、２者間のデータ通信のインターフェースである。プリンタ通信モジュール４８０は、印刷データ格納部４８１、印刷設定格納部４８２、印刷通知送信部４８３、ジョブ状態受信部４８４、及びプリンタ登録受付部４８５を有する。
印刷データ格納部４８１は、制御部４７２から印刷データを受信して記憶装置３０３に格納する。印刷設定格納部４８２は、制御部４７２から印刷設定値を受信して記憶装置３０３に格納する。制御部４７２は、印刷データ格納部４８１及び印刷設定格納部４８２から格納が終了した旨を受信したことに応じて、印刷通知送信部４８３に通知情報を送るように指示をする。
【００３６】
ジョブ状態受信部４８４は、印刷サービス通信モジュール４６１のジョブ状態送信部４６３からジョブＩＤが含まれるジョブ状態変更通知を受信し、ジョブ状態格納部４７４に格納を指示する。ジョブ状態格納部４７４は、ジョブ状態提示部４７８からジョブＩＤを受信し、受信したジョブＩＤに対応するジョブのジョブ状態をジョブ状態提示部４７８に送信する。
ジョブ状態提示部４７８は、Ｗｅｂアプリケーション４１０のジョブ状態取得部４１５からジョブＩＤを伴う依頼を受信し、受信した依頼に従ってジョブ状態格納部４７４にジョブＩＤを送信する。ジョブ状態提示部４７８は、該当ジョブＩＤのジョブのジョブ状態をジョブ状態格納部４７４から受信し、受信したジョブ状態をジョブ状態取得部４１５に送信する。
【００３７】
印刷通知送信部４８３は、制御部４７２から通知情報を送るように指示されたことに応じ、印刷データが格納されている場所を示す情報（印刷データ取得先情報）及び印刷設定値が格納されている場所を示す情報（印刷設定取得先情報）を制御部４７２から取得する。そして、印刷通知送信部４８３は、これらの情報を含む通知情報を生成する。
また、印刷通知送信部４８３は、プリンタＩＤを制御部４７２から取得し、プリンタ情報格納部４７３により格納されているプリンタ情報をもとにプロキシＩＤを特定する。プロキシＩＤは、印刷サービス通信モジュール個々に割り振られた一意な識別子であり、印刷サービス４７０で管理されている。そして、印刷通知送信部４８３は、特定したプロキシＩＤを持つ印刷プロキシに対して、当該印刷プロキシが管理するプリンタＩＤのプリンタに対する印刷データが準備できたことを通知するために通知情報を送信する。
【００３８】
この通知情報は、印刷サービス４７０に独自の通信方式に準拠しており、通信にはこの独自の通信方式を解釈可能なインターフェースの実装が必要となる。プリンタに実装した場合、プリンタを印刷サーバ１０３に直接登録することができ、サーバ、クライアントなどの通信可能な装置に実装した場合、プロキシとして登録可能となる。本実施形態では、印刷サービス通信モジュール４６１がこの独自の通信方式を解釈可能なインターフェースを実装しており、プリンタ通信モジュール４８０との通信が可能となっている。
なお、プリンタ通信モジュール４８０と、印刷サービス通信モジュール４６１とが通信を行えるような仕組みを、印刷サーバ１０３を提供するベンダの仕様と称する。そして、ベンダの仕様は、印刷サーバ１０３を管理しているベンダに深く依存する。印刷サーバ１０３を管理しているベンダは、印刷サーバ１０３にプリンタ通信モジュール４８０を実装し、印刷サービス通信モジュール４６１と通信を行うための印刷サービス通信モジュールの仕様を公開する。即ち、プリンタ通信モジュール４８０及び印刷サービス通信モジュール４６１のインターフェースは、印刷サーバ１０３を管理しているベンダが公開するデータ通信の仕様に準じて作成されるインターフェースである。
【００３９】
次に、コンテンツ印刷システムにおいて、サービスプロバイダ４４０を利用する一の態様を説明する。図６は、コンテンツ印刷システムにおいて、サービスプロバイダ４４０を利用してスキャンを実行する一連の処理に係るシーケンスの一例を示す図である。
まず、ＭＦＰ１０１は、ユーザがＭＦＰ１０１のユーザ入力装置２０６から、Ｗｅｂブラウザ４２０の起動を行うための起動ボタン（不図示）の押下を受け付けると、Ｗｅｂブラウザ４２０を起動する。起動ボタンは、ハードウェアのボタンに限ったものではなく、タッチパネル上に表示されたソフトウェアのボタンでもよい。
起動したＷｅｂブラウザ４２０は、Ｗｅｂアプリケーションサーバ１０２のＷｅｂアプリケーション４１０に設定画面のリクエストを行う。本例では、設定画面のＨＴＭＬデータを取得するためのＵＲＬ（画面ＵＲＬ）が予めＭＦＰ１０１に登録（設定）されているものとする。
【００４０】
Ｓ６００では、Ｗｅｂブラウザ４２０は、画面ＵＲＬをもとに、設定画面のコンテンツを保持するＷｅｂアプリケーション４１０に対してＨＴＴＰのＧＥＴコマンドによるリクエストを行う。より具体的には、Ｗｅｂブラウザ４２０は、通信部４２１を介してＨＴＴＰプロトコルによりＷｅｂアプリケーションサーバ１０２のＷｅｂアプリケーション４１０と通信を行う。これにより、Ｗｅｂブラウザ４２０からＷｅｂアプリケーション４１０へのリクエストが行われる。以下では、通信部４２１の動作については省略して説明する。
Ｓ６０１では、Ｗｅｂアプリケーション４１０のプレゼンテーション部４１１は、Ｓ６００のリクエストに応じて、設定画面のＨＴＭＬデータを作成し、ＨＴＴＰのレスポンス（ＨＴＴＰレスポンス）として、Ｗｅｂブラウザ４２０に送信を行う。Ｗｅｂブラウザ４２０は、受け取ったＨＴＭＬデータを解析し、画面表示部４２３を介してＵＩ表示装置２０７に設定画面の表示を行う。
Ｓ６０２では、Ｗｅｂブラウザ４２０は、Ｗｅｂアプリケーション４１０に対して処理（本例ではスキャン）の実行を指示する。ユーザにより、Ｓ６０１で表示された設定画面のスキャンボタンが押下されると、Ｗｅｂブラウザ４２０は、設定画面で入力されたパラメータをＷｅｂアプリケーション４１０に通知する。通信にはＨＴＴＰのＰＯＳＴコマンドが利用される。
【００４１】
図７（Ａ）は、Ｓ６０３における処理、即ちＷｅｂアプリケーションサーバ１０２のＷｅｂアプリケーション４１０の処理に係るフローチャートの一例を示す図である。
Ｓ７００では、Ｗｅｂアプリケーション４１０は、Ｓ６０２でＷｅｂブラウザ４２０が通知した情報（処理要求）を受け付ける。Ｓ７０１では、ロジック部４１２は、Ｓ６０２のＰＯＳＴコマンドで送信された情報をもとに、ＨＴＴＰレスポンスヘッダ（例えば後述のＨＴＴＰレスポンスヘッダ８００）を生成する。
Ｓ７０２では、ロジック部４１２は、Ｓ６０２のＰＯＳＴコマンドで送信された情報をもとに、ＨＴＴＰレスポンスボディとして、ＭＦＰ１０１での処理の実行のためのデバイス制御命令を含む処理要求（例えば後述の処理要求８１０）を生成する。Ｓ７０３では、Ｗｅｂアプリケーション４１０は、Ｓ７０１で生成したＨＴＴＰレスポンスヘッダと、Ｓ７０２で生成したＨＴＴＰレスポンスボディとを合わせてＨＴＴＰレスポンスとしてＷｅｂブラウザ４２０に送信する。以上のようにしてＳ６０３の処理が実行される。
【００４２】
Ｓ６０４からＳ６０８までの処理については、図７（Ｂ）を用いて説明する。図７（Ｂ）は、Ｓ６０４からＳ６０８までの処理、即ちＭＦＰ１０１の処理に係るフローチャートの一例を示す図である。
Ｓ６０４では、Ｓ７１０、Ｓ７１１、及びＳ７１２の処理が実行される。Ｓ７１０では、Ｗｅｂブラウザ４２０は、Ｓ６０３でＷｅｂアプリケーション４１０が送信したＨＴＴＰレスポンスを受信する。ＨＴＴＰレスポンスには、ＨＴＴＰレスポンスヘッダとＨＴＴＰレスポンスボディとが含まれている。
【００４３】
Ｓ７１１では、解析部４２２は、Ｓ７１０で受信したＨＴＴＰレスポンスヘッダのＣｏｎｔｅｎｔ−Ｔｙｐｅフィールドが既定の情報「ａｐｐｌｉｃａｔｉｏｎ／ｖｎｄ．ｋａｎｏｎ．ｗｅｂｓｅｒｖｉｃｅ」であるかを確認する。換言するならば、解析部４２２は、Ｃｏｎｔｅｎｔ−Ｔｙｐｅフィールドの値が転送アプリケーション４３０（転送アプリ）の起動を示す規定値であるか否かを判断する。解析部４２２は、規定値であると判断した場合、Ｓ７１２に処理を進め、他方、規定値でないと判断した場合、Ｓ７２０に処理を進める。
Ｓ７１２では、Ｗｅｂブラウザ４２０の転送アプリ起動部４２４は、転送アプリケーション４３０を呼び出し、制御部４３２に対して、Ｓ７１０で受信したＨＴＴＰレスポンスボディをサービスプロバイダ４４０に転送するように依頼する。このとき、転送アプリ起動部４２４は、転送に必要な情報として、Ｓ７１０で受信したＨＴＴＰレスポンスヘッダを転送アプリケーション４３０に渡す。
【００４４】
Ｓ６０５では、Ｓ７１３及びＳ７１４の処理が実行される。Ｓ７１３では、制御部４３２は、Ｓ７１２で受信したＨＴＴＰレスポンスヘッダに含まれている宛先（例えば後述の宛先８０１）を宛先として、Ｓ７１０で受信したＨＴＴＰレスポンスボディを、動作要求送信部４３１を介して転送する処理（送信処理）を開始する。本実施形態では、ＨＴＴＰ ＰＯＳＴコマンドで送信されるが、他のプロトコルを用いた送信（送信方法）であってもよい。また、制御部４３２は、現在の時刻を取得してタイムアウトの監視を開始する。
Ｓ７１４では、制御部４３２は、Ｓ７１３で開始した送信処理の時間が、タイムアウト時間（例えば後述のタイムアウト時間８０２）に指定された時間を超えているか否かを判断する。制御部４３２は、Ｓ７１３における転送が終了するまでにタイムアウト時間を超えなかったと判断した場合、Ｓ７１５に処理を進め、他方、超えたと判断した場合、Ｓ７１９に処理を進める。
【００４５】
Ｓ６０６では、Ｓ７１５の処理が実行される。Ｓ７１５では、サービスプロバイダ４４０は、Ｓ７１３で転送アプリケーション４３０が転送したＨＴＴＰレスポンスヘッダ（例えば後述の処理要求８１０）を動作要求受信部４４１で受信し、処理要求に従って処理部４４２がジョブを生成して実行する。また、処理部４４２は、処理結果（例えば後述の処理結果９００）をレスポンスとして、動作要求受信部４４１を介して転送アプリケーション４３０に送信する処理を開始する。
Ｓ６０７では、Ｓ７１６、並びに、Ｓ７１７又はＳ７１９の処理が実行される。Ｓ７１６では、制御部４３２は、Ｓ７１３の送信処理を開始してからの時間が、タイムアウト時間に指定された時間を超えているか否かを判断する。制御部４３２は、超えていない（Ｓ７１５における転送が終了するまでにタイムアウト時間を超えなかった）と判断した場合、Ｓ７１７に処理を進め、他方、超えたと判断した場合、Ｓ７１９に処理を進める。
【００４６】
Ｓ７１７では、制御部４３２は、処理結果を、動作要求送信部４３１を介して受信する。そして、制御部４３２は、Ｗｅｂブラウザ４２０のアップロード処理部４２５に対して、処理結果をＷｅｂアプリケーション４１０に対してアップロードするように依頼する。依頼に際して、制御部４３２は、アップロード処理部４２５に対してアップロードの宛先としてＨＴＴＰレスポンスヘッダに含まれているアップロード宛先（例えば後述のアップロード宛先８０４）を指定する。
Ｓ７１９では、制御部４３２は、エラー結果（例えば後述のエラー結果９１０）を生成する。そして、制御部４３２は、Ｗｅｂブラウザ４２０のアップロード処理部４２５に対して、エラー結果をＷｅｂアプリケーション４１０に対してアップロードするように依頼する。依頼に際して、制御部４３２は、アップロード処理部４２５に対してアップロードの宛先としてＨＴＴＰレスポンスヘッダに含まれているアップロード宛先を指定する。
アップロード宛先については、転送アプリケーション４３０からアップロード処理部４２５に指定せず、Ｗｅｂブラウザ４２０がこの情報（アップロード宛先）を記憶しておいてこの情報を使用する構成としてもよい。また、アップロード宛先を固定値とし、Ｗｅｂアプリケーション４１０から指定しない構成としてもよい。
【００４７】
Ｓ６０８では、Ｓ７１８の処理が実行される。Ｓ７１８では、アップロード処理部４２５は、通信部４２１を介してＨＴＴＰ ＰＯＳＴコマンドで、制御部４３２からの依頼に従って結果（処理結果、又はエラー結果）をアップロードする。例えば、アップロード処理部４２５は、転送アプリケーション４３０の制御部４３２から依頼されたアップロード宛先に対してアップロードを行う。
Ｓ６０９では、Ｗｅｂアプリケーション４１０は、Ｗｅｂブラウザ４２０に対して、結果の表示用のＨＴＭＬデータをレスポンスする。Ｗｅｂブラウザ４２０は、Ｓ７１０で、レスポンスを受信する。そして、Ｗｅｂブラウザ４２０は、Ｓ７１１でＨＴＴＰレスポンスヘッダのＣｏｎｔｅｎｔ−Ｔｙｐｅフィールドが既定の情報「ａｐｐｌｉｃａｔｉｏｎ／ｖｎｄ．ｋａｎｏｎ．ｗｅｂｓｅｒｖｉｃｅ」でないことを確認し、Ｓ７２０に処理を進める。
Ｓ７２０において、Ｗｅｂブラウザ４２０は、解析部４２２によるＨＴＭＬデータの解析結果に基づいて、ＵＩ表示装置２０７に画面を表示する。
【００４８】
図８（Ａ）は、Ｗｅｂアプリケーション４１０がＷｅｂブラウザ４２０に対して返すＨＴＴＰレスポンスヘッダの一例（ＨＴＴＰレスポンスヘッダ８００）を示す図である。
ＨＴＴＰレスポンスヘッダ８００は、宛先８０１、タイムアウト時間８０２、転送時コンテントタイプ８０３、アップロード宛先８０４、及びコンテントタイプ８０５を有する。宛先８０１は、Ｓ７１３において、転送アプリケーション４３０が処理要求であるＨＴＴＰレスポンスボディを転送する際の宛先である。宛先８０１は、複数のサービスプロバイダが公開するサービスの何れかを指し示す。
タイムアウト時間８０２は、Ｓ７１３、Ｓ７１４において、転送アプリケーション４３０の制御部４３２が動作要求送信部４３１を介して、サービスプロバイダ４４０と通信する際のタイムアウト時間を秒単位で示す。制御部４３２は、サービスプロバイダ４４０と通信を行っている間、時間を計測し、タイムアウト時間８０２で指定された時間を超えた場合、通信を停止する。
【００４９】
転送時コンテントタイプ８０３は、Ｓ７１３において、転送アプリケーション４３０が、サービスプロバイダ４４０にＨＴＴＰレスポンスボディを転送する際にＨＴＴＰヘッダのＣｏｎｔｅｎｔ−Ｔｙｐｅフィールドに設定する内容である。ＨＴＴＰ Ｐｏｓｔコマンドを用いた転送の際に、転送先のサービスプロバイダ４４０が正しく理解できるＣｏｎｔｅｎｔ−Ｔｙｐｅを設定する必要があるためである。転送時コンテントタイプ８０３が省略されている場合は、転送アプリケーション４３０が転送時にデフォルトの値を設定するようにしてもよい。
アップロード宛先８０４は、Ｓ７１７、Ｓ７１９においてＷｅｂブラウザが結果をＷｅｂアプリケーション４１０にアップロードする際の宛先である。コンテントタイプ８０５は、Ｓ７１１において、受信したＨＴＴＰレスポンスボディの内容が、処理要求であるか、Ｗｅｂブラウザに表示するＨＴＭＬデータであるかの判断に用いられる。
【００５０】
図８（Ｂ）は、Ｗｅｂアプリケーション４１０で生成され、Ｗｅｂブラウザ４２０にレスポンスとして返される処理要求の一例（処理要求８１０）を示す図である。処理要求８１０は、スキャン要求８１１と送信要求８１２とを有する。処理要求８１０については、ＸＭＬ（eXtensible Markup Language）フォーマットで記述されているが、ＭＦＰ１０１に対する処理が記述でき、ＭＦＰ１０１が処理できる形式であれば他の言語フォーマットで記述されてもよい。
スキャン要求８１１は、ＭＦＰ１０１に対してスキャンの実行を要求する命令である。また、スキャン要求８１１には、スキャンの制御に関わる設定値を記述することができる。例えば、スキャン要求８１１によれば、ＤｏｃｕｍｅｎｔＳｉｚｅタグでスキャンする原稿のサイズを指定したり、Ｃｏｌｏｒタグでスキャン時のカラーモード（オート、カラー、グレイスケール等）を指定したりできるようになる。
送信要求８１２は、ＭＦＰ１０１に対してスキャンした画像の送信を要求する命令である。また、送信要求８１２には、送信の制御に関わる設定値を記述することができる。例えば、送信要求８１２によれば、Ｐｒｏｔｏｃｏｌタグで送信プロトコルを指定したり、Ｄｅｓｔｉｎａｔｉｏｎタグで宛先を指定したり、ＦｉｌｅＦｏｒｍａｔタグで送信する際に指定された画像フォーマットに変換してから送信したりできるようになる。
【００５１】
図９（Ａ）は、サービスプロバイダ４４０が返す処理結果の一例（処理結果９００）を示す図である。処理結果９００は、ジョブ結果９０１を有する。
ジョブ結果９０１には、Ｓ７１５で実行されたジョブの結果がＲｅｓｕｌｔＣｏｄｅタグに含められている。正常終了した場合、ＯＫが含められ、エラーが発生した場合、エラーコードが含められる。Ｗｅｂアプリケーション４１０は、処理結果９００をＷｅｂブラウザ４２０のアップロード（Ｓ７１８）によって受信することで、ユーザに対して処理結果９００に応じたＨＴＭＬデータを生成し、Ｗｅｂブラウザ４２０に送信することができる。
【００５２】
図９（Ｂ）は、転送アプリケーション４３０においてエラーが発生した際に、転送アプリケーション４３０が生成するエラー結果の一例（エラー結果９１０）を示す図である。エラー結果９１０には、エラーコードと、転送アプリケーション４３０がサービスプロバイダ４４０とＨＴＴＰプロトコルで通信した際のＨＴＴＰステータスコードとが含められている。
転送アプリケーション４３０における動作要求送信部４３１や制御部４３２でエラーが発生した際、制御部４３２は、エラー結果９１０を生成する。そして、制御部４３２は、Ｓ７１７で処理結果のアップロードを依頼したのと同様に、Ｓ７１９でエラー結果のアップロードをＷｅｂブラウザ４２０に依頼する。本実施形態では、Ｃｏｎｔｅｎｔ−Ｔｙｐｅをａｐｐｌｉｃａｔｉｏｎ／ｘ−ｗｗｗ−ｆｏｒｍ−ｕｒｌｅｎｃｏｄｅｄと設定され、パラメータとしてエラーコードとＨＴＴＰステータスコードとが送信される。
例えば、転送アプリケーション４３０がサービスプロバイダ４４０と通信を行っている間にタイムアウト時間で指定された時間を超えた場合、制御部４３２は、通信を停止し、エラーコードをＴＩＭＥＯＵＴ＿ＥＲＲＯＲとしてエラー結果を生成する。また、制御部４３２は、サービスプロバイダ４４０が異常なＨＴＴＰステータスコードを返してきた場合、そのステータスコードと、エラーコードとしてＳＴＡＴＵＳ＿ＣＯＤＥ＿ＥＲＲＯＲとを設定してエラー結果を生成する。
【００５３】
次に、コンテンツ印刷システムにおいて、サービスプロバイダ４４０を利用する他の態様を説明する。図１０は、コンテンツ印刷システムにおけるサービスを利用して印刷を実行する一連の処理に係るシーケンスの一例を示す図である。まず、ユーザがＭＦＰ１０１のユーザ入力装置２０６から、Ｗｅｂブラウザ４２０の起動を行うための起動ボタン（不図示）の押下を受け付けると、Ｗｅｂブラウザ４２０が起動する。
Ｓ１００１では、Ｗｅｂブラウザ４２０は、Ｗｅｂアプリケーションサーバ１０２のＷｅｂアプリケーション４１０にＨＴＴＰのＧＥＴコマンドによるリクエストを行う。本例では、ログイン画面のＨＴＭＬデータを取得するためのＵＲＬが予めＭＦＰ１０１に登録されているものとする。
より具体的には、Ｗｅｂブラウザ４２０が通信部４２１を介してＨＴＴＰプロトコルによりＷｅｂアプリケーションサーバ１０２のＷｅｂアプリケーション４１０と通信を行う。これにより、Ｗｅｂブラウザ４２０からＷｅｂアプリケーション４１０へのリクエストが行われる。以下では、通信部４２１の動作は省略して説明する。
【００５４】
Ｓ１００２では、Ｗｅｂアプリケーション４１０のプレゼンテーション部４１１は、Ｓ１００１のリクエストに応じて、ログイン画面のＨＴＭＬデータを作成し、ＨＴＴＰレスポンスとして、Ｗｅｂブラウザ４２０に送信を行う。Ｗｅｂブラウザ４２０は、受け取ったＨＴＭＬデータをもとに、画面表示部４２３を介してＵＩ表示装置２０７にログイン画面の表示を行う。
図１１（Ａ）は、ログイン画面の一例を示す図である。ユーザは、ユーザアカウント入力欄１１０１、パスワード入力欄１１０２に、それぞれ、印刷サービス４７０を利用するために必要なユーザアカウント及びパスワードを入力する。なお、ユーザアカウント及びパスワードについては、ユーザ情報管理テーブル５００で管理されているユーザアカウント５０２及びパスワード５０３と同一のものが入力されたものとして説明する。
Ｓ１００３では、Ｗｅｂブラウザ４２０は、Ｗｅｂアプリケーション４１０に対して、ログインの実行を指示する。ユーザにより、Ｓ１００２で表示されたログイン画面のログインボタン１１０３が押されると、Ｗｅｂブラウザ４２０は、ログイン画面で入力されたユーザアカウント（ＩＤ）及びパスワードをＷｅｂアプリケーション４１０に通知する。通信にはＨＴＴＰ／ＨＴＴＰＳプロトコルのＰＯＳＴコマンドが利用される。
【００５５】
Ｓ１００４では、Ｗｅｂアプリケーション４１０のプリンタ情報取得部４１３は、Ｓ１００３で通知されたユーザアカウント及びパスワードを用いて印刷サービス４７０にログインを行う。そして、プリンタ情報取得部４１３は、印刷サービス４７０のプリンタ情報提示部４７７にプリンタ情報の取得を要求する（一覧リスト取得要求）。なお、ログインの方法については、Ｂａｓｉｃ認証、Ｗｅｂサービスによる認証など、ユーザの権限の正当性を検証することができればどのような方法であってもよい。
Ｓ１００５では、プリンタ情報提示部４７７は、制御部４７２を介してプリンタ情報格納部４７３により格納されているプリンタ情報を取得し、プリンタ情報取得部４１３に送信する。
図１１（Ｂ）は、プリンタ情報の一例を示す図である。プリンタ情報提示部４７７で取得されるプリンタ情報には、ログインしているユーザが利用可能なプリンタのプリンタＩＤ及びプリンタ名の一覧が含まれる。
【００５６】
Ｓ１００６では、Ｗｅｂアプリケーション４１０は、Ｓ１００５で取得したプリンタ情報から、どのプリンタを利用するか決定するため、ＭＦＰ１０１のサービスプロバイダ４４０に対してプリンタＩＤを要求する。このとき、要求には、Ｓ１００１でユーザから入力されたユーザアカウントが引数として含められる。
本実施形態では、Ｗｅｂアプリケーション４１０に対するクライアントとしてＭＦＰのみが存在する場合を例に挙げて説明しているが、ＰＣ、モバイル端末など他の種類のクライアントが混在している環境であってもよい。
この場合、Ｓ１００６では、Ｓ１００１又はＳ１００３においてＷｅｂアプリケーション４１０にリクエストを行ったクライアントの種類を判別する処理を行う。例えば、クライアントからのＨＴＴＰリクエストのＨＴＴＰリクエストヘッダに含まれるＵｓｅｒＡｇｅｎｔから機種（クライアントの種類）を判別し、機種それぞれの処理を行う。例えば、ＭＦＰ１０１を表すＵｓｅｒＡｇｅｎｔが取得できた場合に、本実施形態の処理を行うように構成する。
Ｓ１００６からＳ１００８までの処理における、Ｗｅｂアプリケーション４１０からサービスプロバイダ４４０への問い合わせの方法は、Ｓ６０３からＳ６０５までの処理と同じであるので、説明を省略する。
【００５７】
Ｓ１００９では、サービスプロバイダ４４０は、印刷プロキシ４６０のプリンタ識別情報提供部４６８にプリンタＩＤを要求する。この要求（プリンタＩＤ取得要求）には、Ｓ１００１でユーザから入力されたユーザアカウントが含まれている。Ｓ１０１０では、プリンタ識別情報提供部４６８は、ユーザアカウントをもとに、制御部４６７及びユーザ情報格納部４６９を介してユーザ情報管理テーブルからプリンタＩＤを取得し、サービスプロバイダ４４０に提供する。
Ｓ１０１１からＳ１０１３までの処理における、サービスプロバイダ４４０からＷｅｂアプリケーション４１０に対する応答の方法は、Ｓ６０６からＳ６０８までの処理と同じであるので、説明を省略する。
【００５８】
Ｓ１０１４では、Ｗｅｂアプリケーション４１０は、Ｓ１００５で取得したプリンタ情報から、Ｓ１０１３で取得したプリンタＩＤと一致するプリンタを選択する。そして、Ｗｅｂアプリケーション４１０は、対象となるプリンタに合わせた印刷設定値を指定可能な印刷設定画面（印刷画面の一例）のＨＴＭＬデータ（画面情報の一例）を生成し、Ｗｅｂブラウザ４２０に送信する。なお、印刷設定画面を生成する際に必要なプリンタの能力情報については、Ｗｅｂアプリケーション４１０が保持していてもよいし、印刷サービス４７０のプリンタ情報提示部４７７が提供してもよい。付言するならば、Ｗｅｂアプリケーション４１０を有するＷｅｂアプリケーションサーバ１０２は、印刷画面の画面情報を提供する画面提供装置の一例である。
Ｗｅｂブラウザ４２０は、受け取った印刷設定画面のＨＴＭＬデータをもとに、画面表示部４２３を介してＵＩ表示装置２０７に印刷設定画面の表示を行う。また、本実施形態では、印刷設定画面をＷｅｂアプリケーション４１０が生成するが、印刷サービス４７０が提供してもよい。この場合は、Ｗｅｂアプリケーション４１０は、印刷サービス４７０が提供する印刷設定画面へリダイレクトするように、Ｗｅｂブラウザ４２０に指示を行う。
【００５９】
図１１（Ｃ）は、印刷設定画面の一例を示す図である。プリンタ名１１０４には、Ｓ１０１４でＷｅｂアプリケーション４１０が特定したユーザが現在利用しているプリンタ（ＭＦＰ１０１）が選択された状態になっている。なお、プリンタ名１１０４については、ユーザが利用可能な他のプリンタも設定されたリストボックスにし、ユーザが印刷を実行するプリンタを変更できるようにしてもよい。また、図１１（Ｃ）の例では、サイズ選択リストボックス１１０５、カラー選択リストボックス１１０６、両面印刷選択リストボックス１１０７が設けられ、ユーザは、印刷の用紙サイズや、印刷のカラーモード、片面／両面の設定値を選択することができる。
Ｓ１０１５では、Ｗｅｂブラウザ４２０は、Ｗｅｂアプリケーション４１０に対して印刷の実行を指示する。ユーザにより、Ｓ１０１４で表示された印刷設定画面の実行ボタン１１０８が押下されると、Ｗｅｂブラウザ４２０は、印刷設定画面で入力された情報をＷｅｂアプリケーション４１０に通知する。通信にはＨＴＴＰプロトコルのＰＯＳＴコマンドが利用される。
【００６０】
Ｓ１０１６では、Ｗｅｂアプリケーション４１０の印刷指示部４１４は、印刷サービス４７０の印刷指示受付部４７６に対して印刷指示を送信する。印刷指示受付部４７６は、受信した印刷指示を制御部４７２に渡す。
図１２（Ａ）は、印刷指示の一例を示す図である。印刷指示には、Ｓ１０１３でＷｅｂアプリケーション４１０が取得した、ユーザが現在利用しているプリンタ（なお、上述したようにユーザにより選択されたプリンタであってもよい。）のプリンタＩＤ１２０１及び印刷設定１２０２が含まれる。また、印刷設定１２０２には、ユーザにより選択された印刷設定値、及びユーザにより指定された印刷対象のコンテンツの取得先を示す情報（所在１２０３）が含まれている。
Ｓ１０１７では、印刷データ情報取得部４７１は、制御部４７２の指示に従って、印刷指示に含まれる印刷対象のコンテンツの所在に示される場所に印刷対象のコンテンツをリクエストする。Ｓ１０１８では、Ｗｅｂアプリケーション４１０は、Ｓ１０１７のリクエストのレスポンスとして印刷対象のコンテンツを印刷データ情報取得部４７１に送信する。印刷データ情報取得部４７１は、受信したコンテンツを印刷データとして制御部４７２に渡す。
【００６１】
この際、印刷データ情報取得部４７１は、利用するプリンタのプリンタ情報から印刷可能なデータ形式を参照し、必要に応じてデータ形式の変換を行う。本実施形態では、データ形式の変換については印刷データ情報取得部４７１の判断で行うが、Ｓ１０１６において、Ｗｅｂアプリケーション４１０から、変換する印刷データのデータ形式を指示するようにしてもよい。なお、印刷対象のコンテンツは、Ｗｅｂアプリケーション４１０が保持してもよいし、他のファイルサーバに保持されていてもよい。
また、本実施形態では、印刷対象のコンテンツについては、印刷データ情報取得部４７１が取得を行うが、Ｗｅｂアプリケーション４１０から印刷サービス４７０に送信する構成であってもよい。また、本実施形態において印刷対象のコンテンツの取得の際の通信プロトコルとしては、ＨＴＴＰ／ＨＴＴＰＳを想定しているが、印刷対象のコンテンツを取得できるその他のプロトコルを採用してもよい。
【００６２】
Ｓ１０１９では、制御部４７２は、印刷データ格納部４８１を介して記憶装置３０３に印刷データを格納し、更に印刷設定格納部４８２を介して記憶装置３０３に印刷設定値を格納する。そして、印刷指示受付部４７６は、印刷データ格納部４８１及び印刷設定格納部４８２から格納が終了した旨を受信したことに応じて、ジョブ情報を生成し、ジョブ状態格納部４７４に格納する。ジョブ情報には、ジョブを識別するための一意なＩＤであるジョブＩＤと、ジョブの実行ステータスを表すジョブ状態とが含まれる。
Ｓ１０２０では、印刷指示受付部４７６は、ジョブ状態格納部４７４にジョブ情報が格納されたことに応じて、Ｓ１０１６のリクエストに対するレスポンスとして、印刷指示応答を印刷指示部４１４に返す。
図１２（Ｂ）は、印刷指示応答の一例を示す図である。印刷指示応答には、Ｓ１０１９で生成されたジョブ情報に含まれるジョブＩＤが設定されている。
【００６３】
Ｓ１０２１では、Ｗｅｂアプリケーション４１０は、Ｗｅｂブラウザ４２０に対して実行中画面のＨＴＭＬデータを送信する。
図１３（Ａ）は、実行中画面の一例を示す図である。実行中画面には、印刷が実行中である旨が表示される。また、図１３（Ｃ）は、図１３（Ａ）の実行中画面のＨＴＭＬデータである。実行中画面のＨＴＭＬデータには、ポーリング設定１３０１が含まれており、Ｗｅｂブラウザ４２０は、ポーリング設定１３０１に従ってＷｅｂアプリケーション４１０に対して一定時間の経過後にリクエストを送信する。即ち、Ｗｅｂアプリケーション４１０が当該リクエストに対して、ポーリング設定１３０１を含むＨＴＭＬデータを返すことで、Ｗｅｂブラウザ４２０から、Ｗｅｂアプリケーション４１０に定期的にリクエストを送信する仕組みが構築される。
【００６４】
Ｓ１０２２では、印刷通知送信部４８３は、制御部４７２の指示に従って、印刷サービス通信モジュール４６１の印刷通知受信部４６５に、通知情報（プリンタ印刷指示）を送信する。本実施形態では、印刷通知送信部４８３から印刷通知受信部４６５に通知情報を送信するが、印刷通知受信部４６５から、定期的に印刷通知送信部４８３に通知情報をリクエストする構成であってもよい。
図１４は、通知情報の一例を示す図である。通知情報には、印刷データ取得先情報１４０１及び印刷設定取得先情報１４０２が含まれる。
【００６５】
Ｓ１０２３では、印刷通知受信部４６５は、通知情報を受け取ると、印刷通知送信部４８３に対して応答を返す。Ｓ１０２４では、印刷データ取得部４６２は、通知情報の印刷データ取得先情報が示す場所に、印刷データの取得を要求する。また、印刷設定取得部４６４は、通知情報の印刷設定取得先情報が示す場所に、印刷設定値の取得を要求する。
Ｓ１０２５では、印刷データ取得部４６２は、Ｓ１０２４の要求の応答として、印刷データを取得し、制御部４６７に渡す。また、印刷設定取得部４６４は、Ｓ１０２４の要求の応答として、印刷設定値を取得し、制御部４６７に渡す。
図１５は、印刷設定値の一例を示す図である。印刷設定値には、印刷の用紙サイズ、カラーモード、両面／片面の設定値などが含まれる。
【００６６】
Ｓ１０２６では、制御部４６７は、Ｓ１０２５で取得した印刷データ、印刷設定値をもとに印刷ジョブ生成部４６６にジョブ（印刷ジョブ）の生成を依頼する。印刷ジョブ生成部４６６は、ジョブの生成の依頼を受けると、ジョブを生成し、ジョブ管理部４５１に登録する。ジョブ実行部４５２は、ジョブ管理部４５１を監視しており、ジョブ管理部４５１にジョブが投入されると、ジョブを実行する。
Ｓ１０２７では、制御部４６７は、ジョブが完了したことに応じて、ジョブ状態送信部４６３にジョブ状態の送信の指示を出す。ジョブ状態送信部４６３は、制御部４６７の指示に従って、ジョブ状態受信部４８４にジョブ状態変更通知を送信する。
ジョブ状態受信部４８４は、ジョブ状態変更通知を受信すると、制御部４７２にジョブ状態変更通知を渡し、制御部４７２は、ジョブ状態変更通知に従ってジョブ状態格納部４７４により格納されているジョブのジョブ状態を更新する。この際、制御部４７２は、ジョブ状態変更通知に含まれているジョブＩＤと一致するジョブのジョブ状態を更新する。
【００６７】
図１６（Ａ）は、ジョブ状態変更通知の一例を示す図である。ジョブ状態変更通知には、ジョブ状態を変更するジョブのジョブＩＤ１６０１と、変更後のステータス１６０２とが含まれる。
Ｓ１０２８では、ジョブ状態受信部４８４は、ジョブ状態送信部４６３に対して、ジョブ状態変更指示応答を返す。
図１６（Ｂ）は、ジョブ状態変更通知応答の一例を示す図である。ジョブ状態変更通知応答には、ジョブ状態の変更が成功したか否かを示す情報が含まれている。なお、ジョブ状態送信部４６３は、ジョブ状態の変更の成否によって、ジョブ状態変更通知を再送してもよい。
【００６８】
Ｓ１０２９では、Ｗｅｂブラウザ４２０は、Ｓ１０２１で受信した実行中画面に含まれているポーリング設定１３０１に従って、Ｗｅｂアプリケーション４１０に対して画面の取得のリクエストを送信する。
Ｓ１０３０では、Ｗｅｂアプリケーション４１０は、印刷サービス４７０のジョブ状態提示部４７８に対して、ジョブ状態取得要求を送信する。
図１７（Ａ）は、ジョブ状態取得要求の一例を示す図である。ジョブ状態取得要求には、対象となるジョブを特定するためのジョブＩＤ１７０１が含まれる。
Ｓ１０３１では、ジョブ状態提示部４７８は、ジョブ状態格納部４７４から対象となるジョブのジョブ状態を取得し、ジョブ状態取得要求応答を生成してジョブ状態取得部４１５に送信する。
図１７（Ｂ）は、ジョブ状態取得要求応答の一例を示す図である。ジョブ状態取得要求応答には、ジョブ状態１７０２が含まれる。
【００６９】
Ｓ１０３２では、Ｗｅｂアプリケーション４１０は、Ｓ１０３１で取得したジョブ状態取得要求応答に従って画面のＨＴＭＬデータを生成し、Ｗｅｂブラウザ４２０に送信する。Ｗｅｂブラウザ４２０は、受信したＨＴＭＬデータをもとに画面を表示する。本実施形態では、Ｓ１０３１において、印刷の完了を示すステータスが取得されており、Ｗｅｂアプリケーション４１０は、完了画面のＨＴＭＬデータを生成してＷｅｂブラウザ４２０に送信する。印刷が完了していない場合は、Ｗｅｂアプリケーション４１０は、ポーリング設定１３０１を含むＨＴＭＬデータを生成してＷｅｂブラウザ４２０に送信する。この場合、Ｓ１０２９に処理を進める。
図１３（Ｂ）は、完了画面の一例を示す図である。完了画面には、印刷が完了した旨が表示されている。
以上の構成では、ＭＦＰが印刷サービスによって発行されるプリンタを識別する情報をＷｅｂアプリケーションに提供することによって、Ｗｅｂアプリケーションが自動的に印刷を実行するプリンタを選択する。これにより、ユーザによるプリンタの選択の手間を省くことができる。
【００７０】
＜第２の実施形態＞
第１の実施形態では、ＭＦＰ１０１にユーザアカウントに紐付いてプリンタＩＤが格納されている必要がある。ＭＦＰ１０１に格納されていないユーザアカウントについて、プリンタＩＤの要求があった場合に対応できない。そこで、本実施形態では、プリンタＩＤの要求があったときに、対象となるユーザアカウントについてユーザ情報が格納されていない場合、ユーザ情報を登録するためのダイアログをユーザに提示し、ユーザ情報を登録する構成について説明する。以下では、第１の実施形態との差分について主に説明する。
図１８は、本実施形態におけるコンテンツ印刷システムにおける、ユーザによるユーザ情報登録作業を含んだサービスを利用して印刷を実行する一連の処理に係るシーケンスの一例を示す図である。Ｓ１８０１〜Ｓ１８０９、Ｓ１８１３〜Ｓ１８３５については、第１の実施形態のＳ１００１〜Ｓ１００９、Ｓ１８１０〜Ｓ１８３２と同じであるので、説明を省略する。
【００７１】
Ｓ１８１０では、プリンタ識別情報提供部４６８は、Ｓ１８０９においてサービスプロバイダ４４０から指定されたユーザアカウントが、ユーザ情報管理テーブル５００に存在するか否かを、制御部４６７を介して判断する。プリンタ識別情報提供部４６８は、存在しないと判断した場合、プリンタ登録画面をユーザに提示し、ユーザアカウント及びパスワードを入力させる。
本実施形態では、ユーザ情報管理テーブル５００に指定されたユーザアカウントが存在しない場合に、ユーザによりユーザアカウント及びパスワードを入力させる構成であるが、この構成に限られるものではない。例えば、ユーザアカウント及びパスワードについては、Ｓ１８０３でＷｅｂブラウザ４２０からＷｅｂアプリケーション４１０に渡されたユーザアカウント等を、サービスプロバイダ４４０を呼び出す際の引数として渡し、ユーザによる入力を省略させてもよい。
【００７２】
図１９（Ａ）は、プリンタ登録画面の一例を示す図である。プリンタ登録画面は、ユーザアカウント入力欄１９０１と、パスワード入力欄１９０２と、キャンセルボタン１９０３と、登録ボタン１９０４とを有する。ユーザアカウント入力欄１９０１及びパスワード入力欄１９０２には、ユーザが印刷サービス４７０を使用するためのアカウント及びパスワードが入力される。
ユーザがキャンセルボタン１９０３を押下した場合、プリンタ登録画面を閉じ、登録がキャンセルされる。登録ボタン１９０４は、ユーザがプリンタの登録を行うるためのボタンである。Ｓ１８１０では、ユーザがユーザアカウント及びパスワードを入力して登録ボタン１９０４を押下したものとする。
【００７３】
Ｓ１８１１では、印刷プロキシ４６０のプリンタ登録指示部４９１は、Ｓ１８１０で入力されたユーザアカウント及びパスワードを用いて印刷サービス４７０と通信コネクションを確立する。そして、プリンタ登録指示部４９１は、印刷サービス４７０のプリンタ登録受付部４８５に対してプリンタ登録指示を送信する。
図１９（Ｂ）は、プリンタ登録指示の一例を示す図である。プリンタ登録指示には、登録するプリンタ名１９１１及びプリンタ能力１９１２が含まれる。本実施形態においてプリンタ名１９１１を自動的に設定しているが、プリンタ登録画面において、ユーザに入力させる構成であってもよい。プリンタ能力１９１２には、プリンタ（ＭＦＰ１０１）の能力情報が含まれている。本実施形態では、プリンタが、カラー印刷が可能であること、及び１２００ｄｐｉの解像度に対応していることを示す情報が含まれている。
【００７４】
プリンタ登録指示を受け取ったプリンタ登録受付部４８５は、ユーザ及びプリンタに一意な値であるプリンタＩＤを生成する。生成されたプリンタＩＤは、制御部４７２及びプリンタ情報格納部４７３を介して、プリンタＩＤとユーザアカウントとが紐付けられて記憶装置３０３に記憶される。
Ｓ１８１２では、プリンタ登録受付部４８５は、Ｓ１８１１で生成したプリンタＩＤを、Ｓ１８１１で受信したプリンタ登録指示のレスポンスとして返す。プリンタ登録指示部４９１は、Ｓ１８１１で送信したプリンタ登録指示に対するレスポンスを印刷サービス４７０のプリンタ登録受付部４８５から受信する。
図１９（Ｃ）は、プリンタ登録指示に対するレスポンス（プリンタ登録指示応答）の一例を示す図である。プリンタ登録指示に対するレスポンスにはプリンタＩＤ１９２１が含まれる。
制御部４６７は、プリンタ登録指示部４９１を介してプリンタ登録指示に対するレスポンスを受信する。そして、制御部４６７は、ユーザ情報格納部４６９を介してプリンタ登録指示に対するレスポンスに含まれるプリンタＩＤと、Ｓ１８１０においてユーザが入力したユーザアカウント及びパスワードとを関連付けて記憶装置２０５に記憶する。
【００７５】
図２０は、本実施形態におけるコンテンツ印刷システムにおけるプリンタ登録処理に係るフローチャートの一例を示す図である。本フローチャートでは、Ｓ１８０９からＳ１８１３までの処理に係る印刷プロキシ４６０の処理について示している。
Ｓ２００１では、印刷プロキシ４６０のプリンタ識別情報提供部４６８は、サービスプロバイダ４４０から、ユーザアカウントが引数に含まれるプリンタＩＤ取得要求（ＰｒｉｎｔｅｒＩＤ取得要求）を受け付ける。Ｓ２００２では、プリンタ識別情報提供部４６８は、Ｓ２００１で受け付けたユーザアカウントのユーザ情報がユーザ情報格納部４６９により格納されているかどうかを、制御部４６７を介して判断する。プリンタ識別情報提供部４６８は、格納されていると判断した場合、Ｓ２００８に処理を進め、他方、格納されていないと判断した場合、Ｓ２００３に処理を進める。
【００７６】
Ｓ２００３では、プリンタ識別情報提供部４６８は、プリンタ登録画面（ダイアログ）をユーザに提示する。Ｓ２００４では、プリンタ識別情報提供部４６８は、ユーザがキャンセルボタン１９０３を押下したか、登録ボタン１９０４を押下したかを判断する。プリンタ識別情報提供部４６８は、キャンセルボタン１９０３が押下されたと判断した場合、Ｓ２００９に処理を進め、他方、登録ボタン１９０４が押下されたと判断した場合、Ｓ２００５に処理を進める。
Ｓ２００９では、プリンタ識別情報提供部４６８は、サービスプロバイダ４４０に対してエラーを返す。
Ｓ２００５では、プリンタ識別情報提供部４６８は、プリンタ登録指示部４９１を介して、プリンタ登録受付部４８５にプリンタ登録指示を送信する。Ｓ２００６では、プリンタ識別情報提供部４６８は、プリンタ登録指示部４９１を介して、プリンタ登録指示のレスポンスとしてプリンタＩＤを取得する。Ｓ２００７では、プリンタ識別情報提供部４６８は、制御部４６７及びユーザ情報格納部４６９を介して、ユーザ情報管理テーブル５００に示すように、プリンタＩＤ、ユーザアカウント、及びパスワードを関連付けて記憶装置２０５に記憶（保存）する。
【００７７】
Ｓ２００８では、プリンタ識別情報提供部４６８は、ユーザ情報格納部４６９から、Ｓ２００１で指定されたユーザアカウントに関連付けられたプリンタＩＤを取得し、サービスプロバイダ４４０に提供する。
以上のように、本実施形態では、プリンタＩＤの要求があったときに、対象となるユーザアカウントについてユーザ情報が格納されていない場合、ユーザ情報を登録する手段をユーザに提示し、ユーザ情報を登録する。この構成によれば、プリンタを予め登録していないユーザに対しても対応できるようになる。
【００７８】
＜第３の実施形態＞
第１の実施形態、及び第２の実施形態では、Ｗｅｂアプリケーション４１０からＭＦＰ１０１のサービスプロバイダ４４０に対して、プリンタＩＤの要求を行うが、ＭＦＰ１０１からＷｅｂアプリケーション４１０に通知するようにしてもよい。
より具体的には、Ｗｅｂブラウザ４２０から、Ｗｅｂアプリケーション４１０にリクエストを行う際、Ｗｅｂブラウザ４２０は、印刷プロキシ４６０のプリンタ識別情報提供部４６８からプリンタＩＤを取得する。Ｗｅｂブラウザ４２０は、得られたプリンタＩＤをＷｅｂアプリケーション４１０へのＨＴＴＰリクエストにおけるＨＴＴＰリクエストヘッダに付加する。例えば、Ｗｅｂブラウザ４２０は、拡張ヘッダとして、Ｘ−ＰＲＩＮＴＥＲＩＤというフィールドにプリンタＩＤを含め、Ｗｅｂアプリケーション４１０にリクエストを行う。
この際、プリンタＩＤがユーザごとに割り振られているため、印刷プロキシ４６０のプリンタ識別情報提供部４６８からプリンタＩＤを取得するには、ユーザを特定する必要がある。そのため、第１の実施形態で示したような、ＭＦＰ１０１自体にユーザ管理を行う仕組みが組み込まれ、予めログインが行われているか、ダイアログを表示させてユーザアカウントを入力する必要がある。
【００７９】
以上のように、本実施形態では、ＭＦＰが印刷サービスによって発行されるプリンタＩＤをＷｅｂブラウザからＷｅｂアプリケーションに提供することによって、Ｗｅｂアプリケーションが自動的に印刷を実行するプリンタを選択する。これにより、ユーザ操作によるプリンタの選択の手間を省くことができる。
なお、図８（Ｂ）、図９、図１１（Ｂ）、図１２、図１４、図１５、図１６、図１７、及び図１９に示すデータは、ＸＭＬ形式のデータであるが、データ形式やデータを授受する際の通信プロトコルについては限定されるものではない。例えば、ＪＳＯＮ形式やＳＯＡＰ形式でデータが記述されていてもよい。
【００８０】
＜第４の実施形態＞
上述した実施形態では、Ｗｅｂアプリケーションサーバ１０２に対するクライアントとしてＭＦＰ１０１を例に挙げて説明したが、本実施形態では、ＰＣ、モバイル端末などの情報処理装置をクライアントとした場合を例に挙げて説明する。この場合、情報処理装置の特定情報取得部が、優先するプリンタを特定可能にする特定情報（情報処理装置のＩＰアドレス等）を記憶装置から取得し、情報処理装置の通信部がＷｅｂアプリケーションサーバ１０２に当該特定情報を送信する。
ここで、Ｗｅｂアプリケーションサーバ１０２は、プリンタの位置情報とプリンタＩＤとを関連付けた位置特定テーブルと、情報処理装置のＩＰアドレスと位置情報とを関連付けたプリンタ特定テーブルとを有する。故に、情報処理装置からＩＰアドレスが送信されることで、Ｗｅｂアプリケーションサーバ１０２は、これらのテーブルを用いて情報処理装置の近くに存在するプリンタ（一定の位置のプリンタ）を特定できる。なお、本実施形態では、上述した実施形態と相違する部分について主に説明する。
【００８１】
より詳細に説明すると、まず、情報処理装置のＷｅｂブラウザは、Ｗｅｂアプリケーションサーバ１０２を介して印刷サーバ１０３の印刷サービス４７０にログインを行う。ログインが行われると、Ｗｅｂアプリケーションサーバ１０２は、アプリケーション画面のＨＴＭＬデータをＷｅｂブラウザに送信する。
Ｗｅｂブラウザは、ＨＴＭＬデータを解釈してアプリケーション画面をＵＩ表示装置に表示し、アプリケーション画面を介してユーザから印刷の要求を受け付ける。例えば、アプリケーション画面において印刷ボタンが押下されると、Ｗｅｂブラウザは、情報処理装置のＩＰアドレスをＷｅｂアプリケーションサーバ１０２のＷｅｂアプリケーション４１０に送信する。通信にはＨＴＴＰプロトコルのＰＯＳＴコマンドが利用される。
【００８２】
Ｗｅｂアプリケーション４１０のプリンタ情報取得部４１３は、印刷サービス４７０のプリンタ情報提示部４７７にプリンタ情報の取得を要求する。プリンタ情報提示部４７７は、制御部４７２を介してプリンタ情報格納部４７３により格納されているプリンタ情報を取得し、プリンタ情報取得部４１３に送信する。
Ｗｅｂアプリケーション４１０は、ログインしているユーザが利用可能なプリンタのプリンタＩＤ及びプリンタ名の一覧が含まれるプリンタ情報を取得すると、受信した情報処理装置のＩＰアドレスに関連付けられた位置情報を位置特定テーブルから取得する。そして、Ｗｅｂアプリケーション４１０は、取得した位置情報の一定の位置に存在する位置情報に関連付けられたプリンタＩＤをプリンタ特定テーブルから取得する。
【００８３】
Ｗｅｂアプリケーション４１０は、取得したプリンタＩＤのプリンタに合わせた印刷設定値を指定可能な印刷設定画面のＨＴＭＬデータを生成し、Ｗｅｂブラウザに送信する。Ｗｅｂブラウザは、ＨＴＭＬデータを解釈して印刷設定画面をＵＩ表示部に表示する。印刷設定画面において、ユーザにより、プリンタが選択され、実行ボタンが押下されると、Ｗｅｂブラウザ４２０は、印刷設定画面で入力された情報をＷｅｂアプリケーション４１０に通知する。なお、以降の処理については、基本的には、Ｓ１０１６以降の処理と同様であるので説明を省略する。
以上の構成では、情報処理装置が優先するプリンタを特定可能にする特定情報をＷｅｂアプリケーションに提供することによって、Ｗｅｂアプリケーションが自動的に優先するプリンタを特定する。これにより、ユーザによるプリンタの選択の手間を省くことができる。
【００８４】
本実施形態では、優先するプリンタを特定可能にする特定情報としてＩＰアドレスを示したが、これに限られるものではない。例えば、ＧＰＳにより得られる位置情報、携帯基地局により得られる位置情報などであってもよい。この場合は、位置特定テーブルについては不要となる。また、例えば、ＳＳＩＤ（Service Set Identifier）であってもよい。この場合は、位置特定テーブルでは、アクセスポイントの識別子と位置情報とが関連付けられている。
また、本実施形態では、情報処理装置が予め優先するプリンタの情報（プリンタＩＤ、プリンタ名等）を保持し、Ｗｅｂアプリケーションサーバ１０２に送信する構成を採用してもよい。
【００８５】
＜その他の実施形態＞
上述した実施形態の構成は、適宜組み合わせて採用してもよい。例えば、第４の実施形態の構成をＭＦＰ１０１に適用してもよい。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【００８６】
上述した実施形態の構成によれば、印刷に用いる画像形成装置を選択するための画面をより適切に制御することができる。
【００８７】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図１】
2013116559.tif 000003
【図２】
2013116559.tif 000004
【図３】
2013116559.tif 000005
【図４】
2013116559.tif 000006
【図５】
2013116559.tif 000007
【図６】
2013116559.tif 000008
【図７】
2013116559.tif 000009
【図８】
2013116559.tif 000010
【図９】
2013116559.tif 000011
【図１０】
2013116559.tif 000012
【図１１】
2013116559.tif 000013
【図１２】
2013116559.tif 000014
【図１３】
2013116559.tif 000015
【図１４】
2013116559.tif 000016
【図１５】
2013116559.tif 000017
【図１６】
2013116559.tif 000018
【図１７】
2013116559.tif 000019
【図１８】
2013116559.tif 000020
【図１９】
2013116559.tif 000021
【図２０】
2013116559.tif 000022