关于XML-RPC

          这个星期在工作中实现了一个文件拷贝的程序,该程序从局域网中的某台机器上将某个文件或某个文件下的文件拷贝到本地机器中,程序运行于windows平台,语言是C++。在这个程序中主要的难点(这里先说是难点吧,其实感觉应该是程序需要考虑到的技术点)应该三处,一:程序与系统中其他模块如何交互,即某人如何告诉你拷贝命令和拷贝完成如何通知需要通知的人。二:拷贝文件的具体操作。三:任务中优先级的设置。这篇文章就介绍一下,C++程序中与其他模块交互所使用到的XML-RPC。

       一.XML-RPC简介

          XML-RPC的全称是XML Remote Procedure Call,即XML远程方法调用。它是一套允许运行在不同操作系统、不同环境的程序实现基于Internet过程调用的规范和一系列的实现。这种远程过程调用使用http作为传输协议,XML作为传送信息的编码格式。Xml-Rpc的定义尽可能的保持了简单,但同时能够传送、处理、返回复杂的数据结构。(摘自百度百科)

       二.使用XML-RPC调用C/C++程序

            我的程序是使用C++语言实现,因为我这里只是系统中一个小的模块,所以会有其他程序调用来拷贝文件,而其他程序有客户端(C#)和调度上报系统(PHP)。所以其他程序如何给我发命令,让我来执行呢?这里客户端和调度上报系统在不同的机器上。这里一种方式是自建socket,自定义命令格式来相互交换。而我们采用是通过XML-RPC来完成命令。

           

             上图显示了如何使用 XML over HTTP 通过远程过程调用来调用 C++ 程序。PS:类似XML-RPC来完成远程调用C++程序还有SOAP,REST。

             其他语言使用XML-RPC将命令用XML表示,然后通过HTTP传输到本地我的程序。因为所有的命令都是使用XML表示,就达到了统一。

             有很多的开源库实现了XML-RPC,所以给我们带来了很多的便利之处。这里我使用的库是XML-RPC++。

 

             下面的文章对如何在C++中使用XML-RPC很有帮助。

              http://www.ibm.com/developerworks/cn/webservices/ws-xml-rpc/

          

      

 

你可能感兴趣的:(数据结构,xml,socket,SOAP,语言,internet)