JMS and XML

JMS and XML

by TA Flores
02/15/2001

Businesses have spent years, even decades, developing their legacy systems. Rather than throw the baby out with the bathwater many companies continue to leverage their existing systems and continue to add functionality. Business to business communications has been the cornerstone of many IT projects. Until JMS, most, if not all, B2B data interchange used some form of EDI.

XML is a non-proprietary way to represent data. But it's just a standard of data representation. As such it lacks the ability to move over the "wire". So the question becomes how to transport XML documents. JMS is an answer. It facilitates the transport of XML documents.

JMS provides a set of interfaces for sending and receiving messages, providing a means to create loosely-coupled communication systems. JMS not only answers the XML transport question, but it does so as a Java API, thus shortening the learning curve. Previous attempts at establishing large-scale B2B communications have failed at the point which one company attempted to conform to another company's data formats. With XML the old concerns about whether your data adheres to your business partner's conventions are reduced.

JMS supports two forms of messaging: point-to-point and publish-and-subscribe. Either may be implemented as asynchronous or synchronous message transmissions. Publish-and-subscribe permits messages to be broadcast to multiple subscribers and is an excellent mechanism for many-to-many conversations. Point-to-point messaging is useful when conversations are one-to-one, and in conversations in which the receiver processes a given message just once. Receivers register their interest in those messages by subscribing to a topic or by listening to a queue. Due to the loose coupling of sender and receiver, they may have no direct knowledge of one another beyond their messaging interactions.

The ability to chose whether messages will be sent and received synchronously or asynchronously is important for the management of vital resources like database access and network bandwidth. Quality of service may be addressed by tweaking the way message queues are managed. Although the JMS specification does not require prioritized message ordering , a best effort should be made to deliver messages marked for an expedited delivery ahead of messages that are marked for normal delivery.

JMS supports two modes of message delivery. The first, "once and only once," is the most restrictive delivery mode and ensures that regardless of failure conditions a message is guaranteed to get to its intended destination. The second, "at most once" -- the least restrictive delivery mode -- allows a message to be lost due to some failure. Messages may also be specified as a transaction. A transaction message will be organized into atomic units consisting of an input message stream and an output message stream. When the transaction commits the input will be acknowledged and associated output will be sent.

An XML document may be sent by way of the text message type. The combination of a messaging service in conjunction with XML data definition is becoming the foremost choice for B2B data exchange. The significance of this exchange has given rise to additional specifications like those provided by RosettaNet, ebXML, an BizTalk which are working to provide XML with the transport mechanism it lacks.

TA Flores is an independent enteprise Java developer.


Return to ONJava.com.

Close    To Top
  • Prev Article-Java:
  • Next Article-Java:
  • Now: Tutorial for Web and Software Design > Java > Java EE > Java Content
    Photoshop Tutorial
     

    Special Effect

      3D Effect
      Photoshop Articles
    Programming Tutorial
     

    C/C++ Tutorial

      Visual Basic
      C# Tutorial
    Database Tutorial
     

    MySQL Tutorial

      MS SQL Tutorial
      Oracle Tutorial
    Geek Tutorial
     

    Blogging Tutorial

      RSS Tutorial
      Podcasting Tutorial
    Graphic Design Tutorial
      Coreldraw Tutorial
      Illustrator Tutorial
      3D Tutorials
    Webmaster Articles
     

    Domain Service

      Web Hosting
      Site Promotion
    Java Tutorial/ Articles
     

    Java Servlets

      JavaEE Tutorial
     

    JavaBeans Tutorial

    XML Tutorial/ Articles
     

    XML Style

      AJAX Tutorial
      XML Mobile
    Flash Tutorial/ Articles
     

    Flash Video

      Action Script
      Flash Articles
    OS Tutorial/ Articles
      Linux Tutorial
      Symbian Tutorial
      MacOS Tutorial
    Personal Tech
      Hardware Tutorial
      Software Tutorial
      Online Auction