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


Home

The Gregor/XSLT Notes

This is a collection of comments on various topics that have recurred in the context of Gregor's early market experience.

What is Gregor/XSLT?

Gregor/XSLT is the world's fastest XSLT solution for Java on Linux, Solaris, and Windows. The system is being continually improved, with new optimizations being implemented monthly. Gregor excels at "systemic," or end-to-end, performance to tangibly affect the final user metrics. 

Gregor/XSLT is an XSLT transformation framework including an optimizing XSLT compiler plus a suite of run-time components. The compiler produces Java binaries directly, in a way that is synergistic with modern JIT compilers. The run-time components facilitate the maximum XML transformation performance adapting to the actual customer needs we observe.

The basic License is a site license, priced per CPU, with volume discounts. 

Trends we observe.

We believe in trends with following components:

bulletXML adoption grows everywhere with XSLT transformations being the predominant mode of XML processing (if only to present data views in HTML); although knowledge about XML virtues is common, the practice follows at its own rate, oftentimes slowed down by legacy apps and processes,
bulletusers rebel against being handcuffed to a single platform and migrate e.g. from Windows to Linux on Intel; the migration from Windows, in particular, requires finding a solid replacement for the fast MSXML4 processor,
bulletusers benefit from many Open Source offerings such as the Apache suite of technologies to quickly advance in understanding and application of modern IT tools,
bulletusers experiment with Web Services,
bulletusers experiment with novel applications of XML data model: the data may originate in Java objects and end up as Java objects, however, if it is manipulated "as XML" in-between, then the business rules can be expressed in XSLT: high-level and platform agnostic,
bulletwith 'post-dot-com' spending IT departments strive to run more efficiently rather than multiply their hardware assets

As before with traditional programming languages such as C/C++ and Java, the mainstream use eventually requires performance optimization. Occasional use (batch) can afford to be slow; as the usage intensifies, performance becomes more critical to success.

Who is Gregor/XSLT for?

All users of XML transformations can be divided into 3 categories by the extent to which processing performance has a strategic importance to them

  1. "Don't care": typically batch use, not on the critical path; example scenario: a new document is transformed once on entry, results are cached and served on-demand.
  2. "It would be nice": a gray area category where users experience some performance inadequacy of the popular open source processors but can live with it somehow.
  3. "Must have": these users have reached the stage of intensive XML processing needs, and without tools like Gregor/XSLT they would be forced to either invest in more hardware or abandon XSLT and go back to the harder to maintain mix of Java, JSP, etc., in both cases incurring non-trivial costs today and for the future.

Gregor/XSLT has been created and is priced for the third (and growing) group of users! In addition to the fast system we offer customized help with integration issues which are critical for the whole system performance, beyond the mere plug-it-in implementation.

We sometimes see endless discussions about the speed of various XSLT constructs as well as guesswork based attempts at hand-optimization of XSLT stylesheets. This is a job for an optimizing compiler! That's why tools are created to help people out. You may "save" on a good tool, but pay with your time while possibly obscuring the logic that was natural to express. Worse still, the hand optimization may have adverse effects with another tool.

 

Where do the avant-garde technologists live?

Ambrosoft is most intensively working with customers (or beta testers) in:

  1. Germany and Japan
  2. USA
  3. UK
  4. The Netherlands

Germany and Japan (both known as makers of great cars) lead the pack in terms of truly advanced, innovative architectures. The US is second, with the UK following closely.

Gregor/XSLT and Open Source.

Gregor/XSLT is being developed by Jacek R. Ambroziak who created the original XSLTC compiler, today a part of Apache Xalan. (Jacek has also coined the term 'translet'). Gregor has been written as a 2nd generation system and a significant improvement over the original attempt. The performance gap between the 'siblings' widens and will continue to do so in favor of Gregor. The new and evolving architecture offers many optimization options that will be gradually implemented.

Gregor does not follow the Open Source ideology but the traditional entrepreneurial one: building business around dedicated creation of value for the customer. We believe that both the Open Source and traditional software business have their unique contributions and can complement each other:

bulletGregor can be plugged in into Open Source frameworks such as Cocoon, helping them achieve practicality targets.
bulletGregor itself immensely benefits from the existence of the Open Source XSLT processors such as Xalan or XSLTC: 
bulletusers can first experiment, learn and build using free software until they start feeling the need for a significantly faster system that can be custom fit to their needs, accompanied by similarly customized help and support; on one hand 
bulletthe free XSLT processors offer a great 'safety net' for Gregor adopters; except for addiction to speed there is no vendor lock-in involved.

We are aware of the ideological debates. Should software be free (in the sense of "not paid for directly")? Should ALL software be free? What about hardware? Or books?  Why is software author unlike any other value creating, hard working professional?

Free Open Source can be credited with an unprecedented role in adoption of technologies and standards such as HTML or XML (or XSLT!) that would never become so widely spread and available to anyone anywhere with a computer and Internet access. On the other hand it is the entrepreneurial competition motivated by business drive, uniquely human since prehistory, that has always fuelled progress in all industries with customers always benefiting, except when victims to monopolies.

Open Source within itself is not competitively motivated. The is no "Comanche" for Apache! Something has to suffer. User support and help implemented via community? Huge value but the 'extra mile' likely absent. In contrast, all business is built around scenarios of such 'extra miles' and special efforts spent to benefit a customer and earn their business.

Gregor and TrAX.

Gregor/XSLT does implement TrAX but it also offers native and faster inter-component 'glue.' In general we recommend expressing your main architectural blocks in terms of rather general interfaces agnostic about lower level implementation detail. TrAX can indeed and should be treated as 'implementation detail' when looked at from a higher level. That way your architecture will express the nature of your application orthogonally to TrAX progress. You will also be able to benefit from Gregor's own connectors, again as a hidden implementation detail. In the end, you should be able to plug in either a fully optimized Gregor/XSLT solution or a Xalan based backup solution as implementations of your interface. Ambrosoft Consulting will gladly help you out in your design activities.

Risk management.

The topic always comes up when larger corporations deal with smaller, younger, less established  businesses. What will happen if Gregor crashes or Ambrosoft closes business? Well, to begin with Gregor implements a W3C standard XSLT where Open Source provides a free and secure fallback position. In fact, Ambrosoft will gladly help you create this safety net. As mentioned before, the fallback will run slower but it will run. In addition, the traditional array of risk reduction mechanisms up to and including licensing the source code are available.

Kaizen & Field Testing

Gregor/XSLT is continuously being improved: new optimizations are being added, GregorDOM is becoming more compact for wireless applications, file system persistence (a native XML DB?) and in-memory caching, and so on.

The current version is 1.1. We always encourage our prospective customers to submit representative samples of their XSLT and input data. We respect the confidentiality of your samples. When the smooth operation of Gregor's new mechanisms is verified and performance metrics obtained, you will be able to test Gregor in your environment.

 

 

Home ]

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