XML Europe 2003 logo

Introducing Gregor 1.0 XML Transformation Framework: Enabling Fast XSLT Transforms on Critical Paths

Abstract

Newer IT architectural patterns gravitate towards employing XSLT in modules directly participating in an app/service's responsiveness. Web accessed applications are often required to 'personalize' output and increasingly at least some of their input data is XML.

While XSLT provides a natural expression of XML processing for this context, the relatively low performance of the first generation processors

limits the technical viability of its application forcing developers to seek much less convenient and more costly alternative routes.

The Gregor framework's ambition is to unlock the power of XSLT by enabling its on-line application on IT systems' critical paths.

The newly finished Gregor 1.0 XSLT processor became a part of a larger XML Transformation Framework. With the optimizing XSLT compiler at the core

the new scope includes integrated XML parsing, new pipelining architecture, and a family of input/output data adapters.

The expansion of scope beyond the initial XSLT compiler + minimal runtime is Ambrosoft's response to the recurring pattern in Gregor applications

by its early adopters.

The pattern has the following characteristics:

-- the overall context is a portal or service that expects

heavy request load;

-- the information requested is natively available as XML

or other data forms: raw results of queries or computations;

-- irrespective of the native form of the information

it is processed as an XML document at some point by

instantiating the XML data model around the input data;

-- the logic to process the XML document instance, perhaps

to turn it to HTML, is expressed in the high level

language of XSLT;

-- both the instantiation of the XML document and one or

more following XSLT transforms are on the

"performance critical path", i.e. they occur as necessary

steps of the request-response path;

-- these steps contribute to the path's latency and compete

for resources with other parallel threads.

This very natural organization benefits from simplicity of XML data organization and productivity advantages of XSLT, the W3C-recommended high level XML processing language. Developers can concentrate on domain information modelling and aspects of target presentation (explicit

in XSLT stylesheets as e.g. HTML tags and attributes) instead of crafting the solution with low level data structures and constructs of general purpose programming languages. Low level custom coding is replaced by a process that is both more agile and simpler for non-programmer content architects.

But the advantages of working with high level concepts do not come without costs: after all CPUs directly work with only primitive data--bytes, numbers, etc. The demanding task of lifting the data and processing logic to content manipulation level rests with the implementation of XML/XSLT.

While adhering to W3C and industry standards the Gregor system invests in radical algorithmic optimizations and famework structure to eliminate inefficiencies and promote extensibility to encompass closely integrated aspects of XML processing such as parsing, pipelining and output consumption.

The presentation will discuss XSLT application patterns which are enabled or improved by Gregor's new performance characteristics.

Keywords