(57)【特許請求の範囲】
【請求項１】
管理装置と通信可能に接続された周辺装置であって、
前記管理装置に前記周辺装置が取得すべき情報があるか否かを確認する際に用いる確認情報については暗号化を行わない通信方式で前記管理装置に送信し、前記確認情報とは異なる印刷ジョブを取得するための取得情報については暗号化を行う通信方式で前記管理装置に送信する通信手段を有することを特徴とする周辺装置。
【請求項２】
前記通信手段は、前記取得情報に応答して前記管理装置から送信された前記印刷ジョブの処理が終了すると、前記印刷ジョブの処理が終了したことを示す終了情報について暗号化を行う通信方式で前記管理装置に送信することを特徴とする請求項１記載の周辺装置。
【請求項３】
前記通信手段は、定期的に、前記確認情報を前記管理装置に送信することを特徴とする請求項１又は２記載の周辺装置。
【請求項４】
ネットワークを介して提供装置により提供されるサービスにおけるジョブの処理を実行する周辺装置と通信可能に接続された情報処理装置であって、
前記サービスにおけるジョブの情報を記憶部に記憶する記憶手段と、
前記サービスでの一連の処理において、前記記憶部にジョブの情報が記憶されているか否かを確認する前記周辺装置からの確認情報に対する応答情報については暗号化を行わない通信方式で前記周辺装置に送信し、前記確認情報とは異なる前記周辺装置からの他の情報に対する応答情報については暗号化を行う通信方式で前記周辺装置に送信する通信手段と、を有することを特徴とする情報処理装置。
【請求項５】
前記通信手段は、前記確認情報に対する応答情報については予め定められた演算を行い、演算した結果を暗号化しない通信方式で前記周辺装置に送信することを特徴とする請求項４記載の情報処理装置。
【請求項６】
ネットワークを介して提供装置により提供されるサービスにおけるジョブの処理の前処理を行う前処理装置と通信可能に接続された情報処理装置であって、
前記サービスでの一連の処理において、前記前処理装置が行う前処理の実行の状況を確認する際に用いる確認情報については暗号化を行わない通信方式で前記前処理装置に送信し、前記確認情報とは異なる他の情報については暗号化を行う通信方式で前記前処理装置に送信する通信手段を有することを特徴とする情報処理装置。
【請求項７】
前記ジョブの処理を実行する周辺装置と通信可能に接続され、
前記通信手段は、
前記提供装置から前記ジョブの情報を受信すると、前記ジョブの情報をもとに生成する前記他の情報である前記前処理で用いられる前処理情報について暗号化を行う通信方式で前記前処理装置に送信し、
前記ジョブの処理が終了したこと示す終了情報を前記周辺装置から受信すると、前記他の情報である前記終了情報をもとに生成するジョブ処理終了情報について暗号化を行う通信方式で前記前処理装置に送信することを特徴とする請求項６記載の情報処理装置。
【請求項８】
前記通信手段は、前記確認情報に対する前記前処理装置からの応答情報をもとに、前記前処理が終了したと判断した場合、前記他の情報である、前記前処理の結果の所在を示す情報の取得に用いる所在取得情報について暗号化を行う通信方式で前記前処理装置に送信することを特徴とする請求項６又は７記載の情報処理装置。
【請求項９】
前記通信手段は、前記前処理装置から前記前処理を開始したことを示す情報を受信してから前記確認情報に対する前記前処理装置からの応答情報をもとに前記前処理が終了したと判断するまでの間、前記確認情報を前記前処理装置に送信することを特徴とする請求項６乃至８の何れか１項記載の情報処理装置。
【請求項１０】
ネットワークを介して提供装置により提供されるサービスにおけるジョブの情報を管理する管理装置と通信可能に接続された情報処理装置であって、
前記サービスにおけるジョブの処理の前処理を行う前処理手段と、
前記前処理の実行の状況を示す情報を記憶部に記憶する記憶手段と、
前記サービスでの一連の処理において、前記前処理の実行の状況を確認する前記管理装置からの確認情報に対する応答情報については暗号化を行わない通信方式で前記管理装置に送信し、前記管理装置からの前記確認情報とは異なる他の情報に対する応答情報については暗号化を行う通信方式で前記管理装置に送信する通信手段と、を有することを特徴とする情報処理装置。
【請求項１１】
前記通信手段は、前記確認情報に対する応答情報については予め定められた演算を行い、演算した結果を暗号化しない通信方式で前記管理装置に送信することを特徴とする請求項１０記載の情報処理装置。
【請求項１２】
管理装置と通信可能に接続された周辺装置が実行する通信制御方法であって、
前記管理装置に前記周辺装置が取得すべき情報があるか否かを確認する際に用いる確認情報については暗号化を行わない通信方式で前記管理装置に送信する工程と、
前記確認情報とは異なる印刷ジョブを取得するための取得情報については暗号化を行う通信方式で前記管理装置に送信する工程と、を含むことを特徴とする通信制御方法。
【請求項１３】
ネットワークを介して提供装置により提供されるサービスにおけるジョブの処理を実行する周辺装置と通信可能に接続された情報処理装置が実行する通信制御方法であって、
前記サービスにおけるジョブの情報を記憶部に記憶する記憶工程と、
前記サービスでの一連の処理において、前記記憶部にジョブの情報が記憶されているか否かを確認する前記周辺装置からの確認情報に対する応答情報については暗号化を行わない通信方式で前記周辺装置に送信する工程と、
前記サービスでの一連の処理において、前記確認情報とは異なる前記周辺装置からの他の情報に対する応答情報については暗号化を行う通信方式で前記周辺装置に送信する工程と、を含むことを特徴とする通信制御方法。
【請求項１４】
ネットワークを介して提供装置により提供されるサービスにおけるジョブの処理の前処理を行う前処理装置と通信可能に接続された情報処理装置が実行する通信制御方法であって、
前記サービスでの一連の処理において、前記前処理装置が行う前処理の実行の状況を確認する際に用いる確認情報については暗号化を行わない通信方式で前記前処理装置に送信する工程と、
前記サービスでの一連の処理において、前記確認情報とは異なる他の情報については暗号化を行う通信方式で前記前処理装置に送信する工程と、を含むことを特徴とする通信制御方法。
【請求項１５】
ネットワークを介して提供装置により提供されるサービスにおけるジョブの情報を管理する管理装置と通信可能に接続された情報処理装置が実行する通信制御方法であって、
前記サービスにおけるジョブの処理の前処理を行う前処理工程と、
前記前処理の実行の状況を示す情報を記憶部に記憶する記憶工程と、
前記サービスでの一連の処理において、前記前処理の実行の状況を確認する前記管理装置からの確認情報に対する応答情報については暗号化を行わない通信方式で前記管理装置に送信する工程と、
前記サービスでの一連の処理において、前記管理装置からの前記確認情報とは異なる他の情報に対する応答情報については暗号化を行う通信方式で前記管理装置に送信する工程と、を含むことを特徴とする通信制御方法。
【請求項１６】
管理装置と通信可能に接続されたコンピュータを、
前記管理装置に前記コンピュータが取得すべき情報があるか否かを確認する際に用いる確認情報については暗号化を行わない通信方式で前記管理装置に送信し、前記確認情報とは異なる印刷ジョブを取得するための取得情報については暗号化を行う通信方式で前記管理装置に送信する通信手段として機能させるためのプログラム。
【請求項１７】
ネットワークを介して提供装置により提供されるサービスにおけるジョブの処理を実行する周辺装置と通信可能に接続されたコンピュータを、
前記サービスにおけるジョブの情報を記憶部に記憶する記憶手段と、
前記サービスでの一連の処理において、前記記憶部にジョブの情報が記憶されているか否かを確認する前記周辺装置からの確認情報に対する応答情報については暗号化を行わない通信方式で前記周辺装置に送信し、前記確認情報とは異なる前記周辺装置からの他の情報に対する応答情報については暗号化を行う通信方式で前記周辺装置に送信する通信手段として機能させるためのプログラム。
【請求項１８】
ネットワークを介して提供装置により提供されるサービスにおけるジョブの処理の前処理を行う前処理装置と通信可能に接続されたコンピュータを、
前記サービスでの一連の処理において、前記前処理装置が行う前処理の実行の状況を確認する際に用いる確認情報については暗号化を行わない通信方式で前記前処理装置に送信し、前記確認情報とは異なる他の情報については暗号化を行う通信方式で前記前処理装置に送信する通信手段として機能させるためのプログラム。
【請求項１９】
ネットワークを介して提供装置により提供されるサービスにおけるジョブの情報を管理する管理装置と通信可能に接続されたコンピュータを、
前記サービスにおけるジョブの処理の前処理を行う前処理手段と、
前記前処理の実行の状況を示す情報を記憶部に記憶する記憶手段と、
前記サービスでの一連の処理において、前記前処理の実行の状況を確認する前記管理装置からの確認情報に対する応答情報については暗号化を行わない通信方式で前記管理装置に送信し、前記管理装置からの前記確認情報とは異なる他の情報に対する応答情報については暗号化を行う通信方式で前記管理装置に送信する通信手段として機能させるためのプログラム。
【請求項２０】
ネットワークを介して提供装置により提供されるサービスにおけるジョブの情報を管理する管理装置と通信可能に接続され、前記ジョブの処理を実行する周辺装置であって、
前記サービスでの一連の処理において、前記提供装置から前記サービスの開始を指示する開始通知を受信すると、前記管理装置にジョブが存在するか否かを確認する際に用いる確認情報を、暗号化を行わない通信方式で前記管理装置に定期的に送信し、前記確認情報とは異なる他の情報については暗号化を行う通信方式で前記管理装置に送信する通信手段を有することを特徴とする周辺装置。
【請求項２１】
ネットワークを介して提供装置により提供されるサービスにおけるジョブの情報を管理する管理装置と通信可能に接続され、前記ジョブの処理を実行する周辺装置が実行する通信制御方法であって、
前記サービスでの一連の処理において、前記提供装置から前記サービスの開始を指示する開始通知を受信すると、前記管理装置にジョブが存在するか否かを確認する際に用いる確認情報を、暗号化を行わない通信方式で前記管理装置に定期的に送信する工程と、
前記サービスでの一連の処理において、前記確認情報とは異なる他の情報については暗号化を行う通信方式で前記管理装置に送信する工程と、を含むことを特徴とする通信制御方法。
【請求項２２】
ネットワークを介して提供装置により提供されるサービスにおけるジョブの情報を管理する管理装置と通信可能に接続され、前記ジョブの処理を実行するコンピュータを、
前記サービスでの一連の処理において、前記提供装置から前記サービスの開始を指示する開始通知を受信すると、前記管理装置にジョブが存在するか否かを確認する際に用いる確認情報を、暗号化を行わない通信方式で前記管理装置に定期的に送信し、前記確認情報とは異なる他の情報については暗号化を行う通信方式で前記管理装置に送信する通信手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、周辺装置、情報処理装置、通信制御方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、ＵＳＢ、Ｅｔｈｅｒｎｅｔ（登録商標）、無線ＬＡＮ等の様々なインタフェースを利用して、情報処理装置に周辺装置を接続した周辺装置制御システムが、自宅、オフィス等、様々な場面で有効に活用されている。周辺装置の例としては、プリンタ、複写機、ファクシミリ、スキャナ、デジタルカメラ、これらの複合機等が挙げられる。
このような周辺装置のうちのプリンタや複合機に対して、Ｇｏｏｇｌｅ社からＧｏｏｇｌｅ  Ｃｌｏｕｄ  Ｐｒｉｎｔ（登録商標であり、以下、ＧＣＰと略す。）と呼ばれるクラウド印刷サービスが提供されている。クラウド印刷サービスを利用すると、ユーザは、パーソナルコンピュータ（以下、ＰＣと略す。）やモバイルデバイスから文書作成用のアプリケーション等を起動（利用）し、インターネットを介して文書をプリンタや複合機で印刷することが可能である。ＧＣＰを利用した印刷の手順は、次のようなものである。
【０００３】
（１）ユーザが、ＰＣに設けられた文書作成用のアプリケーションを利用してある文書を開く操作を行う。
（２）ユーザが、その文書をあるプリンタで印刷するために、印刷ダイアログを開いてそのプリンタを選択し、印刷を実行する操作を行う。
（３）文書作成用のアプリケーションが印刷画像をＰＤＦファイルとして生成する。
（４）ＧＣＰが印刷ダイアログで選択された印刷設定値と、前記ＰＤＦファイルから印刷ジョブを生成し、ＧＣＰ内でそのプリンタに割り当られたプリントキューに印刷ジョブを格納し、プリンタに印刷ジョブ通知を送信する。
（５）プリンタは、前記印刷ジョブ通知を受信すると、前記印刷ジョブを取得して、前記印刷設定値に従って、前記ＰＤＦファイルの印刷画像を印刷する。
【０００４】
例えば、ＰＤＦファイルをレンダリングすることができるプリンタや複合機である場合、プリンタや複合機は、前記手順に従ってＧＣＰを利用して印刷することができる。しかしながら、ＰＤＦファイルをレンダリングすることができない廉価版のプリンタや複合機である場合、廉価版のプリンタや複合機は、（５）においてＰＤＦファイルの印刷画像を印刷することができない。
このような廉価版のプリンタや複合機でＧＣＰを利用して印刷するために、ＰＤＦファイルを、例えばＪＰＥＧファイル等の廉価版のプリンタや複合機で印刷できる画像フォーマットに変換するＷｅｂサービス（画像変換サービス）用のアプリケーションが存在する。そして、画像変換サービスアプリケーションを利用して、ＰＤＦファイルをＪＰＥＧファイルに変換し、廉価版のプリンタや複合機で印刷するような周辺装置制御システムが提案されている。
【０００５】
また、プリントのＷｅｂサービスに関するその他の技術として特許文献１がある。特許文献１に記載のプリントサービスでは、以下の方法を用いて任意の場所に設置されたプリンタでの印刷を実現している。それは、各地に配備された印刷環境共用サービス間で印刷予約やデータ、印刷可能なアプリケーション情報を交換し、ユーザに印刷可能な印刷場所を提示する方法によって実現している。特許文献１により、ユーザは、遠隔地にある任意の場所に設置されたプリンタで印刷が可能となる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−１００３４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述したような周辺装置制御システムでは、複数のプリンタを管理し、ＧＣＰに対応させるためのクラウド印刷プロキシサービスを提供するＷｅｂサービス（プロキシサービス）用のアプリケーションが必要となる。
そして、プロキシサービスアプリケーションと画像変換サービスアプリケーションとの間では、ポーリングによる画像変換処理の進捗状況の確認処理が行われている。また、廉価版のプリンタや複合機が自装置宛に発行されて印刷の準備が完了した印刷ジョブの有無を確認するために、そのプリンタや複合機とクラウド印刷プロキシサービスとの間では、ポーリングによる印刷ジョブの有無の確認処理が行われている。
上述の各サービス間のインタフェース、及び各サービスと廉価版のプリンタや複合機間のインタフェースは、ＷｅｂサービスＡＰＩで規定され、通常はＳＳＬ通信で暗号化されたＨＴＴＰＳのＰＯＳＴメソッドやＧＥＴメソッドが利用されている。このように暗号化された通信により、セキュリティが確保されている。
この場合、情報の送信時の暗号化や情報の受信時の復号化に非常に時間を要することになり、また、通信処理の負荷が大きくなるので、クラウドを利用したときにシステムの構築やアプリケーションの実装に支障をきたすという問題がある。
また、性能の低い廉価版のプリンタや複合機のファームウェアの実装にも支障をきたす問題があり、更に、各処理に時間を要したりする等、ユーザの操作性も悪くなるという問題がある。
【０００８】
本発明はこのような問題点に鑑みなされたもので、装置間の通信をより適切に行うことを目的とする。
【課題を解決するための手段】
【０００９】
そこで、本発明は、管理装置と通信可能に接続された周辺装置であって、前記管理装置に前記周辺装置が取得すべき情報があるか否かを確認する際に用いる確認情報については暗号化を行わない通信方式で前記管理装置に送信し、前記確認情報とは異なる印刷ジョブを取得するための取得情報については暗号化を行う通信方式で前記管理装置に送信する通信手段を有することを特徴とする。
【００１０】
また、本発明は、システム、記憶媒体などとしてもよい。
【発明の効果】
【００１１】
本発明によれば、装置間の通信をより適切に行うことができる。
【図面の簡単な説明】
【００１２】
【図１】周辺装置制御システムの構成の一例を示す図である。
【図２】ＰＣ及びＭＦＰのハードウェアの構成の一例を示す図である。
【図３】ＰＣのソフトウェアの構成の一例を示す図である。
【図４】Ｗｅｂブラウザの一例を示す図である。
【図５】印刷ダイアログの一例を示す図である。
【図６】周辺装置制御システム全体の処理に係るフローチャートの一例を示す図である。
【図７】周辺装置制御システム全体の処理に係るフローチャートの一例を示す図である。
【図８】周辺装置制御システム全体の処理に係るフローチャートの一例を示す図である。
【図９】プロキシＡＰＰの処理に係るフローチャートの一例を示す図である。
【図１０】画像変換ＡＰＰの処理に係るフローチャートの一例を示す図である。
【図１１】画像変換ＡＰＰの処理に係るフローチャートの一例を示す図である。
【図１２】画像変換ＡＰＰの処理に係るフローチャートの一例を示す図である。
【図１３】コーリングシーケンスの一例を示す図である。
【図１４】画面の一例を示す図である。
【図１５】画面の一例を示す図である。
【図１６】プリンタを登録する処理に係るフローチャートの一例を示す図である。
【図１７】周辺装置制御システム全体の処理に係るフローチャートの一例を示す図である。
【発明を実施するための形態】
【００１３】
以下、本発明の実施形態について図面に基づいて説明する。なお、実施形態は、本発明を限定するものではなく、また、実施形態で説明されている全ての構成が本発明の課題を解決するための手段に必須であるとは限らない。
【００１４】
以下において、ＷｅｂサービスＡＰＩにＳＳＬ通信で暗号化されたＨＴＴＰＳのＰＯＳＴメソッド（通信方式の一例）を利用している場合があるが、このＰＯＳＴメソッドに関しては一般に公開されている情報であるので、ここではその詳細な説明を省略する。
また、以下において、ＷｅｂサービスＡＰＩにＨＴＴＰのＧＥＴメソッド（通信方式の一例）を利用している場合があるが、このＧＥＴメソッドに関しては一般に公開されている情報であるので、ここではその詳細な説明を省略する。
また、以下において、ＷｅｂサービスＡＰＩにＳＳＬ通信で暗号化されたＨＴＴＰＳのＧＥＴメソッド（通信方式の一例）を利用している場合があるが、このＧＥＴメソッドに関しては一般に公開されている情報であるので、ここではその詳細な説明を省略する。
また、ＨＴＴＰは、Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌの略であり、暗号化されていない公知の通信プロトコルであるので、ここではその詳細な説明を省略する。
【００１５】
また、ＨＴＴＰＳは、Ｈｙｐｅｒ  Ｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ  ｏｖｅｒ  Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔ  Ｌａｙｅｒの略であり、暗号化された公知の通信プロトコルであるので、ここではその詳細な説明を省略する。
また、ＳＳＬは、Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔ  Ｌａｙｅｒの略であり、インターネット上でデータを暗号化して送受信する公知の方法であるので、ここではその詳細な説明を省略する。
また、Ｇｏｏｇｌｅ  Ｃｌｏｕｄ Ｐｒｉｎｔ（ＧＣＰ）に関する説明は、次に示すサ
イトで公開されているので、ここではその詳細な説明を省略する。
インターネットＵＲＬ：http://code.google.com/apis/cloudprint/docs/overview.html
【００１６】
＜第１の実施形態＞
図１は、情報処理装置、及び周辺装置を含んで構成されるシステムの構成の一例（周辺装置制御システム）を示す図である。ＰＣ１、ＰＣ２、ＰＣ５、及びＰＣ７の各々は、情報処理装置（コンピュータ）の一例であり、例えば、一般的なパーソナルコンピュータである。ＰＣ１、ＰＣ２、ＰＣ５、及びＰＣ７の各々は、図２（Ａ）に示すハードウェアを含んで構成される。
ＰＣ１には、Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ（以下、ＯＳと略す。）としてＧｏｏｇｌｅ社製のＣｈｒｏｍｅ（登録商標）と同等のＯＳがインストールされている。また、ＰＣ２及びＰＣ５の各々には、マイクロソフト社製のＷｉｎｄｏｗｓ（登録商標）のＳｅｒｖｅｒ用のＯＳがインストールされ、ＰＣ７には、Ｌｉｎｕｘ（登録商標）と同等のＯＳがインストールされている。ＰＣ１、ＰＣ２、ＰＣ５、及びＰＣ７は、それぞれＥｔｈｅｒｎｅｔ等のインタフェース（Ｉ／Ｆ）で構成されるネットワーク４、８、１０、６に接続され、インターネット１２にも接続されている。
【００１７】
マルチファンクションプリンタ（以下、ＭＦＰと略す。）３、１０３は、カラーインクジェットプリンタ、カラーファクシミリ、カラースキャナ、フラッシュメモリ用の外部ストレージ等を含んで構成され、周辺装置（コンピュータ）の一例である。ＭＦＰ３、１０３は、ＡＢＣ社製のＫｍｍｎというモデル名のＭＦＰである。なお、周辺装置としては、プリンタ、複写機、ファクシミリ、スキャナ、デジタルカメラ、及びこれらの複合機能を備える装置等であってもよい。
ＭＦＰ３、及びＭＦＰ１０３の各々は、図２（Ｂ）に示すハードウェアを含んで構成される。また、ＭＦＰ３は、Ｅｔｈｅｒｎｅｔで構成されるネットワーク１１に接続され、インターネット１２にも接続されている。ＭＦＰ１０３は、Ｅｔｈｅｒｎｅｔで構成されるネットワーク１０４に接続され、インターネット１２にも接続されている。
【００１８】
ルーター（Ｒｏｕｔｅｒ）１３は、Ｗｉ−Ｆｉ（登録商標）の無線ＬＡＮを備えるブロードバンドルーター（Ｗｉ−Ｆｉ  ＢＢ  Ｒｏｕｔｅｒ）等であり、インターネット１２に接続されている。モバイルデバイス（ＭｏｂｉｌｅＤｅｖｅｃｅ）１４は、携帯電話、携帯情報端末等である。モバイルデバイス１４は、ルーター１３と接続され、ルーター１３を介してインターネット１２にも接続されている。
ＰＣ１、ＰＣ２、ＰＣ５、ＰＣ７、モバイルデバイス１４、ＭＦＰ３、及びＭＦＰ１０３は、インターネット１２を介して互いに双方向通信が可能である（通信可能に接続されている）。Ｗｅｂブラウザ（Ｗｅｂ  Ｂｒｏｗｓｅｒ）９は、ＰＣ１にインストールされ、Ｗｅｂブラウザ１５は、モバイルデバイス１４にインストールされている。
【００１９】
アプリケーション（Ａｐｐｌｉｃａｔｉｏｎ）１４５は、Ｗｅｂサービスを利用した文書作成用のアプリケーションであり、以下では、文書作成ＡＰＰ１４５と称する。アプリケーション（Ａｐｐｌｉｃａｔｉｏｎ）１４６は、Ｗｅｂサービスを利用したクラウド印刷サービスを提供するアプリケーションであり、以下では、クラウド印刷ＡＰＰ１４６と称する。
クラウド印刷ＡＰＰ１４６は、例えば、Ｇｏｏｇｌｅ社が提供するＧＣＰと同等の機能を有する。このクラウド印刷サービスを利用することで、ＰＣ１内のＷｅｂブラウザ９やモバイルデバイス内のＷｅｂブラウザ１５から、文書作成ＡＰＰ１４５を実行し、ある文書を開き、その文書をＭＦＰ３やＭＦＰ１０３で印刷することができるようになる。
【００２０】
例えば、ユーザが、開いている文書を印刷する場合、図４に示す印刷メニュー４０１を選択すると、クラウド印刷ＡＰＰ１４６により図５に示す印刷ダイアログ１４２が表示される。ユーザが印刷ダイアログ１４２でプリンタを選択し、印刷ボタン５３４を押して印刷の実行を指示すると、文書作成ＡＰＰ１４５は、印刷画像をＰＤＦファイルとして生成する。
そして、クラウド印刷ＡＰＰ１４６は、この印刷画像（ＰＤＦファイル）と印刷ダイアログ１４２で選択されている印刷設定値とから印刷ジョブを生成し、クラウド印刷サービス内の選択されたプリンタ用のプリントキューにその印刷ジョブを格納する。また、クラウド印刷ＡＰＰ１４６は、そのプリンタ（後述する本実施形態の例ではプロキシＡＰＰ１４３）に対して印刷ジョブ通知を送信する。
プリンタやＭＦＰがＰＤＦファイルをレンダリングする機能を備えている場合、プリンタやＭＦＰは、プリントキューに格納されている印刷ジョブを印刷することができる。しかしながら、多くの廉価版のインクジェットプリンタやＭＦＰにおいては、プリンタやＭＦＰがＰＤＦファイルをレンダリングする機能を備えていない。故に、このようなプリンタ等でプリントキューに格納されている印刷ジョブを印刷する場合、ＰＤＦファイルの印刷画像を、ＪＰＥＧファイル等、廉価版のプリンタ等でレンダリングできるタイプの画像フォーマットに変換すること（前処理の一例）が必要となる。
【００２１】
アプリケーション（Ａｐｐｌｉｃａｔｉｏｎ）１４３は、ＭＦＰ３及びＭＦＰ１０３をクラウド印刷ＡＰＰ１４６が提供するクラウド印刷サービスに対応させるためのクラウド印刷プロキシサービスを提供するアプリケーションである。以下では、プロキシＡＰＰ１４３と称する。ＰＣ２にインストールされているプロキシＡＰＰ１４３は、５０００台のプリンタやＭＦＰを一度に管理し、それぞれのプリンタやＭＦＰをクラウド印刷ＡＰＰ１４６が提供するクラウド印刷サービスに対応させることができる。
アプリケーション（Ａｐｐｌｉｃａｔｉｏｎ）１４４は、ＰＤＦファイルをＪＰＥＧファイルに変換する画像変換サービスを提供するアプリケーションであり、以下では、画像変換ＡＰＰ１４４と称する。
【００２２】
ここで、クラウド印刷ＡＰＰ１４６が提供するクラウド印刷サービスを利用するために、ユーザアカウントとパスワードとを用いたログインが必要となる。そして、クラウド印刷ＡＰＰ１４６は、印刷に利用可能なプリンタやＭＦＰをクラウド印刷サービスに登録する際に、まず、そのユーザアカウントとパスワードとを使って、クラウド印刷サービスを利用する際のアクセストークンを取得する。そして、クラウド印刷ＡＰＰ１４６は、取得したアクセストークンを利用し、そのユーザアカウントにプリンタやＭＦＰを関連付けて登録する。
また、クラウド印刷ＡＰＰ１４６は、プリンタやＭＦＰの登録の際に、各プリンタやＭＦＰに対して一意の値で表わされるプリンタＩＤを発行して割り当て、プリンタＩＤを登録の対象のプリンタ等に通知する。なお、プリンタ等の登録に関する処理に関しては、その詳細な説明を省略する。
【００２３】
図２は、ＰＣ及びＭＦＰのハードウェアの構成の一例を示す図である。ＰＣ１、ＰＣ２、ＰＣ５、及びＰＣ７の各々は、図２（Ａ）に示すハードウェアを含んで構成されている。図２（Ａ）では、ＰＣ２を例に挙げて説明する。
ＰＣ２は、ランダムアクセスメモリ部（ＲＡＭ２０１）、ハードディスクドライブ部（ＨＤＤ２０２）、キーボード部（ＫＢＤ２０３）、ＣＰＵ２０４、表示用ディスプレイ（ＬＣＤ２０５）、ネットワークボード（ＮＢ２０７）を有する。また、ＰＣ２は、上述の構成要素を互いに接続するバス２０６を有する。
【００２４】
なお、ＨＤＤ２０２は、記憶部の一例である。記憶部は、可搬性ＣＤ−ＲＯＭまたは内部に据付のＲＯＭ等であってもよい。ＫＢＤ２０３は、入力部の一例である。ＣＰＵ２０４は、制御部の一例である。ＬＣＤ２０５は、表示部の一例である。ＮＢ２０７は、通信制御部の一例である。
プロキシＡＰＰ１４３、図３に示す各モジュール（ソフトウェア）等のプログラムは、ＨＤＤ２０２に記憶され、ＣＰＵ２０４により必要に応じてＲＡＭ２０１に読み出されて実行される。これにより、プロキシＡＰＰ１４３の機能、図３に示す各モジュール（ソフトウェア）の機能などが実現される。また、各種のデータベース（ＤＢ）は、ＨＤＤ２０２に設けられ、データベースの情報は、ＣＰＵ２０４により必要に応じてＲＡＭ２０１に読み出される。
【００２５】
ＭＦＰ３及びＭＦＰ１０３の各々は、図２（Ｂ）に示すハードウェアを含んで構成されている。図２（Ｂ）では、ＭＦＰ３を例に挙げて説明する。
ＣＰＵ２５は、マイクロプロセッサ等から構成される。ＣＰＵ２５は、ＭＦＰ３の中央処理装置として、ＲＯＭ１６に記憶されているプログラムに従って、ＲＡＭ１７、通信部１８、記録部１９、操作部２０、表示部２１、読取り部２２、ファクシミリ制御部２３、及び外部ストレージ制御部２４を制御する。
ＲＯＭ１６には、プリンタドライバ（図示は省略）による制御に従ってＭＦＰ３が行う記録（印刷）処理、印刷動作の状態をＰＣへ通知する処理などを実行するプログラムが記憶されている。また、ＲＯＭ１６には、ＦＡＸドライバ（図示は省略）による制御に従ってＭＦＰ３がファクシミリの送信処理または受信処理、ファクシミリ動作（送信または受信）の状態をＰＣへ通知する処理を実行するプログラムが記憶されている。更に、ＲＯＭ１６には、ＷＩＡドライバ（不図示）やＴＷＡＩＮドライバ（不図示）による制御に従ってＭＦＰ３が行う画像の読取り処理、読取り動作の状態をＰＣへ通知する処理を実行するプログラムが記憶されている。
【００２６】
ＲＡＭ１７には、印字データが一時的に記憶される。印字データは、主にＰＣから送られ、印字データをもとに記録部１９によって印刷される。また、ＲＡＭ１７には、読取り部２２で読取られた画像データ、ＰＣから送られてきたファクシミリの送信データ、ファクシミリ制御部２３で受信されたファクシミリの受信データ等も一時的に記憶される。
通信部１８には、ネットワーク４用の接続ポート、アナログ電話回線用の接続ポート等が含まれており、Ｅｔｈｅｒｎｅｔ、ファクシミリのアナログ通信を制御する。記録部１９は、インクジェット方式の記録ヘッド、各カラーインク、キャリッジ、記録紙搬送機構等から構成される記録ユニットと、印字データをもとに記録ヘッドにて印字用パルスを発生させるためのＡＳＩＣ等から構成される電気回路とを含んで構成される。
【００２７】
例えば、印刷可能なアプリケーション上での印刷操作、又はファクシミリの送信操作によって、アプリケーションで開かれているファイルの表示内容（画像データ）が、ＥＭＦ形式のスプールファイルとしてＰＣ２のＨＤＤ２０２に一時的に格納される。そして、スプールファイルは、プリンタドライバ、又はＦＡＸドライバを介してＭＦＰ３制御用コマンドを含む印字データ、又はファクシミリの送信データに変換された後、インターネットを介してＭＦＰ３に送られる。
ＭＦＰ３にて受信された印字データは、記録部１９で印字用パルスに変換され、記録紙上に印刷される。また、ＭＦＰ３にて受信されたファクシミリの送信データは、ファクシミリ制御部２３でファクシミリの通信プロトコルに変換され、アナログ電話回線を介して相手先のファクシミリ装置に送信される。
【００２８】
操作部２０は、電源ボタン、リセットボタン等の各種ボタンから構成され、ＭＦＰ３に対する操作を受け付ける。表示部２１は、タッチパネルの液晶ディスプレイで構成され、ＭＦＰ３の状態の表示、各種の設定情報や電話番号の表示、入力等を行うことができる。読取り部２２は、カラーイメージセンサや画像処理用のＡＳＩＣ等から構成される電気回路を含んで構成され、スキャナ機能を制御する。
ファクシミリ制御部２３は、ファクシミリ用のモデム、アナログ通信回路等から構成され、ファクシミリの通信プロトコルに従ってファクシミリの送信および受信を制御する。外部ストレージ制御部２４は、フラッシュメモリの装着用のスロット、ストレージ用のインタフェース回路等から構成され、装着されたフラッシュメモリを制御する。
【００２９】
図３は、ＰＣのソフトウェアの構成の一例を示す図である。図３では、ＰＣ２を例に挙げて説明する。Ｉ／Ｆ９２は、Ｅｔｈｅｒｎｅｔ等のＩ／Ｆを制御するＩ／Ｆ制御スタックである。ＩＰ  Ｎｅｔｗｏｒｋ９１は、ＩＰ  Ｎｅｔｗｏｒｋを制御するＩＰ  Ｎｅｔｗｏｒｋ制御スタックである。
Ｉｎｔｅｒｎｅｔ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｅｒｖｉｃｅｓ（ＩＩＳ）９０は、ＩＩＳを制御するＩＩＳ制御部であり、アプリケーション１５０は、このＩＩＳ制御部のＷｅｂサーバ機能を利用してＷｅｂサービスを提供する。ＪＡＶＡ（登録商標）  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ（Ｊａｖａ  ＶＭ）８９は、Ｊａｖａバイトコードをプラットフォームのネイティブコードに変換して実行するソフトウェアであり、プロキシＡＰＰ１４３は、ＪＡＶＡ  ＶＭ８９上で実行される。
Ａｐｐｌｉｃａｔｉｏｎｓ８２は、アプリケーション群であり、プロキシＡＰＰ１４３、アプリケーション１５０等から構成される。
【００３０】
図４は、ＰＣ１の文書作成ＡＰＰ１４５が提供するＷｅｂブラウザ９の一例を示す図である。図４は、ある文書を開いている状態を表す。
印刷メニュー４０１は、印刷に関する各種の操作を受け付ける。例えば、ユーザがＫＢＤ２０３等の入力部を操作（ユーザ操作）し、開いている文書を印刷するときに印刷メニュー４０１を押下すると、図５に示す印刷ダイアログ１４２が表示される。
【００３１】
図５は、印刷ダイアログ１４２の一例を示す図である。印刷ダイアログ１４２は、ユーザに対するＭＦＰ３、１０３用の印刷設定画面として、クラウド印刷ＡＰＰ１４６により制御される。また、印刷ダイアログ１４２は、Ｗｅｂブラウザ９、１５を利用して、そのＷｅｂブラウザ上に表示される。
プリンタ選択肢５３５、５３６、５３７の各々は、選択可能なプリンタの選択肢である。プリンタ選択肢５３５、５３６、５３７は、それぞれ、ＧＨＩ社製のＡｋｂＮｍｂというモデル名のプリンタ、ＡＢＣ社製のＫｍｍｎというモデル名のＭＦＰ（ＭＦＰ３）、ＤＥＦ社製のＸｙｚというモデル名のプリンタに該当する選択肢を表す。図５では、ＭＦＰ３を表すプリンタ選択肢５３６が選択されている状態が示されている。
【００３２】
用紙サイズ選択部５３０では、次に示す選択肢の中からＭＦＰ３で印刷する用紙のサイズがユーザ操作に応じて選択される。図５では、Ｌｅｔｔｅｒが選択されている状態が示されている。
用紙サイズの選択肢：Ａ５、Ａ４、Ｂ５、Ｌｅｔｔｅｒ
用紙の種類選択部５３１では、次に示す選択肢の中からＭＦＰ３で印刷する用紙の種類がユーザ操作に応じて選択される。図５では、Ｐｌａｉｎ  Ｐａｐｅｒが選択されている状態が示されている。
用紙の種類の選択肢：Ｐｌａｉｎ  Ｐａｐｅｒ、Ｐｈｏｔｏ  Ｐａｐｅｒ、Ｐｏｓｔｃａｒｄ
【００３３】
印刷品位選択部５３２では、次に示す選択肢の中からＭＦＰ３で印刷する印刷品位がユーザ操作に応じて選択される。図５では、Ｓｔａｎｄａｒｄが選択されている状態が示されている。
印刷品位の選択肢：Ｈｉｇｈ、Ｓｔａｎｄａｒｄ、Ｆａｓｔ
色／濃度選択部５３３では、次に示す選択肢の中からＭＦＰ３で印刷する色や濃度がユーザ操作に応じて選択される。図５では、Ａｕｔｏが選択されている状態が示されている。
印刷品位の選択肢：Ａｕｔｏ、Ｍａｎｕａｌ
印刷ボタン５３４は、印刷の開始の指示を受け付ける。ユーザ操作により印刷ボタン５３４が押下されると、クラウド印刷ＡＰＰ１４６は、プリンタ選択肢５３６に関連付けられているＭＦＰ３用の印刷ジョブを生成する。クローズボタン５３８は、印刷ダイアログ１４２を閉じる指示を受け付ける。ユーザ操作によりクローズボタン５３８が押下されると、クラウド印刷ＡＰＰ１４６は、印刷ダイアログ１４２を閉じる。
【００３４】
図６、図７、図８は、本周辺装置制御システム全体の処理に係るフローチャートの一例を示す図である。これらのフローチャートに係るプログラムは、ＰＣまたはＭＦＰ内に組み込まれている。ＰＣ上で動作するアプリケーションのプログラムは、ＨＤＤ２０２に記憶されており、ＣＰＵ２０４によりＲＡＭ２０１に読み出されて実行される。ＭＦＰ上で動作するアプリケーションのプログラムは、ＲＯＭ１６に記憶されており、ＲＡＭ１７に読み出され、ＣＰＵ２５により実行される。
これらのフローチャートにおいて、縦の列が処理の実行元を表し、本実施形態では図面の左側から、ユーザ（Ｗｅｂブラウザ９）、文書作成ＡＰＰ１４５、クラウド印刷ＡＰＰ１４６、プロキシＡＰＰ１４３、画像変換ＡＰＰ１４４、ＭＦＰ３を記す。以下では、ユーザがＰＣ１を使ってドキュメントの印刷をＭＦＰ３で行うケース（ドキュメントの印刷に係る一連の処理）を例に挙げて通信制御方法について説明する。
【００３５】
まず、ＭＦＰ３が印刷ジョブをポーリングする構成についてＳ６１７〜Ｓ６２１を用いて説明する。図６において、Ｓ６１７は、便宜的にＭＦＰ３側から見たドキュメントの印刷の開始を表すステップである。なお、このステップは、ＭＦＰ３内の処理の実行には一切影響を与えるものではなく、単にこのフローチャートの開始を表すものである。
Ｓ６１８では、ＭＦＰ３は、プロキシＡＰＰ１４３がエクスポートしているＷｅｂサービスＡＰＩのＣｈｅｃｋＰｒｉｎｔＪｏｂ関数をコールする。Ｓ６１８において、ＭＦＰ３が、この関数をコールするときに、ＨＴＴＰのＧＥＴ要求のクエリパラメータとしてプロキシＡＰＰ１４３に渡す情報（確認情報の一例）は、次に示すような情報である。
・クラウド印刷ＡＰＰ１４６が発行したプリンタＩＤ
・ランダムコード
また、ＣｈｅｃｋＰｒｉｎｔＪｏｂ関数をコールするタイミングは任意であり、定常的にコールするポーリングの形態とするが、この形態に限られるものではない。例えば、ユーザから指定されたときにコールする形態であってもよい。更に、クエリパラメータに含まれる確認情報もプリンタＩＤ、ランダムコードに限られるものではない。
【００３６】
ランダムコードは、ＭＦＰ３が生成した任意の３２ビットの値である。プロキシＡＰＰ１４３は、ＣｈｅｃｋＰｒｉｎｔＪｏｂ関数がコールされると、図９（Ａ）で後述するＣｈｅｃｋＰｒｉｎｔＪｏｂ関数の処理を実行し、そのレスポンス（応答情報の一例）をＭＦＰ３に返す（Ｓ６１９）。
続いて、ＭＦＰ３は、プロキシＡＰＰ１４３からのＣｈｅｃｋＰｒｉｎｔＪｏｂ関数のレスポンスを受信すると、レスポンス内の応答メッセージに含まれている情報（「印刷ジョブ有り応答」又は「印刷ジョブ無し応答」）を確認する（Ｓ６２０）。Ｓ６２０において、ＭＦＰ３は、「印刷ジョブ有り応答」を受信したと判断した場合、図７のＳ７０８に処理を移し、他方、「印刷ジョブ無し応答」を受信したと判断した場合、Ｓ６２１に処理を移す。
Ｓ６２１では、ＭＦＰ３は、一定の時間（本実施形態では１分間）待った後、Ｓ６１８に処理を移す。このように、ＭＦＰ３は、プロキシＡＰＰ１４３がエクスポートしているＣｈｅｃｋＰｒｉｎｔＪｏｂ関数を一定の時間間隔で（定期的に）ポーリングする。
【００３７】
次に、ドキュメントの印刷処理について説明する。ここで、Ｓ６０１は、便宜的にユーザ側から見た場合のドキュメントの印刷の開始を表すステップである。なお、このステップは、ユーザ操作やアプリケーションの実行には一切影響を与えるものではなく、単にこのフローチャートの開始を表すものである。
まず、ユーザは、Ｗｅｂブラウザ９を起動して文書作成ＡＰＰ１４５のＵＲＬにアクセスしてログインする。そして、ユーザは、ある文書を指定してその文書を開く指示を行うと、Ｗｅｂブラウザ９は、その文書を入力パラメータとして、文書作成ＡＰＰ１４５がエクスポートしているＷｅｂサービスＡＰＩのＯｐｅｎＤｏｃｕｍｅｎｔ関数をコールする（Ｓ６０２）。
文書作成ＡＰＰ１４５は、ＯｐｅｎＤｏｃｕｍｅｎｔ関数がコールされると、入力パラメータで指定された文書を開いてその情報をＷｅｂブラウザ９に送信する（Ｓ６０３）。例えば、図４に示すように、Ｗｅｂブラウザ９上で文書作成ＡＰＰ１４５を介して当該文書が開かれた状態となる。
【００３８】
ユーザ操作により、当該文書を印刷するために印刷メニュー４０１が押下されると、Ｗｅｂブラウザ９を介してその情報が文書作成ＡＰＰ１４５に通知される（Ｓ６０４）。文書作成ＡＰＰ１４５は、この通知を受け取ると、クラウド印刷ＡＰＰ１４６がエクスポートしているＷｅｂサービスＡＰＩのＰｒｉｎｔＤｉａｌｏｇ関数をコールする（Ｓ６０５）。
クラウド印刷ＡＰＰ１４６は、ＰｒｉｎｔＤｉａｌｏｇ関数がコールされると、印刷ダイアログ１４２を開いて、その情報をＷｅｂブラウザ９に送信する（Ｓ６０６）。例えば、図５に示すように、Ｗｅｂブラウザ９上に印刷ダイアログ１４２が表示される。
【００３９】
ユーザは、入力部を操作して、複数のプリンタ選択肢の中から印刷するプリンタ（図５の例ではＭＦＰ３に関連付けられているプリンタ選択肢５３６）を選択し、各印刷設定値の中から希望する設定値を選択し、印刷ボタン５３４を押下する。印刷ボタン５３４が押下されると、Ｗｅｂブラウザ９を介してそのユーザからの印刷開始要求を示す情報と印刷設定値に関する情報とが文書作成ＡＰＰ１４５に通知される（Ｓ６０７）。
印刷設定値に関する情報は、例えば、ユーザが選択した印刷設定値が記されている印刷設定ファイル（ＸＭＬファイル）が格納されているＵＲＬである。文書作成ＡＰＰ１４５は、この通知を受け取ると、印刷画像をＰＤＦファイルとして生成する。そして、文書作成ＡＰＰ１４５は、生成したＰＤＦファイル、印刷設定値に関する情報等を入力パラメータとして、クラウド印刷ＡＰＰ１４６がエクスポートしているＷｅｂサービスＡＰＩのＳｕｂｍｉｔＰｒｉｎｔＪｏｂ関数をコールする（Ｓ６０８）。
【００４０】
クラウド印刷ＡＰＰ１４６は、ＳｕｂｍｉｔＰｒｉｎｔＪｏｂ関数がコールされると、入力パラメータで指定されたＰＤＦファイル、印刷設定値に関する情報等をもとに印刷ジョブを生成する。そして、クラウド印刷ＡＰＰ１４６は、選択されているプリンタ選択肢に関連付けられているプリンタ（本例では、画像フォーマットの変換が必要なＭＦＰ３であるのでプロキシＡＰＰ１４３）に印刷ジョブ通知を送信する（Ｓ６０９）。
また、印刷ジョブには、少なくとも次に示すような情報（以下では、印刷ジョブ情報と称する。）が含まれている。
【００４１】
・クラウド印刷ＡＰＰ１４６が発行した印刷ジョブＩＤ
・クラウド印刷ＡＰＰ１４６が発行したプリンタＩＤ
・クラウド印刷ＡＰＰ１４６が提供するクラウド印刷サービスを利用するためのアクセストークン
・印刷設定値が記されている印刷設定ファイル（ＸＭＬファイル）が格納されているＵＲＬ
・印刷画像（ＰＤＦファイル）の格納先のＵＲＬ
・タイムスタンプ
【００４２】
プロキシＡＰＰ１４３は、印刷ジョブ通知を受信すると、クラウド印刷ＡＰＰ１４６がエクスポートしているＷｅｂサービスＡＰＩのＦｅｔｃｈＰｒｉｎｔＪｏｂ関数をコールする（Ｓ６１０）。クラウド印刷ＡＰＰ１４６は、ＦｅｔｃｈＰｒｉｎｔＪｏｂ関数がコールされると、Ｓ６０９で生成した印刷ジョブに含まれている情報（印刷ジョブ情報）をプロキシＡＰＰ１４３に送信する（Ｓ６１１）。
プロキシＡＰＰ１４３は、印刷ジョブ情報を受信すると、印刷ジョブ情報の中から必要な情報を取得し、取得した情報とその他の制御で必要な情報とを印刷ジョブ管理データベースに保存する（Ｓ６１２）。そして、プロキシＡＰＰ１４３は、画像変換ＡＰＰ１４４がエクスポートしているＷｅｂサービスＡＰＩのＣｒｅａｔｅＰｒｉｎｔＪｏｂＳｅｔ関数をコールする（Ｓ６１２）。
【００４３】
Ｓ６１２において、プロキシＡＰＰ１４３が、この関数をコールするときに、ＨＴＴＰＳのＰＯＳＴ要求の入力パラメータとして画像変換ＡＰＰ１４４に渡す情報（前処理情報の一例）は、次に示すような情報である。
・クラウド印刷ＡＰＰ１４６が発行したプリンタＩＤ
・クラウド印刷ＡＰＰ１４６が発行した印刷ジョブＩＤ
・クラウド印刷サービスを利用するためのアクセストークン
・印刷画像（ＰＤＦファイル）の格納先のＵＲＬ
【００４４】
また、Ｓ６１２において、印刷ジョブ管理データベースには、次に示すような情報が保存される。
［印刷ジョブ管理データベース］
・検索キー：クラウド印刷ＡＰＰ１４６が発行した印刷ジョブＩＤ
・クラウド印刷サービスを利用するためのアクセストークン
・印刷設定ファイル（ＸＭＬファイル）の格納先のＵＲＬ
・印刷画像（ＰＤＦファイル）の格納先のＵＲＬ
・画像変換ＡＰＰ１４４へのアクセストークン
・印刷ジョブアクセスＵＲＬ（ＪＰＥＧファイルの格納先のＵＲＬ）
・印刷画像（ＪＰＥＧファイル）の総ページ数
・印刷ジョブ準備完了（ＰｒｉｎｔＪｏｂＲｅａｄｙ）（０：未完了、１：完了）
【００４５】
このとき、プロキシＡＰＰ１４３は、印刷ジョブ準備完了（ＰｒｉｎｔＪｏｂＲｅａｄｙ）に、印刷ジョブ準備が未完了であることを表す初期値として「０」をセットする。また、プロキシＡＰＰ１４３は、印刷画像（ＪＰＥＧファイル）の総ページ数に初期値「０」をセットする。
画像変換ＡＰＰ１４４は、ＣｒｅａｔｅＰｒｉｎｔＪｏｂＳｅｔ関数がコールされると、図１０（Ａ）で後述するＣｒｅａｔｅＰｒｉｎｔＪｏｂＳｅｔ関数の処理を実行し、そのレスポンスをプロキシＡＰＰ１４３に返す（Ｓ６１３）。このレスポンスには、画像変換ＡＰＰ１４４が発行したセッションＩＤが含まれている。
プロキシＡＰＰ１４３は、画像変換ＡＰＰ１４４からのＣｒｅａｔｅＰｒｉｎｔＪｏｂＳｅｔ関数のレスポンスを受信すると、画像変換ＡＰＰ１４４がエクスポートしているＷｅｂサービスＡＰＩのＣｏｎｆｉｒｍＰｒｏｇｒｅｓｓ関数をコールする（Ｓ６１４）。Ｓ６１４において、プロキシＡＰＰ１４３が、この関数をコールするときに、ＨＴＴＰのＧＥＴ要求のクエリパラメータとして画像変換ＡＰＰ１４４に渡す情報（確認情報の一例）は、次に示すような情報である。
【００４６】
・セッションＩＤ
・シーケンス
セッションＩＤは、ＣｒｅａｔｅＰｒｉｎｔＪｏｂＳｅｔ関数のレスポンスの中に含まれている情報であり、シーケンスは、プロキシＡＰＰ１４３が生成した任意の番号である。
【００４７】
画像変換ＡＰＰ１４４は、ＣｏｎｆｉｒｍＰｒｏｇｒｅｓｓ関数がコールされると、図１１（Ａ）で後述するＣｏｎｆｉｒｍＰｒｏｇｒｅｓｓ関数の処理を実行し、そのレスポンス（応答情報の一例）をプロキシＡＰＰ１４３に返す（Ｓ６１５）。
プロキシＡＰＰ１４３は、画像変換ＡＰＰ１４４からのＣｏｎｆｉｒｍＰｒｏｇｒｅｓｓ関数のレスポンスを受信すると、そのレスポンス内の応答メッセージに含まれている内容（「処理中応答」、「処理完了応答」、又は「エラー応答」）を確認する（Ｓ６１６）。Ｓ６１６において、プロキシＡＰＰ１４３が「処理完了応答」を受信したと判断した場合、図７のＳ７０１に処理を移し、他方、「処理中応答」を受信したと判断した場合、Ｓ６１４に処理を移す。
【００４８】
なお、図１０（Ｂ）で後述する画像変換ＡＰＰ１４４のダウンロード・画像変換スレッドの処理でエラーが発生した場合、Ｓ６１６において、プロキシＡＰＰ１４３が「エラー応答」を受信して印刷処理をエラー終了する。
しかしながら、エラー終了するケースに関しては、本実施形態の本質から外れるので、その詳細な説明を省略する。よって、Ｓ６１６以降では、プロキシＡＰＰ１４３が「処理完了応答」または「処理中応答」を受信した場合を中心に説明する。
【００４９】
図７に示すように、Ｓ７０１では、プロキシＡＰＰ１４３は、画像変換ＡＰＰ１４４がエクスポートしているＷｅｂサービスＡＰＩのＣｒｅａｔｅＰｒｉｎｔＪｏｂＲｅｓｕｌｔ関数をコールする。Ｓ７０１において、プロキシＡＰＰ１４３が、この関数をコールするときに、ＨＴＴＰＳのＰＯＳＴ要求の入力パラメータとして画像変換ＡＰＰ１４４に渡す情報（所在取得情報の一例）は、次に示すような情報である。
・クラウド印刷ＡＰＰ１４６が発行したプリンタＩＤ
・クラウド印刷ＡＰＰ１４６が発行した印刷ジョブＩＤ
【００５０】
画像変換ＡＰＰ１４４は、ＣｒｅａｔｅＰｒｉｎｔＪｏｂＲｅｓｕｌｔ関数がコールされると、図１２で後述するＣｒｅａｔｅＰｒｉｎｔＪｏｂＲｅｓｕｌｔ関数の処理を実行し、そのレスポンスをプロキシＡＰＰ１４３に返す（Ｓ７０２）。
プロキシＡＰＰ１４３は、画像変換ＡＰＰ１４４からのＣｒｅａｔｅＰｒｉｎｔＪｏｂＲｅｓｕｌｔ関数のレスポンスを受信すると、ＰｒｉｎｔＪｏｂＲｅａｄｙに「１」をセットする（Ｓ７０３）。そして、プロキシＡＰＰ１４３は、印刷ジョブ管理データベースの印刷ジョブ準備完了（ＰｒｉｎｔＪｏｂＲｅａｄｙ）に、印刷ジョブ準備完了を表す「１」をセットする（Ｓ７０３）。これにより、ＭＦＰ３における印刷待ち状態となる（Ｓ７０４）。
【００５１】
図６のＳ６１８〜Ｓ６２１で前述したように、ＭＦＰ３は、プロキシＡＰＰ１４３がエクスポートしているＣｈｅｃｋＰｒｉｎｔＪｏｂ関数を、一定の時間間隔でポーリングし、Ｓ７０５は、Ｓ６１８と同等な処理を表す。
Ｓ７０４でＭＦＰ３における印刷待ち状態となっているとき、Ｓ７０５において、ＭＦＰ３が、プロキシＡＰＰ１４３がエクスポートしているＣｈｅｃｋＰｒｉｎｔＪｏｂ関数をコールした場合について説明する。プロキシＡＰＰ１４３は、ＣｈｅｃｋＰｒｉｎｔＪｏｂ関数がコールされると、図９（Ａ）で後述するＣｈｅｃｋＰｒｉｎｔＪｏｂ関数の処理を実行し、そのレスポンスをＭＦＰ３に返す（Ｓ７０６）。
【００５２】
ＭＦＰ３は、プロキシＡＰＰ１４３からのＣｈｅｃｋＰｒｉｎｔＪｏｂ関数のレスポンスを受信すると、そのレスポンス内の応答メッセージに含まれている内容（「印刷ジョブ有り応答」又は「印刷ジョブ無し応答」）を確認する（Ｓ７０７）。Ｓ７０７において、ＭＦＰ３が「印刷ジョブ有り応答」を受信したと判断した場合、Ｓ７０８に処理を移し、他方、「印刷ジョブ無し応答」を受信したと判断した場合、Ｓ６２１に処理を移す。
Ｓ７０８では、ＭＦＰ３は、プロキシＡＰＰ１４３がエクスポートしているＷｅｂサービスＡＰＩのＧｅｔＰｒｉｎｔＪｏｂ関数をコールする。Ｓ７０８において、ＭＦＰ３が、この関数をコールするときに、ＨＴＴＰＳのＧＥＴ要求のクエリパラメータとしてプロキシＡＰＰ１４３に渡す情報（取得情報の一例）は、次に示すような情報である。
・クラウド印刷ＡＰＰ１４６が発行したプリンタＩＤ
【００５３】
プロキシＡＰＰ１４３は、ＧｅｔＰｒｉｎｔＪｏｂ関数がコールされると、図９（Ｂ）で後述するＧｅｔＰｒｉｎｔＪｏｂ関数の処理を実行し、そのレスポンスをＭＦＰ３に返す（Ｓ７０９）。
ＭＦＰ３は、プロキシＡＰＰ１４３からのＧｅｔＰｒｉｎｔＪｏｂ関数のレスポンスを受信すると、レスポンス内の応答メッセージに含まれている内容をもとに、印刷画像取得要求を画像変換ＡＰＰ１４４に送信する（Ｓ７１０）。
ここで、レスポンス内の応答メッセージに含まれている内容は、印刷ジョブアクセスＵＲＬ（印刷画像（ＪＰＥＧファイル）の格納先のＵＲＬ）、印刷画像（ＪＰＥＧファイル）の総ページ数、及び画像変換ＡＰＰ１４４へのアクセストークンである。また、印刷画像取得要求は、画像変換ＡＰＰ１４４から各ページの印刷画像（ＪＰＥＧファイル）を取得するための要求である。
本実施形態では、印刷ジョブアクセスＵＲＬは、画像変換Ａｐｐ１４４を有するＰＣ５の格納先ＵＲＬとするが、それ以外のＰＣの格納先ＵＲＬであってもよい。また、例えば、印刷ジョブアクセスＵＲＬについては、直接ＰＣ５から送信する形態であってもよい。また、例えば、指定されたページの印刷画像を、プロキシＡｐｐ１４３を有するＰＣ２がＰＣ５から取得し、取得した印刷画像をＰＣ２がＭＦＰ３に送信する形態であってもよい。また、例えば、ＰＣ２が、取得した印刷画像の格納先のＵＲＬをＭＦＰ３に送ってもよい。
【００５４】
画像変換ＡＰＰ１４４は、ＭＦＰ３からの印刷画像取得要求を受信すると、指定されたページの印刷画像（ＪＰＥＧファイル）に対するＭＦＰ３からのアクセスを許可し、その印刷画像をＭＦＰ３に送信する（Ｓ７１１）。
ＭＦＰ３は、画像変換ＡＰＰ１４４から送信された印刷画像を受信すると、その印刷画像を印刷する（Ｓ７１２）。続いて、ＭＦＰ３は、印刷画像（ＪＰＥＧファイル）の総ページ数をもとに、次ページの有無を確認する（Ｓ７１３）。このとき、ＭＦＰ３は、次ページが有ると判断した場合、Ｓ７１０に処理を移し、次ページの印刷画像を取得するための印刷画像取得要求を画像変換ＡＰＰ１４４に送信する。他方、ＭＦＰ３は、次ページが無いと判断した場合、図８のＳ８０１に処理を移す。
Ｓ７１０〜Ｓ７１２における印刷画像（ＪＰＥＧファイル）の取得処理に関しては、ＳＳＬ通信で暗号化されたＨＴＴＰＳのＧＥＴメソッドが利用される。
【００５５】
図８に示すように、Ｓ８０１では、ＭＦＰ３は、プロキシＡＰＰ１４３がエクスポートしているＷｅｂサービスＡＰＩのＥｎｄＰｒｉｎｔＪｏｂ関数をコールする。ＥｎｄＰｒｉｎｔＪｏｂ関数のコールについては、ＳＳＬ通信で暗号化されたＨＴＴＰＳのＧＥＴメソッドが利用されている。Ｓ８０１において、ＭＦＰ３が、この関数をコールするときに、ＨＴＴＰＳのＧＥＴ要求のクエリパラメータとしてプロキシＡＰＰ１４３に渡す情報（終了情報の一例）は、次に示すような情報である。
・クラウド印刷ＡＰＰ１４６が発行したプリンタＩＤ
・クラウド印刷ＡＰＰ１４６が発行した印刷ジョブＩＤ
【００５６】
プロキシＡＰＰ１４３は、ＥｎｄＰｒｉｎｔＪｏｂ関数がコールされると（Ｓ８０２）、画像変換ＡＰＰ１４４がエクスポートしているＷｅｂサービスＡＰＩのＪｏｂＣｏｍｐｌｅｔｅｄ関数をコールする（Ｓ８０３）。
Ｓ８０３において、プロキシＡＰＰ１４３が、この関数をコールするときに、ＨＴＴＰＳのＰＯＳＴ要求の入力パラメータとして画像変換ＡＰＰ１４４に渡す情報（ジョブ処理終了情報の一例）は、次に示すような情報である。
・クラウド印刷ＡＰＰ１４６が発行したプリンタＩＤ
・クラウド印刷ＡＰＰ１４６が発行した印刷ジョブＩＤ
【００５７】
画像変換ＡＰＰ１４４は、ＪｏｂＣｏｍｐｌｅｔｅｄ関数がコールされると、図１１（Ｂ）で後述するＪｏｂＣｏｍｐｌｅｔｅｄ関数の処理を実行し、そのレスポンスをプロキシＡＰＰ１４３に返す（Ｓ８０４）。
プロキシＡＰＰ１４３は、画像変換ＡＰＰ１４４からのＪｏｂＣｏｍｐｌｅｔｅｄ関数のレスポンスを受信すると、印刷ジョブ管理データベースからこの印刷ジョブに関する情報を削除して、印刷ジョブ管理データベースを更新する（Ｓ８０５）。そして、プロキシＡＰＰ１４３は、ドキュメントの印刷処理を終了する（Ｓ８０６）。
【００５８】
次に、プロキシＡＰＰ１４３がエクスポートするＷｅｂサービスＡＰＩの処理について図９を用いて説明する。図９（Ａ）は、ＣｈｅｃｋＰｒｉｎｔＪｏｂ関数の処理に係るフローチャートの一例を示す図である。図９（Ｂ）は、ＧｅｔＰｒｉｎｔＪｏｂ関数の処理に係るフローチャートの一例を示す図である。
ＣｈｅｃｋＰｒｉｎｔＪｏｂ関数については、ＨＴＴＰのＧＥＴメソッドが利用されている。ＧｅｔＰｒｉｎｔＪｏｂ関数については、ＳＳＬ通信で暗号化されたＨＴＴＰＳのＧＥＴメソッドが利用されている。これらのフローチャートに係るプログラムは、ＰＣ２に組み込まれ、ＨＤＤ２０２に記憶されており、ＣＰＵ２０４によりＲＡＭ２０１に読み出されて実行される。
【００５９】
図６のＳ６１８、図７のＳ７０５において、ＭＦＰ３がＣｈｅｃｋＰｒｉｎｔＪｏｂ関数をコールすると、プロキシＡＰＰ１４３が図９（Ａ）に示すＣｈｅｃｋＰｒｉｎｔＪｏｂ関数の処理を実行する。
図９（Ａ）に示すように、プロキシＡＰＰ１４３は、ＣｈｅｃｋＰｒｉｎｔＪｏｂ関数の処理を開始すると（Ｓ９０１）、印刷ジョブ管理データベースの印刷ジョブ準備完了（ＰｒｉｎｔＪｏｂＲｅａｄｙ）を確認する（Ｓ９０２）。Ｓ９０１において、ＨＴＴＰのＧＥＴ要求のクエリパラメータとして、クラウド印刷ＡＰＰ１４６が発行したプリンタＩＤとランダムコードとがＭＦＰ３から渡される。
プロキシＡＰＰ１４３は、印刷ジョブ準備完了（ＰｒｉｎｔＪｏｂＲｅａｄｙ）に印刷ジョブ準備が完了していることを表す「１」がセットされている、即ちＭＦＰ３の印刷ジョブが存在すると判断した場合（Ｓ９０３でＹＥＳの場合）、Ｓ９０４に処理を移す。他方、プロキシＡＰＰ１４３は、印刷ジョブの準備が未完了であることを表す「０」がセットされている、即ちＭＦＰ３の印刷ジョブが存在しないと判断した場合（Ｓ９０３でＮＯの場合）、Ｓ９０５に処理を移す。
【００６０】
Ｓ９０４では、プロキシＡＰＰ１４３は、ＨＴＴＰのＧＥＴ要求に対するレスポンスのＢＯＤＹに含める応答メッセージに「印刷ジョブ有り応答」をセットし、Ｓ９０６に処理を移す。Ｓ９０５では、プロキシＡＰＰ１４３は、ＨＴＴＰのＧＥＴ要求に対するレスポンスのＢＯＤＹに含める応答メッセージに「印刷ジョブ無し応答」をセットし、Ｓ９０６に処理を移す。
Ｓ９０６では、プロキシＡＰＰ１４３は、ＧＥＴ要求の発行元（本例ではＭＦＰ３）に対して応答メッセージを送信し、ＣｈｅｃｋＰｒｉｎｔＪｏｂ関数の処理を終了する（Ｓ９０７）。
【００６１】
ここで、「印刷ジョブ有り応答」と「印刷ジョブ無し応答」との詳細を説明する。印刷ジョブ有りの状態を表す情報、及び印刷ジョブ無しの状態を表す情報は、それぞれ「１０１０１０１０」、「０１０１０１０１」である。
「印刷ジョブ有り応答」及び「印刷ジョブ無し応答」は、それぞれ、ランダムコードとこれらの状態を表す情報とを用いて演算された結果であり、例えば、次に示す情報を文字列に変換した文字列情報で構成される。
「印刷ジョブ有り応答」  ＝  ランダムコード  ＸＯＲ  １０１０１０１０
「印刷ジョブ無し応答」  ＝  ランダムコード  ＸＯＲ  ０１０１０１０１
【００６２】
このように、ＨＴＴＰのＧＥＴ要求に対するレスポンスとしてＸＭＬを使って定義した可視的な情報等ではなく一般には意味がわからない文字列情報を用いることで、ＷｅｂサービスＡＰＩに対する不正なアクセスによる誤動作や不正な制御を防止することができる。
なお、このような不正なアクセスを防止する構成は、この例に限られるものではなく、ハッシュ化等、より複雑な演算を組み合わせてもよい。
【００６３】
また、図７のＳ７０８において、ＭＦＰ３がＧｅｔＰｒｉｎｔＪｏｂ関数をコールすると、プロキシＡＰＰ１４３は、図９（Ｂ）に示すＧｅｔＰｒｉｎｔＪｏｂ関数の処理を実行する。
図９（Ｂ）に示すように、プロキシＡＰＰ１４３は、ＧｅｔＰｒｉｎｔＪｏｂ関数の処理を開始する（Ｓ９１１）。そして、プロキシＡＰＰ１４３は、ＨＴＴＰＳのＧＥＴ要求に対するレスポンスのＢＯＤＹに含める応答メッセージに、印刷画像（ＪＰＥＧファイル）の格納先のＵＲＬをセットし（Ｓ９１２）、Ｓ９１３に処理を移す。
【００６４】
Ｓ９１３では、プロキシＡＰＰ１４３は、ＨＴＴＰＳのＧＥＴ要求に対するレスポンスのＢＯＤＹに含める応答メッセージに、印刷画像（ＪＰＥＧファイル）の総ページ数をセットし、Ｓ９１４に処理を移す。Ｓ９１４では、プロキシＡＰＰ１４３は、ＨＴＴＰＳのＧＥＴ要求に対するレスポンスのＢＯＤＹに含める応答メッセージに、画像変換ＡＰＰ１４４へのアクセストークンをセットし、Ｓ９１５に処理を移す。
Ｓ９１５では、プロキシＡＰＰ１４３は、ＧＥＴ要求の発行元（本例ではＭＦＰ３）に対して応答メッセージを送信し、ＧｅｔＰｒｉｎｔＪｏｂ関数の処理を終了する（Ｓ９１６）。
【００６５】
次に、画像変換ＡＰＰ１４４がエクスポートするＷｅｂサービスＡＰＩとスレッド関数の処理とについて図１０を用いて説明する。図１０（Ａ）は、ＣｒｅａｔｅＰｒｉｎｔＪｏｂＳｅｔ関数の処理に係るフローチャートの一例を示す図である。図１０（Ｂ）は、ダウンロード・画像変換スレッド関数の処理に係るフローチャートの一例を示す図である。ＣｒｅａｔｅＰｒｉｎｔＪｏｂＳｅｔ関数については、ＳＳＬ通信で暗号化されたＨＴＴＰＳのＰＯＳＴメソッドが利用されている。
これらのフローチャートに係るプログラムは、ＰＣ５に組み込まれ、ＨＤＤ２０２に記憶されており、ＣＰＵ２０４によりＲＡＭ２０１に読み出されて実行される。
【００６６】
図６のＳ６１２において、プロキシＡＰＰ１４３がＣｒｅａｔｅＰｒｉｎｔＪｏｂＳｅｔ関数をコールすると、画像変換ＡＰＰ１４４は、図１０（Ａ）に示すＣｒｅａｔｅＰｒｉｎｔＪｏｂＳｅｔ関数の処理を実行する。
図１０（Ａ）に示すように、画像変換ＡＰＰ１４４は、ＣｒｅａｔｅＰｒｉｎｔＪｏｂＳｅｔ関数の処理を開始する（Ｓ１００１）。そして、画像変換ＡＰＰ１４４は、セッションＩＤを生成し、セッション管理データベースに保存し（Ｓ１００２）、Ｓ１００３に処理を移す。セッション管理データベースには、次に示すような情報が保存される。
【００６７】
［セッション管理データベース］
・検索キー：画像変換ＡＰＰ１４４が発行したセッションＩＤ
・クラウド印刷ＡＰＰ１４６が発行したプリンタＩＤ
・クラウド印刷ＡＰＰ１４６が発行した印刷ジョブＩＤ
・クラウド印刷サービスを利用するためのアクセストークン
・印刷画像（ＰＤＦファイル）の格納先のＵＲＬ
・画像変換ＡＰＰ１４４へのアクセストークン
・印刷ジョブアクセスＵＲＬ（ＪＰＥＧファイルの格納先のＵＲＬ）
・処理の進捗を表す進捗状況（Ｐｒｏｇｒｅｓｓ）
【００６８】
ここで、画像変換ＡＰＰ１４４は、ＣｒｅａｔｅＰｒｉｎｔＪｏｂＳｅｔ関数の入力パラメータの中からクラウド印刷ＡＰＰ１４６が発行したプリンタＩＤと印刷ジョブＩＤとを取得する。そして、画像変換ＡＰＰ１４４は、クラウド印刷ＡＰＰ１４６が発行したプリンタＩＤと印刷ジョブＩＤとをセッション管理データベースに保存する。
また、画像変換ＡＰＰ１４４は、ＣｒｅａｔｅＰｒｉｎｔＪｏｂＳｅｔ関数の入力パラメータの中からクラウド印刷サービスを利用するためのアクセストークンを取得する。そして、画像変換ＡＰＰ１４４は、クラウド印刷サービスを利用するためのアクセストークンをセッション管理データベースに保存する。
さらに、画像変換ＡＰＰ１４４は、ＣｒｅａｔｅＰｒｉｎｔＪｏｂＳｅｔ関数の入力パラメータの中から印刷画像（ＰＤＦファイル）の格納先のＵＲＬを取得し、印刷画像（ＰＤＦファイル）の格納先のＵＲＬをセッション管理データベースに保存する。
【００６９】
続いて、画像変換ＡＰＰ１４４は、セッション管理データベース内の処理の進捗を表す進捗状況（Ｐｒｏｇｒｅｓｓ）に処理中を表す「１」をセットし（Ｓ１００３）、Ｓ１００４に処理を移す。Ｓ１００４では、画像変換ＡＰＰ１４４は、ダウンロード・画像変換スレッドを生成し、Ｓ１００５に処理を移す。なお、ダウンロード・画像変換スレッドの処理に関しては、図１０（Ｂ）で後述する。
続いて、画像変換ＡＰＰ１４４は、ＨＴＴＰＳのＰＯＳＴ要求に対するレスポンスのＢＯＤＹに含める応答メッセージに、この関数が成功して正常終了したことを表すＳＵＣＣＥＳＳとＳ１００２で生成したセッションＩＤとをセットする（Ｓ１００５）。そして、画像変換ＡＰＰ１４４は、ＰＯＳＴ要求の発行元（本例ではプロキシＡＰＰ１４３）に対して応答メッセージを送信する。そして、画像変換ＡＰＰ１４４は、ＣｒｅａｔｅＰｒｉｎｔＪｏｂＳｅｔ関数の処理を終了する（Ｓ１００６）。
【００７０】
また、Ｓ１００４において画像変換ＡＰＰ１４４がダウンロード・画像変換スレッドを生成すると、ＣｒｅａｔｅＰｒｉｎｔＪｏｂＳｅｔ関数とは別のスレッドが起動される。そして、このスレッドの中で図１０（Ｂ）に示すダウンロード・画像変換スレッドの処理が実行される。
図１０（Ｂ）に示すように、画像変換ＡＰＰ１４４は、ダウンロード・画像変換スレッドの処理を開始する（Ｓ１０１１）。そして、画像変換ＡＰＰ１４４は、クラウド印刷サービスを利用するためのアクセストークンを利用し、ＳＳＬ通信で暗号化されたＨＴＴＰＳのＧＥＴメソッドにて印刷画像（ＰＤＦファイル）の格納先のＵＲＬにアクセスする。即ち、画像変換ＡＰＰ１４４は、クラウド印刷サービスから印刷画像（ＰＤＦファイル）をダウンロードして一時的にＲＡＭ２０１に保存する（Ｓ１０１２）。
【００７１】
また、画像変換ＡＰＰ１４４は、ダウンロードを完了した後、印刷画像（ＰＤＦファイル）をＭＦＰ３で印刷可能な形式であるＪＰＥＧファイルに変換する。なお、ＰＣ５のＨＤＤ２０２には、プリンタやＭＦＰ毎に、印刷可能な形式を示す設定情報が予め記憶されている。
そして、画像変換ＡＰＰ１４４は、クラウド印刷ＡＰＰ１４６が発行したプリンタＩＤと印刷ジョブＩＤとから構成されるフォルダにそのＪＰＥＧファイルを保存する（Ｓ１０１３）。
また、Ｓ１０１３において、画像変換ＡＰＰ１４４は、セッション管理データベース内の画像変換ＡＰＰ１４４へのアクセストークンに、画像変換ＡＰＰ１４４へのアクセストークンをセットする。画像変換ＡＰＰ１４４へのアクセストークンは、クラウド印刷ＡＰＰ１４６が発行したプリンタＩＤが関連付けられているプリンタやＭＦＰ（本例ではＭＦＰ３）が印刷画像（ＪＰＥＧファイル）にアクセスするためのアクセストークンである。さらに、Ｓ１０１３において、画像変換ＡＰＰ１４４は、セッション管理データベース内の印刷ジョブアクセスＵＲＬに、印刷画像（ＪＰＥＧファイル）の格納先のＵＲＬ（１ページ目）をセットする。
【００７２】
［例］
プリンタＩＤ：ａｂｃｄｅ
印刷ジョブＩＤ：１２３４
印刷画像（ＪＰＥＧファイル）の総ページ数：３ページ
ＰＣ２内のデータストレージ：
C:\abcde1234\
p1.jpg
p2.jpg
p3.jpg
ＵＲＬ：http://www.abc.xxx/printdata/?pi=abcde&ji=1234&p=1
【００７３】
このＵＲＬは、１ページ目のＪＰＥＧファイル（ｐ１．ｊｐｇ）を表すので、ＭＦＰ３は、各ページの印刷画像を取得するときは、ページ番号を表すクエリパラエータ「ｐ」に、取得するページ番号を指定する。Ｓ１０１３において、画像変換ＡＰＰ１４４は、印刷画像（ＰＤＦファイル）を変換し、全てのページの印刷画像（ＪＰＥＧファイル）の変換が完了した後、Ｓ１０１２でダウンロードした印刷画像（ＰＤＦファイル）をＲＡＭ２０１から削除する。
続いて、画像変換ＡＰＰ１４４は、Ｓ１０１１〜Ｓ１０１３の何れかの処理においてエラーを検出したか否かを判断する（Ｓ１０１４）。このとき、画像変換ＡＰＰ１４４は、エラーを検出したと判断した場合、Ｓ１０１６に処理を移し、他方、エラーを検出しなかったと判断した場合、正常終了と判断してＳ１０１５に処理を移す。
【００７４】
Ｓ１０１５では、画像変換ＡＰＰ１４４は、セッション管理データベース内の進捗状況（Ｐｒｏｇｒｅｓｓ）に正常終了を表す「０」をセットし、ダウンロード・画像変換スレッドの処理を終了する（Ｓ１０１７）。Ｓ１０１６では、画像変換ＡＰＰ１４４は、セッション管理データベース内の進捗状況（Ｐｒｏｇｒｅｓｓ）にエラー終了を表す「２」をセットし、ダウンロード・画像変換スレッドの処理を終了する（Ｓ１０１７）。
Ｓ１０１７において、画像変換ＡＰＰ１４４は、セッション管理データベースからこの印刷ジョブに関する情報を削除し、セッション管理データベースを更新する。
【００７５】
次に、画像変換ＡＰＰ１４４がエクスポートするＷｅｂサービスＡＰＩの処理について図１１を用いて説明する。図１１（Ａ）は、ＣｏｎｆｉｒｍＰｒｏｇｒｅｓｓ関数の処理に係るフローチャートの一例を示す図である。図１１（Ｂ）は、ＪｏｂＣｏｍｐｌｅｔｅｄ関数の処理に係るフローチャートの一例を示す図である。
ここで、ＣｏｎｆｉｒｍＰｒｏｇｒｅｓｓ関数については、ＨＴＴＰのＧＥＴメソッドが利用されている。ＪｏｂＣｏｍｐｌｅｔｅｄ関数については、ＳＳＬ通信で暗号化されたＨＴＴＰＳのＰＯＳＴメソッドが利用されている。これらのフローチャートに係るプログラムは、ＰＣ５に組み込まれ、ＨＤＤ２０２に記憶されており、ＣＰＵ２０４によりＲＡＭ２０１に読み出されて実行される。
【００７６】
図６のＳ６１４において、プロキシＡＰＰ１４３がＣｏｎｆｉｒｍＰｒｏｇｒｅｓｓ関数をコールすると、画像変換ＡＰＰ１４４が図１１（Ａ）に示すＣｏｎｆｉｒｍＰｒｏｇｒｅｓｓ関数の処理を実行する。
図１１（Ａ）に示すように、画像変換ＡＰＰ１４４は、ＣｏｎｆｉｒｍＰｒｏｇｒｅｓｓ関数の処理を開始する（Ｓ１１０１）。このとき、ＣｏｎｆｉｒｍＰｒｏｇｒｅｓｓ関数に対するＨＴＴＰのＧＥＴ要求には、クエリパラメータとしてセッションＩＤとシーケンスとが含まれている。シーケンスは、ＧＥＴ要求の発行元（本例ではプロキシＡＰＰ１４３）が生成する任意の番号である。
続いて、画像変換ＡＰＰ１４４は、クエリパラメータに含まれているセッションＩＤを検索キーとして、セッション管理データベース内の進捗状況（Ｐｒｏｇｒｅｓｓ）を確認する（Ｓ１１０２）。続いて、画像変換ＡＰＰ１４４は、進捗状況（Ｐｒｏｇｒｅｓｓ）に正常終了を表す「０」がセットされていると判断した場合（Ｓ１１０３でＹＥＳの場合）、Ｓ１１０４に処理を移す。他方、画像変換ＡＰＰ１４４は、「０」以外（「１」または「２」）がセットされていると判断した場合（Ｓ１１０３でＮＯの場合）、Ｓ１１０５に処理を移す。
【００７７】
Ｓ１１０４では、画像変換ＡＰＰ１４４は、ＨＴＴＰのＧＥＴ要求に対するレスポンスのＢＯＤＹに含める応答メッセージに「処理完了応答」をセットし、Ｓ１１０８に処理を移す。Ｓ１１０５では、画像変換ＡＰＰ１４４は、進捗状況（Ｐｒｏｇｒｅｓｓ）を確認する。このとき、画像変換ＡＰＰ１４４は、進捗状況（Ｐｒｏｇｒｅｓｓ）に処理中を表す「１」がセットされていると判断した場合、Ｓ１１０６に処理を移し、他方、「１」以外（「２」）がセットされている判断した場合、Ｓ１１０７に処理を移す。
Ｓ１１０６では、画像変換ＡＰＰ１４４は、ＨＴＴＰのＧＥＴ要求に対するレスポンスのＢＯＤＹに含める応答メッセージに「処理中応答」をセットし、Ｓ１１０８に処理を移す。Ｓ１１０７では、画像変換ＡＰＰ１４４は、ＨＴＴＰのＧＥＴ要求に対するレスポンスのＢＯＤＹに含める応答メッセージに「エラー応答」をセットし、Ｓ１１０８に処理を移す。
Ｓ１１０８では、画像変換ＡＰＰ１４４は、ＧＥＴ要求の発行元（本例ではプロキシＡＰＰ１４３）に対して応答メッセージを送信し、ＣｏｎｆｉｒｍＰｒｏｇｒｅｓｓ関数の処理を終了する（Ｓ１１０９）。
【００７８】
ここで、「処理完了応答」、「処理中応答」、及び「エラー応答」の詳細について説明する。これらの応答は、それぞれ、Ｓ１１０１においてＧＥＴ要求のクエリパラメータに含まれていたシーケンスを用いて演算された結果であり、例えば、次に示す情報を文字列に変換した文字列情報で構成される。
「処理完了応答」  ＝  シーケンス
「処理中応答」  ＝  シーケンス＋１
「エラー応答」  ＝  シーケンス＋２
【００７９】
このように、ＨＴＴＰのＧＥＴ要求に対するレスポンスとしてＸＭＬを使って定義した可視的な情報等ではなく一般には意味がわからない文字列情報を用いることで、ＷｅｂサービスＡＰＩに対する不正なアクセスによる誤動作や不正な制御を防止することができる。
なお、このような不正なアクセスを防止する構成は、この例に限られるものではなく、ハッシュ化等、より複雑な演算を組み合わせてもよい。
【００８０】
また、図８のＳ８０３において、プロキシＡＰＰ１４３がＪｏｂＣｏｍｐｌｅｔｅｄ関数をコールすると、画像変換ＡＰＰ１４４が図１１（Ｂ）に示すＪｏｂＣｏｍｐｌｅｔｅｄ関数の処理を実行する。
図１１（Ｂ）に示すように、画像変換ＡＰＰ１４４は、ＪｏｂＣｏｍｐｌｅｔｅｄ関数の処理を開始すると（Ｓ１１２１）、印刷画像（ＪＰＥＧファイル）を削除し（Ｓ１１２２）、Ｓ１１２３に処理を移す。
Ｓ１１２３では、画像変換ＡＰＰ１４４は、ＨＴＴＰＳのＰＯＳＴ要求に対するレスポンスのＢＯＤＹに含める応答メッセージに、正常終了したことを表すＳＵＣＣＥＳＳをセットする。また、Ｓ１１２３では、画像変換ＡＰＰ１４４は、ＰＯＳＴ要求の発行元（本例ではプロキシＡＰＰ１４３）に対して応答メッセージを送信する。そして、画像変換ＡＰＰ１４４は、ＪｏｂＣｏｍｐｌｅｔｅｄ関数の処理を終了する（Ｓ１１２４）。
【００８１】
次に、画像変換ＡＰＰ１４４がエクスポートするＷｅｂサービスＡＰＩの処理について図１２を用いて説明する。図１２は、ＣｒｅａｔｅＰｒｉｎｔＪｏｂＲｅｓｕｌｔ関数の処理に係るフローチャートの一例を示す図である。
ＣｒｅａｔｅＰｒｉｎｔＪｏｂＲｅｓｕｌｔ関数については、ＳＳＬ通信で暗号化されたＨＴＴＰＳのＰＯＳＴメソッドが利用されている。このフローチャートに係るプログラムは、ＰＣ５に組み込まれ、ＨＤＤ２０２に記憶されており、ＣＰＵ２０４によりＲＡＭ２０１に読み出されて実行される。
【００８２】
図７のＳ７０１において、プロキシＡＰＰ１４３がＣｒｅａｔｅＰｒｉｎｔＪｏｂＲｅｓｕｌｔ関数をコールすると、画像変換ＡＰＰ１４４が図１２に示すＣｒｅａｔｅＰｒｉｎｔＪｏｂＲｅｓｕｌｔ関数の処理を実行する。
図１２に示すように、画像変換ＡＰＰ１４４は、ＣｒｅａｔｅＰｒｉｎｔＪｏｂＲｅｓｕｌｔ関数の処理を開始する（Ｓ１２０１）。続いて、画像変換ＡＰＰ１４４は、ＨＴＴＰＳのＰＯＳＴ要求に対するレスポンスのＢＯＤＹに含める応答メッセージに、画像変換ＡＰＰ１４４へのアクセストークンをセットし（Ｓ１２０２）、Ｓ１２０３に処理を移す。
【００８３】
Ｓ１２０３では、画像変換ＡＰＰ１４４は、ＰＯＳＴ要求に対するレスポンスのＢＯＤＹに含める応答メッセージに、印刷ジョブアクセスＵＲＬ（ＪＰＥＧファイルの格納先のＵＲＬ）をセットし、Ｓ１２０４に処理を移す。
Ｓ１２０４では、画像変換ＡＰＰ１４４は、ＰＯＳＴ要求に対するレスポンスのＢＯＤＹに含める応答メッセージに、印刷画像（ＪＰＥＧファイル）の総ページ数をセットし、Ｓ１２０５に処理を移す。Ｓ１２０５では、画像変換ＡＰＰ１４４は、ＰＯＳＴ要求の発行元（本例ではプロキシＡＰＰ１４３）に対して応答メッセージを送信し、ＣｒｅａｔｅＰｒｉｎｔＪｏｂＲｅｓｕｌｔ関数の処理を終了する（Ｓ１２０６）。
【００８４】
図１３は、ＷｅｂサービスＡＰＩのコーリングシーケンスの一例を示す図である。図１３（Ａ）は、プロキシＡＰＰ１４３とＭＦＰ３との間のコーリングシーケンスの一例を示す図である。図１３（Ｂ）は、プロキシＡＰＰ１４３と画像変換ＡＰＰ１４４との間のコーリングシーケンスの一例を示す図である。
図１３（Ａ）に示すように、プロキシＡＰＰ１４３とＭＦＰ３との間では、ＭＦＰ３は、プロキシＡＰＰ１４３がエクスポートしているＷｅｂサービスＡＰＩをコールしている。即ち、ＣｈｅｃｋＰｒｉｎｔＪｏｂ関数、ＧｅｔＰｒｉｎｔＪｏｂ関数、ＥｎｄＰｒｉｎｔＪｏｂ関数の順で、プロキシＡＰＰ１４３がエクスポートしているＷｅｂサービスＡＰＩがコールされる。
【００８５】
ここで、ＣｈｅｃｋＰｒｉｎｔＪｏｂ関数については（ポーリング処理だけが）、暗号化されていないＨＰＰＴのＧＥＴメソッドが利用され、それ以外の関数については全てＳＳＬ通信で暗号化されたＨＴＴＰＳのＧＥＴメソッドが利用されている。
このように、印刷ジョブの有無を確認するだけのためのポーリングに、暗号化されていないＨＴＴＰメソッドを利用することで、ポーリングに要する時間が低減され、ユーザの操作性に優れた周辺装置制御システムを実現することができる。また、ポーリングにかかる負荷を低減することができるので、例えば負荷に対応するための構成が必要なくなるので、システムの構築やプリンタやＭＦＰのファームウェアの実装が容易となり、開発コストを削減できる。
【００８６】
また、図１３（Ｂ）に示すように、プロキシＡＰＰ１４３と画像変換ＡＰＰ１４４との間では、プロキシＡＰＰ１４３は、画像変換ＡＰＰ１４４がエクスポートしているＷｅｂサービスＡＰＩをコールしている。即ち、ＣｒｅａｔｅＰｒｉｎｔＪｏｂＳｅｔ関数、ＣｏｎｆｉｒｍＰｒｏｇｒｅｓｓ関数、ＣｒｅａｔｅＰｒｉｎｔＪｏｂＲｅｓｕｌｔ関数、ＪｏｂＣｏｍｐｌｅｔｅｄ関数の順で画像変換ＡＰＰ１４４がエクスポートしているＷｅｂサービスＡＰＩがコールされる。
ここで、ＣｏｎｆｉｒｍＰｒｏｇｒｅｓｓ関数については（ポーリング処理だけが）、暗号化されていないＨＰＰＴのＧＥＴメソッドが利用され、それ以外の関数については全てＳＳＬ通信で暗号化されたＨＴＴＰＳのＰＯＳＴメソッドが利用されている。
このように、処理の進捗状況を確認するだけのためのポーリングに、暗号化されていないＨＴＴＰメソッドを利用することで、ポーリングに要する時間が低減され、ユーザの操作性に優れた周辺装置制御システムを実現することができる。また、ポーリングにかかる負荷を低減することができるので、例えば負荷に対応するための構成が必要なくなるので、システムの構築やアプリケーションの実装が容易となり、開発や運用コストを削減できる。
【００８７】
＜第２の実施形態＞
第１の実施形態では、あるＭＦＰに対して１つのユーザアカウント及びそのパスワードが関連付けて登録され、ユーザアカウント及びパスワードによる認証を経て取得されたアクセストークンが用いられて利用される周辺装置制御システムの一例を説明した。本実施形態では、あるＭＦＰ（例えばＭＦＰ３）に対して複数のユーザアカウントを関連付けて登録することにより、当該ＭＦＰを複数のユーザで共有して利用することが可能な周辺装置制御システムの一例を説明する。なお、本実施形態では、第１の実施形態の構成と同一の構成には同一の符号を用いてその説明を適宜省略する。
図１４は、ＭＦＰ３の表示部２１の画面の一例（クラウド印刷セットアップ画面１４０１）を示す図である。クラウド印刷セットアップ画面１４０１は、クラウド印刷サービスを利用するためのプリンタの登録などのセットアップに係る画面である。プリンタ登録操作部（１４０２、１４０５、１４０８、１４１１、１４１４）の各々は、ユーザ名入力部（１４０３、１４０６、１４０９、１４１２、１４１５）と、登録ボタン（１４０４、１４０７、１４１０、１４１３、１４１６）とを備えている。
【００８８】
現時点では、ＭＦＰ３については３人で共有されているので、ユーザ名入力部（１４０３、１４０６、１４０９）には、ユーザ名として「Ｕｓｅｒ  Ａ」、「Ｕｓｅｒ  Ｂ」、「Ｕｓｅｒ  Ｃ」がそれぞれセットされている。他方、ユーザ名入力部１４１２及びユーザ名入力部１４１５には、ユーザ名が何もセットされていない。
登録ボタン１４０４は、ＭＦＰ３をユーザ名入力部１４０３のユーザ「Ｕｓｅｒ  Ａ」用として、クラウド印刷ＡＰＰ１４６が提供するクラウド印刷サービスに登録するときに操作されるユーザインタフェース（ＵＩ）である。登録ボタン１４０７は、ＭＦＰ３をユーザ名入力部１４０６のユーザ「Ｕｓｅｒ  Ｂ」用として、クラウド印刷ＡＰＰ１４６が提供するクラウド印刷サービスに登録するときに操作されるＵＩである。登録ボタン１４１０は、ＭＦＰ３をユーザ名入力部１４０９のユーザ「Ｕｓｅｒ  Ｃ」用として、クラウド印刷ＡＰＰ１４６が提供するクラウド印刷サービスに登録するときに操作されるＵＩである。
【００８９】
登録ボタン１４１３は、ＭＦＰ３をユーザ名入力部１４１２のユーザ用として、クラウド印刷ＡＰＰ１４６が提供するクラウド印刷サービスに登録するときに操作されるＵＩである。登録ボタン１４１６は、ＭＦＰ３をユーザ名入力部１４１５のユーザ用として、クラウド印刷ＡＰＰ１４６が提供するクラウド印刷サービスに登録するときに操作されるＵＩである。
なお、現時点では、ユーザ名入力部１４１２及びユーザ名入力部１４１５にはユーザ名が何もセットされていないので、登録ボタン１４１３及び登録ボタン１４１６は機能しない。
【００９０】
図１５は、ＰＣ１のＬＣＤ２０５の画面（Ｗｅｂブラウザ９）の一例（プリンタ登録ページ１５０１）を示す図である。プリンタ登録ページ１５０１は、クラウド印刷サービスにプリンタを登録する際のユーザ認証に係る画面である。ユーザは、プリンタ登録ページ１５０１を使って、クラウド印刷ＡＰＰ１４６が提供するクラウド印刷サービスを利用する際に必要なユーザ認証及びプリンタの仮登録を行う。
ＵＲＬ入力部１５０２は、ＵＲＬの入力を受け付ける。ＵＲＬ入力部１５０２で入力されたＵＲＬのＷｅｂサイトのページがＷｅｂブラウザ９に表示される。ユーザアカウント入力部１５０３は、ユーザアカウントの入力を受け付ける。パスワード入力部１５０４は、パスワードの入力を受け付ける。ユーザは、クラウド印刷サービスを利用するために必要なユーザアカウントとパスワードとをここに入力する。
認証コード（トークン）入力部１５０５は、仮認証コード（トークン）の入力を受け付ける。ユーザは、クラウド印刷ＡＰＰ１４６で発行されたプリンタ登録用の仮認証コード（トークン）をここに入力する。登録ボタン１５０６は、プリンタの仮登録を受け付ける。ユーザにより登録ボタン１５０６が押下されると、クラウド印刷サービスにプリンタが仮登録される。キャンセルボタン１５０７は、プリンタの仮登録の中止を受け付ける。ユーザによりキャンセルボタン１５０７が押下されると、クラウド印刷サービスにプリンタを仮登録する処理がキャンセルされる。
【００９１】
図１６は、クラウド印刷サービスにプリンタを登録する処理に係るフローチャートの一例を示す図である。このフローチャートに係るプログラムは、ＰＣまたはＭＦＰ内に組み込まれている。ＰＣ上で動作するアプリケーションのプログラムは、ＨＤＤ２０２に記憶されており、ＣＰＵ２０４によりＲＡＭ２０１に読み出されて実行される。ＭＦＰ上で動作するアプリケーションのプログラムは、ＲＯＭ１６に記憶されており、ＲＡＭ１７に読み出され、ＣＰＵ２５により実行される。
このフローチャートにおいて、縦の列が処理の実行元を表し、本実施形態では図面の左側から、ユーザ（Ｗｅｂブラウザ９）、文書作成ＡＰＰ１４５、クラウド印刷ＡＰＰ１４６、プロキシＡＰＰ１４３、画像変換ＡＰＰ１４４、ＭＦＰ３を記す。以下では、ユーザがＭＦＰ３とＰＣ１を使って、クラウド印刷ＡＰＰ１４６が提供するクラウド印刷サービスにＭＦＰ３を登録するケースを例に挙げて、通信制御方法について説明する。
【００９２】
ユーザがＭＦＰ３の表示部２１を操作して、図１４に示すクラウド印刷セットアップ画面１４０１を開き、ユーザ名入力部１４０３のユーザ「Ｕｓｅｒ  Ａ」用の登録ボタン１４０４を押下すると、図１６において、プリンタの登録処理が開始される（Ｓ１６０１）。
プリンタの登録処理が開始されると、ＭＦＰ３は、クラウド印刷ＡＰＰ１４６にプリンタの仮登録を要求する（Ｓ１６０２）。クラウド印刷ＡＰＰ１４６は、要求を受け取ると、プリンタ登録用の仮認証コード（トークン）と、プリンタ登録ページのＵＲＬ（登録ページのＵＲＬ）と、ポーリング用のＵＲＬ（ポーリングＵＲＬ）とを発行する（Ｓ１６０３）。ＭＦＰ３は、クラウド印刷ＡＰＰ１４６から仮認証コード（トークン）とプリンタ登録ページのＵＲＬとポーリングＵＲＬとを受信すると、仮認証コード（トークン）及びプリンタ登録ページのＵＲＬを表示部２１に表示し（Ｓ１６０４）、Ｓ１６０５に処理を移す。
次に、ユーザは、クラウド印刷ＡＰＰ１４６が提供するクラウド印刷サービスにＭＦＰ３を仮登録するためのユーザ認証処理を開始する（Ｓ１６１０）。より具体的には、ユーザは入力部を操作して、ＰＣ１内のＷｅｂブラウザ９を起動し、ＵＲＬ入力部１５０２にプリンタ登録ページのＵＲＬを入力すると、Ｗｅｂブラウザ９は、クラウド印刷ＡＰＰ１４６から指定されたプリンタ登録ページを開く（Ｓ１６１１）。
【００９３】
次に、ユーザは入力部を操作して、クラウド印刷サービスを利用するために事前に作成しておいたユーザアカウントとパスワードとを、ユーザアカウント入力部１５０３及びパスワード入力部１５０４にそれぞれ入力する。また、認証コード（トークン）入力部１５０５に仮認証コード（トークン）を入力する。ユーザが入力部を操作して登録ボタン１５０６を押下すると、Ｗｅｂブラウザ９は、このプリンタ登録ページ１５０１で入力されたユーザアカウント、パスワード、仮認証コード（トークン）をクラウド印刷ＡＰＰ１４６に送信する（Ｓ１６１２）。
クラウド印刷ＡＰＰ１４６は、Ｗｅｂブラウザ９から送信されたユーザアカウント、パスワード、仮認証コード（トークン）を受信すると、ユーザ認証を行う。更に、クラウド印刷ＡＰＰ１４６は、認証に成功した場合にはクラウド印刷サービスを利用する際に必要なアクセストークンを発行し、クラウド印刷サービスにＭＦＰ３を仮登録する（Ｓ１６１３）。これでユーザ認証処理が終了し、クラウド印刷サービスにＭＦＰ３が仮登録された状態となる（Ｓ１６１４）。
【００９４】
Ｓ１６０５では、ＭＦＰ３は、ポーリングＵＲＬにアクセスし、クラウド印刷ＡＰＰ１４６にプリンタ（ＭＦＰ３）の仮登録の状況（登録状況）を確認するための問合せを行う。クラウド印刷ＡＰＰ１４６は、問合せを受け付けると、プリンタ（ＭＦＰ３）の仮登録の状況を確認する。
このとき、クラウド印刷ＡＰＰ１４６は、プリンタ（ＭＦＰ３）の仮登録が完了していると判断した場合、プリンタ（ＭＦＰ３）用のプリンタＩＤを発行して当該プリンタを本登録する。更に、クラウド印刷ＡＰＰ１４６は、このプリンタＩＤとアクセストークンとをＭＦＰ３に送信し、プリンタの本登録が完了した旨の結果をＭＦＰ３に返信する（Ｓ１６０６）。なお、プリンタＩＤは、ユーザ名入力部１４０３で指定されているユーザ「Ｕｓｅｒ  Ａ」専用としてクラウド印刷ＡＰＰ１４６がＭＦＰ３に割り当てた一意の値で表されたものである。
【００９５】
他方、クラウド印刷ＡＰＰ１４６は、プリンタ（ＭＦＰ３）の仮登録が完了していないと判断した場合、プリンタの本登録が未完了である旨の結果をＭＦＰ３に返信する（Ｓ１６０６）。
ＭＦＰ３は、プリンタ（ＭＦＰ３）の本登録が完了した旨の結果を受信したと判断した場合（Ｓ１６０７でＹＥＳの場合）、Ｓ１６０８に処理を移し、他方、未完了である旨の結果を受信したと判断した場合（Ｓ１６０７でＮＯの場合）、Ｓ１６０５に処理を移す。Ｓ１６０８では、ＭＦＰ３は、クラウド印刷サービスへのプリンタの本登録が完了した旨を表示部２１に表示し（Ｓ１６０８）、プリンタの登録処理を終了する（Ｓ１６０９）。
【００９６】
また、ユーザがＭＦＰ３の表示部２１を操作して、クラウド印刷セットアップ画面１４０１を開き、ユーザ名入力部１４０６のユーザ「Ｕｓｅｒ  Ｂ」用の登録ボタン１４０７を押下すると、上述と同様にプリンタの登録処理とユーザ認証処理とが行われる。この際、Ｓ１６０６において、ＭＦＰ３用のプリンタＩＤが発行されるが、このプリンタＩＤは、ユーザ名入力部１４０６で指定されているユーザ「Ｕｓｅｒ  Ｂ」専用としてクラウド印刷ＡＰＰ１４６がＭＦＰ３に割り当てた一意の値で表されたものである。
また、ユーザがＭＦＰ３の表示部２１を操作して、クラウド印刷セットアップ画面１４０１を開き、ユーザ名入力部１４０９のユーザ「Ｕｓｅｒ  Ｃ」用の登録ボタン１４１０を押下すると、上述と同様にプリンタの登録処理とユーザ認証処理とが行われる。この際、Ｓ１６０６において、ＭＦＰ３用のプリンタＩＤが発行されるが、このプリンタＩＤは、ユーザ名入力部１４０９で指定されているユーザ「Ｕｓｅｒ  Ｃ」専用としてクラウド印刷ＡＰＰ１４６がＭＦＰ３に割り当てた一意の値で表されたものである。
このように、本実施形態では、クラウド印刷ＡＰＰ１４６が、１台のＭＦＰ（ＭＦＰ３）に対して複数のユーザ（ユーザアカウント）毎にそれぞれ異なる一意の値のプリンタＩＤを発行する。これにより、１台のＭＦＰを複数のユーザで共有して利用することができるので、ＭＦＰの利用目的や利用範囲が広がるとともに、操作性にも優れるなどの効果が得られる。なお、本実施形態においても、第１の実施形態の効果は得られる。
【００９７】
＜第３の実施形態＞
第１の実施形態では、クラウド印刷ＡＰＰ１４６が提供するクラウド印刷サービスにおける印刷ジョブ通知をプロキシＡＰＰ１４３が受信する構成を例に挙げて説明した。この例では、ＭＦＰ３が、図６のＳ６１８〜Ｓ６２１において一定の時間間隔（この例では１分間隔）でポーリングすることにより、プロキシＡＰＰ１４３に対して印刷ジョブの有無の確認を行っている。
そのため、プロキシＡＰＰ１４３が印刷ジョブ通知を受信してから、必ずしも直ちにＭＦＰ３が印刷を開始することができず、最長でポーリングのインターバル分（この例では１分）の遅れが発生する事態が生じ得る。
そこで、本実施形態では、印刷の実行が指示されてから印刷が開始されるまでの時間（印刷開始時間）を短縮するとともに、印刷の実行が指示されてから印刷処理が終了するまでの時間（トータル印刷時間）を低減可能な周辺装置制御システムの一例を説明する。なお、本実施形態では、第１の実施形態の構成と同一の構成には同一の符号を用いてその説明を適宜省略する。
【００９８】
図１７は、本周辺装置制御システム全体の処理に係るフローチャートの一例を示す図である。このフローチャートに係るプログラムは、ＰＣまたはＭＦＰ内に組み込まれている。ＰＣ上で動作するアプリケーションのプログラムは、ＨＤＤ２０２に記憶されており、ＣＰＵ２０４によりＲＡＭ２０１に読み出されて実行される。ＭＦＰ上で動作するアプリケーションのプログラムは、ＲＯＭ１６に記憶されており、ＲＡＭ１７に読み出され、ＣＰＵ２５により実行される。
このフローチャートにおいて、縦の列が処理の実行元を表し、本実施形態では図面の左側から、ユーザ（Ｗｅｂブラウザ９）、文書作成ＡＰＰ１４５、クラウド印刷ＡＰＰ１４６、プロキシＡＰＰ１４３、画像変換ＡＰＰ１４４、ＭＦＰ３を記す。以下では、ユーザがＰＣ１を使ってドキュメントの印刷をＭＦＰ３で行うケース（ドキュメントの印刷に係る一連の処理）を例に挙げて通信制御方法について説明する。
このフローチャートにおいて、図６、図７に示すステップ番号と同じステップ番号が付与されている処理は、基本的には図６、図７で説明した処理と同一であるので、その説明を省略する。また、特に説明がない部分に関しても図６、図７で説明した内容と同一であるものとする。
【００９９】
図１７において、Ｓ６０１でユーザ側から見たドキュメントの印刷が開始されると、Ｓ６０２〜Ｓ６０９の処理が順に行われる。Ｓ６０９において、クラウド印刷ＡＰＰ１４６は、選択されているプリンタ選択肢に関連付けられているプリンタ（ＭＦＰ３）に印刷ジョブ通知（開始通知の一例）を送信する。
印刷ジョブ通知には、例えば、Ｅｘｔｅｎｓｉｂｌｅ  Ｍｅｓｓａｇｉｎｇ  ａｎｄ  Ｐｒｅｓｅｎｃｅ  Ｐｒｏｔｏｃｏｌ（略称：ＸＭＰＰ）というインスタントメッセンジャーで使用されているプロトコルを利用することができる。ステップＳ６０９において、クラウド印刷ＡＰＰ１４６がプリンタ（ＭＦＰ３）に送信する印刷ジョブ通知は、暗号化されていないＸＭＰＰが利用されるものとする。
ＭＦＰ３は、印刷ジョブ通知を受信すると（Ｓ１７０８）、Ｓ１７０９に処理を移す。Ｓ１７０９では、ＭＦＰ３は、プロキシＡＰＰ１４３に印刷ジョブの取得を要求し、印刷ジョブの有無を確認する処理（Ｓ１７０１）を開始（起動）する。
プロキシＡＰＰ１４３は、ＭＦＰ３からの印刷ジョブの取得の要求を受信すると、クラウド印刷ＡＰＰ１４６がエクスポートしているＷｅｂサービスＡＰＩのＦｅｔｃｈＰｒｉｎｔＪｏｂ関数をコールする（Ｓ１７１０）。そして、図６のＳ６１１に処理が移され、図６のＳ６１１以降の処理が行われる。
【０１００】
また、印刷ジョブの有無を確認する処理を開始すると（Ｓ１７０１）、ＭＦＰ３は、プロキシＡＰＰ１４３がエクスポートしているＷｅｂサービスＡＰＩのＣｈｅｃｋＰｒｉｎｔＪｏｂ関数をコールする（Ｓ１７０２）。Ｓ１７０２において、ＭＦＰ３が、この関数をコールするときに、ＨＴＴＰのＧＥＴ要求のクエリパラメータとしてプロキシＡＰＰ１４３に渡す情報（確認情報の一例）は、図６のＳ６１８で説明した情報と同一である。
プロキシＡＰＰ１４３は、ＣｈｅｃｋＰｒｉｎｔＪｏｂ関数がコールされると、図９（Ａ）に示すＣｈｅｃｋＰｒｉｎｔＪｏｂ関数の処理を実行し、そのレスポンス（応答情報の一例）をＭＦＰ３に返す（Ｓ１７０３）。
続いて、ＭＦＰ３は、プロキシＡＰＰ１４３からのＣｈｅｃｋＰｒｉｎｔＪｏｂ関数のレスポンスを受信すると、レスポンス内の応答メッセージに含まれている情報（「印刷ジョブ有り応答」又は「印刷ジョブ無し応答」）を確認する（Ｓ１７０４）。Ｓ１７０４において、ＭＦＰ３は、「印刷ジョブ有り応答」を受信したと判断した場合、図７のＳ７０８に処理を移し、他方、「印刷ジョブ無し応答」を受信したと判断した場合、Ｓ１７０５に処理を移す。
【０１０１】
Ｓ１７０５では、ＭＦＰ３は、Ｓ１７０１において印刷ジョブの有無を確認する処理が開始されてからの経過時間を確認し、Ｓ１７０６に処理を移す。Ｓ１７０６では、ＭＦＰ３は、経過時間が最長待ち時間（例えば５分間）を経過していると判断した場合（ＹＥＳの場合）、図６のＳ６１８に処理を移し、他方、経過していないと判断した場合（ＮＯの場合）、Ｓ１７０７に処理を移す。
Ｓ１７０７では、ＭＦＰ３は、一定の時間（例えば１秒間）待った後、Ｓ１７０２に処理を移す。このように、ＭＦＰ３は、印刷ジョブが生成される際に、プロキシＡＰＰ１４３がエクスポートしているＣｈｅｃｋＰｒｉｎｔＪｏｂ関数を一定の時間間隔で（定期的に）ポーリングする。
ここで、第１の実施形態の図６のＳ６１８〜Ｓ６２１におけるポーリングのインターバルが１分間であったのに対し、本実施形態ではポーリングのインターバルが１秒間である。この構成により、印刷開始時間を大幅に短縮することができ、トータル印刷時間も低減することができる。
【０１０２】
また、第１の実施形態では、印刷ジョブの有無によらずポーリングが行われる。よって、膨大な数のプリンタからプロキシＡＰＰ１４３に対して頻繁にポーリングが行われると、プロキシＡＰＰ１４３の負荷が非常に大きくなり、大規模なシステムが必要になることによるクラウドシステム（周辺装置制御システムの一例）のコストアップに至る。また、場合によっては、クラウドシステムが機能しなくなるほど負荷がかかる可能性もあり、システム全体が不安定になってしまうという懸念もある。
しかしながら、本実施形態では、印刷ジョブが生成されるときに限ってポーリングが行われるため、全体からみた場合にごく少数のプリンタが対象となるので、ポーリングのインターバルを短くしてもシステムに与える負荷が少ない。したがって、本実施形態によれば、システムを大規模にする必要もなく、クラウドシステムの生産費、運用費などの費用を抑える（第１の実施形態のクラウドシステムの費用よりも下げる）ことができる。また、本実施形態によれば、システム全体を安定した状態で維持することも可能となる。
【０１０３】
また、Ｓ１７０６では、印刷ジョブの有無を確認する処理が開始されてからの経過時間（或いは印刷ジョブ通知を受信した時点からの経過時間でもよい。）が最長待ち時間を超えた場合、クラウド印刷サービスに異常が発生した可能性があることを想定している。即ち、経過時間が最長待ち時間を超えた以降のポーリングのインターバルを十分に長くすることにより、長時間にわたって短いインターバルでのポーリングが続くことを防止し、システムを安定した状態で維持することができる。
このように、本実施形態では、ＭＦＰ３は、クラウド印刷ＡＰＰ１４６からの印刷ジョブ通知を受信すると、その時点から極めて短いインターバルで印刷ジョブの有無を確認することができるので、印刷開始時間を短縮し、トータル印刷時間を低減することができる。なお、本実施形態においても、第１の実施形態の効果は得られる。
なお、ユーザが印刷を開始したときに、ＭＦＰ３の電源がオフの場合、印刷ジョブ通知を受信できないケースが考えられる。このようなケースに対応するために、ＭＦＰ３の電源がオンになったときに、ステップＳ１７０１の処理を少なくとも１回、或いは、ある一定時間の間だけ行うようにする。このことで、前記ユーザが開始した印刷ジョブをＭＦＰ３の電源投入時に確実に印刷することができる。
上述した実施形態をさらに改良する実施形態もある。クラウド印刷ＡＰＰ１４６がＭＦＰ３に印刷ジョブ通知を送信するということは、印刷ジョブが有るという前提で処理できると考えられる。したがって、ステップＳ１７０９において、ＭＦＰ３が印刷ジョブの有無を確認する処理（Ｓ１７０１）を開始（起動）した後、ステップＳ１７０２の処理を実行せずにステップＳ１７０４に直接進む。そして、更にステップＳ１７０４の判定を無条件にＹＥＳで処理して、ステップＳ７０８へ進む。これにより、クラウド印刷ＡＰＰ１４６が、暗号化されていない印刷ジョブ通知をＭＦＰ３に送信する。ＭＦＰ３は、この暗号化されていない印刷ジョブ通知を受信した後、プロキシＡＰＰ１４３がエクスポートしているＧｅｔＰｒｉｎｔＪｏｂ関数を、ＳＳＬ通信で暗号化されたＨＴＴＰＳのＧＥＴメソッドでコールする。このような改良実施形態においても、第１の実施形態の効果が得られる。
【０１０４】
＜第４の実施形態＞
上述した実施形態では、情報処理装置としてパーソナルコンピュータを想定した。しかしながら、この例に限られるものではなく、例えばＤＶＤプレーヤー、ゲーム、セットトップボックス、インターネット家電等、同様な使用方法が可能な任意の情報処理装置（端末）に対して適用することができ、有効である。
また、上述した実施形態では、周辺装置としてＭＦＰを例示した。しかしながら、周辺装置として他に、複写機、ファクシミリ、スキャナ、デジタルカメラ、及びこれらの複合機能を備える装置等の何れかであってもよい。
また、上述した実施形態では、ＯＳに例としてＷｉｎｄｏｗｓと同等のＯＳを使用したが、このＯＳに限られるものではなく、任意のＯＳを使用することができる。
また、上述した実施形態では、ネットワーク４の構成例としてＥｔｈｅｒｎｅｔを用いたが、この例に限られるものではなく、他の任意のネットワーク構成であってもよい。
【０１０５】
また、上述した実施形態では、ＰＣ１、ＰＣ２、ＰＣ５、ＰＣ７とＭＦＰ３、ＭＦＰ１０３との間のインタフェースとして、Ｅｔｈｅｒｎｅｔを採用した。しかしながら、このインタフェースに限られることなく、例えば、無線ＬＡＮ、ＩＥＥＥ１３９４、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＵＳＢ等の任意のインタフェースを用いるようにしてもよい。
また、各種のアプリケーション（ファームウェア）における機能、上述したフローチャートに係る処理の一部、又は全部を専用のハードウェアを用いて構成してもよい。
【０１０６】
上述した本実施形態によれば、ポーリングによる画像変換処理の進捗状況の確認処理や、ポーリングによる印刷ジョブの有無の確認処理に時間を要することがなくなり、ユーザの操作性を向上することができる。
また、周辺装置制御システムにクラウドを利用した場合においても、システムの構築やアプリケーションの実装が容易で、開発や運用コストを削減できる。
さらに、ＭＦＰ３のような性能の低い廉価版のプリンタや複合機のファームウェアの実装にも支障をきたすことなく、各処理に時間を要することもなくなるため、ユーザの操作性を向上することができる。
【０１０７】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【０１０８】
上述した実施形態の構成によれば、装置間の通信をより適切に行うことができる。
【０１０９】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図１】
0005943761.tif 000002
【図２】
0005943761.tif 000003
【図３】
0005943761.tif 000004
【図４】
0005943761.tif 000005
【図５】
0005943761.tif 000006
【図６】
0005943761.tif 000007
【図７】
0005943761.tif 000008
【図８】
0005943761.tif 000009
【図９】
0005943761.tif 000010
【図１０】
0005943761.tif 000011
【図１１】
0005943761.tif 000012
【図１２】
0005943761.tif 000013
【図１３】
0005943761.tif 000014
【図１４】
0005943761.tif 000015
【図１５】
0005943761.tif 000016
【図１６】
0005943761.tif 000017
【図１７】
0005943761.tif 000018