RMI(Romte Method Invocation):远程方法调用
远程对象:能够接收远程方法调用的对象称为远程对象,远程对象实现了一个远程接口,与本地调用有着不同的定义
RPC(Rmote Procedure Call Protocol)远程调用协议,是一种通过网络从远程计算机上程序上请求服务,不许了解底层网络技术
中间件:在进程和消息传递的基本构造模块之上提供编程模型的软件
本地过程调用远程调用的区别:
- 本地过程调用: 参数可以采用传递值或者是引用的方式
- 远程过程调用:在分布式程序中,模块接口中的过程把参数描述为输入型、输出型、或者两者兼有。
接口:
- 服务接口:在客户-服务器模型。
- 远程接口:远程接口指定了可供其他进程中的对象进行调用的对象的方法
- 接口定义语言(IDL):允许不同的语言实现对象以便相互调用
//Personal.idl
struct Person{
string name;
string place;
long year;
}
interface PersonList{
readyonly attribute string listname;
void addPerson(in Pserson p);
}
分布式对象间的通信
对象模型:一个对象鱼其他的对象通过调用对方的方法进行通信,通常要传递阐述和接收结果,对象可以封装数据和代码
分布式对象:分布式对象系统可以采用客户-服务器体系结构,对象由服务器管理,他们的客户通过远程方法调用他们的方法。在RMI中,客户调用一个对象方法的请求以消息的形式传送到管理对象的服务器,通过在服务器端执行对象方法完成该调用,并将处理的结果通过另一个消息返回给客户。
分布式对象模型:
- 远程对象的引用:
- 远程对象的引用与本地对象的引用类似处:
- 调用者通过远程对象引用指定接收远程方法调用的远程对象
- 远程对象引用可以作为远程方法调用的参数和结果传递
-远程接口:远程对象的类实现其远程接口中的方法