xmlrpc与jsonrpc
在各种RPC技术中,我想应该以Sun的RPC最为著名,比较流行的网络文件系统NFS就是建立在SUN RPC技术基础之上的。
XMLRPC, 顾名思义(我总是喜欢这样把问题简单化,因为一个比较好的名字往往能概括出一个东西的本质,如果某个名字让你摸不着头脑,我推荐你放弃它,因为那个发明这 个东西的人都不知道它的实质,所以你也就没有必要在其上浪费无谓的时间和精力。)就是应用了XML技术的RPC。那么什么是XML了?
XML和 RPC一样也是一个东西的缩写,这个东西就是eXtensible Markup Language,中文意思就是可扩展标记语言,标记语言就是那种用尖括号(<>)括来括去的那种语言,比如说HTML。XML的可扩展性也 体现在它只定义了语言的格式,而并没有定义过多的关键字,也就是通常所说的标记(Tag),所以用户可以自由地选择定义标记。它的这种自由和简单的语法规 则也使得它广为流传,被用来表示各种数据。熟悉Lisp语言(一种被称为“一大堆”括号的语言)的同学可能觉得XML和Lisp语言有些类似,不同的是 XML用尖括号替代了Lisp语言中的圆括号(())。事实就是他们都是那么相似,那么多语言似乎都是等价的,不同的只是那些应用语言的人。
XML在XMLRPC充当什么角色呢?
答 案就是“交换的数据格式”。在Sun RPC中,调用双方传递的数据是二进制的,而在XMLRPC中数据将是XML格式的。那么为什么用XML而不用二进制呢?我想一方面应该是为了兼容更多的 语言,因为这个世界上除了C/C++等编译语言,还有很多类似python,perl,javascript等的脚本语言(最近有些文章也称其为“动态语 言”,因为他们通常不需要自己管理内存),另一方面是为了隔离操作系统的差异,比如说Little Endian和Big Endian的差异等。基于种种原因,XMLRPC选择了XML这种中间语言作为其信息的格式,然后由各个语言负责将其转变成各自native(本土)的 数据类型。关于为了兼容各个语言所发明的中间语言还有IDL(Interface Definition Language:接口定义语言),它被用于CORBA接口的定义。
关于XMLRPC的更多信息请到它的官方网站去学习,其中有XMLRPC的规范(Specification),不过是相当得简单的,因为XMLRPC本身就特别的简单,不相信?好,那下面我就请大家和我一起来学习如何写一个加法的XMLRPC。
xml rpc是使用http协议做为传输协议的rpc机制,使用xml文本的方式传输命令和数据。一个rpc系统,必然包括2个部分:1.rpc client,用来向rpc server调用方法,并接收方法的返回数据;2.rpc server,用于响应rpc client的请求,执行方法,并回送方法执行结果。RPC是Remote Procedure Call的缩写,翻译成中文就是远程过程调用,是一种在本地的机器上调用远端机器上的一个过程(方法)的技术,这个过程也被大家称为“分布式计算”,是为了提高各个分立机器的“互操作性”而发明出来的技术。
Tag
|
Type
|
Example
|
or
|
four-byte signed integer
|
-12
|
0 (false) or 1 (true)
|
1
|
|
string
|
hello world
|
|
double-precision signed floating point number
|
-12.214
|
|
date/time
|
19980717T14:08:55
|
|
base64-encoded binary
|
eW91IGNhbid0IHJlYWQgdGhpcyE=
|
转载于:https://www.cnblogs.com/yanhuaqiang/p/11578334.html
xmlrpc与jsonrpc相关推荐
- 微信小程序实现跟odoo的交互 使用xmlrpc和jsonrpc 持续更新中。。。
odoo这个开源ERP,允许外界使用两种RPC(远程过程调用):xmlrpc和jsonrpc,实现增删改查.实际上Odoo 的 WEB 前端是完全通过接口和后端通讯的,几乎实现了前后端分离.xmlrp ...
- WebService、RMI、RPC、XML-RPC、JSON-RPC、SOAP、REST(rest-api、restful)等web服务实现方案概念...
http://my.oschina.net/u/1433482/blog/690204 http://blog.csdn.net/sun5208/article/details/6458432 htt ...
- XML-RPC使用手册
内容列表 Preface: About This Manual Introduction to XML-RPC for C/C++ What is XML-RPC? How Does XML-RPC ...
- Aria2打造属于自己的下载神器
请关注微信公众号( ?sharingplus) 我使用Aria2差不多已经2年了.在这段时间使用很多下载工具,最开始使用的是迅雷极速版 .后面各种原因不好使了.Free Download Manage ...
- Thrift在windows下的使用
2019独角兽企业重金招聘Python工程师标准>>> 在我的业务中,一直有局域网内的rpc要求,之前是基于webservice来做,通过gsoap来生成C++的客户端代码.使用we ...
- 肝,Python3中RPC实践
什么是RPC? 百度百科给出的解释是这样的:"RPC(Remote Procedure Call)--远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议 ...
- Android 开发中常用小技巧
TextView中的getTextSize返回值是以像素(px)为单位的, 而setTextSize()是以sp为单位的. 所以如果直接用返回的值来设置会出错,解决办法是 用setTextSize() ...
- Android网络通信的六种方式示例代码
表1展示了Android SDK中的一些与网络有关的API包名 表1. Android SDK 网络包 包 描述 ...
- Android之网络编程之网络通信几种方式实例分享
这篇文章主要介绍了android 网络编程之网络通信几种方式,有需要的朋友可以参考一下 现在总结了六种方式: (1)针对TCP/IP的Socket.ServerSocket (2)针对UDP的Data ...
最新文章
- 外观模式 - 设计模式学习
- 没有与制定类型匹配的重载函数 cv::Vec<_Tp 实例
- tensorflow 加载bert_用NodeJS/TensorFlowJS调用BERT实现文本分类
- android 访问服务器josn文件,Android客户端对服务器回来的json文件进行解析
- 二叉树为空意味着二叉树_不怕面试被问了!二叉树算法大盘点
- 实验二:编写输出Hello World!
- web服务器php配置实例,配置 Web 服务器提供 PHP 服务
- java开源规则引擎比较_几款常用规则引擎的简单对比及演示
- docker安装mysql【网易镜像方式】
- WinRAR软件注册的方法介绍
- C语言学习方法(详细,适合初学者学习食用)
- 东芝 rc100 linux,东芝RC100 M.2 NVMe固态硬盘HMB特性解读
- android cos函数,Android三角函数
- s20赛季服务器维护,王者荣耀S20赛季什么时候结束 S20赛季具体结束日期
- 关于esp32蓝牙模块的使用——esp32学习笔记
- 天嵌科技为E9卡片电脑Qt快速入门攻略
- 读书印记 - 《心流:最优体验心理学》
- Android Studio新手必读
- 如何从iCloud共享iWork文档
- 机器学习工程师 — Udacity 创建客户细分
热门文章
- shell 脚本和 bash 脚本的关系
- FTP 两种传输模式 Binary 和 ASCII 的区别
- linux android build tools,build.gradle 文件中的 Android SDK Build Tools version
- python字典编码_python中包含UTF-8编码中文的列表或字典的输出
- LeetCode 20.有效括号
- C++函数后置返回类型
- mysql7.5安装教程_CentOS7.5下yum安装MySQL8图文教程
- Objective-C学习中对 C语言的扩展
- 电脑的发展史_互联网发展史 硅谷传奇之 IBM
- matlab 英语怎么读,MATLAB SPTooL