以前也曾经写过简单的WebService,但是并没有深入的研究,这两天看了园子里的一些文章,又请教了身边的高人,把SOAP、Web Service和WSDL的关系大概搞明白了,举例说明如下:
X局有两个副局长A和B,A副局长分管财务,B副局长分管计划生育,但是A副局长是上海人,B副局长是广东人,两个人又都只会说自己家乡的方言,不会说普通话,这让下面的工作人员在请示汇报的时候非常困难,为了解决这个问题,局里的科员小c发明了一个表格,表格列出了需要向局长请示的问题以及说明这个问题所需要的数据等等(这个是SOAP的雏形),采用这种方式之后,工作人员就可以在需要向领导请示工作的时候直接填写表格,然后把表格交给相应的局长就可以了。后来X局的直属上级机关Y部的领导发现了这个方式,决定推广这种方式,将这种“表格描述问题”的方式升级为规范(或者称为“协议”),在所有Y部下属单位中执行,这个时候就是SOAP了。
后来X局又出现了新的问题,科员小d到分管计划生育的B局长那里领TT(嘿嘿,yy一下),但是TT没有了,需要进行采购,这个时候就需要与分管财务的A局长打交道了,由于小d对工作流程不太了解,不知道A、B副局长在这个问题上分别承担什么职责,又产生了困难。这时小c再次发挥了他的聪明才智,他又发明了一种表格,这个表格专门说明某位领导分管什么工作,都有哪些职责(Web Service),在请示每个问题上应该提供什么样的材料和数据,会得到什么样的反馈,这个就是WSDL了。
通过上面的例子,对SOAP/Web Service/WSDL关系说明如下:
- Web Service实现业务诉求:Web Service是真正“办事”的那个。
- WSDL提供“能办的事的说明”:我想帮你的忙,但是我要告诉你我都能干什么,以及干这些事情需要的参数类型。
- SOAP提供“请求”的规范:你想让人家办事,总得告诉人家你想干什么吧,SOAP就是定义这个“请求”的格式的,按照SOAP定义的“请求”格式“书写”请求就可以保证Web Service能够正确的解读你想让它干什么以及你为它提供了什么参数。在这个请求中,你需要描述的主要问题有:向哪个Web Service发送请求,请求的参数类型、参数值、返回值类型。这些都“填写”完毕,也就完成了符合SOAP规范的SOAP消息。
以上是本人暂时对SOAP/Web Service/WSDL三者关系到目前为止的浅显理解,最后把两个缩写名词的英文给出来吧:
- SOAP:Simple Object Access Protocol
- WSDL:Web Services Description Language
正文到此为止,欢迎拍砖。
另1:小广告时间到了,一个朋友的网站,做汽车后市场的,http://www.taiyoucai.la/和http://www.xiuchebao.com/,很不错,帮忙宣传一下 :P
另2:按照本人的理解,Web Service应该是提供了一种远程服务接口,但是W3C中应该没有规定必须使用SOAP方式访问它,不知道这个理解对不对,另外如果这个理解是对的,.net中提供的用于开发Web Service的相关类是否提供了其他可选的访问方式,请高人解答,多谢多谢!!!!