JAVA API FOR XML MESSAGING The conventional method for sending and receiving XML documents is not yet well defined. Using custom interfaces and API wrappers is common in many organizations due to a lack of available and practical standards. In order to provide a standard approach to sending and receiving XML messages, the Java Community Process has produced a Java Specification Request called Java API for XML Messaging (JAXM). MESSAGES IN A BOTTLENECK The widespread adoption of XML as the data format of the Internet age has prompted many organizations to jump in feet first. Unfortunately, many of them are not swimming as well as expected. Several organizations have created their own technology and mechanisms for sharing their XML data with the rest of the world, with unpredictable results. The business message has become an atomic set of data that can be shared; this includes invoices, purchase orders, and order confirmations. Due to the rapid adoption of XML as a data format, many companies are still trying to build their XML infrastructure around these business messages, with less than stellar results. JAXM OVERVIEW The Java API for XML Messaging is set to provide a solution that standardizes how companies share XML messages. The format of the messages may be specified by some agreed-upon XML vocabulary, but the transportation of the message is handled by JAXM. JAXM is built on familiar technologies, such as the Simple Object Access Protocol (SOAP). JAXM provides two methods for sending and receiving XML messages. These methods are based upon common synchronous and asynchronous messaging models. A synchronous model uses a request/response approach. This means that when a message is sent, it is processed as a request. The object that makes the request waits (or 'blocks') until the receiver sends a response message in return. The response message is synchronized in the request call. One cannot occur (or succeed) without the other. An asynchronous method uses a one-way model. This means that an object may send a message to a receiver and not wait for a response. If a response is sent back to the original caller, it is sent as a second one-way message. In this way, the request and the response are not synchronized. A message can be sent successfully without receiving any response. In fact, in some instances, a response may not even be necessary. CONNECTIONS JAXM provides two types of connections for sending and receiving messages. All XML messages must be sent using one of the following provider types: SOAPConnection or ProviderConnection. The SOAPConnection allows the sender to transfer a message using the SOAP protocol, while the ProviderConnection uses a 'messaging provider' to assist with message delivery. All connections using SOAPConnection are synchronous. Using the SOAPConnection's call() method, the sender can call another application, send a request to a specific endpoint, and wait for a response. The request and response are synchronized through the SOAPConnection's call() method. The ProviderConnection is asynchronous. Unlike a SOAPConnection, which provides communication between two applications, a ProviderConnection uses a middleman known as a messaging provider, which accepts delivery of a message on behalf of the receiver. A ProviderConnection is more complex than a SOAPConnection because of the messaging provider. Because a ProviderConnection doesn't connect two applications directly, it provides a level of abstraction not available using the SOAPConnection. The ProviderConnection also takes care of holding and resending a message when a recipient is not available, allowing the sending application to continue. A provider can also handle more sophisticated aspects of message handling, such as routing and intermediate destinations. This means that the messaging provider may route an order to the appropriate users for approval, to the inventory system to check stock, and to the fulfillment system to send the order. At each point, the messaging provider is able to send status messages back to the source system. FIND OUT MORE JAXM is a new technology, which will continue to change and add more value to the process of sending and receiving XML messages. Find out more about JAXM download tools, documentation, and tutorials. http://clickthru.online.com/Click?q=0a-ZnICIrrwc4r83ltdwUbiSIvH6sRR SUMMARY Although there are many technologies and approaches available for sending and receiving XML messages, until now there has not been a definable standard that could be used. JAXM provides the technology necessary to create a standard method for transmitting XML messages. Brian Schaffner is a senior consultant for DMR Consulting, a Fujitsu company. He provides architecture, design, and development support for DMR's Telcom360 group. ----------------------------------------