(2004)在对企业应用的认识过程中,我经历了这样几个关键点,这跨越了大约8年时间:
需求模糊与变化的必然性 -> 转达失真的必然性 -> 直接的xx表述(建模) -> 模型直接决定系统功能(模型驱动系统,MDS)
(2006)我的认识路程上有几个重要的里程碑,可供大家借鉴:{dy}个是98年底弄明白了企业应用系统的关键:应用模型与平台分离,所谓“通用平台与专用执行系统”,即:
- 通过导入企业模型定义或直接建模而构造特定的企业应用——对应于“执行代码”,称之为“执行系统”。
- 通过改变模型定义而动态地改变执行系统,上述两个特征,也可以概括为“模型驱动”。 ”
(引自《》,1999-1)
第二个里程碑,明确了“模型驱动系统”的基本思想,指出运行期模型是模型驱动系统的实质,这时我已经明白了MDA与我思维的主要异同:
- 模型的时效性(time-effectiveness of model):关于这一点最重要的区分在于,是“运行期模型”(Run-Time Model),还是开发期模型?这个区别,有点类似于解释的语言和编译的语言间的区别,但其意义却非同一般,笔者认为,“运行期模型”,揭示了模型驱动的本质。
- 模型的可进化性(evolutionableness of model):是否可以在系统的应用过程中,持续地适应应用环境与需求的变化,不断地由应用者或自适应地对模型进行改进?这是对模型“性能”的一种度量。
- 模型的层级性(hierarchy of model):
(引自《》,2002-5)
第三个里程碑是原理方面的,我并没有发表。但在许多分散的讨论中偶有涉及。这方面的研究,使我确信MDS相关的一些关键理论基础。
另外,还有一条更基本的线,是从管理者、用户立场及应用角度的思维,其实他们更关键,并且与上述的思路充分地连接。企业工程可以视作我在这条线上认识的基本起点。这方面有许多不为人重视的要点,它们不象技术的东西,认识的层次没到,摆在面前也看不出其价值与深意。这些要点对应用开发者而言,都是真正的金矿……但并不是掉在地上的金砖。
评述:新一代企业信息系统的基本原理“模型驱动机制”(MDM)是2005年公开发表的,它上述“第二个里程碑”的一部分,所谓“第三个里程碑”并不是指这一点,是在更深层次上,对包括模型的工作机制、模型的本质、表达原理、数学基础等方面的一些密切关联的认识,这些认识使我确信这个大方向不是偶然或过度性的,具有根本性、不可取代性、相当大的作用领域。
上述“几个关键点”是2004年的讨论,“里程碑”是2006年,两次表达放在一起,有些重叠。在后一次讨论所说的“里程碑”里,没有包括前面所说认识关键点的“需求模糊与变化的必然性、转达失真的必然性”这两个要点,在2005年的发表中,它们被归纳到实质性需求分析与研究(ERAR)之中,它们是“需求”的本质特征或基本规律,任何技术或 方法、需求分析与需求管理方法学及工具的改进,都无法实质性改变它们。
上述认识的关键,放在当今企业应用领域的主流热点,例如BPM或DDD(领域模型驱动开发)等背景上看,更加凸显出它们的重要性。例如,“直接的xx表述(建模)”,是上面讨论的关键中,最为普遍重视的基本要点,UML的提出和大行其道,DSL的绵绵不绝,DDD(领域模型驱动开发)的崛起(当然,还有MDA),都是在这 个背景上,但无论什么花式,都无法回避模型工作的方式问题,例如模型的时效性,演化性,模型驱动机制(MDM)或模型驱动系统(MDS),始终是其中最重 要的“{zj2}模式”。这一点,所谓业界主流,迄今未能真正认识,或者未给予应有的重视(但时不时会看到一些蛛丝马迹,或个别人提出非常相近的观点)。实际上,这类基础性的原理或规律,不管你是否已经重视或者表达清楚,在该起作用的地方,它自然会体现出来。例如从工作流到BPMS的发展,就充分显示了这一点。
退回参数模型是返祖——其实,我对新一代企业信息系统的研究,恰恰就是从参数化开始的:可配置参数越来越多,越多越灵活……参数之间也有关系,背后的东西是什么呢?我的选择的答案就是形成完整的与程序分离表达——模型。
98年时,我并不知道有model-driven这么个词,那时看到过一种说法,叫做“表驱动的架构”,这个表,就是软件编写留给运行期间(或初始化时)调整的参数表。于是“模型驱动”这个词就由此而定。
后来考虑 MDS 怎样命名的问题时,我已经意识到“驱动”一次的暧昧或者背后的佯谬,感觉最合适的词不是这个,但其时MDA已经叫响,我特意保持与其对应,所以仍坚持使用“驱动”这个说法至今。
上述认识过程的几个关键点,在“建模”上与软件开发交汇了,到“模型驱动”可谓殊途同归。这个交汇在时间上的联系是偶然的,但有内在的必然性。尽管如此,这个交汇仍可能因为层次的错位而南辕北辙。
作为一种基础技术提出的MDA,并不直接解决企业应用上实质问题。例如,即使实现了模型驱动的开发过程,具备了增量式的、逐步求精、迭代的特征,其软件产品对于应用企业需求变化的响应仍然是“异步的”。MDS的诉求是使上述响应变成“同步的”。
在完成了上述8年的认识历程后,我以最终实现为目标全方位探索。如林星设问:达到第四层的路是否真的这么长?我问,这种似乎理想主义的企业模型驱动系统怎样才能实现?
- ——从哲学上、理论与方法论,还有实践的发展上看,“模型”表述的能力和可行性是无需怀疑的,虽然对模型语言或表示法仍需研究;
- ——真正的MDS触及软件是什么这样的根本问题(实际上,模型驱动系统还不是最恰当的表述),对这个方向无需怀疑,但与面向对象的出现一样,它并不会简单替代掉许多现有的技术,软件或系统的样式将丰富起来;
- ——解决企业应用的困惑,需要“双方”的努力。“将转达的失真”降到{zd1}的途径,就是企业工程的方法:由企业工程师负责建模;
- ——很关键地,从对企业需求的理解和对应用开发的经验,我得到一个信念:并不必须要彻底、理想的实现,认识的彻底转变是相当关键的。当前有很多可行的切入点和足够的技术条件,可以在实际的企业应用中得到足够好的效果;
- ——企业应用软件是多样性的,未必每一种应用都适合上述思路,所以我通常将话题设置为“新一代企业信息系统”。
为了使表达完整一些,上面的讨论似乎有些超出话题,但这也反映了企业需求与困惑、企业工程理论与方法、企业应用原理与实现技术方法等要素是怎样紧密地纠缠在一起。
到此,进一步讨论“企业建模”的表示法,或语言、工具、方法问题,就有了一个比较清晰的语境。
联想上一轮提出的“设计原则”的话题,就是它需要适合“企业工程师”使用,不管是图形化、自然语言风格,关键在于必须适合“企业人士”阅读理解;与此同时,保证其内在的xx性。所谓xx,就是软件(电脑程序)可解释或处理。
- 《》,2004年8月
- 《》,2004年11月
- 《》,2006年1月
参考文献引用格式
GB7714风格:TY. 企业应用与信息系统架构及模型驱动系统MDS(一)[EB/OL]. , http://www.ee-forum.org/pub/ty/2010-01-p1111.html, 2010-01-31[2010-01-31 06:52]
Chicago风格:TY, "企业应用与信息系统架构及模型驱动系统MDS(一)", , http://www.ee-forum.org/pub/ty/2010-01-p1111.html (读取于2010-01-31 06:52)
前一篇:
后一篇: