基于模型驱动的省级林业有害生物灾害监测与预警平台1)

2013-03-05 09:59王志宝常原飞乔彦友文必龙
东北林业大学学报 2013年7期
关键词:建模驱动林业

王志宝 刘 丽 常原飞 乔彦友 文必龙

(中国科学院遥感应用研究所,北京,100101) (东北石油大学)

林业有害生物是我国森林资源、国土生态安全的三大危害之一,其危害程度甚于森林火灾、乱砍滥发。近年来,我国林业有害生物发生形式严峻,不但常发病虫种类的发生面积居高不下,外来有害生物入侵日趋严重。2011年,全国主要林业有害生物发生面积为1 168.13 万hm2,与2010年同期发生面积基本持平,其中重度发生面积71.26 万hm2[1]。为减少灾害损失,保护国土生态安全,保障国家森林面积与森林蓄积量的双增目标,我国已初步建立起林业有害生物防治体系,实施国家、省、市和县四级管理体系。在该体系中,监测预警体系是及时、准确、全面地掌握有害生物发生、成灾、防治信息的基础,是林业有害生物灾情合理分析、方案科学决策、防治有效实施的前提。

在2009年初和2011年初,国家林业局相继颁发了《全国林业信息化建设纲要》和《全国林业信息化发展“十二五”规划》,要求逐步建立起功能齐备、互通共享、高效便捷、稳定安全的林业信息化体系,提升林业信息化建设的水平[2-3]。林业有害生物灾害监测预警体系是其重点建设内容之一。省级林业有害生物灾害监测与预警系统在全省范围内实现林业有害生物灾害信息的采集、传输、处理、分析、评价、发布与共享,是该体系的重要组成。

省级森防机构依托省级林业有害生物灾害监测与预警系统,负责收集县级森防机构组织森林病虫害情况调查信息,审核下辖单位测报数据,发布辖区内短、中、长期趋势预报,并提出防治执行方案,并向国家级部门报告调查情况。为有效支撑这个业务过程,系统应具备如下功能:基于流程的有害生物灾害信息汇交子系统,满足省、市、县、乡多级的灾害信息交流与共享;基于WebGIS 的灾害信息空间可视化分析、预测子系统,有害生物灾害信息具有明显的时空特性,表现为寄主性、扩散性、动态性,传统的数据表格管理手段无法形象表达这些特性;通用动态的表单子系统,满足不同地区异构业务数据的录入与查询。实际调研发现共性的需求显现出诸多差异化的需求,甚至同一省份在不同的阶段也会提出新的需求,这是由于各地森防部门管理模式的差异造成。例如,在流程上,福建省是按照“乡—县—市—省”三级灾情上报模式,而海南省则是“县—省”两级上报模式;由于各地有害生物种类的差异,使用的预测模型也不同,松材线虫采用分类与回归树模型,而美国白蛾使用元胞自动机模型;不同的地区会采用不同的地图等级模型、配色方案、专题图类型。

从空间角度看,各省森防机构对系统有不同的需求;从时间看,单一省份森防部门随着业务的调整也会提出更多的需求。传统的信息系统开发模式中,业务流程逻辑、功能处理逻辑、业务信息展现逻辑等没有进行合理隔离和描述[4],各类逻辑和处理规则以代码形式固化在软件系统中,造成应用系统可定制性、可演化性较差,软件难以重用,维护不能敏捷,不能快速满足用户不断变化的需求。造成这种局面的原因是系统构建时缺乏一个合理的建模体系。针对上述问题,借鉴OMG 的MDA 模型制导的软件开发方式,采用元数据模型驱动架构开发面向省级林业有害生物灾害监测的业务基础平台,利用该平台可通过定制开发方式,按需搭建不同省份林业有害生物灾害监测系统。

1 模型驱动的软件体系结构

