您好,欢迎访问三七文档
基于SOA的企业应用集成模型的研究与应用实例栏目:SOA来源:E-works发布时间:2010-4-1209:21:57发表评论0引言企业应用集成(enterpriseapplicationintegration,EAI)是将企业中完成不同业务功能的应用系统进行集成,建立起可供数据交换和应用沟通的桥梁,提高信息系统的适应性。传统EAI是针对特定的软硬件结构、网络环境和应用领域进行开发,实现企业内部对等实体的通信,阻碍了业务流程调整和优化。近年出现了SOA(serviceorientedarchitecture,SOA).ESB(enterpriseservicebus,ESB)等新技术,将EAI与SOA和ESB结合是解决传统EAI缺点的有效方法。可以基于现有系统投资发展,不需要彻底重新创建系统。SOA通过良好的接口定义,实现了接口与服务实现的分离,服务的重用性和位置的透明性使服务的实现能够独立于硬件平台、操作系统和编程语言。ESB为SOA提供了一个多协议消息代理的松耦合事件驱动,可以接入基子各种技术标准的应用系统。本文基于SOA具有松耦合、跨平台、可重用等优点,提出一种基于SOA、新模型S_EAI。1基干SOA的企业应用集成模型SOA把服务提供者、服务请求者和注册中心有效的分离开,使各个层面的设计者和使用者都能关注于各自层面的处理逻辑。1.1采用SOA架构进行系统集成的思想SOA为EAI提供了一种新思想,实现了用户访问与底层数据、企业应用的分离,将业务流程改造封装成各类基于标准的松耦合企业服务。利用ESB强大的数据转换、消息交换机制、提供粗粒度、松耦合的服务调度机制,将服务及封装的组件插入到ESB,真正实现了“即插即用”,使企业服务可以被有效的调用、组合和管理。通过理解业务需求和服务之间动态关系,分析业务模型,在S_EAI中对服务注册、存储、管理和调用机制做了改善,实现了对遗留系统封装,如图1所示。模型分为用户交互层、总线层、服务组装层和基础设施层。通过数据库注册表、私有UDDI和公共UDDI提高了服务注册和调用的速度和灵活性、重用性。图1基于SOA的EAI模型(1)基础设施层:由J2EE或.NET规范、Web应用服务器、数据库、服务安全规范等组成,该层是系统开发的基础。(2)服务组装层:通过标准接口开发细粒度服务,通过“注册表”的形式存储在业务数据库中,将细粒度服务根据业务需求组装成粗粒度的服务,遗留系统中需要重用的方法封装成服务、不常用且复用性低的功能开发成脚本服务等。(3)总线层:是实现松耦合系统的关键,提供消息的动态路由、管理监控、安全服务、协议解析和事务处理等。重新“组装”的服务通过标滩的接口插入到ESB中。ESB是服务请求者和服务提供者之间的媒介,调用适当的业务服务来处理业务请求,实现了与业务逻辑相关的应用层和实现平台相关的基础设施的分离。(4)用户交互层:为用户提供统一的服务访问接口,用户发出的消息请求经过解析被封装成SOAP消息,发送给本地服务代理。服务处理结果返回给客户端,实现了数据访问与执行的分离,可以快速响应企业业务流程的变化,满足企业不断变化和扩展的需求以及异构环境下跨平台业务集成的需要。1.2基于SOA的企业应用集成模型的优点(1)灵活性:框架松散耦合的特性,可以在不影响客户端的情况下对服务进行修改。(2)重用性:将遗留系统封装成Web服务,各个服务相互独立,采用标准协议开发,实现了对遗留系统最大程度的重用。(3)可扩展性:接口用统一标准开发,容易对新开发服务进行集成。升级单个服务或服务消费者无需重写整个应用。(4)服务注册和调用灵活:通过采用数据表、私有UDDI、公共UDDI的方式为企业内外用户提供不同的调用方式,大大提高了服务的注册和调用的效率。1.3基于SOA的企业应用集成框架通过对上述模型编码实现了一个通用的企业应用集成框架,如图2所示。可直接在框架上开发项目,提高了服务开发速度。图2企业应用集成框架客户端与服务器端通过Web服务网关相互通信。网关将WSDL文件定义的服务映射成可以被外部请求者共享的新的WSDL文件。通过在服务器端防火墙部署Web服务网关实现了服务映射、服务导入与导出、协议转换、UDDI的发布和查找、服务安全和管理等。可以协调不同的服务调用,增强了资源的重用性。服务器端由业务组件层、数据访问组件层和数据库层组成。业务组件层主要负责接收SOAP引擎解析的消息,并通过OperName选择相应的BLH来处理业务。数据访问组件层主要负责将BLH发送的请求通过Hibernate的O/RMapping反射机制映射成数据模型,将数据库注册表的服务信总初始化到ServicePool中,进而实现对数据库的操作。数据库层主要存放系统运行需要的服务注册表及业务数据表。框架提供了通用的日志、异常处理和安全控制。采用RBAC的权限设计模型,实现了用户的单点登录及权限维护。客户端采用MVC设计模式实现,通过对Struts源码的修改,直接在Struts-config.}unl文件中增加服务调用参数ServName,Oper-Name等,提高了服务调用速度和灵活性。用户信息通过重载SOA_EAI_Action的execute方法,被统一封装到requestDTO,以Message.DTO为例说明消息封装的格式,如图3所示。图3Message.DTO类通过SAAJ规范,将客户端传来的ServName,OperName添加到URL中并与requestDTO一起封装成SOAP消息发送到服务器端。框架提供了SOAP引擎处理SOAP消息的封装和解析。目前多数系统都采用XML文件存储和管理服务,但XML技术基于文件管理机制,存在容量大、管理困难等缺点,并且基于节点检索,定义本身存在大量冗余信息,数据量大的XML文件检索速度将远远低于数据库,如表1所示。表1XML与数据库访问速度对比由于数据库在数据管理方面有管理方便、存贮空间小、检索速度快、修改效率高、安全性好等优点,在框架中服务器端使用Oracle数据库存储和管理服务Sys-Serv、Sys-Opt两张服务注册表用来存放服务及其调用的必要信息,用来惟一标识一个服务,增加了业务敏捷性。调用服务所需要的参数及接口使用自定义WSDL描述,内部用户调用的服务注册到私有UDDI,外部用户调用的服务发布到公共UDDI。当业务需求变化时,私有UDDI的服务可直接发布到公共UDDI,提高了服务的调用效率。框架通过集成Log4j实现对系统运行状态的监控,借鉴Struts枢架的异常处理机制,通过继承系统定义的BaseException类实现对多样化异常的处理。确保了系统的正常运行。框架使用防火墙.SSL等技术保证服务的安全性,并基于JAX-RPC环境实现WS-Security安全应用,可以直接邹署到任何Web服务应用中,无需修改原有应用程序代码,构筑了一个安全可信的应用环境。框架提供了对遗留系统集成的支持。对提供服务的业务实体进行功能分析,定义实体间关系,建立业务模型,设计并实现接口,由WSDL生成器生成框架代码,在此基础上将其封装成服务,插入到ESB最后将该服务注册到数据库以及UDDI。2应用实例油田信息集成系统是框架在异构系统集成中的应用原型,已在油田系统初步应用。主要由专家咨询子系统、数据传输子系统、综合查询子系统和后台管理子系统等组成。各部分能有效交互并实现信息共享,可轻松实现对遗留系统的集成,维持IT系统架构的灵活性、扩展性。系统采用J2EE规范在Eclipse平台下开发,采用Java作为设计语言言,动态链接和服务组件技术,降低了对遗留系统的影响,有效的提高集成开发效率,采纳“固定功能组件化、变化功能脚本化”的基木设计原则,实现了所见即所得目的。使用SOA思想指导构建油田信息集成平台,首先应理解业务需求,服务、底层技术之间的动态关系,从业务流程分析开始,将服务分解,映射到技术中实现,用组件化业务建模方法,对实际业务场景进行分析,提取出需要对外暴露的业务流程功能模块,定义业务模型或流程。创建服务。其次,将服务或服务组合放在一个可执行、可管理的环境中,根据软件模型来组装应用程序,并对程序的性能、可伸缩性、可重用性等进行测试。最后对服务进行管理。具体开发过程中,在自定义WSDL文件中加入ServName和OperName两个参数,方便用户的调用。并将WSDL文档发布到UDDI。WSDL文件片段如下:系统服务调用流程图如图4所示。系统通过WebService来实现服务。WSDL文件对服务的接口、主要属性和参数进行描述,并注册到数据库和UDDI,以支持服务的动态发现、绑定和执行口服务组装层使用EPEL定义服务的业务流程,将需要组装的服务接口集成在一起。采用SOAP协议封装消息,实现消息的跨平台传输。使用JBoss服务器对服务总线支持机制来连接服务使用者和服务提供者,实现业务模型与平台分离,用JMS实现消息传递需求。使用Web服务网实现服务中介,它提供了服务路由、协议转换、消息格式转换、服务位置透明性等功能,将消息映射到相应的方法调用,实现应用系统间的通信。3结束语本文提出一个基于SOA的企业应用集成模型S_EAI。在此基础上搭建框架,在实际项目中得到成功应用。使用ESB、业务流程服务、WebService等构建SOA的基本要素。模块和接口采用标准协议开发,能够满足各种信息集成的要求,动态适应企业业务流程的更新,具有跨平台、可重用、松耦合和易扩展等优点,为实现企业全面信息化打下了良好的技术基础。
本文标题:基于服务架构资料
链接地址:https://www.777doc.com/doc-2575478 .html