WSDL信息模型充分利用了抽象规范与规范具体实现的分离,也就是分离了服务接口定义(抽象接口)与服务实现定义(具体端点)。 抽象接口规范描述了终端的处理能力,它在WSDL中表示为portType。束定机制 (binding mechanism)在WSDL中表示为binding元素,它使用特定的通信协议、数据编码模型和底层通信协议,将Web服务的抽象定义映射至特定实现。若束定结合了实现的访问地址,抽象端点也就成为可供服务请求者调用的具体端点(concrete endpoint),WSDL的port元素表示了这一结合。 抽象接口可以支持任何数量的操作(operations)。操作是由一组消息(messages)定义,消息定义了操作的交互定式。与抽象的消息、操作概念相对应的具体实现是由binding元素指定。与XML应用相同,WSDL模式定义了几个高层元素,或称为主要元素。在WSDL中,Web服务描述中的主要元素如下: Types,定义了Web服务使用的所有数据类型集合,可被元素的各消息部件所引用。它使用某种类型系统(一般地使用XMLSchema中的类型系统)。 Message,通信消息数据结构的抽象类型化定义。使用Types所定义的类型来定义整个消息的数据结构。 Operation,对服务中所支持操作的抽象描述。一般单个Operation描述了一个访问入口的请求/响应消息对。 PortType,对于某个访问入口点类型所支持操作的抽象集合。这些操作可以由一个或多个服务访问点来支持。 Binding,包含了如何将抽象接口的元素(portType)转变为具体表示的细节,具体表示也就是指特定的数据格式和协议的结合;特定端口类型的具体协议和数据格式规范的绑定。 Port,定义为协议/数据格式绑定与具体Web访问地址组合的单个服务访问点。 Service,这是一个粗糙命名的元素,代表端口的集合;相关服务访问点的集合。
因此,portType(与message和type元素的细节相结合)描述了Web服务是什么,binding元素描述了如何使用Web服务,port及service元素描述了Web服务的位置。2、WSDL对象结构图
从图2所示的WSDL对象结构图可知,一个WSDL文档中可以包含一个Types,多个Message、PortType、Binding和Service。
其中,Types是一个数据类型定义的容器,包含了所有在消息定义中需要的XML元素的类型定义。 Message具体定义了在通信中使用的消息的数据结构,Message元素包含了一组Part元素,每个Part元素都是最终消息的一个组成部分,每个Part都会引用一个DataType来表示它的结构。Part元素不支持嵌套(可以使用DataType来完成这方面的需要),都是并列出现。 PortType具体定义了一种服务访问入口的类型(传入/传出消息的模式及其格式),一个PortType可以包含若干个Operation,而一个Operation则是指访问入口支持的一种类型的调用。在WSDL里面支持四种访问入口调用的模式:1) 单请求; 2) 单响应; 3) 请求/响应; 4) 响应/请求。在这里请求指的是从客户端到Web服务端,而响应指的是从Web服务端到客户端。PortType的定义中会引用消息定义部分的一个到两个消息,作为请求或响应消息的格式。 Service描述的是一个具体的被部署的Web服务所提供的所有访问入口的部署细节,一个Service往往会包含多个服务访问入口,而每个访问入口都会使用一个Port元素来描述。 Port描述的是一个服务访问入口的部署细节,包括通过哪个Web地址(URL)来访问,应当使用怎样的消息调用模式来访问等。其中消息调用模式则是使用Binding结构来表示。 Binding结构定义了某个PortType与某一种具体的网络传输协议或消息传输协议相绑定,从这一层次开始,描述的内容就与具体服务的部署相关了。比如可以将PortType与SOAP/HTTP绑定,也可以将PortType与MIME/SMTP相绑定等。
Powered by: BlogJava Copyright © 风太少