分布式对象的隐喻

不要纠结于分布式对象相关的通信协议。分布式对象的实质是单纯的。

程序包括很多对象,对象之间通过函数调用交互。比如cpu一个对象,console一个对象,ram一个对象,storage一个对象,user一个对象,security一个对象,那么通过为每个对象分配一个全局标识就能够实现分布式系统。有些对象不能分布,比如RPC对象,network对象。

cpu对象的函数包括:c库函数

ram对象的函数包括:c库函数

storage对象的函数包括:c库函数

user对象的函数包括:系统函数

security的函数包括:系统函数

阶段1:将远程函数的标识和网络协议作为参数调用构造一个network对象和一个RPC对象,本地调用将链接到该RPC对象,RPC对象将调用数据串行化打包给network对象,network对象通过http,tcp/ip,udp,ipsec。ssh,telnet等协议除外,因为这是类似打电话的应用协议,不适合传输RPC对象。

阶段2:因为存在多种语言,但是无法和RPC库的对象链接,因为接口不一致,所以定义IDL一种接口定义语言统一接口,就都能够链接到RPC库,进行分布式通信了。

阶段3:JAVA语言比较特殊,使用广泛,本身就是先编译为中间代码,因此不采用RPC库,而定义了java的远程分布式方法库,即JAVA RMI,因此java的分布式对象模型是RMI,一般属于虚拟机。

阶段4:corba依赖于tcp/ip协议是源于internet的,使用GIOP(通用)/IIOP(internet)协议来作为ORB底层的通信中间件,有如wcf。

阶段5:java要与corba互操作,主要是要兼容IIOP协议,因此诞生RMI-IIOP,是java的远程对象格式适配到IIOP协议,对于客户而言是RMI调用,对于corba而言,是IIOP(也叫ORB)调用(注意,不是RPC库)。

这就是目前常用的java中间件。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值