随着近几年SOA概念的推广及相关技术标准的发展,SOA逐渐为众多的用户所接受,并在电子政务及企业应用的建设中逐步得到应用。但是,面对众多纷繁复杂的SOA相关技术标准,IT企业在开发SOA相关软件产品及用户实施SOA进行选择时,往往分不清楚哪些技术标准是他们所需要的,而且相当部分的SOA技术标准的定位,有一定的重合。因此,选择适合的SOA相关技术标准,成为IT企业和实施SOA用户的面临的难题。下面,简单介绍一下部分SOA相关技术标准,并作简单分析。
1. SOA相关技术标准分类
标准与规范基本相似,但略微不同,规范是标准的建议文档。标准一般是由业界公认的标准化组织制定和发布,而规范多为厂商或非标准化组织发布。本文不对它们进行区分,统一称为标准。
SOA相关技术标准的一种分类方式,是根据技术标准在SOA中的角色功能,将其分为三大类:服务层次上的信息交互规范、基础通信标准规范、元数据标准规范。根据各种标准规范在SOA体系中的角色功能,可以将SOA 协议栈分为7层。从底向上,包括传输层、消息层、描述层、管理层、服务组合层、表示层及服务发现注册层,其中除了ebXML和电子商务相关的技术标准(如资源注册的ebRS、消息表示ebMS、外部服务资源编排的WS-CDL等)外,大多数在国内已经得到了相当的应用,如东方通科技的应用集成产品TongIntegrator和应用服务器TongWeb,都支持部分Web服务的相关技术标准,如传输层的SOAP、RMI、SMTP,消息层的SOAP、JMS以及描述层的WSDL协议等。
2. SOA相关技术标准比较说明
由于SOA相关技术标准太多,这里并没有完全列举出所有的SOA相关技术标准。下面,就部分相似的SOA相关标准进行比较说明,以便进行SOA开发时,能够基于了解认识进行选择。
2.1. WSDL与OWL-S
W3C组织提出的标准的Web服务描述语言WSDL,它从句法层面对Web服务的功能进行描述,包括4个不同的粒度:数据类型(Datatype)、消息(Message)、方法(Operation)和访问端口(PortType)。这只是提供了Web服务的接口描述,对服务的行为约束和属性描述缺乏进一步的支持。
OWL-S是语义Web服务标记语言的标准,它比WSDL更能向用户提供可理解的服务资源的描述形式,提高服务选取与推荐的准确性。语义Web服务的主要方法是利用Ontology来描述Web服务,然后通过这些带有语义信息的描述实现Web服务来实现服务的自动发现,调用和组合。语义Web和Web服务是语义Web服务的两大支撑技术。OWL-S是连接两大技术的桥梁,目前对语义Web服务标记语言研究最重要的组织就是DARPA组织,其研究组OWLServicesCoalITion提出了语义Web服务标记语言OWL-S(原DAML-S)。
语义Web服务及相关标准(OWL-S等)对于Web及Web服务应用的深化具有重要意义,同时也具有很好的发展前景。目前OWL-S等语义Web服务相关标准的应用还主要是研究性、示范性的。
2.2. XML Web服务与ebXML
SOA中的服务,当前多以Web服务技术实现和解释,传统的Web服务及其相关协议,都是以XML为基础进行扩展的,因此我们把它称为XMLWeb服务。其实,在XMLWeb服务之前,ebXML已经出现,鉴于此标准复杂而完善,因此它在传统的电子商务领域,用处较广。就具体的内容和定位而言,两者有一定的区别。
1) 消息传输技术
XML Web服务和ebXML都使用SOAP作为消息传输技术,但是XMLWeb服务服务定义了松散耦合的协议堆栈,该堆栈由可靠传输(WS-ReliaBIlITy) 和 安全(WS-Security)的各个规范组成,而ebXML将所有这些功能都融入到自己的消息传递标准和ebMS中,从而使用混合技术。
2) 服务描述和发现
XMLWeb服务分别使用WSDL和UDDI标准,UDDI注册机制是基于目录的体系结构,其注册内容包括技术模型和业务模型,本身可扩展但目前其注册的内容和描述还不够丰富和完整,图3为UDDI的数据模型及关系图。