rpc是远程过程调用,是一个巨大的概念,应该所有进程间通信来执行某项过程调用,都算作RPC。

而zeromq是通过消息队列的方式来进行进程间通信的,所以它算作是一种RPC方法?(自己想的,需要求证)

 

ROS的xmlrpc不是被opendds给替换了么。opendds在美军中有成功应用

 

https://stackoverflow.com/search?q=zeromq+vs+RPC

 

zeromq与HTTP之间的辨析,ZeroMQ 替换 HTTP 作为内部服务


 

迄今为止,你已经学习到的所有东西就是如何使用ZeroMQ来来回回的发送消息。我们已经看到我们能在一个TCP连接上并发地发送任意数量的请求和应答。我们启动一个客户端,然后发送请求,接着我们启动服务器,然后即使在我们没有代理的情况下,一切运行正常。我们不需要管理连接而且也不需要手动地重复多次的处理了。

然而怎样才能真正的实现RPC呢?迄今为止,我们已经发送了字节并显示了这些字节。我们需要有一种调用多个过程的方法,而且不需要过程调用还可以发送数据。这里我们应该做什么才能发送这些有用的东西呢?

让我们效仿一下HTTP!我喜欢这种方法、路径和内容体的语义,因此让我们保留这些。类似于HTTP,我们总是应答,而且有时候是含有错误的应答-不存在“null"应答。由于ZeroMQ系统字节,所以我们使用SMILE做为数据格式,它是类JSON的格式,使用这种格式它能知道如何把映射、列表、集合和字符串编码为后来可以解码的东西 。这就是所谓的“二进制”格式,因此它可以传送原始字节,这是就不存在任何字符串编码的问题了。

 

物理,链路,网络,传输,表示,会话,应用

物理,链路,网络,传输(TCP,传输控制协议,如何保证进程间可靠网络通信),应用(包括了数据如何表现,)

socket是linux的接口,来实现tcp等网络协议,http是基于tcp的应用层协议,其表示层是一些头和数据,xmlrpc是基于http服务的过程调用服务