| By Brian Barbash | Article Rating: |
|
| January 11, 2002 12:00 AM EST | Reads: |
17,215 |
SpiritSoft100 Medway Road
Suite 203
Milford, MA 01757
Test Environment:
Pentium III, 256Mb RAM, Windows 2000
Price:
$9,700 per developer
Server run-time: $5,500 per CPU
Client run-time:
$5,000 per 50 users
$3,000 per adaptor per server
(Adaptors for IBM MQ series, RV5, RV6, ETX, MSMQ, etc.)
Tel: 1 508 473-3227
E-mail: sales@spirit-soft.com
Editor's Note:
SpiritWave 5.0, the newest version of this messaging system, was
released after this
review was written. SpiritWave 5.0 is the first open JMS framework to
provide multi-plug adaptors to integrate any proprietary legacy
message-oriented middleware (MOM) system. These multi-plug drivers
enable easier development of distributed systems by neutralizing the
dependency on vendor-specific interfaces and by managing these
proprietary MOM systems so IT managers don't have to. SpiritWave 5.0
includes drivers for all
leading proprietary MOM products such as
IBM MQSeries, MSMQ, Tibco Rendezvous,
and Tibco ETX.
SpiritWave 4.4 from SpiritSoft is a vendor-independent, JMS-compliant messaging system that provides a common interface to heterogeneous messaging systems. It supports the publish/subscribe and point-to-point messaging paradigms. To leverage existing investments in messaging systems, SpiritWave provides transport drivers for IBM's MQ Series, Tibco's Rendezvous, Microsoft's MSMQ, OpenTrade's Orbita, and Active Software's ActiveWorks products. It also provides a pure Java JMS implementation for both queue-based and publish/subscribe messaging. Figure 1, from SpiritSoft's Web site, illustrates the overall architecture in which the SpiritWave messaging system interacts with third party transports.
Working with SpiritWave
Installation and Administration
Installation of SpiritWave is straightforward and is available for
both Windows and Unix systems. For this review, I've installed
SpiritWave on a Windows 2000 Professional machine, with a Pentium III
and 256 Mb of RAM. Once installed, the administration and message
queue applications are available along with several sample
applications that supplement the documentation.
SpiritSoft provides a common administration architecture for all of its products, called SpiritAdmin. Configuration information is housed in XML data files that may be stored in various formats, including a JDBC-compliant database.
SpiritWave's provided messaging transport comes in two flavors: Standard and Enterprise. The two drivers provide the same services with regards to message transportation, but the Enterprise component adds the capability to validate users and control access to destinations. It's optimized for a distributed enterprise messaging, whether queueing or publish/subscribe. Each messaging transport is fully configurable from the SpiritAdmin console provided.
As mentioned earlier, SpiritWave contains several modules to allow message transport systems to become accessible via the JMS API. For the modules that provide access to the provided message queue, three options or modes exist: Unadministered, Administered, and Enterprise. Under the Unadministered configuration, the messaging system and its communicating clients aren't controlled from a centralized configuration mechanism. Configuration details are set up by the individual application and may be stored independently, often within a JNDI tree. In the Administered mode, the configuration details for the transport module are stored within the repository established for the SpiritAdmin framework. This repository may be, for example, XML files or a JDBC database. In the third option, Enterprise, the modules incorporate the user management and destination access services components of the SpiritAdmin architecture.
Development
For this review, I've created a simple application that can accept
XML requests from various external sources through
a messaging subsystem. The messaging subsystem will be implemented
with SpiritJMQ, a JMS-compliant message transport. I've placed the
connection and queue into a JNDI tree inside IBM's WebSphere 3.5.3
application server. SpiritWave also provides integration with BEA's
WebLogic application server through predefined registration classes
and deployment descriptors.
The first task in working with SpiritWave is to establish and bind the queue connection factory and a default queue into the JNDI tree. To accomplish this, a simple registration servlet executed at server startup will create the necessary objects and perform the binding. Once in the JNDI tree, the objects are available to clients and message-driven EJBs for processing.
If the developer is working with WebLogic, the registration process is straightforward and easy to configure. SpiritSoft provides a startup class that takes no parameters and reads its configuration information from an XML file. The configuration file specifies all communication properties for SpiritWave and the JNDI binding information.
Connections to the SpiritWave messaging system may be obtained in two ways. The first uses the standard JMS connection factories, queue or topic, appropriate for the task at hand. The second incorporates SpiritWave's WaveProfile object that defines the implementation details of the underlying transport. If a developer chooses the WaveProfile approach, it's incorporated in the creation of the connection factory.
WaveProfiles separate the message transportation and storage mechanisms to provide flexibility to the developer and the application environment. For storage, the developer may choose between the object-oriented databases from ODI and Versant, and a standard relational database accessed via JDBC. For this review, I've chosen to use a JDBC connection to Oracle 8i.
After retrieving a JMS connection, a session is created through the standard procedure. The developer must specify the acknowledgement option and whether or not the session is transacted. When using transacted connections, no messages are delivered until specific commits are issued from the publishing object. Subsequently, messages aren't acknowledged until specific commits are issued from the message consumers.
JMS destinations may be obtained using either the standard JMS approach or the proprietary option available through SpiritWave. If a developer is using JNDI, as in this review, the standard method must be used to obtain a topic or queue. If, however, an alternative repository contains the destination object, the developer has the choice to use lookup methods on the SpiritWave class appropriate for the object desired. All objects are identified by a logical name. Future releases of SpiritWave will support JNDI.
For the remaining process of transferring messages through the system, creating the message, sending, receiving, and managing the connections, SpiritWave relies on the standard JMS API calls.
SpiritWave provides several enhancements to the messaging system that provides further control and management of items. They include:
- Subscription Listening: Message publishers can determine if topics or queues have been subscribed to prior to publishing a message.
- Connection Inbox: When a subscriber connects to a topic, the raised subscription event's reply To method returns the inbox on the current connection. This may be used to send a unique message to the subscribing client.
- Wildcards: For topic subscribers, wildcards may be used to identify the topics the application should subscribe to.
- Retrieve the Last Message: Spirit- Wave's JMQ driver provides the capability for subscribers to retrieve the last message sent to a topic without subscribing. This can facilitate the initialization processes for the subscribing agent.
Summary
SpiritSoft's SpiritWave provides a tool that allows existing
messaging systems to be leveraged and extended by the JMS API. With
its ties to the major messaging vendor products such as Tibco
Rendezvous and the IBM MQSeries, along with its supplied messaging
system, SpiritWave presents a flexible and reliable framework on
which to build message-oriented applications.
Published January 11, 2002 Reads 17,215
Copyright © 2002 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
More Stories By Brian Barbash
Brian R. Barbash is the product review editor for Web Services Journal. He is a senior consultant and technical architect for Envision Consulting, a unit of IMS Health, providing management consulting and systems integration that focuses on contracting, pricing, and account management in the pharmaceutical industry.
- Big Data in Telecom: The Need for Analytics
- Patterns for Building High Performance Applications
- What Motivates Open Standards in the Cloud?
- What to Expect in 2012: Cloud Computing and Open Source Software
- Will PaaS Finally Bring Open Source Love to the Enterprise?
- Graal, a Dynamic Java Compiler in the Works
- Ten Hot Trends in Cloud Data for 2012
- Cross-Platform Mobile Website Development – a Tool Comparison
- Write Once Run Anywhere or Cross Platform Mobile Development Tools
- Three Buzzwords That Every CIO Hears but One They Should Listen To
- Big Data Highlights from McKinsey: Part 2 - Production, Supply, and Logistics
- Cloud Expo New York: The Java EE 7 Platform - Developing for the Cloud
- Gartner Hype Cycle for Emerging Technologies 2011
- Book Excerpt: Introducing HTML5
- Big Data in Telecom: The Need for Analytics
- Book Excerpt: Java Application Profiling Tips and Tricks
- i-Technology in 2012: Five Industry Predictions
- Patterns for Building High Performance Applications
- Microsoft Tries Hadoop on Azure
- The Next Web Architecture
- Cloud Computing: A Comparison of Computing Models
- Amazon to Fix Some Kindle Fire Problems
- What Motivates Open Standards in the Cloud?
- Big Data Bug Bites GE
- The i-Technology Right Stuff
- The Top 150 Players in Cloud Computing
- Who Are The All-Time Heroes of i-Technology?
- Where Are RIA Technologies Headed in 2008?
- Get the Message
- ESB Myth Busters: 10 Enterprise Service Bus Myths Debunked
- i-Technology Viewpoint: Is Web 2.0 the Global SOA?
- i-Technology Viewpoint: Thinking Outside the VC Box
- i-Technology Viewpoint: When to Leave Your First IT Job
- SOA Web Services Edge Conference Coverage on SYS-CON.TV
- SYS-CON.TV's "SOA Web Services" and "Enterprise Open Source" Programs To Air in December
- Five Reasons Why Web 2.0 Matters




















