您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 其它办公文档 > SOA在企业信息整合中的应用
SOA在企业信息整合中的应用一、传统方法进行企业信息整合的分析企业应用集成(EAI:EnterpriseApplicationIntegration)[1]是指对企业中完成不同业务功能的应用系统进行集成,在它们之间建立起可供数据交流和应用沟通的纽带,进而使他们之间的信息交互成为可能。通过这种方式使用户可以访问企业的整体信息,而不必考虑这些具体信息到底是属于*一个应用系统的,即各个不同应用系统对用户来说是透明的。传统的企业应用集成的层次主要有数据级集成、应用接口级集成、业务逻辑级集成等;数据级集成属于面向信息的集成方式,该方式可能会导致损坏数据,打开数据库的安全缺口等;应用接口级集成属于面向接口的集成方式,采用该方式对API接口进行修改时,将增加大量的工作量,也可能会增加现有应用系统的不稳定性。而业务逻辑级集成属于面向过程的集成方式。该集成方式不仅暴露了应用程序的业务逻辑,而且由于业务逻辑的交叉,导致了各个集成系统之间的紧耦合性,降低了应用系统的灵活性,增加了整个系统维护的难度。上述3种方式都属于紧耦合的应用系统集成方式。这种紧耦合的集成方式将影响系统的灵活性和扩展性,阻碍业务的流程调整和优化,不利于企业业务发展。为解决上述问题,需要一种面向功能层的企业系统集成方式。该方式不仅能保证原有系统的数据安全性和逻辑安全性,而且还能实现各系统之间的松耦合,方便系统流程的重组和优化。SOA的出现,为这一问题提供了一个比较完美的解决方案。二、面向服务的体系结构(SOA):2.1面向服务体系结构简介SOA(service-orientedArchitecture,也叫面向服务的体系结构或面向服务架构)是指为了解决在Internet环境下业务集成的需要,通过连接能完成特定任务的**功能实体实现的一种软件系统架构。SOA是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该**于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。传统的Web(HTML/HTTP)技术有效的解决了人与信息系统的交互和沟通问题,极大的促进了B2C模式的发展。WEB服务(XML/SOAP/WSDL)技术则是要有效的解决信息系统之间的交互和沟通问题,促进B2B/EAI/CB2C的发展。SOA(面向服务的体系)则是采用面向服务的商业建模技术和WEB服务技术,实现系统之间的松耦合,实现系统之间的整合与协同。WEB服务和SOA的本质思路在于使得信息系统个体在能够沟通的基础上形成协同工作。2.2SOA结构模型SOA提供了一种方法,通过这种方法在构建分布式系统时,可以将应用程序功能作为服务提供给终端用户应用程序或其他服务。在发现新的商机或**的预期下,SOA体系结构形式旨在提供企业业务解决方案,这些业务解决方案可以按需扩展或改变。SOA解决方案由可重用的服务组成,带有定义良好且符合标准的已发布接口。SOA提供了一种机制,通过这种机制,可以将原有系统资源封装成服务后集成到新开发的分布式系统,而不管它们的平台或语言。SOA中的服务通过服务描述和传输实现了相互之间的交互,如图1所示。其中,服务描述是一种经过协商的模式,用于描述服务***、应该如何调用服务以及成功地调用服务需要什么数据等。传输是一种机制,用于将来自服务使用者的服务请求传送给服务提供者,并且将来自服务提供者的响应传送给服务使用。2.3SOA中的工作角色在SOA服务模型图(图2)中面向服务的体系结构中主要有三种角色:(1)服务消费者是需要使用服务的应用程序或其它的服务。通过对注册中心的服务进行查询后,根据接口说明信息并使用某种传输协议与服务绑定并执行服务功能。(2)服务提供者是创建服务的实体。可以从服务消费者处接受请求并可以远程执行所请求服务。通过向注册中心发布服务接口信息以供服务消费者发现和访问服务。(3)服务注册中心处于中心位置提供了展示服务的功能。服务消费者通过查询存储有服务信息库的注册中心以找到感兴趣服务的接口信息。2.4SOA三大基本特征一、**的功能实体:在Internet这样松散的使用环境中,任何访问请求都有可能出错,因此任何企图通过Internet进行控制的结构都会面临严重的稳定性问题。SOA非常强调架构中提供服务的功能实体的完全**自主的能力。传统的组件技术,如.NETRemoting,EJB,COM或者CORBA,都需要有一个宿主(Host或者Server)来存放和管理这些功能实体;当这些宿主运行结束时这些组件的寿命也随之结束。这样当宿主本身或者其它功能部分出现问题的时候,在该宿主上运行的其它应用服务就会受到影响。SOA架构中非常强调实体自我管理和恢复能力。常见的用来进行自我恢复的技术,比如事务处理(Transaction),消息队列(MessageQueue),冗余部署(RedundantDeployment)和集群系统(Cluster)在SOA中都起到至关重要的作用。二、大数据量低频率访问:对于.NETRemoting,EJB或者XML-RPC这些传统的分布式计算模型而言,他们的服务提供都是通过函数调用的方式进行的,一个功能的完成往往需要通过客户端和服务器来回很多次函数调用才能完成。在Intranet的环境下,这些调用给系统的响应速度和稳定性带来的影响都可以忽略不计,但是在Internet环境下这些因素往往是决定整个系统是否能正常工作的一个关键决定因素。因此SOA系统推荐采用大数据量的方式一次性进行信息交换。三、基于文本的消息传递:由于Internet中大量异构系统的存在决定了SOA系统必须采用基于文本而非二进制的消息传递方式。在COM、CORBA这些传统的组件模型中,从服务器端传往客户端的是一个二进制编码的对象,在客户端通过调用这个对象的方法来完成某些功能;但是在Internet环境下,不同语言,不同平台对数据、甚至是一些基本数据类型定义不同,给不同的服务之间传递对象带来的很大困难。由于基于文本的消息本身是不包含任何处理逻辑和数据类型的,因此服务间只传递文本,对数据的处理依赖于接收端的方式可以帮忙绕过兼容性这个的大泥坑。此外,对于一个服务来说,Internet与局域网最大的一个区别就是在Internet上的版本管理极其困难,传统软件采用的升级方式在这种松散的分布式环境中几乎无法进行。采用基于文本的消息传递方式,数据处理端可以只选择性的处理自己理解的那部分数据,而忽略其它的数据,从而得到的非常理想的兼容性。从SOA的几个重要特征可以看出,SOA之所以被用于信息资源整合,是因为其具备了标准化、可操作、可组装的特性。SOA提供了一个通用的、可互操作的和有弹性的行业标准架构,可以在软件基础架构中建立一系列支持商业模型的可重复利用的服务,这些服务由不同应用系统的组件构成,能够帮助企业实现适应商业流程变化的需求。三、采用SOA进行企业信息系统集成3.1采用SOA进行企业现有信息系统集成的步骤:1)提取各个应用系统中需要对外暴露的功能模块。这些功能模块通常都是一些能够清晰完整地表现其业务价值的软件实体,该软件实体包含了它所能提供的所有服务。2)将这些功能模块表现为服务组件的形式。定义服务的描述信息、服务的接口以及调用服务所需要的定位信息等。将软件实体的概念模型转换成实际的服务模型。3)将已实现的服务发布到服务注册器,供其他服务调用者进行查找和绑定。这个步骤可以视企业集成的具体情况选择使用。4)绑定和调用服务,将各个应用系统集成起来,实现企业应用在功能层面的集成(见图3)。3.2实施建议“整合是分阶段、循序渐进、逐步实现的。如果把企业的所有经营活动看作是一个个服务,那么整合就是要将企业内外部的各种服务有机地联结起来。首先可以只需创建单独的服务;接下来不仅可以创建服务,而且可以开始将业务功能集成到SOA中;第三步涉及将企业IT基础设施转换到SOA模型;最后则集中于转换业务模型,以使之成为适应需求变化的模型。对具体的整合对象,按照建模、装配、部署、管理四个阶段实现整合。在建模阶段,可以定义业务模型或流程、软件模型和SOA模型。之后就可以创建一组服务,这组服务可以与已发布的通用接口一起重用;在部署阶段,开发人员可以提取创建的服务,并把它们放在一个可执行、可管理的环境之中;在使用阶段,根据软件模型来装配应用程序,并且测试其软件质量以及非功能性需求,比如性能、可伸缩性等等;最后的管理阶段是一个长期的过程,在这个阶段中,可以监控并管理安全性和使用,以及在许多与可能已经为SOA制订好的服务级协定或策略相对应的方面比较其性能。这样由小及大,逐渐在企业业务中进行整合扩散,并形成整个企业的IT转型,最终通过全面整合实现随需应变的企业IT架构。3.3基于Web服务体系结构的SOA企业信息系统整合作为一种概念,SOA已经成熟。比较来说,现在Web服务是实现SOA**的方式。Web服务是由URL(UniformResourceLocator)确定的软件应用,其接口和绑定能够以XML(ExtensibleMarkupLanguage)的形式定义、描述和发现,并且支持借助Internet协议,如SOAP(SimpleObjectAccessProtocol)。采用XML格式消息的方式与其他软件应用交互[5]。Web服务采用[6]WSDL(WebServicesDescriptionLanguage)作为其服务接口描述语言、通过UDDI(UniversalDescription,DiscoveryandIntegration)协议规范进行Web服务的网上注册和服务查找定位,并使用SOAP传输协议在网络间进行XML格式的信息交互。XML是一种扩展标记语言。Web服务的描述语言就是用XML形式描述的,Web服务的数据也是以XML格式进行交换的。可以说XML是定义Web服务协议规范的基石。WSDL服务描述语言采用XMLSchema定义。WSDL能对各种语言实现的服务进行描述,具有语言无关性。DDI是通用描述、发现和集成协议。UDDI使得全球统一定位、发现服务成为可能。3.4Web服务集成实现模型要运行,管理SOA应用程序,企业需要SOA集成模型,这是SOA平台的一个部分。SOA集成模型必须支持所有的相关标准,和需要的运行时容器。图4所示的是一个典型的SOA集成模型。下面分别介绍这些层。SOAP,WSDL,UDDI:WSDL,UDDI和SOAP是SOA基础的基础部件。WSDL用来描述服务;UDDI用来注册和查找服务;而SOAP,作为传输层,用来在消费者和服务提供者之间传送消息。SOAP是Web服务的默认机制,其他的技术为可以服务实现其他类型的绑定。一个消费者可以在UDDI注册表(registry)查找服务,取得服务的WSDL描述,然后通过SOAP来调用服务。WS-IBasicProfile:S-IBasicProfile,由Web服务互用性组织(WebServicesInteroperabilityOrganization)提供,是SOA服务测试与互用性所需要的核心构件。服务提供者可以使用BasicProfile测试程序来测试服务在不同平台和技术上的互用性。J2EE和.Net:尽管J2EE和。NET平台是开发SOA应用程序常用的平台,但SOA不仅限于此。像J2EE这类平台,不仅为开发者自然而然地参与到SOA中来提供了一个平台,还通过他们内在的特性,将可扩展性,可靠性,可用性以及性能引入了SOA世界。新的规范,例如JAXB(JavaAPIforXMLBinding),用于将XML文档定位到Java类;JAXR(JavaAPIforXMLRegistry)用来规范对UDDI注册表(registry)的操作;XML-RPC(JavaAPIforXML-basedRemoteProcedureCall)在J2EE1.4中用来调用远程服务,这使得开发和部署可移植于标准J2EE容器的Web服务变得容易,与此同
本文标题:SOA在企业信息整合中的应用
链接地址:https://www.777doc.com/doc-12485 .html