soa的参考架构及技术标准的应用研究

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

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

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

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

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

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

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

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

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

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值