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


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

Tools and solutions for high performance XML processing:

fast XSLT parsing and transformations.

Home of the Gregor/XSLT optimized XML processing framework and XML for the wireless client solutions. Since 2002.

Gregor, Android, Amazon XML web services demo 

March 7th, 2008

High performance XML parsing and transformations on client devices and on servers help quickly create snappy web service apps for the Android platform.

Read more ...

Gregor translets and runtime for Google Android

March 1st, 2008

Last week we informally demoed Gregor XML processing at the Android Code Day in Harvard Square. The demo application which runs on Android emulator lets users browse Amazon's music collections exposed as XML web services. Our goal is to provide a technology to help build effective Rich Client Apps for devices with limited screen sizes and limited battery life.

This Gregor application showcases:

bulletGregor's integrated fast XML parser, more than 4 times faster than off the shelf SAX parsers
bulletGregor optimized translets running on the embedded Dalvik Virtual Machine
bulletcompact DOM representations for caching on Dalvik's heap
bulletXDM: a binary (preparsed, compressed, small and fast) storage and transmission format
bulletease of programming of XML web services clients with XSLT and Java
bulletGregor's hand crafted runtime with fast custom "around tranformation" plumbing

How does it work? The Android application requests a bundle of data about Amazon CD/DVD collection for an user specified artist. The bundle, complete with prices, reviews, tracks, cover image URLs, etc., comes back as an XML document. The document is parsed by our integrated parser and immediately transformed into an initial View by one of the application's translets. In Model-View-Controller terms, the Model stays mostly in parsed XML document instances, while Views are dynamically generated as users navigate through Model data. View generation is specified via XSLT stylesheets that Gregor's optimizing compiler compiles into Java bytecodes to be subsequently converted into Android Dalvik bytecodes. A View generating Model transformation can generate X/HTML or build UI directly by calling back to the Android graphics API.

In a different scenario, a transcoding server is used. The Android hosted web services client requests Amazon data via a third party server. The server gets the actual data, which can be voluminous, quickly parses the XML response, and transforms it to a smaller document to be returned to the client. The returned document may be put into the yet smaller and faster XDM (XML Data Model) format for speedy I/O and snappier processing on the client.

Here are the most recent performance data for Amazon Web Services transformations.

All measurements have been taken on the following architecture:

Linux greg 2.6.23-gentoo-r3 #8 SMP i686 Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz GenuineIntel GNU/Linux

We used IBM's Java 1.5.0_06 as the fastest Java for this application on this architecture.

The Amazon WS XML document for "Pink Floyd" music with no indentation takes up 237,967 bytes. The XDM binary/preparsed form of that document requires 130,806 bytes, or 55% of the original. This means one can transmit/store/cache about twice as many XML documents in the XDM format than in the original serialized text format. Yes, XML text can be further compressed, but so can be XDM. While both formats can be compressed, XDM is also preparsed: its deserialization into a navigable DOM is much faster than even our own fast-parsing.

 

test rate (transforms/sec) comments
cached DOM 4505 demonstrates the speed of just the transformation/serialization; depends on complexity of the XSLT stylesheet vs. Gregor compiler and runtime optimizations
baseline SAX parser 134 hugely slower rate; SAX parsing and DOM building dominates; a baseline for JAXP/Trax; with complex, computation intensive XSLT the balance between parsing and transformation is more even
fast Gregor parser 592 Gregor's integrated XML parser is 4.4x faster leading to 4 times better end-to-end throughput
XDM binary DOM 1080 transforming from compressed "DOM image" is almost twice as fast as our fast parsing, and almost an order of magnitude faster than standard SAX parser based processing

 

Notes:

Please note that transformations from cached DOM have practical application on Android as multiple Views are generated from existing (XML) Models.

The XDM format is I/O, memory, cache, and CPU friendly. In the Android context it will aid in building snappy, resource saving, rich client apps. XDM will also work in server environments with Sleepycat DB, MySQL BLOB, memcached, etc.

 

