探索 Perl 对象持久化框架 Adaptor
1. 持久化领域的两大阵营
在商业计算领域,存在着两个重要阵营:面向对象(OO)阵营和持久化供应商阵营。OO 阵营的成员,如语言设计师和对象倡导者,期望能为对象模型适配商业级的持久化方案,包括性能、稳定性和可扩展性等方面。他们提出了诸多方法,例如对象管理组织的 CORBA 持久化服务规范、Sun 的 PJava(持久化 Java)以及微软的 OLE 持久化框架。
而数据库阵营则在其产品中融入 OO 特性。像 Informix 和 Oracle 等关系型数据库管理系统(RDBMS)供应商推出了对象 - 关系型数据库,支持抽象数据类型;Tandem、IBM、Tuxedo 和 Encina 等公司的事务处理(TP)监控产品也采用了面向对象的接口。不过,由面向对象数据库(OODB)供应商组成的对象数据库管理组,在商业上的影响力相对较小。
2. 正交持久化的实现途径
“正交”持久化是当前热门话题,它旨在让应用程序或对象实现持久化,同时避免在对象中嵌入大量与持久化相关的代码。实现这种透明持久化通常有两种方法:
2.1 系统层面的方法
借助硬件、操作系统和编译器等系统资源。例如,Object Store 和 Texas Persistent Store 等面向对象数据库利用 Unix 系统的 mmap
和 mprotect
调用,实现数据在内存和磁盘之间的透明移动。Bell Labs 开发的一个库则通过控制应用程序转储核心文件的方式,将应用状态存储到磁盘,并添加了恢复和事务功能,使该方法对应用程序几乎完全透明。