Home Products Solutions GregorNotes News GregorXSLTFramework JraBio.html Services Download Contact


Home

Introducing Gregor 1.0 XML transformation framework:
enabling XSLT transforms on critical paths.

Newer IT architectural patterns gravitate towards employing XSLT in modules directly participating in an app/service's responsiveness. The practice is becoming mainstream and has been recently described in Martin Fowler's new book "Patterns of Enterprise Application Architecture."

Web accessed applications are often required to 'personalize' output and increasingly at least some of their input data is XML and/or raw data is 'xml-ized' to benefit from XML processing methods.

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 goal is to unlock the power of XSLT by enabling its on-line application on IT systems' critical paths. Ambrosoft strives to provide the world's fastest XSLT processing tools for the Java platform.

The Gregor 1.0 XSLT compiler became a part of a larger Gregor 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 closely integrated input/output data adapters. 

The expansion of scope beyond the initial optimizing 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:

bulletthe overall application context is a portal or service that expects heavy request load
bulletthe information requested is natively available as XML or other data forms: raw results of queries or computations
bulletirrespective 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; these documents are then typically discarded
bulletthe logic to process the XML document instance, perhaps to turn it to HTML, is expressed in the high level language of XSLT
bullet 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 modeling 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 framework structure to eliminate inefficiencies and promote extensibility to encompass closely integrated aspects of XML processing such as parsing, pipelining and output consumption.

The XML Europe 2003 presentation discusses XSLT application patterns which are enabled or vastly improved by the new performance characteristics.

 

 

Home ]

Send mail to info@ambrosoft.com with questions or comments about this web site.
Copyright © 2008 Ambrosoft, Inc.
Last modified: March 07, 2008