由于我的程序设计中需要应用RMI 所以这段时间对RMI进行了一下研究。写一些感想, 对于什么是RMI之类的就省略了。
下边连接是RMI的用法,需要的朋友可以看一看http://haolloyin.blog.51cto.com/1177454/332426
我们这里介绍一下其中的一些小的知识,
1. 什么情况下用RMI
由于RMI 有显著的两个缺点,
一个是性能,早在很久对于分布式java而引出的webservice 和 SOA等理念,RMI就被抛弃了,当然这不是绝对的,对于小的子程序来说 RMI 还是有他的作用的。
二是RMI的硬性要求就是 CS两端都必须是java,所以对于语言跟着需求走的我们来说,这个可能是最大的困扰。
现在更多应用RMI的还是EJB 和 SPRING中的RMI
2. RMI中的存根与骨架
这是一个很老的问题了,在现在的JDK版本中,已经把骨架整合了,完全不需要我们处理,至于存根,其实就是远程对象的本地引用,也就是本地通过 LocateRegistry中的 getRegistry 方法获取 远程主机中的注册表Registry,通过Registry对象的lookup找到远程对象的引用,我们在本地应用远程对象(实际是接口)中的方法来解决问题,这也是符合RMI的注册/服务的原则。
当然,我们也可以用Naming来做这些操作,但所有的无非是 注册+得到注册;
3. Remote接口作用
他完全是一个标记,类似io中的Serializable,起一个标记作用,告诉这是一个远程接口
4. UnicastRemoteObject这个类的作用
做程序的时候总是想问这个是干嘛的为啥一定要用?结论是:他是一个解包,封包的作用,我们知道,网络传输数据再怎么说也是socket连接,而这个类就是对数据的进行封装的,例如传参数,得到返回值等等,当然还有其他的作用,没必要一一解说。
5. Naming和Registry中的相同的函数
我们知道Registry是远程注册表,而Naming是Sun做出的对注册表的操作,他们的本质我不敢说一样(我没看太多的源码),但是操作的意义大致是一样的,所以没必要纠结用那一个。
我第一次写blog,所以有什么不对的请指出,也是对我学习的帮助,多谢..........
相关推荐
**基于JAVA RMI的聊天室** Java Remote Method Invocation(RMI)是Java平台提供的一种用于在分布式环境中调用远程对象的方法。在这个“基于JAVA RMI的聊天室”项目中,开发者利用RMI技术构建了一个简单的多用户...
在本案例中,“java RMI技术实现的网络聊天室”是一个使用RMI构建的多用户交互系统,可以让用户通过网络进行实时通信。以下是对这个项目的关键知识点的详细解释: 1. **RMI概念**:RMI是一种基于对象的远程调用机制...
根据提供的文件信息,我们可以深入探讨Java RMI(Java Remote Method Invocation)的相关知识点,包括其概念、原理、体系结构以及一个具体的示例。 ### RMI的概念 RMI是一种Java技术,它允许开发者创建分布式应用...
通过这个“java RMI实现代码”项目,你可以深入理解RMI的使用方式,包括如何创建远程接口、实现远程对象,以及客户端和服务器端的交互过程。实践中,结合代码注释逐步调试,将有助于更好地掌握这一核心技术。
4. **获取远程对象引用**:在客户端,使用`java.rmi.Naming`类的`lookup()`方法根据服务名从注册表中查找并获取远程对象的引用。 5. **调用远程方法**:现在,客户端可以通过这个引用来调用远程对象的方法,就像...
`验证方法.txt` 文件很可能包含了详细的操作指南,指导用户如何使用`attackRMI.jar` 工具来检测目标系统的Java RMI反序列化漏洞。步骤可能包括: 1. **环境准备**:确保Java环境和必要的库已安装,并了解目标RMI服务...
### Java RMI (Remote Method Invocation) 概念与实践 #### 一、Java RMI简介 Java RMI(Remote Method Invocation)是一种允许调用不同Java虚拟机(JVM)上方法的机制。这些JVM可能位于不同的机器上,也可能在同一...
这些接口需要使用`java.rmi.Remote`作为父接口,并且声明的每个方法都必须抛出`java.rmi.RemoteException`。接口定义了客户端与服务器之间交互的合同。 2. **远程对象**:远程对象是实现了远程接口的实例,它可以...
Java RMI的使用有助于构建可扩展、模块化的分布式系统,但需要注意的是,它并不适合所有场景,特别是在高并发和大流量的情况下,可能需要考虑其他更高效的通信机制,如RMI的替代品如Java的JMS(Java Message Service...
java rmi spring 使用实例,内涵服务端和客户端的源代码,测试可用。
- JRMP(Java Remote Message Protocol):这是Java RMI的原始实现,它使用Java特有的协议进行通信。 - RMI-IIOP(RMI over IIOP):RMI与CORBA(Common Object Request Broker Architecture)的结合,允许RMI系统与...
在客户端,我们使用`java.rmi.Naming.lookup()`方法查找远程对象,并将其引用存储在本地的引用变量中。然后,我们就可以像操作本地对象一样调用远程对象的方法。 这个"RMIdemo"压缩包文件可能包含以下组件: 1. `...
4. **序列化**:由于Java对象不能直接在网络上传输,RMI使用Java的序列化机制将对象转换为字节流,然后在网络上传输,到达目的地后再反序列化恢复。 5. **异常处理**:RMI支持跨网络的异常处理,如果远程方法抛出...
Java Remote Method Invocation(RMI)是一种分布式对象技术,允许使用 Java 编写分布式对象,不同的 Java 虚拟机(JVM)之间进行对象间的通讯。这使得应用程序(Application)可以远程调用方法,共享各个系统的资源...
- **生成存根和骨架**:使用Java RMI工具生成客户端和服务端的存根和骨架代码,以实现远程调用。 - **测试与部署**:编写测试应用程序验证远程对象的功能,最后部署应用程序并确保其正常运行。 #### 五、案例分析...
Java RMI(Remote Method Invocation,远程方法调用)是Java平台提供的一种用于分布式计算的技术,它允许一个Java对象调用另一个在不同 JVM...通过实践这个简单的示例,你可以更好地掌握Java RMI的工作原理和使用方法。
Java RMI(远程方法调用)是Java编程语言中的一项核心技术,自JDK 1.1版本起就被引入,用于构建分布式系统。RMI允许Java对象在不同的Java虚拟机(JVMs)之间进行交互,仿佛这些对象是在同一台机器上一样。这种技术的...
**JAVA RMI(远程方法调用)详解** Java RMI(Remote Method Invocation)是Java平台上的一个核心特性,它允许Java程序在不同的JVM(Java虚拟机)之间进行分布式计算,实现了对象间的远程调用。RMI使得开发者可以像...
Java RMI (Remote Method Invocation) 是一种用于在Java应用程序之间进行远程通信的技术。为了提高RMI通信的安全性,我们可以使用SSL (Secure Sockets Layer) 或其后继者TLS (Transport Layer Security) 进行加密。...
- **可连接现有/原有系统**:RMI通过JNI(Java Native Interface)与现有系统集成,允许使用Java客户端和非Java服务器端。 - **分布式垃圾收集**:RMI实现了分布式垃圾收集,当远程对象不再被引用时,会自动删除,...