对MDA的目标的理解

来源:互联网 发布:淘宝直播从哪里看 编辑:程序博客网 时间:2024/06/03 17:22

MDA官方首页介绍MDA的文字:http://www.omg.org/mda/;

翻译如下:

OMG的模型驱动架构提供了一种开放的,厂家中立的方式来应对商业与技术变化的挑战。基于OMG的建设标准,MDA将业务逻辑和应用逻辑从底层平台技术中分离出来。使用UML和其它相关的OMG建模标准来构建应用及整合系统业务功能及行为中的模型,使得这些模型独立于平台,真正实现MDA的跨平台,包括开源的或私有的、Web Services、.NET、CORBA、J2EE等等。这些独立于平台的模型表达了应用的业务功能及行为,并且将它们从实现它们的具体技术代码中分离出来,隔离了应用的核心与技术以及实现平台内及跨平台的交互时所需要的复杂的过程。应用或整合系统的业务层面与技术层面相互之间不再紧密捆绑,可以专注于它们自己的节奏--业务逻辑要响应业务的需求、技术上方便新需求的开发。

结合这个介绍,对MDA要实现的目标(通过架构性的分离实现轻便性、互操作性、可重用性)的理解如下:

架构性的分离:体现在业务与技术的分离,或者说PIM与PSM的分离。具体来说就是UML2与JEE(Struts、Spring、Hibernate...)、.Net、Corba、EJB、Webservice等等的分离。

轻便性:通过PIM可以直观的反映业务,是轻便的,而技术是复杂的,MDA通过实现PIM到PSM的自动映射,实现了清晰的业务与复杂技术之间的分离。

互操作性:业务与技术分离(PIM与PSM分离)后,就可以实现各种技术之间的互操作,它们通过共同的语言-UML2,进行模型与数据的互享。

可重用性:体现在统一的模型(PIM)可以重用到各个实现的平台(PSM)中去,同时一种技术的实现可以通过共同的标准为其它技术的实现所重用。

下一个问题:PSM可以细分到Struts、Hibernate、Spring等等,一个良好的系统,架构设计上也有很高的要求,Struts、Hibernate、Spring等等正是帮助我们实现这个要求的。那么PSM是不是能继续进行细分,细分到Struts的表现层、控制层、模型层,Spring所通过依赖注入所管理的各个模块,等等。然后PIM到PSM的时候,可以有更细致的选择。再明确的提一个目标但是有可能无意义的目标,PIM到PSM的过程,怎么能更好的支持依赖注入?