曹小春 曾安 潘丹
(溫州廣播電視大學1,浙江 溫州 325000;廣東工業(yè)大學計算機學院2,廣東 廣州 510006;美國Batteries Plus公司3,威斯康辛州 哈特蘭市 53029)
云計算環(huán)境下面向領域的數(shù)據(jù)挖掘服務平臺研究
曹小春1曾安2潘丹3
(溫州廣播電視大學1,浙江 溫州 325000;廣東工業(yè)大學計算機學院2,廣東 廣州 510006;美國Batteries Plus公司3,威斯康辛州 哈特蘭市 53029)
為促進數(shù)據(jù)挖掘開發(fā)及其商業(yè)應用,采用云計算技術、領域工程和數(shù)據(jù)挖掘等技術,結合領域驅動設計和云計算框架,提出了一種面向領域的數(shù)據(jù)挖掘云平臺框架,并闡述了云計算環(huán)境下面向領域的數(shù)據(jù)挖掘服務的機理。定義了面向領域的數(shù)據(jù)挖掘云平臺服務開發(fā)模式,這對面向領域的數(shù)據(jù)挖掘、云計算環(huán)境下的數(shù)據(jù)挖掘服務模式以及數(shù)據(jù)挖掘服務的開發(fā)和應用都有一定的參考價值。
云計算 領域工程 數(shù)據(jù)挖掘 面向領域 領域驅動
目前,關于云計算和大數(shù)據(jù)的研究已成為計算機科學中的研究熱點之一。隨著互聯(lián)網(wǎng)和企業(yè)業(yè)務的發(fā)展,海量商業(yè)信息數(shù)據(jù)成為了企業(yè)的又一寶貴財富。當然隨之而來的問題是怎樣有效地從這些大數(shù)據(jù)中挖掘出具有商業(yè)價值的信息。顯然,建立一個分布式的、高效的、靈活的、擴展性強的數(shù)據(jù)挖掘模式和云計算平臺已然成為了當務之急。而基于云計算環(huán)境的數(shù)據(jù)挖掘通常不能很好地適應跨領域或多領域的數(shù)據(jù)挖掘任務,且難以適應多變的需求,對領域人員的知識、經(jīng)驗的要求較高。本文考慮基于領域構件的軟件復用,將云計算、數(shù)據(jù)挖掘、領域工程相結合,提出了一種面向領域的數(shù)據(jù)挖掘云平臺架構。
1.1 領域工程
在軟件工程環(huán)境中,領域是指一組具有相似或相近軟件需求的應用系統(tǒng)所覆蓋的功能、問題、問題解決方案或知識區(qū)域[1]。領域工程是為一組相似或相近系統(tǒng)的應用工程建立基本能力和必備基礎的過程,它覆蓋了建立可復用的軟件構件的所有活動[2]。領域工程是針對應用工程中多個系統(tǒng)共享的領域需求開發(fā)和組織特定領域的可復用構件的過程,具體而言是將領域知識轉化成系統(tǒng)中共同的規(guī)約、設計和架構。通過領域工程產(chǎn)生的可復用構件來源于領域系統(tǒng)中現(xiàn)有的系統(tǒng),體現(xiàn)了領域中系統(tǒng)的本質需求[3]。
領域工程包括以下三個主要階段。
①領域分析:目標是獲得領域分析模型。結合用戶需求,通過分析、研究一組應用系統(tǒng)的特性,發(fā)現(xiàn)并描述出需求的共性和特性,從而界定領域的邊界。
②領域設計:目標是獲得特定領域的軟件架構(domain-specific software architecture,DSSA)。領域設計是以領域分析模型為基礎,獲取特定領域的軟件體系結構DSSA的過程(又稱復用基礎設施)。
③領域實現(xiàn):目標是實現(xiàn)DSSA和構件,并依據(jù)領域分析模型和DSSA組織可復用構件庫。
領域工程和應用工程是兩個并行的過程,兩者關系圖如圖1所示。在應用工程中,重用領域工程的結果,是利用在領域工程中開發(fā)的可復用資源制作具體系統(tǒng)的過程。領域工程的三個主要階段是一個反復迭代、逐漸求精的過程。
圖1 領域工程和應用工程關系圖Fig.1 Relationship between domain engineering and application engineering
1.2 領域驅動設計和經(jīng)典分層架構
2004年,Eric Evans發(fā)表領域驅動設計(domaindriven design-tackling complexity in the heart of software, Evans DDD)。領域驅動設計分為兩個階段:以一種領域專家、設計人員、開發(fā)人員都能理解的通用語言作為交流工具,進而發(fā)現(xiàn)領域概念并將其設計成領域模型;由領域模型驅動軟件設計,用代碼來實現(xiàn)該領域模型。
領域驅動設計的經(jīng)典分層架構如圖2所示。
圖2 領域驅動設計的經(jīng)典分層架構圖Fig.2 Classical hierarchical architecture of domain driven design
各層具體說明如下。
①用戶界面/展現(xiàn)層:負責向用戶展現(xiàn)信息以及解釋用戶命令。
②應用層:定義軟件要完成的任務。
③領域層:負責表達業(yè)務概念、業(yè)務狀態(tài)信息以及業(yè)務規(guī)則,領域模型處于這一層,是業(yè)務軟件的核心。
④基礎設施層:為其他層提供通用的技術能力;提供層間的通信;為領域層實現(xiàn)持久化機制。
構建領域數(shù)據(jù)挖掘系統(tǒng),需要不同領域專家、行業(yè)人員及開發(fā)人員相互協(xié)作完成。結合領域工程和云計算技術的數(shù)據(jù)挖掘云平臺開發(fā)模式是非常關鍵的。
面向領域的數(shù)據(jù)挖掘云平臺架構的基本要求如下。
①云資源透明:數(shù)據(jù)挖掘工作不要求使用人員深入了解云資源或云技術;數(shù)據(jù)挖掘服務必須在合適的云平臺服務機器上執(zhí)行。
②應用開發(fā)支持:存在云服務中的數(shù)據(jù)挖掘應用服務、技術以及相關資源能夠在數(shù)據(jù)挖掘應用程序中被有效啟用,且不受應用程序的干擾。
③數(shù)據(jù)挖掘和領域架構及操作:系統(tǒng)應該有效地依靠存在的和整合的云相關標準,采用廣泛的開源和構件技術。
針對這些基本要求,結合領域設計和領域驅動設計經(jīng)典分層架構,面向領域的數(shù)據(jù)挖掘云平臺自然而然分解成多層次架構。在此提出一種面向領域的數(shù)據(jù)挖掘云平臺框架,具體如圖3所示。圖3主要呈現(xiàn)的是積木式的框架層次以及構件和接口。從系統(tǒng)結構層面來看,在云平臺環(huán)境有利于數(shù)據(jù)挖掘和領域知識的有機結合,且使得數(shù)據(jù)挖掘更加開源化。
在云計算環(huán)境中,根據(jù)不同的抽象層提供面向領域數(shù)據(jù)挖掘應用、特殊服務資源和平臺。
從面向領域數(shù)據(jù)挖掘云平臺的全面建設和有效運行的角度出發(fā),面向領域數(shù)據(jù)挖掘云平臺應用架構模型由四部分組成:物理資源、領域構件資源庫和數(shù)據(jù)資源、領域數(shù)據(jù)挖掘服務平臺、面向領域的數(shù)據(jù)挖掘軟件服務。這些層次自下而上依次滿足物理資源整合、數(shù)據(jù)和領域構件整合、數(shù)據(jù)挖掘服務整合和面向領域數(shù)據(jù)挖掘的整合需要,按照領域工程和應用工程的發(fā)展向用戶提供領域數(shù)據(jù)挖掘服務。與傳統(tǒng)的數(shù)據(jù)挖掘系統(tǒng)架構相比,該平臺具有高可擴展性、海量數(shù)據(jù)處理能力、面向服務、硬件成本低廉等優(yōu)越性。
圖3 面向領域數(shù)據(jù)挖掘云平臺應用架構Fig.3 Cloud platform application framework of domain oriented data mining
從面向領域數(shù)據(jù)挖掘云平臺的全面建設和有效運行的角度出發(fā),面向領域數(shù)據(jù)挖掘云平臺應用架構模型主要包含如下四個部分。
2.1 面向領域的數(shù)據(jù)挖掘軟件服務
面向領域的數(shù)據(jù)挖掘應用服務是一個軟件即服務(software-as-a-service,SAAS)。SAAS服務平臺向用戶提供云服務、數(shù)據(jù)挖掘應用管理、數(shù)據(jù)挖掘云服務。此外,還針對專家的領域專家服務,結合第三方數(shù)據(jù)挖掘服務(如:Weka數(shù)據(jù)挖掘算法等)為用戶提供服務。該應用服務平臺主要包括以下三個方面的內(nèi)容。
①面向用戶的可視化應用接口,即為用戶提供面向領域的數(shù)據(jù)挖掘可視化應用接口,包括數(shù)據(jù)的抽取-轉換-加載(ETL)、數(shù)據(jù)挖掘模型、算法演示以及云計算平臺各服務展示。
②面向領域的數(shù)據(jù)挖掘過程服務,即在該服務過程中,將領域工程和基于數(shù)據(jù)挖掘的應用工程相結合。從領域構件的有效利用角度,將面向領域的數(shù)據(jù)挖掘過程服務規(guī)劃成領域知識服務、領域軟件規(guī)劃、領域需求分析服務和領域軟件設計服務四個主要過程。
③功能服務,該服務主要從云計算平臺、數(shù)據(jù)挖掘云服務以及領域構件資源的角度出發(fā),為系統(tǒng)提供一系列的服務,如數(shù)據(jù)挖掘(data mining,DM)應用管理服務、云資源服務、算法服務、DM云服務、領域專家服務等。
2.2 面向領域數(shù)據(jù)挖掘服務平臺
面向領域數(shù)據(jù)挖掘服務平臺在云服務的基礎上為用戶提供數(shù)據(jù)挖掘核心服務,是平臺即服務(platformas-a-service,PAAS),主要包括信息服務、服務管理、系統(tǒng)監(jiān)控、數(shù)據(jù)挖掘服務、DM算法服務、領域服務等。在PAAS服務中,不僅實現(xiàn)了為用戶提供領域數(shù)據(jù)挖掘相關服務、云資源管理服務、服務調度和系統(tǒng)監(jiān)控,還為可復用領域構件資源庫的開發(fā)提供了技術支撐。
①數(shù)據(jù)挖掘服務:該服務功能中包括面向領域數(shù)據(jù)挖掘的核心功能。在該服務中提供ETL引擎、算法引擎和SQL引擎以及數(shù)據(jù)管理中間件。該服務功能實現(xiàn)了數(shù)據(jù)挖掘中的強大的數(shù)據(jù)處理功能,它的基礎性、通用性毋庸置疑。
②DM算法服務:該服務提供算法學習、算法調度、算法管理等服務功能,同時在數(shù)據(jù)層提供算法庫,這樣才能針對不同領域,提供適合該領域的ETL數(shù)據(jù)處理算法、數(shù)據(jù)挖掘算法等。
③領域服務:該服務功能包括對領域知識庫的管理、調度以及領域構件資源庫的相關操作功能。
④面向領域的數(shù)據(jù)挖掘應用支持框架:以領域模型、領域驅動設計和領域架構為依據(jù),提供數(shù)據(jù)挖掘系統(tǒng)所需的基礎應用開發(fā)環(huán)境,可作為數(shù)據(jù)挖掘應用系統(tǒng)參考原型。支持框架為領域構件組裝和數(shù)據(jù)交換提供標準接口,根據(jù)用戶的個性化需求,實現(xiàn)快速的構件開發(fā)與交付。
2.3 領域構件資源、數(shù)據(jù)資源
領域構件資源和數(shù)據(jù)資源為面向領域數(shù)據(jù)挖掘云平臺不同層次上的服務和功能提供數(shù)據(jù)資源交換和共享、領域知識、算法知識、數(shù)據(jù)挖掘模型以及領域構件資源的相關整合等。該層是基礎架構即服務(infrastructure-as-a-service,IAAS)。
通過虛擬化技術,把云環(huán)境下的各種分布式資源集中匯集,并封裝成服務資源,為上層提供服務和應用。
①數(shù)據(jù)庫:集中存放面向自適應領域的服務構件所需的領域數(shù)據(jù)信息,為面向領域數(shù)據(jù)挖掘的運行提供強大的數(shù)據(jù)支撐。
②領域構件資源庫:存放各種可復用的領域構件資源。針對不同領域的數(shù)據(jù)挖掘,需要根據(jù)不同的領域規(guī)則來處理。根據(jù)領域工程和應用工程,把這些過程開發(fā)或封裝成可復用的領域構件,為面向領域數(shù)據(jù)挖掘服務提供有利的支撐,增加系統(tǒng)的靈活性和有效性。
③領域知識庫:通過領域專家并結合應用知識規(guī)定的各種針對各領域的數(shù)據(jù)標準、結構標準、信息標準等,領域知識庫為領域工程和面向領域的數(shù)據(jù)挖掘相關服務提供統(tǒng)一的標準規(guī)范。
④算法庫:存放不同領域的DM算法,為數(shù)據(jù)挖掘過程中的算法服務提供強大的算法資源。如決策樹算法、關聯(lián)規(guī)則算法、分類算法、聚類算法等。
2.4 物理資源
物理資源即基礎設施層,為面向領域的數(shù)據(jù)挖掘云平臺服務提供所需的計算存儲資源。利用相應接口,把分布式的軟硬件資源通過云計算和網(wǎng)絡技術,實現(xiàn)資源的互聯(lián)和共享,同時為虛擬化數(shù)據(jù)資源過程提供服務。
基于云計算環(huán)境下的面向領域數(shù)據(jù)挖掘應用就是利用云計算服務和可復用的領域構件為用戶提供更多的數(shù)據(jù)挖掘服務。數(shù)據(jù)挖掘應用包括執(zhí)行數(shù)據(jù)挖掘算法、領域構件、數(shù)據(jù)挖掘工具、領域知識庫、數(shù)據(jù)倉庫等。這些數(shù)據(jù)挖掘應用是云計算環(huán)境中靈活的、可擴展的以及分布式的服務資源。結合傳統(tǒng)的數(shù)據(jù)挖掘模式和服務流程,研究了多個數(shù)據(jù)挖掘應用的設計和開發(fā)過程,提出了如圖4所示的云平臺開發(fā)模式。
圖4所示的開發(fā)模式按領域工程的分析、設計、實現(xiàn)的流程逐步結合應用工程,最后與云計算技術融合構造數(shù)據(jù)挖掘應用系統(tǒng)。在具體的實現(xiàn)中,面向領域的數(shù)據(jù)挖掘云平臺開發(fā)模式可以歸納為由圖5所示的三個主要服務開發(fā)過程構成。
圖4 面向領域的數(shù)據(jù)挖掘云平臺開發(fā)模式Fig.4 Cloud platform development mode of domain oriented data mining
圖5 服務開發(fā)過程Fig.5 The service development process
3.1 面向領域的數(shù)據(jù)挖掘分析與建模
領域分析在對領域中若干典型成員系統(tǒng)的需求進行分析的基礎上,考慮預期的需求變化、技術演化、限制條件等因素,確定恰當?shù)念I域范圍,識別領域的共性特征和變化特征,獲取一組具有足夠可復用性的領域需求,并對其抽象形成領域模型。而在面向領域的數(shù)據(jù)挖掘云平臺中,首先從領域專家和領域知識庫中獲取相應的領域知識,對特定領域的數(shù)據(jù)挖掘進行分析,提取領域內(nèi)的可復用需求,并形成領域服務規(guī)約。在分析的基礎上,為面向領域的數(shù)據(jù)挖掘建立靜態(tài)、動態(tài)等領域需求模型。
3.2 領域構件、服務和架構設計
根據(jù)需求模型和服務規(guī)約,在云計算環(huán)境中為面向領域的數(shù)據(jù)挖掘系統(tǒng)設計可復用領用構件和面向特定領域的服務,并設計出基于特定領域的數(shù)據(jù)挖掘系統(tǒng)架構。這些抽象的、靈活的、可復用的領域構件和服務進一步提高了開發(fā)的效率,降低了系統(tǒng)的復雜性,同時也增強了系統(tǒng)的可擴展性、可重構性和可維護性。
3.3 領域構件、服務和系統(tǒng)架構實現(xiàn)
在這個階段,結合云計算環(huán)境特性和現(xiàn)有的開發(fā)技術,實現(xiàn)面向領域數(shù)據(jù)挖掘的可復用構件和支撐DM系統(tǒng)以及云計算平臺服務。這些構件和服務,在領域規(guī)約和應用工程的基礎上進行高內(nèi)聚、低耦合的功能集成。當然在云計算中要充分考慮到并行計算、分布式調用等問題,如MapReduce并行計算編程模型,它可屏蔽分布式處理的諸多問題。
3.4 相關實現(xiàn)和期望
現(xiàn)階段云計算平臺已處在蓬勃發(fā)展期,像Google App Engine[4-5]和Amazon Elastic Compute Cloud等。在數(shù)據(jù)存儲方面,Google Bigtable與Amazon Simple Storage Service等為實現(xiàn)海量數(shù)據(jù)的分布式存儲與訪問提供了支持。本文將在Google App Engine平臺下結合Java編程語言,利用插件技術實現(xiàn)領域構件,實現(xiàn)基于云平臺的數(shù)據(jù)挖掘系統(tǒng)原型。眾所周知,醫(yī)學和生物學是兩大聯(lián)系緊密的領域,生物學中的生物技術、化學以及中藥等都對醫(yī)學做出了重大貢獻,它們之間有很多的交集。生物醫(yī)學的發(fā)展關系到醫(yī)療診斷水平和人類健康的重要工程領域。隨著人類基因組計劃、分子生物學、DNA、蛋白質等生物數(shù)據(jù)的涌現(xiàn),心電圖、腦電圖、核磁共振成像、臨床等醫(yī)學數(shù)據(jù)不斷增多。為了更好地利用這些數(shù)據(jù),幫助生物工程、臨床診斷、藥物臨床作用的發(fā)展以及將它們有機結合起來,從面向醫(yī)學和生物學數(shù)據(jù)挖掘角度出發(fā),結合本文提出的平臺框架和服務開發(fā)模式,設計相應的領域構件和數(shù)據(jù)挖掘原型系統(tǒng),利用醫(yī)學和生物醫(yī)藥學數(shù)據(jù)集,做一定的數(shù)據(jù)挖掘驗證。
鑒于現(xiàn)有的數(shù)據(jù)挖掘服務研究和應用存在的不足,在云平臺服務架構基礎上,將領域工程技術、應用工程技術和數(shù)據(jù)挖掘技術結合在一起,提出了面向領域的數(shù)據(jù)挖掘云平臺體系結構。同時,定義了面向領域的數(shù)據(jù)挖掘云平臺應用開發(fā)模式。該模式對面向領域的數(shù)據(jù)挖掘、云計算環(huán)境下的數(shù)據(jù)挖掘服務模式以及數(shù)據(jù)挖掘服務的開發(fā)和應用都有一定的參考價值。在下一步研究中,將進一步完善系統(tǒng)架構,使其能服務更多的領域。同時在云計算平臺下,針對特定領域,實現(xiàn)相關的數(shù)據(jù)挖掘服務,從而進一步驗證本文提出的面向領域的數(shù)據(jù)挖掘云平臺的應用價值。
[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年畢業(yè)于同濟大學計算機科學與技術專業(yè),獲碩士學位,講師;主要從事計算機應用、遠程教育、網(wǎng)絡與信息安全等方向的研究。