科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道从业务和技术两个角度谈SOA技术标准的应用

从业务和技术两个角度谈SOA技术标准的应用

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

SOA从概念到实用,仅仅短短几年时间,发展十分迅速。等随着SOA发展的深入,各种SOA相关技术标准也随之发展和完善。本文将从业务和技术两个角度,浅谈一下SOA技术标准的应用。

作者:付东普 来源:支点网 2008年5月21日

关键字: MOM SOA 中间件

  • 评论
  • 分享微博
  • 分享邮件

    2.SOA相关技术标准及应用

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

 

  图2.SOA协议栈分层结构

  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协议,不过这些协议推出时间比较晚,目前还鲜有用户使用和厂家支持。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章