分析JBossRemoting.PDF

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

开源框架分析 分析 JBoss Remoting 分析 JBoss Remoting BlueDavy 2008-5-4 1 分布式应用概述 在 Java 领域中,分布式应用相对集中式应用而言,首先需要解决的一个非常明显的问题就 是对象之间如何通讯,在集中式的应用中,当需要调用其他对象时,通常只用 new 相应的 对象实例,或通过 IoC Container 注入所需要的对象,抑或通过 Factory 获取所需要的对象等, 之后直接调用就行了,转化到分布式应用场景,则不同了,因为调用端或者说客户端只会有 远程对象的接口,而没有实现,如何在客户端发起对远程对象的调用,远程对象又是如何接 收请求的,这是分布式调用必须解决的问题。 要解决这个问题,首先得解决如何将字节流从一台机器传输到另外一台机器,为了实现这个, 两台机器需要采用标准的传输协议将字节流从一台机器传输至另一台机器,目前可采用的传 输协议有 tcp 和 udp 两种,其他 http 、ftp、telnet 等都是基于 tcp 扩展出来的应用协议,而 DNS 、TFTP 等协议则是基于 UDP 扩展出来的。TCP 是 Tranfer Control Protocol 的简称,是 一种面向连接的保证可靠传输的协议,通过 TCP 协议传输,得到的是一个顺序的无差错的 数据流。发送方和接收方的成对的两个 socket 之间必须建立连接,以便在 TCP 协议的基础 上进行通信,当一个 socket (通常都是server socket )等待建立连接时,另一个socket 可以 要求进行连接,一旦这两个 socket 连接起来,它们就可以进行双向数据传输,双方都可以 进行发送或接收操作;UDP 是 User Datagram Protocol 的简称,是一种无连接的协议,每个 数据报都是一个独立的信息,包括完整的源地址或目的地址,它在网络上以任何可能的路径 传往目的地,因此能否到达目的地,到达目的地的时间以及内容的正确性都是不能被保证的。 那么在java 中如何来实现网络通讯呢,java 提供了 包来实现网络通讯,其中 Socket、 ServerSocket 可用于实现基于 tcp 协议的网络通讯,典型的基于 的 Socket 的网络通 讯的程序是这么实现的:Server 端 Listen(监听)某个端口是否有连接请求,Client 端向 Server 端发出 Connect(连接)请求,Server 端向 Client 端发回 Accept (接受)消息,一个连接就建 立起来了,Server 端和 Client 端之后就可通过 Send,Write 等方法与对方进行通讯了;采用 的DatagramSocket 、DatagramPacket 可用于实现基于 udp 协议的网络通讯。 可见基于 包可比较方便的实现分布式的通讯,但要实现对于远程对象的调用,则还 需要进行一定的封装处理,java 本身也提供了像 rmi 这样的远程对象调用的协议,对于小型 的分布式应用而言,不一定需要一个完整的分布式支撑框架或平台,可以简单的基于 socket、 BlueDavy - 1 - 开源框架分析 分析 JBoss Remoting rmi 、jms 、hessian 或 webservice 等方式直接实现远程的通讯或调用即可,但对于较为大型的 分布式应用而言,则必须提升到框架级别来更好的解决分布式应用对比集中应用带来的更多 的挑战,例如支持多种协议的远程调用、可靠高效的线程池调度、尽量减少应用变成分布式 后的性能下降、远程调用带来的异常现象的处理、调用的多种方式的支持等等。 对比集中式应用,来看看分布式应用带来了些什么不同,第一个明显的问题自然是如何调用 远程的对象,在 java 领域中最出名的莫过于 RMI 、Hessian 、Webservice 等等了,基于这些 方式可实现从客户端调用远程对象的方法,这里衍生出来的就是调用远程对象的方式,例如 同步、异步等;第二个问题则是变成分布式后带来的一个典型问题,就是远程对象是通过监 听端口的方式来接收请求,为了避免每个请求阻塞了读,在

文档评论(0)

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

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

1亿VIP精品文档

相关文档