基于特定领域国土GIS应用框架
设计及应用
何仕国
2012年8月16日
摘要:
本文首先讲述了什么是框架和特定领域框架,以及与国土GIS 这个特定领域行业相结合,而进行的特定领域应用框架的设计及其相关的实践应用实例。刻画了该领域软件系统的公共属性、公共的商业规则、公共的设计决策。在设计这个领域新的软件系统的时候,可以基于应用框架包含的重要信息,设计该软件系统特殊的属性,然后有效的把两者集成为一个完整的应用系统。通过这种软件开发方式,可以大大加快软件开发的速度。
关键字:特定领域,国土,应用框架,重用,组件,GIS, DSSA
一、什么是框架?
框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象组件及组件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架。前者是从应用方面而后者是从目的方面给出的定义。
可以说,一个框架是一个可复用的设计组件,它规定了应用的体系结构,阐明了整个设计、协作组件之间的依赖关系、责任分配和控制流程,表现为一组抽象类及其实例之间协作的方法,它为组件复用提供了上下文(Context)关系。因此组件库的大规模重用也需要框架。
二、什么是特定领域框架?
简单地说:特定领域框架,(Domain SpecificSoftware Architecture,DSSA)就是在一个特定应用领域中为一组应用提供组织结构参考的标准软件体系结构,对DSSA研究的角度、关心的问题不同导致了对DSSA的不同定义。
Hayes Roth对DSSA的定义如下:“DSSA就是专用于一类特定类型的任务(领域)的、在整个领域中能有效地使用的、为成功构造庆用系统限定了标准的组合结构的软件构件的集合。”
Tracz的定义为:“DSSA就是一个特定的问题领域中支持续一组应用的领域模型、参考需求、参考体系结构等组成的开发基础,其目标就是支持在一个特定领域中多个应用的生成。”
通过DSSA的定义和描述的分析,可知DSSA的必备特征如下:
1一个严格定义的问题域和问题解域。
2具有普遍性。使其可以用于领域中某个特定应用的开发。
3对整个领域的构件组织模型的恰当抽象。
4 具备该领域固定的、典型的在开发过程中可重用元素。
垂直域DSSA:定义了一个特定的系统族,包含整个系统族内的多个系统,结果是在该领域中可作为系统的可行解决方案的一个通用软件体系结构。
水平域DSSA:定义了在多个系统和多个系统族中功能区域的共有部分。在子系统级上涵盖多个系统族的特定部分功能。
本文问题边界和问题域范围设定为:
操作系统方面:支持Window系列;
数据库方面:用关系型数据库Oracle,SQLServer和空间数据库ArcGIS的sde,gdb,mdb;
GIS平台方面:ArcGIS Engine和Runtime;
国土应用方面:主要包括主流的业务办公:建库,成果管理,日常办公,决策支持等相关GIS应用。
三、国土GIS领域框架分析
主要目标是获得国土GIS应用领域模型。领域模型描述领域中系统之间的共同的需求。即领域模型所描述的需求为领域需求。在这个阶段中首先要进行一些准备性的活动,包括定义领域的边界。从而明确分析的对象;识别信息源,整个领域工程过程中信息的来源,可能的信息源包括现在系统、技术文献、问题域和系统开发的专家、用户调查和市场分析、领域演化的历史记录等,在此基础上就可以分析领域中系统的需求,确定哪些需求是领域中的系统广泛共享的,从而建立领域模型。当领域中存在大量系统时,需要选择它们的一个子集作为样本系统。对样本系统需求的考察将显示领域需求的一个变化范围。一些需求对所有被考察的系统是共同的,一些需求是单个系统所独有的。很多需求位于这两个极端之间,即被部分系统共享。
具体分析过程如下:
收集了国土行业标准和业务模型:如土地利用现状调查,土地利用规划,土地综合整治,
国土办公管理业务模型,分析了上一轮已有软件的详细情况,结果用户调查和市场分析
在新一轮的特别是二次调查后出现的原有系统需要升级,和新的国土需求的产生:如数据集中管理的数据中心,业务系统不能独立的运行,需要综合集成管理各业务系统的独立性和联系性,提升其国土行业的进一步信息化和办公高效性。就国土GIS应用方面,对图形数据集中管理,各系统编辑,各系统的统计分析,各系统报表,和各系统的决策支持。即有相似性,又有其局部的不同性。
四、国土GIS领域框架设计
描述在领域模型中表示的需求的解决方案,它不是单个系统的表示,而是能够适应领域中多个系统的需求的一个高层次的设计。建立了领域模型之后,就可派生出满足这些被建模的领域需求的应用框架,由于领域模型中的领域需求具有一定的变化性,应用框架相应地具有变化性,它可以通过表示多选一的,可选的解决方案等来做到这一点变化性。由模型和应用框架来组织,因此在这个阶段通过获得特定领域应用框架国,也就同时形成了重用基础设施规约。
国土GIS领域参考框架模型图如下:
各种建库,成果管理,日常办公,决策支持等的GIS应用系统
LIB插件库组件 面积量算通用组件
DSFW特定领域应用框架
CFW公共基础领域通用组件
.Net基础公用组件 GIS.ArcGIS基础公用组件
业务数据库(oracle,sqlserver) 空间数据库(sde,gdb,mdb)
Window操作系统+Net框架
(国土GIS领域应用框架模型)
五、国土GIS领域框架实现
主要目标是依据国土GIS领域模型和DSSA开发和组织可重用信息。这些可重用信息可能是从现有系统中提取得到,也可能需要通过新的开发得到。它们依据领域模型和DSSA进行组织,也就是领域模型和DSSA定义了这些可重用信息的重用时机,从而支持了系统化的软件重用。可看作重用基础设施的实现阶段。
值得注意的是,以上过程是一个反复的,逐渐求精的过程。在实施领域工程的每个阶段中都可能返回到以前的步骤,对以前的步骤得到的结果进行修改和完善,再回到不前步骤,在新的基础上进行本阶段的活动。
特定领域应用框架的三层次系统模型如下:
à参考结构
à参考需求
(领域开发环境)à构架 à(领域特定的应用开发环境)à(应用执行环境)
à领域模型 实例化的框架(体系结构)
à开发工具
领域构架师 应用工程师 操作员
其具体实现如下:
.Net基础公用组件:包括数据持久化服务等的公用组件
//关系型数据库
Net.DBPool 支持Oracle,SQLServer,MDB数据库的连接访问
Net.DBPool.MySQL 支持MySQL数据库的连接访问
Net.DBPool.SQLite 支持SQLite数据库的连接访问
No SQL数据库
Net.MongoDB 支持非关系数据库MongoDB的连接访问
Net.Log 本地日志公用组件
Net.Projection 国土投影坐标公用组件
Net.Security(Net.SecurityBase) 安全公用组件
Net.Utility 常用工具公用组件
WinFormsUI 窗体风格公用组件
GIS.ArcGIS基础公用组件:包括ArcGIS Engine的二次封装和对国土特定领域的公用GIS业务模型的封装基础公用组件。
CFW公共基础领域通用组件:包括.Net Window风格插件框架公用组件,GIS数据转换公用组件,用户角色权限管理公用组件,数据库标准管理公用组件,数据库日志管理公用组件,适应性评价公用组件等与国土特定领域公用的业务的抽象和封装组件
DSFW特定领域应用框架:包括应用框架插件配置管理,插件接口管理,插件加载管理,插件运行管理,国土GIS图形编辑公用组件,国土GIS数据分析公用组件,国土GIS图形打印公用组件等等,和应用框架与插件交互机制规约。
LIB插件库组件包括国土特定领域公用插件库
面积量算通用组件包括国土特定领域面积量算公用组件库
六、国土GIS领域框架应用
在此国土GIS领域框架的基础上再派生出
各种建库,
成果管理,
日常办公,
决策支持等的GIS应用系统,
如下所示应用框架的实例:
四川省土地利用总体规划管理系统:菜单工具栏插件管理和全局应用框架与插件交互机制部分:
四川土地利用总体规划数据库建设辅助系统的菜单插件管理和全局应用框架与插件交互机制部分:
四川省耕地与基本农田保护“一张图”核心数据库管理系统的菜单工具栏插件管理和全局应用框架与插件交互机制部分:
Window经典界面MapCatalog系统的菜单工具栏插件管理和全局应用框架与插件交互机制
Window经典界面Map3D三维系统的菜单工具栏插件管理和全局应用框架与插件交互机制
纯.Net Window界面风格的应用服务配置管理系统的菜单工具栏插件管理和全局应用框架与插件交互机制
总述:基于特定领域的国土GIS应用框架的设计实现了一个国土GIS相对通用应用框架,其应用框架以后还可扩展派生出C/S风格工作流流程自定义管理系统等。其国土特定领域公用组件还需在实践中完善,在应用中发展。DSSA的建立过程是并发的、递归的和反复进行的即螺旋过程模型。该过程的目的是将用户的需要映射为基于实现限制集合的软件需求,这些需求定义了DSSA应用框架,当国土领域的需求发生变化了,其相应的DSSA的应用框架也会随之而发生相应的变化,如近几年的数据中心,电子政务集成综合管理平台等的平级应用系统互联,上下级应用系统互联的需求,还需要以后对国土DSSA特定领域应用框架重构升级完善。