企业服务总线(ESB)作为SOA的切入点,是SOA集成中最普遍采用的方法,可以使企业以最小的投入将已有系统纳入SOA架构。
ESB的定义是:由中间件技术实现并支持SOA的一组基础架构,支持异构环境中的服务、消息以及基于事件的交互,并且具有适当的服务级别和可管理性。简单地说,ESB将应用服务器上的多种应用迁移到总线以及连接点上,从而降低企业内部信息共享的成本。对企业而言,采用ESB中间件系统作为企业级信息系统整合方案中的中枢技术,无须添加任何软硬件设备,可以把过去、现有和未来的IT系统整合在企业级的信息应用框架下,并且能为企业提供实时、大容量的信息通信和实时控制、管理和分配消息传递的能力。
作为一种中间件,ESB通过与它连接的各种应用的服务级接口实现各种应用之间的连接,控制它们之间的通信,这一功能正在越来越多的生产系统中发挥着作用。几年来,很多企业和机构已经在生产中部署了ESB,效果得到了一定程度的校验,同时人们对如何充分发挥ESB的作用以及建立SOA的环境,为此需要建设、部署管理哪些基础设施有了越来越清晰的认识。
点对点的集成通常通过简单的请求/响应这种同步的方式来完成交互的。ESB作为数据传输和转换的中介可以很好地完成这一任务,而面向流程、事件驱动的SOA架构可以使ESB最能大限度的发挥作用,体现ESB带来的灵活性。
通过使用ESB,事件驱动的架构中的每个应用与其他应用之间处于一种松耦合状态。在这种架构中,每个应用独立于其他应用运行完成一项任务,或者异步地完成一组任务中的一个。即使在一个应用发出了一个请求,然后等待响应以完成接下来的流程时也是这样。这个请求被发到总线上,按照预先定义的流程,这个请求可能会经过很多应用、数据源、路由器和转换器。上述一系列的行为都是独立完成的,最后的响应也是作为一个独立的事件到达最初的这个应用。
事件驱动交互模式的一个主要优点就是保证应用之间的松耦合。只要接入ESB中,每个应用都不用了解如何与其他的应用进行交互这些细节,ESB负责处理所有的协议、数据格式和不同的交互模式。事件驱动的架构只有在一定条件下才能有效地工作。ESB必须具有可靠和高可用的异步消息传递能力。在一个同步的点对点的集成项目中,如果一个应用没有收到一个请求的响应,它会发出错误的信息,同时再次尝试发出请求。但是在异步的情况下,应用向ESB发出一个请求以后就不再关心是否会有响应,直到一个新的请求到达,通知这个应用完成下一个处理。
ESB的优势在于,它的出现改变了传统的软件架构,可以提供比传统中间件产品更为廉价的解决方案,同时它还可以消除不同应用之间的技术差异,让不同的应用服务器协调运作,实现了不同服务之间的通信与整合。
3、SOA平台核心功能与技术特点
现有企业的解决方案大部分基于交易中间件和消息中间件,较好地满足了应用系统在性能、服务质量和安全性等几个方面的需求。但SOA环境中,应用组件之间应该形成一种松耦合关系,要让一个应用软件的组件,很容易去跟属于不同应用的软件组件进行对话,如何确保这些迥然不同,但又相互连接的系统的效率、可靠性、可控性和安全性,是SOA需要面对的问题。
3.1功能
目前SOA平台解决方案通常包括以下功能:
-企业服务总线ESB
ESB提供业务对象传递转换等重要功能,完成企业信息共享和交换。充当“缓冲器”的ESB负责在诸多服务之间转换业务逻辑和数据格式,ESB与服务逻辑相分离,使不同的应用程序可以同时使用同一服务,不需要在应用程序或者数据发生变化时,改动服务代码。
使服务作为企业的资源得到统一的管理、访问和共享利用。ESB的标准性使各个组件可以以插件的模式随需配置,ESB像血液一样把养分输送到身体的各个需要的角落。
-适配器体系Adapter
Adapter可以在几乎不更改原应用代码的情况下,以无缝方式使企业已有的系统具有全新的服务接口,实现对于各种数据源、信息源、以及各种应用系统的衔接。
Adapter定义了是一组规范,它描述了利用ESB将各应用加以连通的基本接口,简化和统一了ESB与应用程序间的交互方式。利用Adapter,应用程序编程人员可以一致地访问和操纵来自异构系统的消息,包括关系数据库、XML数据源、Web服务和企业信息系统。
以Adapter连接不同服务,形成可重用的业务对象,可以更方便的利用SOA架构进行整合和组装,能真正给实施SOA带来落地和实践的可能。-流程设计工具
通过全流程的编排和开发,细到代码逻辑、粗到构件业务组装逻辑、再到跨部门和跨企业的服务集成逻辑,都在统一的流程开发和管理之下。它像大脑神经一样控制着我们业务的流程运行,把各种业务逻辑和资源访问统一控制起来,统一指挥起来。
以服务为基本元素,提供业务流程的设计组装功能,提供技术基础,实现流程管理与事务管理功能,帮助企业快速根据已有应用形成新功能,适应市场的快速变化。
-应用平台
帮助企业内纷繁复杂的软件健康和有序地运行。敏锐感知外界的变化(如政策、规则、运营等),企业软件的内部状况(如安全、可靠和稳定等),并将其反映到软件系统中,进行有序的治理。帮助政府和企业在应用层面快速搭建SOA的体系架构,通过流程设计工具设计的流程,调用通过适配器连接到ESB上的不同服务,面向最终用户,完成数据整合、应用整合、业务流程整合任务。
3.2核心技术
目前SOA平台解决方案的核心技术包括:
-可靠消息传输:基于WebsphereMQ高性能、高可靠性的消息存储/转发传输机制,可集成多操作系统平台;支持点对点、一对多、多对多等传输模式,支持事务处理、灾难恢复、集群、负载均衡等丰富的企业级功能。
-数据格式转换动态路由:采用服务总线的拓扑结构,集中处理数据交换请求,根据业务规则在系统间收集/分发数据,并将这些系统间共享、交换的数据转换为接受方可识别的表现方式;集成交易处理、数据库访问等扩展功能,丰富数据处理手段。
-多种接入方式:支持多种接入设备、多种传输协议,可在不同协议间进行数据转换,实时为身处各种环境的人员、应用、移动和无线和遥测设备提供业务事件信息。
-工作流引擎:体现SOA理念,遵循J2EE、BPEL4WS等标准的业务流程管理系统,可以实现业务流程的动态调整,业务流程的可视化设计、分析、部署及测试,无缝的集成企业环境中现有的应用系统。
-适配器技术:丰富的适配器种类适配不同的厂商、不同的技术,使企业在最低限度的影响现有系统的前提下,快速方便地将企业中的应用系统如ERP、HR、CRM及SCM等连接到企业的集成平台,实现系统之间信息共享与交换。
-集成开放环境:集成的、可视化的设计、编码、部署、测试环境,简化流程变更的过程,适应业务的快速变化。
综上所述,SOA可以与许多其他技术结合在一起使用,组件的封装和聚合在其中扮演着重要的角色。SOA可以是一个简单对象、复杂对象、对象的集合、包含许多对象的流程、包含其他流程的流程,甚至还可以是输出单一结果的应用程序的整体集合。在服务之外,它可以看作是单个实体,但是在其自身中,它可以具有任何级别的复杂性(如果必要的话)。出于性能方面的考虑,大多数SOA服务并没有下降到单一对象的粒度,并且更适合于大中型组件。