UML软件工程组织

MDA驱动应用设计
leijungood(转贴) 出处:UMLChina

Richard Soley,OMG的主席及CEO,回顾了为服务新型分布式软件系统(包括Web services)的关键架构平台的规范化所做的标准上的努力。OMG提出了诸如CORBA、MDA 和UML等系列标准,下面是eWeek的首席撰稿人Darryl K. Taft在上个月和Soley的对话。

eWeek: Web services 现在情况如何?

Soley: Web services现在的情况就象1991年的CORBA 以及1994年的COM [Microsoft 公司的组件对象模型 Component Object Model] :它还是一项很新的技术,目前还缺少一些重要的服务,例如性能和事务。但一个重要的不同之处在于:所有的人都已经接受了Web services,这一点相当不同。这意味着将会有很好的实现出现,然后就可以在此之上构建你所要的服务。Web services当然不是一个全新的技术,这也是不可能的。Web services只是一个名词而已。看到整个行业对其如此认可,我当然非常高兴,但作为一个开发者,我更感兴趣的是怎么开发一个应用并轻松地将其部署到不同时期的不同架构上。
这就是为什么我们要讨论MDA(模型驱动架构)的原因,因为如果我可以为应用建模系统自动生成和底层架构、数据格式以及数据传输之间的连接……而只需要关心程序的业务逻辑,那多好。如果要赶赶时髦,可以生成for Web services的;如果公司需要,可以生成for CORBA,或者for COM架构的。更重要的是,当新的事物出现的时候,我也可以生成相应的应用。

eWeek: MDA [模型驱动架构] 的接受程度如何?

Soley:MDA在小公司中接受得要慢一些,但在大公司中被迅速采用,原因很简单:它确实改变了软件开发的方式-即使你已经有做建模工作。
已经开展了建模工作的公司工作一般是这样的:首先是有一个建模团队,他们找出业务的实现方式,设计一个模型,然后将它写下来,涂上各种颜色,装订起来,分发给开发人员,放到每个人的工作台上。开发人员召开关于模型的热烈讨论会,然后回到工作台,继续前面的工作,又把模型抛到了一边。出现这种情况的原因在于:模型和实现没有直接的关系。
MDA要作的就是把模型本身也作为一个开发的工件。使用编译器来自动生成和实现架构如J2EE、.Net、CORBA、COM相关联的数据转换、持久存储、转换完整性、数据格式等,甚至得到Web services,我们有从UML到SOAP(简单对象访问协议)和WSDL的映射。因此,采取基于模型的方法,你不需要创建开发人员不需要的东西,实际上,你的工作成果将自动生成出代码。

eWeek: 开源对MDA的意义何在?

Soley:开放的标准使我们的规范保持中立,所有人都可以接受,而不受某一个开发商的控制,而开源可以使我们得到大家都接受的一个实现,而不受某个开发商的控制,这两者的结合非常有力。这个实现你可以不使用它,但至少有这么一个实现,不受控于任何一个公司,需要的时候你就可以使用它。你也知道,OMG在最终接纳一个规范之前要求要有相应的实现,OMG已经采纳了不少开源实现的规范,这一点我们非常满意。

eWeek: 有人认为OMG可以在Web services领域发挥更大的作用,您的观点呢?
Soley: 这是我们必须要做的。现在的情况是我们需要专注于我们最擅长的领域。我可以告诉你我们正在努力的两个主要领域。首先,我们要确保MDA对Web services的完全支持。我们刚刚结束了一个标准的制定,实际上它已经发布在我们的网站上了,并且已经有了6个实现。现在你可以由一个UML模型自动生成相应的WSDL定义和SOAP文件头,也就是说,你再也不用去看那些烦人的协议细节了。
另外,还有对应CORBA的映射。因此,如果你已经有了一个CORBA架构,现在希望用它来实现你的Web service—bim、 bam、boom,这已经不是问题了。另外,我所考虑的是更激动人心的长远的打算,而不是现在已经取得的成绩,就是大家在讨论的Web service缺少的东西-事务、安全、持久性,甚至管理、名字服务、目录等等。我们已经在CORBA 和COM上为这些事情操心十年了,现在我们要做的是把这些都抽象成UML模型,生成对应的Web service实现。这就是我们目前的工作,当然,现在还没有完成。


版权所有:UML软件工程组织