J2EE教程第3章SessionBean课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《J2EE教程第3章SessionBean课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- J2EE 教程 SessionBean 课件
- 资源描述:
-
1、声明声明n本课件仅用于北京航空航天大学计算机学院的本课件仅用于北京航空航天大学计算机学院的教学;教学;n本课件修改采用了一些网络资源(论文、研究本课件修改采用了一些网络资源(论文、研究报告、技术报告等),在采用的时候并没有准报告、技术报告等),在采用的时候并没有准确标注引用信息。确标注引用信息。J2EE教程教程第第3章章 Session Beann分布式系统:分布式系统:q程序运行在不同的地址空间程序运行在不同的地址空间(通常是不同的主机上通常是不同的主机上)q进程之间的通信是分布式系统的一个基本问题进程之间的通信是分布式系统的一个基本问题程序A程序B内容提要内容提要n3.1 SOCKETn3
2、.2 RPCn3.3 RMIn3.4 Session Beann3.5 小结小结3.1 SOCKETnSocket 是一个基本的通信机制是一个基本的通信机制nSocket是应用层与是应用层与TCP/IP协议族通信的中间协议族通信的中间软件抽象层,它是一组接口。软件抽象层,它是一组接口。nSocket把复杂的把复杂的TCP/IP协议族隐藏在协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是接口后面,对用户来说,一组简单的接口就是全部,让全部,让Socket去组织数据,以符合指定的去组织数据,以符合指定的协议。协议。n优势:优势:q功能强大功能强大n挑战:挑战:q过于底层,涉及一套复
3、杂的流程,要求每个应用的过于底层,涉及一套复杂的流程,要求每个应用的客户端和服务器端都参与到一套复杂的应用层协议客户端和服务器端都参与到一套复杂的应用层协议中;中;q程序代码量多,容易出错且难以调试。程序代码量多,容易出错且难以调试。3.2 RPCn最初由最初由 Sun 微系统提出微系统提出 RFC(1984年年Birrell和和Nelson的一篇论文中提出?的一篇论文中提出?),),并应用于并应用于Unix系统系统nIETF ONC 宪章重新修订了宪章重新修订了Sun版本,使得版本,使得ONC RPC协议成为协议成为IETF标准协议标准协议n现在使用最普遍的模式和执行是现在使用最普遍的模式和
4、执行是The Open Group组织组织(前身为前身为OSF,开放式软件基金,开放式软件基金)的的分布式计算环境(分布式计算环境(DCE)nRPC的基本想法的基本想法q目的是允许程序目的是允许程序(Client)调用驻留在其他机调用驻留在其他机器上的过程器上的过程(Server)q并且使远程的过程调用看起来和本地的过程并且使远程的过程调用看起来和本地的过程调用没有区别调用没有区别nRPC的做法是引入存根(的做法是引入存根(Stub)的概念)的概念n若服务端有某个函数若服务端有某个函数fn(),为了能够被远程调用,需,为了能够被远程调用,需要通过编译器生成两个要通过编译器生成两个stub:q客
5、户端的一个客户端的一个stub:c_fn()q服务器端的一个服务器端的一个stub:s_fn()RPCRPC比比LPCLPC复杂复杂n操作系统:运行调用和被调用进程的计算操作系统:运行调用和被调用进程的计算机可能有明显不同的体系结构和数据表示机可能有明显不同的体系结构和数据表示格式;格式;n网络通信:调用进程和被调用进程间的网网络通信:调用进程和被调用进程间的网络比本地计算机有更复杂的特性。例如,络比本地计算机有更复杂的特性。例如,它可能限制消息尺寸,并且有丢失和重排它可能限制消息尺寸,并且有丢失和重排消息的可能,安全问题;消息的可能,安全问题;n编程语言:跨语言之间的互操作问题;编程语言:跨
6、语言之间的互操作问题;nStub的对要发送的参数进行的对要发送的参数进行marshal(可理解可理解成一种打包操作成一种打包操作)和对接受到的参数(或返回和对接受到的参数(或返回值)进行值)进行unmarshal(解包解包)。qMarshal操作将要发送的数据制成一种标准的格式操作将要发送的数据制成一种标准的格式(在(在DCE RPC系统中,此格式称做系统中,此格式称做Network Data Representation(NDR)格式)格式)qunmarshal再从再从NDR格式数据包中读出所需数据格式数据包中读出所需数据n该标准格式该标准格式屏蔽了计算机体系结构和数据表屏蔽了计算机体系结构
7、和数据表示格式的差异示格式的差异nClient stub的功能:的功能:q收集调用远程函数需要的参数收集调用远程函数需要的参数q将这些参数将这些参数marshal成消息,即把消息转化成标准的网成消息,即把消息转化成标准的网络数据表示络数据表示(network data representation,NDR)格格式,用于在网络上传递式,用于在网络上传递q调用客户端的运行时系统(调用客户端的运行时系统(Client runtime system)将此消息发送给服务器端。将此消息发送给服务器端。q当服务器端将结果消息返回后,将结果消息当服务器端将结果消息返回后,将结果消息unmarshal,把结果返
8、回给应用进程。把结果返回给应用进程。nServer stub的功能:的功能:q对发送给它的参数消息对发送给它的参数消息unmarshal,收集参数,收集参数q调用位于本机上的过程调用位于本机上的过程q将此过程执行的结果将此过程执行的结果marshal成消息,然后调用服务器成消息,然后调用服务器端的运行时系统将结果消息发送给客户端端的运行时系统将结果消息发送给客户端n客户端的运行系统客户端的运行系统q将客户端将客户端stub产生的消息产生的消息可靠可靠的传送给的传送给serverq利用利用TCP/UDP等协议,将消息发送到等协议,将消息发送到Servern服务端的运行时系统服务端的运行时系统q侦
9、听某个众所周知的侦听某个众所周知的socket端口,接受请求端口,接受请求q调用调用Server Stub,处理接收到的消息,处理接收到的消息n运行系统提供了可靠的数据传输运行系统提供了可靠的数据传输IDLnInterface definition file 是一个接口文件,它是一个接口文件,它应该由用户利用应该由用户利用IDL(interface definition language)语言编辑而成。语言编辑而成。nIDL是一种用来说明操作(过程或函数),操是一种用来说明操作(过程或函数),操作的参数以及数据类型的语言,它在语法上继作的参数以及数据类型的语言,它在语法上继承于承于C语言,但形
10、式上和语言,但形式上和C语言有很多不同。语言有很多不同。nIDL屏蔽了编程语言的差异屏蔽了编程语言的差异3.3 RMInRemote Method Invocation(RMI)n出现于出现于Jdk1.1(2019.02),在,在Jdk1.2中改进中改进n定位:定位:qAccess to Remote ObjectsqClient-Server ProtocolqHigh-level APIqJava-to-Java onlyqTransparentqLightweight从从RPC到到RMIn变化:变化:q从过程从过程面向对象面向对象q从函数调用从函数调用对实例的操作对实例的操作n问题:问题
11、:q动态绑定问题动态绑定问题取得实例的引用取得实例的引用q接口接口ClientSend()ServerEcho()Server_StubEcho()Server_StubEcho()objobjStub ObjectServerRemote Objectpublic interface Adder extends Remote public int add(int x,int y)throws RemoteException;Remote InterfaceRMIRegistry3.4 Session BeannRMIqStatelessq远程对象总是存在,使用者通过远程对象总是存在,使用者通
12、过naming取取得远程对象的引用得远程对象的引用q由服务提供者控制由服务提供者控制Remote Object的创建和的创建和销毁销毁n企业级应用要求企业级应用要求“远程对象远程对象”:q会话会话,管理管理(持久化持久化,生命周期生命周期),安全安全,事务事务nSession Bean:q让让remote service(即即Session Bean)实现实现javax.ejb.SessionBean接口接口q由由EJB容器容器利用利用SessionBean接口管理接口管理Session Bean的生的生命周期(初始化、销毁、钝化等)命周期(初始化、销毁、钝化等)qEJB容器截获远程调用请求,
13、将请求转发给容器截获远程调用请求,将请求转发给Session BeanqEJB容器在这个过程中插入容器在这个过程中插入/实现安全、事务和持久化等处理实现安全、事务和持久化等处理Session Bean and RMIServerContainerRemote ObjectClientEJB(1)Call.Create()(2)Call business methodsRMINaming and Diretory Service(n)(1)(n)Home StubRemote StubObjectRemote InterfaceHome Interfacejavax.ejb.SessionBea
14、nHomeObjectJNDIClientJNDIlookupEJB容器容器n在部署在部署EJB时,容器会为每个时,容器会为每个EJB:q根据根据Home接口产生接口产生Home Objectq生成生成stub和和skeletonq根据部署描述符设置安全环境、事务环境根据部署描述符设置安全环境、事务环境q在在JNDI名称空间中注册名称空间中注册EJB包括包括Home接口、资源引用等接口、资源引用等n客户端在访问客户端在访问EJB时:时:q通过通过JNDI查找到查找到Home Object的引用的引用q通过通过Home Interface上的上的create方法创建一个方法创建一个Remote
15、ObjectqHome Object会创建并返回一个会创建并返回一个Remote Objectq调用调用Remote Interface上的商业方法上的商业方法qRemote Object截取调用进行处理,然后委托截取调用进行处理,然后委托Bean Class完完成商业方法成商业方法qRemote Object截取截取Bean Class的返回进行处理,然后将结的返回进行处理,然后将结果返回给客户端果返回给客户端nBean Class在执行商业方法时可以访问容器:在执行商业方法时可以访问容器:q可以通过可以通过EJBContext对象(它是对容器的直接引用)对象(它是对容器的直接引用)请求关于
16、环境的信息:如请求关于环境的信息:如Client的身份、事务的状的身份、事务的状态以及自身的引用。态以及自身的引用。q可以通过可以通过JNDI访问资源,如访问资源,如JDBC连接、其它的连接、其它的EJB等。等。n容器在管理容器在管理EJB生命周期过程中,通过回调方法通知生命周期过程中,通过回调方法通知EJB状态的变化:状态的变化:qBean Class实现并响应这些回调方法,进行相应的处理。实现并响应这些回调方法,进行相应的处理。q不同类型的不同类型的EJB回调方法各不相同,如回调方法各不相同,如Session Bean包括:包括:ejbCreate;ejbRemove;ejbPassiva
17、te;ejbActivate。参考文献参考文献n揭开揭开Socket编程的面纱编程的面纱,goodcandles/archive/2019/12/10/294652.aspx nDistributed Systems:Concepts and Design,George Coulouris,Jean Dollimore&Tim Kindberg,1994n对分布计算系统的探究对分布计算系统的探究,wbright,2019.02 chinaitpower/A/2019-02-19/14439.html nJava Remote Method Invocation Specification,Su
展开阅读全文