2007年6月27日,WSDL 2.0最终被批准成为万维网联盟(W3C)官方推荐。Web服务描述工作组已在这些标准上工作超过了6年。该推荐预定于2006年12月31日到期,但是后来又得以延期至今年的6月30号。
关于WSDL 2.0是WSDL 1.1(目前事实上的标准)期待已久的后续改进,还是根本就没有关联,已有太多的争论。就这一问题,Mark Little已在InfoQ上发表了一篇内容广泛的新闻。WSDL从1.1到2.0主要的变化:
WSDL组件的命名变化,如portType已被改名为interface。 移除消息结构 支持额外的消息交换模式 支持除XML模式之外的其余类型系统 HTTP绑定,它支持POX(Plain Old XML)/REST风格的服务 文章“WSDL 2.0:务实分析和互操作框架”给出了最新的变化概览,并讨论了WSDL 1.1与2.0之间互操作性问题:
采用WSDL 2.0将导致与已有WSDL 1.1实现的互操作性问题。大多数Web服务实现在生产者和消费者两端都是基于WSDL 1.1的。采用新标准会引起两种互操作性问题。第一,通过WSDL 2.0规范暴露已托管服务的相关问题;第二,客户端使用基于WSDL 2.0规范消费服务的相关问题。 Eran Chinthaka(Apache Axis2项目的先驱成员),在他的文章“使用Web服务赋予REST能力,部分1:WSDL 2.0中的REST和Web服务”中,检验了WSDL 2.0对于POX/REST风格服务的支持:
WSDL 2.0 HTTP绑定的动机是允许服务拥有SOAP和HTTP两种绑定。服务实现解决应用数据(它们经常被描述成为XML元素)的处理,服务并不知道那些数据进到了SOAP信封、HTTP GET、还是HTTP POST里。WSDL 2.0 HTTP绑定允许你将服务暴露为一个可被HTTP方法调用的资源。同时,你需要明白HTTP绑定并不能使你实现全部REST风格的系统。这经常被许多人争论,并且它完全依赖于你对REST可以交付的东西有多相信。 尽管文章的标题预示了WSDL 2.0对REST的支持,但是至少从摘要中显示作者所在意的WSDL 2.0支持是POX over HTTP,而非REST。关键点是WSDL是以单一URI为中心的,提供任意数目操作的是服务。而REST恰恰是反其道而行之。
WSDL 2.0可能提供一些有趣的变化。然而看看SOAP的历史,在不久的将来,WSDL 2.0成为主流的可能性不高。SOAP 1.1提交后的3年,即2003年6月,SOAP 1.2就已经达到推荐状态,但是仍然未被广泛使用,有时甚至不支持。此外,只有很少产品仅仅实现了WSDL 2.0,Apache Axis2是其中之一。根据以往的经验判断,WSDL 2.0还要很长的路要走。你认为呢?
|