Connect public, paid and private patent data with Google Patents Public Datasets

Edge server java application framework having application server instance resource monitoring and management

Download PDF

Info

Publication number
US20030135509A1
US20030135509A1 US10340109 US34010903A US2003135509A1 US 20030135509 A1 US20030135509 A1 US 20030135509A1 US 10340109 US10340109 US 10340109 US 34010903 A US34010903 A US 34010903A US 2003135509 A1 US2003135509 A1 US 2003135509A1
Authority
US
Grant status
Application
Patent type
Prior art keywords
application
server
edge
web
request
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.)
Abandoned
Application number
US10340109
Inventor
Andrew Davis
Jay Parikh
Srinivasan Pichai
Eddie Ruvinsky
Daniel Stodolsky
Mark Tsimelzon
William Weihl
Original Assignee
Davis Andrew Thomas
Jay Parikh
Srinivasan Pichai
Eddie Ruvinsky
Daniel Stodolsky
Mark Tsimelzon
Weihl William E.
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

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/10Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network
    • H04L67/1002Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers, e.g. load balancing
    • H04L67/1004Server selection in load balancing
    • H04L67/1008Server selection in 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-specific arrangements or communication protocols supporting networked applications
    • H04L67/02Network-specific arrangements or communication protocols supporting networked applications involving the use of web-based technology, e.g. hyper text transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/10Network-specific arrangements or communication protocols supporting networked applications 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-specific arrangements or communication protocols supporting networked applications
    • H04L67/10Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network
    • H04L67/1002Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers, e.g. load balancing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/28Network-specific arrangements or communication protocols supporting networked applications for the provision of proxy services, e.g. intermediate processing or storage in the network
    • H04L67/2819Enhancement of application control based on intercepted application data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/34Network-specific arrangements or communication protocols supporting networked applications involving the movement of software or configuration parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Application independent communication protocol aspects or techniques in packet data networks
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32High level architectural aspects of 7-layer open systems interconnection [OSI] type protocol stacks
    • H04L69/322Aspects of intra-layer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Aspects of intra-layer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer, i.e. layer seven
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/10Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network
    • H04L67/1002Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers, e.g. load balancing
    • H04L67/1004Server selection in load balancing
    • H04L67/101Server selection in load balancing based on network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/28Network-specific arrangements or communication protocols supporting networked applications for the provision of proxy services, e.g. intermediate processing or storage in the network
    • H04L67/2804Network-specific arrangements or communication protocols supporting networked applications for the provision of proxy services, e.g. intermediate processing or storage in the network for adding application control or application functional data, e.g. adding metadata
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/28Network-specific arrangements or communication protocols supporting networked applications for the provision of proxy services, e.g. intermediate processing or storage in the network
    • H04L67/2842Network-specific arrangements or communication protocols supporting networked applications for the provision of proxy services, e.g. intermediate processing or storage in the network for storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/28Network-specific arrangements or communication protocols supporting networked applications for the provision of proxy services, e.g. intermediate processing or storage in the network
    • H04L67/2866Architectural aspects
    • H04L67/288Distributed intermediate devices, i.e. intermediate device interaction with other intermediate devices on the same level

Abstract

An application deployment model for enterprise applications enables such applications to be deployed to and executed from a globally distributed computing platform, such as an edge server in an Internet content delivery network (CDN). In a representative embodiment, a CDN edge server supports application server code that executes a Web tier and/or Enterprise tier component of a given Java-based application. When multiple instances of the application server code are executed, given resources (e.g., memory, CPU, disk and network I/O) are monitored, and the application server instances are terminated or rate-limited to prevent over-utilization by any particular instance. In addition, a given application running in a given application server instance is restricted from taking certain actions, e.g., reading or writing from a file system, so that it cannot interfere with or access data from another customer's application.

