基于SOA架构的企业集成系统设计与实现

日期: 2009-07-23 来源:TechTarget中国 英文

  结合传统企业应用集成(eai)中存在的问题,分析了soa和web服务技术在实现畀构系统集成方面的先进性,针对基于soa思想,以web服务为基础的异构系统集成解决方案的实现,提出了3种web服务的构造方法,包括corbar,activex以及javarmi,通过将soa体系架构应用到企业集成 eai的实例表明,基于soa架构的集成模式用于解决企业信息集成中相关异构系统之间互操作的问题具有一定优势

  0 引言

  信息化的发展,企业间协同商务和企业信息门户(EIP)等要求企业的应用系统是一个高度集成和开放的系统。然而大型企业往往拥有着异构系统,导致系统间信息的交互与互操作非常困难,形成了一个个“信息孤岛”,为了实现企业全局的业务过程自动化,人们投入了大量的人力和财力来进行系统集成。传统的企业应用集成(Enterprise Application Integration,EAI)解决方案有4种类型:用户界面集成、数据集成、业务流程集成、函数/方法集成,这4种集成方法不能方便、灵活、低代价地实现异构系统的集成,难以快速适应企业现代业务变化的需求。另外,随着企业计算的发展,企业级应用要求新的软件系统不再是从底层做起,而只是依据企业逻辑需求重新组织己有的数据存储,将现有的数据和事务通过新的渠道,如浏览器或者手持设备呈现给用户。基于面向服务架构(Service Oriented Archi-tecture,SOA)的应用集成开发方案,在不改变企业应用底层架构的基础上,可以很好地解决上述问题。它支持在中间层以服务模块方式实现解决方案,当多个运行在不同平台和技术下的应用程序必须互相通信时,这种体系结构尤其适用。

  1 SOA架构

  SOA架构是一种分布式的软件组件模型。整个系统被设计和实现为一组相互交互的服务,它使得系统中的某些服务能够充分利用其他的服务同时却无需考虑其物理位置。在该模型中,任何的业务功能被作为提供的一个服务使用。应用程序的不同功能(服务)通过这些服务之间定义良好的接口和契约联系起来,使得构建在系统中的服务可以以一种统一和通用的方法进行调用。这种具有中立的接口定义(没有强制绑定到特定的实现上)的特征称为服务之间的松藕合。松藕合系统的好处有两点:它的灵活性;当组成整个应用程序的每个服务的内部结构和实现逐渐地发生改变时,它能够继续存在。这就为解决EAI集成问题和快速开发新的IT系统铺平了道路。SOA模型如图1所示,说明了SOA中的不同角色及其工作流程。SOA架构的组件包括:

  (1)服务提供者:服务提供者是一个可通过网络寻址的实体,它接受和执行来自使用者的请求;

  (2)服务使用者:服务使用者是一组使用服务提供者所提供的一项或多项服务的组件;

  (3)服务储备库:服务储备库包含服务的描述,服务提供者在该储备库中注册其服务,而服务使用者访问该储备库已发现的所提供的服务。


  2  SOA的具体实现

  SOA是一种软件架构,而不是局限于某个技术的组合,它超越了技术范围。SOA的关键是“服务”。W3C将服务定义为:“服务提供者完成一组工作,为服务使用者交付所需的最终结果。最终结果通常是使用者的状态发生变化,但也可能是提供者的状态改变,或者双方都产生变化”。服务是网络中可用的软件资源。服务提供者通过标准机制提供服务,使用者通过网络有计划地使用服务。服务储备库发布服务所在位置,并在使用者请求服务时定位服务。服务使用者和提供者的角色不是惟一的,服务提供者也可以是使用者,反之亦然。SOA具体的实现有很多,包括Web Service,Ses-sionBean,JINI等,但随着Web Service技术被越来越重视,其己经成为构建SOA的主要技术。

  3  基于Web Service实现SOA

  3.1 Web Service体系结构

  Web Service是近几年提出的一种新的面向服务的体系结构,它是基于Web服务提供者、服务请求者和服务注册代理的不同操作来建立的。具体来说其运作分为三部分:发布操作一服务提供者通过发布操作向服务注册代理注册自己的功能和访问接口;查找操作一服务请求者通过查找操作向服务注册代理查找特定的服务;绑定操作一服务请求者通过绑定操作实际使用服务提供者所提供的服务。

  3.2 Web Service技术支持

  Web Service技术建立的面向服务架构基于开放性标准。一些典型的开放性标准有:XML(可扩展标记语言);SOAP(简单对象访问协议);WSDL(Web服务描述语言);UDDI(Web服务注册规范)。Web Serv-ice本身就是一种SOA架构,可以实现各种应用程序资源的互联互通,大大促进了软件源的共享,从而成为新型的提供分布式的(全球性的)信息整合手段和应用系统EAI解决方案。

  3.3 Web Service结构的构造实现

  (1)基于CORBA和Java的Web体系结构

  基于CORBA和Java的Web结构的运行机制是:CORBA客户方程序从Web服务器下载执行,并与应用服务器上的CORBA应用对象通过 Internet对象请求代理间协议(Internet Inter-ORB Protocol,IIOP)通信,调用其指定的操作。CORBA应用对象首先对客户的请求进行认证和解释,根据客户请求的内容,或直接访问资源层的数据库或与网络上的其他CORBA对象交互,共同完成客户请求。各种新开发的Web应用,只要使用接口定义语言(IDL)封装成CORBA对象,在CORBA 系统中登记注册后,就可以动态地加载进入Web系统,迅速地为客户提供服务。


  (2)基于微软ActiveX的Web体系结构

  基于ActiveX的Web结构的运行机制是:浏览器下载ActiveX控件、脚本或文档并在本地运行,它们可以作为分布式组件对象模型 (Distributed ComponentObiect Model,DCOM)客户,利用DCOM的对象远程过程调用(Object Remote Procedure Call,ORPC)机制访问应用服务器中的DCOM对象;也可通过服务器上的Internet服务应用程序接口(ISAPI)等接口访问后端数据库。因此,在基于ActiveX的Web体系中,客户端与应用服务器之间采用ORPC进行通信,而应用服务器与数据库之间是采用ISAPI进行通信,整个Web 体系中的核心技术是COM/DCOM技术。

  (3)基于SUN公司的Java RMI的Web体系结构基于Java RMI的Web结构的运行机制是:客户方程序是一个Java Applet或JavaBeans对象,通过RMI内部通信机制(Jaya RMI是SUN公司用Java语言建立的分布对象环境)调用应用服务器上的Java对象,继而以JDBC等方式访问数据库。因为Java RMI是用纯Java环境实现的,Java语言本身的可移植性使得RMI具有很强的跨平台性。此外,在处理纯Java对象之间的通信时,RMI具有较高的效率。

  3.4 三种Web系统体系结构的比较

  基于CORBA、微软ActiveX和SUN Java RMI的Web体系结构的主要差别比较如表1所示。