模型驱动架构(MDA)是对象管理组OMG 提出的新一代软件开发范型,提升了模型在软件开发中的地位,使模型成为软件开发的基本工件。一个经典的基于MDA 的软件开发过程分为4 个步骤[5]:①由业务人员建立计算无关模型(CIM),CIM 从计算无关的视角表达系统相关的业务模型。②依据映射规则将CIM 转换为计算相关平台无关模型(PIM),PIM 更具体地表示系统结构和功能,表达如何用软件来实现业务,但是不涉及具体的技术平台。③依据映射规则将PIM 转换为平台相关模型(PSM),PSM 的表达中会使用某一具体技术平台的语法和语义,如J2EE 平台或者.NET 平台。④最后将PSM 转换为代码、测试框架和部署脚本。从这个过程中可以看出,通过建立不同层级上模型及其映射关系,以“模型制导”驱动系统从无到有,再通过若干迭代过程驱动系统完善。

MDA 通过分层建立CIM、PIM 和PSM 模型体系,明晰了各类模型的作用,解耦了传统软件模型的复杂性,保护了软件开发各个阶段的工作成果,使软件模型不依赖于具体的技术平台。当技术平台迁移时,CIM 和PIM 可以复用;当业务需求发生变化时,可以通过模型间的映射关系,增量的驱动系统重建,无需重复编码。因此,MDA 一经推出,就成为国内外学术界和软件工业界研究和实践的热点。

在应用MDA 方法指导软件开发中,总结有以下3 种模式:①模型转换方式。遵循OMG 的MOF、UML、XMI 系列规范,进行建模及模型转换方法、集成环境的研究,软件组织在这些方法与环境的支持下开展PIM、PSM 建模及转换,进行应用软件开发。例如:王赟华等[6]采用MDA 环境Tau Developer,进行了热控系统建模,实现了大部分代码生成;侯金奎等[7]通过对UML 进行扩展引入Web 建模视图,在J2EE 平台中实现了Web 应用程序的生成;周东岱等[8]提出建立利用GIS 平台提供的UML Profile 将平台无关模型影射到平台相关模型,使GIS 开发不依赖于具体的ArcGIS、SupperMap 等GIS 平台。②可执行UML(Executable UML):UML 的语义精度只能支持静态代码(类结构、代码文件等)生成,可执行UML 提高了UML 的语义精度,弥补在动作语义描述的不足,目标是建立可执行、可验证的PIM,实现模型转化与代码生成的全自动化。这方面的研究集中在对现有UML 标准的扩展和标准,如文献[9]—[11];还有可执行模型的建模、转换、运行、测试支撑环境的研制,例如文献[12]和[13]。③元建模方式。软件开发涉及多个领域,不同的领域需要不同的建模语言及其建模工具,这些工作探索建立领域元模型。与UML 元模型相比,领域元模型更接近问题域,建模人员容易掌握,在限定范围条件下,也更容易支持代码的生成[14]。这3 种模型驱动的时效在软件开发期,面向软件开发人员,以模型制导生成的代码模型为最终目标,统称为开发期模型驱动(MDD)。实际上,在软件运行期引入模型驱动机制(MDR),通过模型的建模、执行、演化实现系统的构造、运行和演化,这个过程可以由软件人员完成,也可以由业务人员直接实施。MDR 求解目标不是代码模型,而是与需求一致的业务模型,是“所见即所得”的业务模型。在MDR 过程中,从需求模型向代码模型的转换是自动的,对终端用户是透明的。与开发期的模型驱动相比,MDR 更适合需求个性、易变的情况,因为由业务人员直接建模方式的定制系统,避免了需求在转达过程中的失真效应,提高了系统的可演化性及维护的敏捷性。图1给出了开发期模型驱动与运行期模型驱动在开发过程上的差异。从图1可以看出,林业业务人员可直接使用建模工具描述自己的需求,得到与需求一致的可执行软件模型,表现为一种定制软件的过程。这个过程需要模型驱动运行时环境的支撑,元模型是基础设施,建模工具和执行引擎在元模型的基础上研发,完备的领域元模型是MDR 过程实现的关键。文献[15]给出了MDR 思想开发企业Web 应用的框架。

本研究在前期工作基础上面向业务的软件集成平台[16],进行林业有害生物灾害监测与预警的本质需求分析,建立该业务领域的支撑元模型,解决省级系统建设中各省需求不一致、单省需求变化快与系统可演化性差的矛盾。

图1 模型驱动机制的2 种过程模型

2 基于元模型的平台架构

采用元数据作为模型的载体,建模就是生成元数据,模型执行就是对元数据的解释执行,由于林业有害生物灾害监测与预警业务涉及多类元数据,笔者借鉴OMG 的MOF 提出的4 层元数据模型体系结构来管理异种异构的元数据。

