技术开发 频道

DB4o发布7.0版本 开源让ODBMS更受欢迎

【IT168 技术新闻】db4o近来获得了快速的发展,Db4Object最近发布了他们的旗舰产品db4o——嵌入式ODBMS的7.0版本,并宣布他们的开源ODBMS已有超过30000个布署。这是否意味着ODMBS的市场格局正在发生着改变?

InfoQ采访了db4objects(db4o)的Nik Wekwerth,以了解他对ODBMS形势的看法和最近发布的db4o的新特性。讨论是从列举一些开发者社区表面上看越来越受欢迎的面向对象数据库后面的一些驱动开始的。在他看来,ODBMS又回来了,并且还吸收了三个让它成长得很快的因素:

更易于Java和.NET原生操作
适用于特定问题域
开放源代码
对这三个因素,他逐个地进行了仔细说明:

...开发者用不着去学习新的语言,对于db4o而言,他们只需要加入一个最终发行的jar或dll文件,然后就可以上线、运行... 简单的用法及全面与编程语言的集成、原生方式是面向对象数据库获得全面成功的关键...Java和.NET的原生查询让开发工具获益非浅,如类型安全编码、消除对像关系映射中复杂构造的浅显错误、也省去了学习另一门语言繁杂之处的代价。

...应用程序的需求应该确定开发者究竟是该使用RDBMS,还是ODBMS。许多应用领域都能很好地适应面向对象的结构和持久化,诸如复杂的配置、安全性数据、可搜索的多媒体或是空间数据,以及一个数据域内非常复杂的关系。另一个决定性的因素是持久化是否能全面“嵌入”到应用中去,例如,同样是在对最终用户不可见的情况下,相比一个应用将对象映射后存储到表中而言,使用一个对像化数据库则会显得更加简洁和并易于维护。

...开源是最近大量应用对象数据库的巨大推动力,开发者们实际也一直喜欢ODBMS开源的理念,而购买像Oracle这样的RDBMS的决定,往往不是DBA做出的,更多的是管理者来决定的,他们有时是因为数据抽象这样的需求而做出正确的决定,或由于某些原因做出错误决定(如在打高尔夫球的时候签下了合同)。开源已经让开发者们重新获得了有利的地位。他们现在可以“在雷达式管理之下”依然能自主地决定该如何设计,并证明对象数据库帮助他们节约了时间,他们创建了许多令人信服的架构,并最终为他们的客户节省了大笔的资金。

db4o被应用得最多的场景是被嵌入到应用中,而不是以最终用户或开发者可见的独立布署的数据库。Nik将之称为一个通过对象数据库简化了的API提供的零管理环境,消除了所有运行时的管理需求,开源的特性让它非常适合嵌入到不仅限于像机器人、汽车和手机这样的设备,也可用于打包分发的软件中,如SCADA系统(译者注:Supervisory Control And Data Acquisition,即数据采集与监视控制系统)和无处不在的网络缓存应用,Nik还提到Ricoh(理光)正在他们的打印和复印机中使用它。

谈到企业级的应用时,Nik列举了ow金融协会利用db4o的优势,将其作为智能数据缓存来缓存中央数据库的数据,以加快事务处理。他还特别说明,对象数据库能很好地与关系数据库协同工作,就db4o而言,它允许向关系数据库中复制数据。

后来话题转移到7.0版的db4o中的新特性上:

最大的亮点就是透明激活(Transparent Activation,简称TA),TA通过自动化的对象激活方法简化了对象的获取。使用TA,可用对象只有在当它们被请求时才会被激活,其中的关键就在于开发人员不再需要手工定义激活的深度,正是这一点简化了编码工作。另一个好处就是对内存消耗的优化,对象只有在被请求时才会被加载到内存中。

有了透明激活,开发人员无须再担心该在什么时候、又该以怎样的方式去加载对象。db4o在运行时比开发时为开发人员提供了更多的信息,因此,db4o能更巧妙地完成的工作,只有当真正需要对象时才装载它们。
专为商业版提供的产品中包括另外两个重要特性:

ObjectManager Enterprise——一个Visual Studio插件,允许在IDE中浏览和查询数据数据库;
XtremeConnect——一种虚拟的结对技术,可以通过Skype和TightVNC进行远程结对编程。
 db4o也正准备着一款即将发布的、针对.NET平台的产品。Nik还描述了Java与.NET版本之间的相似点与不同之处:

我们的Java和.NET版本都是源自于同一个共享代码库,所有的发行版本都是通过持续构建、在平台间进行代码转换后自动生成的,在某些地方,我们会针对平台分别进行一些调整,以符合标准惯例……只有极少数不同的地方:现在的db4o复制系统(db4o Replication System,简称dRS)是基于Hibernate构建的,所以与.NET相比,它在Java平台上更完善一些。在.NET上,我们正在为短期内提供LINQ接口而努力。

最后,Nik说到,“数据库文件的格式是相同的,你可以用.NET来打开Java生成的数据库,反过来也是可以的;你还可以使用Java客户端来连接.NET服务器,反之亦然。”

在此次访问中,对于Google的Android平台给他们的产品所带来的机会,Nik还分享了他的看法,db4o是允许独立软件供应商们用它来为Adroid开发软件的:

...客户端应用能适应自动超时,因为db4o能检测、并在schema变化时进行调整;还能在不同的应用间协作和共享数据。db4o能承担各种不同方面的数据管理工作,例如,当你使用无线方式更新软件的一个新的数据模型时,db4o就能很好地适应和管理。

db4o还直接与开放手机联盟(Open Handset Alliance)的一些成员一起为克服Android数据库的缺点而努力,它还提供了强大的跨应用持久化增强,最终我们将看到,手机将会提供更多以用户生成数据(UGD,即User generated data)为中心的新型服务,例如全面备份所有应用数据的功能,假如你不幸丢失了手机,你可以买到一个新的手机,而你所有的个人数据都会是预装好的;另一种应用的场合就是P2P的数据共享和P2P的社交网络。

对于db4o,你有什么意见?是否正在你的应用中使用ODBMS?你认为在什么样的场合中,ODBMS会比传统的RDBMS方式工作得更好?

查看英文原文:DB40 v7 and Increasing Popularity of ODBMS

0
相关文章