`
hepu
  • 浏览: 55740 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

SOA的技术参考标准及使用说明

阅读更多

SOA从概念到实用,仅仅短短几年时间,发展十分迅速。等随着SOA发展的深入,各种SOA相关技术标准也随之发展和完善。SOA的优点和特点,已经为大多数厂家和用户所熟知,如松耦合、业务敏捷性、基于开放式标准等,那么如何构建企业或组织的SOA应用呢?构建SOA架构的企业应用或电子政务,需要基于开放式的SOA相关技术标准,不然,基于非标准技术的应用,也仅仅是传统的应用,而不是所谓的SOA,更谈不上获取SOA所带来的好处了。那么,面对庞大而复杂的SOA相关技术标准,我们如何来有选择的使用它们呢?业务离不开技术的支持,而技术需要为业务服务,因此,离开业务谈技术标准,犹如纸上谈兵。下面,我们将从业务和技术两个角度,浅谈一下SOA技术标准的应用。

  1.SOA参考架构
  谈到SOA技术标准的应用,需要从业务角度了解一下SOA参考架构。不同厂商及组织定义的SOA参考架构,基本上大同小异,本文以长风开放标准平台软件联盟所推荐的为例,来作简单介绍。长风联盟的SOA-RA-TF(SOA参考架构工作组)参照相关的国际标准,充分考虑国内的实际业务需求,提出了一个SOA参考架构,如图1所示。长风联盟SOA参考架构本身,体现了松散耦合特性,它结合了传统技术和Web服务技术,考虑了各种应用场景,可灵活地分拆组合使用。

  SOA参考架构及相关技术,主要应用在企业应用集成领域,它能够以服务的方式共享和复用企业现有应用资产,保护用户IT投资,并能够以服务的方式构建新的业务流程,对组织中的业务流程进行灵活的重构和优化,增强业务的敏捷性。下面从业务的角度,简要介绍一下SOA参考架构各个部分的作用与定位。

  1)通过底层的适配器服务,将组织现有应用系统进行封装,形成可复用的服务,来复用组织中的现有应用资产。所以,适配器服务是应用集成的基础;

  2)服务总线,作为服务之间的协调中介,可将组织中的所有服务如适配器服务、信息服务、安全服务、业务服务、流程服务等,集中管理起来,暴露服务接口,并提供增值的服务注册、路由查找、服务质量保障等功能,它在SOA参考架构中起着核心中枢的作用;

  3)流程服务,用来将组织中的服务,进行编排组合,以满足业务流程的需要,同时,也能够形成更大粒度的服务,形成新的业务服务。能不能体现业务敏捷性及满足用户复杂的业务流程需要,流程服务起着关键的作用;

  4)顶层的交互服务,是直接面向用户的一层,能够为用户提供友好的交互界面及门户集成的功能;SOA实施的效果,往往通过交互服务这张脸面来体现;

  5)当然,要开发和管理SOA所需要的运行服务,还离不开集成开发环境、运行管理系统及服务资源的管理。SOA是否易于被用户接受、开发是否快捷高效、管理和维护是否方便,这几种辅助工具非常关键。

  2.SOA相关技术标准及应用
  根据SOA参考架构所对应的业务及构建SOA涉及的技术要求,需要对应的技术标准来统一不同厂家和用户的认识,构建开放的协作契约。根据技术标准在 SOA 中的角色功能,我们将其分为三大类:服务层次上的信息交互规范、基础通信标准规范、元数据标准规范。根据各种标准规范在SOA 体系中的角色功能,可以将 SOA 协议栈分为 7 层。从底向上,包括传输层、消息层、描述层、管理层、服务组合层、表示层,以及服务资源注册和发现层,其中除了ebXML和电子商务相关的技术标准(如资源注册的ebRS、消息表示ebMS、外部服务资源编排的WS-CDL等)外,大多数在国内已经得到了相当的应用。下面简单介绍一下相关的技术标准及其应用场合。

  2.1.传输层

  传输层作为传统的传输协议,在SOA技术实现中,依然发挥着重要的作用。基于SOA的传输协议,仍然利用原有的传输协议,如HTTP、RMI/IIOP(分别用于Java的远程对象调用和CORBA的远程通讯)、SMTP、TCP/IP等。当然,在使用基于Web的服务时,常常使用HTTP协议,以便于互联网上穿越防火墙。

  2.2.消息层

  SOAP协议也基于XML描述,格式简单,语言独立,便于解析和扩展,因此,消息层SOAP已经是Web服务消费的消息传输载体的首选。Web服务协议栈中的许多规范,都是基于SOAP进行扩展的,如WS-Security、WS-Reliability、WS-Policy等。在有特殊要求的电子商务领域,消息传输还可以采用ebXML中的ebMS标准,而基于J2EE技术的应用中,还可以选择JMS作为传输协议。当然,我们还可以使用自定义或是某些厂商定义的传输协议,但那不是SOA理想的选择。

  2.3.描述层

  要消费、发现和识别服务资源,需要对服务的语义进行描述。虽然SOA中的服务并不一定是Web服务,但由于Web服务的语言独立性、协议的简单性及众多厂商的支持,Web服务已经是最常用的服务表现形式,而多数SOA的技术标准也大多是基于Web服务的。

  WSDL,即Web Service Description Language的缩写,是由W3C组织提出的,它从句法层面对Web服务的功能进行描述,包括4个不同的粒度:数据类型(Data type)、消息(Message)、方法(Operation)和访问端口(PortType)。鉴于此协议比较简单,与传统的对象和方法调用等概念较一致,而且语言独立,得到了绝大多数厂商的支持,如IBM、BEA及国内中间件厂商东方通等公司的产品,都提供了对Web服务及其标准的支持,而WSDL和SOAP已经成为Web服务最基础的标准。

  另外,在表示Web服务的限制条件和能力方面,基于SOAP协议扩展出WS-Policy协议,目前也逐渐得到部分厂商的支持和应用。

  由于WSDL在Web服务语义方面的描述还不完善,DARPA组织发展了OWL-S协议,它是语义Web服务标记语言的标准,它比WSDL更能向用户提供可理解的服务资源的描述形式,提高服务选取与推荐的准确性。语义Web服务的主要方法是利用Ontology来描述Web服务,然后通过这些带有语义信息的描述实现Web服务来实现服务的自动发现,调用和组合。虽然此协议相对完整和严谨,但是也相对复杂,目前它主要在学术界进行研究和发展,实际应用还比较少。

  2.4.管理层

  与传统的IT技术相比,松耦合的分布式的SOA软件系统,处理服务质量方面的管理问题,更加棘手,难以处理。例如安全性问题,对于跨网络的多个服务访问,如何验证合法身份、防止饱和性攻击、消息内容如何防止篡改和窃取、多个信任域如何一次性验证身份等;另外,如果一笔完整的交易或业务,需要访问跨网络的多个服务,中途调用失败,如何保证事务的完整性?一个业务要多次异步访问同一个服务,而且有调用顺序的要求,如何保证消息传送的可靠性?以上这些问题,如果使用传统的多种非标准技术或不同厂家来实现这些要访问的服务,要解决这些问题简直是场噩梦。这种情况下,统一使用标准的协议,才是解决的最佳方案。为此,一些标准化组织如OASIS等发展出了系列的标准。如WS-Security标准系列、WS-Trust、SAML等,结合传统的安全标准,如KPI、加密算法等,可以用来解决Web服务的安全性问题;WS-Reliability、WS-ReliableMessaging标准,可以用来解决消息传输的可靠性问题;WS-Transaction系列协议,用来解决传统的多个Web服务消费的事务完整性问题。上述协议,对于开发服务容器、业务服务及企业服务总线等产品,可以考虑使用这些协议。目前上述部分标准已经在某些商用产品中使用,如应用服务器(服务容器中实现)、企业服务总线产品等。

  另外,对于Web服务及资源的分布式管理,还可以参考Web服务分布式管理WSDM标准及Web服务资源框架WSRF协议,不过这些协议推出时间比较晚,目前还鲜有用户使用和厂家支持。

  2.5.服务组合层

  服务组合层的标准规范,主要用来构建基础服务及将服务进行组合编排,来形成满足用户需要的业务服务。

  WS4BPEL,即Web Service Business Process Execution Language的简写,Web服务业务流程执行语言,它是一种可执行语言,能够与各种促使业务流程自动化的软件系统相兼容。Web服务编制,通过说明性的方式(而不是编程的方式)表达了进行Web服务合成的需求。此标准主要用于组织内部的业务流程管理及服务编排,目前越来越多的BPM产品基于此规范实现,大有代替传统工作流技术的趋势。

  WS-CDL,即Web Services Choreography Definition Language,Web服务编排定义语言,它定义为在多个交易伙伴之间建立形式化关系,它不要求所有被集成的端点(endpoints)都有Web服务基础设施。此规范更多地用于组织之外的服务与流程编排,目前在国内还不常用。

  SCA(Service Component Architecture),即服务组件架构,提供了一种编程模型,可以支持基于SOA的应用程序实现。SCA是一种模型,可以支持实现服务组件的各种技术,连接服务组件的各种存取方法。服务数据对象(SDO)的设计初衷是为了统一和简化应用程序处理数据的方式,使用SDO,应用编程人员可以用一致的方法操作异构数据源,包括关系型数据库,XML数据源,Web services和企业信息系统。理想上,可以使用多种技术开发组件,然后使用SCA标准来组装组件及更大粒度的服务组装,而SDO可以作为服务及组件之间传输的标准数据格式。虽然SCA已经成为正式的标准,而且有少量的开源和商用实现,但由于其比较年轻(2007年推出第一个1.0版本),国内实际使用的还比较少,而SDO由于发展较早,国内已经有部分用户和厂商在使用。

  JBI是Java业务集成(Java Business Integration)的简称,它定义了一个标准的体系结构允许第三方的组件插入到标准的基础设施上,并且即使这些组件是有不同提供商提供的,它们也可以以一种可预见的和可靠的方式互操作。JBI标准可用来实现企业服务总线及企业应用集成产品,但由于JBI限于Java技术,目前商用的产品支持还比较少,倒是一些开源实现比较多。

  2.6.表示层

  表示层的标准如JSR168和WSRP,主要应用在Portal软件的开发。JSR168是java 规范要求,它为创建portlet建立标准的api,它是为实现porltet、基于java的门户服务器和其他web应用程序之间的互操作性而设计的。在开发基于Java技术的门户产品和Web页面集成时,可以考虑使用JSR168规范。而且,大多数的基于Java技术的Portal产品,都支持此规范。

  WSRP,即Web Services for Remote Portlets的缩写,它定义了如何利用基于 SOAP 的 Web 服务在门户应用程序中生成标记片断的规范。通过定义一组公共接口,WSRP 允许门户在它们的页面中显示远程运行的 portlet,而不需要门户开发人员进行任何编程。WSRP是由OASIS组织制定,目前已得到多数厂商的支持,鉴于它基于Web服务标准,而且技术相对独立,因此随着此标准的逐渐完善,相信越来越多的Portal产品会支持此标准。

  2.7.服务资源的注册与发现

  在服务资源的注册与发现机制上,主要有两种标准规范可用,UDDI和ebXML中的ebRS标准。UDDI注册内容包括Web服务的技术模型和业务模型,本身可扩展,但目前其注册的内容和描述还不够丰富和完整,因此它主要用于Web服务的注册和查找,而Web服务相关其他资源、语义方面的内容,则不能满足要求。在商用的Web服务注册器的实现上,多有基于UDDI的产品,而其他相关资源的注册和查找,则用其他技术实现。

  ebXML中的ebRS标准,其注册机制要比UDDI丰富和完善的多。它的注册机制用途广泛,可以表示范围广泛的数据对象,包括 xml 模式、业务流程描述、ebXML Core Component、UML模型、一般贸易合作伙伴信息及软件组件。但正是由于其完善而复杂,因此它主要用于电子商务领域。

  3.总结
  本文不是SOA宝典,不可能覆盖所有的SOA相关技术标准和应用,如基于J2EE的或基于CORBA的SOA相关技术标准、Web服务完整协议栈、Web服务互操作协议等。因此,有兴趣的读者,可以借鉴本文提供的思路和线索,进一步深入研究SOA相关技术标准和应用,以满足自身或企业的SOA实施和开发需要。

 

分享到:
评论

相关推荐

    IBM soa 培训教材-SOA 治理

    这个案例充分说明了 SOA 治理对于确保服务稳定性和可持续性的至关重要性。通过实施适当的治理机制,可以避免上述问题的发生,确保服务的长期成功。 总之,SOA 治理是确保服务导向架构成功的关键因素之一。通过对...

    IBM-SOA.rar_IBM S_IBM SOA_IBM soa P_PPT SOA_soa ppt

    尽管此文件名不直接与SOA技术相关,但可能包含了对理解IBM SOA解决方案有帮助的额外信息或参考资源。 总之,通过深入学习IBM的SOA报告和编程模型,我们可以了解如何利用IBM的产品和服务构建一个高效、灵活的SOA环境...

    SOA实际案例

    统一建模语言(UML)是一种标准化的图形化语言,用于软件系统的规格说明、可视化、构建和文档化。在SOA的上下文中,UML被用来描绘服务组件、它们之间的关系以及与ESB的交互。通过UML模型,架构师可以清晰地展示服务...

    Oracle SOA Methodology Worksop.pptx

    - 实施SOA通常涉及一系列步骤,如确定公司目标和业务驱动因素、构建SOA业务场景、评估项目价值和收益、定义SOA技术架构和采用模型、确定服务定义和治理策略,以及在项目范围内明确具体目标和需求,进行服务分析与...

    ORACLE EBS SOA USER_GUIDE

    Oracle EBS Integrated SOA Gateway 为企业提供了强大的集成能力,不仅支持多种技术和协议,还提供了丰富的工具和资源来帮助用户成功部署和管理集成项目。通过对本指南的学习,用户可以更好地理解和应用这些技术,...

    AgileEAS.NET SOA中间件系统构成说明书 V5.01

    《AgileEAS.NET SOA中间件系统构成说明书 V5.01》是针对AgileEAS.NET开发平台的一份详细技术文档,旨在阐述该平台的架构设计和组成部分,以帮助开发者和系统管理员理解其工作原理和扩展能力。 在第二章“平台架构”...

    基于Web Services和Java EE的SOA实现.pdf

    SOA(Service-Oriented Architecture,面向服务的架构)已经在全球业界日益成为核心的技术,那么实现SOA的技术标准问题成为严格关注的核心问题。本文首先分析了SOA和Web Services的关系,再进一步分析了Web Services...

    汽车软件SOA架构和服务API.rar

    "SDV发布的SOA标准"这一压缩包文件包含了具体的SOA标准文档,可能是详细的接口定义、使用示例、设计指南等,对于汽车软件开发者和相关从业人员来说,是一份宝贵的参考资料。 综上所述,汽车软件正在经历一场深刻的...

    SOA+ver1.2资料资源下载

    2. **CodePub.Com说明.txt**:这可能是一个关于如何访问或使用CodePub平台的说明文档,CodePub可能是一个在线代码托管或学习平台,提供了与SOA相关的代码示例、实战项目或课程资源。这个文件可能包含平台的登录指南...

    基于SOA的数据挖掘系统构架研究.pdf

    在具体实现上,IBM公司和其他一些研究机构提供了基于Web服务标准的SOA参考实现框架,这些框架为基于SOA的数据挖掘系统提供了技术基础。通过利用这些框架,开发人员可以实现数据挖掘服务的快速开发和集成,从而满足...

    深信服_应用交付技术指标规格说明书.pdf

    深信服应用交付技术指标规格说明书是一份详细阐述深信服科技股份有限公司在应用交付领域的技术标准和解决方案的文档。这份文档旨在提供给最终用户关于深信服应用交付产品的全面理解,包括其功能特性、技术优势以及...

    综合电子信息系统技术体制分类方法 (2).pdf

    在技术体制概念及内涵中,文档指出技术体制一词源自于社会体制的概念,用于统一描述和说明信息系统研制、生产与集成全过程中所采用的主要技术。技术体制在信息技术中的概念,旨在对信息系统研制生成过程中所采用的...

    系统对接方案说明.doc

    系统接口标准采用 SOA 体系架构,通过服务总线技术实现数据交换和信息共享。 2. 接口规范 接口规范是系统对接的关键部分,包括服务目录标准、交换标准、Web 服务标准、业务流程标准和数据交换标准等。服务目录标准...

Global site tag (gtag.js) - Google Analytics