万维网服务是面向服务的体系结构(service-oriented architecture,SOA)建立在超文本传输协议(hypertext transfer protocol,HTTP)之上的实现方式。WSDL将万维网服务描述为一组端口,端口上的操作会处理各种消息,其中操作和消息是抽象描述的,它们被绑定到一个具体的网络协议和消息格式上。
WSDL1.1版本于2001年3月提交到万维网联盟(World Wide Web consortium,W3C)。WSDL1.2版本于2003年6月发布,成为W3C的工作草案。2007年6月,WSDL1.2被正式更名为WSDL2.0,此时WSDL2.0已成为W3C的推荐标准。
WSDL文档使用的主要元素如图所示,主要包括:数据类型,为了获得互操作性和平台中立性,WSDL使用与平台和语言无关的类型系统;消息,使用所定义的类型来定义消息的数据结构;操作,对服务中所支持的操作的描述,每一个操作包含一对输入\输出消息;访问入口点,一组特定类型的操作集合;绑定,将操作和消息绑定到具体的网络协议和消息格式之上;端口,为服务可提供的操作赋予可以被访问的网络地址;服务,一组端口的集合。
WSDL刻画了万维网服务3个方面的信息:①万维网服务做什么,由操作和访问入口点描述服务所能提供的功能。②如何调用万维网服务,由绑定要素刻画服务所使用的数据格式以及调用服务的必要协议。③万维网服务位于何处,由端口元素刻画调用服务所使用的网络地址。根据WSDL文档,服务请求者就可以通过网络地址调用万维网服务所能提供的操作。
WSDL广泛应用的原因主要有:①因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的。②顶层WSDL与底层的简单对象访问协议(simple object access protocol,SOAP)基础结构相结合,可以封装服务请求者的应用程序和服务提供者的网络服务之间的细节。③因为实现万维网服务的体系结构松散耦合,所以无论是请求者还是提供者可以各自独立地使用平台、编程语言或分布式对象模型。