您当前的位置:首页 > 新闻资讯 > 产品动态 > 正文

【新东网技术大咖带您走进gSOAP】一个强大的开源工具

发布时间: 2016-11-11 11:51:49  
分享到:

 

 

文/杨宗峰 电商支撑部

 

 

 
专栏介绍

新东网自2001年成立以来,掌握大数据、云计算、通信、物联网及区块链等信息技术,拥有一支逾16年经验的强大IT团队。为沉淀企业技术实力,继续发挥行业优势,《东网快讯》特邀新东网技术大咖带您走进这些先进信息技术,揭秘新东网16年来的技术成果,每周五发布

 

 

什么是gSOAP呢?
 

 

简单地说,gSOAP是一个跨平台的,能在Windows、Linux、MAC OS和UNIX下使用C和C++语言编码,用于开发Web Service服务端和客户端的工具。

 

更具体地说,gSOAP提供了一个SOAP/XML 关于C/C++ 语言的实现,从而让C/C++语言开发webservice服务或客户端程序的工作变得轻松了很多。

 

绝大多数的C++  webservice服务工具包提供一组API函数类库来处理特定的SOAP数据结构,这样就使得用户必须改变程序结构来适应相关的类库。与之相反,gSOAP利用编译器技术提供了一组透明化的SOAP API,并将与开发无关的SOAP实现细节相关的内容对用户隐藏起来。

 

gsoap自2001年以来经过10几年的发展,已经非常成熟,许多工业项目和产品都在使用该工具。由于他的源代码为开源,并且在行业标准协议、传输协议、跨平台、安全及多线程、处理速度快、占用内存小等优势下,受到了广泛开发爱好者的青睐。

 

gSOAP工具如何应用?
 

 

对于新东网来说,有两个省份运营商电信某某系统应用了gsoap工具。

 

具体应用场景为该系统平台中银联缴费的前置机服务。

 

 

 

前置机服务的代码为标准C语言实现,为了让前置服务提供给web前端系统调用,C语言的服务就可以通过gsoap工具轻松发布成标准规范的webservice协议,达到跨平台的目的,同时也免除了接入系统开发语言的限制。正因为如此,web前端不受语言的限制,不管是行业上常用的php或是.net或是java,都能轻松通过gsoap调用C语言的服务。

 

下面介绍一下如何使用gsoap工具:

 

1) 解压工具包并配置环境变量
将gsoap_2.7.12.tar.gz解压到本地目录,这边需要注意,尽量不要放于带空格或是带中文名字的目录,国外的软件对中文支持欠缺些。

    将D:\gsoap-2.7\gsoap\bin路径添加到系统的path中。

 

2) 根据wsdl描述文件生成客户端代码

 

 

根据web前端和前置机服务预先定义好的协议WSDL描述文件,即前端调用api规范文档,生成C/C++客户端代码文件。如下图中”bank”开头的文件。包含.h和.cpp文件。步骤如下:

 

a. 先执行以下命令,生成头文件:

 b、在执行以下命令,解析bank.h文件,生成存根程序

 

 

 

最后出来的文件如下:

 

3) 将上述文件拷贝放入前置机工程中

 

4) 前置机工程中创建ServiceInterface.cpp类同时导入第三步生成的文件。

 

#include "BankPackage.h"

#include "bankHIBankBayServiceHttpBindingService.h"

#include "bankH.h"

extern CSockDeal gBankSockDeal;

 

5) 根据银联的ISO8583协议,编写业务逻辑代码,下面以签到为例进行说明:

 

 

如上述,方法IFA_USCOREPaymentBankReqAndResp后所带的参数有两个对象,这两个重要的对象都是gsoap工具的功劳,即由gsoap封装在bank.h头文件中。

 

参数:ns1__IFA_USCOREPaymentBankReqAndResp则是接收web端的请求对象,根据该对象可以获取web端上送上来的所有入参信息。前置服务根据这些入参信息处理后进行打包并发送给银联。

 

参数:ns1__IFA_USCOREPaymentBankReqAndRespResponse则是响应给web端的返回对象,当在前置机服务内,调用银联前置机后,可以将银联的返回信息处理后通过该对象返回给web前端。最后,web端将结果展示给用户。

 

gSOAP工具的妙用
 

 

gSOAP是一种跨平台的C和 C++软件开发工具包。生成C/C++的RPC代码,XML数据绑定,对SOAP Web服务和其他应用形成高效的具体架构解析器,它们都受益于一个XML接口。 这个工具包提供了一个全面和透明的XML数据绑定解决方案,Autocoding节省大量开发时间来执行SOAP/XML Web服务中的C/C++。此外,使用XML数据绑定大大简化了XML自动映射。应用开发人员不再需要调整应用程序逻辑的具体库和XML为中心的数据。

 

分享到:
地址:福建省福州市铜盘路软件大道89号软件园A区26号楼 电话:0591-83519233 传真:0591-87882335 E-mail:doone@doone.com.cn
版权所有 新东网科技有限公司 闽ICP备07052074号-1 闽公网安备 35010202001006号