面向对象:rmi可将完整的对象作为参数和返回值进行传递,而不仅仅是预定义的数据类型。也就是说,您可以将类似java哈希表这样的复杂类型作为一个参数进行传递。而在目前的rpc系统中,您只能依靠客户机将此类对象分解成基本数据类型,然后传递这些数据类型,最后在服务器端重新创建哈希表。rmi则不需额外的客户程序代码(将对象分解成基本数据类型),直接跨网传递对象。
可移动属性:rmi可将属性(类实现程序)从客户机移动到服务器,或者从服务器移到客户机。例如,您可以定义一个检查雇员开支报告的接口,以便察看雇员是否遵守了公司目前实行的政策。在开支报告创建后,客户机就会从服务器端获得实现该接口的对象。如果政策发生变化,服务器端就会开始返回使用了新政策的该接口的另一个实现程序。您不必在用户系统上安装任何新的软件就能在客户端检查限制条件--从而向用户提供烁?快的反馈,并降低服务器的工作量。这样就能具备最大的灵活性,因为政策改变时只需要您编写一个新的java类,并将其在服务器主机上安装一次即可。
设计方式:对象传递功能使您可以在分布式计算中充分利用面向对象技术的强大功能,如二层和三层结构系统。如果您能够传递属性,那么您就可以在您的解决方案中使用面向对象的设计方式。所有面向对象的设计方式无不依靠不同的属性来发挥功能,如果不能传递完整的对象--包括实现和类型--就会失去设计方式上所提供的优点。
安 全:rmi使用java内置的安全机制保证下载执行程序时用户系统的安全。rmi使用专门为保护系统免遭恶意小应用程序侵害而设计的安全管理程序,可保护您的系统和网络免遭潜在的恶意下载程序的破坏。在情况严重时,服务器可拒绝下载任何执行程序。
便于编写和使用:rmi使得java远程服务程序和访问这些服务程序的java客户程序的编写工作变得轻松、简单。远程接口实际上就是java接口。服务程序大约用三行指令宣布本身是服务程序,其它方面则与任何其它java对象类似。这种简单方法便于快速编写完整的分布式对象系统的服务程序,并快速地制做软件的原型和早期版本,以便于进行测试和评估。因为rmi程序编写简单,所以维护也简单。
可连接现有/原有的系统:rmi可通过java的本机方法接口jni与现有系统进行进行交互。利用rmi和jni,您就能用java语言编写客户端程序,还能使用现有的服务器端程序。在使用rmi/jni与现有服务器连接时,您可以有选择地用java重新编写服务程序的任何部分,并使新的程序充分发挥java的功能。类似地,rmi可利用jdbc、在不修改使用数据库的现有非java源代码的前提下与现有关系数据库进行交互。
编写一次,到处运行:rmi是java“编写一次,到处运行 ”方法的一部分。任何基于rmi的系统均可100%地移植到任何java虚拟机上,rmi/jdbc系统也不例外。如果使用rmi/jni与现有系统进行交互工作,则采用jni编写的代码可与任何java虚拟机进行编译、运行。
分布式垃圾收集:rmi采用其分布式垃圾收集功能收集不再被网络中任何客户程序所引用的远程服务对象。与java 虚拟机内部的垃圾收集类似,分布式垃圾收集功能允许用户根据自己的需要定义服务器对象,并且明确这些对象在不再被客户机引用时会被删除。
并行计算:rmi采用多线程处理方法,可使您的服务器利用这些java线程更好地并行处理客户端的请求。java分布式计算解决方案:rmi从jdk 1.1开始就是java平台的核心部分,因此,它存在于任何一台1.1 java虚拟机中。所有rmi系统均采用相同的公开协议,所以,所有java 系统均可直接相互对话,而不必事先对协议进行转换。
闽公网安备 35060202000074号