(57)【特許請求の範囲】
【請求項１】
通信装置と特定のサーバとの間の通信を仲介するための仲介サーバであって、
前記通信装置と前記特定のサーバとの間で通信されるべき複数個の対象データを特定するための複数個のデータ特定情報を含む１個の通知を、前記通信装置から受信する通知受信部と、
前記通信装置から前記１個の通知が受信される場合に、前記１個の通知に含まれる前記複数個のデータ特定情報を用いて、前記複数個の対象データに対応する複数個の要求生成用データを準備する準備部であって、前記複数個の要求生成用データのそれぞれは、前記通信装置が、当該１個の要求生成用データに対応する１個の対象データを前記特定のサーバと通信するための１個の通信要求を生成するのに必要なデータであり、前記複数個の要求生成用データのそれぞれは、前記通信装置が前記複数個の対象データに関係する共通のサービスを前記特定のサーバから受けるためのデータであり、前記複数個の要求生成用データのそれぞれは、当該１個の要求生成用データが準備されたタイミングに関係するタイミング情報を含む、前記準備部と、
前記複数個の要求生成用データを、前記通信装置に供給する供給部と、を備え、
前記準備部は、前記複数個の対象データのうちの第１の対象データに対応する第１の要求生成用データを準備した後に、前記通信装置が、前記第１の要求生成用データを用いて第１の通信要求を生成して、少なくとも前記第１の通信要求を前記特定のサーバに送信したことを条件として、前記複数個の対象データのうちの第２の対象データに対応する第２の要求生成用データを準備する、仲介サーバ。
【請求項２】
前記準備部は、前記通信装置が前記第１の通信要求を前記特定のサーバに送信することによって、前記通信装置と前記特定のサーバとの間で前記第１の対象データの通信が終了した場合に前記通信装置から所定のリクエストを受信することを条件として、前記第２の要求生成用データを準備する、請求項１に記載の仲介サーバ。
【請求項３】
前記準備部は、前記通信装置から前記１個の通知が受信される場合に、前記１個の通知に含まれる前記複数個のデータ特定情報を含むリストを、前記通信装置に送信し、
前記準備部は、
前記リストに含まれる前記複数個のデータ特定情報の中から前記通信装置によって選択される第１のデータ特定情報であって、前記第１の対象データを特定するための前記第１のデータ特定情報を含む第１のリクエストが、前記通信装置から受信される場合に、前記第１の要求生成用データを準備し、
前記リストに含まれる前記複数個のデータ特定情報の中から前記通信装置によって選択される第２のデータ特定情報であって、前記第２の対象データを特定するための前記第２のデータ特定情報を含む第２のリクエストが、前記通信装置から受信される場合に、前記第２の要求生成用データを準備し、
前記第２のリクエストは、前記通信装置が前記第１の通信要求を前記特定のサーバに送信した後に、前記通信装置から受信されるリクエストである、請求項１又は２に記載の仲介サーバ。
【請求項４】
前記準備部は、
前記第１のリクエストが前記通信装置から受信される場合に、前記第１のリクエストに含まれる前記第１のデータ特定情報を用いて、前記第１の対象データの通信対象である前記特定のサーバ内の第１の位置情報を、前記特定のサーバから取得して、前記第１の位置情報を用いて、前記第１の要求生成用データを準備し、
前記第２のリクエストが前記通信装置から受信される場合に、前記第２のリクエストに含まれる前記第２のデータ特定情報を用いて、前記第２の対象データの通信対象である前記特定のサーバ内の第２の位置情報を、前記特定のサーバから取得して、前記第２の位置情報を用いて、前記第２の要求生成用データを準備する、請求項３に記載の仲介サーバ。
【請求項５】
前記第１のリクエストは、前記複数個のデータ特定情報のうち、前記第１のデータ特定情報のみを含み、
前記第２のリクエストは、前記複数個のデータ特定情報のうち、前記第２のデータ特定情報のみを含む、請求項３又は４に記載の仲介サーバ。
【請求項６】
前記第１のリクエストは、前記複数個のデータ特定情報のうちの一部であるＮ１個（Ｎ１は２以上の整数）のデータ特定情報であって、前記第１のデータ特定情報を含む前記Ｎ１個のデータ特定情報を含み、
前記第２のリクエストは、前記複数個のデータ特定情報のうちの一部であるＮ２個（Ｎ２は２以上の整数）のデータ特定情報であって、前記第２のデータ特定情報を含む前記Ｎ２個のデータ特定情報を含み、
前記準備部は、前記通信装置が前記第１の通信要求を前記特定のサーバに送信することによって、前記通信装置と前記特定のサーバとの間で前記Ｎ１個のデータ特定情報に対応するＮ１個の第１の対象データであって、前記第１の対象データを含む前記Ｎ１個の第１の対象データの通信が終了した場合に前記通信装置から前記第２のリクエストを受信することを条件として、前記第２の要求生成用データを準備する、請求項３又は４に記載の仲介サーバ。
【請求項７】
前記複数個の要求生成用データのそれぞれは、前記通信装置がＰＯＳＴコマンドの通信要求を生成するのに必要なデータである、請求項１から６のいずれか一項に記載の仲介サーバ。
【請求項８】
前記複数個の対象データのそれぞれは、前記特定のサーバから前記通信装置にダウンロードされるべきデータであり、
前記準備部は、前記通信装置が前記第１の通信要求を前記特定のサーバに送信することによって、前記特定のサーバから前記通信装置への前記第１の対象データのダウンロードが終了した場合に前記通信装置から所定のリクエストを受信することを条件として、前記第２の要求生成用データを準備する、請求項１から７のいずれか一項に記載の仲介サーバ。
【請求項９】
前記複数個の対象データのそれぞれは、前記通信装置から前記特定のサーバにアップロードされるべきデータであり、
前記準備部は、前記通信装置が前記第１の通信要求を前記特定のサーバに送信することによって、前記通信装置から前記特定のサーバへの前記第１の対象データのアップロードが終了した場合に前記通信装置から所定のリクエストを受信することを条件として、前記第２の要求生成用データを準備する、請求項１から７のいずれか一項に記載の仲介サーバ。
【請求項１０】
仲介サーバを介して特定のサーバと通信するための通信装置であって、
前記通信装置と前記特定のサーバとの間で通信されるべき複数個の対象データを特定するための複数個のデータ特定情報を含む１個の通知を、前記仲介サーバに送信する通知送信部であって、前記仲介サーバは、前記通信装置から前記１個の通知を受信する場合に、前記１個の通知に含まれる前記複数個のデータ特定情報を用いて、前記複数個の対象データに対応する複数個の要求生成用データを準備するサーバであり、前記複数個の要求生成用データのそれぞれは、前記通信装置が、当該１個の要求生成用データに対応する１個の対象データを前記特定のサーバと通信するための１個の通信要求を生成するのに必要なデータであり、前記複数個の要求生成用データのそれぞれは、前記通信装置が前記複数個の対象データに関係する共通のサービスを前記特定のサーバから受けるためのデータであり、前記複数個の要求生成用データのそれぞれは、当該１個の要求生成用データが準備されたタイミングに関係するタイミング情報を含む、前記通知送信部と、
前記仲介サーバから、前記複数個の要求生成用データを取得する取得部と、
前記複数個の要求生成用データを用いて、複数個の通信要求を生成する生成部と、
前記複数個の通信要求を前記特定のサーバに送信することによって、前記複数個の対象データを前記特定のサーバと通信する対象データ通信部と、を備え、
前記取得部は、前記複数個の対象データのうちの第１の対象データに対応する第１の要求生成用データを、前記仲介サーバから取得した後に、前記生成部が、前記第１の要求生成用データを用いて第１の通信要求を生成して、前記対象データ通信部が、前記第１の通信要求を前記特定のサーバに送信したことを条件として、前記複数個の対象データのうちの第２の対象データに対応する第２の要求生成用データを、前記仲介サーバから取得する、通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書では、通信装置と特定のサーバとの間の通信を仲介するための仲介サーバを開示する。本明細書では、さらに、仲介サーバを介して特定のサーバと通信するための通信装置を開示する。
【背景技術】
【０００２】
例えば、特許文献１には、文書をスキャンして画像データを生成する画像処理装置が開示されている。画像処理装置は、上記の画像データをサーバにアップロードすることが可能である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−２６９２５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本明細書では、通信装置及び特定のサーバが複数個の対象データを適切に通信し得る技術を提供する。
【課題を解決するための手段】
【０００５】
本明細書では、通信装置と特定のサーバとの間の通信を仲介するための仲介サーバを開示する。仲介サーバは、通知受信部と準備部と供給部とを備える。通知受信部は、通信装置と特定のサーバとの間で通信されるべき複数個の対象データを特定するための複数個のデータ特定情報を含む１個の通知を、通信装置から受信する。準備部は、通信装置から１個の通知が受信される場合に、１個の通知に含まれる複数個のデータ特定情報を用いて、複数個の対象データに対応する複数個の要求生成用データを準備する。複数個の要求生成用データのそれぞれは、通信装置が、当該１個の要求生成用データに対応する１個の対象データを特定のサーバと通信するための１個の通信要求を生成するのに必要なデータである。複数個の要求生成用データのそれぞれは、当該１個の要求生成用データが準備されたタイミングに関係するタイミング情報を含む。供給部は、複数個の要求生成用データを、通信装置に供給する。準備部は、複数個の対象データのうちの第１の対象データに対応する第１の要求生成用データを準備した後に、通信装置が、第１の要求生成用データを用いて第１の通信要求を生成して、第１の通信要求を特定のサーバに送信したことを条件として、複数個の対象データのうちの第２の対象データに対応する第２の要求生成用データを準備する。
【０００６】
上記の構成によると、仲介サーバは、第１の要求生成用データを準備して、通信装置に供給する。この場合、通信装置は、第１の要求生成用データを用いて第１の通信要求を生成して、特定のサーバに送信する。その後、仲介サーバは、第２の要求生成用データを準備する。従って、仲介サーバが、適切なタイミングで第２の要求生成用データを準備し得るために、第２の要求生成用データが、適切なタイミング情報を含み得る。この結果、通信装置及び特定のサーバは、複数個の対象データを適切に通信し得る。
【０００７】
準備部は、通信装置が第１の通信要求を特定のサーバに送信することによって、通信装置と特定のサーバとの間で第１の対象データの通信が終了したことを条件として、第２の要求生成用データを準備してもよい。この構成によると、仲介サーバが、適切なタイミングで第２の要求生成用データを準備し得るために、第２の要求生成用データが、適切なタイミング情報を含み得る。この結果、通信装置及び特定のサーバは、複数個の対象データを適切に通信し得る。
【０００８】
準備部は、通信装置から１個の通知が受信される場合に、１個の通知に含まれる複数個のデータ特定情報を含むリストを、通信装置に送信してもよい。準備部は、リストに含まれる複数個のデータ特定情報の中から通信装置によって選択される第１のデータ特定情報であって、第１の対象データを特定するための第１のデータ特定情報を含む第１のリクエストが、通信装置から受信される場合に、第１の要求生成用データを準備してもよい。準備部は、リストに含まれる複数個のデータ特定情報の中から通信装置によって選択される第２のデータ特定情報であって、第２の対象データを特定するための第２のデータ特定情報を含む第２のリクエストが、通信装置から受信される場合に、第２の要求生成用データを準備してもよい。第２のリクエストは、通信装置が第１の通信要求を特定のサーバに送信した後に、通信装置から受信されるリクエストであってもよい。この構成によると、仲介サーバは、通信装置から受信される第１及び第２のリクエストに応じて、適切なタイミングで第１及び第２の要求生成用データを準備し得る。
【０００９】
準備部は、第１のリクエストが通信装置から受信される場合に、第１のリクエストに含まれる第１のデータ特定情報を用いて、第１の対象データの通信対象である特定のサーバ内の第１の位置情報を、特定のサーバから取得して、第１の位置情報を用いて、第１の要求生成用データを準備してもよい。準備部は、第２のリクエストが通信装置から受信される場合に、第２のリクエストに含まれる第２のデータ特定情報を用いて、第２の対象データの通信対象である特定のサーバ内の第２の位置情報を、特定のサーバから取得して、第２の位置情報を用いて、第２の要求生成用データを準備してもよい。この構成によると、仲介サーバは、第１及び第２の位置情報を用いて、第１及び第２の要求生成用データを適切に準備し得る。
【００１０】
第１のリクエストは、複数個のデータ特定情報のうち、第１のデータ特定情報のみを含んでいてもよい。第２のリクエストは、複数個のデータ特定情報のうち、第２のデータ特定情報のみを含んでいてもよい。
【００１１】
第１のリクエストは、複数個のデータ特定情報のうちの一部であるＮ１個（Ｎ１は２以上の整数）のデータ特定情報であって、第１のデータ特定情報を含むＮ１個のデータ特定情報を含んでいてもよい。第２のリクエストは、複数個のデータ特定情報のうちの一部であるＮ２個（Ｎ２は２以上の整数）のデータ特定情報であって、第２のデータ特定情報を含むＮ２個のデータ特定情報を含んでいてもよい。
【００１２】
複数個の要求生成用データのそれぞれは、通信装置がＰＯＳＴコマンドの通信要求を生成するのに必要なデータであってもよい。
【００１３】
複数個の対象データのそれぞれは、特定のサーバから通信装置にダウンロードされるべきデータであってもよい。
【００１４】
複数個の対象データのそれぞれは、通信装置から特定のサーバにアップロードされるべきデータであってもよい。
【００１５】
本明細書では、さらに、仲介サーバを介して特定のサーバと通信するための通信装置を開示する。通信装置は、通知送信部と取得部と生成部と対象データ通信部とを備える。通知送信部は、通信装置と特定のサーバとの間で通信されるべき複数個の対象データを特定するための複数個のデータ特定情報を含む１個の通知を、仲介サーバに送信する。仲介サーバは、通信装置から１個の通知を受信する場合に、１個の通知に含まれる複数個のデータ特定情報を用いて、複数個の対象データに対応する複数個の要求生成用データを準備するサーバである。複数個の要求生成用データのそれぞれは、通信装置が、当該１個の要求生成用データに対応する１個の対象データを前記特定のサーバと通信するための１個の通信要求を生成するのに必要なデータである。複数個の要求生成用データのそれぞれは、当該１個の要求生成用データが準備されたタイミングに関係するタイミング情報を含む。取得部は、仲介サーバから、複数個の要求生成用データを取得する。生成部は、複数個の要求生成用データを用いて、複数個の通信要求を生成する。対象データ通信部は、複数個の通信要求を特定のサーバに送信することによって、複数個の対象データを特定のサーバと通信する。取得部は、複数個の対象データのうちの第１の対象データに対応する第１の要求生成用データを、仲介サーバから取得した後に、生成部が、第１の要求生成用データを用いて第１の通信要求を生成して、対象データ通信部が、第１の通信要求を特定のサーバに送信したことを条件として、複数個の対象データのうちの第２の対象データに対応する第２の要求生成用データを、仲介サーバから取得する。
【００１６】
上記の構成によると、通信装置は、適切なタイミングで第２の要求生成用データを取得し得る。この結果、通信装置及び特定のサーバは、複数個の対象データを適切に通信し得る。
【００１７】
なお、上記の仲介サーバを実現するための制御方法、コンピュータプログラム、及び、当該コンピュータプログラムを格納するコンピュータ読取可能記憶媒体も新規で有用である。また、上記の通信装置を実現するための制御方法、コンピュータプログラム、及び、当該コンピュータプログラムを格納するコンピュータ読取可能記憶媒体も新規で有用である。
【図面の簡単な説明】
【００１８】
【図１】通信システムの構成を示す。
【図２】ダウンロード印刷が実行される際に、第１実施例の各デバイスが実行する各処理のシーケンス図を示す。
【図３】スキャンアップロードが実行される際に、第１実施例の各デバイスが実行する各処理のシーケンス図を示す。
【図４】ダウンロード印刷又はスキャンアップロードが実行される際に、比較例の各デバイスが実行する各処理のシーケンス図を示す。
【図５】ダウンロード印刷が実行される際に、第２実施例の各デバイスが実行する各処理のシーケンス図を示す。
【発明を実施するための形態】
【００１９】
（第１実施例）
（システムの構成）
図１に示されるように、通信システム２は、多機能機１０と、仲介サーバ５０と、複数個のサービス提供サーバ１００，１１０と、を備える。多機能機１０は、ＬＡＮ４に接続されている。仲介サーバ５０と複数個のサービス提供サーバ１００，１１０とは、インターネット６に接続されている。
【００２０】
（多機能機１０の構成）
多機能機１０は、印刷機能、スキャン機能、コピー機能、ＦＡＸ機能等の多機能を実行可能である。多機能機１０は、さらに、サービス提供サーバ１００，１１０に保存されている画像データをダウンロードして、当該画像データによって表わされる画像を印刷するダウンロード印刷機能（以下では「ＤＬ印刷機能」と呼ぶ）を実行可能である。また、多機能機１０は、さらに、多機能機１０がスキャンすることによって生成される画像データを、サービス提供サーバ１００，１１０にアップロードするスキャンアップロード機能（以下では「スキャンＵＬ機能」と呼ぶ）を実行可能である。
【００２１】
多機能機１０は、操作部１２と、表示部１４と、ネットワークインターフェイス１６と、印刷実行部１８と、スキャン実行部２０と、制御部３０と、を備える。操作部１２は、複数のキーを備える。ユーザは、操作部１２を操作することによって、様々な指示を多機能機１０に入力することができる。表示部１４は、様々な情報を表示するためのディスプレイである。ネットワークインターフェイス１６は、ＬＡＮ４に接続されている。印刷実行部１８は、インクジェット方式、レーザ方式等の印刷機構である。スキャン実行部２０は、ＣＣＤ、ＣＩＳ等のスキャン機構である。
【００２２】
制御部３０は、ＣＰＵ３２と、メモリ３４と、を備える。ＣＰＵ３２は、メモリ３４に格納されているプログラムに従って、様々な処理を実行する。ＣＰＵ３２が上記のプログラムに従って処理を実行することによって、通知送信部４０、取得部４２、生成部４４、及び、対象データ通信部４６の各機能が実現される。
【００２３】
（仲介サーバ５０の構成）
仲介サーバ５０は、サービス提供サーバ１００，１１０から多機能機１０へのサービスの提供を仲介するためのサーバである。仲介サーバ５０は、多機能機１０のベンダによって提供されるサーバである。仲介サーバ５０は、ネットワークインターフェイス５２と、制御部６０と、を備える。制御部６０は、ＣＰＵ６２と、メモリ６４と、を備える。ＣＰＵ６２は、メモリ６４に格納されているプログラムに従って、様々な処理を実行する。ＣＰＵ６２が上記のプログラムに従って処理を実行することによって、通知受信部７０、準備部７２、及び、供給部７４の各機能が実現される。
【００２４】
（サービス提供サーバ１００，１１０の構成）
各サービス提供サーバ１００，１１０は、例えば、「Ｅｖｅｒｎｏｔｅ（登録商標）」、「Ｇｏｏｇｌｅ（登録商標）  Ｄｏｃｓ」、「ＰＩＣＡＳＡ（登録商標）」、「ＦＡＣＥＢＯＯＫ（登録商標）」等の公知のクラウドサーバである。各サービス提供サーバ１００，１１０は、多機能機１０を含む様々な通信機器にサービスを提供可能である。例えば、各サービス提供サーバ１００，１１０は、多機能機１０がＤＬ印刷機能を実行するために、多機能機１０に画像データを供給する画像供給サービスを実行可能である。また、例えば、各サービス提供サーバ１００，１１０は、多機能機１０がスキャンＵＬ機能を実行するために、多機能機１０から取得される画像データを保存する画像保存サービスを実行可能である。
【００２５】
なお、サービス提供サーバ１００は、第１のサービス事業者（即ち第１の会社）によって提供されるサーバであり、サービス提供サーバ１１０は、第１のサービス事業者とは異なる第２のサービス事業者（即ち第２の会社）によって提供されるサーバである。第１のサービス事業者は、サービス提供サーバ１００からサービスを受けるための第１のＡＰＩ（Application Program Interface）を公開しており、第２のサービス事業者は、サービス提供サーバ１１０からサービスを受けるための第２のＡＰＩを公開している。第１のサービス事業者と第２のサービス事業者とが異なるために、通常、第１のＡＰＩと第２のＡＰＩとは異なる。通信機器は、例えば、サービス提供サーバ１００，１１０の両方からサービスを受けるためには、第１及び第２のＡＰＩの両方に対応している必要がある（即ち、第１のＡＰＩを利用するためのプログラムと、第２のＡＰＩを利用するためのプログラムと、の両方が必要である）。
【００２６】
例えば、多機能機１０が複数個のサービス提供サーバ１００，１１０のそれぞれからサービスを受けるためには、多機能機１０は、複数個のＡＰＩに対応している必要があり、多くのプログラムを格納する必要がある。しかしながら、ＰＣ等と比べると、多機能機１０のメモリ容量は少ない。従って、本実施例では、多機能機１０に多くのプログラムを格納させることなく、多機能機１０が複数個のサービス提供サーバ１００，１１０のそれぞれからサービスを受けることができるように、仲介サーバ５０が設けられている。即ち、仲介サーバ５０は、複数個のサービス提供サーバ１００，１１０のための複数個のＡＰＩに対応している。そして、多機能機１０が、複数個のサービス提供サーバ１００，１１０のうちの特定のサービス提供サーバ（例えばサービス提供サーバ１００）からサービスを受けるべき状況では、仲介サーバ５０は、特定のサービス提供サーバのためのＡＰＩを利用して、特定のサービス提供サーバと後述の様々な通信（例えば、図２のリクエスト２０２，２１０等）を実行する。これにより、多機能機１０は、特定のサービス提供サーバのためのＡＰＩに対応していなくても、特定のサービス提供サーバと画像データの通信を実行することができる。即ち、多機能機１０は、複数個のＡＰＩを利用するための多くのプログラムを格納していなくても、複数個のサービス提供サーバ１００，１１０のそれぞれからサービスを受けることができる。
【００２７】
（多機能機１０のユーザの事前準備）
多機能機１０のユーザ（以下では「特定のユーザ」と呼ぶ）は、多機能機１０が各サービス提供サーバ１００，１１０からサービスを受けるために、以下の事前準備を実行する必要がある。特定のユーザは、例えば、ＰＣ、ＰＤＡ端末（例えばスマートフォン）等を利用して、各サービス提供サーバ１００，１１０にアカウントを作成する。これにより、各サービス提供サーバ１００，１１０は、特定のユーザにアクセストークン（一般的に言うと「認証情報」）を与える。特定のユーザは、各サービス提供サーバ１００，１１０から与えられた各アクセストークンを多機能機１０に登録する。なお、特定のユーザは、ＰＣ、ＰＤＡ端末等を利用して、様々なファイル（例えば画像データ）を各サービス提供サーバ１００，１１０にアップロードすることができる。また、特定のユーザは、ＰＣ、ＰＤＡ端末等を利用して、特定のユーザ自身がアップロードした様々なファイルをダウンロードすることもできる。
【００２８】
（多機能機１０がＤＬ印刷機能を実行するための処理；図２）
続いて、図２を参照して、多機能機１０がＤＬ印刷機能を実行する際に、各デバイス１０，５０，１００が実行する各処理の内容を説明する。図示していないが、特定のユーザは、多機能機１０の操作部１２を操作して、どのサービス提供サーバから画像供給サービスを受けるのかを選択する。本実施例では、特定のユーザによってサービス提供サーバ１００が選択された場合を例として、説明を続ける。
【００２９】
特定のユーザは、さらに、操作部１２を操作して、多機能機１０が実行可能な複数の機能の中から、ＤＬ印刷機能を選択する。この場合、多機能機１０の制御部３０は、仲介サーバ５０に画像ＩＤリクエスト２００を送信する。なお、多機能機１０は、仲介サーバ５０に画像ＩＤリクエスト２００を送信する段階、又は、それより前の段階で、特定のユーザがサービス提供サーバ１００から与えられたアクセストークン（以下では「特定のアクセストークン」と呼ぶ）を、仲介サーバ５０に送信する。
【００３０】
仲介サーバ５０の制御部６０は、多機能機１０から画像ＩＤリクエスト２００を受信すると、画像ＩＤリクエスト２０２をサービス提供サーバ１００に送信する。なお、仲介サーバ５０の制御部６０は、画像ＩＤリクエスト２０２をサービス提供サーバ１００に送信する段階、又は、それより前の段階で、上記の特定のアクセストークンを用いて、サービス提供サーバ１００に認証を実行させる。これにより、サービス提供サーバ１００は、仲介サーバ５０から受信される画像ＩＤリクエスト２０２に応じて、適切なレスポンスを仲介サーバ５０に送信することができる。なお、以下では、特定のアクセストークンを用いた認証についての説明を省略するが、仲介サーバ５０は、必要に応じて（例えば、サービス提供サーバ１００にリクエストを送信する毎に）、特定のアクセストークンを用いた認証を、サービス提供サーバ１００に実行させる。
【００３１】
本実施例では、サービス提供サーバ１００が、特定のユーザのアカウントに対応付けて、Ｌ個（Ｌは２以上の整数）の画像データを保存している状況を想定する。なお、この状況では、サービス提供サーバ１００は、Ｌ個の画像データのそれぞれについて、当該画像データよりもデータサイズが小さいサムネイル画像データも保存している。サービス提供サーバ１００は、仲介サーバ５０から画像ＩＤリクエスト２０２を受信すると、Ｌ個の画像データを識別するためのＬ個の画像ＩＤ（例えば、Ｌ個の画像データのファイル名）を仲介サーバ５０に送信する。
【００３２】
仲介サーバ５０の制御部６０は、サービス提供サーバ１００からＬ個の画像ＩＤを受信すると、Ｌ個の画像ＩＤを多機能機１０に送信する。
【００３３】
なお、図示していないが、多機能機１０の制御部３０は、仲介サーバ５０からＬ個の画像ＩＤを受信すると、Ｌ個の画像データに対応するＬ個のサムネイル画像データをサービス提供サーバ１００から取得して、Ｌ個のサムネイル画像データによって表わされるＬ個のサムネイル画像を、表示部１４に表示させる。これにより、特定のユーザは、操作部１２を操作して、Ｌ個のサムネイル画像の中から、ダウンロード対象の画像に対応するサムネイル画像を選択することができる。
【００３４】
本実施例では、Ｌ個のサムネイル画像の中からＭ１個（Ｍ１はＬ以下であって２以上の整数）のサムネイル画像（即ち複数個のサムネイル画像）が選択される状況を想定する。例えば、特定のユーザは、Ｍ１個のサムネイル画像を指定した後に、ＯＫボタンを操作する。これにより、多機能機１０の制御部３０は、特定のユーザの指示に従って、Ｍ１個のサムネイル画像を選択する。本実施例では、１個のサムネイル画像が選択されて印刷が実行された後に、他の１個のサムネイル画像がさらに選択されて印刷が実行される状況のように、複数個のサムネイル画像が非同時的に選択される状況を想定しているのではなく、複数個（即ちＭ１個）のサムネイル画像が同時的に選択される状況を想定している。なお、Ｍ１個のサムネイル画像が同時的に選択されるということは、Ｍ１個の画像ＩＤが同時的に選択されることに等しい。
【００３５】
なお、本実施例では、多機能機１０にＬ個のサムネイル画像が表示されるが、変形例では、多機能機１０にＬ個のサムネイル画像が表示されずに、Ｌ個の画像ＩＤ（例えば、Ｌ個の画像データのファイル名）が表示されてもよい。そして、特定のユーザは、Ｌ個の画像ＩＤの中から、ダウンロード対象のＭ１個の画像に対応するＭ１個の画像ＩＤを選択してもよい。
【００３６】
多機能機１０の通知送信部４０（図１参照）は、Ｍ１個の画像ＩＤが同時的に選択されると、Ｍ１個の画像ＩＤを含む通知２０４を生成する。なお、一般的に知られている１個の通信データは、通常、１個のヘッダ部と、１個のボディ部と、を含む。通知２０４は、複数個の通信データに含まれる複数個のボディ部に、Ｍ１個の画像ＩＤが分散して記述されたものではなく、１個の通信データに含まれる１個のボディ部に、Ｍ１個の画像ＩＤの全てが記述されたものである。即ち、通知２０４は１個の通知（１個の通信データ）である、と言うことができる。通知送信部４０は、通知２０４を仲介サーバ５０に送信する。
【００３７】
仲介サーバ５０の通知受信部７０（図１参照）は、多機能機１０から通知２０４を受信する。この場合、仲介サーバ５０の準備部７２（図１参照）は、通知２０４に含まれるＭ１個の画像ＩＤが記述されたリスト２０６を生成して、リスト２０６を多機能機１０に送信する。
【００３８】
多機能機１０の取得部４２（図１参照）は、仲介サーバ５０からリスト２０６を受信する。この場合、取得部４２は、リスト２０６に含まれるＭ１個の画像ＩＤの中から１個の画像ＩＤ（以下では「第１の画像ＩＤ」と呼ぶ）を選択する。次いで、取得部４２は、第１の画像ＩＤを含むＵＲＬリクエスト２０８を生成して、ＵＲＬリクエスト２０８を仲介サーバ５０に送信する。即ち、ＵＲＬリクエスト２０８は、Ｍ１個の画像ＩＤのうちの１個の画像ＩＤ（即ち第１の画像ＩＤ）のみを含む。
【００３９】
仲介サーバ５０の準備部７２は、多機能機１０からＵＲＬリクエスト２０８を受信する。この場合、準備部７２は、サービス提供サーバ１００のための第１のＡＰＩに従って、ＵＲＬリクエスト２０８に含まれる第１の画像ＩＤが記述されたＵＲＬリクエスト２１０を生成して、ＵＲＬリクエスト２１０をサービス提供サーバ１００に送信する。
【００４０】
なお、上述したように、図２の例では、通知２０４、リスト２０６、及び、ＵＲＬリクエスト２０８の通信を経て、ＵＲＬリクエスト２１０の通信が実行される。これらの通信は、ＲＥＳＴｆｕｌ（Representational State Transfer ful）に従うために実行される。ただし、変形例では、多機能機１０から仲介サーバ５０に通知２０４が送信された後に、リスト２０６及びＵＲＬリクエスト２０８の通信が実行されなくてもよい。この場合、仲介サーバ５０の準備部７２は、通知２０４に含まれるＭ１個の画像ＩＤの中から第１の画像ＩＤを選択し、次いで、第１の画像ＩＤが記述されたＵＲＬリクエスト２１０を生成して、ＵＲＬリクエスト２１０をサービス提供サーバ１００に送信してもよい。
【００４１】
サービス提供サーバ１００は、ＵＲＬリクエスト２１０を受信すると、ＵＲＬリクエスト２１０に含まれる第１の画像ＩＤに対応する１個の画像データ２１６のサーバ１００内の位置を示す１個のＵＲＬ（即ち、ダウンロード元のＵＲＬ；以下では「第１のＵＲＬ」と呼ぶ）を特定する。次いで、サービス提供サーバ１００は、第１のＵＲＬを仲介サーバ５０に送信する。
【００４２】
仲介サーバ５０の準備部７２は、サービス提供サーバ１００から第１のＵＲＬを受信することによって、第１のＵＲＬを取得する。この場合、準備部７２は、第１のＡＰＩに従って、第１のＵＲＬを含むテンプレート２１２を準備（即ち生成）する。テンプレート２１２は、多機能機１０がＨＴＴＰ（Hyper Text Transfer Protocol）のＰＯＳＴコマンドを生成するのに必要なデータを含む。本実施例では、サービス提供サーバ１００は、サービス（画像供給サービス及び画像保存サービス）を提供するためのトリガとなるコマンドとして、ＰＯＳＴコマンドを採用している。従って、準備部７２は、ＰＯＳＴコマンドのフォーマットを有するテンプレート２１２を準備する。なお、本実施例のＰＯＳＴコマンドには、タイムスタンプが記述される。従って、準備部７２は、第１のＵＲＬのみならず、現在の日時（即ちテンプレート２１２が準備された日時）を示すタイムスタンプを含むテンプレート２１２を準備する。そして、準備部７２は、テンプレート２１２を多機能機１０に送信することによって、テンプレート２１２を多機能機１０に供給する。
【００４３】
上述したように、サービス提供サーバ１００はＰＯＳＴコマンドを採用しているが、どのコマンドを採用するのかはサービス提供サーバに依存する。例えば、サービス提供サーバ１１０は、サービスを提供するためのトリガとなるコマンドとして、ＧＥＴコマンドを採用している。そして、仮に、特定のユーザがサービス提供サーバ１１０からサービスを受けることを望む場合には、準備部７２は、サービス提供サーバ１１０のための第２のＡＰＩに従って、ＧＥＴコマンドのテンプレートを準備する。本実施例のＧＥＴコマンドには、タイムスタンプが記述されない。従って、準備部７２は、ＧＥＴコマンドのテンプレートを準備する際に、タイムスタンプを含まないテンプレートを準備する。このように、準備部７２は、多機能機１０が通信を実行すべきサービス提供サーバに応じて、適切なテンプレートを生成することができる。
【００４４】
多機能機１０の取得部４２は、仲介サーバ５０からテンプレート２１２を受信することによって、仲介サーバ５０からテンプレート２１２を取得する。この場合、多機能機１０の生成部４４（図１参照）は、テンプレート２１２を用いて、ＰＯＳＴコマンド２１４を生成する。具体的に言うと、生成部４４は、テンプレート２１２に記述された各情報（第１のＵＲＬ、タイムスタンプ等）をそのまま利用すると共に、送信元アドレスとして多機能機１０のＩＰアドレスを記述することによって、ＰＯＳＴコマンド２１４を生成する。次いで、多機能機１０の対象データ通信部４６（図１参照）は、仲介サーバ５０を介さずに、ＰＯＳＴコマンド２１４をサービス提供サーバ１００に送信する。
【００４５】
サービス提供サーバ１００は、ＰＯＳＴコマンド２１４を受信すると、まず、ＰＯＳＴコマンド２１４に含まれるタイムスタンプが示す日時と現在日時との差分が、所定時間よりも大きいのか否かを判断する。サービス提供サーバ１００は、差分が所定時間よりも大きい場合には、エラーを示す情報を多機能機１０に送信する。この場合、多機能機１０は、画像データを取得することができない。一方において、サービス提供サーバ１００は、差分が所定時間よりも小さい場合には、ＰＯＳＴコマンド２１４に含まれる第１のＵＲＬ（即ち、ダウンロード元のＵＲＬ）に保存されている画像データ２１６を、仲介サーバ５０を介さずに、多機能機１０に送信する。本実施例では、画像データ２１６が仲介サーバ５０を介さずに通信されるために、特定のユーザのプライベートな画像が仲介サーバ５０を経由するのを防止することができる。
【００４６】
多機能機１０の対象データ通信部４６は、サービス提供サーバ１００から画像データ２１６を受信する。サービス提供サーバ１００から画像データ２１６の全てが受信されると（即ち、画像データ２１６の通信が終了すると）、多機能機１０の制御部３０は、画像データ２１６によって表わされる画像を、印刷実行部１８に印刷させる。これにより、多機能機１０は、サービス提供サーバ１００から画像供給サービスを受けることができ、ＤＬ印刷機能を実行することができる。
【００４７】
画像データ２１６によって表わされる画像の印刷が開始された後（なお、印刷が終了した後でもよいし、印刷が終了する前でもよい）に、多機能機１０の取得部４２は、リスト２０６に含まれるＭ１個の画像ＩＤの中から、第１の画像ＩＤとは異なる１個の画像ＩＤ（以下では「第２の画像ＩＤ」と呼ぶ）を選択する。次いで、取得部４２は、第２の画像ＩＤを含むＵＲＬリクエスト２２８を生成して、ＵＲＬリクエスト２２８を仲介サーバ５０に送信する。即ち、ＵＲＬリクエスト２２８は、Ｍ１個の画像ＩＤのうちの１個の画像ＩＤ（即ち第２の画像ＩＤ）のみを含む。
【００４８】
ＵＲＬリクエスト２２８が送信された後の各デバイス１０，５０，１００の処理は、上記と同様である。即ち、仲介サーバ５０の準備部７２は、第２の画像ＩＤが記述されたＵＲＬリクエスト２３０を生成して、ＵＲＬリクエスト２３０をサービス提供サーバ１００に送信することによって、サービス提供サーバ１００から、第２の画像ＩＤに対応する画像データ２３６のＵＲＬ（以下では「第２のＵＲＬ」と呼ぶ）を受信する。
【００４９】
次いで、仲介サーバ５０の準備部７２は、第１のＡＰＩに従って、第２のＵＲＬを含むテンプレート２３２を準備（即ち生成）する。なお、上記の説明から明らかなように、準備部７２は、多機能機１０がサービス提供サーバ１００にＰＯＳＴコマンド２１４を送信した後、より具体的には、多機能機１０及びサービス提供サーバ１００の間で画像データ２１６の通信が終了した後に、テンプレート２３２を準備する。従って、テンプレート２３２に含まれるタイムスタンプが示す日時は、テンプレート２１２に含まれるタイムスタンプが示す日時よりも後の日時である。次いで、準備部７２は、テンプレート２３２を多機能機１０に供給する。
【００５０】
次いで、多機能機１０の取得部４２は、仲介サーバ５０からテンプレート２３２を取得し、生成部４４は、テンプレート２３２を用いてＰＯＳＴコマンド２３４を生成する。次いで、対象データ通信部４６は、ＰＯＳＴコマンド２３４をサービス提供サーバ１００に送信することによって、サービス提供サーバ１００から画像データ２３６を受信する。この結果、制御部３０は、画像データ２３６によって表わされる画像を、印刷実行部１８に印刷させる。
【００５１】
多機能機１０から仲介サーバ５０へのＵＲＬリクエスト（例えば、ＵＲＬリクエスト２０８，２２８）の通信から、画像データ（上記の例では画像データ２１６，２３６）によって表わされる画像の印刷までの各デバイス１０，５０，１００の処理を、「１セットの処理」と呼ぶ。上述したように、本実施例では、特定のユーザによってＭ１個の画像ＩＤが同時的に選択される。そして、多機能機１０は、１個の画像ＩＤのみを含むＵＲＬリクエスト（例えば、ＵＲＬリクエスト２０８，２２８）を仲介サーバ５０に送信することを繰り返して、画像データを１個ずつダウンロードする。従って、図２の例では、トータルでＭ１セットの処理が実行される。
【００５２】
（多機能機１０がスキャンＵＬ機能を実行するための処理；図３）
続いて、図３を参照して、多機能機１０がスキャンＵＬ機能を実行する際に、各デバイス１０，５０，１００が実行する各処理の内容を説明する。図示していないが、特定のユーザは、多機能機１０の操作部１２を操作して、どのサービス提供サーバから画像保存サービスを受けるのかを選択する。本実施例では、特定のユーザによってサービス提供サーバ１００が選択された場合を例として、説明を続ける。
【００５３】
特定のユーザは、さらに、操作部１２を操作して、多機能機１０が実行可能な複数の機能の中から、スキャンＵＬ機能を選択する。この場合、多機能機１０の制御部３０は、スキャン実行部２０に原稿のスキャンを実行させる。本実施例では、Ｍ２枚（Ｍ２は２以上の整数）の原稿のスキャンが実行されて、Ｍ２個の画像データが生成される状況を想定する。即ち、本実施例では、１枚の原稿のスキャンによって１個の画像データが生成され、当該１個の画像データがサービス提供サーバ１００にアップロードされた後に、他の１枚の原稿のスキャンによって他の１個の画像データが生成される状況のように、複数個の画像データが非同時的に生成される状況を想定しているのではなく、Ｍ２個の画像データが同時的に生成される状況を想定している。
【００５４】
多機能機１０の通知送信部４０は、Ｍ２個の画像データが生成されると、Ｍ２個の画像データに対応するＭ２個の画像ＩＤ（例えば、Ｍ２個の画像データのファイル名）を含む１個の通知３０４を生成して、通知３０４を仲介サーバ５０に送信する。
【００５５】
仲介サーバ５０の通知受信部７０は、多機能機１０から通知３０４を受信する。これ以降の処理は、図２の処理とほぼ同様である。即ち、仲介サーバ５０の準備部７２は、通知３０４に含まれるＭ２個の画像ＩＤが記述されたリスト３０６を生成して、リスト３０６を多機能機１０に送信する。
【００５６】
次いで、多機能機１０の取得部４２は、リスト３０６に含まれるＭ２個の画像ＩＤの中から１個の画像ＩＤ（以下では「第３の画像ＩＤ」と呼ぶ）を選択する。次いで、取得部４２は、第３の画像ＩＤを含むＵＲＬリクエスト３０８を生成して、ＵＲＬリクエスト３０８を仲介サーバ５０に送信する。
【００５７】
次いで、仲介サーバ５０の準備部７２は、第１のＡＰＩに従って、第３の画像ＩＤが記述されたＵＲＬリクエスト３１０を生成して、ＵＲＬリクエスト３１０をサービス提供サーバ１００に送信する。この場合、サービス提供サーバ１００は、ＵＲＬリクエスト３１０に含まれる第３の画像ＩＤに対応する１個の画像データが保存されるべきサーバ１００内の位置を示すＵＲＬ（即ち、アップロード先のＵＲＬ；以下では「第３のＵＲＬ」と呼ぶ）を、仲介サーバ５０に送信する。
【００５８】
次いで、仲介サーバ５０の準備部７２は、第１のＡＰＩに従って、第３のＵＲＬと、タイムスタンプと、を含むＰＯＳＴコマンドのテンプレート３１２を準備（即ち生成）する。そして、供給部７４は、テンプレート３１２を多機能機１０に供給する。
【００５９】
多機能機１０の取得部４２は、仲介サーバ５０からテンプレート３１２を取得し、生成部４４は、テンプレート３１２を用いてＰＯＳＴコマンド３１４を生成する。なお、生成部４４は、第３の画像ＩＤに対応する１個の画像データ（即ち、スキャンによって生成された画像データ）をＰＯＳＴコマンド３１４内に書き込むことによって、ＰＯＳＴコマンド３１４を生成する。次いで、対象データ通信部４６は、ＰＯＳＴコマンド３１４を、仲介サーバ５０を介さずに、サービス提供サーバ１００に送信することによって、画像データをサービス提供サーバ１００に送信する。本実施例では、ＰＯＳＴコマンド３１４が仲介サーバ５０を介さずに通信されるために、特定のユーザのプライベートな画像が仲介サーバ５０を経由するのを防止することができる。
【００６０】
この場合、サービス提供サーバ１００は、第３のＵＲＬ（即ち、アップロード先のＵＲＬ）が示す位置に画像データを保存する。これにより、多機能機１０は、サービス提供サーバ１００から画像保存サービスを受けることができ、スキャンＵＬ機能を実行することができる。なお、サービス提供サーバ１００は、画像データを適切に保存することができた場合には、ＯＫを示す情報を多機能機１０に送信する。
【００６１】
サービス提供サーバ１００からＯＫを示す情報が受信された後（即ち、画像データの通信が終了した後）に、多機能機１０の取得部４２は、リスト３０６に含まれるＭ２個の画像ＩＤの中から、第３の画像ＩＤとは異なる１個の画像ＩＤ（以下では「第４の画像ＩＤ」と呼ぶ）を選択する。次いで、取得部４２は、第４の画像ＩＤを含むＵＲＬリクエスト３２８を生成して、ＵＲＬリクエスト３２８を仲介サーバ５０に送信する。
【００６２】
ＵＲＬリクエスト３２８が送信された後の各デバイス１０，５０，１００の処理は、上記と同様である。即ち、仲介サーバ５０の準備部７２は、第４の画像ＩＤが記述されたＵＲＬリクエスト３３０を生成して、ＵＲＬリクエスト３３０をサービス提供サーバ１００に送信することによって、サービス提供サーバ１００から、第４の画像ＩＤに対応する画像データのＵＲＬ（以下では「第４のＵＲＬ」と呼ぶ）を受信する。
【００６３】
次いで、仲介サーバ５０の準備部７２は、第１のＡＰＩに従って、第４のＵＲＬと、タイムスタンプと、を含むテンプレート３３２を準備（即ち生成）する。なお、上記の説明から明らかなように、準備部７２は、多機能機１０がサービス提供サーバ１００にＰＯＳＴコマンド３１４を送信した後、より具体的には、多機能機１０及びサービス提供サーバ１００の間で第３の画像ＩＤに対応する１個の画像データの通信（ＰＯＳＴコマンド３１４の通信）が終了した後に、テンプレート３３２を準備する。そして、供給部７４は、テンプレート３３２を多機能機１０に供給する。
【００６４】
次いで、多機能機１０の取得部４２は、仲介サーバ５０からテンプレート３３２を取得し、生成部４４は、テンプレート３３２を用いて、第４の画像ＩＤに対応する１個の画像データを含むＰＯＳＴコマンド３３４を生成する。次いで、対象データ通信部４６は、ＰＯＳＴコマンド３３４をサービス提供サーバ１００に送信することによって、画像データをサービス提供サーバ１００に送信する。この結果、サービス提供サーバ１００は、第４のＵＲＬが示す位置に画像データを保存し、ＯＫを示す情報を多機能機１０に送信する。
【００６５】
多機能機１０から仲介サーバ５０へのＵＲＬリクエスト（例えば、ＵＲＬリクエスト３０８，３２８）の通信から、サービス提供サーバ１００から多機能機１０へのＯＫを示す情報の通信までの各デバイス１０，５０，１００の処理を、「１セットの処理」と呼ぶ。上述したように、本実施例では、Ｍ２個の画像データが同時的に生成される。そして、多機能機１０は、１個の画像ＩＤのみを含むＵＲＬリクエスト（例えば、ＵＲＬリクエスト３０８，３２８）を仲介サーバ５０に送信することを繰り返して、画像データを１個ずつアップロードする。従って、図３の例では、トータルでＭ２セットの処理が実行される。
【００６６】
（本実施例の効果）
図４の比較例では、仲介サーバは、多機能機からＭ３個（Ｍ３は２以上の整数）の画像ＩＤを含む１個の通知を受信すると、Ｍ３個の画像ＩＤを含むＵＲＬリクエストをサービス提供サーバに送信することによって、サービス提供サーバからＭ３個のＵＲＬ（ダウンロード元のＵＲＬ又はアップロード先のＵＲＬ）を受信する。
【００６７】
次いで、仲介サーバは、Ｍ３個のＵＲＬを用いてＭ３個のテンプレートを準備して、Ｍ３個のテンプレートを多機能機に供給する。この場合、多機能機は、Ｍ３個のテンプレートを順次用いて、Ｍ３個のＰＯＳＴコマンドを順次生成して、Ｍ３個のＰＯＳＴコマンドをサービス提供サーバに順次送信する。ただし、比較例では、Ｍ３個のテンプレートがほぼ同時に準備されるために、各テンプレートに含まれるタイムスタンプは、ほぼ同じ日時を示す。そして、Ｍ３個のテンプレートのうち、多機能機１０において比較的に後で用いられるテンプレートについては、当該テンプレートが準備されたタイミングと、当該テンプレートを用いて生成されたＰＯＳＴコマンドが送信されるタイミングと、の間に、大きな時間差が発生し得る。このために、サービス提供サーバは、Ｍ３個のＰＯＳＴコマンドのうち、比較的に後に送信されるＰＯＳＴコマンドを受信すると、当該ＰＯＳＴコマンドに含まれるタイムスタンプが示す日時と現在日時との差分が、所定時間よりも大きいと判断し得る。この場合、サービス提供サーバは、タイムスタンプが無効であると判断して、エラーを示す情報を多機能機１０に送信する。即ち、多機能機は、画像データのダウンロード又はアップロードを実行することができない。この事象は、特に、Ｍ３の値が大きくなる程、発生し易くなる。
【００６８】
これに対し、本実施例では、図２及び図３に示されるように、多機能機１０が、テンプレート２１２（又は３１２）を用いてＰＯＳＴコマンド２１４（又は３１４）を生成して、ＰＯＳＴコマンド２１４（又は３１４）をサービス提供サーバ１００に送信した後に、仲介サーバ５０は、テンプレート２３２（又は３３２）を準備する。従って、テンプレート２３２（又は３３２）が準備されたタイミングと、テンプレート２３２（又は３３２）を用いて生成されたＰＯＳＴコマンド２３４（又は３３４）が送信されるタイミングと、の間に、大きな時間差が発生するのを抑制することができる。このために、サービス提供サーバ１００によってタイムスタンプが無効であると判断される事象が発生するのを抑制することができる、即ち、仲介サーバ５０が適切なタイミングでテンプレート２３２（又は３３２）を準備することができ、この結果、テンプレート２３２（又は３３２）が、サービス提供サーバ１００で無効と判断され難い適切なタイムスタンプを含む。このために、多機能機１０及びサービス提供サーバ１００は、複数個の画像データの通信（ダウンロード又はアップロード）を適切に実行することができる。
【００６９】
（対応関係）
多機能機１０、サービス提供サーバ１００が、それぞれ、「通信装置」、「特定のサーバ」の一例である。Ｍ１個の画像ＩＤ（又はＭ２個の画像ＩＤ）が、「複数個のデータ特定情報」の一例である。Ｍ１個の画像データ（又はＭ２個の画像データ）が、「複数個の対象データ」の一例である。テンプレート２１２，２３２（又はテンプレート３１２，３３２）が、「複数個の要求生成用データ」の一例である。また、ＰＯＳＴコマンド２１４，２３４（又はＰＯＳＴコマンド３１４，３３４）が、「通信要求」の一例である。
【００７０】
例えば、第１の画像ＩＤ、ＵＲＬリクエスト２０８、第１のＵＲＬ、画像データ２１６、テンプレート２１２、ＰＯＳＴコマンド２１４が、それぞれ、「第１のデータ特定情報」、「第１のリクエスト」、「第１の位置情報」、「第１の対象データ」、「第１の要求生成用データ」、「第１の通信要求」の一例である。また、第２の画像ＩＤ、ＵＲＬリクエスト２２８、第２のＵＲＬ、画像データ２３６、テンプレート２３２が、それぞれ、「第２のデータ特定情報」、「第２のリクエスト」、「第２の位置情報」、「第２の対象データ」、「第２の要求生成用データ」の一例である。
【００７１】
（第２実施例）
図５を参照して、第２実施例の多機能機１０がＤＬ印刷機能を実行するための処理を説明する。通知４０４及びリスト４０６の通信は、図２の通知２０４及びリスト２０６の通信と同様である。多機能機１０の取得部４２は、リスト４０６に含まれるＭ１個の画像ＩＤの一部であるＮ個（Ｎは２以上Ｍ１未満の整数）の画像ＩＤを選択して、Ｎ個の画像ＩＤを含むＵＲＬリクエスト４０８を仲介サーバ５０に送信する。
【００７２】
次いで、仲介サーバ５０の準備部７２は、Ｎ個の画像ＩＤが記述されたＵＲＬリクエスト４１０を生成して、ＵＲＬリクエスト４１０をサービス提供サーバ１００に送信することによって、サービス提供サーバ１００から、Ｎ個の画像ＩＤに対応するＮ個の画像データ４１６−１，４１６−２のＵＲＬを受信する。次いで、準備部７２は、第１のＡＰＩに従って、Ｎ個のＵＲＬを用いて、Ｎ個のテンプレート４１２を準備（即ち生成）する。なお、Ｎ個のテンプレート４１２に含まれる各タイムスタンプが示す日時は、ほぼ同じである。準備部７２は、Ｎ個のテンプレート４１２を多機能機１０に供給する。
【００７３】
多機能機１０の取得部４２は、仲介サーバ５０からＮ個のテンプレート４１２を取得し、生成部４４は、Ｎ個のテンプレート４１２のうちの１個のテンプレートを用いて、ＰＯＳＴコマンド４１４−１を生成する。そして、対象データ通信部４６は、ＰＯＳＴコマンド４１４−１をサービス提供サーバ１００に送信することによって、サービス提供サーバ１００から画像データ４１６−１を受信する。この結果、制御部３０は、画像データ４１６−１によって表わされる画像を、印刷実行部１８に印刷させる。
【００７４】
続いて、生成部４４は、Ｎ個のテンプレート４１２のうちの他の１個のテンプレートを用いて、ＰＯＳＴコマンド４１４−２を生成する。そして、対象データ通信部４６は、ＰＯＳＴコマンド４１４−２をサービス提供サーバ１００に送信することによって、サービス提供サーバ１００から画像データ４１６−２を受信する。この結果、制御部３０は、画像データ４１６−１によって表わされる画像を、印刷実行部１８に印刷させる。この処理が、Ｎ回繰り返される。即ち、多機能機１０は、サービス提供サーバ１００からＮ個の画像データをダウンロードして、Ｎ個の画像の印刷を実行する。
【００７５】
多機能機１０から仲介サーバ５０へのＵＲＬリクエスト（例えば、ＵＲＬリクエスト４０８）の通信から、Ｎ個の画像の印刷までの各デバイス１０，５０，１００の処理を、「１セットの処理」と呼ぶ。多機能機１０の取得部４２は、１セット目の処理が終了すると、リスト４０６に含まれるＭ１個の画像ＩＤの一部である他のＮ個の画像ＩＤ（即ち、１セット目で選択されたＮ個の画像ＩＤとは異なるＮ個の画像ＩＤ）を選択して、Ｎ個の画像ＩＤを含むＵＲＬリクエストを仲介サーバ５０に送信する。これにより、２セット目の処理が実行される。上述したように、本実施例では、特定のユーザによってＭ２個の画像ＩＤが同時的に選択される。そして、多機能機１０から仲介サーバ５０へのＵＲＬリクエスト（例えば、ＵＲＬリクエスト４０８）は、Ｎ個の画像ＩＤを含む。従って、図５の例では、トータルでＭ１／Ｎセットの処理が実行される。
【００７６】
なお、多機能機１０がスキャンＵＬ機能を実行するための処理は、図５の例と同様に実行される。例えば、多機能機１０がスキャンを実行することによってＭ２個の画像データが同時的に生成される場合に、多機能機１０は、Ｍ２個の画像ＩＤの一部であるＮ個の画像ＩＤを選択して、Ｎ個の画像ＩＤを含むＵＲＬリクエストを仲介サーバ５０に送信する。この結果、多機能機１０は、１セット目の処理において、Ｎ個の画像データをサービス提供サーバ１００にアップロードすることができる。その後、多機能機１０は、Ｍ２個の画像ＩＤの一部である他のＮ個の画像ＩＤを選択して、Ｎ個の画像ＩＤを含むＵＲＬリクエストを仲介サーバ５０に送信する。この結果、多機能機１０は、２セット目の処理において、Ｎ個の画像データをサービス提供サーバ１００にアップロードすることができる。
【００７７】
（本実施例の効果）
本実施例では、図５に示されるように、１セット目の処理において、多機能機１０が、Ｎ個のテンプレート４１２を用いてＮ個のＰＯＳＴコマンド４１４−１，４１４−２を生成して、Ｎ個のＰＯＳＴコマンド４１４−１，４１４−２をサービス提供サーバ１００に送信した後に、２セット目の処理において、仲介サーバ５０は、次のＮ個のテンプレートを準備する。従って、２セット目の処理でテンプレートが準備されたタイミングと、当該テンプレートを用いて生成されたＰＯＳＴコマンドが送信されるタイミングと、の間に、大きな時間差が発生するのを抑制することができる。このために、サービス提供サーバ１００によってタイムスタンプが無効であると判断される事象が発生するのを抑制することができる。従って、多機能機１０及びサービス提供サーバ１００は、複数個の画像データの通信（ダウンロード又はアップロード）を適切に実行することができる。
【００７８】
（対応関係）
１セット目の処理で送信されるＵＲＬリクエスト４０８（以下では「１セット目のＵＲＬリクエスト」と呼ぶ）に含まれるＮ個の画像ＩＤが、「Ｎ１個のデータ特定情報」の一例である。そして、２セット目の処理で送信されるＵＲＬリクエスト（以下では「２セット目のＵＲＬリクエスト」と呼ぶ）に含まれるＮ個の画像ＩＤが、「Ｎ２個のデータ特定情報」の一例である。なお、上記の実施例では、１セット目のＵＲＬリクエストに含まれる画像ＩＤの数（Ｎ個）と、２セット目のＵＲＬリクエストに含まれる画像ＩＤの数（Ｎ個）と、が同じである。ただし、変形例では、前者の画像ＩＤの数と、後者の画像ＩＤの数と、が異なってもよい。
【００７９】
また、１セット目のＵＲＬリクエスト、２セット目のＵＲＬリクエストが、それぞれ、「第１のリクエスト」、「第２のリクエスト」の一例である。また、１セット目のＵＲＬリクエストに含まれるＮ個の画像ＩＤのうちの１個の画像ＩＤ、２セット目のＵＲＬリクエストに含まれるＮ個の画像ＩＤのうちの１個の画像ＩＤが、それぞれ、「第１のデータ特定情報」、「第２のデータ特定情報」の一例である。
【００８０】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。例えば、以下の変形例が含まれる。
【００８１】
（１）「通信装置」は、多機能機１０に限られず、他の種類の通信装置（例えば、ＰＣ、サーバ、ＰＤＡ、携帯端末、プリンタ、スキャナ、電話機、ＦＡＸ装置、コピー機等）であってもよい。また、「特定のサーバ」は、クラウドサービスを提供するサービス提供サーバ１００に限られず、「通信装置」とデータの通信を実行する他の種類のサーバ（例えば、画像データに対して画像処理を実行するサーバ）であってもよい。また、「対象データ」は、画像データに限られず、他の種類のデータ（例えば、ワープロソフトによって生成されるデータであってもよいし、表計算ソフトによって生成されるデータ）であってもよい。
【００８２】
（２）上記の各実施例では、例えば図２に示されるように、仲介サーバ５０の準備部７２は、多機能機１０がＰＯＳＴコマンド２１４をサービス提供サーバ１００に送信することによって、多機能機１０とサービス提供サーバ１００との間で画像データ２１６の通信が終了したことを条件として、テンプレート２３２を準備する。これに代えて、準備部７２は、多機能機１０がＰＯＳＴコマンド２１４をサービス提供サーバ１００に送信した後であって、画像データ２１６の通信が終了する前に、テンプレート２３２を準備してもよい。本変形例を実現するためには、例えば、多機能機１０の取得部４２は、サービス提供サーバ１００から画像データ２１６をダウンロードしている間に、ＵＲＬリクエスト２２８を多機能機１０に送信すればよい。一般的に言うと、仲介サーバ５０の準備部７２は、通信装置が第１の通信要求を特定のサーバに送信したことを条件として、第２の要求生成用データを準備すればよい。また、多機能機１０の取得部４２は、第１の通信要求を特定のサーバに送信したことを条件として、第２の要求生成用データを仲介サーバから取得すればよい。
【００８３】
（３）上記の各実施例では、仲介サーバ５０の準備部７２は、多機能機１０がＰＯＳＴコマンドを生成するために必要なテンプレート（例えば図２のテンプレート２１２）を準備する。しかしながら、準備部７２は、多機能機１０が他の種類のコマンド（例えばＧＥＴコマンド）を生成するために必要なテンプレートを準備してもよい。一般的に言うと、仲介サーバ５０の準備部７２は、タイミング情報を含む要求生成用データを準備すればよい。また、多機能機１０の生成部４４は、要求生成用データを用いて、通信要求を生成すればよい。
【００８４】
（４）上記の各実施例では、テンプレートは、当該テンプレートが準備された日時を示すタイムスタンプを含む。これに代えて、テンプレートは、当該テンプレートが準備された日のみを示すタイムスタンプを含んでいてもよいし、当該テンプレートが準備された時刻のみを示すタイムスタンプを含んでいてもよい。また、テンプレートは、当該テンプレートが準備された日時に予め決められた時間が加えられた日時（即ち、テンプレートの有効期限を示す日時）を示すタイムスタンプを含んでいてもよい。なお、「タイミング情報」は、タイムスタンプという称呼を有する情報に限られず、他の称呼を有する情報であってもよい。一般的に言うと、「タイミング情報」は、要求生成用データが準備されたタイミングに関係する情報であればよい。
【００８５】
（５）上記の第２実施例では、仲介サーバ５０の準備部７２は、Ｎ個のテンプレート４１２を準備する。これに代えて、仲介サーバ５０の準備部７２は、１個のテンプレートと、当該テンプレートに書き込まれるべきＮ個の情報（ここでのＮ個の情報は、例えば、Ｎ個のＵＲＬと１個のタイムスタンプとを含む）と、を生成してもよい。この場合、多機能機１０の生成部４４は、上記の１個のテンプレートに上記のＮ個の情報のうちの１個の情報を書き込むことによって、ＰＯＳＴコマンド４１４−１を生成し、上記の１個のテンプレートに上記のＮ個の情報のうちの他の１個の情報を書き込むことによって、ＰＯＳＴコマンド４１４−２を生成してもよい。本変形例では、上記のＮ個の情報が、「Ｎ１個（又はＮ２個）の要求生成用データ」の一例である。
【００８６】
（６）上記の各実施例では、多機能機１０及び仲介サーバ５０のＣＰＵ３２，６２がソフトウェアに従って処理を実行することによって、各部４０〜４６，７０〜７４の機能が実現される。これに代えて、各部４０〜４６，７０〜７４の機能のうちの少なくとも一部は、論理回路等のハードウェアによって実現されてもよい。
【符号の説明】
【００８７】
２：通信システム、１０：多機能機、５０：仲介サーバ、１００，１１０：サービス提供サーバ、２０４：通知、２０６：リスト、２０８，２１０，２２８，２３０：ＵＲＬリクエスト、２１２，２３２：テンプレート、２１４，２３４：ＰＯＳＴコマンド、２１６，２３６：画像データ
【図１】
0005891740.tif 000002
【図２】
0005891740.tif 000003
【図３】
0005891740.tif 000004
【図４】
0005891740.tif 000005
【図５】
0005891740.tif 000006