基于DSL的MES系统建模平台的设计与实现
摘要:给出了一种适用于MES系统的建模平台的设计方法。该平台能够将业务需求通过友好的图形化用户交互界面转化为模型,从而实现各种业务模块功能的建模配置,此外,该平台也可根据模型生成基于SOA的运行代码,在系统运行平台上运行。
关键词:MES;建模;模型;DSL
O 引言
以往MES系统项目的开发都是各个项目独立地进行设计和开发,而这些项目中有一部分需求和功能有相同的地方,这样,就会在一定程度上造成重复劳动和资源浪费。为此,笔者将业务需求转化为模型,开发了一套基于模型驱动的系统平台,同时搭载多种行业模型包。这样,当项目应用时,就可以根据需要对模型进行简单修改,然后直接满足项目需求。另外,此平台依旧保留有快速的二次开发接口,这样不但可以缩短整个系统的开发周期,而且可以大量节约人力物力资源。该系统平台主要包括系统管理、建模平台、工作流、业务系统等。本文主要讲述建模平台的设计与实现方法。
1 DSL概述
Visual St udio DSL(Domain-Specific Language,特定领域语言)工具是微软公司针对特定领域开发而专门设计的。特定领域开发是一种用于解决重复发生的问题的方法,是可以使用DSL工具作为自动生成相同或相似代码的一种方式。DSL是指软件开发中出于某特定考虑而设计的比较小的、目标明确的语言。它们的作用是使用某特定领域里惯用的符号或者表示法对该领域的实体或者流程进行建模。
DSL工具提供有一种图形化的操作方式。开始创建领域特定语言(DSL)是围绕DSL设计器进行的,设计器的功能是设计和产生DSL,或者设
计依附于可生成代码DSL的模型。
域模型(domain model)是DSL定义的核心部分。域模型就像DSL的语法,它定义了域类(domain class)和域关系(domain relationship),即定义了组成模型的要素,并给出了将这些要素互相联系在一起的规则。域模型和表示是分离的,它仅定义了DSL所要处理的概念层上的内容,而并没有给出如何在图中表示这些概念。在DSL设计器中,图形和域类的对应关系是非常直观的,有多种基本的图形和连接线类型可供选择,在定义了一组图形之后,还要定义一组图形的映射关系,也就是定义用哪个图形或者连接线来显示某个域类或者域关系。表示层和底层模型相分离的设计,可以在不改动模型的情况下,合理改变域模型的表示方式。
在用DSL设计器完成DSL的定义后,将从这个DSL定义生成编辑和处理DSL实例工具的代码,然后就可通过写一些附加的代码,来增强所产生的设计器的功能。
2 模型驱动的建模平台设计
模型驱动就是对企业的业务需求进行分析后,通过友好的图形化用户交互界面将企业的业务需求转化为模型,图1为其建模平台示意图。这样,通过实现各种业务模块(例如:设备管理)系统功能(例如:设备停用)的建模配置,系统就可将其自动转化为机器可读和高度抽象的平台无关模型,这些模型独立于实现技术和语言,并以标准化的XML方式储存。系统可根据模型生成基于SOA的运行代码,并可通过发布解决方案的方式来将建立好的业务模型集成到系统运行平台之中,最后在系统运行平台上运行。建模平台可支持使用过程中动态调整流程、动态配置业务和展示信息,可实现软件的配置与信息管理的一体化应用。当业务发生变化后,也可以在系统中修改原有的业务模型并重新发布。其方便地改变特点,可以真正实现快速满足客户业务变化的需要。
建模平台的设计主要分为三部分:数据模型、后台服务和前台页面,图2所示为建模平台的模型图。
评论