开发集成内容

学习目标

  • 说明创建集成流的开发周期。

在本课中,我们将涵盖以下主题:

  • 使用 Cloud Integration 进行开发

  • 技术实现

  • 创建集成流的开发周期

  • 集成流的版本管理

  • 通过真实部署和调试集成流进行开发者测试

  • 通过模拟集成和组件进行开发者测试

使用 Cloud Integration 进行开发

云集成是一项订阅服务,这意味着除其他事项外,流程步骤的图形化建模和处理都在你注册该服务的子账户上进行。使用者子账户和提供者子账户位于同一区域,例如 eu10(法兰克福),通信直接通过浏览器进行。因此,浏览器中显示的所有内容都以 HTML 数据流的形式传输。下面给出了不同层级的 URL,在所有情况下,我们都位于 eu10 区域。云集成的 URL 以你的子账户子域开头,后接特定域和上下文路径。

注意

显示的 URL 仅为用于培训目的的示例 URL。它们不是有效或可用的链接。

  • 你的子账户 URL(编号 1):https://emea.cockpit.btp.cloud.sap

  • Integration Suite 的 URL(编号 2):https://.integrationsuite.cfapps.eu10-003.hana.ondemand.com/shell/home

  • Cloud Integration 的 URL(编号 2):https://.integrationsuite.cfapps.eu10-003.hana.ondemand.com/shell/design

在实际操作中,这意味着:

  • 所有可用的能力都通过浏览器使用。

  • 呈现方式由浏览器决定。因此 SAP 建议使用最新的 Chrome 浏览器。

  • 超时由浏览器设定。

  • 网络连接不佳可能导致响应出现较大的时间延迟。

  • 只要屏幕足够大、有更新版本的 Chrome 浏览器并且网络连接稳定,你可以使用任何设备。

  • 你至少需要 PI_Integration_Developer 角色集合。

技术实现

如前所述,系统的核心是 Camel 集成框架。SAP 通过图形化客户端和各种安全功能对 Camel 框架进行了增强。完整的实现是一个 Java 应用程序,包含以下组件:

第一个组件(编号 1)是你的浏览器,它通过 Cloud Integration URL 访问该实现,以创建和管理集成流。第二个组件(编号 2)是图形界面。

一旦集成流创建完成,并且如果它作为 Java 应用程序部署到运行时(Cloud Foundry、Kyma)上(编号 4),消息就可以通过发送方组件(编号 3)传输,并通过接收方组件(编号 5)接收。

负载均衡器(IP5)连接到发送方输入(编号 3),有趣的是,它并不直接连接到运行时。

租户上的资源

Cloud Integration 实现的资源是有限的。

创建集成流的开发周期

在相关练习中,我们遵循构建专业集成流的原则。

要建立开发周期,必须按顺序执行以下步骤:

  • 理解用例。

  • 配置 SAP BTP 子账户和 SAP Integration Suite。

  • 找到所需 API 的列表及其全部元数据,例如凭据、标头等。

  • 在 Cloud Integration 中从空模板开始。

  • 对流程进行建模。

  • 逐块构建集成流。

  • 重复这些步骤。

  • 接下来做什么?

让我们详细了解这些步骤。

  1. 理解用例: 与相关工件协作,对用例进行深入分析,并应用 SAP Integration Solution Advisory Methodology 来满足所有需求。

  2. 配置 SAP BTP 子账户和 Integration Suite: 为集成开发人员提供相关的角色集合,使他们能够在适当的 Integration Suite 上工作。这需要与管理员协调。

  3. 找到所需 API 的列表及其全部元数据,例如凭据、标头等: 如果所有 API 都列在 SAP API Business Hub Enterprise 中,获取必要的 URL 和参数就完成了。但如果没有,你就需要规划充足的时间来获取这些数据并测试接口。

  4. 在 Cloud Integration 中从空模板开始: 创建一个名称有意义的包。以下是命名约定的建议:命名约定。 开始时,选择集成流工件,系统会自动创建一个空模板。如果需要传入消息,可以使用 Timer 事件来启动,并用 Content Modifier 来模拟消息。这种方法有助于实现更快、更轻松的开发周期。

  5. 对流程进行建模: 为流程开发确立清晰的标准可能很困难。有时,一个流程最初看起来很简单,但之后可能会被拆分为多个独立流程。重要的是要考虑到,流程将来必须能被专业人员理解。在本培训涵盖的练习中,我们专注于实现一个流程。不过,也可以将 API 调用外包给具有各自错误处理的独立流程。

  6. 逐块构建集成流: 根据用例的不同,开发集成流有多种方式。在实践练习中,建议从 API 调用开始。一旦建立连接,就更容易确定所需的输入和输出。与使用 XI 消息协议的 XI 或 PI 不同,云集成中没有内部格式。因此,考虑所需的内部格式和转换非常重要。可以使用每个集成流组件的帮助部分来查找合适的配置。本课程涵盖的练习中也演示了这一过程。配置完一个组件后,必须调试并验证输出是否符合预期。一般来说,有两种测试集成流的方式: 它们是:

  • 集成流的模拟。

  • 通过真实部署和调试进行测试。练习中采用的就是这种方法。 这些主题将在课程后面更详细地讨论。

  1. 重复这些步骤: 反复执行这些步骤,直到你的集成流按预期运行。

  2. 接下来做什么: 测试流程;各种测试程序将在后续主题中详细讨论。测试成功后,集成流会被传输到生产子账户。对处理过程进行持续监控,或实施警报管理以应对意外事件,是管理员的职责,此处不再单独讨论。

