如何应用消息中间件去解决RMI技术局限性.docVIP

如何应用消息中间件去解决RMI技术局限性.doc

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
如何应用消息中间件去解决RMI技术局限性

如何应用消息中间件去解决RMI技术局限性   [摘要]本文概述的介绍了RMI和消息中间件技术,分析了RMI技术所存在的弱点,并提出应用开源消息中间件解决RMI技术弱点的思想,最后给出了如何选取开源消息中间件以及如何应用开源中间件解决RMI技术局限性的方案。   [关键字]RMI 消息中间件 开源中间件 JMS JNDI      1.RMI技术简介      RMI(Remote Method Invocation,远程方法调用)是用Java在JDK1.1中实现的,它大大增强了Java开发分布式应用的能力。RMI目前使用Java远程消息交换协议JRMP(Java Remote Messaging Protocol)进行通信。JRMP是专为Java的远程对象制定的协议。所以,Java RMI具有Java的Write Once,Run Anywhere的优点,是分布式应用系统的一种Java解决方案。      2.消息中间件简介      中间件是位于平台(硬件和操作系统)和应用之间的通用服务。这些服务具有标准的程序接口和协议。针对不同的操作系统和硬件平台,它们可以有符合接口和协议规范的多种实现。基于目的和实现机制不同,可以将中间件分为消息中间件、分布式面向对象中间件和事务处理中间件等几大类。   消息中间件最重要的功能是及时提供可靠的消息通信手段。为了能够完成消息的可靠传输,一般情况下,使用队列的方式进行消息管理,也就是说,能常在进行数据传输时,将数据按照用户定义的大小,拆分成若干消息放入消息队列,按照同步或异步的通信方式发送或者接收消息。      3.应用消息中间件解决RMI的局限性      (1)同步通信:客户发出调用后,必须等待服务对象完成处理并返回结果后才能继续执行;   (2)客户和服务对象的生命周期紧密耦合:客户进程和服务对象进程都必须正常运行;如果由于服务对象崩溃或者网络故障导致客户的请求不可达,客户会接收到异常;   (3)点对点通信:客户的一次调用只发送给某个单独的目标对象。   当应用了消息中间后,消息的发送者将消息发送给消息服务器,消息服务器将消息存放在若干队列中,在合适的时候再将消息转发给接收者。这种模式下,发送和接收是异步的,发送者无需等待;二者的生命周期未必相同:发送消息的时候接收者不一定运行,接收消息的时候发送者也不一定运行;一对多通信:对于一个消息可以有多个接收者。      4.开源消息中间件的选择       应用开放源代码的消息中间件不但可以借鉴消息中间件的具体实现方法,而且我们可以随时跟踪发现问题,最重要的是可以免去购买商用消息中间件的费用。在选择的时候应该注意如下几点:   (1)该开源软件是否经常被更新,经常被更新的开源软件可以不断的解决其自身存在的一些问题,并且意味着其开发小组对其有一个较好的维护,通常这样的软件文档比较全。   (2)最好采用NIO,因为这样弹性会很高,在满足项目的性能需求上没有什么问题。   (3)持久化支持是否良好,如果,持久化做的不还,在关闭JMS服务器再重启启动后,会把保存在JMS中的信息全部丢掉,这样无法满足实际的应用中的稳定性的要求。   (4)最好,开源的消息中间件有自带的管理软件,自带的管理工具,这样就可以方便的添加ConnectionFactory和Destination并绑定到JNDI,这点对实现动态管理来说非常有用;      5.利用消息中间件解决RMI局限性的方案      我们可以应用JMS(Java Message Service)、Java命名和目录接口(Java Naming and Directory Interface,简称JNDI)和精心设计的特性文件结合在一起对开源消息中间件作一个封装。这样做的目的是便于对消息中间件的更换。    值得注意的是虽然在书写程序时没有特定于消息中间件供应商的代码,但必须知道初始的上下文工厂和命名服务的供应商URL以及QueueConnectionFactory的绑定名称。对于JNDI上下文,通常的做法是将参数字符串存储在特性文件中然后在需要时读取。用这种方法,改变JMS供应商只需改变特性文件即可。接下来看看如何设置特性文件以及它在启用JNDI连接中所起的作用。进行JNDI连接的基类是javax.naming.InitialContext。尽管有一些特定于目录操作的InitialContext子类(如InitialDirContext),但通用类将完成此任务。构造InitialContext后,它可以从环境(系统特性或 applet 参数)派生JNDI参数值或查找特定jndi.properties文件。将应用程序所有的运行时配置参

文档评论(0)

bokegood + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档