YOUR FEEDBACK
Kyle Simpson wrote: Uhh, how exactly is this really at all different from flash and externalinterfac...
Cloud Computing Conference
March 30 - April 1, New York
Register Today and SAVE !..


2008 East
DIAMOND SPONSOR:
Data Direct
Frontiers in Data Access: The Coming Wave in Data Services
PLATINUM SPONSORS:
Red Hat
The Opening of Virtualization
Intel
Virtualization – Path to Predictive Enterprise
Green Hills
IT Security in a Hostile World
JBoss / freedom oss
Practical SOA Approach
GOLD SPONSORS:
Software AG
The Art & Science of SOA: How Governance Enables Adoption
PlateSpin
Effective Planning for Virtual Infrastructure Growth
Fujitsu
Automated Business Process Discovery & Virtualization Service
Ceedo
Workspace Virtualization
Click For 2007 West
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


XML Acceleration: The Truth Behind the Myths - Don't assume that bandwidth and processing will be problems
XML Acceleration: The Truth Behind the Myths - Don't assume that bandwidth and processing will be problems

As information technology professionals progress in their knowledge and use of XML and Web services, the question of XML performance persists. In hallway chats, one might hear that "XML takes up too much bandwidth" or "XML takes too many CPU cycles to process."

Unfortunately, these beliefs lead to behaviors inconsistent with best practices for building and deploying Web service-based systems that will stand the test of time. These behaviors include continuing to operate with a proprietary non-XML architecture, and designing the architecture around network devices that do hardware XML processing.

This article examines the myths that surround XML performance issues to help IT professionals avoid the pitfalls associated with the behaviors described above.

A Closer Look at XML Bandwidth
Local area networks have lots of bandwidth at a very low cost - but wide area networks are another matter. While they've been improving by leaps and bounds, it can still be prohibitively expensive to expand the capacity of a WAN link and, as such, WANs can be bandwidth constrained, leading, in some cases, to a raw bandwidth issue.

So, what is it about XML that takes up so much bandwidth? There are really two separate issues. The first is that XML is text, which inherently takes up more space than binary formats. A 32-bit integer could be represented in 4 binary bytes, but take over 10 bytes when transmitted in text form (2.5X larger).

The second is that XML is self-describing, which results in lots of repeating patterns of text. For example, each element name must be explicitly spelled out in both the start tag of the element and the end tag of the element. This adds a lot of extra repetitive text into the document. So, while there are distinct advantages to a self-describing message, it still consumes a lot of bandwidth on the WAN…or does it?

The reality is that many organizations are starting to use hardware compression on their WAN links to reduce bandwidth consumption. And text has the highest compression ratio - in fact, text with lots of repetition can often be compressed 10X. XML is extremely compressible. So, if your WAN links are bandwidth constrained, you should probably be running compression - and if you are running compression, XML will be as efficient as other binary formats and potentially even more efficient since it's much more compressible than a binary stream.

CPU Cycles and XML
What about the CPU cycles required to process XML - doesn't that create a performance drag? It's true that XML is expensive to process. A typical single- processor 1GHz machine can process XML at a rate of about 4MB to 8MB per second, depending on whether you are using DOM or SAX. Now, the real data in that 4MB to 8MB of XML per second is actually significantly less (because of all of the XML tags): that 4MB to 8MB of XML might be equivalent to 1MB or 2MB of actual data processed per second.

But don't forget Moore's law - processing power is increasing rapidly, so what creates a bottleneck today will likely be inconsequential in the near future. Further, if the processing power for XML is a broadly recognized issue, it's highly likely that microprocessor vendors will add instructions to accelerate XML processing. Don't assume that XML processing performance will be limited by Moore's law - it's likely to surpass it if processing moves into the hardware.

