(57)【特許請求の範囲】
【請求項１】
画像形成装置と、
前記画像形成装置が要求する処理に応じたＷｅｂサービスを提供する複数のサーバを管理するサーバ管理装置とを備え、
前記サーバ管理装置は、
前記サーバからサーバの位置情報とサーバのリソースに関するリソース情報とを取得し、取得した情報をサーバ情報として管理する第１取得手段と、
前記画像形成装置から処理要求を受け付ける要求受け付け手段と、
前記画像形成装置から画像形成装置の位置情報として、前記画像形成装置の物理的位置を示す物理的位置情報、または画像形成装置とサーバ間のネットワーク上における距離間を示す相対的位置に関する相対的位置情報を取得する第２取得手段と、
前記第２取得手段により取得された前記画像形成装置の物理的位置を示す前記物理的位置情報を用いて、前記複数のサーバの中からＷｅｂサービスを提供するサーバを選択できるか否かを判断する判断手段と、
前記第１取得手段により管理されているサーバ情報、前記要求受け付け手段により受け付けられた処理要求、前記第２取得手段により取得された前記画像形成装置の位置情報、および前記判断手段により判断された判断結果とに基づき、前記処理要求に対応するＷｅｂサービスを提供するサーバを前記複数のサーバの中から選択し、選択されたサーバを前記画像形成装置に割り当てる選択手段とを備える
ことを特徴とするＷｅｂサービスシステム。
【請求項２】
前記選択手段は、
前記判断手段により前記サーバが選択できると判断された場合、前記第２取得手段により取得された前記物理的位置情報に基づき、前記画像形成装置の物理的位置に最も近い位置に配置されているサーバを前記処理要求に応じたＷｅｂサービスを提供するサーバとして選択し、
前記判断手段により前記サーバが選択できないと判断された場合は、複数のサーバに対する前記相対的位置情報に基づき、前記処理要求に応じたＷｅｂサービスを提供するサーバを選択する
ことを特徴とする請求項１に記載のＷｅｂサービスシステム。
【請求項３】
前記物理的位置情報は、前記画像形成装置の、リージョン情報、ロケール情報、ローカル時刻、ＧＰＳ情報、ユーザ設定位置情報、仮想ＰＣの位置情報、物理ＰＣの位置情報、ＩＰアドレス、またはネットワークドメイン情報のいずれかであり、
前記相対的位置情報は、ネットワーク構成マップ、ネットワークノード間距離、通信遅延時間ＲＴＴ、ローカル時刻の差異のいずれかである
ことを特徴とする請求項２に記載のＷｅｂサービスシステム。
【請求項４】
前記選択手段は、
前記リソース情報を参照して、前記判断結果または前記相対的位置情報に基づいて選択対象となるサーバが有するリソースが前記処理要求を満たすかを判断し、
前記選択対象となるサーバが有するリソースが前記処理要求を満たさない場合に、該処理要求を満たすリソースを有するサーバを、該処理要求に対応するＷｅｂサービスを提供するサーバとして選択する
ことを特徴とする請求項２または請求項３に記載のＷｅｂサービスシステム。
【請求項５】
前記複数のサーバのリソースの状態の変化を監視する監視手段を備え、
前記選択手段は、
前記監視手段による前記リソースの状態の変化の監視結果に応じて、現在提供されているＷｅｂサービスを提供するための条件を満たすリソースを有するサーバを特定し、
前記物理的位置情報と前記特定されたサーバの位置情報との比較結果、または前記相対的位置情報に基づいて、現在提供されているＷｅｂサービスを提供するサーバを選択し、該Ｗｅｂサービスを提供するサーバを現在該Ｗｅｂサービスを提供しているサーバから前記選択したサーバに切り替える
ことを特徴とする請求項４に記載のＷｅｂサービスシステム。
【請求項６】
画像形成装置が要求する処理に応じたＷｅｂサービスを提供する複数のサーバを管理するサーバ管理装置であって、
前記サーバからサーバの位置情報とサーバのリソースに関するリソース情報とを取得し、取得した情報をサーバ情報として管理する第１取得手段と、
前記画像形成装置から処理要求を受け付ける要求受け付け手段と、
前記画像形成装置から画像形成装置の位置情報として、前記画像形成装置の物理的位置を示す物理的位置情報、または画像形成装置とサーバ間のネットワーク上における距離間を示す相対的位置に関する相対的位置情報を取得する第２取得手段と、
前記第２取得手段により取得された前記画像形成装置の物理的位置を示す前記物理的位置情報を用いて、前記複数のサーバの中からＷｅｂサービスを提供するサーバを選択できるか否かを判断する判断手段と、
前記第１取得手段により管理されているサーバ情報、前記要求受け付け手段により受け付けられた処理要求、前記第２取得手段により取得された前記画像形成装置の位置情報、および前記判断手段により判断された判断結果とに基づき、前記処理要求に対応するＷｅｂサービスを提供するサーバを前記複数のサーバの中から選択し、選択されたサーバを前記画像形成装置に割り当てる選択手段とを備える
ことを特徴とするサーバ管理装置。
【請求項７】
画像形成装置と、前記画像形成装置が要求する処理に応じたＷｅｂサービスを提供する複数のサーバを管理するサーバ管理装置とを備えるシステムにおけるＷｅｂサービス提供方法であって、
前記サーバ管理装置が、前記サーバからサーバの位置情報とサーバのリソースに関するリソース情報とを取得し、取得した情報をサーバ情報として管理し、
前記サーバ管理装置が、前記画像形成装置から処理要求を受け付け、
前記サーバ管理装置が、前記画像形成装置から画像形成装置の位置情報として、前記画像形成装置の物理的位置を示す物理的位置情報、または画像形成装置とサーバ間のネットワーク上における距離間を示す相対的位置に関する相対的位置情報を取得し、
前記サーバ管理装置が、前記取得された前記画像形成装置の物理的位置を示す前記物理的位置情報を用いて、前記複数のサーバの中からＷｅｂサービスを提供するサーバを選択できるか否かを判断し、
前記サーバ管理装置が、前記サーバ情報と、前記処理要求と、前記画像形成装置の位置情報と、前記判断された判断結果とに基づいて、前記処理要求に対応するＷｅｂサービスを提供するサーバを選択して、前記画像形成装置に割り当てる
ことを特徴とするＷｅｂサービス提供方法。
【請求項８】
請求項７に記載のＷｅｂサービス提供方法をコンピュータに実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｗｅｂサービスシステム、サーバ管理装置およびＷｅｂサービス提供方法に関する。
【背景技術】
【０００２】
複数のＷｅｂサービスをサービスバスで連携するサービス作成方法が提案されている。特許文献１は、各々のサービスバスのノード識別子と位置情報とを登録することを通じて、隣接するサービスバスのＷｅｂサービスを利用できるようにするサービスバス連携方法を開示する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−９２１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１のサービスバス連携方法を、画像形成装置と、当該画像形成装置から要求された処理に対応するＷｅｂサービスを提供するサーバと、当該サーバを管理するサーバ管理装置とを備えるＷｅｂサービスシステムに適用した場合、以下のような問題がある。このサービスバス連携方法の適用によっては、サーバ管理装置が、複数のＷｅｂサービスのうち、画像形成装置の位置と画像形成装置が要求する処理内容とに対応するＷｅｂサービスを選択して画像形成装置に提供することが困難である。
【０００５】
例えば、次の様な例を用いて上述の困難性について説明する。クラウド上で動作するサーバ管理装置が、仮想プリンタをサーバとして管理し、当該サーバ上に構築される仮想デバイスが、画像形成装置から要求された処理に対応するＷｅｂサービスを提供する場合を想定する。この仮想デバイスは、Ｗｅｂサービスに対応する処理を実行する処理実行手段として機能する。
【０００６】
サーバ管理装置が、プリント処理を要求した画像形成装置に対してプリント処理を実行する仮想デバイスを割り当てたときに、当該仮想デバイスが構築された仮想プリンタの本体は、画像形成装置の場所と同じ、または近接した場所に配置されているとは限らない。例えば、画像形成装置が日本に配置され、仮想プリンタの本体がアメリカに配置されている場合には、画像形成装置と仮想プリンタとの間の通信にタイムラグが生じる。従って、画像形成装置のユーザは、リソースを利用したサービスを受けるのに時間がかかってしまう。
【０００７】
また、サーバ管理装置が管理するサーバ（仮想プリンタ）のリソースが変動すると、画像形成装置が要求する処理に対応するＷｅｂサービスが変動する場合がある。このような場合に、特許文献１が開示するサービスバス連携方法の適用によっては、画像形成装置が要求する処理に対応するＷｅｂサービスを選択することが困難である。
【０００８】
本発明は、上述した問題の少なくとも一つを解決するためになされたものである。本発明は、画像形成装置と画像形成装置が要求する処理に対応するＷｅｂサービスを提供するサーバを管理するサーバ管理装置とを備え、画像形成装置の位置と要求する処理内容とに応じた適正なＷｅｂサービスを選択するＷｅｂサービスシステムの提供を目的とする。
【課題を解決するための手段】
【０００９】
本発明の一実施形態のＷｅｂサービスシステムは、画像形成装置と、前記画像形成装置が要求する処理に応じたＷｅｂサービスを提供する複数のサーバを管理するサーバ管理装置とを備え、前記サーバ管理装置は、前記サーバからサーバの位置情報とサーバのリソースに関するリソース情報とを取得し、取得した情報をサーバ情報として管理する第１取得手段と、前記画像形成装置から処理要求を受け付ける要求受け付け手段と、前記画像形成装置から画像形成装置の位置情報として、前記画像形成装置の物理的位置を示す物理的位置情報、または画像形成装置とサーバ間のネットワーク上における距離間を示す相対的位置に関する相対的位置情報を取得する第２取得手段と、前記第２取得手段により取得された前記画像形成装置の物理的位置を示す前記物理的位置情報を用いて、前記複数のサーバの中からＷｅｂサービスを提供するサーバを選択できるか否かを判断する判断手段と、前記第１取得手段により管理されているサーバ情報、前記要求受け付け手段により受け付けられた処理要求、前記第２取得手段により取得された前記画像形成装置の位置情報、および前記判断手段により判断された判断結果とに基づき、前記処理要求に対応するＷｅｂサービスを提供するサーバを前記複数のサーバの中から選択し、選択されたサーバを前記画像形成装置に割り当てる選択手段とを備える。
【発明の効果】
【００１０】
本実施形態のＷｅｂサービスシステムによれば、画像形成装置が要求する処理に応じたＷｅｂサービスを、画像形成装置１０１の位置に応じた適切なサーバに提供させることができる。
【図面の簡単な説明】
【００１１】
【図１】本実施形態のＷｅｂサービスシステムの構成例を示す図である。
【図２】仮想デバイスサーバを実現する物理ＰＣのハードウェア構成例である。
【図３】プリンタの構成例を示す図である。
【図４】Ｗｅｂサービスシステムが備える各装置の機能ブロック図の例である。
【図５】クライアント位置情報とプロバイダー情報の例である。
【図６】Ｗｅｂサービスシステムの動作処理例を説明するシーケンス図である。
【図７】クライアント位置情報の取得処理を説明するフローチャートである。
【図８】仮想デバイスサービスの登録処理例を説明するフローチャートである。
【図９】Ｗｅｂサービスを提供させる仮想デバイスサーバの候補の決定処理例を説明するフローチャートである。
【図１０】リソース情報の取得処理を説明するフローチャートである。
【発明を実施するための形態】
【００１２】
図１は、本実施形態のＷｅｂサービスシステムの構成例を示す図である。図１に示すＷｅｂサービスシステムは、プリンタ１０１、仮想デバイス管理サーバ１０２、仮想デバイスサーバ１０３、１０４を備える。本実施形態のＷｅｂサービス提供方法は、例えば、図１に示すＷｅｂサービスシステムによって実現される。また、本実施形態のコンピュータプログラムは、このＷｅｂサービス提供方法を実現するプログラムである。なお、Ｗｅｂサービスシステムが備える仮想デバイスサーバの数は、１台でもよいし、３台以上の任意の複数台でもよい。プリンタ１０１乃至仮想デバイスサーバ１０４は、それぞれ、対応するＩＰアドレスを保持している。ＩＰは、Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌの略称である。
【００１３】
プリンタ１０１乃至仮想デバイスサーバ１０４は、インターネット１０５等のネットワークで通信可能である。もちろん、プリンタ１０１乃至仮想デバイスサーバ１０４が、ＩＥＥＥ８０２．１１などの無線ＬＡＮ経由で通信するようにしてもよい。
【００１４】
本実施形態のＷｅｂサービスシステムの機能が実現されるのであれば、プリンタ１０１、仮想デバイス管理サーバ、仮想デバイスサーバ上でのプログラムの動作を、プリンタ上のＣＰＵ、ＲＡＭ、ＲＯＭを用いて実行するようにしてもよい。ＣＰＵは、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの略称である。ＲＡＭは、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙの略称である。また、ＲＯＭは、Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙの略称である。また、仮想デバイス管理サーバ１０２上、仮想デバイスサーバ上でのプログラムの動作を、仮想コンピュータ環境で実行してもよい。
【００１５】
プリンタ１０１は、本実施形態の画像形成装置である。プリンタ１０１が、印刷機能を提供するプリンタの他、印刷、スキャナ、ＦＡＸなどの複合機能を提供する複合機（ＭＦＰ）等であってもよい。
【００１６】
本実施形態では、プリンタ１０１は、仮想デバイス管理サーバ１０２に対して処理要求をする。当該処理要求は、例えば、印刷処理を求める印刷処理要求である。印刷処理要求は、印刷データの印刷処理を実行する印刷ジョブを含む。すなわち、プリンタ１０１は、Ｗｅｂサービスのクライアントとして機能する。
【００１７】
プリンタ１０１は、仮想デバイス管理サーバ１０２、仮想デバイスサーバ１０３、仮想デバイスサーバ１０４と通信を行うための通信プロトコルを実装している。プリンタ１０１は、実装する通信プロトコルを用いて、仮想デバイス管理サーバまたは仮想デバイスサーバとの間のリクエスト（処理要求）の送受信を実行する。上記通信プロトコルは、例えば、ＨＴＴＰ、ファイル転送、ＳＮＭＰ、ＷＳ−Ｅｖｅｎｔｉｎｇ等である。
【００１８】
仮想デバイス管理サーバ１０２、仮想デバイスサーバ１０３、１０４は、リクエストの要求元であるプリンタ１０１からのリクエストに対応するサービスを提供する。仮想デバイス管理サーバ１０２は、サーバ管理装置として機能し、仮想デバイスサーバ１０３、１０４を管理する。具体的には、仮想デバイス管理サーバ１０２は、仮想デバイスの管理機能をＷｅｂサービスとして提供する。仮想デバイスの管理機能は、仮想デバイスの作成、削除などの管理を行う機能である。
【００１９】
また、仮想デバイスは、仮想デバイスサーバ上で、プリンタ１０１からの処理要求に応じた処理を実行する（Ｗｅｂサービスを提供する）処理実行手段である。仮想デバイス管理サーバ１０２は、プリンタ１０１からの処理要求に応じた仮想デバイスサーバを選択し、選択した仮想デバイスサーバに指示して、当該処理要求に応じたＷｅｂサービスを提供する仮想デバイスを作成させる。
【００２０】
仮想デバイスサーバ１０３、１０４は、プリンタ１０１が要求する処理に対応するＷｅｂサービスを提供するサーバである。具体的には、仮想デバイスサーバは、仮想デバイス管理サーバ１０２からの指示に従って、仮想デバイスサービスを仮想デバイスとして作成する。この仮想デバイスサービスが、プリンタ１０１を代理して、プリンタ１０１が要求する処理を実行し、当該処理の実行結果をプリンタ１０１に返す。本実施形態では、仮想デバイスサーバ１０３は日本でＷｅｂサービスを提供し、仮想デバイスサーバ１０４は、アメリカでＷｅｂサービスを提供するものとする。
【００２１】
プリンタ１０１が仮想デバイス管理サーバ１０２に画像処理サービスを要求した場合を例にとって説明する。仮想デバイス管理サーバ１０２は、画像処理サービスに対応する仮想デバイスサーバを選択し、選択した仮想デバイスサーバに指示して、当該画像処理サービスに対応する仮想デバイスサービスのインスタンスを作成させる。仮想デバイス管理サーバ１０２は、Ｗｅｂサービス毎に、仮想デバイスサーバが作成した仮想デバイスサービス（のインスタンス）を管理する。この例では、仮想デバイス管理サーバ１０２は、画像処理サービスに対応する仮想デバイスサービスのインスタンスに関する情報を含むプロバイダー情報を、サービスレジストリ記憶部５０５に記憶して管理する。
【００２２】
仮想デバイスの個々のインスタンスは、バーチャルマシン（ＶＭ）上で機能している。ＶＭは、物理ＰＣのメモリやＣＰＵなど、仮想デバイスサービスに必要なハードウェアリソースを、仮想的に１台のＰＣとして構成した仮想ＰＣである。当該ＶＭによって実現される仮想デバイスサービスをプリンタ１０１が利用することによって、Ｗｅｂサービス（この例では画像処理サービス）が提供される。
【００２３】
具体的には、仮想デバイスサービスは、プリンタ１０１が行う画像処理と同様に、印刷データに対して、描画命令（ＰＤＬ）からラスタライズ処理を行い、紙への描画データに変換する。また、仮想デバイスサービスは、各種色処理やエンジン固有情報に基づいた処理を実行する。
【００２４】
プリンタ１０１が備える画像処理部が画像処理を実行する場合には、ＣＰＵ、ＲＡＭなどのリソース、ＲＯＭのプログラムに応じた制限があるが、本実施形態では仮想デバイスサービスがプリンタ１０１を代理して画像処理を実行するので、このような制限が少ない。従って、仮想デバイスサービスによれば、プリンタ１０１が画像処理する場合と比べて、高速に処理を実行することができる。また、プリンタ１０１が備える画像処理部が故障した場合などに、仮想デバイスサービスが代理して画像処理することができる。
【００２５】
仮想デバイスが提供する他のＷｅｂサービスとして、Ｓｃａｎサービス、データ圧縮／伸長サービス、データ暗号化／復号サービス、Ｗｅｂサーバサービス、ストレージサービス、メールサービスなどがある。
【００２６】
また、仮想デバイス管理サーバ１０２、仮想デバイスサーバ１０３、１０４の機能が、物理ＰＣによって実現されてもよいし、仮想ＯＳや、仮想ディスクなどの仮想ＰＣによって実現されてもよい。また、本実施形態のＷｅｂサービスシステムが備える装置間の通信は、アドレス情報を用いる任意の通信であればよい。例えば、当該通信に、ＩＰｖ４やＩＰｖ６などの通信プロトコルを適用することもできる。当該通信プロトコルは、ＯＳＩ参照モデルの物理層、データリンク層、ネットワーク層、トランスポート層、セッション層、プレゼンテーション層、アプリケーション層の各層におけるプロトコルを限定するものではない。
【００２７】
図２は、仮想デバイスサーバを実現する物理ＰＣのハードウェア構成例を示す図である。なお、Ｗｅｂサービスシステムが、プリンタ１０１に対して印刷指示を行うホストコンピュータ（不図示）を備える場合には、当該ホストコンピュータは、図２に示す物理ＰＣと同様のハードウェア構成を有する。
【００２８】
図２に示す物理ＰＣは、ＣＰＵ（Central Processing Unit）１、ＲＡＭ（Random Access Memory）２、ＲＯＭ（Read Only Memory）３を備える。また、物理ＰＣは、ＫＢＣ（Keyboad Controller）５、表示制御部６を備える。また、物理ＰＣは、ＤＫＣ（Disk Controller）７、ＮＭＣ（Network Controller）８、ＫＢ（Keyboad）９、表示部１０、外部メモリ１１を備える。
【００２９】
ＣＰＵ１は、システムバス４に接続された各デバイスを統括的に制御する中央処理装置である。ＣＰＵ１は、ＲＯＭ３のプログラム用ＲＯＭ或いは外部メモリ１１に記憶されたアプリケーション（文書処理プログラム等）に基づいて、図形、イメージ、文字、表（表計算等を含む）等が混在した文書処理等の各種処理を実行する。また、ＣＰＵ１は、例えば、ＲＡＭ２上に設定された表示ＲＡＭへのアウトラインフォントの展開（ラスタライズ）処理を実行し、表示制御部６を介して表示部１０に表示する。表示部１０は、例えばＣＲＴであり、表示制御部６は、例えばＣＲＴＣである。
【００３０】
また、ＣＰＵ１は、表示部１０上のマウスカーソル等で指示されたコマンドに基づいて、登録された種々のウインドウを開き、種々のデータ処理を実行する。ユーザは、クライアントアプリケーションやサーバサービスを使用する際、その設定などの操作に関するウインドウを開き、設定を行うことができる。なお、表示部１０は、ＣＲＴに限らず、液晶やプラズマ等でもよい。
【００３１】
ＲＡＭ２は、ＣＰＵ１の主メモリ、ワークエリア等として機能する。ＲＯＭ３は、不図示のフォント用ＲＯＭ、プログラム用ＲＯＭ、データ用ＲＯＭなどを備える。フォント用ＲＯＭ或いは外部メモリ１１は、上記文書処理等の際に使用するフォントデータ等を記憶する。
【００３２】
プログラム用ＲＯＭ或いは外部メモリ１１は、ＣＰＵ１の制御プログラムであるオペレーティングシステム（以下、ＯＳ）等を記憶する。データ用ＲＯＭ或いは外部メモリ１１は、上述の文書処理等を行う際に使用する各種データを記憶する。外部メモリ１１に記憶されているプログラムは、実行時にＲＡＭ２に展開されて実行される。
【００３３】
ＫＢＣ５は、ＫＢ９やポインティングデバイス（不図示）が入力した入力情報を制御する。表示制御部６は、表示部１０への表示を制御する。ＤＫＣ７は、外部メモリ１１とのアクセスを制御する。ＮＷＣ８は、双方向性インターフェース２１を介してネットワーク１０６に接続されている。
【００３４】
キーボード９は、各種キーを備えている。表示部１０は、図形、イメージ文字、表等を表示する。外部メモリ１１は、ＨＤ（Hard Disk）、フロッピー（登録商標）ディスク等を備える。外部メモリ１１は、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル等を記憶する。
【００３５】
図３は、プリンタの構成例を示す図である。図３（Ａ）は、プリンタ１０１の外観例を示す。この例では、プリンタ１０１はＭＦＰであるものとする。プリンタ１０１が備えるフィーダ３００（原稿自動送り部）は、スキャナ部３０１でスキャンニングを行う際に自動で紙を送る機構である。原稿のスキャナ部３０１は、紙の情報をスキャニングして電子化を行う。
【００３６】
ＵＩ部３０２は、ＭＦＰの入力操作を受け付ける。また、ＵＩ部３０２は、各種情報を表示する。給紙部３０３は、印刷の際に印刷用紙を定着部３０４に送る機構である。定着部３０４は、給紙部３０３から送られてきた用紙にトナーを定着させて印刷を行う機構である。排紙部３０５は、定着部３０４にて印刷された用紙を排紙する機構である。フィニッシング装置３０６は、排紙部３０５から排紙された紙を発注情報に従って、ステープルやパンチ等の処理を行う機構である。排紙トレイ３０７は、最終的に印刷・フィニッシングされた印刷物を保持するトレイである。
【００３７】
図３（Ｂ）は、プリンタが備えるプリンタコントローラを示す。プリンタコントローラ４１０は、メインコントローラ４０９、エンジン制御部４０６、画像処理部４０７、クライアント位置情報取得部４０８、送受信部４１２を備える。
【００３８】
メインコントローラ４０９は、印刷機能の全体の制御を行う。具体的には、メインコントローラ４０９は、外部との入出力制御を行い、エンジン制御部４０６や画像処理部４０７などに指示を出すことで印刷機能の制御を行う。
【００３９】
メインコントローラ４０９が備えるオフロード処理制御部４００は、ＭＦＰの処理に関して、仮想デバイス管理サーバ１０２や仮想デバイスサーバと通信する主制御部である。オフロード制御部４００は、メインコントローラ４０９上のＣＰＵ４０２、ＲＯＭ４０３、ＲＡＭ４０４、ＨＤＤ４０５、ネットワーク制御部４０１で動作する。これらを専用のオフロード制御用ハードウェアとして独立させることにより、より高可用性のシステムを構築することができる。
【００４０】
ネットワーク制御部４０１は、外部機器との間の通信制御を行う。ＬＡＮ１００を介して、不図示のクライアントＰＣから印刷指示の受信や、構成情報の取得指示を受信し、指示に従った処理の結果を送信する。また、ネットワーク制御部４０１は、ＬＡＮ１００やインターネット１０５を介して、仮想デバイス管理サーバ１０２、仮想デバイスサーバと通信を行う。
【００４１】
ＣＰＵ４０２は、コントローラバス４１１に接続された各デバイスを制御する中央処理装置である。ＣＰＵ４０２は、ＲＯＭ４０３のプログラム用ＲＯＭ或いは外部メモリであるＨＤＤ４０５に記憶されたプログラムに基づいて、プリンタ１０１の制御のための各種処理を実行する。
【００４２】
ＲＯＭ４０３は、ＣＰＵ４０２で実行されるプログラム等の記憶領域として機能する。ＲＡＭ４０４は、ＣＰＵ４０２の主メモリ、ワークエリア等として機能する。ＨＤＤ４０５は、プログラム、ワークエリア、ユーザデータの記憶領域として機能する。
【００４３】
エンジン制御部４０６は、プリンタ１０１における印刷機能の制御を行う。この印刷機能の制御は、紙の搬送や定着機の制御である。具体的には、エンジン制御部４０６は、給紙部３０３から搬送された紙を定着部３０４に送り、画像処理部４０７で処理された描画データを紙へ転写する。定着部３０４は、給紙部３０３から送られてきた用紙にトナーを定着させて印刷を行う。定着部３０４にて印刷された紙は排紙部３０５へ搬送される。
【００４４】
画像処理部４０７は、描画命令（ＰＤＬ）からラスタライズ処理を行い、紙への描画データに変換する。また、画像処理部４０７は、各種色処理やエンジン固有情報を元にした処理なども行う。
【００４５】
クライアント位置情報取得部４０８は、プリンタ１０１の位置に関する情報であるクライアント位置情報を取得し、送受信部４１２およびインターネット１０５を介して、仮想デバイス管理サーバ１０２に対して送信する。クライアント位置情報取得部４０８は、クライアント位置情報として、物理的位置情報または相対的位置情報を取得する。物理的位置情報は、プリンタ１０１の物理的位置に関する情報である。相対的位置情報は、プリンタ１０１と仮想デバイスサーバとの間の相対的位置に関する情報である。
【００４６】
後述する仮想デバイス管理サーバ１０２は、プリンタ１０１から取得したクライアント位置情報を用いて、プリンタ１０１からの処理要求に対応するＷｅｂサービスを提供する仮想デバイスサーバを選択する。送受信部４１２は、メインコントローラ４０９の指示に従って、仮想デバイス管理サーバ１０２、仮想デバイスサーバとの間で情報を送受信する。
【００４７】
図５（Ａ）は、物理的位置情報の例を示す。物理的位置情報の一例は、地域情報である。クライアント位置情報取得部４０８は、例えば、リージョン情報、ロケール情報、ローカル時刻、または、ＧＰＳ情報、ユーザ設定位置情報、仮想ＰＣの位置情報、物理ＰＣの位置情報、ＩＰアドレス、ネットワークドメイン情報等を物理的位置情報として取得する。
【００４８】
図５（Ｂ）は、相対的位置情報の例を示す。相対的位置情報は、プリンタ１０１と仮想デバイスサーバの相対的な位置情報である。相対的位置情報の一例は、ネットワーク構成マップ、ネットワークノード間距離、通信遅延時間ＲＴＴ（Ｒｏｕｎｄ  Ｔｒｉｐ  Ｔｉｍｅ）、ローカル時刻の差異等である。
【００４９】
図５（Ｂ）中に示すサービス識別は、Ｗｅｂサービスを提供する仮想デバイスサーバを示す。例えば、プリントサービスを提供する仮想デバイスサーバに対応するサービス識別子は、“Ｐｒｉｎｔ００１”，“Ｐｒｉｎｔ００２”，または“Ｐｒｉｎｔ００３”である。ホップ数は、プリンタ１０１と各々の仮想デバイスサーバとの間の通信時のルータ通過数である。通信遅延は、プリンタ１０１と各々の仮想デバイスサーバとの間の通信時の通信遅延時間ＲＴＴである。時差は、プリンタ１０１と各々の仮想デバイスサーバとのローカル時刻の差異である。
【００５０】
図４は、Ｗｅｂサービスシステムが備える各装置の機能ブロック図の例である。図４の説明の前提として、クライアントＰＣ（不図示）上で動作するプリンタドライバが、所定のアプリケーションから受けた印刷指示に従って、印刷データを生成し、印刷データをプリンタ１０１に渡すものとする。プリンタ１０１は、渡された印刷データを印刷処理するジョブ（印刷ジョブ）を含む印刷処理要求を、インターネット１０５を介して仮想デバイス管理サーバ１０２に送信する。
【００５１】
プリンタ１０１が備える各部については、図３（Ｂ）を参照して説明したので、図４を参照した詳細な説明は省略する。仮想デバイス管理サーバ１０２、仮想デバイスサーバ１０３、１０４が備える各処理部について説明する。仮想デバイス管理サーバ１０２、仮想デバイスサーバ１０３，１０４が備える各処理部は、ＲＯＭもしくは外部メモリなどに格納されており、必要に応じて、ＲＡＭを用いてＣＰＵにて実行される。仮想デバイス管理サーバ１０２、仮想デバイスサーバ１０３、１０４で共通の処理部については、同じ符号で示し、説明を省略する。
【００５２】
送受信部５０１は、ＮＷＣ８（図２を参照）を用いて、プリンタ１０１のネットワーク制御部４０１との間で、情報を送受信する。例えば、送受信部５０１は、プリンタ１０１からの処理要求や情報取得の指示を受信し、これらに対する応答をプリンタ１０１に送信する。
【００５３】
プリンタ１０１のメインコントローラ４０９が、画像処理部４０７の代理処理を仮想デバイスサーバ１０３に作成された仮想デバイスサービス５１５に実行させる場合を想定する。この場合、送受信部４１２が、エンジン制御部４０６の指示に従って、仮想デバイスサーバ１０３の送受信部５０１に対して、当該代理処理の実行の指示を送信する。仮想デバイスサーバ１０３の送受信部５０１は、代理処理の実行結果をプリンタ１０１の送受信部４１２に返す。
【００５４】
画像処理部４０７の代理処理は、印刷処理の実行に限定されない。また、プリンタ１０１のメインコントローラ４０９が、エンジン制御部４０６の代理処理を仮想デバイスサーバに作成された仮想デバイスサービス５１５に実行させるようにしてもよい。また、プリンタ１０１のメインコントローラ４０９が、エンジン制御部４０６または画像処理部４０７でエラーが生じた場合に、当該エラーに関する処理を仮想デバイスサーバに作成された仮想デバイスサービス５１５に実行させるようにしてもよい。
【００５５】
Ｗｅｂサーバ５０２は、プリンタ１０１の送受信部４１２とＲＥＳＴプロトコルやＳＯＡＰプロトコルなどにより通信するＷｅｂサービスサーバである。また、Ｗｅｂサーバ５０２は、仮想デバイス管理サーバ１０２の仮想デバイス管理部５０３との間でも、ＲＥＳＴプロトコルやＳＯＡＰプロトコルなどにより通信する。本実施形態における通信に用いられるプロトコルは、ＲＥＳＴプロトコルやＳＯＡＰプロトコルに限定されない。プリンタ１０１とＷｅｂサーバ５０２との間の通信は、ＴＣＰやＵＤＰプロトコル、ＨＴＭＬプロトコルなどを用いた通信でもよい。
【００５６】
仮想デバイス管理サーバ１０２が備えるＷｅｂサーバ５０２は、プリンタ１０１から処理要求を受け取り、仮想デバイス管理部５０３に渡す。仮想デバイス管理部５０３は、当該処理要求を受け付ける要求受け付け手段として機能する。また、Ｗｅｂサーバ５０２は、仮想デバイス管理部５０３から受け取った応答情報を送受信部５０１に渡す。
【００５７】
例えば、プリンタ１０１からＷｅｂサーバ５０２に対して、描画処理を要求した場合を想定する。この描画処理の要求は、描画命令（ＰＤＬ）を含む。仮想デバイス管理部５０３は、この描画命令に応じた描画処理をさせる仮想デバイスサーバにアクセスするための情報（アクセス情報）を応答情報として送受信部５０１に渡す。仮想デバイスサーバのアクセル情報は、例えば、仮想デバイスサーバのエンドポイントの情報である。送受信部５０１は、この応答情報をプリンタ１０１の送受信部４１２に返信する。
【００５８】
仮想デバイスサーバ１０３、１０４が備えるＷｅｂサーバ５０２は、仮想デバイス管理サーバ１０２やプリンタ１０１からの要求を受け取り、仮想デバイス制御部５１４に渡す。また、Ｗｅｂサーバ５０２は、仮想デバイス制御部５１４から受け取った応答情報を送受信部５０１に渡す。
【００５９】
仮想デバイス管理サーバ１０２が備える仮想デバイス管理部５０３は、プリンタ１０１への情報のやりとりを行う。このために、仮想デバイス管理部５０３は、プリンタコントローラ４１０が備える必要な処理部を呼び出す制御を行う。また、仮想デバイス管理部５０３は、仮想デバイスサーバ１０３、１０４の仮想デバイス制御部５１４に指示して、仮想デバイスサービス５１５を制御する。この制御において、仮想デバイス管理部５０３、Ｗｅｂサーバ５０２、送受信部５０１は、１つのインスタンスで複数のプリンタ１０１のリクエストを処理することもできる。
【００６０】
また、仮想デバイス管理サーバ１０２、仮想デバイスサーバ１０３、１０４に対する処理要求元となるプリンタ１０１が多数の場合は、ＴＣＰセッションを長時間、かつ、多数保持するためのネットワークロードバランサを設けるようにしてもよい。これにより、より大規模なシステムを容易に作成できる。
【００６１】
次に、本実施形態における、仮想デバイス管理サーバ１０２のホストコンピュータとしての機能、当該ホストコンピュータ上で動作するＷｅｂサーバサービスであるプロバイダー、およびＷｅｂサーバ上で動作するＷｅｂサービスについて説明する。なお、本実施形態においては、仮想デバイスサービス５１５がＷｅｂサービスとして動作する。
【００６２】
プロバイダー情報管理部５０４は、仮想デバイスサーバの情報（サーバ情報）をプロバイダー情報として仮想デバイスサーバから取得する第１取得手段として機能する。プロバイダー情報管理部５０４は、取得したプロバイダー情報をサービスレジストリ記憶部５０５に登録する。プロバイダー情報は、プロバイダー情報は、仮想デバイスサーバの位置情報、仮想デバイスサーバのリソース情報、仮想デバイスサーバのハードウェアリソース情報を含む。これらの情報は、仮想デバイスサーバの仮想デバイスサービス５１５が提供するＷｅｂサービスと対応付けられる。
【００６３】
仮想デバイスサーバのプロバイダー位置情報取得部５１２が、仮想デバイスサーバの位置情報を取得する。リソース情報取得部５１１が、仮想デバイスサーバのリソース情報を取得する。また、ハードウェアリソース情報取得部５１０が、仮想デバイスサーバのハードウェアリソース情報を取得する。そして、送受信部５０１が、当該仮想デバイスサーバの位置情報、仮想デバイスサーバのリソース情報、仮想デバイスサーバのハードウェアリソース情報を含むプロバイダー情報を仮想デバイス管理サーバ１０２のプロバイダー情報管理部５０４に渡す。
【００６４】
仮想デバイスサーバの位置情報は、地域情報を含む。地域情報は、例えば、リージョン情報、ロケール情報、ローカル時刻である。また、仮想デバイスサーバの位置情報は、物理的位置情報または相対的位置情報を含む。物理的位置情報は、例えば、ＧＰＳ情報、ユーザ設定位置情報、仮想ＰＣの位置情報、物理ＰＣの位置情報、ＩＰアドレス、ネットワークドメイン情報である。相対的位置情報は、ネットワーク構成マップ、ネットワークノード間距離、通信遅延時間ＲＴＴ、ローカル時刻の差異を含む。
【００６５】
リソース情報は、例えば、物理ＰＣ、ホストＯＳ、仮想ＰＣそれぞれのＣＰＵ使用率、Ｎｅｔｗｏｒｋカード使用率、ディスクＩ／Ｏ使用率、ディスク転送速度、ネットワークカード転送量、仮想ネットワークの転送速度、ディスク空き容量を含む。
【００６６】
図５（Ｃ）は、プロバイダー情報が含む仮想デバイスサーバの位置情報の例を示す。また、図５（Ｄ）は、プロバイダー情報が含むリソース情報の例を示す。仮想デバイスサーバの位置情報、リソース情報は、各々のＷｅｂサービスに対応付けられている。図５（Ｃ），（Ｄ）中の識別子が、各々のＷｅｂサービスを示す。
【００６７】
本実施形態において仮想ＰＣ、仮想サーバ、仮想ＯＳなどの仮想化技術が使われている場合は、仮想デバイスサーバは、オペレーティングシステム、または仮想化ＯＳ上の仮想化管理インターフェースからリソース情報を取得することができる。また、ハードウェアリソース情報に関しても、仮想ＯＳを管理するホストＯＳまたは仮想化ＯＳから情報を取得することができる。
【００６８】
サービスレジストリ記憶部５０５は、プロバイダー情報管理部５０４が取得したプロバイダー情報を記憶する。サービスプロバイダー判定部５０６は、仮想デバイス管理部５０３からの指示に従って、プリンタ１０１からの処理要求に対応するＷｅｂサービスを提供する仮想デバイスサーバと、当該仮想デバイスサーバ上で動作する仮想デバイスサービス５１５とを選択する。
【００６９】
サービスプロバイダー判定部５０６は、仮想デバイス管理部５０３の指示に従って、以下の処理を実行する。サービスプロバイダー判定部５０６は、プリンタ１０１から取得した処理要求の内容と、クライアント位置情報と、サービスレジストリ記憶部５０５内のプロバイダー情報とに基づいて、選択する仮想デバイスサーバと仮想デバイスサービスとを判断する。すなわち、プロバイダー情報管理部５０４とサービスプロバイダー判定部５０６と仮想デバイス管理部５０３は、処理要求に対応するＷｅｂサービスを提供する仮想デバイスサーバを選択して画像形成装置１０１に割り当てる選択手段として機能する。
【００７０】
サービスデプロイ部５０７は、仮想デバイス管理部５０３の指示に従って、サービスデプロイ処理を実行する。サービスデプロイ処理は、選択された仮想デバイスサーバすなわちプリンタ１０１からの処理要求を処理する仮想デバイスサーバに作成される仮想デバイスサービス５１５を稼動させる処理である。このために、まず、仮想デバイス管理部５０３が、サービスプロバイダー判定部５０６の判断結果に基づいて、仮想デバイスサービス５１５の稼動先を決定する。そして、サービスデプロイ部５０７が、仮想デバイスサーバが仮想デバイスサービス５１５を作成するときに必要なソフトウェアのインストールおよびソフトウェアの設定を行う。
【００７１】
インストールおよび設定されるソフトウェアは、ハイパーバイザー、オペレーティングシステム、Ｗｅｂサーバサービス、データベースサービス、Ｗｅｂサービス、エンタープライズサービスバスを含む。
【００７２】
ハイパーバイザーは、オペレーティングシステムを仮想化するＯＳ仮想化ソフトである。また、このソフトウェアは、サービスレジストリクライアント、仮想デバイスサービスなどを含む。サービスデプロイ部５０７は、プリンタ１０１からの処理要求を処理する仮想デバイスサーバに、このソフトウェアのインストールを行い、さらに、プリンタ１０１からの処理要求を処理する仮想デバイスサービス５１５を稼動する。
【００７３】
仮想デバイスサービス５１５を高速に稼動するために、サービスデプロイ部５０７が、これらのソフトウェアのインストールを、プリンタ１０１からの処理要求に基づく需給予測から事前に準備しておくようにしてもよい。例えば、サービスデプロイ部５０７が、プリンタ１０１に依存しない、設定値がデフォルト値の仮想デバイスサービス５１５を事前稼動しておき、プリンタ１０１からの処理要求に応じて、仮想デバイスサービス５１５の設定を行う。これにより、仮想デバイスサービス５１５の稼動を高速に行うことができる。
【００７４】
リソース監視部５０８は、サービスレジストリ記憶部５０５内のプロバイダー情報が含むリソース情報を監視する。具体的には、リソース監視部５０８は、複数の仮想デバイスサーバのリソースの状態の変化を監視する監視手段として機能する。
【００７５】
リソース情報は、仮想デバイスサーバによる仮想デバイスサービス５１５の作成や消滅、プリンタ１０１からの処理要求に応じた処理を実行する仮想デバイスサービス５１５の負荷により変動する。また、仮想デバイスサービス５１５が稼動する仮想デバイスサーバが、仮想ＯＳ上で動作している場合は、他の仮想ＯＳの負荷状態により、リソース情報が変動する場合がある。このような場合、リソース監視部５０８が、リソース情報の変動を検出し、サービスプロバイダー判定部５０６が、プリンタ１０１からの処理要求を最適に処理できる仮想デバイスサーバおよび仮想デバイスサービス５１５を再決定する。
【００７６】
すなわち、サービスプロバイダー判定部５０６が、リソースの状態の変化の監視結果に応じて、現在提供されているＷｅｂサービスを提供するための条件を満たすリソースを有する仮想デバイスサーバを特定する。サービスプロバイダー判定部５０６が、物理的位置情報と上記特定された仮想デバイスサーバの位置情報との比較結果、または相対的位置情報に基づいて、現在提供されているＷｅｂサービスを提供するサーバを選択する。そして、仮想デバイス管理部５０３が、Ｗｅｂサービスを提供する仮想デバイスサーバを、現在該Ｗｅｂサービスを提供しているサーバから選択したサーバに切り替える。
【００７７】
Ｗｅｂサービス移動部５０９は、サービスプロバイダー判定部５０６が仮想デバイスサーバおよび仮想デバイスサービス５１５を再決定した場合に、以下の処理を実行する。Ｗｅｂサービス移動部５０９は、プロバイダー情報で管理する当該処理要求に応じたＷｅｂサービスを提供する仮想デバイスサーバおよび仮想デバイスサービス５１５を変更する。
【００７８】
図４に示す仮想デバイスサーバは２台であるが、本実施形態のＷｅｂサービスシステムが、仮想デバイスサーバが３台以上にスケールアウトされた構成をとることもできる。例えば、処理の要求元のプリンタ１０１の台数や、仮想デバイスサーバの処理負荷に応じて、仮想デバイスサーバをスケールアウトする。スケールアウトされた仮想デバイスサーバと仮想デバイス管理サーバ１０２との間をサービスバスでつなぐことにより、大規模なシステムを構築することができる。
【００７９】
仮想デバイス管理部は、スケールアウトにより追加された仮想デバイスサーバの仮想デバイス制御部５１４に指示して、仮想デバイスサービス５１５を作成させる。仮想デバイス制御部５１４は、仮想デバイスサービス５１５を作成し、作成した仮想デバイスサービス５１５にアプリケーションや設定情報をロードし、処理可能な仮想デバイスサービス５１５を増やす。
【００８０】
仮想デバイス管理部５０３は、仮想デバイスサービス５１５だけではなく、ＶＭ上にオペレーティングシステムやＷｅｂサーバ５０２を追加するようにしてもよい。なお、仮想デバイスサービス５１５や仮想デバイスサーバを減らすことにより、スケールダウン処理を行うようにしてもよい。
【００８１】
仮想デバイスサーバが備えるハードウェアリソース情報取得部５１０は、仮想デバイスサーバにインストールされているハードウェアリソースの情報を取得する。ハードウェアリソース情報は、プリンタ１０１からの処理要求をハードウェア処理するためのデバイスに関する情報（デバイス情報）を含む。
【００８２】
ハードウェアリソース情報は、例えば、ＳＳＬ通信を高速に処理するためのＳＳＬアクセラレータ、暗号化アクセラレータや画像処理を高速に処理するためのＧＰＵの情報を含む。また、ハードウェアリソース情報は、データの圧縮伸張を処理する圧縮伸張アクセラレータ、高速通信を行う広帯域ネットワークカードの情報を含む。また、ハードウェアリソース情報は、例えば、メモリやＣＰＵの情報、ストレージ情報を含む。
【００８３】
また、デバイス情報は、例えば、サポートしている処理に関する情報やデバイスのステータスを含む。例えば、ＳＳＬアクセラレータのデバイス情報は、ＳＳＬやＴＬＳのプロトコルバージョンである。また、圧縮伸張アクセラレータのデバイス情報は、圧縮アルゴリズムおよびその属性などを含む。
【００８４】
リソース情報取得部５１１は、前述したリソース情報を取得する。プロバイダー位置情報取得部５１２は、前述した仮想デバイスサーバの位置情報を取得する。プロバイダー位置情報記憶部５１３は、プロバイダー位置情報取得部５１２が取得した仮想デバイスサーバの位置情報を記憶する。
【００８５】
仮想デバイス制御部５１４は、仮想デバイス管理サーバ１０２の仮想デバイス管理部５０３から受けた指示に従って、以下の処理を実行する。仮想デバイス制御部５１４は、ハードウェアリソース情報取得部５１０からハードウェアリソース情報を取得する。また、仮想デバイス制御部５１４は、リソース情報取得部５１１からリソース情報を取得する。また、仮想デバイス制御部５１４は、プロバイダー位置情報記憶部５１３から仮想デバイスサーバの位置情報を取得する。そして、仮想デバイス制御部５１４は、取得したこれらの情報をプロバイダー情報として、送受信部５０１を介して仮想デバイス管理サーバ１０２に対して送信する。
【００８６】
また、仮想デバイス制御部５１４は、仮想デバイスサービス５１５を作成する。仮想デバイスサービス５１５は、プリンタ１０１からの処理要求に応じた処理を実行するＷｅｂサービスである。仮想デバイスサービス５１５は、Ｗｅｂサーバ５０２上で動作する。例えば、仮想デバイスサービス５１５は、プリンタ１０１の画像処理部４０７の代理処理を行う。プリンタ１０１の画像処理部４０７が故障した場合や、画像処理部４０７の処理能力が足りず、処理に時間がかかる場合に、仮想デバイスサービス５１５が画像処理部４０７の替わりに処理を行う。
【００８７】
仮想デバイスサービス５１５が、プリンタ１０１が有していない機能の処理を実行するようにしてもよい。例えば、プリンタ１０１にＯＣＲ機能が無い場合に、仮想デバイスサービス５１５が、ＯＣＲ機能を提供する。これにより、プリンタ１０１にＯＣＲ機能が追加された場合と同様の機能を実現することができる。仮想デバイスサービス５１５は、仮想デバイスサービス５１５の機能を実現するための機能毎のプログラムをロードする。これにより、仮想デバイスサービス５１５が、プリンタ１０１の代わりに様々な機能を提供できる。
【００８８】
仮想デバイスサービス５１５が提供するＷｅｂサービスは、仮想デバイス管理サーバ１０２のプロバイダー情報管理部５０４で管理される。具体的には、Ｗｅｂサービスと対応付けられた、仮想デバイスサーバの位置情報、仮想デバイスサーバのリソース情報、仮想デバイスサーバのハードウェアリソース情報が、プロバイダー情報としてサービスレジストリ記憶部５０５に記憶される。これにより、仮想デバイス管理部５０３は、仮想デバイスサービス５１５が提供するＷｅｂサービスを作成、検索することができる。
【００８９】
プリンタ１０１の処理要求に応じたＷｅｂサービスのプリンタ１０１への割り当てについて説明する。前述したように、仮想デバイスサーバ１０３は日本でＷｅｂサービスを提供し、仮想デバイスサーバ１０４はアメリカでＷｅｂサービスを提供するものとする。
【００９０】
仮想デバイス管理サーバ１０２のサービスプロバイダー判定部５０６は、サービスレジストリ記憶部５０５から取得したプロバイダー情報と、プリンタ１０１からの処理要求の内容が示すＷｅｂサービスとに基づいて、以下の処理を実行する。サービスプロバイダー判定部５０６は、Ｗｅｂサービスに対応付けられている仮想デバイスサーバの位置情報を取得する。サービスプロバイダー判定部５０６は、プリンタ１０１から取得したクライアント位置情報が物理的位置情報である場合に、以下の処理を実行する。
【００９１】
サービスプロバイダー判定部５０６は、当該物理的位置情報と上記取得した仮想デバイスサーバの位置情報とを比較し、該比較結果に基づいて、以下の処理を実行する。サービスプロバイダー判定部５０６は、プリンタ１０１の物理的位置に最も近い位置に配置されている仮想デバイスサーバを、処理要求に対応するＷｅｂサービスを提供する仮想デバイスサーバとして選択する。
【００９２】
例えば、サービスプロバイダー判定部５０６が、処理要求に対応するＷｅｂサービスを提供する仮想デバイスサーバとして、日本にある仮想デバイスサーバ１０３を選択した場合、仮想デバイスサーバ１０３に仮想デバイスサービス５１５が作成される。また、例えば、サービスプロバイダー判定部５０６が、処理要求に対応するＷｅｂサービスを提供する仮想デバイスサーバとして、アメリカにある仮想デバイスサーバ１０３を選択した場合、仮想デバイスサーバ１０３に仮想デバイスサービス５１５が作成される。
【００９３】
サービスプロバイダー判定部５０６が、リージョン情報だけではなく、東京や大阪などのデータセンター、データセンター内の物理ＰＣ位置に基づいて、処理要求に対応するＷｅｂサービスを提供する仮想デバイスサーバを選択するようにしてもよい。
【００９４】
また、クライアント位置情報が相対的位置情報である場合に、サービスプロバイダー判定部５０６は、以下のようにして仮想デバイスサーバの選択をするようにしてもよい。サービスプロバイダー判定部５０６は、例えば、プリンタ１０１との間での通信遅延時間ＲＴＴが最も短い仮想デバイスサーバを、処理要求に対応するＷｅｂサービスを提供する仮想デバイスサーバとして選択する。
【００９５】
図６は、Ｗｅｂサービスシステムの動作処理例を説明するシーケンス図である。まず、プリンタ１０１のクライアント位置情報取得部４０８が、クライアントの物理的位置情報を取得する（Ｐ１）。次に、仮想デバイス管理サーバ１０２の仮想デバイス管理部５０３が起動する（Ｐ２）。次に、プロバイダー情報管理部５０４が起動する（Ｐ３）。
【００９６】
次に、仮想デバイスサーバ１０３、１０４の仮想デバイス制御部５１４が起動する（Ｐ４）。これにより、仮想デバイスサービス５１５を提供できる準備が整う。続いて、プロバイダー位置情報取得部５１２が起動し、プロバイダー位置情報取得部５１２が、仮想デバイスサーバの位置情報を取得する（Ｐ５）。
【００９７】
次に、仮想デバイスサーバ１０３、１０４のＷｅｂサーバ５０２が起動する（Ｐ６）。続いて、ハードウェアリソース情報取得部５１０が起動してハードウェアリソース情報を取得する。また、リソース情報取得部５１１が起動してリソース情報を取得する（Ｐ７）。
【００９８】
次に、仮想デバイスサーバ１０３、１０４が、仮想デバイス制御部５１４の起動が完了したことを、仮想デバイス管理サーバ１０２の仮想デバイス管理部５０３に通知する。この時点では、プリンタ１０１の処理要求と関連付けられた仮想デバイスサービス５１５は起動していない。仮想デバイスサーバ１０３、１０４は、仮想デバイス管理サーバ１０２に対して、Ｐ５，Ｐ７において取得した情報を含むプロバイダー情報を送信する（Ｐ８）。そして、仮想デバイス管理サーバ１０２が、プロバイダー情報をサービスレジストリ記憶部５０５に記憶する（Ｐ９）。
【００９９】
上記のＰ２乃至Ｐ９の処理によって、仮想デバイス管理サーバ１０２、仮想デバイスサーバ１０３、１０４が、プリンタ１０１に対して仮想デバイスサービス５１５を提供できる状態になる。
【０１００】
次に、プリンタ１０１が、仮想デバイスサーバの仮想デバイスサービス５１５に実行させる処理を決定し、仮想デバイス管理サーバ１０２の仮想デバイス管理部５０３に処理要求を送信する（Ｐ１０）。Ｐ１０においては、プリンタ１０１は、さらに、Ｐ１で取得したクライアント位置情報を仮想デバイス管理サーバ１０２に対して送信する。なお、Ｐ１でクライアント位置情報（物理的位置情報）が取得されなかった場合には、プリンタ１０１から仮想デバイス管理サーバ１０２に対してクライアント位置情報が送信されない。
【０１０１】
なお、プリンタ１０１の各処理部がハードウェアやソフトウェアで特別な処理を行っている場合、当該処理部の代理処理を実行する仮想デバイスサービス５１５は、上記特別な処理と同様の処理を行える必要がある。
【０１０２】
次に、仮想デバイス管理サーバ１０２の仮想デバイス管理部５０３が、クライアント位置情報（物理的位置情報）を用いて仮想デバイスサーバを選択できるかを判断する（Ｐ１１）。物理的位置情報を用いて仮想デバイスサーバを選択できる場合には、Ｐ１６以降の処理を実行する。プリンタ１０１から物理的位置情報が送信されない場合や、物理的位置情報によって仮想デバイスサーバを選択できない場合には、仮想デバイス管理サーバ１０２は、物理的位置情報を用いて仮想デバイスサーバを選択できないと判断し、以下の処理を実行する。
【０１０３】
まず、仮想デバイス管理サーバ１０２が、相対的位置計測サーバリストをプリンタ１０１に対して送信する（Ｐ１２）。相対的位置計測サーバリストは、処理要求に応じたＷｅｂサービスを提供する仮想デバイスサーバの候補のリストである。仮想デバイス管理サーバ１０２は、例えば、処理要求に応じたＷｅｂサービスを提供可能な仮想デバイスサーバの中から、所定の数の仮想デバイスサーバを候補として選択し、相対的位置計測サーバリストに含める。この例では、仮想デバイスサーバ１０３、１０４が、相対的位置計測サーバリストに含まれているものとする。
【０１０４】
次に、プリンタ１０１が、仮想デバイス管理サーバ１０２から受信した相対的位置計測サーバリストから、仮想デバイスサーバの候補を取得する（Ｐ１３）。そして、プリンタ１０１が、当該候補の仮想デバイスサーバの相対的位置情報を取得する（Ｐ１４）。具体的には、プリンタ１０１は、仮想デバイスサーバのプロバイダー位置情報取得部５１２との通信処理により、相対的位置情報を取得する。取得される相対的位置情報は、例えば、ネットワーク構成マップ、ネットワークノード間距離、通信遅延時間ＲＴＴ、ローカル時刻の差異等である。プリンタ１０１が、仮想デバイス管理サーバ１０２の仮想デバイス管理部５０３に対して、取得した相対的位置情報をクライアント位置情報として返信する（Ｐ１５）。
【０１０５】
次に、仮想デバイス管理サーバ１０２が、プリンタ１０１からの処理要求の内容と、プリンタ１０１から取得したクライアント位置情報と、プロバイダー情報とに基づいて、処理要求に応じたＷｅｂサービスを提供する仮想デバイスサーバを選択する（Ｐ１６）。例えば、仮想デバイス管理サーバ１０２は、プロバイダー情報を参照して、当該Ｗｅｂサービスを提供可能な仮想デバイスサーバを取得する。そして、仮想デバイス管理サーバ１０２は、相対的位置情報を参照して、上記取得された仮想デバイスサーバのうち、プリンタ１０１との間での通信遅延時間ＲＴＴが最も短い仮想デバイスサーバを選択する。
【０１０６】
仮想デバイス管理サーバ１０２が、上記取得された仮想デバイスサーバのうち、プリンタ１０１との通信で通過するルータ数であるホップ数が最も少ない仮想デバイスサーバを選択するようにしてもよい。また、仮想デバイス管理サーバ１０２が、上記取得された仮想デバイスサーバのうち、プリンタ１０１との間のローカル時刻の差が最も少ない仮想デバイスサーバを選択するようにしてもよい。この例では、仮想デバイスサーバ１０４が選択されたものとする。
【０１０７】
次に、仮想デバイス管理サーバ１０２が、サービスデプロイ処理を実行する（Ｐ１７）。そして、仮想デバイス管理サーバ１０２の仮想デバイス管理部５０３が、仮想デバイスサーバ１０４に対して、仮想デバイスサービス５１５の作成を指示する（Ｐ１８）。Ｐ１８においては、仮想デバイス管理部５０３は、さらに、仮想デバイスサービス５１５にロードされるアプリケーションの情報と設定情報とを決定した上で、決定した情報を仮想デバイスサーバ１０４に送信する。
【０１０８】
なお、プリンタ１０１からの処理要求によっては、１つの仮想デバイスサービス５１５が複数のプリンタ１０１の代理処理を行うことも可能である。仮想デバイス管理サーバ１０２は、当該代理処理が可能であるか否かを、プロバイダー情報が含む、稼働中の仮想デバイスサービス５１５に関する情報に基づいて判断する。
【０１０９】
また、仮想デバイス管理サーバ１０２のリソース監視部５０８は、仮想デバイスサーバ１０３、仮想デバイスサーバ１０４のリソースを監視している。そして、プリンタ１０１から近い位置にある仮想デバイスサーバ１０３のリソースに余裕ができた場合、仮想デバイス管理サーバ１０２は、以下の処理を行う。仮想デバイス管理サーバ１０２は、Ｗｅｂサービスを提供する仮想デバイスサーバを仮想デバイスサーバ１０３に変更するとともに、仮想デバイスサーバ１０３に対して仮想デバイスサービス５１５の作成を指示する。
【０１１０】
図６のＰ１９においては、仮想デバイスサーバ１０４の仮想デバイス制御部５１４が、仮想デバイス管理サーバ１０２の指示に従って、仮想デバイスサービス５１５を作成する。また、リソース情報取得部５１１が、仮想デバイスサーバのリソース情報を取得し、仮想デバイス制御部５１４にリソース情報の更新情報を通知する（Ｐ２０）。リソース情報の更新情報は、更新後のリソース情報である。
【０１１１】
次に、仮想デバイス制御部５１４が、仮想デバイスサービス５１５の作成結果とリソース情報の更新情報とを仮想デバイス管理サーバ１０２の仮想デバイス管理部５０３に送信する。これにより、仮想デバイスサーバ１０４の仮想デバイスサービス５１５の登録処理が行われる（Ｐ２１）。仮想デバイスサービス５１５の作成結果は、仮想デバイスサービス５１５に関する情報（例えば、仮想デバイスサービスを実現するＶＭに関する情報）を含む。
【０１１２】
仮想デバイス管理サーバ１０２の仮想デバイス管理部５０３が、仮想デバイスサービス５１５の作成結果とリソース情報の更新情報とをプロバイダー情報管理部５０４に通知する。そして、プロバイダー情報管理部５０４が、通知された情報をサービスレジストリ記憶部５０５内のプロバイダー情報に反映する（Ｐ２２）。
【０１１３】
次に、仮想デバイス管理サーバ１０２の仮想デバイス管理部５０３が、プリンタ１０１に対して、仮想デバイスサーバ１０４内の仮想デバイスサービス５１５の情報を応答する（Ｐ２３）。仮想デバイス管理部５０３が返信する仮想デバイスサービス５１５の情報は、仮想デバイスサービス５１５のアクセス情報（例えばエンドポイント情報）を含む。
【０１１４】
次に、プリンタ１０１が、上記アクセス情報を用いて、仮想デバイスサーバ１０４の仮想デバイスサービスにアクセスし、処理依頼を行う。例えば、プリンタ１０１が画像処理サービスを要求した場合、仮想デバイスサーバ１０４が、プリンタ１０１に特化した画像処理用の仮想デバイスサービス５１５を作成してプリンタ１０１に割り当てる（Ｐ２４）。これにより、プリンタ１０１がＷｅｂサービスを利用可能になる。仮想デバイス管理サーバ１０２のプロバイダー情報管理部５０４は、プリンタ１０１に割り当てられた仮想デバイスサービス５１５をサービスレジストリ記憶部５０５において管理する。
【０１１５】
プリンタ１０１が仮想デバイスサービス５１５から処理結果を受け取ると、プリンタ１０１は、仮想デバイス管理サーバ１０２に対して、Ｗｅｂサービス提供終了要求を行う（Ｐ２６）。Ｗｅｂサービス提供終了要求は、仮想デバイスサービス５１５が提供するＷｅｂサービスの提供の終了を求める要求である。
【０１１６】
次に、仮想デバイス管理サーバ１０２の仮想デバイス管理部５０３が、仮想デバイスサーバ１０４の仮想デバイス制御部５１４に対して、仮想デバイスサービス５１５が提供するＷｅｂサービスの提供の終了を指示する（Ｐ２７）。仮想デバイスサーバ１０４の仮想デバイス制御部５１４が、仮想デバイスサービス５１５によるＷｅｂサービスの提供を終了する（Ｐ２８）。また、仮想デバイスサーバ１０４は、Ｐ２０と同様にリソース情報の更新情報を取得する（Ｐ２９）。
【０１１７】
次に、仮想デバイスサーバ１０４の仮想デバイス制御部５１４が、仮想デバイス管理サーバ１０２の仮想デバイス管理部５０３に対して、仮想デバイスサービス５１５によるＷｅｂサービスの終了結果とリソース情報の更新情報とを送信する。これにより、仮想デバイスサーバ１０４の仮想デバイスサービス５１５の登録の削除処理が行われる（Ｐ３０）。
【０１１８】
仮想デバイス管理サーバ１０２の仮想デバイス管理部５０３は、仮想デバイスサーバ１０４から送信された情報をプロバイダー情報に反映させる（Ｐ３１）。具体的には、仮想デバイス管理部５０３は、プロバイダー情報が含むリソース情報を更新するとともに、プロバイダー情報が含むエントリのうち、当該Ｗｅｂサービスの提供を終了した仮想デバイスサービス５１５に対応するエントリを削除する。そして、仮想デバイス管理部５０３は、プリンタ１０１に対して、Ｗｅｂサービスの提供が終了したことを通知する（Ｐ３２）。
【０１１９】
図７は、クライアント位置情報の取得処理を説明するフローチャートである。まず、プリンタ１０１のオフロード処理制御部４００が、クライアント位置情報取得部４０８に対して、クライアント位置情報の取得を指示する（ステップＳ１）。この例では、オフロード処理制御部４００は、クライアント位置情報取得部４０８に対して、物理的位置情報の取得指示または相対的位置情報の取得指示を行う。なお、プリンタ１０１が仮想デバイス管理サーバ１０２から相対的位置計測サーバリストを受け取っている場合（図６のＰ１２を参照）には、相対的位置情報の取得指示は、当該相対的位置計測サーバリストを含む。
【０１２０】
次に、クライアント位置情報取得部が、ステップＳ１におけるクライアント位置情報の取得の指示が、物理的位置情報の取得指示か、または相対的位置情報の取得指示のいずれであるかを判断する（ステップＳ２）。クライアント位置情報の取得の指示が相対的位置情報の取得指示である場合は、ステップＳ４に進む。
【０１２１】
クライアント位置情報の取得の指示が、物理的位置情報の取得指示である場合、クライアント位置情報取得部４０８が、物理的位置情報を取得する（ステップＳ３）。この例では、クライアント位置情報取得部４０８は、プリンタ１０１のＧＰＳ情報、ユーザ設定位置情報、仮想ＰＣの位置情報、物理ＰＣの位置情報、ＩＰアドレス、ネットワークドメイン情報を物理的位置情報として取得する。
【０１２２】
ステップＳ４において、相対的位置情報の取得指示が相対的位置計測サーバリストを含むかを判断する（ステップＳ４）。相対的位置情報の取得指示が相対的位置計測サーバリストを含む場合は、ステップＳ５に進む。
【０１２３】
相対的位置情報の取得指示が相対的位置計測サーバリストを含まない場合、クライアント位置情報取得部４０８が、仮想デバイス管理サーバ１０２の仮想デバイス管理部５０３に対して、相対的位置計測サーバリストの取得要求をする。そして、クライアント位置情報取得部４０８が、仮想デバイス管理部５０３から、相対的位置計測サーバリストを取得する（ステップＳ７）。
【０１２４】
ステップＳ５、Ｓ６において、クライアント位置情報取得部４０８が、相対的位置計測サーバリストが含む仮想デバイスサーバの候補の各々について、相対的位置情報を取得する。例えば、クライアント位置情報取得部４０８は、プリンタ１０１と仮想デバイスサーバの候補との間の、ネットワークノード間距離、通信遅延時間ＲＴＴ、ローカル時刻の差異を取得する（ステップＳ５）。また、例えば、クライアント位置情報取得部４０８は、ネットワーク構成マップを取得する（ステップＳ６）。
【０１２５】
具体的には、クライアント位置情報取得部４０８は、例えば、ＬＬＤＰ（ＩＥＥＥ  ８０２．１ＡＢ）、ＬＬＴＤ等のネットワーク探索プロトコルを用いて、自ノードと各種サービスとの間のネットワーク構成のリストを作成する。ＬＬＤＰは、Ｌｉｎｋ  Ｌａｙｅｒ  Ｄｉｓｃｏｖｅｒｙ  Ｐｒｏｔｏｃｏｌの略称である。また、ＬＬＴＤは、Ｌｉｎｋ  Ｌａｙｅｒ  Ｔｏｐｏｌｏｇｙ  Ｄｉｓｃｏｖｅｒｙの略称である。作成されたネットワーク構成のリストは、例えば、ホップ数、ルータ、スイッチ等を含む。
【０１２６】
クライアント位置情報取得部４０８がネットワークマップを相対的位置情報として作成することにより、プリンタ１０１と仮想デバイスサーバとの間の通信時のホップ数だけでなく、通信ルートや、通信ルートにあるスイッチに関する情報も取得できる。従って、取得された相対的位置情報を用いることにより、プリンタ１０１から仮想デバイスサーバへの正確なネットワーク経路の判定を実行することができ、その結果、Ｗｅｂサービスを提供させる最適な仮想デバイスサーバの選択が可能となる。
【０１２７】
図８は、仮想デバイスサービスの登録処理例を説明するフローチャートである。まず、仮想デバイス管理サーバ１０２の仮想デバイス管理部５０３が、仮想デバイスサーバの仮想デバイス制御部５１４から、プロバイダー位置情報、リソース情報、ハードウェアリソース情報を取得する（ステップＳ１１）。仮想デバイス管理部５０３が、プロバイダー情報管理部５０４に指示して、ステップＳ１１において取得した情報をプロバイダー情報の一部としてサービスレジストリ記憶部５０５に登録させる（ステップＳ１２）。
【０１２８】
次に、仮想デバイス管理部５０３が、プリンタ１０１から処理要求を受け取る（ステップＳ１３）。ステップＳ１３においては、仮想デバイス管理部５０３は、さらに、プリンタ１０１からクライアント位置情報を取得する（第２取得手段として機能する）。ステップＳ１３において取得されるクライアント位置情報は、物理的位置情報を含む。
【０１２９】
続いて、仮想デバイス管理部５０３が、プロバイダー情報に、ステップＳ１３において受け取った処理要求に応じたＷｅｂサービスを提供可能な仮想デバイスサービスが登録されているかを判断する（ステップＳ１４）。当該Ｗｅｂサービスを提供可能な仮想デバイスサービスが登録されていない場合は、ステップＳ１６に進む。当該Ｗｅｂサービスを提供可能な仮想デバイスサービスが登録されている場合、仮想デバイス管理部５０３が、当該仮想デバイスサービスを、当該Ｗｅｂサービスを提供させる仮想デバイスサービスとして選択して登録する（ステップＳ１５）。
【０１３０】
ステップＳ１６において、仮想デバイス管理部５０３が、サービスプロバイダー判定部５０６に指示して、Ｗｅｂサービスを提供させる仮想デバイスサーバの候補の決定処理を実行する（ステップＳ１６）。具体的には、サービスプロバイダー判定部５０６は、プロバイダー情報が含むプロバイダー位置情報と、クライアント位置情報とに基づいて、仮想デバイスサーバの候補を決定する。
【０１３１】
次に、仮想デバイス管理部５０３が、仮想デバイスサーバの候補のリソース情報を取得する（ステップＳ１７）。続いて、仮想デバイス管理部５０３が、ステップＳ１７において取得したリソース情報に基づいて、以下の処理を実行する。仮想デバイス管理部５０３は、仮想デバイスサーバの候補が、当該Ｗｅｂサービスを提供できる仮想デバイスサービスが稼動できる仮想デバイスサーバであるかを判断する（ステップＳ１８）。つまり、仮想デバイス管理部５０３は、リソース情報を参照して、ステップＳ１６の処理により候補（選択対象）として決定された仮想デバイスサーバが有するリソースが処理要求を満たすかを判断する。
【０１３２】
仮想デバイスサーバの候補が、Ｗｅｂサービスを提供できる仮想デバイスサービスが稼動できる仮想デバイスサーバでない場合は、ステップＳ１６に戻る。仮想デバイスサーバの候補が、Ｗｅｂサービスを提供できる仮想デバイスサービスが稼動できる仮想デバイスサーバである場合は、ステップＳ１９に進む。
【０１３３】
ステップＳ１９において、仮想デバイス管理部５０３が、Ｗｅｂサービスを提供できる仮想デバイスサービスが稼動できる仮想デバイスサーバを、当該Ｗｅｂサービスを提供させる仮想デバイスサーバとして選択する。そして、仮想デバイス管理部５０３が、選択した仮想デバイスサーバの仮想デバイス制御部５１４に指示して、当該Ｗｅｂサービスを提供させる仮想デバイスサービスを作成させる。続いて、サービスデプロイ部５０７が、仮想デバイスサービス５１５とプリンタ１０１との情報の最終同期を行い（ステップＳ２０）、ステップＳ１５に進む。これにより、仮想デバイスサービス５１５が利用可能な状態に遷移する。
【０１３４】
図８を参照して説明した処理によれば、クライアント位置情報に基づいて選択対象となる仮想デバイスサーバのうち、処理要求を満たすリソースを有するサーバを、該処理要求に対応するＷｅｂサービスを提供するサーバとして選択することができる。
【０１３５】
図９は、図８のステップＳ１６におけるＷｅｂサービスを提供させる仮想デバイスサーバの候補の決定処理例を説明するフローチャートである。サービスプロバイダー判定部５０６が、プロバイダー情報を参照して、プリンタ１０２からの処理要求に対応する仮想デバイスサーバを取得する。
【０１３６】
サービスプロバイダー判定部５０６は、取得した仮想デバイスサーバの位置情報とプリンタ１０１から取得したプリンタ１０１の物理的位置情報とに基づいて、物理的位置がプリンタ１０１に近い仮想デバイスサーバのリストを作成する（ステップＳ３１）。例えば、サービスプロバイダー判定部５０６は、プリンタ１０１と所定の距離の範囲内にある仮想デバイスサーバを特定してリストに含める。
【０１３７】
次に、サービスプロバイダー判定部５０６が、ステップＳ３１において作成されたリストが複数の仮想デバイスサーバを含むかを判断する（ステップＳ３２）。リストが複数の仮想デバイスサーバを含む場合は、ステップＳ３４に進む。リストが１つの仮想デバイスサーバを含む場合は、この仮想デバイスサーバが、プリンタ１０１に最も近い仮想デバイスサーバである。従って、この場合には、処理がステップＳ３３に進み、サービスプロバイダー判定部５０６が、当該プリンタ１０１に最も近い仮想デバイスサーバをＷｅｂサービスを提供させる仮想デバイスサーバの候補として決定する（ステップＳ３３）。
【０１３８】
ステップＳ３４において、仮想デバイス管理部５０３が、上記ステップＳ３１において作成されたリストを相対的位置計測サーバリストとしてプリンタ１０１に送信する。そして、仮想デバイス管理部５０３が、プリンタ１０１から相対的位置計測サーバリストが含む各々の仮想デバイスサーバについての相対的位置情報を取得する。
【０１３９】
次に、サービスプロバイダー判定部５０６が、相対的位置情報が含むネットワーク構成マップに基づいて、相対的位置計測サーバリストに、プリンタ１０１と同一ネットワークにある仮想デバイスサーバが複数含まれるかを判断する（ステップＳ３５）。
【０１４０】
相対的位置計測サーバリストに、プリンタ１０１と同一ネットワークにある仮想デバイスサーバが複数含まれる場合は、ステップＳ３６に進む。相対的位置計測サーバリストに、プリンタ１０１と同一ネットワークにある仮想デバイスサーバが１つだけ含まれる場合は、ステップＳ３３に進む。そして、サービスプロバイダー判定部５０６が、プリンタ１０１と同一プリンタネットワークにある仮想デバイスサーバを、Ｗｅｂサービスを提供させる仮想デバイスサーバの候補として決定する。
【０１４１】
ステップＳ３６において、サービスプロバイダー判定部５０６は、プリンタ１０１と同一ネットワークにある複数の仮想デバイスサーバの各々について、対応する相対的位置情報が含む通信遅延時間ＲＴＴを取得する（ステップＳ３６）。そして、サービスプロバイダー判定部５０６が、当該複数の仮想デバイスサーバのうち、通信遅延時間ＲＴＴが最も小さい仮想デバイスサーバを、Ｗｅｂサービスを提供させる仮想デバイスサーバの候補として決定する（ステップＳ３３）。
【０１４２】
なお、サービスプロバイダー判定部５０６が、ネットワークノード間距離を取得し、ネットワークノード間距離が最も小さい仮想デバイスサーバを、Ｗｅｂサービスを提供させる仮想デバイスサーバの候補として決定するようにしてもよい。また、サービスプロバイダー判定部５０６が、ローカル時刻の差異を取得し、ローカル時刻の差異が最も小さい仮想デバイスサーバを、Ｗｅｂサービスを提供させる仮想デバイスサーバの候補として決定するようにしてもよい。
【０１４３】
すなわち、サービスプロバイダー判定部５０６は、物理的位置情報と仮想デバイスサーバの位置情報との比較結果に基づいて仮想デバイスサーバを選択できない場合に（Ｓ３２でＹｅｓ）、以下の処理を実行する。サービスプロバイダー判定部５０６は、相対的位置情報に基づいて、処理要求に対応するＷｅｂサービスを提供する仮想デバイスサーバを選択する。
【０１４４】
図９を参照して説明した処理により、日本にあるプリンタ１０１と物理的位置または相対的位置が最も近い仮想デバイスサーバ１０３が候補として決定されたものとする。ここで、図８のステップＳ１８の処理で、日本にある仮想デバイスサーバ１０３が、Ｗｅｂサービスを提供できる仮想デバイスサービスが稼動できる仮想デバイスサーバでないと判断された場合は、仮想デバイスサーバ１０３にＷｅｂサービスはデプロイされない。この場合には、Ｗｅｂサービスを提供させる仮想デバイスサーバの候補の決定処理が再度実行される（図８のステップＳ１８でＮｏ，ステップＳ１６）。これにより、例えば、アメリカにある仮想デバイスサーバ１０４がＷｅｂサービスを提供させる仮想デバイスサーバとして選択される。
【０１４５】
本実施形態のＷｅｂサービスシステムによる仮想デバイスサーバの選択処理について、さらに具体的に説明する。例えば、仮想デバイス管理サーバ１０２がプリンタ１０１から受けた処理要求が、プリントサービス（Ｖｅｒｓｉｏｎ１０．１０）であり、クライアント位置情報が示すプリンタ１０１の位置が日本である場合を想定する。
【０１４６】
仮想デバイス管理サーバ１０２は、図５（Ｃ）に示すプロバイダー情報（プロバイダー位置情報）を参照して、以下の処理を実行する。仮想デバイス管理サーバ１０２は、プリンタ１０１に最も近い仮想デバイスサーバ（サービス）が、ＲｅｇｉｏｎがＪＰであって、かつ、識別子がＰｒｉｎｔ００１であるＷｅｂサービスに対応する仮想デバイスサーバ（サービス）であると判断する。識別子がＰｒｉｎｔ００３であるＷｅｂサービスに対応する仮想デバイスサーバ（サービス）は、ＲｅｇｉｏｎがＵＳであるので、プリンタ１０１の近くではないと判断される。
【０１４７】
ＲｅｇｉｏｎがＪＰであるＷｅｂサービスが複数存在する場合は、仮想デバイス管理サーバ１０２は、例えば以下の処理を実行する。仮想デバイス管理サーバ１０２は、仮想デバイスサービスが稼働するデータセンターや、仮想ＰＣ、物理ＰＣなどの所在住所や、緯度や経度など、詳細な物理的位置情報を用いて、プリンタ１０１に最も近い仮想デバイスサーバ（サービス）を判断する。
【０１４８】
仮想デバイス管理サーバ１０２は、図５（Ｄ）に示すリソース情報を参照して、以下の処理を実行する。仮想デバイス管理サーバ１０２は、識別子がＰｒｉｎｔ００１であるＷｅｂサービスに対応する仮想デバイスサーバのリソース情報に基づき、識別子Ｐｒｉｎｔ００１の仮想デバイスサーバは高負荷のために新規のＷｅｂサービスを受け付けられないと判断する。従って、仮想デバイス管理サーバ１０２は、識別子がＰｒｉｎｔ００３の仮想デバイスサーバがＵＳのＲｅｇｉｏｎであり、プリンタ１０１のＲｅｇｉｏｎと不一致であるにも係らず、プリントサービスを提供させる仮想デバイスサーバとして選択する。
【０１４９】
図１０は、仮想デバイスサーバによるリソース情報の取得処理を説明するフローチャートである。まず、リソース情報取得部５１１が、仮想デバイス制御部５１４から、仮想デバイスサーバのリソース情報の取得要求を受ける（ステップＳ４１）。続いて、リソース情報取得部５１１が、仮想デバイスサーバを実現する物理ＰＣのリソース情報を取得する（ステップＳ４２）。リソース情報取得部５１１は、例えば、物理ＰＣのＣＰＵ使用率、Ｎｅｔｗｏｒｋカード使用率、ディスクＩ／Ｏ使用率、ディスク転送速度、ネットワークカード転送量、ネットワークの転送速度、またはディスク空き容量をリソース情報として取得する。
【０１５０】
次に、リソース情報取得部５１１が、仮想ＰＣが稼働しているかを判断する（ステップＳ４３）。仮想ＰＣが稼動していない場合は、処理を終了する。仮想ＰＣが稼動している場合、リソース情報取得部５１１は、仮想ＰＣのリソース情報を取得する（ステップＳ４４）。
【０１５１】
リソース情報取得部５１１は、例えば、仮想ＰＣのＣＰＵ使用率、Ｎｅｔｗｏｒｋカード使用率、ディスクＩ／Ｏ使用率、ディスク転送速度、ネットワークカード転送量、仮想ネットワークの転送速度、またはディスク空き容量をリソース情報として取得する。仮想ＰＣのリソース情報取得は、仮想ＰＣに固有の情報取得ＡＰＩを利用することで取得可能である。例えば、仮想ＰＣがＭｉｃｒｏｓｏｆｔ  Ｈｙｐｅｒ−Ｖ（登録商標）の場合、Ｈｙｐｅｒｖｉｓｏｒ  ＡＰＩを利用してリソース情報の取得が可能である。続いて、リソース情報取得部５１１が、Ｗｅｂサーバ５０２及び仮想デバイスサービス５１５のリソース情報を取得して（ステップＳ４５）、処理を終了する。
【０１５２】
本実施形態の仮想デバイス管理サーバ１０２は、画像形成装置１０１から処理要求を受け付けると、プロバイダー情報とクライアント位置情報とに基づいて、処理要求に対応するＷｅｂサービスを提供するサーバを選択して画像形成装置に割り当てる。例えば、仮想デバイス管理サーバ１０２は、プロバイダー情報が含む仮想デバイスサーバの位置情報とクライアント位置情報が含む画像形成装置１０１の物理的位置情報とに基づいて、以下の処理を実行する。仮想デバイス管理サーバ１０２は、画像形成装置１０１の位置に最も近い位置にある仮想デバイスサーバを、当該Ｗｅｂサービスを提供させる仮想デバイスサーバとして選択する。従って、本実施形態の仮想デバイス管理サーバ１０２によれば、画像形成装置１０１が要求する処理に応じたＷｅｂサービスを、画像形成装置１０１の位置に応じた適切なサーバに提供させることができる。
【０１５３】
また、本実施形態の仮想デバイス管理サーバ１０２は、選択対象となる仮想デバイスサーバが有するリソースが、画像形成装置１０１からの処理要求を満たすかを判断する。仮想デバイス管理サーバ１０２は、該リソースが処理要求を満たさない場合に、該処理要求を満たすリソースを有する仮想デバイスサーバを、該処理要求に対応するＷｅｂサービスを提供する仮想デバイスサーバとして選択する。従って、本実施形態の仮想デバイス管理サーバ１０２によれば、仮想デバイスサーバのリソースの変動に応じて、Ｗｅｂサービスを提供させる仮想デバイスを切り替えることができる。
【０１５４】
本実施形態のＷｅｂサービスシステムを、仮想化ＯＳなどで構成される場合も含めて一つの機器からなる装置に適用しても良い。さらに、本実施形態のＷｅｂサービスシステムを、インターネットを経由したクラウドコンピューティングで構成されるシステムに適用しても良い。
【０１５５】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【符号の説明】
【０１５６】
１０１  プリンタ
１０２  仮想デバイス管理サーバ
１０３，１０４  仮想デバイスサーバ
【図１】
0005743589.tif 000002
【図２】
0005743589.tif 000003
【図３】
0005743589.tif 000004
【図４】
0005743589.tif 000005
【図５】
0005743589.tif 000006
【図６】
0005743589.tif 000007
【図７】
0005743589.tif 000008
【図８】
0005743589.tif 000009
【図９】
0005743589.tif 000010
【図１０】
0005743589.tif 000011