引
言
空间数据挖掘(SDM)或空间知识发现,是从大量的空间数据库中抽取隐含的知识、空间关系或非显式存储在数据库中有意义的特征或模式。此技术在理解空间数据、获取空间与非空间数据间的内在关系具有重要意义。由于近年已经和正在积累大量与空间位置相关的空间数据,因此空间数据挖掘研究已成为当前急待研究的重要课题。
对SDM、GIS、SOA等技术进行了研究,设计了一种基于SOA架构、面向Web Service的空间数据挖掘平台——SpatialMiner。SpatialMiner以Web
Service的方式为用户提供空间数据挖掘服务,从而大大降低了空间数据挖掘的使用难度,以一种耦合度极低的方式实现空间数据挖掘与第三方软件有效集成。
1 空间数据挖掘与SOA架构
1.1 空间数据挖掘
所谓空间数据挖掘(Spatial Data Mining,SDM)指的是从空间数据库中抽取隐含的知识、空间关系或非显式地存储在空间数据库中的其它模式。它可以用来理解或重组空间数据、发现空间和非空间数据间的关系、构建空间知识库、优化查询等。
1.2 SOA软件体系架构
SOA是一种面向接口的软件构架,以接口定义开始,然后构建整个应用拓扑实施为一个接口拓扑、接口实现和接口请求。SOA是服务和服务用户之间的一种联系,通过一个充分的软件模型来代替和实现一个商务功能,通过一个接口来实现软件模型就是服务。SOA也是一种设计和构建松散耦合的软件解决方案的方法,松散耦合的解决方案能够以程序化的可访问的软件服务形式公开其业务功能,并使其他应用程序可以通过已发布的和可发现的接口来使用这些服务。通过应用SOA,一个企业可以使用一组分布式服务来构成并组织应用程序,并能通过重用企业自己的资产及其伙伴的业务功能来构造新的应用程序和修改现有的应用程序。WebH艮务代表了面向服务的体系结构的一种实现,但并不能认为所有的SOA应用程序都是Web服务。
2 系统分析与设计
2.1 系统功能分析
根据上述数据挖掘一般过程的描述,我们可以得出,一个数据挖掘系统需要完成的功能主要包括:挖掘数据的抽取,挖掘数据预处理,挖掘任务的定义与执行,挖掘结果模型的表示与应用。此外,作为一个可扩展及可二次开发应用的数据挖掘平台,还必须具备系统扩展的各种接口。
2.1.1 空间数据抽取功能 主要用于完成SDM所需数据的数据提取、空间分析、空间关系提取、空间属性提取等功能,其数据源为存于GIS中的空间数据库,数据格式包括SHP、Person
Geodatabase、SDEGeodatabase、栅格图、CAD等。用户可设置过滤条件,进行记录过滤,数据抽取结果时行GIS可视化显示,并根据挖掘任务的要求进行抽取结果的存取。
2.1.2 数据预处理功能 原始空间数据中存在噪音数据或空缺值,需要对其进行一定处理,否则可能对挖掘结果产生重要负面影响,甚至可能造成算法失效。接着对数据进行离散化或抽象化处理,连续属性离散化在数据挖掘中是一个很重要的问题。
该功能主要完成数据抽取模块所得数据的预处理,包括空缺值处理、数据离散化、属性约简、数据概化。
2.1.3 挖掘任务的定义与执行 该功能为系统的核心功能,客户首先对挖掘任务进行挖掘功能、挖掘算法等设定,然后系统根据设定对预处理后的数据进行挖掘,挖掘结果进行存储并进行可视化处理。
挖掘定义设置是一组用于构造或应用数据挖掘模型的输入参数集合,在我们的平台中包括了数据设置、功能设置和算法设置三类。数据设置确定挖掘任务的输入数据源、数值数据的离散化方法、丢失值及离群数据的处理方式等。功能设置指定了挖掘任务的功能类型以及相对应的属性被挖掘算法使用的方式。挖掘功能与挖掘算法的分离使得用户在指定挖掘结果类型的时候不必关心特定的算法。
2.1.4 挖掘结果模型的表示与应用 该模块完成的功能是数据挖掘结果模型的应用查询功能。应该说,该功能是一个相对独立的功能模块。要求该模块不仅能够应用查询通过我们的挖掘系统得到的结果模型,同时也以够使用其它挖掘工具得到的结果。如上所述,PMML是目前被广泛支持的结果模型表示规范,这就要求模型应用查询功能模块能够处理PMML格式表示的模型。因此,该模块的主要功能包括PMML模型的读取、PMML模型可视化、PMML模型的应用(如分类与预测)。
2.1.5 接口功能分析 ①二次开发接口:平台的目标之一是实现数据挖掘与行业应用软件的集成,这就要求平台必须提供必要的二次开发接口。要求如下:平台无关性,对JAVA、C#、Delphi等各种开发语言全面支持;封装性,接口只提供输人与输出,处理过程进行封装;可扩展性,二次开发接口可根据需要在系统无需重新编译的情况下即可完成接口的扩充。为满足以上要求,Web
Service将是最佳选择。②功能扩展接口:作为具有较高扩展性的系统,系统必须在以下方面提供扩展性、挖掘功能、挖掘算法、挖掘模型。
2.2 系统设计
2.2.1 系统总体设计 ①系统体系结构设计:SpatialMiner总体上采用了基于Web Service的SOA架构,同时,整个系统采用N层体系结构,分为“表示层”、“业务外观层”、“逻辑层”、“数据访问层”及“数据层”。图2为平台的体系结构图。其中“业务外观层”、“逻辑层”、“数据访问层”及“数据层”构成的平台的服务器端,“表示层”为客户端,客户端通过SOAP调用服务器端功能,在平台服务器端的支撑下用户可定制客户端或将SDM集成于第三方软件中。②高层静态模型。
2.2.2 挖掘功能及挖掘算法类 ①MingFuction为所有挖掘功能的父类,它包含如下子类以实现不同的挖掘功能:AssiociationFun:空间关联规则;ClassifcationFun:空间分类;ClusteringFun:空间聚类;TrendDetectionFun:空间趋势分析。②MiningAlgorithms为所有算法的父类,包含如下算法:SpatialApriori:逐步求精的空间关联规则算法;DicisionTree:决策树算法;GDBSCAN:基于密度的空间聚类算法。③概念层次树Taxonomy类的设计。在空间关联等算法中用到了概念层次树,Taxonomy在PMML规范中有明确定义,概念层次树的存储形式采用了PMML规范的XML文件。
在SpatialMiner中通过Taxonomy类与TaxonomyObject表示概念层次树,并完成对概念层次树的读写。
2.2.3 构件设计 根据我们的设计思想,服务器端的核心对象将按照CBD设计方法进一步封装为构件(componet)。面向构件的设计要求设计构件的接口,将接口作为调用构件功能的途径,因此,在前面设计的类图基础上需进一步对公共或预暴露给客户的方法、属性进行接口抽象。
2.2.4 Web Service接口(Web Service Faqade层) 在系统设计中,究竟要将哪些方法提供给客户端调用,即系统提供哪些Web
Sefivee,是设计中的一个关键问题。在系统架构设计中我们增加了一个Web Service Facade层作为Web
Service接口,里面封装了所有的Web Service定义,并根据这些定义生成WSDL文件。
1)Web Service设计。根据前面的设计,我们为客户端提供以下的Web Service,Web
ServiceProvider是通过服务端的构件实现的,每个Service内包含了若干相关方法。①空间数据集服务:GeoDatasetSvc,主要方法有:数据抽取ExtractData,获取数据集属性数GetAtt曲utesCount,获取数据实例数GetInstancesCount,
存储数据集PersistPhisicalDataset,此服务通过PhisicalDataset类相关方法实现。②数据过滤器服务:DataFilterSvc,完成数据预处理,主要方法有:空缺值处理ReplaceMissingValuesFilter,数据离散化Discretetizefiher,属性约简AttributeFiher,数据概化DataGeneralizeFiher。③挖掘任务设定服务:DataMiningsettingSvc,主要方法有:设定挖掘功能MiningFunctionsetting,设定算法MiningAlgorthmSetting,概念层次树设定Taxonomy
Setting。④数据挖掘服务:DataMiningSvc,主要方法有:挖掘任务执行MiningTaskExcute,挖掘任务取消MiningTaskCancel(o⑤挖掘模型服务:MiningModelSvc类,主要方法有:创建指定类型的挖掘模型CreateModel(如AssociationModel等),在PMML库中增加模型InsertToPMML,从PMML库中读取模型selectFromPMML,更新PMMI。库中的大概Update
ToPMML,删除PMML库中的模型DeleteFromPMML。
2)Web Service定义。以下是.NET平台下Web Service Faqade层中的“挖掘任务设定服务”(DataMiningSettingSer、rice)定义。
3 结束语
通过对面向对象、GIS、Web Service、SDM等多种软件技术进行了深入的研究与应用,最后将多种技术融合起来设计了“基于SOA的空间数据挖掘平台”。通过以上的研究与分析,完成了平台的设计,这是一个融合了Web
Service、GIS、SMM技术的平台。文中提出并设计了一种基于SOA的SDM平台体系结构,设计了SDM的相关模块,设计了空间数据挖掘服务。
|