Middleware : “Middleware is software that is used to move data from one program to another, shielding the developer from dependencies on communications protocols, operating systems and hardware platforms.”
Middleware products tend to fall in one of the categories – Message Oriented Middleware, Data connectivity, Remote Procedure Calls, Object Request Brokers and Transaction Monitors.
- MQSeries is a Message Oriented Middleware product from IBM that runs on multiple platforms and enables applications to send messages to other applications. Basically, the sending application PUTs a message on a Queue, and the receiving application GETs the message from the Queue. The sending and receiving applications do not have to be on the same platform, and do not have to be executing at the same time.
- MQSeries takes care of all the storage, logging and communications details required to guarantee delivery of the message to the destination queue.
- In most cases, it will take care of translating the data when the source and destination use different character sets (EBCDIC on MVS vs. ASCII on NT or Unix). All the applications have to do is know the name of the Queue and agree on the meaning of the message.
MQSeries in Mainframe
In today’s mixed technology trend, the data transfer and dependency of mainframe and open systems with each other is very common.
For example, in a telecomm business, telephone numbers can be created and assigned from an open system application whereas still the orders can be logged from legacy applications. In this case, just before assignment of telephone number, legacy online – say IMS DC will send a message with address and other necessary information to the open system application message queue. Open system application will generate the telephone number and write it back to the legacy message queue. The mainframe application can read the queue and gets the telephone number and assigns to the order.
Application programmer life is very simple. He no needs to bother about how these complex connections are established or working across the platforms. MQ and system admin people take care of it. He just needs to know the queue names and how to issue the MQ calls. There are about 13 API calls. They can be grouped in 5 categories. Though there are semantic differences between programming languages, the basic verbs and data structures are the same if you are programming in C on Solaris, or COBOL on OS/390. MQ is directly supported by C, C++, Java, COBOL, Perl and PL/I.