WebService,SOAP

来源:互联网 发布:万方等数据库 编辑:程序博客网 时间:2024/05/22 06:20

WebService,SOAP

我把WebService理解为一种协议或实现协议的工具,主要是因为它是实现调用不同平台间的应用,从而达到服务互访,信息沟通的工具;或者说分布式的协调工具;


其组成部分:

WSDL:

Web Service描述语言WSDL 就是用机器能阅读的方式提供的一个正式描述文档而基于XML标准通用标记语言下的一个子集)的语言,用于描述Web Service及其函数、参数和返回值。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的。


SOAP:

SOAP即简单对象访问协议(Simple Object Access Protocol),它是用于交换XML标准通用标记语言下的一个子集)编码信息的轻量级协议。它有三个主要方面:XML-envelope为描述信息内容和如何处理内容定义了框架,将程序对象编码成为XML对象的规则,执行远程过程调用(RPC)的约定。SOAP可以运行在任何其他传输协议上。例如,你可以使用 SMTP,即因特网电子邮件协议来传递SOAP消息,这可是很有诱惑力的。在传输层之间的头是不同的,但XML有效负载保持相同。

Web Service 希望实现不同的系统之间能够用“软件-软件对话”的方式相互调用,打破了软件应用、网站和各种设备之间的格格不入的状态,实现“基于Web无缝集成”的目标。


HTTP:

webservice不一定使用http传输,如上述说的SMTP也可以传输;但通常情况下还是使用HTTP较方便实现请求响应式的操作要求



使用方式:

这里仅简单介绍下android或基于java的客户端访问webService方式:

android访问需要一个较为短小精悍的库ksoap2_android:http://code.google.com/p/ksoap2-android/

访问步骤:

1查看需要访问的ACTION的WSDL,理解其协议中的请求及返回的数据结构// 或编程实现机器自动识别WSDL中的数据结构和请求ACTION,但这通常是服务器引入复杂的类库所自动实现的,KSOAP2能否轻易实现,未研究

2用SoapObject构造请求参数

3设置正确的版本及http参数,拼接正确的SoapEnvelope

4得到返回的SoapObject,进行业务处理

参考:

http://www.cnblogs.com/ghj1976/archive/2011/04/26/2028904.html

http://blog.csdn.net/lyq8479/article/details/6428288


// by zj 注,单纯地看,这与http请求XML,然后返回处理XML没有什么异样.....

优点:应该说

1关键还是WSDL的XSD可以让机器自动阅读而摆脱了人为去识别和解读具体协议的过程,当然在客户端请求这一块,似乎没有应用到这方面的优势

2降低了不同网络平台间沟通的成本,统一了WEB应用互访的协议模式,这一点如果只是简单的CS请求模式,确实也没有体现出优势,如果S呈现出云的规模那就明显了,特别是向外提供访问接口的时候(参考百度百科:依据Web Service规范实施的应用之间, 无论它们所使用的语言、 平台或内部协议是什么, 都可以相互交换数据。Web Service是自描述、 自包含的可用网络模块, 可以执行具体的业务功能。)








0 0