摘
要
随着网络技术的日趋成熟,分布式计算的应用越来越广泛。网络编程语言Java使用RMI(Remote Method Invocation
远程方法调用)机制在分布式应用开发中实现远程对象的通信。本文分析RMI的核心技术——接口,研究了RMI的三层体系结构,以及基于Java RMI机制的工作原理。利用远程方法调用,本文进一步探讨了如何实现回调。同时分析了创建RMI应用程序的步骤,RMI特有的编译器rmic及运行RMI系统的整个过程。
现今网络安全倍受关注,数字签名DSA是数据在公开信道中传输的一种安全保障。在DSA签名算法中用到了一个大素数p。因此如何快速地对一个“大数”的素性检测是一个值得探讨的问题。本文结合Java的多线程机制,实现了基于RMI分布式计算的实例——大数素性检测的分布式计算。采用了基于概率的经典测试算法Rabin_Miller,该算法具有错判概率低,适合并行计算的优点。在这个实验中设计有三个子系统:客户机,服务器和工作站。其中客户机将一个大数素性检测的计算任务交付给服务器,服务器把计算任务分解成若干个子任务,然后将子任务分配给在注册表中已注册的工作站。当工作站完成子任务将结果返回给服务器,服务器计算出最终的判断结果,并把结果送到客户机。工作站工作过程,利用Java的多线程技术实现子任务的并发;采用信号量机制实现工作站工作的同步。当测试的数越大,该实例的分布式计算效果越明显。如果有n台工作站不间断地并行工作,计算时间近似是一台工作站工作时间的1/n。
关键字:分布式计算,远程方法调用,回调,多线程
目
录
摘要 •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••i
Abstract
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••ii
第一章
概述 •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••1
1.1
Java RMI
技术
•••••••••••••••••••••••••••••••••••••••••••••••••••1
1.2
RMI 回调技术
••••••••••••••••••••••••••••••••••••••••••••••••••••1
1.3
RMI与分布式并行计算 •••••••••••••••••••••••••••••••••••••••••••••1
第二章
Java RMI
体系结构
••••••••••••••••••••••••••••••••••••••••••••3
2.1
接口:RMI的核心 ••••••••••••••••••••••••••••••••••••••••••••••••••3
2.2
RMI体系的层次
••••••••••••••••••••••••••••••••••••••••••••••••••• 3
2.3
命名远程对象 ••••••••••••••••••••••••••••••••••••••••••••••••••••4
2.4
利用RMI实现回调 •••••••••••••••••••••••••••••••••••••••••••••••••4
第三章
RMI系统的实现技术及运行
•••••••••••••••••••••••••••••••••••••6
3.1
创建并运行RMI系统的过程 ••••••••••••••••••••••••••••••••••••••••6
3.2
RMI回调的实现技术 •••••••••••••••••••••••••••••••••••••••••••••••8
第四章
基于RMI的分布式计算实例——大数的素性检测 ••••••••••••10
4.1
设计思想
••••••••••••••••••••••••••••••••••••••••••••••••••••••••10
4.1.1
大数的素性检测的算法•••••••••••••••••••••••••••••••••••••••••10
4.1.2
分布式计算的组织和分布••••••••••••••••••••••••••••••••••••••11
4.1.3
系统设计 ••••••••••••••••••••••••••••••••••••••••••••••••••••••11
4.2
实现技术 •••••••••••••••••••••••••••••••••••••••••••••••••••••••••11
第五章
分析总结与展望•••••••••••••••••••••••••••••••••••••••••••••••15
参考文献
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••17
第一章
概
述
1.1 Java RMI 技术
在分布式应用开发中,Java提供了RMI(Remote Method Invocation
远程方法调用)机制来实现远程对象的通信。RMI是一种分布式系统技术,它允许一台Java虚拟机(JVM)调用运行在位于网络中另一处地方的JVM中的远程对象方法(object
method),如图1所示。这样的通信不必一定得是单向的过程——远程对象不仅可以接受数据作为其参数,而且可以返回数据。这样RMI可以利用已存在的本地或远程对象,提供无缝的集成,实现分布式计算。