JNDI和远程方法调用.pptx

上传人:tia****nde 文档编号:12707051 上传时间:2020-05-14 格式:PPTX 页数:36 大小:609.41KB
返回 下载 相关 举报
JNDI和远程方法调用.pptx_第1页
第1页 / 共36页
JNDI和远程方法调用.pptx_第2页
第2页 / 共36页
JNDI和远程方法调用.pptx_第3页
第3页 / 共36页
点击查看更多>>
资源描述
经典JavaEE课程,段鹏松,第5章JNDI和远程方法调用,了解命名服务的意义和作用了解JNDI的概念会在Weblogic中配置JDNI会在JBoss中配置JDNI掌握开发RMI服务器端和客户端的方法,课程目标,目录,JNDI的概念JNDI编程入门服务器提供的JNDI支持RMI概述RMI编程同时作为客户端和服务器的RMI程序,JDNI的概念,JNDI(JavaNamingandDirectoryInterface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API。命名服务将名称和对象联系起来,使得我们可以用名称访问对象。目录服务是一种命名服务,在这种服务里,对象不但有名称,还有属性。,JNDI架构图,JDNI的优点,可以使用相同API调用访问任何命名或目录服务。可以同时连接多个命名和目录服务。允许把名称同JAVA对象或资源关联起来,不必知道对象或资源的物理ID。使用通用接口访问不同种类的目录服务,使得开发人员能够集中使用和实现一种类型的命名或目录服务客户API上。,命名服务,命名服务(NamingService)提供了一种为对象命名的机制,可以定位任何通过网络可以访问的机器上的对象,使得用户可以在无需知道对象位置的情况下获取和使用对象。使用命名服务,首先要将对象在命名服务器上注册,然后用户就可以通过命名服务器的地址和该对象在命名服务器上注册的JNDI名找到该对象,获得其引用了。,目录服务,目录服务对于网络的作用就像白页对电话系统的作用一样。目录服务将有关现实世界中的事物(如人、计算机、打印机等等)的信息存储为具有描述性属性的对象。人们可以使用该服务按名称查找对象或者像使用黄页一样,可使用它们查找服务。常用的目录服务系统JNDILDAP,目录,JNDI的概念JNDI编程入门服务器提供的JNDI支持RMI概述RMI编程同时作为客户端和服务器的RMI程序,JNDI的基本概念,Bindings:绑定。名称和对象的一个关联叫做绑定。Context:上下文。一个上下文是一组名称-对象的绑定。NamingsystemsandNamespaces命名系统是一组相互关联的同一类型的上下文(具有相同的命名规范),并且提供一组通用的操作。一个命名系统中所有名称的集合称为一个命名空间(Namespace)。NamingServiceDirectoryService,文件系统的命名服务,为了在程序中使用JNDI,至少需要3方面的支持:JNDIAPI(JDK已全部提供)JNDISPI(JDK已提供部分)命名、目录服务器安装文件系统的SPI主要是两个jar包fscontext.jarproviderutil.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.jarjboss-logging-spi.jarjnp-client.jar,目录,JNDI的概念JNDI编程入门服务器提供的JNDI支持RMI概述RMI编程同时作为客户端和服务器的RMI程序,RMI概述,RMI是Java的一组用户开发分布式应用程序的API。RMI使用Java语言接口定义了远程对象,它集合了Java序列化和Java远程方法协议(JavaRemoteMethodProtocol)。简单地说,这样使原先的程序在同一操作系统的方法调用,变成了不同操作系统之间程序的方法调用,由于J2EE是分布式程序平台,RMI机制实现程序组件在不同操作系统之间的通信。比如,一个EJB可以通过RMI调用Web上另一台机器上的EJB远程方法。,远程访问的好处,远程访问可提供多个计算单元的协同服务远程访问能提供更好的可靠性和可用性远程访问能提供更好的透明性远程访问能提供更好的开放性和可伸缩性,RMI系统运行原理,RMI应用程序通常包括两个独立的程序:服务器程序和客户机程序。典型的服务器应用程序将创建多个远程对象,使这些远程对象能够被引用,然后等待客户机调用这些远程对象的方法。典型的客户机程序则从服务器中得到一个或多个远程对象的引用,然后调用远程对象的方法。RMI为服务器和客户机进行通信和信息传递提供了一种机制。,RMI的作用和意义,RMI是Java最早实现的远程访问技术,而且性能非常优秀,也是其他JavaEE规范的实现基础。RMI本质上是对JavaSocket网络通讯的高度封装。RMI解决原来Socket编程中的网络信息交换和多线程的问题。,目录,JNDI的概念JNDI编程入门服务器提供的JNDI支持RMI概述RMI编程同时作为客户端和服务器的RMI程序,RMI编程之服务器端,远程接口必须继承java.rmi.Remote接口远程服务提供类必须继承java.rmi.server.UnicastRemoteObject类远程服务提供类的构造函数必须抛出RemoteException必须要在服务器上注册RMI服务在程序中用代码注册在命令行用rmiregistry命令注册实际操作演示,RMI编程之客户端,开发步骤通过JNDI查找提供远程RMI服务的对象,并对其执行强制类型转换调用远程方法调用远程方法必须抛出RemoteException需要把服务器端接口编译后的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接口优点看不到复杂的网络通讯不需要处理多线程问题实际操作演示注意:教材的代码需要重新编译客户端的class文件一定要和服务器端一致,演示结果(客户端),本机客户端1,本机客户端2,演示结果(服务器端),从服务端可以看出,有两个本机的客户端,一个非本机的客户端连接到服务器端,本章小结,学习了JNDI的基本概念学习了RMI的基本概念和用法,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!