Java 分布式处理技术(2)
Public static Registry getRegistry(String host, int
port ,RMIClientSocketFactory csf ) throws RemoteException Public static Registry createRegistry(int port )throws
RemoteException
Public static Registry createRegistry(int port,
RMIClientSocketFactory csf, RMIServerSocketFactory ssf) throws RemoteException
5、 Java.rmi.Naming 类
Naming 类提供了存储和获得远程对象注册服务程序中的远程对象进行引用的方法
Naming 类中的方法以 url 的形式作为其中的一个参
数, //host:port/name
当远程对象使用 rmi 注册服务程序在本地主机上进行过注册后,远程
主机上的调用程序就可以按名称查询远程对象,获得其引用,然后在对象上调用远程方法。
Public static Remote lookup(String name) throws NotBoundException, MalformedURException, RemoteException
Public static void bind(String name, Remote obj) throws
AlreadyBoundException, MalforedURException, RemoteException
Java 分布式处理技术
Public static void unbind (String name) throws RemoteException, NotBoundException,MalformedURLException
Public static void rebind(String name, Remote obj) throws RemoteException, MalformedURLException
6、 Java.rmi.server.UnicastRemoteObject 类
类 UnicastRemoteObject 创建并导出远程对象,该类实现的远程服务具有以下特点:
将这种对象的引用至多仅在创建该远程对象的进程生命周期内有效。 通过 TCP 传输与远程对象通信调用,参数和结果使用流协议在客户端
和服务器之间进行通信。
7、 Stub 和 skeleton
在远程对象的通信过程中, rmi 使用标准机制: stub 和 skeleton
图 14.5 Stub 和 Skeleton
Stub 的功能
初始化与包含远程对象的远程机器的连接。
对远程机器参数进行编组(写入并传输)。
等待方法调用结果。
读取返回值或返回的异常。
将值返回给调用程序。
Skeleton 的功能
Java 分布式处理技术
在远程机器中,每个远程对象都可以有相应的 skeleton , skeleton 负责将调用分配给实际的远程对象实现,他的主要功能如下:
读取远程方法的参数。
调用实际远程对象实现上的方法。
将结果(返回值或异常)编组(写入并传输)给调用程序。
1.4 JNDI 基本概念
JNDI 诞生的理由似乎很简单。随着分布式应用的发展,远程访问对象访问成为常用的方法。虽然说通过 Socket 等编程手段仍然可实现远程通信,但按照模式的理论来说,仍是有其局限性的。 RMI 技术, RMI-IIOP 技术的产生,使远程对象的查找成为了技术焦点。 JNDI 技术就应运而生。 JNDI 技术产生后,就可方便的查找远程或是本地对象。
1、 JNDI 是什么 ?
JNDI(The Java Naming and Directory Interface , Java 命名和目录接口 ) 是一组在 Java 应用中访问命名和目录服务的 API 。为开发人员提供了查找和访问各种命名和目录服务的通用、统一的方式。借助于 JNDI 提供的接口,能够通过名字定位用户、机器、网络、对象服务等。
命名服务:就像 DNS 一样,通过命名服务器提供服务,大部分
的 J2EE 服务器都含有命名服务器。
目录服务:一种简化的 RDBMS 系统,通过目录具有的属性保存一些简
单的信息。目录服务通过目录服务器实现,比如微软 ACTIVE
DIRECTORY 等。
2、 JNDI 的好处 :
包含大量命名和目录服务,可以使用相同 API 调用访问任何命名或目
录服务。
可以同时连接多个命名和目录服务。
允许把名称同 JAVA 对象或资源关联起来,不必知道对象或资源的物
理 ID 。
使用通用接口访问不同种类的目录服务
使得开发人员能够集中使用和实现一种类型的命名或目录服务客
户 API 上。
Java 分布式处理技术
1.5 JNDI 应用程序结构
JNDI 的结构由一个 API 和一个 SPI 组成, Java 应用程序实用 JNDI API 访问各种各样的命名和目录服务。
图 14.6 JNDI 应用程序结构
1、 JNDI 上下文
前面提到命名服务是将名称与对象相关联。这种关联被称为绑定。一组这样的绑定被称为上下文, Jndi 上下文可以用来查找,捆绑 / 解除捆绑,创建或者破坏绑定名称操作在 JNDI 中,上下文是使
用 javax.naming.Context 接口来表示的,而这个接口也正是与命名服务进行交互的主要接口。
Context 接口中的每个命名方法都有两种重载的形式:
lookup(String name): 接受一个字符串名称参数,查找绑定远程对象。 lookup(): 接受一个结构化的名称,查找绑定远程对象。
2、 初始化上下文
InitialContext 是一个实现了 Context 接口的类。使用这个类作为您到命名服务的入口点 。创建一个 InitialContext 对象构造器需要采用一组属性,形式为 java.util.Hashtable 或其子类之一,比如: 代码范例 5
Java 分布式处理技术
要通过 JNDI 进行资源访问,我们必须设置初始化上下文的参数,主要是设置 JNDI 驱动的类名 (java.naming.factory.initial) 和提供命名服务的 URL(java.naming.provider.url) 。因为 Jndi 的实现产品有很多。所以 java.naming.factory.initial 的值因提供 JNDI 服务器的不同而不同, java.naming.provider.url 的值包括提供命名服务的主机地址和端口号。
下表列出了用于所支持的服务提供程序的工厂类。
表 : Context.INITIAL_CONTEXT_FACTORY 的值
1.6 RMI 与 JNDI 集成
通过上面对 JNDI 的了解我们可以利用 JNDI 来管理 RMI 远程对象的注册服务,我们将代码范例 3 进行如下改写:
代码范例 6
Java 分布式处理技术
启动服务端程序如图所示:
Java 分布式处理技术
图 14.7 JNDI 服务程序启动
表示服务端程序已经将远程对象在 JNDI 是进行了注册,等待客户端进行调用。
接下来我们改写客户端程序采用 JNDI 方式来调用远程对象
代码范例 7
Java 分布式处理技术
运行客户端程序如图所示:
图 14.8 客户端 JNDI 程序运行结果
表示客户端已经通过 JNDI 调用服务端远程对象成功。
1.7 学习总结
RMI 运行在一个 java 虚拟机上的对象调用运行在另一个 java 虚拟
机上的对象的方法 . 。 RMI 的用途就是为 java 程序之间的远程通信提供服务。
RMI 的编程思想
对客户端:需要一些特定的代码来引用远程对象,一旦客户端的代
码拥有对远程对象的引用,对远程对象上的调用与对本地对象方法的调用除了速度以外没什么区别。
对服务端:必须定义类并实例化类的远程对象,服务器的代码必须
能够登记对象并向客户端导出它们的方法,这样,这些方法就能够被远程调用了。
客户端和服务端的代码都必须定义或能够访问一 …… 此处隐藏:2080字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [求职职场]加法运算定律的运用练习题
- [求职职场]大型石油化工工业过程节能新技术
- [求职职场]2015-2020年中国箱纸板行业分析与投资
- [求职职场]NADEX-IWC5A点焊机故障代码
- [求职职场]英语阅读 非常有用
- [求职职场]鲁卫疾控发〔2012〕2号(联合,印发山东
- [求职职场]2014年莆田公务员行测技巧:数字推理的
- [求职职场]基于最近发展区理论的高中数学课堂有效
- [求职职场]与贸易有关的知识产权协议
- [求职职场]【王风范】微演说·职场演说三
- [求职职场]新时代国珍健康大课堂
- [求职职场]群论期末考试复习题
- [求职职场]施工现场消防安全专项施工方案(范本)-
- [求职职场]初中物理光学知识点归纳完美版
- [求职职场]毕业设计总结与体会范文
- [求职职场]江南大学2018年上半年展示设计第1阶段
- [求职职场]景尚乡民兵参战支前保障方案
- [求职职场]【优质】2019年工会职工之家建设工作总
- [求职职场]数据库技术与应用—SQL Server 2008(第
- [求职职场]汽车变速箱构造与工作原理
- 首钢工业区工业遗产资源保护与再利用研
- 第4课 《大学》节选
- 2016程序文件——检验检测结果发布程序
- 2011年高考试题文言文阅读全解释__2011
- 化学是一门基础的自然科学
- 海外做市商制度的借鉴意义
- 外国建筑史复习资料(
- 七年级下思想品德期末综合测试(二)
- 思政课部2013年上学期教学工作总结
- 电大国际公法任务3 0004
- 《圆的认识》教学设计
- 中国轨道交通牵引变流器行业市场发展调
- 中泰证券#定期报告:坚守时代硬科技和
- 浅论企业财务管理与企业经营投资风险的
- 大功率半导体激光器光纤耦合技术调研报
- 中国传统家具的现状与发展探讨
- Broadcom数字电视芯片助海尔扩展高清电
- 新HSK4词汇练习 超全(五)
- 2013届高考数学单元考点复习12
- 雨霖铃精品课件




