当前位置:Java -> 探索IBM App Connect Enterprise 12.0.12.0

探索IBM App Connect Enterprise 12.0.12.0

我们将探讨IBM App Connect Enterprise 12.0.12.0发布的五项功能,并对每个功能进行高级概述:

  1. 在Discovery Connector消息流节点中使用HTTP代理
  2. 运行时监控事件指定文件位置
  3. Web UI中的路径跟踪
  4. 改进的Java 11支持
  5. 阻止检索存储在保险库中的凭证

在Discovery Connector消息流节点中使用HTTP代理

在过去的几个mod版本中,ACE软件已经扩展了大量新的Discovery Connector消息流节点,通常用于集成第三方SaaS应用程序。当在本地数据中心部署包含Discovery Connector节点的消息流时,一些用户可能会认为在连接到此类公共端点时需要通过HTTP代理。考虑到这一要求,ACE 12.0.12.0提供了四个具有此功能的特定Discovery Connector节点:

  • Microsoft Azure Blob Storage请求节点
  • Amazon S3请求节点
  • Microsoft Entra ID输入节点
  • Microsoft Entra ID请求节点

four specific Discovery Connector nodes with this capability

要在这些消息流节点中与HTTP代理一起使用,Toolkit用户应首先在策略项目中创建一个HTTP代理策略。HTTP代理策略提供了用于寻址HTTP代理的URL(包括主机名和端口)以及用于在连接到代理时引用的凭证名称。

HTTP Proxy

一旦策略被创建并保存,将支持的四个消息流节点中的任一个放入您的流中,然后通过单击“启动连接器发现”按钮来开始配置节点,发现过程将继续进行,但当连接到端点应用程序时,您将在对话框中找到一个名为Proxy name的新可选属性。

proxy name

正如示例所示,该字段用于指定策略项目的名称和包含的HTTP代理策略。单击连接时,此策略将被访问以检索相关的所需连接信息,以便使用代理。代理在发现时使用,并且配置也将持久化到消息流中,并且在数据通过消息流发送时在运行时使用。因此,请记住在将消息流部署到集成服务器时,将HTTP代理策略与消息流一起包含。

运行时监控事件指定文件位置

长期以来,App Connect Enterprise(及其前身产品,如IBM集成总线)使用户能够在消息流中通过特定的任命位置发布监控事件,如通过特定消息流节点的特定命名终端。这些监控事件传统上使用IBM MQ或MQTT协议进行发布,但如果您愿意,也可以将它们写入本地文件。在此mod版本(ACE 12.0.12.0)之前,当将监控事件写入文件时,产品已经使用以下值硬编码了文件路径、文件数量和每个文件的最大大小:

  • 文件路径:<work-dir>/config/common/monitoringEvents
  • 文件数:4
  • 文件大小:25MB

从ACE 12.0.12.0开始,在server.conf.yaml文件中提供了新的选项,允许用户选择自己的值,以便更详细地控制此功能的操作。下面是server.conf.yaml文件中的相关示例部分:

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 /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.


Web UI中的路径跟踪

ACE mod版本12.0.12.0在Web UI中引入了一个新功能,可在生产环境中诊断意外流程行为时提供帮助。该功能的目的(在开启时,因为该功能默认未启用)是总结消息流经过的一组备选路径。在处理复杂流程时,这提供了一种快速深入研究故障排除时的感兴趣区域的方法。对于已启用的消息流,路径分析选项卡提供了一个表格视图,显示最近经过的每个路径的标识符,而“消息计数”列显示沿给定路径传递的消息数量。

demo flow

有三种方式可以启用路径跟踪功能:

  • 修改server.conf.yaml以将PathTracker资源管理器的“enabled”属性设置为“true”,如下所示:
  PathTracker:
    enabled: true # Enable path tracking for all message flows, default is false.


  • 使用mqsichangeproperties命令,将PathTracker资源管理器的“enabled”属性设置为true。例如,对于名为“MyIntegrationNode”的集成节点(拥有的服务器名称为“default”)
 mqsichangeproperties MyIntegrationNode -e default -o PathTracker -n enabled -v true


  • 使用Admin REST API对PathTracker资源管理器的“enabled”属性进行修补,使其变为“true”。例如,对于名为“default”的集成节点的拥有服务器:
curl -v http://localhost:4414/apiv2/servers/default/resource-managers/path-tracker -X PATCH --data "{ \"properties\": { \"enabled\": true} }" -H "Content-Type: application/json"


