论文部分内容阅读
以J2EE多层开发环境为代表的企业级应用开发关键技术之一是建立一个数据持久化层,使得上层面向对象的开发环境和底层关系数据库管理系统做到无缝融合,应用开发者能够以更多的精力去解决业务逻辑,而不纠缠于对象和关系表之间如何进行低级别交互。
解决这个问题的基本思路是基于对象/关系映射建立一个对象持久化层,即构造一个对象持久化的管理机制,在单个组件中封装对象和关系数据库之间的映射,把应用程序代码和域对象从底层的数据模型和数据访问细节中分离出来,使得对象和底层关系数据库之间的耦合度大幅度降低,以此来提高系统的可扩展性。
本文从持久化实现方式、运行环境和运行机制等方面,对现有的持久化机制进行了分析,说明它们各自的适用范围和不足之处。并借鉴了模式转换、中间件和软件体系结构等领域的研究成果,开发了基于对象/关系映射的持久化原型试验程序netORM,以期为解决数据持久化层提供一个可行的解决方案。
基于上述的论述目标和基本研究思路,本文主要做了以下三个方面工作:
(1)分析了现有的持久化机制的不足之处,提出了一种基于对象/关系数据库映射的持久化解决方案。总结了对象/关系数据库基本映射策略并提出了一种基于中间策略的映射模型。
(2)研究了持久化层设计中几个关键技术,包括持久化对象的管理,定义了持久化对象的生存周期及对应的状态和状态迁移,设计了一种新的级联对象持久化的解决方式,探讨了数据库事务和应用程序事务,并对双重缓存的原理与设计进行了说明。
(3)提出了按照分层模式和插件模型设计针对Java环境的对象/关系持久化服务框架的方法。在功能上把核心数据映射框架同日志等其他扩展功能隔离开来,以插件的形式提供基本数据映射服务,并以此为基础实现针对关系数据库的JDBC扩展、XML扩展(仅从数据库到XML文档)和HTTP请求扩展。同时利用Java反射机制(Reflection)实现了动态映射。
本文依据以上工作还实现了一个基于对象关系数据库映射的持久化框架原型netORM,并对该原型进行了从简单映射到复杂映射的测试分析。衡量了利用持久化层进行数据库操作的效率和事务控制的效果,不同映射策略对系统性能影响,以及缓存设置所带来的系统性能提升。
实验结果表明:以netORM为代表的基于中间策略的对象/关系映射可以透明地实现从对象模型到关系模型的转换和持久化对象管理,使得开发者可以将更多的注意力转移到业务逻辑上去。同时基于对象/关系映射的持久化层也增加了系统了可移植性和可扩展性,显著降低了LOC(代码行数,Line of Code)。