JP2006502465A - コンテンツ配信ネットワーク(CDN)で使用するためのJavaアプリケーションフレームワーク - Google Patents

コンテンツ配信ネットワーク(CDN)で使用するためのJavaアプリケーションフレームワーク Download PDF

Info

Publication number
JP2006502465A
JP2006502465A JP2003560735A JP2003560735A JP2006502465A JP 2006502465 A JP2006502465 A JP 2006502465A JP 2003560735 A JP2003560735 A JP 2003560735A JP 2003560735 A JP2003560735 A JP 2003560735A JP 2006502465 A JP2006502465 A JP 2006502465A
Authority
JP
Japan
Prior art keywords
application
server
edge
request
component
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
JP2003560735A
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 JP2006502465A publication Critical patent/JP2006502465A/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/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • 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
    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/564Enhancement of application control based on intercepted application data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/101Server selection for load balancing based on network conditions
    • 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/288Distributed intermediate devices, i.e. intermediate devices for interaction with other intermediate devices on the same level
    • 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/561Adding application-functional data or data for application control, e.g. adding metadata
    • 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

Abstract

本発明によれば、開発者は、Webアプリケーションを、高度に分散化されたエッジレイヤーと集中化されたオリジンレイヤーとの2つレイヤーに分ける。代表的な実施形態においては、エッジレイヤーは、Web層(304)、典型的には所定のJavaベースアプリケーションのプレゼンテーションレイヤーを実行するサーブレットコンテナをサポートする。必要な場合、エッジレイヤーは、オリジンサーバ上で動作するコードと通信して所定のクエストに応答する。

Description

本発明は、一般に、コンテンツ配信ネットワークで使用されるアプリケーション展開モデルに関する。
企業は、インターネットを介して顧客やパートナー、供給業者にビジネスアプリケーションを拡張することによって、事業を拡大し、効率を向上させ、新しい収益源を実現することができる。信頼できる安全なWebプレゼンスを運用するためのオペレーション上の負担を軽減する一方法は、Webプレゼンスの全部又は一部を、コンテンツ配信ネットワーク(CDN)などのサービスプロバイダへアウトソース(外注)することである。コンテンツ配信ネットワークは、コンテンツ(Webオブジェクト、ストリーミングメディア、HTML、実行可能コードなど)をエンドユーザーに代わって配信することによって、Webサイトのオリジンサーバの作業負荷を軽減するためのコンテンツサーバ及び関連制御機構の集まりである。一般的に、コンテンツサーバは、インターネットの“エッジ”に配備される。良好に管理されたCDNは、或るサイトの、Webページのコンテンツの一部又は全てを送ることによってこの目標を達成し、その顧客のインフラストラクチャに要するコストを削減すると同時に、エンドユーザーのそのサイトからのブラウジング経験を向上させる。動作時には、CDNは、リクエスト・ルーティングメカニズムを使用して、その顧客に電子的に近いCDNエッジサーバを見つけ出し、CDN宛てのリクエストを送る。CDNを使用するサイトは、CDNサービスプロバイダのアウトソースされたインフラストラクチャの拡張性、優れた性能、及び利用可能性から恩恵を得る。
また、コンテンツ配信で必要な作業をアウトソースしている企業等の多くは、事業サービスをマルチタイヤ(n層)アプリケーションとして実施している。代表的なマルチタイヤ(n層)アプリケーションの場合、ユーザーをアプリケーションへ接続するのに、ウェブベースの技術がアウター層(第1層、或いは、“プレゼンテーション”層)として使用され、残りの一層又は複数の層は、コアビジネスロジックを提供するミドルウエア、及び/或いは、そのアプリケーションを既存の企業情報システムに統合するミドルウエアを含む。Java 2 Platform、エンタープライズ Edition(J2EE(登録商標))は、この種のマルチタイヤの企業向けサービスを開発するコストと複雑さを軽減する技術の1つであり、また、関連するコンポーネントベースドモデルである。J2EEのランタイム環境は、サービス構築に使用可能な数種類のアプリケーションコンポーネントを定義する。これらは、(a) 通常Webサーバで実行され、WebクライアントからのHTTPリクエストに応答するコンポーネントであるWeb層コンポーネント(サーブレット、JSPページ、Javaビーンズ、フィルタ、Webイベントリスナーなど)、及び(b) ビジネスロジックを含み、管理された環境で実行されトランザクションのサポートを行うエンタープライズ層コンポーネント(エンタープライズ JavaBeans(EJB(登録商標))として開発されるセッションビーンズ、エンティティビーンズ、及びメッセージ駆動ビーンズなどが含まれる)。J2EEアプリケーションコンポーネント用のランタイムサポートは、所謂“コンテナ”によって行われ、WebコンテナがWeb層コンポーネントをサポートし、エンタープライズコンテナがエンタープライズ層コンポーネントをサポートする。
コンテナは、アプリケーションコンポーネントを実行し、ユーティリティサービスを提供する。J2EE準拠サーバは、アプリケーションコンポーネントに適合するための、配備、管理、及び実行各々のサポートを提供する。
インターネットのエッジでのアプリケーションの処理を可能にするため、この種のサーバサイドJavaアプリケーション及びその他のWebサービスをコンテンツ配信ネットワークなどの分散型コンピューティング環境下で展開できるフレームワークを提供できることが望ましい。
本発明の目的は、インターネットコンテンツ配信ネットワーク(CDN)などの地球規模で分散されたコンピュティングプラットフォームにアプリケーションを展開すると共にプラットフォームから実行できるようにする、エンタープライズアプリケーションのためのアプリケーション展開モデルを提供することである。
本発明のより具体的な目的は、Javaベースアプリケーション及びWebサービスを分散コンピューティングプラットフォームに展開し、エンタープライズが多層分散アプリケーションモデルを利用できるようにするフレームワークを提供することである。
本発明の別の目的は、JavaベースのWebコンテナ又はエンタープライズコンテナ或いはその両方のサポートを可能にして、アプリケーション又はアプリケーションのコンポーネントがインターネットのエッジ上で実行できるようにする、コンテンツ配信ネットワークのための展開モデルを提供することである。
本発明のより一般的な目的は、エッジサーバにおいてアプリケーションコードを実行する能力を備えたコンテンツ配信ネットワークを提供することである。
本発明の具体的な目的は、Javaサーバページ(JSP)、サーブレット、JavaビーンズなどのWeb層コンポーネントの、エンドユーザに近いインターネットエッジ上での実行をサポートし、ネットワーク待ち時間、及びコストのかかるインフラストラクチャの過剰供給の必要性を無くすと共に、任務が重要なエンタープライズアプリケーションの性能と信頼性を改善するエッジアプリケーション展開モデルを提供することである。
好ましい実施形態では、本発明は、Javaを使用可能エッジサーバを含むCDNJavaアプリケーションフレームワークの提供である。このフレームワークは、公知のCDN提供で使用されているものに類似したマッピング、負荷均一化及び管理システムを活用すると共に強化する。第1の様相では、本発明は、プレゼンテーション、即ち、n層インターネットアプリケーションのプレゼンテーション層、即ちWeb層の提供と実行を可能にする。アプリケーションサーバのサーブレットコンテナ内で実行されるJSP、サーブレット、Javaビーンズ及びカスタムタグは、エンドユーザに近いインターネットのエッジで実行される。別の実施形態では、Web層に加え、アプリケーションのエンタープライズ層の少なくとも一部又は全てが所定のエッジサーバに配置され実行される。通常、エンタープライズ層は、アプリケーションのビジネスロジックを実施すると共にローカル即ち遠隔のデータベースをサポートするエンティティビーンズ、セッションビーンズ及びメッセージ駆動ビーンズを含む。
本発明の別の様相によれば、開発者は、Webアプリケーションを、高度に分散化されたエッジレイヤーと集中化されたオリジンレイヤーとの2つレイヤーに分割するのが好ましい。代表的な実施形態では、エッジレイヤーは、Webコンテナをサポートし、これにより、Javaサーバページ(JSP)、サーブレット、Javaビーンズ、Javaヘルパークラス及びタグライブラリなどの技術がサポートされる。エッジとオリジンとの間の通信には、RMIやSOAPなどの慣用の通信プロトコルを使用するのが好ましい。JDBCなどの、HTTPを介してトンネルさせることができる任意のプロトコルをサポートできる。
好ましくは、アプリケーションは、エッジサーバ上で、自身のJava仮想マシン(JVM)内の自身のアプリケーションサーバインスタンス内で動作される。好ましい実施形態では、コンテンツ配信ネットワークサービスプロバイダが、少なくとも1台のエッジサーバを有するCDNを動作させ、このエッジサーバは、複数のアプリケーションサーバ/JVMインスタンスを含んでいる。各インスタンスは特定のCDNカスタマと関連づけられている。複数のアプリケーションサーバインスタンスによるリソースの利用度がモニタされると共に、所定のリソース(メモリ、CPU、ディスク、ネットワークI/Oなど)を過度に利用しているアプリケーションサーバプロセスは終了される。リソース管理に加え、各アプリケーションサーバ/JVMプロセス内で動作しているアプリケーションにセキュリティ上の拘束を加えるのが好ましい。これは、サンドボクシングと呼ばれる場合もある。これらの制約の例としては、ファイルシスムの読出/書込の制約、ソケットの開放と使用に関する制限、スレッドの開始、停止及び変更に関する制約、及びアプリケーションが所定のアプリケーションサーバクラスを読むのを阻止するコード制約が挙げられる。好ましくは、所定のアプリケーションは他のアプリケーションに属するコードを動作させたりロードすることができず、他のアプリケーションに属するデータをロードすることができず、ファイルシステムの上の任意のファイルを読んだり書いたりできず、ネイティブカーネルコールしたりネイティブコールを行うライブラリをロードしたりできない。
エッジにWebコンテナを提供することにより、本発明は、n層インターネットアプリケーションのWeb層全体までオフロード(off-load)する能力を提供する。アプリケーションサーバのサーブレットコンテナ内で実行されているWebコンポーネントは、エンドユーザに近いインターネットのエッジ上で実行できる。
例示的な動作では、エンドユーザがCDNエッジサーバに向けられるリクエストを行う。リクエストがJava処理を要求し、その特定のアプリケーションについての最初のリクエストである場合、アプリケーションがオリジンから取り出され、アンパックされ、アプリケーションサーバにロードされる。アプリケーションのコンポーネント(Webアプリケーションアーカイブ即ち「WAR」ファイルなど)がエッジサーバ上に既にキャッシュされている場合、応答を発生するために適切なサーブレット又はJSPページが使用される。必要に応じて、エッジサーバは、アプリケーションの内、オリジン上で動作させる必要がある部分、例えば、中央データリソース或いは他のエッジ配置不可能(non-edgeable)サーブレットへのアクセスを必要とする部分についてはオリジンサイトに連絡を取る。ページの内、エッジからのサーヒスを最も良好に受けられる部分はエッジ処理され、オリジンで処理する必要がある部分はオリジンで処理され、結果はエッジサーバからエンドユーザに返送される。
アプリケーションのコンポーネントが必要に応じてエッジサーバに分配される。別の実施形態では、そのアプリケーション或はコンポーネントの予想される将来における必要性の予測に基づき、或は故障許容の目的から、アプリケーション、或はアプリケーションコンポーネントを事前配備しておくことが望ましい。従って、所定のアプリケーション或はそのコンポーネントが、エンドユーザーのリクエストがそのサーバで受信されたかどうかに関係なく、特定のエッジサーバへ配信され、初期化され、起動される。
以上、本発明に関係のある幾つかの特徴を概説した。しかし、これらの特徴は例示に過ぎないと解釈すべきである。以下に述べるように、開示された発明を異なる方法で適用するか、或いは発明を変更することによってその他多くの有利な結果が得られる。
本発明及びその利点は、添付の図面に関連して行われる以下の詳細な説明を参照することによってより完全に理解できる。
本発明は、以下に概説するような、インターネットCDNアーキテクチャ及び機能性を強化するJavaアプリケーションフレームワークに関するものである。なお、Javaプログラミング規約及びJ2EEアーキテクチャの知識があるものと推定する。J2EEについての追加の情報については、Sun Microsystemsから入手可能な、Java 2 Platform エンタープライズ Edition Specification v1.3 (2001年7月)を参照。また、オンラインコピーは、URL:http://java.sun.com/j2ee/j2ee−1 3−fr−spec.pdfから入手可能である。
インターネットコンテンツ配信ネットワーク(CDN)を利用してディジタルコンテンツ(HTTPコンテンツ、ストリーミングメディア、及びアプリケーションなど)を配信することは従来技術として知られている。CDNは、第三者コンテンツプロバイダに代わってコンテンツを効率的に配信するように配置された、地理的に分散されたコンテンツ配信ノード群のネットワークである。一般的に、CDNは、コンテンツ配信インフラストラクチャ、リクエスト・ルーティングメカニズム、及び分配インフラストラクチャの組合せてとして実施される。コンテンツ配信インフラストラクチャは、通常、リクエスト中のエンドユーザーへコンテンツを配信するための、戦略拠点(例えば、インターネットアクセスポイント、インターネットPoint of Presenceなど)に配置された「代理」オリジンサーバのセットから成る。リクエスト・ルーティングメカニズムは、Webコンテンツ配信に対してはクライアントの応答時間を最小にし、またストリーミングメディア配信に対しては最高品質を提供できるように、コンテンツ配信インフラストラクチャの中のサーバをリクエスト中のクライアントに割当てる。分配インフラストラクチャは、コンテンツをオリジンサーバから代理サーバへ移すためのオンデマンド或いはプッシュ式メカニズム群から成る。効果的なCDNの場合、アクセス頻度の高いコンテンツは、リクエストしているクライアントにとって最適な代理サーバから送信される。典型的なCDNの場合、単一のサービスプロバイダが、リクエストルータ、代理サーバ、及びコンテンツディストリビュータを動作させる。更に、そのサービスプロバイダは、コンテンツの発行組織との間で事業関係を確立し、それらのオリジンサーバーサイトに代わって機能し、分散型配信システムを提供する。
図1に示すように、インターネットコンテンツ配信インフラストラクチャは、通常、リクエスト中のエンドユーザー119へコンテンツのコピーを配信するための、戦略拠点(例えば、インターネットアクセスポイントなど)に配置された一組の“代理”オリジンサーバ102を含む。代理オリジンサーバは、例えば、2000年8月9日付の「HTTPにおける代理サーバの条件(Requirements for Surrogates in the HTTP)」と題するIETFインターネットドラフトに定義されている。なお、このドラフトの内容を本明細書の一部を構成するものとしてここに援用する。リクエスト・ルーティングメカニズム104は、コンテンツ配信インフラストラクチャのサーバ102をリクエスト中のクライアントに割当てる。分配インフラストラクチャは、コンテンツをオリジンサーバから代理へ移すためのオンデマンド或いはプッシュ式メカニズムから成る。CDNサービスプロバイダ(CDNSP)は、何組かの代理オリジンサーバをグループ或いは所謂“リージョン”として組織化できる。この形態の配置の場合、CDNリージョン106は、通常、一以上のコンテンツサーバの組を含み、LANなどの共用バックエンドネットワークを共有し、かつインターネットアクセスポイント或いはその近くに設けられる。そのため、例えば、典型的なCDNリージョンは、インターネットサービスプロバイダー(ISP)のポイントオブプレゼンス(PoP)108内に共存することができる。代表的なCDNコンテンツサーバは、オペレーティングシステム(Linux、Windows NT、Windows 2000など)を動作させ、かつCDNアプリケーション及びコンテンツ配信ネットワークコンテンツ(HTTPコンテンツ、ストリーミングメディア及びアプリケーションなど)に適したRAM及びディスク記憶装置を備えたPentiumベースのキャシュ装置である。この種のコンテンツサーバは、それらがインターネットの所謂アウターリーチ(外側末端)即ち「エッジ」、或いはその近くに配備されるため、「エッジ」サーバと呼ばれることがある。CDNには、通常、ネットワークとサーバの負荷を監視するネットワークエージェント109も含まれる。これらのネットワークエージェントは、通常、第三者データセンター或いはその他の場所に共存している。マップメーカ(Mapmaker)ソフトウエア107は、ネットワークエージェントから生成されるデータを受信し、IPアドレス(クライアント側ローカルネームサーバーのIPアドレスなど)を動的にCDNリージョンに対応付けするためのマップを定期的に作成する。
コンテンツは、例えば、参加コンテンツプロバイダーサーバで動作するコンテンツマイグレータ或いはリライトツール106を使用して、CDNから配信するために識別がなされる。ツール106は、CDNSPドメインを指示するため、埋め込みオブジェクトURLをリライトする。そのようなコンテンツへのリクエストは、「最良の」リージョンを識別し、次に、過負荷状態でなく、かつリクエストされたコンテンツをホストできる可能性が高い、該リージョン内のエッジサーバを識別するため、CDNSP管理下のDNSを通して処理される。コンテンツプロバイダ側マイグレーション(ツール106を使用)を使用する代わりに、参加コンテンツプロバイダは、単に、DNSディレクティブ(CNAMEなど)によってCDNSPにドメイン全体(或いはサブドメイン全体)にサービスを行うことを指令する。いずれの場合にも、CDNSPは、CDNコンテンツサーバが、該CDNによってサービスされているオブジェクトに対するリクエストをどの様に取り扱うかを決めるため、オブジェクト専用メタデータを該CDNコンテンツサーバに供給する。本明細書で使用されているメタデータという語は、オブジェクト(コヒーレンス情報、オリジンサーバ識別情報、負荷バランス情報、顧客コード、その他制御コード、など)用の制御オプション及びパラメータのセットを意味し、これらの情報は、構成ファイル経由、HTTPヘッダーで、或いはその他の方法で、CDNコンテンツサーバへ提供される。コンテンツプロバイダは、この方法でCDNから送られるオブジェクトのUniform Resource Locator (URL)を変更する必要はない。例えば、エンドユーザーに、あるサイトへアクセスさせ、そのURLを選択させることによって、そのオブジェクトに対するリクエストが出されると、顧客のDNSシステムは、(URL中の如何なるドメインに対しても)ネームクエリーをCDNSPのDNSリクエスト・ルーティングメカニズムに送る。エッジサーバが識別されると、ブラウザはオブジェクトリクエストをサーバに渡す、サーバは、構成ファイル或いはHTTPレスポンスヘッダーから供給されるメタデータを適用し。オブジェクトの取り扱い方法を決定する。
図1にも示されるように、CDNSPは、1台以上のサーバの組を含むメタデータ伝送システム116を操作して、メタデータをCDNSPコンテンツサーバへ供給できるようにする。システム116は、少なくとも1台のコントロールサーバ118、及び1台以上のステージングサーバ120a―120nを含み、ステージングサーバの各々は、通常、HTTPサーバ(Apacheなど)である。メタデータは、(例えば、セキュアなエクストラネットアプリケーションを使用する)CDNSP或いはコンテンツプロバイダによって コントロールサーバ118へ供給され、そして定期的に、ステージングサーバ120a―120nへ配信される。ステージングサーバは、メタデータを、必要に応じて、CDNコンテンツサーバへ配信する。
図2は、CDNコンテンツエッジサーバの代表的なマシン構成を示す。通常、コンテンツサーバ200は、オペレーティングシステムカーネル202、ファイルシステムキャシュ204、サーバマネージャソフトウエア206、TCP接続マネージャ208、及びディスク記憶装置210を動作させるキャシング装置である。サーバマネージャソフトウエア206は、特に、CDNがサービス中のポピュラーなオブジェクト用の「ホット」オブジェクトキャシュ212を生成し管理する。該ソフトウエアは、リクエストルーティング、インリージョンロードバランシングなどの他のCDN関連機能も提供する。例えば、HTTPキャシュとしての動作においては、コンテンツサーバ200は、エンドユーザーのコンテンツに対するリクエストを受信し、リクエストされたオブジェクトがホットオブジェクトキャシュ或いはディスク記憶装置に在るかどうか判断し、(存在する場合)HTTP経由でリクエストされたオブジェクトを提供し、或いは、別のコンテンツサーバ或いはオリジンサーバへの接続を確立して、キャシュミスが生じた場合にリクエストされたオブジェクトの検索を試みる。通常、エッジサーバは、「プル」方式で作動し、キャシュへの最初のリクエストの際に初めにオブジェクトがプルされるが、オブジェクトが存在しないため、キャシュミスが生じる。
本発明は、Java使用可能エッジサーバから成るCDN Javaアプリケーションフレームワークの提案である。上記図2に示したようなエッジサーバ(マシン)には、アプリケーションサーバコードが含まれていると仮定する。よく知られている通り、アプリケーションサーバは、そこにアプリケーションを配備可能なソフトウエアプラットフォーム(ミドルウエアとも呼ばれる)である。アプリケーションサーバは、アプリケーションに対して有用なユーティリティサービスと機能群を提供する。現在、数種類のアプリケーションサーバ、Javaベース(J2EE)、及びマイクロソフト.NET.がある。 Javaは、勿論、プログラミング言語の一種でありプラットフォームの一種で、また、このプログラミング言語は、オブジェクト指向で、かつプラットフォーム非依存である。Javaで書かれたアプリケーションは、Javaバイトコードへ翻訳された後、そのコードは、Java Virtual Machine (JVM)上で実行される(によって解釈される)。本発明の望ましい実施形態の場合、CDN内のエッジサーバには、Javaアプリケーション或いはアプリケーションコンポーネントを、インターネットのエッジから実行可能にするためのJavaアプリケーションサーバと付加的コードが設けられている。フレームワークは、図1に示すCDN(これは一例にすぎない)などの既知のCDN提案で使用されるマッピング、ロードバランシング及びマネジメントシステムを利用し強化する。第1実施形態の場合、アプリケーションサーバは、サーブレットコンテナ(Apache Tomcatなど)で、この場合、本発明は、n層JavaベースアプリケーションのWeb層のオフロード及び実行を可能にする。JSP、サーブレット、Javaビーンズ及びカスタムタグは、アプリケーションサーバのサーブレットコンテナ内で実行されるものであるが、エンドユーザーの近いインターネットのエッジで実行される。Web層は、通常、J2EEサーバのフロントエンドである。別の実施形態の場合、Web層のほかに、そのアプリケーションのエンタープライズ層の少なくとも一部或いは全部も配備され、或るエッジサーバ上で実行される。エンタープライズ即ち「ビジネス」層は、通常、アプリケーション専用ビスネスロジックをホストし、トランザクションマネージメント、コンカレンシーコントロール、セキュリティなどのシステムレベルのサービスを提供する。
本発明は、J2EE準拠アプリケーションをエッジ−オリジンサーバ環境で動作させることができ、有利である。特に、本発明のフレームワークは、アプリケーションをオリジンとCDNとの間で分配することにより、分散コンピューティングプラットフォームを強化でき、好ましい。上記の通り、通常、アプリケーションには、Web層の中にサーブレット、JSP、フィルタ、タグライブラリ、及びJavaビーンズ/ヘルパークラスが含まれ、また、エンタープライズ層にはエンタープライズビーンズが含まれる。エッジサーバのWeb層(Webコンテナ内など)及びオリジンサイトのエンタープライズ層(エンタープライズコンテナなど)の実行により、エンタープライズ層からWeb層が分離される様子が図3に示されている。本実施形態においては、アプリケーションのエッジ−イネーブルドバージョンは、通常、2つの協調アプリケーションであるエッジ側アプリケーション及びオリジン側アプリケーションを含む。Web層のコンポーネントは、Web Archive (WAR)としてパッケージされ、エンタープライズ層のコンポーネントは、エンタープライズ Archive (EAR)としてパッケージされる。上記の通り、これら2つのアプリケーションの生成には、通常、アプリケーションに関する知識に基づいた判断、つまり、どのプロセスをオリジンで、そしてどのプロセスをエッジで実行すべきかについての判断が要求される。
ただし、本発明のフレームワークは、エンタープライズ層を、オリジンのエンタープライズコンテナで動作させるものだけに限られない。図4に示すように、エンタープライズ層は、エッジサーバにも分散され、アプリケーションサーバ400のWeb層でも実行される。本実施形態では、エンタープライズ層(例示のためのみ)は、セッションビーンズ402、エンティティビーンズ404及びメッセージ駆動ビーンズ406のように一以上のエンタープライズJavaビーンズ(EJB)エレメントを含む。エンタープライズ層をサポートするため、セッションビーンズをグローバルにコヒーレントな状態に保っておくことが望ましい。エンティティビーンズを使用し、読取専用データベースを(エッジサーバ位置で)複製すること、及び(SOAPへのJDBCの使用などにより)エンタープライズデータベースへ透過トンネリングを行うことができる。
代表的な実施形態の場合、アプリケーションサーバはIBM WebSphere 5.0アプリケーションサーバ(WAS)である。IBM WebSphereは、IBMから入手可能なJVM(Java Virtual Machine)1.3.1を使用している。図3では、対照的に、Web層は、Weblコンテナ300で実行される。この例のWeb層は、JSPページ302、サーブレット304、及びJavaビーンズ306などのエレメントを含む。代表的Webコンテナは、Apache Tomcatサーブレットコンテナによって提供される。このコンテナは、Sun Microsystemsから入手可能な、JDK 1.3.1_04の中でJVMを使用する。勿論、これらのコンポーネントは例示に過ぎず、限定を意味するものではない。Webコンテナ或はエンタープライズコンテナはCDNエッジサーバで、多重インスタンス下で、また、以降に述べる通り、アプリケーションを分離した状態で実行することが望ましい。
特に、各アプリケーションは、JVMなどで実施される、サンドボクシングメカニズムを介して、隔離された環境で実行されることが望ましい。一般的に、サンドボクシングは、各アプリケーションサーバプロセスのリソース(CPU、メモリー、ディスク、ネットワークI/Oなど)の利用度を監視することによって行われる。アプリケーションサーバプロセスがリソースを過度に利用していると、プロセスは終了され、新しいアプリケーションサーバが始動される。或るアプリケーションサーバが、過度のリソース利用が原因で、複数のリスタートを誘発すると、アプリケーションサーバは、次のリスタートを行うことが阻止される。CDNカスタマごとに別のアプリケーションサーバプロセスが使用されることが望ましい、何故ならば、これによって、或るカスタマのアプリケーションが別のカスタマのアプリケーションからリソースを盗むことを防止できるからである。これにより、アプリケーションサーバのリスタートも隔離される。さらに、各アプリケーションサーバプロセスは、その自身のサンドボックスドディレクトリ内で実行されることが望ましい。このディレクトリ外ではファイルの読み書きができない。これによって、或るカスタマのアプリケーションが別のカスタマのアプリケーションに干渉したり、或るカスタマのアプリケーションが別のカスタマのデータをアクセスしてしまうことを防止できる。リソースマネジメント及びサンドボクシングの詳細を以下に述べる。
図5は、エッジサーバアーキテクチャを示す。サーバ500は、オペレーティングシステム(Linuxを改良したものなど)502を搭載した汎用ハードウエアで実行することが望ましい。Javaスタックは、Java Virtual Machine(JVM)504、及び、望ましくはJ2EE準拠アプリケーションサーバ506を含む。(図3に示されるような)Web層コンポーネントに対して、アプリケーションサーバ506は、上記の通り、Apache Tomcatサーブレットコンテナによって実施される。(図4に示されるような)Web層及びエンタープライズ層コンポーネントに対して、アプリケーションサーバ506は、IBM WebSphere Application Server(WAS)によって実施される。勿論、これらの製品は例示に過ぎない。本発明に従い、フレームワーク(JVMが望ましい)は、アプリケーション510a―510nの各々に対して、アプリケーションサンドボックス508を生成し保守する。或るカスタマがアプリケーション510aを実行する間に、別のカスタマはアプリケーション510bを実行できる。一般化すると、エッジサーバ500は、複数の別々に実行可能なアプリケーションをサポートする。エッジサーバ500は、キャシュ512を実装し、アプリケーションコンポーネントが使用される時期を制御するカスタマ構成データ514を保守する。サーバマネージャ516は、カスタマ構成データを使用して、キャシュをオーバレーし制御する。アプリケーションサンドボクシングは、アプリケーション同士が互いに害を加えたり、アプリケーションがサーバに害を与えたり、或いは、ほかのカスタマのコード及びデータにアクセスすることを防止する。上記の通り、サンドボクシングは、リソース割当を容易にし、サーバがCPU、RAM、ディスク、帯域幅及びカーネルの使用を制御し監視できるようにする。これら及び他の機能を容易にするため、システムマネジメント518及びシステムセキュリティ520モジュールも設けられている。
図6は、エンドユーザークライアントブラウザ600が、どのようにしてコンテンツ配信ネットワークエッジサーバー602及びオリジンサイト604と対話して、ネットワークのエッジにおいてアプリケーション(また、特に、それのWeb層コンポーネント)の実行を容易にしているかを示す。この例では、アプリケーションのWeb層のコンポーネントが、エッジサーバ上への配備と実行に使用可能であると仮定する。上記の通り、エッジサーバ602は、Javaプロセッサ606、キャシュ608、及び構成データ610を備えている。オリジンサイト604は、Javaアプリケーションサーバ612を実行し、データソース614を含む。プラットフォームを活用するため、企業は、インターネットCDNサービスプロバイダへのインターネットドメイン名を示すDNSエイリアス(canonical name、即ちCNAMEなど)を作成する。従って、カスタマのドメイン名(www.site.comなど)の検索は、エイリアスドメインのIPアドレスの検索になる。CDNSPのDNSはこれらのクエリーに回答する責任があるので、CDNSPは、最適なエッジサーバ、この例では、エッジサーバ602のIPアドレスを返す。これがステップ(1)である。どのサーバがそのユーザーに回答するかについての判断は、ネットワークの混雑度、ネットワークの接近度合、サーバの負荷、及び帯域幅の利用度に基づく。ステップ(2)では、エッジサーバ602は、このリクエストに対して、このカスタマの構成データ610を適用し、リクエストに対してこのエッジサーバのローカルキャシュ608或はJavaプロセッサ606を使用してサービスするべきか、リクエストを(トンネリングなどで)カスタマのオリジンサーバ604へ送るべきかを決定する。こうして、エッジサーバは、クライアントからリクエストを受信したとき、まず、そのリクエストを適切なカスタマ構成ファイルと組み合わせることが望ましい。カスタマ構成ファイルが、Javaプロセッシングをそのリクエストに関連付ている場合、Javaプロセッサ606が関与する。そのリクエストがサーブレット或はJSPページならば、Javaプロセッサ606は、そのリクエストを満たす。これがステップ(3)である。特に、WARファイルがすでにエッジサーバ602に在るアプリケーションからリクエストを受信した場合、Javaプロセッサ606は、適用可能な(例えば)サーブレット或いはJSPページを使用して、リクエストへの応答を生成する。リクエストを適切にサーブレットにマップするために、標準配備記述子(web.xmlなど)を使うことができる。これが、この特定のウェブアプリケーションを使う最初のリクエストである場合、アプリケーションコンポーネント(WARファイルなど)が、オリジンサイト或いはCDNステージングエリアから取り出される。最適化のために、最初のリクエストをオリジンサイトへトンネルして処理することができ、一方、エッジサーバは、以降のリクエストを取り扱うために非同期的にWARファイルを取り出す。サーブレットがデータリソースを必要とする場合、そのリソースをキャシュ608から取得できる。これがステップ(4)である。或いは、そのサーブレットが(恐らく、エッジ配置不可能な)別のサーブレットへリクエストを送る場合、エッジサーバ上のJavaプロセッサ606は、オリジンサイトと連絡をとる。ステップ(5)に示される通り、エッジサーバとオリジンサーバとの間の通信は、RMI、SOAP、或いはHTTPを介して明示的に行われる。RMIは、エッジアプリケーションがリモートオブジェクトを、ローカルオブジェクトのように使用することを可能にする。SOAPは、リモートオブジェクトと通信するための、XMLベースのRPCメカニズムを提供する。或いは、サーブレットが別のフォーマットのHTTPリクエストを介してデータを検索する。CDNサービスプロバイダは、XMLデータをクエリーするのに使用可能なクラスを提供するのが望ましい。検索されたデータは、キャシュ608にもキャシュされるので、以降のリクエストに関しては層間での待ち時間が無くなる。ステップ(6)に示されているように、エッジサーバ602は、リクエストの処理を完了し、クライアントへの応答を返す。実行済のサーブレットがメモリーに残り、そのエッジサーバへマップされる次のユーザーからのリクエストに対して準備されることが望ましい。
図7は、エッジでの処理を容易にするためのアプリケーションの開発と配備の一方法を示す。コンテンツ配信ネットワークのエッジサーバで実行するために設計されたアプリケーション(或いはそのコンポーネント)は、「エッジ配置可能(edge enabled)」アプリケーションと呼ばれることがある。図7に示すように、アプリケーション700は、ソフトウエア開発フェーズを経て開発された後、例えば、スプリッタ或いはその他の開発ツールを実行して、2つの部分に分割される。例えば、エッジWARファイル702及びオリジンWARファイル704が生成される。例示的実施形態では、エッジ配置可能コンポーネント702が次に用意され、CDNエッジサーバ(群)706上に配置される、同時に、完全なアプリケーションが用意され、オリジンサイト708に配備される。本発明では、どのコンポーネントがエッジ配置可能で、どのコンポーネントが中央リソースに依存しているかを開発者が指定できる便利なツールが使用可能である。アプリケーション開発者はn層設計原則を用いてアプリケーションを作成することが望ましい。当然、アプリケーション開発プロセスでは、単体のオリジナルWARファイルの生成は不要である。何故ならば、エッジ及びオリジンコンポーネントは、最初から個別に設計し構築できるからである。
以下は、エッジにWeb層だけが位置する実施形態においてフレームワーク用アプリケーションをエッジ配置可能にする上での付加的ガイドラインである。この実施形態では、エンタープライズビーンズはオリジンで実行され、そしてエンタープライズビーンズに対してのコール(ホーム或いはリモートインタフェースの使用を含む)が、エッジに位置するフィルタ、サーブレット、ヘルパークラス、ビーンズに存在しないことが望ましい。データベースなどオリジンベースのシステムリソースに対してのダイレクトコールが、エッジに位置するサーブレット、ヘルパー、ビーンズには存在しないことが望ましい。ただし、このような場合、好ましくはType 3 JDBCドライバを使用してデータベースの接続性を提供する。また、サーブレットコンテキストを必要とするフィルタ、サーブレット、JSPは、他のウェブアプリケーションのServletContextへアクセスしないことが望ましい。この実施形態では、Webアプリケーションは、状態を記憶するために、ServletContext属性を使用できる。セキュリティ上の理由で、或る種のウェブコンポーネントはオリジンで実行することが必要になるであろう。ウェブアプリケーションについては、その配備記述子にそのウェブアプリケーションが「分配可能」であることを示すマークを付けるなど、Servlet Specification 2.3に記載されている「分配可能」規則を遵守することが望ましい。あるリクエストに応じて進められる実行シーケンスの中で、Webコンポーネントは、このリクエストに応じて全てオリジンで、或いは全てエッジで実行されることが望ましい。リクエストディスパッチング(include/forward)を使用しているウェブアプリケーションのエッジコンポーネントは、別のエッジウェブアプリケーションコンポーネントへのみディスパッチ可能であることが望ましい。オリジンコンポーネントについても同様である。ただし、ソース或はターゲット(ディスパッチされた)エッジコンポーネントは、オリジンと自由に連絡してデータを送信したり、データを検索したりできる。
実行シーケンスは、通常、リクエストに対しての応答に関与するフィルタ、サーブレット、及びJSPから構成されるが、オリジンへの接続(HttpURLConnectionなど)を介して使用される外部リソースを含まないことが望ましい。同一のリクエストと応答引数は、実行されるフィルタによって共用され、また、この実行シーケンスを形成するために互いに含む、或は送信するサーブレット及びJSPによって共用されることが望ましい。この定義は動的である、何故ならば、サーブレットは、エッジ側及びオリジン側の実行シーケンスに矛盾なしに含めることができるからである。
アプリケーションの中の妥当な実行リクエスト、及びこれらの実行シーケンスに従わせるリクエスト群についての知識があれば、開発者はアプリケーションをエッジ配置可能にすることができる。ある実施形態においては、このプロセスには、コンポーネントがオリジン専用、エッジ専用、或は両用であるかを識別することが含まれる。オリジン専用コンポーネントは、オリジンでのみ、望ましくは変更せずに実行可能である。エッジ専用コンポーネントは、エッジでのみ実行できる。両用の指定は、オリジン専用サーブレットへの実行パス上、及び全てのサーブレットがエッジ配置可能である実行パス上に存在し得るサーブレットに対して適用される。この場合、サーブレットは、オリジンにも、エッジにもインストールされる必要がある。この両用のカテゴリーは、エッジ及びオリジンに於いて類似の機能を提供するサーブレットにも適用される。いくつかのコンポーネントは、エッジ及びオリジンコンポーネントに分割しておくことが最良である。
リクエストのセット及び対応する実行シーケンスを構築するには、配備記述子(web.xml)を使用して、それらに対応するサーブレットマッピング値及びURLパターンを取得できる。これらエッジ及びオリジンコンポーネントに分割すべきコンポーネントに対して、同じタイプのエッジ側コンポーネント及び一以上のオリジン側サーブレットを生成することが望ましい。これは、オリジン側の機能を除いてエッジ側コンポーネントを生成すること、及びオリジン側システムコールにサーブレットファサードを使用することによって行うことができる。エッジ、オリジン両方で必要とされるコンポーネントは両方とマークし、残りのコンポーネントはエッジとマークする。
次に、エッジディスパッチャが構築される。エッジディスパッタヤは、エッジにおけるウェブコンポーネントへの単一エントリポイントである。このディスパッチャサーブレットは、入力リクエストを調べて、それをオリジンへプロキシするが、エッジのサーブレット/JSPヘ送るかを決定する。事前にエッジ配置可能とされたコンポーネント(即ち、ディスパッチャを有しない)が既に単一エントリポイントを持っていれば、ディスパッチャ機能をこのエントリポイント自身へ組み込むことができる。このコンポーネントを構築するには、各リクエストセット及び対応する実行シーケンスを考える。実行シーケンスがオリジン専用とマークされたコンポーネントを含んでいる場合、対応するリクエストは、オリジンへプロキシされなければならない(また、エッジにあるフィルタは、これらのリクエストを無視するように構成されなければならない)。そのようにしないと、リクエストは、エッジで満たされ、エッジディスパチャは、リクエストを実行シーケンス中の最初のエッジ側サーブレット或はJSPへ送る。
更に、アプリケーションをエッジ配置可能にするには、web.xml配備記述子の配備情報を一部、特に、サーブレットマッピイング値とフィルタマッピング値を変更して、全てのリクエストがエッジディスパッチャを介して送られることを確実にする必要がある。さらに、フィルタは、オリジンへプロキシされるリクエストに対して2回(例えば、最初にエッジで、次にオリジンで)適用しないことが望ましい。或いは、エッジフィルタとオリジンフィルタを設定することもできる。ウェブアプリケーションは、それの配備記述子に「分配可能」とマークする必要性を含め、Servlet Specification 2.3掲載の「分配可能」規則を遵守する必要がある。配備記述子の中の配備に関する情報(特に、サーブレットマッピング値及びフィルタマッピング値)を変更して、全てのリクエストがエッジディスパッチャを介して送られること、及びフィルタが正しく適用されることを確実にする必要がある。
通常、エッジディスパッチャは、リクエストを受信し、それの取扱い方法を決定する。一例に過ぎないが、図8に示すように、リクエストはエッジコンポーネント802によって、エッジで完全に処理される。或いは、ディスパッチャ800は、プロキシとして働き、リクエストをオリジン804へ送信する。そして、オリジンがエンタープライズビーンズ806などのオリジンプロセスをコールし、このビーンズがプロキシに応答を返し、プロキシがクライアントへ応答を返す。分割シナリオにおいては、ディスパッチャ800は、リクエストを、エッジ側コンポーネント810へ送信する。エッジコンポーネント810がオリジン側スプリットコンポーネント812と通信し、このコンポーネントがビーンズ806などのオリジンプロセスをコールする。応答は、エッジ側コンポーネント810を介して返される。
上記アプローチでは、エッジ(プロキシ)のサーブレット/JSPは、引数を配列して、オリジン(ブローカ)のサーブレットへ送信すると、オリジンが引数を渡し、必要な方法の呼出しを行う。次に、ブローカは、戻り値を配列し、これをプロキシへ返す。ブローカは、オリジン側の機能をエッジへエクスポートし、該機能のファサードとして働く。特に、エッジサーブレット/JSPとエンタープライズビーンと間の全ての通信は、オリジンのサーブレットファサード経由が望ましい。この設計の代案は、エッジとオリジンにおける全てのサーブレットファサードとの間を媒介する単一のオリジン側サーブレットを設けることである。これが、エッジ−オリジン間リクエスト用の単一のエントリポイントを提供する。オリジンディスパッチャは、そうしなければオリジンに存在するであろう、全てのサーブレットファサードの全機能をそれ自体で提供できる。
以下、本発明のフレームワークへ統合するための、Javaアプリケーションサーバへの変更、特にそのサーブレットコンテナコンポーネントへの変更について説明する。このアプリケーションサーバは、エッジサーバで実行されるが、これは、上記の通り、汎用的なハードウエアとオペレーティングシステムを搭載したマシンである。図9に示すように、望ましいアーキテクチャがアウトオブアーキテクチャ経由で実施され、エッジサーバプロセス900及び複数のJavaアプリケーションサーバプロセス902a―902nを含む。コンテンツ配信ネットワーク内のエッジノードに、図8に示したように、それぞれがアプリケーションサーバインスタンスを含む複数の子プロセスを産み出すことができる、単一のエッジサーバアプリケーションを有することが望ましい。各子プロセスは、Java Edge Services API (JESAPI)用に構成されることが望ましい。これは、本発明によれば、Javaアプリケーションサーバ用の統合フレームワークである。一般的に、JESAPIは、エッジサーバマネージャプロセスをアプリケーションサーバインスタンスにインタフェースし、各種の管理機能を容易にする、即ち、WAR及びEARファイルの始動、停止、再ロード、各種アプリケーションサーバインスタンスの状態の監視、アプリケーションサーバインスタンスによるリソースの利用度の監視、各インスタンスからのデータの収集、プラットフォーム使用についてのレポート作成、請求書発行を行うことを容易にする。図9に示すように、HTTP/HTTPSリクエストは、まず、エッジサーバプロセス900に接続する。エッジサーバプロセス900は、そのリクエストを、カスタマ構成データからのメタデータ構成に指定されていることが望ましい、コンテキストパスへマップする。エッジサーバプロセス900は、次に、ファイルシステム上の関連ウェブアプリケーションアーライブ(WAR)を取り出し、アンパックして、アーカイブをインストールする。最後に、エッジサーバプロセスは、リクエストがアプリケーションサーバインスタンスによって取り扱われるように変更を行い、ソケットを使用してこれをプロキシする。さらに、エッジサーバプロセス900は、各JESAPIアプリケーションサーバ子インスタンスとの双方向通信を用いて、制御データ及びリソース利用度などの情報を転送することが望ましい。
図10は、Javaアプリケーションサーバインスタンスを示す。Javaアプリケーションサーバ子プロセス1000には、このアプリケーションサーバのコアロジック1002を含んでおり、JESAPIサポート1004に対して有効にされている。アプリケーションラッパー(wrapper)1006のプロセスコンポーネントは、このアプリケーションサーバ専用である。これの目的は、プロセスの各種コンポーネントを統合し編成することである。JVM/JDK1008は、変更がない場合、慣用のものである。JVM内の外部共用オブジェクトは、アプリケーションサーバプロセス1002で行われるシステムコールをインターセプトし、以下に詳しく述べる通り、リソースの利用度を監視し、セキュリティアクセスチェックを実行する。JESAPI1004は、一組のJavaクラス及びネイティブライブラリを含み、また、Javaアプリケーションサーバプロセス1002用のコア統合フレームワークを定義することが望ましい。JESAPIは、アプリケーションサーバプロセス1002に依存して与えられたjesapiBaseアブストラクトクラスを拡張するカスタムJESAPI実施単独オブジェクトを提供することが望ましいが、これに限定されるものではない。
アプリケーションラッパー1006は、アプリケーションサーバプロセス1002用のブートロジックとしての機能を果たす。本ラッパー1006は、アプリケーションサーバのタイプに合わせてカスタマイズされ、該プロセスの全ての種類のコンポーネントを接続する“glue”コードとしての役割を果たす。ラッパーコンポーネント1006は、変化するであろうアプリケーションタイプ専用のJESAPIインプリメンテーションシングルトンを提供する。特に、ラッパー1006は、JESAPI1004を初期化し、アプリケーションサーバプロセス1002の必要な全てのランタイム構成を実行する。サーバを起動し、サーバがリクエストを処理する準備ができた時点でこれをJESAPIに知らせる。これはアプリケーションへのエントリポイントなので、ラッパーは、JESAPIとアプリケーションサーバを、エッジサーバプロセス(図9のエレメント900)(引数、Javaシステムプロパティなどの形態)によって供給されたデータで初期化する必要がある。このデータには、例えば、アプリケーションサーバインスタンスid(JESAPIが使用する)及び、HTTP接続時にサーブレットコンテナを取り付けるのに必要なソケットポートが含まれる。アプリケーションラッパー1006は、HTTPソケット接続だけをアクセプトするようにエッジサーバを構成することが望ましい。ある例示的実施形態では、アプリケーションサーバプロセスは、ローカルループバックホスト宛て接続、及びエッジサーバプロセスによって指定されるポートでの接続をアクセプトする必要がある。さらに、アプリケーションラッパーは、プロトコル操作及びロギングなどの統合に必要とする全てのハンドラーを提供しアプリケーションサーバに登録する。アプリケーションラッパーは、各アプリケーションサーバのログイベント(サーバ及びウェブアプリケーションごと)を受信し、これをJESAPIへ回送することが望ましい。アプリケーションサーバによって提供されるログ取扱APIは、ログメッセージを発行した同じスレッド内でそのハンドラーを起動することが望ましく、またこのスレッドはこのメッセージをJESAPIへ送る。アプリケーションサーバログメッセージは、アプリケーションラッパーログハンドラ−経由でJESAPIへ転送されるので、ファイルロギングは、アプリケーションサーバ内で無効にできる。アプリケーションサーバからのほかの標準データストリームは、同じように、アプリケーションラッパー経由でJESAPIへ転送される。
下記の通り、アプリケーションサーバプロセス1002は、J2EEのセキュリティポリシーを使用してウェブアプリケーションの機能及びコード自身を制限することが望ましい。サーバコードは、セキュリティループホールを避けるため、可能な限りロックしておくことが望ましい、また、JESAPI実装シングルトン及びアプリケーションラッパーの一部である全てのクラスは、サーバクラスと同じ保護を有していることが望ましい。さらに、プロセス全体(サーバ及びウェブアプリケーションロジックを含む)に対して適切なセキュリティ制限が課されていることが望ましい。
標準J2EEのセキュリティ許可によって提供される機能のほかに、付加的な制限をアプリケーション(“webapps”と呼ぶこともある)に課すべきである。ウェブアプリケーションが、スレッド及びスレッドグループの生成或は変更をしないようにしておくことが望ましい。ウェブアプリケーションが、非システムスレッドで動作する場合、アプリケーションサーバプロセスは、セキュリティ許可にアドレスする方法を提供する。ウェブアプリケーションがJNDI及びファイル読取専用操作をベースパス(アンパック形式のWARファイルディレクトリルート)から、反復的に実行できるようにしておくことも必要である。アプリケーションサーバは、ウェブアプリケーションのためのセキュリティ許可を、ランタイム(実行時)に動的に、生成することが望ましい。
種々のカスタマからのウェブアプリケーションは、同じサーバで実行可能なことが望ましいので、サーブレットコンテナを構成可能にしておき、あるコンテキスト内のウェブアプリケーションが、別のコンテキストのServletContextインスタンスをアクセスすることを許可したり、不許可にしたりし、サーブレットがServletContext.getContext()をコールしようとしたときに、そのウェブアプリケーションの構成に依っては、ヌルが返されるようにすることが望ましい。この操作は、インストール時に、ウェブアプリケーションごとに指定されるのが好ましい。追加されるセキュリティレベルとして、外部共用オブジェクトは、アプリケーションサーバプロセスで出されるシステムコールをトラップし、以下に述べるようにして、アクセス制御チェックを行うことが望ましい。
アプリケーションサーバ内の特定のウェブアプリケーションに対するHTTPリクエストを送るのに先立ち、エッジサーバプロセス(図9のエレメント900)は、(必要ならば)関連WARをファイルシステム上のベースディレクトリへアンパックする役割、及びウェブアプリケーションコンポーネントをアプリケーションサーバへインストールする役割を持っている。エッジサーバプロセスは、アプリケーションサーバプロセスに通知し、JESAPIを使用してウェブアプリケーションをインストールして無効にし、ウェブアプリケーションの構成をランタイムに供給する。エッジサーバプロセスは、アプリケーションサーバのインスタンスごとにインストールされるコンテキストを管理する役割も持っている。エッジサーバプロセスが、アプリケーションサーバに対して、ウェブアプリケーションをインストールするようリクエストすると、エッジサーバプロセスは、制御リクエストをJESAPIへ送信し、ウェブアプリケーションのコンテキストパス、そのベースディレクトリパス、及び、そのウェブアプリケーションが、ServletContext.getContexu()を使用するなど、ほかのサーブレットコンテクストへアクセスできるかどうかを決定するフラグを供給する。JESAPI実装シングルトンは、次に、このリクエストを、アプリケーションサーバにあるウェブアプリケーションの動的インストレーションメカニズムを起動することなどによって処理する。ウェブアプリケーションがインストールされた後、エッジサーバプロセスは、それに対してのリクエストを、アプリケーションサーバへ送信する。エッジサーバプロセスが、特定のウェブアプリケーションを無効にできる状態にあれば、エッジサーバプロセスは、そのウェブアプリケーションインスタンスへのリクエストの送信を停止し、ウェブアプリケーションをアンインストールする制御リクエストを、それのコンテキストパスでウェブアプリケーションを識別するJESAPIへ送信する。
ホットスワッピングによってウェブアプリケーションの改訂をサポートするには、エッジサーバプロセスが、そのアプリケーションサーバ内でウェブアプリケーションのインストレーション、無効化、及びレギュラリクエストに使用される、人為的なコンテキストパスを生成することが望ましい。コンテキストパスは、コンテキストid、ホスト名を含む、ウェブアプリケーションインスタンスを識別する各種の値のハッシュ、オリジナルコンテキストパス、WARコンテンツ、及び改訂番号からなることが望ましい。新バージョンのアプリケーション(バージョン1.1など)が発行され、かつ古いアプリケーションバージョン(バージョン1.0など)も有効な場合、新アプリケーションバージョンは(オリジナルバージョンとして)同じプロセスに置かれ、新リクエストは新しいアプリケーションバージョンに向けられる。古いアプリケーションに対してのリクエストが尽きると、そのアプリケーションバージョンは終了され、所定のクリーンアップが実行される。これは必須ではいが、同じカスタマの両バージョンが共に同じプロセスで動作することが望ましい。この「ホットスワッピング技術」が図11に示されている。
明示的なウェブアプリケーションインストレーションでは、エッジサーバプロセスは、ウェブアプリケーションのインストールコマンドをJESAPIへ送信し、正常応答を待ってから、そのウェブアプリケーションに関連したHTTPリクエストをアプリケーションサーバへ送信する。エッジサーバプロセスが、未だインストールされていないウエブアプリケーションに対してのリクエストに直面したため、明示的インストールリクエストが生じた場合、明示的インストール工程のために、その最初のリクエストの処理に余分な待ち時間が必要になる。或いは、ウェブアプリケーションの暗黙的インストールを実行するによって、未だインストールされていないウェブアプリケーションに対する最初のリクエストが招く遅れを最小にすることができる。その代わりに、エッジサーバプロセスは、リクエストを、指定されたウェブアプリケーションをインストールし、かつそのウェブアプリケーションにオリジナルリクエストを処理させる、事前にインストールされたアプリケーションサーバ内のJESAPI webapp(JESAPI起動時に)へ送信する。これは、エッジサーバプロセスとアプリケーションサーバプロセスとの間の単一パスで達成される。これは、エッジサーバプロセスが、オリジナルのHTTPリクエストを変更し、追加データをJESAPIウェブアプリケーションへ渡し、これによりアプリケーションをインストールし、リクエストを実行させることによって達成される。
望ましいリクエスト処理オペレーションが図12に示されている。JESAPIは、アプリケーションサーバに、各リクエストを処理するために個別スレッドの割当てを要求することが望ましい。同じスレッドが、そのリクエストを処理する全てのJESAPIコールを行うことが望ましい。エッジサーバプロセスがリクエストを受信し、必要に応じて、対応するwebappをアプリケーションサーバへインストールを行った後であるが、リクエストをwebappコンテキストに送る前に、エッジサーバプロセスは、アプリケーションサーバとJESAPI サーブレットフィルタによって正しく処理されるように、HTTPリクエストを変更する。詳細には、エッジサーバプロセスは、リクエストのURIを変更し、人為的なコンテキストパス(これでアプリケーションサーバはこのリクエストを、すでにインストールされている固有コンテキストインスタンスへ、正しくマップできる)を含める。エッジサーバプロセスも、リクエストの取扱い方法に関する追加データをJESAPIサーブレットフィルタに供給する種々のJESAPI内部ヘッダーを挿入する。
図13は、複数のアプリケーションサーバインスタンスが、望ましくは、エッジサーバを使用するCDNカスタマごとに設けられた実装例である。従って、カスタマごとのJVMインスタンスごとに1つのアプリケーションサーバが設けられていることが望ましいが、これに限定されない。この例では、エッジサーバ1300は、Linuxカーネルなどのオペレーティングシステム1302を持つマシンである。エッジサーバマネージャプロセス1304は、子Javaアプリケーションサーバインスタンス1306a−1306nと、望ましくは、TCPソケットを経由し共用メモリ1308を使用して、通信する。各Javaアプリケーションサーバインスタンスは、それ自身のJVM1310の上で動作する。従って、この実施では、カスタマごとに1つのアプリケーションサーバ/JVMインスタンスがあることが望ましく、このアプリケーションサーバ/JVMインスタンスは、エッジサーバマネージャからのプロセスから動作する。子アプリケーションサーバプロセスは、エッジサーバマネージャから分岐された後、それぞれはJavaマネージャサブシステム1312によって緊密に監視され、制御される。エッジサーバマネージャは、ローカルTCPソケット上でのアプリケーションサーバ処理を要求するクライアントリクエストを子アプリケーションサーバプロセスへ送信する。子アプリケーションサーバプロセスは、リクエストを処理し、同じ接続で応答を送信する。さらに、リソース利用負荷が、共用メモリセグメント1308を通して、各アプリケーションサーバプロセスから、Javaマネージャサブシステム1312へレポートされる。マネージャサブシステム1312は、各子アプリケーションサーバプロセスのリソースの利用度を緊密に監視し、リソースを使い過ぎているアプリケーションサーバを強制終了する。
特に、各子アプリケーションサーバプロセスで消費されるリソースが、望ましくは、各アプリケーションサーバプロセスによって起動時にロードされる共用オブジェクトコンポーネントによって監視される。これらには、Java Edge Services API (JESAPI)共用オブジェクト1314、及びインターセプト共用オブジェクト1316が含まれる。JESAPI共用オブジェクト1314は、特定のJESAPI Javaネイティブコールを実装し、共用メモリセグメント1308を介してJavaマネージャサブシステム1312と通信する役割を持つ。 インターセプト共用オブジェクト1316は、“open”、“close”、“gethostbyname”などの各種「インターセプト」システムコールをロードする。マネージャサブシステム1312は、システムコールをインターセプトすることによって、アプリケーションサーバが行おうと意図した“実”システムコールを行う前に、一部のコールへのアクセスを防止したり、中間的な計算を行ったり、統計をとったりできる。インターセプト共用オブジェクトは、任意のリソースの利用度をJESAPI共用オブジェクトへレポートすると、JESAPI共用オブジェクトは、共用メモリセグメントを介してJavaマネージャサブシステムへそれをレポートする。
各アプリケーションサーバプロセスについて、以下の種類のリソースが監視される。メモリ−JVMのインターナルJavaヒープ(即ち、アプリケーションサーバが割当てるJavaオブジェクト用のメモリ管理が行われるヒープ、及びアプリケーションサーバ内で動作するwebapps);CPU−各リクエストがアプリケーションサーバ内でアクティブであった期間に、リクエストのために消費されたCPU時間;ディスク−アプリケーションサーバが実行するディスク操作で、クライアントリクエストの結果として行われたディスク操作(JESAPI共用オブジェクトも、ディスクの読取りが、ディスク、バッファキャシュいずれで行われたかをチェックし、この結果、フリッツを正しくリクエストにアトリビュートできる)を含む;ネットワーク−各アプリケーションサーバプロセスがincludeURLの「取出し」のために開くソケットの数。Javaマネージャサブシステム1312は、リソースの利用度に基づいた一組のポリシーなどを通して、リソース管理を実行する。従って、例えば、Javaマネージャは、以下の方法で以下のリソースを使い過ぎている子アプリケーションサーバプロセスを強制終了する;メモリ−アプリケーションサーバのJavaヒープが、カスタマメタデータに設定されている構成可能量より多くのメモリを使用していると、それは強制終了される;暴走リクエスト−暴走リクエストは、「不当に」長い時間(構成可能な数)に亘り処理が続いているリクエストであり、アプリケーションサーバが起こした暴走が構成可能数に達すると、そのアプリケーションサーバが強制終了される;オープンソケット−アプリケーションサーバが開いたソケット(クローズされたことがないソケット)の数が構成可能なリミットに達した場合、アプリケーションサーブレットが強制終了される。リソースの利用率を制限することによって、どのアプリケーションサーバインスタンスも、そのサーバのリソースを独占使用してしまわないことが保証される、
上記のリソース管理のほかに、Java Security Managerフレームワークは、各アプリケーションサーバプロセスで動作するウェブアプリケーションにセキュリティ上の制約を課すことによって、サンドボクシングを行う。この制約は、セキュリティポリシーファイルと Java Security Manager実装の組合せによって行われることが望ましい。以下の制約が、Javaウェブアプリケーションに課されることが望ましい。ファイルシステム−カスタマウェブアプリケーションは、ファイルシステムに対して読出し書込みができない(但し、スタティックhtmlなどそれら自身のWARファイル内のファイルは読める);ソケット−カスタマウェブアプリケーションはJavaソケットをオーブンできない;スレッド−カスタマウエブアプリケーションは、Javaスレッドの始動/停止/変更を行うことができない;コード−カスタマウェブアプリケーションは、JESAPI或はアプリケーションサーバクラスを読むことができない。ソケットの場合、カスタマwebappは、HttpURLConnection Javaクラスを通して組込ファイルを取出すことができることが好ましい。このクラスは、JESAPIコードによってインターセプトされ、かつ、includeを強制的にエッジサーバマネージャプロセス(そして、オープン接続の数を監視する)だけを通して行わせる。更に、フレームワークによって、カスタマに生のJavaソケットのオープンすることを許容することが望ましい。この理由は、前述のインターセプト共用オブジェクトは、全てのソケットAPIコールをインターセプトし、そのアプリケーションサーバプロセスによって行われた接続数を監視するからである。インターセプトオブジェクトは、次に、HTTP CONNECT方法を使用して、エッジサーバマネージャプロセスへ接続する。次に、エッジサーバマネージャプロセスは、所望のホストへのソケットをオープンする。
上記の、リソース管理、サンドボクシング、及びセキュリティ機能は。単なる例示に過ぎない。ユーザーIDによるリソース管理など、ほかの手法も使用できる。そのような場合、各アプリケーションサーバプロセスが起動した後、setuidが実行され、固有ユーザーIDへのプロセスが設定される。一旦、この固有UIDに設定されると、リソース管理用のほかのオペレーティングシステムカーネル機能が使用可能になる。これらには、総スレッドの限度、ファイルシステム割当て、ソケットフィルタ、などがある。更に、このアプローチは、アプリケーションサーバプロセスをファイルシステムのサブセットに制限し、サブセット以外では読取り、書込みを不可するための、その他のシステムコール(“chroot”など)の使用を可能にする。
当業者であれば分かるように、JESAPIインタフェースは、アプリケーションサーバを変更しないでもサポートできるように、例えば、上記の様に設計できることである。或いは、アプリケーションサーバのベンダーは、アプリケーションサーバの機能を、そのアプリケーションサーバがCDNサーバプロバイダのエッジサーバプラットフォームで動作するように変更ができる、この場合、そのエッジサーバで動作可能にするには、サーブレットコンテナへ変更を加える必要がある。従って、例えば、可能な場合には、既存のサーブレットコンテナコンポーネントの新しいサブクラスを、(必要に応じて)生成し、次に、変更を加えて、エッジサーバマネージャにインタフェースさせる必要がある。いずれの場合も、エッジサーバマネージャは、エッジサーバ自身との間でクライアントリクエストへインタフェースすることが望ましい。
エッジ配置可能(enabled)アプリケーションフレームワークに関する他の様相を以下に記述し、いくつかの例についても示す。
カスタマ構成
エッジサーバは、クライアントからのリクエストを受信した場合、最初に、そのリクエストを適切なカスタマ構成ファイルと組み合わせることが望ましい。構成ファイルは、例えば、図1に示した、CDNメタデータ伝送システムなどの、便利なメカニズムを介してエッジサーバへ配信できる。勿論、エッジサーバへカスタマ構成データを供給するための任意の技術が使用可能である。カスタマ構成が、Javaプロセッシングをリクエストに関連づける場合、既述の通り、Javaプロセッサが関与する。
Webコンテナ
上記の通り、WARファイルがすでにエッジサーバに存在する場合、Javaプロセッサは、適用可能なサーブレット或はJSPページ(Web層処理用)を使用して、リクエストへの応答を生成する。標準配備記述子を使用し、そのリクエストをサーブレットへ正しくマップすることが望ましい。Javaアプリケーションが、現時点で、エッジサーバに存在しない場合、オリジンサイト或は何らかの他のソースから検索される。この検索プロセスは、かなりの待ち時間の原因になるので、アプリケーションの検索は非同期的に行われ、一方、初期リクエストは、同時に、オリジンサーバへトンネルされる。処理の終わったリクエストの出力は、ユーザーへ返される。実行済サーブレットは、次のユーザーのためにメモリに残っていることが望ましい。
ネットワーク及びリソースの管理
サーブレットは、不適切な量のリソースを消費するプロセスがでないように管理することが望ましい。正しいリソース監視及びロードバランシングによって、同時に動作している別のアプリケーションに影響を与えるアプリケーションが存在しないことが保証される。Javaアプリケーションは、ネットワークを介してコンテンツのリクエストを行える。リクエストは、HTTP及びHTTPSプロトコルを通して行うことが望ましい。その他のJavaリソースのリモート呼び出しも、HTTPを通して行うことが望ましい。
オリジンサイトの役割
オリジンサーバは、特に、Web層だけがエッジネットワーク上に配備される場合、エッジアプリケーションの重要な部分を占める。更に、一部のサーブレットは、集中化リソースへのアクセスに依存しているため、全てのリクエストをエッジサーバで処理することはできない。こうした場合、オリジンサイトは、エッジ配置不可リクエストを実行する役割、及びエッジ配備アプリケーションによって出される可能性があるリモートコールに応答する役割を持つ。
以下は、こうした状況でのオリジンサーバの代表的な役割である;エッジ層からのRMIリクエストへ応答すること、静的及び動的コンテンツからのHTTPリクエストに応答すること、必要に応じて、エッジサーバの動作を制御するHost Response Header (HRH)を設定すること、エッジサーバによってリクエストがなされたとき、WARファイルを送ること、及びエッジ層のJDBCリクエストに応答すること。
エッジからオリジンへの通信
エッジサーバのサーブレットとオリジンサイトとの間の通信は、下記の通り、HTTP或はHTTPSプロトコルを介して生じることが望ましい。Remote Method Invocation (RMI)通信は、HTTPを介してトンネルされる;SOAPメッセージは、HTTP或はHTTPSを介して交換される;JDBCは、HTTP/HTTPSを介してトンネルされる;リレーショナルデータベースクエリへの応答は、XML(エッジサーバが結果をキヤシュし、それらを以降のリクエストで再利用し、層間での待ち時間を最小にすることを可能にする)形式でエンコードされる;通信がエッジからオリジンであるか、オリジンからエッジであるかに関係なく、サーブレット制御方法(RequestDispatcher.include()及びRequestDospatcher.forward()など)がサポートされることが望ましい;そして、メッセージがHTTP或はHTTPSで伝送される場合には、カスタム通信ソリューションがサポートされる。図14は、これらの技術の解説である。
アプリケーションがスケーラブルで、かつ、エッジに存在することの利点が確実に得られるようにするには、エッジとオリジンの間で送信されるバイト数及びコール数を最小にすべきである。これは、例えば、データをエッジにキャシュすること、及び、データアクセスファサードを使用することによって達成できる(データベースに複数のコールを行う代わりに行う(この場合、エッジ配置可能サーブレットを使用してエッジ配置不可サーブレットをコールし、それに代わってデータベースコールを行う))。
アプリケーションのステージングと配備
J2EEアプリケーションは、モジュラー形式で、かつ、特定の構造を有することが勧められる。フレームワークは、多くのJ2EEアプリケーションが分離されて構造化されていることによる恩恵が得られる。以下は、アプリケーションアーキテクト(設計者)がフレームワークの持つ利点を利用できる種々のアプローチの要約である。
純粋なエッジ配置可能サーブレット
サーブレットは、正しい応答を生成するのに必要な全ての情報をリクエストが含んでいる場合に、エッジ配置可能と見做すことができる。
目標とする応答
コンテンツターゲット情報(ユーザーの国籍、州、市、帯域幅、など)を使用するサーブレットも、全てをエッジから配信することが可能である。アプリケーションプログラミングインタフェース(API)が、コンテンツターゲット情報へアクセスするために提供され、アプリケーションは、この情報を利用して応答をカスタマイズすることができる。このサーブレットは、APIを使用して、エンドユーザーに関する情報を取得する。
データのXMLとしてのキャシュ
フレームワークによって、アプリケーションはデータをXMLとして容易にキャシュ及びアクセスすることが可能になる。XMLは、データの生成、格納、アクセスのための便利なプラットフォームに寛容な(agnostic)手段である。
多くのデータベースは、格納されているレコードからXMLを作り出すための直接的な手段を提供する。XMLコンテンツをエッジにキャシュしておくことによって、データ検索に伴う待ち時間が短くなる。エッジサーバは、キャシュされているXMLファイルの簡単な構文解析及び操作を可能にする、JAXP及びXMLクエリークラスを含むことが望ましい。更に、アプリケーションは、Webアプリケーションの中でXSLT処理を使用して、オリジン或はキャシュから検索されるXMLデータを変換し、呈示することができる。
XMLWebサービスの使用
Webサービスアーキテクチャは、アプリケーションが、標準XML及びインターネットプロトコルを使用して、他のアプリケーションからデータ及びロジックへアクセスする方法を定義する。Webサービスは、エッジサーバが通信するのに使用する簡単なメカニズムを提供する。エッジサーバは、オリジン或は第三者サイトで動作するサービスとのSOAP通信を可能にするのに必要なJavaクラスを含むことが望ましい。
エッジサーバからのJDBCの使用
JDBCコールがオリジンへトンネルされることが望ましい。層間での待ち時間を最小にし、かつ、キャシングの恩恵を受けるため、JDBCコールへの応答をキャシュし、種々のリクエストの間で共用することができる。
エッジサーバからのRMIの使用
RMIは、エッジサーバとオリジンとの間のオブジェクト間の通信に使用できる。エッジ配置可能アプリケーションは、リモートに位置するオブジェクトメソッドを、そのオブジェクトがローカルに位置していたかのように、コールできる。メソッドの呼出しは、キャシュされることが望ましい。
共用のシナリオ
以下の共用パターンは、分散Javaプラットフォームで動作するJ2EEアプリケーションを設計し、開発するときに使用できる。多くの種類のデザインパターンが可能であるが、ここでの記述は、より共用性が高いいくつかのパターン、それらの利点、及び適用性が最も高い状況に重点を置いている。
純粋のエッジリクエストの処理
記述
リクエストは、正確な応答を生成するのに必要な全ての情報を含む。
リクエストに含まれる情報は、HTTPヘッダー(Cookie、Referer、その他)、クエリーストリング、或は、HTTP POST本体(フォームフィールドデータ、アップロードされたデータ、その他)などで、エッジアプリケーションが応答を生成するのに十分である。
シナリオ
・HTMLフォームの検証−ユーザーが作成したHTMフォームは、処理の前に検証が必要になる場合が多い。クレジットカード番号、Eメールアドレス、電話番号など、フィールドのフォーマットが正確かどうがチェックしなければならない。
・言語のカスタマイズ−応答内のテキストは、リクエスタが「Accept−Language」ヘッダーに望ましいものとして供給した言語に設定される。
実装
フォームの検証
この例では、エッジ配置可能サーブレットは、ローカルクラスのライブラリを使用してリクエストを処理し応答を返す。サーブレットは、関連するメソッドを用いて、次のフォーム画面を提供する前に、提供したデータの正確性を検証する。
言語のカスタマイズ
サーブレットは、関連するヘッダーの存在をテストして、適切なバージョンのHTMLにて応答する。
目標とする応答
記述
応答は、エンドユーザーの居在地或は接続性など、コンテンツターゲット情報によって決定される。
シナリオ
・ローカライズされたページをもつ、オンライン配信サイト
・現地の天気情報をもつオンラインポータル
・市場セグメントデータを使用してカスタマイズされたフロントページを提供するショッピングサイト
実装
コンテンツ対象情報へアクセスするためにアプリケーションプログラミングインタフェース(API)が提供される。アプリケーションはこれを使用して、応答をカスタマイズできる。サーブレットは、APIを使用して、エンドユーザーについての情報を取得する。
簡単なバイナリデータのキャシング
記述
XMLデータ、トンネルされたJDBC応答、SOAP応答などのHTTP応答は、リクエストをエッジサーバを介して行うだけでキャシュされることが望ましい。HTTP応答のキャシングは、同じリソースが、1つ以上のサーブレットによって複数回使用されている場合に特に有用である。APIによって、アプリケーションは、コンテンツの新鮮さが維持されていることを確認できる。
シナリオ
・オリジンのデータベースに格納されているユーザーの好み−エッジ上のこれら属性にアクセスすることによって待ち時間が減少する。
・オリジンのデータベースに格納されているショッピングカート−ユーザーが行うリクエストの多くは、ショッピングカートの内容の更新を行わない。キャシュされたショッピングカートのコピーをエッジにキープしておき、ユーザーがアイテムを一つ追加するか削除するときにのみ、内容を更新すると便利である。
実装
ユーザーの好み
ユーザーの好みは、データベースからプロパティを検索するサーブレットへリクエストを送ることによって、オリジンから検索できる。このファイルは、ハッシュ、XMLなどであることができる。
同じURLに対する後続リクエストは、キャシュから提供される。
ショッピングカートオブジェクト
或いは、エッジ配置可能アプリケーションは、HTTP SOAP RPCコールを使用して、オリジンによってカスタマの状態を保守する。オリジンは、ウェブサービスとしてショッピングカートに作用する全てのメソッドを提供できる。HTTP SOAP RPCコールは、必要時に、ショッピングカートの状態を更新するが、殆どの時間、ショッピングカートは読出しのみで、更新はなされない。バージョン番号が同じ、全ての後続コールは、キャシュされたショッピングカートを返す。
応答はキヤシュされているので、そのURLへの後続リクエストは、同じcart_idであれば、同じ応答がもたらされる。ユーザーが、ショッピングカートのコンテンツを変更するトランザクションを生成すると、カートのバージョン番号は増加される。バージョンの更新がなされた後、それ以降のリクエストは、オリジンへのコールをもたらす。現在のカートバージョン番号は、クッキー、或はその他のユーザー専用プロパティオブジェクトに格納できる。
XMLデータのキャシング及び使用
記述
アプリケーションは、大量のデータにアクセスすることが必要になる場合が多い。XMLは、大量のデータを生成、格納、アクセスするための便利なプラットホームに寛容な方法である。多くのデータベースは、格納されているレコードからXMLを生成する直接的な方法を提供する。XMLコンテンツをエッジにキャシュしておくことによって、データ検索に伴う待ち時間が短くなる。
シナリオ
・カタログデータをネットワークのエッジにキャシュする方法−多くのオンラインストアの場合、カタログの更新の発生が稀かであるか、その更新が直ぐ有効になることは重要でない。彼らが大きな恩恵をうけるのは、データベースを、ユーザーの近くで動作するサーブレットで使用できることである。
実装
最も単純なシナリオは、単に必要データに対するHTTPリクエストを行う(必要な場合、クエリーパラメータを渡す)というものである。データをリクエストするプロセスがそれをキャシュするのに十分であることが望ましい。オブジェクトの新鮮さをコントロールするには、サーバのHTTPヘッダー、或はリクエストのTTLパラメータを使って、データをどれだけ長くキャシュしておけるかを指定する。或いは、データのバージョン番号を使って、データが変化したとサーブレットが判断したときに、キャシュミスを強制できる。このデータにアクセスするには、XMLパーサ(構文解析)が使用できる。代案は、XMLクエリー実装を使って、関連したレコードだけをキャシュされたXMLから検索することである。コンテンツプロバイダが、必要と判断した場合、キャシュされているカタログを無効化することができる。この無効化は、例えば、管理されたSOAP無効化サービスへ接続するなど、によって、プログラム的にも起こり得る。
エッジサーバからのJDBCの使用
記述
エッジからのJDBCクエリーを管理するための種々のアプローチがある。あるパターンは、コモンSQLクエリーの結果をキャシュすることによって機能する。別のパターンは、大きいデータセットのキャシュは行うが、アプリケーションは関連データだけしか読出すことができない。これらのパターンを使用することによって、データベースの負荷は軽減され、層間での通信によって生じる待ち時間は最小になる。
シナリオ
・データベース駆動のカタログサイト
実装
JDBCの実装
サービスプロバイダは、JDBCドライバの実装を設けることも望ましい。これによって、エッジサーバは、オリジンと通信を行い、データベースがローカルに動作していたかのように、クエリーを出すことが可能になる。この実装でも、クエリーの結果をキャシュすることが望ましい。コンテンツの新鮮度の保守は、所定の新鮮度メカニズムを、サービスされた結果に対して設定する、コンテンツのコール時に存続時間(TTL)を特定する、或いはバージョニング方式を使用することによって行われる。JDBCドライバは、SOAPコールを行うことが好ましい。これにより、エッジサーバが応答をキャシュし、再利用できるようになる。
Result Setsの実装
JDBCのコールの必要性を最小限にするための1つの技術は、ResultsSetsObjectを使用することである。このアプローチでは、データバースのコンテンツをもつ単一の大きいオブジェクトを生成する。これは、別のリクエストがこの拡張済セットからの結果を使用するであろうという予測の上に行われる。別のサーブレットが同じリクエストを出した場合、同じオブジェクトが返される。Result−setキャシングのクラスを使って、検索済データを横断しアクセスできる。
リモートウェブサービスの使用
記述
第三者提供サービスを利用することは、他社の能力を利用し、かつ、アプリケーションの複雑性を最小限にする上で役に立つ。
シナリオ
・株価追跡機能を提供する個人化ポータル
・組込み気象情報(コンテンツターゲットデータに基づく居住地)
実装
気象情報
標準SOAPクライアントの実装が使用できる。
キャシュコヒーレンスオブジェクトによるデータ同期
記述
アプリケーションが、互いに矛盾のない状態にあることが必要な、複数のキャシュ可能アイテムを使用している場合、各アイテムをオリジンと同期させる代わりに、単一のオブジェクトは、そのコンテンツのバージョンIDを保持するコヒーレンスメカニズムとして機能できる。
シナリオ
アプリケーションは、キャシュされたイメージ及びこれらイメージの説明を含むテキストファイルを使用する。
実装
所定のプロパティをもつコヒーレンスオブジェクトが定義される。この小さいオブジェクトは、オリジンへトンネルされるか、比較的短い時間キャシュされ、次に、コンテンツが使用される前に検討される。その結果、データは長い時間キャシュしておくことができるが、コンテンツプロバイダは、依然、コンテンツの新鮮度の支配権を維持している。
リモートオブジェクトでのRMIの使用法
記述
RMIは、エッジサーバとオリジンの間のオブジェクト間通信に使用できる。エッジ配置可能アプリケーションは、リモートに位置するオブジェクトメソッドを、オブジェクトがローカルにあったかのようにコールできる。これによって、アプリケーションはオリジン及びエッジの固有能力及び適宜利用することが可能になる。
適用性
このアプローチが最適といえるのは、使用中のオブジェクトがオリジンに密接に関連しており、キャシングの恩恵が得られない場合である。そのオブジェクト自身をキャシュすることが可能で、一部のメソッドだけが、オリジンの使用を必要としている場合には、次に述べる、Optimized RMIメカニズムを使うことを考える。
シナリオ
ドライバに運転の方向を提供するウェブサイトは、正確な経路を計算するために、オリジンを使用する必要がある、しかしながら、エッジ配置可能サーブレットは、ローカルオブジェクトを加工し、コードを(プログラム)大幅に変更しなくでもよいようにすることが望ましい。
実装
標準RMI呼出しが使用される。オブジェクトは、インスタンスが生成されると、ローカルで動作しているかのように、シームレスに働く。このメソッドは、潜在的に、層間のトラフィックを増やし、サーバのパフォーマンス低下を招く。この例では、CDNがJNDIを有しない場合には、CDNサービスプロバイダ専用JNDIクライアントが使用される;或いは、オリジンのサーブレットへのリクエストの生成され、これにより、インスタンスが生成されたオブジェクトを表すRMIスタッブの返送がなされる。
最適化されたRMI/オブジェクトのキャシング
記述
RMIオブジェクトを使用することの欠点の1つは、データのアクセス、或はメソッドコールでオリジンとの通信が必要になることである。このパターンは、ローカルに呼び出せるメソッドをこのようにして呼び出し可能にする。
適用性
このパターンは、頻繁に使用されるオブジェクトのメソッドが、オリジンでは実際には実行する必要がない状況に対して適用される。
シナリオ
・エッジで実行可能な、複数のメソッドコールを送る、ショッピングカートオブジェクトの実装である(ただし、このオブジェクト自身はオリジンで保守する必要があるが)。
実装
エッジ配置可能オブジェクトは、リモートオブジェクトのクラスをサブクラス化することによって生成される。オリジンで実行することが必要なメソッドは、リモートオブジェクトのRMI表現を使用するため無効にされる。リモートメソッドが実行された後、エッジオブジェクトの状態は、オリジンと同期される。ローカルメソッドが実行されると、これらは、直接、オブジェクトのローカル表現を用いて機能する。例えば、getterなど、読込専用メソッドは、層間のトラフィックを生成することはない。
このシナリオは、リモートでの処理が要求されるこれらのメソッドが、RMIを介して、同一オブジェクトについて、オリジンによって行われたことを示している。ローカルに実行可能なメソッドは、オブジェクトのキャシュされた表現で実行される。
本発明は、Javaベースのウェブアプリケーションを、インターネットのエッジ、エンドユーザーの近くで実行し、幾つかの利点を提供できる能力を配信する。このウェブアプリケーションは、パフォーマンスを最大にするのに必要なだけの台数のサーバによってサービスを受ける。新しいサーバは、企業の支出なしに、トラフィックの増加を基にして自動的に割当てられる。アプリケーションをオリジンから分散ネットワークへオフロードすることによって、単独の拠点での障害を無くすことができる。更に、エッジサーバを監視すること、冗長性のビルトイン、及びユーザーを瞬時に最適なサーバへマップする能力によって、CDNサービスプロバイダは、ネットワークの混雑をバイパスし、ハードウエアの障害を克服することができる。アプリケーション処理を単一オリジンからエッジの多数のサーバへオフロードすることによって、著しいパフォーマンス増加がもたらされる。各ユーザーを、最適、或は、望ましいサーバへマップすることによって、CDNサービスプロバイダは、インターネットのボトルネックを避けて、待ち時間を劇的に短くすることができる。サーバをオンデマンドに割当てる能力があるため、処理能力、或は帯域幅の不足は起こらない。オリジンサイトで動作するのに必要な、アプリケーションサーバの数を減らすことによって、CDNサービスプロバイダは、ハードウエア及びソフトウエアの保守及び管理に伴う複雑さを軽減できる。
エッジ配置可能CDNアプリケーションとして実装され、配備されるアプリケーションコンポーネントのタイプについての制限はない。上記の例に加えて、代表的なアプリケーションとして、限定するものではないが、製品コンフィグレータ、ディーラロケータ、コンテストエンジン、コンテンツトランスコーダ、コンテンツジェネレータ、サーチアグリゲータ、フィナンシャルカルキュレータ、レジストレーションエンジン、及びその他多数が含まれる。
当業者であれば、多くの変形が本発明の範囲内にあることを認識できる。従って、例えば、特定のエッジサーバは、第一種のアプリケーションサーバインスタンス(例えば、Tomcatサーブレットコンテナ)及び2番目の、別の種類のアプリケーションサーバインスタンス(例えば、IBM WebShere Application Server)を実行できる。すでに述べたように、通常、複数のサービスプロバイダカスタマによるサーバを使用し易くするため、特定のアプリケーションサーバの複数のインスタンスが1つのエッジサーバで使用される。勿論、Apache Tomcat以外の他のウェブコンテナを使用して、Web層を実装でき、また、IBM WebShere Application Server)以外の他のエンタープライズコンテナを使用して、エンタープライズコンテナを実装できる。特定のアプリケーションは、エッジ及びオリジナル両方で実行されるコンポーネントを有していなければならないという条件はない。実際に、あるアプリケーションは、エッジ配置可能アプリケーションとして完全にスタンドアロン方式で実行される。また、アプリケーションコンポーネントが、WAR或はEARファイルとしてパッケージされるという条件もない。何故なら、そのアプリケーションコンポーネントをエッジへ配備するために任意の便利なメカニズムを使用出来るからである。アプリケーションコンポーネントが特定のエッジサーバでのクライアントリクエストに応答してのみロードされるという条件はない。実際、多くの場合、予想される将来におけるそのアプリケーション或はコンポーネントの必要性に基づいて、或は、故障許容の目的のためにアプリケーション、或はコンポーネントを事前配備しておくことが望ましい。そのため、エンドユーザーのリクエストがそのサーバで受信されたかどうかに関係なく、アプリケーション或はコンポーネントは、ある特定のエッジサーバへ配信され、初期化され、起動される。また、アプリケーションコンポーネントの、全て或は一部がJ2EE準拠であること、しかも、主題の全てがJavaで実装されること、という条件はない。確かに、本発明は、Java及びJ2EEを超えて拡張可能でもある。とりわけ、本発明の概念は、(例えば、Microsoft.NET、Apacheで動作するMod perl、Zopeなど)コンテンツ配信ネットワークなどの分散コンピューティング環境へ配備可能な、あらゆるプラットフォーム非依存のアプリケーションサーバプログラミング環境で実施できるものである。
CDNサービスプロバイダは、企業のファイアウォール内でアプリケーションのテスト及びデバッグを行う能力を提供することができる。テスト用サーバは、CDNエッジサーバシミュレータで、これは、アプリケーション開発の間、及び、アプリケーションがそのプラットフォームのランタイム環境で動作することを検証するテストの間、使用可能である。
準備されたエッジ配置可能アプリケーションを配備するために、コンテンツプロバイダは、そのアプリケーションを(例えば、FTPを使用して)、CDNステージングネットワークへ公開することが望ましい。ステージングネットワークは、ステージングサーバのセットで、CDNエッジサーバ或はその他のセットになる。これにより、企業の品質管理担当がアプリケーションのテストを遂行できるステージング環境が作り出される。アプリケーションは、テストが成功であれば、望ましくはセキュアなウェブインタフェースを介して、公開すること。図15は、このプロセスを示し、サービスプロバイダポータルを利用している。カスタマは、プログラミング的に、アプリケーションをアップロードし、配備し、そして提供できる。エッジへの配備は、自動的に行われることが望ましい。エッジに配置可能なアプリケーション或はそれらのコンポーネントは、CDNコンテンツ蓄積ネットワーク或はその他の第三者サーバからも配備できる。既に述べたように、アプリケーションコンポーネントも、事前に特定のエッジサーバ或はサーバリージョンへ取り込んでおき、起動時の待ち時間を短くすることもできる。しかしながら、一般的な場合、エッジアプリケーションコンポーネントは、事前配備はされず、エンドユーザーは、ある特定のエッジサーバへマップされている。そのエンドユーザーリクエストが、次に、設定フェーズに生成された構成パラメータを整合すると、そのエンドユーザーがマップされているエッジサーバは、対応するJavaアプリケーションのロードを試みる。Javaアプリケーションがキャシュに無い場合、ステージングネットワーク、或はコンテンツ蓄積ネットワーク、或はその他のサーバから検索される。アプリケーションは、次のリクエストのために、そのサーブレットコンテナに常駐させておくことが望ましい。使用しないアプリケーションは、Webコンテナからは削除し、キャシュにはそのまま格納しておくことが望ましい。あるアプリケーションが無効化されるか、或はそのアプリケーションが、長時間に亘ってアクセスされた場合、アプリケーションはディスクキャシュから削除される。Webアプリケーションを、無許可のアクセスから保護するには、エッジサーバだけが、アプリケーションをステージングネットワーク、或はその他のコンテンツ蓄積ネットワークから検索できることが望ましい。
以上、発明について説明してきたが、特許請求の範囲は添付の通りである。
本発明を実施できる既知のコンテンツ配信ネットワークのブロック図である。 CDNエッジサーバについての典型的なマシン構成を示す。 Web層をエッジサーバに実施した本発明の第1実施形態を示す。 Web層とエンタープライズ層をエッジサーバに実施した本発明の第2実施形態を示す。 一以上のエッジ配置可能アプリケーションの実行に使用するための本発明の代表的なエッジサーバを示す。 本発明によるエッジ配置可能アプリケーションのための共通リクエスト/応答データフローを示す。 本発明で使用するためのエッジアプリケーションを開発するための一技術を示す。 エッジサーバのディスパッチャコンポーネントがクライアントリクエストを受けた時の例示的通信データフローを示す。 本発明による例示的ハイレベルアウトオブプロセスリクエストの処理フローを示す。 本発明の実施形態による例示的Javaアプリケーションサーバの処理を示す。 クライアントリクエストの処理を中断することなくアプリケーションサーバのアプリケーションをバージョンアップする、本発明の特徴による方法を示す。 図9の例示的実施形態についての代表的なリクエスト処理を示す。 図9の例示的実施形態についての代表的なリクエスト処理を示す。 複数のCDNカスタマのために複数のJavaアプリケーションサーバインスタンスを同時に実行する典型的なエッジサーバを示す。 アプリケーションサーバコンテナを備えたエッジサーバとオリジンサーバとの間での通信が一以上の通信プロトコルで行われるCDNを示す。 CDNサービスプロパイダのセキュアカスタマポータルを利用した代表的なアプリケーション提供方法及びシステムを示す。

Claims (14)

  1. 分散コンピューティング環境で実行可能な所定のアプリケーションに対するリクエストを処理するための方法であって、1台以上のオリジンサーバから処理をオフロードするためにエッジサーバ群が分散コンピューティング環境に配備され、該所定のアプリケーションは少なくとも第一コンポーネントと第二コンポーネントとを有し、前記方法は、
    所定のエッジサーバにおけるリクエストの受信に応答して、そのリクエストが所定のアプリケーションに対する最初のリクエストかどうかを判定するステップと、
    リクエストが所定のアプリケーションに対する最初のリクエストである場合、第一コンポーネントを検索するステップと、
    第一コンポーネントをインストールした後、或はリクエストが所定のアプリケーションに対する最初のリクエストでない場合は、第一コンポーネントを実行するステップと、
    必要に応じてオリジンサーバと通信して第二コンポーネントを実行するステップと、
    第一コンポーネント及び、必要に応じて第二コンポーネントの実行結果に基づいてリクエストに対する応答を生成するステップと
    を含む方法。
  2. 所定のアプリケーションは、Webアプリケーションであり、第一コンポーネントは、サーブレット、Javaサーバページ(JSP)、Javaビーンズ、及びタグライブラリを含むコンポーネント群から選択されたWeb層コンポーネントである、請求項1に記載の方法。
  3. 第二コンポーネントは、セッションビーンズ、エンティティビーンズ、及びメッセージ駆動ビーンズを含むコンポーネント群から選択されたコンポーネントを含むエンタープライズ層コンポーネントである、請求項3に記載の方法。
  4. 第一コンポーネントは、オリジンサーバ、CDNステージングサーバ、及びCDNコンテンツ蓄積サーバの中から選択されたサーバから検索される、請求項1に記載の方法。
  5. 第一コンポーネントをエッジサーバへ取り出しながら、第一コンポーネントをオリジンサーバで実行してリクエストに対する応答を容易にするステップを更に含む、請求項1に記載の方法。
  6. 分散コンピューティング環境で実行可能なJavaベースのアプリケーション群に対するリクエストを処理するための方法であって、オリジンサーバ群からの処理をオフロードするためにエッジサーバ群が分散コンピューティング環境へ配備され、各Javaベースアプリケーションは、少なくとも第一コンポーネントを有し、前記方法は、
    少なくとも第一及び第二のJavaアプリケーションの第一コンポーネントを、所定のアプリケーションサーバコードを有する所定のエッジサーバへ配備するステップと、
    所定のエッジサーバにおけるリクエストの受信に応答して、第一及び第二のJavaアプリケーションの第一コンポーネントを所定のアプリケーションサーバコードに実行させ、リクエストに対する応答を生成するステップと
    を含む方法。
  7. 第一及び第二のJavaアプリケーションは、単一のアプリケーションの異種バージョンであり、前記方法は、更に、第一のJavaアプリケーションがリクエストを処理している間に、リクエストを処理するために第二のJavaアプリケーションをローディングし、実行を開始するステップを含む、請求項6に記載の方法。
  8. 所定のエッジサーバでのリクエストの受信に先立ち、Javaアプリケーションの第一コンポーネントが実行のために事前配備され、ロードされる、請求項6に記載の方法。
  9. プロセッサ、仮想マシン、及びプラットフォーム非依存のアプリケーションサーバコードを有する、コンテンツ配信ネットワークで使用する装置の改良であって、
    各々がプラットフォーム非依存のアプリケーションサーバコードによって実行が可能な一以上のプラットフォーム非依存のコードコンポーネント群と、
    各々が所定のプラットフォーム非依存のコードコンポーネントを実行可能な一以上のアプリケーションサーバコードインスタンス群を例示するためのエッジサーバプロセスと、
    エッジサーバプロセスをアプリケーションサーバコードインスタンス及びその上で実行される所定のプラットフォーム非依存のコードコンポーネントへインタフェースするためのアプリケーションプログラミングインタフェース(API)と、
    アプリケーション処理リクエストに応答し、所定のプラットフォーム非依存のコードコンポーネントを使用してリクエストを取り扱うためにAPIを初期化し、アプリケーションサーバコードインスタンスを起動するためのラッパープロセスと
    を含む改良。
  10. アプリケーションサーバコードインスタンスを監視し、前記の監視に応答して、所定のリソースを過度に使おうとしているアプリケーションサーバインスタンスに関しての所定のアクションを呼び出すコードを更に含む、請求項9に記載の装置。
  11. 所定のアプリケーションサーバ−インスタンスで動作する所定のプラットフォーム非依存のコードコンポーネントが、他のプラットフォーム非依存のコードコンポーネントに関しての所定のアクションを行うことを防止するためのコードを含む、請求項9に記載の装置。
  12. 所定のプラットフォーム非依存のコードコンポーネントは、Web層コンポーネントであり、アプリケーションサーバコードインスタンスは、サーブレットコンテナである、請求項9に記載の装置。
  13. 所定のプラットフォーム非依存のコードコンポーネントは、エンタープライズ層コンポーネントであり、アプリケーションサーバコードインスタンスは、アプリケーションサーバである、請求項9に記載の装置。
  14. コンテンツ配信ネットワーク(CDN)で動作するアプリケーションを実行する方法であって、コンテンツ配信ネットワークは、分散化されたエッジサーバ群、及びクライアントのリクエストをエッジサーバへマップするためのリクエストルーティングメカニズムを含み、各アプリケーションは、少なくともプラットフォーム非依存のコードコンポーネントを含み、前記方法は、
    アプリケーション群の各アプリケーションのためにプラットフォーム非依存のコードコンポーネントをコンテンツ配信ネットワーク内の所定のエッジサーバへ、必要に応じて配備するステップと、
    各エッジサーバへマップされるリクエストに応答して、対応するエッジサーバで動作するアプリケーションサーバコードに、プラットフォーム非依存のコードコンポーネントを実行させて、リクエストに対する応答を生成するステップと
    を含む方法。
JP2003560735A 2002-01-11 2003-01-10 コンテンツ配信ネットワーク(CDN)で使用するためのJavaアプリケーションフレームワーク Pending JP2006502465A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US34748102P 2002-01-11 2002-01-11
PCT/US2003/000737 WO2003060707A1 (en) 2002-01-11 2003-01-10 Java application framework for use in a content delivery network (cdn)

Publications (1)

Publication Number Publication Date
JP2006502465A true JP2006502465A (ja) 2006-01-19

Family

ID=23363875

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003560735A Pending JP2006502465A (ja) 2002-01-11 2003-01-10 コンテンツ配信ネットワーク(CDN)で使用するためのJavaアプリケーションフレームワーク

Country Status (6)

Country Link
US (3) US20030135509A1 (ja)
EP (1) EP1463991A4 (ja)
JP (1) JP2006502465A (ja)
AU (2) AU2003205083A1 (ja)
CA (1) CA2471855C (ja)
WO (1) WO2003060707A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130081233A (ko) * 2010-05-19 2013-07-16 아카마이 테크놀로지스, 인크. 에지 서버 http post 메시지 프로세싱
JP2019191740A (ja) * 2018-04-20 2019-10-31 コニカミノルタ株式会社 サービス提供装置およびプログラム

Families Citing this family (560)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6324685B1 (en) * 1998-03-18 2001-11-27 Becomm Corporation Applet server that provides applets in various forms
US6834306B1 (en) 1999-08-10 2004-12-21 Akamai Technologies, Inc. Method and apparatus for notifying a user of changes to certain parts of web pages
US6763388B1 (en) * 1999-08-10 2004-07-13 Akamai Technologies, Inc. Method and apparatus for selecting and viewing portions of web pages
US6922685B2 (en) 2000-05-22 2005-07-26 Mci, Inc. Method and system for managing partitioned data resources
US7401131B2 (en) * 2000-05-22 2008-07-15 Verizon Business Global Llc Method and system for implementing improved containers in a global ecosystem of interrelated services
US9130954B2 (en) * 2000-09-26 2015-09-08 Brocade Communications Systems, Inc. Distributed health check for global server load balancing
US7454500B1 (en) 2000-09-26 2008-11-18 Foundry Networks, Inc. Global server load balancing
US7657629B1 (en) * 2000-09-26 2010-02-02 Foundry Networks, Inc. Global server load balancing
US7096266B2 (en) * 2001-01-08 2006-08-22 Akamai Technologies, Inc. Extending an Internet content delivery network into an enterprise
US7571215B2 (en) 2001-07-16 2009-08-04 Bea Systems, Inc. Data replication protocol
US7702791B2 (en) 2001-07-16 2010-04-20 Bea Systems, Inc. Hardware load-balancing apparatus for session replication
US20030023898A1 (en) * 2001-07-16 2003-01-30 Jacobs Dean Bernard Layered architecture for data replication
US7409420B2 (en) 2001-07-16 2008-08-05 Bea Systems, Inc. Method and apparatus for session replication and failover
US7028030B2 (en) * 2001-08-30 2006-04-11 Bea Systems, Inc. Cluster caching with concurrency checking
US7113980B2 (en) 2001-09-06 2006-09-26 Bea Systems, Inc. Exactly once JMS communication
US7426515B2 (en) * 2002-01-15 2008-09-16 International Business Machines Corporation Edge deployed database proxy driver
US6898587B2 (en) * 2002-01-18 2005-05-24 Bea Systems, Inc. System and method for performing commutative operations in data access systems
US7020684B2 (en) * 2002-01-18 2006-03-28 Bea Systems, Inc. System and method for optimistic caching
US7228326B2 (en) * 2002-01-18 2007-06-05 Bea Systems, Inc. Systems and methods for application deployment
US20030140100A1 (en) * 2002-01-18 2003-07-24 Sam Pullara System and method for URL response caching and filtering in servlets and application servers
US7206817B2 (en) * 2002-01-18 2007-04-17 Bea Systems, Inc. Systems and methods for application management and deployment
US6978278B2 (en) * 2002-01-18 2005-12-20 Bea Systems, Inc. System and method for heterogeneous caching
US9167036B2 (en) 2002-02-14 2015-10-20 Level 3 Communications, Llc Managed object replication and delivery
AU2003216332A1 (en) * 2002-02-21 2003-09-09 Bea Systems, Inc. System and method for message driven bean service migration
US7392302B2 (en) * 2002-02-21 2008-06-24 Bea Systems, Inc. Systems and methods for automated service migration
AU2003215363A1 (en) 2002-02-22 2003-09-09 Bea Systems, Inc. System and method for software application scoping
US20040015578A1 (en) * 2002-02-22 2004-01-22 Todd Karakashian Web services runtime architecture
US7152181B2 (en) * 2002-02-22 2006-12-19 Bea Systems, Inc. Method for highly available transaction recovery for transaction processing systems
US7178050B2 (en) * 2002-02-22 2007-02-13 Bea Systems, Inc. System for highly available transaction recovery for transaction processing systems
US7769825B2 (en) * 2002-02-22 2010-08-03 Bea Systems, Inc. System and method for web services Java API-based invocation
US7254634B1 (en) * 2002-03-08 2007-08-07 Akamai Technologies, Inc. Managing web tier session state objects in a content delivery network (CDN)
US7412495B2 (en) * 2002-04-26 2008-08-12 Sun Microsystems, Inc. Method, system, and article of manufacture for a server side application
US7058940B2 (en) * 2002-05-23 2006-06-06 Bea Systems, Inc. System and method for extending application functionality and content
US20040001476A1 (en) * 2002-06-24 2004-01-01 Nayeem Islam Mobile application environment
US7676576B1 (en) 2002-08-01 2010-03-09 Foundry Networks, Inc. Method and system to clear counters used for statistical tracking for global server load balancing
US7086061B1 (en) 2002-08-01 2006-08-01 Foundry Networks, Inc. Statistical tracking of global server load balancing for selecting the best network address from ordered list of network addresses based on a set of performance metrics
US7418702B2 (en) * 2002-08-06 2008-08-26 Sheng (Ted) Tai Tsao Concurrent web based multi-task support for control management system
US7574508B1 (en) * 2002-08-07 2009-08-11 Foundry Networks, Inc. Canonical name (CNAME) handling for global server load balancing
US7114148B2 (en) * 2002-09-30 2006-09-26 Microsoft Corporation Runtime services for network software platform
US7827135B2 (en) * 2002-12-31 2010-11-02 International Business Machines Corporation Method and apparatus for relaxed transactional isolation in a client-server caching architecture
US7617278B1 (en) 2003-01-29 2009-11-10 Adobe Systems Incorporated Client controllable server-side playlists
US7246356B1 (en) 2003-01-29 2007-07-17 Adobe Systems Incorporated Method and system for facilitating comunications between an interactive multimedia client and an interactive multimedia communication server
US7272658B1 (en) 2003-02-13 2007-09-18 Adobe Systems Incorporated Real-time priority-based media communication
US7287256B1 (en) 2003-03-28 2007-10-23 Adobe Systems Incorporated Shared persistent objects
AU2004228342A1 (en) * 2003-04-04 2004-10-21 Computer Associates Think, Inc. Method and system for management and configuration of remote agents
US7349950B2 (en) * 2003-04-10 2008-03-25 At&T Delaware Intellectual Property, Inc. Method, system and storage medium for accessing dynamic content
US20040205162A1 (en) * 2003-04-11 2004-10-14 Parikh Jay G. Method of executing an edge-enabled application in a content delivery network (CDN)
US7660896B1 (en) 2003-04-15 2010-02-09 Akamai Technologies, Inc. Method of load balancing edge-enabled applications in a content delivery network (CDN)
US8423662B1 (en) * 2003-04-28 2013-04-16 Akamai Technologies, Inc. Forward request queuing in a distributed edge processing environment
US7143170B2 (en) * 2003-04-30 2006-11-28 Akamai Technologies, Inc. Automatic migration of data via a distributed computer network
US20040225724A1 (en) * 2003-05-08 2004-11-11 Gregory Pavlik RPC type SOAP service access via taglibs for dynamic web content
US7210137B1 (en) * 2003-05-13 2007-04-24 Microsoft Corporation Memory mapping and parsing application data
US8473635B1 (en) * 2003-05-19 2013-06-25 Akamai Technologies, Inc. Provisioning tool for a distributed computer network
US7085762B2 (en) * 2003-05-22 2006-08-01 International Business Machines Corporation Methods, systems and computer program products for web services access of analytical models
US7900240B2 (en) * 2003-05-28 2011-03-01 Citrix Systems, Inc. Multilayer access control security system
US9525566B2 (en) * 2003-07-31 2016-12-20 Cloudsoft Corporation Limited Self-managed mediated information flow
US7831693B2 (en) * 2003-08-18 2010-11-09 Oracle America, Inc. Structured methodology and design patterns for web services
US8069435B1 (en) * 2003-08-18 2011-11-29 Oracle America, Inc. System and method for integration of web services
US7698398B1 (en) 2003-08-18 2010-04-13 Sun Microsystems, Inc. System and method for generating Web Service architectures using a Web Services structured methodology
US8719242B2 (en) * 2003-08-29 2014-05-06 Sap Ag System and method for a database access statement interceptor
US9584360B2 (en) * 2003-09-29 2017-02-28 Foundry Networks, Llc Global server load balancing support for private VIP addresses
US7653915B1 (en) * 2003-10-10 2010-01-26 Emc Corporation N X M platform combination
US7689986B2 (en) * 2003-10-21 2010-03-30 Gemstone Systems, Inc. Shared listeners in shared object space
US7978716B2 (en) 2003-11-24 2011-07-12 Citrix Systems, Inc. Systems and methods for providing a VPN solution
US7487498B2 (en) 2003-11-12 2009-02-03 Microsoft Corporation Strategy for referencing code resources
CN1620060B (zh) * 2003-11-17 2010-04-28 国际商业机器公司 把浏览器不兼容的信息整合在网络内容中以及显示该信息的方法和设备
US7331047B2 (en) * 2003-11-25 2008-02-12 Microsoft Corporation Deterministic system and method for implementing software distributed between a desktop and a remote device
US8190780B2 (en) * 2003-12-30 2012-05-29 Sap Ag Cluster architecture having a star topology with centralized services
US7487513B1 (en) 2003-12-30 2009-02-03 Sap Ag Web service archive
CA2463006A1 (en) * 2004-01-27 2005-07-27 Wrapped Apps Corporation On demand provisioning of web applications
US7650344B2 (en) * 2004-02-09 2010-01-19 Coremetrics, Inc. System and method of managing software product-line customizations
US7266804B2 (en) * 2004-02-20 2007-09-04 Microsoft Corporation Strategy for selectively making non-public resources of one assembly visible to another
US20050188222A1 (en) * 2004-02-24 2005-08-25 Covelight Systems, Inc. Methods, systems and computer program products for monitoring user login activity for a server application
US20050188080A1 (en) * 2004-02-24 2005-08-25 Covelight Systems, Inc. Methods, systems and computer program products for monitoring user access for a server application
US20050187934A1 (en) * 2004-02-24 2005-08-25 Covelight Systems, Inc. Methods, systems and computer program products for geography and time monitoring of a server application user
US20050188079A1 (en) * 2004-02-24 2005-08-25 Covelight Systems, Inc. Methods, systems and computer program products for monitoring usage of a server application
US7373524B2 (en) * 2004-02-24 2008-05-13 Covelight Systems, Inc. Methods, systems and computer program products for monitoring user behavior for a server application
US20050204182A1 (en) * 2004-02-27 2005-09-15 Smith Michael D. Method and system for a service consumer to control applications that behave incorrectly when requesting services
US7996323B2 (en) * 2004-02-27 2011-08-09 Microsoft Corporation Method and system for a service provider to control exposure to non-payment by a service consumer
US8782654B2 (en) 2004-03-13 2014-07-15 Adaptive Computing Enterprises, Inc. Co-allocating a reservation spanning different compute resources types
WO2005089239A2 (en) * 2004-03-13 2005-09-29 Cluster Resources, Inc. System and method of providing a self-optimizing reservation in space of compute resources
US20050210109A1 (en) * 2004-03-22 2005-09-22 International Business Machines Corporation Load balancing mechanism for publish/subscribe broker messaging system
US8589787B2 (en) * 2004-04-20 2013-11-19 American Express Travel Related Services Company, Inc. Centralized field rendering system and method
US7653900B2 (en) * 2004-04-22 2010-01-26 Blue Coat Systems, Inc. System and method for remote application process control
US8954590B2 (en) * 2004-04-27 2015-02-10 Sap Ag Tunneling apparatus and method for client-server communication
US20050240574A1 (en) * 2004-04-27 2005-10-27 International Business Machines Corporation Pre-fetching resources based on a resource lookup query
US7818444B2 (en) * 2004-04-30 2010-10-19 Move Networks, Inc. Apparatus, system, and method for multi-bitrate content streaming
US8868772B2 (en) 2004-04-30 2014-10-21 Echostar Technologies L.L.C. Apparatus, system, and method for adaptive-rate shifting of streaming content
US7797697B2 (en) * 2004-05-05 2010-09-14 Bea Systems, Inc. System and method for deploying applications with library modules
US7584301B1 (en) 2004-05-06 2009-09-01 Foundry Networks, Inc. Host-level policies for global server load balancing
US20050251495A1 (en) * 2004-05-06 2005-11-10 Bea Systems, Inc. System and method for unified file management
US7496651B1 (en) 2004-05-06 2009-02-24 Foundry Networks, Inc. Configurable geographic prefixes for global server load balancing
US7730112B2 (en) * 2004-05-10 2010-06-01 Bea Systems Inc. Scoped applications
US7761865B2 (en) * 2004-05-11 2010-07-20 Sap Ag Upgrading pattern configurations
US7428733B2 (en) * 2004-05-13 2008-09-23 Bea Systems, Inc. System and method for custom module creation and deployment
US7814484B2 (en) * 2004-05-14 2010-10-12 Bea Systems, Inc. System and method for web application extensibility
US7707572B2 (en) * 2004-05-19 2010-04-27 Bea Systems, Inc. System and method for application container architecture
US20050267918A1 (en) * 2004-05-28 2005-12-01 Gatev Andrei A System and method for bundling deployment descriptor files within an enterprise archive for fast reliable resource setup at deployment time
US20070266388A1 (en) 2004-06-18 2007-11-15 Cluster Resources, Inc. System and method for providing advanced reservations in a compute environment
US7761800B2 (en) 2004-06-25 2010-07-20 Apple Inc. Unified interest layer for user interface
US7490295B2 (en) 2004-06-25 2009-02-10 Apple Inc. Layer for accessing user interface elements
US7546543B2 (en) * 2004-06-25 2009-06-09 Apple Inc. Widget authoring and editing environment
US8302020B2 (en) 2004-06-25 2012-10-30 Apple Inc. Widget authoring and editing environment
US8566732B2 (en) 2004-06-25 2013-10-22 Apple Inc. Synchronization of widgets and dashboards
US8239749B2 (en) 2004-06-25 2012-08-07 Apple Inc. Procedurally expressing graphic objects for web pages
US8453065B2 (en) 2004-06-25 2013-05-28 Apple Inc. Preview and installation of user interface elements in a display environment
US8739274B2 (en) * 2004-06-30 2014-05-27 Citrix Systems, Inc. Method and device for performing integrated caching in a data communication network
US7757074B2 (en) 2004-06-30 2010-07-13 Citrix Application Networking, Llc System and method for establishing a virtual private network
US8495305B2 (en) 2004-06-30 2013-07-23 Citrix Systems, Inc. Method and device for performing caching of dynamically generated objects in a data communication network
US20060004688A1 (en) * 2004-07-02 2006-01-05 Scanlon James R Systems and methods for integrating various processes
US7613805B1 (en) * 2004-07-07 2009-11-03 Sprint Communications Company L.P. Data store wrapper enhancements
US7634755B2 (en) * 2004-07-13 2009-12-15 International Business Machines Corporation Application splitting for network edge computing
EP2264956B1 (en) 2004-07-23 2017-06-14 Citrix Systems, Inc. Method for securing remote access to private networks
JP2008507928A (ja) 2004-07-23 2008-03-13 サイトリックス システムズ, インコーポレイテッド ネットワークノード間の通信を最適化するためのシステムおよび方法
US8176490B1 (en) 2004-08-20 2012-05-08 Adaptive Computing Enterprises, Inc. System and method of interfacing a workload manager and scheduler with an identity manager
US7423977B1 (en) 2004-08-23 2008-09-09 Foundry Networks Inc. Smoothing algorithm for round trip time (RTT) measurements
US7519684B2 (en) 2004-09-28 2009-04-14 International Business Machines Corporation Extensible URI-pattern-based servlet request processing framework
US8613048B2 (en) 2004-09-30 2013-12-17 Citrix Systems, Inc. Method and apparatus for providing authorized remote access to application sessions
US7748032B2 (en) 2004-09-30 2010-06-29 Citrix Systems, Inc. Method and apparatus for associating tickets in a ticket hierarchy
US7711835B2 (en) 2004-09-30 2010-05-04 Citrix Systems, Inc. Method and apparatus for reducing disclosure of proprietary data in a networked environment
US7895591B2 (en) * 2004-10-21 2011-02-22 Oracle International Corp. File deployment system and method
US7849459B2 (en) * 2004-11-04 2010-12-07 International Business Machines Corporation Deploying java applications in resource constrained environments
US20060106856A1 (en) * 2004-11-04 2006-05-18 International Business Machines Corporation Method and system for dynamic transform and load of data from a data source defined by metadata into a data store defined by metadata
WO2006053093A2 (en) 2004-11-08 2006-05-18 Cluster Resources, Inc. System and method of providing system jobs within a compute environment
US7792851B2 (en) * 2004-12-02 2010-09-07 International Business Machines Corporation Mechanism for defining queries in terms of data objects
US7769747B2 (en) * 2004-12-02 2010-08-03 International Business Machines Corporation Method and apparatus for generating a service data object based service pattern for an enterprise Java beans model
US9043781B2 (en) * 2004-12-03 2015-05-26 International Business Machines Corporation Algorithm for automated enterprise deployments
US7600217B2 (en) 2004-12-14 2009-10-06 Sap Ag Socket-like communication API for Java
US7593930B2 (en) * 2004-12-14 2009-09-22 Sap Ag Fast channel architecture
US7580915B2 (en) 2004-12-14 2009-08-25 Sap Ag Socket-like communication API for C
US7694065B2 (en) 2004-12-28 2010-04-06 Sap Ag Distributed cache architecture
US8204931B2 (en) 2004-12-28 2012-06-19 Sap Ag Session management within a multi-tiered enterprise network
US7689989B2 (en) * 2004-12-28 2010-03-30 Sap Ag Thread monitoring using shared memory
US20060143256A1 (en) 2004-12-28 2006-06-29 Galin Galchev Cache region concept
US7886294B2 (en) * 2004-12-28 2011-02-08 Sap Ag Virtual machine monitoring
US8954595B2 (en) 2004-12-30 2015-02-10 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP buffering
US7810089B2 (en) * 2004-12-30 2010-10-05 Citrix Systems, Inc. Systems and methods for automatic installation and execution of a client-side acceleration program
US8700695B2 (en) 2004-12-30 2014-04-15 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP pooling
US8706877B2 (en) 2004-12-30 2014-04-22 Citrix Systems, Inc. Systems and methods for providing client-side dynamic redirection to bypass an intermediary
US8549149B2 (en) 2004-12-30 2013-10-01 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP multiplexing
JP4169771B2 (ja) * 2005-01-05 2008-10-22 富士通株式会社 Webサーバ、Webアプリケーションテスト方法、Webアプリケーションテストプログラム
US8140975B2 (en) 2005-01-07 2012-03-20 Apple Inc. Slide show navigation
US8103644B2 (en) * 2005-01-12 2012-01-24 Microsoft Corporation Data access layer class generator
AU2005325674A1 (en) 2005-01-24 2006-08-03 Citrix Systems, Inc. Systems and methods for performing caching of dynamically generated objects in a network
US8255456B2 (en) 2005-12-30 2012-08-28 Citrix Systems, Inc. System and method for performing flash caching of dynamically generated objects in a data communication network
US8024568B2 (en) 2005-01-28 2011-09-20 Citrix Systems, Inc. Method and system for verification of an endpoint security scan
US8286157B2 (en) * 2005-02-28 2012-10-09 International Business Machines Corporation Method, system and program product for managing applications in a shared computer infrastructure
US8863143B2 (en) 2006-03-16 2014-10-14 Adaptive Computing Enterprises, Inc. System and method for managing a hybrid compute environment
US9231886B2 (en) 2005-03-16 2016-01-05 Adaptive Computing Enterprises, Inc. Simple integration of an on-demand compute environment
CA2603577A1 (en) 2005-04-07 2006-10-12 Cluster Resources, Inc. On-demand access to compute resources
US8060860B2 (en) * 2005-04-22 2011-11-15 Apple Inc. Security methods and systems
US8370514B2 (en) * 2005-04-28 2013-02-05 DISH Digital L.L.C. System and method of minimizing network bandwidth retrieved from an external network
US8683066B2 (en) 2007-08-06 2014-03-25 DISH Digital L.L.C. Apparatus, system, and method for multi-bitrate content streaming
US20080263180A1 (en) * 2007-04-19 2008-10-23 Hurst Mark B Apparatus, system, and method for resilient content acquisition
US8589562B2 (en) 2005-04-29 2013-11-19 Sap Ag Flexible failover configuration
US9407608B2 (en) 2005-05-26 2016-08-02 Citrix Systems, Inc. Systems and methods for enhanced client side policy
US9692725B2 (en) 2005-05-26 2017-06-27 Citrix Systems, Inc. Systems and methods for using an HTTP-aware client agent
US8943304B2 (en) 2006-08-03 2015-01-27 Citrix Systems, Inc. Systems and methods for using an HTTP-aware client agent
US9621666B2 (en) 2005-05-26 2017-04-11 Citrix Systems, Inc. Systems and methods for enhanced delta compression
US20060288401A1 (en) * 2005-06-03 2006-12-21 International Business Machines Corporation System and method for generating a Java policy file for Eclipse plug-ins
US8543931B2 (en) 2005-06-07 2013-09-24 Apple Inc. Preview including theme based installation of user interface elements in a display environment
US8230414B1 (en) * 2005-06-16 2012-07-24 Infinera Corporation Software distribution and cache management across client machines on a network
US20060294041A1 (en) * 2005-06-23 2006-12-28 International Business Machines Corporation Installing a component to an application server
US8886620B1 (en) * 2005-08-16 2014-11-11 F5 Networks, Inc. Enabling ordered page flow browsing using HTTP cookies
US7461274B2 (en) * 2005-08-23 2008-12-02 International Business Machines Corporation Method for maximizing server utilization in a resource constrained environment
US7512942B2 (en) * 2005-08-24 2009-03-31 International Business Machines Corporation Model-driven software deployment in an application server
US8082468B1 (en) 2008-12-15 2011-12-20 Open Invention Networks, Llc Method and system for providing coordinated checkpointing to a group of independent computer applications
US7945677B2 (en) * 2005-09-06 2011-05-17 Sap Ag Connection manager capable of supporting both distributed computing sessions and non distributed computing sessions
US8429630B2 (en) 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
US20070067440A1 (en) * 2005-09-22 2007-03-22 Bhogal Kulvir S Application splitting for network edge computing
US20070074105A1 (en) * 2005-09-26 2007-03-29 Bea Systems, Inc. System and method for providing display templates for content management
US7752556B2 (en) 2005-10-27 2010-07-06 Apple Inc. Workflow widgets
US8543824B2 (en) 2005-10-27 2013-09-24 Apple Inc. Safe distribution and use of content
US7954064B2 (en) 2005-10-27 2011-05-31 Apple Inc. Multiple dashboards
US7743336B2 (en) 2005-10-27 2010-06-22 Apple Inc. Widget security
US9104294B2 (en) 2005-10-27 2015-08-11 Apple Inc. Linked widgets
US8161159B1 (en) 2005-10-31 2012-04-17 Adobe Systems Incorporated Network configuration with smart edge servers
US7945615B1 (en) * 2005-10-31 2011-05-17 Adobe Systems Incorporated Distributed shared persistent objects
US20060047780A1 (en) * 2005-11-08 2006-03-02 Gregory Patnude Method and apparatus for web-based, schema-driven application-server and client-interface package using a generalized, data-object format and asynchronous communication methods without the use of a markup language.
US7707514B2 (en) 2005-11-18 2010-04-27 Apple Inc. Management of user interface elements in a display environment
US8429629B2 (en) * 2005-11-30 2013-04-23 Red Hat, Inc. In-kernel virtual machine for low overhead startup and low resource usage
US8612970B2 (en) * 2005-11-30 2013-12-17 Red Hat, Inc. Purpose domain for low overhead virtual machines
CA2632235A1 (en) 2005-12-02 2007-06-07 Citrix Systems, Inc. Method and apparatus for providing authentication credentials from a proxy server to a virtualized computing environment to access a remote resource
US8707323B2 (en) 2005-12-30 2014-04-22 Sap Ag Load balancing algorithm for servicing client requests
US7921184B2 (en) 2005-12-30 2011-04-05 Citrix Systems, Inc. System and method for performing flash crowd caching of dynamically generated objects in a data communication network
US8301839B2 (en) 2005-12-30 2012-10-30 Citrix Systems, Inc. System and method for performing granular invalidation of cached dynamically generated objects in a data communication network
US7587399B2 (en) * 2005-12-30 2009-09-08 Sap Ag Integrated software toolset for a web server
US7660296B2 (en) * 2005-12-30 2010-02-09 Akamai Technologies, Inc. Reliable, high-throughput, high-performance transport and routing mechanism for arbitrary data flows
US7685272B2 (en) * 2006-01-13 2010-03-23 Microsoft Corporation Application server external resource monitor
US7904547B2 (en) * 2006-02-21 2011-03-08 International Business Machines Corporation Method, system, and program product for optimizing monitoring and discovery services for a grid computing environment
US8117611B2 (en) * 2006-03-01 2012-02-14 International Business Machines Corporation Method, system, and program product for deploying a platform dependent application in a grid environment
US8572138B2 (en) * 2006-03-30 2013-10-29 Ca, Inc. Distributed computing system having autonomic deployment of virtual machine disk images
US9384103B2 (en) * 2006-05-16 2016-07-05 Oracle International Corporation EJB cluster timer
US9250972B2 (en) * 2006-06-19 2016-02-02 International Business Machines Corporation Orchestrated peer-to-peer server provisioning
US20080005733A1 (en) * 2006-06-29 2008-01-03 Balaji Ramachandran Method and apparatus for updating firmware and software
US9069870B2 (en) * 2006-07-12 2015-06-30 International Business Machines Corporation Client-side aggregation of context-sensitive request results where results for aggregation are asynchronously produced by multiple servers
US8392977B2 (en) * 2006-08-03 2013-03-05 Citrix Systems, Inc. Systems and methods for using a client agent to manage HTTP authentication cookies
US8561155B2 (en) 2006-08-03 2013-10-15 Citrix Systems, Inc. Systems and methods for using a client agent to manage HTTP authentication cookies
US8869027B2 (en) 2006-08-04 2014-10-21 Apple Inc. Management and generation of dashboards
US8010849B2 (en) * 2006-09-05 2011-08-30 Arm Limited Diagnosing faults within programs being executed by virtual machines
US20080127234A1 (en) * 2006-09-19 2008-05-29 International Business Machines Corporation Methods, systems, and computer program products for a remote request dispatcher extension framework for container based programming models
US20080071922A1 (en) * 2006-09-19 2008-03-20 International Business Machines Corporation Methods, systems, and computer program products to transparently dispatch requests to remote resources in a multiple application server environment
US8533846B2 (en) 2006-11-08 2013-09-10 Citrix Systems, Inc. Method and system for dynamically associating access rights with a resource
US8006281B2 (en) * 2006-12-21 2011-08-23 Microsoft Corporation Network accessible trusted code
US8640086B2 (en) * 2006-12-29 2014-01-28 Sap Ag Graphical user interface system and method for presenting objects
US9311082B2 (en) 2006-12-29 2016-04-12 Sap Se System and method for processing graph objects
US8327350B2 (en) * 2007-01-02 2012-12-04 International Business Machines Corporation Virtual resource templates
US8108855B2 (en) * 2007-01-02 2012-01-31 International Business Machines Corporation Method and apparatus for deploying a set of virtual software resource templates to a set of nodes
US7970891B1 (en) * 2007-01-17 2011-06-28 Google Inc. Tracking links in web browsers
US9026638B2 (en) * 2007-02-05 2015-05-05 Novell, Inc. Stealth entropy collection
US7796510B2 (en) 2007-03-12 2010-09-14 Citrix Systems, Inc. Systems and methods for providing virtual fair queueing of network traffic
US7760642B2 (en) 2007-03-12 2010-07-20 Citrix Systems, Inc. Systems and methods for providing quality of service precedence in TCP congestion control
US7941788B2 (en) * 2007-03-21 2011-05-10 International Business Machines Corporation Operating system support for thread-level breakpoints
US8640215B2 (en) * 2007-03-23 2014-01-28 Microsoft Corporation Secure isolation of application pools
US7991910B2 (en) 2008-11-17 2011-08-02 Amazon Technologies, Inc. Updating routing information based on client location
US8239505B2 (en) * 2007-06-29 2012-08-07 Microsoft Corporation Progressively implementing declarative models in distributed systems
US8028090B2 (en) 2008-11-17 2011-09-27 Amazon Technologies, Inc. Request routing utilizing client location information
US8615008B2 (en) 2007-07-11 2013-12-24 Foundry Networks Llc Duplicating network traffic through transparent VLAN flooding
US8954871B2 (en) 2007-07-18 2015-02-10 Apple Inc. User-centric widgets and dashboards
US9727397B2 (en) * 2007-07-23 2017-08-08 Paypal, Inc. Container-less JSP template
US8667415B2 (en) 2007-08-06 2014-03-04 Apple Inc. Web widgets
US9432243B2 (en) * 2007-08-22 2016-08-30 International Business Machines Corporation Re-using asynchronous server-side results generated for a request context of one client to satisfy a request context of a different client
US7698411B2 (en) * 2007-08-22 2010-04-13 International Business Machines Corporation Selectively delivering cached content or processed content to clients based upon a result completed percentage
US8032587B2 (en) * 2007-08-28 2011-10-04 International Business Machines Corporation Method and apparatus for client-side aggregation of asynchronous fragmented requests
US8230386B2 (en) * 2007-08-23 2012-07-24 Microsoft Corporation Monitoring distributed applications
US9058571B2 (en) * 2007-08-31 2015-06-16 Red Hat, Inc. Tool for automated transformation of a business process definition into a web application package
US8370802B2 (en) 2007-09-18 2013-02-05 International Business Machines Corporation Specifying an order for changing an operational state of software application components
US8041773B2 (en) 2007-09-24 2011-10-18 The Research Foundation Of State University Of New York Automatic clustering for self-organizing grids
US8121117B1 (en) 2007-10-01 2012-02-21 F5 Networks, Inc. Application layer network traffic prioritization
US8248928B1 (en) 2007-10-09 2012-08-21 Foundry Networks, Llc Monitoring server load balancing
US7925694B2 (en) * 2007-10-19 2011-04-12 Citrix Systems, Inc. Systems and methods for managing cookies via HTTP content layer
US8099720B2 (en) 2007-10-26 2012-01-17 Microsoft Corporation Translating declarative models
US20090112932A1 (en) * 2007-10-26 2009-04-30 Microsoft Corporation Visualizing key performance indicators for model-based applications
US20090113292A1 (en) * 2007-10-26 2009-04-30 Microsoft Corporation Flexibly editing heterogeneous documents
US7974939B2 (en) * 2007-10-26 2011-07-05 Microsoft Corporation Processing model-based commands for distributed applications
US8225308B2 (en) * 2007-10-26 2012-07-17 Microsoft Corporation Managing software lifecycle
US8341647B2 (en) * 2007-11-30 2012-12-25 International Business Machines Corporation System and method for querying historical bean data
US8930960B2 (en) * 2007-12-18 2015-01-06 Sap Se Methods and systems for object interpretation within a shared object space
GB2456026A (en) * 2007-12-26 2009-07-01 Contendo Inc CDN balancing and sharing platform
US8543667B2 (en) 2008-01-14 2013-09-24 Akamai Technologies, Inc. Policy-based content insertion
US8190760B2 (en) * 2008-01-15 2012-05-29 Echostar Advanced Technologies L.L.C. System and method of managing multiple video players
US9832442B2 (en) 2008-01-15 2017-11-28 Echostar Technologies Llc System and method of managing multiple video players executing on multiple devices
US8090877B2 (en) 2008-01-26 2012-01-03 Citrix Systems, Inc. Systems and methods for fine grain policy driven cookie proxying
US8375379B2 (en) * 2008-01-31 2013-02-12 SAP France S.A. Importing language extension resources to support application execution
US20090199159A1 (en) * 2008-01-31 2009-08-06 Microsoft Corporation Declarative execution context splitting
US8176114B2 (en) * 2008-02-28 2012-05-08 Oracle International Corporation Distributed cross-application server deployment
US20090228838A1 (en) * 2008-03-04 2009-09-10 Ryan Christopher N Content design tool
US8364788B2 (en) * 2008-03-13 2013-01-29 Hewlett-Packard Development Company, L.P. Processing client requests for common services according to one or more canonical forms
US20090235353A1 (en) * 2008-03-15 2009-09-17 Microsoft Corporation Scalable Hosting of User Solutions
US8316101B2 (en) * 2008-03-15 2012-11-20 Microsoft Corporation Resource management system for hosting of user solutions
US7970820B1 (en) 2008-03-31 2011-06-28 Amazon Technologies, Inc. Locality based content distribution
US8447831B1 (en) 2008-03-31 2013-05-21 Amazon Technologies, Inc. Incentive driven content delivery
US8601090B1 (en) 2008-03-31 2013-12-03 Amazon Technologies, Inc. Network resource identification
US8156243B2 (en) * 2008-03-31 2012-04-10 Amazon Technologies, Inc. Request routing
US7962597B2 (en) 2008-03-31 2011-06-14 Amazon Technologies, Inc. Request routing based on class
US8321568B2 (en) 2008-03-31 2012-11-27 Amazon Technologies, Inc. Content management
US8606996B2 (en) 2008-03-31 2013-12-10 Amazon Technologies, Inc. Cache optimization
US8533293B1 (en) 2008-03-31 2013-09-10 Amazon Technologies, Inc. Client side cache management
US9762692B2 (en) 2008-04-04 2017-09-12 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
US8930538B2 (en) 2008-04-04 2015-01-06 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
US10924573B2 (en) 2008-04-04 2021-02-16 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
US20090265704A1 (en) * 2008-04-17 2009-10-22 Branda Steven J Application Management for Reducing Energy Costs
US20090265419A1 (en) * 2008-04-17 2009-10-22 Branda Steven J Executing Applications at Servers With Low Energy Costs
US8789168B2 (en) * 2008-05-12 2014-07-22 Microsoft Corporation Media streams from containers processed by hosted code
CN102037710B (zh) * 2008-05-19 2014-04-02 思杰系统有限公司 用于远程处理多媒体插件调用的方法和系统
US9094301B2 (en) * 2008-05-30 2015-07-28 Red Hat, Inc. Provisioning network resources by environment and network address
CN101296243B (zh) * 2008-06-26 2013-02-20 阿里巴巴集团控股有限公司 一种服务集成平台系统及提供互联网服务的方法
US8015213B2 (en) * 2008-06-26 2011-09-06 Microsoft Corporation Content having native and export portions
US9912740B2 (en) 2008-06-30 2018-03-06 Amazon Technologies, Inc. Latency measurement in resource requests
US9407681B1 (en) 2010-09-28 2016-08-02 Amazon Technologies, Inc. Latency measurement in resource requests
US7925782B2 (en) 2008-06-30 2011-04-12 Amazon Technologies, Inc. Request routing using network computing components
GB2463329B (en) 2008-09-10 2013-02-20 Echostar Advanced Technologies L L C Set-top box emulation system
US20100070552A1 (en) * 2008-09-12 2010-03-18 Charles Austin Parker Providing a Socket Connection between a Java Server and a Host Environment
US8117306B1 (en) 2008-09-29 2012-02-14 Amazon Technologies, Inc. Optimizing content management
US8122124B1 (en) 2008-09-29 2012-02-21 Amazon Technologies, Inc. Monitoring performance and operation of data exchanges
US8286176B1 (en) 2008-09-29 2012-10-09 Amazon Technologies, Inc. Optimizing resource configurations
US7930393B1 (en) 2008-09-29 2011-04-19 Amazon Technologies, Inc. Monitoring domain allocation performance
US7865594B1 (en) 2008-09-29 2011-01-04 Amazon Technologies, Inc. Managing resources consolidation configurations
US8316124B1 (en) 2008-09-29 2012-11-20 Amazon Technologies, Inc. Managing network data display
US8051287B2 (en) 2008-10-15 2011-11-01 Adobe Systems Incorporated Imparting real-time priority-based network communications in an encrypted communication session
US8321401B2 (en) 2008-10-17 2012-11-27 Echostar Advanced Technologies L.L.C. User interface with available multimedia content from multiple multimedia websites
US20120209942A1 (en) * 2008-10-28 2012-08-16 Cotendo, Inc. System combining a cdn reverse proxy and an edge forward proxy with secure connections
US20110219109A1 (en) * 2008-10-28 2011-09-08 Cotendo, Inc. System and method for sharing transparent proxy between isp and cdn
US9542222B2 (en) * 2008-11-14 2017-01-10 Oracle International Corporation Resource broker system for dynamically deploying and managing software services in a virtual environment based on resource usage and service level agreement
US8732309B1 (en) 2008-11-17 2014-05-20 Amazon Technologies, Inc. Request routing utilizing cost information
US8521880B1 (en) 2008-11-17 2013-08-27 Amazon Technologies, Inc. Managing content delivery network service providers
US8122098B1 (en) 2008-11-17 2012-02-21 Amazon Technologies, Inc. Managing content delivery network service providers by a content broker
US8065417B1 (en) 2008-11-17 2011-11-22 Amazon Technologies, Inc. Service provider registration by a content broker
US8073940B1 (en) 2008-11-17 2011-12-06 Amazon Technologies, Inc. Managing content delivery network service providers
US8060616B1 (en) 2008-11-17 2011-11-15 Amazon Technologies, Inc. Managing CDN registration by a storage provider
US8073829B2 (en) * 2008-11-24 2011-12-06 Microsoft Corporation HTTP cache with URL rewriting
US8745361B2 (en) 2008-12-02 2014-06-03 Microsoft Corporation Sandboxed execution of plug-ins
US8880473B1 (en) 2008-12-15 2014-11-04 Open Invention Network, Llc Method and system for providing storage checkpointing to a group of independent computer applications
US8341631B2 (en) 2009-04-10 2012-12-25 Open Invention Network Llc System and method for application isolation
US8539488B1 (en) 2009-04-10 2013-09-17 Open Invention Network, Llc System and method for application isolation with live migration
US8464256B1 (en) 2009-04-10 2013-06-11 Open Invention Network, Llc System and method for hierarchical interception with isolated environments
US9020881B2 (en) * 2008-12-19 2015-04-28 Sap Se Public solution model in an enterprise service architecture
US8645324B2 (en) 2009-01-09 2014-02-04 Pivotal Software, Inc. Preventing pauses in algorithms requiring pre-image information concerning modifications during data replication
US9009066B2 (en) * 2009-02-12 2015-04-14 Echostar Technologies L.L.C. Advertisement management for live internet multimedia content
US9244882B2 (en) * 2009-02-26 2016-01-26 Red Hat, Inc. Provisioning network resources based on environment
US8224934B1 (en) * 2009-03-09 2012-07-17 Netapp, Inc. Running third party applications as embedded agents in a storage management server
US7917618B1 (en) 2009-03-24 2011-03-29 Amazon Technologies, Inc. Monitoring web site content
US8688837B1 (en) 2009-03-27 2014-04-01 Amazon Technologies, Inc. Dynamically translating resource identifiers for request routing using popularity information
US8756341B1 (en) 2009-03-27 2014-06-17 Amazon Technologies, Inc. Request routing utilizing popularity information
US8412823B1 (en) 2009-03-27 2013-04-02 Amazon Technologies, Inc. Managing tracking information entries in resource cache components
US8521851B1 (en) 2009-03-27 2013-08-27 Amazon Technologies, Inc. DNS query processing using resource identifiers specifying an application broker
US8892631B2 (en) 2009-04-09 2014-11-18 International Business Machines Corporation System and method of optimizing digital media processing in a carrier grade web portal environment
US8555360B1 (en) * 2009-04-10 2013-10-08 Open Invention Network Llc System and method for on-line and off-line streaming application isolation
US11538078B1 (en) 2009-04-10 2022-12-27 International Business Machines Corporation System and method for usage billing of hosted applications
US9577893B1 (en) 2009-04-10 2017-02-21 Open Invention Network Llc System and method for cached streaming application isolation
US8401941B1 (en) 2009-04-10 2013-03-19 Open Invention Network Llc System and method for usage billing of hosted applications
US8418236B1 (en) 2009-04-10 2013-04-09 Open Invention Network Llc System and method for streaming application isolation
US8401940B1 (en) 2009-04-10 2013-03-19 Open Invention Network Llc System and method for usage billing of hosted applications
US9058599B1 (en) 2009-04-10 2015-06-16 Open Invention Network, Llc System and method for usage billing of hosted applications
US8782236B1 (en) 2009-06-16 2014-07-15 Amazon Technologies, Inc. Managing resources using resource expiration data
EP2270665B1 (en) 2009-06-22 2023-07-26 Citrix Systems, Inc. Systems and methods for web logging of trace data in a multi-core system
US10410222B2 (en) * 2009-07-23 2019-09-10 DISH Technologies L.L.C. Messaging service for providing updates for multimedia content of a live event delivered over the internet
US8166191B1 (en) 2009-08-17 2012-04-24 Adobe Systems Incorporated Hint based media content streaming
US8412841B1 (en) 2009-08-17 2013-04-02 Adobe Systems Incorporated Media content streaming using stream message fragments
WO2011022405A2 (en) 2009-08-17 2011-02-24 Akamai Technologies, Inc. Method and system for http-based stream delivery
US8874724B2 (en) * 2009-08-26 2014-10-28 At&T Intellectual Property I, L.P. Using a content delivery network for security monitoring
US8397073B1 (en) * 2009-09-04 2013-03-12 Amazon Technologies, Inc. Managing secure content in a content delivery network
US9203816B2 (en) * 2009-09-04 2015-12-01 Echostar Technologies L.L.C. Controlling access to copies of media content by a client device
US8433771B1 (en) 2009-10-02 2013-04-30 Amazon Technologies, Inc. Distribution network with forward resource propagation
US8199752B2 (en) 2009-10-02 2012-06-12 Limelight Networks, Inc. Enhanced anycast for edge server selection
US11720290B2 (en) 2009-10-30 2023-08-08 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US10877695B2 (en) 2009-10-30 2020-12-29 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US10721269B1 (en) 2009-11-06 2020-07-21 F5 Networks, Inc. Methods and system for returning requests with javascript for clients before passing a request to a server
US8397298B2 (en) * 2009-12-08 2013-03-12 At&T Intellectual Property I, L.P. Method and system for content distribution network security
US8331370B2 (en) 2009-12-17 2012-12-11 Amazon Technologies, Inc. Distributed routing architecture
US8331371B2 (en) 2009-12-17 2012-12-11 Amazon Technologies, Inc. Distributed routing architecture
US9338523B2 (en) * 2009-12-21 2016-05-10 Echostar Technologies L.L.C. Audio splitting with codec-enforced frame sizes
US9495338B1 (en) 2010-01-28 2016-11-15 Amazon Technologies, Inc. Content distribution network
US9510029B2 (en) 2010-02-11 2016-11-29 Echostar Advanced Technologies L.L.C. Systems and methods to provide trick play during streaming playback
US8627309B2 (en) 2010-02-25 2014-01-07 Microsoft Corporation Automated deployment and servicing of distributed applications
US9031996B2 (en) * 2010-03-15 2015-05-12 Salesforce.Com System, method and computer program product for creating a plurality of CNAMES for a website
EP2583189B1 (en) 2010-06-18 2018-09-19 Akamai Technologies, Inc. Extending a content delivery network (cdn) into a mobile or wireline network
CN101888385B (zh) * 2010-06-30 2013-04-24 北京世纪互联宽带数据中心有限公司 多媒体安全信令系统
CN101902468B (zh) * 2010-06-30 2013-03-20 北京世纪互联宽带数据中心有限公司 多媒体安全信令系统
CN101877709A (zh) * 2010-06-30 2010-11-03 北京世纪互联宽带数据中心有限公司 多媒体安全信令系统
US9420049B1 (en) 2010-06-30 2016-08-16 F5 Networks, Inc. Client side human user indicator
CN101888384B (zh) * 2010-06-30 2014-02-05 北京世纪互联宽带数据中心有限公司 多媒体安全信令系统
US9503375B1 (en) 2010-06-30 2016-11-22 F5 Networks, Inc. Methods for managing traffic in a multi-service environment and devices thereof
US8612413B2 (en) 2010-08-12 2013-12-17 Cdnetworks Co., Ltd. Distributed data cache for on-demand application acceleration
US8434060B2 (en) * 2010-08-17 2013-04-30 Sap Ag Component load procedure for setting up systems
US9021093B2 (en) 2010-08-17 2015-04-28 International Business Machines Corporation Managing and securing manageable resources in stateless web server architecture using servlet filters
US8756272B1 (en) 2010-08-26 2014-06-17 Amazon Technologies, Inc. Processing encoded content
US8924528B1 (en) 2010-09-28 2014-12-30 Amazon Technologies, Inc. Latency measurement in resource requests
US9003035B1 (en) 2010-09-28 2015-04-07 Amazon Technologies, Inc. Point of presence management in request routing
US9712484B1 (en) 2010-09-28 2017-07-18 Amazon Technologies, Inc. Managing request routing information utilizing client identifiers
US10097398B1 (en) 2010-09-28 2018-10-09 Amazon Technologies, Inc. Point of presence management in request routing
US8819283B2 (en) 2010-09-28 2014-08-26 Amazon Technologies, Inc. Request routing in a networked environment
US8468247B1 (en) 2010-09-28 2013-06-18 Amazon Technologies, Inc. Point of presence management in request routing
US8938526B1 (en) 2010-09-28 2015-01-20 Amazon Technologies, Inc. Request routing management based on network components
US10958501B1 (en) 2010-09-28 2021-03-23 Amazon Technologies, Inc. Request routing information based on client IP groupings
US8577992B1 (en) 2010-09-28 2013-11-05 Amazon Technologies, Inc. Request routing management based on network components
US8930513B1 (en) 2010-09-28 2015-01-06 Amazon Technologies, Inc. Latency measurement in resource requests
US20120089700A1 (en) * 2010-10-10 2012-04-12 Contendo, Inc. Proxy server configured for hierarchical caching and dynamic site acceleration and custom object and associated method
US8549148B2 (en) 2010-10-15 2013-10-01 Brocade Communications Systems, Inc. Domain name system security extensions (DNSSEC) for global server load balancing
US20120102085A1 (en) * 2010-10-22 2012-04-26 Unisys Corp. Resource adapter for inbound and outbound communications in an application server
US8468222B2 (en) * 2010-11-16 2013-06-18 Edgecast Networks, Inc. Discrete mapping for targeted caching
US8452874B2 (en) 2010-11-22 2013-05-28 Amazon Technologies, Inc. Request routing processing
US9391949B1 (en) 2010-12-03 2016-07-12 Amazon Technologies, Inc. Request routing processing
US8626950B1 (en) 2010-12-03 2014-01-07 Amazon Technologies, Inc. Request routing processing
US8880633B2 (en) 2010-12-17 2014-11-04 Akamai Technologies, Inc. Proxy server with byte-based include interpreter
CN103392320B (zh) 2010-12-29 2016-08-31 思杰系统有限公司 对加密项目进行多层标记以提供额外的安全和有效的加密项目确定的系统和方法
US10101787B1 (en) * 2011-03-31 2018-10-16 EMC IP Holding Company LLC Energy-aware virtual infrastructure
US8867337B2 (en) 2011-04-26 2014-10-21 International Business Machines Corporation Structure-aware caching
US10467042B1 (en) 2011-04-27 2019-11-05 Amazon Technologies, Inc. Optimized deployment based upon customer locality
EP2710784B1 (en) 2011-05-16 2017-12-06 F5 Networks, Inc A method for load balancing of requests' processing of diameter servers
US20120311076A1 (en) * 2011-05-31 2012-12-06 Cisco Technology, Inc. System and method to support different uniform resource locator formats for content on different network elements
US8799647B2 (en) 2011-08-31 2014-08-05 Sonic Ip, Inc. Systems and methods for application identification
US20130055255A1 (en) * 2011-08-31 2013-02-28 Rovi Technologies Corporation Systems and methods for common application platforms utilizing shared services
US8903702B2 (en) * 2011-08-31 2014-12-02 International Business Machines Corporation Generating specifications for expression language expressions and tag libraries
US9195479B2 (en) * 2011-10-17 2015-11-24 Google Inc. Selective notification of native applications
US20130111004A1 (en) * 2011-11-02 2013-05-02 Akamai Technologies, Inc. File manager having an HTTP-based user interface
US9432704B2 (en) 2011-11-06 2016-08-30 Akamai Technologies Inc. Segmented parallel encoding with frame-aware, variable-size chunking
CN103123593B (zh) * 2011-11-18 2016-08-31 腾讯科技(深圳)有限公司 Java应用服务器及处理Web业务的方法
WO2013090699A1 (en) 2011-12-14 2013-06-20 Level 3 Communications, Llc Content delivery network
US20130159528A1 (en) * 2011-12-15 2013-06-20 Microsoft Corporation Failover based application resource acquisition
CN103186400B (zh) * 2011-12-31 2016-01-13 深圳市金蝶中间件有限公司 Web应用程序升级方法及系统
US8789034B1 (en) * 2011-12-31 2014-07-22 Parallels IP Holdings GmbH Method for updating operating system without memory reset
US9047157B1 (en) * 2012-01-27 2015-06-02 Intuit Inc. Method and apparatus for using unspecialized software micro-containers for building complex dynamic business processes
US9800455B1 (en) 2012-02-08 2017-10-24 Amazon Technologies, Inc. Log monitoring system
US8904009B1 (en) 2012-02-10 2014-12-02 Amazon Technologies, Inc. Dynamic content delivery
US10230566B1 (en) 2012-02-17 2019-03-12 F5 Networks, Inc. Methods for dynamically constructing a service principal name and devices thereof
US9244843B1 (en) 2012-02-20 2016-01-26 F5 Networks, Inc. Methods for improving flow cache bandwidth utilization and devices thereof
US9020912B1 (en) 2012-02-20 2015-04-28 F5 Networks, Inc. Methods for accessing data in a compressed file system and devices thereof
US10021179B1 (en) 2012-02-21 2018-07-10 Amazon Technologies, Inc. Local resource delivery network
US9172674B1 (en) 2012-03-21 2015-10-27 Amazon Technologies, Inc. Managing request routing information utilizing performance information
US10623408B1 (en) 2012-04-02 2020-04-14 Amazon Technologies, Inc. Context sensitive object management
EP2853074B1 (en) 2012-04-27 2021-03-24 F5 Networks, Inc Methods for optimizing service of content requests and devices thereof
US9154551B1 (en) 2012-06-11 2015-10-06 Amazon Technologies, Inc. Processing DNS queries to identify pre-processing information
US20130346465A1 (en) * 2012-06-21 2013-12-26 Microsoft Corporation Application enhancement using edge data center
US10057377B2 (en) * 2012-06-29 2018-08-21 Vmware, Inc. Dynamic resolution of servers in a distributed environment
US9378073B2 (en) 2012-08-14 2016-06-28 International Business Machines Corporation Remote procedure call for a distributed system
US20140068572A1 (en) * 2012-08-28 2014-03-06 International Business Machines Corporation Java native interface array handling in a distributed java virtual machine
US9525659B1 (en) 2012-09-04 2016-12-20 Amazon Technologies, Inc. Request routing utilizing point of presence load information
US9135048B2 (en) 2012-09-20 2015-09-15 Amazon Technologies, Inc. Automated profiling of resource usage
US9323577B2 (en) 2012-09-20 2016-04-26 Amazon Technologies, Inc. Automated profiling of resource usage
US10033837B1 (en) 2012-09-29 2018-07-24 F5 Networks, Inc. System and method for utilizing a data reducing module for dictionary compression of encoded data
US9578090B1 (en) 2012-11-07 2017-02-21 F5 Networks, Inc. Methods for provisioning application delivery service and devices thereof
US9104480B2 (en) * 2012-11-15 2015-08-11 International Business Machines Corporation Monitoring and managing memory thresholds for application request threads
US20140337472A1 (en) 2012-12-13 2014-11-13 Level 3 Communications, Llc Beacon Services in a Content Delivery Framework
US10701148B2 (en) 2012-12-13 2020-06-30 Level 3 Communications, Llc Content delivery framework having storage services
US9634918B2 (en) 2012-12-13 2017-04-25 Level 3 Communications, Llc Invalidation sequencing in a content delivery framework
US10652087B2 (en) 2012-12-13 2020-05-12 Level 3 Communications, Llc Content delivery framework having fill services
US10791050B2 (en) 2012-12-13 2020-09-29 Level 3 Communications, Llc Geographic location determination in a content delivery framework
US9628346B2 (en) 2012-12-13 2017-04-18 Level 3 Communications, Llc Devices and methods supporting content delivery with reducer services
US10701149B2 (en) 2012-12-13 2020-06-30 Level 3 Communications, Llc Content delivery framework having origin services
US10205698B1 (en) 2012-12-19 2019-02-12 Amazon Technologies, Inc. Source-dependent address resolution
US9667747B2 (en) 2012-12-21 2017-05-30 Akamai Technologies, Inc. Scalable content delivery network request handling mechanism with support for dynamically-obtained content policies
US9654579B2 (en) 2012-12-21 2017-05-16 Akamai Technologies, Inc. Scalable content delivery network request handling mechanism
US11907496B2 (en) * 2013-02-08 2024-02-20 cloudRIA, Inc. Browser-based application management
US10375155B1 (en) 2013-02-19 2019-08-06 F5 Networks, Inc. System and method for achieving hardware acceleration for asymmetric flow connections
US9497614B1 (en) 2013-02-28 2016-11-15 F5 Networks, Inc. National traffic steering device for a better control of a specific wireless/LTE network
US9325581B2 (en) * 2013-04-02 2016-04-26 International Business Machines Corporation Context-aware management of applications at the edge of a network
US9092292B2 (en) 2013-05-16 2015-07-28 Sap Se Shared application binary storage
US9331894B2 (en) * 2013-05-31 2016-05-03 International Business Machines Corporation Information exchange in data center systems
US9294391B1 (en) 2013-06-04 2016-03-22 Amazon Technologies, Inc. Managing network computing components utilizing request routing
US9648125B2 (en) 2013-10-04 2017-05-09 Akamai Technologies, Inc. Systems and methods for caching content with notification-based invalidation
US9641640B2 (en) 2013-10-04 2017-05-02 Akamai Technologies, Inc. Systems and methods for controlling cacheability and privacy of objects
US9813515B2 (en) 2013-10-04 2017-11-07 Akamai Technologies, Inc. Systems and methods for caching content with notification-based invalidation with extension to clients
US9407721B2 (en) 2013-10-16 2016-08-02 Red Hat, Inc. System and method for server selection using competitive evaluation
WO2015060833A1 (en) * 2013-10-22 2015-04-30 Empire Technology Development, Llc Sandboxed application data redirection to datacenters
US8819187B1 (en) * 2013-10-29 2014-08-26 Limelight Networks, Inc. End-to-end acceleration of dynamic content
US10187317B1 (en) 2013-11-15 2019-01-22 F5 Networks, Inc. Methods for traffic rate control and devices thereof
US9565138B2 (en) 2013-12-20 2017-02-07 Brocade Communications Systems, Inc. Rule-based network traffic interception and distribution scheme
US9485456B2 (en) 2013-12-30 2016-11-01 Akamai Technologies, Inc. Frame-rate conversion in a distributed computing system
US9648542B2 (en) 2014-01-28 2017-05-09 Brocade Communications Systems, Inc. Session-based packet routing for facilitating analytics
US9703611B1 (en) * 2014-03-21 2017-07-11 Amazon Technologies, Inc. Isolating resources for utilization by tenants executing in multi-tenant software containers
US9754122B1 (en) 2014-03-21 2017-09-05 Amazon Technologies, Inc. Isolating tenants executing in multi-tenant software containers
US9756012B1 (en) * 2014-06-16 2017-09-05 Amazon Technologies, Inc. Domain name service information propagation
US9871850B1 (en) * 2014-06-20 2018-01-16 Amazon Technologies, Inc. Enhanced browsing using CDN routing capabilities
US11838851B1 (en) 2014-07-15 2023-12-05 F5, Inc. Methods for managing L7 traffic classification and devices thereof
EP2997716A1 (en) * 2014-07-25 2016-03-23 Huawei Technologies Co., Ltd. Method, computing device and system for invoking software application methods of remote java objects
US10122630B1 (en) * 2014-08-15 2018-11-06 F5 Networks, Inc. Methods for network traffic presteering and devices thereof
US10182013B1 (en) 2014-12-01 2019-01-15 F5 Networks, Inc. Methods for managing progressive image delivery and devices thereof
US9361140B1 (en) 2014-12-11 2016-06-07 International Business Machines Corporation Isolating applications in server environment
US10091096B1 (en) 2014-12-18 2018-10-02 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10033627B1 (en) 2014-12-18 2018-07-24 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10097448B1 (en) 2014-12-18 2018-10-09 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US9239717B1 (en) * 2015-01-22 2016-01-19 Saudi Arabian Oil Company Systems, methods, and computer medium to enhance redeployment of web applications after initial deployment
US11895138B1 (en) 2015-02-02 2024-02-06 F5, Inc. Methods for improving web scanner accuracy and devices thereof
US10225326B1 (en) 2015-03-23 2019-03-05 Amazon Technologies, Inc. Point of presence based data uploading
US10129088B2 (en) 2015-06-17 2018-11-13 Extreme Networks, Inc. Configuration of rules in a network visibility system
US10911353B2 (en) 2015-06-17 2021-02-02 Extreme Networks, Inc. Architecture for a network visibility system
US10771475B2 (en) 2015-03-23 2020-09-08 Extreme Networks, Inc. Techniques for exchanging control and configuration information in a network visibility system
US9866478B2 (en) 2015-03-23 2018-01-09 Extreme Networks, Inc. Techniques for user-defined tagging of traffic in a network visibility system
US9887931B1 (en) 2015-03-30 2018-02-06 Amazon Technologies, Inc. Traffic surge management for points of presence
US9819567B1 (en) 2015-03-30 2017-11-14 Amazon Technologies, Inc. Traffic surge management for points of presence
US9887932B1 (en) 2015-03-30 2018-02-06 Amazon Technologies, Inc. Traffic surge management for points of presence
US10834065B1 (en) 2015-03-31 2020-11-10 F5 Networks, Inc. Methods for SSL protected NTLM re-authentication and devices thereof
US10505818B1 (en) 2015-05-05 2019-12-10 F5 Networks. Inc. Methods for analyzing and load balancing based on server health and devices thereof
US11350254B1 (en) 2015-05-05 2022-05-31 F5, Inc. Methods for enforcing compliance policies and devices thereof
US9832141B1 (en) 2015-05-13 2017-11-28 Amazon Technologies, Inc. Routing based request correlation
US10379889B2 (en) 2015-06-15 2019-08-13 Microsoft Technology Licensing, Llc Monitoring and reporting performance of collaboration services using a monitoring service native to the collaboration service
US10530688B2 (en) 2015-06-17 2020-01-07 Extreme Networks, Inc. Configuration of load-sharing components of a network visibility router in a network visibility system
US10057126B2 (en) 2015-06-17 2018-08-21 Extreme Networks, Inc. Configuration of a network visibility system
US9898349B2 (en) 2015-06-23 2018-02-20 International Business Machines Corporation Management of asynchronous and synchronous resource requests
US10616179B1 (en) 2015-06-25 2020-04-07 Amazon Technologies, Inc. Selective routing of domain name system (DNS) requests
US10097566B1 (en) 2015-07-31 2018-10-09 Amazon Technologies, Inc. Identifying targets of network attacks
US9781246B2 (en) 2015-08-28 2017-10-03 Qualcomm Incorporated Augmenting reality using a small cell
US9936042B2 (en) * 2015-08-28 2018-04-03 Qualcomm Incorporated Local retrieving and caching of content to small cells
US10587721B2 (en) 2015-08-28 2020-03-10 Qualcomm Incorporated Small cell edge computing platform
US11895212B2 (en) * 2015-09-11 2024-02-06 Amazon Technologies, Inc. Read-only data store replication to edge locations
US10848582B2 (en) 2015-09-11 2020-11-24 Amazon Technologies, Inc. Customizable event-triggered computation at edge locations
US9774619B1 (en) 2015-09-24 2017-09-26 Amazon Technologies, Inc. Mitigating network attacks
US9742795B1 (en) 2015-09-24 2017-08-22 Amazon Technologies, Inc. Mitigating network attacks
US9794281B1 (en) 2015-09-24 2017-10-17 Amazon Technologies, Inc. Identifying sources of network attacks
US10270878B1 (en) 2015-11-10 2019-04-23 Amazon Technologies, Inc. Routing for origin-facing points of presence
US10257307B1 (en) 2015-12-11 2019-04-09 Amazon Technologies, Inc. Reserved cache space in content delivery networks
US10049051B1 (en) 2015-12-11 2018-08-14 Amazon Technologies, Inc. Reserved cache space in content delivery networks
US10348639B2 (en) 2015-12-18 2019-07-09 Amazon Technologies, Inc. Use of virtual endpoints to improve data transmission rates
US10324771B1 (en) * 2015-12-21 2019-06-18 EMC IP Holding Company LLC Methods and apparatus for a storage system having storage automation with integrated drivers
US11757946B1 (en) 2015-12-22 2023-09-12 F5, Inc. Methods for analyzing network traffic and enforcing network policies and devices thereof
EP3398335A1 (en) 2015-12-29 2018-11-07 Dish Technologies L.L.C. Methods and systems for adaptive content delivery
US10585710B2 (en) * 2015-12-31 2020-03-10 Box, Inc. Dynamic code component deployment in cloud-based service platforms
US10404698B1 (en) 2016-01-15 2019-09-03 F5 Networks, Inc. Methods for adaptive organization of web application access points in webtops and devices thereof
US11178150B1 (en) 2016-01-20 2021-11-16 F5 Networks, Inc. Methods for enforcing access control list based on managed application and devices thereof
US10091075B2 (en) 2016-02-12 2018-10-02 Extreme Networks, Inc. Traffic deduplication in a visibility network
US10671376B2 (en) * 2016-03-15 2020-06-02 Shenzhen Skyworth-Rgb Electronic Co., Ltd. Server program hot upgrading method and device
US10999200B2 (en) 2016-03-24 2021-05-04 Extreme Networks, Inc. Offline, intelligent load balancing of SCTP traffic
US10009222B2 (en) 2016-03-30 2018-06-26 International Business Machines Corporation Input method engine management for edge services
US10218566B2 (en) 2016-03-30 2019-02-26 International Business Machines Corporation Proactive input method engine management for edge services based on crowdsourcing data
US10075551B1 (en) 2016-06-06 2018-09-11 Amazon Technologies, Inc. Request management for hierarchical cache
US10791088B1 (en) 2016-06-17 2020-09-29 F5 Networks, Inc. Methods for disaggregating subscribers via DHCP address translation and devices thereof
US10334462B2 (en) 2016-06-23 2019-06-25 Bank Of America Corporation Predictive analytics for resource development based on information communicated from inter-related communication devices
US10110694B1 (en) 2016-06-29 2018-10-23 Amazon Technologies, Inc. Adaptive transfer rate for retrieving content from a server
US10439913B2 (en) 2016-07-01 2019-10-08 Bank Of America Corporation Dynamic replacement and upgrade of existing resources based on resource utilization
US10693973B2 (en) * 2016-07-18 2020-06-23 Wistron Aiedge Corporation System and method for work distribution in a fog network via code offloading
US10223234B2 (en) 2016-08-15 2019-03-05 Microsoft Technology Licensing, Llc Monitoring a web application using an outside-in strategy
US9992086B1 (en) 2016-08-23 2018-06-05 Amazon Technologies, Inc. External health checking of virtual private cloud network environments
US10033691B1 (en) 2016-08-24 2018-07-24 Amazon Technologies, Inc. Adaptive resolution of domain name requests in virtual private cloud network environments
US10055212B2 (en) * 2016-08-26 2018-08-21 Microsoft Technology Licensing, Llc Evolving streaming installation of software applications
US10469513B2 (en) 2016-10-05 2019-11-05 Amazon Technologies, Inc. Encrypted network addresses
US10567259B2 (en) 2016-10-19 2020-02-18 Extreme Networks, Inc. Smart filter generator
US10412198B1 (en) 2016-10-27 2019-09-10 F5 Networks, Inc. Methods for improved transmission control protocol (TCP) performance visibility and devices thereof
US11063758B1 (en) 2016-11-01 2021-07-13 F5 Networks, Inc. Methods for facilitating cipher selection and devices thereof
US10505792B1 (en) 2016-11-02 2019-12-10 F5 Networks, Inc. Methods for facilitating network traffic analytics and devices thereof
US10831549B1 (en) 2016-12-27 2020-11-10 Amazon Technologies, Inc. Multi-region request-driven code execution system
US10372499B1 (en) 2016-12-27 2019-08-06 Amazon Technologies, Inc. Efficient region selection system for executing request-driven code
US10440096B2 (en) 2016-12-28 2019-10-08 Intel IP Corporation Application computation offloading for mobile edge computing
US10521222B2 (en) 2017-01-17 2019-12-31 Bank Of America Corporation Hybrid system for remote application development
US10938884B1 (en) 2017-01-30 2021-03-02 Amazon Technologies, Inc. Origin server cloaking using virtual private cloud network environments
US10235161B2 (en) * 2017-02-06 2019-03-19 American Megatrends, Inc. Techniques of adding security patches to embedded systems
US10831470B2 (en) 2017-02-28 2020-11-10 Arista Networks, Inc. Simulating a topology of network elements
EP3598374A4 (en) * 2017-03-16 2020-09-02 Softbank Corp. RELAY DEVICE AND PROGRAM
US10812266B1 (en) 2017-03-17 2020-10-20 F5 Networks, Inc. Methods for managing security tokens based on security violations and devices thereof
US10503613B1 (en) 2017-04-21 2019-12-10 Amazon Technologies, Inc. Efficient serving of resources during server unavailability
US11122042B1 (en) 2017-05-12 2021-09-14 F5 Networks, Inc. Methods for dynamically managing user access control and devices thereof
US11343237B1 (en) 2017-05-12 2022-05-24 F5, Inc. Methods for managing a federated identity environment using security and access control data and devices thereof
US11075987B1 (en) 2017-06-12 2021-07-27 Amazon Technologies, Inc. Load estimating content delivery network
US10447648B2 (en) 2017-06-19 2019-10-15 Amazon Technologies, Inc. Assignment of a POP to a DNS resolver based on volume of communications over a link between client devices and the POP
US10346143B2 (en) * 2017-06-21 2019-07-09 Ca, Inc. Systems and methods for transforming service definitions in a multi-service containerized application
US11122083B1 (en) 2017-09-08 2021-09-14 F5 Networks, Inc. Methods for managing network connections based on DNS data and network policies and devices thereof
US10742593B1 (en) 2017-09-25 2020-08-11 Amazon Technologies, Inc. Hybrid content request routing system
US10416992B2 (en) * 2017-09-27 2019-09-17 Whatsapp Inc. Techniques for web application updates
CN107943543B (zh) * 2017-11-29 2022-01-14 优速云(福建)科技有限公司 一种web应用热部署的方法和计算机设备
US10972580B1 (en) * 2017-12-12 2021-04-06 Amazon Technologies, Inc. Dynamic metadata encryption
US10803180B2 (en) * 2017-12-13 2020-10-13 Jayant Shukla Deterministic method for detecting and blocking of exploits on interpreted code
US11343322B2 (en) * 2017-12-18 2022-05-24 Telefonaktiebolaget Lm Ericsson (Publ) Virtual edge node as a service
US10439925B2 (en) * 2017-12-21 2019-10-08 Akamai Technologies, Inc. Sandbox environment for testing integration between a content provider origin and a content delivery network
US11223689B1 (en) 2018-01-05 2022-01-11 F5 Networks, Inc. Methods for multipath transmission control protocol (MPTCP) based session migration and devices thereof
US11206273B2 (en) * 2018-01-31 2021-12-21 Salesforce.Com, Inc. Content management system connect
US10592578B1 (en) 2018-03-07 2020-03-17 Amazon Technologies, Inc. Predictive content push-enabled content delivery network
US10554502B1 (en) * 2018-03-16 2020-02-04 Intuit Inc. Scalable web services execution
US10958649B2 (en) 2018-03-21 2021-03-23 Akamai Technologies, Inc. Systems and methods for internet-wide monitoring and protection of user credentials
US10635428B2 (en) 2018-03-30 2020-04-28 Arista Networks, Inc. System and method for in-service update of software
US10846179B2 (en) 2018-11-05 2020-11-24 Arista Networks, Inc. Hitless repair for network device components
US10862852B1 (en) 2018-11-16 2020-12-08 Amazon Technologies, Inc. Resolution of domain name requests in heterogeneous network environments
US10911362B2 (en) * 2018-12-05 2021-02-02 Citrix Systems, Inc. System and methods to filter out noisy application signatures to improve precision of first packet classification
US11025747B1 (en) 2018-12-12 2021-06-01 Amazon Technologies, Inc. Content request pattern-based routing system
US10824770B2 (en) * 2018-12-13 2020-11-03 Sap Se Web application execution with secure elements
US11930439B2 (en) 2019-01-09 2024-03-12 Margo Networks Private Limited Network control and optimization (NCO) system and method
US10924534B2 (en) 2019-03-01 2021-02-16 Akamai Technologies, Inc. Dynamic placement of computing tasks in a distributed computing environment
US11301231B2 (en) 2019-04-05 2022-04-12 Arista Networks, Inc. Dynamic run time programming of hardware tables
US10986173B1 (en) 2019-04-25 2021-04-20 Edjx, Inc. Systems and methods for locating server nodes for edge devices using latency-based georouting
US11470535B1 (en) 2019-04-25 2022-10-11 Edjx, Inc. Systems and methods for locating server nodes in close proximity to edge devices using georouting
CN110233870A (zh) * 2019-04-26 2019-09-13 福州慧校通教育信息技术有限公司 一种班牌系统客户端长连接处理方法及装置
CN110661862A (zh) * 2019-09-20 2020-01-07 网宿科技股份有限公司 一种预热资源文件的方法和中心管理系统
US11853752B2 (en) 2019-09-30 2023-12-26 EMC IP Holding Company LLC Migration of web applications between different web application frameworks
US11089083B1 (en) 2019-11-04 2021-08-10 Edjx, Inc. Systems and methods for locating microserver nodes in proximity to edge devices using georouting
US10997269B1 (en) 2019-11-04 2021-05-04 EMC IP Holding Company LLC Using web application components with different web application frameworks in a web application
US11916995B1 (en) 2019-11-04 2024-02-27 Edjx, Inc. Systems and methods for locating microserver nodes in proximity to edge devices using georouting
US20210173888A1 (en) * 2019-12-08 2021-06-10 Akamai Technologies Inc. Proxy server caching of database content
CN111158776B (zh) * 2019-12-12 2023-12-26 杭州安恒信息技术股份有限公司 一种Web应用防护系统平滑重启方法
US10949331B1 (en) 2020-01-30 2021-03-16 EMC IP Holding Company LLC Integration testing of web applications utilizing dynamically generated automation identifiers
US11144431B2 (en) 2020-01-30 2021-10-12 EMC IP Holding Company LLC Configuration-based code construct for restriction checks in component of a web application
US11586770B2 (en) 2020-01-30 2023-02-21 EMC IP Holding Company LLC Access restriction for portions of a web application
US11755720B2 (en) 2020-01-31 2023-09-12 Salesforce, Inc. Secure membranes and cross namespace communication
US10853441B1 (en) 2020-02-17 2020-12-01 Bby Solutions, Inc. Dynamic edge cache for query-based service
CN111770170B (zh) * 2020-06-29 2023-04-07 北京百度网讯科技有限公司 请求处理方法、装置、设备和计算机存储介质
US11163622B1 (en) 2020-09-18 2021-11-02 Dell Products L.P. Web application implementing a shared set of identifiers for handling links to web application plugins
US11622021B2 (en) * 2020-09-20 2023-04-04 International Business Machines Corporation Synchronous shared webpage fragment across trusted devices
US11184294B1 (en) * 2020-12-04 2021-11-23 Capital One Services, Llc Methods and systems for managing multiple content delivery networks
US11695855B2 (en) 2021-05-17 2023-07-04 Margo Networks Pvt. Ltd. User generated pluggable content delivery network (CDN) system and method
US11936757B1 (en) * 2022-04-29 2024-03-19 Rafay Systems, Inc. Pull-based on-demand application deployment to edge node
WO2023224680A1 (en) 2022-05-18 2023-11-23 Margo Networks Pvt. Ltd. Peer to peer (p2p) encrypted data transfer/offload system and method
CN116560756B (zh) * 2023-07-12 2024-04-16 鹏城实验室 服务编排方法、电子设备、计算机可读存储介质

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6003030A (en) * 1995-06-07 1999-12-14 Intervu, Inc. System and method for optimized storage and retrieval of data on a distributed computer network
JPH1021097A (ja) * 1996-07-02 1998-01-23 Canon Inc プログラムの起動方法および記憶媒体およびコンピュータ装置
EP1018084B1 (en) * 1996-07-25 2011-12-07 Xcelera Inc. Web serving system with primary and secondary servers
US6119143A (en) * 1997-05-22 2000-09-12 International Business Machines Corporation Computer system and method for load balancing with selective control
US6421715B1 (en) * 1997-06-11 2002-07-16 Oracle Corporation System and method for generating and transmitting a command in response to a request for additional data and data described in the request
US6141759A (en) * 1997-12-10 2000-10-31 Bmc Software, Inc. System and architecture for distributing, monitoring, and managing information requests on a computer network
US6185598B1 (en) * 1998-02-10 2001-02-06 Digital Island, Inc. Optimized network resource location
US6484214B1 (en) 1998-03-05 2002-11-19 Mcdonnell Douglas Helicopter Company Method for distributed object communications based on dynamically acquired and assembled software components
US6223202B1 (en) * 1998-06-05 2001-04-24 International Business Machines Corp. Virtual machine pooling
US6108703A (en) * 1998-07-14 2000-08-22 Massachusetts Institute Of Technology Global hosting system
US6263498B1 (en) 1998-12-03 2001-07-17 International Business Machines Corporation Method and apparatus for enabling server side distributed object modification
US6401238B1 (en) * 1998-12-10 2002-06-04 International Business Machines Corporation Intelligent deployment of applications to preserve network bandwidth
US6356941B1 (en) * 1999-02-22 2002-03-12 Cyber-Ark Software Ltd. Network vaults
US6880126B1 (en) * 1999-08-03 2005-04-12 International Business Machines Corporation Controlling presentation of a GUI, using view controllers created by an application mediator, by identifying a destination to access a target to retrieve data
US6282711B1 (en) * 1999-08-10 2001-08-28 Hewlett-Packard Company Method for more efficiently installing software components from a remote server source
US6785704B1 (en) * 1999-12-20 2004-08-31 Fastforward Networks Content distribution system for operation over an internetwork including content peering arrangements
US6684387B1 (en) * 1999-09-23 2004-01-27 International Business Machines Corporation Method and apparatus for verifying Enterprise Java Beans
WO2001035242A1 (en) * 1999-11-12 2001-05-17 Zebrazone, Inc. Highly distributed computer server architecture and operating system
US6405252B1 (en) * 1999-11-22 2002-06-11 Speedera Networks, Inc. Integrated point of presence server network
US6484143B1 (en) * 1999-11-22 2002-11-19 Speedera Networks, Inc. User device and system for traffic management and content distribution over a world wide area network
US6754699B2 (en) * 2000-07-19 2004-06-22 Speedera Networks, Inc. Content delivery and global traffic management network system
AU2001226401A1 (en) * 2000-01-14 2001-07-24 Saba Software, Inc. Method and apparatus for a business applications server
US6996616B1 (en) * 2000-04-17 2006-02-07 Akamai Technologies, Inc. HTML delivery from edge-of-network servers in a content delivery network (CDN)
US6976090B2 (en) * 2000-04-20 2005-12-13 Actona Technologies Ltd. Differentiated content and application delivery via internet
CA2323689A1 (en) 2000-06-02 2001-12-02 Servidium Inc. Distributed object oriented structure server abstraction techniques, software, objects and methods
US6826564B2 (en) * 2000-07-10 2004-11-30 Fastforward Networks Scalable and programmable query distribution and collection in a network of queryable devices
US20020078020A1 (en) * 2000-10-02 2002-06-20 Lawton Scott S. Method and system of entering search criteria using multiple entry fields per data element
WO2002044915A1 (en) * 2000-11-30 2002-06-06 Appfluent Technology, Inc. System and method for delivering dynamic content
US7096266B2 (en) * 2001-01-08 2006-08-22 Akamai Technologies, Inc. Extending an Internet content delivery network into an enterprise
US6792426B2 (en) * 2001-01-10 2004-09-14 International Business Machines Corporation Generic servlet for browsing EJB entity beans
US7130908B1 (en) * 2001-03-13 2006-10-31 Intelsat Ltd. Forward cache management between edge nodes in a satellite based content delivery system
US7154898B1 (en) * 2001-03-13 2006-12-26 Intelsat, Ltd. Scalable edge node
US7174373B1 (en) * 2001-03-13 2007-02-06 Panamsat Corporation Self-contained demonstration node in a satellite based content delivery system
US6754659B2 (en) * 2001-04-09 2004-06-22 International Business Machines Corporation Method for running existing java beans in an enterprise java bean environment
US6738933B2 (en) * 2001-05-09 2004-05-18 Mercury Interactive Corporation Root cause analysis of server system performance degradations
US7320032B2 (en) * 2001-05-21 2008-01-15 Hewlett-Packard Development Company, L.P. Methods and structure for reducing resource hogging
US20020178254A1 (en) * 2001-05-23 2002-11-28 International Business Machines Corporation Dynamic deployment of services in a computing network
US6968341B2 (en) * 2001-05-25 2005-11-22 International Business Machines Corporation System and method for post-analyzing, and sequentially visualizing plurality of predefined metrics in a stored dynamic data values associated identifiers within determined time range
US7007089B2 (en) * 2001-06-06 2006-02-28 Akarnai Technologies, Inc. Content delivery network map generation using passive measurement data
US6687702B2 (en) * 2001-06-15 2004-02-03 Sybass, Inc. Methodology providing high-speed shared memory access between database middle tier and database server
US6915519B2 (en) * 2001-07-12 2005-07-05 International Business Machines Corporation Pluggable JMS providers in a J2EE server
US6922695B2 (en) * 2001-09-06 2005-07-26 Initiate Systems, Inc. System and method for dynamically securing dynamic-multi-sourced persisted EJBS
US20030055877A1 (en) * 2001-09-14 2003-03-20 Damon Williams Remote client manager that facilitates an extendible, modular application server system distributed via an electronic data network and method of distributing same
US8412791B2 (en) * 2001-09-28 2013-04-02 International Business Machines Corporation Apparatus and method for offloading application components to edge servers
US7155478B2 (en) * 2001-10-03 2006-12-26 International Business Machines Corporation Selectively handling data processing requests in a computer communications network
US20030097443A1 (en) * 2001-11-21 2003-05-22 Richard Gillett Systems and methods for delivering content over a network
US7099936B2 (en) * 2002-03-29 2006-08-29 International Business Machines Corporation Multi-tier service level agreement method and system
US6950823B2 (en) * 2002-12-23 2005-09-27 International Business Machines Corporation Transparent edge-of-network data cache

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130081233A (ko) * 2010-05-19 2013-07-16 아카마이 테크놀로지스, 인크. 에지 서버 http post 메시지 프로세싱
KR101892100B1 (ko) * 2010-05-19 2018-08-27 아카마이 테크놀로지스, 인크. 에지 서버 http post 메시지 프로세싱
JP2019191740A (ja) * 2018-04-20 2019-10-31 コニカミノルタ株式会社 サービス提供装置およびプログラム
JP7067232B2 (ja) 2018-04-20 2022-05-16 コニカミノルタ株式会社 サービス提供装置およびプログラム

