JP2013512514A - キャッシュを利用した効率的なメディア配信のためのシステム及び方法 - Google Patents

キャッシュを利用した効率的なメディア配信のためのシステム及び方法 Download PDF

Info

Publication number
JP2013512514A
JP2013512514A JP2012541288A JP2012541288A JP2013512514A JP 2013512514 A JP2013512514 A JP 2013512514A JP 2012541288 A JP2012541288 A JP 2012541288A JP 2012541288 A JP2012541288 A JP 2012541288A JP 2013512514 A JP2013512514 A JP 2013512514A
Authority
JP
Japan
Prior art keywords
media
media file
cache
file
bytes
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.)
Granted
Application number
JP2012541288A
Other languages
English (en)
Other versions
JP2013512514A5 (ja
JP5487457B2 (ja
Inventor
コーテマンシェ、マルク
メイランド、ジーン
Original Assignee
ヴァントリックス コーポレーション
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 ヴァントリックス コーポレーション filed Critical ヴァントリックス コーポレーション
Publication of JP2013512514A publication Critical patent/JP2013512514A/ja
Publication of JP2013512514A5 publication Critical patent/JP2013512514A5/ja
Application granted granted Critical
Publication of JP5487457B2 publication Critical patent/JP5487457B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/122Avoiding congestion; Recovering from congestion by diverting traffic away from congested entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • 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/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5682Policies or rules for updating, deleting or replacing the stored data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/2895Intermediate processing functionally located close to the data provider application, e.g. reverse proxies

Abstract

インターネットを介したメディア配信の効率を改善するべく、リモートメディアファイルをキャッシュし、キャッシュされたメディアファイルを読み出すためのシステム及び方法を提供する。方法及びシステムは、リモートメディアフィアイルをキャッシュに格納し、メディアファイルの個別の部分のみをハッシュすることによって生成された署名に基づいて、キャッシュされたメディアファイルを読み出すための段階及びハードウェア及びソフトウェアモジュールを備える。署名は、同じメディアファイルに対する次のリクエストの際に、ファイルが異なるインターネットロケーションから受信されたものであっても、キャッシュにキャッシュされたメディアファイルを見つけるためのキーである。メディアファイルは、異なるメディアクライアントの特性に適応化されていてもよく、適応化されたファイルも、等しくキャッシュされてもよい。
【選択図】図2

Description

本発明は、メディアファイルの配信に関し、より詳細には、電子ファイルの比較を含むキャッシュを使用したメディアファイルの効率的な配信のためのシステム及び方法に関する。
[優先権情報]
本願は、2009年12月1日出願の米国仮出願61/265,676号"System and Methods for Efficient Media Delivery using Cache(キャッシュを利用した効率的なメディア配信のためのシステム及び方法)"の優先権を主張するものであり、前記出願の内容は、参照により本明細書に組み込まれる。
ユーザーが作成したコンテンツ、いわゆるUGC(user generated content)を含むメディアファイルは、携帯電話等のユーザー機器を含む様々な種類の端末で生成される。また、メディアファイルは、ネットワーク上にも存在し、UGCは、このようなサーバーからアップロードされる場合がある。UGCを格納するネットワークの一例としては、インターネット上の(公序良俗違反につき、不掲載)が挙げられる。世界中のほぼ全ての場所から、携帯電話又はパソコンのようなエンドユーザー機器を使用して、コンテンツにアクセスすることができる。コンテンツ有する人気のあるサイトへのアクセスは、大量のネットワーク及びサーバートラフィックを発生させる。したがって、効率的にサーバートラフィックを搬送する又は低減する方法及びシステムを開発することが望まれている。
本発明は、キャッシュを使用してリモートメディアファイルを効率的に配信するシステム及び方法を提供することを目的とする。
また、電子ファイルの存在を判断することを含む、電子ファイルの比較のためのシステム及び方法を提供することも目的とする。
本発明の一側面によれば、リモートメディアソースに格納されたリモートメディアファイルのコピーであるメディアファイルがキャッシュに存在するか判断するキャッシュサービスモジュールを提供する。当該キャッシュサービスモジュールは、コンピュータ可読命令が格納されるコンピュータ可読記憶媒体を有するファイル分析モジュールを備え、コンピュータ可読命令が、プロセッサによって実行されると、(i)リモートメディアソースから、リモートメディアファイルのファイルサイズ、及び、M個のバイト範囲を取得する段階と、(ii)M個のバイト範囲におけるバイトを、バイトのストリングに連結する段階と、(iii)バイトのストリングを使用して、前記メディアファイルに対する署名を生成する段階と、(iv)メディアファイルに対する署名を使用してキャッシュに問い合わせることを含む、メディアファイルがキャッシュに存在するかを判断する段階とが実行され、Mは、M≧2であり、M個のバイト範囲は、リモートメディアファイルの開始点を基準としたそれぞれのオフセットで取得される。
キャッシュサービスモジュールは更に、Mの値と、M個の範囲の各々に対して取得されるべきバイト数をそれぞれ規定する所定のパラメータを格納するコンピュータ可読媒体を有するコンフィギュレーションテーブルを備える。コンフィギュレーションテーブルは更に、リモートメディアファイルのファイルサイズの関数として、それぞれのオフセットを計算するための所定のパラメータを含む。
上述のキャッシュサービスモジュールにおいて、M個のバイト範囲が重複していない、又は、M個の範囲全てのバイトの総計が、リモートメディアファイルのファイルサイズよりも小さい、又は、M個の範囲全てのバイトの総計が、リモートメディアファイルのファイルサイズよりも実質的に小さい、又は、オフセットのうちの1つが0に等しい、という条件のうちの1以上が満たされている。
本発明の実施形態において、コンフィギュレーションテーブルは更に、メディアファイルに対する所定の閾値を更に有し、キャッシュサービスモジュールは、メディアファイルについて、メディアクライアントデバイスからのメディアリクエストを記録するためのリクエストログモジュールと、メディアファイルに対するリクエストログに格納されたリクエストの数と、所定の閾値とを比較するための比較器と、メディアファイルがキャッシュに存在せず、所定の閾値を超える場合には、メディアファイルをキャッシュへと送信するキャッシュインターフェースモジュールとを更に有する。
また、コンピュータ可読命令は、バイトのストリングをメディアキーへとハッシュするためのコンピュータ可読命令を含み、メディアキーは、メディアファイルの署名となる。
本発明の別の側面によれば、メディアファイルをキャッシュするためのシステムが提供される。当該システムは、(a)リモートメディアソースに格納されたリモートメディアファイルのコピーであるメディアファイルを格納するためのコンピュータ可読記憶媒体を有するキャッシュと、(b)メディアファイルに対するメディアクライアントデバイスからのリクエストを受信するためのコンピュータ可読命令を格納するコンピュータ可読媒体と、プロセッサとを有する帯域幅最適化サーバーと、(c)プロセッサによって実行されるコンピュータ可読命令を格納するコンピュータ可読媒体と、プロセッサとを有するキャッシュサーバーとを備え、キャッシュサーバーは、キャッシュにおいてメディアファイルが存在するかを判断するキャッシュサービスモジュールを有し、キャッシュサービスモジュールは、(i)リモートメディアソースから、リモートメディアファイルのファイルサイズ、及び、M個のバイト範囲を取得する段階と、(ii)M個のバイト範囲におけるバイトを、バイトのストリングに連結する段階と、(iii)バイトのストリングを使用して、メディアファイルに対する署名を生成する段階と、(iv)メディアファイルに対する署名を使用してキャッシュに問い合わせることを含む、メディアファイルがキャッシュに存在するかを判断する段階と、(v)キャッシュにメディアファイルが存在しない場合には、リモートメディアソースからメディアファイル全体を取得し、署名と共にメディアファイルをキャッシュに格納する段階とを実行するためのファイル分析モジュールを含み、Mは、M≧2であり、M個のバイト範囲は、リモートメディアファイルの開始点を基準としたそれぞれのオフセットで取得される。
システムは更に、リモートメディアソースと通信を行うためのネットワークインターフェースモジュールを備える。システムは、キャッシュからメディアファイルを取得し、帯域幅最適化サーバーを介してメディアファイルを前記メディアクライアントデバイスへと転送するキャッシュインターフェースモジュールとを更に備える。帯域幅最適化サーバーは、メディアクライアントデバイスのメディア構造に適応化バージョンを一致させるべく、メディアファイルの適応化バージョンを生成するためのメディアトランスコーダモジュールを有する。メディアクライントデバイスからのリクエストは、当該メディアクライアントデバイスのメディア構造に関する情報を含む。
上述のシステムにおいて、キャッシュサービスモジュールは更に、コンフィギュレーションテーブルを有し、コンフィギュレーションテーブルは、Mの値と、M個の範囲の各々に対して取得されるべきバイト数をそれぞれ規定する所定のパラメータとを格納するためのコンピュータ可読命令を格納するコンピュータ可読媒体を含む。コンフィギュレーションテーブルは更に、リモートメディアファイルのファイルサイズに基づいて、それぞれのオフセットを計算するための所定のパラメータを含む。
上述した発明の実施形態のシステムにおいて、望ましくは、M個のバイト範囲が重複していない、又は、M個の範囲全てのバイトの総計が、リモートメディアファイルのファイルサイズよりも小さい、又は、M個の範囲全てのバイトの総計が、リモートメディアファイルのファイルサイズよりも実質的に小さい、又は、オフセットのうちの1つが0に等しいという条件のうちの1以上が満たされている。
上述のシステムにおいて、コンフィギュレーションテーブルは更に、メディアファイルに対する所定の閾値を更に有し、キャッシュサービスモジュールは、メディアファイルについて、メディアクライアントデバイスからのメディアリクエストを記録するためのリクエストログモジュールと、メディアファイルに対するリクエストログに格納されたリクエストの数と、所定の閾値とを比較するための比較器と、メディアファイルがキャッシュに存在せず、所定の閾値を超える場合には、メディアファイルをキャッシュへと送信するキャッシュインターフェースモジュールとを更に有する。
上述のシステムにおいて、ファイル分析モジュールは、バイトのストリングをメディアキーへとハッシュし、メディアキーは、メディアファイルの署名である。
本発明の別の側面によれば、リモートメディアソースに格納されたリモートメディアファイルのコピーであるメディファイルをキャッシュするための方法を提供する。方法は、(a)リモートメディアソースから、リモートメディアファイルのファイルサイズ、及び、M個のバイト範囲を取得する段階と、(b)M個のバイト範囲におけるバイトを、バイトのストリングに連結する段階と、(c)バイトのストリングを使用して、メディアファイルに対する署名を生成する段階と、(d)メディアファイルに対する署名をキャッシュに問い合わせることを含む、メディアファイルがキャッシュに存在するかを判断する段階と、(e)キャッシュにメディアファイルが存在しない場合には、リモートメディアソースからメディアファイル全体を取得し、署名と共にメディアファイルをキャッシュに格納する段階とを備え、Mは、M≧2であり、M個のバイト範囲は、前記リモートメディアファイルの開始点を基準とした対応するオフセットで取得される。
方法は更に、メディアファイルをリクエストしたメディアクライアントデバイスのメディア構造に適応化バージョンを一致させるべく、メディアファイルの適応化バージョンを生成する段階を備える。
方法は更に、キャッシュからメディアファイルを読み出し、メディアファイルをメディアクライアントデバイスに転送する段階を備える。
上述の取得する段階は、Mの値と、コンフィギュレーションテーブルからの各範囲に対して、取得されるべきバイト数をそれぞれ規定する所定のパラメータとを取得する段階を含む。上述の取得する段階は更に、リモートメディアファイルのファイルサイズに基づいて、オフセットをそれぞれ計算するためのコンフィギュレーションテーブルからの所定のパラメータとを取得する段階を含む。
上述の本発明の実施形態の方法において、望ましくは、M個のバイト範囲が重複していない、又は、全範囲のバイトの総計が、前記リモートメディアファイルのファイルサイズよりも小さい、又は、全範囲のバイトの総計が、リモートメディアファイルのファイルサイズよりも実質的に小さい、又は、オフセットのうちの1つが0に等しいのうちの少なくとも1つが満たされる。
上記の方法において、段階(e)は、メディアファイルに対するリクエストログに格納されたリクエストの数と、コンフィギュレーションテーブルに格納された所定の閾値とを比較する段階と、所定の閾値を超えた場合に、署名と共にメディアファイルをキャッシュに格納する段階とを含む。
上述の方法は、(f)メディアファイルをリクエストしたメディアクライアントデバイスのメディア構造に適応化バージョンを一致させるべく、メディアファイルの適応化バージョンを生成する段階と、(g)メディアファイルに対するリクエストログに格納されたリクエストの数と、コンフィギュレーションテーブルに格納された所定の閾値とを比較する段階と、(h)所定の閾値を超え、キャッシュに適応化バージョンが存在しない場合には、署名と共に適応化バージョンをキャッシュに格納する段階とを更に備える。所定の閾値を超えた場合には、署名と共に適応化バージョンをキャッシュに格納する。
段階(f)は、リクエストしているメディアクライアントデバイスの種類をリクエストログに記録する段階と、(i)リクエストログに格納されているリクエストしているメディアクライアントからのリクエストの数と、コンフィギュレーションテーブルに格納されている所定の閾値とを比較する段階と、(j)所定の閾値を超えた場合に、メディアファイルの適応化バージョンを生成する段階とを含む。
上述の方法において、適応化バージョンは、トランスレートされたバージョン又はトランスコードされたバージョンである。
上述の方法において、段階(c)は、バイトのストリングをメディアキーへとハッシュする段階を含み、メディアキーはメディアファイルの署名である。
このように、キャッシュを使用してメディアファイルを効率的に配信する改良されたシステム及び方法が提供される。
以下、本発明の実施形態を、添付の図面を参照して例示する。
本発明の一実施形態に係る、帯域幅最適化器(Bandwidth Optimizer)106を含むメディア配信システム100のブロック図である。 図1の帯域幅最適化器106の拡張ブロック図である。 図1のメディア配信システム100の構成要素内で実行される機能を示す機能図300である。 図3の機能モジュール314"プロセス最適化要求"の拡張を示した図である。 図3の機能モジュール314"最適化要求を処理"の機能を示したフローチャート500である。 図5の段階502"リモートメディアの複数部分をフェッチ"、段階504"ストリング'S'へ複数部分を連結"、段階506"署名生成"を示したフローチャート600である。
本発明の実施形態は、インターネットを含むネットワークを介して搬送されるトラフィックの量を低減するという課題に対処するメディア配信システム及び方法を提供するものであり、リモートサーバーからメディアコンテンツをダウンロードすることを望むエンドユーザーの近くに配備することができる効率的なキャッシュメカニズムを提供することによって課題に対処する。
図1は、本発明の一実施形態に係る、帯域幅最適化器(Bandwidth Optimizer)106を含むメディア配信システム100のブロック図である。メディア配信システム100は、メディアクライアントデバイス102、ハイパーテキストトランスファープロトコル(HTTP)プロキシ104、帯域幅最適化(Bandwidth Optimizing:BWO)サーバーコンピュータ108、キャッシュサーバーコンピュータ110及びキャッシュメモリ112を含む帯域幅最適化器106、及び、インターネット116を介してキャッシュサーバー110に接続されるメディアソース114を備える。メディアソース114は、典型的には、離れた場所に位置し、リモートメディアソース114とも称される。
BWOサーバー108は、コンピュータハードウェア及びソフトウェアから構成されるデバイスであり、例えば、プロセッサ及びコンピュータ可読記憶媒体を有する汎用コンピュータ又は専用コンピュータである。コンピュータ可読記憶媒体としては、例えば、コンピュータメモリ、DVD、CD−ROM又はその他の記憶媒体が挙げられ、これらには、BWOサーバー108のオペレーションに関する機能をプロセッサが実行するためのコンピュータ可読命令が格納される。
キャッシュサーバー110は、コンピュータハードウェア及びソフトウェアから構成されるデバイスであり、例えば、プロセッサ及びコンピュータ可読記憶媒体を有する汎用コンピュータ又は専用コンピュータである。コンピュータ可読記憶媒体としては、例えば、コンピュータメモリ、DVD、CD−ROM、又はその他の記憶媒体が挙げられ、これらには、キャッシュサーバー110のオペレーションに関する機能をプロセッサが実行するためのコンピュータ可読命令が格納される。
図1には、1つのメディアクライアントデバイス102が示されているが、メディア配信システム100は、メディアクライアント102と論理的に等価な多数のインターネットを可能とするメディアクライアントデバイスを含む、又は、これらにサービスを提供してもよい。"メディアクライアント"という言葉は、パーソナルコンピュータ(PC)、パーソナルデジタルアシスタント(PDA)、スマートフォン及び携帯電話のような、あらゆる種類のインターネットを利用可能なクライアントデバイスを表す一般的な言葉を意図しており、これらクライアントデバイスは、メディアファイルを受信することができる。
同様に、図1にはリモートメディアソース114が1つのみ示されているが、インターネット116は、ユーザー生成コンテンツ(UGC)サーバーを含むプライベート又はパブリックコンテンツサーバーコンピュータのような数多くのメディアソース114にアクセスを提供してもよい。
メディアクライアント102とHTTPプロキシ104との間のリンク120、HTTPプロキシ104自体、HTTPプロキシ104とBWOサーバー108との間のリンク122、キャッシュサーバー110と通信を行うBWOサーバー108自体、キャッシュサーバー110自体、及び、キャッシュサーバー110とメディアソース114との間のリンク118を使用して、メディアクライアントデバイス102は、間接的にメディアソース114に接続される。帯域幅最適化器106の目的は、キャッシュサーバー110と接続されるキャッシュ112にメディアファイルをキャッシュすることにより、リンク118における帯域幅利用(利用するのに非常に長い又はコストがかかる場合がある)を節約することである。
帯域幅最適化器106が提供する更なる機能としては、リンク122と同様な帯域幅制限を有してもよいリンク120上でのメディア送信のレートを制御し、メディアクライアント102の能力と一致させる機能である。好ましくは、必要に応じて、帯域幅最適化器106は、メディアクライアント102のデバイスの特性にメディアファイルを適合させる。
帯域幅最適化又は適応が必要ない場合には、HTTPプロキシ104は、帯域幅最適化器106をバイパスして、リンク124上で直接インターネット116にアクセスしてもよい。
図2は、BWOサーバー108を備える帯域幅最適化器106を単純化して示した拡張ブロック図であり、BWOサーバー108は、ユニバーサルリソースロケータ(URL)リライトモジュール206及びURLフォワーダモジュール208を含むBWOゲートウェイ204、メディアバッファモジュール210及びメディアトランスコーダ(TRX)モジュール212を有する。帯域幅最適化器106は更に、キャッシュサービスモジュール214を含むキャッシュサーバー110と接続されるキャッシュ112を備える。キャッシュサービスモジュール214は、コンピュータ可読命令を有するコンピュータ可読媒体を備え、プロセッサによって命令が実行されると、メディアソース114からメディアファイルを取得するタスクの処理が実行され、メディアファイルを格納及び読み出すためのキャッシュ112と通信を行い、BWOサーバー108からのメディアリクエストを受信し、キャッシュ112から読み出したメディアファイルをBWOサーバー108へと送信する。
BWOサーバー108及びキャッシュサーバー110の両方が、コンピュータ可読記憶媒体、例えば、1以上のメモリユニット(MEM)及び1以上の中央演算処理装置(CPU)を含むコンピュータハードウェアに実装される。モジュール206−214は、ソフトウェアモジュールでありそれぞれ、例えば、MEMのようなコンピュータ可読媒体に格納され、対応するCPUで実行されるコンピュータ可読命令を有する。BWOサーバー108及びキャッシュサーバー110の機能モジュール及びソフトウェアモジュールは、対応するコンピュータ記憶媒体に格納され対応するCPUにおいて実行されるコンピュータ可読命令を含む。一般性を失うことなく、BWOサーバー108及びキャッシュサーバー110を、別個のコンピュータ又は1つのコンピュータとして実現してもよい。キャッシュ112は、通常、ハードディスク又はその他の好適なメモリ技術に実装されるハードウェア構成要素であり、キャッシュメモリ構成要素の階層構造、及び、ファイル及び関連するファイルキー(key)を格納するのに有用なあらゆる一般的なデータベースソフトウェアを含む。
キャッシュサービスモジュール214は、キャッシュサーバー110のコンピュータ可読記憶媒体に格納されるコンピュータ可読命令を有するソフトウェアモジュールであり、コンピュータ可読記憶媒体としては、例えば、コンユータメモリ、DVD、CD−ROM又はその他の記憶媒体がある。キャッシュサービスモジュール214は、メディアファイルを送受信し、メディアファイルをキャッシュ112に格納する及びキャッシュ112からメディアファイルを読み出すべく、メディアソース114及びBWOサーバー108と通信を行うのに適している。キャッシュサービスモジュール214は更に、キャッシュ動作を制御するべくプログラム可能な所定のパラメータを設定するためのコンフィギュレーションテーブル216、及び、メディアリクエストを記録するリクエストログモジュール218を備える。また、キャッシュサービスモジュール214は、リモートメディアファイルの選択された部分(バイトの範囲)を収集し、リモートメディアファイルのメディアキー222とも称されるファイル署名を生成するためのファイル分析モジュール220を備える。キャッシュサービスモジュール214は更に、リクエストログモジュール218に記録されている所与のメディアファイルに対してのリクエストの数と、コンフィギュレーションテーブル216に格納されているキャッシュ閾値とを比較するための比較器224を備える。キャッシュサービスモジュール214はまた、キャッシュ112と通信を行うためのキャッシュインターフェースモジュール226、及び、メディアソース114と通信を行うためのネットワークインターフェースモジュール(NW I/F)228を備える。
メディア配信システム100のコンテキストを説明するべく、最初に、システムオペレーションの概略について説明する。
メディアクライアント102(図1)が、メディアソース114のリモートメディアファイルを要求する場合、メディアクライアントは、メディアソース114を対象とするターゲットURLを含むリクエストを、リンク120上でHTTPプロキシ104に送信する。HTTPプロキシ104は、対象URLを評価した後に、通常のように、リンク124上で直接リモートメディアファイルを取得してもよい。HTTPプロキシ104に、リモートメディアが最適化を要求していることが示されていた場合には、ターゲットURLが、HTTPプロキシ104からBWOサーバー108のURLリライトモジュール206に送信されてもよく、そこで、符号のURL又はグループURLである対象URLを、帯域幅最適化されたURL(BWO URL)へと書き換える。BWO URLは、帯域幅最適化器106のアドレスをパラメータの形式で含み、メディアソース114の実際のURL及びメディアソース114におけるリクエストされたリモートメディアファイルの完全なパスも含む。BWO URLは、HTTPプロキシ104を介して、メディアクライアント102に戻され、そこで、BWO URLを使用してリクエストが再構成されて再送されてもよい。
図1に示すように、HTTPプロキシ104及び帯域幅最適化器106は通常、2つの別個のサブシステムとして設けられるが、リンク122によって接続されるので、これら2つのサブシステムが物理的に異なるロケーションに位置する、又は、異なる商業団体が管理することを可能としている。適切であると考えられる場合には、HTTPプロキシ104の機能をBWOサーバー108に含めることができ、これにより単純化できると考えられる。
BWO URLは、メディアクライアント102からHTTPプロキシ104へと送信されて、BWOサーバー108のURLフォワーダモジュール208を介して、BWO URLは、キャッシュサービスモジュール214に転送される。キャッシュサービスモジュール214は、以下に説明する本発明の方法により、リモートメディアファイルのコピーが既にキャッシュ112に存在するか否かを判断する。存在しない場合には、キャッシュサービスモジュール214は、キャッシュされたメディアファイルを、BWOサーバー108のメディアバッファモジュールを210を介して、リンク122上でHTTPプロキシ104を介して、メディアクライアント102に送信する。
リモートメディアファイル又はそのキャッシュされたコピーを、メディアクライアント102の要求を満たすように適応させる必要が生じる場合があり、その場合には、メディアTRXモジュール212が呼び出されて、必要な適応機能を提供する。適応化されたバージョンのリモートメディアファイルが既にキャッシュに存在している場合には、メディアTRXモジュール212はバイパスされる。適応化されたバージョンは、メディアクライアント102の特定のデバイスの種類のメディア構造に一致するトランスコーディングされたバージョンであってもよい、又は、メディアが、メディア構造を変更することなくビットレートを低減させるために再エンコードされただけである場合には、適応化されたバージョンは、単純にトランスレートバージョンであってもよい。
メディアクライアント102からのリクエスト内に含まれる情報、例えば、共通のデバイス種類に対してメディア構造をリストしたコンフィギュレーションテーブル216に含まれるテーブルを使用して、トランスコーディングするためのメディア構造が推定される。適応化された又はトランスレートされたバージョンへのリクエストは、リクエストログ218に記録されてもよく、リクエスト対象のメディアファイルに関する情報だけでなく、リクエストを行うメディアクライアントのデバイス種類に関する情報も含めて記録されてもよい。コンフィギュレーションテーブル216に格納される閾値は、リクエストに応答してトランスレートされた又はトランスコーディングされたバージョンをいつ生成するかを判断するのに使用されてもよい。リクエストを行うデバイスの種類のメディア構造に関する完全な情報が入手不可能であり、デバイスのビットレートの制限に関する情報のみが入手可能であるような場合に、トランスレートバージョンが生成されてもよい。トランスコーディングバージョンは、特定のメディアファイルに対する特定のデバイスからのリクエストに関する閾値を超えた場合にのみ、生成されてもよい。
トランスコーディングされたバージョンでは、例えば、メディアのフレームレート、又は、メディアのX及びY寸法は、受信デバイス(メディアクライアント102)に適応させるべく変更されている。メディアファイルをトランスコーディングする実用的な方法が、発明者Stephane Coulombe、2008年6月30日出願の米国特許出願第12/164,836号明細書"System And Method For Quality-Aware Selection of Parameters In Transcoding of Digital Images(デジタル画像のトランスコーディングにおけるパラメータの品質指向選択のためのシステム及び方法)"に記載されており、その内容は参照により本明細書に組み込まれる。
図3は、メディアクライアント102によるメディアのリクエストの結果、メディア配信システム100の構成要素内で実行される機能のシーケンス例を示した機能図300である。実行のシーケンスを示すべく矢印で機能が接続されており、典型的な場合が示されている。
メディア配信システム100の構成要素名は、図の上部に示されており、構成要素間は、縦の点線によって区切られて示されている。
シーケンスは、メディアクライアント102における機能302"クライアント生成リクエスト"から開始する。初期ターゲットURLを含むリクエストは、HTTPプロキシ104によって受信されて、機能304"初期リクエスト処理"において処理される。
このリクエストは最適化されるべきであると決定されると、HTTPプロキシ104は、リクエストをBWOサーバー108に転送し、機能306"初期リクエストをリダイレクト"におけるURLリライトモジュール206により、初期ターゲットURLが書き換えられる。ここで、初期ターゲットURLは、BWO URLに変換される。
そして、"リダイレクト"を示すリターンコード"303"がBWO URLと共に、HTTPプロキシ104に戻されて、そこでBWO URLはリターンコード"303"と共に、プロトコル機能308"リターン303、URL"においてプロトコルデータユニットへとリパッケージされて、メディアクライアント102へと返送される。
HTTPプロキシ104とBWOサーバー108との間のトラフィックは、図3に示すBWOサーバー108におけるURLリライト(書き換え)を含んでもよい。これに替えて、メディアクライアント102からの初期リクエストは、BWOサーバー108のURLリライトモジュール206が関与することなく、HTTPプロキシ104によって、BWOサーバー108に対してトランスパレントにプロキシされてもよい(すなわち、BWO URL置換されてもよい)。
メディアクライアント102は、インターネットにおけるメディアファイルを対象とするターゲットURLを含む初期リクエスト(クライアント生成リクエスト)を送信する。HTTPプロキシ104には、どのドメインURLをURLリライトモジュール206又はディレクトリに送信するか、及び、BWOサーバー108にトランスパレントに転送するかを決定するための規則が設けられている。HTTPプロキシ機能は、本発明の範囲外のその他の機能も含んでいてもよい。メディアクライアント102との通信は、典型的にはHTTPを使用して行われるが、HTTPプロキシ104とBWOサーバー108との間の通信も、HTTPベースの軽いプロトコルでありプロキシ/サーバーの相互作用のために設計されており、インターネットエンジニアリングタスクフォース(IETF)のRecommendation for Comment(RFC)3507に規定されているインターネット・コンテント・アダプテーション・プロトコル(ICAP)に基づいてもよい。
BWOサーバー108は、転送されてきたリクエストを直接扱うため、又は、図3に示す機能306(初期リクエストをリダイレクトする)におけるBWO URLを生成するために、ICAPサーバーを実装してもよい。BWOサーバー108では、初期ターゲットURLを含むICAPに封入された初期リクエストが分析される。リクエストされたメディアを提供することができるサービス又はデバイスの実際のURLを読み出すべく、発行されたURL又はグループURLのような初期ターゲットURLの解釈が行われる。実際のURLが、BWO URLへと変換されて、HTTPリダイレクトコマンドが、HTTPプロキシ104へと戻されて、HTTPプロキシ104はプロトコル機能308(リターン303、URL)を使用して、BWO URLをメディアクライアント102に戻す。
ここで簡単に説明されたICAPを使用した方法は、HTTPプロキシ104とBWOサーバー108との間の通信の単なる一例に過ぎず、単純なトランスパレントプロキシのようなその他の方法を使用してもよい。
再リクエスト機能310"新規URLを転送"では、メディアクライアント102がリダイレクトコマンドを認識し、今度は、BWO URLを使用して"最適化された"リクエストをBWOサーバー108に送信する。最適化されたリクエストは、メディアソース114におけるメディアファイルを示す実際のURLをパラメータとして含む。
図4には、メディアクライアント102、HTTPプロキシ104及びBWOサーバー108の間のやり取り400の例の段階を例示した要約されたフローチャートが示されている。フローチャートには、次のような段階が含まれる。
402"クライアントが初期リクエストを送信"
404"プロキシが初期リクエストを受信"
406"リクエストを分析"
408"最適化が必要?"
410"初期リクエストに規則セットを適用"
412"初期URLをBWO URLへと変更"
414"コード303及びBWO URLをクライアントに送信"
416"クライアントがBWOリクエストを送信"
418"プロキシがBWOリクエストを受信"
420"BWOリクエストをキャッシュサーバーに渡す"
422"リクエストをインターネット宛先に転送"
段階402"クライアントが初期リクエストを送信"において、メディアクライアント102は、メディアファイルに対する初期リクエストをHTTPプロキシ104に送信する。
段階404"プロキシが初期リクエストを受信"では、HTTPプロキシ104は、メディアクライアント102から初期リクエストを受信する。
段階406"リクエストを分析"では、HTTPプロキシ104は、リクエストに含まれるURLを分析して、メディアソース114の正しいURL及びリクエストを行ったリモートメディアファイルのパスを決定する。
段階408"最適化が必要?"では、HTTPプロキシ104は、リクエストのURLが、最適化される必要があるメディアファイルを参照しているかを判断する。
最適化が必要ない場合(段階408において"N"を返答)には、段階422"リクエストをインターネット宛先に転送"に進み、最適化が必要な場合(段階408において"Y"を返答)には、段階410"初期リクエストに規則セットを適用"に進む。
段階408"最適化が必要?"では、帯域幅最適化器106によって最適化できないメディアリクエストを含む、その他の種類のトラフィックに対する要求をフィルタして、このようなリクエストについては、段階422"リクエストをインターネット宛先に転送"において、帯域幅最適化器106をバイパスしてリンク124(図1)上で、要求されたインターネット宛先に直接転送される。
段階410"初期リクエストに規則セットを適用"において、設定された規則セットが、初期リクエストのURLに適用される。このプロセスにより、先に説明した、BWO URLが生成される。
段階412"初期URLをBWO URLへと変更"におて、初期ターゲットURLがBWO URLで置き換えられたリダイレクトメッセージが生成される。
図3に示すように、段階410及び段階412は、望ましくはBWOサーバー108の機能306(初期リクエストのリダイレクト)において実行される。これに替えて、機能306がHTTPプロキシ104に位置していてもよい。
段階414"コード303及びBWO URLをクライアントに送信"において、URLリダイレクトコード303及びBWO URLを含むリダイレクトメッセージが、メディアクライアント102に送信される。
段階416"クライアントがBWOリクエストを送信"において、メディアクライアント102は、初期リクエストのURLをBWO URLで置き換えて、帯域幅最適化器(BWO)リクエストとなる修正されたリクエストを生成して、このBWOリクエストをHTTPプロキシ104に送信する。
段階418"プロキシがBWOリクエストを受信"において、HTTPプロキシ104は、BWOリクエストを受信して、直接BWOサーバー108に渡す。
段階420"BWOリクエストをキャッシュサーバーに渡す"において、BWOサーバー108は、BWOリクエストを直接キャッシュサーバー110に渡し、そこで実際の最適化が実行される(図5参照)。
一例として、次のような単純なフローが挙げられる。
メディアクライアント102がHTTP GETリクエストを、URL http://lscache6.youtube.com/videoplaybackに送信する(段階402)。 HTTPプロキシ104は、リクエストを受信して、リクエストURLに設定された規則セットを適用する(段階410)。ここで、Youtubeの動画リクエストに対する規則セットは、フォームの一般的な表現"*.youtube.com/videoplayback*"を使用して表されてもよく、これは、リクエストURLと一致している。 HTTPプロキシ104は、HTTP303リダイレクト応答を、帯域幅最適化器(BWOサーバー108)を指すロケーションヘッダ、及び、それに続く初期URLを含むパラメータ、例えば、http://optmizer.vatrix.com/?url=ls6ache.youtube.com%2Fvideoplayback.で、メディアクライアント102に送信する(段階414)。
機能的に言えば、BWOサーバー108のURLフォワーダ208は、最適化されリダイレクトされたリクエストを受信し、機能312"受け渡し"において、それをキャッシュサーバー110のキャッシュサービスモジュール214に渡して、機能モジュール314"最適化要求を処理"において処理が行われる。
図3には、更なる機能モジュールが示されている。
316"部分的なメディアを返す"
318"完全なメディアを返す"
320"メディアをキャッシュに送信"
322"キャッシュされたメディアを再生"
326"メディア適応化"
324"メディアをバッファ"
328"クライアントがメディアを使用"
これらの機能モジュールについては、以下に図5を参照して機能モジュール314"最適化要求を処理"を説明した後で、理解されるであろう。
図5は、機能モジュール314"最適化要求を処理"の機能を示したフローチャート500であり、キャッシュされたバージョンが存在する場合には、リクエストされたメディアのキャッシュされたバージョンを取得する高レベル段階、及び、存在しない場合には、リモートファイルを取得してキャッシュする段階が示されている。これら段階には、以下の段階が含まれる。
502"リモートメディアの複数部分をフェッチ"
504"複数部分をストリング'S'に連結"
506"署名を生成"
508"メディアがキャッシュに存在?"
510"完全なメディアファイルをフェッチ"
512"適応化バージョンがキャッシュに存在?"
514"バージョンを選択"
516"メディアをキャッシュすべき?"
518"メディアをキャッシュ"
520"メディアを適応化"
522"適応化バージョンをキャッシュすべき?"
524"適応化バージョンをキャッシュ"
段階502"リモートメディアの複数部分をフェッチ"において、キャッシュサービスモジュール214は、BWO要求(ラベル"A")を受信し、BWO要求において特定されたリモートメディアファイルの選択された部分を取得するべく、メディアソース114と通信を行う(ラベル"B")。選択された部分は、メディアソース114の機能316"部分的なメディアを返す"(図3)によってリモートメディアファイルから抽出され、機能モジュール314"最適化要求を処理"に送られて、段階504"複数部分をストリング'S'に連結"において受信及び処理される。
段階502"リモートメディアの複数部分をフェッチ"の読み出しプロセスは、レンジヘッダを含む一連のHTTP GETリクエストを使用してもよく、それにより、HTTPクライアント(すなわち、キャッシュサーバー110)は、リモートファイルのサイズ(コンテンツ長CL)を判断することができ、HTTPサーバー(メディアソース114)から特定の範囲のバイトを要求することができる。応答は、要求されたバイトのみを含み、また、リモートメディアファイルの全長を示すコンテンツ長ヘッダを含む。
段階502"リモートメディアの複数部分をフェッチ"は、次のような簡単なフローとして要約できる。
メディアの開始点における初期範囲のバイトに対する第1リクエストを送信
コンテンツ長ヘッダを取得するべく、バイトを取得して応答ヘッダを処理
構成及びコンテンツ長"CL"に基づいて、要求する次のバイト範囲を決定
選択されたファイル部分の要求されたバイト全てが取得されるまで、次に続くバイト範囲のリクエストを実行
図6には、図5の段階502"リモートメディアの複数部分をフェッチ"、段階504"ストリング'S'へ複数部分を連結"、段階506"署名生成"の詳細な例を示したフローチャート600が示されている。
602:"第1リクエストを送信"
604:"応答を分析:コンテンツ長を取得"
606:"M個のリクエストに対する範囲及びオフセットを決定"
608:"i:=1に設定;N0バイトを有する'S'を読み込む"
610:"次のリクエストを送信(範囲R)"
612:"受信したNバイトを連結して'S'とする"
614:"iがM未満?"
616:"iをインクリメント"、及び、
618:"メディアキー:=ハッシュ(S)"
ラベル(A)(図3及び図5参照)から開始して、段階602"第1リクエストを送信"において、第1HTTP GETリクエストがメディアソース114に送信され、コンテンツ長(リモートメディアファイル全体のサイズ)を要求し、必要に応じて、リモートメディアファイルの始まりからN0バイトである第1範囲、すなわち、範囲=0からN0−1を要求する。N0の値は固定されていてもよいし、コンフィギュレーションテーブル216から取得されてもよい。第1GETリクエスト及びそれに続くGETリクエストは、図3及び図5において(B)で示されている。
段階604:"応答を分析:コンテンツ長を取得"において、第1HTTP GETリクエストに対する応答、部分的な応答メッセージが受信され分析される。これは、ファイルのサイズを示すコンテンツ長が含まれ、要求された場合には、第1範囲のN0バイトも含まれる。この応答メッセージ及びこれ以降の応答メッセージは、図3及び図5において、(C)で示されている。
段階606:"M個のリクエストに対する範囲Riを決定"において、設定された所定のパラメータに基づいて、次に続くリクエストの数及びそのバイト範囲が決定される。複数の範囲、各範囲のサイズ、及び、リモートファイル内の各範囲のロケーションを決定する規則は、望ましくは、コンフィギュレーションテーブル216に規定される。例えば、(段階602における第1リクエストの)オフセット0における第1範囲のN0バイトに加えて、所定数のM個の範囲が規定されてもよく、これら範囲の各々は、Nバイトの長さを有し、ファイル内で所定のオフセットで開始する。これに替えて、第1範囲のバイト、及び、M個の(次に続く)範囲のバイトは、M個の範囲に組み合わせられもよい、すなわち、"M"は、オフセット0で第1範囲を含む全ての範囲を含む。第1範囲のN0バイトが別個に規定される理由は、第1リクエスト(段階602)は、少なくともコンテンツ長を取得するのに必要であるが、同時にファイルの開始点からの一定の範囲のバイトを取得することは任意であるからである(以下に説明する論理的根拠を参照)。
オフセットは、リモートメディアファイルのコンテンツ長(CL)の比率F(i=1からM)として規定されてもよい。この場合、次に続く範囲のロケーションは、R=[CL*F…CL*F+N−1)として計算してもよい。次に続くリクエストのファイルロケーションをその他の方法を使用して求めてもよく、例えば、実際のコンテンツ長に応じて、少数の又は多数のリクエストを動的に規定してもよい。個々の範囲に対して選択されるサイズは、変数であってもよい、すなわち、次に続く範囲における変数N個のバイトとして規定されてもよいし、又は、各範囲に対して固定数であるNバイトを規定してもよい。範囲を決定するその他の規則が、本発明の範囲内で容易に想定されることは明らかである。
複数のバイトの範囲は、実質的には、完全なリモートメディアファイルのバイトからの別個のサンプルを構成する。リモートメディアソース114へのネットワークトラフィックを大幅に低減させるため、M個の範囲全てのバイトNの合計と第1範囲のN0バイトとを足し合わせたバイト数は望ましくは、商業団体における完全なリモートメディアファイルのバイト数よりも小さく、例えば、1%未満といったようにかなり小さいことが更に望ましい。リモートメディアファイルが小さい場合には、選択された範囲が実際に重複してしまう場合もあるが、通常は、リモートメディアファイルのサイズは、選択された範囲全てにおけるバイト数よりも十分大きい。オフセット因子を利用して、複数の範囲がファイルの全長にわたって分散するようにし、望ましくは、重複が全く発生しないようにする。
次に示すのは、コンフィギュレーションテーブル216に格納される設定パラメータのセットの単純化された例である。N0=256、M=3、N(固定)=1024、及び、i=1から3の場合、F=1/4、1/2及び3/4。この構成において、少なくとも4096バイトの長さを有する任意のメディアファイルの場合、次に続く連結(段階612)及びハッシング(段階618)において、重複が存在しないような4つの範囲、全部で256+3*1024=3328バイトが求められる。同じパラメータを使用して、1メガバイトの長さの典型的なメディアフィルの場合、範囲のセットの合計バイト数は、メディアファイルサイズの0.33%となり、ファイル全体をダウンロードする場合と比較して、ネットワークトラフィックを300分の1に低減させることができる。
M個の範囲の実施例では、個々の長さ"N"(i=0からM)及びリモートメディア内での位置が、比率"F"として求められたが、これらの値は、コンフィギュレーションテーブル216を使用してプログラム可能であり、異なる値を選択してもよいことは明らかである。
段階608"i=1に設定;N0バイトを有する'S'を読み込む"において、第1リクエストに応答して受信された任意のN0バイトでストリング"S"がロードされて、インデックス変数"i"が1に設定される。
段階610から段階616は、次に続くM個のリクエストを送信し、応答を処理するためのループを構成する。ループ構文を使用することにより、"M"を容易に動的に又は設定により変更可能としている。
段階610:"次のリクエストを送信(範囲R)"において、HTTP GETリクエストがメディアソース114に送信され、Nバイトを含む範囲Rをリクエストする。
段階612:"受信したNバイトを連結して'S'とする"において、メディアソース114からの応答で受信されたNバイトがストリング"S"として連結される。
段階614:"iがM未満?"において、インデックス変数"i"と、次に続くリクエストの所定の数Mとを比較する。M個の範囲が全て受信された場合(段階614において"N"を選択)、ループを抜け、次に段階618:"メディアキー:=ハッシュ(S)"に進む、又は、ループが継続し次の段階616:"iをインクリメント"においてインデックス変数"i"がインクリメントされ、段階610:"次のリクエストを送信(範囲R)"において再びループに入る。
段階618:"メディアキー:=ハッシュ(S)"において、第1リクエストからのN0バイト及びM個の範囲全てからの蓄積されたバイト全てを含むストリング"S"が、メディアキー222へとハッシュされる。
数個のセグメントのみからハッシュされたファイル署名(メディアキー)を取得する、すなわち、ファイル全体から導かれる署名の替わりに、メディアファイルのバイトの部分的な範囲又は規定された範囲からファイル署名を取得する理由について、以下に説明する。
BWO URLは、リモートメディアファイルを特定する。メディアソース114へのトラフィックを低減させるのに、2つの要因が重要となる。1つは、リモートメディアファイルが大きい場合があることであり、もう1つは、メディアソース114が、帯域幅最適化器106及びメディアクライアント102から、地理的に遠い距離に位置している場合があることである。本発明の目的は、概して、キャッシュ112に既にファイルが存在している場合には、メディアソース114から完全なファイルを読み出すことを回避することである。BWO URLは、前にファイルがダウンロード及びキャッシュされた時とは異なっている、又は、リモートメディアファイルの複数のコピーが複数の異なるURLに存在する可能性があることから、キャッシュサーバー110は、リモートメディアファイルのキャッシュされたバージョンが既にキャッシュに存在するか否かを判断するのに、単純にBWO URLとキャッシュされたURLとの比較に依存することはできない。
この問題を解決するべく、本発明の実施形態によれば、キャッシュサーバー110は、最初に、メディアソース114から、リモートメディアファイルの規定数の小さな部分から、代表的なストリング"S"のバイトのみを取得する。
図5に戻って説明を続ける。
上記したように、段階506"署名生成"において、キャッシュサーバー110は、ストリング"S"をファイル署名へとハッシュし、既にキャッシュに存在するファイル署名と比較するために、これを"メディアキー"とする。署名は、キャッシュへのファイルキーとして使用され、一般的なデータベース原理に従って構成される。ファイルキーがキャッシュに見つかった場合には、リモートメディアファイル(のコピー)が格納されていることを意味する。
段階502から段階524が、BWOサーバー108及びキャッシュサーバー110のモジュールにおいて実行される。特に、段階502、504、506及び524は、キャッシュサービスモジュール214のファイル分析モジュール220で実行され、メディアキー222が生成される。段階508、510、518及び524は、キャッシュインターフェースモジュール226に関連する。段階520は、BWOサーバー108のメディアTRXモジュール212で実行される。段階516及び段階522は、キャッシュサービスモジュール214のコンパレータ224で実行され、段階502、504及び510は、ネットワークインターフェースモジュール228の利用に関する。
コンテンツのハッシュに基づくキャッシュ方法は、100%完全ではないことが知られており、異なるコンテンツが同一の署名にハッシュされてしまいキャッシュから正しくないファイルが読み出される可能性が僅かに存在する。このような誤判定の可能性は、ハッシュ関数及びハッシュされる署名のビットサイズを選択することにより、0に近づけることができる。本例の場合、署名としてハッシュするために選択されたメディアファイルの部分の性質及びサイズを、更なる変数としている。署名が異なるファイルで一致してしまうことによる、キャッシュからの正しくないファイルの読み出しが発生する失敗率を0に近づけるために、本願では、複数のロケーションからバイトセグメントを読み出すことを提案する、すなわち、ファイルの開始点からのセグメントのみを使用するのではなく、例えば、ファイルにおける特徴のある所定のバイト範囲を読み出すことを提案する。例えば、同じ映画制作会社の作品には同じ開始部分が使用されるといった場合が存在するように、開始部分のセグメントのみを使用する場合には、誤判定が発生する可能性が高くなる。本発明の実施形態の典型的なシステムについて、ファイルの25%、50%及び75%の3つの位置における読み出しを使用した場合の評価を行った。
メディアソース114によって送信されたリモートメディアファイルの部分をハッシュすることにより、段階506"署名を生成"において署名が生成されるが、これは、段階502において読み出された個々の範囲のバイトを連結して生成されたストリング"S"のバイトシーケンスであり、これが、キャッシュサーバー110のメモリに格納される。メッセージダイジェストアルゴリズムナンバー5(MD5)は、本発明の実施形態ではメディアファイルの署名と称されているファイル署名として使用されている128ビットハッシュ値を生成するのに広く使用されている暗号化ハッシュ関数である。MD5は、インターネットエンジニアリングタスクフォース(IETF)のコメントに対する提言(RFC)1321に規定されている。MD5は、段階506を実装するのに有効な暗号法ハッシュ関数である。これに替えて、十分にロバストである限り、その他の暗号化ハッシュ関数を使用してもよい。様々な複雑度及び効率を有する好適な暗号化ハッシュ関数のリストが、http://en.wikipedia.org/wiki/Cryptographic_hash_functionに提供されており、よく知られている"GOST"、"HAVAL"、"PANAMA"、"SHA−0"等のハッシュ関数を含むリストが表として提供されている。
段階508"メディアがキャッシュに存在?"において、署名又はメディアキーを使用して、キャッシュ112にアクセス及び照会を行い、要求されたリモートメディアファイルがキャッシュ112に存在するかを判断する。
メディアがキャッシュ112に存在しない場合(段階508において、"N"が選択される)、"見つからない(not found)"のリターンコードがキャッシュ112からキャッシュサーバー108へと送信され、次に段階510"完全なメディアファイルをフェッチ"に進み、メディアソース114(図中E)から完全なリモートメディアファイルをフェッチする。メディアソース114の機能318"完全なメディアを返す"により、完全なリモートメディアファイルが送信され(図中F)キャッシュサーバー108で受信された後、BWO サーバー108に転送される。
段階516"メディアをキャッシュすべき?"において、キャッシュサーバー108のコンフィギュレーションテーブル216を閲覧して、メディアをキャッシュすべきか否かを判断する。コンフィギュレーションテーブル216は、読み出された完全なリモートメディアファイルをキャッシュすべきかを判断するプログラム可能なルールを含む。例えば、キャッシュするためのルールとして、キャッシュサーバー110のリクエストログ218におけるメディアリクエストの全てを記録し、要求されたレートが十分に高く、特定の閾値に達する場合にのみリモートメディアファイルがキャッシュされる。
段階518"メディアをキャッシュ"が、キャッシュサービスモジュール214の機能320"メディアをキャッシュに送信"で実行され、完全なメディアがキャッシュ112に送信されて、前の段階506"署名を生成"において先に決定されたメディアキー(署名)に対して格納される。
メディアファイルがキャッシュされているか否かに関わらず、すなわち、段階518"メディアをキャッシュ"又は段階516において"N"が選択されたかに関わらず、以下に説明する段階520"メディアを適応化"に進む。
キャッシュ112にリモートメディアファイルが既に格納されている場合(段階508において"Y"が選択された場合)、特定の適応化されたバーション、すなわち、リクエストを行っているデバイスであるメディアクライアント102の特性に好適に適応したバージョンも、キャッシュ112に既に存在している可能性がある。先に説明したように、適用化されたバージョンは、トランスレートされたバージョン又はトランスコードされたバージョンであってもよい。
段階512"適応化バージョンがキャッシュに存在?"において、好適に適応化されタバージョンがキャッシュ112に存在するかの判断が行われる。適応化されたバージョンが存在する場合、又は、元の(完全な)メディアファイルがメディアクライント102に送信されている(段階512において"Y"が選択される)ために適応化バージョンが必要ない場合は、段階514"バージョンを選択"においてキャッシュ112における適切なバージョンに対するポインタが選択されて、BWOサーバー108の機能322"キャッシュされたメディアを再生"に転送される(図中D)。
好適な適応化されたバージョンがキャッシュ112に存在しない場合(段階512において"N"が選択される)、メディアファイルの適応化を行ってもよい、すなわち、トランスレートされる、又は、段階520"メディアを適応化"が、図2のTRXモジュール212において実行される機能326"メディアを適応化"(図3においてG)でトランスレートされる。
リクエストレートが十分に高く、特定の閾値に達する場合に、適応化バージョンが元のキャッシュされたバージョンから生成される。閾値は、コンフィギュレーションテーブル216に設定されてもよい。リクエストは、全種類のメディアクライアントデバイス又はこのようなデバイスの特定のサブセットについて、グローバルにトラッキングされてもよい。デバイスの種類は、メディアクライアント102からのメディアBWOリクエストにおけるヘッダから特定される。グローバル閾値は、トランスレートをトリガしてもよく、デバイス固有の閾値は、トランスコーディングをトリガしてもよい。
段階520"メディアを適応化"で生成されたトランスレート及びトランスコードされた両バージョンは、キャッシュに保持されてもよく、段階522"適応化バージョンをキャッシュする?"において、リクエストログ218及びコンフィギュレーションテーブル216に問い合わせを行ってキャッシュするか否かを判断する。
段階524"適応化バージョンをキャッシュ"では、適応化されたバージョンが、予め計算されたメディアキーを使用してキャッシュ112に送信される。
キャッシュ112に既に見つけられたメディアファイルのバージョンは、段階514"バージョン選択"においてポインタを使用して示され、"リダイレクト"リターンコード(図中D)を使用してBWOサーバー108に送信され、サーバーは、機能322"キャッシュされたメディアを再生"において特定されたキャッシュされたメディアファイルを、バッファ機能324"メディアをバッファ"を実行するメディアバッファ210を介して、メディアクライアント102に送信する。
メディアファイルの適応化されたバージョンがキャッシュされるか否かに関わらず、すなわち、段階524"適応化バージョンをキャッシュ"又は段階522"適応化バージョンをキャッシュする?"において、"N"を選択するかに関わらず、特定されたメディアファイルは、バッファ機能324"メディアをバッファ"を実行するメディアバッファ210及びメディアクライアント102へと転送(図のG)される。
このようにして、メディアクライアント102は、リクエストしたメディアファイルを受信し、自身の機能328"クライアントがメディアを消費"においてメディアファイルを消費(表示又は使用)する。
BWOサーバーにおけるメディアバッファモジュール210の目的は、メディア自体の特性(例えば、メディアビットレート)に基づいて、又は、設定されたポリシーに従って、メディア配信レートを調節するべく、BWOサーバー108からメディアクライアント102へのメディアファイルの送信を制御することである。
メディアファイルの連結されている部分、すなわち、メディアファイルの個別のバイト範囲の読み出し、及び、1つのメディアキーへのハッシングについて、上記の実施形態例で説明された。本発明の実施形態は、ファイルのキャッシュコピーが帯域幅最適化器106に既に存在するか否かを効率的に判断するべく、このような帯域幅に有効な方法を提案する。ファイルをキャッシュするか否かについての規則は、様々に規定及び設定されてもよく、これらについての例が上記でも記載された。例えば、最初の事例発生時には署名のみをキャッシュして、ある時間内における2番目の事例発生時に、完全なファイルをキャッシュしてもよい。非修正(完全な)ファイルのキャッシュ及び適応化バージョンのキャッシュについて、同じ規則又は異なる規則を適用してもよい。
メディアファイルであるか否か及びリモートであるか否かに関わらず、様々な電子ファイルを、本発明の実施形態の方法及びシステムを使用して比較してもよい。例えば、2つの電子ファイルを以下のような段階に従って比較してもよい。
各電子ファイルについて:
M≧2であり、電子ファイルの開始点を基準とした所定のオフセットで、バイト範囲をM個取得する、各バイト範囲は、電子ファイルのファイルサイズよりも短い;
M個の範囲におけるバイトを連結して、バイトの1ストリングにする;
バイトのストリングを使用して電子ファイルの署名を生成する;及び
電子ファイルが同一であるかを判断するべく、2つのファイルの署名を比較する。
電子ファイルの署名を生成する段階は、バイトのストリングをファイルキーへとハッシュする段階を含んでもよく、署名を比較する段階は、2つのファイルキーを比較する段階を含んでもよい。
2つの電子ファイルを比較するための同様なコンピュータシステムは、上記の方法の段階を実効するプロセッサによって実行されるコンピュータ可読命令を格納するプロセッサ及びコンピュータ可読媒体を備える汎用又は特殊コンピュータに実装されてもよい。
本発明の実施形態が詳細に説明されたが、当業者であれば、添付の特許請求の範囲に記載される範囲内において、様々な変更及び改良を実施形態に加えることが可能であることを理解できる。

Claims (17)

  1. リモートメディアソースに格納されたリモートメディアファイルのコピーであるメディアファイルがキャッシュに存在するか判断するキャッシュサービスモジュールであって、前記キャッシュサービスモジュールは、
    コンピュータ可読命令が格納されるコンピュータ可読記憶媒体を有するファイル分析モジュールを備え、
    前記コンピュータ可読命令が、プロセッサによって実行されると、
    (i)前記リモートメディアソースから、前記リモートメディアファイルのファイルサイズ、及び、M個のバイト範囲を取得する段階と、
    (ii)前記M個のバイト範囲におけるバイトを、バイトのストリングに連結する段階と、
    (iii)前記バイトのストリングを使用して、前記メディアファイルに対する署名を生成する段階と、
    (iv)前記メディアファイルに対する前記署名を使用して前記キャッシュに問い合わせることを含む、前記メディアファイルが前記キャッシュに存在するかを判断する段階とが実行され、
    前記Mは、M≧2であり、前記M個のバイト範囲は、前記リモートメディアファイルの開始点を基準としたそれぞれのオフセットで取得され、前記M個のバイト範囲の各々は、前記リモートメディアファイルの前記ファイルサイズよりも小さいキャッシュサービスモジュール。
  2. 前記Mの値と、
    前記M個の範囲の各々に対して取得されるべきバイト数をそれぞれ規定する所定のパラメータと、
    前記リモートメディアファイルの前記ファイルサイズの関数として、それぞれのオフセットを計算するための所定のパラメータとを格納するためのコンピュータ可読命令を格納するコンピュータ可読媒体を有するコンフィギュレーションテーブルを更に備える請求項1に記載のキャッシュサービスモジュール。
  3. 前記M個のバイト範囲が重複していない、又は、
    前記M個の範囲全てのバイトの総計が、前記リモートメディアファイルの前記ファイルサイズよりも小さい、又は、
    前記M個の範囲全てのバイトの総計が、前記リモートメディアファイルの前記ファイルサイズよりも実質的に小さい、又は、
    前記オフセットのうちの1つが0に等しい、という条件のうちの1以上が満たされている請求項1又は2に記載のキャッシュサービスモジュール。
  4. 前記コンフィギュレーションテーブルは、前記メディアファイルに対する所定の閾値を更に有し、
    前記キャッシュサービスモジュールは、
    前記メディアファイルについて、メディアクライアントデバイスからのメディアリクエストを記録するためのリクエストログモジュールと、
    前記メディアファイルに対する前記リクエストログに格納されたリクエストの数と、前記所定の閾値とを比較するための比較器と、
    前記メディアファイルが前記キャッシュに存在せず、前記所定の閾値を超える場合には、前記メディアファイルを前記キャッシュへと送信するキャッシュインターフェースモジュールとを更に有する請求項1から3の何れか1項に記載のキャッシュサービスモジュール。
  5. 前記コンピュータ可読命令は、前記バイトのストリングをメディアキーへとハッシュするためのコンピュータ可読命令を含み、
    前記メディアキーは、前記メディアファイルの前記署名となる請求項1から4の何れか1項に記載のキャッシュサービスモジュール。
  6. メディアファイルをキャッシュするためのシステムであって、
    前記システムは、
    (a)リモートメディアソースに格納されたリモートメディアファイルのコピーであるメディアファイルを格納するためのコンピュータ可読記憶媒体を有するキャッシュと、
    (b)前記メディアファイルに対するメディアクライアントデバイスからのリクエストを受信するためのコンピュータ可読命令を格納するコンピュータ可読媒体と、プロセッサとを有する帯域幅最適化サーバーと、
    (c)前記プロセッサによって実行されるコンピュータ可読命令を格納するコンピュータ可読媒体と、プロセッサとを有するキャッシュサーバーとを備え、
    前記キャッシュサーバーは、前記キャッシュにおいて前記メディアファイルが存在するかを判断するキャッシュサービスモジュールを有し、
    前記キャッシュサービスモジュールは、
    (i)前記リモートメディアソースから、前記リモートメディアファイルのファイルサイズ、及び、M個のバイト範囲を取得する段階と、
    (ii)前記M個のバイト範囲におけるバイトを、バイトのストリングに連結する段階と、
    (iii)前記バイトのストリングを使用して、前記メディアファイルに対する署名を生成する段階と、
    (iv)前記メディアファイルに対する前記署名を使用して前記キャッシュに問い合わせることを含む、前記メディアファイルが前記キャッシュに存在するかを判断する段階と、
    (v)前記キャッシュに前記メディアファイルが存在しない場合には、前記リモートメディアソースから前記メディアファイル全体を取得し、前記署名と共に前記メディアファイルを前記キャッシュに格納する段階とを実行するためのファイル分析モジュールを含み、
    前記Mは、M≧2であり、前記M個のバイト範囲は、前記リモートメディアファイルの開始点を基準としたそれぞれのオフセットで取得され、前記M個のバイト範囲の各々は、前記リモートメディアファイルの前記ファイルサイズよりも小さいシステム。
  7. 前記リモートメディアソースと通信を行うためのネットワークインターフェースモジュールと、
    前記キャッシュから前記メディアファイルを取得し、前記帯域幅最適化サーバーを介して前記メディアファイルを前記メディアクライアントデバイスへと転送するキャッシュインターフェースモジュールとを更に備え、
    前記帯域幅最適化サーバーは、前記メディアクライアントデバイスのメディア構造に適応化バージョンを一致させるべく、前記メディアファイルの前記適応化バージョンを生成するためのメディアトランスコーダモジュールを有する請求項6に記載のシステム。
  8. 前記キャッシュサービスモジュールは更に、コンフィギュレーションテーブルを有し、
    前記コンフィギュレーションテーブルは、
    前記Mの値と、
    前記M個の範囲の各々に対して取得されるべきバイト数をそれぞれ規定する所定のパラメータと、
    前記リモートメディアファイルの前記ファイルサイズに基づいて、それぞれのオフセットを計算するための所定のパラメータとを格納するためのコンピュータ可読命令を格納するコンピュータ可読媒体を含む請求項6又は請求項7に記載のシステム。
  9. 前記M個のバイト範囲が重複していない、又は、
    前記M個の範囲全てのバイトの総計が、前記リモートメディアファイルの前記ファイルサイズよりも小さい、又は、
    前記M個の範囲全てのバイトの総計が、前記リモートメディアファイルの前記ファイルサイズよりも実質的に小さい、又は、
    前記オフセットのうちの1つが0に等しいという条件のうちの1以上が満たされている請求項6から8の何れか1項に記載のシステム。
  10. 前記コンフィギュレーションテーブルは更に、前記メディアファイルに対する所定の閾値を更に有し、
    前記キャッシュサービスモジュールは、
    前記メディアファイルについて、メディアクライアントデバイスからのメディアリクエストを記録するためのリクエストログモジュールと、
    前記メディアファイルに対する前記リクエストログに格納されたリクエストの数と、前記所定の閾値とを比較するための比較器と、
    前記メディアファイルが前記キャッシュに存在せず、前記所定の閾値を超える場合には、前記メディアファイルを前記キャッシュへと送信するキャッシュインターフェースモジュールとを更に有する請求項8又は9に記載のシステム。
  11. 前記ファイル分析モジュールは、前記バイトのストリングをメディアキーへとハッシュし、
    前記メディアキーは、前記メディアファイルの前記署名である請求項6から10の何れか1項に記載のシステム。
  12. リモートメディアソースに格納されたリモートメディアファイルのコピーであるメディファイルをキャッシュするための方法であって、
    前記方法は、
    (a)前記リモートメディアソースから、前記リモートメディアファイルのファイルサイズ、及び、M個のバイト範囲を取得する段階と、
    (b)前記M個のバイト範囲におけるバイトを、バイトのストリングに連結する段階と、
    (c)前記バイトのストリングを使用して、前記メディアファイルに対する署名を生成する段階と、
    (d)前記メディアファイルに対する前記署名を前記キャッシュに問い合わせることを含む、前記メディアファイルが前記キャッシュに存在するかを判断する段階と、
    (e)前記キャッシュに前記メディアファイルが存在しない場合には、前記リモートメディアソースから前記メディアファイル全体を取得し、前記署名と共に前記メディアファイルを前記キャッシュに格納する段階とを備え、
    前記Mは、M≧2であり、前記M個のバイト範囲は、前記リモートメディアファイルの開始点を基準とした対応するオフセットで取得され、前記M個のバイト範囲の各々は、前記リモートメディアファイルの前記ファイルサイズよりも小さい方法。
  13. 前記段階(a)は、
    前記Mの値と、
    コンフィギュレーションテーブルからの各範囲に対して、取得されるべきバイト数をそれぞれ規定する所定のパラメータと、
    前記リモートメディアファイルの前記ファイルサイズに基づいて、オフセットをそれぞれ計算するための前記コンフィギュレーションテーブルからの所定のパラメータとを取得する段階を含む請求項12に記載の方法。
  14. 前記M個のバイト範囲が重複していない、又は、
    全範囲のバイトの総計が、前記リモートメディアファイルの前記ファイルサイズよりも小さい、又は、
    全範囲のバイトの総計が、前記リモートメディアファイルの前記ファイルサイズよりも実質的に小さい、又は、
    前記オフセットのうちの1つが0に等しい請求項12又は13に記載の方法。
  15. 前記段階(e)は、前記メディアファイルに対するリクエストログに格納されたリクエストの数と、コンフィギュレーションテーブルに格納された所定の閾値とを比較する段階と、
    前記所定の閾値を超えた場合に、前記署名と共に前記メディアファイルを前記キャッシュに格納する段階とを含む請求項12から14のうちの何れか1項に記載の方法。
  16. 前記メディアファイルをリクエストしたメディアクライアントデバイスのメディア構造に適応化バージョンを一致させるべく、前記メディアファイルの前記適応化バージョンを生成する段階と、
    前記メディアファイルに対するリクエストログに格納されたリクエストの数と、コンフィギュレーションテーブルに格納された所定の閾値とを比較する段階と、
    前記所定の閾値を超え、前記キャッシュに前記適応化バージョンが存在しない場合には、前記署名と共に前記適応化バージョンを前記キャッシュに格納する段階とを更に備える請求項12から15の何れか1項に記載の方法。
  17. 前記段階(c)は、前記バイトのストリングをメディアキーへとハッシュする段階を含み、
    前記メディアキーは前記メディアファイルの前記署名である請求項12から16の何れか1項に記載の方法。
JP2012541288A 2009-12-01 2010-11-30 キャッシュを利用した効率的なメディア配信のためのシステム及び方法 Expired - Fee Related JP5487457B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US26567609P 2009-12-01 2009-12-01
US61/265,676 2009-12-01
PCT/CA2010/001903 WO2011066644A1 (en) 2009-12-01 2010-11-30 System and methods for efficient media delivery using cache

Publications (3)

Publication Number Publication Date
JP2013512514A true JP2013512514A (ja) 2013-04-11
JP2013512514A5 JP2013512514A5 (ja) 2013-09-26
JP5487457B2 JP5487457B2 (ja) 2014-05-07

Family

ID=44069672

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012541288A Expired - Fee Related JP5487457B2 (ja) 2009-12-01 2010-11-30 キャッシュを利用した効率的なメディア配信のためのシステム及び方法

Country Status (8)

Country Link
US (3) US8516074B2 (ja)
EP (1) EP2507938B1 (ja)
JP (1) JP5487457B2 (ja)
KR (1) KR101657196B1 (ja)
CN (1) CN102771080B (ja)
CA (1) CA2778215C (ja)
IL (1) IL219208A (ja)
WO (1) WO2011066644A1 (ja)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8145908B1 (en) * 2004-10-29 2012-03-27 Akamai Technologies, Inc. Web content defacement protection system
US8868463B2 (en) * 2007-06-08 2014-10-21 At&T Intellectual Property I, L.P. System and method of managing digital rights
US8677241B2 (en) * 2007-09-10 2014-03-18 Vantrix Corporation Method and system for multimedia messaging service (MMS) to video adaptation
US8311058B2 (en) 2008-05-10 2012-11-13 Vantrix Corporation Modular transcoding pipeline
US8220051B2 (en) 2007-09-28 2012-07-10 Vantrix Corporation Generation and delivery of multimedia content-adaptation notifications
US8171167B2 (en) * 2007-11-13 2012-05-01 Vantrix Corporation Intelligent caching of media files
KR101657196B1 (ko) 2009-12-01 2016-09-19 밴트릭스 코오퍼레이션 캐시를 이용한 효율적인 미디어 배송 시스템 및 방법
US9253548B2 (en) 2010-05-27 2016-02-02 Adobe Systems Incorporated Optimizing caches for media streaming
US8539041B2 (en) * 2011-12-23 2013-09-17 Huawei Technologies Co., Ltd. Method, apparatus, and network system for acquiring content
US8977704B2 (en) 2011-12-29 2015-03-10 Nokia Corporation Method and apparatus for flexible caching of delivered media
US9401968B2 (en) * 2012-01-20 2016-07-26 Nokia Techologies Oy Method and apparatus for enabling pre-fetching of media
US8832375B2 (en) * 2012-05-24 2014-09-09 International Business Machines Corporation Object type aware byte caching
US8856445B2 (en) * 2012-05-24 2014-10-07 International Business Machines Corporation Byte caching with chunk sizes based on data type
US8812623B2 (en) 2012-07-17 2014-08-19 Nokia Siemens Networks Oy Techniques to support selective mobile content optimization
JP5961850B2 (ja) 2012-07-18 2016-08-02 オペラ ソフトウェア アイルランド リミテッドOpera Software Ireland Limited ジャストインタイムの分散型ビデオキャッシュ
US9112922B2 (en) 2012-08-28 2015-08-18 Vantrix Corporation Method and system for self-tuning cache management
CN102932435B (zh) * 2012-10-18 2016-06-15 北京奇虎科技有限公司 网络检测系统
CN103024001B (zh) * 2012-11-30 2018-07-31 中兴通讯股份有限公司 一种业务调度方法与装置及融合设备
US10438634B2 (en) * 2013-04-05 2019-10-08 Avid Technology, Inc. Content-based unique material identifiers
CN103209222A (zh) * 2013-04-24 2013-07-17 网宿科技股份有限公司 内容分发网络中对重叠乱序的范围请求的处理方法及装置
GB201309249D0 (en) * 2013-05-22 2013-07-03 Vodafone Ip Licensing Ltd Content optimisation using 3G measurements
US9026693B2 (en) * 2013-08-05 2015-05-05 Samsung Electronics Co., Ltd. Method for filtering cached input/output data based on data generation/consumption
US9118976B1 (en) * 2013-08-08 2015-08-25 Time Warner Cable Enterprises Llc Tuning efficiency and delivery of content
US10506282B2 (en) * 2013-10-21 2019-12-10 Synamedia Limited Generating media signature for content delivery
US9813465B2 (en) * 2014-12-19 2017-11-07 Intel Corporation Network proxy for energy efficient video streaming on mobile devices
US10749930B2 (en) 2015-03-02 2020-08-18 Qualcomm Incorporated Indication for partial segment
US10659507B2 (en) * 2015-03-02 2020-05-19 Qualcomm Incorporated Indication for partial segment
CN106294452B (zh) * 2015-05-28 2019-07-23 阿里巴巴集团控股有限公司 数据获取方法和装置
CN104954894B (zh) * 2015-06-26 2019-03-26 网宿科技股份有限公司 一种视频流量引导方法、装置及一种电子设备
CN105959362A (zh) * 2016-04-25 2016-09-21 乐视控股(北京)有限公司 Cdn服务器及其缓存数据的方法
US10567508B2 (en) * 2017-04-28 2020-02-18 Facebook, Inc. Media file upload awareness for online systems
US20220321623A1 (en) * 2021-04-05 2022-10-06 Ademco Inc. Establishing a producer / consumer session in the cloud
US11947584B1 (en) 2021-04-16 2024-04-02 Podcrunch Inc. System and method for searching and playing a predetermined start and end time of a clip within a larger audio or video file

Family Cites Families (102)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7190617B1 (en) 1989-04-13 2007-03-13 Sandisk Corporation Flash EEprom system
JP3000929B2 (ja) 1996-06-07 2000-01-17 日本電気株式会社 メモリカードを用いた画像表示方法及びシステム
US5978370A (en) * 1997-01-13 1999-11-02 At&Tcorp Circuit-switched switching system
US6289358B1 (en) 1998-04-15 2001-09-11 Inktomi Corporation Delivering alternate versions of objects from an object cache
US6563517B1 (en) 1998-10-02 2003-05-13 International Business Machines Corp. Automatic data quality adjustment to reduce response time in browsing
US6970602B1 (en) 1998-10-06 2005-11-29 International Business Machines Corporation Method and apparatus for transcoding multimedia using content analysis
US6483851B1 (en) 1998-11-13 2002-11-19 Tektronix, Inc. System for network transcoding of multimedia data flow
US6470378B1 (en) 1999-03-31 2002-10-22 Intel Corporation Dynamic content customization in a clientserver environment
JP3670169B2 (ja) 1999-06-23 2005-07-13 三菱電機株式会社 チャネル内多重交換方式
JP2001117809A (ja) 1999-10-14 2001-04-27 Fujitsu Ltd メディア変換方法及び記憶媒体
US6792575B1 (en) 1999-10-21 2004-09-14 Equilibrium Technologies Automated processing and delivery of media to web servers
US7363361B2 (en) 2000-08-18 2008-04-22 Akamai Technologies, Inc. Secure content delivery system
US7398312B1 (en) * 2000-03-29 2008-07-08 Lucent Technologies Inc. Method and system for caching streaming multimedia on the internet
US7725812B1 (en) 2000-03-31 2010-05-25 Avid Technology, Inc. Authoring system for combining temporal and nontemporal digital media
EP1154356A1 (en) * 2000-05-09 2001-11-14 Alcatel Caching of files during loading from a distributed file system
US6785732B1 (en) 2000-09-11 2004-08-31 International Business Machines Corporation Web server apparatus and method for virus checking
JP2002108870A (ja) 2000-09-27 2002-04-12 Oki Electric Ind Co Ltd 情報処理システムおよび情報処理方法
JP2002108570A (ja) 2000-10-02 2002-04-12 Nippon Columbia Co Ltd データ記憶装置及びデータ記憶方法
US7660902B2 (en) * 2000-11-20 2010-02-09 Rsa Security, Inc. Dynamic file access control and management
US6407680B1 (en) 2000-12-22 2002-06-18 Generic Media, Inc. Distributed on-demand media transcoding system and method
US7240105B2 (en) * 2001-01-26 2007-07-03 International Business Machines Corporation Distributed multicast caching technique
CN1235408C (zh) 2001-02-12 2006-01-04 皇家菲利浦电子有限公司 生成和匹配多媒体内容的散列
US7684553B2 (en) 2001-03-23 2010-03-23 Nokia Corporation Method for transmitting data in a communication network
US7315884B2 (en) * 2001-04-03 2008-01-01 Hewlett-Packard Development Company, L.P. Reduction of network retrieval latency using cache and digest
US6813690B1 (en) * 2001-06-12 2004-11-02 Network Appliance, Inc. Caching media data using content-sensitive identifiers
US7010581B2 (en) 2001-09-24 2006-03-07 International Business Machines Corporation Method and system for providing browser functions on a web page for client-specific accessibility
JP2003143575A (ja) 2001-11-02 2003-05-16 Toshiba Corp マルチメディア再生方法及び装置
US20030110234A1 (en) 2001-11-08 2003-06-12 Lightsurf Technologies, Inc. System and methodology for delivering media to multiple disparate client devices based on their capabilities
US7155475B2 (en) 2002-02-15 2006-12-26 Sony Corporation System, method, and computer program product for media publishing request processing
JP3713491B2 (ja) 2002-02-28 2005-11-09 株式会社エヌ・ティ・ティ・ドコモ サーバ装置、及び情報処理方法
JP2003337739A (ja) 2002-03-15 2003-11-28 Neosoft:Kk Webページ情報保存処理プログラム、Webページ変換用プログラム、及び、コンテンツ提供システム
US7076544B2 (en) * 2002-04-08 2006-07-11 Microsoft Corporation Caching techniques for streaming media
JP4352653B2 (ja) 2002-04-12 2009-10-28 三菱電機株式会社 映像コンテンツ管理運用システム
US20040001106A1 (en) 2002-06-26 2004-01-01 John Deutscher System and process for creating an interactive presentation employing multi-media components
US7127520B2 (en) 2002-06-28 2006-10-24 Streamserve Method and system for transforming input data streams
JP2004078354A (ja) 2002-08-12 2004-03-11 Fujitsu Ten Ltd データ変換サービス方法およびデータ変換用サーバ装置
US8645470B2 (en) 2002-12-06 2014-02-04 Core Wireless Licensing S.A.R.L. System, method and computer program product for the delivery of media content
US7188216B1 (en) * 2002-12-13 2007-03-06 Vignette Corporation Method and system for an extensible caching framework
US20040181550A1 (en) 2003-03-13 2004-09-16 Ville Warsta System and method for efficient adaptation of multimedia message content
JP4430882B2 (ja) 2003-03-19 2010-03-10 富士通株式会社 複合メディアコンテンツの変換装置及び変換方法並びに複合メディアコンテンツ変換プログラム
US20040258063A1 (en) 2003-03-25 2004-12-23 Raith Alex Krister Multimedia message processing
CA2426619A1 (en) * 2003-04-25 2004-10-25 Ibm Canada Limited - Ibm Canada Limitee Defensive heap memory management
US7181468B2 (en) 2003-04-28 2007-02-20 Sony Corporation Content management for rich media publishing system
US20050187756A1 (en) 2004-02-25 2005-08-25 Nokia Corporation System and apparatus for handling presentation language messages
US7692666B1 (en) 2004-04-07 2010-04-06 Adobe Systems Incorporated Constructing color profile for parameterized image color space
FI20040944A0 (fi) * 2004-07-07 2004-07-07 Nokia Corp Sisältöviestinnän hallinta viestintäjärjestelmässä
WO2006012418A2 (en) 2004-07-21 2006-02-02 Beach Unlimited Llc Distributed storage architecture based on block map caching and vfs stackable file system modules
US7430284B2 (en) 2004-08-19 2008-09-30 Sybase 365, Inc. Architecture and methods for inter-carrier Multi-Media Messaging
WO2006047707A2 (en) * 2004-10-25 2006-05-04 Alphaspine, Inc. Pedicle screw systems and methods of assembling/installing the same
US7831900B2 (en) 2004-10-26 2010-11-09 Lg Electronics Inc. Method for presenting multimedia messages
US7409464B2 (en) 2004-10-29 2008-08-05 Nokia Corporation System and method for converting compact media format files to synchronized multimedia integration language
WO2006052904A2 (en) * 2004-11-08 2006-05-18 Innopath Software, Inc. Updating compressed read-only memory file system (cramfs) images
US7876766B1 (en) 2004-11-22 2011-01-25 Syniverse Icx Corporation Method and apparatus to enable interoperation between multi-media messaging service centers
US20100195538A1 (en) * 2009-02-04 2010-08-05 Merkey Jeffrey V Method and apparatus for network packet capture distributed storage system
US7577848B2 (en) 2005-01-18 2009-08-18 Microsoft Corporation Systems and methods for validating executable file integrity using partial image hashes
US7669121B2 (en) 2005-01-19 2010-02-23 Microsoft Corporation Transcode matrix
WO2006085301A2 (en) 2005-02-09 2006-08-17 Mobixell Networks Image adaptation with target size, quality and resolution constraints
US20060210027A1 (en) 2005-03-16 2006-09-21 Oded Kafri Method and system for storing and sending multimedia messaging service (MMS) messages
US7313755B2 (en) 2005-04-20 2007-12-25 Microsoft Corporation Media timeline sorting
US8819143B2 (en) 2005-05-31 2014-08-26 Flash Networks Ltd. Presentation layer adaptation in multimedia messaging
CN1859610A (zh) 2005-06-13 2006-11-08 华为技术有限公司 一种传送多媒体消息内容适配通知的方法
US7620991B2 (en) * 2005-08-12 2009-11-17 Netapp, Inc. Optimized network cache for virus scanning by examining the magic bytes of a file
JP2007053699A (ja) 2005-08-19 2007-03-01 Brother Ind Ltd メール受信システム及びインターネットファクシミリ
KR100680034B1 (ko) 2005-09-15 2007-02-07 (주)폴리다임 문맥 인식이 강화된 메시지 변환 시스템 및 방법
JP4921476B2 (ja) 2005-09-28 2012-04-25 テレフオンアクチーボラゲット エル エム エリクソン(パブル) メディアコンテンツの管理
US7779034B2 (en) * 2005-10-07 2010-08-17 Citrix Systems, Inc. Method and system for accessing a remote file in a directory structure associated with an application program executing locally
US20070239820A1 (en) 2005-11-23 2007-10-11 Nokia Corporation System and method for providing quality feedback metrics for data transmission in rich media services
JP4622832B2 (ja) 2005-12-05 2011-02-02 日本電気株式会社 キャッシュ管理システム、キャッシュ管理方法、キャッシュ管理プログラムおよびキャッシュ管理サーバ
US9081609B2 (en) 2005-12-21 2015-07-14 Xerox Corporation Image processing system and method employing a threaded scheduler
US20070157072A1 (en) 2005-12-29 2007-07-05 Sony Ericsson Mobile Communications Ab Portable content sharing
US7929599B2 (en) 2006-02-24 2011-04-19 Microsoft Corporation Accelerated video encoding
US7813724B2 (en) 2006-03-17 2010-10-12 Comverse Ltd. System and method for multimedia-to-video conversion to enhance real-time mobile video services
US8266182B2 (en) 2006-06-30 2012-09-11 Harmonic Inc. Transcoding for a distributed file system
US7411531B2 (en) * 2006-06-30 2008-08-12 Agere Systems Inc. Methods and apparatus for asynchronous sampling of a received signal at a downsampled rate
WO2008048665A2 (en) * 2006-10-18 2008-04-24 University Of Virginia Patent Foundation Method, system, and computer program product for malware detection analysis, and response
US9544259B2 (en) 2006-11-08 2017-01-10 Open Invention Network, Llc Apparatus and method for dynamic streaming of multimedia files
WO2008072093A2 (en) 2006-12-13 2008-06-19 Quickplay Media Inc. Mobile media platform
US7783757B2 (en) * 2007-03-12 2010-08-24 Citrix Systems, Inc. Systems and methods of revalidating cached objects in parallel with request for object
US20080226173A1 (en) 2007-03-13 2008-09-18 Motorola, Inc. Method and apparatus for video clip searching and mining
US8095976B2 (en) 2007-03-15 2012-01-10 Broadcom Corporation Data excess protection
US20080270436A1 (en) * 2007-04-27 2008-10-30 Fineberg Samuel A Storing chunks within a file system
US8677241B2 (en) 2007-09-10 2014-03-18 Vantrix Corporation Method and system for multimedia messaging service (MMS) to video adaptation
US8311058B2 (en) 2008-05-10 2012-11-13 Vantrix Corporation Modular transcoding pipeline
US8561116B2 (en) 2007-09-26 2013-10-15 Charles A. Hasek Methods and apparatus for content caching in a video network
US8220051B2 (en) 2007-09-28 2012-07-10 Vantrix Corporation Generation and delivery of multimedia content-adaptation notifications
CN101184091B (zh) * 2007-11-05 2012-03-07 深圳市迅雷网络技术有限公司 一种确定相似文件的方法及装置
US8171167B2 (en) 2007-11-13 2012-05-01 Vantrix Corporation Intelligent caching of media files
US9060208B2 (en) * 2008-01-30 2015-06-16 Time Warner Cable Enterprises Llc Methods and apparatus for predictive delivery of content over a network
WO2009149063A1 (en) 2008-06-02 2009-12-10 Azuki Systems, Inc. Media mashup system
US8537835B2 (en) 2008-06-20 2013-09-17 Alcatel Lucent Methods and apparatus for self-organized caching in a content delivery network
US7904464B2 (en) * 2008-08-27 2011-03-08 International Business Machines Corporation Virtual list view support in a distributed directory
US8213924B2 (en) * 2008-10-06 2012-07-03 Facebook, Inc. Providing distributed online services for mobile devices
WO2010045262A1 (en) * 2008-10-14 2010-04-22 Wanova Technologies, Ltd. Storage-network de-duplication
US8204915B2 (en) * 2009-02-13 2012-06-19 Alcatel Lucent Apparatus and method for generating a database that maps metadata to P2P content
US9807468B2 (en) * 2009-06-16 2017-10-31 Microsoft Technology Licensing, Llc Byte range caching
KR101657196B1 (ko) 2009-12-01 2016-09-19 밴트릭스 코오퍼레이션 캐시를 이용한 효율적인 미디어 배송 시스템 및 방법
US8209491B2 (en) 2010-04-27 2012-06-26 Symantec Corporation Techniques for directory server integration
WO2012088023A2 (en) 2010-12-20 2012-06-28 Akamai Technologies, Inc. Methods and systems for delivering content to differentiated client devices
US10684989B2 (en) 2011-06-15 2020-06-16 Microsoft Technology Licensing, Llc Two-phase eviction process for file handle caches
US9264508B2 (en) 2011-08-19 2016-02-16 Time Warner Cable Enterprises Llc Apparatus and methods for reduced switching delays in a content distribution network
US8984311B2 (en) 2011-12-30 2015-03-17 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including dynamic C0-state cache resizing
US9167049B2 (en) 2012-02-02 2015-10-20 Comcast Cable Communications, Llc Content distribution network supporting popularity-based caching

Also Published As

Publication number Publication date
KR101657196B1 (ko) 2016-09-19
US10097463B2 (en) 2018-10-09
US20130311596A1 (en) 2013-11-21
US8516074B2 (en) 2013-08-20
EP2507938B1 (en) 2019-07-03
EP2507938A1 (en) 2012-10-10
EP2507938A4 (en) 2017-06-28
US10567287B2 (en) 2020-02-18
KR20120106948A (ko) 2012-09-27
CA2778215A1 (en) 2011-06-09
US20190044862A1 (en) 2019-02-07
US20110131298A1 (en) 2011-06-02
IL219208A (en) 2015-07-30
WO2011066644A1 (en) 2011-06-09
CA2778215C (en) 2017-07-04
CN102771080B (zh) 2016-03-16
JP5487457B2 (ja) 2014-05-07
IL219208A0 (en) 2012-06-28
CN102771080A (zh) 2012-11-07

Similar Documents

Publication Publication Date Title
JP5487457B2 (ja) キャッシュを利用した効率的なメディア配信のためのシステム及び方法
US11194719B2 (en) Cache optimization
US10798203B2 (en) Method and apparatus for reducing network resource transmission size using delta compression
US11044335B2 (en) Method and apparatus for reducing network resource transmission size using delta compression
CN104081739A (zh) 在覆盖网络中利用压缩和差异化引擎的基于主机/路径的数据差异化

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130725

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130725

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140124

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: 20140128

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140203

R150 Certificate of patent or registration of utility model

Ref document number: 5487457

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees