基于ONVIF协议的(IPC)客户端程序开发-3:使用gSOAP生成Web Services框架代码

原文链接点击打开链接

1. 不要自己造轮子


ONVIF标准是使用SOAP方式实现的Web Services,本专栏上一篇文章已经介绍了什么是Web Services,涉及很多概念,包括SOAP、HTTP、XML,RPC等等。辣么多东东,全部要自己码代码实现吗?当然不用,我们不必自己造轮子,有现成的工具会帮我们自动生产大部分的代码框架。

这样的工具有很多,比如:

  1. gSOAP工具,适用于C/C++语言开发。
  2. Apache CXF工具,适用于JAVA语言开发者。

基于ONVIF协议的(IPC)客户端程序开发-3:使用gSOAP生成Web Services框架代码_第1张图片

我的项目采用C/C++语言,所以本文重点讲解gSOAP。后面,网络摄像机(IPC)客户端程序代码都是使用gSOAP工具自动生成的,所以必须对gSOAP工具必须有一个深入的理解,为此,我们先从简单的例子开始理解。

2. gSOAP简介

gSOAP官方网址:http://www.cs.fsu.edu/~engelen/soap.html

gSOAP开源版下载网址(最新版本):http://sourceforge.net/projects/gsoap2

gSOAP开源版下载网址(历史版本):https://sourceforge.net/projects/gsoap2/files/gSOAP/

gSOAP有分商业版「commercial edition」和开源版「open source edition」,我撰写本专栏用的gSOAP是开源版「gsoap_2.8.45」。

gSOAP 编译工具提供了一个SOAP关于C/C++ 语言的实现,从而让C/C++语言开发Web Services服务端或客户端程序的工作变得轻松了很多。甚至,即使你对Web Services不甚了解都没有关系,有了gSOAP这样的工具,你也能开发基于SOAP方式实现的Web Services客户端。

gSOAP到底会自动生成哪些框架代码,下图中浅绿色框中的部分就是自动生成的代码。



3. gSOAP工具转换原理


基于ONVIF协议的(IPC)客户端程序开发-3:使用gSOAP生成Web Services框架代码_第2张图片 

gSOAP工具根据WSDL文档,自动生成C/C++语言的客户端/服务端框架代码。这其中有两个工具很重要,wsdl2h和soapcpp2。wsdl2h工具根据WSDL文成C/C++头文件,而soapcpp2工具则是根据该头文件生成C/C++的框架源码。

gSOAP工具可以在Windows、Linux和Macosx操作系统下运行,gSOAP工具包中自带有Windows和Macosx操作系统的wsdl2h和soapcpp2可执行文件,而Linux操作系统的,得自己编译。

通过实验证实,用Windows和Linux工具生成的框架代码,是一样样的,没有区别。

如何使用gSOAP,在gSOAP官网,或者在工具包gsoap\doc\soapdoc2.pdf文档中都有很详细的说明,大家可以参考。


你可能感兴趣的:(onvif)