Also Published As

Publication number Publication date
US20030135509A1 (en) 2003-07-17
CA2471855A1 (en) 2003-07-24
WO2003060707A1 (en) 2003-07-24
CA2471855C (en) 2013-03-19
AU2009202285A1 (en) 2009-07-02
AU2003205083A1 (en) 2003-07-30
EP1463991A1 (en) 2004-10-06
AU2003205083A2 (en) 2003-07-30
US8392912B2 (en) 2013-03-05
AU2009202285A8 (en) 2009-07-23
US20070038994A1 (en) 2007-02-15
US7127713B2 (en) 2006-10-24
US20030154239A1 (en) 2003-08-14
EP1463991A4 (en) 2008-08-06

Similar Documents

Publication Publication Date Title
US7127713B2 (en) Java application framework for use in a content delivery network (CDN)
US7523177B2 (en) Systems providing dynamic undeployment of services in a computing network
US8166079B2 (en) Dynamic content assembly on edge-of-network servers in a content delivery network
CA2890411C (en) System and method for managing dedicated caches
US8849892B2 (en) Method and system for brokering messages in a distributed system
WO2003063029A1 (en) System and method for using virtual directories to service url requests in application servers
US20040205162A1 (en) Method of executing an edge-enabled application in a content delivery network (CDN)
US9454616B2 (en) Method and system for unifying configuration descriptors
US20120166650A1 (en) Method of load balancing edge-enabled applications in a content delivery network (CDN)
US20070067265A1 (en) Using one extensive portlet rather than multiple small portlets
WO2001035242A1 (en) Highly distributed computer server architecture and operating system
AU2012203811A1 (en) Java application framework for use in a content delivery network (CDN)
Guthrie et al. Asp. net http runtime

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080507

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080728

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080804

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080904

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080911

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20081006

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20081014

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081107

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090313