WebServices技术
WebServices技术是服务器程序通过Internet发布应用服务并能够被客户端程序远程调用的一种标准机制。
采用的标准和技术有XML、SOAP、HTTP、WebServices描述语言(WSDL)和通用唯一识别码(UDDI)等。
客户端程序通过WebServices,调用暴露在外界的应用程序编程接口(API),就可以使用位于服务器的WebServices。
下面介绍XML技术、SOAP和WSDL:
XML
XML技术是WebServices的关键技术,是描述结构化信息的标准格式,具有自描述、可扩展等特点。
其他略。
SOAP
SOAP是一种基于XML的数据传输协议,WebServices利用SOAP实现不同设备与系统之间的远程调用;
-
>> 为什么需要SOAP?
为了满足:应用具有广泛的兼容能力,可以支持不同的系统平台、数据格式和多种连接方式,要求在Internet 环境下,实现系统是松散耦合的、跨平台的,与语言无关的,与特定接口无关的,而且要提供对Web 应用程序的可靠访问。
-
什么是SOAP?
SOAP(Simple Object Access Protocol )简单对象访问协议是在分散或分布式的环境中交换信息的简单的协议,是一个基于XML的协议,它包括四个部分:
- SOAP 封装(envelop):封装定义了一个描述消息中的内容是什么,是谁发送的,谁应当接受并处理它们的框架
- SOAP 编码规则(encoding rules):用于表示应用程序需要使用的数据类型的实例
- SOAP RPC表示(RPC representation):表示远程过程调用和应答的协定
- SOAP 绑定(binding):使用底层协议交换信息
-
SOAP有两种工作模式
一种是RPC(Remote Procedure Call),另一种是Message-Orientd。MO可以利用XML来交换结构更复杂的数据,通常以SMTP作为传输协议。
-
RPC模式的SOAP可以理解为这样一个开发协议:SOAP=RPC+HTTP+XML,具有以下特点:
- 采用HTTP作为通信协议,采用客户*/*服务模式;
- RPC作为统一的远程方法调用途径;
- 传送的数据使用XML语言,允许服务提供者和客户经过防火墙在Internet上进行通信。
-
SOAP简单的理解,就是这样的一个开放协议SOAP=RPC+HTTP+XML:采用HTTP作为底层通讯协议;RPC作为一致性的调用途径,XML 作为数据传送的格式,允许服务提供者和服务客户经过防火墙在INTERNET进行通讯交互。
客服端请求时,不管对方客服端是什么平台的,首先把请求转换为XML格式,SOAP网关可以自动执行这个转换。为了保证传参、方法名、返回值的唯一性,SOAP协议使用了一个私有标记表,从而服务端的SAOP网关可以正确的解析。
转换成XML格式后,SAOP终端名(远程调用方法名)及其他的一些协议标识被封装成HTTP请求,然后发送给服务器。如果应用程序要求,服务器返回一个HTTP应答信息给客户端。(与通常对HTML页面的HTTP GET请求不同的是,此请求设置了一些HTTP HEADER,标识着一个SOAP服务激发,和HTTP包一起传送。)
WSDL
WSDL是基于XML的服务描述标准,用于描述WebServices的功能和调用方法。
gSoap介绍
WebServices的实现可以采用了开源的工具gSoap。
gSoap的出现使在C/C++环境下实现一个通用性较强的WebServices程序变得简单。gSoap的编译器能够自动地将用户定义的本地化的C/C++数据类型转变为符合XML语法的数据结构,这样只用一组简单的API就将用户从SOAP细节实现工作中解脱出来,能够专注到应用程序的实现中去。
参考文章
-
gSoap官网。遇到问题时,官网往往是最能提供帮助的地方。
-
http://gsoap2.sourceforge.net
-
-
值得参考的链接。
- gSoap使用心得: http://www.cppblog.com/qiujian5628/archive/2008/10/11/54019.html
- gSoap接口定义: http://blog.sina.com.cn/s/blog_5ee9235c0100de3g.html