2. SOA的持续进化(标准组织与贡献厂商)
XML作为一种语言,被定义为一个规范,但实际上也被用作表达所有的XML及Web服务规范。这个普遍思路褒扬了这样的事实:不管规范的规模会有多大的增长,都分享了一个公共的根基。
无论你是否需要在这些扩展上直接工作,它们的存在与进化将对你所构建的面向服务解决方案有持续影响。有关规范与标准形成的过程及原因的知识,也因此关系到你对于SOA世界的理解。
2.1. 比较“标准”、“规范”与“扩展”
这些术语常可交替使用,但是许多---特别是与标准组织相关---还是有明显的区别。规范是标准的建议文档。直到规范被提交到一个公认的标准组织,并被接受、公布,它都不是正式的工业标准。
尽管如此,规范还可被厂商发布(特别是合作厂商),并随之被这些厂商平台实现,通常会进一步成为非正式的工业标准,只是由于它们变得非常普遍。
为避免混淆,本书将这些术语作如下定义:
﹡ 标准 公认的工业标准。所有的第一代Web服务规范可认作标准,许多XML规范同样如此。
﹡ 规范 被提议的或公认的标准,以规范来描述。XML标准,第一代Web服务标准,以及WS-*扩展都以规范的方式存在。
﹡ 扩展 扩展典型地代表WS-*规范以及WS-*规范所提供的特性。
2.2. 标准组织对SOA的贡献
众所周知,SOA由标准驱动。早先的平台在厂商特定的边界内实现;环境内的标准实际上是专有的。允诺厂商中立的通信框架常伴有不可谈判的需求,就是要定义此框架的标准是同样也厂商中立的。
可是,如何确切地制定这些标准,并非总是很清晰。互联网标准组织现在已经存在很长时间,但是它们各自的议程总不大清楚,有时甚至有所重叠。更复杂的问题是这些主要的厂商中立标准的贡献者是厂商自身。微软、IBM、Sun微系统以及众多其他公司已经扮演了日益重要的角色,不仅是制定Web服务规范,还促进了实现这些规范作为工业标准的实现。
厂商如何贡献并影响了标准的开发过程将在后续章节解释。让我们首先来熟悉三个最主要的标准组织。它们共同负责完成XML与Web服务架构的进化。
万维网联盟(W3C)
最初由提姆•伯尼尔斯•李于1994创立,W3C对于万维网作为全球信息分享的语义媒介负有极大责任。它开始于HTML的发布,这是IT行业所产生的最流行的一种语言。当互联网用于包括由电子商务开端的更广范围时,W3C开始制定关键基于XML的基础标准,象XML Schema及XSLT。
四个独立工作组对W3C的Web服务活动工程作出了重要贡献,导致了重要的Web服务基本标准开发。首要的是SOAP与WSDL标准,现在已成为Web服务相关的标志性规范。更近一些,W3C已提出了Web服务编舞描述语言(WS-CDL),一个控制标准化的服务间交换模式的规范。值得关注的还有Web服务架构文档本身。尽管这个文档不断经历变化,它还是保留了一个参考点,且是少数可用的平台中立的Web服务架构文档之一。
W3C以正式和严格的标准开发方法而闻名。其过程需要规范受制于诸多的评审与修订阶段,每一个新的版本都会发布在其公开网站上。这样完全的过程要以时间为代价,完成一个标准要用两到三年。
结构化信息标准进步组织(OASIS)
原本于1993年作为SGML开放组织而成立,OASIS五年之后改变了其名称,代表其关注点从SGML转为XML相关的标准。OASIS拥有来自超过600家组织的数千个成员,是一个公认的互联网标准制定组织。
OASIS假定拥有著名的WS-BPEL规范的所有权,并且还以其ebXML的开发(一个旨在建立标准化的B2B数据交换方法的规范)和对于UDDI规范的贡献而闻名,后者是第一代Web服务平台的核心标准。
OASIS组已经有力地推进了XML与Web服务安全扩展的开发。安全声明标记语言(SAML)用扩展访问控制标记语言(XACML)提供了单点登录与授权领域的重要特性。然而,最重要的安全相关项目由Web服务安全(WSS) 技术委员会完成。这个小组被委托进一步开发并实现重要的WS-安全框架。
不同于W3C集中于建立核心的、工业未知标准,OASIS组的主要兴趣在于利用这些标准去制定附加规范以支持不同的垂直行业。而且,OASIS所用的标准开发过程要明显短一些。
Web服务协同组织(WS-I)
WS-I的主要目标不是创建新标准,而是确保最终实现开放的协同性目标。这个联盟建立于2002年,已经迅速成长并获得了近200家组织的支持,包括所有的SOA主流厂商。
WS-I最为人所知的是发布基本配置文件,用于建立可用标准的基础推荐文档,这些文档共同用于形成最想要的协同性架构。藉由正式地定位WSDL、SOAP、UDDI、XML与XML Schema规范的版本,基本配置文件已成为IT社团内的重要文档。这些组织想要确保它们开发的SOA与其他系统充分协同,并能够保证对于遵从基本配置文件的高层次赞同。
最近,WS-I开发了基本安全配置文件。本质是与基本配置文件属于同一概念,这个文档建立了最重要的Web服务与XML安全技术集合。WS-I已宣布了持续发布针对每一Web服务主要方面的相关协同性配置文件计划,包括可靠通讯、Web服务管理与编曲。
除了建立基本的协同性架构之外,配置文件还补充了示例实现及最佳实践,以便指导如何与标准一起使用从而达到协同性品质。而且,WS-I还提供了一系列测试工具可用来确保符合配置文件。许多厂商还提供了这些工具的变种,例如:将基本配置文件作为一致的有效性标准的一部分进行有效性检查。
WS-I努力提供一个场所,能在同一水准上接受其成员的贡献。当其成员包括重要的SOA厂商之时,没有哪个公司可以比另一个更有权力,不管其规模和市场分额有多大。
尽管W3C近期拒绝了加入WS-I联合成员的邀请,但来自WS-I的工作组成员不断主动地直接参与W3C及OASIS的各个工作组工作。这些WS-I代表的角色持续对协同性相关问题进行反馈。
它们如何比较
表2.1在概要地提供了我们本节所讨论的三个组织间的相互比较。
表2.1. 标准组织的比较