Last changed: Dec 12, 2006 03:30 by
Robin Mulkers
Johannes is a leading developer of Java technology used in XML appliances.
He will share with us his expert view on XML ASICs, Hardware-assisted Java APIs, Appliances, and Application-oriented Networking Devices.
Johannes Döbler is the creator of jd.xslt - probably the world's fastest XSLT engine (as confirmed by many independent studies and benchmarks) as a recreational open-source Java project. He led, as Principal Engineer for Tarari, the creation of RAX-J (Random Access XML for Java), a high-performace, hardware-accelerated XML Java framework that runs on Tarari's plug-in XML processing board and ASIC. Tarari's XML accelerator is used in XML appliances from Reactivity and Layer 7 and in the products of other Tier 1 equipment vendors. Johannes is based in Munich, Germany.
Abstract of this talk
Processing of XML has become pervasive at all levels of the computing infrastructure and is the vexing "devil in the details" of every SOA implementation. Demand for higher performance levels has been driven by the increasing volume of XML messages, the complexity of operations performed on them, and a desire to better rationalize SOA deployment by consolidating XML processing capability in specialized servers providing enterprise level services within the firewall and in new type of network devices at the network perimeter.
The lowest level of XML acceleration is the XML content-processing ASIC, a special-purpose processor designed to analyze and query XML streams and to transform serialized XML into in-memory data structures. Such ASICs can provide about 4 Gbps of throughput today and the next generation will increase to 10G, making content-aware handling of XML viable in core network elements such as switches and routers.
New, leaner, APIs have been created to support conventional XML programming tasks which take advantage of the XML content-processing ASIC. We will present one such API, RAX-J (Random Access XML for Java). The main design decision in the RAX-J API was how to model and navigate an XML document:
RAX-J uses the concept of the XML Cursor - a sliding window over an XML document, presenting one node at a time. The design of the XML Cursor makes optimum use of the in-memory structures produced by the content-processing ASIC to achieve high-performance in the parsing step and at the same time avoid the memory burden of traditional tree-models like the Document Object Model (DOM).
Popular XML applications such as Schema Validation, XPath, XSLT and XML Security and new applications such as Simultaneous XPath, Random Access XML, and XML Threat Management have been built around this processing model.
Performance typically ranges from 4 to 40 times the throughput of equivalent software-only applications, with the variability dependent on the extent to which the application is able to leverage the advantage of hardware.
XML appliances are servers which provide XML processing services; these appliances often use hardware-accelerated XML APIs although some are based solely on highly optimized software. The XML appliance as a specialist device provides firstly acceleration of XML processing and high capacity.
The XML appliance is also an offload device, in that it performs operations that can than be offloaded to it from SOA endpoint servers and reduce the total cost of the datacenter in terms of number of servers, maintenance and space and power consumption. It may also perform special XML security functions which are more reliably managed at a centralized point in enterprise network topology.
An XML device at the periphery of the enterprise network may combine both enterprise security functions as a firewall specialized in SOA Web Services threats and as an enterprise service bus providing a hub model from multiple site SOA deployments. Application-oriented networking devices fall into this category; they may also provide XML content-based routing and quality-of-service, overlapping layer 7 network level services with parallel functions occurring at lower levels of the network stack.