uSeeToo: visual communicator for Skype

XML goes P2P with uSeeToo, our Java application that lets users share a virtual whiteboard. You can talk to your coworkers on Skype while explaining your ideas graphically. For more information please visit http://useetoo.com

The case for Gregor XML VM.

June 6th, 2006.

There exists a significant price/performance gap today between:

bulletfree but slow open source XML processor software, and
bulletfast but expensive commercial solutions using hardware acceleration

Gregor/XSLT and Gregor XML Virtual Machine (G/XVM) are designed to bridge that gap: we prove that the software available so far has just not been optimized!

Gregor/XSLT is (Apache Xalan's) XSLTC completely redesigned by the original inventor. Like its predecessor, Gregor compiles XSLT transforms to optimized Java bytecodes (translets). The system is a commercial Xalan replacement that can be used in WebSphere, WebLogic, or JBoss application servers, as well as within Tomcat, Cocoon, etc. environments.

<XML/VM>

Gregor/XVM is written in pure C for ultimate performance and small footprint. In under 100 kB, it contains an integrated, high-performance XML parser, as well as an optimized XML Runtime System. Gregor/XVM accepts and executes XVM translets compiled  by separate optimizing compiler(s) from XSLT, XPath, (and possibly XQuery) source programs.

Since it doesn't need to compile/interpret XSLT/XQuery, it can be very small and therefore integrated with small devices, such as cell phones powered by MS WinCE or Symbian.

Gregor/XVM is extremely fast and it beats Gregor/XSLT's optimized (+JIT) bytecodes by a factor of about three!

We tested the system using a stylesheet from DataPower's (now IBM) XSLTMark benchmark: alphabetize.xsl applied to the text of Hamlet in XML:

bulletXSLTC, (IBM Java 1.4.2):            123 ms
bulletGregor/XSLT (IBM Java 1.4.2):     21 ms
bulletGregor/XVM:                                  8 ms 

The tests were performed on a 2-year-old AMD Athlon64 3200+ that today would cost some $130. The stylesheet used gives XML processing a powerful workout: it inspects and normalizes all text, visits all nodes of an input document, and sorts nodes at all levels. The text of hamlet.xml is some 340kB; Gregor/XVM needs 2 milliseconds to parse it and prepare for processing on the $130 Athlon! The complete text of Hamlet can be completely parsed, resorted and normalized 100 times per second on a cheap processor!

Gregor XML Virtual Machine Benefits and Opportunities

bulletultra high XML parsing and processing performance without specialized hardware: you can build fast SOA/WS solutions with modern commodity processors of your choice: Intel, AMD, PowerPC, or SPARC; your system can be scaled-up or -out by adding more/better commodity processors, avoiding specialized HW lockup! G/XVM can be easily replicated and moved between processors
bulletexcellent price/performance ratio: you can get amazing results from a few hundred dollars processors without spending thousands on specialized HW
bulletexcellent performance/power usage ratio, important for servers and battery powered devices
bulletthe system can run uniformly on any processor from mainframes through cell phones, where it can be integrated into micro-browsers; on small devices G/VMS's efficiency translates into great user experience and lower power consumption 
bulletthe combination of fast parsing (> 150 MB/sec) and XPath evaluation can be used for fast XML message inspection for security and routing
bulletthe same translet can be run anywhere a G/XVM exists (compile once, run anywhere)
bulletG/XVM can be integrated with C/C++ based systems, including browsers to speed up AJAX execution; in browsers it can be integrated with HTML/CSS rendering
bulletG/XVM can be integrated (through JNI) with Java based systems: a single call to a native (gregorxmlvm.dll or libgregorxmlvm.so) method can parse, transform, and/or XPath-inspect a document (except where a tight Java integration is important, e.g. Java callbacks, we expect that G/XVM's native implementation of  XML processing will be the highest performing solution for Java)
bulletG/XVM is not limited to XSLT: it is a translet programmable universal XML processor (G/XVM translets introduce an XML processing "assembly" language)
bulletG/XVM input is not limited to serialized XML: it can be any data over which hierarchical organization can be imposed
bullettranslets can be encrypted for G/XVM instances compiled with private keys; this protects IP and increases security of XML processing
bulletwritten in pure C, the system doesn't need Java to run
bulletthe design of the Gregor XML VM can inform specialized HW design, including extensions to commodity processor ISAs
bulletthe system is a result of some 5 years of research

 

The Gregor XML VM technology can be licensed or OEM'ed.

We are actively looking for partners in the SOA/WS/AJAX/wireless space.

Ambrosoft, Inc. will be happy to custom tune the technology for your applications, processors, or appliances.

 

Why do you need fast XML software?

January 20th, 2005: The amount of XML data processed by applications and networked services doubles every year (or faster). Hardware performance needs about 20 months to double; does it sound like a gap? It does to us! Ambrosoft celebrates its third year in the business of optimized XML processing with the newest generation of high performance XML processing software: GregorNG/XML.

New Gregor XML parser complements optimized XSLT/XPath performance

November 11th, 2004: Gregor/XSLT high performance XML transformation framework version 1.1 now includes an innovative fully integrated XML parser technology. Together with adaptive pipelining and native W3C DOM and JDom adapters, the new addition to the Gregor family enables the holistically optimized, end-to-end XML processing path. Latency and throughput parameters are improved up to tenfold helping customers achieve scalability of their XML processing SOA and Web Services applications. The parsing time bottleneck is now removed from Gregor's XSLT/XPath processing!

Free download: UBL 1.0 transformation library

November 4th, 2004: We are pleased to announce the availability of a fully functional transformation library for the Universal Business Language (UBL). The XSLT stylesheets prepared by Crane Softwrights Ltd., have been compiled with Gregor's optimizing compiler and packaged as a Java application in a 'jar' file. The transformer application does not require any configuration except Java to run it.

Please see the official OASIS announcement here.

You can download the jar from ambrosoft-crane UBL Formatter

"Thanks to Crane and Ambrosoft, UBL can now claim to have fulfilled its promise to provide a standard machine-processable business data format from which at any moment you can automatically generate an internationally standardized paper or online representation usable in traditional paper and fax-based workflows. G. Ken Holman of Crane and Jacek Ambroziak of Ambrosoft deserve the congratulations and appreciation of the entire world business community for their critical contribution to making the vision of low-cost electronic commerce a reality."

Jon Bosak, The Father of XML (and now of UBL too)

Complete text.

For inquiries please write to:  info (at) ambrosoft (dot) com.

Gregor 1.1 Released

October 13th, 2004: The new Gregor/XSLT release brings further performance improvements as well as provides various Xalan extensions as requested by customers migrating from the Xalan processor.

Gregor 1.0 Released

Gregor 1.0 integrated XSLT framework has been officially released at the XML Europe 2003 Conference in London, England. More...

August 6th, 2003: new commentary distilled from the early market experience is here: GregorNotes.

New benchmark results

Gregor 1.0 is the fastest platform neutral XSLT processor. More...

Gregor-In-A-Box

Gregor-In-A-Box extends the Gregor platform to include a custom configured network appliance adding a new deployment option. More... 

 

Our Mission

To make our technology vision, innovation,  and passion create value and new opportunities for our customers.

 

 

Company Profile

Ambrosoft, Inc. is a privately held XML/XSLT software company based in Framingham, Massachusetts.

Our flagship technology is Gregor/XSLT, an integrated XSLT framework for Java, its runtime environment, and binary XML compression technology to support XML wireless data services. 

Ambrosoft is founded by Jacek R. Ambroziak, Ph.D., a longtime Research Scientist for Sun Microsystems Laboratories. Jacek has a long track of coming up with innovative software ideas and putting them into practice, while obsessing about performance.

 

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

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