JNDI和远程方法调用.pptx_第1页
JNDI和远程方法调用.pptx_第2页
JNDI和远程方法调用.pptx_第3页
JNDI和远程方法调用.pptx_第4页
JNDI和远程方法调用.pptx_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

经典Java EE课程 段鹏松 第5章 JNDI和远程方法调用 了解命名服务的意义和作用 了解JNDI的概念 会在Weblogic中配置JDNI 会在JBoss中配置JDNI 掌握开发RMI服务器端和客户端的方法 课程目标 目 录 JNDI的概念 JNDI编程入门 服务器提供的JNDI支持 RMI概述 RMI编程 同时作为客户端和服务器的RMI程序 JDNI的概念 JNDI(Java Naming and Directory Interface,Java命名和目录接口)是一组在 Java应用中访问命名和目录服务的API。 命名服务将名称和对象联系起来,使得我们 可以用名称访问对象。 目录服务是一种命名服务,在这种服务里, 对象不但有名称,还有属性。 JNDI架构图 JDNI的优点 可以使用相同API 调用访问任何命名或目 录服务。 可以同时连接多个命名和目录服务。 允许把名称同JAVA 对象或资源关联起来 ,不必知道对象或资源的物理ID。 使用通用接口访问不同种类的目录服务, 使得开发人员能够集中使用和实现一种类 型的命名或目录服务客户API 上。 命名服务 命名服务(Naming Service)提供了一种为 对象命名的机制,可以定位任何通过网络 可以访问的机器上的对象,使得用户可以 在无需知道对象位置的情况下获取和使用 对象。 使用命名服务,首先要将对象在命名服务 器上注册,然后用户就可以通过命名服务 器的地址和该对象在命名服务器上注册的 JNDI名找到该对象,获得其引用了。 目录服务 目录服务对于网络的作用就像白页对电话 系统的作用一样。目录服务将有关现实世 界中的事物(如人、计算机、打印机等等) 的信息存储为具有描述性属性的对象。人 们可以使用该服务按名称查找对象或者像 使用黄页一样,可使用它们查找服务。 常用的目录服务系统 JNDI LDAP 目 录 JNDI的概念 JNDI编程入门 服务器提供的JNDI支持 RMI概述 RMI编程 同时作为客户端和服务器的RMI程序 JNDI的基本概念 Bindings:绑定。名称和对象的一个关联叫做 绑定。 Context:上下文。一个上下文是一组 名称-对 象 的绑定。 Naming systems and Namespaces命名系统 是一组相互关联的同一类型的上下文(具有相同 的命名规范),并且提供一组通用的操作。一个 命名系统中所有名称的集合称为一个命名空间 (Namespace)。 Naming Service Directory Service 文件系统的命名服务 为了在程序中使用JNDI,至少需要3方面的支持: JNDI API(JDK已全部提供) JNDI SPI(JDK已提供部分) 命名、目录服务器 安装文件系统的SPI 主要是两个jar包 fscontext.jar providerutil.jar 实际操作演示 JNDI编程 通过JNDI访问被绑定对象的步骤 创建Context对象 调用Context的方法来执行绑定、查找等操作 关闭Context 实际操作演示 文件系统 演示结果 目 录 JNDI的概念 JNDI编程入门 服务器提供的JNDI支持 RMI概述 RMI编程 同时作为客户端和服务器的RMI程序 Weblogic的JNDI支持 打开JNDI树 Weblogic的JNDI支持 实际操作演示 远程访问JNDI 运行结果和本地运行结果一样 Weblogic操作JNDI注意事项 对于JDK所属的基本类型,直接绑定调用即可; 对于java.swing.*下面的类型,在netbeans7.3 下面有时会有编号为210的错误,可能是 netbeans版本的原因;可以手动在cmd下进行 编译运行即可; 对于自定义类型,需要先把自定义的类型做成 jar包,在JNDI绑定环节及测试环节进行调用。 以上三种,测试环节都必须导入Weblogic下的 webservices.jar和wlclient.jar。 JBoss的JNDI支持 实际操作演示 和weblogic相比,问题较少 注意:需要导入相应的jar包 jbossall-client.jar jboss-logging-spi.jar jnp-client.jar 目 录 JNDI的概念 JNDI编程入门 服务器提供的JNDI支持 RMI概述 RMI编程 同时作为客户端和服务器的RMI程序 RMI概述 RMI是Java的一组用户开发分布式应用程序的 API。 RMI使用Java语言接口定义了远程对象,它集合 了Java序列化和Java远程方法协议(Java Remote Method Protocol)。 简单地说,这样使原先的程序在同一操作系统的 方法调用,变成了不同操作系统之间程序的方法 调用,由于J2EE是分布式程序平台,RMI机制 实现程序组件在不同操作系统之间的通信。 比如,一个EJB可以通过RMI调用Web上另一台 机器上的EJB远程方法。 远程访问的好处 远程访问可提供多个计算单元的协同服务 远程访问能提供更好的可靠性和可用性 远程访问能提供更好的透明性 远程访问能提供更好的开放性和可伸缩性 RMI系统运行原理 RMI应用程序通常包括两个独立的程序: 服务器程序和客户机程序。 典型的服务器应用程序将创建多个远程对 象,使这些远程对象能够被引用,然后等 待客户机调用这些远程对象的方法。 典型的客户机程序则从服务器中得到一个 或多个远程对象的引用,然后调用远程对 象的方法。RMI为服务器和客户机进行通 信和信息传递提供了一种机制。 RMI的作用和意义 RMI是Java最早实现的远程访问技术,而 且性能非常优秀,也是其他Java EE规范 的实现基础。 RMI本质上是对Java Socket网络通讯的 高度封装。 RMI解决原来Socket编程中的网络信息交 换和多线程的问题。 目 录 JNDI的概念 JNDI编程入门 服务器提供的JNDI支持 RMI概述 RMI编程 同时作为客户端和服务器的RMI程序 RMI编程之服务器端 远程接口必须继承java.rmi.Remote接口 远程服务提供类必须继承 java.rmi.server.UnicastRemoteObject类 远程服务提供类的构造函数必须抛出 Remote Exception 必须要在服务器上注册RMI服务 在程序中用代码注册 在命令行用rmiregistry命令注册 实际操作演示 RMI编程之客户端 开发步骤 通过JNDI查找提供远程RMI服务的对象,并对其 执行强制类型转换 调用远程方法 调用远程方法必须抛出Remote Exception 需要把服务器端接口编译后的class文件拷贝 到客户端(即面向RMI的服务接口编程) 实际操作演示 运行结果 Server Client Client (重写Person的 toString()方法) RMI的基本原理 RMI框架为远程对象分别生成了客户端代 理和服务器端代理,位于客户端的代理类 称为存根(Stub),位于服务器端的代理类 称为骨架(Skeleton) RMI的基本原理 客户端的调用请求是发送给本地的Stub对 象,再由Stub对象和Skeleton对象建立底 层的网络通信、对线程处理等通信细节。 RMI把这些细节封装起来。 客户端和服务器端通讯的详细流程 参看教材P221 目 录 JNDI的概念 JNDI编程入门 服务器提供的JNDI支持 RMI概述 RMI编程 同时作为客户端和服务器的RMI程序 概 述 实际项目中有时服务器端也要调用客户端程序的 方法 服务器端的特点 服务器端有固定的IP地址 可以执行JNDI绑定,将远程服务暴露出来 总处于等待状态,随时准备接受远程调用 客户端的特点 无固定IP地址 不会执行JNDI绑定,不会主动暴露服务 通常不允许外界直接调用 回调(CallBack)的概念 同时作为客户端和服务器端的RMI程序 开发客户端程序 需要继承Remote接口 开发服务器端程序 需要继承Remote接口

温馨提示

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

评论

0/150

提交评论