'

Java gets Web Services you can rely on

Japanese tech giants have released an open-source message delivery service which allows Web services to communicate without the risk of losing data.

Fujitsu, Hitachi and NEC have released an open-source message delivery service for Web services. Reliable Messaging for Grid Services (RM4GS) implements the WS-Reliability standard, and allows Web services to communicate without the risk of losing data.

The Java source code for RM4GS is available for download from the website of the Japanese IT Promotion Agency. The code is released under the Japan Businessgrid License, which permits embedding in other applications.

SOAP, the network protocol used in Web Services, doesn't provide any quality of service guarantees so an extra layer is needed in systems which need guaranteed delivery of messages. WS-Reliability is an OASIS standard for reliable message delivery between web services. Version 1.1 of the standard was ratified earlier this month, and the companies behind RM4GS were heavily involved in writing the standard. The standard covers what facilities a reliable messaging service should provide and the protocol used.

As well as providing reliable communications between web services, RM4GS allows asynchronous communication, so that the receiving service doesn't need to be running when the message is sent. The message delivery service will queue the message until it can be delivered. This means that one part of a composite application can continue running even if other parts aren't available.

RM4GS is written in Pure Java, and can work with Message Driven Beans in an EJB application. RM4GS is implemented as a resource adapter, as defined in the J2EE Connector Architecture specification.

Message-passing isn't a new concept, and has been used to create loosely coupled applications for some time. However, until the advent of the WS-Reliability standard, web service creators either had to build their own, non-standard reliability mechanism or risk losing data if a problem occurred during a request.