曹小春 曾安 潘丹
(温州广播电视大学1,浙江 温州 325000;广东工业大学计算机学院2,广东 广州 510006;美国Batteries Plus公司3,威斯康辛州 哈特兰市 53029)
云计算环境下面向领域的数据挖掘服务平台研究
曹小春1曾安2潘丹3
(温州广播电视大学1,浙江 温州 325000;广东工业大学计算机学院2,广东 广州 510006;美国Batteries Plus公司3,威斯康辛州 哈特兰市 53029)
为促进数据挖掘开发及其商业应用,采用云计算技术、领域工程和数据挖掘等技术,结合领域驱动设计和云计算框架,提出了一种面向领域的数据挖掘云平台框架,并阐述了云计算环境下面向领域的数据挖掘服务的机理。定义了面向领域的数据挖掘云平台服务开发模式,这对面向领域的数据挖掘、云计算环境下的数据挖掘服务模式以及数据挖掘服务的开发和应用都有一定的参考价值。
云计算 领域工程 数据挖掘 面向领域 领域驱动
目前,关于云计算和大数据的研究已成为计算机科学中的研究热点之一。随着互联网和企业业务的发展,海量商业信息数据成为了企业的又一宝贵财富。当然随之而来的问题是怎样有效地从这些大数据中挖掘出具有商业价值的信息。显然,建立一个分布式的、高效的、灵活的、扩展性强的数据挖掘模式和云计算平台已然成为了当务之急。而基于云计算环境的数据挖掘通常不能很好地适应跨领域或多领域的数据挖掘任务,且难以适应多变的需求,对领域人员的知识、经验的要求较高。本文考虑基于领域构件的软件复用,将云计算、数据挖掘、领域工程相结合,提出了一种面向领域的数据挖掘云平台架构。
1.1 领域工程
在软件工程环境中,领域是指一组具有相似或相近软件需求的应用系统所覆盖的功能、问题、问题解决方案或知识区域[1]。领域工程是为一组相似或相近系统的应用工程建立基本能力和必备基础的过程,它覆盖了建立可复用的软件构件的所有活动[2]。领域工程是针对应用工程中多个系统共享的领域需求开发和组织特定领域的可复用构件的过程,具体而言是将领域知识转化成系统中共同的规约、设计和架构。通过领域工程产生的可复用构件来源于领域系统中现有的系统,体现了领域中系统的本质需求[3]。
领域工程包括以下三个主要阶段。
①领域分析:目标是获得领域分析模型。结合用户需求,通过分析、研究一组应用系统的特性,发现并描述出需求的共性和特性,从而界定领域的边界。
②领域设计:目标是获得特定领域的软件架构(domain-specific software architecture,DSSA)。领域设计是以领域分析模型为基础,获取特定领域的软件体系结构DSSA的过程(又称复用基础设施)。
③领域实现:目标是实现DSSA和构件,并依据领域分析模型和DSSA组织可复用构件库。
领域工程和应用工程是两个并行的过程,两者关系图如图1所示。在应用工程中,重用领域工程的结果,是利用在领域工程中开发的可复用资源制作具体系统的过程。领域工程的三个主要阶段是一个反复迭代、逐渐求精的过程。
图1 领域工程和应用工程关系图Fig.1 Relationship between domain engineering and application engineering
1.2 领域驱动设计和经典分层架构
2004年,Eric Evans发表领域驱动设计(domaindriven design-tackling complexity in the heart of software, Evans DDD)。领域驱动设计分为两个阶段:以一种领域专家、设计人员、开发人员都能理解的通用语言作为交流工具,进而发现领域概念并将其设计成领域模型;由领域模型驱动软件设计,用代码来实现该领域模型。
领域驱动设计的经典分层架构如图2所示。
图2 领域驱动设计的经典分层架构图Fig.2 Classical hierarchical architecture of domain driven design
各层具体说明如下。
①用户界面/展现层:负责向用户展现信息以及解释用户命令。
②应用层:定义软件要完成的任务。
③领域层:负责表达业务概念、业务状态信息以及业务规则,领域模型处于这一层,是业务软件的核心。
④基础设施层:为其他层提供通用的技术能力;提供层间的通信;为领域层实现持久化机制。
构建领域数据挖掘系统,需要不同领域专家、行业人员及开发人员相互协作完成。结合领域工程和云计算技术的数据挖掘云平台开发模式是非常关键的。
面向领域的数据挖掘云平台架构的基本要求如下。
①云资源透明:数据挖掘工作不要求使用人员深入了解云资源或云技术;数据挖掘服务必须在合适的云平台服务机器上执行。
②应用开发支持:存在云服务中的数据挖掘应用服务、技术以及相关资源能够在数据挖掘应用程序中被有效启用,且不受应用程序的干扰。
③数据挖掘和领域架构及操作:系统应该有效地依靠存在的和整合的云相关标准,采用广泛的开源和构件技术。
针对这些基本要求,结合领域设计和领域驱动设计经典分层架构,面向领域的数据挖掘云平台自然而然分解成多层次架构。在此提出一种面向领域的数据挖掘云平台框架,具体如图3所示。图3主要呈现的是积木式的框架层次以及构件和接口。从系统结构层面来看,在云平台环境有利于数据挖掘和领域知识的有机结合,且使得数据挖掘更加开源化。
在云计算环境中,根据不同的抽象层提供面向领域数据挖掘应用、特殊服务资源和平台。
从面向领域数据挖掘云平台的全面建设和有效运行的角度出发,面向领域数据挖掘云平台应用架构模型由四部分组成:物理资源、领域构件资源库和数据资源、领域数据挖掘服务平台、面向领域的数据挖掘软件服务。这些层次自下而上依次满足物理资源整合、数据和领域构件整合、数据挖掘服务整合和面向领域数据挖掘的整合需要,按照领域工程和应用工程的发展向用户提供领域数据挖掘服务。与传统的数据挖掘系统架构相比,该平台具有高可扩展性、海量数据处理能力、面向服务、硬件成本低廉等优越性。
图3 面向领域数据挖掘云平台应用架构Fig.3 Cloud platform application framework of domain oriented data mining
从面向领域数据挖掘云平台的全面建设和有效运行的角度出发,面向领域数据挖掘云平台应用架构模型主要包含如下四个部分。
2.1 面向领域的数据挖掘软件服务
面向领域的数据挖掘应用服务是一个软件即服务(software-as-a-service,SAAS)。SAAS服务平台向用户提供云服务、数据挖掘应用管理、数据挖掘云服务。此外,还针对专家的领域专家服务,结合第三方数据挖掘服务(如:Weka数据挖掘算法等)为用户提供服务。该应用服务平台主要包括以下三个方面的内容。
①面向用户的可视化应用接口,即为用户提供面向领域的数据挖掘可视化应用接口,包括数据的抽取-转换-加载(ETL)、数据挖掘模型、算法演示以及云计算平台各服务展示。
②面向领域的数据挖掘过程服务,即在该服务过程中,将领域工程和基于数据挖掘的应用工程相结合。从领域构件的有效利用角度,将面向领域的数据挖掘过程服务规划成领域知识服务、领域软件规划、领域需求分析服务和领域软件设计服务四个主要过程。
③功能服务,该服务主要从云计算平台、数据挖掘云服务以及领域构件资源的角度出发,为系统提供一系列的服务,如数据挖掘(data mining,DM)应用管理服务、云资源服务、算法服务、DM云服务、领域专家服务等。
2.2 面向领域数据挖掘服务平台
面向领域数据挖掘服务平台在云服务的基础上为用户提供数据挖掘核心服务,是平台即服务(platformas-a-service,PAAS),主要包括信息服务、服务管理、系统监控、数据挖掘服务、DM算法服务、领域服务等。在PAAS服务中,不仅实现了为用户提供领域数据挖掘相关服务、云资源管理服务、服务调度和系统监控,还为可复用领域构件资源库的开发提供了技术支撑。
①数据挖掘服务:该服务功能中包括面向领域数据挖掘的核心功能。在该服务中提供ETL引擎、算法引擎和SQL引擎以及数据管理中间件。该服务功能实现了数据挖掘中的强大的数据处理功能,它的基础性、通用性毋庸置疑。
②DM算法服务:该服务提供算法学习、算法调度、算法管理等服务功能,同时在数据层提供算法库,这样才能针对不同领域,提供适合该领域的ETL数据处理算法、数据挖掘算法等。
③领域服务:该服务功能包括对领域知识库的管理、调度以及领域构件资源库的相关操作功能。
④面向领域的数据挖掘应用支持框架:以领域模型、领域驱动设计和领域架构为依据,提供数据挖掘系统所需的基础应用开发环境,可作为数据挖掘应用系统参考原型。支持框架为领域构件组装和数据交换提供标准接口,根据用户的个性化需求,实现快速的构件开发与交付。
2.3 领域构件资源、数据资源
领域构件资源和数据资源为面向领域数据挖掘云平台不同层次上的服务和功能提供数据资源交换和共享、领域知识、算法知识、数据挖掘模型以及领域构件资源的相关整合等。该层是基础架构即服务(infrastructure-as-a-service,IAAS)。
通过虚拟化技术,把云环境下的各种分布式资源集中汇集,并封装成服务资源,为上层提供服务和应用。
①数据库:集中存放面向自适应领域的服务构件所需的领域数据信息,为面向领域数据挖掘的运行提供强大的数据支撑。
②领域构件资源库:存放各种可复用的领域构件资源。针对不同领域的数据挖掘,需要根据不同的领域规则来处理。根据领域工程和应用工程,把这些过程开发或封装成可复用的领域构件,为面向领域数据挖掘服务提供有利的支撑,增加系统的灵活性和有效性。
③领域知识库:通过领域专家并结合应用知识规定的各种针对各领域的数据标准、结构标准、信息标准等,领域知识库为领域工程和面向领域的数据挖掘相关服务提供统一的标准规范。
④算法库:存放不同领域的DM算法,为数据挖掘过程中的算法服务提供强大的算法资源。如决策树算法、关联规则算法、分类算法、聚类算法等。
2.4 物理资源
物理资源即基础设施层,为面向领域的数据挖掘云平台服务提供所需的计算存储资源。利用相应接口,把分布式的软硬件资源通过云计算和网络技术,实现资源的互联和共享,同时为虚拟化数据资源过程提供服务。
基于云计算环境下的面向领域数据挖掘应用就是利用云计算服务和可复用的领域构件为用户提供更多的数据挖掘服务。数据挖掘应用包括执行数据挖掘算法、领域构件、数据挖掘工具、领域知识库、数据仓库等。这些数据挖掘应用是云计算环境中灵活的、可扩展的以及分布式的服务资源。结合传统的数据挖掘模式和服务流程,研究了多个数据挖掘应用的设计和开发过程,提出了如图4所示的云平台开发模式。
图4所示的开发模式按领域工程的分析、设计、实现的流程逐步结合应用工程,最后与云计算技术融合构造数据挖掘应用系统。在具体的实现中,面向领域的数据挖掘云平台开发模式可以归纳为由图5所示的三个主要服务开发过程构成。
图4 面向领域的数据挖掘云平台开发模式Fig.4 Cloud platform development mode of domain oriented data mining
图5 服务开发过程Fig.5 The service development process
3.1 面向领域的数据挖掘分析与建模
领域分析在对领域中若干典型成员系统的需求进行分析的基础上,考虑预期的需求变化、技术演化、限制条件等因素,确定恰当的领域范围,识别领域的共性特征和变化特征,获取一组具有足够可复用性的领域需求,并对其抽象形成领域模型。而在面向领域的数据挖掘云平台中,首先从领域专家和领域知识库中获取相应的领域知识,对特定领域的数据挖掘进行分析,提取领域内的可复用需求,并形成领域服务规约。在分析的基础上,为面向领域的数据挖掘建立静态、动态等领域需求模型。
3.2 领域构件、服务和架构设计
根据需求模型和服务规约,在云计算环境中为面向领域的数据挖掘系统设计可复用领用构件和面向特定领域的服务,并设计出基于特定领域的数据挖掘系统架构。这些抽象的、灵活的、可复用的领域构件和服务进一步提高了开发的效率,降低了系统的复杂性,同时也增强了系统的可扩展性、可重构性和可维护性。
3.3 领域构件、服务和系统架构实现
在这个阶段,结合云计算环境特性和现有的开发技术,实现面向领域数据挖掘的可复用构件和支撑DM系统以及云计算平台服务。这些构件和服务,在领域规约和应用工程的基础上进行高内聚、低耦合的功能集成。当然在云计算中要充分考虑到并行计算、分布式调用等问题,如MapReduce并行计算编程模型,它可屏蔽分布式处理的诸多问题。
3.4 相关实现和期望
现阶段云计算平台已处在蓬勃发展期,像Google App Engine[4-5]和Amazon Elastic Compute Cloud等。在数据存储方面,Google Bigtable与Amazon Simple Storage Service等为实现海量数据的分布式存储与访问提供了支持。本文将在Google App Engine平台下结合Java编程语言,利用插件技术实现领域构件,实现基于云平台的数据挖掘系统原型。众所周知,医学和生物学是两大联系紧密的领域,生物学中的生物技术、化学以及中药等都对医学做出了重大贡献,它们之间有很多的交集。生物医学的发展关系到医疗诊断水平和人类健康的重要工程领域。随着人类基因组计划、分子生物学、DNA、蛋白质等生物数据的涌现,心电图、脑电图、核磁共振成像、临床等医学数据不断增多。为了更好地利用这些数据,帮助生物工程、临床诊断、药物临床作用的发展以及将它们有机结合起来,从面向医学和生物学数据挖掘角度出发,结合本文提出的平台框架和服务开发模式,设计相应的领域构件和数据挖掘原型系统,利用医学和生物医药学数据集,做一定的数据挖掘验证。
鉴于现有的数据挖掘服务研究和应用存在的不足,在云平台服务架构基础上,将领域工程技术、应用工程技术和数据挖掘技术结合在一起,提出了面向领域的数据挖掘云平台体系结构。同时,定义了面向领域的数据挖掘云平台应用开发模式。该模式对面向领域的数据挖掘、云计算环境下的数据挖掘服务模式以及数据挖掘服务的开发和应用都有一定的参考价值。在下一步研究中,将进一步完善系统架构,使其能服务更多的领域。同时在云计算平台下,针对特定领域,实现相关的数据挖掘服务,从而进一步验证本文提出的面向领域的数据挖掘云平台的应用价值。
[1] Tracz W.Domain specific software architecture(DSSA)frequently asked questions(FAQ)[J].Software Engineering Notes,1994,19(2):52-56.
[2] 李克勤,陈兆良,梅宏,等.领域工程概述[J].计算机科学,1999, 26(5):21-25.
[3] Prieto R.Domain analysis for reusability[J].IEEE Computer Society, 1987,23(7):23-29.
[4] Stanoevska K,Wozniak T.Cloud basics an introduction to cloud computing[J].Grid and Cloud Computing,2010(7):47-61.
[5] Chang F,Dean J,Ghemawat S,et al.A distributed storage system for structured data[C]∥Proceedings of the 7thSymposium on Operating Systems Design and Implementation(OSI'06),2006:205-218.
Research on the Domain-oriented Data Mining Service Platform under Cloud Computation Environment
To promote the development and commercial applications of data mining,by adopting technologies of cloud computation,domain engineering and data mining,and combining domain driving design and cloud computing framework,the domain-oriented architecture of data mining cloud platform is proposed and the mechanism of domain-oriented data mining service under cloud computation environment is described. The development mode of domain-oriented data mining service is defined,it possesses certain reference value for the development and application of domain-oriented data mining,data mining service mode under cloud computation environment and data mining service.
Cloud computation Domain engineering Data mining Domain-oriented Domain-driven
TP311+.5
A
国家自然科学基金资助项目(编号:61300107)。
修改稿收到日期:2014-04-10。
曹小春(1976-),男,2011年毕业于同济大学计算机科学与技术专业,获硕士学位,讲师;主要从事计算机应用、远程教育、网络与信息安全等方向的研究。