系列博文:
分布式.RPC调用-RMI & Hessian框架_闲猫的博客-CSDN博客
分布式.RPC-WebService三要素,三个规范, Soap协议_闲猫的博客-CSDN博客
分布式.RPC-WebService入门案例(java实现,注解实现,xsd文件解析,wsdl文件解析)_闲猫的博客-CSDN博客
分布式.RPC调用-RMI & Hessian框架_闲猫的博客-CSDN博客
目录
RPC(Remote Procedure Call Protocal) 远程过程调用协议。是通过网络服务调用远程计算机服务,而不需要了解底层网络技术的协议。RPC跨越了传输层和应用层,可以基于HTTP协议也可以基于TCP协议。从传输的数据格式上又可以分为XML和二级制。远程调用技术是远程调用协议的实现。
远程调用中的远程是相对于一个工程中的直接调用来说的,远程调用指的是两个不同的进程通信,这两个进程可以分布在两台不同的机器上。远程调用技术是以服务器的形式对外提供的。
远程调用技术主要有四种,分别如下:
Socket
服务端用普通的动态网页技术servlet action JSP PHP ASPX, 客户端httpClient
WebService
RMI
原则式结论
远程调用影响效率的两个因素:传输方式、序列化
在数据传输方面,越底层就越快
传输层比应用层更底层,所以基于应用层协议的技术将在效率上低于基于传输层协议的技术。比如:WebService是基于HTTP协议(应用层)的RPC,在效率上就是不如基于TCP协议(传输成)的RMI。
调用方式比对
Socket
- 特点:速度快、编程复杂
- 场景:适用于效率比较高的场景
- 协议:基于TCP/UDP协议(传输层)
WebService
- 特点:跨平台、跨语言、但速度比较慢
- 场景:适用于异构系统之间的调用,比如:两个厂家实现的系统彼此调用
- 协议:基于SOAP协议(应用层)
RMI
- 特点:速度教快、安全性不高、只能用Java实现
- 场景:适用于局域网中分布式系统开发
- 协议:基于HTTP协议(应用层),二级制格式数据传输
服务器动态网页技术
- 特点:轻量级,缺少规范
- 场景:适用于安卓、苹果智能手机和服务器的交互
远程调用场景
理解一下什么情况下用什么技术:
- socket::效率有要求的需求
- WebService:两个不同的厂家实现,就像Tom公司实现这个接口时,他就不知道使用它服务的是什么机器、什么语言开发的客户端,这时候就应该使用WebService。
- RMI:用在一个系统中模块与模块之间的调用,必须是同一种语言实现的。一个模块需要使用另一个模块的源码。