|Oracle9i Application Server Concepts
Release 2 (9.0.2)
Part Number A95926-02
This chapter provides an overview of Oracle9i Application Server caching features and benefits. The topics include:
Caching is one of the key technologies that promises to alleviate the computational and economic burdens faced by today's overstrained e-business infrastructures. Nearly all applications benefit from having Web content cached on hosts between the consumers searching for content and the content source itself. While there are numerous hardware and software caching solutions for caching static content, most are not well suited for the kind of dynamic, personalized content required by the e-business model.
Oracle9iAS Web Cache offers a combination of server acceleration and server load balancing. Unlike legacy cache servers which only handle static data, Oracle9iAS Web Cache accelerates the delivery for both static and dynamically generated Web content, thereby improving response time for feature-rich pages.
As the first and only caching solution on the market to support Edge Side Includes (ESI) for performing page assembly in edge servers, Oracle9iAS Web Cache delivers rich, personalized content from both the edge of the data center to the edge of the Internet. Deployed before a farm of application servers and/or globally at the network edge, Oracle9iAS Web Cache provides load balancing, failover, and patent-pending surge protection features for application servers.
These features ensure incomparable site performance and solid up-time while reducing the cost of doing business online. With Oracle9iAS Web Cache, e-businesses can now serve compelling content faster, to more customers, using fewer computing resources than ever before.
Oracle9iAS Web Cache is a powerful state-of-the-art server acceleration solution, offering throughput rates of several thousand requests per second. Oracle9iAS Web Cache offers intelligent caching, page assembly and compression features which distinguish it from any other Web caching solution on the market. Unlike legacy proxy servers which cache only static objects, Oracle9iAS Web Cache accelerates the delivery of both static and dynamic Web content.
Oracle9iAS Web Cache provides the following benefits for Web sites:
Running on inexpensive hardware, Oracle9iAS Web Cache can increase the throughput of a Web site by several orders of magnitude. In addition, Oracle9iAS Web Cache significantly reduces response time to browser requests by storing documents in memory and by serving compressed versions of documents to browsers that support the GZIP encoding method.
In addition to unparalleled throughput, Oracle9iAS Web Cache can sustain thousands of concurrent browser connections, meaning that visitors to a site see fewer application server errors, even during periods of peak load.
Oracle9iAS Web Cache supports content-aware load balancing and failover detection. These features ensure that cache misses are directed to the most available, highest-performing application server in the cluster. Moreover, a patent-pending capacity heuristic guarantees performance and provides surge protection when application server load increases.
Better performance, scalability, and availability translates into cost savings for Web site operators. Because fewer application servers are required to meet the challenges posed by traffic spikes and denial of service attacks, Oracle9iAS Web Cache offers a simple and inexpensive means of reducing a Web site's cost for each request.
Most requests are resolved by Oracle9iAS Web Cache, reducing traffic to the application servers. The cache also reduces traffic to backend databases located on computers other than the application server.
Oracle9iAS Web Cache sits in front of application servers, caching their content in memory, and providing that content to Web browsers that request it. Figure 5-1 shows the architecture of Oracle9iAS Web Cache.
Oracle9iAS Web Cache is a powerful solution for accelerating online catalogs, auctions, Internet and intranet portals, business-to-business exchanges, and Customer Relationship Management applications. Key features include:
Oracle9iAS Web Cache uses cacheablilty rules to store documents. These rules fall into two categories:
Oracle9iAS Web Cache provides dynamic assembly of pages with both cacheable and non-cacheable page fragments. It provides for assembly by enabling pages to be broken down into fragments of differing cacheablility profiles. These fragments are each maintained as separate elements in the application server or content delivery network and assembled into HTML pages as appropriate when requested by end users.
By enabling dynamic assembly of pages on Oracle9iAS Web Cache rather than on the application servers, you can choose to cache some of the fragments of assembled pages. This means that much more HTML content can be cached, then assembled and delivered by Oracle9iAS Web Cache when requested. Furthermore, page assembly can be conditional, based on information provided in HTTP request headers or end-user cookies.
The basic structure a content provider uses to create dynamic content is a template page containing HTML fragments. The template consists of common elements, such as a logo, navigation bars, framework, and other "look and feel" elements of the page. The HTML fragments represent dynamic subsections of the page. The template page is associated with the URL that end users request. To include the HTML fragments, the template page is configured with Edge Side Includes (ESI) markup tags that tell Oracle9iAS Web Cache to fetch and include the HTML fragments. The fragments themselves are HTML files containing discrete text or other objects.
Figure 5-2 shows an example of the template mentioned above.
ESI is a markup language to enable partial page caching for HTML fragments. ESI can be used with HTML, XML, and any Web publishing technology. ESI is an open standard. For more information, see
JESI is a specification and custom JSP tag library that developers can use to automatically generate ESI code using JSP syntax. Even though JSP developers can always use ESI, JESI provides an even easier way for JSP developers to express the modularity of pages and the cacheablilty of those modules, without requiring developers to learn a new syntax.
Figure 5-3 shows an example of the ESI and JESI.
Oracle9iAS Web Cache supports invalidation as a mechanism to keep its cache consistent with the content on the application servers, origin databases, or other dynamically generated means. Administrators can invalidate cache content in the following two ways:
When a large number of documents have been invalidated, the retrieval of a new document can result in overburdened application servers. To handle performance issues while maintaining cache consistency, Oracle9iAS Web Cache uses built-in performance assurance heuristics that enable it to assign a queue order to documents. These heuristics determine which documents can be served stale and which documents much be refreshed immediately. Documents with a higher priority are refreshed first whereas documents with a lower priority are refreshed at a later time.
The queue order of documents is based on the popularity of documents and the validity of documents assigned during invalidation. If the current load and capacity of the application server is not exceeded, the most popular and least valid documents are refreshed first.
Figure 5-6 illustrates how performance assurance heuristics are used during widespread invalidation.
You can select to have Oracle9iAS Web Cache compress both cacheable and non-cacheable documents upon insertion into the cache for browsers. Because compressed documents are smaller in size, they are delivered faster to browsers with fewer round-trips, reducing overall latency. On average, Oracle9iAS Web Cache is able to compress text files by a factor for 4. For example, 300 KB files are compressed down to 75 KB.
Most Web sites are served by multiple application servers running in multiple computers that share the load of HTTP(S) requests. This feature enables Web sites to be built with a collection of servers for better scalability and reliability. Oracle9iAS Web Cache is designed to manage requests for up to 100 application servers. All requests that Oracle9iAS Web Cache cannot serve are passed to the application servers. Oracle9iAS Web Cache sends requests to the application server with the most available load using its load balancing feature. Figure 5-5 shows the Oracle9iAS Web Cache load balancing architecture.
When an application server becomes unavailable because it is taken down for reconfiguration or there is a network or hardware failure, Oracle9iAS Web Cache automatically performs backend failover. Here, Oracle9iAS Web Cache distributes the load over the remaining application servers and polls the failed application server for its current up/down status until it is back online. Existing requests to the failed application server result in errors. However, new requests are directed to the other application servers. When the failed server returns to operation, Oracle9iAS Web Cache includes it in the load distribution. Figure 5-6 shows the Oracle9iAS Web Cache failover architecture.
You can configure multiple instances of Oracle9iAS Web Cache to run as independent caches, with no interaction with one another. However, to increase the availability and scalability of your Web cache, you can configure multiple instances of Oracle9iAS Web Cache to run as members of a cache cluster. A cache cluster is a loosely coupled collection of cooperating Web cache instances working together to provide a single logical cache. Figure 5-7 shows an example of Oracle9iAS Web Cache cluster.
In the simplest of deployment scenarios, Oracle9iAS Web Cache is positioned in front of one or more Web servers to cache content generated by those servers. Oracle9iAS Web Cache then delivers that content to Web browsers. When Web browsers access the Web site, they send HTTP requests to Oracle9iAS Web Cache which acts as a virtual server from the Web site, masking the existence of the application server farm and the database. If the requested content has changed, Oracle9iAS Web Cache retrieves the new content from the application servers according to the relative load on each server. Figure 5-8 shows an example of a simple deployment.
Oracle9iAS Web Cache can be deployed on the same host as the origin application server (co-located) or on a dedicated node of its own (dedicated).
In a cluster scenario, a network load balancer distributes requests across the cache instance running on each mode on the server farm. Each Oracle9iAS Web Cache instance is typically configured with the host name of the application server(s) running on its own host, and interprocess communication (IPC) is used to pass requests between the cache and the application server(s). Because Oracle9iAS Web Cache consumes memory, co-location is only viable if the cache and the application server(s) do not contend for resources.
Figure 5-9 shows an architecture of Oracle9iAS Web Cache on the same host as the Application server.
A dedicated deployment is often preferable to co-located deployment. In a dedicated scenario, there is no risk of resource contention with other server processes. Oracle9iAS Web Cache also performs well on commodity hardware, so a dedicated deployment need not be a costly one in terms of hardware expenditure. For very high-volume Web sites, and to avoid a single point of failure, two or more hosts running Oracle9iAS Web Cache may be deployed behind a third-party network load balancing device.
Figure 5-10 shows an architecture of Oracle9iAS Web Cache on a different host as the application server.
Oracle9iAS Web Cache provides the following security-related features:
Oracle9iAS Web Cache restricts administration with the following features:
The Secure Sockets Layer (SSL) protocol, developed by Netscape Corporation, is an industry standard for network transport layer security. SSL provides authentication, encryption, and data integrity, in a public-key infrastructure (PKI). By supporting SSL, Oracle9iAS Web Cache is able to cache pages from HTTPS requests. Figure 5-11 shows how you can configure Oracle9iAS Web Cache to receive HTTPS requests and send HTTPS requests to the application server.
Note that HTTPS traffic can be process intensive. If Oracle9iAS Web Cache needs to have traffic travel over the open Internet, then configure Oracle9iAS Web Cache to send HTTPS requests to the application server. If traffic only travels through a LAN in a data center, then the traffic can be sent with HTTP so as to reduce the load on the application servers.
SSL interacts with the following entities:
A certification authority (CA) is a trusted third party that certifies the identity of third parties and other entities, such as users, databases, administrators, clients, and servers. The CA verifies the party identity and grants a certificate, signing it with its private key. The Oracle9iAS Web Cache certificate must be signed by a CA.
A certificate is created when a party's public key is signed by a trusted CA. A certificate ensures that a party's identification information is correct, and that the public key actually belongs to that party. A certificate contains the party's name, public key, and an expiration date, as well as a serial number and certificate chain information. It can also contain information about the privileges associated with the certificate. When a network entity receives a certificate, it verifies that it is a trusted certificate, one issued and signed by a trusted CA.
A wallet is a transparent database used to manage authentication data such as keys, certificates, and trusted certificates needed by SSL. A wallet has an X.509 version 3 certificate, private key, and list of trusted certificates.
Security administrators use the Oracle Wallet Manager to manage security credentials on the Oracle9iAS Web Cache server. Wallet owners use it to manage security credentials on clients. Specifically, Oracle Wallet Manager is used to do the following:
To support HTTPS support between browsers and Oracle9iAS Web Cache, configure a wallet on the Oracle9iAS Web Cache server for each supported site. To support HTTPS support between Oracle9iAS Web Cache and the application servers, configure a wallet on the application server.