从偶然架构到一个全球规模的统一的集成基础设施可能是像一个使人畏缩的任务。 把一切都准备就绪,然后再象扳动一下开关那样将所有的应用都一下子转移到新的基础设施之上是不现实的。这已经是组织为什么老是要不断添加偶然架构方案作为权益解决之计的一个主要的理由,甚至他们确实知道这样使相关的问题永垂不朽也是如此。
ESB 提供了能力来帮助减轻所介绍的痛苦。 第 9 章将通过一个案例来介绍如何远离一个完全建立在 FTP 和每夜批处理作业之上的早以存在的集成解决方案。
让我们现在重新回到对偶然架构的讨论。 在图 2-6中,实线、虚线、点划线代表用于集成的不同类型的连接技术和通信协议。注意其中有一个用集成Broker表达的已存在的 “集成孤岛”,以及POS应用和财务应用之间的连接是使用FTP 文件传输。在POS应用和ERP应用之间先前已经升级来使用HTTP 之上的SOAP协议,正如销售自动化应用 (SFA) 和客户关系管理 (CRM) 之间的联结。
图表 2‑6 使用SOAP通信、 FTP 、手工插座(Socket)、而且包括一个集成Broker的代表性的偶然架构
ESB 可以在一个部门级的层次或在一个项目的基础上被引入。 在项目层次采用 ESB 允许你能够习惯于使用 ESB 服务容器进行基于标准的集成,并且完全可以坚信该项目能够集成到一个更大的集成网络之中,并且与企业级的公司的集成策略目标相一致。
我们采用ESB的例子中的第一个步骤是要集成前端应用(FrontOffice)。在图 2-7 中,前端的CRM、财务和SFA 通过“服务容器”连接到ESB 之中。这些容器是 ESB 架构的主要组件,我们将在第 6 章详细解释。 经过 ESB 服务容器进行的集成的特性可能会不同。 容器和应用之间的接口可以通过使用第三方的应用适配器来完成;容器可以暴露使用WSDL描述的XML数据;或者它可能被实现为完全用户定制的代码。
图表 2‑7 ESB 可以在不打破原有点对点路径的前提下,在单个项目基础上采用
但是也许更有趣的不是那些已经集成到ESB 之内的东西,而是还没有集成进去的东西。图 2-7 表示了已有的 FTP 和SOAP协议之间的通信线,原来是连接到前端应用的,现在直接连接到那些特别配制来使用那些协议进行通信的ESB组件。应用仍然处于总线“之外”,Pos应用和伙伴CRM应用可以与集成到ESB总线“之内”的前端应用进行通信而不需要做任何修改,对他们如何参与ESB基础设施也不需要知道任何东西。注意,现在POS应用是连接到ESB 上的一个 FTP 桥接器,而且伙伴CRM应用则是连接到配置为总线的一部分的Web Services端点。
ESB 已经被引入了,但是对这些配备了ESB能力的应用以前所连接的点对点通信组合区没有产生任何影响。被插入总线的应用如今转而使用连接到ESB 集成容器的一个单一接口, 而且已经省却了对它们先前所有其他类型的通信连接的管理和维护。
我们将会在第 9 章中看到,即使是总线域中最新集成的应用也可以就地将他们转移到完全的ESB方式,并且与它们各自的项目开发时间线相一致。
在我们的ESB采用的例子得下一阶段中,POS应用将在每一个远端实现ESB能力,并且去除对不可靠的 FTP 联结上的依赖。 这可能会简单如在每一个远端安装一个ESB容器,并且插入到总部的ESB之中,或者涉及到在每一个远端的多个应用之间的一个“迷你”的集成环境。那么二个 ESB节点就可以通过一个基于可靠消息的安全连接进行通信(图 2-8)
图表 2‑8 在各个地点分立安装的ESB可以安全和可靠地连接在一起
此外,远端位置仍然可以在他们自己的分离集成环境里面运行,并且可以按照需要有选择地共享数据。例如,远端位置可以独立地拥有并且运作一个属于集体特许经营的零售店铺。它们没有必须共享关于它们的日常运作的信息,但是的确需要共享诸如价格更新和库存信息之类的数据。远程ESB 节点可以连接到位于总部的 ESB 网络,有选择地暴露消息通道以共享价格变动之类的数据。
我们的ESB 采用示例项目的第三阶段涉及到桥接进进一个已经部分地与一个集线器-和-插头 EAI Broker集成在一起的部门。我们先前提醒过,采用 ESB 不是一个全有或全无的概念。如图 2-9 所示, ESB 允许IT部门通过将一个已存在的 EAI Broker桥接到ESB之内来保护它里面的IT资产。
图表 2‑9 “保留-和-分层”方式允许将ESB桥接到EAI Broker安装之内
桥接 EAI Broker可以一多种方式进行。比如,它可以通过使用一个Web Services接口来完成,或者绑定到下层的消息通道。依赖于ESB和 EAI Broker 的实现,ESB 更加可以建立在EAI Broker下面的消息队列基础设施之上,因此部分地替换EAI Broker的功能仍然可以保留较低层的、消息通道。
我们的 ESB 采用示例项目的最后步骤是解决和业务伙伴集成的问题。如图 2-10 所示,这可能包括原样保留SOAP联结,以及在每个伙伴端安装一个 ESB 节点。决定采用哪一种方法完全依赖于你的组织和伙伴之间的关系,以及业务伙伴是否允许你在其地点安装软件,或者他们已经有能够连接到你的ESB之上的ESB。
图表 2‑10 ESB 可以个别地管理与业务伙伴的SOAP联结, 或者可以连接到另一个地点的ESB节点
插入到一个 ESB 扩展的分层的服务能够管理对伙伴的连接的后勤保障。例如,一个特殊的伙伴经理者服务可以在每一个伙伴的基础上管理与伙伴之间的正在进行的协作的细节。这些细节可能包括正在使用哪一个更高层次的业务协议(比如, ebXML、RosettaNet 等)、以及对话的状态,比如消息交换的当前状态、是否收到一个期望的应答消息、以及从业务伙伴接收到一个业务响应所能够接受多长的时延。
本章包含下列主题:
- 对更广泛的、更通用的集成基础设施的需要的各种驱动因素
- 偶然架构是今天所使用的主要集成设计。 在这种系统中,当前的企业完全没有很好地联通的。
- 只有 10% 的应用被联接。
- 而这些之中,只有 15%的使用了某种类型中间件。
- 到目前为止,分布式计算技术加重了,而不是解决了,偶然架构的问题。
- 集线器-和- 插头EAI Broker已经有了一定程度的成功。然而,它们:
- 大部分是专有技术
- 没有为组织提供一个标准化的、可以在企业内通用使用的集成平台。
- ESB 借鉴了在 EAI Broker技术方面学习的经验的价值。
- 集成作为是一个部门层面和公司文化的问题,和它作为一个技术上问题同样重要。
- ESB 允许逐渐增加的采用,以符合各个部门单独的开发时间表。