Challenge
Constraints imposed by the Apache Cocoon web publishing system
unduly hampered expansion plans for the DeltaXML product
demonstration sandbox on their website.
Solution
DeltaXML rewrote and enhanced their product demonstration
sandbox in NetKernel.
Result
DeltaXML is able to run multiple versions of their product
simultaneously and build new and innovative
realtime high-performance interactive AJAX demonstrations.
DeltaXML Web Demonstration Sandbox
DeltaXML is the leading supplier of XML change management technology.
Founded in 1991, DeltaXML is a UK based, privately owned company with
experience in both change management and XML technologies.
Their first product, DeltaXML Core, was released in 2001 and has
become the pre-eminent product for XML change control.
DeltaXML Sync, introduced in 2004, provides XML document
synchronization from any possible combination of three input streams.
About the Sandbox
To showcase DeltaXML Core, a demonstration web site area was
developed with the Apache Cocoon web framework[1].
This demonstration area allowed users to submit either two
files (via browser upload) or two URL file references and
receive a report detailing the differences between the two files.
It soon became clear that technological constraints imposed
by Cocoon limited the options for enhancements to the demonstration area.
For example, Cocoon uses a single classloader making it difficult
to simultaneously run different versions of DeltaXML Core and the various
XML support libraries.
To provide greater flexibility, DeltaXML selected NetKernel to replace
Cocoon and hired a recent graduate to migrate the existing demonstration
and build new capabilities. Within ten days the NetKernel concepts and
principles were mastered and a prototype was operational.
Subsequent development iterations brought the web site area live with
an Ajax client displaying a new difference report in response to each
keystroke.
"NetKernel is very flexible."
stated Nigel Whitaker, Senior Software Architect at DeltaXML.
Whitaker added, "The uniform URI addressing
model allowed us to think creatively about our system.
In NetKernel, Core is configured to compare two documents
referenced by an internal URI. It is simple to
use a remote http reference, a local resource reference,
or reference to a resource created dynamically, such as querying
a database."
Ajax development with NetKernel
The flexibility and performance of NetKernel allowed DeltaXML
to build a highly interactive demonstration of their product.
As shown in the following screen, the DeltaXML Core Sandbox[2]
allows the user to edit an XML document in the "Document 1" and "Document 2" areas.
For each keystroke, the browser based Ajax code sends both of the documents
to a NetKernel web service using DeltaXML Core.
The service accepts the two documents, sends them to Core, retrieves the
output and then applies an XSLT transform to create an HTML formatted report.
Finally, the report is sent back to the browser which displays it in the
lower portion of the screen.
Figure 1: DeltaXML Sandbox Screen
Integrating DeltaXML Core with NetKernel was easy.
A new NetKernel module was created to provide an independent
Java classloader, a URI addressable service interface and the
DeltaXML Core Jar file in the module's library.
Figure 2: DeltaXML Architecture
DeltaXML's DXP sequencing language was used inside
the deployment and NetKernel's DPML and BeanShell
languages were used to provide and orchestrate the web services used by the
Ajax client.
Rapid Development
"We are very pleased with NetKernel." said Whitaker.
"NetKernel solved several thorny problems such as JAR file
versioning and provided easy server management.
With NetKernel's module upload and management wizard,
it is very easy to perform hot upgrades on a server running 24-7."
Whitaker added, "Cocoon's continuations were a debugging problem.
NetKernel provided an environment in which it was much easier to debug
our system.".
Looking forward, Whitaker commented
"Our thoughts are now on planning and implementing
further enhancements to our web-based product demonstration.
We are contemplating developing service-based offerings that will allow
our clients to send XML documents to the comparison engine via
a REST-styled interface."
Summary
NetKernel provides DeltaXML with an ideal rapid development
environment and superior enterprise caliber server management capabilities.
DeltaXML will build future enhancements to their demonstration web site area,
taking advantage of NetKernel's advanced development and deployment
environment.
References
[1] Apache Cocoon Web Framework
http://cocoon.apache.org
[2] DeltaXML Core Sandbox
http://deltaxml.com/free/sandbox/