java,分布式解决方案.doc

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
java,分布式解决方案 篇一:Java分布式处理技术 Java分布式处理技术(RMI,JDNI) 1.1 RMI的基本概念 1.1.1 什么是RMI RMI(Remote Method Invocation)远程方法调用是一种计算机之间对象互相调用对方函数,启动对方进程的一种机制,使用这种机制,某一台计算机上的对象在调用另外一台计算机上的方法时,使用的程序语法规则和在本地机上对象间的方法调用的语法规则一样。 1.1.2 RMI的用途 1、 分布式体系结构 我们为什么要使用分布式计算呢? ??当我们想与多个用户或客户机共享一个中央资源(如一个数据库)时,就会使用分布式计算。 ??分布式计算用来利用多个系统的组合计算能力,以便比在单个系统上更有效或更快地解决问题。 可以用多种方法配置多个计算机系统以共享处理,包括共享内存、共享磁盘或只是共享一条公共通信通道。最新的技术允许物理上相隔很远的系统能够在处理计算问题时协同工作。 关于利用计算能力这一主题,因特网及伴随的通信协议 TCP/IP 的 出现已使无数的计算机系统史无前例地连接起来。对一些应用程序来说,能够利用如此多的计算功能来解决问题是令人满意的。甚至更吸引人的是,大多数计算机系 统都有充足的空闲时间,可以帮助解决其它问题。将来,网格计算会利用分布式计算能力进行出售,这与电力行业出售电能非常相似。 2、 Java分布式对象编程技术 RMI是Enterprise JavaBeans的支柱,是建立分布式Java应用程序的方便途径。只要按照RMI规则设计程序,可以不必再过问在RMI之下的网络细节了,如:TCP和Socket等等。任意两台计算机之间的通讯完全由RMI负责。调用远程计算机上的对象就像本地对象一样方便。 1.1.3 RMI应用程序分类 依据RMI应用程序各部分职责,可对应用程序进行如下分类: ??服务器程序:服务器程序将创建多个远程对象,并使每个对象能够被引用。等待客户端调用创建好的远程对象上的方法。 ??客户端程序:从服务端程序中得到一个或多个远程对象的引用。客户端能用此引用调用远程对象上的方法。 ??对等计算程序:双方地位相等,互为对方的服务器和客户端。 1.2 创建RMI应用程序步骤 1、 定义远程接口 在 Java 中,远程对象是实现远程接口的类的实例, 远程接口声明每个要远程调用的方法。在需要创建一个远程对象的时候,我们通过传递一个接口来隐藏基层的实施细节,客户通过接口句柄发送消息即可。远程接口具有如下特点: ??远程接口必须为public属性。如果不这样,除非客户端与远程接口在同一个包内,否则当试图装入实现该远程接口的远程对象时,调用会得到错误结果。 ??远程接口必须扩展接口java.rmi.Remote。 ??除与应用程序本身特定的例外之外,远程接口中的每个方法都必须在自己的throws从句中声 明java.rmi.RemoteException。(或 RemoteException 的父类)。 代码范例1 2、 实现远程接口 远程对象实现类必须扩展远程对象java.rmi.UnicastRemoteObject类, 并实现所定义的远程接口。远程对象的实现类中包含实现每个远程接口所指定的远程方法的代码。这个类也可以含有附加的方法,但客户只能使用远程接口中的方 法。因为客户是指向接口的一个句柄,而不是它的哪个类。必须为远程对象定义构造函数,即使只准备定义一个默认构造函数,用它调用基础类构造函数。因为基础 类构造函数可能会抛出java.rmi.RemoteException,所以即使别无它用必须抛出java.rmi.RemoteException例外。 代码范例2 3、 编写服务器类 包含 main 方法的类可以是实现类自身,也可以完全是另一个类。下面通过 RmiSampleServer来创建一个远程对象的实例,并通过java.rmi.registry.LocateRegistry类的createRegistry 方法从指定端口号启动注册服务程序,也可以通过执 行 rmiregistry 命令启动注册服务程序,注册服务程序的缺省运行端口为 1099。 代码范例3 ??LocateRegistry.createRegistry(8808);指定本RMI服务程序不使用默认端口1099,而是使用自己指定的端口8808。 Naming.rebind(//localhost:8808/SAMPLE-SERVER , Server);将远程对象在服务器上注册并指定了将查找远程对象引用的URL,URL格式为//host:port/name。其中 host 是注册表所在的主机(远程或本地),port 是注册表

文档评论(0)

精品文档 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档