YOUR FEEDBACK
NGASI Releases AppServer Manager 8.1
Dave Jenkins wrote: The remote server management is a welcomed added feature...
SOA World Conference
Virtualization Conference
$200 Savings Expire May 16, 2008... – Register Today!


2007 West
GOLD SPONSORS:
Active Endpoints
Your SOA Needs BPEL for Orchestration
BEA
Virtualized SOA: Adaptive Infrastructure for Demanding Applications
Nexaweb
Overcoming Bandwidth Challenges with Nexaweb
TIBCO
What is Service Virtualization?
SILVER SPONSORS:
WSO2
Using Web Services Technologies and FOSS Solutions
Click For 2007 East
Event Webcasts

2008 East
PLATINUM SPONSORS:
Appcelerator
Think Fast: Accelerate AJAX Development with Appcelerator
GOLD SPONSORS:
DreamFace Interactive
The Ultimate Framework for Creating Personalized Web 2.0 Mashups
ICEsoft
AJAX and Social Computing for the Enterprise
Kaazing
Enterprise Comet: Real–Time, Real–Time, or Real–Time Web 2.0?
Nexaweb
Now Playing: Desktop Apps in the Browser!
Sun
jMaki as an AJAX Mashup Framework
POWER PANELS:
The Business Value
of RIAs
What Lies Beyond AJAX?
KEYNOTES:
Douglas Crockford
Can We Fix the Web?
Anthony Franco
2008: The Year of the RIA
Click For 2007 Event Webcasts
SYS-CON.TV
TODAY'S TOP SOA & WEBSERVICES LINKS


Caching for XMLPerformance
Delegating optimization throughout your Web services infrastructure

Digg This!

Page 1 of 3   next page »

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.

Caching is a fundamental optimization technique found in all computer systems and networks. Modern CPU chips maintain instruction and data caches along with clever methods of ensuring coherency with the RAM that may be simultaneously accessed by other CPUs and I/O processors. In many respects, RAM can be thought of as a cache of your virtual memory swap file. Our networked world is full of caching subsystems, each designed to minimize the latency required to access correct content. As the computing paradigm has evolved to multitiered SOAs, caching continues to play a crucial role.

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 begins at the farthest Enterprise Information System (EIS) tier and proceeds through the nearest tier. XML caching takes place at the nearer tiers.

Caching at the Core
In the farthest EIS tier, most database engines such as DB2, MS SQL Server, and Oracle have a myriad of caching options designed to minimize disk I/O operations as much as possible while ensuring that transactions are always physically recorded. The guidelines for these products usually suggest that the database files should be stored on a file system where the caching services supplied by the native OS's file system are disabled. The rationale for this is that the caching services of the native OS can't possibly be as intelligent as what is performed by the database, so therefore any memory resources devoted to the native OS caching engine would be wasted. Furthermore, the database engines want to guarantee that updates are physically written to storage. Database engines also make extensive use of "SQL Statement Caching," which reduces the costly parse processing on the database server. While these database-caching techniques may be very exciting for system and database administrators, they are likely only of passing interest to the SOA enterprise architect.

Moving Nearer Outward
As we move outward to the application servers or business tier, the application designer often carries the burden of integrating caching optimization. In this tier we find two basic flavors of server platforms, J2EE and Microsoft ASP.NET. Each of the two environments offers the application developer a means for injecting caching to optimize performance and increase scalability. Some of the caching techniques employed in the business tier directly relate to Web services, while others optimize the business logic implementation of the Web service. The SOA enterprise architect should have a full understanding of all caching techniques utilized in this tier.

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
In the J2EE environment, the caching of business data is achieved by various Object-Relational mapping technologies. The dominant choice offered by J2EE vendors is the Enterprise Java Bean (EJB). The Entity Bean developer often implements transactional caching of dynamic data by adhering to the Container Managed Persistence (CMP) model that provides caching as an inherent attribute. Some J2EE platforms such as IBM WebSphere offer extensions to CMP that allow data caching of static items across transactions. This extended functionality can be easily integrated into an application by setting attributes in property sheets. EJB can be a bit heavy-handed targeting large, complex systems. Some "lighter" technologies include both standards-based model abstraction such as Java Data Objects (JDO) and open-source offerings such as Hibernate.

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
Instead of mapping business data into a constellation of objects, Microsoft employs a different strategy of caching transactional data. Data elements are presented as relational tables in memory, which is very similar to how they are persisted on disk. Those in-memory tables can be accessed via the rowset API, and maintained via either DataReader or DataSet APIs by ADO.NET.


Page 1 of 3   next page »

About Tom Yohe
Tom Yohe is the VP of Engineering and cofounder of Stampede Technologies, and currently leads one of the world's most elite enterprise optimization engineering teams, developing Web Acceleration Appliances for a broad range of Fortune 500 companies. Tom has been delivering award-winning enterprise products for over 25 years and has been granted numerous patents for unique data communications optimization techniques. Tom has a computer science degree from Penn State University.

XML JOURNAL LATEST STORIES . . .
3rd International Virtualization Conference & Expo: Themes & Topics
From Application Virtualization to Xen, a round-up of the virtualization themes & topics being discussed in NYC June 23-24, 2008 by the world-class speaker faculty at the 3rd International Virtualization Conference & Expo being held by SYS-CON Events in The Roosevelt Hotel, in midtown
Red Hat Named "Platinum Sponsor" of Virtualization Conference & Expo
Red Hat is a trusted open source provider. Red Hat offers enterprise customers a long-term plan for building infrastructures on the quality and innovation of open source. Combining open source operating system platform, Red Hat Enterprise Linux, together with applications, management
JustSystems Contributes Key XBRL Rendering Technology to Financial Community
JustSystems announced that it is contributing intellectual property rights for its invention of eXtensible Business Reporting Language (XBRL) rendering technologies to XBRL International, the standards body responsible for the oversight of the XBRL specification. The invention, known a
JustSystems Launches Campaign for XBRL Success
JustSystems announced its campaign to help organizations adopt XBRL (eXtensible Business Reporting Language), the XML-based standard for communicating financial and business information. In related news, JustSystems also announced that it has contributed intellectual property rights of
Virtualization Meets DaaS - Desktop-as-a-Service
After a $1.5 million angel round, Desktone, which was started in 2006 by Eric Pulier, who also started SOA Software, US Interactive and IVT, picked up $17 million in first-round funding about a year ago from Highland Capital Partners, SoftBank Capital, Citrix Systems and the China-base
SUBSCRIBE TO THE WORLD'S MOST POWERFUL NEWSLETTERS
SUBSCRIBE TO OUR RSS FEEDS & GET YOUR SYS-CON NEWS LIVE!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET News.com Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)sys-con.com!

Advertise on this site! Contact advertising(at)sys-con.com! 201 802-3021

SYS-CON FEATURED WHITEPAPERS


ADS BY GOOGLE
BREAKING XML NEWS
RCG IT Addresses BI and SOA Convergence and Business Architecture at TDWI World Conference in Chicago
RCG Information Technology, Inc. (http://www.rcgit.com/) will participate in The Data Wareho