WEB开发网
开发学院软件开发Java 使用MDSD开发安全可靠的软件 阅读

使用MDSD开发安全可靠的软件

 2010-06-30 00:00:00 来源:WEB开发网   
核心提示: 数据库模式出轨 通过使用数据关系映射工具(例如Hibernate)对数据库进行抽象既是一种赐福也是一种诅咒,一方面,使用MDSD开发安全可靠的软件(5),它为开发者提供了想要的数据库技术抽象;另一方面也隐藏了对不同版本间数据库模式的出轨(不匹配),对于每一次持久化模型的变更都将重新处理已部署应用

数据库模式出轨

通过使用数据关系映射工具(例如Hibernate)对数据库进行抽象既是一种赐福也是一种诅咒。一方面,它为开发者提供了想要的数据库技术抽象;另一方面也隐藏了对不同版本间数据库模式的出轨(不匹配)。对于每一次持久化模型的变更都将重新处理已部署应用的数据库模式。例如给领域对象添加一个新的持久化字段就需要给对应的数据库表添加一个新的列。如果持久化模型与数据库模式不同步,那我们就认为数据库模式出轨了。

使用MDSD开发安全可靠的软件

>而MDSD方法保证了数据库模式不会出轨。如果我们以持久化模型作为主模型,根据该模型生成需要的数据库模式,那么我们就能够重用模型信息以处理兼容性问题。假设我们有不同的模型版本,我们就可以生成差异模型,差异模型会为我们提供非常有用的不同版本差异的信息。就像前面那样,我们可以生成一份变更报告,来查看变更影响。另外,我们还可以基于差异模型生成SQL升级脚本。我们不打算100%生成脚本,那不现实。对于复杂数据库模式情况,生成的脚本总是需要手动添加一些代码的。自动生成部分与手工编写部分的组合定义了数据库模式从一个旧的版本升级到一个新的版本。由于存在各式各样的SQL方言,所以提供已支持数据库的对应升级脚本是很重要的。如果系统支持多个数据库,那么这些脚本必须遵从对应方言。对于Ruby迁移[8]而言,Ruby社区提供了不依赖数据库(database-agnostic)的DSL来描述数据库模式变更。这些数据库模式变更描述将被翻译成不同方言的SQL语句。与直接生成SQL相比,模型驱动方法能够将差异模型变换成Ruby迁移表达。这样一来,生成SQL语句的责任就转移到了Ruby迁移。随着MDSD提供的支持,对于领域模型变更带来的恐惧消失殆尽。开发者可以不再犹豫对领域模型的演进,项目重获敏捷。

上一页  1 2 3 4 5 6 7  下一页

Tags:使用 MDSD 开发

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接