IBM webMethods Hybrid Integration

IBM webMethods Hybrid Integration

Join this online group to communicate across IBM product users and experts by sharing advice and best practices with peers and staying up to date regarding product enhancements.

 View Only

Tech Bytes IWHI: Hybrid Messaging in Develop Anywhere and Deploy anywhere webMethods.io Integration 

10 hours ago

Introduction 

This article demonstrates how to implement hybrid messaging on the cloud using existing on-premises assets. 

 

Pre-requisites 

  • A webMethods.io Integration tenant.
  • Administrator access to the webMethods.io Integration platform  
  • create edge runtimes
  •  version control configured  
  • Universal Messaging server  

 

Audience 

This article is intended for Integration architects and developers working with  webMethods. 

 

Use case 

The client has migrated from a self-hosted setup to a cloud platform. Their application uses a messaging solution, and the development team now aims to orchestrate Deploy Anywhere connections to support business needs. 

 

Existing setup 

 

 

Picture

To be Setup 

 

Picture 

 

 

  • When the UM server is hosted on the cloud, direct cloud connectivity is available. In this setup, assets can run on Design Runtime (DRT) and submit requests directly to the UM server. 
  • If the UM server is hosted on a private cloud, assets must run on Edge Runtime (ERT) within the same network to ensure secure and reliable communication. 

 

Steps to be followed 
Publishing the message to UM server 
  • Pull the code from external repository 
  • Orchestrate the flow using flow service or workflow and invoke the package services 
  • Configure JNDI and JMS connections on DRT (design runtime) 
  • Enable the connections 

 

Subscribe the message from UM server 
  • Configure the JMS connection 
  • Create the JMS trigger 
  • Create the subscriber flow service 

 

 

Pull the code from external repository 
  • Configure the version control on your tenant . 
  • Pull the assets under the packages tab. 

 

Refer the below link for more details 

 

 

Orchestrate the flow using flow service or workflow and invoke the package services 

  • In our case we are using the flow service therefore we have created the orchestration inside the flow service and invoked the packages service.
  • As my UM server is accessible from cloud therefore, we run the package service on DRT (design runtime/ cloud design time). 

 

Picture 

 

Refer below link how to orchestrate the package services. 

Configure JNDI and JMS connections on DRT (design runtime) 

  • When we talk about configuration we need to configure  
    •   JNDI configurations
    • JMS configurations 

JNDI configurations 

  •  In our case we need to supply provider URL, service principal and Security credentials.

 

Picture 

JNDI API’s 

 

  • We can update the configuration using public API exposed  

          GET JNDI Details

           METHOD: GET

          URL: https://<TenantName>/apis/v1/rest/control-plane/runtimes/<runtimeName>/configurations/jndi/<JNDIName> 

In our case  

Runtime: default (we are using design runtime) 

Picture 

 

  • Now we can use the response of the above get call to update the property of JNDI. If you have the property key available, then we can skip this step. 

 

METHOD: PUT 

In our case 

Runtime: default (we are using design runtime) 

Update Runtime: true (sync the changes to the runtime) 

 

Request Sample : 

{ "assetId": "DEFAULT_IS_JNDI_PROVIDER" 

 

"type": "jndi", 

"properties" 

 

{ "propertyKey": "description", 

"value": "updates from API" } 

], 

"enableConnection": true  

} 

 

 

 

Picture 

 

JMS configurations 

The way we have updated the JNDI configurations in the similar fashion we can update the JMS configurations as well. 

Picture 

 

Picture 

 

 

Picture 

Automate using API’s 

 

GET JNDI Details  

METHOD: GET 

 

URL: https://<TenantName>/apis/v1/rest/control-plane/runtimes/<runtimeName>/configurations/jndi/<JMSConnectionName> 

In our case  

JMS connection name: DEFAULT_IS_JMS_CONNECTION (using default connection with updated connection details) 

Runtime: default (we are using design runtime) 

 

 

Picture 

 

 

Now we can use the response of the above  API invoke to update the property of JNDI. If you have the property key available, then we can skip this step. 

 

METHOD: PUT 

 URL: https://<tenantName>/apis/v1/rest/control-plane/runtimes/<RunTimeName>/configurations/jms/<JMS connection Name>?updateRuntime=true 

In our case 

JMS connection name: DEFAULT_IS_JMS_CONNECTION 

Runtime: default (we are using design runtime) 

 

 

Picture 

Subscribe the message from UM server  

  • So far, we have done the configuration at publisher end which mean that how message will be published it to UM server. Now let's set up the subscriber. 

     Note: If you have existing subscriber set up then you can skip this section. 

 

Configure the JMS connection 

  • In our case we will set up the JMS connection on webMethods.io Integration tenant. 

  • Under the connection tab selection JMS connector and configure it with UM server details. 

 

Picture 

 

 

 

 

 

Picture 

Picture 

 

 

Create the JMS trigger 

  •  While configuring the JMS trigger select the JMS connection created in previous step. Provide the queue name and subscriber service. 

 

 

Picture 

 

Subscriber service 

  • For subscribing the message, the flow service should have input has JMS message body. 
  • Once the service gets invoked, we can extract the actual payload from the JMS message and use it for further processing. 

 

Picture 

 

End to end Testing 

Picture 

 

 

 

Picture 

Statistics
0 Favorited
6 Views
0 Files
0 Shares
0 Downloads

Comments

9 hours ago

Great breakdown on hybrid messaging and how it can support flexible deployments. For those who also work on personalization projects, I recently came across a helpful tool for experimenting with creative bio ideas that can save time and spark inspiration. It’s always interesting to see how different solutions, whether in tech or design, can simplify workflows and boost efficiency.