RMI分布式技术在远程成绩查询系统中的应用
王欢王贤良周恕义
(北京工业大学·北京·100022)
【摘要】本文阐述了远程查询系统应用的必要性,并对RMI技术的工作原理、在查询系统中的实现方法及其注意事项进行了介绍。同时,总结了RMI技术相对于其他网络互联技术的优越性。
【关键词】RMI;分布式;远程查询
一、引言
信息查询在学校中的应用十分广泛,如上课时间地点的查询,学校重要通知的查询等等,但是最显著的用途当属考试成绩查询。现代的教育不仅仅学生有考试,教师也要进行各类等级考试,而这些等级考试很多情况下都不是在本校进行的,有时甚至要到另外一个城市参加考试,这样就给教师成绩查询带来了不便。远程查询系统以其方便、时效、快捷等特性,为教师的成绩查询提供了一个很好的途径。
分布式技术中的RMI(Remote Method Invocation,远程方法调用)技术最适合应用于这类信息查询系统。基于RMI的应用程序由Java对象构成,一个Java对象可调用另一个虚拟机上的某个Java对象的方法,整个过程与调用同一个虚拟机上的某个Java对象的方法无异。这样用户(客户端)会有一种错觉,似乎是从本地类文件调用的本地方法。其实不然,事实上参数传送给了远程目标(服务端),目标解释参数后再把结果发回给调用方(客户端)。这也是用此技术开发查询系统的优势之一——让查询者感觉不到是在访问千里之外的数据库,而是在本机上进行操作。
二、RMI系统运行机理
RMI应用程序包括两个独立的程序:服务器程序和客户机程序。典型的服务器程序将创建多个远程对象,使这些远程对象能够被引用,然后等待客户机调用这些远程对象的方法。而典型的客户机程序则从服务器中得到一个或多个远程对象的引用,然后调用远程对象的方法。RMI为服务器和客户机进行通信和信息传递提供了一种机制:存根(Stub)和骨架(Skeleton)。远程对象的stub担当远程对象的本地代理人角色。调用程序将调用本地stub的方法,而本地stub将负责执行对远程对象的方法调用。在远程虚拟机中,每个远程对象都有相应的skeleton,负责将调用分配给实际的远程对象实现。
RMI建构在几个层面上,高层覆盖低层,分别从事着套接字通信、参数和结果的序列化和反序列化等工作。存根和骨架合在一起就形成了RMI结构中的一个协议层。下面的引用层(见图1)被用来找寻各自的通信伙伴。在这一层还有一个提供名字服务的部分,称为注册表(registry)。RMI的传输层主要用来管理和处理连接,但是这并不同于ISO/OSI模型中的传输层。这一层依赖于下面的TCP/IP。
客户端
服务器
存根
骨架
RMI引用层
RMI传输层
TCP/IP
图1 RMI结构层次图
三、远程成绩查询系统设计
利用RMI编写分布式对象应用程序需要完成以下工作:
(1) 将远程类的功能定义为Java接口。在远程接口中声明每个要远程调用的方法,此处仅声明一个查询方法queryData(String s)来讲解RMI的实现。远程接口具有如下特点:1) 远程接口必须声明为public,否则当服务器端试图装入实现该远程接口的远程对象时会得到错误结果。2) 。3) 除了应用程序特定的异常之外,每个方法还必须抛出ja
RMI 分布式技术在远程成绩查询系统中的应用 来自淘豆网m.daumloan.com转载请标明出处.