JP4950938B2 - データ転送方法とプロキシサーバおよびストレージサブシステム - Google Patents

データ転送方法とプロキシサーバおよびストレージサブシステム Download PDF

Info

Publication number
JP4950938B2
JP4950938B2 JP2008114478A JP2008114478A JP4950938B2 JP 4950938 B2 JP4950938 B2 JP 4950938B2 JP 2008114478 A JP2008114478 A JP 2008114478A JP 2008114478 A JP2008114478 A JP 2008114478A JP 4950938 B2 JP4950938 B2 JP 4950938B2
Authority
JP
Japan
Prior art keywords
protocol header
content
header
client
protocol
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008114478A
Other languages
English (en)
Other versions
JP2009265932A (ja
Inventor
浩二 渡辺
理 竹内
大輔 横田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2008114478A priority Critical patent/JP4950938B2/ja
Priority to US12/219,503 priority patent/US8250110B2/en
Publication of JP2009265932A publication Critical patent/JP2009265932A/ja
Application granted granted Critical
Publication of JP4950938B2 publication Critical patent/JP4950938B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/564Enhancement of application control based on intercepted application data

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、映像、音などのコンテンツをクライアントに配信する技術に関する。
近年、インターネットの急速な発展に伴い、HTML(Hyper Text Markup Language)で記述したファイルであるコンテンツをHTTP(Hyper Text Transfer Protocol)を用いてWWW(World Wide Web)サーバからクライアントに転送し、WWWブラウザで出力するWWWシステムが広く活用されている。
また、一般家庭へのブロードバンド回線普及や高性能なPC(Personal Computer)の普及に伴い、ネットワークを利用した高画質、大容量な動画をストリーミング配信するサービスが簡単に実現可能となっている。このストリーミング配信では、クライアント(クライアント端末)から配信サーバへリクエストメッセージを送信し、その応答として、配信サーバが、動画データをヘッダと共にクライアントに送信することが行われている。この際、クライアントは、そのデータを解釈して再生することができる。
現在のストリーミング配信の課題として、配信サーバの処理能力に限界がある。すなわち、配信サーバ1台当たりの配信数には制限がある。このため、多数のクライアントからのリクエストに対して、十分な品質でコンテンツを配信するためには、複数台の配信サーバを配置して、クライアントの要求に応える必要がある。
複数台のサーバを配置する方法としては、単純にサーバを並列配置し、クライアントからのリクエストを各サーバに分散させる方法や、コンテンツファイルを各サーバで共有し、各サーバが共有のコンテンツファイルから読み出す方法がある。
しかし、これらの方法では、コンテンツを保管するストレージの容量、多重読出し処理による性能低下が発生する。
そこで、オリジナルのコンテンツを有する配信サーバ(オリジンサーバ)の前段に、プロキシサーバを配置し、頻繁にクライアントからリクエストされるコンテンツをプロキシサーバにキャッシュデータとして保存し、クライアントから、プロキシサーバへ同一コンテンツのリクエストが到着した場合には、プロキシサーバは、オリジンサーバへアクセスすることなく、クライアントに応答を返すとともに、プロキシサーバに接続されている記憶装置にパケットをキャッシュデータとして保存するようにしたものが提案されている(特許文献1参照)。
また、オリジンサーバの前段にプロキシサーバを配置し、クライアントから配信要求を受けたプロキシサーバが、配信要求をオリジンサーバへ転送し、オリジンサーバが、プロトコルヘッダを付与するとともに、プロトコルヘッダが付与されたパケットをプロキシサーバに配信し、これを受けたプロキシサーバが、オリジンサーバから送信されたパケットの宛先をクライアントへと変更してクライアントに配信すると同時に、ストリーミングのパケットをキャプチャし、プロトコルヘッダや送信タイミングなどを記録したデータ(ヒントファイル)とコンテンツデータ(パケットファイル)をキャッシュデータとしてストレージに格納するようにしたものが提案されている(特許文献2参照)。
特開2004−70860号公報 特開2005−295467号公報
前記従来技術のうち前者のものは、キャッシュデータとしてコンテンツのみを記憶装置に保存する構成を採用しているので、プロトコルヘッダの配信時に、プロキシサーバが、プロトコルヘッダにコンテンツデータを付与する必要がある。この結果、同一コンテンツへの要求がプロキシサーバに頻繁に届いた場合、毎回コンテンツデータにプロトコルヘッダを付与する処理が発生し、プロキシサーバの負荷が上昇することになる。
一方、後者のものは、ネットワークを流れるパケットのプロトコルは、動画配信プロトコルに依存しない形式であることを考慮している。このため、プロキシサーバは、動画配信プロトコル固有の処理を理解する機能を持つ必要がないとともに、キャッシュデータとして保存されているプロトコルと同一プロトコルで再度クライアントから要求された場合には、要求されたプロトコルをクライアントに配信可能である。しかし、クライアントから要求されたコンテンツが同一であってもプロトコルが異なった場合、プロキシサーバは、オリジンサーバからプロトコルヘッダとデータ本体を取得する必要があり、オリジンサーバとプロキシサーバとの間のネットワーク帯域を消費しやすくなる。
本発明の目的は、配信要求で指定されたプロトコルヘッダが配信要求毎に異なるときでも、プロトコルヘッダの生成に伴う処理をより少なくして、プロトコルヘッダとコンテンツをクライアントに配信することができるデータ転送方法とプロキシサーバおよびストレージサブシステムを提供することにある。
前記目的を達成するために、本発明は、クライアントからの配信要求を識別して、配信要求で指定されたプロトコルヘッダとコンテンツが記憶部に保存されていないことを条件に、配信要求をオリジンサーバに転送し、オリジンサーバから送信されたプロトコルヘッダとコンテンツを記憶部に保存するとともに、クライアントに送信し、且つオリジンサーバから送信されたプロトコルヘッダを基に他のプロトコルヘッダを生成し、生成した他のプロトコルヘッダとコンテンツを互いに関連付けて記憶部に保存し、クライアントからの配信要求で指定されたプロトコルヘッダとコンテンツが記憶部に保存されているときには、保存されているプロトコルヘッダとコンテンツをクライアントに配信することを特徴とするものである。
本発明によれば、配信要求で指定されたプロトコルヘッダが配信要求毎に異なるときでも、プロトコルヘッダの生成に伴う処理をより少なくして、プロトコルヘッダとコンテンツをクライアントに配信することができる。
以下、本発明の実施形態を図面に基づいて説明する。図1は、本発明に係るストレージサブシステムの一実施例を示すブロック構成図である。図1において、ストレージサブシステムは、プロキシサーバ10と、オリジンサーバ12を備えており、NAS(Network Attached Storage)のハードウエアとして、通信ネットワークとしてのLAN(Local Area Network)14を介してオリジンサーバ12に接続されている。さらにプロキシサーバ10は、通信ネットワークとしてのインターネット16を介してクライアント(クライアント端末)18に接続されている。
プロキシサーバ10は、プロキシサーバ10全体の処理を統括するCPU(Central Processing Unit)20と、各種情報を記憶する主メモリ22と、ネットワークインターフェイス24と、管理インターフェイス26と、記憶部としての記憶装置28と、内部バス30を備えて構成されており、各部は内部バス30を介して互いに接続されている。ネットワークインターフェイス24は、LAN14とインターネット16に接続され、管理インターフェイス26は、保守用管理PC32に接続されている。
CPU20は、主メモリ22と記憶装置28のデータを読み書きし、プログラムにしたがって各種のデータ処理を実行するようになっている。この際、CPU20は、記憶装置28からプログラムを読出し、読み出したプログラムを主メモリ22にロードするようになっている。
主メモリ22には、管理テーブル34が格納され、記憶装置28には、OS(Operating System)として、要求転送プログラム36と要求処理プログラム38が格納されているとともに、受信部40として、パケットキャプチャ制御プログラム42とヘッダ変換プログラム44が格納され、配信部46として、配信手段プログラム48とファイル選択プログラム50が格納されている。すなわち、OSに関連するプログラムは主メモリ22にロードされている。
オリジンサーバ12は、LAN14に接続されたインターフェイス52、各種プログラムが格納された記憶装置54、プログラムに基づいてプロキシサーバ10と情報の授受を行うCPU(図示せず)を備えて構成されている。
CPU20、主メモリ22、ネットワークインターフェイス24は、図2および図3に示すように、制御部56として構成され、管理テーブル34には、図4に示すように、キャッシュリストテーブル58、プロトコル変換テーブル60、ヘッダ変換キューテーブル62、過負荷判定用テーブル64が格納されている。
キャッシュリストテーブル58は、図5(a)に示すように、コンテンツ名の識別子が格納されたコンテンツ名フィールド66、プロトコル名が格納されたプロトコルフィールド68、コンテンツの容量が格納されたサイズフィールド70から構成されている。
プロトコル変換テーブル60は、図5(b)に示すように、元のプロトコルの名称を示す元プロトコルフィールド72、変換後の新たなプロトコル名を示す新プロトコルフィールド74から構成されている。
ヘッダ変換キューテーブル62は、図5(c)に示すように、コンテンツ名の識別子が格納されるコンテンツ名フィールド76、変換先のプロトコルを示す変換先プロトコルフィールド78、登録時刻を示す登録時刻フィールド80から構成されている。
過負荷判定テーブル64は、図5(d)に示すように、稼働率の閾値が格納される稼働率閾値フィールド82、ヘッダ変換を実施するときの負荷判定に用いる最長待ち時間を示す最長待ち時間フィールド84から構成されている。なお、これらのテーブルでは、プロトコルとしてHTTP、RTSP(Real-Time Streaming Protocol)を用いた例を示している。
制御部56は、要求処理手段部86と、要求転送手段部88と、パケットキャプチャ手段部90と、ヘッダ変換手段部92と、配信手段部94と、ファイル選択手段部96としての機能を備えている。ヘッダ変換手段部92は、図6に示すように、ヘッダ変換エンジン部98と、ヘッダ互換判定部100と、デキュー実行判断部102としての機能を備えている。
次に、制御部56の具体的な内容について説明する。まず、要求処理手段部86の処理を図7のフローチャートに従って説明する。要求処理手段部86は、図7に示すように、クライアント18からの配信要求(プロトコル+コンテンツ名)を受けたときに、管理テーブル34を参照し、配信要求で指定されたプロトコルとコンテンツ名を解釈し(S1)、プロトコルとコンテンツの組み合わせがヒットしたか否かを判定する(S2)。ヒットしないとき、すなわち、プロトコルとコンテンツの組合せが記憶装置28に保存されていないと判定したとき、要求処理手段部86は、記憶装置28に、プロトコルとコンテンツ名がキャッシュデータとして保存されていないとして、要求転送手段部88をコールし(S3)、このルーチンでの処理を終了する。
一方、要求処理手段部86は、プロトコルとコンテンツの組合せがヒットしたときには、これらのデータがキャッシュデータとして記憶装置28に保存されているとして、配信手段部24をコールし(S4)、このルーチンでの処理を終了する。
要求転送手段部88は、図8に示すように、プロトコルとコンテンツの組合せがキャッシュデータとして記憶装置28に保存されていないとして、プロトコルとコンテンツの要求をオリジンサーバ12に送信し、このルーチンでの処理を終了する(S11)。
このあと、オリジンサーバ12は、要求転送手段部88からの指示に応答して、ヘッダ生成手段部104を起動し、ヘッダ生成手段部104により、指示に従ってヘッダを生成し、生成したヘッダにコンテンツを付与した配信データを受信部40に送信する。このあと受信部40は、パケットキャプチャ手段部90の処理によってパケットキャプチャを実行する。
具体的には、パケットキャプチャ手段部90は、図9に示すように、流れているパケットが、キャッシュされていないコンテンツとヘッダの組合せか否かを判定し(S21)、肯定の判定結果を得たときには、ヘッダキュー変換テーブル62にコンテンツ名、変換先プロトコル、登録時刻を登録し(S22)、且つパケットを記憶装置28に登録し(S23)、パケットを配信部46へ転送し(S24)、EOF(End Of File)か否かを判定し(S25)、EOFとなるまでS23からS25の処理を繰り返し、EOFとなったときには、このルーチンでの処理を終了する。
一方、パケットキャプチャ手段部90は、ステップS21で否定の判定結果を得たときには、パケットを配信部46へ転送し(S26)、EOFか否かを判定し(S27)、EOFとなるまでステップS26の処理を繰り返し、EOFとなったときには、このルーチンでの処理を終了する。
次に、ヘッダ変換手段部92の処理を図10のフローチャートにしたがって説明する。ヘッダ変換手段部92は、オリジンサーバ12から送信されたヘッダを基に別の動画配信プロトコルヘッダを生成するために、過負荷判定用テーブル64を参照し、負荷の状態から、ヘッダ変換が可能か否かを判定し(S31)、肯定の判定結果を得たときには、ヘッダ変換エンジン部98に、ヘッダ変換を実行させ(S32)、このルーチンでの処理を終了する。
一方、ヘッダ変換手段部92は、ステップS31で否定の判定結果を得たときには、その理由は過負荷か否かを判定し(S33)、過負荷であると判定したときには、過負荷が解消されるのを待つためにステップS31の処理に戻り、理由は過負荷でないときには、設定された時間を経過してもヘッダの変換が不可能な場合あるいは直接の変換が難しいヘッダ同士、例えば、データ全体を参照しないとヘッダ交換ができないプロトコルに変換する場合などには、オリジンサーバ12でのヘッダの変換を指示し(S34)、このルーチンでの処理を終了する。
次に、ヘッダ互換判定部100の処理を図11のフローチャートにしたがって説明する。ヘッダ互換判定部100は、オリジンサーバ12からの配信データを取り込み、この配信データからコンテンツ名とプロトコルを取り出し(S41)、取り出したプロトコルがプロトコル変換テーブル74にマッチするか否かを判定し(S42)、オリジンサーバ12からの配信データから取り出したプロトコルがプロトコル変換テーブル74とマッチすると判定したときには、ヘッダキュー変換テーブル62を参照し、変換キューは満杯であるか否かを判定し(S43)、満杯でないときにはヘッダ変換キューテーブル62に変換先プロトコルを追加し(S44)、このルーチンでの処理を終了する。
一方、ヘッダ互換判定部100は、クライアント18からの配信要求で指定されたプロトコルがプロトコル変換テーブル62にマッチしていないと判定したときには、オリジンサーバ12へ要求を転送し(S45)、このルーチンでの処理を終了する。
次に、ヘッダ変換エンジン部98の処理を図12のフローチャートにしたがって説明する。ヘッダ変換エンジン部92は、オリジンサーバ104からのヘッダを基に別の動画配信プロトコルヘッダに変換可能であるときに、元のパケットサイズを読み込み(S51)、変換先のプロトコルヘッダ固定部分を生成し(S52)、シーケンスナンバーなどの動的値を生成し(S53)、このルーチンでの処理を終了する。
次に、デキュー実行判断部102の処理を図13のフローチャートにしたがって説明する。デキュー実行判断部102は、キューにジョブがあるか否かを判定し(S61)、キューにジョブがあることを条件に、負荷が閾値以下であるか否かを判定し(S62)、負荷が閾値以下であると判定したときには、ヘッダ変換エンジン部98をコールし(S63)、ヘッダ変換エンジン部98の処理が終了するのを待ち(S64)、待ち時間をリセットし(S65)、キューからジョブを削除し(S66)、このルーチンでの処理を終了する。
一方、デキュー実行判断部102は、負荷が閾値よりも高いと判定したときには、キューの末端のジョブか否かを判定し(S67)、キューの末端のジョブであるときには、このルーチンでの処理を終了し、キューの末端のジョブでないと判定したときには、待ち時間制限値を越えているジョブか否かを判定し(S68)、待ち時間制限値を越えているジョブのときにはオリジンサーバ12へ要求を転送し(S69)、キューからジョブを削除し(S70)、一方、待ち時間制限値を越えているジョブでないと判定したときには、待ち時間を更新し(S71)、次のジョブへ移行するための処理を行い(S72)、ステップS67の処理に戻る。
次に、パケットキャプチャとヘッダ変換処理の具体的内容を図14に示す。オリジンサーバ12とプロキシサーバ10との間およびプロキシサーバ10とクライアント18との間では、データリンク層フレーム200で構成された動画配信パケットの授受が行われる。データリンク層フレーム200はIP(Internet Protocol)ヘッダ202、TCP(Transmission Control Protocol)/UDP(User Datagram Protocol)ヘッダ204、動画配信ヘッダ206、動画データn208から構成されている。
この際、データリンク層フレーム200で構成された動画配信パケットは、コンテンツごとにパケットに分割され、分割されたコンテンツにヘッダが付与されて送信される。これは、動画配信ヘッダは、動画データに依存して内容が決定されるため、予め生成が可能である。この際、ヒントファイルとしてのプロトコルAは、制御情報として、配信時刻210、先頭から何番目のファイルかを示すオフセット212、サイズ214で構成され、データパケットファイル216は、動画配信ヘッダ218、#1の動画データ220、#2の動画データ222、#3の動画データ224、#4の動画データ226、#5の動画データ228で構成される。そしてプロキシサーバ10では、プロトコルAを基にプロトコルAとは異なるプロトコルBを生成する。このプロトコルBは、制御情報として、配信時刻230、オフセット232、サイズ234で構成される。データパケットファイル236は、動画配信ヘッダ238、#1の動画データ220、#2の動画データ222、#3の動画データ224、#4の動画データ226、#5の動画データ228で構成される。プロトコルA、Bは、キャプチャデータとして記憶装置28に保存されるとともに、パケットを再構築する際、データリンク層フレーム200に付加されてクライアント18に配信される。
次に、図15に、HTTPヘッダ300の構成とRTP(Real-time Transport Protocol)ヘッダ302の例を示す。
HTTPヘッダ300は、項目として、HTTPボディ304、CRLF306、コマンド308、長さ310、シーケンスナンバー312、ID314、フラグ316、長さ318を備えている。HTTPボディ304には、ヘッダ生成時に生成されたデータパケットサイズが格納され、シーケンスナンバー312には、ヘッダ生成時に動的に生成されたナンバーが格納され、フラグ316には、ヘッダ生成時に生成された、「00」、「04」、「08」などの数値が格納される。なお、他の項目は固定された値となっている。
RTPヘッダ302は、バージョン320、パディング322、拡張子324、CSRC(Contributing Source)326、マーカ328、ペイロードタイプ330、シーケンスナンバー332、PTS(Presentation Time Stamp)334、SSID336、オフセット値338の項目で構成されている。
次に、ヘッダをHTTPヘッダからRTPヘッダに変換するときの処理を図16のフローチャートにしたがって説明する。ヘッダ変換エンジン部98は、バージョン320を10bとし(S81)、RTPデータパケットに含めるHTTPデータパケット数U=RTPパケットサイズ/HTTPパケットサイズとし(S82)、Uが整数であるか否かを判定し(S83)、Uが整数のときにはパディング322を0とし(S84)、Uが整数でないときには、Uの少数部分を切り捨て(S85)、パディング322を1とし(S86)、そのあと拡張子324を0とし(S87)、CSRC326を0000bとし(S88)、末尾のパケットか否かを判定する(S89)。
このあと、ヘッダ変換エンジン部98は、パケットが末尾のパケットのときには、マーカ328を1とし(S90)、パケットが末尾のパケットでないときにはマーカ328を0とし(S91)、そのあとペイロード330を1100000bとし(S92)、シーケンスナンバー332を先頭からの通しナンバーとし(S93)、PTS334を、先頭から順に付与された再生時刻とし(S94)、Synchronization ID=NULLとし(S95)、オフセット値338を、直前までに送信したバイト数とし(S96)、ヘッダにデータパケットを付与し(S97)、Uの数だけデータパケットを付与したか否かを判定し(S98)、Uの数だけデータパケットを付与したときにはこのルーチンでの処理を終了し、それ以外のときにはデータパケットを追加し(S99)、ステップS98の処理を繰り返す。これにより、HTTPヘッダ300をRTPヘッダ302に変換することができる。
次に、配信手段部94の処理を図17のフローチャートにしたがって説明する。配信手段部94は、配信時に、記憶装置28からファイルを選択し(S101)、クライアント18へヘッダとコンテンツ本体を配信(送信)し(S102)、このルーチンでの処理を終了する。
次に、クライアント18からの配信要求に応答してプロキシサーバがキャッシュデータを保存するときの動作として、低負荷時の処理を図18にしたがって説明する。クライアント18からプロトコルAのコンテンツ1を含む配信要求がプロキシサーバ10に送信されたときに、プロキシサーバ10は、要求処理手段部86を起動する。要求処理手段部86は管理テーブル34を参照し、記憶装置28に、配信要求で指定されたプロトコルAのコンテンツ1が存在しないときにはコンテンツ1の配信要求を、要求転送手段部88からオリジンサーバ12へ送信させる。
オリジンサーバ12は、プロキシサーバ10からの配信要求を受けると、ヘッダ生成手段部104を起動し、プロトコルAのヘッダを生成し、生成したヘッダにコンテンツ1を付与してプロキシサーバ10へ送信する。
プロキシサーバ10は、プロトコルAのヘッダとコンテンツ1を配信手段部94からクライアント18に送信する。それと同時に、パケットキャプチャ手段部90は、プロトコルAのヘッダとコンテンツ1を記憶装置28に保存するとともに、ヘッダ変換キューテーブル62にヘッダ変換ジョブを登録する。この際、ヘッダ変換手段部92は、プロキシサーバ10のヘッダの生成や配信に伴う負荷が低い場合は、即座にヘッダ変換キューテーブル62からジョブを取り出し、別のプロトコルヘッダ、例えば、プロトコルB用のヘッダを生成し、生成したプロトコルBのヘッダにコンテンツを付与し、別のキャッシュデータとして記憶装置28に保存する。
次に、過負荷時の処理を図19にしたがって説明する。クライアント18からプロトコルAのコンテンツ1を含む配信要求がプロキシサーバ10に送信されたときに、プロキシサーバ10は、記憶装置28に配信要求で指定されたプロトコルAのコンテンツが存在しないときには、オリジンサーバ12へ配信要求を転送する。この処理までは、図18の場合と同様であるが、オリジンサーバ12からプロトコルAのヘッダにコンテンツ1が付与されたデータがプロキシサーバ10に送信され、プロキシサーバ10において、オリジンサーバ12からのプロトコルAのヘッダを基に別のヘッダを生成するときに、ヘッダ変換手段部92が負荷の状態を監視し、過負荷状態と判定したときにはプロトコルAのキャプチャは実施するが、変換ジョブをヘッダ変換キューテーブル62に溜めるための処理を行う。
この際、ヘッダ変換手段部92は、一定の時間間隔をおいて、キューに変換ジョブがあるか否か、すなわち過負荷状態であるか否かを監視し、過負荷状態が解消されたことを条件に、キューに変換ジョブが残っている場合、プロトコルヘッダの変換処理を開始する。一方、過負荷状態が一定時間あるいは設定時間以上継続していると判断したときには、ヘッダ変換手段部92は、オリジンサーバ12に対して、他のプロトコルヘッダの生成を指示し、オリジンサーバ12で生成されたプロトコルヘッダ、例えば、プロトコルBヘッダをキャプチャし、記憶装置28にキャッシュデータとして保存する。
次に、過負荷状態継続時の処理を図20にしたがって説明する。プロキシサーバ10における過負荷状態が継続され、過負荷状態が解消されないときには、ヘッダ変換手段部92は、オリジンサーバ12に対してプロトコルヘッダの生成を指示する。このあとオリジンサーバ12から指定のプロトコルヘッダ、例えば、プロトコルBヘッダが転送されたときには、先に記憶装置28にキャプチャデータとして保存したコンテンツ本体とともに記憶装置28にキャッシュデータとして保存するとともに、キャッシュリストテーブル58にその内容を登録する。
次に、同一コンテンツであって別のプロトコルの要求がクライアントからあったときの処理を図21にしたがって説明する。クライアント18から、以前の配信要求で指定されたプロトコルAヘッダとはプロトコルは異なるがコンテンツは同一の配信要求、例えば、プロトコルBとコンテンツ1を含む配信要求が送信されたときに、要求処理手段部86は、同一コンテンツであって、キャッシュ済みのプロトコルであると判別したときには、ファイルの選択をファイル選択手段96に指示する。ファイル選択手段部96は、記憶装置28からプロトコルBヘッダとコンテンツ1のデータを記憶装置28から抽出して配信手段部94に出力する。配信手段部94は、抽出したプロトコルBヘッダとコンテンツ1のデータをクライアント18に配信する。
このときクライアント18は、プロトコルBヘッダとコンテンツ1のデータを解釈し、コンテンツ1の再生を開始する。なお、この際、プロトコルBが記憶装置28に保存されていないときには、要求転送手段部88からオリジンサーバ12に対してプロトコルBのヘッダの生成を指示することになる。
上記の処理によって、コンテンツのデータ本体が同一で、ヘッダだけが異なる場合には、プロキシサーバ10内のデータを使用することができる。この際、記憶装置28には、プロトコルAヘッダ+コンテンツ1のデータと、プロトコルBヘッダ+コンテンツ1のデータが保存されるため、データ量がほぼ2倍となる。この際、各プロトコルごとにヘッダを生成し、生成したヘッダとコンテンツのデータとを記憶装置28の異なる記憶領域に保存し、配信時に、各記憶領域に保存されていたヘッダとコンテンツデータを結合して配信する構成を採用することもできる。
本実施形態によれば、プロキシサーバ10は、クライアント18からの配信要求を識別して、配信要求で指定されたプロトコルヘッダとコンテンツが記憶装置28に保存されていないときには、配信要求をオリジンサーバ12に転送し、オリジンサーバ12から送信されたプロトコルヘッダとコンテンツを記憶装置28に保存するとともにクライアント18に送信し、且つオリジンサーバ12から送信されたプロトコルヘッダを基に他のプロトコルヘッダを生成し、他のプロトコルヘッダとコンテンツを互いに関連付けて記憶装置28に保存し、クライアント18からの配信要求で指定されたプロトコルヘッダとコンテンツが記憶装置28に保存されているときには、プロトコルヘッダとコンテンツを記憶装置28から抽出してクライアント18に配信するようにしたため、配信要求で指定されたプロトコルヘッダが配信要求毎に異なるときでも、プロトコルヘッダの生成に伴う処理をより少なくして、プロトコルヘッダとコンテンツをクライアントに配信することができる。
本発明の一実施形態を示すストレージサブシステムのブロック構成図。 オリジンサーバとプロキシサーバおよびクライアントとの関係を説明するためのブロック図。 制御部の構成図。 管理テーブルの構成図。 キャッシュリストテーブルと、プロトコル変換テーブルと、ヘッダ変換キューテーブルおよび過負荷判定テーブルの構成図。 ヘッダ変換手段部の構成図。 要求処理手段部の処理を説明するためのフローチャート。 要求転送手段部の処理を説明するためのフローチャート。 パケットキャプチャ手段部の処理を説明するためのフローチャート。 ヘッダ変換手段部の処理を説明するためのフローチャート。 ヘッダ互換判定部の処理を説明するためのフローチャート。 ヘッダ変換エンジン部の処理を説明するためのフローチャート。 デキュー実行判断部の処理を説明するためのフローチャート。 オリジンサーバとプロキシサーバおよびクライアント間で送受信される動画配信パケットの構成を説明するための図。 HTTPヘッダとRTPヘッダの構成図。 HTTPヘッダをRTPヘッダに変換するときの処理を説明するためのフローチャート。 配信手段部の処理を説明するためのフローチャート。 新規にキャッシュするときの処理であって、低負荷時の処理を説明するための構成図。 新規にキャッシュするときの処理であって、過負荷時の処理を説明するための構成図。 過負荷状態継続時の処理を説明するための構成図。 同一コンテンツであって異なるプロトコルが要求されたときの処理を説明するための構成図。
符号の説明
10 プロキシサーバ、12 オリジンサーバ、16 クライアント、20 CPU、22 主メモリ、28 記憶装置、86 要求処理手段部、88 要求転送手段部、90 パケットキャプチャ手段部、92 ヘッダ変換手段部、94 配信手段部 、96 ファイル選択手段部、98 ヘッダ変換エンジン部、100 ヘッダ互換判断部、102 デキュー実行判断部

Claims (15)

  1. クライアントおよびオリジンサーバと通信ネットワークを介して情報の授受を行うとともに前記情報を処理する制御部と、前記制御部の処理に伴う情報を記憶する記憶部とを備え、
    前記制御部は、前記クライアントからの配信要求を識別して、前記配信要求で指定されたプロトコルヘッダとコンテンツが前記記憶部に保存されていないときには、前記配信要求をオリジンサーバに転送するステップと、前記転送された配信要求に応答して前記オリジンサーバから送信されたプロトコルヘッダとコンテンツを前記記憶部に保存するステップと、前記転送された配信要求に応答して前記オリジンサーバから送信されたプロトコルヘッダとコンテンツを前記クライアントに送信するステップと、前記転送された配信要求に応答して前記オリジンサーバから送信されたプロトコルヘッダを基に他のプロトコルヘッダを生成するステップと、当該ステップで生成した他のプロトコルヘッダと前記コンテンツを互いに関連づけて前記記憶部に保存するステップと、前記クライアントからの配信要求で指定されたプロトコルヘッダとコンテンツが前記記憶部に保存されているときには、当該プロトコルヘッダとコンテンツを前記記憶部から抽出して前記クライアントに配信するステップを実行する、データ転送方法。
  2. 前記制御部は、前記オリジンサーバから送信されたプロトコルヘッダを基に他のプロトコルヘッダを生成するときに、プロトコル毎にヘッダを生成するステップを実行するとともに、前記ステップで生成したヘッダを前記記憶部の記憶領域のうち前記コンテンツとは異なる記憶領域に保存するステップと、前記クライアントへの配信時に、前記コンテンツとは異なる記憶領域に保存されているヘッダと前記コンテンツとを結合して前記クライアントに配信するステップを実行する、請求項1に記載のデータ転送方法。
  3. 前記制御部は、前記オリジンサーバから送信されたプロトコルヘッダを基に他のプロトコルヘッダを生成するときに、前記他のプロトコルヘッダの生成に伴う負荷の状態を判定するステップと、前記ステップで前記負荷の状態が過負荷でないことを条件に前記他のプロトコルヘッダを生成するステップを実行する、請求項1に記載のデータ転送方法。
  4. 前記制御部は、前記オリジンサーバから送信されたプロトコルヘッダを基に他のプロトコルヘッダを生成するときに、前記他のプロトコルヘッダの生成に伴う負荷の状態を判定するステップと、前記ステップで前記負荷の状態が過負荷であることが設定時間以上継続されているときには、前記オリジンサーバに前記他のプロトコルヘッダの生成を指示するステップと、前記指示に応答して前記オリジンサーバから送信されたプロトコルヘッダと当該プロトコルヘッダに対応したコンテンツとして前記記憶部から抽出したコンテンツを前記クライアントに送信するステップと、前記指示に応答して前記オリジンサーバから送信されたプロトコルヘッダを当該プロトコルヘッダに対応したコンテンツと互いに関連づけて前記記憶部に保存するステップとを実行する、請求項1に記載のデータ転送方法。
  5. 前記制御部は、前記クライアントからの配信要求を識別して、前記配信要求で指定されたプロトコルヘッダとコンテンツが以前の配信要求で指定されたプロトコルヘッダとコンテンツと同一であるか否かを判定するステップと、当該ステップで前記プロトコルヘッダは異なるが前記コンテンツは同一であると判定したときには、前記記憶部を検索するステップと、当該ステップの検索により、前記配信要求で指定されたプロトコルヘッダとコンテンツが前記記憶部から抽出されたときには、抽出されたプロトコルヘッダとコンテンツを前記クライアントに配信するステップと、前記ステップの検索により、前記配信要求で指定されたプロトコルヘッダとコンテンツが前記記憶部に存在しないときには、前記配信要求で指定されたプロトコルヘッダの生成を前記オリジンサーバに指示するステップを実行する、請求項1に記載のデータ転送方法。
  6. クライアントおよびオリジンサーバと通信ネットワークを介して情報の授受を行うとともに前記情報を処理する制御部と、前記制御部の処理に伴う情報を記憶する記憶部とを備え、
    前記制御部は、前記クライアントからの配信要求を識別して、前記配信要求で指定されたプロトコルヘッダとコンテンツが前記記憶部に保存されていないときには、前記配信要求をオリジンサーバに転送し、前記転送された配信要求に応答して前記オリジンサーバから送信されたプロトコルヘッダとコンテンツを前記記憶部に保存するとともに、前記クライアントに送信し、かつ前記オリジンサーバから送信されたプロトコルヘッダを基に他のプロトコルヘッダを生成し、前記生成した他のプロトコルヘッダと前記コンテンツを互いに関連づけて前記記憶部に保存し、前記クライアントからの配信要求で指定されたプロトコルヘッダとコンテンツが前記記憶部に保存されているときには、当該プロトコルヘッダとコンテンツを前記記憶部から抽出して前記クライアントに配信してなる、プロキシサーバ。
  7. 前記制御部は、前記オリジンサーバから送信されたプロトコルヘッダを基に他のプロトコルヘッダを生成するときに、プロトコル毎にヘッダを生成するとともに、前記生成したヘッダを前記記憶部の記憶領域のうち前記コンテンツとは異なる記憶領域に保存し、前記クライアントへの配信時に、前記コンテンツとは異なる記憶領域に保存されているヘッダと前記コンテンツとを結合して前記クライアントに配信してなる、請求項6に記載のプロキシサーバ。
  8. 前記制御部は、前記オリジンサーバから送信されたプロトコルヘッダを基に他のプロトコルヘッダを生成するときに、前記他のプロトコルヘッダの生成に伴う負荷の状態を判定し、前記負荷の状態が過負荷でないことを条件に前記他のプロトコルヘッダを生成してなる、請求項6に記載のプロキシサーバ。
  9. 前記制御部は、前記オリジンサーバから送信されたプロトコルヘッダを基に他のプロトコルヘッダを生成するときに、前記他のプロトコルヘッダの生成に伴う負荷の状態を判定し、前記負荷の状態が過負荷であることが設定時間以上継続されているときには、前記オリジンサーバに前記他のプロトコルヘッダの生成を指示し、前記指示に応答して前記オリジンサーバから送信されたプロトコルヘッダと当該プロトコルヘッダに対応したコンテンツとして前記記憶部から抽出したコンテンツを前記クライアントに送信するとともに、前記指示に応答して前記オリジンサーバから送信されたプロトコルヘッダを当該プロトコルヘッダに対応したコンテンツと互いに関連づけて前記記憶部に保存してなる、請求項6に記載のプロキシサーバ。
  10. 前記制御部は、前記クライアントからの配信要求を識別して、前記配信要求で指定されたプロトコルヘッダとコンテンツが以前の配信要求で指定されたプロトコルヘッダとコンテンツと同一であるか否かを判定し、前記プロトコルヘッダは異なるが前記コンテンツは同一であると判定したときには、前記記憶部を検索し、この検索により、前記配信要求で指定されたプロトコルヘッダとコンテンツが前記記憶部から抽出されたときには、抽出されたプロトコルヘッダとコンテンツを前記クライアントに配信し、前記検索により、前記配信要求で指定されたプロトコルヘッダとコンテンツが前記記憶部に存在しないときには、前記配信要求で指定されたプロトコルヘッダの生成を前記オリジンサーバに指示してなる、請求項6に記載のプロキシサーバ。
  11. クライアントと通信ネットワークを介して情報の授受を行うとともに前記情報を処理するプロキシサーバと、前記プロキシサーバと前記通信ネットワークとは異なる通信ネットワークを介して情報の授受を行うオリジンサーバと、を備え、
    前記プロキシサーバは、ストレージとして記憶デバイスで構成された記憶部を備え、前記クライアントからの配信要求を識別して、前記配信要求で指定されたプロトコルヘッダとコンテンツが前記記憶部に保存されていないときには、前記配信要求をオリジンサーバに転送し、前記転送された配信要求に応答して前記オリジンサーバから送信されたプロトコルヘッダとコンテンツを前記記憶部に保存するとともに、前記クライアントに送信し、かつ前記オリジンサーバから送信されたプロトコルヘッダを基に他のプロトコルヘッダを生成し、前記生成した他のプロトコルヘッダと前記コンテンツを互いに関連づけて前記記憶部に保存し、前記クライアントからの配信要求で指定されたプロトコルヘッダとコンテンツが前記記憶部に保存されているときには、当該プロトコルヘッダとコンテンツを前記記憶部から抽出して前記クライアントに配信し、
    前記オリジンサーバは、前記プロキシサーバから転送された配信要求に応答して、前記配信要求で指定されたプロトコルヘッダを生成し、生成したプロトコルヘッダに前記配信要求で指定されたコンテンツを付与して前記プロキシサーバに送信してなる、ストレージサブシステム。
  12. 前記プロキシサーバは、前記オリジンサーバから送信されたプロトコルヘッダを基に他のプロトコルヘッダを生成するときに、プロトコル毎にヘッダを生成するとともに、前記生成したヘッダを前記記憶部の記憶領域のうち前記コンテンツとは異なる記憶領域に保存し、前記クライアントへの配信時に、前記コンテンツとは異なる記憶領域に保存されているヘッダと前記コンテンツとを結合して前記クライアントに配信してなる、請求項11に記載のストレージサブシステム。
  13. 前記プロキシサーバは、前記オリジンサーバから送信されたプロトコルヘッダを基に他のプロトコルヘッダを生成するときに、前記他のプロトコルヘッダの生成に伴う負荷の状態を判定し、前記負荷の状態が過負荷でないことを条件に前記他のプロトコルヘッダを生成してなる、請求項11に記載のストレージサブシステム。
  14. 前記プロキシサーバは、前記オリジンサーバから送信されたプロトコルヘッダを基に他のプロトコルヘッダを生成するときに、前記他のプロトコルヘッダの生成に伴う負荷の状態を判定し、前記負荷の状態が過負荷であることが設定時間以上継続されているときには、前記オリジンサーバに前記他のプロトコルヘッダの生成を指示し、前記指示に応答して前記オリジンサーバから送信されたプロトコルヘッダと当該プロトコルヘッダに対応したコンテンツとして前記記憶部から抽出したコンテンツを前記クライアントに送信するとともに、前記指示に応答して前記オリジンサーバから送信されたプロトコルヘッダを当該プロトコルヘッダに対応したコンテンツと互いに関連づけて前記記憶部に保存し、
    前記オリジンサーバは、前記プロキシサーバからの指示に応答して、前記指示に従ってプロトコルヘッダを生成し、生成したプロトコルヘッダを前記プロキシサーバに送信してなる、請求項11に記載のストレージサブシステム。
  15. 前記プロキシサーバは、前記クライアントからの配信要求を識別して、前記配信要求で指定されたプロトコルヘッダとコンテンツが以前の配信要求で指定されたプロトコルヘッダとコンテンツと同一であるか否かを判定し、前記プロトコルヘッダは異なるが前記コンテンツは同一であると判定したときには、前記記憶部を検索し、この検索により、前記配信要求で指定されたプロトコルヘッダとコンテンツが前記記憶部から抽出されたときには、抽出されたプロトコルヘッダとコンテンツを前記クライアントに配信し、前記検索により、前記配信要求で指定されたプロトコルヘッダとコンテンツが前記記憶部に存在しないときには、前記配信要求で指定されたプロトコルヘッダの生成を前記オリジンサーバに指示、
    前記オリジンサーバは、前記プロキシサーバからの指示に応答して、前記指示に従ってプロトコルヘッダを生成し、生成したプロトコルヘッダを前記プロキシサーバに送信してなる、請求項11に記載のストレージサブシステム。
JP2008114478A 2008-04-24 2008-04-24 データ転送方法とプロキシサーバおよびストレージサブシステム Expired - Fee Related JP4950938B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008114478A JP4950938B2 (ja) 2008-04-24 2008-04-24 データ転送方法とプロキシサーバおよびストレージサブシステム
US12/219,503 US8250110B2 (en) 2008-04-24 2008-07-23 Data transfer method and proxy server, and storage subsystem

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008114478A JP4950938B2 (ja) 2008-04-24 2008-04-24 データ転送方法とプロキシサーバおよびストレージサブシステム

Publications (2)

Publication Number Publication Date
JP2009265932A JP2009265932A (ja) 2009-11-12
JP4950938B2 true JP4950938B2 (ja) 2012-06-13

Family

ID=41216095

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008114478A Expired - Fee Related JP4950938B2 (ja) 2008-04-24 2008-04-24 データ転送方法とプロキシサーバおよびストレージサブシステム

Country Status (2)

Country Link
US (1) US8250110B2 (ja)
JP (1) JP4950938B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011024949A1 (ja) * 2009-08-31 2011-03-03 日本電気株式会社 コンテンツ配信装置、コンテンツ配信方法、およびプログラム
JP5424940B2 (ja) * 2010-03-03 2014-02-26 キヤノン株式会社 ネットワーク装置、情報処理装置及びこれらの制御方法、並びにネットワークシステム、代理応答方法及びコンピュータプログラム
US10142157B2 (en) * 2010-06-10 2018-11-27 Blackberry Limited Method and system for reducing transmission of redundant data
ES2387437B1 (es) * 2010-11-19 2013-05-20 Telefónica, S.A. Sistema de comunicaciones y método para comunicaciones entre internet y subsistemas ngn/ims.
JP6007799B2 (ja) * 2013-01-16 2016-10-12 富士通株式会社 集中管理型網制御システム
US10025635B2 (en) * 2014-06-09 2018-07-17 International Business Mahcines Corporation Adaptive scheduling policy for jobs submitted to a grid

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0728721A (ja) * 1993-07-07 1995-01-31 Nippon Telegr & Teleph Corp <Ntt> リモートデータベース通信処理方法
JPH11284682A (ja) * 1998-03-31 1999-10-15 Fuji Photo Film Co Ltd 画像転送システム
JP2002024191A (ja) * 2000-06-30 2002-01-25 Toshiba Corp Wwwシステム、wwwサーバのトラフィック緩和方法、及びwwwサーバ
US6871281B2 (en) * 2001-02-23 2005-03-22 Thomas J. Schwab Method and system for sending data between computers using a secure pipeline
JP2002271398A (ja) * 2001-03-12 2002-09-20 Toshiba Corp ネットワーク中継装置およびその中継方法
JP2003162444A (ja) * 2001-11-27 2003-06-06 Netarc Inc 情報提供システム、情報提供方法、情報提供プログラム
SE0202057D0 (sv) * 2002-07-02 2002-07-02 Ericsson Telefon Ab L M Cookie receipt header
US7724711B2 (en) * 2002-08-05 2010-05-25 Nokia Corporation Method of speeding up the registration procedure in a cellular network
JP2004070860A (ja) 2002-08-09 2004-03-04 Hitachi Ltd ストリームコンテンツ配送システムおよびプロキシサーバ
WO2004023706A1 (en) * 2002-09-06 2004-03-18 Telefonaktiebolaget Lm Ericsson (Publ) Method and devices for controlling retransmissions in data streaming
US7539858B2 (en) * 2004-04-05 2009-05-26 Nippon Telegraph And Telephone Corporation Packet encryption substituting device, method thereof, and program recording medium
JP4718122B2 (ja) 2004-04-06 2011-07-06 株式会社日立製作所 メディア配信装置
JP4560422B2 (ja) * 2005-02-16 2010-10-13 キヤノン株式会社 撮像装置及びその制御方法
US7970856B2 (en) * 2006-06-02 2011-06-28 International Business Machines Corporation System and method for managing and distributing assets over a network

Also Published As

Publication number Publication date
US8250110B2 (en) 2012-08-21
JP2009265932A (ja) 2009-11-12
US20090271526A1 (en) 2009-10-29

Similar Documents

Publication Publication Date Title
US9674252B2 (en) System and method for efficient delivery of repetitive multimedia content
US8307107B2 (en) Methods and apparatuses to extend header for transferring data
US9276984B2 (en) Distributed on-demand media transcoding system and method
EP3275162B1 (en) Systems and techniques for web communication
US8898336B2 (en) Content conversion system and content conversion server
US7242324B2 (en) Distributed on-demand media transcoding system and method
JP5872702B2 (ja) モビリティおよびマルチホーミングコンテンツ検索アプリケーションのためのシステムおよび方法
JP4950938B2 (ja) データ転送方法とプロキシサーバおよびストレージサブシステム
KR100734629B1 (ko) 부분 캐싱 방법 및 이를 이용한 적응형 콘텐츠 전송 방법
JP4518719B2 (ja) データ処理システム、情報処理装置、および方法、並びにコンピュータ・プログラム
WO2008141538A1 (fr) Procédé, dispositif et système servant à distribuer des données de fichier
KR20030056701A (ko) P2p 방식을 이용한 멀티미디어 스트리밍 장치 및 방법
JP2001092752A (ja) 画像データ配信システムおよびそれに用いる記録媒体
TW200812317A (en) Method for transferring video data and proxy server using the same
KR100936918B1 (ko) 정적 파일 전송 시스템콜 처리 toe 장치 및 방법
CN101094387A (zh) 一种网络内容传输控制***和方法
EP2566177A1 (en) Electronic apparatus and method for transferring contents on cloud system to device connected to DLNA
EP1636966B1 (en) Content delivery system
JP2017135694A (ja) ネットワークシステム内でのメディアストリームの要求及び受信
KR102007669B1 (ko) 방송 수신기 및 이의 운용 방법
Lin et al. TuBeck: a novel peer-to-peer streaming system with Loopback-MDC for scalable H. 264/AVC videos
JP5660983B2 (ja) コンテンツ配信システム
CN116886676A (zh) 流媒体数据加工方法、设备及可读存储介质
JP2006295819A (ja) データ送信装置、データ送信方法及びデータ送信プログラム
Steinberg et al. Improving user relocatability, practicality, and deployment in the web stream customizer System

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100906

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120203

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120214

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120309

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150316

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees