App Connect

 View Only

Explore the new features in App Connect Enterprise 12.0.12.0

By Ben Thompson posted Sun March 31, 2024 04:08 PM

  
iStock_000020343379_XXXLarge


We aim to provide regular quarterly mod releases for ACE 12, which contain both new features and regular maintenance:

  • IBM App Connect Enterprise 12.0.1.0 was released in May 2021.
  • IBM App Connect Enterprise 12.0.2.0 was released in September 2021 - more information here
  • IBM App Connect Enterprise 12.0.3.0 was released in December 2021 - more information here
  • IBM App Connect Enterprise 12.0.4.0 was released in March 2022 - more information here
  • IBM App Connect Enterprise 12.0.5.0 was released in June 2022 - more information here
  • IBM App Connect Enterprise 12.0.6.0 was released in September 2022 - more information here
  • IBM App Connect Enterprise 12.0.7.0 was released in November 2022 - more information here
  • IBM App Connect Enterprise 12.0.8.0 was released in March 2023 - more information here
  • IBM App Connect Enterprise 12.0.9.0 was released in June 2023 - more information here
  • IBM App Connect Enterprise 12.0.10.0 was released in October 2023 - more information here
  • IBM App Connect Enterprise 12.0.11.0 was released in December 2023 - more information here
  • IBM App Connect Enterprise 12.0.12.0 has just been released in March 2024 - more information below.

This blog post summarizes all the latest and greatest capabilities which were made available in IBM App Connect Enterprise 12.0.12.0:

  • 12 New Discovery Request Message Flow Nodes:
    • Google Analytics, Google Chat, Google Groups, Google Tasks, IBM FileNet Content Manager, IBM Food Trust, IBM Sterling Inventory Visibility, IBM Watson Discovery, IBM Weather Company Data Limited Edition, LDAP, Salesforce Commerce Cloud Digital Data, Yapily
  • 4 New Discovery Input Message Flow Nodes:
    • GitLab, LDAP, Microsoft Entra ID, Salesforce Commerce Cloud Digital Data
  • Using an HTTP Proxy with the Discovery Connector message flow nodes
  • Runtime monitoring events specify file location
  • Path Tracking in the WebUI
  • Improved Java 11 support
  • Blocking the retrieval of credentials stored in a vault

12 New Discovery Request Message Flow Nodes

Continuing our mission to rapidly expand the available Toolkit message flow nodes for easy connection to third party applications, this quarter ACE 12.0.12.0 has an expanded Toolkit palette offering an additional set of 12 new Discovery Request Message Flow nodes:

  • Google Analytics Request node: Use the Google Analytics Request to connect to Google Analytics and issue requests to perform actions on objects such as custom data sources, custom metrics, filters, account user links, and goals.
  • Google Chat Request node: Use the Google Chat Request to connect to Google Chat and issue requests to perform actions on objects such as members, messages, and spaces.
  • Google Groups Request node: Use the Google Groups Request to connect to Google Groups and issue requests to perform actions on objects such as groups, group members, and group aliases.
  • Google Tasks Request node: Use the Google Tasks Request to connect to Google Tasks and issue requests to perform actions on objects such as tasks and task lists.
  • IBM FileNet Content Manager Request node: Use the IBM FileNet Content Manager Request to connect to IBM FileNet Content Manager and issue requests to perform actions on objects such as documents and folders.
  • IBM Food Trust Request node: Use the IBM Food Trust Request to connect to IBM Food Trust and issue requests to perform actions on objects such as certificates, basic party registrations, EPCIS aggregation events, EPCIS object events, or purchase orders.
  • IBM Sterling Inventory Visibility Request node: Use the IBM Sterling Inventory Visibility Request to connect to IBM Sterling Inventory Visibility and issue requests to perform actions on objects such as demands, distribution groups, jobs, safety stocks, and supplies.
  • IBM Watson Discovery Request node: Use the IBM Watson Discovery Request to connect to IBM Watson Discovery and issue requests to create, retrieve, update, delete, or add documents.
  • IBM Weather Company Data Limited Edition Request node: Use the IBM Weather Company Data Limited Edition Request to connect
  • LDAP Request node: Use the LDAP Request to connect
  • Salesforce Commerce Cloud Digital Data Request node: Use the Salesforce Commerce Cloud Digital Data Request to connect
  • Yapily Request node: Use the Yapily Request to connect to Yapily which provides a single API interface that connects you to all banks for payments and data access.

Each new type of connector also has a corresponding new policy type, which helps Toolkit users define configuration properties for easy connection to the applications. These policies also link to credential information that can be encrypted and stored in an ACE vault, enabling the ACE runtime to safely and securely connect to your applications.

4 New Discovery Input Message Flow Nodes

