(57)【要約】【課題】アップロードを迅速且つ容易に行い得るようにする。【解決手段】通信装置１０が、サーバ２０に、任意のアップロードサービスが、直接アップロード可能であるかを問い合わせ、直接アップロード可能である場合に、直接アップロードするための必要情報をサーバ２０から取得し、当該必要情報に基づき、直接アップロードするようにした。こうすることで、従来のようなサーバ２０経由でアップロードを行う場合と比して、サーバ２０へのアクセス集中を軽減でき、またアップロードサービスの追加や削除等があった場合も、サーバ２０側でサービス情報を更新すればよく、通信装置１０側でのユーザ作業が増えてしまうことを防止できる。かくして、アップロードを迅速且つ容易に行うことができる。【選択図】図１
2010187217.tif 000002
【特許請求の範囲】
【請求項１】
通信部と、
上記通信部を制御して、複数のアップロードサービス各々のサービス情報を保持しているサーバに対して、一のアップロードサービスが直接アップロード可能であるかを問い合わせ、上記一のアップロードサービスが直接アップロード可能である場合に、上記一のアップロードサービスにデータを直接アップロードするための必要情報を上記サーバから取得させ、当該必要情報に基づき、上記一のアップロードサービスにデータを直接アップロードさせる制御部と
を具える通信装置。
【請求項２】
上記制御部は、
上記一のアップロードサービスが、上記直接アップロードも上記サーバ経由のアップロードも可能である場合に、上記直接アップロード又は上記サーバ経由のアップロードの何れかを選択する
請求項１に記載の通信装置。
【請求項３】
上記制御部は、
ネットワークのトラフィックに基づいて、上記直接アップロード又は上記サーバ経由のアップロードの何れかを選択する
請求項２に記載の通信装置。
【請求項４】
上記制御部は、
上記データをアップロードするときに、ダミーデータを用いた上記直接アップロードに要する第１の通信時間と、ダミーデータを用いた上記サーバ経由のアップロードに要する第２の通信時間とを計測し、
上記第１の通信時間と上記第２の通信時間とに基づいて、上記ネットワークのトラフィックを推測する
請求項３に記載の通信装置。
【請求項５】
上記制御部は、
上記直接アップロードが失敗したときに、上記サーバ経由のアップロードを実行させる
請求項２に記載の通信装置。
【請求項６】
上記制御部は、
上記一のアップロードサービスが、上記直接アップロードは不可能で、上記サーバ経由のアップロードは可能である場合には、上記サーバ経由のアップロードを実行させる
請求項１に記載の通信装置。
【請求項７】
上記制御部は、
上記通信部を制御して、上記直接アップロードを実行した結果、上記一のアップロードサービスから返信されてきたアップロード結果を、上記サーバに転送させ、当該サーバにおいて上記通信装置が認識可能な形式に変換された上記アップロード結果を当該サーバから受信させる
請求項１に記載の通信装置。
【請求項８】
上記データは、コンテンツデータとメタデータとで構成され、
上記制御部は、
上記コンテンツデータのアップロードを、上記直接アップロードで実行させる一方、上記メタデータのアップロードを、上記サーバ経由のアップロードで実行させる
請求項１に記載の通信装置。
【請求項９】
通信部と、
複数のアップロードサービス各々のサービス情報を記憶する記憶部と、
上記通信部を制御して、上記サービス情報に基づき、通信装置からの上記複数のアップロードサービスのうち一のアップロードサービスが直接アップロード可能であるかの問い合わせに応答させ、上記一のアップロードサービスが直接アップロード可能である場合に、上記一のアップロードサービスにデータを直接アップロードするための必要情報を上記通信装置に送信させる制御部と
を具えるサーバ。
【請求項１０】
上記制御部は、
上記通信装置が上記一のアップロードサービスにデータを直接アップロードすることで受信したアップロード結果を、上記通信装置が認識可能な形式に変換し、上記通信部を制御して上記通信装置に返信させる
請求項９に記載のサーバ。
【請求項１１】
通信装置に、
通信部を制御して、複数のアップロードサービス各々のサービス情報を記憶しているサーバに対して、一のアップロードサービスが直接アップロード可能かを問い合わせる問い合わせステップと、
上記通信部を制御して、上記一のアップロードサービスが直接アップロード可能である場合に、上記一のアップロードサービスにデータを直接アップロードするための必要情報を上記サーバから取得させる取得ステップと、
当該必要情報に基づいて、上記通信部を制御して上記アップロードサービスにデータを直接アップロードさせるアップロードステップと
を実行させるためのプログラム。
【請求項１２】
通信装置とサーバとからなる通信システムであって、
上記通信装置は、
通信部と、
当該通信部を制御して、複数のアップロードサービス各々のサービス情報を記憶している上記サーバに、一のアップロードサービスが直接アップロード可能であるかを問い合わせ、上記一のアップロードサービスが直接アップロード可能である場合に、上記一のアップロードサービスにデータを直接アップロードするための必要情報を上記サーバから取得させ、当該必要情報に基づき、上記アップロードサービスにデータを直接アップロードさせる制御部と
を有し、
上記サーバは、
上記複数のアップロードサービス各々のサービス情報を記憶する記憶部と、
通信部と、
当該通信部を制御して、上記サービス情報に基づき、上記通信装置からの直接アップロード可能であるかの問い合わせに応答させ、上記一のアップロードサービスが直接アップロード可能である場合に、上記一のアップロードサービスにデータを直接アップロードするための必要情報を上記通信装置に送信させる制御部と
を有する
通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、サーバ、プログラム及び通信システムに関し、例えば、通信装置からデータをアップロードする際に適用して好適なものである。
【背景技術】
【０００２】
昨今、ネットワークを介した様々なサービスが提供されている。その１つとして、例えば、ユーザが撮影した動画などのコンテンツデータを、ユーザの端末（これをクライアントとも呼ぶ）からネットワーク上のサーバにアップロードして保管するサービスがある。このようなサービスを、アップロードサービスとも呼ぶ。また、このようなサービスでのアップロード先となるサーバを、サービス提供サーバとも呼ぶ。
【０００３】
アップロードサービスの多くは、サービス提供サーバにアップロードしたコンテンツデータを他のユーザに公開することが可能であり、こうすることで、コンテンツデータを複数のユーザで共有できるようになっている。
【０００４】
このようなアップロードサービスを多くのユーザに利用してもらうためには、アップロードを迅速且つ容易に行い得るようにすることが望ましい。
【０００５】
ところが、既存のアップロードサービスの多くは、コンテンツデータをアップロードするために、所望のサービスのウェブページをウェブブラウザを利用してユーザが探さなければならず、アップロードを迅速且つ容易に行えるとは言い難い。
【０００６】
そこで、クライアントからサービス提供サーバに直接アップロードするのではなく、中継サーバを経由してサービス提供サーバにアップロードするようにしたシステムが提案されている（例えば特許文献１参照）。
【０００７】
このシステムでは、中継サーバが各サービスの情報（サービス提供サーバのアドレスなど）を保持しており、クライアントから中継サーバにアクセスして所望のサービスを選択できるようになっている。中継サーバは、所望のサービスが選択され、アップロードするコンテンツデータがクライアントから送信されてくると、これを、選択されたサービスのサービス提供サーバに転送することでアップロードする。
【０００８】
このように、このシステムでは、中継サーバにアクセスして所望のサービスを選択すればよく、所望のサービスのウェブページを探すような手間を省略することができるようになっている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００８−２１１７３２公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、上述したシステムでは、中継サーバを経由して各サービスのサービス提供サーバにコンテンツデータをアップロードするようになっているため、中継サーバにクライアントからのアクセスが集中する。この結果、中継サーバの負荷が増加して、アップロードにかかる時間が直接アップロードする場合よりも長くなってしまうことがあった。
【００１１】
このように、従来のアップロードサービスにおいては、アップロードを迅速且つ容易に行い得るとは言い難かった。
【００１２】
本発明は以上の点を考慮してなされたもので、アップロードを迅速且つ容易に行い得る通信装置、サーバ、プログラム及び通信システムを提案しようとするものである。
【課題を解決するための手段】
【００１３】
かかる課題を解決するため本発明においては、通信装置が、通信部を制御して、複数のアップロードサービス各々のサービス情報を保持しているサーバに対して、一のアップロードサービスが直接アップロード可能であるかを問い合わせ、一のアップロードサービスが直接アップロード可能である場合に、一のアップロードサービスにデータを直接アップロードするための必要情報をサーバから取得させ、当該必要情報に基づき、アップロードサービスにデータを直接アップロードさせるようにした。
【００１４】
こうすることで、従来のようなサーバを経由してアップロードを行う場合と比して、サーバへのアクセス集中を軽減できる。また、アップロードサービスの追加や削除、アップロード方法の変更等があった場合でも、サーバ側でサービス情報を更新すればよく、通信装置側でのユーザ作業が増えてしまうことを防止できる。
【００１５】
すなわち、従来のようなサーバを経由してアップロードする場合の利点であるアップロードの容易さを維持しつつ、アップロードを迅速に行うことができる。
【発明の効果】
【００１６】
本発明によれば、従来のようなサーバを経由してアップロードを行う場合と比して、サーバへのアクセス集中を軽減できる。さらにアップロードサービスの追加や削除、アップロード方法の変更等があった場合でも、サーバ側でサービス情報を更新すればよく、通信装置側でのユーザ作業が増えてしまうことを防止できる。すなわち、従来のようなサーバを経由してアップロードする場合の利点であるアップロードの容易さを維持しつつ、アップロードを迅速に行うことができる。かくして、アップロードを迅速且つ容易に行い得る通信装置、サーバ、プログラム及び通信システムを実現できる。
【図面の簡単な説明】
【００１７】
【図１】第１の実施の形態の概要となる通信システムの構成を示すブロック図である。
【図２】第１の実施の形態の具体例となるアップロードシステムの構成を示す略線図である。
【図３】アップロードサービスのサービス形態の違い（１）の説明に供する表である。
【図４】アップロードサービスのサービス形態の違い（２）の説明に供する表である。
【図５】ダイレクトアップロードの仕組みの説明に供する略線図である。
【図６】中継アップロードの仕組みの説明に供する略線図である。
【図７】クライアント、中継サーバ、サービス提供サーバの構成を示すブロック図である。
【図８】アップロードシーケンスを示すシーケンスチャートである。
【図９】ＧＵＩ画面の構成を示す略線図である。
【図１０】図８に示すシーケンスチャートにつづくシーケンスチャートである。
【図１１】ダイレクトアップロードを行うために必要な必要情報を示す略線図である。
【図１２】図１０に示すシーケンスチャートにつづくシーケンスチャートである。
【図１３】メタデータを別途アップロードする場合のアップロードシーケンスを示すシーケンスチャートである。
【図１４】中継アップロードを行う場合のアップロードシーケンスを示すシーケンスチャートである。
【図１５】クライアントが実行するアップロード処理手順を示すフローチャートである。
【図１６】図１５に示すフローチャートにつづくフローチャートである。
【図１７】第２の実施の形態におけるクライアントが実行するアップロード処理手順を示すフローチャートである。
【図１８】図１７に示すフローチャートにつづくフローチャートである。
【発明を実施するための形態】
【００１８】
以下、発明を実施するための最良の形態（以下実施の形態とする）について説明する。尚、説明は以下の順序で行う。
１．第１の実施の形態
２．第２の実施の形態
３．他の実施の形態
【００１９】
＜１．第１の実施の形態＞
［１−１．第１の実施の形態の概要］
まず、第１の実施の形態の概要を説明する。因みに、この概要を説明した後、第１の実施の形態の具体例の説明に移る。
【００２０】
図１において１は、通信システムを示す。この通信システム１は、任意のアップロードサービスにデータをアップロードする通信装置１０と、複数のアップロードサービス各々のサービス情報を記憶保持するサーバ２０とで構成される。
【００２１】
通信装置１０は、ネットワークを介した通信を行う通信部１１と、この通信部１１を制御する制御部１２とを有している。
【００２２】
そしてこの通信装置１０の制御部１２は、通信部１１を制御して、サーバ２０に対して、一のアップロードサービスが直接アップロード可能であるかを問い合わせるようになっている。
【００２３】
また制御部１２は、問い合わせた結果、一のアップロードサービスが直接アップロード可能である場合に、通信部１１を制御して、一のアップロードサービスにデータを直接アップロードするための必要情報をサーバ２０から取得する。
【００２４】
そして制御部１２は、この必要情報に基づき、通信部１１を制御して、一のアップロードサービスにデータを直接アップロードする。具体的には、一のアップロードサービスが指定するアップロード先にデータを転送する。
【００２５】
一方、サーバ２０は、ネットワークを介した通信を行う通信部２１と、この通信部２１を制御する制御部２２と、複数のアップロードサービス各々のサービス情報を記憶保持する記憶部２３とを有している。
【００２６】
そしてこのサーバ２０の制御部２２は、通信部２１を制御して、記憶部２３に記憶保持しているサービス情報に基づき、通信装置１０からの一のアップロードサービスが直接アップロード可能であるかの問い合わせに応答する。
【００２７】
さらにこの制御部２２は、一のアップロードサービスが直接アップロード可能である場合に、記憶保持しているサービス情報に基づき、通信部２１を制御して、一のアップロードサービスにデータを直接アップロードするための必要情報を通信装置１０に送信する。
【００２８】
このような構成により、この通信システム１では、従来のようなサーバ２０を経由してアップロードを行う場合と比して、サーバ２０へのアクセス集中を軽減できる。また、この通信システム１では、アップロードサービスの追加や削除、アップロード方法の変更等があった場合でも、サーバ２０側でサービス情報を更新すればよく、通信装置１０側でのユーザ作業が増えてしまうことを防止できる。
【００２９】
すなわち、この通信システム１では、従来のようなサーバ２０を経由してアップロードする場合の利点であるアップロードの容易さを維持しつつ、アップロードを迅速に行うことができる。
【００３０】
このような構成でなる通信システム１の具体例について、以下、詳しく説明する。
【００３１】
［１−２．実施の形態の具体例］
［１−２−１．アップロードシステムの構成］
次に、図２を用いて、本実施の形態の具体例となるアップロードシステム１００の構成について説明する。
【００３２】
図２に示すように、アップロードシステム１００は、クライアント１０１（１０１Ａ、１０１Ｂ）と、ウェブサーバ１０２と、中継サーバ１０３と、サービス提供サーバ１０４（１０４Ａ〜１０４Ｃ）とで構成される。これらの機器は、インターネットなどのネットワークを介して通信する機能を有する。ここで、クライアント１０１が、上述した通信装置１０の具体例である。また中継サーバ１０３が、上述したサーバ２０の具体例である。
【００３３】
サービス提供サーバ１０４Ａ〜１０４Ｃは、それぞれアップロードサービスをユーザに提供するプロバイダＡ〜Ｃが運営するサーバである。具体的に、サービス提供サーバ１０４Ａ〜１０４Ｃは、クライアント１０１からアップロードされた画像データを保管する。サービス提供サーバ１０４Ａ〜１０４Ｃにアップロードされた画像データは、アップロードしたユーザ毎に管理され、アップロードしたユーザが自由に閲覧できるばかりでなく、ネットワークを介して他のユーザに公開できるようにもなっている。
【００３４】
サービス提供サーバ１０４Ａ〜１０４Ｃの各々を運営するプロバイダＡ〜Ｃのそれぞれは、画像データのアップロードサービスを提供する点で共通するが、アップロードサービスのサービス形態が異なっている。
【００３５】
ここで、図３及び図４を用いて、プロバイダＡ〜Ｃが提供するアップロードサービスＡ〜Ｃのサービス形態の違いについて、具体的に説明する。各アップロードサービスＡ〜Ｃのサービス形態は、図３及び図４に示すように、複数の項目で表すことができる。つまり、各アップロードサービスＡ〜Ｃは、これら複数の項目が示す内容の少なくとも一部が異なっており、このことがサービス形態の違いを意味する。
【００３６】
例えば、項目の１つとして、「対応フォーマット」がある。この項目は、各アップロードサービスＡ〜Ｃが、静止画データのアップロードと動画データのアップロードとのどちらに対応しているかを示す項目である。例えば、アップロードサービスＡは、静止画データのアップロードのみに対応しており、その旨が「対応フォーマット」に示されている。また、アップロードサービスＣは、静止画データのアップロードと動画データのアップロードの両方に対応しており、その旨が「対応フォーマット」に示されている。
【００３７】
また、項目の１つとして、「公開／非公開設定」がある。この項目は、各アップロードサービスＡ〜Ｃが、アップロードされた画像データの公開／非公開の設定が可能か否かを示す項目である。例えば、アップロードサービスＡは、画像データの公開／非公開の設定が可能であり、その旨が「公開／非公開設定」に示されている。また、アップロードサービスＢは、画像データの公開／非公開の設定が不可能であり、その旨が「公開／非公開設定」に示されている。
【００３８】
さらに、項目の１つとして、「アルバム機能」がある。この項目は、各アップロードサービスＡ〜Ｃが、アップロードされた複数の画像データをアルバムとして管理する機能（これをアルバム機能とも呼ぶ）を有しているか否かを示す項目である。例えば、アップロードサービスＡは、アルバム機能を有しており、その旨が「アルバム機能」に示されている。また、アップロードサービスＢは、アルバム機能を有しておらず、その旨が「アルバム機能」に示されている。
【００３９】
さらに、項目の１つとして、「アルバムタイトル入力」がある。この項目は、各アップロードサービスＡ〜Ｃが、アップロードされた複数の画像をアルバムとして管理するうえで、アルバムのタイトル（すなわちアルバムタイトル）を入力できるか否かを示す項目である。例えば、アップロードサービスＡは、アルバムタイトルを入力でき、その旨が「アルバムタイトル入力」に示されている。また、アップロードサービスＢは、アルバムタイトルを入力できず、その旨が「アルバムタイトル入力」に示されている。
【００４０】
さらに、項目の１つとして、「画像タイトル入力」がある。この項目は、各アップロードサービスＡ〜Ｃが、アップロードされた画像データのタイトル（すなわち画像タイトル）を入力できるか否かを示す項目である。例えば、アップロードサービスＡは、画像タイトルを入力でき、その旨が「画像タイトル入力」に示されている。
【００４１】
さらに、項目の１つとして、「画像説明文入力」がある。この項目は、各アップロードサービスＡ〜Ｃが、アップロードされた画像データの説明文（すなわち画像説明文）を入力できるか否かを示す項目である。例えば、アップロードサービスＡは、画像説明文を入力でき、その旨が「画像説明文入力」に示されている。また、アップロードサービスＢは、画像説明文を入力できず、その旨が「画像説明文入力」に示されている。
【００４２】
さらに、項目の１つとして、「タグ入力」がある。この項目は、各アップロードサービスＡ〜Ｃが、アップロードされた画像データのタグを入力できるか否かを示すも項目である。タグとは、画像データを検索するときのキーとなる情報である。
【００４３】
例えば、アップロードサービスＡでは、タグを入力することができず、その旨が「タグ入力」に示されている。また、アップロードサービスＢでは、タグを入力することができ、その旨が「タグ入力」に示されている。
【００４４】
さらに、項目の１つとして、「ログインパラメータ」がある。この項目は、各アップロードサービスＡ〜Ｃが、画像データのアップロード時にクライアント側に要求するログインパラメータの種類を示す項目である。例えば、アップロードサービスＡは、ログインパラメータとして、メールアドレスとパスワードを要求するようになっており、その旨が「ログインパラメータ」に示されている。また、アップロードサービスＢは、ログインパラメータとして、ＩＤとパスワードを要求するようになっており、その旨が「ログインパラメータ」に示されている。
【００４５】
さらに、項目の１つとして、「静止画最大サイズ」（図４）がある。この項目は、各アップロードサービスＡ〜Ｃでの、アップロードできる静止画データの最大サイズを示す項目である。例えば、アップロードサービスＡでは、最大５ＭＢの静止画データをアップロードできるようになっており、その旨が「静止画最大サイズ」に示されている。
【００４６】
さらに、項目の１つとして、「動画最大サイズ」がある。この項目は、各アップロードサービスＡ〜Ｃでの、アップロードできる動画データの最大サイズを示す項目である。例えば、アップロードサービスＢは、最大１００ＭＢの動画データをアップロードできるようになっており、その旨が「動画最大サイズ」に示されている。
【００４７】
さらに、項目の１つとして、「動画最大時間」がある。この項目は、各アップロードサービスＡ〜Ｃでの、アップロードできる動画データの最大時間を示す項目である。例えば、アップロードサービスＢは、最大１０分の動画データをアップロードできるようになっており、その旨が「動画最大時間」に示されている。
【００４８】
さらに、項目の１つとして、「最大コンテンツ数」がある。この項目は、各アップロードサービスＡ〜Ｃでの、各ユーザがアップロードできる画像データの最大数を示す項目である。例えば、アップロードサービスＢは、各ユーザがアップロードできる画像データの最大数が２０であり、その旨が「最大コンテンツ数」に示されている。
【００４９】
さらに、項目の１つとして、「サービスロゴ」がある。この項目は、各アップロードサービスＡ〜Ｃで使用するサービスロゴの画像ファイルを示す項目である。
【００５０】
さらに、項目の１つとして、「サービス商標文」がある。この項目は、各アップロードサービスＡ〜Ｃが使用するサービス商標文の文面を示す項目である。
【００５１】
さらに、項目の１つとして、「アップロード順序」がある。この項目は、各アップロードサービスＡ〜Ｃでの、画像データをアップロードするときの順番を示す項目である。
【００５２】
さらに、項目の１つとして、「ダイレクトアップロード対応」がある。この項目は、各アップロードサービスＡ〜Ｃが、ダイレクトアップロードに対応しているか否かを示す項目である。
【００５３】
ダイレクトアップロードとは、図５に示すように、画像データを、クライアント１０１から中継サーバ１０３を経由しないでサービス提供サーバ１０４にアップロードすることである。これに対して、図６に示すように、画像データを、クライアント１０１から中継サーバ１０３を経由してサービス提供サーバ１０４にアップロードすることを、中継アップロードとも呼ぶ。
【００５４】
尚、詳しくは後述するが、ダイレクトアップロードであっても、中継アップロードであっても、クライアント１０１からサービス提供サーバ１０４へのログイン及びセッションＩＤの発行等は、中継サーバ１０３を介して行われる。つまり、中継サーバ１０３は、クライアント１０１から各アップロードサービスＡ〜Ｃを利用するときの共通窓口（ポータル）としての役割を担っている。
【００５５】
ここで、例えば、アップロードサービスＢは、ダイレクトアップロードに対応しており、その旨が「ダイレクトアップロード対応」に示されている。また、アップロードサービスＡは、ダイレクトアップロードに対応しておらず、その旨が「ダイレクトアップロード対応」に示されている。
【００５６】
さらに、項目の１つとして、「サーバ側自動処理」がある。この項目は、各アップロードサービスＡ〜Ｃが、画像データのアップロード時にサービス提供サーバ１０４Ａ〜１０４Ｃで自動的に実行する処理を示す項目である。
【００５７】
このように、プロバイダＡ〜Ｃが提供するアップロードサービスＡ〜Ｃのそれぞれは、サービス形態が異なっており、このため、画像データのアップロード方法も異なっている。
【００５８】
例えば、アップロードサービスＢとＣは、共にダイレクトアップロードに対応しているが、そのアップロード方法が異なっている。
【００５９】
つまり、クライアント１０１は、アップロードサービスＢ及びＣの各々に応じた方法でダイレクトアップロードを行う必要がある。
【００６０】
そこで、例えば、クライアント１０１に、アップロードサービスＢ及びＣの各々を利用してダイレクトアップロードを行うために必要な情報（これを必要情報とも呼ぶ）を予め記憶させておくようにすることが考えられる。
【００６１】
しかしながら、この場合、アップロードサービスの追加や削除、アップロード方法の変更等に対応できない。対応させるには、その都度、クライアント１０１側で必要情報を更新しなければならず、このような作業をユーザに強いることになってしまう。
【００６２】
そこで、このアップロードシステム１００では、ダイレクトアップロード時に、クライアント１０１が、中継サーバ１０３から、利用するアップロードサービスに応じた必要情報を取得するようになっている。
【００６３】
実際、中継サーバ１０３は、アップロードサービスＡ〜Ｃの各々に関するサービス情報を保持しており、このサービス情報から必要情報を得て、クライアント１０１に提供するようになっている。
【００６４】
クライアント１０１は、ダイレクトアップロード時、中継サーバ１０３にアクセスして、利用するアップロードサービスに応じた必要情報を取得し、取得した必要情報に基づいて、ダイレクトアップロードを行う。
【００６５】
こうすることで、アップロードシステム１００では、アップロードサービスの追加や削除、アップロード方法の変更等があった場合でも、中継サーバ１０３側でサービス情報を更新すればよく、クライアント１０１側の負担を軽減できる。
【００６６】
またこのように画像データを中継サーバ１０３を経由させずにサービス提供サーバ１０４に直接アップロードすることで、中継サーバ１０３を経由させて画像データをアップロードする場合と比して、中継サーバ１０３へのアクセス集中を低減できる。
【００６７】
一方、アップロードサービスＡのように、ダイレクトアップロードに対応していないサービスもある。このようなサービスを利用する場合には、中継サーバ１０３を経由した中継アップロードを行う。
【００６８】
すなわち、クライアント１０１は、画像データを中継サーバ１０３に送信する。中継サーバ１０３は、クライアント１０１から送信されてきた画像データを、アップロードサービスＡのサービス提供サーバ１０４Ａにアップロードする。
【００６９】
因みに、クライアント１０１Ａが、中継サーバ１０３及びサービス提供サーバ１０４Ａ〜１０４Ｃに直接アクセスして画像データをアップロードする機能を有しているのに対して、クライアント１０１Ｂは、この機能を有していない。
【００７０】
代わりに、クライアント１０１Ｂは、ウェブブラウザ機能を有し、ウェブサーバ１０２が提供するウェブページから、中継サーバ１０３及びサービス提供サーバ１０４Ａ〜１０４Ｃにアクセスして画像データをアップロードできるようになっている。つまり、クライアント１０１Ｂは、ウェブサーバ１０２と協働して、クライアント１０１Ａと同等の機能を実現するようになっている。
【００７１】
このように、アップロードシステム１００では、クライアント１０１Ａも１０１Ｂも同様に、画像データをアップロードできるようになっている。
【００７２】
［１−２−２．クライアント、中継サーバ、サービス提供サーバの構成］
次に、図７を用いて、クライアント１０１、中継サーバ１０３、サービス提供サーバ１０４の構成について説明する。尚、クライアント１０１Ａとクライアント１０１Ｂとは同一の構成であるとする。またサービス提供サーバ１０４Ａ〜１０４Ｃの各々の構成についても、同一の構成であるとする。
【００７３】
クライアント１０１は、制御部１１０と、通信部１１１と、記憶部１１２と、表示部１１３と、操作入力部１１４とを有する。
【００７４】
制御部１１０は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭで構成され、各種プログラムや各種ＡＰＩに基づいて、全体を統括的に制御すると共に、画像データのアップロードに係わる各種処理（詳しくは後述する）を実行する。因みに、ＡＰＩは、Application  programming  Interfaceの略であり、特定の処理を実行するときに呼び出されるプログラムのことである。また、ＣＰＵ、ＲＯＭ、ＲＡＭは、それぞれCentral  Processing  Unit、Read  Only  Memory、Random  Access  Memoryの略である。
【００７５】
通信部１１１は、制御部１１０の制御のもと、ネットワークを介して、中継サーバ１０３やサービス提供サーバ１０４Ａ〜１０４Ｃとの通信を行う。記憶部１１２は、例えば、ハードディスクドライブやフラッシュメモリであり、各種プログラムや各種ＡＰＩ、各種画像データなどを記憶する。
【００７６】
表示部１１３は、例えば、液晶ディスプレイであり、制御部１１０の制御のもと、画像やアイコン等が配されたＧＵＩ画面を表示する。因みに、ＧＵＩは、Graphical  User  Interfaceの略である。操作入力部１１４は、例えば、操作ボタンやタッチパネルであり、ユーザ操作を入力として受け付け、その入力に応じた命令を制御部１１０に送る。
【００７７】
尚、クライアント１０１Ｂは、基本的にクライアント１０１Ａと同一の構成であるが、クライアント１０１Ａと比較して、プログラムやＡＰＩの実行機能が低い。そこで、このクライアント１０１Ｂは、ウェブサーバ１０２と協働することで、クライアント１０１Ａと同等の実行機能を実現するようになっている。
【００７８】
中継サーバ１０３は、制御部１２０と、通信部１２１と、記憶部１２２とを有する。制御部１２０は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭで構成され、各種プログラムや各種ＡＰＩに基づいて、全体を統括的に制御すると共に、画像データのアップロードに係わる各種処理（詳しくは後述する）を実行する。
【００７９】
通信部１２１は、制御部１２０の制御のもと、ネットワークを介して、クライアント１０１Ａやウェブサーバ１０２、サービス提供サーバ１０４Ａ〜１０４Ｃとの通信を行う。記憶部１２２は、例えば、ハードディスクドライブやフラッシュメモリであり、各種プログラムや各種ＡＰＩ、各種画像データ、アップロードサービスＡ〜Ｃの各々に関するサービス情報等を記憶する。
【００８０】
サービス提供サーバ１０４は、制御部１３０と、通信部１３１と、記憶部１３２とを有する。制御部１３０は、例えば、ＣＰＵ、ＲＯＭ、ＲＡＭで構成され、各種プログラムや各種ＡＰＩに基づいて、全体を統括的に制御すると共に、画像データのアップロードに係わる各種処理（詳しくは後述する）を実行する。
【００８１】
通信部１３１は、制御部１３０の制御のもと、ネットワークを介して、クライアント１０１Ａやウェブサーバ１０２、中継サーバ１０３との通信を行う。記憶部１３２は、例えば、ハードディスクドライブやフラッシュメモリであり、各種プログラムや各種ＡＰＩ、各種画像データ、アップロードサービスＡ〜Ｃのサービス情報等を記憶する。またこの記憶部１３２には、アップロードされた画像データを管理するためのデータベースが構築されている。
【００８２】
尚、ウェブサーバ１０２は、例えば、クライアント１０１Ａの構成から、表示部１１３と、操作入力部１１４とを省略した構成であるとする。すなわち、このウェブサーバ１０２は、クライアント１０１Ａと同等の実行機能を有する。そして、このウェブサーバ１０２は、クライアント１０１Ｂからの要求に応じて、画像データのアップロードに係わる各種処理（詳しくは後述する）を実行するようになっている。
【００８３】
［１−２−３．アップロードシーケンス］
次に、図８〜図１４を用いて、クライアント１０１からサービス提供サーバ１０４に画像データをアップロードするときのシーケンス（これをアップロードシーケンスとも呼ぶ）について説明する。尚、ここでは、クライアント１０１Ａから、ダイレクトアップロードに対応しているアップロードサービスＢのサービス提供サーバ１０４Ｂに、画像データをダイレクトアップロードするときを例に説明する。尚、このアップロードシーケンスは、主として、クライアント１０１Ａの制御部１１０と、中継サーバ１０３の制御部１２０と、サービス提供サーバ１０４Ｂの制御部１３０とが協働して実行するシーケンスである。
【００８４】
まず、図８に示すステップＳＰ１において、ユーザが、操作入力部１１４を介してクライアント１０１Ａにアップロードプログラムの起動を指示したとする。すると、クライアント１０１Ａの制御部１１０は、ステップＳＰ２において、記憶部１１２に格納されているアップロードプログラムを起動する。このアップロードプログラムは、各アップロードサービスＡ〜Ｃで共通のプログラム（これを共通プログラムとも呼ぶ）である。
【００８５】
クライアント１０１Ａの制御部１１０は、このアップロードプログラムに基づき、ステップＳＰ３において、中継サーバ１０３に、現在利用可能なアップロードサービスのリストを、通信部１１１を介して要求する。
【００８６】
中継サーバ１０３の制御部１２０は、通信部１２１を介してこの要求を受けると、ステップＳＰ４において、現在利用可能なアップロードサービスのリストを生成して、これを通信部１２１を介してクライアント１０１Ａに返信する。
【００８７】
因みに、中継サーバ１０３は、各サービス提供サーバ１０４Ａ〜１０４Ｃから、随時、最新のサービス形態等が示されたサービス情報を取得して、記憶部１２２に記憶するようになっている。そして、中継サーバ１０３の制御部１２０は、このサービス情報をもとに、アップロードサービスのリストを生成して、クライアント１０１Ａに送信する。このリストには、現在利用可能なアップロードサービス毎に、例えば、そのプロバイダの名称と、そのサービス形態の一部（例えば、対応フォーマット）とが記されている。
【００８８】
クライアント１０１Ａの制御部１１０は、通信部１１１を介してこのリストを受信すると、ステップＳＰ５において、このリストをＧＵＩ画面（図示せず）として表示部１１３に表示させる。こうすることで、クライアント１０１Ａは、ユーザに、現在利用可能なアップロードサービスを確認させることができる。
【００８９】
このＧＵＩ画面では、リストから所望のアップロードサービスを選択できるようになっている。そして、ユーザが、ステップＳＰ６において、操作入力部１１４を介して、リストから所望のアップロードサービス（例えばアップロードサービスＢ）を選択したとする。すると、クライアント１０１Ａの制御部１１０は、ステップＳＰ７において、中継サーバ１０３に、選択されたアップロードサービスの詳細情報を、通信部１１１を介して要求する。
【００９０】
因みに、詳細情報の要求は、クライアント１０１Ａの制御部１１０が、記憶部１１２に格納されている詳細情報取得用ＡＰＩを呼び出すことで実行される。この詳細情報取得用ＡＰＩは、各アップロードサービスＡ〜Ｃで共通のＡＰＩ（これを共通ＡＰＩとも呼ぶ）である。
【００９１】
中継サーバ１０３の制御部１２０は、通信部１２１を介して要求を受けると、ステップＳＰ８において、選択されたアップロードサービスの詳細情報を、通信部１２１を介してクライアント１０１Ａに返信する。
【００９２】
ここで、中継サーバ１０３の制御部１２０は、記憶部１２２に記憶された各アップロードサービスＡ〜Ｃのサービス情報から、選択されたアップロードサービスに対応する情報を抽出して、これを詳細情報として返信するようになっている。
【００９３】
つまり、この詳細情報には、選択されたアップロードサービスのサービス形態に関する情報として、図３及び図４に示した各項目が示す内容が含まれている。よって、この詳細情報から、選択されたアップロードサービスのサービス形態（静止画のアップロードと動画のアップロードとのどちらに対応しているのか、ダイレクトアップロードに対応しているのか等）がわかる。
【００９４】
またこの詳細情報は、例えばＸＭＬ形式で記述されたテキストデータであり、選択されたアップロードサービスを利用するときにクライアント１０１Ａの表示部１１３に表示させるＧＵＩ画面を構成する情報も含んでいる。
【００９５】
クライアント１０１Ａの制御部１１０は、通信部１１１を介して詳細情報を受信すると、ステップＳＰ９において、この詳細情報に基づくＧＵＩ画面を表示部１１３に表示させる。このとき表示されるＧＵＩ画面は、選択されたアップロードサービスによって異なる。図９に、このとき表示されるＧＵＩ画面２００を示す。このＧＵＩ画面２００は、アップロードサービスＢが選択されたときに表示されるＧＵＩ画面である。
【００９６】
このＧＵＩ画面２００には、左上に、アップロードサービスＢのプロバイダＢのアイコン・ロゴ２０１が表示される。またこのアイコン・ロゴ２０１の右側に、ログインに必要な情報（これをログイン情報とも呼ぶ）を入力するためのログイン情報入力欄２０２と、入力されたログイン情報の送信を指示するための送信ボタン２０３とが設けられている。
【００９７】
さらにこのＧＵＩ画面２００には、中央に、アップロードする画像データの一覧が表示されるアップロード画像表示領域２０４が設けられている。さらに、このアップロード画像表示領域２０４の下方に、アップロードする画像データのサイズが表示されるサイズ表示領域２０５が設けられている。
【００９８】
さらに、このサイズ表示領域２０５の下方に、画像データを新規のアルバムとしてアップロードするか、既存のアルバムに追加するようにしてアップロードするかを指定するためのアルバム指定チェックボックス２０６が設けられている。
【００９９】
さらに、このアルバム指定チェックボックス２０６の下方に、画像データのタイトルを入力するためのタイトル入力欄２０７が設けられている。さらに、このタイトル入力欄２０７の下方に、画像データの説明文（コメント）を入力するためのコメント入力欄２０８が設けられている。
【０１００】
さらに、このＧＵＩ画面２００には、右下に、アップロードの実行を指示するためのアップロード実行ボタン２０９が設けられている。
【０１０１】
ユーザは、このＧＵＩ画面２００を介して、ログイン情報の入力や、アップロードする画像データの選択、画像データを格納するアルバムの指定、タイトル及び説明文の入力、アップロードの実行等を行うことができるようになっている。
【０１０２】
尚、図９に示すＧＵＩ画面２００は、一例であり、詳細情報に基づいて、タグを入力するための入力欄や、アップロードする画像データの公開／非公開設定を指定するためのチェックボックス等を設けるようにしてもよい。
【０１０３】
そして、ユーザが、図１０に示すステップＳＰ１０において、操作入力部１１４を介して、ログイン情報入力欄２０２にログイン情報を入力し、送信ボタン２０３を押下したとする。すると、クライアント１０１Ａの制御部１１０は、ステップＳＰ１１において、入力されたログイン情報を、通信部１１１を介して中継サーバ１０３に送信する。
【０１０４】
因みに、クライアント１０１Ａによるログイン情報の送信は、クライアント１０１Ａの制御部１１０が、記憶部１１２に格納されているログイン処理用ＡＰＩを呼び出すことで実行される。このログイン処理用ＡＰＩも、共通ＡＰＩである。ただし、送信すべきログイン情報は、選択されたアップロードサービスによって異なる。
【０１０５】
中継サーバ１０３の制御部１２０は、通信部１２１を介してログイン情報を受信すると、ステップＳＰ１２において、このログイン情報を、選択されているアップロードサービスＢのサービス提供サーバ１０４Ｂに、通信部１２１を介して転送する。
【０１０６】
因みに、中継サーバ１０３によるサービス提供サーバ１０４Ｂへのログイン情報の転送は、ログイン処理用ＡＰＩを呼び出すことで実行される。このログイン処理用ＡＰＩは、各アップロードサービスＡ〜Ｃで固有のＡＰＩ（これを固有ＡＰＩとも呼ぶ）である。この固有ＡＰＩは、例えば、各サービス提供サーバ１０４Ａ〜Ｃから提供され、中継サーバ１０３の記憶部１２２に記憶されている。
【０１０７】
サービス提供サーバ１０４Ｂの制御部１３０は、通信部１３１を介してログイン情報を受信すると、ステップＳＰ１３において、このログイン情報を検証する。そして、制御部１３０は、検証の結果、正当なアップロード権限を有するユーザからのログイン要求であると確認できると、中継サーバ１０３に対するセッションＩＤを発行する。そして、制御部１３０は、ステップＳＰ１４において、発行したセッションＩＤと、ログインの許可を示すログイン結果とを、通信部１３１を介して中継サーバ１０３に送信する。
【０１０８】
サービス提供サーバ１０４Ｂが発行するセッションＩＤは、サービス提供サーバ１０４Ｂと中継サーバ１０３との間のセッション維持に利用されるＩＤである。すなわち、以降のサービス提供サーバ１０４Ｂと中継サーバ１０３との通信は、このセッションＩＤを付与して行われる。こうすることで、中継サーバ１０３がサービス提供サーバ１０４Ｂにアクセスする度にログイン情報を送信して、サービス提供サーバ１０４Ｂがログイン情報を検証するような処理を省略することができる。尚、このセッションＩＤを、サービス提供サーバ用セッションＩＤとも呼ぶ。
【０１０９】
中継サーバ１０３の制御部１２０は、通信部１２１を介してログイン結果とサービス提供サーバ用セッションＩＤとを受信すると、クライアント１０１Ａに対するセッションＩＤを発行する。また、制御部１２０は、サービス提供サーバ用セッションＩＤを、記憶部１２２に記憶する。そして、制御部１２０は、ステップＳＰ１５において、発行したセッションＩＤと、受信したログイン結果とを、通信部１２１を介してクライアント１０１Ａに送信する。
【０１１０】
中継サーバ１０３が発行するセッションＩＤは、中継サーバ１０３とクライアント１０１Ａとの間のセッション維持に利用されるＩＤである。すなわち、以降の中継サーバ１０３とクライアント１０１Ａとの通信は、このセッションＩＤを付与して行われる。尚、このセッションＩＤを、中継サーバ用セッションＩＤとも呼ぶ。
【０１１１】
クライアント１０１Ａの制御部１１０は、通信部１１１を介してログイン結果と中継サーバ用セッションＩＤとを受信すると、中継サーバ用セッションＩＤを記憶部１１２に記憶する。また、制御部１１０は、ステップＳＰ１６において、受信したログイン結果をもとに、例えば、正常にログインできた旨を、ＧＵＩ画面２００に表示する。
【０１１２】
そして、ユーザが、ステップＳＰ１７において、ＧＵＩ画面２００を介して、アップロードする画像データの選択や、タイトル及び説明文の入力と言ったアップロードの準備作業を行った後、アップロード実行ボタン２０９を押下したとする。
【０１１３】
するとクライアント１０１Ａの制御部１１０は、先に受信したアップロードサービスＢの詳細情報に、アップロードサービスＢがダイレクトアップロードに対応する旨が示されていることから、ダイレクトアップロードを行う。
【０１１４】
すなわち、クライアント１０１Ａの制御部１１０は、まずステップＳＰ１８において、アップロードする画像データのメタデータと、ファイル名及びサイズでなるパラメータとを、通信部１１１を介して中継サーバ１０３に送信する。
【０１１５】
ここで、メタデータとは、ＧＵＩ画面２００を介して入力又は指定された画像データのタイトルや説明文、画像データを格納するアルバムのＩＤ、画像データの公開／非公開設定などである。
【０１１６】
因みに、メタデータ及びパラメータの送信は、クライアント１０１Ａの制御部１１０が、記憶部１１２に格納されているダイレクトアップロード開始ＡＰＩを呼び出すことで実行される。このダイレクトアップロード開始ＡＰＩは、共通ＡＰＩである。ただし、送信するデータの内容は、異なる。
【０１１７】
中継サーバ１０３の制御部１２０は、メタデータ及びパラメータを受信すると、ステップＳＰ１９において、サービス提供サーバ１０４Ｂへのダイレクトアップロードを行うために必要な必要情報を、クライアント１０１Ａに送信する。
【０１１８】
この必要情報は、クライアント１０１Ａから受信したメタデータ及びパラメータと、アップロード先のサービス提供サーバ１０４Ｂから取得したサービス情報及びサービス提供サーバ用セッションＩＤとをもとに生成される。
【０１１９】
すなわち、この必要情報には、例えば、メタデータ及びパラメータと、アップロード先（この場合サービス提供サーバ１０４Ｂ）のアドレス、画像データのデータ形式、必要なヘッダ情報、サービス提供サーバ用セッションＩＤ等が含まれている。
【０１２０】
図１１にこの必要情報の具体例を示す。この必要情報は、例えばＸＭＬ形式で記述されたテキストデータである。因みに、図１１に示す必要情報は、サービス提供サーバ用セッションＩＤ、画像データのタイトル、説明文、公開／非公開設定、データ形式、ファイル名、必要なヘッダ情報、サービス提供サーバ用セッションＩＤなどが記述された例である。
【０１２１】
クライアント１０１Ａの制御部１１０は、中継サーバ１０３から必要情報を受信すると、この必要情報に基づき、適宜、アップロードする画像データ及びメタデータを加工する。例えば、アップロードする画像データが、指定されたデータ形式でない場合に、指定されたデータ形式に変換する。
【０１２２】
さらに制御部１１０は、画像データ及びメタデータをアップロードデータとし、必要情報に基づいて、指定された情報をこのアップロードデータに情報を付与する。例えば、必要情報に記されたヘッダ情報及びサービス提供サーバ用セッションＩＤを付与する。
【０１２３】
そして制御部１１０は、ステップＳＰ２０（図１０）において、このアップロードデータを、必要情報に記述されたアップロード先のアドレス、つまりサービス提供サーバ１０４Ｂに対して直接アップロードする。つまりサービス提供サーバ１０４Ｂへのダイレクトアップロードを行う。
【０１２４】
サービス提供サーバ１０４Ｂの制御部１３０は、通信部１３１を介して、クライアント１０１Ａからアップロードデータを受信すると、このアップロードデータを記憶部１３２に記憶させ、データベースに登録することで管理する。
【０１２５】
そして制御部１３０は、クライアント１０１Ａからのダイレクトアップロードが終了すると、ステップＳＰ２１において、その結果（これをアップロード結果とも呼ぶ）を、通信部１３１を介して、クライアント１０１Ａに返信する。
【０１２６】
クライアント１０１Ａの制御部１１０は、アップロード結果を受信すると、ステップＳＰ２２（図１２）において、このアップロード結果を、アップロードした画像データのメタデータ及びパラメータと共に、中継サーバ１０３に転送する。
【０１２７】
ここで、サービス提供サーバ１０４Ｂから提供されるアップロード結果は、各アップロードサービスＢで固有の形式であり、そのままでは、クライアント１０１Ａ側で、内容を理解することができない。
【０１２８】
そこで、アップロードシステム１００では、このアップロード結果を、クライアント１０１Ａが中継サーバ１０３に送信して、中継サーバ１０３が、クライアント１０１Ａ側で認識可能な共通形式に変換するようになっている。
【０１２９】
因みに、メタデータ及びパラメータとアップロード結果の送信は、クライアント１０１Ａの制御部１１０が、記憶部１１２に格納されているダイレクトアップロード終了ＡＰＩを呼び出すことで実行される。このダイレクトアップロード終了ＡＰＩは、ダイレクトアップロード開始ＡＰＩと、アップロード結果を送信する点以外同一のＡＰＩであり、また共通ＡＰＩである。
【０１３０】
中継サーバ１０３の制御部１２０は、メタデータ及びパラメータとアップロード結果を受信すると、ステップＳＰ２３において、アップロード結果を、クライアント１０１Ａで認識可能な共通形式に変換する。
【０１３１】
因みに、アップロード結果の変換は、中継サーバ１０３の制御部１２０が、記憶部１２２に格納されているアップロード結果変換用ＡＰＩを呼び出すことで実行される。このアップロード結果変換用ＡＰＩは、固有ＡＰＩであり、例えば、各サービス提供サーバ１０４Ａ〜Ｃから提供され、中継サーバ１０３の記憶部１２２に記憶されている。
【０１３２】
そして、制御部１２０は、ステップＳＰ２４において、共通形式のアップロード結果を、通信部１２１を介してクライアント１０１Ａに返信する。
【０１３３】
クライアント１０１Ａの制御部１１０は、共通形式のアップロード結果を受信すると、ステップＳＰ２５において、このアップロード結果をもとに、アップロードに成功した旨、もしくは失敗した旨を、例えば、ＧＵＩ画面２００に表示する。
【０１３４】
このようなアップロードシーケンスにより、アップロードシステム１００は、クライアント１０１Ａから、サービス提供サーバ１０４Ｂに、画像データをダイレクトアップロードするようになっている。
【０１３５】
ところで、図８〜１２を用いて説明したアップロードシーケンスでは、画像データとメタデータとをアップロードデータとして一度にアップロードするようにした。ところが、アップロードサービスによっては、画像データをアップロードしてから、別途そのメタデータをアップロードすると言った２段階のアップロードが要求される。
【０１３６】
ここで、例えば、アップロードサービスＣがこのような２段階のアップロードを要求するサービスであるとする。
【０１３７】
この場合、クライアント１０１Ａの制御部１１０は、中継サーバ１０３から受信した必要情報に基づき、上述したステップＳＰ２０（図１０）において、画像データをサービス提供サーバ１０４Ｃにダイレクトアップロードする。このとき制御部１１０は、メタデータはアップロードしない。
【０１３８】
その後、ステップＳＰ２１で画像データのアップロード結果がクライアント１０１Ａに返信される。さらにステップＳＰ２２（図１３）において、クライアント１０１Ａが、このアップロード結果と、アップロードした画像データのメタデータ及びパラメータとを、中継サーバ１０３に送信する。
【０１３９】
中継サーバ１０３の制御部１２０は、アップロード結果と、メタデータ及びパラメータとを受信すると、図１３に示すステップＳＰ１００において、このメタデータを、サービス提供サーバ１０４Ｃにアップロードする。
【０１４０】
このように、画像データのアップロードとメタデータのアップロードとの２段階のアップロードが要求される場合、まずクライアント１０１Ａからアップロード先に画像データをダイレクトアップロードする。その後、その画像データのメタデータをクライアント１０１Ａから中継サーバ１０３を介してアップロード先に中継アップロードする。
【０１４１】
因みに、中継サーバ１０３によるサービス提供サーバ１０４Ｃへのメタデータのアップロードは、アップロード用ＡＰＩを呼び出すことで実行される。このアップロード用ＡＰＩは、固有ＡＰＩであり、例えば、各サービス提供サーバ１０４Ａ〜Ｃから提供され、中継サーバ１０３の記憶部１２２に記憶されている。
【０１４２】
サービス提供サーバ１０４の制御部１３０は、メタデータを受信すると、このメタデータを記憶部１３２に記憶させ、先にアップロードされた画像データに対応付けてデータベースに登録することで管理する。
【０１４３】
そして制御部１３０は、中継サーバ１０３からのメタデータのアップロードが終了すると、ステップＳＰ１０１において、メタデータのアップロード結果を、通信部１３１を介して、中継サーバ１０３に返信する。
【０１４４】
中継サーバ１０３の制御部１２０は、メタデータのアップロード結果を受信すると、ステップＳＰ１０２において、このアップロード結果と、先にクライアント１０１Ａから受信した画像データのアップロード結果とを、共通形式に変換する。
【０１４５】
そして、制御部１２０は、ステップＳＰ２４において、共通形式のアップロード結果を、通信部１２１を介してクライアント１０１Ａに返信する。クライアント１０１Ａの制御部１２０は、ステップＳＰ２５において、このアップロード結果をもとにアップロードに成功した旨、もしくは失敗した旨を、例えば、ＧＵＩ画面２００に表示する。
【０１４６】
このようなアップロードシーケンスにより、アップロードシステム１００は、画像データとメタデータの２段階のアップロードにも対応するようになっている。
【０１４７】
また、図８〜１２を用いて説明したアップロードシーケンスでは、アップロードデータをアップロード先にダイレクトアップロードするようにした。ところが、ダイレクトアップロードに対応していないアップロードサービスもある。このようなアップロードサービスを利用する場合、中継アップロードを行う。
【０１４８】
ここで、例えば、アップロードサービスＡがダイレクトアップロードに対応していないサービスであるとする。
【０１４９】
この場合、クライアント１０１Ａの制御部１１０は、上述したステップＳＰ１８（図１０）において、画像データとメタデータとを中継サーバ１０３に送信する。
【０１５０】
中継サーバ１０３の制御部１２０は、画像データとメタデータとを受信すると、図１４に示すステップＳＰ２００において、これらをアップロードデータとしてサービス提供サーバ１０４Ａにアップロードする。
【０１５１】
このとき、中継サーバ１０３の制御部１２０は、サービス提供サーバ１０４Ａから取得したサービス情報に基づき、適宜、画像データ及びメタデータを加工したり、アップローデータに必要な情報を付与したりする。
【０１５２】
因みに、このアップロードは、中継サーバ１０３の制御部１２０が、記憶部１１２に格納されている中継アップロードＡＰＩを呼び出すことで実行される。この中継アップロードＡＰＩは、固有ＡＰＩである。
【０１５３】
サービス提供サーバ１０４Ａの制御部１３０は、中継サーバ１０３からアップロードデータを受信すると、このアップロードデータを記憶部１３２に記憶させ、データベースに登録することで管理する。
【０１５４】
そして制御部１３０は、中継サーバ１０３からのアップロードが終了すると、ステップＳＰ２０１において、そのアップロード結果を、中継サーバ１０３に返信する。
【０１５５】
中継サーバ１０３の制御部１２０は、アップロード結果を受信すると、ステップＳＰ２３において、このアップロード結果を、クライアント１０１Ａで理解可能な共通形式に変換する。
【０１５６】
そして、制御部１２０は、ステップＳＰ２４において、共通形式のアップロード結果を、クライアント１０１Ａに返信する。
【０１５７】
クライアント１０１Ａの制御部１１０は、共通形式のアップロード結果を受信すると、ステップＳＰ２５において、このアップロード結果をもとに、アップロードに成功した旨、もしくは失敗した旨を、例えば、ＧＵＩ画面２００に表示する。
【０１５８】
このようなアップロードシーケンスにより、アップロードシステム１００は、クライアント１０１Ａから、中継サーバ１０３を経由して、サービス提供サーバ１０４Ａに、画像データを中継アップロードするようになっている。
【０１５９】
ここまで説明したように、このアップロードシステム１００では、中継サーバ１０３が、アップロードサービスＡ〜Ｃの各々に関するサービス情報を記憶保持するようになっている。
【０１６０】
そしてこの中継サーバ１０３が、サービス情報から、ダイレクトアップロードを行うために必要な必要情報を得て、これをクライアント１０１Ａに送信するようにした。
【０１６１】
クライアント１０１Ａは、この必要情報に基づいて、指定されたアップロード先へのダイレクトアップロードを行う。
【０１６２】
こうすることで、アップロードシステム１００では、従来のような中継サーバ１０３を経由してアップロードを行う場合と比して、中継サーバ１０３へのアクセス集中を軽減できる。この結果、アップロードに要する時間を、必ず中継アップロードを行うシステムと比して大幅に短縮することができる。
【０１６３】
また、このアップロードシステム１００では、アップロードサービスの追加や削除、アップロード方法の変更等があった場合でも、中継サーバ１０３側でサービス情報を更新しさえすればよく、クライアント１０１Ａ側の負担を軽減できる。
【０１６４】
このように、このアップロードシステム１００では、迅速且つ容易にアップロードを行うことができるようになっている。
【０１６５】
また、このアップロードシステム１００では、ダイレクトアップロードに対応していないアップロードサービスを利用する場合には、従来と同様、中継サーバ１０３を経由した中継アップロードを行うようにした。
【０１６６】
こうすることで、このアップロードシステム１００では、ダイレクトアップロードが可能なサービスと、中継アップロードしかできないサービスとを共存させることができ、多様なアップロードサービスをユーザに提供できる。
【０１６７】
［１−２−４．クライアントが実行するアップロード処理の手順］
次に、図１５及び図１６を用いて、上述したアップロードシーケンスでのクライアント１０１Ａが実行するアップロード処理の手順（これをアップロード処理手順とも呼ぶ）ＲＴ１について説明する。
【０１６８】
尚、このアップロード処理手順ＲＴ１は、クライアント１０１Ａの制御部１１０が、起動したアップロードプログラムに従って実行する処理の手順である。
【０１６９】
クライアント１０１Ａの制御部１１０は、アップロードプログラムの起動が指示されると、このアップロード処理手順ＲＴ１を開始する。そして制御部１１０は、中継サーバ１０３から、現在利用可能なアップロードサービスのリストを取得して、表示部１１３に表示した後、ステップＳＰ３００に移る。
【０１７０】
ステップＳＰ３００において制御部１１０は、表示したリストから利用するアップロードサービスが選択されるのを待ち受け、選択されると、このステップＳＰ３００で肯定結果を得て、ステップＳＰ３０１に移る。
【０１７１】
ステップＳＰ３０１において制御部１１０は、選択されたアップロードサービスの詳細情報を、中継サーバ１０３から取得して、ステップＳＰ３０２に移る。ステップＳＰ３０２において制御部１１０は、取得した詳細情報に基づいて図９に示したようなＧＵＩ画面２００を表示部１１３に表示して、ステップＳＰ３０３に移る。
【０１７２】
ステップＳＰ３０３において制御部１１０は、表示したＧＵＩ画面２００を介してアップロードが指示されるのを待ち受け、指示されると、このステップＳＰ３０３で肯定結果を得て、ステップＳＰ３０４に移る。
【０１７３】
ステップＳＰ３０４において制御部１１０は、先に受信した詳細情報をもとに、今回利用するアップロードサービスがダイレクトアップロードに対応しているサービスであるか否かを判別する。
【０１７４】
今回利用するアップロードサービスがダイレクトアップロードに対応しているサービスであることによりこのステップＳＰ３０４で肯定結果を得ると、このとき制御部１１０は、ステップＳＰ３０５に移る。
【０１７５】
ステップＳＰ３０５において制御部１１０は、中継サーバ１０３に、アップロードする画像データのメタデータとパラメータ（画像データのファイル名及びサイズ）を送信して、ステップＳＰ３０６に移る。
【０１７６】
ステップＳＰ３０６において制御部１１０は、メタデータとパラメータとを送信した結果として中継サーバ１０３から返信されてくるダイレクトアップロードを行うために必要な必要情報を受信して、ステップＳＰ３０７に移る。
【０１７７】
ステップＳＰ３０７において制御部１１０は、受信した必要情報をもとに、アップロードする画像データ及びメタデータをアップロードデータとして、指定のアドレスに送信して（つまりダイレクトアップロードして）、ステップＳＰ３０８に移る。
【０１７８】
ステップＳＰ３０８において制御部１１０は、アップロード先のサービス提供サーバ１０４から返信されてくるアップロード結果を受信して、ステップＳＰ３０９に移る。ステップＳＰ３０９において制御部１１０は、受信したアップロード結果を、中継サーバ１０３に転送して、ステップＳＰ３１０（図１６）に移る。
【０１７９】
これに対して、今回利用するアップロードサービスがダイレクトアップロードに対応していないサービスであることにより上述のステップＳＰ３０４（図１５）で否定結果を得た場合、制御部１１０は、ステップＳＰ３１１に移る。
【０１８０】
ステップＳＰ３１１において制御部１１０は、アップロードする画像データとメタデータとを中継サーバ１０３に送信して（つまり中継アップロードして）、ステップＳＰ３１０（図１６）に移る。
【０１８１】
ステップＳＰ３１０において制御部１１０は、中継サーバ１０３から返信されてくる共通形式のアップロード結果を受信して、ステップＳＰ３１２に移る。ステップＳＰ３１２において制御部１１０は、共通形式のアップロード結果の内容が、アップロードの成功を示すものであるか否かを判別する。
【０１８２】
アップロード結果の内容がアップロードの成功を示していることにより、このステップＳＰ３１２で肯定結果を得ると、制御部１１０は、ステップＳＰ３１３に移る。ステップＳＰ３１３において制御部１１０は、アップロードが成功した旨を、ＧＵＩ画面２００に表示して、このアップロード処理手順ＲＴ１を終了する。
【０１８３】
これに対して、アップロード結果の内容がアップロードの失敗を示していることにより、上述のステップＳＰ３１２で否定結果を得ると、制御部１１０は、ステップＳＰ３１４に移る。ステップＳＰ３１４において制御部１１０は、アップロードが失敗した旨を、ＧＵＩ画面に表示して、このアップロード処理手順ＲＴ１を狩猟する。
【０１８４】
このようなアップロード処理手順ＲＴ１にしたがって、クライアント１０１Ａは、ダイレクトアップロードもしくは中継アップロードを行うようになっている。
【０１８５】
［１−２−５．動作及び効果］
以上の構成において、アップロードシステム１００では、中継サーバ１０３が、アップロードサービスＡ〜Ｃの各々に関するサービス情報を記憶保持している。そしてこの中継サーバ１０３は、サービス情報から、ダイレクトアップロードを行うために必要な必要情報を得て、これをクライアント１０１Ａに提供するようになっている。
【０１８６】
一方、クライアント１０１Ａは、ユーザに選択されたアップロードサービスがダイレクトアップロードに対応しているか否かを、中継サーバ１０３から取得した詳細情報をもとに判別する。そして、選択されたアップロードサービスがダイレクトアップロードに対応している場合、クライアント１０１Ａは、選択されたアップロードサービスを利用してダイレクトアップロードを行う。
【０１８７】
このとき、クライアント１０１Ａは、まず中継サーバ１０３から、このアップロードサービスを利用してダイレクトアップロードを行うために必要な必要情報を取得する。
【０１８８】
そしてクライアント１０１Ａは、この必要情報に基づいて、このアップロードサービスが指定するアップロード先へのダイレクトアップロードを行う。つまり、中継サーバを経由せずに、アップロード先へ直接、データのアップロードを行う。
【０１８９】
こうすることで、アップロードシステム１００では、中継サーバ１０３を経由してアップロードを行う場合と比して、中継サーバ１０３へのアクセス集中を軽減できる。この結果、アップロードに要する時間を、必ず中継アップロードを行うシステムと比して大幅に短縮することができる。
【０１９０】
また、このアップロードシステム１００では、アップロードサービスの追加や削除、アップロード方法の変更等があった場合でも、中継サーバ１０３側でサービス情報を更新しさえすればよく、クライアント１０１Ａ側の負担を軽減できる。つまり、クライアント１０１Ａ側でのユーザ作業が増えてしまうことを防止できる。
【０１９１】
かくして、このアップロードシステム１００では、迅速且つ容易にアップロードを行うことができる。
【０１９２】
以上の構成によれば、このアップロードシステム１００は、アップロードに要する時間を、従来のような必ず中継アップロードを行うシステムと比して大幅に短縮することができる。またこのアップロードシステム１００は、アップロードサービスの追加や削除、アップロード方法の変更等があった場合でも、中継サーバ１０３側でサービス情報を更新しさえすればよく、クライアント１０１Ａ側でのユーザ作業が増えてしまうことを防止できる。すなわち、このアップロードシステム１００では、従来のような中継アップロードする場合の利点であるアップロードの容易さを維持しつつ、アップロードを迅速に行うことができる。
【０１９３】
＜２．第２の実施の形態＞
次に、第２の実施の形態について説明する。上述の第１の実施の形態では、利用するアップロードサービスがダイレクトアップロードに対応している場合、ダイレクトアップロードを行うようにした。これに対して第２の実施の形態では、ネットワークのトラフィックに基づいて、ダイレクトアップロードと中継アップロードのうちのどちらかを選択するようになっている。
【０１９４】
尚、アップロードシステム１００、クライアント１０１Ａ、１０１Ｂ、中継サーバ１０３、サービス提供サーバ１０４Ａ〜１０４Ｃの構成については、第１の実施の形態と同様であるので、第１の実施の形態を参照とする。ゆえに、ここでは、図１７及び図１８を用いて、クライアント１０１Ａが実行するアップロード処理手順ＲＴ２についてのみ説明する。
【０１９５】
因みに、図１７及び図１８に示すアップロード処理手順ＲＴ２は、第１の実施の形態のアップロード処理手順ＲＴ１との同一ステップに同一符号を付して示すものである。
【０１９６】
［２−１．クライアントが実行するアップロード処理の手順］
クライアント１０１Ａの制御部１１０は、アップロードプログラムの起動が指示されると、このアップロード処理手順ＲＴ２を開始する。そして制御部１１０は、第１の実施の形態のアップロード処理手順ＲＴ１と同様にして、ステップＳＰ３００〜ステップＳＰ３０３の処理を行った後、ステップＳＰ３０４に移る。
【０１９７】
尚、この第２の実施の形態では、ステップＳＰ３０１で中継サーバ１０３から取得するアップロードサービスの詳細情報に、選択されたアップロードサービスのサービス形態にくわえて、アップロード先のアドレスが含まれているとする。
【０１９８】
ステップＳＰ３０４において制御部１１０は、先に受信した詳細情報をもとに、今回利用するアップロードサービスがダイレクトアップロードに対応しているサービスであるか否かを判別する。
【０１９９】
今回利用するアップロードサービスがダイレクトアップロードに対応しているサービスであることによりこのステップＳＰ３０４で肯定結果を得ると、このとき制御部１１０は、ステップＳＰ４００に移る。
【０２００】
ステップＳＰ４００において制御部１１０は、詳細情報に含まれているアップロード先のアドレスをもとに、アップロード先のサービス提供サーバ１０４に、直接、ダミーデータを送信する。このダミーデータは、ダミーのアップロードデータであり、実際のアップロードデータと比して小サイズ（例えば数十キロバイト）のデータであるとする。
【０２０１】
このダミーデータを受信したサービス提供サーバ１０４は、何らかの応答（例えばエラー）をクライアント１０１Ａに返してくる。クライアント１０１Ａの制御部１１０は、ダミーデータを送信してから、この応答が返ってくるまでの時間（すなわち通信時間）を計測する。この通信時間は、クライアント１０１Ａがアップロード先のサービス提供サーバ１０４と直接通信する場合のトラフィックを示している。そして制御部１１０は、この通信時間をダイレクトアップロード時間として記憶部１１２に記憶して、ステップＳＰ４０１に移る。
【０２０２】
ステップＳＰ４０１において制御部１１０は、中継サーバ１０３に、ステップＳＰ４００で送信したダミーデータと同一のダミーデータを送信する。このダミーデータを受信した中継サーバ１０３は、クライアント１０１Ａがダミーデータを直接送信したサービス提供サーバ１０４にこのダミーデータを送信する。
【０２０３】
このダミーデータを受信したサービス提供サーバ１０４は、何らかの応答（例えばエラー）を中継サーバ１０３に返してくる。そしてこの応答が、中継サーバ１０３からクライアント１０１Ａに転送される。クライアント１０１Ａの制御部１１０は、ダミーデータを送信してから、この応答が返ってくるまでの時間（すなわち通信時間）を計測する。この通信時間は、クライアント１０１Ａが中継サーバ１０３を介してアップロード先のサービス提供サーバ１０４と通信する場合のトラフィックを示している。そして制御部１１０は、この通信時間を中継アップロード時間として記憶部１１２に記憶して、ステップＳＰ４０２に移る。
【０２０４】
ステップＳＰ４０２において制御部１１０は、ダイレクトアップロード時間と、中継アップロード時間とを比較して、ステップＳＰ４０３に移る。ステップＳＰ４０３において制御部１１０は、ステップＳＰ４０２での比較結果をもとに、ダイレクトアップロードすべきか否かを判別する。
【０２０５】
具体的に、制御部１１０は、ダイレクトアップロード時間が中継アップロード時間よりも短ければ、ダイレクトアップロードを行う方が、中継アップロードを行うよりもトラフィックが少ないと予測する。つまり、この方が、アップロードにかかる時間が短く効率的であると予測する。このとき制御部１１０は、ダイレクトアップロードすべきと判別するようになっている。
【０２０６】
これに対して、予想ダイレクトアップロード時間が予想中継アップロード時間よりも長ければ、制御部１１０は、中継アップロードを行う方が、ダイレクトアップロードを行うよりもトラフィックが多いと予測する。つまり、この方が、アップロードに要する時間が短く効率的であると予測する。このとき制御部１１０は、中継アップロードすべきと判別するようになっている。
【０２０７】
そして、制御部１１０は、このステップＳＰ４０２でダイレクトアップロードすべきと判別した場合、肯定結果を得て、ステップＳＰ３０５（図１８）に移る。そして、制御部１１０は、第１の実施の形態のアップロード処理手順ＲＴ１と同様にして、ステップＳＰ３０５〜ステップＳＰ３０９の処理を行うことで、アップロードデータのダイレクトアップロードを行い、ステップＳＰ３１０に移る。
【０２０８】
これに対して、上述のステップＳＰ４０２で中継アップロードすべきと判別した場合、否定結果を得て、ステップＳＰ３１１に移る。そして、制御部１１０は、ステップＳＰ３１１において、中継サーバ１０３と協働して、アップロードデータの中継アップロードを行い、ステップＳＰ３１０に移る。
【０２０９】
そして、制御部１１０は、第１の実施の形態のアップロード処理手順ＲＴ１と同様にして、ステップＳＰ３１２〜ステップＳＰ３１３又はＳＰ３１４の処理を行った後、このアップロード処理手順ＲＴ２を終了する。
【０２１０】
このようなアップロード処理手順ＲＴ２にしたがって、クライアント１０１Ａは、ダイレクトアップロードもしくは中継アップロードを行うようになっている。
【０２１１】
このように、この第２の実施の形態では、クライアント１０１Ａが、ネットワークのトラフィックに基づき、ダイレクトアップロードと中継アップロードのうちの、より短時間でアップロードが終了すると予測できた方を選択するようにした。
【０２１２】
すなわち、クライアント１０１Ａは、ダイレクトアップロードに対応するサービスであっても、中継アップロードを行った方が短時間でアップロードが終了すると予測できたのであれば、中継アップロードを行う。
【０２１３】
こうすることで、この第２の実施の形態では、ダイレクトアップロードに対応するサービスを利用する場合に必ずダイレクトアップロードを行う場合と比して、より迅速にアップロードを行うことができる。
【０２１４】
また、中継サーバ１０３とサービス提供サーバ１０４の物理的距離が、クライアント１０１Ａとサービス提供サーバ１０４の物理的距離よりも離れている場合がある。このような場合、アップロードに要する時間が、中継アップロードを行うよりもダイレクトアップロードを行う方が長くなってしまうことがある。このような場合でも、この第２の実施の形態であれば、クライアント１０１Ａが、上述した通信時間の比較からその旨を予測して中継アップロードを選択することで、より迅速にアップロードを行うことができる。
【０２１５】
＜３．他の実施の形態＞
［３−１．他の実施の形態１］
尚、上述した第１の実施の形態では、ダイレクトアップロードが失敗した場合、その旨を、クライアント１０１ＡがＧＵＩ画面２００に表示して、アップロード処理を終了するようにした。
【０２１６】
これに限らず、ダイレクトアップロードが失敗したら、クライアント１０１が、再度、同じアップロードデータを、中継アップロードするようにしてもよい。
【０２１７】
すなわち、クライアント１０１Ａの制御部１１０は、中継サーバ１０３から受信したアップロード結果に、ダイレクトアップロードが失敗した旨が示されていた場合、同じ画像データとメタデータとを中継サーバ１０３に送信する。
【０２１８】
中継サーバ１０３は、この画像データとメタデータとをアップロードデータとして、サービス提供サーバ１０４にアップロードする。
【０２１９】
このように、ダイレクトアップロードが失敗したら、中継アップロードを行うようにすれば、より確実にデータをアップロードすることができる。
【０２２０】
また、これに限らず、ダイレクトアップロードを開始してから所定時間経過してもアップロード結果が返ってこない場合に、クライアント１０１が、ダイレクトアップロードを中止して、代わりに中継アップロードを行うようにしてもよい。
【０２２１】
この場合の所定時間（これをタイムアウト時間とも呼ぶ）は、例えば、アップロードする画像データのフォーマット（動画又は静止画）や、サイズ等に応じて、アップロードサービス毎に設定されているとする。
【０２２２】
そしてこのタイムアウト時間が、例えば、各アップロードサービスのサービス情報として中継サーバ１０３に記憶保持され、クライアント１０１Ａにも、詳細情報として提供されるようにする。
【０２２３】
すなわち、クライアント１０１Ａの制御部１１０は、ダイレクトアップロードを開始してから、詳細情報に含まれるタイムアウト時間経過しても、アップロード結果が返ってこない場合、ダイレクトアップロードを中止する。
【０２２４】
そして、クライアント１０１Ａの制御部１１０は、同じ画像データとメタデータとを中継サーバ１０３に送信する。中継サーバ１０３は、この画像データとメタデータとをアップロードデータとして、サービス提供サーバ１０４にアップロードする。
【０２２５】
このようにすれば、トラフィックの状況にもよるが、多くの場合、ダイレクトアップロードを継続するよりも、迅速にデータをアップロードできる。
【０２２６】
また、これに限らず、タイムアウト時間経過してもダイレクトアップロードを中止せずに、ダイレクトアップロードと中継アップロードとを並列で行うようにしてもよい。
【０２２７】
この場合、クライアント１０１Ａの制御部１１０は、どちらかのアップロード結果が返ってきた時点で、もう一方のアップロードを中止するようにする。
【０２２８】
［３−２．他の実施の形態２］
また、上述した第１の実施の形態では、クライアント１０１Ａが、サービス提供サーバ１０４からアップロード結果を受信すると、これを、アップロードした画像データのメタデータ及びパラメータと共に、中継サーバ１０３に転送するようにした。
【０２２９】
これに限らず、このときにはアップロード結果のみを中継サーバ１０３に転送するようにしてもよい。
【０２３０】
実際、クライアント１０１Ａは、アップロードする画像データのメタデータ及びパラメータを、中継サーバ１０３から必要情報を取得する直前にも送信している。ゆえに、中継サーバ１０３が、このとき受信したメタデータ及びパラメータを記憶部１２２に記憶させておくようにすれば、これらを、再度、クライアント１０１Ａから中継サーバ１０３に転送させなくてもよい。
【０２３１】
［３−３．他の実施の形態３］
さらに、上述した第１の実施の形態では、画像データとメタデータとを別々にアップロードしなければならないサービスを利用する場合に、画像データはダイレクトアップロードして、メタデータは中継アップロードするようにした。
【０２３２】
これに限らず、メタデータもダイレクトアップロードするようにしてもよい。ただし、この場合、中継サーバ１０３が、クライアント１０１Ａに、メタデータのダイレクトアップロードを行うために必要な必要情報も提供するようにする。
【０２３３】
［３−４．他の実施の形態４］
さらに、上述した第１の実施の形態では、中継サーバ１０３が、ダイレクトアップロードを行うために必要な必要情報として、ＸＭＬ形式で記述されたテキストデータをクライアント１０１Ａに提供するようにした。
【０２３４】
これに限らず、中継サーバ１０３が、必要情報として、ダイレクトアップロードＡＰＩを、クライアント１０１Ａに提供するようにしてもよい。このＡＰＩは、固有ＡＰＩであり、例えば、各サービス提供サーバ１０４Ａ〜Ｃから提供され、中継サーバ１０３の記憶部１２２に記憶されている。
【０２３５】
そしてこの場合、クライアント１０１Ａが、このダイレクトアップロードＡＰＩを呼び出すことで、ダイレクトアップロードを行うようにすればよい。
【０２３６】
［３−５．他の実施の形態５］
さらに、上述した第１の実施の形態では、サービス提供サーバ１０４が、クライアント１０１Ａからダイレクトアップロードが行われた場合に、アップロード結果を、クライアント１０１Ａに直接返信するようにした。
【０２３７】
これに限らず、アップロード結果は、必ず、中継サーバ１０３に返信するようにして、中継サーバ１０３が、このアップロード結果を共通形式のアップロードに変換してから、クライアント１０１Ａに転送するようにしてもよい。
【０２３８】
このようにすれば、クライアント１０１Ａが、サービス提供サーバ１０４から返信されたアップロード結果を中継サーバ１０３に転送する必要がなくなり、クライアント１０１Ａ側の負担をより軽減できる。
【０２３９】
［３−６．他の実施の形態６］
さらに、上述した第１の実施の形態では、クライアント１０１Ａが、中継サーバ１０３から、利用するアップロードサービスがダイレクトアップロードに対応しているか否か等が示された詳細情報を取得するようにした。そしてこの詳細情報から、クライアント１０１Ａが、利用するアップロードサービスがダイレクトアップロードに対応しているか否かを判別するようにした。
【０２４０】
つまり、第１の実施の形態では、中継サーバ１０３が、この詳細情報を介して、クライアント１０１Ａに、利用するアップロードサービスがダイレクトアップロードに対応しているか否かを通知するようにした。
【０２４１】
これに限らず、クライアント１０１Ａが、中継サーバ１０３に、利用するアップロードサービスがダイレクトアップロードに対応しているか否かを直接問い合わせるようにしてもよい。
【０２４２】
この場合、中継サーバ１０３の制御部１２０は、記憶保持されているサービス情報をもとに、利用するアップロードサービスがダイレクトアップロードに対応しているか否かを判別する。そして、この判別結果を、クライアント１０１Ａに返信するようにすればよい。
【０２４３】
［３−７．他の実施の形態７］
さらに、上述した第２の実施の形態では、ネットワークのトラフィックに基づいて、ダイレクトアップロードと中継アップロードのどちらかを選択するようにした。
【０２４４】
これに限らず、例えば、画像データのフォーマットに基づいて、ダイレクトアップロードと中継アップロードのどちらかを選択するようにしてもよい。
【０２４５】
この場合、クライアント１０１Ａは、例えば、アップロードする画像データのフォーマットが動画であれば、ダイレクトアップロードを選択して、この画像データをダイレクトアップロードする。これに対して、アップロードする画像データのフォーマットが静止画であれば、中継アップロードを選択して、この画像データを中継アップロードする。
【０２４６】
このようにしても、中継アップロードしか行わないシステムと比して、中継サーバ１０３へのアクセス集中を軽減させることができる。また、このように、画像データのフォーマットに応じて、アップロードの経路を変えるようにすれば、ネットワークのトラフィックを分散させることもできる。
【０２４７】
またこれに限らず、例えば、画像データのサイズに基づいて、ダイレクトアップロードと中継アップロードのどちらかを選択するようにしてもよい。
【０２４８】
この場合、クライアント１０１Ａは、例えば、アップロードする画像データのサイズが所定サイズ以上であれば、ダイレクトアップロードを選択して、この画像データをダイレクトアップロードする。これに対して、アップロードする画像データのサイズが所定サイズ未満であれば、中継アップロードを選択して、この画像データを中継アップロードする。
【０２４９】
このようにしても、中継アップロードしか行わないシステムと比して、中継サーバ１０３へのアクセス集中を軽減させることができる。また、このように、画像データのサイズに応じて、アップロードの経路を変えるようにすれば、ネットワークのトラフィックを分散させることもできる。
【０２５０】
［３−８．他の実施の形態８］
さらに、本発明は、第１及び第２の実施の形態とここまで説明した他の実施の形態とに限定されるものではない。すなわち本発明は、これら第１及び第２の実施の形態とここまで説明した他の実施の形態の一部または全部を任意に組み合わせた形態、もしくは一部を抽出した形態にもその適用範囲が及ぶものである。
【０２５１】
例えば、第２の実施の形態と他の実施の形態１とを組み合わせてもよい。つまり、第２の実施の形態のようにして、クライアント１０１Ａが、ダイレクトアップロードと中継アップロードのうちのどちらかを選択する。そして、選択した方のアップロードを行った結果、ダイレクトアップロードが失敗したとする。すると、クライアント１０１Ａが、他の実施の形態１のようにして、もう一方のアップロードを行うようにしてもよい。
【産業上の利用可能性】
【０２５２】
本発明は、画像共有システム等で広く利用することができる。
【符号の説明】
【０２５３】
１……通信システム、１０……通信装置、１１、２１、１１１、１２１、１３１……通信部、１２、２２、１１０、１２０、１３０……制御部、２３、１１２、１２２、１３２……記憶部、１００……アップロードシステム、１０１……クライアント、１０３……中継サーバ、１０４……サービス提供サーバ。
【図１】
2010187217.tif 000003
【図２】
2010187217.tif 000004
【図３】
2010187217.tif 000005
【図４】
2010187217.tif 000006
【図５】
2010187217.tif 000007
【図６】
2010187217.tif 000008
【図７】
2010187217.tif 000009
【図８】
2010187217.tif 000010
【図９】
2010187217.tif 000011
【図１０】
2010187217.tif 000012
【図１１】
2010187217.tif 000013
【図１２】
2010187217.tif 000014
【図１３】
2010187217.tif 000015
【図１４】
2010187217.tif 000016
【図１５】
2010187217.tif 000017
【図１６】
2010187217.tif 000018
【図１７】
2010187217.tif 000019
【図１８】
2010187217.tif 000020