简介
IBM MobileFirst Platform Foundation 通过其适配器机制来提供集成功能。IBM MobileFirst 适配器是一些组件,它们从 MobileFirst 部署到服务器上来访问企业服务。它们充当着移动应用程序与企业系统之间的中介或网关。MobileFirst 适配器从移动应用程序接收请求,并返回从企业系统抓取的数据。
IBM WebSphere Cast Iron Cloud 集成产品使您能够很快集成云和内部部署的应用程序,降低集成成本,优化软件即服务 (SaaS) 和云模型中的资源和生产力。
本文将通过一个示例演示如何借助一个 Cast Iron 适配器来集成 MobileFirst 移动应用程序与 Cast Iron 设备。
回页首
示例场景
出于本文的目的,我们考虑采用一个虚构的 Prestigious Insurance Company 的业务案例。
Prestigious Insurance 向其客户提供寿险、车险、医疗保险和财产保险。作为一种实现公司快速增长计划的途径,他们正在实现自己的 IT 系统转型。因为该公司的主要目标是增加业务和提高客户满意度,所以 Prestigious Insurance 希望大力投资索赔接纳、索赔处理和索赔解决。
为了实现此目标,Prestigious Insurance 将开发一个移动应用程序,使客户能够在其移动设备上检查其索赔状态。这是该应用程序和它的相关流程的工作原理(图 1 和 2):
- 客户使用 IBM MobileFirst 移动应用程序输入他想要检查状态的索赔的索赔 ID 和帐户 ID。该应用程序将此输入传递给 MobileFirst 服务器,后者然后通过 MobileFirst 适配器将该信息发送给 Cast Iron 设备。
- Cast Iron 设备扮演着中间件和编排管理器的角色,连接到云环境并尝试使用客户的帐号来验证客户。如果验证成功,然后验证索赔 ID。
- 如果索赔 ID 有效,则查询所提交的索赔类型(例如、车险、医疗保险等)。基于索赔类型,Cast Iron 将索赔发送到合适的流程,以获取保单细节。
- Cast Iron 检查保单的有效性和已提交的与该索赔相关的所有必要文档。如果该保单有效且文档齐备,Cast Iron 就会从云上的 CRM 中获取索赔状态。
- 完成处理后,Cast Iron 将状态信息发送到客户的移动应用程序上。
图 1. 上下文图
Prestigious Insurance 系统架构是一种面向服务的组件框架,将这些组件组装在一起,可以促进 Prestigious Insurance 案例管理系统与它通信的许多外部系统之间的实时消息交换。Cast Iron 支持针对 MobileFirst、Web 服务和规则引擎的适配器,支持基于开放标准的互操作性和集成功能。面向服务的架构 (SOA) 和适配器功能的使用,为 Cast Iron 提供了使用和生成一些服务来支持企业的长期战略和近期举措的能力,比如重用有价值的遗留资产和基于云的企业级资产。
图 2. 流程流
我们将介绍 Cast Iron 和 MobileFirst 提供的一些功能。
Cast Iron
随着云应用程序变得愈加流行,许多公司正在进入公共云、私有云和内部部署应用程序的混合领域。这种应用程序平台的多样性,带来了集成云解决方案与现有系统和应用程序的挑战。Cast Iron 使您能够快速集成云和内部部署的应用程序,在软件即服务 (SaaS) 和云模型中优化资源和生产力。Cast Iron 提供了多个针对近实时集成的功能:
- 数据清理和迁移,数据同步和连接,以及工作流和转换,使您能够对跨多个应用程序的集成流程进行编排管理。
- 混搭功能使您能够集成来自不同来源的信息,并使用云应用程序的原生用户界面来显示它。Cast Iron 还支持移动应用程序集成。
Cast Iron 可用在物理、虚拟或 Cast Iron Live 形状规格产品中,这有助于实现云到云、云到内部部署和内部部署到内部部署的集成。每种形状规格都支持实时、近实时和批量集成。可在 PC 上使用基于 Eclipse 的 IDE 来执行开发。
一个内部部署的设备通常位于防火墙后,而不是 DMZ 内。对于开发、测试和生产生命周期,运行时环境通常是分开的,每个环境拥有自己的集成设备,该设备能够访问环境所需的端点。
Cast Iron 的特性包括:
- 您能够随时随地访问数据和文件。
- 较低的操作和实现成本。
- 该产品能够以软件即服务 (SaaS) 的形式提供。
- 开发和部署非常快。模板集成项目存储库使您能够重用现有的编排流程。
- 能够批量或实时处理消息。
- 拥有可用的连接器开发工具包 (CDK),可用来构建和公开基于标准的接口的自定义应用程序的连接器。
- 支持多种安全特性,比如 SSL、HTTPS 等。
MobileFirst
IBM MobileFirst 为智能电话和平板电脑提供了一个开放的、全面的、高级的移动应用程序平台。它支持在 iOS 和 Android 应用程序中无缝地混合 Web 和原生组件;此能力已扩展到 Windows Phone 8 中,混合应用程序架构现在可在单个应用程序中使用 MobileFirst API,在 C# 与 HTML5 之间实现更轻松的交互。总体上讲,MobileFirst 减少了上市准备工作,降低了开发的成本和复杂性,在各种不同的移动设备上实现了更好的用户体验,还增强了应用程序的安全性和治理。借助单一的平台,您可为所有主要的移动平台创建应用程序。利用基于标准的技术和工具,IBM MobileFirst 随带了一个全面的开发环境、移动优化的中间件,以及一个集成的管理和分析控制台,它们都受各种各样的安全机制的支持。MobileFirst 支持创建功能丰富的跨平台应用程序,而无需使用代码转换、专用解释器或不流行的脚本语言。它还提供了推送通知增强,比如交互式通知和静默通知,还提供了新的安全功能。
本文假设您拥有 HTML 和 JavaScript™、JSON 和 XML、Cast Iron 和 IBM MobileFirst 开发方法,以及 REST Web 服务编码的基本知识。
本文剩余部分将介绍创建应用程序组件来实现此集成类型的一般步骤。这些步骤仅用于演示目的。
回页首
1. 使用 IBM MobileFirst 开发移动应用程序
- 选择 File > New > Other > MobileFirst Project (图 3)来创建 MobileFirst 混合应用程序项目。
图 3. 创建 MobileFirst 项目
点击查看大图
关闭 [x]
图 3. 创建 MobileFirst 项目
- 选择 Hybrid Application 并将新项目命名为
PrestigeProject
。单击 Next (图 4)。 图 4. 命名项目
- 将该应用程序命名为
PrestigeMobApps
并单击 Finish (图 5)。 图 5. 配置应用程序
- 创建了一个新的 MobileFirst 移动应用程序项目和示例移动应用程序。(图 6)
图 6. Eclipse IDE 中的新 MobileFirst 项目和移动应用程序
- 接下来,创建一个新 MobileFirst 适配器,将该移动应用程序连接到后端。选择 File > New > Other > MobileFirst Adapter 。(图 7)
图 7. 创建 MobileFirst 适配器
- 选择 Cast Iron Adapter 作为适配器类型,指定适配器名称
PrestigeCastIronAdapter
。单击 Finish 。(图 8) 图 8. 创建 Cast Iron 适配器
- 此时将会打开一个名为
PrestigeCastIronAdapter.xml
的新配置 XML 文件。您现在需要配置一些参数,包括 协议 、 域 、 端口号 等。对于此场景,域为 localhost
(图 9)。 图 9. 编辑配置 XML 文件
点击查看大图
关闭 [x]
图 9. 编辑配置 XML 文件
- 在 PrestigeCastIronAdapter-impl.js 文件中,需要设置 method 、 AppName 、 requestType 、 Path 和 returnedContentType (图 10)。
图 10. 编辑适配器 JavaScript 文件
点击查看大图
关闭 [x]
图 10. 编辑适配器 JavaScript 文件
- 要将应用程序配置为连接到 Cast Iron 适配器,需要更新 main.js 中的 adapter 、 procedure 和 parameters 值(图 11)。
图 11. 将应用程序连接到 Cast Iron 适配器
点击查看大图
关闭 [x]
图 11. 将应用程序连接到 Cast Iron 适配器
- 完成配置后,现在可以将适配器部署在 MobileFirst 服务器中。右键单击该适配器,然后选择 Run As > Deploy MobileFirst Adapter (图 12)。
图 12. 部署适配器
- 类似地,要部署应用程序,需要右键单击每个应用程序,然后选择 Run As > Run on MobileFirst Development Server 。要确认应用程序和适配器都已正确部署,可以检查 MobileFirst 控制台。如图 13 所示,二者都包含部署时间戳。
图 13. 部署应用程序
点击查看大图
关闭 [x]
图 13. 部署应用程序
回页首
2. 准备 Android 模拟器
在构建一个 Android 原生移动应用程序后,必须安装 Android SDK 和 ADT 插件。在此之后,需要创建一个 Android 设备模拟器,并在 ADT 管理器中检查更新,以避免在编译原生代码时出现问题。
- 打开位于 android-sdks 文件夹中的 Android SDK Manager,确保已安装了 Android SDK 工具、构建工具和 Android 平台的最新更新(图 14)。
图 14. SDK 管理器
- 接下来,打开位于 android-sdks 文件夹中的 Android Virtual Device (AVD) Manager,选择 New 创建一个新的虚拟设备模拟器。为该 AVD 选择一个名称并选择设备。重新启动 Eclipse 来保存更改(图 15)。
图 15. AVD 管理器
回页首
3. 添加 Android 环境
需要在一个或多个环境中进行开发。将被打包并构建到环境中的移动 Web 应用程序位于文件夹 common
中。它包含在所有应用程序环境之间共享的 HTML5、JavaScript、CSS3 和图像。在本例中,使用了 Eclipse 和 ADT,所以要添加一个 Android 环境。
- 单击 New 并选择 MobileFirst Environment (图 16)。
图 16. 创建开发环境
- 单击 Android phones and tablets 并单击 Finish 。在 Project Explorer 面板中,您会注意到,您的 MobileFirst 项目中已经添加了一个新的 Android 环境(图 17 和图 18)。
图 17. 创建应用程序文件夹
图 18. 验证环境
- 要运行模拟器,可以右键单击项目并选择 Run As > Android Application (图 19)。
图 19. 运行模拟器
- 可以右键单击项目并选择 Run As > Preview (图 20),在移动模拟器中测试应用程序。
图 20. 在模拟器中测试应用程序
点击查看大图
关闭 [x]
图 20. 在模拟器中测试应用程序
回页首
4. 使用 Cast Iron 开发编排流程
- 在 Cast Iron IDE 中,选择 File > New > New Project ,将项目命名为
PrestigeInsurance
并单击 OK (图 21)。此时将会显示一个类似于图 22 的面板。 图 21. 创建新 Cast Iron 项目
图 22. 创建编排流程
点击查看大图
关闭 [x]
图 22. 创建编排流程
- 现在需要定义该流程的端点。Cast Iron 提供了多种端点选择,包括 FTP、JDE、JMS SAP Salesforce 等。对于本示例,选择使用的端点是 HTTP 和 MQ。首先,选择一个 HTTP 端点(图 23)。
图 23. 定义 HTTP 端点
- 需要为一个 HTTP 端点配置您将使用的端口;在本例中为端口。身份验证细节(比如用户名)也可配置,但这是可选的(图 24)。
图 24. 配置端点
- 对于 MQ 端点,需要提供 Host Name 、 Port 、 Queue Manager 、 Channel Name 、 User Name 等值(图 25 和图 26)。
图 25. 定义 MQ 端点
图 26. 配置端点
- 完成这些端点后,现在需要创建编排流程。此场景使用了 HTTP 接收者和发送者节点,MQ GET 和 PUT 节点,以及 HTTP GET 请求节点,这些节点将调用来自云中的 REST Web 服务。我们先来查看 HTTP 接收请求节点,可从 Activity 面板获取它(图 27)。
图 27. 向编排流程中添加节点
点击查看大图
关闭 [x]
图 27. 向编排流程中添加节点
- 将 HTTP 接收者节点拖放到流程中。此节点的用途是从 MobileFirst 服务器获取消息。该请求将包含索赔 ID 和帐户 ID,以及将对其执行有效性检查的流程(图 28)。
图 28. 指定端点
点击查看大图
关闭 [x]
图 28. 指定端点
- 要配置此节点,可以指定您之前在 Pick Endpoint 面板上创建的 HTTP 端点(图 28)。在 Configure 面板上,指定 URL 、 Method type 等(图 29)。还需要配置 Map Outputs,它表明消息将如何存储在变量中(图 30)。
图 29. 配置端点
图 30. 配置映射输出
点击查看大图
关闭 [x]
图 30. 配置映射输出
- 将 MQ PUT 和 GET 消息节点包含在流程中。设置队列名称值和载荷类型,选择 MQ 端点等。PUT 消息节点的用途是传递包含索赔 ID 和帐户 ID 的消息,以便验证它们。在该流程的这一阶段,后端系统流程会执行验证。此流程使用客户 ID 来验证客户。如果成功,则验证索赔 ID。如果索赔 ID 是有效的,则查询所提交的索赔类型。依据索赔类型,将索赔路由到合适的流程来获取保单细节。如果所有检查都通过,则返回保单编号、保单持有者名称、保单状态等。这些消息由 Cast Iron 通过一个 MQ GET 消息节点收到。(图 31 到图 33)
图 31. 消息流
点击查看大图
关闭 [x]
图 31. 消息流
图 32. MQ PUT 消息
图 33. MQ GET 消息
- 如果所有索赔信息都已验证,保单有效,而且所有必要的文档都已提交,Cast Iron 将在云 CRM 系统上调用 REST Web 服务。Cast Iron 将发送从遗留系统收到的消息来获取索赔状态。索赔状态可能为 Initiated、Not Initiated、On Hold、Rejected 和 Completed。接下来,需要创建一个 新 HTTP 端点(图 34)。
图 34. 创建新端点
- 指定 REST Web 服务 URL,以及请求和回复消息类型(图 35 和图 36)。
图 35. 配置端点
图 36. 添加到编排流程中
点击查看大图
关闭 [x]
图 36. 添加到编排流程中
- 配置端点、节点等信息后,最终的流程将类似于图 37。此流程在逻辑上分为 3 部分:
- 该流程通过 Cast Iron 从 MobileFirst 服务器接收输入,该输入由 HTTP 接收者节点处理。
- 遗留流程对帐户 ID 和索赔 ID 进行验证,它将使用客户的帐户信息来验证客户,如果成功,则验证索赔 ID。如果索赔 ID 是有效的,则检查索赔类型。
- 根据索赔类型将索赔路由到合适的流程。它检查保单细节,确认所有针对这些索赔的必要文档都已提交。如果所有检查都已通过,则在消息中返回保单编号、保单持有者姓名、保单状态等,Cast Iron 通过 MQ GET 消息节点接收这些消息。
在收到返回消息时,Cast Iron 会调用 Cloud CRM REST Web 服务来获取索赔状态。收到索赔状态后,它将保单编号、保单持有者姓名、索赔 ID 和索赔状态组合在一起,发送给 MobileFirst 服务器,然后,后者将该数据发送给移动应用程序(图 37)。 图 37. 最终流程
点击查看大图
关闭 [x]
图 37. 最终流程
- 最后,输入一个索赔 ID 和帐户 ID 来测试应用程序,然后单击 Submit (图 38)。
图 38. 测试应用程序
- 来自该应用程序的消息发送到 MobileFirst 服务器。Cast Iron 流通过 Cast Iron 适配器调用。Cast Iron 收到消息并调用在云中运行的 REST Web 服务。Cast Iron 为 MobileFirst 服务器准备一条回复消息,并且该应用程序收到一条消息,如图 39 所示。
图 39. 最终的应用程序消息
点击查看大图
关闭 [x]
图 39. 最终的应用程序消息
回页首
结束语
本文介绍了一个使用 IBM MobileFirst Platform Foundation 创建的示例移动应用程序,一个 IBM Cast Iron 适配器,还解释了如何集成二者。该示例使用了一个 Cast Iron 编排流程,其中包含 HTTP 和 MQ 端点、HTTP 接收者和回复节点,以及可用于访问 MQ 消息的 MQ PUT 和 GET 消息节点,该示例还使用了 HTTP GET 节点来调用云中的 REST Web 服务。