集成流的版本管理

定期对开发状态进行版本管理非常重要,这样在必要时可以回退到先前的版本。

集成流版本管理的操作步骤:

  • 在你可编辑的集成流中开始。

  • 选择右上角的 另存为版本 按钮。

  • 输入有意义的注释。

练习中使用了这种方法。

切换到先前版本的操作步骤:

  • 从你的包开始。

  • 在可用工件列表中标记你的工件(集成流)。

  • 转到 版本 列。

  • 选择版本号。

  • 选择一个先前的版本。

  • 选择符号以切回该先前版本。

通过真实部署和调试集成流进行开发者测试

在检查集成流之前,必须将其部署到监控环境中。图形化模型会被转换为 Java 应用程序并放入运行时,从而使集成流能够启动。如果部署成功,当使用计时器事件时集成流会立即执行,否则它将等待传入消息。Cloud Integration 提供跟踪(trace)日志级别,可让你深入了解每个集成流组件的处理过程。

要执行开发者测试,必须按顺序执行以下步骤:

  • 从你的集成流开始。

  • 选择 部署 按钮。

  • 在集成流泳道之外的空白区域选择一个位置。

  • 在 集成流 配置区域中选择 部署状态 。

  • 如果你的集成流部署成功,你将看到一个 导航到管理集成内容 链接。

  • 选择该链接可跳转到 监控工件 → 概览 → 管理集成内容 。

  • 将日志级别改为 trace 。

  • 如果使用 计时器 启动事件,请再次部署。否则,向端点发送一条消息。

  • 如果再次部署,请返回 监控工件 → 概览 → 管理集成内容 。

  • 在此处选择 监控消息处理 链接。

  • 在新窗口中,选择 监控工件 → 概览 → 监控消息处理 。在消息列表中选择最后一条消息并点击它。

  • 选择 跟踪 链接可直接跳转到 监控工件 → 概览 → 监控消息处理 → 消息处理运行 。

  • 探究你的流的跟踪信息。

练习中使用了这种方法。

通过模拟集成流及其组件进行开发者测试

模拟集成流的各个部分或整个集成流,有助于验证内容修改器中的值是否正确设置,或者脚本或映射是否按预期执行。然而,并非所有集成流组件都支持模拟。

以下是支持的集成流组件列表:集成流的模拟

示例

DeDelayedDelivery_Process 中,我们需要通过模拟检查 Modify_setProductIDAsProperty 中的 ProductID 是否设置正确。

要通过模拟执行开发者测试,必须按顺序执行以下步骤:

  • 在 Splitter_iterateOverProducts 组件之前的连线上选择一个位置。

  • 通过上下文菜单设置起点。

  • 将输入消息作为负载(内容)添加。

  • 选择 Modify_setProductIDAsProperty 组件之后的连线。

  • 设置模拟的终点。

  • 模拟导航栏现在处于激活状态。

  • 使用导航栏的 开始 按钮启动模拟。

  • 选择起点与终点之间的所有信封以查看结果。

  • 测试完成后,选择导航栏的 清除 按钮。

小结

创建集成流需要使用远程云集成应用程序中的图形化编辑器。可以对集成流的各个部分或整个集成流进行模拟,以验证内容修改器、脚本或映射中的值是否正确设置。集成流完成后,会对其进行版本管理并部署,从而在运行时中创建并部署一个 Java 应用程序。随后即可执行该集成流。开发过程可以看作一个循环,其中组件的放置与配置、使用跟踪日志级别进行调试以及测试会不断重复,直到达到预期结果。

本课其余配图

U4_Dev_Cloud_Integration

CLD900_20_U4L2_002_scr

U4_Resources_Cloud_Int_Impl

CLD900_20_U4L2_004_scr

CLD900_20_U4L2_005_scr

CLD900_20_U4L2_006_scr

CLD900_20_U4L2_007_scr

CLD900_20_U4L2_008_scr

CLD900_20_U4L2_009_scr

CLD900_20_U4L2_010_scr

CLD900_20_U4L2_011_scr

CLD900_20_U4L2_012_scr

CLD900_20_U4L2_013_scr

CLD900_20_U4L2_014_scr

CLD900_20_U4L2_015_scr