MDA与高校快速协同开发平台的构建
2011-03-21吴涛张素娟马军
吴涛,张素娟,马军
(河北联合大学 网络中心,河北唐山 063009)
0 引 言
美国克莱蒙特大学的教授凯尼斯.格林(Kenneth G reen)早在1990年发起并主持的一项大型科研项目“信息化校园计划”(The Cam pus Computing Pro ject)中就提出了数字化校园的概念,是数字化校园概念最早的提出者。数字化校园旨在实现对学校教学、科研、管理和生活服务有关的所有信息资源进行全面的数字化;并用科学规范的管理对这些信息资源进行整合和集成,以构成统一的用户管理、统一的资源管理和统一的权限控制[1];
但是由于历史的原因,学校各个部门之间已经存在许多子系统,而这些子系统之间存在着较大的差异性,同时相互之间又缺乏数据共享关系和通常的交换途径,因而无法进行数据的全面分析和利用。同时,随着业务需求的变化,各业务系统均出现落后于需求的状况。因此,迫切需要建立一个统一的信息集成平台对分散在各应用系统中的异构数据进行整合,同时通过快速开发平台能够快速构建业务系统,与用户协同构建,使需求变化与业务系统建设尽量同步。
基于MDA的快速协同开发平台建立在数字校园基础上,根据需求变化快速构建业务平台,使各业务系统与需求保持一致,同时降低业务系统开发成本和维护成本。
1 抽象计算平台的建立
1.1 传统的软件开发模式所面临的问题
随着高校信息化建设的发展,高校信息系统,如教务管理系统、自动办公系统等应用越来越广泛,其开发重视程度也越来越高,但是在这些系统的开发和后续扩展过程中出现的很多问题,特别是设计与实现不一致,系统功能跟不上需求的变化等问题,越来越制约了高校业务系统的应用和发展[2]。
目前不光是高校业务系统,大多数的信息系统都没有分离的定义模型,开发人员经常以代码的方式体现系统模型的建立,系统的可重用性差。
基于以上背景,利用高度抽象模型并实现机器可读模型来创建模型定义与代码分离的抽象计算平台,支持软件设计和模型的可视化,在面向对象(OO)开发的基础上加入以模型为中心的思想,用以带来软件生产力和软件质量的提升。
1.2 抽象计算平台的构建需求
基于快速构建业务系统的抽象计算平台需要采用先进的模块构建思想,采用统一的建模工具完成数据建模、界面建模、逻辑建模;采用统一的工作流平台控制业务流程;采用全局的权限管理模型管理系统;采用统一的报表输出模式[3]。
该平台通过定义一种与具体实现技术或平台无关的应用系统规范,将系统的功能描述与基于具体平台的实现描述分离开来。建模和模型映射技术是抽象计算平台的核心,对系统的不同方面进行不同抽象水平的建模,模型之间通过模型映射机制实现模型映射,保证了模型的可追溯性,从而让开发人员可以获得最大限度的灵活性。另一方面,用户也能参与到业务系统的设计与开发中,能够协同校内应用的开发和维护模式。
1.3 抽象计算平台的构建要素
在抽象计算平台的模型中,各服务组件相互独立,通过定义协同流程与规则来实现系统建模的需要,所有组件的建立要求抽象化,同时最终目标模型中的元素可以被追溯到生成它的元模型中的元素。模型库之间需要提供一个开放的转换机制,其转换规则和转换过滤需要存储服务和信息表现形式的支持,其生成的目标系统应能很好体现出服务的互动性管理,其互动性服务功能主要表现在四个方面:
1)协同服务功能,它基于XM L的消息机制,负责检查交互信息的有效性,转换不同格式的服务信息,为异步信息处理提供信息的临时保存;
2)代理服务,它能够使各种组织和应用快速接收和递交需交互的服务信息,根据消息响应和驱动应用对象;
3)过程服务,提供了一个具体的图形化环境,以便使非技术人员也能够对业务过程建模,能够处理条件分支、环形和并行流转路线等复杂流程;
4)部署服务,包括管理需要交互信息的服务器地址、代理地址以及对所交互的信息分类。
通过对MDA架构的研究与实现,着眼于服务实现的原型,建立从模型集到生产适当实现代码的框架。
2 模型驱动体系架构
2.1 MDA概述
模型驱动体系架构MDA(Model Driven A rchitecture)是国际对象管理组织(OMG)发布的一个软件开发框架,是一种基于模型驱动架构技术的开发方法,通过基于UM L以及其他工业标准的框架,支持软件设计和模型的可视化、存储和交换。MDA能够创建出机器可读和高度抽象的模型,这些模型独立于实现技术,以标准化的方式储存。
MDA采用标准模型表述方法和标准建模方法来详细描述信息系统,从业务需求描述、系统功能和体系结构设计、包含平台技术细节的系统实现等3个层次,MDA都给出了相应的描述模型[4]。
1)计算无关模型(Computation Independent M odel,CIM),在系统需求分析阶段从纯业务角度描述系统要完成的工作。
2)平台无关模型(Platform Independent Model,PIM),从功能设计角度描述系统的体系结构,与技术细节无关。
3)平台特定模型(Platform Specific M odel,PSM),描述基于特定平台的解决方案。
4)实现相关模型(Implementation Specific M odel,ISM),面向最后的编程描述系统的实现细节。
2.2 MDA建模方法
MDA把建模语言用作一种编程语言而不仅仅是设计语言。MDA的关键之处是模型在软件开发中扮演了非常重要的角色。MDA中模型的定义是模型是:首先,模型是一种系统规约,这种规约可以是对结构的规约也可以是对系统功能或系统行为的规约;其次,这种规约必须是正式的,即必须使用一种严格定义没有歧义的语言。所以一个模型必须和一种严格定义了语法和语义的建模语言绑定在一起[5]。
1)平台无关模型和平台相关模型
对于MDA方法学,MDA中的模型分为两种:平台无关模型(Platform Independent Model,PIM)和平台相关模型(Platform Specific Model,PSM)。其中,平台是指在特定的硬件基础上使用特定的技术实现的基础设施,如EJB、CORBA平台等与系统的基础功能无关的技术细节。PIM是一个系统的形式化规范,通过UM L或合适的标记来表示与具体的技术细节无关。
因为UM L是独立于任何中间件技术的、与平台无关的语言,所以PIM与平台无关。在MDA中,PIM是基础和核心。与PIM的平台无关性相对,PSM是平台相关的。一个PSM详细地表达了由一个PIM所描述的功能如何在一个特定的平台上实现,它是基于某个具体目标平台的形式化规范,由UM L描述或由具体技术的接口来定义。需要指出的是,模型的平台无关性和平台相关性,都是一个相对的概念。某个模型在一定背景下可以看作是PIM,在另一个背景下又可以看作是PSM。
2)CIM模型定义
用户可以在现有模型中定制应用需求、逻辑、结构和行为,可以用需求模型和业务模型来完成需求分析;使用业务模型完成应用逻辑和诸如复杂过程(SOA);使用UM L来完成应用结构和行为;使用数据模型来完成对象的持久化;使用知识库来管理模型等。
通过元模型定义,用户可以用UM L的方式定义自己的元模型。所有的模型都可基于元模型,用户可以根据需求编写自定义的扩展模型,甚至是语言模型。采用元模型来设计自己的模型是再合适不过的了。同时基于UM L Profile,可以在其上面定义或扩展自己的模型。
3)模型的转换与映射
映射(M apping)为了获取另一个模型而被用来修改某个模型的规则和技术的集合称为映射。以一个或多个的源模型作为输入,产生一个或多个的目标模型作为输出。转换一个模型到另一个的过程即所谓的模型变换或者说模型转换(M odel T ransform ation)。在MDA中,它将在PIMs和PSM s之间实现转换[6]。
在设计过程中,可以先设计与平台无关的模型Platform Independent M odels(PIM),然后通过模型转换,转换成Platform Specific M odels(PSM)。当需要生成代码或者预览代码时,模型会根据定义在语言模型或者扩展模型上的模版和流程来生成代码。用户也可以在模型上直接修改代码,那么模型也会随之同步更新,同样也能修改语言模型或者扩展模型以适应需求。流程如图1所示:
图1 MDA模型转换流程
MDA应保证模型转换是一个双向无损的过程,当然也可以基于自定义的规则在新建自定义的模型转换的功能,以适应需求的变化。例如可在如下的几种模型转换上进行扩展:
(1)OOM OOM:这种情况下,一般是从分析(Analysis)到具体的语言(如Java等)。
(2)OOM PDM:这是一种自顶向下的开发流程,即先行根据需求设计出领域模型,然后自动转换为数据库模型,并同时建立O/RM apping的关系。基于这些O/RM apping的关系,建立持久化模型。
(3)PDM OOM:与(2)相反,是自下向上的开发流程,同时也会自动建立O/RM apping。
(4)CDM PDM/PDM CDM:概念数据模型和物理数据模型的转换。
(5)CDM OOM/OOM CDM:概念数据模型和面向对象模型的转换。
(6)PDM XSM:物理模型到XM L模型的转换,一般用于生成数据库的XM L Schema或者是带有XM L结构的数据库模型(Web Service in database)。
4)核心目标平台和代码生成
核心目标平台如CORBA、XM IPXM L、JAVA、NET、WEB SERV ICES等。MDA的核心目标平台实际上就是不同的中间件平台[7]。因为MDA的核心技术和核心模型PIM都是平台无关的,所以无论最终目标平台是CCM、EJB还是其它中间件平台,都可以通过工具将模型转换为某个特定平台上的PSM,使应用模型与领域模型可得到重用,改善和增强可移植性。MDA可通过GTL语言(General Temp late Language)来实现代码生成,使用GTL可以做到高级语言的语法特点,例如:定义变量、循环、条件分支等等。所以, MDA灵活性即使在特定的领域中也可以轻松定制生成的代码。同时MDA的灵活性还体现在任何高级语言(如C#,Java等)均可以方便调用元模型来实现需求以及灵活的插件定制功能。
3 平台实现
业务构建平台主要包括业务建模平台、工作流平台、报表/查询工具,提供设计和运行两种模式。
3.1 业务建模平台
业务建模是为数据维护型应用模块提供快速开发和运行的环境,通过图形化界面,支持开发人员从业务需求分析出发,直接定义和维护业务模块的数据对象、数据权限、操作界面,通过模型语言描述的方式,降低开发人员对底层技术细节的掌握要求,快速的完成开发数据维护类应用模块。业务建模主要包括以下部分:全局模型、数据建模、权限建模、应用建模、模型管理;除此之外,对于模型不能解决的问题,平台必须提供开发接口,让开发人员可以通过扩展接口实现复杂的业务功能[39]。
业务建模包括开发工具和运行时引擎服务两大部分,其中运行时又可分为引擎服务和浏览器客户端运行时两部分。业务建模用于开发数据维护类应用模块以及支撑该类应用的运行,提供业务系统中包括数据的新增、删除、修改、浏览、查询功能。如:教职工基本信息维护模块。
业务建模开发工具是开发人员通过各层次模型的定义方式来描述数据维护类型应用模块的数据、权限、界面元素的辅助开发工具,见图2。
图2 业务建模工具层次模型
3.2 工作流平台
工作流平台用于解决业务流程中各环节的控制以及数据处理问题,包括流程的控制、活动的执行以及各活动环节中数据的处理功能。工作流适用于同一项业务需要不同的角色进行参与协同完成的一些业务模块,解决了目前步骤多、流程复杂的业务模块。
工作流平台主要有三部分功能:
●流程开发工具,用于支持开发人员和系统管理人员进行模块审批流程定义、审批界面及审批权限定义;
●工作流服务(流程引擎),用于根据所定义的流程模型;
●流程任务处理客户端,用于根据最终登录用户不同的操作权限;
1)工作流
工作流(Work flow)就是自动运作的业务过程部分或整体,表现为参与者对文件、信息或任务按照规程采取行动,并令其在参与者之间传递。简单地说,工作流就是一系列相互衔接、自动进行的业务活动或任务。
2)活动/步骤
所谓活动/步骤是指组成的流程处理单元,这些处理单元可能与外界(人或其它程序)交互。
3)流程开发工具
流程开发工具是开发人员用来定义工作流流程的工具,在工作流开发工具上可以完成流程定义、流程环节定义、流程环节的权限定义,以及图形和模型的操作定义。
流程开发工具采用可视化的图元方式描述流程的定义。业务流程图包括流程的基本属性、流程的控制元素、流程的活动/步骤以及活动与活动之间的联系。功能结构如下图3所示:
图3 工作流开发工具模型
3.3 报表/查询工具
采用报表开发平台开发报表。为了方便报表的管理,可以将部分有相似功能或概念的报表以及报表所需的数据集放到同一分组中,分组管理主要解决了对报表和数据集的分类管理,方便用户查找报表或数据集,以及方便管理员清晰的定义报表或数据。
4 结 语
MDA是OMG针对代码与模型分离、克服传统软件开发方法在生产效率、可移植性、交互性与维护等一系列缺陷提出的一种新的软件开发框架。本文根据MDA软件开发思想,研究了业务建模的抽象化过程与模型映射及转换,为高校快速业务构建平台的实现提供理论基础和系统框架。接下来的工作是:对MDA建模技术进行进一步研究、细化和完善,结合MDA的三级建模技术方法,进一步研究高校快速业务构建平台。
[1] 王彰平,姜进军,聂瑞强.浅析数字化校园的组建[J].中国教育信息化.2007(3).
[2] 沈大强.高校教育教学管理信息流的集成研究[D].广西大学,2008.
[3] 蒋东兴,陈怀楚,郭大勇,等.大学资源计划理论探讨与实践[J].教育信息化,2005(9):4~7.
[4] D.Frankel.Model D riven A rchiecture:Ap lying M DA to En terprise Com puting,Wiley Press,2003.
[5] 祁祺.基于MDA的软件开发方法研究[J].福建电脑,2008,(10).
[6] 许晓立.MDA框架及模型转换内涵的研究[D].南京航空航天大学,2007.
[7] 朱忠旭,袁兆山,李宏芒.从xUM L模型到J2EE应用系统的转换方法研究[J].计算机技术与发展 ,2007,(07).