第9章-代理模式-分布式计算.pptVIP

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

第九章 代理模式-分布式计算 回顾 状态模式允许一个对象基于内部状态而拥有不同的行为 通过将每个状态封装进一个类,我们把以后需要做的任何改变局部化了 状态转换可以由State类或Context类控制 使用状态模式通常会导致设计类的数目增加 目标 理解本地计算与分布式计算 分布计算角色与机制 远程方法调用(Remote Method Invocation)RMI 配置远程方法调用 远程方法中的参数传递 RMI与CORBA区别 本地计算与分布计算 本地计算: 组件共享一个公共的地址空间进行通信。 分布计算:组件调用不同机器上的地址空间的组件进行通信。 分布计算 分布计算角色:客户与服务器 分布计算机制: ① 客户端以常规的方式进行方法调用,无须操心数据在网络上传输或者解析响应之类的问题。提供服务的对象可能不在同一个虚拟机内,甚至可能不是Java语言实现的对象。 ② 在客户端为服务器对象安装一个代理(proxy),客户调用此代理进行常规方法调用。客户端代理负责与服务器进行联系。 ③ 在服务器端安装第二个代理对象。该服务器代理与客户端代理进行通信,以常规方式调用服务器对象上的方法。 RMI、CORBA与SOAP 三种通信技术: RMI: Java的远程方法调用技术,支持Java的分 布式对象之间的方法调用; CORBA: 通用对象请求代理架构,支持任何编程语言编写的 对象之间的方法调用,使用Internet Inter-ORB协议 (IIOP)支持对象间通信; SOAP: 简单对象访问协议,使用基于XML的传输格式。 Java RMI 一般RMI概念 服务器: 远程接口B:列出了可以远程调用的所有方法; 远程对象B:实现远程接口B的类实例化对象; 主干(skeleton):将客户端发送的参数反向序列化并调用远程对象上所需方法。 方法返回,获得返回值并序列化发送回服务器通信模块。 远程引用层(RRL):为远程对象B创建一个远程对象引用。同时维护远程对象 与其引用之间的映射。 客户端: 存根(stub):以远程对象B的引用(唯一标识)、远程接口B方法描述来构造 一个代理对象; 远程引用层(RRL):远程对象B的引用到达RRL时,生成stub,并维护远程对象B 的引用与stub之间的映射。 配置远程方法调用-1 使用RMI创建C/S应用程序的步骤: 服务器端: ①定义远程接口,继承Remote接口(java.rmi包),其声明远程调用的方法,每一方法必须声明抛出RemoteException异常。 ②编写实现远程接口的类(服务器类),该类的对象就是远程对象。 ⅰ实现远程接口 ⅱ继承服务器类:java.rmi.server.UnicastRemoteObject ③使用rmic工具,将上述服务器类生成存根和主干 rmic –v1.2 服务器类 ④编写一个主类,实例化服务器类,生成远程对象,并且向注册库 命名注册远程对象,利用java.rmi.Naming的方法: public static void bind (String name,Remote obj) public static void rebind (String name,Remote obj) 配置远程方法调用-2 使用RMI创建C/S应用程序的步骤: 客户端: ①编写客户机类,调用远程对象上的方法。利用java.rmi.Naming的方法: public static Remote lookup(String name) 注意:name以URL格式给出: rmi://host_name:port/service_name (port默认1099) ②启动注册库 start rmiregistry [port] ③运行服务端主类,创建远程对象并向注册库注册该对象引用。 ④运行客户机。 RMI C/S应用举例 RMI C/S应用举例 Step 2:编写服务器类HelloImplemento

文档评论(0)

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

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

1亿VIP精品文档

相关文档