在分布式环境中,客户机和服务器在不同的机器上运行,客户端调用在服务器端运行的过程,并把结果发送回客户机。
RPC 编程是在分布式环境中运行的客户机和服务器应用程序之间进行可靠通信的最强大、最高效的方法之一。
stub(存根)
服务器 stub 把所需的信息提供给服务器应用程序。服务器应用程序执行远程过程调用,然后使用 RPC 运行时库通过服务器 stub 把结果传递给客户机 stub。最后,客户机 stub 把结果返回给客户机应用程序。stub 作为应用程序和 RPC 运行时之间的接口,以两者可以理解的格式交换信息。
IDL
我们把所有共用的声明和数据类型放在接口定义语言 (IDL) 文件中,客户机和服务器将共享这个文件。我们在 IDL 文件中使用 UUID,以使之在网络上所有其他接口中保持惟一。UUID 是一个惟一的随机数,是由 uuidgen 实用程序使用网络地址信息和系统时间生成的。
第二代RPC
1.CORBA(在TCP/IP标准化发展迟缓,被淘汰)
该标准主要分为3个部分——接口定义语言IDL,对象请求代理ORB,ORB之间的互操作协议。
ORB(对象请求代理)是在对象之间建立Client/Server关系的中间件。
RMI
RMI被设计成了java语言,所以其不需要IDL语言这样的语言中立的描述语言。
整体架构:
第三代 RPC
SOA
架构