Java application framework for use in a content delivery network (CDN)
First Claim
1. A method for processing requests to a given application executable in a distributed computing environment, wherein a set of edge servers are deployed in the distributed computing environment to offload processing from one or more origin servers, and wherein the given application has at least a first component and a second component, comprising:
- responsive to receipt of a request at a given edge server, determining whether the request is the first request for the given application;
if the request is the first request for the given application, retrieving the first component;
upon installation of the first component, or if the request is not the first request for the given application, executing the first component;
communicating with the origin server on an as needed basis to execute the second component; and
generating a response to the request based on the results of executing the first component and, as needed, the second component.
2 Assignments
0 Petitions
Accused Products
Abstract
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). According to the invention, application developers 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 servlet container that executes a Web tier, typically the presentation layer of a given Java-based application. Where necessary, the edge layer communicates with code running on an origin server to respond to a given request. In an alternative embodiment, the edge layer supports a more fully-provisioned application server that executes both Web tier (e.g., presentation) and Enterprise tier application (e.g., business logic) components. In either case, the inventive framework enables one or more different applications to be deployed to and executed from the edge server on behalf of one or more respective entities.
-
Citations
29 Claims
-
1. A method for processing requests to a given application executable in a distributed computing environment, wherein a set of edge servers are deployed in the distributed computing environment to offload processing from one or more origin servers, and wherein the given application has at least a first component and a second component, comprising:
-
responsive to receipt of a request at a given edge server, determining whether the request is the first request for the given application;
if the request is the first request for the given application, retrieving the first component;
upon installation of the first component, or if the request is not the first request for the given application, executing the first component;
communicating with the origin server on an as needed basis to execute the second component; and
generating a response to the request based on the results of executing the first component and, as needed, the second component. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method for processing requests to a set of Java-based applications executable in a distributed computing environment, wherein a set of edge servers are deployed in the distributed computing environment to offload processing from a set of origin servers, and wherein each Java-based application has at least a first component, comprising:
-
deploying the first component of at least first and second Java applications on a given edge server having given application server code;
responsive to requests received at the given edge server, having the given application server code execute the first component of the first and second Java applications to generate responses to the requests. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
-
17. In an apparatus for use in a content delivery network, the apparatus having a processor, a virtual machine and platform-independent application server code, the improvement comprising:
-
a set of one or more platform-independent code components each of which are capable of being executed by the platform-independent application server code;
an edge server process for instantiating a set of one or more application server code instances, each application server code instances capable of executing a given platform-independent code component;
an application programming interface (API) for interfacing the edge server process to each application server code instance and the given platform-independent code component executing thereon; and
a wrapper process responsive to a given application processing request for initializing the API and starting an application server code instance to handle the request using the given platform-independent code component. - View Dependent Claims (18, 19, 20)
-
-
21. The apparatus as described in claim 21 wherein a given platform-independent code component is a Web tier component and the application server code instance is a servlet container.
-
22. The apparatus as described in claim 22 wherein a given platform-independent code component is an Enterprise tier component and the application server code instance is an application server.
-
23. In an apparatus for use in a content delivery network, the apparatus having a processor, a Java virtual machine and a servlet container, the improvement comprising:
-
a set of one or more Java code components each of which are capable of being executed by the servlet container;
an edge server process for instantiating a set of one or more servlet container instances, each servlet container instance capable of executing a given Java code component;
an application programming interface (API) for interfacing a given application processing request to the servlet container instance and the Java code component; and
a wrapper process responsive to a given application processing request for initializing the API and starting an servlet code instance to handle the request using the given Java code component. - View Dependent Claims (24, 25, 26)
-
-
27. A method of executing Java applications operative in a content delivery network (CDN), the content delivery network comprising a distributed set of edge servers and a request routing mechanism for mapping client requests to the edge servers, wherein each application is a multi-tier Java application comprising at least first and second tiers, comprising:
-
deploying the first tier of each multi-tier application to a subset of the edge servers on an as-needed basis; and
in response to a given request, selectively executing the first tier of a given multi-tier application to respond to the given request. - View Dependent Claims (28)
-
-
29. A method of executing platform-independent applications operative in a content delivery network (CDN), the content delivery network comprising a distributed set of edge servers and a request routing mechanism for mapping client requests to the edge servers, each of the edge servers provisioned with application server code, comprising:
-
pre-deploying and loading for execution given plaform-independent code to a given edge server in the content delivery network, the platform-independent code selected from a set of code that includes (a) a Web tier component of an application, (b) an Enterprise tier component of an application, (c) both Web tier and Enterprise tier components of an application; and
(d) an application; and
in response to a subsequent request, having the application server code selectively executing the platform-independent code to respond to the given request.
-
Specification