随着全球化对中国经济的日趋影响,愈来愈激烈的市场竞争对国家电网公司经营能力提出了更高的要求,相应的对信息化水平的要求也更高,国家电网公司的信息化建设面临着一系列的挑战。国家电网公司将先进的信息技术和成熟的企业应用系统与其业务状况和需求相结合,逐渐形成了“以业务为基础,信息技术为手段”的科学经营模式,但应用建设存在多种不同的技术和标准基本没有流程集成,各业务条线的应用间自动信息交互的手段和机制不足,缺乏企业级的集成平台等问题成为企业加强集中式管理、协调各部门业务能力和执行能力,提高员工绩效和企业产出的瓶颈,并且难以提供企业级的决策分析支持。
因此,电力企业迫切需要一个能够解决企业间集成的方案,在企业间的全方位共享和业务流程的无缝对接,实现各相关业务领域的协作,提高业务执行效果和效率。本文提出了基于SOA(面向服务的体系结构)的电力系统企业信息化集成方案,是实现 IT 和业务同步的先进可行战略,它提供了一种灵活的、可扩展且可组合的方法来重用和扩展现有应用程序以及构造新的应用程序,以提供服务的方式向企业提供了灵活、快捷的系统整合选择,将企业应用中离散的业务功能提取出来,将其组织成可互动的、基于标准的服务,用模块化和便携化的服务在复合应用中组合和重用,可以更快速地满足业务需求。
一 企业应用集成技术的发展
1.1 传统的应用集成技术
企业应用集成技术是伴随着企业信息系统的发展而产生和演变的。企业的价值取向是推动应用集成技术发展的原动力,而通过应用集成技术所实现的价值反过来也驱动着公司竞争优势的提升。
EAI(企业应用集成)萌芽于上世纪 80 年代后期,在本世纪初逐渐成熟并进入大规模应用。EAI的目标是支持对现有IT系统的重新利用,通过EAI技术能够将不同的软件和系统串联起来,延长这些应用系统的生命周期。传统的EAI,往往使用如CORBA 和COM等的消息中间件进行分布式,跨平台的程序交互,修改企业资源规划以达到新的目标,使用中间件、XML等方法来进行数据分配。因此,实际上传统的EAI是部件级的重用。很不幸的是,基于部件的架构没有统一的标准,各厂商的中间件多采用其专有协议或接口规范,开放程度非常低,一经采用,信息系统升级、完善的成本很高,周期很长,直接导致了企业管理流程受到系统固化,出现企业管理随着信息化应用的深化反而管理流程被动僵化。如果碰到了异构的环境,就必须分别考虑怎样在各个不同的中间件之间周旋,来实现合理的互联方式,你不得不考虑各种复杂的可能性,因而很难实现较复杂的流程集成,也就不能迅速满足业务变化提出的信息系统调整的需求。
1.2 SOA
SOA(面向服务架构)是新兴的企业应用集成技术方案,它体现了当今企业应用集成技术领域的最佳方案。
SOA 是一种在松散耦合的服务和应用之间标准的集成方式,用一种构造分布式系统的方法,将业务应用功能以服务的形式提供给最终用户应用或其他服务,实现服务间智能化集成与管理。服务的内部细节以及在组成服务的组件之间传送的数据的复杂性都对外界隐藏了,从而可以通过合并构建在不同的机器上、运行在不同的操作系统中、用不同的编程语言开发的组件来创建服务,降低集成的复杂性,增加业务的灵活性,也降低了在增强或创建新的业务服务的过程中带来的风险,也减少了维护和管理支持服务的基础架构的风险。
在早期EAI应用集成方式中,如果要集成N个系统,就要建立N2个服务,并且当需要添加或删除服务端点,必须要从新编译服务客户端;与早期的EAI 相比,SOA采用了分布式的应用集成方式,全面的解决了早期EAI点对点集成方式中N2问题,而根据需要删除服务端点时,不用担心需要重新编译服务客户端的问题;同时,SOA能够在最新的和现有的应用之上创建应用;SOA能够使客户或服务消费者免予受到服务实现的改变所带来的影响;SOA能够升级单个服务或服务消费者而无需重写整个应用,也无需保留已经不再适用于新需求的现有系统。总而言之,SOA 以借助现有的应用来组合产生新服务的敏捷方式,提供给企业更好的灵活性来构建应用程序和业务流程。
1.2.1 企业服务总线
SOA 体系中引入了企业服务总线(ESB)的概念,服务交互的参与方并不直接交互,而是通过一个总线交互,该总线提供虚拟化和管理功能来实现和扩展SOA的核心定义。它是传统中间件技术与XML、Web服务等技术结合的产物。ESB提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素。ESB 的出现改变了传统的软件架构,可以提供比传统中间件产品更为廉价的解决方案,同时它还可以消除不同应用之间的技术差异,让不同的应用服务器协调运作,实现了不同服务之间的通信与整合。从功能上看,ESB提供了事件驱动和文档导向的处理模式,以及分布式的运行管理机制,它支持基于内容的路由和过滤,具备了复杂数据的传输能力,并可以提供一系列的标准接口。ESB是逻辑上与SOA所遵循的基本原则保持一致的服务集成基础架构,它提供了服务管理的方法和在分布式异构环境中进行服务交互的功能。
1.2.2 ESB 的特点
1)松耦合。ESB在服务客户端和服务提供者之间提供了一种中阶层,这种中阶层可以提供消息传输和安全技术。这种方法可以有效的包装原有的服务,并为新客户端提供传输能力。
2) 位置透明。位置透明是一个对服务客户端隐藏服务端点物理位置的策略。ESB可以注册和管理企业内所有服务的位置,这提供了一个服务客户端和服务提供者之间的抽象层,可以更灵活的管理服务,并且增强了添加和删除服务提供者的可操作性,并且不会影响服务的客户端。
3) 服务中介ESB是一个中间层,存在于服务客户端和服务提供者之间。这层为架构的附加值提供了很大的空间。当客户使用SOA 上的服务时,ESB可以进行多个操作,它可以改变收到和发送消息的数据和Schema;根据消息的内容,智能的把消息路由到不同的服务端点。
4) Schema 转换。ESB发布的Web Service 的Schema 可以与表达该Web Service 的业务服务所使用的不相同。当用户规范分类以及与其他Web Service 聚合或编排的时候,这个功能显得尤为重要。
5)服务聚合。ESB服务间的调用可以当做一个Fa?ade模式使用,使一系列的Web Service 调用作为一个Web Service 出现。服务聚合按照这种模式来运行,当调用一个代理服务时,多个 Web Service 会被调用,返回唯一的结果。并且可以通过一些条件判断逻辑来定义哪些底层的服务会被调用以及调用的次序来实现服务的编排。
6) 负载均衡。ESB 在架构中的位置决定了ESB适合对那些跨多服务点对点的请求做负载均衡。当把一个业务服务Web Service 注册到ESB后,可以指定运行该业务服务的服务端点列表。可以通过修改这个列表,添加或删除服务端点,并且激活修改而不需要从新启动服务总线。
7)强制安全性。ESB作为服务的协调者,在尽可能的情况下,应该使用集中的方式来增强安全,这就允许了更大范围的标准化以及对安全问题进行控制,通过策略驱动的框架来牵制安全。使用此安全策略意味着可以在每个Web Service 服务外部创建和应用安全标准。
8) 监控。ESB 在SOA中扮演着重要的角色。因此必须要有一个健壮的方式来监控ESB的状态,包括主动式和响应式。主动观察服务总线性能的能力,有助于优化服务总线提高其性能。随时跟踪性能有助于制定ESB的扩展计划。响应式监控可以对特定条件设置警告。
可以说,ESB是特定环境下(SOA架构中)实施EAI的方式:首先,在ESB系统中,被集成的对象被明确定义为服务,而不是传统EAI中各种各样的中间件平台,这样就极大简化了在集成异构性上的考虑,因为不管有怎样的应用底层实现,只要是SOA架构中的服务,它就一定是基于标准的。
其次,ESB明确强调消息(Message)处理在集成过程中的作用,这里的消息指的是应用环境中被集成对象之间的沟通。传统的EAI系统中的消息处理大多是被动的,消息的处理需要各自中间件的私有方式支持。ESB系统由于将集成对象统一到服务,消息在应用服务之间传递时格式是标准的,直接面向消息的处理方式成为可能。如果ESB能够在底层支持现有的各种通讯协议,那么对消息的处理就完全不考虑底层的传输细节,而直接通过消息的标准格式定义来进行。这样,在ESB中,对消息的处理就会成为ESB 的核心,因为通过消息处理来集成服务是最简单可行的方式。这也是ESB中总线(Bus)功能的体现。ESB的概念不仅仅是提供消息交互的通道,更重要的是提供服务的智能化集成基础架构。
最后,事件驱动成为 ESB 的重要特征。通常服务之间传递的消息有两种形式,一种是调用(Call),即请求/回应方式,这是常见的同步模式。还有一种我们称之为单路消息(One-way),它的目的往往是触发异步的事件,发送者不需要马上得到回复。考虑到有些应用服务是长时间运行的,因此,这种异步服务之间的消息交互也是ESB 必须支持的。除此之外,ESB的很多功能都可以利用这种机制来实现,例如,SOA中服务的性能监控等基础架构功能,需要通过ESB 来提供数据,当服务的请求通过ESB 中转的时候,ESB很容易通过事件驱动机制向SOA 的基础架构服务传递信息。
二 基于 ESB 的电力系统应用集成设计
随着SG186的深化应用和SG-ERP建设的提出,八大应用及ERP等成熟套装软件随着国网信息化的建设已经逐步在各网省公司得到了推广和应用,各系统间的集成能很好的解决了电力企业内各部门间信息共享以及快速的为决策层提供需要的数据分析和报告等问题。
在上图的设计模式中,完全基于松散耦合方式构建企业级应用集成。每一个具体的应用,它既可能是服务消费者,也可能是服务提供者,或者同时具备两种角色。能够进行服务化封装或者改造的业务应用将业务功能封装成web服务,注册到ESB企业服务总线中,使得业务应用提供的功能成为SOA架构中的服务,并且通过ESB对服务进行“即插即用”,快速实现应用集成。服务消费者通过标准方式(SOAP over HTTP或者 SOAP over JMS)调用服务总线上的服务,当请求数据进入服务总线后,服务总线在访问控制、消息转换、服务路由等三步处理之后,调用相应的业务服务。
BPM 能够编排现有的服务,形成组合服务或业务流程。业务流程的每个节点以“服务消费者”的身份,通过标准方式(SOAP over HTTP 或者 SOAP over JMS)调用服务总线上的服务。编排形成的组合服务或业务流程也以标准 web 服务的方式注册到服务总线,通过标准方式(SOAP over HTTP 或者 SOAP over JMS)被其他应用调用。
三 基于ESB服务总线在电力系统应用集成的实现案例
我公司研发的《绩效管理信息系统》需要从ERP中获取人员编号等信息,又要与门户集成实现单点登录、用户信息同步等功能。在这种情况下我尝试采用企业服务总线来解决应用集成的问题。
我选用Oracle公司的Oracle Service Bus 10gR3,它具有高可靠性、支持标准广泛等特点。我先将要从ERP 中获取数据和与门户集成所需要的方法封装到两个Web Service 中,分别注册到OSB的企业服务总线上,成为OSB 的业务服务,并且在OSB 中配置需要提交服务的 WSDL 文件和输入输出参数的 XML Schema文件;并且在OSB上面建立代理服务,并配置代理服务的消息流,配置完成后开放代理服务的WSDL文件。ERP 和门户应用程序只需要调用OSB 上的代理服务并根据参数 XML Schema文件组织好输入参数和解析返回结果。
由于《绩效管理信息系统》是一个正在使用的系统,贸然的进行应用集成存在着很多的风险性,一旦数据同步或集成的任何一个环节出现差错都会影响正在运行系统的安全。我先在测试机上进行集成测试,在确保与ERP和门户系统的集成已经安全准确无误后修改在OSB中注册的WSDL并重新配置路由节点,将服务提供路径由测试机迁移至正式机,完成《绩效管理信息系统》与ERP系统与门户系统的最终集成。
通过使用OSB服务总线,在服务提供路径从测试机往正式机迁移的过程只需要在OSB服务总线上进行配置就可以了,ERP 系统和门户系统不会因为服务提供者的物理地址改变而去做任何更改甚至去重新编译程序,大大降低了数据集成的难度与风险,并且,一些简单的数据转换及效验的操作可以再XML Schema 文件中进行配置,不用修改和重新编译客户端程序从而让各应用系统运行更稳定、流畅。
四 总结与展望
利用SOA技术的企业服务总线ESB构造了松耦合的电力系统应用集成,既利用了现有的系统,又实现了系统间的企业级的应用集成,解决了各系统间“信息孤岛”的问题,所以使用基于SOA的企业服务总线ESB能够很好的满足电力企业的系统应用集成要求,也将为其决策提供强大支持,它的应用可以为电力企业的业务流程集成BPM提供良好的基础,在此基础上运用联机分析处理及流程集成等技术,可以为电力企业的战略和战术决策以及管理提供极大的信息支持。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:基于SOA的企业服务总线研究与实现
本文网址:http://www.toberp.com/html/consultation/1083934345.html