Welcome!

SOA & WOA Authors: Hari Gottipati, Maureen O'Gara, Elizabeth White, Pat Romanski, Liz McMillan

Related Topics: SOA & WOA, XML

SOA & WOA: Article

Product Review: "MagooClient 2.1 XML Messaging Client"

A lean and mean client for XML-based business processes

When I first looked over MagooClient from Magoo Software, it was difficult to categorize. I expected that it would be another composite application builder, but that's not what I found. Instead I found a tool that not only allows users to interact with business processes, but that also becomes part of the business process itself. MagooClient can not only reach out and perform Web service requests, but it is designed to also be inserted in the path of XML messages.

XML Messaging Client
Magoo Software describes MagooClient as an XML messaging client. That is very fitting, since it has been modeled to operate in a fashion similar to an e-mail client. As you can see in Figure 1, the MagooClient main window looks very much like a stripped-down e-mail client. Users compose messages via forms that are constructed on the fly. The messages can hang around in the "drafts" folder until the user is ready to send them to a particular destination. Once sent, messages are moved to the "sent" folder.

The "inbox" is where inbound messages land. What types of messages would I expect to see here, you might ask. Well, the most obvious type would be responses to outbound synchronous Web service calls. More interesting though, is the fact that MagooClient can receive XML messages over various transports. It even has an embedded HTTP server and can listen for inbound XML messages. Users can inspect and edit these inbound messages and forward them on to other services.

Essentially MagooClient can initiate business processes by creating and sending XML messages to services. It can allow for review, validation, and editing of messages, and finally, it can route messages and perform exception handling.

Let's peel the onion and look deeper.

Message Types
MagooClient maintains a message type catalog. Although the software can display any XML as a form, the catalog enables it to support message creation, validation, and editing.

MagooClient provides a wizard that simplifies population of the catalog. It allows import of either XML Schema or WSDL directly from a file or over the network from an arbitrary URL.

The MagooClient uses its own proprietary XML Schema capability for efficiency, but allows validation against the Apache Xerces parser for comparison. The WSDL and schema support are excellent. I keep a few large WSDL and schema around from old projects that I typically use as litmus tests for new tools. They are valid, but have caused other tools to fail. I was able to import them without trouble into the software.

Note that message types need not necessarily exist in the catalog before message creation can occur. The software has a nifty feature that allows a message to be created from a WSDL or XML Schema on the fly. This process automatically populates the catalog.

Forms
MagooClient automatically renders forms from the XML content. There is no form design here; it's neither supported nor required. MagooClient does a beautiful job of creating a usable layout.

Figure 2 displays the message window. Note that the form is flat and arbitrarily long based on the size of the XML, but navigation is made possible by tree representation of the message, which is displayed in the navigation panel to the left of the window.

Clicking on nodes in the tree navigation panel scrolls the appropriate form section into view. Clicking on a field in the form causes the tree navigation panel to highlight the appropriate node. It is a nice clean way to move around and edit the document.

I have always been a fan of tightly typed schema definitions. These not only allow for much of the validation to be provided by the schema automatically, but also have the added benefit of supporting automated form engines such as MagooClient. MagooClient leverages the XML Schema information in order to render and validate forms. For example, enumerated values are presented as drop-down lists, value ranges as radio buttons or spinners, and input fields are sized from the schema accordingly.

It is one thing to create forms based on static structures, but XML Schema allows for variable message structure. The software allows for adding, removing, or replacing elements at any node in the tree where deemed valid by the schema. This is done by right clicking on a node in the tree navigation panel. A pop-up menu will list the valid schema types that can be inserted.

Transports
Remember earlier I stated that MagooClient can become part of the XML business process. It does this by supporting receipt and transmission of messages over a number of transport mechanisms. Transports map the ability to send and receive messages to a particular protocol or vendor implementation. This allows a message to be sent simultaneously using multiple transports to various destinations. Transports, just as message types, must be configured in the catalog. Currently the software supports HTTP, POP3/SMTP, and JMS as transports. The HTTP support is relatively straightforward, so I won't go into it here.

As mentioned earlier, the software was modeled on an e-mail application and although atypical, e-mail as a transport can be a practical, cost-effective form of store-and-forward XML messaging in some instances. The MagooClient can support multiple e-mail accounts simultaneously. The software can be configured to pull messages from the mail server upon request, or a polling interval can be configured in order to retrieve messages automatically. I was able to quickly route a set of messages through one of the many free Internet e-mail services and retrieve them again as a test.

MagooClient also supports transport over the Java Message Service (JMS). This allows the software to communicate with enterprise-class messaging providers. The MagooClient uses the asynchronous listener model to ensure that messages are received as soon as they arrive at the provider.

MagooClient provides a nifty transport monitor that can be launched from a menu. Figure 3 shows the monitor, which logs all communication to and from the application. This allows the user to view all of the low-level message details such as handshake, properties, and headers.

Scripting
Embedded within MagooClient is the Mozilla Rhino scripting engine. Rhino is an open source JavaScript implementation with extensions that add native XML support.

The software provides an integrated script editor with drag-and-drop capabilities from the tree panel of the message window. Scripts can create new messages, manipulate existing messages in the environment, call out to external Web services, and interact with the user via a built-in dialog object.

Essentially, scripts can be used as macros and invoked from a pop-up menu, as extended validation rules to check complex interfield relationships, or they can provide dynamic validation and population of form fields using external callouts. Also, message types can be configured so that scripts automatically run on receipt or when open.

Rules
MagooClient supports rules that can either route messages on to a destination or file the message in a particular folder. Rules are basically a fixed set of conditions that when satisfied, fire off the configured routing or filing operation. The conditions vary from matching on various addressing information to message type, validity, transport, and direction.

Conclusion
Magoo Software has leveraged a simple e-mail-style messaging model to deliver a product that is easy to learn and straightforward to use, yet still powerful. MagooClient XML support is excellent. The software's ability to support multiple transports and destinations, dynamically render forms, and apply scripts and routing rules makes this product worth a look. I definitely recommend that you check out MagooClient (see company info).

More Stories By Paul Maurer

Paul Maurer is a principal in the financial services practice of a leading consulting services company.

Comments (1) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Most Recent Comments
SYS-CON Australia News Desk 12/27/05 06:20:13 PM EST

When I first looked over MagooClient from Magoo Software, it was difficult to categorize. I expected that it would be another composite application builder, but that's not what I found. Instead I found a tool that not only allows users to interact with business processes, but that also becomes part of the business process itself. MagooClient can not only reach out and perform Web service requests, but it is designed to also be inserted in the path of XML messages.