Description

  • [0001]
    This application is based on and claims priority from Provisional Application Serial No. 60/347,481, filed Jan. 11, 2002. Portions of this application include subject matter protected by copyright. All rights reserved.
  • BACKGROUND OF THE INVENTION
  • [0002]
    1. Technical Field
  • [0003]
    The present invention relates generally to an application deployment model for use in a content delivery network.
  • [0004]
    2. Description of the Related Art
  • [0005]
    Enterprises can expand their business, increase efficiency, and enable new revenue streams by extending their business applications over the Internet to customers, partners, and suppliers. One way to enable enterprises to shift the operational burden of running a reliable and secure Web presence is to outsource that presence, in whole or in part, to a service provider, such as a content delivery network (CDN). A content delivery network is a collection of content servers and associated control mechanisms that offload work from Web site origin servers by delivering content (e.g., Web objects, streaming media, HTML and executable code) on their behalf to end users. Typically, the content servers are located at the “edge” of the Internet. A well-managed CDN achieves this goal by serving some or all of the contents of a site's Web pages, thereby reducing the customer's infrastructure costs while enhancing an end user's browsing experience from the site. In operation, the CDN uses a request routing mechanism to locate a CDN edge server electronically close to the client to serve a request directed to the CDN. Sites that use a CDN benefit from the scalability, superior performance, and availability of the CDN service provider's outsourced infrastructure.
  • [0006]
    Many enterprises, such as those that outsource their content delivery requirements, also implement their business services as multi-tier (n-tier) applications. In a representative n-tiered application, Web-based technologies are used as an outer (a first or “presentation”) tier to interface users to the application, and one or more other tiers comprise middleware that provides the core business logic and/or that integrates the application with existing enterprise information systems. The Java 2 Platform, Enterprise Edition (J2EE™) is a technology and an associated component-based model that reduces the cost and complexity of developing such multi-tier, enterprise services. The J2EE runtime environment defines several types of application components that can be used to build services. These include (a) Web tier components (e.g., servlets, JSP pages, Java beans, filters, and web event listeners), which are components that typically execute in a web server and respond to HTTP requests from web clients, and (b) Enterprise tier components (e.g., session beans, entity beans and message driven beans, which may be developed as Enterprise JavaBeans™ (EJB™)), that include the business logic and that execute in a managed environment to support transactions. Runtime support for J2EE application components are provided by so-called “containers,” with a Web container supporting the Web tier components, and an Enterprise container supporting the Enterprise tier components. Containers execute the application components and provide utility services. J2EE-compliant servers provide deployment, management and execution support for conforming application components.
  • [0007]
    It would be desirable to be able to provide a framework by which such server-side Java applications as well as other Web services could be deployed in a distributed computing environment, such as a content delivery network, to enable application processing on the edge of the Internet.
  • SUMMARY OF THE INVENTION
  • [0008]
    It is an object of the present invention to provide an application deployment model for enterprise applications to enable such applications to be deployed to and executed from a globally distributed computing platform, such as an Internet content delivery network (CDN).
  • [0009]
    It is a more specific object of the invention to provide a framework by which Java-based applications and Web services are deployed onto a distributed computing platform so that enterprises can take advantage of a multi-tier distributed application model.
  • [0010]
    Another object of the present invention is to provide a deployment model for a content delivery network that enables support for a Java-based Web container or Enterprise container, or both, so that applications or application components can be executed on the edge of the Internet.
  • [0011]
    A more general object of this invention is to provide a content delivery network with the ability to execute application code on an edge server. Using the present invention, content is created on the edge of the network by running application code.
  • [0012]
    A specific object of the invention is to provide an edge application deployment model that supports execution of Web tier components, e.g., Java server pages (JSP), servlets and Java beans, on the edge of the Internet close to end users, thus avoiding network latency and the need for costly infrastructure over-provisioning, while improving the performance and reliability of mission-critical enterprise applications.
  • [0013]
    In a preferred embodiment, the present invention is a CDN Java application framework offering comprising Java-enabled edge servers. This framework takes advantages and leverages the mapping, load-balancing and management systems that are similar to the ones used with known CDN offerings. In a first aspect, the present invention enables the offloading and execution of the presentation or Web tier of n-tier Internet applications. JSP, Servlets, Java beans and custom tags, which are executed within an application server's servlet container, are executed at the edge of the Internet, close to the end-user. In an alternate embodiment, in addition to the Web tier, at least some or all of the Enterprise tier of the application is also deployed to and executed on a given edge server. The Enterprise tier typically comprises middleware such as entity beans, session beans, and message-driven beans that implement the application's business logic and that provide local or remote database support.
  • [0014]
    According to another aspect of the present invention, developers preferably separate their Web application into two layers: a highly distributed edge layer and a centralized origin layer. In a representative embodiment, the edge layer supports a Web container so that the following technologies are supported: Java server pages (JSPs), servlets, Java beans, Java helper classes, and tag libraries. Preferably, communications between the edge and the origin use conventional communication protocols such as RMI and SOAP. Any protocol that can be tunneled over HTTP, such as JDBC, can also be supported.
  • [0015]
    Preferably, an application is run on the edge server in its own application server instance in its own Java virtual machine (JVM). In a preferred embodiment, a content delivery network service provider operates a CDN with at least one edge server that includes multiple application server/JVM instances, with each instance associated with a given CDN customer. Resource utilization by the multiple application server instances are monitored, and application server processes that over-utilize given resources (e.g., memory, CPU, disk, and network I/O) are terminated. In addition to resource management, preferably security restrictions are imposed on applications running in each application server/JVM process. This is sometimes referred to as sandboxing. These restrictions include, for example, file system read/write restrictions, limitations on socket opening and usage, restrictions on thread starting, stopping and modification, as well as code restrictions that prevent applications from reading certain application server classes. Preferably, a given application cannot run or load code belonging to other applications, it cannot load data belonging to another application, it cannot read or write arbitrary files on the file system, and it cannot make native kernel calls or load libraries that make native calls.
  • [0016]
    By providing Web containers at the edge, the present invention provides the ability to off-load up to the entire Web tier of n-tier Internet applications. Web components executed within the application server's servlet container, can be executed at the edge of the Internet, close to the end-user.
  • [0017]
    In an illustrative operation, an end user makes a request that is directed to a CDN edge server. If the request calls for Java processing and is the first request for the particular application, the application is retrieved from the origin, unpacked, and loaded into the application server. If the application component (e.g., a Web application archive or “WAR” file) is already cached on the edge server, the appropriate servlet or JSP page is used to generate the response. As needed, the edge server contacts the origin site with those portions of the application that need to run on the origin, e.g., access to a central data resource or other non-edgeable servlet. The parts of the page that can best be served from the edge are processed at the edge, while those parts that need to be processed at the origin are processed at the origin, and the results are served back to the end user from the edge server.
  • [0018]
    Application components are delivered to the edge servers on an as-needed basis. In an alternate embodiment, it is desirable to pre-deploy an application or an application component based on some prediction of expected future need for that application or component, or for purposes of fault tolerance. Thus, a given application or component thereof may be delivered to a particular edge server and initialized and started irrespective of whether an end user request has been received at the server.
  • [0019]
    The foregoing has outlined some of the more pertinent features of the present invention. These features should be construed to be merely illustrative. Many other beneficial results can be attained by applying the disclosed invention in a different manner or by modifying the invention as will be described.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • [0020]
    For a more complete understanding of the present invention and the advantages thereof, reference should be made to the following Detailed Description taken in connection with the accompanying drawings, in which:
  • [0021]
    [0021]FIG. 1 is a block diagram of a known content delivery network in which the present invention may be implemented;
  • [0022]
    [0022]FIG. 2 illustrates a typical machine configuration for a CDN edge server;
  • [0023]
    [0023]FIG. 3 illustrates a first embodiment of the present invention wherein a Web tier is implemented in an edge server;
  • [0024]
    [0024]FIG. 4 illustrates a second embodiment of the present invention wherein a Web tier and an Enterprise tier are implemented in the edge server;
  • [0025]
    [0025]FIG. 5 illustrates a representative edge server of the present invention for use in executing one or more edge-enabled applications;
  • [0026]
    [0026]FIG. 6 illustrates a common request/response data flow for an edge-enabled application according to the present invention;
  • [0027]
    [0027]FIG. 7 illustrates one technique for developing an edge application for use in the present invention;
  • [0028]
    [0028]FIG. 8 is an illustrative communication data flow when an edge server dispatcher component receives a client request;
  • [0029]
    [0029]FIG. 9 illustrates an illustrative high level out of process request process flow according to the present invention;
  • [0030]
    [0030]FIG. 10 illustrates an illustrative Java application server process according to an embodiment of the invention;
  • [0031]
    [0031]FIG. 11 illustrates how to upgrade an application version in the application server without interrupting the processing of client requests according to a feature of the present invention;
  • [0032]
    [0032]FIG. 12 illustrates a representative request processing flow for the illustrative embodiment of FIG. 9;
  • [0033]
    [0033]FIG. 13 illustrates a typical edge server concurrently executing multiple Java application server instances for a plurality of CDN customers;
  • [0034]
    [0034]FIG. 14 illustrates a CDN in which an edge server provisioned with an application server container communicates with the origin server and vice versa through one or more communications protocols; and
  • [0035]
    [0035]FIG. 15 illustrates a representative application provisioning method and system that takes advantage of the CDN service provider's secure customer portal.
  • DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT
  • [0036]
    The present invention is a Java application framework that leverages Internet CDN architecture and functionality such as generally described below. Familarity with Java programming conventions and the J2EE architecture are presumed. Additional information about J2EE is available in the publication titled Java 2 Platform Enterprise Edition Specification v1.3 (July 2001), which is available from Sun Microsystems. An online copy is available at the following URL: http://java.sun.com/j2ee/j2ee-13-fr-spec.pdf.
  • [0037]
    By way of background, it is known in the prior art to deliver digital content (e.g., HTTP content, streaming media and applications) using an Internet content delivery network (CDN). A CDN is a network of geographically-distributed content delivery nodes that are arranged for efficient delivery of content on behalf of third party content providers. Typically, a CDN is implemented as a combination of a content delivery infrastructure, a request-routing mechanism, and a distribution infrastructure. The content delivery infrastructure usually comprises a set of “surrogate” origin servers that are located at strategic locations (e.g., Internet network access points, Internet Points of Presence, and the like) for delivering content to requesting end users. The request-routing mechanism allocates servers in the content delivery infrastructure to requesting clients in a way that, for web content delivery, minimizes a given client's response time and, for streaming media delivery, provides for the highest quality. The distribution infrastructure consists of on-demand or push-based mechanisms that move content from the origin server to the surrogates. An effective CDN serves frequently-accessed content from a surrogate that is optimal for a given requesting client. In a typical CDN, a single service provider operates the request-routers, the surrogates, and the content distributors. In addition, that service provider establishes business relationships with content publishers and acts on behalf of their origin server sites to provide a distributed delivery system.
  • [0038]
    As seen in FIG. 1, an Internet content delivery infrastructure usually comprises a set of “surrogate” origin servers 102 that are located at strategic locations (e.g., Internet network access points, and the like) for delivering copies of content to requesting end users 119. A surrogate origin server is defined, for example, in IETF Internet Draft titled “Requirements for Surrogates in the HTTP” dated Aug. 9, 2000, which is incorporated herein by reference. The request-routing mechanism 104 allocates servers 102 in the content delivery infrastructure to requesting clients. The distribution infrastructure consists of on-demand or push-based mechanisms that move content from the origin server to the surrogates. A CDN service provider (CDNSP) may organize sets of surrogate origin servers as a group or so-called “region.” In this type of arrangement, a CDN region 106 typically comprises a set of one or more content servers that share a common back-end network, e.g., a LAN, and that are located at or near an Internet access point. Thus, for example, a typical CDN region may be co-located within an Internet Service Provider (ISP) Point of Presence (PoP) 108. A representative CDN content server is a Pentium-based caching appliance running an operating system (e.g., Linux, Windows NT, Windows 2000) and having suitable RAM and disk storage for CDN applications and content delivery network content (e.g., HTTP content, streaming media and applications). Such content servers are sometimes referred to as “edge” servers as they are located at or near the so-called outer reach or “edge” of the Internet. The CDN typically also includes network agents 109 that monitor the network as well as the server loads. These network agents are typically co-located at third party data centers or other locations. Mapmaker software 107 receives data generated from the network agents and periodically creates maps that dynamically associate IP addresses (e.g., the IP addresses of client-side local name servers) with the CDN regions.
  • [0039]
    Content may be identified for delivery from the CDN using a content migrator or rewrite tool 106 operated, for example, at a participating content provider server. Tool 106 rewrites embedded object URLs to point to the CDNSP domain. A request for such content is resolved through a CDNSP-managed DNS to identify a “best” region, and then to identify an edge server within the region that is not overloaded and that is likely to host the requested content. Instead of using content provider-side migration (e.g., using the tool 106), a participating content provider may simply direct the CDNSP to serve an entire domain (or subdomain) by a DNS directive (e.g., a CNAME). In either case, the CDNSP may provide object-specific metadata to the CDN content servers to determine how the CDN content servers will handle a request for an object being served by the CDN. Metadata, as used herein, refers to a set of control options and parameters for the object (e.g., coherence information, origin server identity information, load balancing information, customer code, other control codes, etc.), and such information may be provided to the CDN content servers via a configuration file, in HTTP headers, or in other ways. The Uniform Resource Locator (URL) of an object that is served from the CDN in this manner does not need to be modified by the content provider. When a request for the object is made, for example, by having an end user navigate to a site and select the URL, a customer's DNS system directs the name query (for whatever domain is in the URL) to the CDNSP DNS request routing mechanism. Once an edge server is identified, the browser passes the object request to the server, which applies the metadata supplied from a configuration file or HTTP response headers to determine how the object will be handled.
  • [0040]
    As also seen in FIG. 1, the CDNSP may operate a metadata transmission system 116 comprising a set of one or more servers to enable metadata to be provided to the CDNSP content servers. The system 116 may comprise at least one control server 118, and one or more staging servers 120 a-n, each of which is typically an HTTP server (e.g., Apache). Metadata is provided to the control server 118 by the CDNSP or the content provider (e.g., using a secure extranet application) and periodically delivered to the staging servers 120 a-n. The staging servers deliver the metadata to the CDN content servers as necessary.
  • [0041]
    [0041]FIG. 2 illustrates a typical machine configuration for a CDN content edge server. Typically, the content server 200 is a caching appliance running an operating system kernel 202, a file system cache 204, server manager software 206, TCP connection manager 208, and disk storage 210. Server manager software 206, among other things, creates and manages a “hot” object cache 212 for popular objects being served by the CDN. It may also provide other CDN-related functions, such as request routing, in-region load balancing, and the like. In operation as an HTTP cache for example, the content server 200 receives end user requests for content, determines whether the requested object is present in the hot object cache or the disk storage, serves the requested object via HTTP (if it is present) or establishes a connection to another content server or an origin server to attempt to retrieve the requested object upon a cache miss. Typically, the edge server operates in a “pull” manner, wherein an object is pulled into the cache initially upon the first request to the cache—which will generate a cache miss since the object is not present.
  • [0042]
    The present invention is a CDN Java application framework offering comprising Java-enabled edge servers. A given edge server (the machine) such as illustrated above in FIG. 2 is assumed to include application server code. As is well-known, an application server is a software platform (sometimes called middleware) on which applications can be deployed. It provides useful utility services and functions to applications. There are currently several major types of application servers, Java-based (J2EE) and Microsoft .NET. Java, of course, is a programming language and a platform, and the programming language is object-oriented and platform independent. Applications written in Java are translated into Java byte code, which code is then run on (intepreted by) a Java Virtual Machine (JVM). In a preferred embodiment of the invention, given edge servers in the CDN are provisioned with a Java application server and additional code to enable Java applications or application components to be executed from the edge of the Internet. The framework can take advantage of and leverage the mapping, load-balancing and management systems used with known CDN offerings, such as the CDN illustrated in FIG. 1 (which is merely representative). In a first embodiment, the application server is a servlet container (e.g., Apache Tomcat), in which case the present invention enables the offloading and execution of the Web tier of n-tier Java-based applications. JSP, servlets, Java beans and custom tags, which are executed within an application server's servlet container, are executed at the edge of the Internet, close to the end-user. The Web tier is typically the front end of a J2EE server. In an alternate embodiment, in addition to the Web tier, at least some or all of the Enterprise tier of the application is also deployed to and executed on a given edge server. The Enterprise or “business” tier typically hosts application-specific business logic and provides system-level services such as transaction management, concurrency control, and security.
  • [0043]
    The present invention advantageously enables a J2EE-compliant application to run in an edge-origin server environment. In particular, the inventive framework preferably leverages a distributed computing platform by distributing the application across the origin and the CDN. As noted above, typically the application contains servlets, JSPs, filters, tag libraries and Java beans/helper classes in a Web tier, and enterprise beans in an enterprise tier. Separation of the Web tier from the Enterprise tier, with execution of the Web tier (e.g., in a Web container) on the edge servers and the Enterprise tier (e.g., in an Enterprise container) on the origin site, is illustrated in FIG. 3. In this embodiment, the edge-enabled version of the application typically comprises two cooperating applications: an edge-side application and an origin-side application. Components of the Web tier may be packaged as a Web Archive (WAR), and components of the Enterprise tier may be packaged as an Enterprise Archive (EAR). As described above, the creation of these two applications typically requires decisions based on knowledge of the application, namely, decisions about which processes should run on the origin and which at the edge.
  • [0044]
    The inventive framework is not limited to running the Enterprise tier in an Enterprise container on the origin, however. As illustrated in FIG. 4, the Enterprise tier may also be distributed out to the edge servers and executed with the Web tier in an application server 400. In this embodiment, the Enterprise tier (for illustrative purposes only) comprises one or more Enterprise JavaBeans (EJB) elements as session beans 402, entity beans 404 and message driven beans 406. To support the Enterprise tier, session beans preferably are persisted into globally coherent state. Entity beans can be used to replicate (at the edge server) read-only databases and to provide transparent tunneling (e.g., using JDBC over SOAP) to an enterprise database.
  • [0045]
    In a representative embodiment, an application server is IBM WebSphere 5.0 application server (WAS). IBM WebSphere uses JVM (Java Virtual Machine) 1.3.1, available from IBM. In FIG. 3, in contrast, the Web tier is executed in a Web container 300. In this example, the Web tier comprises such elements as JSP pages 302, servlets 304 and JavaBeans 306. A representative Web container is provided by Apache Tomcat servlet container, which uses the JVM in JDK 1.3.104 available from Sun Microsystems. Of course, these components are merely exemplary and are not meant to be limiting. Preferably, a Web or Enterprise container runs in multiple instances on CDN edge servers, preferably under application isolation as will be described.
  • [0046]
    In particular, preferably each application is run in an isolated environment via a sandboxing mechanism implemented, e.g., in the JVM. Generally, sandboxing is accomplished by monitoring the resource (e.g., CPU, memory, disk, network I/O) utilization of each application server process. If an application server process over-utilizes resources, it is terminated, and a new application server is started. If an application server induces multiple restarts dues to excessive resource utilization, it is blocked from causing another restart. Preferably, a separate application server process is used for each CDN customer, as this prevents one customer's application from stealing resources from another customer's application. It also isolates application server restarts. In addition, each application server process preferably is run within its own sandboxed directory, outside of which it cannot read or write files. This prevents one customer's application from interfering with another customer's application, or one customer's application accessing another customer's data. Additional details regarding resource management and sandboxing are set forth below.
  • [0047]
    [0047]FIG. 5 illustrates an edge server architecture. The server 500 preferably runs on commodity hardware running an operating system (e.g., a modified form of Linux) 502. The Java stack includes a Java Virtual Machine (JVM) 504 and preferably a J2EE-compliant application server 506. For Web tier components (such as illustrated in FIG. 3), the application server 506 may be implemented with Apache Tomcat servlet container as noted above. For Web tier and Enterprise tier components (such as illustrated in FIG. 4), the application server 506 may be implemented with IBM WebSphere Application Server (WAS). These products, of course, are merely exemplary. According to the invention, the framework (preferably the JVM) creates and maintains application sandboxes 508 for each of the applications 510 a-n. A given customer may run application 510 a, while another customer runs application 510 b. Generalizing, the edge server 500 supports multiple discretely-executable applications. The edge server 500 implements a cache 512 and maintains customer configuration data 514 that controls when application components are used. The server manager 516 overlays and controls the cache, using the customer configuration data. Application sandboxing prevents applications from hurting each other, the server, or gaining access to the code and data of other customers. As noted above, sandboxing also facilitates resource allocation to enable the server to monitor and control the use of CPU, RAM, disk, bandwidth and the kernel. System management 518 and system security 520 modules are also provided to facilitate these and other functions.
  • [0048]
    [0048]FIG. 6 illustrates how an end user client browser 600 interacts with a content delivery network edge server 602 and an origin site 604 to facilitate execution of the application (and, in particular, its Web tier components) on the edge of the network. In this example, it is assumed that the Web tier components of the application are available for deployment and execution on the edge server. As described above, the edge server 602 has a Java processor 606, a cache 608, and a set of customer configuration data 610. The origin site 604 executes a Java application server 612 and includes data sources 614. To utilize the platform, an enterprise creates a DNS alias (e.g., a canonical name or CNAME) that points their Internet domain name to the Internet CDN service provider. Consequently, any lookup for the customer's domain name (e.g., www.site.com) results in a lookup for the IP address of an aliased domain. Because the CDNSP's DNS is responsible for resolving these queries, the CDNSP returns the IP address of an optimal edge server, in this example edge server 602. This is step (1). The decision about which server to resolve the user to typically is based on network congestion, network proximity, server load and bandwidth utilization. At step (2), the edge server 602 applies the customer's configuration data 610 to the request, determining if the request should be serviced using the edge server's local cache 608 or Java processor 606, or forwarded (e.g., via tunneling) to the customer's origin server 604. Thus, when the edge server receives a request from a client, preferably it first matches the request with an appropriate customer configuration file. If the customer configuration file associates Java processing with the request, the Java processor 606 is engaged. If the request is for a servlet or a JSP page, the Java processor 606 fulfills the request. This is step (3). In particular, when a request is received from an application whose WAR file is already in the edge server 602, the Java processor 606 uses the applicable servlet or JSP page (for example) to generate a response for the incoming request. A standard deployment descriptor (e.g., web.xml) may be used to properly map the request(s) to a servlet. If this is the first request that uses this particular web application, the application components (e.g., a WAR file) are retrieved from the origin site or a CDN staging area. As an optimization, the first request can be tunneled to the origin site for processing, while the edge server asynchronously retrieves the WAR file to handle future requests. If the servlet requires a data resource, it may obtain that resource from cache 608. This is step (4). Alternatively, if the servlet is forwarding a request to another (possibly non-edgeable) servlet, the Java processor 606 on the edge server contacts the origin site. As indicated in step (5), communication between the edge server and the origin server is through RMI, SOAP or explicitly through HTTP. RMI enables an edge application to use a remote object as if it was local. SOAP provides an XML-based RPC mechanism for communicating with remote objects. Alternatively, a servlet may retrieve data through an HTTP request in any other format. Preferably, the CDN service provider provides classes that can be used to query XML data. The retrieved data may also be cached in cache 608, eliminating inter-tier latency for future requests. As indicated at step (6), the edge server 602 completes the processing of the request and returns the response to the client. Preferably, the executed servlet remains in memory, ready for a request from a next user that is mapped to the edge server.
  • [0049]
    [0049]FIG. 7 illustrates one way in which an application can be developed and deployed to facilitate edge processing. An application (or component thereof) that is designed for execution on an edge server of a content delivery network is sometimes referred to as an “edge-enabled” application. As illustrated in FIG. 7, after an application 700 has been developed through a software development phase, it may be split into two parts, e.g., by running a splitter or other code development tool, producing, for example, an edge WAR file 702 and an origin WAR file 704. In an illustrative embodiment, the edgeable components 702 are then prepared for deployment on the CDN edge server(s) 706, while the full application is prepared for deployment on the origin site 708. Any convenient technique to allows the developer to specify which components are edgeable, and which are dependent on the centralized resources, can be used with this invention. Preferably, the application developer creates the application using n-tier design principles. Of course, the application development process need not include creation of a single, original WAR file, as the edge and origin components can be designed and built separately in the first instance.
  • [0050]
    The following are some additional guidelines for edge-enabling an application for the framework in an embodiment in which just the Web tier is located on the edge. In this embodiment, enterprise beans run at the origin, and calls to the enterprise beans (including use of home or remote interfaces) preferably do not exist in edge-located filters, servlets, helper classes or beans. Preferably, direct calls to origin-based system resources, such as a database, do not exist in edge-located servlets, helpers or beans. In such case, however, database connectivity is provided, preferably using a Type 3 JDBC driver. Also, any filters, servlets or JSPs that require servlet context preferably do not access the ServletContext of a different web application. In this embodiment, Web applications can use ServletContext attributes to store state. For security reasons, certain web components may need to run at the origin. The web application preferably adheres to the “distributable” conventions described in Servlet Specification 2.3, including marking the web application as “distributable” in its deployment descriptor. Web components in an execution sequence followed in response to a request preferably run entirely at the origin or entirely at the edge in response to this request. A web application edge component that uses request dispatching (include/forward) preferably can only dispatch to another edge web application component; the same is true for an origin component. However, the source or target (dispatched) edge component is free to contact the origin to send data, retrieve data, or the like.
  • [0051]
    An execution sequence normally consists of filters, servlets and JSPs that are involved in response to a request, but preferably it does not include external resources that are used via connections to the origin (such as HttpURLConnection). Preferably, the same request and response argument are shared by the filters that are executed, and by servlets and JSPs that include or forward to each other to form the execution sequence. The definition is dynamic, because a servlet could be included in edge-side and origin-side execution sequences without contradiction.
  • [0052]
    With knowledge of the legal execution requests in the application and the set of requests that cause these execution sequences to be followed, a developer can edge-enable the application. In one embodiment, this process involves identifying components as origin-only, edge-only or both. Origin-only components can run on the origin, preferably unchanged. Edge-only components run only at the edge. The both designation applies to a servlet that could be on an execution path to an origin-only servlet and also on an execution path in which all servlets are edgeable. In this case, the servlet needs to be installed at the origin as well as the edge. The both category might also apply to a servlet serving a comparable function at the edge and at the origin. Some components may best be split into edge and origin components.
  • [0053]
    To construct the request sets and corresponding execution sequences, the deployment descriptor (web.xml) can be used to obtain servlet-mapping values and URL-patterns corresponding to them. For those components that should be split into edge and origin components, it is desirable to create an edge-side component of the same type and one or more origin-side servlets. This can be done by factoring out the origin-side functionality to create the edge-side component and using servlet facades for the origin-side system calls. Components needed both at the edge and at the origin are marked both, and the remaining components are marked edge.
  • [0054]
    An edge dispatcher is then constructed. An edge dispatcher is a single entry point into the web component at the edge. This dispatcher servlet examines an input request and decides to proxy it to the origin or to forward it to a servlet/JSP on the edge. If the pre-edge-enabled web component (i.e., without the dispatcher) already has a single entry point, then the dispatcher functionality can be built into this entry point itself. To construct this component, consider each request set and its corresponding execution sequence. If the execution sequence includes a component marked origin-only, then the corresponding request set must be proxied to the origin (and the filters at the edge must be configured to ignore these requests). Otherwise, the request can be satisfied at the edge and the edge dispatcher forwards it to the first edge-side servlet or JSP in the execution sequence.
  • [0055]
    In addition, to edge-enable the application, some deployment information in the web.xml deployment descriptor must be altered, in particular the servlet-mapping and filter-mapping values to make sure that all requests are routed through the edge dispatcher. Also, filters preferably are not applied twice (e.g., first at the edge, and then at the origin) on requests that are proxied to the origin. Alternatively, one could set up edge-filters and origin-filters. The webapp must adhere to the “distributable” conventions described in Servlet Specification 2.3, including the fact that it must also be marked as “distributable” in its deployment descriptor. The deployment information in the deployment descriptor is altered (particularly the servlet-mapping and filter-mapping values) to make sure that all requests that routed through the edge dispatcher, and that filters are appropriately applied.
  • [0056]
    Typically, the edge dispatcher receives the request and determines its handling. As illustrated in FIG. 8, which is merely exemplary, the request may be processed entirely at the edge by the edge components 802. Alternatively, the dispatcher 800 may serve as a proxy and send the request to the origin 804, which might in turn call origin processes such as enterprise beans 806, which return the response to the proxy which in turn responds to the client. In a split scenario, the dispatcher 800 sends the request to the edge-side component 810. The edge component 810 communicates with the origin-side split component 812, which in turn may call origin processes such as the beans 806. The response return via the edge side component 810.
  • [0057]
    In the above approach, a servlet/JSP on the edge (the proxy) marshals arguments and sends them to a servlet at the origin (the broker), which parses the arguments and performs the requisite method invocation. Then, the broker marshals the return value and sends it back to the proxy. The broker exports origin-side functionality to the edge and serves as a facade for this functionality. In particular, any communication between an edge servlet/JSP and an enterprise bean is preferably via a servlet facade at the origin. An alternative to the design is to have a single origin-side servlet that mediates between the edge and all serlet façades at the origin. This provides a single entry point for edge-origin requests. An origin dispatcher could itself provide all the functionality of all servlet facades that would otherwise exist at the origin.
  • [0058]
    The following describes modifications to a Java application server, specifically its servlet container component, to integrate into the inventive framework. This application server is executed on an edge server, which, as noted above, is a machine running commodity hardware and an operating system. As illustrated in FIG. 9, a preferred architecture is implemented via out of process architecture and comprises an edge server process 900 and multiple Java application server processes 902 a-n. An edge node in the content delivery network preferably has a single edge server application that can spawn multiple child processes each containing an application server instance, as was illustrated in FIG. 8. Each child process preferably is configured for a Java Edge Services API (JESAPI), which according to the invention is an integration framework for a Java application server. Generally, JESAPI interfaces the edge server manager process to the application server instances to facilitate various administration functions, namely, the starting, stopping and reloading of WAR and EAR files, the monitoring of the health of the various application server instances, the monitoring of resource usage by the application server instances, and the collecting of data from the instances to facilitate reporting and billing for use of the platform. As illustrated in FIG. 9, an HTTP/HTTPS request first connects to the edge server process 900. The edge server process 900 preferably maps the request to a context path that is preferably specified in a metadata configuration from the customer configuration data. The edge server process 900 then fetches and unpacks an associated web application archive (WAR) on a file system, and installs the archive. Finally, the edge server process modifies the request to be handled by an application server instance and proxies it using sockets. Additionally, the edge server process 900 preferably employs bi-directional communication with each JESAPI application server child instance, transmitting such information as control data and resource usage.
  • [0059]
    [0059]FIG. 10 illustrates a Java application server instance. The Java application server child process 1000 contains the application server core logic 1002 and is enabled for JESAPI support 1004. An application wrapper 1006 process component is specific to the application server. Its purpose is to integrate and orchestrate the various components of the process. The JVM/JDK 1008 is conventional should not involve any modifications. An external shared object in the JVM intercepts system calls made in the application server process 1002. It monitors resource usage and performs security access checks, as will be described in more detail below. The JESAPI 1004 preferably comprises a set of Java classes and a native library, and it defines the core integration framework for the Java application server process 1002. Although not meant to be limiting, preferably JESAPI relies on the application server process 1002 providing a custom JESAPI implementation singleton object that extends a provided JesapiBase abstract class.
  • [0060]
    The application wrapper 1006 acts as the bootstrap logic for the application server process 1002. The wrapper 1006 is customized to the application server type and acts as “glue” code connecting all the various components of the process. The wrapper component 1006 provides a JESAPI implementation singleton specific for the application server type, which may vary. In particular, the wrapper 1006 initializes JESAPI 1004, performs any necessary runtime configuration of the application server process 1002, starts the server, and notifies JESAPI when the server is ready to process requests. Because it is the entry point for the application, the wrapper must initialize JESAPI and the application server with the data supplied to it by the edge server process (element 900 in FIG. 9) (in the form of arguments, Java system properties, and the like). The data includes, for example: an application server instance id (used by JESAPI) and the socket port the servlet container must be on for HTTP connections. The application wrapper 1006 preferably configures the edge server to only accept HTTP socket connections. In an illustrative embodiment, the application server process must accept connections bound for the local loopback host and on the port specified by the edge server process. Additionally, the application wrapper provides and registers any handlers with the application server necessary for integration, such as protocol handling and logging. Preferably, the application wrapper receives each application server log event (server and per webapp) and routes it to JESAPI. The log handling API provided by the application server preferably invokes the handler in the same thread that issued the log message, and this thread forwards the message to JESAPI. Because application server log messages are redirected to JESAPI via the application wrapper log handlers, file logging can be disabled in the application server. Other standard data streams from the application server likewise are redirected to JESAPI via the application wrapper.
  • [0061]
    Preferably, and as described below, the application server process 1002 uses J2EE security policies to restrict the functionality of web applications as well as server code itself. Preferably, the server code is locked down as much as possible to avoid security loopholes. Also, the JESAPI implementation singleton and any classes that are part of the application wrapper preferably have the same protection as server classes. In addition, preferably there are appropriate security restrictions imposed on the entire process (including server and web application logic).
  • [0062]
    Aside from the features offered by the standard J2EE security permissions, additional restrictions should be imposed for the applications (sometimes referred to as “webapps”). Preferably, web applications are prevented from creating or modifying threads and thread groups. If a web application runs in a non-system thread, the application server process provides a way to address security permissions. A web application also should be allowed to perform JNDI and file read-only operations recursively from its base path (the unpacked WAR file directory root). Preferably, the application server dynamically creates security permissions for the web application at runtime.
  • [0063]
    Because web applications from different customers preferably can run on the same server, the servlet container preferably is configurable to allow/disallow a web application in one context to access the ServletContext instance of a different context; when servlets attempt to call ServletContext.getContext( ), depending on the configuration for the web application, null may be returned. Preferably, this operation is specified per web application at install time. As an added level of security, an external shared object preferably traps system calls made in the application server process and performs access control checks, as will be described below.
  • [0064]
    Prior to forwarding any HTTP requests for a particular web application in the application server, the edge server process (element 900 in FIG. 9) is responsible (if necessary) for unpacking the associated WAR to a base directory on the file system and installing the web application components in the application server. The edge server process notifies the application server process to install and invalidate a web application using JESAPI, supplying the web application configuration at runtime. The edge server process is also responsible for managing which contexts are installed in each application server instance. When the edge server process requests the application server to install a web application, the edge server process sends a control request to JESAPI supplying the web application's context path, its base directory path, and a flag that determines if the web application will be able to access other servlet contexts, e.g., using ServletContext.getContext( ). The JESAPI implementation singleton then processes this request, e.g., by invoking the application server's dynamic web application installation mechanism. After the web application gets installed, the edge server process sends requests for it to the application server. When the edge server process is ready to invalidate a particular web application, it stops sending requests to that web application instance and sends a web application uninstallation control request to JESAPI identifying the web application with its context path.
  • [0065]
    To support web application revisions by hot swapping, the edge server process preferably generates an artificial context path used for web application installation, invalidation, and regular requests in the application server. The context path preferably consists of the context id, a hash of various values that identify the web application instance including the host name, original context path, WAR contents, and revision number. If a new application version (e.g., Version 1.1) is published while an old application version (e.g., Version 1.0) is active, the new application version is placed in the same process (as the original version), and new requests are directed into the new application version. When the old application version drains of requests, that application version is terminated and appropriate clean-up effected. Preferably, both versions of the same customer application run in the same process, although this is not a requirement. This “hot swapping” technique is illustrated in FIG. 11.
  • [0066]
    With explicit web application installation, the edge server process thus sends a web application install command to JESAPI and waits for a successful response before forwarding any HTTP requests associated with the web application to the application server. If an explicit install request occurs because the edge server process encounters a request for a not yet installed web application, there is added latency for processing that initial request because of the explicit install roundtrip. As an alternative, an implicit web application install may be performed to minimize the delay incurred by the first request for a web application that is not yet installed. Instead, the edge server process forwards the request to pre-installed JESAPI webapp (at JESAPI startup) in the application server that will both install the specified web application and have that web application process the original request. This is achieved in a single pass between the edge server process and the application server process. To accomplish this, the edge server procsess modifies the original HTTP request to provide the added data to the JESAPI web application so it can install the application and then have it process the request.
  • [0067]
    A preferred request processing operation is illustrated in FIG. 12. Preferably, JESAPI requires the application server to assign a distinct thread to process each request. The same thread preferably makes all JESAPI calls for processing that request. After the edge server process receives a request and takes care of installing the associated the webapp as necessary in the application server, but before forwarding it to the installed webapp context, the edge server process modifies the HTTP request to correctly get processed by the application server and a JESAPI Servlet Filter. Specifically, the edge server process alters the request's URI to contain the artificial context path (so the application server can correctly map the request to the previously installed unique context instance). The edge server process also inserts various JESAPI internal headers that provide the JESAPI Servlet Filter with more data about how to handle the request.
  • [0068]
    [0068]FIG. 13 illustrates a preferred implementation where multiple application server instances are instantiated, preferably one per CDN customer that is using the edge server. Thus, there is preferably one application server per JVM instance per customer, although this is not meant to be limiting. In this example, edge server 1300 is a machine having an operating system 1302 such as the Linux kernel. An edge server manager process 1304 communicate with the child Java application server instances 1306 a-n preferably via TCP sockets and using a shared memory 1308. Each Java application server instance runs atop its own JVM 1310. Thus, in this embodiment, there is preferably one application server/JVM instance per customer, and the application server/JVM instances are run out of process from the edge server manager. Preferably, the child application server processes are forked from the edge server manager, after which they are tightly monitored and controlled by a Java manager subsystem 1312. The edge server manager forwards a client request that require application server processing over a local TCP socket to a child application server process, which processes the request, and sends the response on the same connection. In addition, resource utilization load is reported from each application server process, across a shared memory segment 1308, to the Java manager subsystem 1312. The manager subsystem 1312 tightly monitors resource utilization of each child application server process, and it will kill application server processes that over utilize resources.
  • [0069]
    In particular, resources consumed by each child application server process are monitored, preferably by shared object components that are loaded by each application server process at startup. These include a Java Edge Services API (JESAPI) shared object 1314, and an intercept shared object 1316. The JESAPI shared object 1314 implements specific JESAPI Java native calls, and it is responsible for communicating across the shared-memory segment 1308 with the Java manager subsystem 1312. The intercept shared object 1316 preferably loads various “intercept” system calls such as “open,” “close,” “gethostbyname” and the like. By intercepting system calls, the manager subsystem 1312 can prevent access to some calls, or make intermediate calculations, or accrue statistics, or the like, before making the “real” system call that the application server intended to make. The Intercept shared object reports any resource utilization to the JESAPI shared object, which then reports it across the shared memory segment to the Java manager subsystem.
  • [0070]
    The following resources may be monitored for each application server process: memory—the memory used by the JVM's internal Java heap (i.e. the heap in which it does memory management for Java objects allocated by the application server, and the webapps that run in the application server); CPU—the CPU time consumed for each request while it was active inside the application server; disk—the disk operations that the application server performs, including disk operations done as a result of a client request (the JESAPI shared object may also check whether a disk read was from disk or from buffer cache so that flits can be properly attributed to the request); and network—the number of sockets that are opened by each application server process to fetch include URLs. The Java manager subsystem 1312 performs resource management, e.g., through a set of policies based on resource utilization. Thus, for example, the Java manager will kill a child application server process for over-utilization of the following resources in the following ways: memory—if the application server's Java heap uses more memory than a configurable amount set in customer metadata, it will be killed; runaway requests—a runaway request is a request that has been processing for an “unreasonible” amount of time (a configurable number), and if an application server generates a certain configurable number of runaways, it will be killed; open sockets—if an application server reaches a configurable limit of open sockets (for which it has never called close), it will be killed, or the like. This rate limiting of resources ensures that no application server instance can become an exclusive user of the server's resources.
  • [0071]
    In addition to the above-described resource management, the Java Security Manager framework facilitates sandboxing by imposition of security restrictions to web applications running in each application server process. Preferably, this is achieved through a combination of a security policy file, and a Java Security Manager implementation. The following restrictions preferably are placed on Java web applications in this manner: file system—customer web applications cannot read or write to the file system (although they can read files from within their own WAR file such as static html); socket—customer web applications cannot open Java sockets; threads—customer web applications are not allowed to start/stop/modify Java threads; and code—customer web applications are prevented from reading JESAPI or application server classes. In the case of sockets, preferably a customer webapp can fetch include files through the HttpURLConnection Java class that is intercepted by JESAPI code and that forces the include to go only through the edge server manager process (and monitors the number of open connections). In addition, preferably the framework allows customers to open raw Java sockets. This is because the previously mentioned intercept shared object will intercept all of the socket API calls, and monitor the number of connections made by the application server process. The intercept object will then connect to the edge server manager process using the HTTP CONNECT method, and the edge server manager process will then open a socket to the desired host.
  • [0072]
    The resource management, sandboxing and security features described above are merely exemplary. Other techniques may be used, for example, resource management by user ID. In such case, after each application server process is launched, a setuid is performed, setting the process to a unique user ID. Once set to this unique UID, other operating system kernel features for resource management can be used. These include total thread limit, file sytem quotas, socket filters, and the like. In addition, this approach enables use of other system calls (e.g., “chroot”) to limit the application server process to a subset of the filesystem, outside of which it will not be able to read or write.
  • [0073]
    One or ordinary skill in the art will appreciate that the JESAPI interface can be designed such as described above to support application servers unchanged. Alternatively, a given application server vendor may modify given application server functionality as appropriate to enable the application server to run on the CDN server provider's edge server platform, in which case certain changes to the servlet container may be necessary for it to be run on the edge server. Thus, for example, where possible, a new subclass of an existing servlet container component should be created (as needed) and then modified to interface to the edge server manager. In either case, preferably the edge server manager interfaces client requests to and from the edge server itself.
  • [0074]
    Some additional aspects of the edge-enabled application framework are now described below, and several examples are also provided.
  • [0075]
    Customer Configuration
  • [0076]
    When an edge server receives a request from a client, preferably it first matches the request with an appropriate customer configuration file. The configuration file may be delivered to the edge servers via any convenient mechanism, such as a CDN metadata transmission system as illustrated in FIG. 1. Of course, any convenient technique for providing the customer configuration data to the edge servers can be used. If the customer configuration associates Java processing with the request, the Java processor is engaged as has been described.
  • [0077]
    Web Container
  • [0078]
    As noted above, if the WAR file is already in the edge server, the Java processor uses the applicable servlet or JSP page (for Web tier processing) to generate a response for incoming requests. A standard deployment descriptor preferably is used to properly map the requests to a servlet. If the Java application is not currently on the edge server, it is retrieved from the origin site or from some other source. Because the retrieval process may cause a significant latency, the application may be retrieved asynchronously, while the initial request is tunneled to the origin server simultaneously. The output of the processed request is returned to the user. The executed servlet preferably remains in memory ready for the next user.
  • [0079]
    Network and Resource Management
  • [0080]
    Servlets preferably are managed to make sure no process consumes an undue amount of resources. Proper resource monitoring and load balancing assures that no application affects another one running at the same time. The Java application may make requests for content through the network. The requests preferably are made through HTTP and HTTPS protocols. Remote Invocation of other Java resources is also preferably done through HTTP.
  • [0081]
    The Role of the Origin Site
  • [0082]
    The origin server may remain an integral part to the edge application, especially when just the Web tier is deployed on the edge network. In addition, because some servlets rely on access to centralized resources, not all requests can be processed by the edge server. In such case, the origin site is responsible for fulfilling the non-edgeable requests, as well as answering any remote calls that might be made by the edge-deployed application.
  • [0083]
    The following are the typical responsibilites of the origin site in such circumstances: respond to RMI requests from the edge tier, respond to HTTP requests from static and dynamic content, set Host Response Headers (HRH) for controlling edge server behavior as necessary, serve WAR files when requested by the edge servers, and respond to JDBC requests from the edge tier.
  • [0084]
    Edge-to-Origin Communication
  • [0085]
    The communication between the servlet on the edge server and the origin site preferably occurs through HTTP or HTTPS protocols as follows: Remote Method Invocation (RMI) communication is tunneled through HTTP; SOAP messages are exchanged over HTTP or HTTPS; JDBC is tunneled over HTTP/HTTPS; responses to relational database queries are encoded in XML (allowing the edge server to cache the results, re-use them with the future requests, and minimizing the inter-tier latency); Servlet control methods (e.g., RequestDispatcher.include( ) and RequestDispatcher.forward( )) are preferably supported regardless of whether the communication is edge-to-origin, or origin-to-edge communication; and custom communication solutions are supported provided messages are transported over HTTP or HTTPS. FIG. 14 is illustrative of these techniques.
  • [0086]
    To ensure that the application is scalable and benefits from being on the edge, the amount of bytes sent and the number of calls between edge and origin should be minimized. This can be accomplished, for example, through caching of the data on the edge, and through the use of a data-access facade (instead of making multiple calls to a database, in which case an edgeable servlet is used to call a non-edgeable servlet to make the database calls on its behalf).
  • [0087]
    The present invention delivers the ability to run Java-based web applications at the edges of the Internet, near the end user, providing several benefits. The web application will be served by as many servers as necessary to maximize the performance. New servers are allocated automatically based on increased traffic, without capital expenditure by an enterprise. Offloading applications from the origin to a distributed network can eliminate single points of failure. In addition, monitoring of edge servers, built-in redundancies and the ability to map users instantly to the optimal servers allows the CDN service provider to bypass network congestions and overcome hardware failures. Offloading application processing from a single origin to to numerous servers at the edge can result in significant performance gains. By mapping each user to an optimal or preferred server, the CDN service provider avoids Internet bottlenecks and can dramatically reduce latency. The ability to allocate servers on demand means applications will never lack processing power or bandwidth. By reducing the number of application servers needed to run at the origin site, the CDN service provider reduces complexity associated with hardware and software maintenance and management.
  • [0088]
    There is no limitation as to the particular type of application component that may be implemented and deployed as an edge-enabled CDN application. In addition to the examples set forth above, representative applications include, without limitation, product configurators, dealer locators, contest engines, content transcoders, content generators, search aggregators, financial calculators, registration engines, and a myriad of others.
  • [0089]
    One of ordinary skill will recognize that many variants are within the scope of the present invention. Thus, for example, a particular edge server may execute a first type of application server instance (e.g., Tomcat servlet container) as well as a second, different type of application server instance (e.g., IBM WebSphere Application Server). As already described, multiple instances of a particular application server will typically be used on a given edge server to facilitate use of that server by multiple service provider customers. Of course, other Web containers besides Apache Tomcat can be used to implement the Web tier, and other Enterprise containers besides IBM WebSphere Application Server can be used to implement the Enterprise container. There is no requirement that a particular application have components that execute on both the edge and the origin; indeed, a given application may execute in a standalone manner completely as an edge-enabled application. There also is no requirement that the application components be packaged as WAR or EAR files, as any convenient mechanism may be used to deploy the application components to the edge. There is no requirement that application components be loaded only in response to client requests at a particular edge server. Indeed, in many cases it will be desirable to pre-deploy an application or an application component based on some prediction of expected future need for that application or component, or for purposes of fault tolerance. Thus, a given application or component thereof may be delivered to a particular edge server and initialized and started irrespective of whether an end user request has been received at the server. Also, there is no requirement that application components be fully or partially J2EE-compliant, or even that the subject matter be implemented entirely in Java. Indeed, the present invention is also extensible beyond Java and J2EE. In particular, the inventive concepts may be practiced in any platform-independent application server programming environment (e.g., Microsoft .NET, Mod Perl executing in Apache, Zope, or the like) capable of being deployed in a distributed computing environment such as a content delivery network.
  • [0090]
    The CDN service provider may provide the ability to test and debug the application within an enterprise firewall. A test server may be a CDN edge server simulator that can be used during application development and testing to validate the execution of the application on the platform's runtime environment.
  • [0091]
    To deploy a prepared edgeable application, the content provider preferably publishes the application (e.g., using FTP) to a CDN staging network. The staging network preferably is a set of staging servers, which may be the CDN edge servers or some other set. This creates a staging environment in which the application can be tested by the enterprise's quality assurance personnel. When tests prove satisfactory, the application is made live, preferably through a secure web interface. FIG. 15 illustrates this process, which takes advantage of a service provider portal. Customers also may upload, deploy and provision applications programmatically. Deployment to the edge preferably occurs automatically. Edge-enabled applications or their components may also be deployed from a CDN content storage network or some other third party server. As already noted, application components also may be pre-fetched to a particular edge server or server region to reduce start-up latency. In a general case, however, an edge application component has not been pre-deployed and an end user has been mapped to a particular edge server. If the end-user request then matches the configuration parameters created during the setup phase, the edge server to which the end user has been mapped will attempt to load the associated Java application. If the Java application is not in cache, it is retrieved from the staging network, or the content storage network, or some other server. Preferably, the application continues to reside within the servlet container for the next request. Unused applications preferably are removed from the Web container but may still be stored in cache. Preferably, if an application has been invalidated, or if the application has not been accessed for an extended period of time, it is removed from the disk cache. To protect the Web application from unauthorized access, preferably only the edge servers are allowed to retrieve the application from the staging network or the other content storage network.

