学习札记2006-10-4

EJB与对象序列化详解
本文探讨了EJB(企业Java Bean)的各种特性,包括实体Bean与会话Bean的区别,以及如何通过对象序列化在网络间传递数据。实体Bean对应数据库表,并具有持久性;而会话Bean则是非持久性的,用于业务逻辑处理。文章还详细解释了对象序列化的过程,即把对象的状态转化为字节流以便在网络上传输或存储。
1.
在简单的场合中,Entity Bean 的架构可以直接对映成一个数据表,只是
Entity Bean 中的Relationships 可以使用数据库的Primary Key 以及Foreign
Key 来取代。
2.
a.用户调用一个存根程序(Stub),它是一个客户端代理对象。这个存根程序负责处理与客户端的网络通信。存根程序知道怎样使用Socket在网络中进行调用和将参数映射到网络的表达方式。
b.存根程序通过网络调用一个叫做框架程序(Skeleton)的服务器端代理对象,框架程序(Skeleton)处理来自分布式对象的通信。框架程序(Skeleton)知道如何通过Socket来接收一个调用,而且它也能将参数的网络表达方式映射为java表达方式。
c.框架程序(Skeleton)将调用委托给分布式对象。分布式对象完成了它的工作之后,将控制权转给框架程序(Skeleton),框架程序(Skeleton)接着又将控制权转给存根程序(Stub),存根程序(Stub)最后将控制权转给客户端。
这里的一个关键之处在于存根程序和分布式对象实现同一个接口(叫做远程接口),这就是说,存根程序复制了分布式对象的方法特征。一个客户端程序调用了一个存根程序上的方法时,会认为它是在直接调用分布式对象上的方法。实际上,客户端程序只是调用了一个空的存根程序,而这个存根程序知道如何处理网络问题。这被称作本地/远程透明性。
3.
相比之下,实体bean的生命周期可以是几个月,甚至是几年。因为实体Bean是持久性对象,实体B阿安可能是某一持久性存储器,如数据库的一部分。实体Bean可以通过从数据库获取数据在内存中创建,它们可以长时间地存在。
会话B阿安是非持久性对象,这就意味着会话Bean并不存储于永久性存储器中,这和实体Bean不一样。要注意的是,会话Bean可以对数据库进行操作,但本身不是持久性对象。

4.
为了限制会话Bean实例在内存中的数量,EJB容器将状态会话Bean交换出去,其对话状态存在硬盘或其他存储器中,这种做法叫做钝化(passivation)。状态会话Bean被钝化后,对话状态被安全的存储起来,使得内存等资源能被重新使用。当被钝化的Bean原先的客户端对其触发方法进行调用时,被钝化的对话状态重新交换给Bean,这种做法叫做激活(activation)。接收激活状态的Bean可能不是原先的Bean实例。但是这并没有关系,因为新的Bean实例从原先的Bean实例钝化时的那一点重新开始对话。这样看来,EJB实际上能够实现状态会话Bean的调度池调度(pooling)。当又很多客户端调用时,内存中也只能又有限的几个Bean实例,而且调度池调度时又代价的,钝化/激活过程可能导致I/O瓶颈。这一点与无状态会话Bean形成鲜明的对比。
5.
对象序列化是一种将对象轮廓转变为紧凑的表现形式的简易方法。当您序列化一个对象轮廓时,就是将它转换为一个字符流。然后,就可以对这个字符流作任何想要作的处理,比如通过网络发送这些数据(也就是Java RMI怎样通过网络传送参数),或者可以将这个字节流存放到一个存储空间中,例如文件系统,数据库或JNDI树。
6.
实体Bean类 映射一个数据库模式中的一个实体定义。例如,一个实体Bean类可映射一个关系型表的定义。在这种情况下,该类的一个实体Bean实例将映射那个表中的一行。
7.
ejbLoad()从持久存储空间读入数据到实体Bean在内存的域中。
ejbStore()保存Bean实例的当前域到底层的数据存储空间,它是ejbLoad()补充。
ejbLoad()和ejbStore()是通过容器来调用的,能够调用返回的方法,他们是EJB所必需处理方法。容器会考虑什么时候是调用ejbLoad(),ejbStroe()。
8.
会话bean、消息驱动bean和实体bean都是单线程的。
标题基于Python的自主学习系统后端设计与实现AI更换标题第1章引言介绍自主学习系统的研究背景、意义、现状以及本文的研究方法和创新点。1.1研究背景与意义阐述自主学习系统在教育技术领域的重要性和应用价值。1.2国内外研究现状分析国内外在自主学习系统后端技术方面的研究进展。1.3研究方法与创新点概述本文采用Python技术栈的设计方法和系统创新点。第2章相关理论与技术总结自主学习系统后端开发的相关理论和技术基础。2.1自主学习系统理论阐述自主学习系统的定义、特征和理论基础。2.2Python后端技术栈介绍DjangoFlask等Python后端框架及其适用场景。2.3数据库技术讨论关系型和非关系型数据库在系统中的应用方案。第3章系统设计与实现详细介绍自主学习系统后端的设计方案和实现过程。3.1系统架构设计提出基于微服务的系统架构设计方案。3.2核心模块设计详细说明用户管理、学习资源管理、进度跟踪等核心模块设计。3.3关键技术实现阐述个性化推荐算法、学习行为分析等关键技术的实现。第4章系统测试与评估对系统进行功能测试和性能评估。4.1测试环境与方法介绍测试环境配置和采用的测试方法。4.2功能测试结果展示各功能模块的测试结果和问题修复情况。4.3性能评估分析分析系统在高并发等场景下的性能表现。第5章结论与展望总结研究成果并提出未来改进方向。5.1研究结论概括系统设计的主要成果和技术创新。5.2未来展望指出系统局限性并提出后续优化方向。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值