一旦启用该功能,当消息通过流传播时,它会在内存中存储上下文信息,每当遇到一个新的消息流节点终端时,上下文信息都会更新。出于性能原因,这些信息会以每个线程为基础进行存储。当消息流完成时,这些上下文信息会被转换成已完成路径的表示。在这一点上,每个流的缓存会被查询,以查看该路径是否以前被访问过。如果路径是新的,那么路径将被添加到缓存中,并且消息数量将被递增,添加到该路径的消息列表中。

为了确保缓存不会占用无限量的内存,缓存的大小会被限制为每个流的20个条目,出于类似的原因,消息列表会被限制为每个路径的100个消息ID。如果缓存的大小达到了20个条目的最大值,并且观察到一个新的路径,那么最近最少访问的条目将被逐出缓存,以为新条目腾出位置。消息列表会为每个路径存储最近的100个条目,如果有新消息添加进来,则最老的条目将被从消息列表中逐出。

这对数据应该如何解释有一些影响。首先,路径可以从缓存中掉出,并在以后重新添加到缓存中,因为该路径长时间没有被遍历。在这一点上,它的消息列表将会丢失并且消息计数将被重置,因此消息计数应该被视为路径使用的相对量而不是消息处理的绝对数量。

关于这一新功能的更多详细信息,包括一个完整的工作示例,都在David Crighton最近发布的一篇专门的博文中提供,他是App Connect Enterprise Level 3 Service团队的首席架构师。

改进的Java 11支持

ACE 12.0.12.0延续了我们的使命,即在使用Java 11时使集成服务器的更多功能性能正常运行。您可以为独立的集成服务器创建一个工作目录,然后使用以下命令来配置它使用Java 11。

创建一个工作目录:

mqsicreateworkdir C:\temp\MyWorkDir
mqsicreateworkdir: 复制示例server.config.yaml到工作目录
        1个文件被复制。
成功执行命令。

配置使用Java 11:

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

如果您导航到服务器的工作目录,您将会发现一个名为server.java.yaml的文件已经被创建,它重新定向到产品安装目录中的另一个名为embedded.java.yaml的文件中,该文件指定服务器中应保持禁用的Java功能。对于ACE 12.0.12.0,该文件的内容如下所示:

For ACE 12.0.12.0 the contents of this file

尽管上述文件显示,仍然有一些功能在运行Java 11的服务器上尚不受支持,但自上一个修订版本以来,运行Java 11的服务器在支持包含CICSRequest节点、IMSRequest节点、Mapping节点和ODMRules节点的消息流部署方面已经取得了显著进展。我们打算在未来的版本中继续增加在Java 11下执行的功能的支持。

阻止从保险箱中检索凭据

ACE 12.0.12.0引入了App Connect Enterprise保险箱技术的一个小型增强。App Connect Enterprise保险箱可以用于对凭证进行对称加密和存储,然后可以用来从消息流中访问受保护的资源和端点。在此增强之前,具有ACE在其运行的机器上的本地命令控制台访问权限,并且也具有保险箱密钥的产品管理员,如果他们想要从保险箱中检索命名记录并在屏幕上显示它们,就可以执行mqsivault命令并带有一个解码选项。考虑以下示例。

创建一个外部目录保险箱:

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

向外部目录保险箱添加凭据:

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

从保险箱中检索凭据并再次显示:

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

然后凭据将这样显示:

命名空间:凭据
记录:ftp/MyFTPIdentity
{"name":"MyFTPIdentity","type":"ftp","properties":{"authType":"basic","password":"myftppassword","username":"ben"}}
BIP8071I: 命令已成功完成。

ACE的一些用户可能不希望系统管理员拥有如此广泛的权限, 因此从最新的12.0.12.0版本开始,在创建机密库时可以指定--vault-options no-export,这将阻止机密库中凭据的检索、显示和导出。请注意,此请求只能在创建机密库时指定,并且无法在创建机密库后更改选项。以下是一个示例:

创建一个外部目录机密库,这次使用--vault-options no-export

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

像以前一样向外部目录机密库添加凭据:

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

尝试从机密库中检索并再次显示凭据将不起作用:

Namespace: 凭据
记录: ftp/MyFTPIdentity
BIP15178E: 由于机密库选项的原因,无法显示该机密库的条目。
该机密库使用选项以阻止其条目的解码。

总结

IBM应用连接企业不断发展,以支持专业人士完成其集成需求。通过深入介绍一些最新的产品功能和概念,本文旨在帮助您更好地了解如何利用这些功能解决业务问题。

推荐阅读: ChatGpt是什么?

本文链接: 探索IBM App Connect Enterprise 12.0.12.0