JP2018506936A - ネットワークにおいてコンテンツを配信するエンドツーエンドソリューションのための方法及びシステム - Google Patents

ネットワークにおいてコンテンツを配信するエンドツーエンドソリューションのための方法及びシステム Download PDF

Info

Publication number
JP2018506936A
JP2018506936A JP2017553309A JP2017553309A JP2018506936A JP 2018506936 A JP2018506936 A JP 2018506936A JP 2017553309 A JP2017553309 A JP 2017553309A JP 2017553309 A JP2017553309 A JP 2017553309A JP 2018506936 A JP2018506936 A JP 2018506936A
Authority
JP
Japan
Prior art keywords
nodes
plug
content
node
network
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.)
Pending
Application number
JP2017553309A
Other languages
English (en)
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 JP2018506936A publication Critical patent/JP2018506936A/ja
Pending legal-status Critical Current

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/565Conversion or adaptation of application format or content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/02Standardisation; Integration
    • H04L41/0246Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols
    • H04L41/0253Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols using browsers or web-pages for accessing management information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/145Network analysis or design involving simulating, designing, planning or modelling of a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • H04L41/5054Automatic deployment of services triggered by the service manager, e.g. service implementation by automatic configuration of network components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4523Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using lightweight directory access protocol [LDAP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • 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/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0876Aspects of the degree of configuration automation
    • H04L41/0886Fully automatic configuration

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Automation & Control Theory (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本明細書では、非常にバラバラなネットワークの構築であったものに管理的概観を提供するエンドツーエンドソリューション(すなわち、起点サーバからエンドユーザ装置までの至る所にコンテンツ配信ネットワークを構築することができる)について説明する。これまで、ネットワークは、戦略的な観点で構築されるのではなく特定のニーズに報いるように進化してきた。これは、何者か(例えば、コンテンツプロバイダ、ネットワークオペレータなど)がこれらのネットワークに戦略を課せるようにするものである。特定のコンテンツの種類、特定のセキュリティ要件、特定のレイテンシ要件などを配信するソリューションを構築するのではなく、必要な時に必要な特定のタイプのノードを単純に設定することができる。【選択図】図3

Description

本発明は、通信ネットワークにおいてコンテンツを配信する方法及びシステムに関し、具体的には、通信ネットワークに沿ったあらゆる地点におけるコンテンツ配信ノードのインスタンス化及び構成を可能にする拡張可能なフレームワークに関する。
図1に、起点サーバ102からエンドユーザ装置112A〜112Pにコンテンツ(例えば、写真、音楽、ビデオなど)を配信する従来の通信ネットワーク100を示す。起点サーバ102は、1又は2以上のコンテンツプロバイダ(例えば、メディア企業、電子商取引ベンダーなど)によって運営することができ、そのいくつかの例として、カリフォルニア州ロスガトスのNetflix社(商標)、ワシントン州シアトルのAmazon.com社(商標)、ニューヨーク州ニューヨーク市のCBS(商標)、カリフォルニア州バーバンクのWalt Disney社(商標)が挙げられる。
起点サーバ102は、コンテンツ配信ネットワーク(CDN)104及びオペレータネットワーク110を介してエンドユーザ装置112A〜112Pに通信可能に結合することができる。CDN104は、物理的サーバ又は仮想機械上にホストされるプロセスのいずれかであるサーバの分散システムを含むことができる。これらのサーバは、CDNサーバ、CDNノード又はコンテンツ配信ノードと呼ぶことができる。単純化のために、CDN104は、互いに通信可能に結合されたCDNイングレス106及びCDNエグレス108という2つのサーバを含むように示している。CDNイングレス106は、起点サーバ102からコンテンツを受け取ってCDNエグレス108にコンテンツを配信するように構成される。CDNエグレス108は、CDNイングレス106からコンテンツを受け取ってオペレータネットワーク110にコンテンツを配信するように構成される。オペレータネットワーク110は、エンドユーザ112A〜112Pにコンテンツを配信する。
CDNは、通信ネットワーク100において複数の目的を果たす。まず第1に、CDNは、頻繁に要求されるコンテンツを起点サーバ102の位置に比べてエンドユーザ装置112A〜112Pに地理的に近い位置にキャッシュできるようにするウェブキャッシュの機能を提供することができる。この結果、(起点サーバ102から直接コンテンツを提供した場合に比べて)少ない待ち時間でエンドユーザ装置112A〜112Pにコンテンツを提供することができる。このキャッシング機能のさらなる利点として、起点サーバ102の負荷を軽減することができる(すなわち、起点サーバ102の受ける要求が少なくて済む)。第2に、CDNサーバは、エンドユーザ装置112A〜112Pに動的コンテンツ(例えば、インターネットプロトコルテレビ(IPTV)など)をリアルタイムで(又は近リアルタイムで)送信できるようにする。この素早いコンテンツの配信は、一部にはCDNイングレス106とCDNエグレス108との間の専用(すなわち、CDNのオペレータ専用の)ネットワークによって可能になる。CDNオペレータの例としては、マサチューセッツ州ケンブリッジのAkamai Technologies社(商標)、アリゾナ州テンペのLimelight Networks社(商標)、及びコロラド州ブルームフィールドのLevel3 Communications社(商標)が挙げられる。
オペレータネットワーク110は、有線及び/又は無線ネットワークとすることができる。例えば、オペレータネットワーク110は、キャリアネットワーク、インターネットサービスプロバイダ(ISP)などを含むことができる。慣習的な用語によれば、オペレータネットワーク110は、(「CDNオペレータ」と混同しないように)「ネットワークオペレータ」又は「オペレータ」によって提供することができる。オペレータの例としては、テキサス州ダラスのAT&T(商標)、英国ニューベリーのVodafon GroupPlc社(商標)、及びワシントン州ベルビューのT−MobileUS社(商標)が挙げられる。
エンドユーザ装置112A〜112Pは、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ装置、携帯電話機、テレビなどを含むことができ、これらの各々は、1又は2以上のエンドユーザによって操作することができる。
通信ネットワーク100では、コンテンツプロバイダが、CDN104を介したコンテンツ配信(及び/又はCDN104内でのコンテンツのキャッシング)のための支払いをCDNオペレータに対して行うことができる。つい最近、一部のコンテンツプロバイダ(例えば、Netflix社)が、CDNオペレータを完全に迂回すると決定し、オペレータネットワーク110内に独自のCDN(例えば、Netflix社のOpen Connect(商標)CDN)を配置することを選択した。この動作モードには、CDNオペレータに支払われていたはずのお金を節約するだけでなく、エンドユーザ装置112A〜112Pの近くにコンテンツを配置することにより、CDN104を介して実現できたはずの速度よりも送信を高速にしてエンドユーザ(例えばコンテンツ消費者)にとってのサービス品質も向上させるという利点がある。
図2に、上述したCDNオペレータを迂回するスキームの1つの実施形態による通信ネットワーク200を示す。通信ネットワーク200では、コンテンツプロバイダの起点サーバ102が(CDN104が介在することなく)オペレータネットワーク110に直接結合される。オペレータネットワーク110内には、コンテンツプロバイダ(例えば、コンテンツプロバイダCDNイングレス202A〜202N、コンテンツプロバイダCDNエグレス206A〜206M)によってCDNノードが提供される。コンテンツプロバイダCDNイングレス202A〜202Nの各々は、起点サーバ102からコンテンツを受け取り、受け取ったコンテンツを、スイッチ204を介してコンテンツプロバイダCDNエグレス206A〜206Mのうちの1つ又は2つ以上に配信することができる。コンテンツプロバイダCDNエグレス206A〜206Mの各々は、起点サーバ102のコンテンツをエンドユーザ装置112A〜112Pのうちの1つ又は2つ以上にさらに配信することができる。
通信ネットワーク200は、(オペレータネットワークに挿入されたCDNノードを所有する)コンテンツプロバイダに上述した利点をもたらすが、オペレータ(すなわち、オペレータネットワーク110のオペレータ)は、自社のネットワーク(すなわち、オペレータネットワーク110)内のますます増加するコンテンツプロバイダからのますます増加するCDNノードを統合するという課題に直面する。オペレータは、このようなコンテンツプロバイダとの協調から恩恵(例えば、オペレータネットワークに対するトラフィックバックホールの減少、オペレータのデータセンタ内におけるCDNのホストに対するコンテンツプロバイダからの支払いなど)を受けることができるが、既存のオペレータネットワークは、コンテンツプロバイダの要求時にオペレータネットワークにサードパーティCDNが挿入されるように単純には設計されていない。さらに、オペレータは、両方の通信ネットワーク100及び200において「ただのパイプ」に成り下がり、(図1の通信ネットワーク100における)CDNオペレータ及び(図2の通信ネットワーク200における)コンテンツプロバイダへの利益率の高いコンテンツ配信サービスを放棄するというジレンマに見舞われる。
以下の説明のいくつかの態様は、このようなネットワークオペレータの問題点を軽減する解決策を提供するとともに、コンテンツプロバイダに利便性をもたらすものである。
起点サーバからエンドユーザ装置にコンテンツを配信する通信ネットワークを示す図である。 起点サーバからエンドユーザ装置にコンテンツを配信する通信ネットワークを示す図である。 本発明の1つの実施形態による、コンテンツプロバイダがコンテンツ配信ネットワークを設計して配置できるようにするシステムのブロック図である。 本発明の1つの実施形態による、コンテンツプロバイダがコンテンツ配信ネットワークを設計して配置できるようにするシステムのブロック図である。 本発明の1つの実施形態による、コンテンツ配信ネットワークを構成するウェブポータルのスクリーンショットである。 本発明の1つの実施形態による、コンテンツ配信ネットワークを構成するウェブポータルのスクリーンショットである。 本発明の1つの実施形態による、コンテンツ配信ネットワークを構成するウェブポータルのスクリーンショットである。 本発明の1つの実施形態による、コンテンツ配信ネットワークを構成するウェブポータルのスクリーンショットである。 本発明の1つの実施形態による、コンテンツ配信ネットワークを構成するウェブポータルのスクリーンショットである。 本発明の1つの実施形態による、コンテンツ配信ネットワークを構成するウェブポータルのスクリーンショットである。 本発明の1つの実施形態による、コンテンツ配信ネットワークを構成するウェブポータルのスクリーンショットである。 本発明の1つの実施形態による、コンテンツ配信ネットワークを構成するウェブポータルのスクリーンショットである。 本発明の1つの実施形態による、コンテンツ配信ネットワークを構成するウェブポータルのスクリーンショットである。 本発明の1つの実施形態による、コンテンツ配信ネットワークを構成するウェブポータルのスクリーンショットである。 本発明の1つの実施形態による、コンテンツ配信ネットワークを構成するウェブポータルのスクリーンショットである。 本発明の1つの実施形態による、コンテンツ配信ネットワークを構成するウェブポータルのスクリーンショットである。 本発明の1つの実施形態による、コンテンツ配信ネットワークを構成するウェブポータルのスクリーンショットである。 本発明の1つの実施形態による、コンテンツ配信ネットワークを構成するウェブポータルのスクリーンショットである。 本発明の1つの実施形態による、コンテンツ配信ネットワークを構成するウェブポータルのスクリーンショットである。 本発明の1つの実施形態による、コンテンツ配信ネットワークを構成するウェブポータルのスクリーンショットである。 本発明の1つの実施形態による、コンテンツ配信ネットワークを構成するウェブポータルのスクリーンショットである。 本発明の1つの実施形態による、コンテンツ配信ネットワークを構成するウェブポータルのスクリーンショットである。 本発明の1つの実施形態による、コンテンツ配信ネットワークを構成するウェブポータルのスクリーンショットである。 本発明の1つの実施形態による、コンテンツ配信ネットワークを構成するウェブポータルのスクリーンショットである。 本発明の1つの実施形態による、コンテンツ配信ネットワークを構成するウェブポータルのスクリーンショットである。 本発明の1つの実施形態による、拡張可能な広域ソフトウェア負荷分散装置(GSLB)のブロック図である。 本発明の1つの実施形態によるコンテンツ配信ノードを示す図である。 本発明の1つの実施形態による、新たなノードの動的発見及び自動構成を実行するように構成されたノードのクラスタに通信可能に結合された負荷分散装置を示す図である。 ノードのクラスタに通信可能に結合された従来の負荷分散装置を示す図である。 本発明の1つの実施形態による、負荷分散機能が一体化されたノードのクラスタを示す図である。 本発明の1つの実施形態による、プラグインの機能を拡張する複数のメディアアダプタを示す図である。 本発明の1つの実施形態による、起点サーバからエンドユーザ装置にコンテンツを配信する通信ネットワークを示す図である。 本発明の1つの実施形態による、統合されたエッジ及び無線アクセスネットワーク(RAN)サービスのフロー図である。 本発明の1つの実施形態による、信頼できる仲介者を用いた2パーティセキュアソケットレイヤ(SSL)処理のシステム図である。 本発明の1つの実施形態による、信頼できる仲介者を用いた2パーティセキュアソケットレイヤ(SSL)処理のシステム図である。 本発明の1つの実施形態による、信頼できる仲介者を用いた2パーティセキュアソケットレイヤ(SSL)処理のシステム図である。 本発明の方法をインスタンス化するコンピュータ可読命令を記憶して実行できるコンピュータシステムの構成要素を示す図である。
以下の好ましい実施形態についての詳細な説明では、本発明を実施できる特定の実施形態を例示として示す、本明細書の一部を成す添付図面を参照する。本発明の範囲から逸脱することなく、他の実施形態を利用することも、構造的な変更を行うこともできると理解されたい。いずれか1つの図に関連する説明は、同一又は同様の構成要素/ステップを含む異なる図にも当てはまる。各フロー図には、一連のステップを一定の順序で示すが、ステップの順序は変更することもできる。
本発明の1つの実施形態によれば、コンテンツ配信チェーンに沿ったあらゆる場所(すなわち、起点サーバ102とエンドユーザ装置112A〜112Pとを含むこれらの間のあらゆる場所)においてコンテンツプロバイダ(或いはネットワークオペレータ又はCDNオペレータ)がノードをインスタンス化できるようにするプラットフォームが提供される。これらのノードは、コンテンツプロバイダが(図2の通信ネットワーク110で必要とされるように)オペレータネットワーク110内に物理的ハードウェアを配置する必要なくオペレータネットワーク110内でインスタンス化することができる。詳細には、これらのノードを、Amazon EC2及びAmazon S3などのクラウドコンピューティングプラットフォームにおけるプロセスとしてインスタンス化することができる。これらのノードは、起点サーバ、CDNイングレス、CDNエグレスなどとすることができる。このプラットフォームは、インスタンス化されたノードにコンテンツプロバイダが通信可能に結合できるようにし、基本的には、コンテンツプロバイダが、オペレータネットワーク110に重畳する(又はオペレータネットワーク110内に統合される)コンテンツ配信ネットワークを設計して配置できるようにする。
図3は、本発明の1つの実施形態による、コンテンツプロバイダがコンテンツ配信ネットワークを設計して配置できるようにするシステム300(すなわち、上述したプラットフォームの1つの実施形態)の高水準ブロック図である。まず、コンテンツプロバイダは、ポータル304(例えば、ウェブポータル)を用いて、各ノード(例えば、各ノードは、起点サーバ、CDNイングレス、CDNエグレスなどのうちの1つ又は2つ以上である)の要件(例えば、サービス)、及び各ノード間の特定の結合手段を指定することができる。説明を単純にするために、残りの説明では、主にコンテンツプロバイダをポータル304のユーザとして関連付けるが、必ずしもそうである必要はない。上述したように、ネットワークオペレータ又はCDNオペレータがポータル304を操作することもできる。別の実施形態では、ポータル304の機能を別のポータル(図示せず)又はアプリケーション(図示せず)に統合することもできる。
基本的には、ポータル304を用いて、コンテンツ配信ネットワークの「青写真」を指定することができる。ポータル304は、(インスタンス化モジュール318の)デーモン314を通じてこの設計情報を(後述する)リポジトリ312に通信することができる。その後、デーモン314は、リポジトリ312に記憶された設計情報に基づいて(何をどこに構築すべきかを定める)マップファイル316を作成することができる。マップファイル316は、(1又は2以上のノードを含む)コンテンツ配信ネットワークをマップファイル316による指定通りに展開できるミドルウェア306への入力として提供することができる。ミドルウェア306は、広域ソフトウェア負荷分散装置(GSLB)308において設定された各ノードのアドレス(例えば、IPアドレス)を登録して、GSLBが新たに配置されたノードのサービスを既存のノード及びエンドユーザ装置112Aに対して利用可能にするようにすることができる。
以下は、ミドルウェア306が実行できる他の機能である。例えばミドルウェア306は、国際空港協会(IATA)コードで指定されたノードの位置を、都市、州、国に(この逆もまた同様に)変換することができる。より一般的に言えば、ミドルウェア306は、いずれかのクラウドプラットフォーム(例えば、ニューヨーク州ニューヨーク市のDigital Ocean社(商標)、Amazon EC2など)におけるノードの設定を可能にすることができる。この時、ミドルウェア306は、設定されるノードを標準化して(例えば、WindowsであるかLinux(登録商標)であるかなどに関わらず仮想機械の画像操作システムを標準化し、関数呼び出しを標準化し、データタイプを標準化することができる)、いずれかのクラウドプラットフォームにわたって統一されたノードのビューを可能にすることができる。さらに、ミドルウェア306は、クラウドプラットフォームの様々な仮想機械にわたる機能の呼び出しを可能にすることもできる。基本的に、ミドルウェア306は、コントローラ302がいずれかのクラウドプラットフォームと通信できるようにする抽象層である。
ノード310A及びノード310Bは、デーモン314によってインスタンス化された2つの例示的なノードであり、コンテンツ配信チェーンに沿って表現されるあらゆるノードとすることができる。ノード310A及びノード310Bの各々は、これらの各ノードに要求を正しく経路指定できるように(図6で説明する高度名前解決の一部として)GSLB308に通信可能に結合することができる。ノード310A及びノード310Bの各々は、デーモン314に通信可能に結合することもできる。各ノードは、標準的なドメイン名システム(DNS)サーバ、標準的なハイパーテキスト転送プロトコル(HTTP)サーバ又は拡張ノードとして構成することができる。これらのノードは、拡張ノードとして構成された場合、自らをGSLB308に対して非標準DNSサーバ又は非標準HTTPサーバとして識別して、さらなるメタデータ(例えば、現在のネットワーク状態、正確な位置情報、顧客加入レベル、ノード性能データなど)を提供することにより、GSLB308によるさらなる応答(例えば、ノード性能データ、別のコンテンツ位置など)の提供を可能にすることができる。
図4に、本発明の1つの実施形態による図3の構成要素のさらなる詳細を示す。リポジトリ502は、一般にVCDNを定めることができる。リポジトリ312内には、パッケージング情報と、パッケージの構築方法を決定できるメタデータとを含むリポジトリ312A及び312Bが存在することができる。例えば、メタデータは、VCDNを構築するプラットフォームのタイプ(例えば、Windows、Ubuntuなど)、及びVCDNを構築する環境(例えば、作成、ステージング、開発、テストなど)を示すことができる。リポジトリ312内には、異なる顧客(例えば、コンテンツプロバイダ又はネットワークオペレータ)のデータを保持するリポジトリ312C〜312Gが存在することができ、リポジトリ312C〜312Gの各々は、異なるノードにマッピングすることができる。要約すれば、リポジトリは、データ、構成/パッケージング情報、及び/又はVCDNをどのように構築すべきかを決定するメタデータのいずれかを保持する。
図4には、インスタンス化モジュール318のさらなる詳細も示す。インスタンス化モジュール318は、上述した(ノードのインスタンス作成に関与する)デーモン314及び(とりわけ、ノードをどこにインスタンス化すべきかを指定する)マップファイル316に加えて、サーバ(例えば、VCDNノード)が動作していることを確認するウォッチドッグ402を含むこともできる。インスタンス化モジュール318は、デーモン314のさらなる詳細を示す注釈付きコメント404を含むこともできる。例えば、デーモン314の各ディレクトリ(例えば、開発、製作、ステージング、テストなどの各環境に対する1つのディレクトリ)内には、インストールディレクトリ、ログディレクトリ、テストフレームワークなどが存在することができる。
図4には、VCDNノードをステージング環境においてMediaWarp(商標)サーバの役割を用いてサンフランシスコ(すなわち、IATAコード=SFO)でインスタンス化すべきであり、VCDNノードをステージング環境においてMediaWarpサーバの役割を用いてオランダのアムステルダム(すなわち、IATAコード=AMS)でインスタンス化すべきであり、VCDNノードをステージング環境においてMediaWarpサーバの役割を用いてニューヨーク市(すなわち、IATAコード=JFK)でインスタンス化すべきである旨を示すマップファイル例も示している。
多少の背景を示すと、システム300は、非常にバラバラなネットワークの構築であったものに管理的概観を提供する「エンドツーエンドソリューション」(すなわち、起点サーバ102からエンドユーザ装置112A〜112Pに通じるネットワークの至る所にコンテンツ配信ネットワークを構築することができる)と見なすことができる。これまで、ネットワークは、戦略的な観点で構築されるのではなく特定のニーズに報いるように進化してきた。これは、何者か(例えば、コンテンツプロバイダ、ネットワークオペレータなど)がこれらのネットワークに戦略を課せるようにするものである。特定のコンテンツの種類、特定のセキュリティ要件、特定のレイテンシ要件などを配信するソリューションを構築するのではなく、必要な時に必要な特定のタイプのノードを単純に設定することができる。
図5A〜図5Uは、本発明の1つの実施形態による、エンドツーエンドソリューションを構成するウェブポータル403のスクリーンショットである。図5Aのスクリーンショットに示すように、コンテンツプロバイダは、仮想CDNを構成して配置するオプション(例えば、起点サーバからのコンテンツをルーティング及び/又はキャッシングする、クラウドコンピュータプラットフォーム上で動作するプロセス)を有する。コンテンツプロバイダは、エッジノードを構成して配置するオプション(例えば、仮想CDNからのコンテンツをルーティング及び/又はキャッシングする、クラウドコンピュータプラットフォーム上で動作するプロセス)を有することもできる。コンテンツプロバイダは、無線アクセスネットワーク(RAN)ノードを構成して配置するオプション(例えば、エッジノードからのコンテンツをルーティング及び/又はキャッシングする、クラウドコンピュータプラットフォーム上で動作するプロセス)を有することもできる。コンテンツプロバイダは、起点ノードを構成して配置するオプション(例えば、コンテンツを記憶して提供する、クラウドコンピュータプラットフォーム上で動作するプロセス)を有することもできる。コンテンツプロバイダは、配置されているコンテンツ配信ネットワークの分析性を見るオプション(例えば、要求の平均待ち時間など)を有することもできる。コンテンツプロバイダは、ルータを構成して配置するオプションを有することもできる。コンテンツプロバイダは、コンテンツプロバイダのための開発推奨、並びにサービスの設計及び配置時にコンテンツプロバイダが使用できるサードパーティアプリケーションへのアクセスを提供する開発センタにアクセスするオプションを有することもできる。
図5Bは、図5Aのユーザインターフェイス内の「仮想CDN(VCDN)」アイコンの選択時にコンテンツプロバイダに提示できるユーザインターフェイスのスクリーンショットである。このユーザインターフェイスでは、コンテンツプロバイダがVCDNの名前を付けることができる。この例では、VCDNに「ノード1」という名前が割り当てられている。コンテンツプロバイダは、VCDNをオペレータの地域ネットワーク、オペレータのRAN及び/又はパブリッククラウドのうちのいずれでインスタンス化すべきかを選択することができる。コンテンツプロバイダは、「オペレータ−地域」オプションを選択すると、VCDNをインスタンス化すべき地域ネットワークの都市を選択することができる。この例では、シカゴ市及びシアトル市が選択されており、このようなコンテンツプロバイダの選択を視覚的に示すピンをマップ上に配置することができる。コンテンツプロバイダは、「オペレータ−RAN」を選択すると、VCDNをインスタンス化すべきRANネットワークの都市を同様に選択することができる(図示せず)。コンテンツプロバイダは、「パブリッククラウド」オプションを選択すると、VCDNをインスタンス化すべきパブリッククラウドの都市を同様に選択することができる(図示せず)。コンテンツプロバイダは、VCDNのリソース割り当てレベルを安価、中間、高速又はより高速のうちのどれにすべきかをさらに選択することができる。この例では、安価というリソース割り当てが選択されている。高度な構成画面(図示せず)では、安価、中間、高速又はより高速というオプションを提示する代わりに、コンテンツプロバイダにサーバの価格設定オプションリストを提示して特定のサーバを選択させることができる。
図5Cは、図5Bのユーザインターフェイス内の「サービス」リンクの選択時にコンテンツプロバイダに提示されるユーザインターフェイスのスクリーンショットである。このユーザインターフェイスでは、コンテンツプロバイダが、VCDNのサービスを、具体的には基本CDNサービス、VCDNのメディアサービス及び/又はRANサービスを構成することができる。「基本CDNサービス」リンクの選択が選択されると、コンテンツプロバイダに、CDNキャッシュ及び/又はトランスペアレントキャッシュという基本CDNサービスを有するVCDNを構成するオプションを提示することができる。この例では、CDNキャッシュのオプションが選択されている。
図5Dは、図5Cのユーザインターフェイス内の「メディアサービス」リンクの選択時にコンテンツプロバイダに提示されるユーザインターフェイスのスクリーンショットである。このユーザインターフェイスでは、コンテンツプロバイダに、マルチ画面配信、WAN加速化、無料データ、ウェブページ最適化、エッジDNS及び/又は仮想機械(VM)ホスティングというメディアサービスを有するVCDNを構成するオプションを提示することができる。この例では、マルチ画面配信及び無料データのオプションが選択されている。
図5Eは、図5Dのユーザインターフェイス内の「RANサービス」リンクの選択時にコンテンツプロバイダに提示されるユーザインターフェイスのスクリーンショットである。このユーザインターフェイスでは、コンテンツプロバイダに、RAN知的コンテンツ管理及び/又はRANキャッシングというRANサービスを有するVCDNを構成するオプションを提示することができる。この例では、RAN知的コンテンツ管理のオプションが選択されている。
図5Fは、図5Eのユーザインターフェイス内の「弾性」リンクの選択時にコンテンツプロバイダに提示されるユーザインターフェイスのスクリーンショットである。このユーザインターフェイスでは、コンテンツプロバイダが、VCDNの弾性を、高弾性性能、中弾性性能、低弾性性能、又は弾性に費やす最大$/時間のうちのいずれかに構成することができる。この例では、低弾性性能のオプションが選択されている。
図5Gは、図5Fのユーザインターフェイス内の「配置」リンクの選択時にコンテンツプロバイダに提示されるユーザインターフェイスのスクリーンショットである。このユーザインターフェイスでは、コンテンツプロバイダがVCDNについて選択した構成の概要をコンテンツプロバイダに示すことができる。例えば、「VCDN名」の属性については「ノード1」というパラメータが表示され、「オペレータ−地域」の属性については「シカゴ、シアトル」というパラメータが表示され、以下同様である。
図5Hは、図5Aのユーザインターフェイス内の「エッジノード」アイコンの選択時にコンテンツプロバイダに提示されるユーザインターフェイスのスクリーンショットである。このユーザインターフェイスでは、コンテンツプロバイダが、エッジノードのマルチ画面配信の入力を構成することができる。コンテンツプロバイダは、入力をビデオオンデマンド、ライブ及び/又はリニアのうちのどれにすべきかを選択することができる。この例では、ビデオオンデマンドの入力が選択されている。コンテンツプロバイダは、「メディアを閲覧」アイコンを選択することによってメディアをアップロードするオプションを有することもできる。
図5Iは、図5Hのユーザインターフェイス内の「2 出力」リンクの選択時にコンテンツプロバイダに提示されるユーザインターフェイスのスクリーンショットである。このユーザインターフェイスでは、コンテンツプロバイダが、エッジノードのマルチ画面配信の出力を構成することができる。コンテンツプロバイダは、出力フォーマットをHLS、MSS、DASH及び/又はHDSのうちのどれにすべきかを選択することができる。この例では、HLS、MSS及びDASHの出力フォーマットが選択されている。コンテンツプロバイダは、出力プロファイルをモバイルHD、ホームHD及び/又はデスクトップHDのうちのどれにすべきかを選択することもできる。この例では、モバイルHDのオプションが選択されている。
図5Jは、図5Iのユーザインターフェイス内の「3 セキュリティ」リンクの選択時にコンテンツプロバイダに提示されるユーザインターフェイスのスクリーンショットである。このユーザインターフェイスでは、コンテンツプロバイダが、図5Iのユーザインターフェイス内で選択された出力フォーマットの設定を構成することができる。HLSの出力フォーマットの場合、コンテンツプロバイダは、AES_128、再生準備、Adobeアクセス及び/又はMarlinの設定を選択することができる。MSSの出力フォーマットの場合、コンテンツプロバイダは、再生準備の設定を選択することができる(図示せず)。DASHの出力フォーマットの場合、コンテンツプロバイダは、再生準備、Marlin及び/又は共通暗号化の設定を選択することができる(図示せず)。HDSの出力フォーマットの場合、コンテンツプロバイダは、Adobeアクセスの設定を選択することができる(図示せず)。
図5Kは、図5Jのユーザインターフェイス内の「4 広告スティッチング」リンクの選択時にコンテンツプロバイダに提示されるユーザインターフェイスのスクリーンショットである。このユーザインターフェイスでは、コンテンツプロバイダが、アップロードされたメディアにスティッチングすべき広告資産を選択することができる。例えば、コンテンツプロバイダは、32秒の長さを有する「Heinz.ismv」、20秒の長さを有する「dogs.ismv」などの広告資産を選択することができる。コンテンツプロバイダは、各広告資産について、広告資産をプレロール、ポストロール及び/又はミッドロールのうちのどれでスティッチングすべきかを選択することができる。
図5Lは、図5Kのユーザインターフェイス内の「ウェブページ最適化」リンクの選択時にコンテンツプロバイダに提示されるユーザインターフェイスのスクリーンショットである。このユーザインターフェイスでは、コンテンツプロバイダが、エッジノードのウェブページ最適化のためのドメインを選択することができる。コンテンツプロバイダは、ドメインを試作及び/又は製作のいずれで構成すべきかを選択することができる。コンテンツプロバイダは、ドメインのホームURLを入力することもできる。この例では、www<dot>cnn<dot>operatorexchange<dot>orgというホームURLが入力されている。コンテンツプロバイダは、ドメインの起点サーバを入力することもできる。この例では、myorigin.server1:8085及びmyorigin.server1:8085という起点サーバが入力されている。コンテンツプロバイダは、最適化すべきさらなるドメインを入力することもできる。
図5Mは、図5Kのユーザインターフェイス内の「マッピング」リンクの選択時にコンテンツプロバイダに提示されるユーザインターフェイスのスクリーンショットである。このユーザインターフェイスでは、コンテンツプロバイダが、最適化すべきさらなるドメイン、並びに除外すべき入力経路を入力することができる。
図5Nは、図5Mのユーザインターフェイス内の「最適化」リンクの選択時にコンテンツプロバイダに提示されるユーザインターフェイスのスクリーンショットである。このユーザインターフェイスでは、コンテンツプロバイダに、ウェブサイト及び/又はモバイルサイトをどの程度まで最適化すべきか(例えば、最適化をどの程度まで安全又は積極的にすべきか)を選択するためのスライドバーを提供することができる。
図5Oは、図5Nのユーザインターフェイス内の「オプション」リンクの選択時にコンテンツプロバイダに提示されるユーザインターフェイスのスクリーンショットである。このユーザインターフェイスでは、コンテンツプロバイダが、A/B試験、サイト分析、外部要素、広告挿入及び/又は分析のオプションを有することができる。
図5Pは、図5Oのユーザインターフェイス内の「CDNキャッシュ」リンクの選択時にコンテンツプロバイダに提示されるユーザインターフェイスのスクリーンショットである。このユーザインターフェイスでは、コンテンツプロバイダが、キャッシュオーバーライドポリシー(例えば、全ての既存のヘッダを尊重すべきかどうか、キャッシュオーバーライドポリシーを1分後、5分後などのいつ適用すべきか)を指定することができる。コンテンツプロバイダは、起点の存続タイムアウトの継続時間秒数及び/又はクライアントの存続タイムアウトの継続時間秒数をさらに指定することができる。トークン認証については、コンテンツプロバイダは、(MD5ハッシュを作成するために使用する)ターゲットURL、共有シークレット、トークン満了時間(日付/時間)、制限付きアクセスURL及び/又はリファラーURLを指定することができる。また、コンテンツプロバイダは、MD5ハッシュ出力の通りにハッシュを生成するオプションを有することもできる。
図5Qは、図5Aのユーザインターフェイス内の「RANノード」アイコンの選択時にコンテンツプロバイダに提示されるユーザインターフェイスのスクリーンショットである。このユーザインターフェイスは、マップ上に符号表記された様々なRANノードの位置を含むマップを提示する。これらのノードは、3Gノード又は4Gノードとすることができる。さらに、ノードに関連するトラフィックが高、中又は低のいずれであるかを指示することもできる。コンテンツプロバイダは、設計又は構成中のコンテンツ配信ネットワークに組み込むべき1又は2以上のRANノードを選択することができる。
図5Rは、図5Qのユーザインターフェイスにおいてコンテンツプロバイダによって選択されたノード(すなわちセル572)に関連するトラフィックのリアルタイムビュー(すなわち、積極的に更新されている)のスクリーンショットである。このリアルタイムビューは、選択されたノードに関連する輻輳度、帯域幅及びアクティブなユーザの人数を示すことができる。さらに、このリアルタイムビューは、ノードの輻輳状態及び往復遅延時間(RTT)のプロットを経時的に示すこともできる。さらに、このリアルタイムビューは、ノードの帯域幅及びユーザの人数のプロットを経時的に示すこともできる。
図5Sは、図5Qのユーザインターフェイスにおいてコンテンツプロバイダによって選択されたノード(すなわち、セル572)に関連するトラフィックのスナップショットビュー(すなわち、分析に使用するデータの静的ビュー)のスクリーンショットである。このスナップショットビューは、ノードの輻輳状態(例えば、5分間にわたる平均時間、又はユーザが構成可能な時間スケール)及びRTT(例えば、1秒間にわたる平均時間)のプロットを経時的に示すことができる。さらに、このリアルタイムビューは、ノードの帯域幅及びユーザの人数のプロットを経時的に示すこともできる。RANの統合に関する重要な部分は、ネットワーク性能を用いてvCDNサービスをリアルタイムで調整できる点である。例えば、ネットワークの輻輳が存在する場合、コンテンツプロバイダは、提供中のストリーミングビデオの品質を制限し、ウェブページ内に低品質な画像を戻し、異なるネットワークQoSビットを設定し、特定のタイプのトラフィックを遅延させることなどを行うことができる。
図5Tは、図5Qのユーザインターフェイスにおいてコンテンツプロバイダによって選択されたノード(すなわち、セル572)に関連するトラフィックのデータビューのスクリーンショットである。このデータビューは、各時点における最小輻輳度、平均輻輳度及び最大輻輳度を含むノードの輻輳度のプロットを経時的に示すことができる。このデータビューは、各時点における最小RTT、平均RTT及び最大RTTを含むノードのRTTのプロットを経時的に示すこともできる。このデータビューは、各時点における最小帯域幅、平均帯域幅及び最大帯域幅を含むノードの帯域幅のプロットを経時的に示すこともできる。このデータビューは、各時点におけるアクティブなユーザの最小人数、平均人数及び最大人数を含むノードのアクティブユーザの人数のプロットを経時的に示すこともできる。
図5Uは、図5Qのユーザインターフェイスにおいてコンテンツプロバイダによって選択されたノード(すなわち、セル572)に関連するトラフィックのシグナリングビューのスクリーンショットである。このシグナリングビューは、ノードが処理した総呼出し数、及びこれらの呼出しのいずれかがローミングサービス利用者からのものであるかどうかについてのプロットを経時的に示すことができる。このシグナリングビューは、脱落した呼び出しが存在したかどうか(この例ではゼロ)及び失敗した呼出しが存在したかどうか(この例ではゼロ)を示すこともできる。
図6に、本発明の1つの実施形態による広域ソフトウェア負荷分散装置(GSLB)308を示す。GSLB308は、プロトコル処理(例えば、DNS、HTTP、LDAP、Radis)、要求/応答ルーティング、プラグイン管理、ロギング、レポーティング、負荷分散及びクラスタ管理を行うことができるコアサービス602を含むことができる。コアサービス602は、各ノードのアドレス、管理しているリソースのアドレス変換及び/又はその他の構成情報を記憶するデータベース634に通信可能に結合することができる。明確化のために言えば、データベース634は、ミドルウェア306のリポジトリ502とは別物である。
コアサービス602は、API604を介して拡張可能フロントエンドインターフェイス610に通信可能に結合することもできる。フロントエンドインターフェイス610は、一般に(ノード310Aとすることができる)クライアントから要求を受け取ってこれらの要求の応答を提供する役割を果たす。フロントエンドインターフェイス610は、プラグインの追加によって機能を拡張できるという意味において拡張可能とすることができる。例えば、DNSプラグイン612を含めると、GSLB308はDNSサーバ(図示せず)と通信することができ、HTTPプラグイン614を含めると、GSLB308はHTTPサーバ(図示せず)と通信することができ、ライトウェイトディレクトリアクセスプロトコル(LDAP)プラグインを含めると、GSLB308はLDAPサーバ(図示せず)と通信することができる。
1つの実施形態では、フロントエンドインターフェイス610が、メタデータ(例えば、名前付きオーソリティポインタ(NAPTR)レコード)に基づいてノード310Aに拡張された応答を提供することができる。NAPTRレコードは、順序値(すなわち、NAPTRレコードを処理しなければならない順序を指定する16ビットの符号なし整数)、プリファレンス(すなわち、順序値が等しいNAPTRレコードを処理しなければならい順序を指定する16ビットの符号なし整数)、フラグセット(すなわち、レコード内のフィールドの書き換え及び解釈の側面を制御するフラグ)、サービス名(すなわち、書き換え経路の下方で利用できる(単複の)サービスを指定する)、正規表現ルール(すなわち、検索すべき次のドメイン名を構築するためにクライアントが保持する元々の文字列に適用される代替表現を含む文字列)、及び置換パターン(すなわち、NAPTR、SRVに問い合わせを行うための次の名前、又はフラグフィールドの値に依存するアドレスレコード)を含むことができる。
コアサービス602は、API606を介して拡張可能なバックエンドインターフェイス618に通信可能に結合することもできる。バックエンドインターフェイス618は、一般にクライアント要求に対する応答を決定するために(ノード310Bとすることができる)バックエンドサーバと連動する役割を果たす。バックエンドインターフェイス618は、プラグインの追加によって機能を拡張できるという意味において拡張可能とすることができる。例えば、ジオプラグイン620を含めると、GSLB308は地理ベースの(例えば、どのリソースが地理的に最も近いかの)決定を行うことができ、ヘルスプラグイン622を含めると、GSLB308は正常性ベースの決定(例えば、サーバのアップ又はダウン)を行うことができ、コストプラグイン624を含めると、GSLB308はコストベースの(例えば、オペレータネットワークが従来のCDNよりも高価であるかどうかの)決定を行うことができ、配信プラグイン626を含めると、GSLB308は配信ベースの(例えば、データパケットの半分を北米に配信し、データパケットの半分をアフリカに配信すべきである旨の)決定を行うことができる。これらのプラグインのうちの1つ又は2つ以上は、1つのプラグインの出力を別のプラグインの入力として提供できるという意味において「互いにチェーン状」とすることができる。最後に、顧客(例えば、コンテンツプロバイダ又はネットワークオペレータ)が独自のビジネスロジックを実装するスクリプトを書くためのLUAスクリプト要素628及び外部インターフェイス630を提供することができる。通常、新たなコードの追加には、C又はC++コードを書き、テストケースを追加し、完全な製品リリースサイクルを体験することが伴う。ここでは、単純なスクリプトを書くことができる。スクリプト環境は、コアサーバとコードとの間に保護層を提供し、従って長期にわたる公開過程を必要とすることなくスクリプトをセキュアに使用することができる。
コアサービス602は、API608を介してデーモン314に通信可能に結合することもできる。
以下は、ノードがGSLB308とどのように相互作用できるかについてのいくつかの具体例である。ノード310Aが別のノードに要求を中継したいと仮定した場合、ノード310Aは、どのノードに要求を中継すべきかをGSLB308に尋ねることができる。GSLB308は、ネットワーク障害及びネットワーク経路に関する情報を有している場合、ノードBへの良好な経路が存在するという理由でノードAではなくノードBに進むようにノード310Aに伝えることができる。ノード310Aがポッド(すなわち、ノードのクラスタ)内の最も負荷の低いサーバを発見したいと仮定した場合、GSLB308は、ターゲットのリストを構築し、各ターゲットに現在の負荷を尋ねてノード310Aにリストを戻すことができる。ノード310Aは、所望のデータを戻すべき1又は2以上のサービスを選別することができる。ノード310Aは、将来的な要求時又は帯域外要求時にGSLB308に実際の性能データを戻すこともできる。これには、最も負荷の低いサーバがあまり望ましくないネットワーク経路(すなわち、性能の低い経路)上に存在し得る場合も含まれる。要約すると、ノードは、GSLB308と通信して最良のノードを発見することができ、GSLB308は、その後ターゲットノードと通信して、どのノードが実際に最良のノードであるかを決定することができる。
図7は、本発明の1つの実施形態によるノード310(例えば、ノード310A、ノード310B、又はCDNの文脈における他のいずれかのノード)のブロック図である。ノード310は、CDNサービスの配信に使用されるHTTPプロキシとすることができるコンダクタ702を含むことができる。コンダクタ702は、帯域外通信チャネルを介してプロビジョナ704と通信することができる。プロビジョナ704は、CDNサーバのコンテンツを管理する役割を果たすことができ、最も人気のある(例えば、ファイル形式の)コンテンツが最も速いストレージ形態に記憶され、最も人気のないコンテンツが最も遅いストレージ形態に記憶されることを確実にしようと試みることができる。図7には、メモリ706、固体ドライブ(SSD)708、SATAドライブ710及びネットワークアタックドストレージ(NAS)712という4つの例示的なストレージ形態を示している(メモリ706が最も速いストレージ形態であり、SSDが次に速いストレージ形態であり、以下同様である)。コンテンツは、そのコンテンツの人気(又はその他の尺度)が高まったことに応答してさらに速いストレージ形態に昇格させることができ、或いはそのコンテンツの人気(又はその他の尺度)が下がったことに応答してさらに遅いストレージ形態に降格させることができる。そのコンテンツがもはや不要になった場合には削除することができる。プロビジョナ60は、コンダクタ80が特定のコンテンツをストレージ706、708、710及び712のうちの1つ又は2つ以上に記憶するかどうかを決定する支援を行うこともできる。
コンダクタ702は、プロキシを通さずに直接コンテンツを提供できるようにする標準的ウェブサーバとすることができるウェブサーバ714とさらに通信することができる。ウェブサーバ714は、ノード310が起点サーバとして構成されるようにすることができる。なお、ウェブサーバ714(及びノード310の他のソフトウェアコンポーネント)は、(メモリ706、SSD708、SATAドライブ710、NAS712のうちの1つ又は2つ以上を含む)クラウドコンピュータプラットフォーム上で実行される1又は2以上のプロセスとすることができる。
コンダクタ702は、プラグインAPI716を介して複数のプラグイン(718A、718B及び718C)とさらに通信することができる。3つのプラグインを示しているが、ノード310内にはあらゆる数のプラグインが存在できると理解されたい。各プラグインは、C++及び/又はスクリプトで書くことができる。さらに、各プラグインは互いに通信することもできる。例えば、プラグイン718Aの出力は、プラグイン718Bへの入力として提供することができる。
コンダクタ702は、プラグインAPI716を介してプラグインサービス720とさらに通信することができる。プラグインサービス720は、ノード310に他のサービスを統合できるようにする。プラグインサービス720の2つの特定のサービスは、内部クライアント及び内部起点とすることができる。内部クライアントの機能を示すために、プラグインの一部として、ウェブサーバ724においてプラグが何らかの機能を実行するためにHTTP内の別のウェブサーバに呼び掛ける必要があると考える。この1つの表現に、一般にセキュリティ装置に認証又はウィルススキャンなどのタスクを実行するように呼び掛けるために使用されるインターネットコンテンツ適応プロトコル(ICAP)と呼ばれるプロトコルがある。内部クライアントは、この要求をセキュリティ装置に対して行うことができる。別の例として、内部クライアントは、広告サーバに呼び掛けて挿入すべき広告を決定することができる。別の例として、内部起点は、新たなアプリケーションライブラリをサーバに組み込んで直接応答させることができる。
内部起点の機能を示すために、ストリーミングメディアがあらゆる所望の出力フォーマットに変換されるジャストインタイムパッキングについて検討する。このようなタスクは、内部起点によって実行することができる。ノード310の外部の構成要素に要求を行って変換を行わせる代わりに、単一の共通フォーマットのメディアを記憶し、このメディアを所望の出力フォーマットで再パッケージすることができる(すなわち、トランスマクシングとして知られている)。内部起点は、ノード310に新たなロジックを非常に柔軟に組み込む方法を可能にする。さらに、同じボックス上で2つのサービスを実行すべき事例について検討する。HTTPにオーバーヘッドを持ち込みたくないと仮定した場合、内部起点は、外部サーバ(すなわち、ノード310の外部のサーバ)と柔軟に通信してクライアント要求への応答を取得する方法を提供する。
内部クライアントと内部起点との1つの相違点は、内部クライアントは、HTTPを用いて通信することしかできないのに対し、内部起点は、実装すると決定したあらゆるプロトコルを用いて通信できる点である。内部起点は、HTTPを使用するつもりである場合、その要求を行うための内部クライアントの1つのインスタンスを作成する。別の相違点として、内部クライアントは1つの要求のみのために存在するのに対し、内部起点は、コンダクタの開始時に作成されてコンダクタが終了するまで存在する。
図8に、ミドルウェア306によって配置された1又は2以上のノード(例えば、806A、806B、806C)にアクセスするための、エンドユーザ装置112Aによって開始される要求フロー800を示す。ステップ1において、エンドユーザ装置112Aが、GLSB308と通信してどこに要求を送信すべきかを決定することができる。GSLBは、エンドユーザ装置112Aに、ソフトウェア負荷分散装置の仮想IP(VIP)アドレスに対応できるIPアドレスを提供することができる。この例では、このIPアドレスがソフトウェア負荷分散装置(SLB)804のVIPアドレスに対応すると仮定する。(この例では、ノードのクラスタが設定されており、この場合、エンドユーザ装置112Aはノードと直接通信せずにSLB804を介してノードと通信すると仮定する。)ステップ2において、エンドユーザ装置112Aは、SLB804に要求を送信することができる。ステップ3において、SLB804は、バックエンドサーバ(806A、806B、806C)のうちの、エンドユーザ装置112Aの要求に応答するバックエンドサーバを選択して、選択したバックエンドサーバに要求を転送する。
本発明の1つの実施形態によれば、サーバのクラスタサイズを動的に変更する(例えば、増加及び/又は減少させる)ことができる。クラスタサイズの動的な増加について例示するために、サーバ806Dが追加されている(例えば、ミドルウェア306によって新たにインスタンス化されている)と仮定する。サーバ806Dは、(自らの役割及び位置などのメタデータを送信することによって)マイン(mine)DB808に自らを登録することができる。SLB804は、マインDBに定期的に問い合わせを行って、それぞれの役割及び/又は位置に基づいていずれかのサーバを管理すべきかどうかを判断することができる。サーバ806DがマインDB808に登録すると、SLB804は、マインDB808を通じてサーバ806Dを発見することができる。その後、SLB804は、サーバ806Dを管理することができる。サーバは、同様にクラスタから取り除くこともできる。要約すると、図8は、エンドユーザからの要求が全体的にどのようにしてノードにルーティングされるか、並びに新たなノードの動的発見及び自動構成を通じてどのように負荷分散が行われるかを示すものである。
(図9A及び図9Bを含む)図9に、図8で説明した負荷分散技術の変形例を示す。図9Aには多少の背景情報を示し、図9Bには本発明の1つの実施形態による負荷分散技術を示す。図9Aには、従来、(ワシントン州シアトルのF5Networks社(商標)製の)F5負荷分散装置(902)を介して負荷分散がどのように行われていたかを示す。GSLB308は、VIPを用いて負荷分散装置902にトラフィックをルーティングすることができ、負荷分散装置902は、所望のポリシーに従ってバックエンドサーバ(904A、904B及び904C)へのトラフィックをバランス調整することができる。図9Aの構成900の短所は、F5負荷分散装置が高価であり、約25,000ドル〜100,000ドルのコストが掛かる点である。さらに、負荷分散装置902は(仮想装置ではなく)物理的装置であり、データセンタ内(又は他の位置)に物理的に装置を配置して装置を物理的にネットワークに接続する人員を必要とする。他の構成では、負荷分散装置902を仮想装置とすることもできるが、仮想装置のライセンス取得に関連するコストが掛かる。
図9Bには、本発明の1つの実施形態による負荷分散を実行する構成920を示す。構成920では、負荷分散装置902の機能が、ノード922A、922B及び922Cの各々に組み込まれている。ソフトウェア又は物理的負荷分散装置にVIPを割り当てる代わりに、ノードのクラスタ内の1つのノードに一時的にVIPを登録して、これらのノードのうちの1つのノードから別のノードに定期的に割り当て直すことができる。
構成920では、GSLB308が、ノードのクラスタ内の1つのノードに登録されたVIPに要求を向けることができる(この例では、ノード922Aに割り当てられると仮定する)。ノード922Aは、GSLB308から要求を受け取ると、要求されたコンテンツをどのノードが有しているか、及び各ノードの現在の負荷に基づいて、要求をどこにルーティングすべきかを決定する必要がある。ノード922Aは、要求に対処するノード(説明を簡単にするために、この決定されたノードを「ターゲットノード」と呼ぶ)を決定すると、このターゲットノードに要求をリダイレクトすることができる(この例では、ノード922Cをターゲットノードと仮定する)。
これまでの方法では、このようなリダイレクトを、HTTPリダイレクトを介して実行することができていた。例えば、ノード922Aは、クライアント(要求を送信した、図示していないクライアント)に応答を送信して、このクライアントにノード922Cに接続するように指示することができていた。しかしながら、このようなスキームは性能への影響が大きい。
本発明の1つの実施形態による方式は、過去の方法とは対照的に以下のように要求をリダイレクトする。まず、ノード922Aが、クライアントとの送信制御プロトコル(TCP)接続を終了する。次に、ノード922Aは、(例えば、要求内に指定されているURLを含む)クライアントからの要求を十分に読み取って、どこに要求を送信すべきかを決定する。同時に、ノード922Aは、要求に関連するクライアントからのパケットフローを記憶する。ノード922Aは、どこに要求を送信すべきかを決定すると、クライアントからのパケットの受け取りを停止する(例えば、SYN−ACKフローの受け取りを停止する)ことができる。次に、ノード922Aは、裏ルートを用いて、記録されたパケットをターゲットノード922Cに送信することができる。ターゲットノード922Cは、記録されたパケットを受け取ると、基本的に接続の設定を再生し、これがターゲットノード922Cにとっては接続が開始されたばかりのように見え、そしてクライアントのための応答を生成することができる。要約すると、この方法は、当初は第1のノードと第2のノードとの間に存在していたTCP接続を第1のノードと第3のノードとの間に移動させる効率的な方法を提供する。この方法の1つの利点は、カーネルレベルの修正が不要な(すなわち、カーネルが各ノードに関連する)点である。この負荷分散スキームは、MAC、Windows及び/又はカーネルモジュールをサポートするあらゆるオペレーティングシステム上で機能することができる。
図10に、本発明の1つの実施形態による、プラグイン718A〜718Nのうちの1つ又は2つ以上のプラグインの機能を拡張できる(例えば、プラグインのうちの1つを、HTTPパケットのペイロードを解析するように支援することができる)メディアアダプタ1002a〜1002nを示す。インスタントメディアアダプタについて多少の背景を示すと、Apache HTTPサーバ(以下、「Apache」)の従来のプラグインでは、ApacheがHTTP要求/応答を解析して、アプリケーション開発者にHTTPパケットのヘッダへのアクセスを提供する。Apacheは、ヘッダを操作することはできるが、HTTPペイロード又は本文を理解する段になると、これらへのアクセスを一切提供しない。従って、アプリケーション開発者は、ストリーミングビデオに広告を挿入したいと望む場合には、ビデオコンテナを解析できるほどのドメインの専門知識を有し、挿入又は再生を望む箇所がどこであってもその操作方法を書く必要があるが、このことは、アプリケーション開発者が、いずれかのタイプのメディア操作を行うために多くのドメインの専門知識を有している必要があることを意味する。例えば、アプリケーション開発者がメディア操作を実行したい(例えば、広告又はバナー又はオーバレイを挿入したい)と望むものの、HTTP、HTML又はCSSについて何も知らないと仮定すると、メディアアダプタは、アプリケーション開発者がペイロードの符号化構文を理解する必要なくこのような動作を実行できるようにする。
再び図10を参照すると、プラグイン718a〜718nの各々は、独自のメディアアダプタ1002a〜1002nを介してプラグインAPI716に結合して、各プラグインに拡張機能を提供することができる。換言すれば、メディアアダプタ1002a〜1002nの各々は、プラグインAPI716の拡張として解釈することができる。例えば、プラグイン718aがインスタンス化されると、メディアアダプタ1002aは、プラグイン718aにさらなる機能を提供することもできる。プラグインは、メディアアダプタの結果として、実行できなかったはずのメディア処理を実行できるようになる。例えば、メディアアダプタ1002は、XML構造のHTTPパケットのペイロードをプラグインに戻すとともに、このペイロードの操作方法をプラグインに提供することができる。メディアアダプタ1002は、各エンドユーザ装置112A〜112Pのカスタムマニフェストの生成、コンテンツの交互挿入、応答のリブランディング、ネットワーク状態に応じて提供されるビットレートの制限などを可能にするカスタムロジックを含むことができる。
詳細に言えば、メディアアダプタ1002は、プラグインがHTTPパケットのペイロードに対して多くの行のコード(例えば、1000行)ではなく数行のコード(例えば、10行)で動作を実行できるように複雑なファイル解析の詳細を隠す抽象層として解釈することができる。アプリケーション開発者は、メディアアダプタ1002によって低レベルの専門知識でプラグインを書けるようになる。メディアアダプタ1002は、アプリケーション開発者にとって困難な仕事を実行する。全てのアプリケーション開発者は、自分が広告を挿入したいことのみが分かっていればよい。メディアアダプタ1002は、HTTPパケットのペイロードから、広告マークがいつ存在するかを決定することができ、プラグインは、このような広告マークに適切な広告を挿入することができる。
図11に、本発明の1つの実施形態による、起点サーバからエンドユーザ装置にコンテンツを配信する通信ネットワークを示す。例えば、(例えば、cnn.comをホストする)起点サーバ102が、エンドユーザ装置112A〜112Pに6MBの画像を提供したいと仮定する。起点サーバ102は、(エンドユーザ装置の一部は低帯域幅リンクを介して接続されている可能性があるので)全てのエンドユーザ装置に6MBの画像を送信したいと望んでおらず、従って高度起点1102は、画像を受け取ると6MBの画像を64KBなどのバージョンに最適化する。このような最適化を実行するモデルは2つ存在する。一般に、ウェブページの最適化は起点の直前に実行されており(すなわち、ウェブページの最適化は、起点において、又は起点の直前のリバースプロキシとして物理的に展開される)、このことは、新たな画像(すなわち、64KBの画像)が起点サーバ102を後ろ向きに指し示す新たな名前を有するという理由で問題である。この新たな名前は、CDN上で要求がルーティングされる結果として新たな画像が最適な経路を介して配信されないことを意味する。これに対処するために、URLをCDNドメイン名でラッピングした後、実際に起点と対話したいと望む時にURLを元々のcnn.comに逆マッピングすることができる。このことは、最適な画像を取り出すためのあらゆる要求が、はるばる高度起点1102(すなわち、通常は実際の起点に最も近いCDN POP)に戻って画像を取り出すことを意味し、インジェストサーバがオーストラリアである場合には非常に長い時間であり、従ってCDNがエッジにおいて提供される。URL(又は、HTMLではhref要素)は、これを最適化したサーバ名に書き換えられているので、毎回起点サーバ102に戻る。
最適化の右側のエッジ部分には、装置(例えば112A〜112P)が存在する。通常、装置に関する情報(例えば、iPhone(登録商標)であるか、それともAndroidであるか、オペレーティングシステムのバージョン、レティナディスプレイの存在など)は、HTTPユーザエージェントヘッダから導出することができるが、他のソースから導出することもできる。例えば、モバイルネットワークでは、ハンドセットID及びポリシーデータベースから正確な装置が分かる。装置に配信されるコンテンツは、技術的検討事項(すなわち、装置、ネットワーク状態などに関する情報)及びビジネス上の検討事項(すなわち、ユーザが特定のプランに加入した場合にのみ一定レベルのサービスを提供すること、SLA、など)に基づいて調整されることが望ましい。(例えば、図1などの)現在のCDN構成では、CDNノードが装置に関する情報にアクセスできず、従ってCDNは、装置に合わせてコンテンツを適切に調整することができない。しかしながら、CDNノードがオペレータネットワーク内に配置される例では、CDNノードが、上述した装置に関する情報にアクセスすることができ、従って装置に合わせてコンテンツを適切に調整することができる。例えば、起点サーバ102がjpeg画像を提供しており、エンドユーザがChrome又はインターネットエクスプローラ(IE)を実行しており、IEはインライニングをサポートしていないが、Chromeはインラインをサポートしている場合、ChromeブラウザのHTMLは、インラインされた画像を提供して、ブラウザが第2のステップにおいて画像を要求する必要性を無くすことができる。
望ましいのは、サーバ(例えば、図11に示す起点サーバ102、高度起点1102及びエッジサーバ1104、又は図1に示すサーバのいずれか)が協働することである。すなわち、サーバが配信チェーン内の最適な地点で正しい最適化を実行するように協働することが望ましい。最も良い例は、重複コンテンツをタグに置き換える(すなわち、経路沿いのあらゆる装置がこのタグをキャッシュコピーに置き換えることができる)HTTPデデューピングであると思われる。これについては、サブオブジェクトキャッシングと考えることができる。最も良い方法は、起点においてデデューピングが行われるようにし、クライアントが装置上のキャッシュコピーでピースを満たすようにすることである。これにより、データ転送の可能性が最も小さくなって最高の性能が得られるようになる。一方で、クライアントがこのサービスをサポートしていない場合には、エッジノードがこれを処理することができる。また、経路沿いのノードがコンテンツを変更したいと望む可能性があることを考慮すると、このようなノードがクライアントのコンテンツをデデュープして再パッケージすることもできる。従って、HTMLコンテンツが存在する場合にこれを解析すると、メモリ及びCPUコストの面で極めて高価であるため、そのような場合には、起点サーバ102が高度起点1102に解析を行わないように命令することが望ましい。エッジ1104において、コンテンツが解析される。従って、エッジ1104が最適化された画像を望み、既に最適化されたバージョンのコンテンツが利用可能である場合、エッジ1104は、起点サーバ102に戻って、最初からオリジナル画像を取り出して画像を最適化し、その画像をエッジ1104に戻すように起点サーバ102に要請する。これによって要求が修正される。ここにあなたが私に与えようとしているURLがあり、そこでは符号化が最適な符号化になっており、そのURLは、エッジである私ではなくあなた(すなわち、我々のソフトウェアがどこに配置されているかに応じて、起点サーバ102又は高度起点1102)が最適化起点を行おうとしていると言った。
図12は、本発明の1つの実施形態による、統合されたエッジサービス及びRANサービスのフロー図である。この統合サービスは、サービス配信モジュールと通信する組織化モジュールを含むことができる。組織化モジュールは、発生、収集、加入管理、分析、推薦、再生リスト、資格/DRM、広告プロファイリング及び体感品質(QoE)プロファイリングの機能を実行するように構成することができる。サービス配信モジュールは、起点管理モジュール、配信管理モジュール及びクライアント管理モジュールという4つの主要構成要素を含むことができる。起点管理モジュール内には、インジェストモジュール、プロセスモジュール、記憶モジュール、個人化モジュール、パッケージモジュール及び最適化モジュールが存在することができる。これらの各モジュールは、(一連のAPIを含む)組織化ミドルウェアを介して組織化モジュールと通信することができる。配信管理モジュール内には、個人化モジュール、パッケージモジュール及び最適化モジュールが存在することができる。これらの各モジュールは、管理コンテンツ(CDN)インターフェイス及び/又は非管理コンテンツ(TIC)インターフェイスを介して起点管理モジュールと通信することができる。クライアント管理モジュール内には、ビデオモジュール、ウェブモジュール及びゲームモジュールが存在することができる。これらの各モジュールは、CDN資格インターフェイス及び/又はDRMインターフェイスを介して配信管理モジュールと通信することができる。管理システム内には、セキュア、トラッキング及びセッション識別を実行するモジュールと、トラフィックエンジニアリング、モニタリング、要求ルーティング及び設定を実行する配信管理モジュールと、輻輳管理を実行するQoE管理モジュールとが存在することができる。QoE管理モジュールは、RANマネージャと通信して要求毎に要求の構成を変更するポリシープラグインである。
図13A〜図13Cは、本発明の1つの実施形態による、信頼できる仲介者を用いた2パーティセキュアソケットレイヤ(SSL)処理のシステム図である。このシステム図を説明する前に、最初に多少の背景を示す。SSLの使用を増加させると、金融及び電子商取引のような用途にとって極めて重大なエンドユーザの信用が高まる。しかしながら、SSLは、インターネットコンテンツプロバイダの体感品質(QoE)を低下させるという望ましくない影響を与える結果、コンテンツプロバイダのコンテンツの消費が減少してしまう。
通常、今日のコンテンツプロバイダは、ネットワーク及びサービスのセキュリティ管理をCDNオペレータなどの信頼できるサードパーティプロバイダに委託している。セキュリティを高める必要性を解決しながら現在のQoLレベルを維持する方法は複数存在するが、これらは全て、信頼できるサードパーティを有する必要性に対処することができていない。既存の信頼できるサードパーティプロバイダの多くは、コンテンツプロバイダのセキュリティ証明書の管理に重大な穴がある(例えば、セキュリティ証明書の非セキュアな記憶、青色で送信される証明書、脆弱な認証、終端エッジノードと、内部サーバと、場合によっては顧客起点との間のセキュリティの格下げ)。
本発明の1つの実施形態が必要とし、提供するものは、
(1)オペレータエンドポイントとコンテンツ/サービスプロバイダとの間の仲介者として機能する信頼できるグローバルサービスプロバイダ(GSP)、
(2)コンテンツプロバイダと信頼できるGSPとの間のセキュリティ証明書のセキュアな管理、
(3)コンテンツ/サービスプロバイダ証明書をセカンドパーティに公開せずにエンドユーザに提供できる、セカンドパーティのネットワーク上におけるセキュアなサービスの形成、
(4)サービス又はコンテンツを求めるユーザ要求の、信頼できるGSPへの、又はコンテンツプロバイダへの直接のセキュアなルーティング、
(5)送信完全性及び二次パーティの検証、
(6)配信チェーン内の全てのパーティの利益になるのに十分な経済的誘因、
である。
次に、図13A〜図13Cに関連して実行できるプロセスについて説明する。(図13Aの)「ステップA」において、コンテンツ/サービスプロバイダ1316(起点サーバ102の例)が、VCDNサービス1304、選択された信頼できるプロバイダ(例えば、GSP1302)及び/又は許可された位置(AL)1314にセキュリティ証明書をアップロードすることができる。GSPは、証明機関(CA)として機能することができるので、GSP1302内にはPK1312が存在することができる。提供される公開キーは、KMI1306に記憶することができる。具体的には、コンテンツ/サービスプロバイダ1316が、VPN又はSSLなどのセキュアな接続を開いて(セキュアなストレージに配置されるファイルである)SSL証明書を転送することができる。「ステップB」において、VCDNサービス1304は、インターネットネットワークサービスの使用可能性を認証するために使用する非対称キーと共に、二次パーティサービスが使用する証明書を生成することができる。ステップ「C」において、GSP1302及び(図13B及び図13Cに示す)二次パーティノード1324によるアクセスのためのプライベートキー(1306、1310)を記憶するセキュアキー管理インフラストラクチャ(KMI)に全てのキーを記憶することができる。
(図13Bの)「ステップD」において、VCDNサービス1304は、コンテンツ/サービスプロバイダ1316がGSP1302に提供した証明書を用いてVM/コンテナを設定することができる。「ステップE」において、VCDNノード1326は、KMI1306に顧客証明書及び非対称通信キーをセキュアにロードすることができる。「ステップF」において、VCDNノード1326は、二次プロバイダノード1324に自らを登録することができる。「ステップG」において、二次プロバイダノード1324は、VCDNが発行した(二次プロバイダノード1324が自らを識別するために使用する)証明書をKMI1306から読み取ることができる。「ステップH」において、二次プロバイダノード1324は、VCDNノード1326のVIPをルータ1322のBGPテーブルに登録することができる。
(図13Cの)「ステップI」において、エンドユーザ装置112Aは、GSP1302にウェブリソースを要求することができる。「ステップJ」において、ポリシーベースのGSLB1304が、地理位置情報に基づいて配置されたVCDNノード1326に(エンドユーザ装置112Aからの)HTTP要求を送信することができる。「ステップK」において、VCDNノード1326は、GSP1302によって生成された、GSP1302のみが解読できる非対称キーを用いてHTTP要求のペイロードを暗号化することができる。このような暗号化は、HTTP要求がエンドユーザ装置112Aのプライベート情報(例えばパスワード)を含む場合に有利であり、このようなプライベート情報は、VCDNノード1326とエグレス1330との間の非セキュアなネットワーク内で傍受されないことが望ましい。「ステップK」において、VCDNノード1326は、中間者攻撃を避けるために要求の証明書をサーバに確認する二次プロバイダ1324に要求を転送することができる。「ステップM」において、二次プロバイダノード1324は、GSP1302のエグレス1330へのセキュアな接続を開くことができる。エニイキャストルーティングが、エグレス1330と二次1324との間の最短ルートを保証することができる。また、「ステップM」では、暗号化されたペイロードを含む要求(又は応答)を二次プロバイダノード1324からエグレス1330に送信することもできる。「ステップN」において、GSP1302は、エグレス1330とイングレス1332との間のルート(すなわち、プロトコル及び経路)を最適化して、最良のスループット及び性能を保証することができる(すなわち、ミドルマイル最適化)。また、「ステップN」では、(エグレス1330又はイングレス1332のいずれかにおいて)GSP1302が、コンテンツ/サービスプロバイダ1316がペイロードを読み取ることができるように要求のペイロードを暗号解読することもできる。「ステップO」において、イングレス1332とコンテンツ/サーバプロバイダ1316との間にセキュアな接続を確立することができる。また、「ステップO」では、暗号解読されたペイロードを含む要求(又は応答)をGSP1302からコンテンツ/サービスプロバイダ1316に送信することもできる。
インスタントSSLスキームの利点は、以下のように要約することができる。GSP1302内のあらゆるものが信頼できると仮定する。さらに、VCDNノード1326も信頼できると仮定する。VCDNノード1326とGSP1302のエグレス1330との間には、二次プロバイダノード1324(及び図示していない他の仲介者)を含むいずれかの信頼できないものが存在する可能性がある。VCDNノード1326とエグレス1330の間では、SSLリンク(例えば、VCDNノード1326と二次プロバイダノード1324との間のSSLリンク、及び二次プロバイダノード1324とエグレス1330との間のSSLリンク)を介してデータパケットをセキュアに送信することができるが、この(ペイロードを含む)データパケットは、SSLリンクが終了するいずれかの場所(例えば、二次プロバイダノード1324)において脆弱になる可能性がある。このセキュリティ問題に対処するために、VCDNノード1326において、データパケットのペイロードをGSP1302のみが知っている非対称キーによって暗号化した後で、(この時点で暗号化されているペイロードを含む)データパケットを二次プロバイダノード1324に送信することができる。データパケットは、通常通りに二次ノード1324において処理することができる(例えば、ルーティング、キャッシングすることができる)が、二次プロバイダノード1324は、ペイロードを解読できないので、もはやデータパケットのペイロードを読み取ることができない点が1つの違いである。データパケットのペイロードは、データパケットがGSP1302に到達するまで解読することができない。本解決策によって提供されるのは、二重暗号化の形態である。データがセキュアなリンクを介して送信されるだけでなく、そのペイロードも暗号化される。
上述の説明から明らかなように、本発明の態様は、様々なコンピュータシステム、及びコンピュータ可読命令を記憶するコンピュータ可読媒体を使用するものである。図14に、本明細書で説明したコンピュータシステムのいずれかに相当するシステム1400の例を示す。なお、様々なコンピュータシステムの全てがシステム1400の全ての特徴を有するわけではない。例えば、上述したコンピュータシステムのうちのいくつかは、コンピュータシステムに通信可能に結合されたクライアントコンピュータによってディスプレイ機能を提供できるという理由、又はディスプレイ機能を不要とすることができるという理由でディスプレイを含まないこともある。このような詳細は、本発明にとって重要なものではない。
システム1400は、情報を通信するためのバス1402又はその他の通信機構、及び情報を処理するための、バス1402に結合されたプロセッサ1404を含む。コンピュータシステム1400は、情報及びプロセッサ1404によって実行される命令を記憶するための、バス1402に結合されたランダムアクセスメモリ(RAM)又はその他の動的ストレージなどのメインメモリ1406も含む。メインメモリ1406は、プロセッサ1404によって実行される命令の実行中に一時的変数又はその他の中間情報を記憶するために使用することもできる。コンピュータシステム1400は、プロセッサ1404のための静的情報及び命令を記憶するための、バス1402に結合されたリードオンリメモリ(ROM)1408又はその他の静的ストレージをさらに含む。フロッピーディスク、フレキシブルディスク、ハードディスク、フラッシュメモリベースの記憶媒体、磁気テープ又はその他の磁気記憶媒体、コンパクトディスク(CD)ROM、デジタル多機能ディスク(DVD)ROM又はその他の光学記憶媒体、又はプロセッサ1404が読み取ることのできる他のいずれかの記憶媒体のうちの1つ又は2つ以上とすることができる、情報及び命令(例えば、オペレーティングシステム、アプリケーションプログラムなど)を記憶するためのストレージ1410も提供されてバス1402に結合される。
コンピュータシステム1400は、コンピュータユーザに情報を表示するフラットパネルディスプレイなどのディスプレイ1412にバス1402を介して結合することができる。バス1402には、プロセッサ1404に情報及びコマンド選択を通信する、英数字及びその他のキーを含むキーボードなどの入力装置1414を結合することもできる。別のタイプのユーザ入力装置には、プロセッサ1404に方向情報及びコマンド選択を通信してディスプレイ1412上のカーソルの動きを制御する、マウス、トラックボール又はカーソル方向キーなどのカーソル制御装置1416がある。マイク、スピーカなどの他のユーザインターフェイス装置については詳細に図示していないが、ユーザ入力の受け取り及び/又は出力の提示を行うことができる。
本明細書において言及したプロセスは、メインメモリ1406に含まれる適切な一連のコンピュータ可読命令を実行するプロセッサ1404によって実装することができる。このような命令は、記憶装置1410などの別のコンピュータ可読媒体からメインメモリ1406に読み込むことができ、メインメモリ1406に含まれる一連の命令を実行すると、プロセッサ1404が関連する動作を実行するようになる。別の実施形態では、プロセッサ1404及びその関連するコンピュータソフトウェア命令の代わりに又はこれらと組み合わせて有線回路又はファームウェア制御型処理ユニット(例えば、フィールドプログラマブルゲートアレイ)を用いて本発明を実装することもできる。コンピュータ可読命令は、以下に限定されるわけではないが、C#、C/C++、Fortran、COBOL、PASCAL、アセンブリ言語、マークアップ言語(例えば、HTML、SGML、XML、VoXML)など、及び共通オブジェクトリクエストブローカアーキテクチャ(CORBA)、Java(商標)などのオブジェクト指向環境を含むいずれかのコンピュータ言語で提供することができる。一般に、上述した全ての用語は、あらゆるコンピュータ実行可能アプリケーションの特徴である所与の目的を達成するように連続して実行されるいずれかの一連の論理ステップを含むことが意図されている。別途具体的に示していない限り、本発明の説明全体を通じて使用した「処理(processing)」、「算出(computing)」、「計算(calculating)」、「決定(determining)」、「表示(displaying)」、「受信(receiving)」又は「送信(transmitting)」などの用語は、レジスタ及びメモリ内の物理的な(電子的)量として表されるデータを操作して、そのメモリ又はレジスタ又はその他のこのような情報記憶装置、送信装置又はディスプレイ装置内の同様に物理的な量として表される他のデータに変換する、コンピュータシステム700又は同様の電子コンピュータ装置などの適切にプログラムされたコンピュータシステムの動作及び処理を示すと理解されたい。
コンピュータシステム1400は、バス1402に結合された通信インターフェイス1418も含む。通信インターフェイス1418は、上述した様々なコンピュータシステムに、及びこれらの間に接続性を提供するコンピュータネットワークとの双方向データ通信チャネルを提供することができる。例えば、通信インターフェイス1418は、1又は2以上のインターネットサービスプロバイダネットワークを介してインターネットに通信可能に結合される互換性のあるLANへのデータ通信接続を提供するローカルエリアネットワーク(LAN)カードとすることができる。このような通信経路の詳細は、本発明にとって重要なものではない。重要なのは、コンピュータシステム1400が、通信インターフェイス1418を介してメッセージ及びデータを送受信することにより、インターネットを介してアクセスできるホストと通信できる点である。
上述した説明は、例示的なものであって限定的なものではないと理解されたい。当業者には、上記の説明を参照した時に他の多くの実施形態が明らかになるであろう。従って、本発明の範囲は、添付の特許請求の範囲、及びこのような特許請求の範囲が権利を有する同等物の全ての範囲を参照して決定されるべきものである。
300 システム
302 コントローラ
304 ポータル
306 ミドルウェア
308 GSLB
310A ノード
310B ノード
312 リポジトリ
314 デーモン
316 マップファイル
318 インスタンス化モジュール

Claims (20)

  1. コンテンツプロバイダの技術的ニーズ及びビジネスニーズに従って、コンテンツソースとコンテンツ消費者との間のエンドツーエンドコンテンツ配信経路内のいずれかの地点における物理リソース及び仮想リソース全体にわたるサービス及び関連データの配置を容易にする、1又は2以上のノードを含むネットワークインフラストラクチャの設計情報をウェブポータルを介して受け取るステップと、
    前記設計情報を、
    (i)前記1又は2以上のノードのデータ、パッケージング情報及びメタデータを含む1又は2以上のリポジトリと、
    (ii)前記1又は2以上のノードのそれぞれのアドレスを指定する1又は2以上のマップファイルと、
    に記憶するステップと、
    前記1又は2以上のリポジトリ及び前記1又は2以上のマップファイルに記憶された前記設計情報に基づいてネットワークインフラストラクチャを配置することにより、前記ネットワークインフラストラクチャの前記ノードをインスタンス化して前記ノードを互いに通信可能に結合するステップと、
    前記インスタンス化されたノードを広域ソフトウェア負荷分散装置(GSLB)に登録するステップと、
    を含むことを特徴とする方法。
  2. 前記1又は2以上のノードは、起点サーバと、ネットワークイングレスポイントと、ネットワークエグレスポイントとを含む、
    請求項1に記載の方法。
  3. 前記ネットワークインフラストラクチャは、1又は2以上のクラウドコンピューティングプラットフォーム上に配置される、
    請求項1に記載の方法。
  4. 前記1又は2以上のノードは、オペレータネットワーク内に配置される、
    請求項1に記載の方法。
  5. 前記1又は2以上のノードのアドレスは、インターネットプロトコル(IP)アドレスによって指定される、
    請求項1に記載の方法。
  6. 前記GSLBは、ドメイン名システム(DNS)プラグイン、ハイパーテキスト転送プロトコル(HTPP)プラグイン、及びライトウェイトディレクトリアクセスプロトコル(LDAP)プラグインのうちの1つ又は2つ以上を含む拡張可能フロントエンドインターフェイスを含む、
    請求項1に記載の方法。
  7. 前記GSLBは、複数のプラグインを含む拡張可能バックエンドインターフェイスを含み、前記プラグインのうちの第1のプラグインの出力は、前記プラグインのうちの第2のプラグインに入力として提供される、
    請求項1に記載の方法。
  8. 前記GSLBは、ノードのクラスタに通信可能に結合され、前記ノードのクラスタ内の前記ノードのうちの1つのノードに仮想インターネットプロトコル(VIP)が一時的に登録され、前記ノードのうちの1つのノードから前記ノードのうちの別のノードに定期的に割り当て直される、
    請求項1に記載の方法。
  9. 前記ノードのうちの少なくとも1つのノードは、HTTPプロキシ及び複数のプラグインを含み、該複数のプラグインは、プラグインアプリケーションプログラムインターフェイス(API)を介してHTTPプロキシと通信する、
    請求項1に記載の方法。
  10. 前記複数のプラグインは、データパケットのそれぞれのペイロードを第1のフォーマットから拡張可能マークアップ言語(XML)フォーマットに変換するように構成されたメディアアダプタと通信する、
    請求項9に記載の方法。
  11. プロセッサと、命令を含むメモリとを備えた装置であって、前記命令は、前記プロセッサによって実行された時に、該プロセッサに、
    コンテンツプロバイダの技術的ニーズ及びビジネスニーズに従って、コンテンツソースとコンテンツ消費者との間のエンドツーエンドコンテンツ配信経路内のいずれかの地点における物理リソース及び仮想リソース全体にわたるサービス及び関連データの配置を容易にする、1又は2以上のノードを含むネットワークインフラストラクチャの設計情報をウェブポータルを介して受け取ることと、
    前記設計情報を、
    (i)前記1又は2以上のノードのデータ、パッケージング情報及びメタデータを含む1又は2以上のリポジトリと、
    (ii)前記1又は2以上のノードのそれぞれのアドレスを指定する1又は2以上のマップファイルと、
    に記憶することと、
    前記1又は2以上のリポジトリ及び前記1又は2以上のマップファイルに記憶された前記設計情報に基づいてネットワークインフラストラクチャを配置することにより、前記ノードをインスタンス化して前記ノードを互いに通信可能に結合することと、
    前記インスタンス化されたノードを広域ソフトウェア負荷分散装置(GSLB)に登録することと、
    を行わせる、
    ことを特徴とする装置。
  12. 前記1又は2以上のノードは、起点サーバと、ネットワークイングレスポイントと、ネットワークエグレスポイントとを含む、
    請求項11に記載の装置。
  13. 前記ネットワークインフラストラクチャは、1又は2以上のクラウドコンピューティングプラットフォーム上に配置される、
    請求項11に記載の装置。
  14. 前記1又は2以上のノードは、オペレータネットワーク内に配置される、
    請求項11に記載の装置。
  15. 前記1又は2以上のノードのアドレスは、インターネットプロトコル(IP)アドレスを含む、
    請求項11に記載の装置。
  16. 前記GSLBは、ドメイン名システム(DNS)プラグイン、ハイパーテキスト転送プロトコル(HTPP)プラグイン、及びライトウェイトディレクトリアクセスプロトコル(LDAP)プラグインのうちの1つ又は2つ以上を含む拡張可能フロントエンドインターフェイスを含む、
    請求項11に記載の装置。
  17. 前記GSLBは、複数のプラグインを含む拡張可能バックエンドインターフェイスを含み、前記プラグインのうちの第1のプラグインの出力は、前記プラグインのうちの第2のプラグインに入力として提供される、
    請求項11に記載の装置。
  18. 前記GSLBは、ノードのクラスタに通信可能に結合され、前記ノードのクラスタ内の前記ノードのうちの1つのノードに仮想インターネットプロトコル(VIP)が一時的に登録され、前記ノードのうちの1つのノードから前記ノードのうちの別のノードに定期的に割り当て直される、
    請求項1に記載の装置。
  19. 前記ノードのうちの少なくとも1つのノードは、HTTPプロキシ及び複数のプラグインを含み、該複数のプラグインは、プラグインアプリケーションプログラムインターフェイス(API)を介してHTTPプロキシと通信する、
    請求項1に記載の装置。
  20. 前記複数のプラグインは、データパケットのそれぞれのペイロードを第1のフォーマットから拡張可能マークアップ言語(XML)フォーマットに変換するように構成されたメディアアダプタと通信する、
    請求項9に記載の装置。
JP2017553309A 2014-12-31 2015-12-21 ネットワークにおいてコンテンツを配信するエンドツーエンドソリューションのための方法及びシステム Pending JP2018506936A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/588,383 2014-12-31
US14/588,383 US10148727B2 (en) 2014-12-31 2014-12-31 Methods and systems for an end-to-end solution to deliver content in a network
PCT/US2015/067174 WO2016109296A1 (en) 2014-12-31 2015-12-21 Methods and systems for an end-to-end solution to deliver content in a network

Publications (1)

Publication Number Publication Date
JP2018506936A true JP2018506936A (ja) 2018-03-08

Family

ID=56165731

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017553309A Pending JP2018506936A (ja) 2014-12-31 2015-12-21 ネットワークにおいてコンテンツを配信するエンドツーエンドソリューションのための方法及びシステム

Country Status (6)

Country Link
US (1) US10148727B2 (ja)
EP (1) EP3241338A4 (ja)
JP (1) JP2018506936A (ja)
KR (1) KR20170100664A (ja)
CN (1) CN107211039A (ja)
WO (1) WO2016109296A1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140123250A1 (en) * 2012-10-26 2014-05-01 Empire Technology Development, Llc Securitization of developer credentials
US9838387B2 (en) * 2015-04-28 2017-12-05 Management Systems Resources Inc. Security token with embedded data
US10949349B2 (en) * 2015-12-01 2021-03-16 Fastly, Inc. Anonymized network addressing in content delivery networks
US20170171045A1 (en) * 2015-12-11 2017-06-15 Riverbed Technology, Inc. Optimizing network traffic by transparently intercepting a transport layer connection after connection establishment
US10951489B2 (en) * 2015-12-29 2021-03-16 Digital River, Inc. SLA compliance determination with real user monitoring
US10637890B2 (en) 2016-06-09 2020-04-28 LGS Innovations LLC Methods and systems for establishment of VPN security policy by SDN application
US10440058B2 (en) 2016-06-09 2019-10-08 LGS Innovations LLC Methods and systems for controlling traffic to VPN servers
US11343322B2 (en) * 2017-12-18 2022-05-24 Telefonaktiebolaget Lm Ericsson (Publ) Virtual edge node as a service
CN108462751B (zh) * 2018-03-23 2023-08-22 上海地面通信息网络股份有限公司 一种反向代理***
US11829351B2 (en) * 2018-11-26 2023-11-28 Akamai Technologies, Inc. High performance distributed system of record with hosted origin services
CN112104680B (zh) * 2019-06-17 2023-03-31 ***通信有限公司研究院 一种确定边缘应用的方法、装置、设备及存储介质
CN110377274B (zh) * 2019-07-08 2023-05-05 紫光云技术有限公司 基于Single-Spa的微前端架构***及开发、部署方法
CN112163761A (zh) * 2020-09-25 2021-01-01 浙江大华技术股份有限公司 远程教学***
US11184294B1 (en) * 2020-12-04 2021-11-23 Capital One Services, Llc Methods and systems for managing multiple content delivery networks
US11924087B2 (en) * 2020-12-18 2024-03-05 Ciena Corporation Adjustable multi-criteria network path computation and visualizations thereof
US20220200954A1 (en) * 2020-12-18 2022-06-23 Prosimo Inc Managing Access To Cloud-Hosted Applications Using Domain Name Resolution
US11528289B2 (en) * 2021-02-26 2022-12-13 At&T Intellectual Property I, L.P. Security mechanisms for content delivery networks

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7149797B1 (en) * 2001-04-02 2006-12-12 Akamai Technologies, Inc. Content delivery network service provider (CDNSP)-managed content delivery network (CDN) for network service provider (NSP)
US20030084341A1 (en) * 2001-11-01 2003-05-01 Arun Ramachandran Implementation of security barriers in a usage based licensing server data structure
US7653689B1 (en) 2002-05-17 2010-01-26 Abacast, Inc. Intelligent virtual content distribution network system and method
US20050086342A1 (en) 2003-09-19 2005-04-21 Andrew Burt Techniques for client-transparent TCP migration
US8863143B2 (en) * 2006-03-16 2014-10-14 Adaptive Computing Enterprises, Inc. System and method for managing a hybrid compute environment
US20060253693A1 (en) * 2005-05-09 2006-11-09 Sanjay Kanodia Systems and methods for automated processing of devices
US20070174429A1 (en) * 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
CN100583820C (zh) * 2006-09-11 2010-01-20 思华科技(上海)有限公司 内容分发网络的路由***及方法
CA2733369C (en) * 2008-08-05 2016-07-05 Chalk Media Service Corp. Method and system for authoring mobile content for delivery to a mobile device
US8527635B2 (en) 2008-08-13 2013-09-03 Sk Planet Co., Ltd. Contents delivery system and method, web server and contents provider DNS server thereof
WO2011014160A1 (en) * 2009-07-28 2011-02-03 Hewlett-Packard Development Company, L.P. Controlling cloud services
US9442810B2 (en) 2009-07-31 2016-09-13 Paypal, Inc. Cloud computing: unified management console for services and resources in a data center
US8635318B1 (en) 2009-09-15 2014-01-21 Symantec Corporation Message broadcast protocol which handles configuration changes in a cluster of virtual servers
US20110078230A1 (en) * 2009-09-25 2011-03-31 Emilio Sepulveda Method and system for providing a cdn with granular quality of service
US8358660B2 (en) * 2009-11-16 2013-01-22 Verizon Patent And Licensing Inc. Method and system for providing integrated content delivery
US20120066487A1 (en) * 2010-09-09 2012-03-15 Novell, Inc. System and method for providing load balancer visibility in an intelligent workload management system
US9141410B2 (en) * 2011-03-08 2015-09-22 Rackspace Us, Inc. Pluggable allocation in a cloud computing system
ES2650595T3 (es) * 2011-04-15 2018-01-19 Deutsche Telekom Ag Ingeniería de tráfico de red
US8914514B1 (en) 2011-09-27 2014-12-16 Amazon Technologies, Inc. Managing network based content
US20130159487A1 (en) * 2011-12-14 2013-06-20 Microsoft Corporation Migration of Virtual IP Addresses in a Failover Cluster
US9515869B2 (en) * 2012-01-18 2016-12-06 Dh2I Company Systems and methods for server cluster application virtualization
US10031783B2 (en) 2012-03-02 2018-07-24 Vmware, Inc. Execution of a distributed deployment plan for a multi-tier application in a cloud infrastructure
US8918448B2 (en) * 2012-05-11 2014-12-23 International Business Machines Corporation Application component decomposition and deployment
US9135048B2 (en) * 2012-09-20 2015-09-15 Amazon Technologies, Inc. Automated profiling of resource usage
US9634904B2 (en) 2012-12-13 2017-04-25 Level 3 Communications, Llc Framework supporting content delivery with hybrid content delivery services
US20140181004A1 (en) * 2012-12-20 2014-06-26 Sap Ag Common Framework for Definition, Generation, and Management of Metadata Runtime-Loads
US9178769B2 (en) 2013-01-08 2015-11-03 Comcast Cable Communication, Llc Generation and management of network connectivity information
US20140365662A1 (en) 2013-03-15 2014-12-11 Gravitant, Inc. Configuring cloud resources
CN104113512A (zh) * 2013-04-18 2014-10-22 华为技术有限公司 一种cdn***、广告推送***及广告推送方法
CN103401951B (zh) * 2013-08-28 2016-04-06 浙江大学 基于对等架构的弹性云分发方法
US9998530B2 (en) * 2013-10-15 2018-06-12 Nicira, Inc. Distributed global load-balancing system for software-defined data centers

Also Published As

Publication number Publication date
US20160191600A1 (en) 2016-06-30
CN107211039A (zh) 2017-09-26
US10148727B2 (en) 2018-12-04
EP3241338A1 (en) 2017-11-08
KR20170100664A (ko) 2017-09-04
EP3241338A4 (en) 2018-08-08
WO2016109296A1 (en) 2016-07-07

Similar Documents

Publication Publication Date Title
JP2018506936A (ja) ネットワークにおいてコンテンツを配信するエンドツーエンドソリューションのための方法及びシステム
JP7203444B2 (ja) 代替サーバ名を使用する相互トランスポート層セキュリティを選択的に提供すること
US11457080B1 (en) Service mesh management
US11063750B2 (en) Systems and methods for secured web application data traffic
US10805273B2 (en) Systems for improving performance and security in a cloud computing system
US11722422B2 (en) Systems and methods for managing streams of packets via intermediary devices
US10091111B2 (en) Methods and systems for an end-to-end solution to deliver content in a network
US9871850B1 (en) Enhanced browsing using CDN routing capabilities
CN110710184A (zh) 用于为了增强的安全性和可见性通过云托管或本地网络网关安全且透明地代理saas应用的***和方法
US11258680B2 (en) Real-time scalable virtual session and network analytics
CN109521956B (zh) 一种基于区块链的云存储方法、装置、设备及存储介质
US20230216895A1 (en) Network-based media processing (nbmp) workflow management through 5g framework for live uplink streaming (flus) control
US9497262B2 (en) Systems and methods for sampling management across multiple cores for HTML injection
US11727126B2 (en) Method and service to encrypt data stored on volumes used by containers
US11533308B2 (en) Systems and methods for supporting unauthenticated post requests through a reverse proxy enabled for authentication
US20230421538A1 (en) Hostname based reverse split tunnel with wildcard support
Sharma et al. Traefik API Gateway for Microservices
JP2022083431A (ja) コンピュータ実装方法およびコンピュータシステム(境界natを用いたパケット内へのバージョンタグ付け)

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170704

A625 Written request for application examination (by other person)

Free format text: JAPANESE INTERMEDIATE CODE: A625

Effective date: 20181219

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20190225

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20190225

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20190226

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191007

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20200518