引文格式: 宋炜炜,金宝轩,方源敏. 基于规则引擎的空间数据分发服务研究[J].测绘通报,2015(4):49-52.DOI:10.13474/j.cnki.11-2246.2015.0109
基于规则引擎的空间数据分发服务研究
宋炜炜1,金宝轩2,方源敏1
(1. 昆明理工大学国土资源与工程学院,云南 昆明 650093; 2. 云南省基础地理信息中心,云南 昆明 650034)
StudyonServiceofSpatialDataDistributionBasedonRuleEngine
SONGWeiwei,JINBaoxuan,FANGYuanmin
摘要:随着观测技术的进步及计算机信息技术的发展,地理信息应用不断向各行业扩展。地理空间信息服务方面出现了信息资源供需矛盾,一方面,测绘专业部门拥有丰富的空间信息数据;另一方面,各行业的特定需求难以满足。如何提高地球空间信息服务的质量和效率,使已有的测绘成果在各行业应用中得到更好的应用,借助飞速发展的计算机技术已成为一种趋势。本文研究并分析了地球空间信息服务的特征和分类,对目前在各行业广泛应用的规则引擎技术进行了研究,提出了将规则引擎技术应用到空间信息服务的方式和关键技术,并设计了基于分布式计算的空间规则引擎,将其应用到地理空间信息向特定行业应用提供空间数据分发服务的应用系统中。以空间规则引擎为核心,构建了面向行业应用的空间数据服务模型,并进行了原型系统设计,通过空间规则引擎,提高了测绘专业部门向其他特定行业提供空间数据分发服务的时效性,满足了特定行业对空间信息特殊、多变的需求。
关键词:分布式空间规则引擎;空间数据服务;规则库;空间数据分发;专题空间数据
中图分类号:P208
收稿日期:2015-02-03
作者简介:宋炜炜(1976—),男,博士生,研究方向为地球探测与信息技术、时空云计算。E-mail:asong@vip.163.com
一、引言
在对地观测技术不断发展的同时,地理信息系统也不断向各行业应用扩展,呈现出明显的社会化应用特征。GIS的概念和范畴也从传统意义上的地理信息系统(geographicinformationsystem)拓展为地理信息科学(geographicinformationscience)、地理信息服务(geographicinformationservice)等多个方面[1]。
计算机技术的发展,特别是信息系统构建技术的不断完善,为解决地球空间信息服务提供了新的思路和方法。软件系统的适应性和业务敏捷性一直是行业研究的重点和难点问题,从逻辑上看,应用系统主要包括应用程序控制逻辑和业务规则逻辑,这两个方面直接影响了系统开发的敏捷性及其在使用过程中的适应性。而在这两者之中,业务规则作为行业应用的核心内容,其变化越来越频繁,给行业应用系统的灵活性和敏捷性带来巨大的挑战。地球空间信息服务的发展依托于计算机技术的发展,同样在GIS应用系统中也面临多变的业务规则带来的困扰。
规则引擎技术是软件技术新的发展方向,它以面向业务的视角,将应用系统中的业务规则逻辑从程序逻辑中分离出来,利用业务规则管理技术实现对业务规则的集中生成、共享和复用,把业务规则作为业务数据进行管理。
将规则引擎技术应用到地球空间数据服务是空间信息智能服务的关键技术之一,本文将介绍和阐述地球空间信息服务的特征及需求,并描述将规则引擎应用到空间信息服务的关键技术,以提高地球空间信息服务的敏捷性。
二、空间数据服务
地理信息数据是我国“数字城市”建设战略的重要组成部分,地理信息数据具有数据量大、类型多样、层次结构复杂的特点[2]。另外,社会各行业对地理信息服务要求也多种多样,不同行业应用对地理信息数据的要求在区域、精度、属性上各不相同,并且地理信息数据需求在不断变化。因此,在已有的地理信息数据和需要提供的数据服务之间出现了较大的冲突。
1. 空间数据服务方式
地球空间信息服务伴随着全球网络化进程,呈现出网络服务的趋势,地理空间数据通过网络向不同行业、不同需求的用户提供服务,目前主要的服务方式有3种:空间数据在线查询服务、面向行业应用的空间数据分发服务、异构空间数据的集成共享。
2. 空间信息服务面临的问题
我国地理信息技术经过30多年的发展,其应用领域越来越广泛,国家和地方的地理信息中心都积累了大量的空间数据资源,国家颁布了相关的空间数据库标准及框架数据标准,但由于空间数据采集的方式、应用软件、时间等因素的不同,导致了空间数据的多源性和复杂性。因此,当行业应用中需要用到空间数据时,必然面临对该数据的选取、加工及集成,对其进行相关处理后,才能满足某特定行业的应用需求。同时,各行业对空间数据的需求也千差万别,导致了行业应用对空间数据需求得不到有效支援[3-6]。
三、规则引擎技术
1. 规则引擎技术概述
规则引擎技术是人工智能(AI)的一个分支。1943年,美国数学家Post在一种计算体系中提出产生式规则,将人类认知过程中各种知识块之间存在的因果关系以”if…then…”的形式表示,其形式简洁,而且求解问题的过程与人类的认知过程相似。从20世纪60年代开始,这种产生式规则成为规则引擎的雏形,被应用于各类专家系统及人工智能等领域[7]。
2. 规则引擎工作机制
规则引擎工作机制被称为“认知—执行循环”[8]规则引擎通过重复执行如下计算模式得到匹配的规则并进行计算,得出结果,计算逻辑如图1所示。
图1 规则引擎工作机制
1) 将预先配置的规则静态数据装入规则区,由于规则数量一般较少(在几百~几千条之间),规则区采用计算机共享内存的方式存在,将静态规则装入规则区。
2) 读入事实数据,事实数据一般是大量的、种类繁多的,因此根据计算能力和存储能力,事实区一般采用磁盘存储方式。
3) 从事实区读取一定数量的事实数据到工作内存,进行规则左部条件模式匹配:将规则区中所有规则与工作内存中的事实数据进行测试比较,所有被匹配成功的规则将被实例化并添加到冲突集中。
4) 通过预先定义的冲突解决策略,解决冲突,将实例化的规则按顺序放入议程。
5) 执行进入议程的实例化的规则右部计算,执行计算可能产生新的事实断言,新的事实断言也被加入到工作内存中。
6) 一批次的事实数据处理完成后,跳到下一次循环,读取新的事实数据重复以上操作,系统反复执行以上循环直至到达预定的状态,如没有剩余的未处理事实数据、没有新的规则实例触发或达到系统预设停止条件等。
3. 规则引擎关键技术
规则引擎的关键技术主要包括规则表示技术、规则组织和存储技术、规则执行技术、接口技术等几个方面。
(1) 规则表示技术
规则是指将业务规则逻辑从程序代码中分离出来,利用计算机技术实现对业务规则的集中控制、共享和复用,并通过相应的非技术化规则语言让业务人员直接参与规则的制定,缩短业务策略和规则的生产周期,使得用户能自如地调整业务规则以应对业务需求的不断变化,实现业务敏捷。规则表示是规则引擎技术应用的基础,目前尚无统一的标准。比较流行的有两种方式,即指令编码方式和声明编码方式[9]。
(2) 规则组织和存储技术
规则的复杂性和多变性决定了规则在组织和存储上具有管理复杂性,一个好的规则库设计是规则引擎能有效发挥作用的关键。
(3) 规则执行技术
传统的规则实现方式有许多种,根据应用系统的特点可以采用硬编码、脚本、数据库交互及规则引擎方式。其中,规则引擎是目前普遍采用的规则执行技术,通过重复执行“匹配—断言—执行”的循环操作来实现规则计算[10-11]。
四、空间数据分发原型设计
规则引擎技术具有扩展性好、平台无关性等特点,被广泛应用在各领域中。通过规则引擎技术将特定行业的复杂业务逻辑从程序中分离出来,不但可实现业务规则的集中有效管理,同时可满足该领域规则随需而变的要求,具有广泛的应用前景。
1. 空间数据分发分布式规则引擎设计
空间规则引擎采用了分布式计算,对海量数据进行分段并行计算处理,将空间数据源和输出专题数据分离,建立单独的空间规则库,在计算引擎内部采用分布式计算,根据不同的数据域如DLG、DOM、DEM等按数据特征进行分布式存储,主控节点将分散后的空间数据及计算任务发布到计算处理节点,计算完成后将结果存入结果专题数据库,分布式计算架构如图2所示。
图2 分布式规则引擎计算架构
规则引擎处理过程如下:
1) 通过基础数据接口服务读取基础地理数据库中相关空间数据:对存储形式为数据库的(以Oracle为例),可通过ODBC进行数据读取,对于采用商业软件如Esri的ArcGISEngine建立的库,也可通过ArcSDE接口进行访问。接口服务同时记录空间数据的处理量,通过数据计数器进行管理。
2) 数据接口获取空间数据后,控制节点根据预定的规则,将数据分发到计算处理节点进行计算。同时控制节点负责监控各处理节点的计算情况,如计算负荷、计算进程等。
3) 计算处理节点接收到控制节点分发的计算数据和任务后,将任务排入消息队列,并从规则库中读出预定的规则及议程,将规则装入共享内存进行实例化,规则计算模块进行源数据及规则的模式匹配,根据议程进行规则计算。
4) 计算结果通过数据输出模块,通过接口提供给目标系统或直接将计算后的专题数据存入专题数据库。
5) 生成的专题数据或文件可通过服务接口向需要空间数据的行业系统提供空间数据查询、导出等服务。
2. 原型系统实现
地理信息数据服务是提升地理信息服务能力的基础,本项目研究高效、准确、快速地提供各行业所需的地理信息数据。原型系统设计主要针对目前我国地理信息基础库向特定行业提供专题空间数据时,基于规则引擎的自动化服务。系统总体架构如图3所示。
图3 基于规则引擎的空间数据分发总体架构
基于规则引擎的空间数据分发系统原型系统实现如下:
1) 根据行业应用要求,对空间数据的数据源、范围、数据内容等进行配置,生成空间数据分发规则。
2) 由规则引擎驱动预定规则计算,针对基础空间数据存储(包括数据库、文件数据等)建立连接,完成相关数据按规则抽取。
3) 根据空间数据发布规范,将抽取数据整合成目标系统需求的组织形式。
4) 通过FTP、光盘等方式将数据分发到行业应用系统。
系统运行截图如图4所示。
图4 基于规则引擎的空间数据分发系统
五、结束语
地球空间信息服务的发展主要由信息技术、空间服务需求两个方面的动力组成。本文研究了地球空间信息服务的方式,分析了空间信息服务所面临的问题;介绍了规则引擎技术,并提出了将规则引擎应用到地球空间信息服务中的方式;设计了基于分布式计算的空间规则引擎,并在面向行业应用的空间数据服务中使用该规则引擎,将特定行业的规则剥离出应用系统,通过规则引擎搭建了原型系统,该系统可为测绘领域专业人员向特定行业MIS系统提供数据服务时能准确、高效地处理基础地理信息,满足行业对空间数据的应用需求。
参考文献:
[1]龚健雅,李德仁.论地球空间信息服务技术的发展[J].测绘通报,2008(5):5-10.
[2]李琦,刘纯波,承继成,等.数字城市若干理论问题探讨[J].地理与地理信息科学, 2003,19(1):32-36.
[3]陈军,蒋捷,周旭,等.地理信息公共服务平台的总体技术设计研究[J].地理信息世界,2009,7(3):7-11,36.
[4]张雷,陈君,秦枫,等.空间数据快速分发系统及其关键技术[J].测绘技术装备,2004,6(4):10-13.
[5]常玉红.基于云平台的空间数据分发与管理系统研究[J].计算机应用与软件,2012,29(11):252-256.
[6]尤锡谨,王军.浅析城市空间数据分发[J].测绘与空间地理信息,2005,28(4):71-73.
[7]王晓光,杨丹.规则引擎在分布式环境下应用的研究[J].计算机应用研究, 2009, 26(5):1825-1827.
[8]陶晓俊,朱敏.基于规则引擎的企业服务开发模式[J].计算机技术与发展, 2008, 18(2):115-118.
[9]张渊,夏清国.基于Rete算法的JAVA规则引擎[J].科学技术与工程,2006,6(11):1548-1550.
[10]庞伟正,金瑞琪,王成武,等.一种规则引擎的实现方法[J].哈尔滨工程大学学报,2005,26(3):385-389.
[11]侯旭东.面向地理信息服务的空间规则引擎研究[D].南京:南京师范大学,2010.