分布式通信的几种方式_第1页
分布式通信的几种方式_第2页
分布式通信的几种方式_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

分布式通信的几种方式 (EJB、RMI、RPC、JMS、web service 杂谈) RPC(remote produce calL) RPC 是远程过程调用协议,它是基于 C/S 模型调用的机制,客户机向服务器端发送调用请 求等待服务器应答,是一种典型的请求应答机制, 大致过程可以理解为本地分布式对象向本机发请求,不用自己编写底层通信本机会通过网 络向服务器发送请求,服务器对象接受参数后, 经过处理再把处理后的结果发送回客户端。 它是早期的支持分布式一些,缺点 rpc 是面向过程的远程调用,不支持面向对象,所以现 在用的人就少了 。 不支持异步调用 RMI(remote method invocation) rmi 也是远程方法调用,似乎和 RPC 一样都是调用远程的方法,我们可以把 RMI 看作是用 java 语言实现了 RPC 协议,由于 RPC 不支持对象通信, 这也是 RMI 比 RPC 的优越之处,支持对象传输。 它遵循的不是 SOAP 协议,而是 JRMP(java remote message protocol)转为 java 对象所制 定的一个协议,可以运行在任何用 java 语言写的系统上, 具有跨平台特性,它不能跨语言。 既然用只支持 java 那么它也有了 java 对象的很多特性,如果垃圾回收、面向对象等。 RMI 采用 stubs (客户机)和 skeletons (框架) 来进行远程对象(remote object)的通讯。stub 充 当远程对象的客户端代理,有着和远程对象相同的远程接口, 远程对象的调用实际是通过调用该对象的客户端代理对象 stub 来完成的,效果和调用本地 对象一样。 传输的数据一般是 java 对象,而不是 XML 格式的数据 。 优点:支持分布式对象、跨平台,stubs/skeletons 机制;缺点:不能跨语言 。 JMS(java remote service) jms 是在各个 java 类(包括 ejb 类)之间传递消息的中间件,好比给我们送信的邮递员, 在各个人之间收发信件。 支持两种消息模型 P2P 和 pub/stub,即点对点和发布订阅模型。 传输的是一种消息移植机制,将消息从一个客户机移动到另一个终端 。 优点:支持异步通信、消息 produce 和 recept 松耦合 。 EJB(enterprise java bean) ejb 是 java EE 中的一个规范,该规范描述了分布式应用程序需要解决的问题,例如事务处 理、安全、日志、分布式等,而同时呢,sun 公司也实现了自己定义的这一个标准, 相当于自己颁布一个标准然后,又给出了实现供别人使用,实现以很多 API 的方式提供给 用的人。 ejb 是按照 java 服务器接口定义的 java 类,可以理解为一个特殊的 java 类,放在容器里容 器可以帮助该类管理事务、分布式、安全等,一般小的程序不会用到, 只有大型分布式系统才会用到 ejb,既然 ejb 是一个 java 类或是一个组件,颗粒较小,这也 是与 Webservice 的区别之一,下面会说到,它就可以被其它一个或多个模块调用。 包含了三种类型的 Bean,可以通过注释 JPA 一个规范来标记,其中有一种 Bean,叫 MDB 消息驱动 bean,它的通信机制涉及到了 JMS 协议。 ejb 可以进行远程调用,但是不能够跨语言,ejb 是同步调用,而平时我们说的的 ejb 异步 调用指的是 ejb 的 MDB 异步通信。 Web Service Web service 是一种网络间跨平台、跨语言的分布式系统间通信的标准。传输的数据位 XML、json 等格式的数据,应用范围广。 Web Service 大体上分为 5 个层次: 1. Http 传输信道 2. XML 的数据格式 3. SOAP 封装格式 4. WSDL 的描述方式 5. UDDI UDDI 是一种目录服务,企业可以使用它对 Webservices 进行注册和搜索 EJB 与 JMS 的关系 它们其实是没有多大关系的,它们都是 java EE 的规范,ejb 的一种类 MDB 实现了 JMS 规 范,当然实现 JMS 规范的不止有 ejb 的 mdb,比如 apache ActiveMQ 也实现了 JMS 规范, 我们平时用的是实现了 JMS 的产品,而不是 JMS 规范。 Web service 与 EJB 对这两个常常有点迷惑人,因为他们都实现了分布式应用调用,虽然他们很相似但是还是 有很多区别的,首先通信协议是不一样的,ejb 采用 rmi-iiop 协议, Web service 利用 http 协议传输数据,有点常识的都知道 http 协议支持的较广泛,从这点来 看 Web Service 层次要高一些、俗话说站得高看得远。 Webservice 主要关注于解决异构系统、不同语言系统通信,其关注的是分布式服务开发、 着手点要高、站的角度高,而 ejb 可以看做是分布式编程平台, 通过容器和组件,简化了程序开发、调试和部署等,它关注的是分布式组件开发,粒度小。 Web service 可以看做是异构系统、异构语言系统间通信的一个标准,而 ejb 只属于 J2EE 规范的一部分。 ejb 底层用 rmi-iiop 协议进行通信,防火墙会阻止; web service 是基于 http 协议进行通信, 防火墙不会阻止。 SOA 与 We

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论