预览加载中,请您耐心等待几秒...
1/7
2/7
3/7
4/7
5/7
6/7
7/7

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

本科生毕业论文(设计)开题报告 题目:基于RMI的分布式并行计算应用设计与实现 院系:信息技术学院 专业:计算机科学与技术 班级:2009级计算机科学与技术班 学号: 学生姓名: 指导教师: 2012年11月30日 一、立题依据: 随着人工智能技术的发展,其研究领域越来越丰富,各个研究领域之间也呈现相互交叉融合的趋势。在智能计算机领域,RMI(RemoteMethodInvocation,远程过程方法调用)是近年来发展的一种新颖的技术。 RMI的根本目的就是给应用程序开发提供一个调用远程对象方法的抽象功能,而不必采用低级通信。这样用java开发的分布式应用程序可以完全是面向对象的,可以利用面向对象的开发方法进行设计,这意味着分布对象可以分别放在网络上最有利的位置而不是仅仅放在一个JVM地址空间中。其实它可以被看做事RPC的java版本,但是传统的RPC并不能很好的应用于分布式对象系统,而JavaRMI则支持存储于不同地址空间的程序级对象之间彼此进行通信,实现远程对象之间的无缝远程通信。二、研究主要内容: 1.RMI应用的设计目标: (1)调用远程对象与调用本地对象的过程尽可能相同或相似。 (2)避免完全掩盖对象的位置,使得用户代码可以区别对待这些对象。 (3)维护类型安全和本地Java环境安全。 (4)可扩展,这样如果以后需要增强功能就可以顺利的加入到整个结构中。 (5)支持服务器对小应用程序的回调。 (6)尽可能简化分布式应用程序的开发工作。 2.RMI的系统运行机制 RMI应用程序包含两个独立的程序。典型的服务器应用程序将创建多个远程对象,是这些远程对象能够被调用,然后等待远程客户机调用这些对象的方法。而典型的客户机程序则从服务器中得到一个或多个远程对象的引用,然后调用远程对象的方法。RMI为服务器和客户机进行通信和信息传递提供了一种非常方面的机制。 在于远程对象的通信过程中,RMI使用标准机制—Stub和Skeleton。Stub和Skeleton由rmic编译器生成。远程对象的Stub担当远程对象在客户本地的代表或代理人的角色。调用程序将调用本地的Stub的方法,而本地的Stub将负责执行对远程对象方法的调用。 在RMI中远程对象的Stub与远程对象所实现的远程接口集相同。调用Stub的方法是将执行以下操作:(1)初始化与包含远程对象的远程虚拟机的连接。(2)对远程虚拟机的参数进行编组(写入并传输)。(3)等待方法调用结果。(4)解编(读取)返回值或返回的结果。(5)将值返回给调用的程序。为了在调用程序时使用比较简单的调用机制,Stub将参数的序列化和网络级通信细节隐藏起来,在远程虚拟机中,每个对象都可以相应的Skeleton(在JDK1.2中无须使用Skeleton)。Skeleton负责将调用分配给时间的远程对象实现。它在方法调用时执行下列操作: 解编(读取)远程对象的参数,调用实际远程对象的方法, 将结果编组给调用给调用程序。 当用户调用一个远程方法时,该调用从顶层向下穿越各层直到创建一个在网络上传输的数据流。在服务器一端该调用又从底向上穿越各层,直到对远程方法的真正的调用。调用的结果按相反的顺序返回给调用者。 三、研究方法与实验条件: 1.研究方法 (1)定义一个扩展Remote接口的接口,在接口中定义要进行远程调用的方法,并在实现类中实现该方法,为远程方法调用提供服务,在main函数执行过程中将实现类的对象通过java.rmi.Naming类的bind或者remind方法与指定的名称绑定在一起。 (2)创建客户端程序时通过java.rmi.Naming类的lookup方法将指定的名称与这些远程对象关联,得到远程对象后即可实现远程方法调用。 (3)设置服务器,为运行分布式应用程序做好准备(如果该程序仅在本地运行,则不需要此步骤)。 (4)在服务器上运行RMI注册程序(当然,也可以不适用该注册程序,而是在程序中实现注册,通常都是编程实现) (5)分别执行服务器程序和客户机。 2.RMI的安全性 RMI的安全机制是为了在服务器和客户机之间进行安全通信,将下载的执行程序放在安全的沙箱中运行,保护系统免遭不明客户机的攻击,在程序中引入RMI安全机制过程如下:在程序中写入代码,由于引入安全机制,视图执行java.rmi.Naming类的bind,rebind或lookup时就会发生异常,因此为了使程序正常执行,通常要进行Policy安全机制,可以在服务器的某个目录下建立一个文件并写入内容。执行服务器端程序时,需要为JVM加入参数、这样程序便能绕开安全管理器的限制正常运行,客户端程序也可以做类似处理。 3.关于对象传递与动态类加载 当在远程方法调用中传递的参数或返回值是基本数据类型时,RMI系统通过