From ACE 12.0.12.0 the Toolkit palette has been expanded to include 4 new Discovery Input Message Flow nodes:

  • GitLab Input node: Use the GitLab Input node to trigger a message flow and receive input from GitLab. For example, you can use the GitLab Input node to monitor GitLab for new issues.
  • LDAP Input node: Use the LDAP Input node to trigger a message flow and receive input from LDAP. For example, you can use the LDAP Input node to monitor LDAP for changes to devices or entries representing names or personnel.
  • Microsoft Entra ID Input node: Use the Microsoft Entra ID Input node to trigger a message flow and receive input from Microsoft Entra ID. For example, you can use the Microsoft Entra ID Input node to monitor Microsoft Entra ID for new users.
  • Salesforce Commerce Cloud Digital Data Input node: Use the Salesforce Commerce Cloud Digital Data Input node to trigger a message flow and receive input from Salesforce Commerce Cloud Digital Data. For example, you can use the Salesforce Commerce Cloud Digital Data Input node to monitor Salesforce Commerce Cloud Digital Data for new customers.

Using an HTTP Proxy with the Discovery Connector message flow nodes

For the last several mod releases, ACE software has been expanded with large numbers of new Discovery Connector message flow nodes which are typically used when integrating with third party SaaS applications. When deploying message flows containing Discovery Connector nodes within an on premises data center, for some users it might be considered necessary to go through an HTTP proxy when connecting to such public endpoints. With this requirement in mind, ACE 12.0.12.0 provides four specific Discovery Connector nodes with this capability:

  • Microsoft Azure Blob Storage Request node
  • Amazon S3 Request node
  • Microsoft Entra ID Input node
  • Microsoft Entra ID Request node

To use an HTTP Proxy in conjunction with these message flow nodes, a Toolkit user should start by creating an HTTP Proxy policy within a policy project. The HTTP Proxy policy provides a URL (with hostname and port) for addressing the HTTP Proxy, and a Credential Name which is used to reference the credential to be used when connecting to the proxy.
Once the policy has been created and saved, and having placed one of the four supported message flow nodes in to your flow, you should then start configuring the node in the usual way by clicking the Launch Connector Discovery button. The discovery process will continue as normal (selections for a policy project and the vault in which credentials will be stored), but when it comes to connecting to the endpoint application, you will find a new optional property in the dialog named Proxy name, as shown below.
As shown in the example, this field is used to specify the name of the policy project and the HTTP Proxy Policy it contains. When clicking connect, this policy will be accessed to retrieve the relevant required connection information in order to use the proxy. The proxy will be used both at discovery time, and the configuration will also be persisted into the message flow and used at runtime when data is sent through the message flow. For this reason, remember to include the HTTPProxy policy alongside your message flow when deploying to an integration server.

Runtime monitoring events specify file location

For a long time, App Connect Enterprise (and its predecessor products of different names such as IBM Integration Bus) have enabled users to publish monitoring events as messages pass through particular nominated locations in a message flow, such as from particular named terminals of particular message flow nodes. Thes monitoring events have traditionally been published using IBM MQ or the MQTT protocol, but they can also be written to a local file if you prefer. Until this mod release (ACE 12.0.12.0) when writing monitoring events to a file, the product has hardcoded the file path, number of files and maximum size of each file using the following values:

  • File Path: <work-dir>/config/common/monitoringEvents
  • NumberOfFiles: 4
  • SizeOfFile: 25MB

Starting from ACE 12.0.12.0 new options have been provided in the server.conf.yaml file which allow a user to select their own values to enable more detailed control of how this feature operates. Shown below is a relevant example stanza from the server.conf.yaml file:

Events:
BusinessEvents: # Monitoring events
    File:
     enabled: true          # Set true or false, default false
     outputFormat: 'json'   # Set comma separated list of one or more of : json,xml. Defaults to 'json'
     #filePath: ''          # If this is set to '' then the default path is <work-dir>/config/common/monitoringEvents.
     #numberOfFiles: 8     # The maximum number of files that monitoring event file writing can rotate through.
     #sizeOfFile: 50        # The maximum size in MB of a single file that a monitoring file can use before rotating to the next file.

Path Tracking in the WebUI

ACE mod release 12.0.12.0 introduces a new feature in the Web UI which can help when diagnosing unexpected flow behaviour in production environments. The purpose of the feature (when switched on, as the capability is not enabled by default) is to summarise the set of alternate paths which have been traversed by messages passing through a message flow. When working with complex flows, this provides a method of quickly drilling down in to areas of interest when troubleshooting.  For an enabled message flow, the Path analysis tab carries a tabular view showing identifiers for each path which has been recently traversed, and the Message count column shows the number of messages which have followed the given path.

There are three ways in which you can switch on the Path Tracking feature:

  • Modify the server.conf.yaml to set the "enabled" property of the PathTracker Resource Manager to "true", as shown below:
  PathTracker:
    enabled: true # Enable path tracking for all message flows, default is false.

  • Use the mqsichangeproperties command to set the "enabled" property of the PathTracker Resource Manager to true. For example for an integration node (named "MyIntegrationNode") owned server named "default"
 mqsichangeproperties MyIntegrationNode -e default -o PathTracker -n enabled -v true

  • Use the Admin REST API to patch the "enabled" property of the PathTracker Resource Manager to "true". For example for an integration node owned server named "default":
