利用DSL语言来实现MES系统建模平台
预制页面布局模板,分别为单表结构、上下主从结构和左树右表主从结构。用户操作时,系统将调用后台服务来完成业务功能。
3 建模平台的实现
数据模型、后台服务这两部分都是通过微软提供的DSL来定义、生成和定制图形语言,从而实现真正的用模型来完成驱动软件开发的目的。完整的数据模型和后台服务DSL设计过程一般包含两个阶段:
其一是为数据模型和后台服务的DSL文法设计域类、域关系及其相应的图形表示。简单地说,就是为数据模型和后台服务语言设计图形、连接器和底层的元模型(包括文字性属性)。
其二是写代码模板,即使用存储在DSL中的实例信息来产生对应的代码。它主要包括编译生成动态链接库dll文件和表视图模型生成到数据库两部分。代码生成通常是基于TextTemplate (.tt)文件的。
创建数据模型DSL(DataModel)需要创建一个Minimal Language模板解决方案,它是包括一个矩形方框类型和一个连线类型的语言模型。后台服务DSL(Service)需要创建一个Task Flow模板解决方案,类似于UML活动图的语言模型,其方框可以被放置在泳道内。DataModel和Set-vice被称为DSL的根。通常情况下,当DSL在设计器中显示时,根由整个图表示。同时,它也是图保存后生成文件的XML树的根。DSL设计器主窗口中也包含两个泳道(列):在左侧的是域模型,包括域类和域关系;右侧定义的是将显示给用户看的图形和连接器。设计域类和域关系时,数据模型包括表、普通视图(配置方式形成视图)、自定义视图(手工书写SQL语句形成视图)域类及其一些属性,后台服务包括开始、结束、增加、删除、修改、查询等操作域类及域关系,并与图形(定义的建模语言的图形标识)映射好,然后在DSL资源管理器中添加到工具箱。数据模型实例文件以XML文件格式存储,元素的表示采用DSL定义中的名称小写格式,而连接则采用元素名称的语法路径方式。
数据模型和后台服务DSL设计器的代码是根据DSL的定义文件产生的。点击Visual Studio主窗口解决方案资源管理器工具栏上的Transfo-rm AllTemplate按钮,可启动代码的自动生成,DataModel和Serice解决方案下的GenerateCode文件夹下有很多扩展名为.tt的文件模板文件,每个.tt文件都有一个自动产生的附属文件,这些附属文件中的所有代码都会被重新生成。此外,还可通过对生成代码添加自定义代码来实现验证约束或者扩展生成设计器的功能。
前台页面的核心是页面信息配置。在信息配置页面中,首先应输入页面编码等信息,然后选择页面所属布局模板类型,再单击“下一步”,进入页面面板配置页面。增加页面时,后台程序首先读取页面配置文件的模式文件,然后根据所选模板类型读取相应的模板标准配置文件(如单表模板),同时生成页面的GUID标识号;如需修改页面配置,后台程序首先要读取页面配置文件的模式文件,然后读取页面对应的配置文件。不管是增加或修改,此时都会生成一个全局数据集gConfigFileDs。此后,单击完成按钮,后台程序会将修改后的gConfigFileDs写回到页面配置文件(该文件的名称为CUID),并调用Lib目录下的解析器生成主JS文件。
页面布局模板类型目前可支持如下三种:
(1)单表结构
页面上只放置一个普通的网格面板,可提供对单表的增删改查功能。
(2)上下主从结构
页面上下各放置一个网格面板,其中上方为主表网格面板,下方为从表网格面板。主表网格面板有增删改查功能,从表网格面板有增删改功能。当单击选择主表网格面板的某一记录行时,从表网格面板就会显示与主表记录相关的所有从表记录。
(3)左树右表主从结构
该结构页面左方放置一个树面板,右方一个网格面板,其中左方面板用于主表显示,右方面板用于从表显示。单点击选中树面板上的某一结点,右方网格面板就会显示与此树结点相关的所有从表记录。
4 结束语
本文利用DSL特定领域语言实现基于模型驱动的MES系统建模平台,该方法可以快速的将业务需求转化为模型,缩短整个系统的开发周期,大量节约人力物力资源。但该建模平台还存在一定的缺陷和不足,就是对一些特别复杂的业务需求不能直接采取配置的方式来实现,而必须通过自己手写代码或者存储过程等才能实现。下一步工作的重点就是解决掉这些缺陷和不足。
系统 建模 平台 MES 实现 DSL 语言 利用 相关文章:
- Linux嵌入式系统开发平台选型探讨(11-09)
- VxWorks实时操作系统下MPC8260ATM驱动的实现(11-11)
- VXWORKS内核分析(11-11)
- Linux内核解读入门(11-09)
- linux文件系统基础(02-09)
- 基于Winodws CE的嵌入式网络监控系统的设计与实现(03-05)