|
YOUR FEEDBACK
Did you read today's front page stories & breaking news?
SYS-CON.TV |
TODAY'S TOP SOA & WEBSERVICES LINKS Feature Caching for XMLPerformance
Delegating optimization throughout your Web services infrastructure
By: Tom Yohe
Sep. 22, 2005 05:00 PM
Highly scalable implementations of service-oriented architectures (SOAs) always include heavy doses of caching. A guided tour through the SOA tiers, describing the caching and XML acceleration techniques employed along the way, provides the SOA enterprise architect with an awareness of optimization possibilities applicable to a Web service infrastructure. Consolidating the acceleration functions in an integrated appliance and controlling them via policies specified by WSDL annotations simplifies the implementation.
A typical SOA solution is implemented in a multitiered fashion for many reasons, not the least of which is performance. Figure 1 illustrates the "nearest tier" through the "farthest" tier - the nearest tier is closest to the Web service consumer that issued the request; the farthest tier is the central database engine. The computing devices and software that drive the farther tiers are generally more expensive compared with the subsystems in the nearer tiers. The processing that takes place in the farther tier subsystems tends to be "business-logic," is often executed in higher-level interpretive languages, and generally takes more time and resources to execute. The logic of subsystems at the nearer tiers is usually very system software-oriented, is executed in the native machine language if not in ASICs, and tends to be highly efficient. The subsystems in all tiers are usually designed for high scalability, where simply adding more like subsystems can expand capacity. In front of each subsystem, tier load balancers are employed to intelligently deliver object requests and route responses between the tiers. The message communication between each tier requires TCP/IP routing, load balancing, parsing, and other processing, all of which adds further latency to the transaction response time. Therefore, the more work that can be completed in the nearer tiers, the more efficient and responsive the overall SOA implementation will be.
A Caching Tour of the Tiers
Caching at the Core
Moving Nearer Outward In the business tier, there are two important caching objectives: storing business data in memory to be readily accessed by application servers, and controlling caching strategies by setting related HTTP headers through platform APIs.
J2EE Caching Techniques The "JCache" specification defines a powerful set of Java-caching APIs that support implementations of caching frameworks. Both open-source and commercial offerings of caching frameworks allow cached objects to be shared among multiple applications. These caching frameworks are often an important component in enterprises where "single sign-on" to multiple applications is required. JCache provides methods to control temporary storage and expiration of Java objects in common memory in a manner that ensures that the cached objects are coherent with the data stored in the farther tiers. For controlling caching-employed HTTP servers and proxies, the J2EE specification defines the HttpServletResponse class, a component of the servlet container, as a fundamental J2EE building block. This class provides control of HTTP-specific functionality by furnishing methods to access and generate HTTP headers and cookies. Specifically, the addHeader method allows the HTTP 1.1 "cache-control" and "expiration" directives to be emitted to facilitate caching in the nearer tiers.
The Microsoft Way XML JOURNAL LATEST STORIES . . .
SUBSCRIBE TO THE WORLD'S MOST POWERFUL NEWSLETTERS SUBSCRIBE TO OUR RSS FEEDS & GET YOUR SYS-CON NEWS LIVE!
|
SYS-CON FEATURED WHITEPAPERS MOST READ THIS WEEK BREAKING XML NEWS |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||