Claims (18)

Having described our invention, what we claim is as follows:
1. In an apparatus for use in a distributed computing platform and having a processor, an edge server manager, a virtual machine, and an application server, the improvement comprising:
code that interfaces the edge server manager to a set of one or more application server instances, each of which are selectively instantiated on a virtual machine instance to execute a given application component;
code that monitors given resource utilization by each of the application server instances and that, responsive to such monitoring, invokes a given action with respect to any application server instance that over-utilizes a given resource; and
code for preventing a given application component executing in a given application server instance from taking a given action.
2. In the apparatus as described in claim 1 wherein the given action invoked is the termination of the application server instance that over-utilizes the given resource.
3. In the apparatus as described in claim 2 wherein the given action invoked is a rate limiting of the application server instance that over-utilizes the given resource.
4. In the apparatus as described in claim 1 wherein the given resource is a resource selected from a set of resources that includes memory usage, CPU usage, disk usage and network I/O usage.
5. In the apparatus as described in claim 1 wherein the given action prevented by the given application component is selected from a set of actions that includes: restricting the given application component's reading or writing to a file system, restricting the given application component's ability to open sockets, restricting the given application component's ability to start, stop or modify threads, and restricting the given application's ability to read given server code.
6. A method operative in an apparatus having a processor, a virtual machine, and an application server, and a set of application components, comprising:
in response to requests, initiating a set application server instances;
executing the application components on the application server instances to respond to the requests;
during execution of the application components, monitoring utilization of given resources by each of the application server instances; and
responsive to the monitoring, invoking a given action with respect to any application server instance that over-utilizes a given resource.
7. The method as described in claim 6 further including the step of restricting a given application component executing in a given application server instance from taking a given action.
8. The method as described in claim 7 wherein the given action prevented by the given application component is selected from a set of actions that includes: restricting the given application component's reading or writing to a file system, restricting the given application component's ability to open sockets, restricting the given application component's ability to start, stop or modify threads, and restricting the given application's ability to read given server code.
9. The method as described in claim 6 wherein the given action invoked is the termination of the application server instance that over-utilizes the given resource.
10. In the apparatus as described in claim 6 wherein the given action invoked is a rate limiting of the application server instance that over-utilizes the given resource.
11. The method as described in claim 6 wherein the given resource is a resource selected from a set of resources that includes memory usage, CPU usage, disk usage and network I/O usage.
12. A method operative in an apparatus having a processor, a virtual machine, and an application server, and a set of application components, comprising:
in response to requests, initiating a set application server instances;
executing the application components on the application server instances to respond to the requests;
during execution of the application components, restricting a given application component executing in a given application server instance from taking a given action.
13. The method as described in claim 12 further including the steps of:
monitoring utilization of given resources by each of the application server instances; and
responsive to the monitoring, invoking a given action with respect to any application server instance that over-utilizes a given resource.
14. The method as described in claim 13 wherein the given action invoked is the termination of the application server instance that over-utilizes the given resource.
15. In the apparatus as described in claim 13 wherein the given action invoked is a rate limiting of the application server instance that over-utilizes the given resource.
16. The method as described in claim 13 wherein the given resource is a resource selected from a set of resources that includes memory usage, CPU usage, disk usage and network I/O usage.
17. The method as described in claim 12 wherein the given action prevented by the given application component is selected from a set of actions that includes: restricting the given application component's reading or writing to a file system, restricting the given application component's ability to open sockets, restricting the given application component's ability to start, stop or modify threads, and restricting the given application's ability to read given server code.
18. The method as described in claim 12 wherein each application server instance executes in association with a virtual machine instance.
US10340109 2002-01-11 2003-01-10 Edge server java application framework having application server instance resource monitoring and management Abandoned US20030135509A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US34748102 true 2002-01-11 2002-01-11
US10340109 US20030135509A1 (en) 2002-01-11 2003-01-10 Edge server java application framework having application server instance resource monitoring and management

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10340109 US20030135509A1 (en) 2002-01-11 2003-01-10 Edge server java application framework having application server instance resource monitoring and management