2.1 系统总体结构

图2为平台元数据模型体系结构,从信息层到元元模型层,是从具体到抽象逐步过渡的,相邻的底层和顶层之间等同于面向对象中类与超类之间的关系。

图2 面向林业有害生物监测的元数据模型体系结构

信息层:模型实例化的结果,也是业务人员最关心的各类信息。例如“辽宁省本溪市美国白蛾2012年第3 季度发生情况”。

模型层:模型就是元数据的聚合,一个模型描述的是一类对象。林业业务用户通过建模描述需求,通过执行模型形成直接可用的功能。例如辽宁省美国白蛾发生情况采集模式。传统的信息系统代码与这个层次绑定,导致系统不能在运行期动态改变。

元模型层:描述了模型的基本结构和语义。一个元模型负责对一类模型进行统一的描述,实现对一类资源的集成和管理,根据林业有害生物灾害监测与预警的本质需求,提出FPM-BPM 业务过程元模型、FPM-GIS 空间可视与分析元模型、FPM-Form通用表单元模型,这些元模型是有害生物信息采集、存储、分析、预测、共享、展示的支撑。建模工具与执行引擎的代码实现与该层绑定,需求变化不易波及到该层。

元元模型层:描述了元模型的基本结构和语义。相比MOF 元元模型,FPM 元元模型是一个轻型的元元模型,可实现自描述,管理元实体、元属性和逻辑数据类型等元元对象。理论上,通过元层次之间的映射关系,针对该层实现的软件框架可管理所有元数据。

3 元模型建模

林业病虫害监测与预警业务涉及3 个核心元模型:FPM-BPM 元模型用来支撑有害生物发生防治信息再各级林业组织中的流转过程,FPM-GIS 元模型用来支撑有害生物发生信息的空间可视化以及灾害预测服务,FPM-Form 用来支撑各种有害生物信息的录入与查询功能。元建模语言采用UML 2.0,元模型建模一方面参考已有的相关标准,另一方面从林业有害生物监测业务需求中抽象。

3.1 FPM-BPM 元模型

参考WMFC 工作流元模型,采用面向对象机制,提出可扩展的FPM-BPM 元模型,如图3所示。Process Type 描述过程名、版本号、开始时间、结束时间等属性;Activity 描述活动名、活动类型(原子活动或者子流程)、前置条件、后置条件调度约束;Transition 描述条件名、条件类型、条件转移规则;Process Relevant Object 描述对象名、对象路径、对象属性、对象操作;Role 描述流程中涉及的组织机构、参与角色;Service 描述活动中使用的软件名称、功能参数;Data 描述活动使用的数据集、数据类型(空间数据或者属性数据)、数据操作。Role、Service 和Data也继承Process Relevant Object 的属性。FPM-BPM元模型的实例是林业业务流程模板。例如福建省2013年马尾松毛虫灾害信息汇交流程。

图3 FPM-BPM 元模型

3.2 FPM-GIS 元模型

FPM-GIS 元模型支持地图模式的定制,如图4所示。Map 描述地图模式名称、地图目的、地图等级;Operation 描述操作名称(缩放、漫游、选择、图层)、是否挂接;Style 描述页面布局、页面样式、样式资源路径;Geographical Phenomenon 描述地图中涉及地理现象名称、现象表达优先级、是否可视、对象过滤表达式;Feature Type 描述离散型地理对象,例如林班、小班、细班;Field Type 描述连续分布的地理现象,例如地表温度、地表湿度、地表高程;Spatial Data Model 描述使用的空间数据模型、空间数据类型、空间数据库物理位置、坐标参考系统;Symbol 描述地理现象符号化信息:符号化类型(点、线、面、标注、栅格)、符号化规则、符号ID;Analysis Model 描述使用的基于空间的灾害统计与预测模型:模型类别、模型名称、模型URL、输入参数、返回参数。FPMGIS 元模型的实例是一个较完备的地图模式。例如,海南省松材线虫预测专题图模式。

3.3 FPM-Form 元模型