基于SOA架构的企业集成系统设计与实现


  4 基于SOA架构的系统开发与集成

  传统的EAI解决方案是私有的和复杂的,因而不能实现必要的灵活性和适应性。Web Service为实现EAI提供了一种全新的机制,它为本地和远程服务的定义、发布和访问提供了一整套开发标准的方法。它能彻底地改变传统EAI中点对点的集成方式。

  本应用实例是某生产彩电企业信息系统。将其销售系统分解为描述彩电信息、订单服务、购买服务三个功能,分别包装成Web服务发布到网上,用户查到这些 Web服务后,就可以直接调用他们。该实例实现了Web服务的创建、部署和客户对Web服务的调用。销售系统Web服务和客户端实现是基于Java的J2 SD-K1.4.1-01开发环境,以TomcatServer 4.1作为Web服务器,Web服务是利用JAX-RPC技术来创建,生成相应的WSDL文档并部署在Tomcat上,客户端利用JAX-RPC提供的 xrpcc工具生成Web服务的存根,以Servlet通过存根调用Web服务的方法。

  彩电信息Web服务refrilnforService的实现如下:

  (1)首先定义接口tvlnformation和接口实现类tvlnforlmpl,实现接口的方法getRefrilnfor。

  (2)用JAX-RPC提供的xrpcc工具根据配置文件tvforServiceConfig.xml生成tvforService.wsdl文档和服务器配置文件refnInforServiceConfjg.proper.ties。命令为:xrpcc-classpath refriappServer-d refriappServer-server-keep tvlnforServiceConfig.-Xml。

  (3)用deploytool工具将彩电信息Web服务部署在Tomcat上。

  以客户端调用tvlnforServiceWeb服务来说明如何用Web服务。

  ①根据配置文件tvInforCIienfConfig.xml,用xrpCc工具从WSDL文档的描述生成tvlnforServiceWeb服务的客户端类(tvlnfor-Stub存根和支撑类)。命令为:xrpcc-dtviappClient-client- keeptvlnforConfig.xml。

  ②在findTvServlet中通过JAX-RPC调用服务实现类tvforService-Im pl的方法getTvlnfor。

  ③在findBook.html中调用findTvServlet,取得彩电信息。

  其他彩电生产系统,人事管理系统等应用的实现部署情况与此类似。各种企业应用不管是遗留系统还是外部企业系统,无论处于不同平台,使用不同对象技术的 CORBA,DCOM,EJB,以及不同的编程语言,只要能以Web服务进行封装,将其统一在一个Web Service技术层面上,就能像插件一样嵌人消息服务总线,实现松耦合SOA架构,从而实现了敏捷的企业应用集成EAI及企业信息系统的可扩展功能。

  5 结语

  传统EAI技术点对点的集成方式不能灵活、低代价地实现异构系统的集成,难以适应企业快速的业务变化需求。SOA架构提供了一种松耦合的服务模式,大大降低了应用系统的集成和维护难度。Web Service技术,能够去除原来处在不同平台,使用不同对象技术的CORBA,DCOM,EJB构架的实现差异,将其统一在一个Web Service技术层面上,这也使得它成为现阶段构建基于SOA架构集成系统的重要手段。然而Web Service技术现在尚未成熟,应该进一步针对面向服务的SOA体系架构的其他实现技术如Session Bean,JINI等,进行研究和探索,比较其各自的优势和适用范围,在企业EAI实践中,能够根据原有信息系统的实际情况,灵活选用不同的SOA技术手段,高效率地实现企业信息集成。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐

  • 事件驱动框架和SOA在空军的应用

    空军正在利用SOA来改善数据共享,并实时跟踪战机,美国空军机动司令部的Michael Marek解释了企业可从中学习的经验。

  • 揭秘New Relic APM技术细节

    New Relic应性能管理(APM)套件主要用于Web软件开发。它允许用户在面向服务的架构(SOA)上跟踪关键事务性能,并且支持代码级别的可见性来评估特定代码段和SQL语句对性能的影响

  • 仅凭SOA和云无法解决业务数据管理风险问题

    SOA和云可以是某些恼人问题高效的解决方案;这一点我们已经知道了。但是也要记住它们并不是所有事情的直接答案,特别是当你的问题是业务数据管理风险,而不是技术问题时。

  • 购买应用集成工具可以采取平衡做法

    购买应用程序集成工具需要好好看看你的公司需求,知道从供应商里面要寻找哪些关键功能。