分享
 
 
 

RMI-IIOP与JNDI简单小结(1)

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

RMI-IIOP与JNDI简单小结(1)

张漫慢慢

Java RMI-IIOP(java remote method invocation over the internet inter-ORB protocol),如果使用过RMI,就应该很清除RMI是Java执行远程方法调用的方式,而RMI-IIOP则是RMI的功能扩展版本,增加了如:分布式垃圾收集,对象活化,可下载类文件等,所以你可以把RMI理解成为RMI-IIOP的简化版本,在分布式对象方法调用上他们都完成了最基本的功能。

J2ee中强制使用RMI-IIOP,所以你在RMI-IIOP和RMI中没有的选择

为了便于理解,先介绍一些基本概念:

-RPC(远程过程调用) 是从一个机器上的过程启用另一个机器上的过程

-接口 定义对象所公开的信息

-实现 是由对象提供的核心逻辑程序

-RMI 所有网络代码都是应用于接口的,而不是执行代码,换句话说,就是所有的网络代码都是提供给远程过程调用的。

那么RMI-IIOP是怎样完成远程方法调用的呢?

RMI-IIOP的目的其实很明确,就是在调用远程机器上的对象时就像调用任何其他的Java对象一样,视网络的存在为一种透明。RMI-IIOP是如何实现这一功能的呢?很简单,RMI-IIOP把远程对象的调用模拟成本地对象的调用,即所谓的根程序(stub),根程序负责接收对象方法的本地调用,由于本地通过根程序调用,所以网络的复杂问题都被隐藏在它后面了;那么远程对象如何处理能让调用它的机器得到对应的实现呢?其实处理的方式和客户机一样,远程对象通过一个所谓的程序框架(Skeleton)负责接收网络传发过来的调用。如此以来远程调用的过程其实就发生在根程序和程序框架之间,关于他们是由RMIC(RMI编译器)来生成,具体的实现过程我们就不用管了。根程序和程序框架的功能是处理参数,而参数由如何传送呢?

可能你曾听说过对象序列化的概念,顾名思义,把对象变成能在网络上传输的一些有序信号,这就涉及到如何变,又如何还原的问题了,即所谓的编组和解组的问题。我们首先来看看参数传递吧!当调用方法时,有两种主要的传递参数的方法,值传递和引用传递。值传递是当产生调用过程时,远程主机先实例化一个对象T的一个新拷贝T1,然后可能修改这个拷贝的值T2,此时对象T是不会发生变化的,然后把需要的对象T2从远程传回来;而引用是对原对象T的远程引用,并不是对象引用的一个拷贝,所以当可能修改远程引用为T2时,远程对象也从T变成了T2,这个引用使用一个引用传递调用的协定完成,这于Java语言不同,Java中的用一个对象参数正常的调用一个方法时,拷贝的是对象的引用而不是对象的真实数据,这里一定要注意理解哦。接下来的问题又出来了,一个对象通过网络传递了,但该对象引用了其他对象,并不只孤身一个,那么在目标机上怎样处理呢?目标机的内存地址可不会和引用的机器内存地址映射啊!这就轮到对象序列化上场了,可见每一种技术的产生都是为了处理新的问题,但是人类往往是新问题处理了又会凭空增加新问题处理以后的问题,所以做人辛苦呢,可能一生都在问题中处理着,这让我想到了庄子随意之态,如果我们不去处理问题,问题永远仅仅就那么点,也不会有新问题,更不会越来越复杂,不知道那个时候的世界会是什么样子!瞎扯了,言规正转,刚才说道对象序列化,其实很简单,就是将一个Java对象转化为一个描述该对象的位块(bit-blob),对象变成位块时就可以随意的传了,其实也就是把一系列Java引用打包了,怎样序列化,我想你应该很清楚吧,就是实现java.lang.Serializable接口,做到这一步就可以了,Java会处理余下可序列化和解序列化的问题了。

小结一下:当远程调用时,所有的JAVA简单的基本类型都是用值传递,即参数拷贝传递,不影响原始数据,要用值传递必须实现java.lang.Serializable接口。如果要使用引用传递就必须实现java.rmi.remote,该对象的根程序将被序列化传给远程主机,然后就可以根据根程序来请求远程对象了,任何时候根程序所持有的数据都是同远程主机相同的。解决了远程调用的问题,下一部就是需要远程调用的客户由如何定位远程主机呢?下次吧,该吃东西了。。。。。。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有