J2EE教程第3章SessionBean课件.ppt
《J2EE教程第3章SessionBean课件.ppt》由会员分享,可在线阅读,更多相关《J2EE教程第3章SessionBean课件.ppt(58页珍藏版)》请在三一办公上搜索。
1、声明,本课件仅用于北京航空航天大学计算机学院的教学;本课件修改采用了一些网络资源(论文、研究报告、技术报告等),在采用的时候并没有准确标注引用信息。,J2EE教程第3章 Session Bean,分布式系统:程序运行在不同的地址空间(通常是不同的主机上)进程之间的通信是分布式系统的一个基本问题,程序A,程序B,内容提要,3.1 SOCKET3.2 RPC3.3 RMI3.4 Session Bean3.5 小结,3.1 SOCKET,Socket 是一个基本的通信机制Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。Socket把复杂的TCP/IP协议族隐藏在Sock
2、et接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。,优势:功能强大挑战:过于底层,涉及一套复杂的流程,要求每个应用的客户端和服务器端都参与到一套复杂的应用层协议中;程序代码量多,容易出错且难以调试。,3.2 RPC,最初由 Sun 微系统提出 RFC(1984年Birrell和Nelson的一篇论文中提出?),并应用于Unix系统IETF ONC 宪章重新修订了Sun版本,使得ONC RPC协议成为IETF标准协议现在使用最普遍的模式和执行是The Open Group组织(前身为OSF,开放式软件基金)的分布式计算环境(DCE),RPC的基本想法目
3、的是允许程序(Client)调用驻留在其他机器上的过程(Server)并且使远程的过程调用看起来和本地的过程调用没有区别RPC的做法是引入存根(Stub)的概念,若服务端有某个函数fn(),为了能够被远程调用,需要通过编译器生成两个stub:客户端的一个stub:c_fn()服务器端的一个stub:s_fn(),RPC比LPC复杂,操作系统:运行调用和被调用进程的计算机可能有明显不同的体系结构和数据表示格式;网络通信:调用进程和被调用进程间的网络比本地计算机有更复杂的特性。例如,它可能限制消息尺寸,并且有丢失和重排消息的可能,安全问题;编程语言:跨语言之间的互操作问题;,Stub的对要发送的参
4、数进行marshal(可理解成一种打包操作)和对接受到的参数(或返回值)进行unmarshal(解包)。Marshal操作将要发送的数据制成一种标准的格式(在DCE RPC系统中,此格式称做Network Data Representation(NDR)格式)unmarshal再从NDR格式数据包中读出所需数据该标准格式屏蔽了计算机体系结构和数据表示格式的差异,Client stub的功能:收集调用远程函数需要的参数将这些参数marshal成消息,即把消息转化成标准的网络数据表示(network data representation,NDR)格式,用于在网络上传递调用客户端的运行时系统(Cl
5、ient runtime system)将此消息发送给服务器端。当服务器端将结果消息返回后,将结果消息unmarshal,把结果返回给应用进程。Server stub的功能:对发送给它的参数消息unmarshal,收集参数调用位于本机上的过程将此过程执行的结果marshal成消息,然后调用服务器端的运行时系统将结果消息发送给客户端,客户端的运行系统将客户端stub产生的消息可靠的传送给server利用TCP/UDP等协议,将消息发送到Server服务端的运行时系统侦听某个众所周知的socket端口,接受请求调用Server Stub,处理接收到的消息运行系统提供了可靠的数据传输,IDL,Int
6、erface definition file 是一个接口文件,它应该由用户利用IDL(interface definition language)语言编辑而成。IDL是一种用来说明操作(过程或函数),操作的参数以及数据类型的语言,它在语法上继承于C语言,但形式上和C语言有很多不同。IDL屏蔽了编程语言的差异,3.3 RMI,Remote Method Invocation(RMI)出现于Jdk1.1(2019.02),在Jdk1.2中改进定位:Access to Remote ObjectsClient-Server ProtocolHigh-level APIJava-to-Java onl
7、yTransparentLightweight,从RPC到RMI,变化:从过程面向对象从函数调用对实例的操作问题:动态绑定问题取得实例的引用接口,ClientSend(),ServerEcho(),Server_StubEcho(),Server_StubEcho(),obj,obj,Stub Object,Server,Remote Object,public interface Adder extends Remote public int add(int x,int y)throws RemoteException;,Remote Interface,RMIRegistry,3.4 Se
8、ssion Bean,RMIStateless远程对象总是存在,使用者通过naming取得远程对象的引用由服务提供者控制Remote Object的创建和销毁企业级应用要求“远程对象”:会话,管理(持久化,生命周期),安全,事务,Session Bean:让remote service(即Session Bean)实现javax.ejb.SessionBean接口由EJB容器利用SessionBean接口管理Session Bean的生命周期(初始化、销毁、钝化等)EJB容器截获远程调用请求,将请求转发给Session BeanEJB容器在这个过程中插入/实现安全、事务和持久化等处理,Sess
9、ion Bean and RMI,Server,Container,Remote Object,Client,EJB,(1)Call.Create(),(2)Call business methods,RMI,Naming and Diretory Service,(n),(1),(n),Home Stub,Remote Stub,Object,Remote Interface,Home Interface,javax.ejb.SessionBean,Client,EJB容器,在部署EJB时,容器会为每个EJB:根据Home接口产生Home Object生成stub和skeleton根据部署描
10、述符设置安全环境、事务环境在JNDI名称空间中注册EJB包括Home接口、资源引用等,客户端在访问EJB时:通过JNDI查找到Home Object的引用通过Home Interface上的create方法创建一个Remote ObjectHome Object会创建并返回一个Remote Object调用Remote Interface上的商业方法Remote Object截取调用进行处理,然后委托Bean Class完成商业方法Remote Object截取Bean Class的返回进行处理,然后将结果返回给客户端,Bean Class在执行商业方法时可以访问容器:可以通过EJBConte
11、xt对象(它是对容器的直接引用)请求关于环境的信息:如Client的身份、事务的状态以及自身的引用。可以通过JNDI访问资源,如JDBC连接、其它的EJB等。,容器在管理EJB生命周期过程中,通过回调方法通知EJB状态的变化:Bean Class实现并响应这些回调方法,进行相应的处理。不同类型的EJB回调方法各不相同,如Session Bean包括:ejbCreate;ejbRemove;ejbPassivate;ejbActivate。,参考文献,揭开Socket编程的面纱,goodcandles/archive/2019/12/10/294652.aspx Distributed Syst
12、ems:Concepts and Design,George Coulouris,Jean Dollimore&Tim Kindberg,1994对分布计算系统的探究,wbright,2019.02 chinaitpower/A/2019-02-19/14439.html Java Remote Method Invocation Specification,Sun Microsystems,2019Java Remote Method Invocation(RMI),Alexander Day Chaffee,2019,alexcpurpletech Enterprise JavaBeans
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- J2EE 教程 SessionBean 课件
链接地址:https://www.31ppt.com/p-2139547.html