基于MVC架构的数据挖掘平台的设计与实现
2021-11-27
来源:独旅网
计算机工程与设计Computer Engineering and Design 2010,31(5) 1013 ・软件与算法・ 基于MVC架构的数据挖掘平台的设计与实现 叶苏南, 彭 宏, 覃姜维 (华南JE z_大学计算机科学与工程学院,广东广州510006) 摘要:为了增强数据挖掘软件各功能模块的可扩展性和复用性,分析了现有数据挖掘工具的优缺点,并综合考虑数据挖 掘过程的实际特点,提出了一个基于MVC架构的数据挖掘平台设计方案。在此基础上,利用Eclipse plug—in,RCP,GEF等技 术,实现了一个数据挖掘平台原型系统。该平台遵循CRISP.DM过程标准,在软件架构上实现了低耦合、高复用,为用户提供 了一个友好、灵活、易重用、可扩展的数据挖掘应用环境。 关键词:数据挖掘;软件复用;软件构件;Eclipse插件;富客户端平台;图形编辑框架;模型一视图一控制器 中图法分类号:TP3l1;TP391 文献标识码:A 文章编号:1000.7024(2010)05.1013.04 Design and implementation of data mining platform based on MVC structure YE Su—nan,PENG Hong, QIN Jiang—wei (School of Computer Science and Engineering,South China University of Technology,Guangzhou 5 1 0006,China) Abstract:To increase expansibility and reuse of functional modules of data mining software,the advantages and disadvantages of existing data mining tools are analyzed,and characters ofdata mining process are also taken into consideration,a design scheme ofdata mining platform based on MVC architecture is presented.Based on these,a data mining platform ofprototype system is implemented by Eclipse plug-in,RCP nad GEF technologies.The platform according to CRISP—DM implements loosely—coupled and reusable software rachitecture and provides a friendly,flexible,easy reuse and extensible environment of data mining application. Key words:data mining;software reuse;software component;Eclipse plug—in;RCP;GEF;MVC 0引 言 用户无法根据自己的需要添加新的算法,只能使用软件提供 的算法;而一些开源数据挖掘软件,例如Weka虽然提供算法 由于各行各业均积累了海量的数据,这些数据中通常都 接口,支持用户自己添加新算法,但却不能够对结果可视化进 蕴涵着丰富的有价值的知识,借助数据挖掘技术可以充分发 行扩展,并且在界面友好程度,易用性方面都有所欠缺。鉴于 掘出这些知识,为企业的分析决策者起到很好的辅助支持作 这些问题,如何设计一个低耦合、高复用、扩展性强且方便使 用。因此,数据挖掘一直是众多学者的研究热点。在国外,数 用的数据挖掘平台是非常具有现实意义的,本文介绍了我们 据挖掘在金融业、保险业、零售业、生物医学等领域已经有了 设计并实现的一个数据挖掘平台,该平台具有友好的用户界 广泛的应用。在国内,在数据挖掘技术的理论研究上已经取 面,其各功能模块之间实现松散耦合,便于用户进行功能的扩 得了很多成果,但在数据挖掘软件方面的研究则刚刚起步。 展和模块的重用,方便二次开发。 数据挖掘就是从大量的、不完全的、有噪声的、模糊的、随 机的数据中,提取隐含在其中的、人们事先不知道的、但又是 1基本概念 潜在有用的信息和知识的过程Ⅲ,数据挖掘是知识发现过程的 1.1数据挖掘系统的结构 一个关键步骤。知识发现过程是一个高级的,复杂的处理过 数据挖掘系统按照其应用的不同可分为通用型数据挖掘 程,通常需要借助数据挖掘软件去完成各种任务。目前已经 系统和面向特定领域数据挖掘系统两类 。数据挖掘是从存 有不少的数据挖掘软件被开发出来,例如IBM Intelligent 放在数据库、数据仓库或其它信息库中的大量数据中发现有 Miner、SAS EnterpriseMiner、SPSS Clmentine、Weka等。这些软 趣知识的过程,基于这种观点,一个典型的数据挖掘系统如图 件基本都实现了多种经典的数据挖掘算法,但在扩展性和易 1所示 。 用性方面都存在着一些问题,例如商业数据挖掘软件,出于竞 1.2数据挖掘过程模型 争等各方面因素,通常难以对其进行功能扩展和模块的重用, 不同的研究机构和组织,对数据挖掘过程的划分是略有 收稿日期:2009—05.15;修订日期:2009—07—23。 基金项目:广东省自然科学基金项目(07006474);广州市科技攻关基金项目(2007B0102o0044)。 作者简介:叶苏南(1984--),男,福建周宁人,硕士研究生,研究方向为数据挖掘、机器学习; 彭宏(1956--),男,重庆人,博士后,教授, 研究方向为人工智能应用技术、智能商务与数据挖掘、智能网络技术等; 覃姜维(1984一),广西河池人,博士研究生,研究方向为可视化数据 挖掘、机器学习。E—mail:zhazha1984@gmail.corn 1014 2010,31(5) 计算机工程与设计Computer Engineering and Design 面、数据挖掘构件库、构件管理模块4个功能模块组成。下面 分别对系统的各个功能模块的设计及实现展开说明,整个系 数 据 清 理 、 统结构如图4所示。 集 成 和 选 择 图1典型的数据挖掘系统结构 不同的。目前公认的,较有影响力的数据挖掘过程模型是CRI— SP.DM(cross—industry standard process for data mining),即为“跨 行业数据挖掘过程标准” 。此KDD(knowledge discovery in data—bases)过程模型于1999年欧盟机构联合起草,通过近几年 的发展,在各种KDD过程模型中占据领先位置,采用量达到 近60% 。CRISP—DM将数据挖掘过程划分为6个步骤,即商 业理解、数据理解、数据准备、建模、评估、部署。CRISP—DM模 型如图2所示。 图4数据挖掘平台系统结构 圄圄 2.1 MVC模块 MVC模块是数据挖掘平台的核心,主要利用GEF(gra— phical editorframework)图形编辑框架来实现,GEF提供了标准 的MVC结构,它允许开发人员以图形化的方式展示和编辑模 型,从而提升用户体验。下面就MVC结构在数据挖掘平台中 的应用展开说明。 (1)模型:模型用于封装与数据挖掘业务相关的数据及其 操作,系统以构件的形式来管理这些各不相同的业务数据及 其操作方法。模型不依赖视图和控制器,它业务处理流程相 对于其它层来说是黑箱操作,用户在视图上的各种操作请求 会被发送给控制器,由控制器根据请求类型通知模型调用相 图2 CRISP.DM过程模型 1.3 MVC架构 应的操作方法,并根据最终的处理结果刷新视图。 (2)视图:视图是以可视化的形式将模型的信息展现出来。 数据挖掘平台包含了挖掘流程设计器、大纲视图和属性视图。 挖掘流程设计器提供了一个编辑区域,在该区域内,用户可以 根据业务需要对构件拖拽连接快速地建立起一个数据挖掘流 MVC(mode1.view—controller,模型一视图一控制器)用于表 示一种软件架构的设计模式。MVC模式起源于Smallaltk,它 把软件系统分为3个基本部分:模型,视图和控制器 。MVC 作为一种模块化设计思想,可以降低软件系统各个模块间的 耦合性,提高程序代码的可重用性,并且便于软件系统的后期 维护以及功能扩展。MVC的架构如图3所示。 程,并且可以对每个构件进行管理,例如参数设置、运行构件、 结果查看等操作。大纲视图和属性视图则是对挖掘流程设计 视图中的内容进行辅助显示。大纲视图以列表和缩略图的形 式对当前流程设计视图中的所有构件进行快速预览和定位, 而属性视图负责显示各个构件的一些信息。 (3)控制器:在MVC模块中,控制器是模型和视图之间的 惟一桥梁。控制器相当于一个分发器,它从视图处接收用户 的操作请求,然后将这些操作请求发送到对应的模型,执行相 应的操作,最后将结果反馈到视图上。控制器并不做任何的 数据处理,它只是通知模型,真正的数据处理则是在模型中完 图3 MVC架构 成的。模型、视图与控制器的分离,使得一个模型可以具有多 个显示视图。如果用户通过某个视图的控制器改变了模型的 数据,所有其它依赖于这些数据的视图都应反映到这些变化。 因此,无论何时发生了何种数据的变化,控制器都会将变化通 知到所有相关的视图,导致其刷新。 2数据挖掘平台的设计与实现 本文设计的数据挖掘平台主要由MVC模块、图形用户界 叶苏南,彭宏,覃姜维:基于MVC架构的数据挖掘平台的设计与实现 2.2图形用户界面 图形用户界面采用EclipseRCP(eclipse rich clientplatform) 富客户端平台开发,因此可以直接继承Eclipse的风格与功能, 极大地加快了开发速度和避免重复性工作。图形用户界面主 2010,31(5) 1015 开发数据挖掘软件过程中的重复工作,提高数据挖掘软件开 发的效率和质量,还可以在一定程度上提高数据挖掘的质量。 数据挖掘构件库的层次结构如图6所示。 要是提供数据挖掘流程的设计及其相关的管理操作功能,如 图5所示。 图5数据挖掘平台原型系统 扩展点(extension point)是Eclipse plug—in和RCP开发中的 一个重要机制,通过扩展点可以向数据挖掘平台添加新的功 能,例如在MVC模块中介绍的挖掘流程设计器、大纲视图、属 性视图都是利用扩展机制添加到数据挖掘平台中的。以工程 管理功能为例,扩展点的配置信息如下: <extension point=”org.eclipse.ui.views”> <view id--”cn.edu.scut.mfdm.ui.CaseNavigator” name=”Project Navigator” category=”cn.edu.scut.mfdm.navigatorcategory” class=”org.eclipse.ui.navigator.CommonNavigator” allowMultiple=”false”> </view> /<extension> 例子中的扩展点是直接使用Eclipse的工程管理功能,扩 展点也可以对Eclipse功能进行扩充,例如数据挖掘平台中的 大纲视图和属性视图,甚至可以根据需要定义新的功能。扩 展点是相对独立的,添加或删除某个扩展点并不会影响到其 它的扩展点,因此,扩展点的工作机制非常方便用户在图形界 面上进行二次开发。 2.3数据挖掘构件库 软件复用是在软件开发中避免重复劳动的解决方案。通 过软件复用,可以提高软件开发的效率和质量软件复用被视 为解决软件危机、提高软件生产效率和质量的现实可行的途 径 。软件复用从最初的子系统调用开始,经历了结构化方法 和面向对象方法等几次重大的发展,逐步形成了通过建立类 库、构件库、框架库和模式库等多种方法 。其中,构件库是实 现软件复用的重要依托,软件复用的成功与否在很大程度上 取决于构件库的结构、成分、管理方式等。结合CRISP.DM过 程模型,通过对数据挖掘流程的各阶段操作进行构件化,避免 图6数据挖掘构件库层次结构 数据挖掘平台将整个业务划分为数据理解、预处理、挖掘 建模、评估部署、可视化5个大构件,这些大构件又进一步细 分为若干个小的业务构件。各业务构件之间是相互独立的, 是在数据、操作上相对封闭的一个完整子集。各业务构件对 外提供统一的访问接口,在设计上做到相互之间的无关性,在 添加更改业务构件时,原有业务构件系统不会受到任何影响。 通过这种分层式的划分,使整个构件库具有良好的灵活性、扩 展性、可维护性和开放性。 2.4构件管理模块 构件库管理模块对构件库进行统一的管理和控制。利用 Eclipse plug—in的插件更新机制,构件管理模块还支持在线更 新现有构件或者添加新构件。此外,构件库管理系统还承担 着构件库的维护工作,保证构件库的安全性和完整性。构件 管理模块通过构件库配置文件实现对数据挖掘构件库的管 理,数据挖掘平台在启动时根据配置文件的内容将构件加载 到挖掘流程设计器左侧的构件工具箱中。构件库配置文件的 内容如下: <Component> <Name value=”文件数据”/> <Description value=”从文件中输入数据”/> <Icon value:”icons/nodes/InputDataFile.png” <OperatorClass value=”scut.mfdm.node.operator.Input- DataFileOperator” <SettingsClass value=”scut.mfdm.node.settings.InputFile- DataSettings”/> <ResultClass value ”scut.mfdm.node.result.DataOpera— torResult”/> </Component> 构件库配置文件中记录了构件的名称,描述和显示信息, 以及构件的操作、参数设置和结果展示3个Java类,每个构件 都是通过这3个类描述自己的业务数据和操作方法。由于构 件库管理模块是利用Java的类反射机制来动态创建3个Java 类的具体对象,因此在二次开发添加新构件时,只需根据业务 需要实现这3个类或利用挖掘平台中现有的类,然后修改构 1016 2010,31(5) 计算机工程与设计Computer Engineering and Design 则”。因此,无论是算法研究和开发人员,或是数据决策分析 人员,又或是二次开发应用人员都可以通过该数据挖掘平台 的得到一个灵活、一体化的解决方案。 件库配置文件,至于数据挖掘平台是如何调用这些对象则无 需考虑,因此,极大地提高了软件的可扩展性和灵活性。 3数据挖掘平台的应用 本数据挖掘平台采用开发式架构,为算法应用提供了一 个良好的环境。该平台为数据源,算法,可视化等各类构件的 编写订立了良好的规范,只要符合此规范,即可以加入到平台 中来,与其它组件相互作用 并且,还着重考虑如何让用户使 用更方便更容易,利用了RCP和GEF技术,极大地提高了用 参考文献: [1】 邵峰品,于忠清.数据挖掘原理与算法[M】.北京:中国水利水电 出版社,2003. [2】 陆晶,赛英.基于C/S体系结构的数据挖掘平台的设计【J].计算 机工程与设计,2005,26(3):598—600. .[3】 Jiawei Han,Micheline Kamben数据挖掘概念与技术[M】.jE京: 机械工业出版社,2006. [4】Lukasz A Kurgan,Petr Musilek.A survey of knowledge dis— cover3,and data mining process models[J].Knowledge Enginee— ring Review,2006。21(1):1-24. 户的体验。目前,该平台已经支持多种数据源,实现了多种数 据预处理算法和经典的数据挖掘算法,并且在数据挖掘可视 化方面也做了一定的工作,可以用于金融业、保险业、零售业、 科学研究、工业部门、司法部门、生物医学、网上电子商务的商 品信息等领域的搜索、分析和决策,为各级经营决策者提供有 效的决策支持和信息服务,有着广阔的应用前景。 【5] Cios Kurgan L.Trends in data mining and knowledge dis— coveN[M].London:Springer,2005. [6] Brown D,Davis CM,Stanlick s.Struts2 in action[M].Greenwich, CT:Manning Publications Co,2008. 4结束语 论文针对当前数据挖掘软件结构上存在的难以重用,扩 展的问题,提出了一种基于MVC架构的开放式数据挖掘平 台,详细介绍了其系统架构的设计以及各部分的功能。该平 台的各功能模块在结构上通过松散耦合相互关联,而图形用 [7] 张翔,周明全,耿国华.软件复用与基于Java的COM组件实现 [J].计算机应用与软件,2003,20(7):80—82. 【8] 唐勇敏.以构件为核心的软件工业化的生产方式[J].计算机应 用,2006,26(12):225—227. 户界面和数据挖掘构件库也都满足了软件开发的“开闭原 (上接第978页) exec sp executesql 并给出了相应代码。本文对于越来越多的Web动态应用程序 提供了较好的防范SQL注入式攻击的解决方案,具有一定的 现实意义。 N’select EmployeelD from Employees where FirstName=@ FirstName and LastName=@LastName’,N'@FirstName nvarchar (4ooo),@LastName nvarchar(4ooo) ,@FirstName=N”’or 1=1_-J,@ LastName=N’’ 参考文献: [1] 赛门铁克第2期.Symantec资讯[EB/OL].http://www.cww.net. cn/zhuanti/html/2009/2/10/200921095084992.htm. 从以上代码可以看出,参数化查询与调用一个存储过程 是非常相似的,因为它处理的输入是作为参数在使用,而不是 字符串。 通过优化与整合代码,建立一个具有很多where条件的 存储过程,可以有效地防范在一个参数化查询时的SQL注 入。因为参数化查询要求用户带权限才可以访问特定的系 统表和视图,这种方法在安全数据查询时并不被推荐,而存 储过程在被执行时,因为其不需要具有访问任何表或者视图 的权限,所以存储过程在防范一个参数化查询的SQL注入是 非常实用的。 【2] Anley C.Advanced SQL injection in SQL server Applications [EB/OL].http://www.creange1.corn/papers/advanced sql injec— tion.pdf,An NGSSoffware Insight Security Research(NISl Publication,2002. 【3] 陈小兵,张汉煜,骆力明,等.SQL注入攻击及其防范检测技术 研究【J].计算机工程与应用,2007,43(11):150—152. 【4] Cerrudo C.Manipulating Microsoft SQL severr using SQL injec— tion【EB/OL].http://injection.rulezz.ru/Manipul ̄ingSQLSer—4结束语 本文对SQL注入攻击的方法、原理以及常用注入途径进 行了描述和总结,并着重阐述了使用输入验证、SQL Server防 御和使用存储过程替代参数化查询相结合的方法来构建防范 SQL注入执行模块的思路和方法。对于普通用户误操作和低 等级恶意攻击,客户端检测能够自动将其屏蔽;考虑到客户端 检测有可能被有经验的攻击者绕开,特在服务器端设定二级 检测。在文中还提出了对高等级恶意攻击的自动备案技术, ver_UsingSQL 1 ̄ecifon.pdf. [5】 赖滇,黄宇.一种缓冲区溢出漏洞分析与探测算法BOVADA[J]. 计算机工程,2006,27(18):52—53. [6] 谷震离,杜根远.SQLServer数据库应用程序中数据库安全性 研究【J].计算机工程与设计,2007,28(15):3717.3719. [7] 池瑞楠.Windows缓冲区溢出攻击的实例研究[JJ.微计算机信 息,2007(3):39—40. [8】 黄景文.SQL注入攻击的一个新的防范策略[J].微计算机信息, 2008f6):3 1-32.