RMI原理及应用 RMI原理及应用

RMI原理及应用

  • 期刊名字:科技创业月刊
  • 文件大小:897kb
  • 论文作者:刘派
  • 作者单位:北京邮电大学软件学院
  • 更新时间:2020-06-12
  • 下载次数:
论文简介

用技术RMI原理及应用刘派(北京邮电大学软件学院北京100876)摘要:为了屏蔽计算机网络硬件设备及操作系统上的差别从而系统之间的通信,笔者引入了基于JAA的远程方法调用(RM)。RM提供分布式对象间的通讯,允许获得在远程进程中的对象的引用,进而通过引用调用远程对象的方法,就好像该对象是与客户端代码同样运行在本地进程中一样。通过RM议程服务的实例,介绍了基于JAVA的RM与 Socket结合的应用。RM架构使编程思路更为清晰,代码结构化更强,更加容易实现关键字:通信;远程方法调用;分布式对象;议程中图分类号:TP12文献标识码:A随着信息化的飞速发展,信息资源共享成了必经之路,此时就要用到远程c1.2RM优点方法调用RMI( RemoteMeth Invoca-包括:①面向对象:可将完整的对ion),可以在不同的Java虚拟机(JVM)象作为参数和返回值进行传递,而不仅之间实现对象与对象的通信。VM可以仅是预定义的数据类型;②可移动:可位于相同或不同计算机上,在多个JVM将属性从客户机移到服务器或从服务中,一个JVM可以调用存储在其它器移到客户机;③安全:使用java内置JVM的对象的方法。的安全机制保证下载执行时用户系统圈1 Call, RPC22BM三层果构图的安全;④可连接现有或者原有的系1RMI技术原理客户程序和服务程序彼此交互的接口,统:可通过Java本机方法接口JN与现11基于RPC的RM介绍它传输给远程引用层的数据是从调度有系统进行交互;⑤编写一次,到处运Java远程方法调用(RM)使得运行流中提取而来。调度流使用对象序列化行:可移植到任何WM上;⑥分布式在一个Java虚拟机( Java Virtual Ma-机制实现的,通过这个机制,Java对象圾收集:⑦并行计算:多线程处理方法,chine,vM)的对象可以调用运行另一可以在地址空间进行传递。Stb是客户可使服务器利用这些JAVA线程更好个vM之上的其他对象的方法从而提端的代理,它实现了所有远程对象的接地并行处理客户端请求。供了程序间进行远程通讯的途径。远程口; Skeleton是服务器端的实体,它包括13RM实战过程调用( Remote Procedure Cal,了一个被具体远程对象所支持的接口(1)一个正常工作的RMI系统由以RPC),可以用于一个进程调用另一个进(2)远程引用( Remote Reference)下几个部分组成:远程服务的接口定程(很可能在另一个远程主机上)中的层。这一层相当于在其之上的Sub义,远程服务接口的具体实现,Smb和过程,从而提供了过程的分布能力。 Java Skeleton层和在其之下的传输协议层之 Skeleton文件,一个运行远程服务的服的RM则在RPC的基础上向前又迈进前的中间件,负责处理远程对象引用的务器,一个RM命名服务,类文件的提了一步,即提供分布式对象间的通讯,创建和管理供者(一个HTP或者FTP服务器),一允许获得在远程进程中的对象(称为远(3)传输协议( Transport Protocol)个需要这个远程服务的客户端程序程对象)的引用(称为远程引用),进而层。该层提供了数据协议,用以通过线通过引用调用远程对象的方法就好像路传输客户程序和远程对象间的请求2开发实例对象是与你的客户端代码同样运行和应答。主要执行以下动作①建立远使用 Java RMI构建一个分布式议在本地进程中一样。RM使用了术语程地址空间的连接;②对连接进行管理程服务。不同的客户应能连接到这一共“方法”( Method)强调了这种进步,即在和监控连接状态;③监听新的调用:④享的议程服务,并查询、添加和删除议分布式基础上,充分支持面向对象的特建立并维护地址空间的远中国煤化工服务程序应具备新用性建立新调用的连接;⑥定位CNMHG用户所有会踏安排等(1)sudb/ Skeleton层。该层提供了调度程序,并建立与此调度图目理切。丌的步骤见图2。收稿日期:2010-05-18PIONEERING WITH SCIENCE TECHNOLOGY MONTHLY NO. 7 2010 141到技创叫界RMI原理及应用public AgendaService() throws ja-Lmi RemoteException Ipublic synchronized String register [])I(String userName, String password)if (args length = 0)t=java. mi. Remote ExceptionSystem.out. println("需要UserlsExsited Exception一个命令行参数:程序运行的端口号1099");图2使用 Java RM构建分布式议程服务田retum message:21定义远程接口(1)远程接口必须直接或者间接的扩展自 java rmi Remote接口。远程接口23创建 Server端parseInt (args[O3);展其它接口,只要被扩展的接口的所有象,就需要将远程对象注册到RM的 cateRegistry. create Registry(pot ;3.Lo-还可以在扩展该接口的基础上,同时扩为了让客户程序可以找到远程对方法与远程接口的所有方法一样满足注册表。这个过程有时被称为“引导”过下一个要求。程。为此编写一个独立的引导程序负 vice manager= new Server(();(2)远程方法必须声明抛出java.责创建和注册远程对象首先创建一个java. mi. Namingrmi Remote Exception异常,或者该异常远程对象(同时导出了该对象)之后将 rebind(" AgendaManager'", manager);的超类( Superclass),在远程方法声明该对象绑定到RM注册表中。 Naming中,作为参数或者返回值的远程对象,的 rebind()方法接受一个URL形式的议程管理服务程序已准备就绪…")或者包含在其它非远程对象中的远程名字作绑定之用。catch (NumberFormat Exception对象,必须声明为其对应的远程接口以注册为例的源代码(取部分代mf)而不是实际的实现类。rintStackTrace(3)满足该应用的需求应该定义注blie class Server extends Agen- O)册、添加、查询、删除、清空五个方法并 daservicei catch (Exception抛出相应异常,下面以注册为例,代码public Server ()throwsexc)Iexc printStackTraceterface extends java. mi. Remote IString register (String userName, (String useString password )throws java rmi Remo- throwsjavarmi Remote Exception,24创建客户端teException, UserlsExsitedException;UserlsExsitedException i由于版面有限,仅取小片段客户端User user= new User(user-程序代码22定义远程接口的实现类Name, password );public class Client I(1)即实现上一步所定义的接口,userManager User Manager.enda. AgendaServicelnterface给出业务方法的具体实现逻辑 Agen- getUserlnstance();Service class实现了之前定义的远程ublic Client (String ho接口,同时继承自 java rmi server UnicasisReg-ject类是一个便捷类,它实现了前面所 isteredUser(user)iString objectld讲的基于 TCP/IP的点对点通讯机制message="用户 genda Manager'";远程对象都必须从该类扩展(除非你想已存在";manager =(agenda. A-自己实现几乎所有 Unicast Remote Objectt else IgendaServiceInterface) java. mi. Naming.的方法)userManager. user- lookup("//+ host +" "+port+"/(2)注册用户接口的实现代码中国煤化工public class AgendaServiceYHCNMHG(Exception exc)IJava. rm. server: Unicas-成功oystem out println(exc);rEmote objectmplements AgendaServicelnterfacecatch(Exception exc)142科技创业月刊2010年第7期应用技术城市轨道交通地下车站线路与站位方案研究—以郑州轨道交通紫荆山站为例(中铁第四勘察设计院集团有限公司湖北武汉430063)摘要:城市轨道交通线路和站位的设置是一项系统工程,提出了线路和站位设王的基本原则和设计思路,以郑州轨道交通紫荆山站线站位为例,探讨总结了城市轨道交通地下车站的研究中必须考虑的因素和控制条件。关键词:城市轨道交通;地下车站;方案研究中图分类号:U284文献标识码:A1城市轨道交通线路和站位路及施工过程中对城市交通的干扰。(1)线路走向、站位设置应符合《城(4)线路平面应在满足功能的前提设置原则和思路市总体规划》、《城市轨道交通建设规下力求顺直,尽量采用较大的曲线半城市轨道交通线路和站位的设置划》的要求,合理选择线路路径,并协调径是一项系统工程,必须贯彻“系统优化、好与其它线路的衔接、换乘关系。(6)根据行车组织的要求,结合线线位合理、站位便利、方便运营、可持续(2)坚持“以人为本”的设计理念,路现场具体条件,合理设置辅助线发展的设计理念。运用系统工程、价值线路和站位相互配套、相互依承,总体工程理论进行全方位、多层次线路和站方案应结合其它后续的轨道交通工穆,2城市轨道交通地下车站站位方案技术、经济比较,以求线路和站整体构思、统筹考虑、远近结合并为后线站位方案研究位的设计达到安全、舒适、快速、规划、续工程的实施创造条件。城市轨道交通地下车站站线站位环保、节能投资及效益的最佳匹配(3)结合城市规划、地形、地貌、工方案需要考虑的因素和控制条件非常基于上述的总体要求,因此,在先程地质及水文地质条件、地面与地下建之多,以郑州轨道交通紫荆山站为例:有线网规划的前提下,合理地选择车站构)筑物和地面交通状况等;并与沿线该站是郑州轨道交通1号线与2号线的位置和前后线路,须遵循以下设计思环境和土地利用相互协调减少工程量的换乘站(见图1),其周边既是一个交25编译实例程序F大三下课件 Distributed Sys分布式提供了可靠的平台,支持Java扩编译示例程序和编译其它非分布 temllab\Lah2 RMI >java-classpath / agen展到所有平台,人们可根据需要适时地式的应用没什么区别。只是编译之后, daServicel/ bin server. Server1099添加Java服务器和客户机,为更大规需要使用RMI编译器,即mic生成所议程管理服务程序已准备部绪模的分布式计算服务。的方式悬将远程对象的实膜煮X不是远mam10y需Sub和 Skeleton实现。使用rmic参考文献程接口)的全类名作为参数来运行micF大三下课件 Distributed界 TANENBAUM A S.分布式系统原理与范例(英文影印版)[M].北家:清命令。参考下面的示例; mic agenda. A- tem\lab\ab2 RMI\AgendaService\bin>ja华大学出社,2002va elint. Clinent 127.0.0.1 1099 register 2 David Flanagan, Jim Farley, William Craw编译之后将生成 Agendaservice_ Elly123ford andKris Magnusson, 1999, ISBN 1Skelclass8和 AgendaService_Stub class两注册成功56592-483-SE, O Reilly, Java Enterprise个类。3结论in a Nutshell2.6运行程序3 Ed Roman, Scott Ambler and Tyler Jew将命令行以批处理文件保存,先运从该实例即介绍的开0-471-41714,John行 Server端再运行 register.bat看出,RM架构支持的开rV凵中国煤化工java -classpath/ Agendaservice′性,思路清晰使程序员CN Gnd Editionbin server. Server 1099写分布式程序,而且RM为面向对象的责任编辑晓天)收稿日期:2010-0622PIONEERING WITH SCIENCE TECHNOLOGY MONTHLY NO. 7 2010 143

论文截图
版权:如无特殊注明,文章转载自网络,侵权请联系cnmhg168#163.com删除!文件均为网友上传,仅供研究和学习使用,务必24小时内删除。