(57)【要約】【課題】  画像処理装置から記憶装置に格納される画像データファイルに、適切な文字列を関連付けて格納し得る技術を提供する。【解決手段】  仲介サーバ１０は、ＭＦＰ１００から、時刻情報を受信し（Ｓ１４でＹＥＳ）、受信された時刻情報によって示される時刻を表す時刻文字列を含むファイル名を決定する（Ｓ２４）。次いで、仲介サーバ１０は、ＭＦＰ１００に接続されるサービス提供サーバ３００に、スキャンデータファイルとファイル名とを関連付けて格納させるために、ファイル名を、ＭＦＰ１００に送信する。【選択図】  図３
2014167768.tif 000002
【特許請求の範囲】
【請求項１】
画像処理装置と接続される通信装置であって、
前記画像処理装置から、前記画像処理装置によって計時される時刻を示す時刻情報を受信する受信部と、
前記時刻情報によって示される前記時刻を表す時刻文字列を含む第１の文字列を決定する決定部と、
前記画像処理装置が、前記画像処理装置に接続される記憶装置に、第１の画像データファイルと前記第１の文字列とを関連付けて格納させるために、前記第１の文字列に関する文字列を、前記画像処理装置に送信する送信部と、を備える通信装置。
【請求項２】
前記時刻情報は、前記画像処理装置が、前記第１の画像データファイルを、前記記憶装置に格納するための指示が、前記画像処理装置によって検出される際の時刻を示す、請求項１に記載の通信装置。
【請求項３】
前記決定部は、前記時刻文字列を含む第２の文字列を、さらに決定し、
前記送信部は、前記画像処理装置が、前記記憶装置に、前記第１の画像データファイルと異なる第２の画像データファイルと、前記第２の文字列とを関連付けて格納させるために、前記第２の文字列に関する文字列を、前記画像処理装置に送信する、請求項１又は２に記載の通信装置。
【請求項４】
前記決定部は、
前記時刻文字列と、第１の付加文字列とを含む前記第１の文字列を決定し、
前記時刻文字列と、前記第１の付加文字列と異なる第２の付加文字列とを含む前記第２の文字列を決定する、請求項３に記載の通信装置。
【請求項５】
前記通信装置は、
前記時刻情報を、前記通信装置の一時格納部に一時的に格納させる格納制御部を、さらに備え、
前記格納制御部は、前記決定部が、前記第１の文字列と前記第２の文字列を含む複数個の文字列であって、それぞれが前記時刻文字列を含む前記複数個の文字列を決定すべき場合に、前記決定部が、前記複数個の文字列を決定した後に、前記時刻情報を、前記一時格納部から消去し、
前記送信部は、前記画像処理装置が、前記記憶装置に、前記第１の画像データファイルと前記第２の画像データファイルとを含む複数個の画像データファイルのそれぞれについて、当該画像データファイルと、前記複数個の文字列のうちのいずれかの文字列とを関連付けて格納させるために、前記複数個の文字列のそれぞれに関する文字列を、前記画像処理装置に送信する、請求項３又は４に記載の通信装置。
【請求項６】
前記決定部は、前記第１の文字列を、前記第１の画像データファイルのファイル名として決定し、
前記送信部は、前記画像処理装置が、前記第１の文字列を、前記ファイル名として、前記記憶装置に格納させるために、前記第１の文字列を、前記画像処理装置に送信する、請求項１から５のいずれか一項に記載の通信装置。
【請求項７】
前記決定部は、前記第１の文字列を、前記第１の画像データファイルが前記記憶装置において格納されるフォルダのフォルダ名として決定し、
送信部は、前記画像処理装置が、前記第１の文字列を、前記フォルダ名として、前記記憶装置に格納させるために、前記第１の文字列に関する前記文字列を、前記画像処理装置に送信する、請求項１から５のいずれか一項に記載の通信装置。
【請求項８】
前記通信装置は、
前記第１の画像データファイルに予め付与されているファイル名を示すファイル名情報を、前記画像処理装置から受信するファイル名受信部を、さらに備え、
前記決定部は、前記ファイル名情報が受信される場合に、前記時刻文字列と、前記ファイル名情報によって示される前記ファイル名を表す文字列と、を含む前記第１の文字列を決定する、請求項１から７に記載の通信装置。
【請求項９】
画像処理装置と接続される通信装置のためのコンピュータプログラムであって、
前記コンピュータプログラムは、前記通信装置に搭載されているコンピュータに、以下の処理、即ち、
前記画像処理装置から、前記画像処理装置によって計時される時刻を示す時刻情報を受信する受信処理と、
前記時刻情報によって示される前記時刻を表す時刻文字列を含む第１の文字列を決定する決定処理と、
前記画像処理装置が、前記画像処理装置に接続される記憶装置に、第１の画像データファイルと前記第１の文字列とを関連付けて格納させるために、前記第１の文字列に関する文字列を、前記画像処理装置に送信する送信処理と、を実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書では、画像処理装置と接続される通信装置を開示する。
【背景技術】
【０００２】
例えば、特許文献１には、画像処理装置からサーバに、データをアップロードする技術が開示されている。サーバにアップロードされるデータには、画像処理装置によって作成された文字列「ＩｍａｇｅＳｃａｎｎｅｒ−０２−０２−２２−０．ｊｐｇ」がファイル名として付与される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−２６９２５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本明細書では、画像処理装置から記憶装置に格納される画像データファイルに、適切な文字列を関連付けて格納し得る技術を提供する。
【課題を解決するための手段】
【０００５】
本明細書では、画像処理装置と接続される通信装置が開示される。通信装置は、受信部と、決定部と、送信部と、を備える。受信部は、画像処理装置から、画像処理装置によって計時される時刻を示す時刻情報を受信する。決定部は、時刻情報によって示される時刻を表す時刻文字列を含む第１の文字列を決定する。画像処理装置が、画像処理装置に接続される記憶装置に、第１の画像データファイルと第１の文字列とを関連付けて格納させるために、第１の文字列に関する文字列を、画像処理装置に送信する。
【０００６】
この構成では、画像処理装置は、通信装置から文字列を受信することによって、画像処理装置が計時した時刻を表す時刻文字列と画像データファイルと、を関連付けて、記憶装置に格納させることができる。従って、この構成によれば、画像処理装置から記憶装置に格納される画像データファイルに、画像処理装置が計時した時刻に関連した適切な文字列を関連付けて格納し得る。
【０００７】
なお、上記の通信装置を実現するための制御方法、コンピュータプログラム、及び、当該コンピュータプログラムを格納するコンピュータ読取可能記憶媒体も新規で有用である。また、上記の通信装置と画像処理装置とを含む通信システムも新規で有用である。
【図面の簡単な説明】
【０００８】
【図１】通信システムの構成を示す。
【図２】第１実施例の仲介サーバが実行するアップロード仲介処理のフローチャートを示す。
【図３】スキャンデータファイルがアップロードされる際に、第１実施例の各デバイスが実行する各処理のシーケンス図を示す。
【図４】アップロードの結果が成功である場合の第１の実施例の各デバイスが実行する各処理のシーケンス図を示す。
【図５】外部メモリに格納されているデータファイルのアップロードが実行される際に、第１実施例の各デバイスが実行する各処理のシーケンス図を示す。
【図６】第２実施例の仲介サーバが実行するアップロード仲介処理のフローチャートを示す。
【図７】データファイルのアップロードが実行される際に、第２実施例の各デバイスが実行する各処理のシーケンス図を示す。
【発明を実施するための形態】
【０００９】
（第１実施例）
（通信システムの構成）
図１に示されるように、通信システム２は、仲介サーバ１０と、複数個のＭＦＰ（多機能機：Multi-Function Peripheralの略）１００，２００と、複数個のサービス提供サーバ３００，３１０と、を備える。仲介サーバ１０とＭＦＰ１００，２００と複数個のサービス提供サーバ３００，３１０とは、それぞれインターネット４に接続されている。
【００１０】
（仲介サーバ１０の構成）
仲介サーバ１０は、ＭＦＰ１００，２００からサービス提供サーバ３００，３１０へのデータファイルのアップロード及びサービス提供サーバ３００，３１０からＭＦＰ１００，２００へのデータファイルのダウンロードを仲介するためのサーバである。仲介サーバ１０は、ＭＦＰ１００，２００のベンダによって提供されるサーバである。仲介サーバ１０は、ネットワークインターフェイス１２と、制御部２０と、を備える。ネットワークインターフェイス１２は、インターネット４に接続される。制御部２０は、ＣＰＵ２２と、メモリ３０と、を備える。ＣＰＵ２２は、メモリ３０に格納されているプログラム２６に従って、様々な処理を実行する。
【００１１】
メモリ３０は、アップロード管理データベース３２を格納している。アップロード管理データベース３２は、ＭＦＰ１００，２００がサービス提供サーバ３００，３１０に、データファイルのアップロードを実行する際に、仲介サーバ１０が、アップロードを管理するために利用される。アップロード管理データベース３２には、アップロード識別情報とカウント値との組合せが格納される。
【００１２】
（ＭＦＰ１００の構成）
ＭＦＰ１００は、印刷機能、スキャン機能、コピー機能、ＦＡＸ機能等の多機能を実行可能である。ＭＦＰ１００は、ＭＦＰ１００がスキャンすることによって生成されるスキャンデータファイル（例えばＪＰＥＧ（Joint Photographic Experts Groupの略）形式のデータファイル）を、サービス提供サーバ３００，３１０にアップロードするスキャンアップロード機能を実行可能である。また、ＭＦＰ１００は、例えばＵＳＢメモリ、ＣＤ−ＲＯＭ等の外部メモリに格納されているデータファイル（例えば、デジタルカメラ等で撮像された写真を表すデータファイル）を、サービス提供サーバ３００，３１０にアップロードするメモリアップロード機能を実行可能である。以下では、スキャンアップロード機能とメモリアップロード機能とを合わせて「ＵＬ機能」と呼ぶ。また、スキャンアップロード機能をスキャンＵＬ機能と呼び、メモリアップロード機能をメモリＵＬ機能と呼ぶ。ＭＦＰ１００は、さらに、サービス提供サーバ３００に保存されている画像データをダウンロードして、当該画像データによって表わされる画像を印刷するダウンロード印刷機能を実行可能である。
【００１３】
ＭＦＰ１００は、ネットワークインターフェイス１０２と、スキャン実行部１０４と、データ読取部１０６と、操作部１０８と、表示部１１０と、印刷実行部１１２と、制御部１２０と、を備える。ユーザは、複数のキーを備える操作部１０８を操作することによって、様々な指示をＭＦＰ１００に入力することができる。表示部１１０は、様々な情報を表示するためのディスプレイである。ネットワークインターフェイス１０２は、ＬＡＮ６に接続されている。ＭＦＰ１００は、ＬＡＮ６を介して、インターネット４に接続される。印刷実行部１１２は、インクジェット方式、レーザ方式等の印刷機構である。スキャン実行部１０４は、ＣＣＤ、ＣＩＳ等のスキャン機構である。データ読取部１０６は、データ読取部１０６にセットされたＵＳＢメモリ、ＣＤ−ＲＯＭ等の外部メモリに格納されているデータファイルを読み取る。ＭＦＰ１００には、ＭＡＣアドレス「Ｍ１００」が付与されている。制御部１２０は、ＣＰＵ１２２と、メモリ１２４と、を備える。
【００１４】
ＣＰＵ１２２は、メモリ１２４に格納されているプログラム１２６に従って、様々な処理を実行する。プログラム１２６は、ウェブブラウザプログラムを含む。ＣＰＵ１２２は、時刻を計時している。ＣＰＵ１２２は、ＭＦＰ１００が設置されている地域の時刻を計時する。
【００１５】
なお、ＭＦＰ２００は、ＭＦＰ１００と同様の構成を有する。ＭＦＰ２００には、ＭＡＣアドレス「Ｍ２００」が付与されている。
【００１６】
（サービス提供サーバ３００等の構成）
複数個のサービス提供サーバ３００等は、例えば、「Ｅｖｅｒｎｏｔｅ（登録商標）」、「Ｇｏｏｇｌｅ（登録商標）  Ｄｏｃｓ」、「ＰＩＣＡＳＡ（登録商標）」、「ＦＡＣＥＢＯＯＫ（登録商標）」等の公知のクラウドサーバである。複数個のサービス提供サーバ３００等のそれぞれは、ＭＦＰ１００，２００を含む様々な通信機器にサービスを提供可能である。例えば、サービス提供サーバ３００は、ＭＦＰ１００がダウンロード印刷機能を実行するために、ＭＦＰ１００に画像データファイルを供給する画像供給サービスを実行可能である。また、例えば、サービス提供サーバ３００は、ＭＦＰ１００がＵＬ機能を実行するために、ＭＦＰ１００から取得される画像データファイルを保存する画像保存サービスを実行可能である。
【００１７】
各サービス提供サーバ３００，３１０には、データファイルを格納する１個以上のフォルダが格納されている。各フォルダには、固有のフォルダ名とフォルダＩＤとが付与されている。
【００１８】
なお、サービス提供サーバ３００は、第１のサービス事業者（即ち第１の会社）によって提供されるサーバである。サービス提供サーバ３１０は、第１のサービス事業者とは異なる第２のサービス事業者（即ち第２の会社）によって提供されるサーバである。第１のサービス事業者は、サービス提供サーバ３００からサービスを受けるための第１のＡＰＩ（Application Program Interface）を公開しており、第２のサービス事業者は、サービス提供サーバ３１０からサービスを受けるための第２のＡＰＩを公開している。第１のサービス事業者と第２のサービス事業者とが異なるために、通常、第１のＡＰＩと第２のＡＰＩとは異なる。通信機器は、例えば、サービス提供サーバ３００，３１０の両方からサービスを受けるためには、第１及び第２のＡＰＩの両方に対応している必要がある（即ち、第１のＡＰＩを利用するためのプログラムと、第２のＡＰＩを利用するためのプログラムと、の両方が必要である）。
【００１９】
例えば、ＭＦＰ１００が複数個のサービス提供サーバ３００，３１０のそれぞれからサービスを受けるためには、ＭＦＰ１００は、複数個のＡＰＩに対応している必要があり、多くのプログラムを格納する必要がある。しかしながら、ＰＣ等と比べると、ＭＦＰ１００のメモリ容量は少ない。従って、本実施例では、ＭＦＰ１００に多くのプログラムを格納させることなく、ＭＦＰ１００が複数個のサービス提供サーバ３００，３１０のそれぞれからサービスを受けることができるように、仲介サーバ１０が設けられている。即ち、仲介サーバ１０は、複数個のサービス提供サーバ３００，３１０のための複数個のＡＰＩに対応している。そして、ＭＦＰ１００が、複数個のサービス提供サーバ３００，３１０のうちの特定のサービス提供サーバ（例えばサービス提供サーバ３００）からサービスを受けるために、仲介サーバ１０は、特定のサービス提供サーバのためのＡＰＩを利用して、特定のサービス提供サーバと後述の様々な通信を実行する。これにより、ＭＦＰ１００は、特定のサービス提供サーバのためのＡＰＩに対応していなくても、特定のサービス提供サーバと画像データの通信を実行することができる。即ち、ＭＦＰ１００は、複数個のＡＰＩを利用するための多くのプログラムを格納していなくても、複数個のサービス提供サーバ３００，３１０のそれぞれからサービスを受けることができる。
【００２０】
（ＭＦＰ１００のユーザの事前準備）
ＭＦＰ１００のユーザ（以下では「特定のユーザ」と呼ぶ）は、ＭＦＰ１００が各サービス提供サーバ３００，３１０からサービスを受けるために、以下の事前準備を実行する必要がある。特定のユーザは、例えば、ＰＣ、ＰＤＡ端末（例えばスマートフォン）等を利用して、各サービス提供サーバ３００，３１０にアカウントを作成する。これにより、各サービス提供サーバ３００，３１０は、特定のユーザにアクセストークン（一般的に言うと「認証情報」）を与える。特定のユーザは、各サービス提供サーバ３００，３１０から与えられた各アクセストークンと、各サービス提供サーバ３００，３１０の識別情報（例えばサービス提供サーバ名）とを関連付けて、ＭＦＰ１００に登録する。なお、特定のユーザは、ＰＣ、ＰＤＡ端末等を利用して、様々なデータファイル（例えば画像データファイル）を各サービス提供サーバ３００，３１０にアップロードすることができる。また、特定のユーザは、ＰＣ、ＰＤＡ端末等を利用して、特定のユーザ自身がアップロードした様々なデータファイルをダウンロードすることもできる。
【００２１】
（ＵＬ機能が実行される際の仲介サーバ１０が実行するアップロード仲介処理；図２）
続いて、図２を参照して、ＭＦＰ１００がＵＬ機能を実行する際に、仲介サーバ１０が実行するアップロード仲介処理の内容を説明する。アップロード仲介処理は、仲介サーバ１０が、インターネット４を介して、ＭＦＰ１００，２００等の通信機器から複数の要求及びアップロード結果のいずれかの情報を受信すると開始される。以下では、ＭＦＰ１００が、仲介サーバ１０に情報を送信する場合を例にして説明を続ける。特定のユーザは、表示部１１０に表示された選択画面に従って、ＭＦＰ１００の操作部１０８を操作して、どのサービス提供サーバにデータファイルをアップロードするのかを選択する。本実施例では、特定のユーザによってサービス提供サーバ３００が選択された場合を例として、説明を続ける。
【００２２】
特定のユーザは、さらに、操作部１０８を操作して、ＭＦＰ１００が実行可能な複数の機能の中から、スキャンＵＬ機能又はメモリＵＬ機能（以下では、スキャンＵＬ機能とメモリＵＬ機能とを総称して、「ＵＬ機能」と言う）を選択する。なお、特定のユーザは、１回のＵＬ機能を選択することによって、複数個のデータファイルを、サービス提供サーバ３００にアップロードすることができる。ＭＦＰ１００のＣＰＵ１２２は、ユーザによるＵＬ機能の選択が検出されると、ユーザによってＵＬ機能が選択された時刻を示す時刻情報を、メモリ１２４に格納する。例えば、ＵＬ機能が選択された際に、ＣＰＵ１２２によって計時される時刻が２０１３年２月２８日午後２時５０分である場合、ＣＰＵ１２２は、２０１３年２月２８日午後２時５０分を示す時刻情報を、メモリに格納する。その後、ＣＰＵ１２２は、仲介サーバ１０に、時刻取得要求の送信要求を送信する。時刻取得要求の送信要求は、ＭＦＰ１００に登録されているサービス提供サーバ３００の識別情報とアクセストークンとの組合せと、ＭＦＰ１００のＭＡＣアドレス（即ちＭ１００）を含む。なお、以降のサービス提供サーバとＭＦＰ１００との間で通信される情報には、サービス提供サーバ３００の識別情報とアクセストークンとの組合せと、ＭＦＰ１００のＭＡＣアドレスと、時刻情報とが含まれる。
【００２３】
アップロード仲介処理では、ＣＰＵ２２は、例えばＭＦＰ１００，２００等の通信機器及びサービス提供サーバ３００等と、ｈｔｔｐ（HyperText Transfer Protocolの略）に従って通信を実行する。
【００２４】
まず、Ｓ１０において、ＰＵ２２は、ＭＦＰ１００から時刻取得要求の送信要求が受信されたのか否かを判断する。ＣＰＵ２２は、ＭＦＰ１００から受信された情報に、時刻取得要求を示すＵＲＬ（Uniform Resource Locatorの略）が含まれる場合に、時刻取得要求の送信要求が受信されたと判断し（Ｓ１０でＹＥＳ）、Ｓ１２に進む。一方、ＣＰＵ２２は、ＭＦＰ１００から受信された情報に、時刻取得要求を示すＵＲＬが含まれない場合に、時刻取得要求の送信要求が受信されていないと判断し（Ｓ１０でＮＯ）、Ｓ１４に進む。
【００２５】
Ｓ１２では、ＣＰＵ２２は、時刻取得要求の送信要求に対する応答として、時刻取得要求を、ＭＦＰ１００に送信して、本処理を終了する。時刻取得要求は、ＭＦＰ１００に格納されている時刻情報を、仲介サーバ１０に送信するための送信先ＵＲＬを含む。
【００２６】
Ｓ１４では、ＣＰＵ２２は、ＭＦＰ１００から、アップロード開始指示の送信要求が受信されたのか否かを判断する。なお、アップロード開始指示の送信要求は、ＭＦＰ１００がＵＬ機能の選択を検出した際の時刻を示す時刻情報を含む。ＣＰＵ２２は、ＭＦＰ１００から受信された情報に、Ｓ１２で送信された送信先ＵＲＬが含まれる場合に、アップロード開始指示の送信要求が受信されたと判断し（Ｓ１４でＹＥＳ）、Ｓ１６に進む。一方、ＣＰＵ２２は、ＭＦＰ１００から受信された情報に、Ｓ１２で送信された送信先ＵＲＬが含まれない場合に、時刻取得要求の送信要求が受信されていないと判断し（Ｓ１４でＮＯ）、Ｓ２２に進む。
【００２７】
Ｓ１６では、ＣＰＵ２２は、ＭＦＰ１００から取得された時刻情報によって示される時刻を表す時刻情報（例えば201302281450）と、ＭＦＰ１００のＭＡＣアドレス（即ちM100）とを組み合わせて、アップロード識別情報（例えば201302281450_M100）を生成する。そして、ＣＰＵ２２は、生成されたアップロード識別情報と、カウント値「０」との組合せを、アップロード管理データベース３２に登録する。次いで、Ｓ１８では、ＣＰＵ２２は、サービス提供サーバ３００の第１のＡＰＩに従って、所定のフォルダ名を示すフォルダ名情報を含むフォルダＩＤ要求を、特定のサービス提供サーバに送信する。そして、ＣＰＵ２２は、フォルダＩＤ要求の応答として、フォルダＩＤと、所定のフォルダ名のフォルダが無いことを示す情報と、のいずれかを、サービス提供サーバ３００から取得する。なお、所定のフォルダ名は、仲介サーバ１０のメモリ２６に予め格納されている。
【００２８】
仲介サーバ１０は、仲介サーバ１０を利用して、サービス提供サーバ３００，３１０にデータファイルがアップロードされる場合、所定のフォルダ名のフォルダに、データファイルを格納させる。即ち、データファイルは、複数個のサービス提供サーバ３００，３１０にいずれのサービス提供サーバであっても、所定のフォルダ名のフォルダに格納される。Ｓ１８では、今回のアップロード仲介処理の前に、アップロード仲介処理が実行されたことがある場合、所定のフォルダ名のフォルダが、既にサービス提供サーバ３００に格納されている可能性がある。
【００２９】
ＣＰＵ２２は、所定のフォルダ名のフォルダが格納されていないことを示す情報が取得される場合（Ｓ１８でＮＯ）、Ｓ１９において、第１のＡＰＩに従って、サービス提供サーバ３００に、所定のフォルダ名のフォルダの作成要求を送信する。そして、ＣＰＵ２２は、サービス提供サーバ３００から作成されたフォルダのフォルダＩＤを取得して、Ｓ２０に進む。一方、ＣＰＵ２２は、Ｓ１８において、フォルダＩＤが取得される場合（Ｓ１８でＹＥＳ）、Ｓ１９をスキップして、Ｓ２０に進む。
【００３０】
Ｓ２０では、ＣＰＵ２２は、アップロード開始指示を、ＭＦＰ１００に送信して、本処理を終了する。アップロード開始指示は、Ｓ１８又はＳ１９で取得されたフォルダＩＤと、第１から第３のＵＲＬと、を含む。第１のＵＲＬは、ＭＦＰ１００が、サービス提供サーバ３００に、データファイルをアップロードする際に利用されるＵＲＬを、仲介サーバ１０から取得するためのＵＲＬである。第２のＵＲＬは、ＭＦＰ１００が、サービス提供サーバ３００に、１個のデータファイルをアップロードした結果、サービス提供サーバ３００から受信するアップロード結果を、仲介サーバ３００に送信するためのＵＲＬである。第３のＵＲＬは、ＭＦＰ１００が、アップロードすべき全ての個数のデータファイルを、サービス提供サーバ３００にアップロードした後に、仲介サーバ１０に、完了通知を送信するためのＵＲＬである。
【００３１】
Ｓ２２では、ＣＰＵ２２は、ＭＦＰ１００から、アップロードＵＲＬの送信要求が受信されたのか否かを判断する。ＣＰＵ２２は、ＭＦＰ１００から受信された情報に、第１のＵＲＬが含まれる場合に、アップロードＵＲＬの送信要求が受信されたと判断し（Ｓ２２でＹＥＳ）、Ｓ２４に進む。一方、ＣＰＵ２２は、ＭＦＰ１００から受信された情報に、第１のＵＲＬが含まれない場合に、アップロードＵＲＬの送信要求が受信されていないと判断し（Ｓ２２でＮＯ）、Ｓ３２に進む。アップロードＵＲＬの送信要求は、フォルダＩＤを含む。
【００３２】
Ｓ２４では、ＣＰＵ２２は、ＭＦＰ１００が、サービス提供サーバ３００にアップロードするデータファイルのファイル名を決定する。具体的には、まず、ＣＰＵ２２は、Ｓ２２で受信されたアップロードＵＲＬの送信要求に含まれるＭＡＣアドレス（即ちＭ１００）と時刻情報とを用いて、アップロード識別情報を特定する。具体的には、ＭＡＣアドレスと、時刻情報によって示される時刻を表す時刻文字列と、の両方を含むアップロード識別情報を特定する。特定されたアップロード識別情報と、カウント値との組合せを、アップロード管理データベース３２から特定する。次いで、ＣＰＵ２２は、特定された組合せのカウント値に１を加算する。さらに、ＣＰＵ２２は、時刻情報を表す時刻文字列（例えば201302281450）と、カウント値（例えばＸ）と、データファイルのファイル形式を示す拡張子（例えばjpg）と、を用いて、ファイル名（例えば201302281450_X.jpg）を決定する。
【００３３】
次いで、Ｓ２６では、ＣＰＵ２２は、アップロードＵＲＬを作成するために必要な情報を、サービス提供サーバ３００から取得する。具体的には、ＣＰＵ２２は、第１のＡＰＩに従って、アップロードＵＲＬの送信要求に含まれるフォルダＩＤによって識別されるフォルダの位置を示すＵＲＬを、サービス提供サーバ３００から取得するためのＵＲＬ要求を、サービス提供サーバ３００に送信する。そして、ＣＰＵ２２は、ＵＲＬ要求の応答として受信されるＵＲＬを、サービス提供サーバ３００から受信する。なお、変形例では、ＣＰＵ２２は、アップロードＵＲＬ自体を、サービス提供サーバ３００から取得してもよい。
【００３４】
続くＳ２８では、ＣＰＵ２２は、アップロードＵＲＬを作成する。具体的には、ＣＰＵ２２は、Ｓ２６で取得されたＵＲＬに、フォルダＩＤを付加して、アップロードＵＲＬを作成する。さらに、Ｓ２８では、ＣＰＵ２２は、第１のＡＰＩに従って、アップロードＵＲＬを含むＨＴＴＰリクエストのテンプレートを作成する。ＨＴＴＰリクエストのテンプレートは、ＰＯＳＴコマンドのテンプレートである。ＨＴＴＰリクエストのテンプレートは、さらに、Ｓ２２で受信されたアップロードＵＲＬの送信要求に含まれるアクセストークンと、Ｓ２４で決定されたファイル名と、を含む。
【００３５】
次いで、Ｓ３０では、ＣＰＵ２２は、ＨＴＴＰリクエストのテンプレートを、ＭＦＰ１００に送信して、本処理を終了する。これにより、アップロードＵＲＬとファイル名とが、ＣＰＵ２２からＭＦＰ１００に送信される。
【００３６】
Ｓ３２では、ＣＰＵ２２は、ＭＦＰ１００から、アップロード結果が受信されたのか否かを判断する。ＣＰＵ２２は、ＭＦＰ１００から受信された情報に、第２のＵＲＬが含まれる場合に、アップロード結果が受信されたと判断し（Ｓ３２でＹＥＳ）、Ｓ３４に進む。一方、ＣＰＵ２２は、ＭＦＰ１００から受信された情報に、第３のＵＲＬが含まれている場合に、アップロード結果が受信されていないと判断し（Ｓ３２でＮＯ）、Ｓ３８に進む。
【００３７】
Ｓ３４では、ＣＰＵ２２は、第１のＡＰＩに従って、ＭＦＰ１００から受信されたアップロード結果を解析する。具体的には、ＣＰＵ２２は、アップロード結果に、アップロードが完了したことを示す成功情報とアップロードができなかったことを示す失敗情報とのどちらの情報が含まれているのかを解析する。次いで、Ｓ３６では、ＣＰＵ２２は、解析結果を、ＭＦＰ１００に送信して、本処理を終了する。
【００３８】
Ｓ３２でＮＯの場合、ＣＰＵ２２は、ＭＦＰ１００から完了通知を受信している。Ｓ３８では、ＣＰＵ２２は、Ｓ２４と同様の方法で、完了通知に含まれているＭＦＰ１００のＭＡＣアドレスと時刻情報とを用いて、アップロード識別情報を特定する。次いで、特定されたアップロード識別情報と、カウント値との組合せを、アップロード管理データベース３２から消去する。次いで、Ｓ４０において、ＣＰＵ２２は、ＭＦＰ１００の表示部１１０に表示させる画面を表す画面データを、ＭＦＰ１００に送信して、処理を終了する。画面データは、サービス提供サーバを選択させるための選択画面である。なお、詳しくは後述するが、Ｓ４０で送信される画面データで表される画面は、上記の選択画面と同様であり、特定のユーザがＭＦＰ１００の操作部１０８を操作してどのサービス提供サーバにデータファイルをアップロードするのかを選択するための画面である。
【００３９】
（スキャンデータファイルがアップロードされる第１のケース）
次いで、図３，４を参照して、ＭＦＰ１００からサービス提供サーバ３００に、スキャンデータファイルをアップロードする際に、ＭＦＰ１００と仲介サーバ１０とサービス提供サーバ３００とが実行する処理を説明する。なお、図４は、図３の最後の処理に続いて実行される処理を示す。
【００４０】
ＭＦＰ１００は、ウェブブラウザプログラムに従って、仲介サーバ１０から取得された画面データによって表される選択画面（即ち図２のＳ４０で送信される画面データ）を、表示部１１０に表示する。特定のユーザは、選択画面が表示部１１０に表示されている状態で、操作部１０８を操作して、サービス提供サーバ及び機能の選択を実行することができる。ＭＦＰ１００は、特定のユーザによって、サービス提供サーバ３００の選択及びスキャンＵＬ機能の選択が実行されると、スキャンＵＬ機能の選択が実行された時刻である２０１３年２月２８日午後２時５０分を示す時刻情報を、サービス提供サーバ３００の識別情報に関連付けて、メモリ１２４に格納する。また、ＭＦＰ１００は、特定のユーザによって選択されたサービス提供サーバ３００の識別情報とアクセストークンとの組合せを、メモリ１２４から特定する。次いで、ＭＦＰ１００は、ウェブブラウザプログラムに従って、予め決められているＵＲＬを送信先に指定して、仲介サーバ１０に、時刻取得要求の送信要求を送信する。なお、ＭＦＰ１００は、ウェブブラウザプログラムに従って、仲介サーバ１０及びサービス提供サーバ３００と通信を実行する。
【００４１】
仲介サーバ１０は、時刻取得要求の送信要求が受信される（図２のＳ１０でＹＥＳ）と、時刻取得要求の送信要求に対する応答として、時刻取得要求を、ＭＦＰ１００に送信する（図２のＳ１２）。
【００４２】
ＭＦＰ１００は、時刻取得要求を受信すると、時刻取得要求に含まれるサービス提供サーバ３００の識別情報に関連付けてメモリ１２４に格納されている時刻情報を特定する。次いで、ＭＦＰ１００は、特定された時刻情報と、ＭＦＰ１００のＭＡＣアドレス「M100」と、を含むアップロード開始指示の送信要求を、仲介サーバ１０に送信する。なお、変形例では、ＭＦＰ１００は、時刻取得要求の送信要求を、仲介サーバ１０に送信せずに、アップロード開始指示の送信要求を、仲介サーバ１０に送信してもよい。この場合、仲介サーバ１０は、ＭＦＰ１００に時刻取得要求を送信せずに、以下の処理を実行する。
【００４３】
仲介サーバ１０は、アップロード開始指示の送信要求が受信される（図２のＳ１４でＹＥＳ）と、アップロード開始指示の送信要求に含まれる時刻情報を用いて、時刻情報によって示される時刻を表す時刻文字列「201302281450」を特定する。次いで、特定された時刻文字列と、ＭＦＰ１００のＭＡＣアドレス「M100」とを組み合わせて、アップロード識別情報「201302281450_M100」を生成する。次いで、仲介サーバ１０は、生成されたアップロード識別情報「201302281450_M100」と、カウント値「０」との組合せを、アップロード管理データベース３２に格納する（図２のＳ１６）。
【００４４】
仲介サーバ１０は、メモリ３０に予め格納されている所定のフォルダ名「Folder1」のフォルダのフォルダＩＤ要求を、サービス提供サーバ３００に送信する（図２のＳ１８）。サービス提供サーバ３００は、フォルダＩＤ要求を受信すると、フォルダ名「Folder1」のフォルダを特定する。サービス提供サーバ３００は、特定されたフォルダのフォルダＩＤを、フォルダＩＤ要求の応答として、仲介サーバ１０に送信する。なお、図示省略しているが、サービス提供サーバ３００は、フォルダ名「Folder1」のフォルダを特定されない場合、フォルダ名「Folder1」のフォルダが格納されていないことを示す情報を、フォルダＩＤ要求の応答として、仲介サーバ１０に送信する。この場合、仲介サーバ１０は、フォルダ名「Folder1」のフォルダの作成要求を、サービス提供サーバ３００に送信する（図２のＳ１９）。サービス提供サーバ３００は、フォルダの作成要求を受信すると、フォルダ名「Folder1」のフォルダを作成し、作成されたフォルダのフォルダＩＤを決定して、仲介サーバ１０に送信する。
【００４５】
フォルダＩＤを受信すると、仲介サーバ１０は、アップロード開始指示を、ＭＦＰ１００に送信する（図２のＳ２０）。ＭＦＰ１００は、アップロード開始指示を受信すると、スキャン実行部１０４にセットされたＮ枚（Ｎは１以上の整数）の原稿のスキャン処理を実行する。スキャン処理では、１枚の原稿に対して、１個のデータファイルが生成される。即ち、Ｎ枚の原稿のスキャン処理では、Ｎ個のデータファイルが生成される。本実施例では、１枚の原稿のスキャンによって１個の画像データが生成され、当該１個の画像データがサービス提供サーバ３００にアップロードされた後に、他の１枚の原稿のスキャンによって他の１個の画像データが生成される状況のように、複数個のデータファイルが非同時的に生成される状況を想定しているのではなく、Ｎ枚の原稿のスキャン処理によって、Ｎ個のデータファイルが同時的に生成される。なお、変形例では、ＭＦＰ１００は、Ｎ枚の原稿のスキャン処理によって、１個のデータファイルを生成してもよい。また、別の変形例では、ＭＦＰ１００は、上記したように、１枚の原稿のスキャン処理によって１個のデータファイルが生成され、当該１個のデータファイルがサービス提供サーバ３００にアップロードされた後に、他の１枚の原稿のスキャン処理によって他の１個の画像データが生成される状況のように、複数個のデータファイルが非同時的に生成されてもよい。
【００４６】
ＭＦＰ１００は、生成されたＮ個のデータファイルを、一時的にメモリ１２４内に格納する。次いで、ＭＦＰ１００は、１個目のデータファイルのアップロード処理を実行する。アップロード処理では、最初に、１個目のデータファイルをアップロードするためのＵＲＬを、仲介サーバ１０から取得する。具体的には、アップロード開始指示に含まれている第１のＵＲＬを送信先に指定して、アップロードＵＲＬ送信要求を、仲介サーバ１０に送信する。
【００４７】
仲介サーバ１０は、アップロードＵＲＬ送信要求を受信すると、１個目のデータファイルのファイル名を決定する。即ち、仲介サーバ１０は、アップロード識別情報とカウント値との組合せを、アップロード管理データベース３２から特定し、カウント値に１を加算する。１個目のデータファイルのファイル名を決定する段階では、特定されたカウント値は、「０」であり、特定されたカウント値「０」に１を加算して、カウント値「１」を算出する。仲介サーバ１０は、特定されたアップロード識別情報に含まれる時刻文字列「201302281450」と、カウント値「１」と、データファイルのファイル形式を示す拡張子「jpg」と、を用いて、ファイル名「201302281450_001.jpg」を決定する（図２のＳ２４）。
【００４８】
次いで、仲介サーバ１０は、アップロードＵＲＬを作成するために必要な情報を、サービス提供サーバ３００に要求し、当該情報をサービス提供サーバ３００から受信する（図２のＳ２６）。仲介サーバ１０は、サービス提供サーバ３００から取得された情報を用いて、アップロードＵＲＬを作成する。そして、仲介サーバ１０は、決定されたファイル名「201302281450_001.jpg」と、作成されたアップロードＵＲＬと、を含むＨＴＴＰリクエストのテンプレートを、ＭＦＰ１００に送信する（図２のＳ３０）。なお、変形例では、予め、仲介サーバ１０のメモリ３０が、アップロードＵＲＬを作成するために必要な情報を格納していていもよい。この場合、仲介サーバ１０は、サービス提供サーバ３００に情報の要求せずに、メモリ１２４に格納されている情報を用いて、アップロードＵＲＬを作成してもよい。
【００４９】
ＭＦＰ１００は、ＨＴＴＰリクエストのテンプレートを受信すると、ＰＯＳＴコマンドのＨＴＴＰリクエストを生成する。具体的には、ＭＦＰ１００は、ＨＴＴＰリクエストのテンプレートに、１個目のデータファイルを書き込むことによって、ＨＴＴＰリクエストを生成する。次いで、ＭＦＰ１００は、ＨＴＴＰリクエストを、仲介サーバ１０を介さずに、サービス提供サーバ３００に送信することによって、スキャンデータファイルをサービス提供サーバ３００に送信する。本実施例では、ＨＴＴＰリクエストが仲介サーバ１０を介さずに通信されるために、特定のユーザのプライベートなデータファイルが仲介サーバ１０を経由するのを防止することができる。
【００５０】
サービス提供サーバ３００は、ＨＴＴＰリクエストを受信すると、ＨＴＴＰリクエストに含まれるフォルダＩＤのフォルダに、１個目のデータファイルを格納可能であるのか否かを判断する。サービス提供サーバ３００では、ユーザごとに、格納可能なデータ容量が割り当てられている。サービス提供サーバ３００は、例えば、ＨＴＴＰリクエストに書き込まれているデータファイルを、サービス提供サーバ３００に格納すると、特定のユーザに割り当てられている格納可能なデータ容量を越える場合に、１個目のデータファイルを格納不可能であると判断し、格納可能なデータ容量を超えない場合に、１個目のデータファイルを格納可能であると判断する。
【００５１】
サービス提供サーバ３００は、１個目のデータファイルを格納可能であると判断される場合に、ＨＴＴＰリクエストに含まれるフォルダＩＤのフォルダに、１個目のデータファイルを格納する。また、サービス提供サーバ３００は、１個目のデータファイルのファイル名として、ＨＴＴＰリクエストに含まれているファイル名「201302281450_001.jpg」を付与する。サービス提供サーバ３００は、第１のＡＰＩに従って、１個目のデータファイルを格納すると、アップロードが成功したことを示すアップロード結果を作成し、ＭＦＰ１００に送信する。
【００５２】
なお、図示省略するが、サービス提供サーバ３００は、１個目のデータファイルを格納不可能であると判断される場合に、第１のＡＰＩに従って、１個目のデータファイルを格納すると、アップロードが失敗したことを示すアップロード結果を作成し、ＭＦＰ１００に送信する。
【００５３】
ＭＦＰ１００は、アップロード結果を受信すると、アップロード結果を、アップロード開始指示に含まれている第２のＵＲＬを送信先に指定して、仲介サーバ１０に送信する。仲介サーバ１０は、アップロード結果が受信されると（図２のＳ３２でＹＥＳ）、アップロード結果を解析する（図２のＳ３４）。
【００５４】
図４では、仲介サーバ１０は、アップロードが成功したことを示すアップロード結果の解析結果を、ＭＦＰ１０に送信する（図２のＳ３６）。ＭＦＰ１００は、第１のＡＰＩを格納していないため、サービス提供サーバ３００から受信されたアップロード結果を解析することができない。上記の構成では、ＭＦＰ１００は、仲介サーバ１０から、アップロードの解析結果を受信する。これにより、ＭＦＰ１００は、ＡＰＩを格納せずに、アップロード結果を知ることができる。
【００５５】
ＭＦＰ１００は、アップロードが成功したことを示すアップロード結果を受信すると、１個目のデータファイルを、メモリ３０から消去する。次いで、ＭＦＰ１００は、２個目のデータファイルのアップロード処理を開始する。
【００５６】
なお、ＭＦＰ１００は、アップロードが失敗したことを示すアップロード結果の解析結果を受信すると、以後のアップロード処理を実行せずに、完了通知を、仲介サーバ１０に送信する。
【００５７】
２個目のデータファイルのアップロード処理では、ＭＦＰ１００は、１個目のデータファイルのアップロード処理と同様に、第１のＵＲＬを送信先に指定して、２個目のデータファイルをアップロードするためのアップロードＵＲＬ送信要求を、仲介サーバ１０に送信する。
【００５８】
仲介サーバ１０は、アップロードＵＲＬ送信要求を受信すると、１個目のデータファイルの場合と同様の方法で、２個目のデータファイルのファイル名を決定する。ここで、２個目のデータファイルのファイル名を決定する段階では、特定されたカウント値は、「１」であり、特定されたカウント値「１」に１を加算して、カウント値「２」が算出される。仲介サーバ１０は、時刻情報を表す時刻文字列「201302281450」と、カウント値「２」と、データファイルのファイル形式を示す拡張子「jpg」と、を用いて、ファイル名「201302281450_002.jpg」を決定する（図２のＳ２４）。
【００５９】
仲介サーバ１０は、１個目のデータファイルの場合と同様に、アップロードＵＲＬを作成するために必要な情報を、サービス提供サーバ３００から取得する（図２のＳ２６）。なお、同時的に生成されたＮ個のデータファイルがアップロードされる場合、アップロードＵＲＬを作成するために必要な情報は、データファイル毎に変更されない。仲介サーバ１０は、１個のデータファイルをアップロードする毎に、アップロードＵＲＬを作成するために必要な情報を取得する。この構成によれば、仲介サーバ１０は、Ｎ個のデータファイルのアップロードが完了するまで、アップロードＵＲＬを作成するために必要な情報を、保持しておく必要がない。仲介サーバ１０は、１個目のデータファイルの場合と同様に、ＨＴＴＰリクエストのテンプレートを作成して（図２のＳ２８）、ＭＦＰ１００に送信する（図２のＳ３０）。
【００６０】
なお、変形例では、仲介サーバ１０は、１個目のデータファイルのアップロード処理の際に取得したアップロードＵＲＬを作成するために必要な情報を、メモリ３０に保持していてもよい。この場合、仲介サーバ１０は、２個目のデータファイルのアップロード処理の際に、アップロードＵＲＬを作成するために必要な情報を、サービス提供サーバ３００から取得しなくてもよい。仲介サーバ１０は、メモリ３０に保持されているアップロードＵＲＬを作成するために必要な情報を用いて、アップロードＵＲＬを作成してもよい。
【００６１】
ＭＦＰ１００は、１個目のデータファイルのアップロード処理と同様の処理をＮ回繰り返すことによって、Ｎ個のデータファイルを、サービス提供サーバ３００にアップロードする。Ｎ個のデータファイルのアップロード処理が完了すると、ＭＦＰ１００は、データファイルのアップロードが完了したと判断し、データファイルのアップロード処理が完了したことを示す完了通知を、仲介サーバ１０に送信する。なお、Ｍ個目（ＭはＮ以下の整数）のデータファイルのアップロード処理において、アップロードが失敗したことを示すアップロード結果が受信される場合、以後のアップロード処理を実行せずに、完了通知を、仲介サーバ１０に送信する。
【００６２】
仲介サーバ１０は、完了通知を受信すると（図２のＳ３２でＮＯ）、アップロード識別情報「201302281450_M100」とカウント値「Ｎ」との組合せを、アップロード管理データベース３２から消去する（図２のＳ３８）。次いで、画面データを、ＭＦＰ１００に送信する（図２のＳ４０）。ＭＦＰ１００は、画面データを受信すると、表示部１１０に、画面データによって表される画面を表示させる。なお、変形例では、仲介サーバ１０は、アップロード識別情報「201302281450_M100」とカウント値「Ｎ」との組合せがアップロード管理データベース３２に登録されてから、所定の期間が経過した後に、アップロード識別情報「201302281450_M100」とカウント値「Ｎ」との組合せを、アップロード管理データベース３２から消去してもよい。
【００６３】
（外部メモリに格納されているデータファイルがアップロードされる第２のケース）
次いで、図５を参照して、ＭＦＰ１００からサービス提供サーバ３００に、外部メモリに格納されているデータファイルをアップロードする際に、ＭＦＰ１００と仲介サーバ１０とサービス提供サーバ３００とが実行する処理を説明する。
【００６４】
ＭＦＰ１００は、特定のユーザによって、サービス提供サーバ３００の選択及びメモリＵＬ機能の選択が実行されると、メモリＵＬ機能の選択が実行された時刻である２０１３年２月２８日午後２時５０分を示す時刻情報を、サービス提供サーバ３００の識別情報に関連付けて、メモリ１２４に格納する。第２のケースでは、第１のケースと比較して、仲介サーバ１０からＭＦＰ１００へのアップロード開始指示の送信処理（図２のＳ２０）から、ファイル名決定（図２のＳ２４）までの処理が異なる。それ以外の第２のケースにおける各デバイス１０，１００，３００の処理は、第１のケースにおける各デバイス１０，１００，３００の処理と同様であるため、説明を省略する。
【００６５】
ＭＦＰ１００は、アップロード開始指示を受信すると、データ読取部１０６にセットされている外部メモリ（例えばＵＳＢメモリ）に格納されているＬ個（Ｌは１以上の整数）のデータファイルを読み込んで、一時的に制御部１２０のメモリ１２４内に格納する。次いで、ＭＦＰ１００は、１個目のデータファイルのアップロード処理を実行する。アップロード処理では、最初に、１個目のデータファイルをアップロードするためのＵＲＬを、仲介サーバ１０から取得する。具体的には、アップロード開始指示に含まれている第１のＵＲＬを送信先に指定して、アップロードＵＲＬ送信要求を、仲介サーバ１０に送信する。ＭＦＰ１００は、１個目のデータファイルに既に付加されているファイル名「file1」を含むアップロードＵＲＬ送信要求を、仲介サーバ１０に送信する。
【００６６】
仲介サーバ１０は、アップロードＵＲＬ送信要求を受信すると（図２のＳ２２でＹＥＳ）、１個目のデータファイルのファイル名を決定する。仲介サーバ１０は、アップロード識別情報とカウント値との組合せを、アップロード管理データベース３２から特定し、カウント値に１を加算する。仲介サーバ１０は、時刻情報を表す時刻文字列「201302281450」と、受信されたファイル名「file1」と、データファイルのファイル形式を示す拡張子「jpg」と、を用いて、ファイル名「file1_201302281450.jpg」を決定する（図２のＳ２４）。この構成によれば、データファイルに予め付与されているファイル名「file1」を含む新たなファイル名「file1_201302281450.jpg」を決定することができる。この結果、特定のユーザが、ファイル名「file1」から、データファイルの内容を想起することができる場合に、新たなファイル名「file1_201302281450.jpg」からデータファイルの内容を想起することができる。
【００６７】
（本実施例の効果）
上記の仲介サーバ１０は、ＭＦＰ１００が、ＭＦＰ１００から受信された時刻情報によって表される時刻文字列を含むファイル名を、アップロードすべきデータファイルに関連付けて、サービス提供サーバ３００に格納させるために、ＭＦＰ１００に、ファイル名を送信する。ＭＦＰ１００は、ＭＦＰ１００によって計時される時刻を表す時刻文字列を含むファイル名と、データファイルと、を関連付けて、サービス提供サーバ３００に格納させることができる。この結果、特定のユーザは、ファイル名を確認することによって、ＭＦＰ１００によって計時された時刻を知ることができる。これにより、特定のユーザは、データファイルによって表される画像を確認しなくても、ファイル名を確認することによって、データファイルの内容を想起し得る。この構成によれば、ＭＦＰ１００からサービス提供サーバ３００に格納されるデータファイルに、適切なファイル名を関連付けて格納し得る。
【００６８】
また、仲介サーバ１０は、特定のユーザが、ＭＦＰ１００にＵＬ機能を選択した際の時刻を表す時刻文字列を含むファイル名を決定する。この構成によれば、特定のユーザは、ファイル名を確認することによって、データファイルのアップロードを指示した時刻を知ることができる。特定のユーザは、データファイルをサービス提供サーバ３００にアップロードするための指示をした時刻を元に、画像データファイルの内容を想起し得る。この構成によれば、ユーザは、ファイル名を確認することによって、画像データファイルの内容を想起し得る。
【００６９】
仲介サーバ１０は、同一の時刻文字列を含む複数個のデータファイルのファイル名を決定する。この結果、特定のユーザは、ファイル名を確認することによって、同じ時刻文字列を含むファイル名のデータファイルが、相互に関連するデータファイルであると知ることができる。
【００７０】
仲介サーバ１０は、アップロード管理データベース３２に、時刻文字列を登録する。そして、仲介サーバ１０は、ＭＦＰ１００から完了通知が受信されるまで、時刻文字列を含むアップロード識別情報を、アップロード管理データベース３２に保持する。この構成によれば、仲介サーバ１０は、時刻文字列を用いて、複数個のデータファイルのファイル名が決定されるまで、時刻文字列をアップロード管理データベース３２に保持することができる。これにより、同一の時刻文字列を用いて、複数個のファイル名を決定することができる。
【００７１】
仲介サーバ１０は、アップロード管理データベース３２に、時刻文字列を登録する。この構成によれば、仲介サーバ１０は、アップロード管理データベース３２に、ＭＦＰ１００のＭＡＣアドレスと時刻文字列とを含むアップロード識別情報が登録されている間に、新たに、ＭＦＰ１００からアップロード開始指示の送信要求が受信される場合に、同じＭＡＣアドレスと、異なる時刻文字列と、を含む複数のアップロード識別情報を、区別可能にアップロード管理データベース３２に登録することができる。
【００７２】
例えば、ＭＦＰ１００からサービス提供サーバ３００に、データファイルをアップロード中に、仲介サーバ１０とＭＦＰ１００とが通信可能な状況から通信不可能な状況（例えばＭＦＰ１００の電源がＯＮからＯＦＦに変更された状況）に移行する場合がある。この場合、仲介サーバ１０は、ＭＦＰ１００から完了通知を受信しないため、ＭＦＰ１００のＭＡＣアドレスを含むアップロード識別情報とカウント値の組合せは、アップロード管理データベース３２から消去されない。この状態で、仲介サーバ１０とＭＦＰ１００とが通信不可能な状況から通信可能な状況（例えばＭＦＰ１００の電源がＯＦＦからＯＮに変更された状況）に移行し、新たにＭＦＰ１００がＵＬ機能を実行する場合がある。あるいは、ＭＦＰ１００が、１回のＵＬ機能の選択に対するアップロード処理を実行している間に、他のＵＬ機能の選択が検出され、複数のアップロード処理を並行して実行する場合がある。これらの場合に、ＭＦＰ１００のＭＡＣアドレスを含む複数個のアップロード識別情報を、アップロード管理データベース３２に登録する。アップロード識別情報は、時刻文字列を含んでいるために、ＣＰＵ２２は、ＭＦＰ１００のＭＡＣアドレスを含む複数個のアップロード識別情報がアップロード管理データベース３２に登録されていても、複数個のアップロード識別情報のそれぞれを、時刻情報を用いて区別することができる。
【００７３】
（対応関係）
ＭＦＰ１００が「画像処理装置」の一例であり、仲介サーバ１０が「通信装置」の一例である。ＣＰＵ２２が実行する図２のＳ１４の処理が「受信部」の一例であり、図２のＳ２４の処理が「決定部」の一例であり、図２のＳ３０の処理が「送信部」の一例である。ファイル名201302281450_001.jpgが「第１の文字列」及び「第１の文字列に関する文字列」の一例であり、ファイル名201302281450_002.jpgが「第２の文字列」及び「第２の文字列に関する文字列」の一例である。スキャンデータファイル及び外部メモリに格納されているデータファイルが「画像データファイル」の一例である。
【００７４】
特定のユーザによるＵＬ機能の選択が「記憶装置に格納するための指示」の一例である。201302281450_001.jpgのうちの001が「第１の付加文字列」の一例であり、201302281450_002.jpgのうちの002が「第２の付加文字列」の一例である。メモリ３０が「一時格納部」の一例であり、ＣＰＵ２２が実行する図２のＳ１６の処理及びＳ３８の処理が、「格納制御部」の一例である。ＣＰＵ２２が実行する図２のＳ２２の処理が、「ファイル名受信部」の一例である。
【００７５】
（第２実施例）
（ＵＬ機能が実行される際の仲介サーバ１０が実行するアップロード仲介処理；図６）
第１実施例と異なる点を説明する。図６のＳ１１０〜Ｓ１１６，Ｓ１２２，Ｓ１２６〜Ｓ１４０の処理は、図２のＳ１０〜Ｓ１４，Ｓ２２，Ｓ２６〜Ｓ４０の処理と同様である。
【００７６】
Ｓ１１８では、ＣＰＵ２２は、サービス提供サーバ３００の第１のＡＰＩに従って、Ｓ１１４で取得された時刻情報によって表される時刻文字列「201302281450」のフォルダ名を示すフォルダ名情報を含むフォルダＩＤ要求を、サービス提供サーバ３００に送信する。そして、ＣＰＵ２２は、フォルダＩＤ要求の応答として、フォルダＩＤと、時刻文字列「201302281450」のフォルダ名のフォルダが無いことを示す情報と、のいずれかを、サービス提供サーバ３００から取得する。
【００７７】
ＣＰＵ２２は、時刻文字列「201302281450」のフォルダ名のフォルダが格納されていないことを示す情報が取得される場合（Ｓ１１８でＮＯ）、Ｓ１１９において、ＭＦＰ１００からアップロードされるデータファイルを格納するフォルダのフォルダ名を、「201302281450」に決定する。次いで、Ｓ１２０において、第１のＡＰＩに従って、サービス提供サーバ３００に、時刻文字列「201302281450」のフォルダ名のフォルダの作成要求を送信する。そして、ＣＰＵ２２は、サービス提供サーバ３００から作成されたフォルダのフォルダＩＤを取得して、Ｓ１２１に進む。一方、ＣＰＵ２２は、Ｓ１１８において、フォルダＩＤが取得される場合（Ｓ１１８でＹＥＳ）、Ｓ１１９，Ｓ１２０をスキップして、Ｓ１２１に進む。
【００７８】
Ｓ１２１では、ＣＰＵ２２は、アップロード開始指示を、ＭＦＰ１００に送信して、本処理を終了する。アップロード開始指示は、第１から第３のＵＲＬと、フォルダＩＤとを含む。
【００７９】
Ｓ１２４では、ＣＰＵ２２は、ＭＦＰ１００が、サービス提供サーバ３００にアップロードするデータファイルのファイル名を決定する。具体的には、まず、ＣＰＵ２２は、アップロードＵＲＬの送信要求に含まれるＭＡＣアドレス（即ちＭ１００）と時刻情報によって示される時刻を表す時刻情報とを含むアップロード識別情報と、カウント値との組合せを、アップロード管理データベース３２から特定する。次いで、ＣＰＵ２２は、特定された組合せに含まれるカウント値に、１を加算する。ＣＰＵ２２は、カウント値「Ｘ」と、データファイルのファイル形式を示す拡張子「jpg」と、を用いて、ファイル名「X.jpg」を決定する。即ち、ファイル名は、時刻文字列を含まない。なお、Ｓ１２２において、データファイルに既に付与されているファイル名（例えばfile1.jpg）が受信されている場合、Ｓ１２４において、ＣＰＵ２２は、既に付与されているファイル名（例えばfile1.jpg）を、サービス提供サーバ３００で格納される際のファイル名（例えばfile1.jpg）と決定してもよい。なお、変形例では、ファイル名は、第１の実施例と同様に、時刻文字列を含んでいてもよい。
【００８０】
上記の仲介サーバ１０は、ＭＦＰ１００が、ＭＦＰ１００から受信された時刻情報によって表される時刻文字列を含むフォルダ名を、アップロードすべきデータファイルに関連付けて、サービス提供サーバ３００に格納させるために、ＭＦＰ１００に、フォルダ名に対応するフォルダＩＤを送信する。これにより、ＭＦＰ１００は、ＭＦＰ１００によって計時される時刻を表す時刻文字列を含むフォルダ名のフォルダに、データファイルを格納させることができる。この結果、特定のユーザは、フォルダ名を確認することによって、ＭＦＰ１００によって計時された時刻を知ることができる。これにより、特定のユーザは、データファイルによって表される画像を確認しなくても、フォルダ名を確認することによって、フォルダに格納されているデータファイルの内容を想起し得る。この構成によれば、ＭＦＰ１００からサービス提供サーバ３００に格納されるデータファイルに、適切なフォルダ名を関連付けて格納し得る。
【００８１】
（スキャンデータファイルがアップロードされる第３のケース）
次いで、図７を参照して、ＭＦＰ１００からサービス提供サーバ３００に、スキャンデータファイルをアップロードする際に、ＭＦＰ１００と仲介サーバ１０とサービス提供サーバ３００とが実行する処理を説明する。
【００８２】
仲介サーバ１０が、アップロード管理データベース３２に、アップロード識別情報等を格納する処理（図６のＳ１１６）までは、第１のケースと同様である。仲介サーバ１０は、時刻文字列「201302281450」のフォルダ名を示すフォルダ名情報を含むフォルダＩＤ要求を、サービス提供サーバ３００に送信する（図６のＳ１１８）。サービス提供サーバ３００は、フォルダＩＤ要求フォルダＩＤ要求を受信すると、フォルダ名「201302281450」のフォルダを特定する。サービス提供サーバ３００は、特定されたフォルダのフォルダＩＤを、フォルダＩＤ要求の応答として、仲介サーバ１０に送信する（図６のＳ１１８でＹＥＳ）。
【００８３】
一方において、サービス提供サーバ３００は、フォルダ名「201302281450」のフォルダが格納されていない場合、フォルダが格納されていないことを示す情報を、仲介サーバ１０に送信する。仲介サーバ１０は、フォルダが格納されていないことを示す情報を受信すると（図６のＳ１１８でＮＯ）、アップロードされるデータファイルを格納するフォルダのフォルダ名を、「201302281450」に決定する（図６のＳ１１９でＹＥＳ）。次いで、仲介サーバ１０は、サービス提供サーバ３００に、「201302281450」のフォルダ名のフォルダの作成要求を送信する（図６のＳ１２０）。
【００８４】
サービス提供サーバ３００は、フォルダの作成要求を受信すると、「201302281450」のフォルダ名のフォルダと、当該フォルダのフォルダＩＤ「folder123」とを作成し、フォルダＩＤを、仲介サーバ１０に送信する。仲介サーバ１０は、フォルダＩＤを受信すると（図６のＳ１２０）、フォルダＩＤ「folder123」を含むアップロード開始指示を、ＭＦＰ１００に送信する（図６のＳ１２１）。以後の処理は、ファイル名の決定方法が異なる点を除いて、第１のケースと同様である。
【００８５】
（対応関係）
ＣＰＵ２２が実行する図６のＳ１１４の処理が「受信部」の一例であり、図６のＳ１１８，Ｓ１１９の処理が「決定部」の一例であり、図６のＳ１２１の処理が「送信部」の一例である。フォルダ名201302281450が「第１の文字列」の一例であり、フォルダＩＤfolder123が、「第１の文字列に関する文字列」の一例である。ＣＰＵ２２が実行する図６のＳ１１６の処理及びＳ１３８の処理が、「格納制御部」の一例である。
【００８６】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。例えば、以下の変形例が含まれる。
【００８７】
（変形例）
（１）上記の第１実施例では、ＣＰＵ２２は、アップロード管理データベース３２に格納されている時刻文字列を用いて、ファイル名を決定する。しかしながら、ＣＰＵ２２は、Ｓ２２で受信されるアップロードＵＲＬ送信要求に含まれる時刻情報の時刻を表す時刻文字列を用いて、ファイル名を決定してもよい。また、上記の第２実施例では、ＣＰＵ２２は、アップロード管理データベース３２に格納されている時刻文字列を用いて、ファイル名を決定する。しかしながら、ＣＰＵ２２は、Ｓ１１４で受信されるアップロード開始指示の送信要求に含まれる時刻情報の時刻を表す時刻文字列を用いて、ファイル名を決定してもよい。本変形例では、ＣＰＵ２２は、アップロード管理データベース３２に時刻文字列を格納しなくてもよい。即ち、ＣＰＵ２２は、アップロード識別情報として、ＭＦＰ１００のＭＡＣアドレスを、アップロード管理データベース３２に格納してもよい。なお、上記の第１実施例では、アップロードデータベース３２に格納されている時刻文字列と、Ｓ２２で受信されるアップロードＵＲＬ送信要求に含まれる時刻情報の時刻を表す時刻文字列と、は同一の時刻文字列である。上記の第２実施例では、アップロードデータベース３２に格納されている時刻文字列と、Ｓ１１４で受信されるアップロード開始指示の送信要求に含まれる時刻情報の時刻を表す時刻文字列と、は同一の時刻文字列である。
【００８８】
（２）上記の第１実施例では、ＣＰＵ２２は、外部メモリに格納されているデータファイルがアップロードされる場合、既にデータファイルに付与されているファイル名（例えば「file1」）を含むファイル名（例えば「file1_201302281450.jpg」）を決定する。しかしながら、ＣＰＵ２２は、ＭＦＰ１００から、アップロードすべきデータファイルのファイルパス（例えば「D_test_image_file1.jpg」）を取得し、データファイルのファイルパスを含むファイル名（例えば「D_test_image_file1_201302281450.jpg」）を決定してもよい。第２実施例でも同様に、ＣＰＵ２２は、ファイルパスを含むファイル名を決定してもよい。
【００８９】
（３）また、ＣＰＵ２２は、アップロードすべきデータファイルのファイルパス（例えば「D_test_image_file1.jpg」）を取得し、サービス提供サーバ３００に、取得されたファイルパスと同様にフォルダ構造を、作成させてもよい。
【００９０】
（４）「画像処理装置」は、ＭＦＰ１００に限られず、他の種類の通信装置（例えば、ＰＣ、サーバ、ＰＤＡ、携帯端末、プリンタ、スキャナ、電話機、ＦＡＸ装置、コピー機等）であってもよい。また、「通信装置」は、仲介サーバに限られない。また、「記憶装置」は、クラウドサービスを提供するサービス提供サーバ３００に限られず、「画像処理装置」と画像データファイルの通信を実行する他の種類の装置であってもよい。
【００９１】
（５）ＭＦＰ１００は、スキャンＵＬ機能及びメモリＵＬ機能以外に、外部装置（例えばＰＣ）からインターネット４又はＬＡＮ６を介して取得したデータファイルを、サービス提供サーバ３００等にアップロードする機能を実行可能であってもよい。この場合、外部装置から取得したデータファイルが「画像データファイル」の一例である。
【００９２】
（６）「画像データファイル」は、ＪＰＥＧ形式のデータファイル以外に、ＧＩＦ（Graphics Interchange Formatの略）形式、ＰＮＧ（Portable Network Graphicsの略）形式等のビットマップ画像を表すデータファイルであってもよく、ＰＤＦ形式のデータファイルであってもよい。
【００９３】
（７）「第１の文字列」、「第２の文字列」等は、ファイル名、フォルダ名以外に、データファイルのステータス等であってもよい。即ち、「第１の文字列」、「第２の文字列」等は、サービス提供サーバ３００等に、データファイルが格納される際に、データファイルに関連して格納される文字列であればよい。
【００９４】
（８）「第１の文字列に関する文字列」等は、ファイル名、フォルダＩＤ以外に、ファイル名を識別するための識別情報であってもよい。即ち、サービス提供サーバ３００が、「第１の文字列に関する文字列」を用いて、「第１の文字列」を識別可能であればよい。
【００９５】
（８）上記の各実施例では、仲介サーバ１０のＣＰＵ２２がソフトウェアに従って処理を実行することによって、仲介サーバ１０の「受信部」等の機能が実現される。これに代えて、仲介サーバ１０の「受信部」等の機能のうちの少なくとも一部は、論理回路等のハードウェアによって実現されてもよい。
【符号の説明】
【００９６】
２：通信システム、４：インターネット、１０：仲介サーバ、２２：ＣＰＵ、３２：アップロード管理データベース、１００，２００：ＭＦＰ、３００，３１０：サービス提供サーバ
【図１】
2014167768.tif 000003
【図２】
2014167768.tif 000004
【図３】
2014167768.tif 000005
【図４】
2014167768.tif 000006
【図５】
2014167768.tif 000007
【図６】
2014167768.tif 000008
【図７】
2014167768.tif 000009