论文部分内容阅读
EJB(Enterprise Java Bean)是为开发和部署基于组件的分布式应用而定义的组件体系结构。与其他组件技术相比,EJB组件具有可扩展性、事务性和并发访问安全性,而且EJB组件使用纯Java编写,具有更好的平台独立性,在分布式系统的开发方面有显著的优势。 实体Bean是EJB的一种。EJB规范定义两种实现实体Bean的方法:BeanManagedPersistence(BMP)和ContainerManagedPresistence(CMP)。使用CMP时,容器自动将对象操作转换为数据库操作,是一种典型的对象持久化技术。当前存在多种对象持久化技术,包括对象数据库技术、JDO技术和DAO技术等,但是它们都有自身的缺陷,不能高效的用于分布式应用的丌发。相比之下,实体Bean技术应用广泛,经过不断的发展,已经具备了比较完善的功能,并形成了全面细致的规范。 实体Bean规范规定了实体Bean的开发方法,实体Bean容器的功能和持久化管理器的功能。但是该规范没有规定后两者的实现方法。目前大多数的J2EE应用服务器都实现了实体Bean容器和持久化管理器,但随着实体Bean应用的推广,都暴露出一些缺陷,例如:没有完全遵守规范;并发访问效率较低;容易发生死锁;配置性较低等。此外,实体Bean规范也暴露出很多不足。 本文提出了一种实体Bean容器和CMP持久化管理器的实现方法。为了避免上述缺陷,同时获得较高的性能,我们在设计时除了考虑基本的需求,还重点研究了线程池、并发控制和死锁检测算法。在实现CMP持久化方面,我们使用关系数据库作为存储介质,通过选择最佳的映射策略能够保存实体Bean的对象特性,并通过优化数据库访问操作获得较高的性能。整个实现不仅完全遵守实体Bean2.1规范,还对规范中不方便编程的部分进行了增强,并具有较高的性能和较强的定制功能。 该实体Bean容器和持久化管理器已经在网络应用服务器OnceAS中实现,OnceAS遵守J2EE1.3规范。