针对各种平台进行的编程和再编程已经出现很长时间了。但是模型驱动的体系结构是IT行业正在翘首以盼的大飞跃吗?
针对各种平台进行的编程和再编程已经出现很长时间了。但是模型驱动的体系结构是IT行业正在翘首以盼的大飞跃吗?
评论——一开始,有了程序员。他们编写软件,而大多数情况下,人们都会觉得这些软件很不错。然后平台发生了改变,所以他们重新编写软件。然后不断如此反复。软件随着操作系统、数据库和体系结构的变化而不断重写。有的时候,会有一些连续性的改进,但是这样的变化常常不过是对端口的修改。
这听起来似乎有点轻率。这些改变都是我们在过去三十年里所经历的技术革新的一部分,并不时由于人们在理解上的飞跃而有一个了结,这样的理解造就了诸如客户端/服务器应用程序,或者Web的潜在商业用途。
像购物筐这样的功能在最早一批程序员那里甚至还不如他们眼里的一丝光芒。但是这样一个事实还是存在,即现在存在的很多功能在过去的几十年里几乎没有发生什么变化。工资单仍然是工资单。客户记录仍然是客户记录。保险政策仍旧是保险政策,凡此种种。改进的空间还是有的,但是某些业务逻辑还是以其应该的方式存在,并且仍将继续存在一段时间。为什么不呢?既然它仍然有效。
在编程的圈子里,有了这种连续性,人们就一直在寻求让具备这种功能的东西能够被再次使用,而不论是在其他的应用程序里还是在其他的平台上。以前并不是这样的——除非在某些情况下代码已经被重复使用了,大多数人都确信重新编写(应用程序)的效费比会更高一些。存在着一些库——而且从一开始就一直存在一些——但是这些库极少涉及到业务逻辑的核心。
也许事情最终会由于很多原因而变成这样。首先,最值得关注的理由是Web服务,即用于应用软件元素如何进行相互交谈的一套标准的通称。如果没有深入到应用程序体系结构里的工作,就没有Web服务,而这些体系结构充分利用了企业Java(Enterprise Java,J2EE)和微软.Net体系结构。一个的产生引发了另一个的出现,而这些又由其他标准化组织的努力而促成,这些努力包括XML的采用,以及指导通用结构的编程、设计和分析模式的采纳,并把它们用在最需要的地方。
第二个理由与应用程序体系结构的工作密不可分,这就是用来描述应用程序状况的标准的统一。整个世界都统一到了一个单一的建模语言,叫做统一建模语言(Unified Modeling Language,UML),用来描述应用程序的内部结构。这个标准现在已经发展到了2.0版,这就意味着它已经考虑到了大多数人的要求。它并不完美,但是肯定足够全面。
把所有这些东西都放在一起虽然并不会产生可以重复使用的应用程序,但是会有助于产生。还有另一个连锁反应(knock-on effect):现在,标准事实上非常完整,并得到了广泛的接受,而标准化组织本身(例如对象管理组)不得不把目光放到新的、需要标准化的东西上。他们考虑的东西相当让人着迷。事实上,在所使用的工具和技术上达成了一致之后,他们就将自己的注意力转到了过程上,即定义他们所说的模型驱动体系结构,或者简称为MDA。