Progress Rest Service--> IBM MQ

Posted by shivaprasath143 on 23-Aug-2014 22:56

Hello,

OE 11.3.2
Windows
I would like to know how we can integrate OpenEdge with IBM MQ using RESTful service? Basically, I want to post messages from OpenEdge to MQ via RESTful service.
OpenEdge --> RESTful Service --> "Hello World" --> IBM Websphere MQ
Any response on this is much appreciated!
--Shiva Prasath

Posted by Bill Wood on 24-Aug-2014 06:31

There are two related posts with my suggestions below:

  • https://community.progress.com/technicalusers/f/19/t/12055.aspx (Sending Message to WebSphereMQ)
  • https://community.progress.com/technicalusers/f/19/t/11853.aspx (OE to IBM WebSphereMQ)

The real trick is setting up either an intermediary, or servlet on some webserver that acts as the REST Endpoint.   You can write this yourself, or use something like Apache Camel.  IBM has some intergration technologies in WebSphere as well to create REST or SOAP services (I have not found any direct REST/SOAP in WebSphereMQ directly.... but I am not a WebSphere expert, by any means.   I have mostly dealt with alternative Message Buses).    I also believe you can use the OpenEdge SonicMQ adapter which has a bridge to WebSphere via Aurea SonicESB.... but that is a direct JMS-JMS bridge and more than you may need.)

For outbound REST to the endpoint, you would have to use OpenEdge sockets (There are some open source libraries on OpenEdge that add a REST layer.)  Better would be to not use REST, but SOAP instead and then use the OpenEdge SOAP web service capability to call the SOAP endpoint.

But the real decision is the first one.... what technology you have to implement the SOAP/REST endpoint that will be the gateway to WebSphere MQ.

Posted by Bill Wood on 08-Mar-2016 12:42

This is a late answer to an old question, but starting in OpenEdge 11.5.1,  Progress OpenEdge provides a generic Java Message Service (JMS) adapter for messaging. This generic JMS adapter can operate with any JMS-compliant vendor, including SonicMQ, IBM WebSphereMQ, and ActiveMQ.    

You can get more information in the product documentation, or look at the whitepaper on Community at

 community.progress.com/.../1986

Further updates happened in 11.6.1 to support all modes: Client Connect, Broker Connect, and Server Connect.

All Replies

Posted by Bill Wood on 24-Aug-2014 06:31

There are two related posts with my suggestions below:

  • https://community.progress.com/technicalusers/f/19/t/12055.aspx (Sending Message to WebSphereMQ)
  • https://community.progress.com/technicalusers/f/19/t/11853.aspx (OE to IBM WebSphereMQ)

The real trick is setting up either an intermediary, or servlet on some webserver that acts as the REST Endpoint.   You can write this yourself, or use something like Apache Camel.  IBM has some intergration technologies in WebSphere as well to create REST or SOAP services (I have not found any direct REST/SOAP in WebSphereMQ directly.... but I am not a WebSphere expert, by any means.   I have mostly dealt with alternative Message Buses).    I also believe you can use the OpenEdge SonicMQ adapter which has a bridge to WebSphere via Aurea SonicESB.... but that is a direct JMS-JMS bridge and more than you may need.)

For outbound REST to the endpoint, you would have to use OpenEdge sockets (There are some open source libraries on OpenEdge that add a REST layer.)  Better would be to not use REST, but SOAP instead and then use the OpenEdge SOAP web service capability to call the SOAP endpoint.

But the real decision is the first one.... what technology you have to implement the SOAP/REST endpoint that will be the gateway to WebSphere MQ.

Posted by Bill Wood on 24-Aug-2014 09:34

WRT...

>>   Basically, I want to post messages from OpenEdge to MQ...

I do want to ask if this is indeed all you want to do.  Generally it is easier to only send messages, but usually, when people want MQ connectivity (any provider), they also want to receive messages.

I would also look at these components if this is what you want:  www-01.ibm.com/.../docview.wss  (IBM WebSphereMQ Clients).  This contains information on what you need to me an MQ client.  The key points are:

- There is no need for a full WebSphere MQ implementation on the client machine.

- Hardware requirements on the client system are reduced.

- System administration requirements are reduced.

- A WebSphere MQ application, running on a client can connect to multiple queue managers on different systems.

- Alternative channels using different transmission protocols may be used.

- You can build your connectivity around various programming languages including C, C++, .NET (Windows systems only) and Java

I would look at the .NET client if you are on windows and using that in OpenEdge (but only for sending!).   You can also build a little java or c program and pipe requests into it from ABL.

Finally, if you want a more complex connectivity, look at using the STOMP libraries and STOMP Connect that I mentioned in the other posts (see above),

Posted by Bill Wood on 08-Mar-2016 12:42

This is a late answer to an old question, but starting in OpenEdge 11.5.1,  Progress OpenEdge provides a generic Java Message Service (JMS) adapter for messaging. This generic JMS adapter can operate with any JMS-compliant vendor, including SonicMQ, IBM WebSphereMQ, and ActiveMQ.    

You can get more information in the product documentation, or look at the whitepaper on Community at

 community.progress.com/.../1986

Further updates happened in 11.6.1 to support all modes: Client Connect, Broker Connect, and Server Connect.

This thread is closed