Publications (1)

Publication Number Publication Date
US20030135509A1 true true US20030135509A1 (en) 2003-07-17

Family

ID=23363875

Family Applications (3)

Application Number Title Priority Date Filing Date
US10340109 Abandoned US20030135509A1 (en) 2002-01-11 2003-01-10 Edge server java application framework having application server instance resource monitoring and management
US10340206 Active 2024-11-13 US7127713B2 (en) 2002-01-11 2003-01-10 Java application framework for use in a content delivery network (CDN)
US11584974 Active 2026-04-13 US8392912B2 (en) 2002-01-11 2006-10-23 Java application framework for use in a content delivery network (CDN)

Family Applications After (2)

Application Number Title Priority Date Filing Date
US10340206 Active 2024-11-13 US7127713B2 (en) 2002-01-11 2003-01-10 Java application framework for use in a content delivery network (CDN)
US11584974 Active 2026-04-13 US8392912B2 (en) 2002-01-11 2006-10-23 Java application framework for use in a content delivery network (CDN)

Country Status (5)

Country Link
US (3) US20030135509A1 (en)
JP (1) JP2006502465A (en)
CA (1) CA2471855C (en)
EP (1) EP1463991A4 (en)
WO (1) WO2003060707A1 (en)

Cited By (144)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030135505A1 (en) * 2002-01-15 2003-07-17 International Business Machines Corporation Edge deployed database proxy driver
US20030140100A1 (en) * 2002-01-18 2003-07-24 Sam Pullara System and method for URL response caching and filtering in servlets and application servers
US20030192031A1 (en) * 2002-01-18 2003-10-09 Sriram Srinivasan Systems and methods for application deployment
US20030225851A1 (en) * 2002-01-18 2003-12-04 Fanshier Stephen R. Systems and methods for application management and deployment
US20030226136A1 (en) * 2002-05-23 2003-12-04 Patrick Calahan System and method for extending application functionality and content
US20040001476A1 (en) * 2002-06-24 2004-01-01 Nayeem Islam Mobile application environment
US20040128328A1 (en) * 2002-12-31 2004-07-01 International Business Machines Corporation Method and apparatus for relaxed transactional isolation in a client-server caching architecture
US6763388B1 (en) * 1999-08-10 2004-07-13 Akamai Technologies, Inc. Method and apparatus for selecting and viewing portions of web pages
US20040205162A1 (en) * 2003-04-11 2004-10-14 Parikh Jay G. Method of executing an edge-enabled application in a content delivery network (CDN)
US20040221019A1 (en) * 2003-04-30 2004-11-04 Speedera Networks, Inc. Automatic migration of data via a distributed computer network
US20040236758A1 (en) * 2003-05-22 2004-11-25 Medicke John A. Methods, systems and computer program products for web services access of analytical models
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
US20050050039A1 (en) * 2003-08-29 2005-03-03 Dietmar Theobald System and method for a database access statement interceptor
US20050097567A1 (en) * 2003-10-21 2005-05-05 Monnie David J. Shared listeners in shared object space
US20050120007A1 (en) * 2003-11-17 2005-06-02 International Business Machines Corporation Integrating browser-incompatible information into web content and displaying the information on a computing device of a browser environment
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
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
US20050188423A1 (en) * 2004-02-24 2005-08-25 Covelight Systems, Inc. Methods, systems and computer program products for monitoring user behavior for a server application
US20050188079A1 (en) * 2004-02-24 2005-08-25 Covelight Systems, Inc. Methods, systems and computer program products for monitoring usage of 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
US20050192877A1 (en) * 2004-02-27 2005-09-01 Smith Michael D. Method and system for a service provider to control exposure to non-payment by a service consumer
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
US20050267889A1 (en) * 2004-02-09 2005-12-01 Coremetrics, Inc. System and method of managing software product-line customizations
US20060004688A1 (en) * 2004-07-02 2006-01-05 Scanlon James R Systems and methods for integrating various processes
US20060101462A1 (en) * 2004-10-21 2006-05-11 Oracle International Corporation File deployment system and method
US20060122973A1 (en) * 2004-12-02 2006-06-08 International Business Machines Corporation Mechanism for defining queries in terms of data objects
US20060122971A1 (en) * 2004-12-02 2006-06-08 International Business Machines Corporation Method and apparatus for generating a service data object based service pattern for an enterprise java beans model
US20060143217A1 (en) * 2004-12-28 2006-06-29 Georgi Stanev Session management within a multi-tiered enterprise network
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
US20070050644A1 (en) * 2005-08-23 2007-03-01 Ibm Corporation System and method for maximizing server utilization in a resource constrained environment
US20070153782A1 (en) * 2005-12-30 2007-07-05 Gregory Fletcher Reliable, high-throughput, high-performance transport and routing mechanism for arbitrary data flows
US20070169070A1 (en) * 2005-11-30 2007-07-19 Ulrich Drepper In-kernel virtual machine for low overhead startup and low resource usage
US20070168496A1 (en) * 2006-01-13 2007-07-19 Microsoft Corporation Application server external resource monitor
US20070169005A1 (en) * 2005-11-30 2007-07-19 Ulrich Drepper Purpose domain for low overhead virtual machines
US7254626B1 (en) 2000-09-26 2007-08-07 Foundry Networks, Inc. Global server load balancing
US20070233698A1 (en) * 2006-03-30 2007-10-04 Cassatt Corporation Distributed computing system having autonomic deployment of virtual machine disk images
US20070288481A1 (en) * 2006-05-16 2007-12-13 Bea Systems, Inc. Ejb cluster timer
US20070294309A1 (en) * 2006-06-19 2007-12-20 International Business Machines Corporation Orchestrated peer-to-peer server provisioning
US20080163124A1 (en) * 2006-12-29 2008-07-03 Sap Ag Graphical user interface system and method for presenting objects
US7423977B1 (en) 2004-08-23 2008-09-09 Foundry Networks Inc. Smoothing algorithm for round trip time (RTT) measurements
US20090031287A1 (en) * 2007-07-23 2009-01-29 Bin Ni Container-less jsp template
US7519684B2 (en) 2004-09-28 2009-04-14 International Business Machines Corporation Extensible URI-pattern-based servlet request processing framework
US20090144323A1 (en) * 2007-11-30 2009-06-04 Jian Tang System and Method for Querying Historical Bean Data
US7574508B1 (en) * 2002-08-07 2009-08-11 Foundry Networks, Inc. Canonical name (CNAME) handling for global server load balancing
US20090235353A1 (en) * 2008-03-15 2009-09-17 Microsoft Corporation Scalable Hosting of User Solutions
US20090234903A1 (en) * 2008-03-13 2009-09-17 Electronic Data Systems Corporation Processing Client Requests for Common Services According to One or More Canonical Forms
US20090234941A1 (en) * 2008-03-15 2009-09-17 Microsoft Corporation Resource Management System For Hosting Of User Solutions
US20090265419A1 (en) * 2008-04-17 2009-10-22 Branda Steven J Executing Applications at Servers With Low Energy Costs
US20090265704A1 (en) * 2008-04-17 2009-10-22 Branda Steven J Application Management for Reducing Energy Costs
US20090327517A1 (en) * 2008-06-30 2009-12-31 Swaminathan Sivasubramanian Request routing using network computing components
WO2009124006A3 (en) * 2008-03-31 2010-01-07 Amazon Technologies, Inc. Request routing
US20100010991A1 (en) * 2004-05-06 2010-01-14 Foundry Networks, Inc. Host-level policies for global server load balancing
US7657629B1 (en) 2000-09-26 2010-02-02 Foundry Networks, Inc. Global server load balancing
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
US7694065B2 (en) 2004-12-28 2010-04-06 Sap Ag Distributed cache architecture
US20100095008A1 (en) * 2003-09-29 2010-04-15 Foundry Networks, Inc. Global server load balancing support for private VIP addresses
US20100115133A1 (en) * 2004-05-06 2010-05-06 Foundry Networks, Inc. Configurable geographic prefixes for global server load balancing
US20100262645A1 (en) * 2009-04-09 2010-10-14 International Business Machines Corporation System and method of optimizing digital media processing in a carrier grade web portal environment
CN101877709A (en) * 2010-06-30 2010-11-03 北京世纪互联宽带数据中心有限公司 Multi-media safety signaling system
CN101888384A (en) * 2010-06-30 2010-11-17 北京世纪互联宽带数据中心有限公司 Multi-media safety signaling system
CN101888385A (en) * 2010-06-30 2010-11-17 北京世纪互联宽带数据中心有限公司 Multi-media safety signaling system
CN101902468A (en) * 2010-06-30 2010-12-01 北京世纪互联宽带数据中心有限公司 Multimedia safety signaling system
US20110055371A1 (en) * 2009-08-26 2011-03-03 At&T Intellectual Property I, L.P. Using a Content Delivery Network for Security Monitoring
US20110138467A1 (en) * 2009-12-08 2011-06-09 At&T Intellectual Property I, L.P. Method and System for Content Distribution Network Security
US7962597B2 (en) 2008-03-31 2011-06-14 Amazon Technologies, Inc. Request routing based on class
US7970891B1 (en) * 2007-01-17 2011-06-28 Google Inc. Tracking links in web browsers
US7970820B1 (en) 2008-03-31 2011-06-28 Amazon Technologies, Inc. Locality based content distribution
US7984437B2 (en) 2002-02-22 2011-07-19 Oracle International Corporation System and method for software application scoping
US7991910B2 (en) 2008-11-17 2011-08-02 Amazon Technologies, Inc. Updating routing information based on client location
US7996615B2 (en) 2004-12-28 2011-08-09 Sap Ag Cache region concept
US8028090B2 (en) 2008-11-17 2011-09-27 Amazon Technologies, Inc. Request routing utilizing client location information
US8060616B1 (en) 2008-11-17 2011-11-15 Amazon Technologies, Inc. Managing CDN registration by a storage provider
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
US8122098B1 (en) 2008-11-17 2012-02-21 Amazon Technologies, Inc. Managing content delivery network service providers by a content broker
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
US8248928B1 (en) 2007-10-09 2012-08-21 Foundry Networks, Llc Monitoring server load balancing
US8321568B2 (en) 2008-03-31 2012-11-27 Amazon Technologies, Inc. Content management
US8397073B1 (en) 2009-09-04 2013-03-12 Amazon Technologies, Inc. Managing secure content in a content delivery network
US8412823B1 (en) 2009-03-27 2013-04-02 Amazon Technologies, Inc. Managing tracking information entries in resource cache components
US8423662B1 (en) * 2003-04-28 2013-04-16 Akamai Technologies, Inc. Forward request queuing in a distributed edge processing environment
US8447831B1 (en) 2008-03-31 2013-05-21 Amazon Technologies, Inc. Incentive driven content delivery
US8452874B2 (en) 2010-11-22 2013-05-28 Amazon Technologies, Inc. Request routing processing
US8463877B1 (en) 2009-03-27 2013-06-11 Amazon Technologies, Inc. Dynamically translating resource identifiers for request routing using popularitiy information
US8468247B1 (en) 2010-09-28 2013-06-18 Amazon Technologies, Inc. Point of presence management in request routing
US20130159528A1 (en) * 2011-12-15 2013-06-20 Microsoft Corporation Failover based application resource acquisition
CN103186400A (en) * 2011-12-31 2013-07-03 深圳市金蝶中间件有限公司 Web application program upgrading method and system
US8521851B1 (en) 2009-03-27 2013-08-27 Amazon Technologies, Inc. DNS query processing using resource identifiers specifying an application broker
US8521880B1 (en) 2008-11-17 2013-08-27 Amazon Technologies, Inc. Managing content delivery network service providers
US8533293B1 (en) 2008-03-31 2013-09-10 Amazon Technologies, Inc. Client side cache management
US8543702B1 (en) 2009-06-16 2013-09-24 Amazon Technologies, Inc. Managing resources using resource expiration data
US8549148B2 (en) 2010-10-15 2013-10-01 Brocade Communications Systems, Inc. Domain name system security extensions (DNSSEC) for global server load balancing
US8577992B1 (en) 2010-09-28 2013-11-05 Amazon Technologies, Inc. Request routing management based on network components
US8601090B1 (en) 2008-03-31 2013-12-03 Amazon Technologies, Inc. Network resource identification
US8606996B2 (en) 2008-03-31 2013-12-10 Amazon Technologies, Inc. Cache optimization
US8626950B1 (en) 2010-12-03 2014-01-07 Amazon Technologies, Inc. Request routing processing
US8645324B2 (en) 2009-01-09 2014-02-04 Pivotal Software, Inc. Preventing pauses in algorithms requiring pre-image information concerning modifications during data replication
US20140137131A1 (en) * 2012-11-15 2014-05-15 International Business Machines Corporation Framework for java based application memory management
US8732309B1 (en) 2008-11-17 2014-05-20 Amazon Technologies, Inc. Request routing utilizing cost information
US8756341B1 (en) 2009-03-27 2014-06-17 Amazon Technologies, Inc. Request routing utilizing popularity information
US20140173043A1 (en) * 2012-12-13 2014-06-19 Level 3 Communications, Llc Devices And Methods Supporting Content Delivery With Adaptation Services
US20140229898A1 (en) * 2013-02-08 2014-08-14 cloudRIA, Inc. Browser-based application management
US8819283B2 (en) 2010-09-28 2014-08-26 Amazon Technologies, Inc. Request routing in a networked environment
US8819187B1 (en) * 2013-10-29 2014-08-26 Limelight Networks, Inc. End-to-end acceleration of dynamic content
US20140297627A1 (en) * 2011-11-18 2014-10-02 Tencent Technology (Shenzhen) Company Limited Java application server and method for processing web business
EP2791819A1 (en) * 2011-12-14 2014-10-22 Level 3 Communications, LLC Content delivery network
US8924528B1 (en) 2010-09-28 2014-12-30 Amazon Technologies, Inc. Latency measurement in resource requests
US8930513B1 (en) 2010-09-28 2015-01-06 Amazon Technologies, Inc. Latency measurement in resource requests
US8938526B1 (en) 2010-09-28 2015-01-20 Amazon Technologies, Inc. Request routing management based on network components
US9003035B1 (en) 2010-09-28 2015-04-07 Amazon Technologies, Inc. Point of presence management in request routing
US20150180826A1 (en) * 2003-05-19 2015-06-25 Akamai Technologies, Inc. Provisioning tool for a content delivery network (CDN)
US9083743B1 (en) 2012-03-21 2015-07-14 Amazon Technologies, Inc. Managing request routing information utilizing performance information
US9130954B2 (en) 2000-09-26 2015-09-08 Brocade Communications Systems, Inc. Distributed health check for global server load balancing
US9135048B2 (en) 2012-09-20 2015-09-15 Amazon Technologies, Inc. Automated profiling of resource usage
US9154551B1 (en) 2012-06-11 2015-10-06 Amazon Technologies, Inc. Processing DNS queries to identify pre-processing information
US9240954B1 (en) * 2009-10-02 2016-01-19 Amazon Technologies, Inc. Forward-based resource delivery network
US9288153B2 (en) 2010-08-26 2016-03-15 Amazon Technologies, Inc. Processing encoded content
US9294367B2 (en) 2007-07-11 2016-03-22 Foundry Networks, Llc Duplicating network traffic through transparent VLAN flooding
US9294391B1 (en) 2013-06-04 2016-03-22 Amazon Technologies, Inc. Managing network computing components utilizing request routing
US9311082B2 (en) 2006-12-29 2016-04-12 Sap Se System and method for processing graph objects
US9323577B2 (en) 2012-09-20 2016-04-26 Amazon Technologies, Inc. Automated profiling of resource usage
US9369358B1 (en) * 2009-04-10 2016-06-14 Open Invention Network Llc System and method for on-line and off-line streaming application isolation
US9391949B1 (en) 2010-12-03 2016-07-12 Amazon Technologies, Inc. Request routing processing
US9407681B1 (en) 2010-09-28 2016-08-02 Amazon Technologies, Inc. Latency measurement in resource requests
US9432240B2 (en) 2005-04-29 2016-08-30 Sap Se Flexible failover configuration
US9495338B1 (en) 2010-01-28 2016-11-15 Amazon Technologies, Inc. Content distribution network
US9509804B2 (en) 2012-12-21 2016-11-29 Akami Technologies, Inc. Scalable content delivery network request handling mechanism to support a request processing layer
US9525659B1 (en) 2012-09-04 2016-12-20 Amazon Technologies, Inc. Request routing utilizing point of presence load information
US9565138B2 (en) 2013-12-20 2017-02-07 Brocade Communications Systems, Inc. Rule-based network traffic interception and distribution scheme
US9628554B2 (en) 2012-02-10 2017-04-18 Amazon Technologies, Inc. Dynamic content delivery
US9634918B2 (en) 2012-12-13 2017-04-25 Level 3 Communications, Llc Invalidation sequencing in a content delivery framework
US9648542B2 (en) 2014-01-28 2017-05-09 Brocade Communications Systems, Inc. Session-based packet routing for facilitating analytics
US9654579B2 (en) 2012-12-21 2017-05-16 Akamai Technologies, Inc. Scalable content delivery network request handling mechanism
US9712484B1 (en) 2010-09-28 2017-07-18 Amazon Technologies, Inc. Managing request routing information utilizing client identifiers
US9742795B1 (en) 2015-09-24 2017-08-22 Amazon Technologies, Inc. Mitigating network attacks
US9756012B1 (en) * 2014-06-16 2017-09-05 Amazon Technologies, Inc. Domain name service information propagation
US9774619B1 (en) 2015-09-24 2017-09-26 Amazon Technologies, Inc. Mitigating network attacks
US9787775B1 (en) 2010-09-28 2017-10-10 Amazon Technologies, Inc. Point of presence management in request routing
US9794281B1 (en) 2015-09-24 2017-10-17 Amazon Technologies, Inc. Identifying sources of network attacks
US9819567B1 (en) 2015-03-30 2017-11-14 Amazon Technologies, Inc. Traffic surge management for points of presence
US9832141B1 (en) 2015-05-13 2017-11-28 Amazon Technologies, Inc. Routing based request correlation
US9866478B2 (en) 2015-03-23 2018-01-09 Extreme Networks, Inc. Techniques for user-defined tagging of traffic in a network visibility system
US9871850B1 (en) * 2014-06-20 2018-01-16 Amazon Technologies, Inc. Enhanced browsing using CDN routing capabilities
US9887931B1 (en) 2015-03-30 2018-02-06 Amazon Technologies, Inc. Traffic surge management for points of presence

