业务逻辑与连接性逻辑
新的预订解决方案所需的两个不同类型的逻辑可以映射到与图 1 所示类似的参考体系结构。解决方案中与流程相关的部分在“流程服务”中处理,ESB 将处理与其他航空公司服务的连接性,其中包括可能需要的任何数据转换。
此分离关注使具有两种不同技术的开发人员能够使用该解决方案并行工作:
业务逻辑由熟悉预订和成功订购机票必要步骤的人员开发。
连接性逻辑由了解协议和联合公司中其他航空公司支持的数据格式的人员创建。
使两种逻辑能够进行通信的是虚拟服务接口。我们将调用此虚拟接口,因为没有为它提供真正的服务提供程序。该接口由 ESB 提供,ESB 可以适当地路由和操作请求和响应消息。了解此虚拟服务接口后,可以独立开发和维护两种逻辑。本文稍后将详细介绍这方面内容。(考虑到本文的目的,假设每个航空公司返回频繁飞行乘客的里程数的服务接口已经存在,并得到了很好理解。)图 2 显示了此解决方案的图形表示形式。
图 2. 优惠飞行预订解决方案

此图显示了业务流程和中介流松散地耦合在一起,它们之间只有一个依赖项,即上面提到的虚拟服务接口。可以非常容易地将加入联合公司的新航空公司添加到解决方案,而无需对业务流程进行任何更改。
构建解决方案
在本文的其余部分,假设开发新预订系统的全球航空公司团队选择 WebSphere Process Server(以下称为 Process Server)承载业务流程,并为中介流选择 WebSphere ESB。适用于两个运行时环境的工具是 WebSphere Integration Developer(以下称为 Integration Developer)。尽管此选择可能需要更详细的讨论,但是毫无疑问,Process Server 是 IBM 用于开发和执行业务流程的首选解决方案,并且 WebSphere ESB 支持简化示例提出的要求。此外,WebSphere Process Server 包括 WebSphere ESB 运行时,并且二者共享同一 Integration Developer 工具。
这里的详细说明不用于演示如何构建解决方案。而是描述解决方案的最主要部分,并解释其构建方式的原因。本文包括 Integration Developer 项目交换文件和完整的示例。您可以下载此文件,并将其导入到自己的工作区。此示例项目仅用于演示目的;为简单起见,忽略了实际应用中必需的多个元素。
本文假设您了解 WebSphere Integration Developer 的基础知识。在参考资料部分中,可以找到使用 Integration Developer 创建解决方案的其他基本内容的链接。
共享库
为定义在业务逻辑和连接性逻辑中使用的资源,示例中提供了名为 GlobalAirlinesLibrary 的库模块。在此库模块中,定义了以下资源:
预订业务对象:包括关于机票预定的所有信息。
PassengerDetails 业务对象:包括预订机票的乘客的详细信息。
FrequentFlyerInfo 业务对象:包括乘客的频繁飞行信息。
RetrieveMilesStatus 接口:检索适当航班的飞行里程的接口;使用乘客的详细信息调用该请求,并且以整数格式返回乘客里程数(图 3)。
图 3. RetrieveMilesStatus 接口

此库中定义的所有资源共享同一命名空间。对于下面描述的构件,也是这种情况;每个模块对其包含的资源使用自己的命名空间。这反映它们属于整个系统的不同部分,并且还可以避免在基础生成代码中发生任何冲突,例如,确保每个模块以不同方式命名的 Java™ 包结束。
上面描述的接口和相关业务对象表示业务流程和中介之间的唯一连接点。因而,需要首先定义它。
| 第1页: 第1页 |