A new breed of communications software is emerging that will be critical to Java's success in enterprise nets. These products, such as Progress Software's new SonicMQ, let Java applications reliably share information with each other and with existing applications on corporate networks.
Such program-to-program messaging products will become increasingly important as corporate IT groups build electronic-commerce systems, which typically consist of a loose federation of applications that communicate over the Internet.
"Traditionally, we'd create point-to-point connections between specific applications using Java's Remote Method Invocation [RMI] or with [the Common Object Request Broker Architecture]," said Peter Chang, chief technology officer at Pipeline Software, a San Jose consulting company. "But point-to-point connections on the Web are not reliable. So we needed a different communications infrastructure to do that."
That's where the Java Messaging Service (JMS) comes in. JMS describes how to create reliable message queues, which are like bulletproof safes for storing packages that contain transaction or other information, and the procedures used by the queues to exchange these packages. If a "safe" at another application can't be accessed because it's too full with other messages or because the network isn't available, the message remains in protective storage until a new connection is made.
Vendors use JMS like a cookbook, to create programs used for building the queues and connections.
Sun announced its JMS offering, Java Message Queue, in June. A host of middleware vendors, such as BEA Systems and IBM, also plan to add JMS offerings to their product lines.
But Progress, which will begin beta testing SonicMQ early this month, may be the first established software vendor other than Sun to deliver a JMS-based product. According to Progress, delivering such a product has involved a huge engineering effort.
"It's very unlike RMI or other Java APIs," said George Kassabgi, a Progress vice president. "With those APIs, the application developer can figure out what to do and create an implementation pretty much on his own. This is absolutely not the case with JMS."
SonicMQ, written entirely in Java, lets users cluster key processes, such as message brokering, for maximum performance. It also includes a message type that can work with data packaged in XML, which is fast becoming a standard format for exchanging data. SonicMQ also includes a graphical administration program, which is accessible from any Java Web browser. A developer edition, for building test applications, will be available free on the Web. An enterprise edition will run on Windows NT and various Unix servers. Eventually, Progress will package SonicMQ with its Apptivity Java applications server.
Pipeline's Chang has found few JMS products on the market and is evaluating Progress' software for use in a Web-based business-to-business application. He needs a Java-based messaging product that is scalable, reliable and able to use the Web's http protocol to tunnel securely through corporate firewalls.
So far, Chang likes what he sees in SonicMQ. But he's being cautious about JMS given that the technology is immature and that different vendors could end up implementing it in different ways. If vendors' different JMS products can't work with one another and messages sent from one server can't be read by another, application users could suffer, Chang said.