转载-----------------------------------------------
最近看了xml schema,xpah,和xslt的相关内容,感觉wsdl就是一个soap的schema,一个soap就是一个wsdl的实例,实际上wsdl就是整个webservice的schema。
从这个角度看,要学好soap,不如从xml schema开始,然后转到wsdl的学习,这样webservice就没有其他理论上的东西可学了。就剩下类库内的函数如何使用的问题了。
对SOAP/Web Service/WSDL关系说明如下:
- Web Service实现业务诉求:Web Service是真正“办事”的那个。
- WSDL提供“能办的事的说明”:我想帮你的忙,但是我要告诉你我都能干什么,以及干这些事情需要的参数类型。
- SOAP提供“请求”的规范:你想让人家办事,总得告诉人家你想干什么吧,SOAP就是定义这个“请求”的格式的,按照SOAP定义的“请求”格式“书写”请求就可以保证Web Service能够正确的解读你想让它干什么以及你为它提供了什么参数。在这个请求中,你需要描述的主要问题有:向哪个Web Service发送请求,请求的参数类型、参数值、返回值类型。这些都“填写”完毕,也就完成了符合SOAP规范的SOAP消息。
WSDL是服务接口,从外部看它就是服务提供者,没有WSDL就相当于没有服务提供者, SOAP是服务者和消费者建立的双向通信通道,服务方提供给消费方WSDL,这是两者达成的共识。SOAP是在解析并遵守WSDL文档格式基础之上开发的. 没有WSDL文档,就无法开发SOAP.SOAP是依附于HTTP协议之上的传输协议,用来建立服务方和消费方的连接,传输的数据格式是由WSDL定义的.
WebService中的三个组件WSDL,SOAP,UDDI,只有UDDI是可选的,另两个都是必选的.