- 1、本文档共38页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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 等等了,基于这些
方式可实现从客户端调用远程对象的方法,这里衍生出来的就是调用远程对象的方式,例如
同步、异步等;第二个问题则是变成分布式后带来的一个典型问题,就是远程对象是通过监
听端口的方式来接收请求,为了避免每个请求阻塞了读,在
您可能关注的文档
最近下载
- 油品管理台账.xlsx
- 2024新质生产力引领下十大重点产业趋势解读.docx
- 山东省外墙外保温应用技术规程 DBJ 14-035-2007.pdf
- 【课件】安全生产治本攻坚三年行动方案(2024-2026年)解读(43页).ppt
- 七年级道德与法治上册(统编版2024)【新教材解读】义务教育教材内容解读课件.pptx VIP
- 过敏源控制记录.xls VIP
- 土地整治施工方案.docx
- 工程项目渣土运输车司机安全教育学习知识培训课件.docx VIP
- 司马迁史记简介及垓下之围赏析省公共课一等奖全国赛课获奖课件.pptx VIP
- 广东深圳市福田区选用机关事业单位辅助人员和社区专职工作者227人笔试题库含答案解析.docx VIP
文档评论(0)