Options for Boosting XML Performance
The promise of microprocessor-based acceleration is great, but where does that leave those who need that extra performance today? A simple but perhaps not so obvious option is to reduce the amount of XML processing being done. For example, when choosing an XML proxy or intermediary (such as a Web service management broker), choose one that processes only the portion of XML required to perform each specific function. Also, avoid chaining together products that perform redundant XML parsing and processing serially. For example, instead of doing XML security processing separate from Web service management and routing, choose a product that integrates both of these into a single processing step.

Another option is to deploy a stand-alone "XML accelerator" appliance. Unfortunately, these don't actually provide the expected benefit. For example, many assume these appliances offload XML processing from the application - in fact they don't. An XML-based application still must parse the XML - there's no way to get around that. What XML accelerators can do very effectively is help convert XML in transit. For example, if a Web service application returns a purchase order in XML, an XML accelerator could convert that order to HTML very effectively. So, it might be better to consider these appliances "XSLT accelerators," since that's their most effective function. While they can perform some other forms of XML processing, generally there's little performance advantage in these cases - all of which weighs against the heavy disadvantage of the appliance as a "black box" that can't be managed or extended.

One other alternative looks promising (though the market is still evolving). A number of companies are now building PCI hardware boards that accelerate XML processing. Unlike the appliance "XML accelerators" these boards plug into your application servers and take over the XML processing tasks from the main processor. They do this by plugging in an alternate "provider" under XML processing libraries that applications use (for example, the Java JAXP XML processor APIs). So, they can actually accelerate any XML-based application (whether developed in-house or purchased) transparently without any changes to the application or the network topology. If performance is critical, these hardware boards are a good tactical solution as you wait for Moore's law or the microprocessor vendors to catch up to your performance needs.

Conclusion
If you find yourself worried about XML processing bandwidth and performance, don't take actions that affect your overall architecture or approach to deploying XML and Web service applications. Often the simplest solutions (such as reducing unnecessary and redundant processing) have the biggest bang for the buck. Beyond this, the best approach is to architect your overall strategy assuming bandwidth and performance will not be a problem. Then if you discover there is an XML processing issue in a specific case, address this with a tactical solution that doesn't undermine your overall strategy.

About Dan Foody
Dan Foody, CTO of Sonic and Actional products, leverages his extensive experience in enterprise systems software toward designing robust and manageable service-oriented architectures. Foody's experience with distributed systems technologies including middleware, integration and Web services, gives him a broad knowledge of the complexities and requirements for managing real-world enterprise software deployments. He is the author of various standards, and contributed significantly to the OMG standard for COM/CORBA interworking. Most recently, Foody was the recipient of InfoWorld's 2005 CTO 25 award. Foody holds a BSEE and MSEE from Cornell University.

XML JOURNAL LATEST STORIES . . .
A few years ago, a British newspaper speculated on what might be the Web equivalent of the Seven Wonders of the World, and received suggestions that were hardly surprising: Google search, the Amazon.com e-tail portal, the eBay auction mechanism, etc. But that was back in 1991, before F...
A round-up of the many themes and topics of interest to infrastructure architects, developers and IT managers featuring at SYS-CON's Cloud Computing Expo being held November 19-21, 2008 at The Fairmont Hotel in San Jose, California. The conference is expecting a record turnout of senio...
SYS-CON Events announced today that the leading global SOA, Virtualization, Cloud Computing and Open Source technology provider FreedomOSS named "Gold Sponsor" of SYS-CON's SOA World Conference & Expo which will take place November 19-21, 2008, at the Fairmont Hotel in the heart of Sil...
Cloud Computing offers significant benefits over traditional solutions for deploying production systems as well as for conducting development and testing activities. This session will distill the unique characteristics of clouds and describe how to best think about deployments in the c...
Intel has just released Intel XML Software Suite 1.2. This latest release helps maximize XML performance, while minimizing the effort for any Enterprise, SOA, SaaS, and Web 2.0 based applications. Intel XML Software Suite 1.2 optimizes XML application performance, takes full advantage ...
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