Web Service平台主要涉及的技术有SOAP(Simple Object Access Protocal,简单对象访问协议), WSDL(Web Service Description Language, Web Service描述语言), UDDI(Universal Description and Integration ,统一描述、发现和整合协议).
一、SOAP(简单对象访问协议)
SOAP(Simple Object Access Protocal,简单对象访问协议)是一种具有扩展性的XML消息协议,SOAP允许一个应用程序向另一个应用程序发送XML消息,SOAP消息是从SOAP发送者传至SOAP接受者的单路消息,任何应用程序均可作为发送者或接受者。SOAP仅定义消息结构和消息处理的协议,与底层的传输协议独立。因此,SOAP协议能通过HTTP,JMS或SMTP协议传输。
SOAP依赖于XML文档来构建,一条SOAP消息就是一份特定的XML文档,SOAP消息包含如下三个主要元素:
1、必需的<Envelope.../>根元素,SOAP消息对应的XML文档以该元素作为根元素。
2、可选的<Header.../>元素,包含SOAP消息的头消息。
3、必需的<Body.../>元素,包含所有的调用和响应消息。
就目前的SOAP消息的结构来看,<Envelope.../>根元素的通常只能包含两个子元素,第一个子元素是可选的<Header.../>元素,第二个元素是必需的<Body.../>元素。
二、WSDL(Web Service描述语言)
WSDL(Web Service Description Language,Web Service描述语言)使用XML描述Web Service,包括访问和使用Web Service所必须的信息,定义该Web Service的位置、功能及如何通信等描述信息。
一般来说,只要调用者能够获取Web Service对应的WSDL,就可以从中了解它所提供的服务及如何调用Web Service。因为一份WSDL文件清晰地定义了三个方面的内容。
1、WHAT部分:用于定义Web Service所提供的操作(或方法),也就是Web Service能做些什么。由WSDL中的<types.../>、<message.../>和<portType.../>元素定义。
2、HOW部分:用于定义如何访问Web Service,包括数据格式详情和访问Web Service操作的必要协议。也就是定义了如何访问Web Service。
3、WHERE部分:用于定于Web Service位于何处,如何使用特定协议决定的网络地址(如URL)指定。该部分使用<service.../>元素定义,可在WSDL文件的最后部分看到<service.../>元素。
一份WSDL文档通常可分为两个部分:
第一个部分定义了服务接口,它在WSDL中由<message.../>元素和<portType.../>两个元素组成,其中<message.../>元素定义了操作的交互方式。而<portType.../>元素里则可包含任意数量的<operation.../>元素,每个<operation.../>元素代表一个允许远程调用的操作(即方法)。
第二个部分定义了服务实现,它在WSDL中由<binding.../>元素和<service.../>两个元素组成,其中<binding.../>定义使用特定的通信协议、数据编码模型和底层通信协议,将Web Service服务接口定义映射到具体实现,而<service.../>元素则包含一系列<port.../>子元素,<port.../>子元素将会把绑定机制、服务访问协议和端点地址结合在一起。
三、UDDI(Universal Description , Description and Integration,统一描述、发现和整合协议)是一套信息注册规范,它具有如下特点:
1、基于Web。
2、分布式。
UDDI包括一组允许企业向外注册Web Service、以使其他企业发现访问的实现标准。UDDI的核心组件是UDDI注册中心,它使用XML文件来描述企业及其提供的Web Service。
通过使用UDDI,Web Service提供者通过UDDI注册中心,从而允许其他企业来调用企业注册的Web Service。Web Service提供者通过UDDI注册中心的Web界面,将它所提供的Web Service的信息加入UDDI注册中心。该Web Service就可以被发现和调用。
Web Service使用者也通过UDDI注册中心查找、发现自己所需的服务。当Web Service使用者找到自己所需的服务之后,可以将自己绑定到指定的Web Service提供者,再根据该Web Service对应的WSDL文档来调用对方的服务。