最近在网上搜集了一些RPC相关的技术,这里做一下总结,方便以后什么时候用到。
RPC:
在课本里都说过,是远程过程调用的意思,是指分布在不同主机上的接口,RPC client可以调用RPC server端定义的一些接口,毕业的时候对于RPC也就了解这些。
在了解有哪些RPC技术之前,先来看看IDL。
什么是IDL?
全名是接口描述语言,各种RPC技术都有自己的IDL的规范,各自的规范的名字也不太一样,例如微软的MIDL什么的。
通过IDL,来先定义远程调用的接口。
IDL资料:
http://jacktom.iteye.com/blog/215867
http://stackoverflow.com/questions/670630/what-is-idl
现在来看看有哪些RPC技术,这里不对这些技术做什么比较,不管是否过时,是否有什么缺点,什么优点,这里只是把这几天看的一些资料做一下罗列,方便以后使用。
1. XML-RPC
It's a spec and aset of implementations that allow software running on disparate operatingsystems, running in different environments to make procedure calls over theInternet.
It's remote procedure calling using HTTP as thetransport and XML as the encoding. XML-RPC is designed to be as simple as possible,while allowing complex data structures to be transmitted, processed andreturned.
资料:
http://tldp.org/HOWTO/XML-RPC-HOWTO/xmlrpc-howto-intro.html
http://xmlrpc.scripting.com/default.html
http://sourceforge.net/projects/xmlrpc-c/
2. SOAP
简单对象访问协议(Simple Object Access Protocol,SOAP),是一种轻量的、简单的、基于XML的协议,它被设计成在WEB上交换结构化的和固化的信息。 SOAP 可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议(HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME)。它还支持从消息系统到远程过程调用(RPC)等大量的应用程序。SOAP使用基于XML的数据结构和超文本传输协议(HTTP)的组合定义了一个标准的方法来使用Internet上各种不同操作环境中的分布式对象。
资料:
http://www.ibm.com/developerworks/cn/xml/x-sisoap/index.html
http://ws.apache.org/axis/cpp/index.html
http://gsoap2.sourceforge.net/
http://www.cppblog.com/woaidongmao/archive/2008/05/28/51400.aspx
3. CORBA
CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构,通用对象请求代理体系结构)是由OMG组织制订的一种标准的面向对象应用程 序体系规范。或者说 CORBA体系结构是对象管理组织(OMG)为解决分布式处理环境(DCE)中,硬件和软件系统的互连而提出的一种解决方案;OMG组织是一个国际性的非盈利组织,其职责是为应用开发提供一个公共框架,制订工业指南和对象管理规范,加快对象技术的发展。
资料:
http://java.sun.com/developer/onlineTraining/corba/corba.html#anchor311757
http://www.yolinux.com/TUTORIALS/CORBA.html
http://blog.csdn.net/suwei19870312/article/details/7870268
4. DCOM
全程是分布式COM,适合于不同主机之间的COM组件通信,也有说DCOM是Corba的微软版本。
5. Java/RMI
Java/RMP是java 语言JDK里自带的一个远程过程调用机制。
资料:
http://zh.wikipedia.org/wiki/Java_RMI
http://www.cnblogs.com/leslies2/archive/2011/05/20/2051844.html
http://damies.iteye.com/blog/51778
6. Apache/Thrift
http://thrift.apache.org/
其他资料:
http://my.execpc.com/~gopalan/misc/compare.html