(57)【要約】【課題】コンテンツの属性に応じた適切な中継装置を選択できるようにする。【解決手段】クライアント装置とサーバ装置とのネットワークを介した通信を中継する中継装置を選択する通信装置は、ネットワーク上の複数の中継装置を管理し、サーバ装置とクライアント装置との間で送信されるコンテンツの属性情報を取得し、取得された属性情報に基づいて、複数の中継装置のうちコンテンツの送信に用いる中継装置を選択し、コンテンツの識別情報と選択された中継装置を関連付ける関連付け情報を生成する。【選択図】  図５
2016035656.tif 000002
【特許請求の範囲】
【請求項１】
クライアント装置とサーバ装置とのネットワークを介した通信を中継する中継装置を選択する通信装置であって、
前記ネットワーク上の複数の中継装置を管理する管理手段と、
前記サーバ装置と前記クライアント装置との間で送信されるコンテンツの属性情報を取得する取得手段と、
前記取得手段で取得された属性情報に基づいて、前記複数の中継装置のうち前記コンテンツの送信に用いる中継装置を選択する選択手段と、
前記コンテンツの識別情報と前記選択手段で選択された中継装置を関連付ける関連付け情報を生成する生成手段と、を備えることを特徴とする通信装置。
【請求項２】
前記取得手段は、前記サーバ装置が送信した、コンテンツの識別情報と属性情報を含むコンテンツ一覧から、コンテンツの属性情報を取得し、
前記生成手段は、前記コンテンツ一覧からコンテンツの識別情報を取得することを特徴とする請求項１に記載の通信装置。
【請求項３】
前記生成手段は、前記クライアント装置と前記サーバ装置との間に確立されたセッションの間に生成した前記関連付け情報を前記セッションの識別情報と関連付けることを特徴とする請求項１または２に記載の通信装置。
【請求項４】
前記セッションの解消の検出に応じて、前記セッションに関連付けられている前記関連付け情報を削除する削除手段をさらに備えることを特徴とする請求項３に記載の通信装置。
【請求項５】
前記選択手段は、各コンテンツの前記属性情報によって要求される機能に基づいて、前記コンテンツの転送に用いる中継装置を選択することを特徴とする請求項１乃至４のいずれか１項に記載の通信装置。
【請求項６】
前記クライアント装置と前記サーバ装置の間の前記ネットワークにおける通信経路を決定する外部の通信装置へ、前記関連付け情報を送信する送信手段をさらに備えることを特徴とする請求項１乃至５のいずれか１項に記載の通信装置。
【請求項７】
送信されるコンテンツの識別情報に基づいて、前記関連付け情報から該送信されるコンテンツの通信に用いる中継装置を決定する決定手段をさらに備えることを特徴とする請求項１乃至４のいずれか１項に記載の通信装置。
【請求項８】
前記決定手段は、外部の装置から受信した前記送信されるコンテンツの識別情報に基づいて中継装置を決定し、決定した中継装置を前記外部の装置へ通知することを特徴とする請求項７に記載の通信装置。
【請求項９】
前記決定手段は、前記クライアント装置から送信されたコンテンツ取得要求に含まれている前記送信されるコンテンツの識別情報に基づいて中継装置を決定し、
前記決定手段で決定された中継装置へ、前記コンテンツ取得要求を転送する転送手段をさらに備えることを特徴とする請求項７に記載の通信装置。
【請求項１０】
前記コンテンツ取得要求は、コンテンツの送信に関する付加的な機能の要求を含み、
前記決定手段は、前記コンテンツの識別情報に関連付けられている中継装置のうち、前記コンテンツ取得要求が要求する機能に基づいて中継装置を決定することを特徴とする請求項９に記載の通信装置。
【請求項１１】
前記コンテンツ取得要求が要求する機能とは、
コンテンツを前記クライアント装置へ転送する際の転送速度を調整する調整機能、
コンテンツのサイズやフォーマットを変換する変換機能、
コンテンツの内容を編集する編集機能、または
コンテンツを前記クライアント装置以外の装置へ転送するフォーク機能、であることを特徴とする請求項１０に記載の通信装置。
【請求項１２】
前記取得手段は、前記クライアント装置が送信したアップロード要求から、コンテンツの属性情報を取得することを特徴とする請求項１または２に記載の通信装置。
【請求項１３】
前記選択手段は、さらに、前記クライアント装置または前記サーバ装置の機能に基づいて中継装置を選択することを特徴とする請求項１乃至１２のいずれか１項に記載の通信装置。
【請求項１４】
ネットワーク上のクライアント装置とサーバ装置との間の通信を中継する中継装置を選択する通信装置の制御方法であって、
前記ネットワーク上の複数の中継装置を管理する管理工程と、
前記サーバ装置と前記クライアント装置との間で送信されるコンテンツの属性情報を取得する取得工程と、
前記取得工程で取得された属性情報に基づいて、前記複数の中継装置のうち前記コンテンツの送信に用いる中継装置を選択する選択工程と、
前記コンテンツの識別情報と前記選択工程で選択された中継装置を関連付ける関連付け情報を生成する生成工程と、を有することを特徴とする通信装置の制御方法。
【請求項１５】
クライアント装置とサーバ装置の間のネットワークにおける通信経路を決定する通信装置であって、
前記クライアント装置から受信したコンテンツ取得要求からコンテンツの識別情報を取得する取得手段と、
コンテンツの識別情報と中継装置が関連付けられた関連付け情報から、前記識別情報に基づいて前記コンテンツの通信に使用する中継装置を検索する検索手段と、
前記検索手段で検索された中継装置へ前記コンテンツ取得要求を転送する転送手段と、を備えることを特徴とする通信装置。
【請求項１６】
前記関連付け情報を外部の装置から受信し、保持する保持手段をさらに備えることを特徴とする請求項１５に記載の通信装置。
【請求項１７】
前記検索手段は、外部の通信装置に保持されている前記関連付け情報から中継装置を検索することを特徴とする請求項１５に記載の通信装置。
【請求項１８】
クライアント装置とサーバ装置の間のネットワークにおける通信経路を決定する通信装置の制御方法であって、
前記クライアント装置から受信したコンテンツ取得要求からコンテンツの識別情報を取得する取得工程と、
前記識別情報に基づいて、前記コンテンツの通信に使用する中継装置を決定する決定工程と、
前記決定工程で決定された中継装置へ前記コンテンツ取得要求を転送する転送工程と、を有することを特徴とする通信装置の制御方法。
【請求項１９】
請求項１４または１８に記載の通信装置の制御方法の各工程をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークにおいて通信装置間のデータを中継する通信技術に関する。
【背景技術】
【０００２】
近年、ネットワークの普及によりパーソナルコンピュータだけでなく携帯電話や家電機器などの様々な電子機器がネットワークに接続出来るようになってきた。それに伴い、今まで単独で用いられてきた家電製品やその他の電器製品もネットワークに繋がるようになり、電子機器などを相互連携して利用する環境は、オフィスユースに限られず、ホームユースにも及ぶようになってきた。
【０００３】
上記のような状況により、ネットワークに接続する各種機器の接続容易性、設定容易性がとりわけ求められている。このような要求に応えることができるネットワーク技術の一つに、ユニバーサルプラグアンドプレイ（Universal Plug and Play：以下ＵＰｎＰと記す）と呼ばれるものが存在する。ＵＰｎＰは一つのホームネットワーク内で動作するプロトコルである。また、このような閉じたネットワーク内で動作するプロトコルを、インターネット越しの遠隔拠点間を接続する上位のネットワークでも動作可能にするための技術が存在する。
【０００４】
特許文献１に記載のシステムでは、直接通信し合うことのできない二つのネットワーク間にリバースプロキシ装置を配置し、リバースプロキシ装置が二つのネットワーク間のデータを中継することで、ネットワーク間のデータのやりとりが可能になっている。また、特許文献２では、サーバまたはクライアントからコンテンツ容量を通知されたノード装置が空きネットワークの状況に応じて経路を選択する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−５５２００号公報
【特許文献２】特開２００７−６７９０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載の技術では、リバースプロキシを介してｗｅｂサーバ装置からユーザに対してコンテンツを転送している。リバースプロキシはコンテンツの容量、ｗｅｂ装置または、ユーザの特性に応じて転送経路を切換えることはできない。また、特許文献２に記載の技術では、コンテンツ容量とネットワークの状況に応じて経路を選択するのみであり、中継装置の機能に応じて転送経路を切り替えるものではない。したがって、複数のタイプの中継装置がネットワーク上に存在する場合に、コンテンツの種別（たとえば、データストリームか否か）に応じて適切な中継装置を選択するようなことは何等考慮されていない。
【０００７】
本発明は、上記課題を解決するためになされたものであり、コンテンツの転送に必要な中継機能に応じてコンテンツの転送を中継する中継装置を選択可能とすることを目的とする。
【課題を解決するための手段】
【０００８】
上記の目的を達成するための本発明の一態様による通信装置は以下の構成を備える。すなわち、
クライアント装置とサーバ装置とのネットワークを介した通信を中継する中継装置を選択する通信装置であって、
前記ネットワーク上の複数の中継装置を管理する管理手段と、
前記サーバ装置と前記クライアント装置との間で送信されるコンテンツの属性情報を取得する取得手段と、
前記取得手段で取得された属性情報に基づいて、前記複数の中継装置のうち前記コンテンツの送信に用いる中継装置を選択する選択手段と、
前記コンテンツの識別情報と前記選択手段で選択された中継装置を関連付ける関連付け情報を生成する生成手段と、を備える。
【発明の効果】
【０００９】
本発明によれば、コンテンツの属性に基づいて中継装置が選択されるので、コンテンツの転送に必要な中継機能に応じて適切な中継装置を選択することができる。
【図面の簡単な説明】
【００１０】
【図１】実施形態による通信システムの構成例を示す図。
【図２】実施形態による中継サーバのハードウェア構成例および機能構成例を示すブロック図。
【図３】（ａ）は中継装置の管理情報を示す図、（ｂ）はコンテンツと中継装置を関連付ける関連付け情報を示す図。
【図４】実施形態の通信システムにおけるデータのやりとりを示すシーケンス図。
【図５】中継サーバによる処理を示すフローチャート。
【図６】フロントエンド装置による処理を示すフローチャート。
【発明を実施するための形態】
【００１１】
以下、添付の図面を参照して、本発明の好適な実施形態のいくつかを説明する。
【００１２】
＜第１実施形態＞
図１は、第１実施形態による、通信システムの構成例を示す図である。図１において、中継サーバ１００は、クライアント装置とサーバ装置とのネットワークを介した通信を中継する中継装置を選択する通信装置である。図１の例では、中継サーバ１００は、ＷＡＮ（Wide Area Network）６００を介してフロントエンド装置２００及びＬＡＮ５００のホームゲートウェイ（ＨＧＷＢ５１０）と接続し、クライアント装置４２０とサーバ装置５２０間のデータを中継する。
【００１３】
フロントエンド装置２００は、ネットワーク（ＷＡＮ６００）と別のネットワーク（ＬＡN４００）とを接続する位置に設けられる。フロントエンド装置２００は、クライアント装置４２０が用いる、ＷＡＮ６００における通信経路を決定する。図１に示された例では、フロントエンド装置２００は、ＬＡＮ４００のホームゲートウェイ（ＨＧＷＡ４１０）、中継サーバ１００、中継装置Ａ３１０及び中継装置Ｂ３２０と接続している。また、フロントエンド装置２００は、
・クライアント装置４２０からサーバ装置５２０（ＬＡＮ５００）に送信される要求メッセージをＨＧＷＡ４１０介して受信し、中継サーバ１００、中継装置Ａ３１０または中継装置Ｂ３２０のいずれを用いるかを決定して、その要求メッセージを転送する機能、
・サーバ装置５２０からの応答メッセージを中継サーバ１００、中継装置Ａ３１０または中継装置Ｂ３２０を介して受信しＨＧＷＡ４１０を介してクライアント装置４２０（ＬＡＮ４００）に転送する機能、を有する。
【００１４】
中継装置Ａ３１０および中継装置Ｂ３２０は、それぞれ、ネットワーク（ＷＡＮ６００）を介しフロントエンド装置２００及びＨＧＷＢ５１０に接続される。中継装置Ａ３１０および中継装置Ｂ３２０は、それぞれ、フロントエンド装置２００から受信した要求メッセージをＨＧＷＢ５１０に転送し、ＨＧＷＢ５１０から受信した応答メッセージをフロントエンド装置２００へ転送する。但し、中継装置Ａ３１０は、要求及び応答メッセージを受信した際に、受信したメッセージをメモリ領域に一時キャッシュし、メッセージを他方へ送信する際の送信速度を調整する機能を有する。他方、中継装置Ｂ３２０は、受信したメッセージに何の処理も加えずにブリッジ転送する機能を有する。
【００１５】
なお、本実施形態では、中継サーバ１００、フロントエンド装置２００、中継装置Ａ３１０及び中継装置Ｂ３２０は、独立したノードとして配置しているが、これらノードを配置する場所や装置に制限はない。例えば、スマートフォンなどのモバイル端末に、フロントエンド装置２００、中継サーバ１００、中継装置Ａ３１０、中継装置Ｂ３２０の機能の全てまたは一部を実現してもよい。また、中継装置Ａ３１０または中継装置Ｂ３２０と同じ機能を有する他の中継装置や、中継装置Ａ３１０または中継装置Ｂ３２０と異なる機能を有する他の中継装置をさらに設置してもよい。中継装置が備え得る機能としては、
・コンテンツをキャッシュするキャッシュ機能、
・コンテンツをクライアント装置へ転送する際の転送速度を調整する調整機能、
・コンテンツのサイズやフォーマットを変換する変換機能、
・コンテンツの内容を編集する編集機能、
・コンテンツをクライアント装置以外に転送するフォーク機能、などがある。
【００１６】
ＨｏｍｅＡは、ＬＡＮ４００（Local Area Network）を構築しているエリアであり、後述するクライアント装置４２０およびＨＧＷＡ４１０が接続されている。ＨＧＷＡ４１０は、クライアント装置４２０及び中継サーバ１００間のデータを中継する装置（ホームゲートウェイ）である。
【００１７】
クライアント装置４２０は、UPnP Device Architectureで定義されているControl Pointに準拠し、ＵＰｎＰのメディアサーバ（Media Server）を制御する機能を有する。クライアント装置４２０は、後述するサーバ装置５２０に対して、コンテンツ一覧の取得や、コンテンツの取得等の要求を行う装置である。なお、そのようなサーバ装置５２０への要求はＵＰｎＰ以外の方式で行われてもよい。また、本実施形態では、クライアント装置４２０はＨＧＷＡ４１０を介してフロントエンド装置２００とデータ送受信を行っているが、ＨＧＷＡ４１０を介さずに、直接、フロントエンド装置２００とデータ送受信を行うようにしてもよい。
【００１８】
ＨｏｍｅＢは、ＬＡＮ５００（Local Area Network）を構築しているエリアであり、後述するサーバ装置５２０、ＨＧＷＢ５１０が接続されている。ＨＧＷＢ５１０は、サーバ装置５２０と、中継サーバ１００や中継装置Ａ３１０および中継装置Ｂ３２０との間のデータを中継する装置（ホームゲートウエイ）である。サーバ装置５２０は、ＵＰｎＰメディアサーバ（UPnP Media Server）機能を有しており、クライアント装置４２０からの要求に応じて管理しているコンテンツの一覧やコンテンツを提供する。なお、本実施形態のサーバ装置５２０はメディアサーバ機能を有した装置として記載しているが、ＵＰｎＰ以外のデバイスまたはサービスであってもよい。また、サーバ装置５２０は、ＨＧＷＢ５１０を介して中継サーバ１００、中継装置Ａ３１０、中継装置Ｂ３２０とデータ送受信を行っているが、ＨＧＷＢ５１０を介さないで、これら装置と直接にデータ送受信を行うようにしてもよい。
【００１９】
図２（ａ）は中継サーバ１００のハードウェア構成例を示すブロック図である。ＣＰＵ１１１は、ＲＯＭ１１２あるいはＲＡＭ１１３に格納されたプログラムを実行することにより、図５のフローチャートにより後述するような処理を含む各種処理を実現する。ＲＯＭ１１２は、読み出し専用の不揮発性メモリであり、各種パラメータやプログラムを格納する。ＲＡＭ１１３は、随時読み書きが可能な揮発性メモリであり、ＣＰＵ１１１が処理を実行する際の作業領域を提供する。ネットワークインターフェース１１４は、ＷＡＮ６００内の機器と通信接続を行うためのインターフェースである。バス１１５は、上述した各部を相互に通信可能に接続する。なお、フロントエンド装置２００も図２（ａ）に示したような構成を備えた通信装置であり、ＣＰＵ１１１がＲＯＭ１１２あるいはＲＡＭ１１３に格納されたプログラムを実行することにより図６のフローチャートにより後述するような処理が実行される。
【００２０】
図２（ｂ）は中継サーバ１００の機能構成例を示すブロック図である。図２（ｂ）に示される各機能ブロックは、ＣＰＵ１１１がＲＯＭ１１２あるいはＲＡＭ１１３に格納されたプログラムを実行することにより実現されるものとする。ただし、これらの機能ブロックの一部またはすべてが専用のハードウェアによって実現されてもよいことは言うまでもない。また、たとえば中継サーバ１００とフロントエンド装置２００としてのノードが一つの通信装置において構成されていてもよい。
【００２１】
図２（ｂ）において、送受信部１０１は、ネットワークインターフェース１１４を用いて、フロントエンド装置２００及びＨＧＷＢ５１０とネットワーク（ＷＡＮ６００）を介して接続し、データの送受信を行う機能を有する。中継装置管理部１０４は、ネットワーク上（ＷＡＮ６００上）の複数の中継装置を管理する。中継装置管理部１０４は、ＷＡＮ６００上において中継装置を探索し、探索された中継装置を管理する管理情報を生成する。管理情報の一例を図３（ａ）に示す。管理情報１４０は、中継装置を識別する識別情報１４１、中継装置のアドレス１４２、中継装置の機能を示す機能情報１４３を含む。機能情報１４３には、たとえば、中継装置がキャッシュ機能、調整機能、変換機能、編集機能、フォーク機能を有するか否かなどが記録される。
【００２２】
コンテンツ情報解析部１０２は、クライアント装置４２０とサーバ装置５２０の間で送信されるコンテンツの属性を取得するために、受信したメッセージを解析する。たとえば、コンテンツ情報解析部１０２は、フロントエンド装置２００から受信しＨＧＷＢ５１０に送信したコンテンツ一覧取得要求に対して、ＨＧＷＢ５１０から受信されたコンテンツ一覧応答メッセージの解析を行う。より具体的には、コンテンツ情報解析部１０２は、受信されたコンテンツ一覧応答メッセージの中にコンテンツを識別する識別子（たとえばＵＲＬ）やコンテンツ属性情報が含まれているか否かを解析する。コンテンツ属性情報は、例えばコンテンツ種別（写真または動画）やコンテンツフォーマット（ＪＰＥＧ、ＭＰＥＧ２、ＭＰ４など）、コンテンツのサイズである。コンテンツの識別子及びコンテンツ属性情報が含まれている場合は、それらを関連付けて保存する。
【００２３】
転送経路選択部１０３は、コンテンツ情報解析部１０２で取得したコンテンツ属性情報に基づいて、各コンテンツの送信に用いる中継装置を選択する。本実施形態では、メッセージの解析により取得された各コンテンツについて、そのコンテンツ属性情報に基づいて中継装置Ａ３１０または中継装置Ｂ３２０のどちらを経由させるかを選択する。転送経路選択部１０３は、選択した中継装置を、コンテンツ識別子、コンテンツ属性情報と共に、関連付け情報として保存する。本実施形態では、転送経路選択部１０３は、たとえばコンテンツ属性情報が動画の場合は中継装置Ａ３１０を、静止画の場合は中継装置Ｂ３２０を選択する。図３（ｂ）は本実施形態による関連付け情報のデータ構成例を説明する図である。関連付け情報１５０は、コンテンツ識別子１５１と選択された中継装置１５２、コンテンツ属性情報１５３の対応付けを示す情報である。
【００２４】
図４は本実施形態における通信システム全体のメッセージの流れを示すシーケンス図である。なお、図４では、ＨＧＷＡ４１０及びＨＧＷＢ５１０は省略して記載している。まず、クライアント装置４２０とサーバ装置５２０との間で、ＷＡＮ６００を経由したセッションが確立される。次に、Ｓ１０１にて、クライアント装置４２０は、サーバ装置５２０に対してコンテンツ一覧取得要求を送信する。送信されたコンテンツ一覧取得要求は、フロントエンド装置２００、中継サーバ１００を介してサーバ装置５２０に到達する。
【００２５】
次に、Ｓ１０２にて、サーバ装置５２０はコンテンツ一覧要求に応じて自身が管理するコンテンツ一覧応答を返信する。中継サーバ１００においてサーバ装置５２０が送信したコンテンツ一覧応答が受信されると、Ｓ１０３にて、コンテンツ情報解析部１０２がコンテンツ一覧応答を解析し、図３（ｂ）に示したような関連付け情報１５０を生成する。また、Ｓ１０４において、中継サーバ１００は、受信されたコンテンツ一覧応答をフロントエンド装置２００へ送信する。こうして、サーバ装置５２０から送信されたコンテンツ一覧応答は、中継サーバ１００、フロントエンド装置２００を介してクライアント装置４２０に到達する。なお、本実施形態ではフロントエンド装置２００を介してクライアント装置４２０にデータを転送しているが、中継サーバ１００が直接、クライアント装置４２０に送信してもよい。ただし、後述の関連付け情報に関する通知は、中継サーバ１００からフロントエンド装置２００に送信される。
【００２６】
ここで、図５のフローチャートを参照して、中継サーバ１００がサーバ装置５２０からコンテンツ一覧応答を受信してフロントエンド装置２００に転送するまでの一連の処理を説明する。なお、図５のフローチャートで示される処理の開始に先立って、中継装置管理部１０４は、ネットワーク（ＷＡＮ６００）上の中継装置の情報を収集し、図３（ａ）に示したような管理情報１４０を生成しておく。但し、管理情報の生成のタイミングはこれに限られるものではない。たとえば、コンテンツ一覧を受信した際に、中継装置管理部１０４がクライアント装置４２０とサーバ装置５２０の間の通信を中継することが可能な中継装置の情報を収集するようにしてもよい。
【００２７】
中継サーバ１００は、以下のＳ２００〜Ｓ２０５の処理により、クライアント装置４２０とサーバ装置５２０との間で送信されるコンテンツの属性情報を取得し、管理情報により管理されている中継装置からコンテンツの送信に用いる中継装置を選択する。まず、Ｓ２００において、中継サーバ１００の送受信部１０１は、ネットワークインターフェース１１４を介して、Ｓ１０２でサーバ装置５２０から送信されたメッセージを受信する。コンテンツ情報解析部１０２は、Ｓ２００で受信したメッセージを解析し、メッセージの中にコンテンツ一覧が含まれているか否かを確認する。Ｓ２０１にてコンテンツ一覧が含まれていないと判断された場合は、処理はＳ２０７へ進み、中継サーバ１００はフロントエンド装置２００へＳ２００で受信したメッセージを転送するＳ２０７。
【００２８】
コンテンツ情報解析部１０２による解析した結果、コンテンツ一覧が含まれていると判断した場合（すなわち、受信したメッセージがコンテンツ一覧応答であった場合）、処理はＳ２０２へ進む。Ｓ２０２において、コンテンツ情報解析部１０２はさらにコンテンツ一覧を解析することにより、サーバ装置５２０とクライアント装置４２０との間で送信され得るコンテンツの各々の識別子及びコンテンツ属性情報を取得する。
【００２９】
次に、Ｓ２０３、Ｓ２０４、Ｓ２０５において、転送経路選択部１０３は、Ｓ２０２で取得されたコンテンツ属性情報に基づいて、コンテンツの送信を中継する中継装置を選択する。本実施形態では、各コンテンツの属性情報によって要求される機能に基づいて、そのコンテンツの転送に用いるべき中継装置が選択される。たとえば、コンテンツ属性に含まれるコンテンツ種別が動画や音声のようなストリーミングデータの場合、転送経路選択部１０３はキャッシュ機能を有する中継装置Ａ３１０を選択する（Ｓ２０４）。また、コンテンツ種別が静止画データのような非ストリーミングデータの場合、転送経路選択部１０３は、キャッシュ機能を有していない中継装置Ｂを選択する（Ｓ２０５）。
【００３０】
続いて、転送経路選択部１０３は、各コンテンツについて選択された中継装置をそのコンテンツの識別情報（コンテンツ識別子）に関連付けた関連付け情報を生成する。Ｓ２０６において、中継サーバ１００は、Ｓ２０２で取得されたコンテンツ識別子、コンテンツの属性情報および、Ｓ２０３で決定された中継装置を関連付けて、関連付け情報として保存する。ここで、関連付け情報に記録されるコンテンツ属性情報とは、たとえば、コンテンツ一覧応答に記録されている、コンテンツのサイズや、ビットレート（動画などのストリーミングデータの場合）等の属性情報である。関連付け情報の例は図３（ｂ）に示したとおりであり、その保存にはたとえばＲＡＭ１１３が用いられる。
【００３１】
次に、Ｓ２０７において、中継サーバ１００は、サーバ装置５２０から受信したコンテンツ一覧応答をフロントエンド装置２００に転送する。Ｓ２０６で関連付け情報が生成された場合、中継サーバ１００は、クライアント装置４２０とサーバ装置５２０の間のセッションの識別情報（セッション識別情報）と、当該セッションで関連付け情報が生成されたことをフロントエンド装置２００に通知する。この通知を受けた後、フロントエンド装置２００は、当該セッションの間にコンテンツ取得要求を受け取ると、要求されたコンテンツの送信に適切な中継装置を中継サーバ１００が保持する関連付け情報から検索する。なお、中継サーバ１００から関連付け情報そのものをフロントエンド装置２００へ送信し、関連付け情報をフロントエンド装置が保持するようにしてもよい。その場合、フロントエンド装置２００は、要求されたコンテンツの送信に適切な中継装置を、自身に保持してある関連付け情報から検索する。
【００３２】
なお、セッション識別情報は、たとえば、クライアント装置４２０がサーバ装置５２０にコンテンツ一覧取得を要求する際にクライアント装置４２０がサーバ装置５２０にログオンするなどして、セッションが確立したときに発行される。また、クライアント装置４２０がサーバ装置５２０所定期間にわたってアクセスしないことまたはクライアント装置４２０がサーバ装置５２０からログオフしたことをもってそのセッションは解消する。
【００３３】
図４に戻り、Ｓ１０５にて、クライアント装置４２０はＳ１０４で受信したコンテンツ一覧応答に含まれるコンテンツ識別子を含むコンテンツ取得要求をサーバ装置５２０に対して送信する。コンテンツ取得要求はまずフロントエンド装置２００により受信される。Ｓ１０６にて、フロントエンド装置２００は、クライアント装置４２０から受信したコンテンツ取得要求を解析し、コンテンツ識別子を取得する。そして、取得したコンテンツ識別子をキーにＳ１０３で中継サーバ１００が生成した関連付け情報から、コンテンツに適した中継装置を選択する。Ｓ１０７にて、フロントエンド装置２００は、コンテンツ識別子をキーにして検索され、選択された中継装置（ここでは中継装置Ａ３１０）にコンテンツ取得要求を送信する。Ｓ１０８にて、中継装置Ａ３１０は受信したコンテンツ取得要求をサーバ装置５２０に転送する。
【００３４】
ここで、図６のフローチャートを参照して、フロントエンド装置２００における中継装置の選択処理（Ｓ１０６）について説明する。フロントエンド装置２００は、メッセージを受信すると（Ｓ３０１）、それがコンテンツ取得要求か否かを判定する（Ｓ３０２）。受信したメッセージがコンテンツ取得要求でなければ、中継サーバ１００へそのメッセージを転送する（Ｓ３０３）。他方、受信したメッセージがコンテンツ取得要求であった場合、フロントエンド装置２００は当該セッションについて関連付け情報が生成されているか否かを判定する（Ｓ３０４）。すなわち、当該セッション識別情報において関連付け情報が生成されたことを中継サーバ１００から通知されているか否かが判定される。そのような通知がなされていない場合は、フロントエンド装置２００は受信したコンテンツ要求について中継装置が割り当てられていないと判定し、中継サーバ１００へそのメッセージを転送する（Ｓ３０３）。なお、Ｓ３０３では、予め定められた（デフォルトの）中継装置を経由するようにメッセージを転送してもよい。
【００３５】
当該セッションの関連付け情報があると判定された場合、フロントエンド装置２００は、受信したコンテンツ取得要求からコンテンツ識別子を取得し、そのコンテンツ識別子に関連付けられた中継装置を検索する（Ｓ３０５）。たとえば、フロントエンド装置２００は、コンテンツ識別子を中継サーバ１００に送信し、中継サーバ１００から対応する中継装置の指定を取得する。フロントエンド装置２００は、こうして検索された中継装置を当該コンテンツ取得要求の送信に使用するべく決定する。そして、フロントエンド装置２００は、選択された中継装置へコンテンツ取得要求を送信する（Ｓ３０６）。なお、上記処理では関連付け情報１５０を中継サーバ１００に保持しておき、フロントエンド装置２００が中継サーバ１００からコンテンツ識別子に関連付けられた中継装置を取得した。すなわち、フロントエンド装置２００は、外部の通信装置であるサーバ装置５２０に保持されている関連付け情報から中継装置を検索するようにしたがこれに限られるものではない。上述したように中継サーバ１００からフロントエンド装置２００へ関連付け情報が送信され、フロントエンド装置２００で関連付け情報を保持するようにしてもよい。その場合、フロントエンド装置２００は、自身が保持する関連付け情報から中継装置を検索することになる。
【００３６】
図４に戻り、Ｓ１０９にて、サーバ装置５２０はコンテンツ識別子に対応するコンテンツをクライアント装置４２０に返信する。このとき、コンテンツは、コンテンツ取得要求を転送した中継サーバ（図４では中継装置Ａ３１０）を経由するようにコンテンツを送信する。コンテンツは中継装置Ａ３１０の転送処理（Ｓ１１０）を経て、フロントエンド装置２００を介してクライアント装置４２０に到達する（Ｓ１１１）。なお、本実施形態ではフロントエンド装置２００を介しているが中継装置Ａ３１０がクライアント装置４２０に直接転送してもよい。
【００３７】
Ｓ１１０にて、中継装置Ａ３１０による転送処理が行われるが、本例では、中継装置Ａ３１０がサーバ装置５２０から受信したコンテンツ（たとえば動画データ）を中継装置Ａ３１０のメモリ上に一時キャッシュする。そして、Ｓ１１１にて、中継装置Ａ３１０は、メモリ上に一時キャッシュした動画データをフロントエンド装置２００に転送する。なお、フロントエンド装置２００は、Ｓ１０７において、コンテンツ取得要求とともにコンテンツの属性情報を中継装置Ａ３１０へ送信しており、中継装置Ａ３１０は、動画のビットレートを把握している。よって、中継装置Ａ３１０は、動画のビットレート（コンテンツ情報解析（Ｓ１０３）で取得したコンテンツ属性に含まれるビットレート）にあわせて、フロントエンド装置２００（クライアント装置４２０）に動画を転送する。
【００３８】
一般に、クライアント装置４２０は動作再生スピードより早いスピードで動画データを受信した場合、再生するまでの間メモリに受信したデータを保存しておく必要があり、長時間再生する場合にはメモリが枯渇する可能性がある。そのようなメモリの枯渇を防ぐためには、クライアント装置４２０において、複数回に分けてコンテンツ取得要求を行うか、コンテンツ送信の一時停止依頼を行うなどの調整を行うことが必要となる。一方、サーバ装置５２０においても、クライアント装置４２０のそのようなコンテンツ取得要求の調整によって、複数回のコンテンツ取得要求を受信したり、コンテンツ一時停止に対応したりすることとなる。その結果、サーバ装置５２０は、クライアント装置４２０からの要求を完結するまでの処理時間が長くなり、クライアント装置４２０以外の装置からのコンテンツ取得要求に対応できなくなる可能性がある。すなわち、クライアントにおけるメモリの枯渇を防止しようとするとサーバ側の動作が遅延してしまうという課題があった。
【００３９】
しかしながら、本実施形態によれば、Ｓ１１０及びＳ１１１によって、サーバ装置５２０と中継装置Ａ３１０間のデータ転送は高速に、中継装置Ａ３１０とクライアント装置４２０との間のデータ転送は低速に行うことができる。また、中継装置Ａ３１０が動画のビットレートにあわせてコンテンツを送信することにより、クライアント装置４２０は、動画再生スピードに応じてデータを受信することができる。また、サーバ装置５２０はクライアント装置４２０からのコンテンツ取得要求に対して、クライアント装置４２０の状態に依存することなくコンテンツ送信を行うことができる。したがって、上記のような課題（クライアントにおけるメモリの枯渇を防止しようとするとサーバ側の動作が遅延するという課題）が解消される。
【００４０】
一方、静止画の場合は動画とは異なり、中継装置Ｂ３２０を介してコンテンツのブリッジ転送を行う。静止画は再生速度に応じてデータをバッファリングする必要がなく、受信したデータを表示すればよい。従って中継装置Ａ３１０がデータのバッファリングを行う必要はなく、データのバッファリングを行わない中継装置Ｂ３２０を介してしてコンテンツの転送を行う。このことによって中継装置Ａ３１０において不要なバッファリング処理の実行が回避される。
【００４１】
また、本実施形態では、コンテンツ属性情報に応じて経路選択を行っているが、クライアント装置４２０の属性やサーバ装置５２０の属性に応じて中継装置を選択してもよい。例えばクライアント装置４２０またはサーバ装置５２０の機器性能が高く中継装置でデータをバッファリングする必要がないと判断した場合は、動画データでも中継装置Ｂ３２０を選択してもよい。
【００４２】
さらに、サーバ装置５２０からクライアント装置４２０にコンテンツを送信しているが、クライアント装置４２０からサーバ装置５２０に送信する時も同様である。具体的には、Ｓ１０１〜Ｓ１０４と同様に、クライアント装置４２０のコンテンツアップロード要求に対してサーバ装置５２０がアップロード先の識別子（ＵＲＬ）を応答する。この応答データは、フロントエンド装置２００及び中継サーバ１００を介して送信される。中継サーバ１００はＳ１０３において、アップロード要求に含まれるコンテンツの属性情報、および／またはアップロード先の識別子に基づいて特定される装置の性能、などを考慮してコンテンツの識別子と中継装置の関連付けを行う。クライアント装置４２０からコンテンツの実態がアップロードされる場合、フロントエンド装置はアップロードされるコンテンツの属性情報により使用する中継装置を検索し、検索された中継装置（中継装置Ａ３１０または中継装置Ｂ３２０）にコンテンツを送信する。
【００４３】
また、Ｓ１０５にて、クライアント装置４２０は、コンテンツ取得要求にコンテンツ変換要求、コンテンツ編集要求、他の装置へのフォーク要求など、付加的な機能の要求を付けて送信してもよい。その場合、フロントエンド装置２００は、上述した関連付け情報の参照により、コンテンツ取得要求において要求されている機能に対応できる中継装置を検索する。
【００４４】
また、Ｓ１０３にて中継サーバ１００は、サーバ装置５２０から受取ったコンテンツ一覧応答に含まれるコンテンツ識別子を変換してもよい。変換したコンテンツ識別子は、コンテンツを識別可能でかつ、コンテンツを中継する中継装置を特定できる識別子とする。この場合、フロントエンド装置２００は、コンテンツ取得要求に含まれるコンテンツ識別子（コンテンツ名＋ファイル識別子）のうち、ファイル識別子を用いて使用すべき中継装置を選択し、選択した中継装置へコンテンツ取得要求を送信する。したがって、この場合、変換されたコンテンツ識別子そのものが関連付け情報となる。
【００４５】
また、中継サーバ１００は、クライアント装置４２０およびサーバ装置５２０間のセッションを監視してもよい。セッションの解消が検出された場合は、Ｓ１０３で保存した関連付け情報を削除する。
【００４６】
＜他の実施形態＞
本発明の目的は前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵまたはＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００４７】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤなどを用いることができる。
【００４８】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施例の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOperating System（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれることは言うまでもない。
【００４９】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【符号の説明】
【００５０】
１００：中継サーバ、１０１：送受信部、１０２：コンテンツ情報解析部、１０３：転送経路選択部、１０４：中継装置管理部、２００：フロントエンド装置、３１０：中継装置Ａ、３２０：中継装置Ｂ、４２０：クライアント装置、５２０：サーバ装置
【図１】
2016035656.tif 000003
【図２】
2016035656.tif 000004
【図３】
2016035656.tif 000005
【図４】
2016035656.tif 000006
【図５】
2016035656.tif 000007
【図６】
2016035656.tif 000008