Families Citing this family (266)

* 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
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
US20020138437A1 (en) * 2001-01-08 2002-09-26 Lewin Daniel M. Extending an internet content delivery network into an enterprise environment by locating ICDN content servers topologically near an enterprise firewall
US7571215B2 (en) 2001-07-16 2009-08-04 Bea Systems, Inc. Data replication protocol
US20030023898A1 (en) * 2001-07-16 2003-01-30 Jacobs Dean Bernard Layered architecture for data replication
US7702791B2 (en) 2001-07-16 2010-04-20 Bea Systems, Inc. Hardware load-balancing apparatus for session 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
US6978278B2 (en) * 2002-01-18 2005-12-20 Bea Systems, Inc. System and method for heterogeneous caching
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
US9167036B2 (en) 2002-02-14 2015-10-20 Level 3 Communications, Llc Managed object replication and delivery
US20030163761A1 (en) * 2002-02-21 2003-08-28 Michael Chen 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
US7693955B2 (en) * 2002-02-22 2010-04-06 Bea Systems, Inc. System and method for deploying a web service
US7769825B2 (en) * 2002-02-22 2010-08-03 Bea Systems, Inc. System and method for web services Java API-based invocation
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
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
US7418702B2 (en) * 2002-08-06 2008-08-26 Sheng (Ted) Tai Tsao Concurrent web based multi-task support for control management system
US7114148B2 (en) * 2002-09-30 2006-09-26 Microsoft Corporation Runtime services for network software platform
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
WO2004093384A1 (en) * 2003-04-04 2004-10-28 Computer Associates Think, Inc. Method and system for discovery 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
US7660896B1 (en) 2003-04-15 2010-02-09 Akamai Technologies, Inc. Method of load balancing edge-enabled applications in a content delivery network (CDN)
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
CA2527501A1 (en) 2003-05-28 2004-12-09 Caymas Systems, Inc. Multilayer access control security system
US9525566B2 (en) * 2003-07-31 2016-12-20 Cloudsoft Corporation Limited Self-managed mediated information flow
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
US7831693B2 (en) * 2003-08-18 2010-11-09 Oracle America, Inc. Structured methodology and design patterns for web services
US7653915B1 (en) * 2003-10-10 2010-01-26 Emc Corporation N X M platform combination
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
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
US7487513B1 (en) 2003-12-30 2009-02-03 Sap Ag Web service archive
US8190780B2 (en) * 2003-12-30 2012-05-29 Sap Ag Cluster architecture having a star topology with centralized services
CA2463006A1 (en) * 2004-01-27 2005-07-27 Wrapped Apps Corporation On demand provisioning of web applications
US7266804B2 (en) * 2004-02-20 2007-09-04 Microsoft Corporation Strategy for selectively making non-public resources of one assembly visible to another
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
US8868772B2 (en) * 2004-04-30 2014-10-21 Echostar Technologies L.L.C. Apparatus, system, and method for adaptive-rate shifting of streaming content
US7818444B2 (en) * 2004-04-30 2010-10-19 Move Networks, Inc. Apparatus, system, and method for multi-bitrate content streaming
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
US7797697B2 (en) * 2004-05-05 2010-09-14 Bea Systems, Inc. System and method for deploying applications with library modules
US20050251495A1 (en) * 2004-05-06 2005-11-10 Bea Systems, Inc. System and method for unified file management
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
US8302020B2 (en) 2004-06-25 2012-10-30 Apple Inc. Widget authoring and editing environment
US8543931B2 (en) 2005-06-07 2013-09-24 Apple Inc. Preview including theme based installation of user interface elements in a display environment
US7546543B2 (en) * 2004-06-25 2009-06-09 Apple Inc. Widget authoring and editing environment
US7761800B2 (en) 2004-06-25 2010-07-20 Apple Inc. Unified interest layer for user interface
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
US7490295B2 (en) * 2004-06-25 2009-02-10 Apple Inc. Layer for accessing user interface elements
US8566732B2 (en) 2004-06-25 2013-10-22 Apple Inc. Synchronization of widgets and dashboards
CN102104632B (en) 2005-01-24 2012-08-22 茨特里克斯系统公司 Systems and methods for performing caching of dynamically generated objects in a network
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
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
US7757074B2 (en) 2004-06-30 2010-07-13 Citrix Application Networking, Llc System and method for establishing a virtual private network
US8739274B2 (en) * 2004-06-30 2014-05-27 Citrix Systems, Inc. Method and device for performing integrated caching in a data communication network
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
KR20070045282A (en) 2004-07-23 2007-05-02 사이트릭스 시스템스, 인크. Systems and methods for optimizing communications between network nodes
EP1771979B1 (en) 2004-07-23 2011-11-23 Citrix Systems, Inc. A method and systems for securing remote access to private networks
US9286109B1 (en) 2005-08-26 2016-03-15 Open Invention Network, Llc Method and system for providing checkpointing to windows application groups
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
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
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
US7580915B2 (en) 2004-12-14 2009-08-25 Sap Ag Socket-like communication API for C
US7593930B2 (en) * 2004-12-14 2009-09-22 Sap Ag Fast channel architecture
US7689989B2 (en) * 2004-12-28 2010-03-30 Sap Ag Thread monitoring using shared memory
US7886294B2 (en) * 2004-12-28 2011-02-08 Sap Ag Virtual machine monitoring
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
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
US8706877B2 (en) 2004-12-30 2014-04-22 Citrix Systems, Inc. Systems and methods for providing client-side dynamic redirection to bypass an intermediary
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
JP4169771B2 (en) * 2005-01-05 2008-10-22 富士通株式会社 Web server, Web application testing method, Web application testing program
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
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
US8060860B2 (en) * 2005-04-22 2011-11-15 Apple Inc. Security methods and systems
US9692725B2 (en) 2005-05-26 2017-06-27 Citrix Systems, Inc. Systems and methods for using an HTTP-aware client agent
US9407608B2 (en) 2005-05-26 2016-08-02 Citrix Systems, Inc. Systems and methods for enhanced client side policy
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
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
US7512942B2 (en) * 2005-08-24 2009-03-31 International Business Machines Corporation Model-driven software deployment in an application server
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
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
US9104294B2 (en) 2005-10-27 2015-08-11 Apple Inc. Linked widgets
US7752556B2 (en) 2005-10-27 2010-07-06 Apple Inc. Workflow widgets
US7743336B2 (en) 2005-10-27 2010-06-22 Apple Inc. Widget security
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
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
US7587399B2 (en) * 2005-12-30 2009-09-08 Sap Ag Integrated software toolset for a web server
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
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
US8707323B2 (en) 2005-12-30 2014-04-22 Sap Ag Load balancing algorithm for servicing client requests
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
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
US20080005733A1 (en) * 2006-06-29 2008-01-03 Balaji Ramachandran Method and apparatus for updating firmware and software
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
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
US8943304B2 (en) 2006-08-03 2015-01-27 Citrix Systems, Inc. Systems and methods for using an HTTP-aware client agent
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
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
US9026638B2 (en) * 2007-02-05 2015-05-05 Novell, Inc. Stealth entropy collection
US7760642B2 (en) 2007-03-12 2010-07-20 Citrix Systems, Inc. Systems and methods for providing quality of service precedence in TCP congestion control
US7796510B2 (en) 2007-03-12 2010-09-14 Citrix Systems, Inc. Systems and methods for providing virtual fair queueing of network traffic
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
US20080263180A1 (en) * 2007-04-19 2008-10-23 Hurst Mark B Apparatus, system, and method for resilient content acquisition
US8239505B2 (en) * 2007-06-29 2012-08-07 Microsoft Corporation Progressively implementing declarative models in distributed systems
US8954871B2 (en) 2007-07-18 2015-02-10 Apple Inc. User-centric widgets and dashboards
US8667415B2 (en) 2007-08-06 2014-03-04 Apple Inc. Web widgets
US8683066B2 (en) * 2007-08-06 2014-03-25 DISH Digital L.L.C. Apparatus, system, and method for multi-bitrate content streaming
US8230386B2 (en) * 2007-08-23 2012-07-24 Microsoft Corporation Monitoring distributed applications
US8032587B2 (en) * 2007-08-28 2011-10-04 International Business Machines Corporation Method and apparatus for client-side aggregation of asynchronous fragmented requests
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
US8121117B1 (en) 2007-10-01 2012-02-21 F5 Networks, Inc. Application layer network traffic prioritization
US7925694B2 (en) 2007-10-19 2011-04-12 Citrix Systems, Inc. Systems and methods for managing cookies via HTTP content layer
US20090113292A1 (en) * 2007-10-26 2009-04-30 Microsoft Corporation Flexibly editing heterogeneous documents
US8225308B2 (en) * 2007-10-26 2012-07-17 Microsoft Corporation Managing software lifecycle
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
US7974939B2 (en) * 2007-10-26 2011-07-05 Microsoft Corporation Processing model-based commands for distributed applications
US8930960B2 (en) * 2007-12-18 2015-01-06 Sap Se Methods and systems for object interpretation within a shared object space
GB0819529D0 (en) * 2007-12-26 2008-12-03 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
CN101984778B (en) 2008-01-26 2014-08-13 思杰系统有限公司 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
US9762692B2 (en) 2008-04-04 2017-09-12 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
CN102047244B (en) 2008-04-04 2013-02-27 第三雷沃通讯有限责任公司 Handling long-tail content in a content delivery network (CDN)
US8789168B2 (en) * 2008-05-12 2014-07-22 Microsoft Corporation Media streams from containers processed by hosted code
CN102037710B (en) * 2008-05-19 2014-04-02 思杰系统有限公司 Systems and methods for remoting multimedia plugin calls
US9094301B2 (en) * 2008-05-30 2015-07-28 Red Hat, Inc. Provisioning network resources by environment and network address
US8015213B2 (en) * 2008-06-26 2011-09-06 Microsoft Corporation Content having native and export portions
CN101296243B (en) * 2008-06-26 2013-02-20 阿里巴巴集团控股有限公司 Service integration platform system and method for providing internet service
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
US8316124B1 (en) 2008-09-29 2012-11-20 Amazon Technologies, Inc. Managing network data display
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
US8117306B1 (en) 2008-09-29 2012-02-14 Amazon Technologies, Inc. Optimizing content management
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
US20110219109A1 (en) * 2008-10-28 2011-09-08 Cotendo, Inc. System and method for sharing transparent proxy between isp and cdn
US20120209942A1 (en) * 2008-10-28 2012-08-16 Cotendo, Inc. System combining a cdn reverse proxy and an edge forward proxy with secure connections
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
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
US9020881B2 (en) * 2008-12-19 2015-04-28 Sap Se Public solution model in an enterprise service architecture
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
US8464256B1 (en) 2009-04-10 2013-06-11 Open Invention Network, Llc System and method for hierarchical interception with isolated environments
US8341631B2 (en) * 2009-04-10 2012-12-25 Open Invention Network Llc System and method for application isolation
US8401941B1 (en) 2009-04-10 2013-03-19 Open Invention Network Llc System and method for usage billing of hosted applications
US8401940B1 (en) 2009-04-10 2013-03-19 Open Invention Network Llc System and method for usage billing of hosted applications
US8539488B1 (en) 2009-04-10 2013-09-17 Open Invention Network, Llc System and method for application isolation with live migration
US9577893B1 (en) 2009-04-10 2017-02-21 Open Invention Network Llc System and method for cached streaming application isolation
US8418236B1 (en) 2009-04-10 2013-04-09 Open Invention Network Llc System and method for streaming application isolation
US8219676B2 (en) 2009-06-22 2012-07-10 Citrix Systems, Inc. Systems and methods for web logging of trace data in a multi-core system
US20110022471A1 (en) * 2009-07-23 2011-01-27 Brueck David F Messaging service for providing updates for multimedia content of a live event delivered over the internet
WO2011022405A3 (en) 2009-08-17 2011-06-03 Akamai Technologies, Inc. Method and system for http-based stream delivery
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
US9203816B2 (en) * 2009-09-04 2015-12-01 Echostar Technologies L.L.C. Controlling access to copies of media content by a client device
US8612622B2 (en) 2009-10-02 2013-12-17 Limelight Networks, Inc. Real-time message queuing for a processing ring
US8331371B2 (en) 2009-12-17 2012-12-11 Amazon Technologies, Inc. Distributed routing architecture
US8331370B2 (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
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
KR20130081233A (en) * 2010-05-19 2013-07-16 아카마이 테크놀로지스, 인크. Edge server http post message processing
US9420049B1 (en) 2010-06-30 2016-08-16 F5 Networks, Inc. Client side human user indicator
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
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
US8880633B2 (en) 2010-12-17 2014-11-04 Akamai Technologies, Inc. Proxy server with byte-based include interpreter
CN103392320B (en) 2010-12-29 2016-08-31 思杰系统有限公司 System and method for multi-layer encryption items labeled to provide additional safe and effective encryption projects identified
US8867337B2 (en) 2011-04-26 2014-10-21 International Business Machines Corporation Structure-aware caching
WO2012158854A1 (en) 2011-05-16 2012-11-22 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
US8903702B2 (en) * 2011-08-31 2014-12-02 International Business Machines Corporation Generating specifications for expression language expressions and tag libraries
US20130055255A1 (en) * 2011-08-31 2013-02-28 Rovi Technologies Corporation Systems and methods for common application platforms utilizing shared services
US8799647B2 (en) 2011-08-31 2014-08-05 Sonic Ip, Inc. Systems and methods for application identification
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
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
US9244843B1 (en) 2012-02-20 2016-01-26 F5 Networks, Inc. Methods for improving flow cache bandwidth utilization and devices thereof
US20130346465A1 (en) * 2012-06-21 2013-12-26 Microsoft Corporation Application enhancement using edge data center
US20140006480A1 (en) * 2012-06-29 2014-01-02 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
US9578090B1 (en) 2012-11-07 2017-02-21 F5 Networks, Inc. Methods for provisioning application delivery service and devices thereof
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
US9648125B2 (en) 2013-10-04 2017-05-09 Akamai Technologies, Inc. Systems and methods for caching content with notification-based invalidation
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
US9641640B2 (en) 2013-10-04 2017-05-02 Akamai Technologies, Inc. Systems and methods for controlling cacheability and privacy of objects
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
US9485456B2 (en) 2013-12-30 2016-11-01 Akamai Technologies, Inc. Frame-rate conversion in a distributed computing system
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
US9361140B1 (en) 2014-12-11 2016-06-07 International Business Machines Corporation Isolating applications in server environment
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
US20160381137A1 (en) 2015-06-23 2016-12-29 International Business Machines Corporation Management of asynchronous and synchronous resource requests
US20170064029A1 (en) * 2015-08-28 2017-03-02 Qualcomm Incorporated Local retrieving and caching of content to small cells
US9781246B2 (en) 2015-08-28 2017-10-03 Qualcomm Incorporated Augmenting reality using a small cell

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6223202B1 (en) * 1998-06-05 2001-04-24 International Business Machines Corp. Virtual machine pooling
US20020073086A1 (en) * 2000-07-10 2002-06-13 Nicholas Thompson Scalable and programmable query distribution and collection in a network of queryable devices
US20020178254A1 (en) * 2001-05-23 2002-11-28 International Business Machines Corporation Dynamic deployment of services in a computing network
US20020177907A1 (en) * 2001-05-25 2002-11-28 International Business Machines Corporation Method and apparatus for replaying and visualizing post-performance metrics for a complex heterogeneous data space
US20030065986A1 (en) * 2001-05-09 2003-04-03 Fraenkel Noam A. Root cause analysis of server system performance degradations
US20030084091A1 (en) * 2001-09-28 2003-05-01 International Business Machines Corporation Apparatus and method for offloading application components to edge servers

Family Cites Families (42)

* 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 (en) * 1996-07-02 1998-01-23 Canon Inc Starting method for program, and storage medium and computer device
US5991809A (en) 1996-07-25 1999-11-23 Clearway Technologies, Llc Web serving system that coordinates multiple servers to optimize file transfers
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
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
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
US6754699B2 (en) 2000-07-19 2004-06-22 Speedera Networks, Inc. Content delivery and global traffic management network system
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
US6405252B1 (en) 1999-11-22 2002-06-11 Speedera Networks, Inc. Integrated point of presence server network
US6785704B1 (en) * 1999-12-20 2004-08-31 Fastforward Networks Content distribution system for operation over an internetwork including content peering arrangements
WO2001052054A3 (en) * 2000-01-14 2002-03-14 Tejas M Damania 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 Michael J. Sikorsky Distributed object oriented structure server abstraction techniques, software, objects and methods
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
US20020138437A1 (en) * 2001-01-08 2002-09-26 Lewin Daniel M. Extending an internet content delivery network into an enterprise environment by locating ICDN content servers topologically near an enterprise firewall
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
US7174373B1 (en) * 2001-03-13 2007-02-06 Panamsat Corporation Self-contained demonstration node in a satellite based content delivery system
US7154898B1 (en) * 2001-03-13 2006-12-26 Intelsat, Ltd. Scalable edge node
US6754659B2 (en) 2001-04-09 2004-06-22 International Business Machines Corporation Method for running existing java beans in an enterprise java bean environment
US7320032B2 (en) * 2001-05-21 2008-01-15 Hewlett-Packard Development Company, L.P. Methods and structure for reducing resource hogging
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
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

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6223202B1 (en) * 1998-06-05 2001-04-24 International Business Machines Corp. Virtual machine pooling
US20020073086A1 (en) * 2000-07-10 2002-06-13 Nicholas Thompson Scalable and programmable query distribution and collection in a network of queryable devices
US20030065986A1 (en) * 2001-05-09 2003-04-03 Fraenkel Noam A. Root cause analysis of server system performance degradations
US20020178254A1 (en) * 2001-05-23 2002-11-28 International Business Machines Corporation Dynamic deployment of services in a computing network
US20020177907A1 (en) * 2001-05-25 2002-11-28 International Business Machines Corporation Method and apparatus for replaying and visualizing post-performance metrics for a complex heterogeneous data space
US20030084091A1 (en) * 2001-09-28 2003-05-01 International Business Machines Corporation Apparatus and method for offloading application components to edge servers

Cited By (346)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6763388B1 (en) * 1999-08-10 2004-07-13 Akamai Technologies, Inc. Method and apparatus for selecting and viewing portions of web pages
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
US9225775B2 (en) 2000-09-26 2015-12-29 Brocade Communications Systems, Inc. Global server load balancing
US9130954B2 (en) 2000-09-26 2015-09-08 Brocade Communications Systems, Inc. Distributed health check for global server load balancing
US9015323B2 (en) 2000-09-26 2015-04-21 Brocade Communications Systems, Inc. Global server load balancing
US20100153558A1 (en) * 2000-09-26 2010-06-17 Foundry Networks, Inc. Global server load balancing
US20100082787A1 (en) * 2000-09-26 2010-04-01 Foundry Networks, Inc. Global server load balancing
US7254626B1 (en) 2000-09-26 2007-08-07 Foundry Networks, Inc. Global server load balancing
US7657629B1 (en) 2000-09-26 2010-02-02 Foundry Networks, Inc. Global server load balancing
US8024441B2 (en) 2000-09-26 2011-09-20 Brocade Communications Systems, Inc. Global server load balancing
US9479574B2 (en) 2000-09-26 2016-10-25 Brocade Communications Systems, Inc. Global server load balancing
US7454500B1 (en) 2000-09-26 2008-11-18 Foundry Networks, Inc. Global server load balancing
US8504721B2 (en) 2000-09-26 2013-08-06 Brocade Communications Systems, Inc. Global server load balancing
US20030135505A1 (en) * 2002-01-15 2003-07-17 International Business Machines Corporation Edge deployed database proxy driver
US7426515B2 (en) * 2002-01-15 2008-09-16 International Business Machines Corporation Edge deployed database proxy driver
US7702740B2 (en) * 2002-01-18 2010-04-20 Bea Systems, Inc. Systems and methods for application deployment
US20030225851A1 (en) * 2002-01-18 2003-12-04 Fanshier Stephen R. Systems and methods for application management and deployment
US20030192031A1 (en) * 2002-01-18 2003-10-09 Sriram Srinivasan 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
US7228326B2 (en) * 2002-01-18 2007-06-05 Bea Systems, Inc. Systems and methods for application deployment
US7206817B2 (en) * 2002-01-18 2007-04-17 Bea Systems, Inc. Systems and methods for application management and deployment
US20070180018A1 (en) * 2002-01-18 2007-08-02 Bea Systems, Inc. Systems and Methods for Application Deployment
US7984437B2 (en) 2002-02-22 2011-07-19 Oracle International Corporation System and method for software application scoping
US20030226136A1 (en) * 2002-05-23 2003-12-04 Patrick Calahan System and method for extending application functionality and content
US7058940B2 (en) * 2002-05-23 2006-06-06 Bea Systems, Inc. System and method for extending application functionality and content
US7409684B2 (en) 2002-05-23 2008-08-05 Bea Systems, Inc. System and method for extending application functionality and content
US20060212864A1 (en) * 2002-05-23 2006-09-21 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
US8949850B2 (en) 2002-08-01 2015-02-03 Brocade Communications Systems, Inc. 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
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
US7574508B1 (en) * 2002-08-07 2009-08-11 Foundry Networks, Inc. Canonical name (CNAME) handling for global server load balancing
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
US20040128328A1 (en) * 2002-12-31 2004-07-01 International Business Machines Corporation Method and apparatus for relaxed transactional isolation in a client-server caching architecture
US20040205162A1 (en) * 2003-04-11 2004-10-14 Parikh Jay G. Method of executing an edge-enabled application 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
US20040221019A1 (en) * 2003-04-30 2004-11-04 Speedera Networks, Inc. Automatic migration of data via a distributed computer network
US20080281946A1 (en) * 2003-04-30 2008-11-13 Akamai Technologies, Inc. Automatic migration of data via a distributed computer network
US20110191449A1 (en) * 2003-04-30 2011-08-04 Akamai Technologies, Inc. Automatic migration of data via a distributed computer network
US8250211B2 (en) 2003-04-30 2012-08-21 Akamai Technologies, Inc. Automatic migration of data via a distributed computer network
US7930402B2 (en) 2003-04-30 2011-04-19 Akamai Technologies, Inc. Automatic migration of data via a distributed computer network
US20150180826A1 (en) * 2003-05-19 2015-06-25 Akamai Technologies, Inc. Provisioning tool for a content delivery network (CDN)
US9647983B2 (en) * 2003-05-19 2017-05-09 Akamai Technologies, Inc. Provisioning tool for a content delivery network (CDN)
US20040236758A1 (en) * 2003-05-22 2004-11-25 Medicke John A. Methods, systems and computer program products for web services access of analytical models
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
US20050050039A1 (en) * 2003-08-29 2005-03-03 Dietmar Theobald System and method for a database access statement interceptor
US8719242B2 (en) * 2003-08-29 2014-05-06 Sap Ag System and method for a database access statement interceptor
US20100095008A1 (en) * 2003-09-29 2010-04-15 Foundry Networks, Inc. Global server load balancing support for private VIP addresses
US9584360B2 (en) 2003-09-29 2017-02-28 Foundry Networks, Llc Global server load balancing support for private VIP addresses
US20050097567A1 (en) * 2003-10-21 2005-05-05 Monnie David J. Shared listeners in shared object space
US7689986B2 (en) * 2003-10-21 2010-03-30 Gemstone Systems, Inc. Shared listeners in shared object space
US20050120007A1 (en) * 2003-11-17 2005-06-02 International Business Machines Corporation Integrating browser-incompatible information into web content and displaying the information on a computing device of a browser environment
US7668815B2 (en) * 2003-11-17 2010-02-23 International Business Machines Corporation Integrating browser-incompatible information into web content and displaying the information on a computing device of a browser environment
US20050267889A1 (en) * 2004-02-09 2005-12-01 Coremetrics, Inc. System and method of managing software product-line customizations
US7650344B2 (en) * 2004-02-09 2010-01-19 Coremetrics, Inc. System and method of managing software product-line customizations
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
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
US20050188423A1 (en) * 2004-02-24 2005-08-25 Covelight Systems, Inc. Methods, systems and computer program products for monitoring user behavior 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
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
US20050192877A1 (en) * 2004-02-27 2005-09-01 Smith Michael D. Method and system for a service provider to control exposure to non-payment by a service consumer
US7899899B2 (en) 2004-05-06 2011-03-01 Foundry Networks, Llc Configurable geographic prefixes for global server load balancing
US20100010991A1 (en) * 2004-05-06 2010-01-14 Foundry Networks, Inc. Host-level policies for global server load balancing
US8280998B2 (en) 2004-05-06 2012-10-02 Brocade Communications Systems, Inc. Configurable geographic prefixes for global server load balancing
US8862740B2 (en) 2004-05-06 2014-10-14 Brocade Communications Systems, Inc. Host-level policies for global server load balancing
US20100299427A1 (en) * 2004-05-06 2010-11-25 Foundry Networks, Inc. Configurable geographic prefixes for global server load balancing
US7756965B2 (en) 2004-05-06 2010-07-13 Foundry Networks, Inc. Configurable geographic prefixes for global server load balancing
US7840678B2 (en) 2004-05-06 2010-11-23 Brocade Communication Systems, Inc. Host-level policies for global server load balancing
US20100115133A1 (en) * 2004-05-06 2010-05-06 Foundry Networks, Inc. Configurable geographic prefixes for global server load balancing
US8510428B2 (en) 2004-05-06 2013-08-13 Brocade Communications Systems, Inc. Configurable geographic prefixes for global server load balancing
US7949757B2 (en) 2004-05-06 2011-05-24 Brocade Communications Systems, Inc. Host-level policies for global server load balancing
US20060004688A1 (en) * 2004-07-02 2006-01-05 Scanlon James R Systems and methods for integrating various processes
US7423977B1 (en) 2004-08-23 2008-09-09 Foundry Networks Inc. Smoothing algorithm for round trip time (RTT) measurements
US20100061236A1 (en) * 2004-08-23 2010-03-11 Foundry Networks, Inc. Smoothing algorithm for round trip time (rtt) measurements
US7885188B2 (en) 2004-08-23 2011-02-08 Brocade Communications Systems, Inc. Smoothing algorithm for round trip time (RTT) measurements
US8755279B2 (en) 2004-08-23 2014-06-17 Brocade Communications Systems, 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
US7895591B2 (en) 2004-10-21 2011-02-22 Oracle International Corp. File deployment system and method
US20060101462A1 (en) * 2004-10-21 2006-05-11 Oracle International Corporation File deployment system and method
US20060122971A1 (en) * 2004-12-02 2006-06-08 International Business Machines Corporation Method and apparatus for generating a service data object based service pattern for an enterprise java beans model
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
US20060122973A1 (en) * 2004-12-02 2006-06-08 International Business Machines Corporation Mechanism for defining queries in terms of data objects
US7792851B2 (en) 2004-12-02 2010-09-07 International Business Machines Corporation Mechanism for defining queries in terms of data objects
US8204931B2 (en) 2004-12-28 2012-06-19 Sap Ag Session management within a multi-tiered enterprise network
US8799359B2 (en) 2004-12-28 2014-08-05 Sap Ag Session management within a multi-tiered enterprise network
US9009409B2 (en) 2004-12-28 2015-04-14 Sap Se Cache region concept
US7694065B2 (en) 2004-12-28 2010-04-06 Sap Ag Distributed cache architecture
US20060143217A1 (en) * 2004-12-28 2006-06-29 Georgi Stanev Session management within a multi-tiered enterprise network
US7996615B2 (en) 2004-12-28 2011-08-09 Sap Ag Cache region concept
US9432240B2 (en) 2005-04-29 2016-08-30 Sap Se Flexible failover configuration
US7461274B2 (en) 2005-08-23 2008-12-02 International Business Machines Corporation Method for maximizing server utilization in a resource constrained environment
US8032776B2 (en) 2005-08-23 2011-10-04 International Business Machines Corporation System for maximizing server utilization in a resource constrained environment
US20070050644A1 (en) * 2005-08-23 2007-03-01 Ibm Corporation System and method for maximizing server utilization in a resource constrained environment
US8612970B2 (en) 2005-11-30 2013-12-17 Red Hat, Inc. Purpose domain for low overhead virtual machines
US8429629B2 (en) * 2005-11-30 2013-04-23 Red Hat, Inc. In-kernel virtual machine for low overhead startup and low resource usage
US20070169070A1 (en) * 2005-11-30 2007-07-19 Ulrich Drepper In-kernel virtual machine for low overhead startup and low resource usage
US20070169005A1 (en) * 2005-11-30 2007-07-19 Ulrich Drepper Purpose domain for low overhead virtual machines
US7660296B2 (en) * 2005-12-30 2010-02-09 Akamai Technologies, Inc. Reliable, high-throughput, high-performance transport and routing mechanism for arbitrary data flows
US20100138488A1 (en) * 2005-12-30 2010-06-03 Gregory Fletcher Reliable, high-throughput, high-performance transport and routing mechanism for arbitrary data flows
US20150074187A1 (en) * 2005-12-30 2015-03-12 Akamai Technologies, Inc. Reliable, high-throughput, high-performance transport and routing mechanism for arbitrary data flows
US8170017B2 (en) * 2005-12-30 2012-05-01 Akamai Technologies, Inc. Reliable, high-throughput, high-performance transport and routing mechanism for arbitrary data flows
US20070153782A1 (en) * 2005-12-30 2007-07-05 Gregory Fletcher Reliable, high-throughput, high-performance transport and routing mechanism for arbitrary data flows
WO2007089352A3 (en) * 2005-12-30 2008-08-14 Akamai Tech Inc Reliable, high-throughput, high-performance transport and routing mechanism for arbitrary data flows
US20070168496A1 (en) * 2006-01-13 2007-07-19 Microsoft Corporation Application server external resource monitor
US7685272B2 (en) 2006-01-13 2010-03-23 Microsoft Corporation Application server external resource monitor
US8572138B2 (en) * 2006-03-30 2013-10-29 Ca, Inc. Distributed computing system having autonomic deployment of virtual machine disk images
US20070233698A1 (en) * 2006-03-30 2007-10-04 Cassatt Corporation Distributed computing system having autonomic deployment of virtual machine disk images
US20070288481A1 (en) * 2006-05-16 2007-12-13 Bea Systems, Inc. Ejb cluster timer
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
US20070294309A1 (en) * 2006-06-19 2007-12-20 International Business Machines Corporation Orchestrated peer-to-peer server provisioning
US9311082B2 (en) 2006-12-29 2016-04-12 Sap Se System and method for processing graph objects
US20080163124A1 (en) * 2006-12-29 2008-07-03 Sap Ag Graphical user interface system and method for presenting objects
US8640086B2 (en) 2006-12-29 2014-01-28 Sap Ag Graphical user interface system and method for presenting objects
US7970891B1 (en) * 2007-01-17 2011-06-28 Google Inc. Tracking links in web browsers
US9021129B2 (en) 2007-06-29 2015-04-28 Amazon Technologies, Inc. Request routing utilizing client location information
US9021127B2 (en) 2007-06-29 2015-04-28 Amazon Technologies, Inc. Updating routing information based on client location
US9479415B2 (en) 2007-07-11 2016-10-25 Foundry Networks, Llc Duplicating network traffic through transparent VLAN flooding
US9294367B2 (en) 2007-07-11 2016-03-22 Foundry Networks, Llc Duplicating network traffic through transparent VLAN flooding
US20090031287A1 (en) * 2007-07-23 2009-01-29 Bin Ni Container-less jsp template
US9727397B2 (en) * 2007-07-23 2017-08-08 Paypal, Inc. Container-less JSP template
US8248928B1 (en) 2007-10-09 2012-08-21 Foundry Networks, Llc Monitoring server load balancing
US9270566B2 (en) 2007-10-09 2016-02-23 Brocade Communications Systems, Inc. Monitoring server load balancing
US20090144323A1 (en) * 2007-11-30 2009-06-04 Jian Tang System and Method for Querying Historical Bean Data
US8341647B2 (en) * 2007-11-30 2012-12-25 International Business Machines Corporation System and method for querying historical bean data
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
US20090234903A1 (en) * 2008-03-13 2009-09-17 Electronic Data Systems Corporation Processing Client Requests for Common Services According to One or More Canonical Forms
US8316101B2 (en) 2008-03-15 2012-11-20 Microsoft Corporation Resource management system for hosting of user solutions
US20090234941A1 (en) * 2008-03-15 2009-09-17 Microsoft Corporation Resource Management System For Hosting Of User Solutions
US20090235353A1 (en) * 2008-03-15 2009-09-17 Microsoft Corporation Scalable Hosting of User Solutions
US8447831B1 (en) 2008-03-31 2013-05-21 Amazon Technologies, Inc. Incentive driven content delivery
US8352613B2 (en) 2008-03-31 2013-01-08 Amazon Technologies, Inc. Content management
US8352615B2 (en) 2008-03-31 2013-01-08 Amazon Technologies, Inc. Content management
US8352614B2 (en) 2008-03-31 2013-01-08 Amazon Technologies, Inc. Content management
US8601090B1 (en) 2008-03-31 2013-12-03 Amazon Technologies, Inc. Network resource identification
US8386596B2 (en) 2008-03-31 2013-02-26 Amazon Technologies, Inc. Request routing based on class
US9208097B2 (en) 2008-03-31 2015-12-08 Amazon Technologies, Inc. Cache optimization
US9210235B2 (en) 2008-03-31 2015-12-08 Amazon Technologies, Inc. Client side cache management
US8402137B2 (en) 2008-03-31 2013-03-19 Amazon Technologies, Inc. Content management
US9009286B2 (en) 2008-03-31 2015-04-14 Amazon Technologies, Inc. Locality based content distribution
US8156243B2 (en) 2008-03-31 2012-04-10 Amazon Technologies, Inc. Request routing
US8135820B2 (en) 2008-03-31 2012-03-13 Amazon Technologies, Inc. Request routing based on class
US8060561B2 (en) 2008-03-31 2011-11-15 Amazon Technologies, Inc. Locality based content distribution
US8438263B2 (en) 2008-03-31 2013-05-07 Amazon Technologies, Inc. Locality based content distribution
US8346937B2 (en) 2008-03-31 2013-01-01 Amazon Technologies, Inc. Content management
US9332078B2 (en) 2008-03-31 2016-05-03 Amazon Technologies, Inc. Locality based content distribution
US9026616B2 (en) 2008-03-31 2015-05-05 Amazon Technologies, Inc. Content delivery reconciliation
US8930544B2 (en) 2008-03-31 2015-01-06 Amazon Technologies, Inc. Network resource identification
US9544394B2 (en) 2008-03-31 2017-01-10 Amazon Technologies, Inc. Network resource identification
US9621660B2 (en) 2008-03-31 2017-04-11 Amazon Technologies, Inc. Locality based content distribution
US7970820B1 (en) 2008-03-31 2011-06-28 Amazon Technologies, Inc. Locality based content distribution
US8756325B2 (en) 2008-03-31 2014-06-17 Amazon Technologies, Inc. Content management
US7962597B2 (en) 2008-03-31 2011-06-14 Amazon Technologies, Inc. Request routing based on class
US9407699B2 (en) 2008-03-31 2016-08-02 Amazon Technologies, Inc. Content management
US8713156B2 (en) 2008-03-31 2014-04-29 Amazon Technologies, Inc. Request routing based on class
US8321568B2 (en) 2008-03-31 2012-11-27 Amazon Technologies, Inc. Content management
WO2009124006A3 (en) * 2008-03-31 2010-01-07 Amazon Technologies, Inc. Request routing
US9479476B2 (en) 2008-03-31 2016-10-25 Amazon Technologies, Inc. Processing of DNS queries
US9571389B2 (en) 2008-03-31 2017-02-14 Amazon Technologies, Inc. Request routing based on class
US8533293B1 (en) 2008-03-31 2013-09-10 Amazon Technologies, Inc. Client side cache management
US8606996B2 (en) 2008-03-31 2013-12-10 Amazon Technologies, Inc. Cache optimization
US8275874B2 (en) 2008-03-31 2012-09-25 Amazon Technologies, Inc. Locality based content distribution
US8639817B2 (en) 2008-03-31 2014-01-28 Amazon Technologies, Inc. Content management
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
US9021128B2 (en) 2008-06-30 2015-04-28 Amazon Technologies, Inc. Request routing using network computing components
US8239571B2 (en) 2008-06-30 2012-08-07 Amazon Technologies, Inc. Request routing using network computing components
US8458250B2 (en) 2008-06-30 2013-06-04 Amazon Technologies, Inc. Request routing using network computing components
US7925782B2 (en) 2008-06-30 2011-04-12 Amazon Technologies, Inc. Request routing using network computing components
US20090327517A1 (en) * 2008-06-30 2009-12-31 Swaminathan Sivasubramanian Request routing using network computing components
US9608957B2 (en) 2008-06-30 2017-03-28 Amazon Technologies, Inc. Request routing using network computing components
US8423667B2 (en) 2008-11-17 2013-04-16 Amazon Technologies, Inc. Updating routing information based on client location
US9451046B2 (en) 2008-11-17 2016-09-20 Amazon Technologies, Inc. Managing CDN registration by a storage provider
US8301748B2 (en) 2008-11-17 2012-10-30 Amazon Technologies, Inc. Managing CDN registration by a storage provider
US8510448B2 (en) 2008-11-17 2013-08-13 Amazon Technologies, Inc. Service provider registration by a content broker
US8495220B2 (en) 2008-11-17 2013-07-23 Amazon Technologies, Inc. Managing CDN registration by a storage provider
US8060616B1 (en) 2008-11-17 2011-11-15 Amazon Technologies, Inc. Managing CDN registration by a storage provider
US8732309B1 (en) 2008-11-17 2014-05-20 Amazon Technologies, Inc. Request routing utilizing cost information
US9515949B2 (en) 2008-11-17 2016-12-06 Amazon Technologies, Inc. Managing content delivery network service providers
US8301778B2 (en) 2008-11-17 2012-10-30 Amazon Technologies, Inc. Service provider registration by a content broker
US8065417B1 (en) 2008-11-17 2011-11-22 Amazon Technologies, Inc. Service provider registration by a content broker
US9787599B2 (en) 2008-11-17 2017-10-10 Amazon Technologies, Inc. Managing content delivery network service providers
US9734472B2 (en) 2008-11-17 2017-08-15 Amazon Technologies, Inc. Request routing utilizing cost information
US8028090B2 (en) 2008-11-17 2011-09-27 Amazon Technologies, Inc. Request routing utilizing client location information
US8073940B1 (en) 2008-11-17 2011-12-06 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
US9251112B2 (en) 2008-11-17 2016-02-02 Amazon Technologies, Inc. Managing content delivery network service providers
US8521880B1 (en) 2008-11-17 2013-08-27 Amazon Technologies, Inc. Managing content delivery network service providers
US7991910B2 (en) 2008-11-17 2011-08-02 Amazon Technologies, Inc. Updating routing information based on client location
US8234403B2 (en) 2008-11-17 2012-07-31 Amazon Technologies, Inc. Updating routing information based on client location
US8239514B2 (en) 2008-11-17 2012-08-07 Amazon Technologies, Inc. Managing content delivery network service providers
US9444759B2 (en) 2008-11-17 2016-09-13 Amazon Technologies, Inc. Service provider registration by a content broker
US8458360B2 (en) 2008-11-17 2013-06-04 Amazon Technologies, Inc. Request routing utilizing client location information
US8583776B2 (en) 2008-11-17 2013-11-12 Amazon Technologies, Inc. Managing content delivery network service providers
US9590946B2 (en) 2008-11-17 2017-03-07 Amazon Technologies, Inc. Managing content delivery network service providers
US8788671B2 (en) 2008-11-17 2014-07-22 Amazon Technologies, Inc. Managing content delivery network service providers by a content broker
US8321588B2 (en) 2008-11-17 2012-11-27 Amazon Technologies, Inc. Request routing utilizing client location information
US9720995B1 (en) 2009-01-09 2017-08-01 Pivotal Software, Inc. Preventing pauses in algorithms requiring pre-image information concerning modifications during data replication
US8645324B2 (en) 2009-01-09 2014-02-04 Pivotal Software, Inc. Preventing pauses in algorithms requiring pre-image information concerning modifications during data replication
US9128997B1 (en) 2009-01-09 2015-09-08 Pivotal Software, Inc. Preventing pauses in algorithms requiring pre-image information concerning modifications during data replication
US8463877B1 (en) 2009-03-27 2013-06-11 Amazon Technologies, Inc. Dynamically translating resource identifiers for request routing using popularitiy information
US8996664B2 (en) 2009-03-27 2015-03-31 Amazon Technologies, Inc. Translation of resource identifiers using popularity information upon client request
US9083675B2 (en) 2009-03-27 2015-07-14 Amazon Technologies, Inc. Translation of resource identifiers using popularity information upon client request
US8688837B1 (en) 2009-03-27 2014-04-01 Amazon Technologies, Inc. Dynamically translating resource identifiers for request routing using popularity information
US9191458B2 (en) 2009-03-27 2015-11-17 Amazon Technologies, Inc. Request routing using a popularity identifier at a DNS nameserver
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
US8521885B1 (en) 2009-03-27 2013-08-27 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
US9237114B2 (en) 2009-03-27 2016-01-12 Amazon Technologies, Inc. Managing resources in resource cache components
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
US9614884B2 (en) 2009-04-09 2017-04-04 International Business Machines Corporation System and method of optimizing digital media processing in a carrier grade web portal environment
US20100262645A1 (en) * 2009-04-09 2010-10-14 International Business Machines Corporation System and method of optimizing digital media processing in a carrier grade web portal environment
US9369358B1 (en) * 2009-04-10 2016-06-14 Open Invention Network Llc System and method for on-line and off-line streaming application isolation
US9832232B1 (en) * 2009-04-10 2017-11-28 Open Invention Network Llc System and method for on-line and off-line streaming application isolation
US9176894B2 (en) 2009-06-16 2015-11-03 Amazon Technologies, Inc. Managing resources using resource expiration data
US8543702B1 (en) 2009-06-16 2013-09-24 Amazon Technologies, Inc. Managing resources using resource expiration data
US8782236B1 (en) 2009-06-16 2014-07-15 Amazon Technologies, Inc. Managing resources using resource expiration data
US8874724B2 (en) 2009-08-26 2014-10-28 At&T Intellectual Property I, L.P. Using a content delivery network for security monitoring
US20110055371A1 (en) * 2009-08-26 2011-03-03 At&T Intellectual Property I, L.P. Using a Content Delivery Network for Security Monitoring
US9231966B2 (en) 2009-08-26 2016-01-05 At&T Intellectual Property I, L.P. Using a content delivery network for security monitoring
US9667638B2 (en) 2009-08-26 2017-05-30 At&T Intellectual Property I, L.P. Using a content delivery network for security monitoring
US9825980B2 (en) 2009-08-26 2017-11-21 At&T Intellectual Property I, L.P. Using a content delivery network for security monitoring
US9712325B2 (en) 2009-09-04 2017-07-18 Amazon Technologies, Inc. Managing secure content in a content delivery network
US8397073B1 (en) 2009-09-04 2013-03-12 Amazon Technologies, Inc. Managing secure content in a content delivery network
US9130756B2 (en) 2009-09-04 2015-09-08 Amazon Technologies, Inc. Managing secure content in a content delivery network
US9240954B1 (en) * 2009-10-02 2016-01-19 Amazon Technologies, Inc. Forward-based resource delivery network
US9246776B2 (en) 2009-10-02 2016-01-26 Amazon Technologies, Inc. Forward-based resource delivery network management techniques
US8397298B2 (en) 2009-12-08 2013-03-12 At&T Intellectual Property I, L.P. Method and system for content distribution network security
US20110138467A1 (en) * 2009-12-08 2011-06-09 At&T Intellectual Property I, L.P. Method and System for Content Distribution Network Security
US9495338B1 (en) 2010-01-28 2016-11-15 Amazon Technologies, Inc. Content distribution network
CN101888384A (en) * 2010-06-30 2010-11-17 北京世纪互联宽带数据中心有限公司 Multi-media safety signaling system
CN101902468A (en) * 2010-06-30 2010-12-01 北京世纪互联宽带数据中心有限公司 Multimedia safety signaling system
CN101877709A (en) * 2010-06-30 2010-11-03 北京世纪互联宽带数据中心有限公司 Multi-media safety signaling system
CN101888385A (en) * 2010-06-30 2010-11-17 北京世纪互联宽带数据中心有限公司 Multi-media safety signaling system
US9288153B2 (en) 2010-08-26 2016-03-15 Amazon Technologies, Inc. Processing encoded content
US8468247B1 (en) 2010-09-28 2013-06-18 Amazon Technologies, Inc. Point of presence management in request routing
US9497259B1 (en) 2010-09-28 2016-11-15 Amazon Technologies, Inc. Point of presence management in request routing
US9106701B2 (en) 2010-09-28 2015-08-11 Amazon Technologies, Inc. Request routing management based on network components
US9253065B2 (en) 2010-09-28 2016-02-02 Amazon Technologies, Inc. Latency measurement in resource requests
US9787775B1 (en) 2010-09-28 2017-10-10 Amazon Technologies, Inc. Point of presence management in request routing
US9794216B2 (en) 2010-09-28 2017-10-17 Amazon Technologies, Inc. Request routing in a networked environment
US9800539B2 (en) 2010-09-28 2017-10-24 Amazon Technologies, Inc. Request routing management based on network components
US8676918B2 (en) 2010-09-28 2014-03-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
US8819283B2 (en) 2010-09-28 2014-08-26 Amazon Technologies, Inc. Request routing in a networked environment
US9712484B1 (en) 2010-09-28 2017-07-18 Amazon Technologies, Inc. Managing request routing information utilizing client identifiers
US8924528B1 (en) 2010-09-28 2014-12-30 Amazon Technologies, Inc. Latency measurement in resource requests
US8930513B1 (en) 2010-09-28 2015-01-06 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
US9407681B1 (en) 2010-09-28 2016-08-02 Amazon Technologies, Inc. Latency measurement in resource requests
US9191338B2 (en) 2010-09-28 2015-11-17 Amazon Technologies, Inc. Request routing in a networked environment
US9185012B2 (en) 2010-09-28 2015-11-10 Amazon Technologies, Inc. Latency measurement in resource requests
US9160703B2 (en) 2010-09-28 2015-10-13 Amazon Technologies, Inc. Request routing management based on network components
US8577992B1 (en) 2010-09-28 2013-11-05 Amazon Technologies, Inc. Request routing management based on network components
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
US9338182B2 (en) 2010-10-15 2016-05-10 Brocade Communications Systems, Inc. Domain name system security extensions (DNSSEC) for global server load balancing
US9003040B2 (en) 2010-11-22 2015-04-07 Amazon Technologies, Inc. Request routing processing
US8452874B2 (en) 2010-11-22 2013-05-28 Amazon Technologies, Inc. Request routing processing
US8626950B1 (en) 2010-12-03 2014-01-07 Amazon Technologies, Inc. Request routing processing
US9391949B1 (en) 2010-12-03 2016-07-12 Amazon Technologies, Inc. Request routing processing
US20140297627A1 (en) * 2011-11-18 2014-10-02 Tencent Technology (Shenzhen) Company Limited Java application server and method for processing web business
US9451045B2 (en) 2011-12-14 2016-09-20 Level 3 Communications, Llc Content delivery network
EP2791819A1 (en) * 2011-12-14 2014-10-22 Level 3 Communications, LLC Content delivery network
US9516136B2 (en) 2011-12-14 2016-12-06 Level 3 Communications, Llc Customer-specific request-response processing in a content delivery network
EP2791819A4 (en) * 2011-12-14 2015-07-08 Level 3 Communications Llc Content delivery network
US9456053B2 (en) 2011-12-14 2016-09-27 Level 3 Communications, Llc Content delivery network
US20130159528A1 (en) * 2011-12-15 2013-06-20 Microsoft Corporation Failover based application resource acquisition
CN103186400A (en) * 2011-12-31 2013-07-03 深圳市金蝶中间件有限公司 Web application program upgrading method and system
US9628554B2 (en) 2012-02-10 2017-04-18 Amazon Technologies, Inc. Dynamic content delivery
US9172674B1 (en) 2012-03-21 2015-10-27 Amazon Technologies, Inc. Managing request routing information utilizing performance information
US9083743B1 (en) 2012-03-21 2015-07-14 Amazon Technologies, Inc. Managing request routing information utilizing performance information
US9154551B1 (en) 2012-06-11 2015-10-06 Amazon Technologies, Inc. Processing DNS queries to identify pre-processing information
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
US20140137131A1 (en) * 2012-11-15 2014-05-15 International Business Machines Corporation Framework for java based application memory management
US9104480B2 (en) * 2012-11-15 2015-08-11 International Business Machines Corporation Monitoring and managing memory thresholds for application request threads
US9641401B2 (en) 2012-12-13 2017-05-02 Level 3 Communications, Llc Framework supporting content delivery with content delivery services
US9628344B2 (en) 2012-12-13 2017-04-18 Level 3 Communications, Llc Framework supporting content delivery with reducer services network
US9634904B2 (en) * 2012-12-13 2017-04-25 Level 3 Communications, Llc Framework supporting content delivery with hybrid content delivery services
US9634918B2 (en) 2012-12-13 2017-04-25 Level 3 Communications, Llc Invalidation sequencing in a content delivery framework
US9634905B2 (en) 2012-12-13 2017-04-25 Level 3 Communications, Llc Invalidation systems, methods, and devices
US9634907B2 (en) 2012-12-13 2017-04-25 Level 3 Communications, Llc Devices and methods supporting content delivery with adaptation services with feedback
US9634906B2 (en) 2012-12-13 2017-04-25 Level 3 Communications, Llc Devices and methods supporting content delivery with adaptation services with feedback
US9628346B2 (en) 2012-12-13 2017-04-18 Level 3 Communications, Llc Devices and methods supporting content delivery with reducer services
US9641402B2 (en) 2012-12-13 2017-05-02 Level 3 Communications, Llc Configuring a content delivery network (CDN)
US9628343B2 (en) 2012-12-13 2017-04-18 Level 3 Communications, Llc Content delivery framework with dynamic service network topologies
US9660875B2 (en) 2012-12-13 2017-05-23 Level 3 Communications, Llc Devices and methods supporting content delivery with rendezvous services having dynamically configurable log information
US9647901B2 (en) 2012-12-13 2017-05-09 Level 3 Communications, Llc Configuring a content delivery network (CDN)
US9647899B2 (en) 2012-12-13 2017-05-09 Level 3 Communications, Llc Framework supporting content delivery with content delivery services
US9647900B2 (en) 2012-12-13 2017-05-09 Level 3 Communications, Llc Devices and methods supporting content delivery with delivery services
US9654355B2 (en) 2012-12-13 2017-05-16 Level 3 Communications, Llc Framework supporting content delivery with adaptation services
US9654354B2 (en) * 2012-12-13 2017-05-16 Level 3 Communications, Llc Framework supporting content delivery with delivery services network
US9628347B2 (en) 2012-12-13 2017-04-18 Level 3 Communications, Llc Layered request processing in a content delivery network (CDN)
US9654356B2 (en) * 2012-12-13 2017-05-16 Level 3 Communications, Llc Devices and methods supporting content delivery with adaptation services
US9654353B2 (en) 2012-12-13 2017-05-16 Level 3 Communications, Llc Framework supporting content delivery with rendezvous services network
US9628342B2 (en) 2012-12-13 2017-04-18 Level 3 Communications, Llc Content delivery framework
US9628345B2 (en) 2012-12-13 2017-04-18 Level 3 Communications, Llc Framework supporting content delivery with collector services network
US9660876B2 (en) 2012-12-13 2017-05-23 Level 3 Communications, Llc Collector mechanisms in a content delivery network
US9661046B2 (en) 2012-12-13 2017-05-23 Level 3 Communications, Llc Devices and methods supporting content delivery with adaptation services
US9667506B2 (en) 2012-12-13 2017-05-30 Level 3 Communications, Llc Multi-level peering in a content delivery framework
US9749190B2 (en) 2012-12-13 2017-08-29 Level 3 Communications, Llc Maintaining invalidation information
US9819554B2 (en) 2012-12-13 2017-11-14 Level 3 Communications, Llc Invalidation in a content delivery framework
US9686148B2 (en) 2012-12-13 2017-06-20 Level 3 Communications, Llc Responsibility-based cache peering
US9705754B2 (en) 2012-12-13 2017-07-11 Level 3 Communications, Llc Devices and methods supporting content delivery with rendezvous services
US9847917B2 (en) 2012-12-13 2017-12-19 Level 3 Communications, Llc Devices and methods supporting content delivery with adaptation services with feedback
US9787551B2 (en) 2012-12-13 2017-10-10 Level 3 Communications, Llc Responsibility-based request processing
US20140173043A1 (en) * 2012-12-13 2014-06-19 Level 3 Communications, Llc Devices And Methods Supporting Content Delivery With Adaptation Services
US9722883B2 (en) 2012-12-13 2017-08-01 Level 3 Communications, Llc Responsibility-based peering
US9722882B2 (en) 2012-12-13 2017-08-01 Level 3 Communications, Llc Devices and methods supporting content delivery with adaptation services with provisioning
US9755914B2 (en) 2012-12-13 2017-09-05 Level 3 Communications, Llc Request processing in a content delivery network
US20140173042A1 (en) * 2012-12-13 2014-06-19 Level 3 Communications, Llc Framework Supporting Content Delivery With Delivery Services Network
US20140172951A1 (en) * 2012-12-13 2014-06-19 Level 3 Communications, Llc Framework Supporting Content Delivery With Hybrid Content Delivery Services
US9749191B2 (en) 2012-12-13 2017-08-29 Level 3 Communications, Llc Layered request processing with redirection and delegation in a content delivery network (CDN)
US9749192B2 (en) 2012-12-13 2017-08-29 Level 3 Communications, Llc Dynamic topology transitions in a content delivery framework
US9722884B2 (en) 2012-12-13 2017-08-01 Level 3 Communications, Llc Event stream collector systems, methods, and devices
US9660874B2 (en) 2012-12-13 2017-05-23 Level 3 Communications, Llc Devices and methods supporting content delivery with delivery services having dynamically configurable log information
US9736271B2 (en) 2012-12-21 2017-08-15 Akamai Technologies, Inc. Scalable content delivery network request handling mechanism with usage-based billing
US9654579B2 (en) 2012-12-21 2017-05-16 Akamai Technologies, Inc. Scalable content delivery network request handling mechanism
US9509804B2 (en) 2012-12-21 2016-11-29 Akami Technologies, Inc. Scalable content delivery network request handling mechanism to support a request processing layer
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
US20140229898A1 (en) * 2013-02-08 2014-08-14 cloudRIA, Inc. Browser-based application management
US9294391B1 (en) 2013-06-04 2016-03-22 Amazon Technologies, Inc. Managing network computing components utilizing request routing
US9350821B2 (en) * 2013-10-29 2016-05-24 Limelight Networks, Inc. End-to end acceleration of dynamic content
US8819187B1 (en) * 2013-10-29 2014-08-26 Limelight Networks, Inc. End-to-end acceleration of dynamic content
US9565138B2 (en) 2013-12-20 2017-02-07 Brocade Communications Systems, Inc. Rule-based network traffic interception and distribution scheme
US9648542B2 (en) 2014-01-28 2017-05-09 Brocade Communications Systems, Inc. Session-based packet routing for facilitating analytics
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
US9887885B2 (en) 2014-12-22 2018-02-06 Level 3 Communications, Llc Dynamic fill target selection in a content delivery framework
US9866478B2 (en) 2015-03-23 2018-01-09 Extreme Networks, Inc. Techniques for user-defined tagging of traffic in a network visibility system
US9887932B1 (en) 2015-03-30 2018-02-06 Amazon Technologies, Inc. Traffic surge management for points of presence
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
US9832141B1 (en) 2015-05-13 2017-11-28 Amazon Technologies, Inc. Routing based request correlation
US9794281B1 (en) 2015-09-24 2017-10-17 Amazon Technologies, Inc. Identifying sources of network attacks
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
US9888089B2 (en) 2015-12-07 2018-02-06 Amazon Technologies, Inc. Client side cache management
US9887915B2 (en) 2017-01-17 2018-02-06 Amazon Technologies, Inc. Request routing based on class

Also Published As

Publication number Publication date Type
US7127713B2 (en) 2006-10-24 grant
US8392912B2 (en) 2013-03-05 grant
US20070038994A1 (en) 2007-02-15 application
EP1463991A4 (en) 2008-08-06 application
WO2003060707A1 (en) 2003-07-24 application
US20030154239A1 (en) 2003-08-14 application
CA2471855C (en) 2013-03-19 grant
JP2006502465A (en) 2006-01-19 application
EP1463991A1 (en) 2004-10-06 application
CA2471855A1 (en) 2003-07-24 application

Similar Documents

Publication Publication Date Title
US7127526B1 (en) Method and apparatus for dynamically loading and managing software services on a network device
US7082521B1 (en) User interface for dynamic computing environment using allocateable resources
US7043524B2 (en) Network caching system for streamed applications
US6944788B2 (en) System and method for enabling failover for an application server cluster
US8438298B2 (en) Intelligent network streaming and execution system for conventionally coded applications
US6868448B1 (en) Resource locator
US7644414B2 (en) Application program interface for network software platform
US6941555B2 (en) Clustered enterprise Java™ in a secure distributed processing system
US6446204B1 (en) Method and apparatus for implementing an extensible authentication mechanism in a web application server
US6047324A (en) Scalable distributed network controller
US20030055826A1 (en) System and method for connecting to and controlling to disparate databases
US20020010798A1 (en) Differentiated content and application delivery via internet
US6236999B1 (en) Duplicated naming service in a distributed processing system
US20020091763A1 (en) Client-side performance optimization system for streamed applications
US20130159473A1 (en) Content delivery network
US7124289B1 (en) Automated provisioning framework for internet site servers
US7769825B2 (en) System and method for web services Java API-based invocation
US5805829A (en) Process for running applets over non-IP networks
US6581088B1 (en) Smart stub or enterprise javaTM bean in a distributed processing system
US6651095B2 (en) Methods, systems and computer program products for management of preferences in a heterogeneous computing environment
US6385643B1 (en) Clustered enterprise Java™ having a message passing kernel in a distributed processing system
US20040078495A1 (en) System and method for implementing J2EE connector architecture
US20020156831A1 (en) Automated provisioning of computing networks using a network database data model
US20020156894A1 (en) Automated provisioning of computing networks using a network database data model
US20020156874A1 (en) Automated provisioning of computing networks according to customer accounts using a network database data model