curl -v http://localhost:4414/apiv2/servers/default/resource-managers/path-tracker -X PATCH --data "{ \"properties\": { \"enabled\": true} }" -H "Content-Type: application/json"

Once the feature is enabled, as a message is propagated through the flow it stores context information in memory which is updated each time a new message flow node terminal is encountered. For performance reasons this is stored on a per thread basis.  When the message flow completes this context information is converted into a completed path representation. At this point a per-flow cache is interrogated to see if this path has been seen before. If the path is new then the path will be added to the cache and the message number will be incremented, adding to the message list for the path in question.

In order to ensure that the cache does not consume an unbounded amount of memory, the size of the cache is limited to 20 entries per flow and for similar reasons the message list is limited to 100 message IDs per path.  Should the size of the cache reach the maximum 20 entries, and a new path be observed, then the entry which was accessed least recently is evicted from the cache in order to make room for the new entry. The message list stored the most recent 100 entries for each path, if a new message is added the oldest entry is evicted from the message list.

This has a few consequences for how the data should be interpreted. Firstly it is possible for a path to drop out of the cache and then be added back to the cache at a later time because that path hasn't been traversed for a long time. At this point its message list will have been lost and message count reset, so the message counts should be viewed as a relative measure of path usage rather than an absolute number of messages processed. 

More detail on this exciting new feature including a full worked example is provided in a dedicated blog entry which was recently published by David Crighton, Lead Architect for the App Connect Enterprise Level 3 Service team.

Improved Java 11 Support

ACE 12.0.12.0 continues our mission to enable more functionality of the integration server to work when using Java 11. You can create a work direcory for an independent integration server and then configure it to use Java 11 using the following commands.

Create a working directory:

mqsicreateworkdir C:\temp\MyWorkDir
mqsicreateworkdir: Copying sample server.config.yaml to work directory
        1 file(s) copied.
Successful command completion.

Configure to use Java 11:

ibmint specify jre --work-directory C:\temp\MyWorkDir --version 11

If you navigate to the work directory of the server, you will find a server.java.yaml file will have been created which redirects to another file named embedded.java.yaml in the product's installation directory which specifies which java functionalities should remain disabled for the server. For ACE 12.0.12.0 the contents of this file are as shown below:

Whilst the file above shows that there are still several features which are not yet supported in servers that run under Java 11, there has been significant progress since the last mod release, with servers running Java 11 now supporting the deployment of message flows containing instances of the CICSRequest node, IMSRequest node, Mapping node and ODMRules node. We intend to continue increasing the features supportive of execution under Java 11 in future releases.

Blocking the retrieval of credentials stored in a vault

ACE 12.0.12.0 introduces a small enhancement to the App Connect Enterprise vault technology. An App Connect Enterprise vault can be used to symetrically encrypt and store credentials, which can then be used to access secured resources and endpoints from a message flow. Prior to this enhancement, a product administrator with local command console access on the machine where ACE is running, who is also in possession of the vault key, could execute the mqsivault command with a decode option if they wanted to retrieve named records from the vault and have them displayed on screen. Consider the following example.

Create an external directory vault:

mqsivault --ext-vault-dir C:\temp\MyExtDirVault1 --ext-vault-key SuperSecret123 --create

Add a credential to the external directory vault:

mqsicredentials --ext-vault-dir C:\temp\MyExtDirVault1 --ext-vault-key SuperSecret123 --create --credential-type ftp --credential-name MyFTPIdentity --username ben --password myftppassword

Retrieve the credential from the vault and display it again:

mqsivault --ext-vault-dir C:\temp\MyExtDirVault1 --ext-vault-key SuperSecret123 --decode credentials/ftp/MyFTPIdentity

... and the credentials will be displayed like this:

Namespace: credentials
Record: ftp/MyFTPIdentity
{"name":"MyFTPIdentity","type":"ftp","properties":{"authType":"basic","password":"myftppassword","username":"ben"}}
BIP8071I: Successful command completion.

Some users of ACE might not want the system administrator to have such wide ranging powers, so from this latest mod release 12.0.12.0, when creating a vault you can specify --vault-options no-export and this will prevent the retrieval, display and export of the credentials in a vault. Note that this request can only be specified when the vault is being created, and you cannot change options after the vault has been created. Compare the following example with the one above:

Create an external directory vault but this time use  --vault-options no-export:

mqsivault --ext-vault-dir C:\temp\MyExtDirVault2 --ext-vault-key SuperSecret123 --create --vault-options no-export

Add a credential to the external directory vault just like before:

mqsicredentials --ext-vault-dir C:\temp\MyExtDirVault2 --ext-vault-key SuperSecret123 --create --credential-type ftp --credential-name MyFTPIdentity --username ben --password myftppassword

Attempts to retrieve the credential from the vault and display it again will not work:

Namespace: credentials
Record: ftp/MyFTPIdentity
BIP15178E: Entries from this vault cannot be displayed due to vault options.
The vault was created with an option to prevent decode of its entries.

0 comments
110 views

Permalink