论文部分内容阅读
面向对象的程序语言、基于关系模型的数据库技术以及软件构件技术是当前构建大型信息系统应用的主流支撑技术。面向对象的程序语言为软件的开发提供了基本的工具,关系数据库则负责大量数据的持久存储和高效的检索更新,而软件构件技术则为大型应用的开发、部署、运行提供了平台。面向对象和面向构件的开发模型和数据库系统所使用的关系模型存在着“阻抗失配”问题,这导致了软件系统设计开发的过程变得不连贯,大大增加了开发的成本和系统运行、维护的成本,降低了信息系统的可靠性、可维护性和可伸缩性。为了解决上述的问题,人们提出了各种对象持久化和对象关系映射的解决方案,成为上世纪九十年代数据库技术、面向对象技术、程序语言设计以及软件工程领域研究人员共同关注的问题和研究热点。近期,随着软件构件技术的发展以及反射、面向方面的开发方法等思想在程序语言、中间件以及分布构件平台的应用,“阻抗失配”问题再次引起人们的关注,对象的持久化也成为构件开发和运行平台设计中一个重要问题。构件平台持久机制的设计必须满足正交性、透明性的要求,同时又要提供高效的查询能力和优异的性能。本文在分析现有各种对象持久化解决方案的基础上,重新探讨阻抗失配问题的实质,对对象持久化所要解决的问题、要达到的目标和面临的困难进行深入地分析,在此基础上,基于反射机制提出了一个新的面向分布构件平台的对象关系映射框架,并设计和实现了CCM构件平台的持久化机制。本文主要的工作与创新点包括:1.全面深入的研究了二十多年来在解决“阻抗失配”问题和对象持久化方面取得的成果,总结分析了它们的特点与不足,重新探讨了问题的根源和本质,提出了一组针对对象持久化系统的评估体系,对现有的主要对象持久化系统进行了比较和评价。在此基础上结合分布构件平台持久化技术的需求,提出了构件平台持久框架设计的原则和目标。2.结合反射技术在程序语言、中间件以及分布构件平台的应用,提出基于反射机制的、支持运行时对象关系映射的对象持久化框架StarORM,并从反射模型的角度分析了StarORM的体系结构和设计原理。3.对象关系数据库系统以及对象关系映射系统中,在多个相互引用的对象之间的导航操作导致客户端与后端数据库系统之间的读取操作大幅度增加,从而产生严重的性能问题。本文提出了一种基于多级访问模式的对象预取算法,实验表明该算法较大幅度地提高了对象持久化系统的访问效率和可用性。4.程序语言中的同步控制机制与数据库中的事务模型间的不匹配是程序语言与数据库之间的不匹配的一个重要方面,也是对象关系映射系统设计中的重要问题。本文对此问题进行了深入的研究,提出了一种基于并发控制的事务管理框架,使得程序语言中的并发控制机制、构件平台的事务管理框架能够与对象持久化系统更有机地结合起来。5.设计和开发了StarORM对象关系映射框架的原型系统,并在StarORM基础上,设计实现了StarCCM构件平台的持久化框架,包括容器管理的持久化、自管理的持久化、实体构件的实现框架。综上所述,本文结合反射理论对持久化技术中面临的几个关键问题进行了探索,取得了一定的成果。测试和实际应用表明,本文提出的对象持久化系统模型具有更高正交性和透明性,明显降低了“阻抗失配”,对于提高面向对象和面向构件的软件开发的效率具有理论和应用价值。