网站大量收购闲置独家精品文档,联系QQ:2885784924

分布式系统与中间件项目计划书.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
分布式系统与中间件项目计划书

分布式系统与中间件项目计划书 PAGE1 / NUMPAGES9 分布式系统与中间件 项目计划书 Project 1 The design and implementation of RMI using Java  PAGE \* MERGEFORMAT 7 研究动机 远程方法调用(Remote Method Invocation,RMI)是用Java在JDK1.1中实现的,它大大增强了Java开发分布式应用的能力。Java作为一种风靡一时的网络开发语言,其巨大的威力就体现在它强大的开发分布式网络应用的能力上,而RMI就是开发百分之百纯Java的网络分布式应用系统的核心解决方案之一。其实它可以被看作是RPC的Java版本。但是传统RPC并不能很好地应用于分布式对象系统。而Java RMI 则支持存储于不同地址空间的程序级对象之间彼此进行通信,实现远程对象之间的无缝远程调用。 RMI目前使用Java远程消息交换协议JRMP(Java Remote Messaging Protocol)进行通信。JRMP是专为Java的远程对象制定的协议。因此,Java RMI具有Java的“Write Once,Run Anywhere”的优点,是分布式应用系统的百分之百纯Java解决方案。用Java RMI开发的应用系统可以部署在任何支持JRE(Java Run Environment,Java运行环境)的平台上。但由于JRMP是专为Java对象制定的,因此,RMI对于用非Java语言开发的应用系统的支持不足。不能与用非Java语言书写的对象进行通信。 主要是通过这次实践,更加深入的理解JAVA RMI实现机制,并通过编写自己的RMI来加深理解。另外,实践过程中的种种问题可以帮助我们理解RMI需要解决的基本问题,以及该如何去解决这些问题。比如这次实践最主要要解决的marshal和communication问题。这其中数据结构的设计好坏体现出巨大的作用,关系到编程算法的难易度,也关系到功能方面。 不仅如此,理解了JAVA RMI实现机制以后,对于其它的分布式调用也就自然不在话下,很容易得到举一反三的效果。 还可以趁此机会回味一下JAVA,这个已经好久已经没有碰过的东西,似乎好多东西已经忘记了,幸亏有C和C++的基础在,对JAVA也没什么可畏惧的了。 现有方法的缺陷 RMI技术缺点主要表现在以下几个方面:? ??? 第一、RMI是与语言相绑定的。比如当你使用Java RMI技术的时候,客户端与服务器端都必须使用Java开发。 第二、从网络协议栈的观点来看,RMI在TCP协议之上,又定义了自己的应用协议,其传输层采用的是Java远程方法协议(JRMP)。可见,在网络协议栈上,基于RMI的应用位置更高一些,这也决定了RMI会丧失一些灵活性和可控性,但是好处是它带给了应用开发者更多的简洁,方便和易用。比如:如果你用的是RMI,你不需要关心消息是怎么序列化的,你只需要像本地方法调用一样,使用RMI。代价是应用开发者无法很好地控制消息的序列化机制。 第三、JAVA RMI效率低,但开发快。 研究问题 通过以下两点来深入理解基本的RMI机制, 在TCP之上设计一个你自己的RMI框架; 设计函数接口和原始数据类型, 主要讨论(i)marshal和unmarshal机制,(ii)通信机制。 初步思路 4.1 系统架构初步设计 Client marshaling/unmarshalling communication module Server marshaling/unmarshalling communication module socket call call retrun retrun I/O stream I/O stream Registry module rebind lookup stub return 4.2 系统对象初步设计 Client Server heap heap Proxy Skeleton Client对象 Server对象 Remote Func Proxy Remote Object Table Proxy return Socket communication lookup( ) Remote func called Local func called 4.3 粗略代码设计 Client Server 0101010 10 110 1 0101010 10 110 1 MyRemoteClient.class 0101010 10 110 1 MyRemoteImpl_stub.class MyRemote.class 0101010 10 110 1 0101010 10 110 1 Clien

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档