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.
- 2. The method as described in claim 1 further including the step of caching the first component in the edge server.
- 3. The method as described in claim 1 wherein the given application is a Web application and the first component is a Web tier component selected from a set of components that include servlets, Java server pages (JSPs), Java beans and tag libraries.
- 4. The method as described in claim 3 wherein the second component is an Enterprise tier component that includes a component selected from a set of components that include session beans, entity beans and message driven beans.
- 5. The method as described in claim 1 wherein the first component is retrieved from a server selected from the origin server, a CDN staging server, and a CDN content storage server.
- 6. The method as described in claim 1 further including the step of executing the first component on the origin server to facilitate a response to the request while retreiving the first component to the edge server.
- 7. The method as described in claim 1 further including the steps of:
detemining whether the first component requires a data resource to process the request; if the first component requires a data resource to process the request, determining whether the data resource is available in a cache; if the data resource is available in the cache, retrieving the data resource; if the data resource is not available in the cache, retrieving the data resource from a remote location.
- 8. The method as described in claim 1 wherein the communications to and from the edge server use a given mechanism selected from a set of mechanisms that include: HTTP, RMI, SOAP and TCP.
- 9. The method as described in claim 1 wherein at least the first component or the second component includes platform-independent code.
- 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.
- 11. The method as described in claim 10 wherein the first and second Java applications are executed in separate, isolated application server code instances.
- 12. The method as described in claim 10 wherein the first component is selected from a set of components that include a Web tier component, an Enterprise tier component, or both a Web tier and Enterprise Tier.
- 13. The method as described in claim 12 wherein the Web tier component includes a set of components selected from a set of components that include servlets, Java server pages (JSPs), Java beans and tag libraries, and the Enterprise tier component includes a component selected from a set of components that include session beans, entity beans and message driven beans.
- 14. The method as described in claim 10 wherein the first and second Java applications are distinct programs.
- 15. The method as described in claim 10 wherein the first and second Java applications are different versions of a single application.
- 16. The method as described in claim 15 further including the step of loading and initializing execution of the second Java application to process requests while the first Java application is processing requests.
- 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.
- 18. The apparatus as described in claim 17 further including:
code for monitoring the application server code instances and, responsive to said monitoring, invoking a given action with respect to any application server instance that attempts to over-utilize a given resource; and code for preventing a given platform-independent code component executing in a given application server instance from taking a given action with respect to another platform-independent code component.
- 19. The apparatus as described in claim 17 further including code for logging data as the given platform-independent code component is executed by the application server code instance.
- 20. The apparatus as described in claim 17 wherein a first application server code instance executes a first given platform-independent code component, and a second application server code instance executes a second given platform-independent code component.
- 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.
- 24. The apparatus as described in claim 23 wherein the servlet container is Apache Tomcat.
- 25. The apparatus as described in claim 23 wherein the given Java code component facilitates execution of a given application.
- 26. The apparatus as described in claim 25 wherein the given application is selected from a set of applications that include: a configurator function, a locator function, a voting/polling function, a search function, and a registration function.
- 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.
- 28. The method as described in claim 27 further including the step of executing the second tier of the given multi-tier application as needed, wherein the second tier of the given multi-tier application is executed on an origin server.
- 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.
Parent Case Info
[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.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60347481 |
Jan 2002 |
US |