现代物流及电子商务等新的企业运营模式的产生,对信息系统提出了新的需求———要求信息系统在企业各个部门之间的应用和在企业内部及其商业伙伴之间的应用能够融合在一起,同时提出了新的问题:如何能够将不同平台的应用集成起来,并保护既有投资。最初,开发者采用中间件技术如CORBA,NET,EJB或者CCM来解决这一问题,然而,随着中间件的不断产生,新的问题———互操作性问题,从一个平台移植到新的平台的成本增加———出现了。对于这种问题,一个可行的解决方法是将业务与技术相分离。所以,基于这种想法,OMG发布了MDA,其目的是用一个普遍的方法来实现集成和互操作,这在MDA的模型中得到了充分的体现。MDA不仅是一个解决信息系统新问题的合适的框架,也是一个适合信息系统领域已有的分析方法和工程技术的框架。
一、MDA
(一)MDA基本原则
MDA核心思想是抽象出与实现技术无关、能完整描述业务功能的平台无关模型(PIM),并且针对不同实现技术制定多个映射规则;然后通过这些映射规则和辅助工具将PIM转换成与具体实现技术相关的平台相关模型(PSM);最后,将经过充实的PSM转换成代码。
(二)MDA核心技术
MDA的核心技术是UML和MOF。UML是OMG所维护的,在MDA中UML可以用来对系统进行建模,产生PIM。UML以及OMG中其他的建模语言均是由MOF(Meta Object Facility)所描述。
MOF是用来描述不同类型的建模结构的统一方式,它可以用来描述关系数据模型的建模结构,也可以用来描述UML类模型的建模结构。MOF构架包含4个元层次,如表1所示:
表1 MDA元层次
UML是由面向对象技术专家Rumbaugh、Jacobson和Booch创立的,由OMG负责管理其标准化的演变。UML采用了一整套成熟的建模技术,广泛适用于各种应用领域。现在UML得到了业界的广泛支持,成为业界广泛接受的一种标准建模语言。
二、用MDA思想指导信息系统的开发
以往的信息系统开发中,大量的人力被用于编码,对于相同的需求重复进行着类似的工作,不仅生产力低,而且代码质量很难有所保证。有了MDA这种思想方法,将它运用到信息系统的开发上,提高开发速率和质量。这种开发模式称为信息系统MDA开发模式,如图1所示。
图1 信息系统MDA开发模式
这种开发方法看上去与传统的开发方法相似。然而,它们之间存在着一种本质的区别。同样都是建立模型,这里的PSM是PIM通过相应的MDA工具自动转换的,这是MDA的创新之处。从PSM到代码的转换也是通过工具自动实现的,PSM与代码比较接近,而且已经有许多工具具有这个能力。
(一)系统分析PIM的构建
PIM是描述整个信息系统的平台无关模型,位于M1层,所关心的是“系统如何才能最好地支持业务”。由于这个模型将自动转换成一个或者多个PSM模型,所以与传统模型相比,对PIM的完备性和一致性要求更高,这个模型必须完全准确地反映信息系统中所有的信息。企业的信息系统比较复杂,需要从不同的视点对它进行建模。这里将企业模型分为五个视图:过程视图,组织视图,资源视图,功能视图,信息视图。
1.PIM建模语言
PIM是属于M1层的模型,其建模语言为M2层的模型,可以利用M3层的MOF来创建新的建模语言,也可以利用现今已经存在的建模语言UML、CWM等。直接采用MOF来描述元模型来建立模型是一件很庞大的工作,而且极容易考虑不周,这将无法准确地表示模型。借用已经广泛使用的建模语言可以避免这一点,然而由于使用的是已经是成形的建模语言,有可能会满足不了需求。经过上述分析可以看出,UML是一个比较好的选择。首先,它是现今业界广泛接受的一种标准建模语言,采用了一整套成熟的建模技术。其次,UML的构架师们给UML装了内置扩展机制,从而可以借助UML工具来定义和使用新的建模结构,而不必局限于UML已经定义的基本结构。再次,UML元模型是通过MOF定义的,所以可以通过MOF来扩展它,灵活性比较强。
不同的视图模型具有不同的特性,要分别选用UML中不同的图来表示。过程视图模型是企业模型中最复杂的一个,它描述了整个组织的业务流程,可以以OCL辅助,采用活动图、状态图和协作图来对它进行描述。组织视图,资源视图,功能视图,信息视图反映系统内的组织、资源、功能和所有的信息,具有结构性,可以采用结构化的图来进行描述。
2.构建信息系统PIM的准备工作
信息系统MDA开发模式是MDA在信息系统领域的一种应用。尽管国内外对MDA的建模已经有很多研究,但这些研究是针对所有的软件建模,因而其抽象度很高,通用性很高,而对于特定领域的建模来说适用性很低。所以在建立信息系统PIM之前需要作三项准备工作:
(1)根据信息系统的一般性提出一个信息系统的模型框架。此处采用五视图框架,即过程视图,组织视图,资源视图,功能视图,信息视图以及它们之间的联系。
(2)创建专门的建模语言。采用扩展UML,即根据信息系统开发的特性对UML元模型进行扩展。
(3)建立一些信息系统的通用模型。尽管每一个企业其组织结构和经营方式都是不同的,但是他们之间仍然有很多相同点,将这些相同点抽象出来构建成一般的模型,放在模型库中,在创建信息系统PIM模型时就可以直接使用。
3.信息系统PIM的构建
对一个特定的信息系统进行建模时,根据信息系统的模型框架,对框架中的每一个视图进行建模时,均按照以下步骤:
(1)定义目标,这个目标是整个系统的目标。
(2)建立企业与外界环境之间的关系。
(3)建立企业对象及它们之间的联系。这里的企业对象是指从企业中细分出来的企业对象,每一个都具有一定的作用。它们可以从模型库中选出,填入到信息系统的框架中。如果需要几种相同类型的模型的组合,就对其进行模型组合。
(4)对框架中与企业特性和具体需求相关的企业对象进行建模。
这看起来似乎比直接对一个特定的信息系统进行建模更复杂,但一旦建立了多个企业的信息系统之后,许多信息系统方面的通用概念和操作模式都将存储在模型库中,这样在这个基础上进行的模型构建就会简单多了。
4.PIM的精化
因为对于事物的认识有一个从浅入深的过程,客户的需求也可能不断地增加,所以对于PIM模型的建立不是一次抽象就能完成的。因此在模型建立的过程中和完成后,都需要对模型进行不断的精化。
(二)PIM到PSM的转换
PIM被转换为一个或者多个PSM。PSM属于M1层,为某种特定实现技术量身定做,在PSM中使用技术中可用的实现构造来描述系统。
MDA的变换工具以PIM为输入,并把它转换成PSM。在这个变换工具中包含了一个定义,这个定义描述了模型是如何变换的,这个定义称为变换定义。然而变换本身之间有差异,它要依据模型及变换定义产生新模型。为了使变换定义可以反复应用而不必随源模型的改变而改变,变换定义中所定义的变换规则建立源语言构造和目标语言构造之间的联系,也就是源元模型和目标元模型之间的联系。例如,定义一个从UML到Java的变换定义,它描述了从某个UML模型应当生成什么样的Java构造。为了使变换有实用价值,变换必须具备一些特性,其中最重要的特性是变换必须保持目标模型的含义同源模型一致。另一方面,由于PSMs需要包含很多与平台相关的信息,而这些信息是无法从源PIM中得到,因而转换往往不是完全自动的。
由于实现并不一定是基于一种技术,有可能是基于很多种实现技术,PIM便需要转换为多个PSM,为了保持系统的完整,在转换的时候也要生成各种PSM的通信桥接器。
三、展 望
目前关于MDA在信息系统开发应用的研究很少,在其真正投入使用之前,还有许多技术领域等待着计算机科学家,软件开发者和最终用户来研究:
(一)元模型和模型映射方法论研究
元模型和模型映射技术是MDA的核心,如何建立元模型和相应的模型映射需要方法论的指导。
(二)信息系统领域元模型的标准化
信息系统中包含许多的模式如企业资源管理,客户关系管理,都需要许多标准化的元模型。
(三)模型映射技术的开发
信息系统的许多元模型都需要模型映射技术来进行高效的映射。有了高效的映射技术,这种应用才能真正走向实用。
(四)PSM到PIM的反馈
在对PSM进行修改时也需要反映到PIM,这样才能保持模型的一致性。
(五)元模型和模型映射的评价理论研究
在信息系统的开发环境下,什么样的元模型才是高效的,什么样的模型映射工具才是高效的,都需要评价理论来指导。
【参考文献】
[1]Davud S.Frankel著,鲍志云译.应用MDA[M].北京:人民邮电出版社,2003.
[2]刘超,张莉.可视化面向建模技术:标准建模语言UML教程[M].北京:北京航空航天大学出版社,1999.
[3]范玉顺,王刚,高展.企业建模理论与方法学导论[M].北京:清华大学出版社,2001.
[4]董建武.MDA:新一代软件互操作体系结构[J].计算机工程,2003,29(2).