FPM-Form 支撑动态的录入和查询表单,如图5所示。Data Model 描述数据模型名称、模型类型、模型版本;Data Type 描述数据类型名称、数据类型代码;Entity 描述实体名称、实体代码;Attribute 描述属性代码、属性名称、数据类型、所属实体、引用数据元素;Data Element 描述数据元素名称、数据元素代码、计量单位、域范围、数据类型、数据长度、数据精度;Form 描述界面类型(录入或者查询)、表单部件、录入质量约束、查询条件;Form Style 描述表单布局、控件样式;DataMapping 描述实体表单映射关系:映射名称、表单与实体映射关系、属性与表单元素映射关系、映射顺序。

图4 FPM-GIS 元模型

图5 FPM-Form 元模型

4 平台实现与运行效果

在各个元模型的基础上,采用Web 方式开发建模工具和执行引擎,方便功能集成和平台部署。为保证用户体验,前端用户交互均使用Visual Studio Ajax 组件实现,后端元数据和业务数据的存取使用Web Services 实现,前后端通信采用XML HTTP 进行异步的消息传递。FPM-BPM 建模工具与执行引擎的表现层参考了开源项目ccFlow,底层针对FPMBPM 元模型做了改造,流程可视化建模采用微软的Silverlight 技术实现,实现顺序、异或分支、异或合并、与分支、与结合、循环及复合类型的路由结构,同时对模型的提供合理性验证,避免死动作、死锁、活锁,实际中满足了各省林业有害生物监测计划、调查任务下达、信息汇总核查、灾害预警、信息发布等流程化的业务需求。FPM-GIS 建模工具和执行引擎则是在前期研究工作基础[17]上,针对FPM-GIS 元模型改造完成,实现了空间数据源、地图级别、地图符号、统计模型、预测模型的灵活定制。FPM-Form表单建模与执行引擎,则完全从底层开发,支持录入和查询双向数据流,独立的数据元模型不仅支持SQL Server、Oracle、MySQL 等异构的物理数据模型,还支持异构的逻辑数据模型,数据元素的应用可有效控制数据录入质量,不同省级林业森防部门可根据当地情况,选购物理数据库,设计有害生物信息逻辑数据库。此外,还开发了通用软件框架将定制的各种流程、表单、GIS 模块等资源组装起来,形成一体化的业务系统。由于每个子系统均采用Web 技术实现,可以直接在界面层集成,模块之间的通信采用Ajax 框架容易解析JSON 格式。软件框架针对元元模型层编程实现。

从实现角度看,将程序代码与元模型绑定,通过多级抽象,用户的需求变化被控制在模型层面上,变化的波及效应无法冲击到代码层,这就使系统具有了运行期动态改变的能力。图6和图7分别给出了采用本平台通过定制的方式实现海南省和福建省林业有害生物灾害监测与预警的运行效果。其中,海南省为省级用户登录节点,正在完成马尾松毛虫灾情的预报任务,预测模型使用神经网络,预报的尺度是县级,同时使用GIS 模块进行了空间可视化;福建省为福州市级用户登录节点,正在审核所辖县级单位上报的当月有害生物灾害的发生情况,等到辖区各县级用户都完成上报虫情,再将本市情况汇总上报福建省林业厅,虫情信息也支持GIS 空间可视化。

图6 海南省FPM 系统

5 结束语

针对省级林业有害生物灾害监测与预警系统建设中,各省需求不一致,单省需求变化快的问题,借鉴OMG 的MDA 软件开发方法,提出了软件运行期元数据模型驱动的定制开发模式,该模式支持软件人员为用户维护系统,也支持业务用户按需定制系统。建立了FPM-BPM 元模型、FPM-GIS 元模型、FPM-Form 元模型3 个支撑元模型,开发了相应的建模工具、执行引擎,采用模型组装的方式实现业务系统构造。本研究成果已经应用于辽宁省、海南省、福建省等省级林业有害生物灾害监测与预警系统建设,实际应用证明,与传统的针对模型层的开发相比,系统具有良好的适应性和可扩展性,具备了软件运行期适应需求变化的能力,只有小部分特殊需求无法定制,满足了各省林业部门林业有害生物灾害监测需求。在未来的工作中,将进一步提高3 个元模型的复杂模型描述能力,同时增加报表元模型,提高元模型的描述能力,提升平台的定制能力。

图7 福建省FPM 系统

致谢:感谢辽宁省林业有害生物防治检疫局、福建省森林病虫害防治检疫总站、海南省森林病虫害防治检疫站为本平台的研发提供了宝贵的意见,谨此致谢。

[1] 国家林业局.2012年全国主要林业有害生物仍呈偏重发生趋势[EB/OL]. 中央政府门户网站,2012[2013-4-22]. http://www.gov.cn/gzdt/2012-01/12/content_2042719.htm.

[2] 国家林业局.全国林业信息化建设纲要[EB/OL].国家林业局政府网,2009[2013-4-22].http://www.forestry. gov. cn//portal/zfs/s/799/content-105973.html.

[3] 国家林业局.全国林业信息化发展“十二五”规划[EB/OL].国家林业局政府网,2011[2013-4-22]. http://www. forestry.gov.cn//portal/main/s/195/content-470883.html.

[4] 仲琴,吴士亮.业务导向及模型驱动MIS 软件构建的模型体系研究[J].计算机应用研究,2009,26(7):2579-2582.

[5] Object Manage Group. MDA guide version 1.0.1[EB/OL]. Object manage group,2003[2013-4-22]. http://www. omg. org/mda/.

[6] 王赟华,陈蔚薇.模型驱动开发方法的应用研究[J].计算机工程,2006,32(13):63-65.

[7] 侯金奎,万建成,张玉艳.一种支持MDA 的PIM 建模方法[J].计算机工程,2007,33(8):71-73.

[8] 周东岱,叶育鑫,胡光道,等.基于模型驱动架构的GIS 应用开发研究[J]. 吉林大学学报:地球科学版,2006,36(4):653-658.

[9] Michelle L C,Juergen D. Towards a formal account of a foundational subset for executable UML models[C]//Krzysztof C,Ileana O,Jean-Michel B,et al. Model driven engineering languages and systems:MoDELS’08 proceedings of the 11th international conference on model driven engineering languages and systems. Berlin:Springer Berlin Heidelberg,2008:675-689.

[10] Object Manage Group. Semantics of a foundational subset for executable UML models (fUML),v1.0[EB/OL]. Object Manage Group,2011[2013 - 4 - 22]. http://www. omg. org/spec/FUML/1.0/.

[11] Lazǎr C L,Lazǎr I,Pârv B,et al. Using a fUML action language to construct UML models[C]//Symbolic and numeric algorithms for scientific computing:synasc’09 proceedings of the 2009 11th international symposium on symbolic and numeric algorithms for scientific computing. New York:IEEE,2009:93-101.

[12] Damian C. SPARK annotations within executable UML[C]//Luís M P,Michael G H. Reliable software technologies-ada-europe 2006:11th ada-europe international conference on reliable software technologies. Berlin:Springer Berlin Heidelberg,2006:83-93.

[13] Lazǎr I,Motogna S,Pârv B. Behaviour-driven development of foundational UML components[J]. Electronic Notes in Theoretical Computer Science,2010,264(1):91-105.

[14] 刘辉,麻志毅,邵维忠.元建模技术研究进展[J]. 软件学报,2008,19(6):1317-1327.

[15] Chondanrongkul N,Hewett R. Application runtime framework for model-driven development[J]. Communications in Computer and Information Science,2011,257:256-264.

[16] 文必龙,王志宝,王琳琳,等. 基于模型驱动的软件集成平台研究与实现[J]. 计算机工程与设计,2007,28(23):5733-5735,5738.

[17] Qiao Liuli,YanYou,Fei Changyuan. Design and realization of provincial forest pest information system based on WebGIS and Ajax[C]//Remote sensing,environment and transportation engineering:2012 2nd international conference on remote sensing,environment and transportation engineering. NewYork:IEEE,2012:1-4.

猜你喜欢
建模驱动林业
欢迎订阅《林业科学研究》
基于模糊PI控制的驱动防滑仿真系统分析
《林业科技》征稿简则
屈宏斌:未来五年,双轮驱动,砥砺前行
联想等效,拓展建模——以“带电小球在等效场中做圆周运动”为例
轨旁ATC系统门控柜接收/驱动板改造
land produces
基于PSS/E的风电场建模与动态分析
不对称半桥变换器的建模与仿真
基于S3C6410的Wi-Fi驱动移植实现