Progress
External Program
Interfaces


Introduction To the SonicMQ Adapter

The Progress SonicMQ Adapter is an adapter broker in the same administration framework as the Progress Explorer and the NameServer (see Figure 13–1). The SonicMQ Adapter works with a 4GL–JMS API to provide access to JMS messaging from 4GL applications. Progress SonicMQ is Progress Software’s implementation of the Java Message Service (JMS) specification. JMS is set of interfaces and associated semantics that define, in a product independent manner, how Java clients can access Message-oriented Middleware (MOM) servers. MOM provides a reliable way for applications to create, send, receive, and read messages in a distributed enterprise system.

With the SonicMQ Adapter, 4GL programmers can use familiar Progress 4GL syntax and mechanisms to write JMS messaging applications, whether the application is GUI, character, AppServer, or WebSpeed. These applications can send messages to and receive messages from applications written in any other language. The integration point is Progress SonicMQ.

The 4GL–JMS API is strongly integrated with the 4GL programming model and style. Progress provides 4GL procedures that interact with a SonicMQ broker for JMS messaging in both domains, the two types of JMS messaging, Publish and Subscribe (Pub/Sub) and Point-to-Point (PTP). These procedures run persistently and represent the JMS connection, session, and Message objects. A 4GL programmer can use the methods in these objects for JMS message delivery, acknowledgement, and recovery.

The SonicMQ Adapter provides access to most SonicMQ features from the Progress 4GL. In a Progress 4GL-to-4GL messaging situation, an application can package 4GL data within standard messages, for example to send a temp table or a table.

With the 4GL–JMS API, all objects are persistent procedures, applications use the Progress 4GL event model, and 4GL applications can extend local publish and subscribe for distributed applications. Applications use the existing Progress 4GL error handling mechanisms to deal with 4GL–JMS errors. Messages are processed when the application is in a WAIT FOR or other IO blocking state. Non-UI applications, such as AppServer processes or batch processes that cannot use WAIT FOR, can use the waitForMessages 4GL–JMS API call, as can all GUI, character, AppServer, WebSpeed, and batch applications.

4GL applications written to take advantage of the 4GL–JMS API can talk with other applications without knowing whether the other application is a 4GL or non-4GL application. Java features are mapped to the Progress 4GL. For example, Java Enumeration Objects map to comma-separated lists in the Progress 4GL.

Figure 13–1: An Example Of the Progress SonicMQ Adapter In Context


Copyright © 2004 Progress Software Corporation
www.progress.com
Voice: (781) 280-4000
Fax: (781) 280-4095