HomeDigital EditionSys-Con RadioSearch Web Services Cd
B2B Beginning WS Business Process Management Case Studies Content Management Distributing Computing e-Business Electronic Data Interchange Enterprise Industry Insight Integration Interviews Java & Web Services .NET Portal Product Reviews Scalability & Performance Security SOAP Source Code UDDI Wireless WS Standards WS Tips & Techniques WSDL WS Editorials XML

PolarLake JIntegrator 3.2
A powerful visual metaphor

The adage, "A picture is worth a thousand words," is almost self referential. To me it immediately conjures an image in my mind of a person carefully examining a painting in a museum. I tend to be a visual thinker. I draw pictures as I work out problems and refine system designs, and I use pictures when I communicate complex ideas to colleagues. The drudgery starts when it's time to transform the concepts depicted into actual systems. So you may imagine how my interest was sparked when our product review editor, Brian Barbash, asked me to take a look at an Enterprise XML Server product that allows diagrammatic control to "build and deploy systems that receive, create, validate, enrich, transform, route, and process XML and Web services." The product is JIntegrator 3.2 from PolarLake.

The Circuitry
At the core of JIntegrator is an XML-centric component assembly approach called "XML Circuits." XML Circuits is a diagrammatic language for expressing how XML documents are to be processed. Developers use the PolarLake Designer utility to describe how documents enter the system, what processing steps to follow, and finally where the document should go once all processing is finished. The designer is a drag-and-drop interface for describing the flow of XML through a set of event handlers. Basically, SAX events are channeled through a sequence when they match a specified XPath expression.

Figure 1 shows a simple Web services client circuit. Actually, this is only a piece of a circuit, called a View. A View contains a table with one or more sequences (a linear set of event processors). The "reorder sequence" shown simply prints a message, calls a Web service and checks the result. This sequence executes when an invoice is received with an "Out of Stock" status. This is indicated by the XPath expression

/invoice/item[(@status="Out of Stock")]

Figure 1

Any number of XPath expressions and sequences can be stacked in a circuit to allow complex, content-based processing. Processing exceptions can also be trapped via XPath expressions, allowing custom exception handling.

Initially, creating a circuit for a very complex process would seem daunting. Experienced users of visual language systems may know that overly complex diagrams quickly become counterproductive. PolarLake addresses this issue by allowing circuits to communicate with each other by using any supported transport. Circuits can also be used as an event processor in a sequence inside another enclosing circuit, thereby allowing very complex processes to be decomposed into a set of modular and reusable circuits.

JIntegrator comes with a large assortment of event processors. Event processors can invoke EJB/Java method calls and map the return values to outgoing XML documents or process variables. There is even an event processor that allows a developer to embed a BeanShell or XSL script into the circuit path.

The Mapper
The most important event processor is called the Mapper. The Mapper transforms the content and structure of XML documents. It can also insert XML content into databases or BeanShell expressions and take database result sets and map these to XML documents.

The Mapper also comes with a very nice visual tool. Figure 2 shows how the tool maps an Invoice Item to a wholesaler's book order Web service. The Mapper loaded both the input document's schema and the WSDL for the targeted Web service dynamically. The simplest mapping transfers elements from one document format to another, but the Mapper is much more powerful. It allows the developer to insert functions to transform content in a variety of ways. Custom functions can also be added by the developer using BeanShell.

Figure 2

The Core
After I designed a simple circuit as a test, I was pleasantly surprised to see how easy it was to get it running. PolarLake supplies an easy-to-use management console - a graphical user interface that allows the developer to create and run instances of servers and deploy circuits.

Operators can also inspect and modify installed circuits, transports and other server properties.

Transports are basically the I/O ports for installed circuits. If I install a circuit that receives and processes Web service requests, the Web service port specification will appear in the transport section of the management console. Nice!

The management console allows the operator to peek inside the running server with a process inspector and also supplies runtime statistics for circuits running in the server.

Cracking the Code
The hard-core code jockeys will be glad to note that they can bypass the designer altogether and develop circuits using the PolarLake pipe system. The pipe system is the underlying architecture to circuits and is PolarLake's method of tracking and managing sets of event processors that act on XML documents at any point in time. The pipe system is accessed through the PolarLake Platform API.

The product is distributed with plug-ins for the Eclipse, JBuilder, and Sun ONE Studio IDEs. These plug-ins generate all the PolarLake application container and component template code, so developers can concentrate on writing the business logic encapsulated in event processors.

Getting Started
The JIntegrator product supports the development of Java, J2EE-based XML, and Web service systems and is bundled with the PolarLake Database Integrator and PolarLake Messaging Integrator.

The Database Integrator provides code-free mapping of XML to/from a supported database system and the Messaging Integrator supports mapping of XML to/from JMS-compatible messaging systems. All three products are built on a common technology base and together form the PolarLake Platform. (Note: Each product requires its own license.)

The installation is very straightforward. It installs the PolarLake Management Console and links to its documentation in the system application menu. The documentation is very complete and contains the following:

  • Getting Started
  • Installation Guide
  • PMC Guide
  • Designer Guide
  • Database Module Guide
  • JMS Module Guide
  • PolarLake Mapper Guide
  • Library Module Guide
  • Web Services Module Guide
  • PolarLake HTTP Module Guide
  • PolarLake Statistics Guide
  • Console Guide
  • Distributed Transactions Guide
  • JDOM Dispatch Module Guide
  • Programming Guide
  • Advanced Programming Guide
  • PolarLake Patrol User Guide
  • Secure XML User Guide
  • PolarLake Demo & Tutorial Documentation
  • PolarLake API
The "Getting Started" guide should be the first document you read and provides a good introduction to PolarLake and all its components. It actually describes the steps required to build a book purchasing system. All the completed circuits are provided and described in detail.

Conclusion
PolarLake's JIntegrator product provides a powerful visual metaphor enabled by a drag-and-drop utility for describing the manipulation and movement of XML documents. This visual interface is backed up with an equally powerful XML Runtime engine with good operational support.

PolarLake
Company Info

PolarLake
Block F1
East Point Business Park
Dublin 3
Ireland
Phone:+353 (1) 449-1010
Fax: +353 (1) 449-1011
Web:www.polarlake.com
E-mail:info@polarlake.com

Download Information
JIntegrator: www.polarlake.com/products/jintegrator/download.shtml

Licensing Information
Developer License: JIntegrator Developer Seat $5,000
Runtime License: JIntegrator (Per CPU) $15,000

Testing Environment
OS: Windows XP Professional (Service Pack 1)
Hardware: Intel Pentium III – 996 MHz – 512 MB RAM

About the Author
Paul T. Maurer is a principal in the financial services practice of a leading consulting services company. paul@paulmaurer.net

All Rights Reserved
Copyright ©  2004 SYS-CON Media, Inc.

  E-mail: info@sys-con.com

Java and Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. SYS-CON Publications, Inc. is independent of Sun Microsystems, Inc.