摘 要: 根據(jù)電子商務(wù)環(huán)境中分布式和異構(gòu)性數(shù)據(jù)挖掘服務(wù)需求,設(shè)計(jì)了基于移動(dòng)Agent和Web Service的五層分布式數(shù)據(jù)挖掘服務(wù)框架,實(shí)現(xiàn)數(shù)據(jù)挖掘服務(wù)與電子商務(wù)系統(tǒng)的松散耦合。從整體框架給出數(shù)據(jù)挖掘服務(wù)質(zhì)量評(píng)價(jià)體系,包括支撐性服務(wù)質(zhì)量評(píng)價(jià)和算法服務(wù)質(zhì)量評(píng)價(jià)。具體分析了.NET平臺(tái)下移動(dòng)Agent的遷移和WCF技術(shù)創(chuàng)建數(shù)據(jù)挖掘服務(wù)過(guò)程組件的實(shí)現(xiàn)。
關(guān)鍵詞: 數(shù)據(jù)挖掘服務(wù);電子商務(wù);移動(dòng)Agent;Web Service
企業(yè)在實(shí)施電子商務(wù)或者全程電子商務(wù)過(guò)程中,由于采用不同的信息系統(tǒng)提供資源和服務(wù),會(huì)產(chǎn)生異構(gòu)的、不確定性的和非結(jié)構(gòu)化的海量數(shù)據(jù),其復(fù)雜程度已經(jīng)遠(yuǎn)超出人類(lèi)現(xiàn)有的信息分析和理解能力。企業(yè)如何利用這些海量數(shù)據(jù)吸引更多的客戶(hù)、判定有價(jià)值的客戶(hù)和保持客戶(hù)等問(wèn)題已成為企業(yè)戰(zhàn)略決策的關(guān)鍵問(wèn)題。數(shù)據(jù)挖掘技術(shù)成為企業(yè)解決這些問(wèn)題的一個(gè)重要手段。數(shù)據(jù)挖掘工具多建立在數(shù)據(jù)倉(cāng)庫(kù)基礎(chǔ)上,各大數(shù)據(jù)庫(kù)廠(chǎng)商提供的數(shù)據(jù)倉(cāng)庫(kù)產(chǎn)品及相應(yīng)分析工具、數(shù)據(jù)挖掘工具(如IBM公司的Intelligent Miner、SPSS公司的Clementine、SAS公司的Enterprise Miner等[1]),給用戶(hù)帶來(lái)了便利。但各廠(chǎng)商產(chǎn)品不兼容、難以耦合,盡管部分?jǐn)?shù)據(jù)庫(kù)產(chǎn)品的數(shù)據(jù)挖掘工具支持二次開(kāi)發(fā),而大部分只是支持自身的數(shù)據(jù)倉(cāng)庫(kù)環(huán)境,缺乏普適性和靈活性;企業(yè)容易形成對(duì)單一廠(chǎng)商數(shù)據(jù)挖掘產(chǎn)品和服務(wù)的依賴(lài)性,針對(duì)不同環(huán)境需要重復(fù)構(gòu)建相同功能的數(shù)據(jù)挖掘軟件。
另一方面進(jìn)行電子商務(wù)系統(tǒng)數(shù)據(jù)挖掘,所需要的數(shù)據(jù)主要是Web內(nèi)容、Web結(jié)構(gòu)、Web日志記錄、客戶(hù)信息、交易數(shù)據(jù)、查詢(xún)信息等,這類(lèi)數(shù)據(jù)具有分布性、異構(gòu)性及海量性,而且目前的挖掘工具主要采用單機(jī)運(yùn)行、集中處理結(jié)構(gòu)化的同質(zhì)數(shù)據(jù)的模式。而對(duì)于分布式存儲(chǔ)的數(shù)據(jù)需要集中才能處理,這個(gè)過(guò)程對(duì)網(wǎng)絡(luò)速度、穩(wěn)定性要求比較高,數(shù)據(jù)挖掘結(jié)果響應(yīng)時(shí)間比較長(zhǎng)、數(shù)據(jù)的私有性和安全性遭到威脅。另外,一般的數(shù)據(jù)挖掘引擎是基于封閉體系構(gòu)建的,難以管理和維護(hù)多個(gè)挖掘算法,結(jié)果格式不統(tǒng)一,許多數(shù)據(jù)挖掘結(jié)果無(wú)法直接給其他系統(tǒng)提供服務(wù)。針對(duì)以上問(wèn)題,本文提出了面向電子商務(wù)應(yīng)用的分布式數(shù)據(jù)挖掘服務(wù)的體系,集成分布式技術(shù)應(yīng)用,提供給企業(yè)統(tǒng)一的挖掘結(jié)果格式的服務(wù)。
1 技術(shù)概要
1.1 移動(dòng)Agent技術(shù)
在分布式計(jì)算領(lǐng)域,把在分布式系統(tǒng)中持續(xù)自主發(fā)揮作用的,具有自主性、交互性、反應(yīng)性、主動(dòng)性特征的可移動(dòng)計(jì)算實(shí)體稱(chēng)為移動(dòng)MA(Mobile Agent),目的是盡量把Agent靠近數(shù)據(jù)源,降低網(wǎng)絡(luò)通信負(fù)載。一個(gè)完整的Agent系統(tǒng)包括兩個(gè)部分:移動(dòng)Agent和Agent服務(wù)環(huán)境。在Agent服務(wù)環(huán)境中,Agent不斷遷移和運(yùn)行,通過(guò)Agent通信語(yǔ)言ACL(Agent Communication Language)與其他Agent協(xié)作通信。移動(dòng)Agent的體系結(jié)構(gòu)模型如圖1所示。
圖1中,Agent利用環(huán)境交互模塊感知和作用外部環(huán)境;安全服務(wù)模塊執(zhí)行安全策略,負(fù)責(zé)Agent與外部環(huán)境的安全交互并阻止外部環(huán)境對(duì)Agent的非法訪(fǎng)問(wèn);任務(wù)求解模塊由運(yùn)行模塊、相關(guān)推理方法和規(guī)則組成。Agent把移動(dòng)過(guò)程中所獲取的知識(shí)及任務(wù)求解模塊保存在知識(shí)庫(kù)中;Agent在任務(wù)求解過(guò)程中,由內(nèi)部狀態(tài)集、約束條件及路由策略控制執(zhí)行。內(nèi)部狀態(tài)集控制執(zhí)行過(guò)程中的狀態(tài);約束條件約束Agent的行為和性能,路由策略用于滿(mǎn)足復(fù)雜和非確定任務(wù)的求解,既可以是靜態(tài)服務(wù)列表也可以是基于規(guī)則動(dòng)態(tài)路由。
移動(dòng)Agent的自主性和移動(dòng)性是解決分布性、海量性數(shù)據(jù)處理的一種有效方法,能有效提高數(shù)據(jù)挖掘服務(wù)的智能性、并行性和穩(wěn)定性[2]。
1.2 Web Service
Web Service 是一種面向服務(wù)的體系結(jié)構(gòu)和基于標(biāo)準(zhǔn)的應(yīng)用集成方式,其流程包括:定義抽象的服務(wù)、實(shí)現(xiàn)具體的服務(wù)、發(fā)布并查找相關(guān)的服務(wù)、實(shí)現(xiàn)服務(wù)實(shí)例選擇,最終實(shí)現(xiàn)可操作服務(wù)的使用;能將分布在Intranet/Internet分布式服務(wù)器上的應(yīng)用集成到一起。Web Service體系結(jié)構(gòu)包括三種角色:服務(wù)提供者、服務(wù)注冊(cè)用戶(hù)及服務(wù)注冊(cè)中心。服務(wù)提供者既是Web Service的提供者也是服務(wù)的擁有者,負(fù)責(zé)服務(wù)的發(fā)布、更新和回收。具體來(lái)說(shuō),定義Web Service的服務(wù)描述,將服務(wù)直接提供給服務(wù)用戶(hù)或者提交到服務(wù)注冊(cè)中心,服務(wù)注冊(cè)中心是連接服務(wù)提供者和服務(wù)注冊(cè)用戶(hù)的第三方平臺(tái),匯集大量在線(xiàn)Web服務(wù)。Web Service具體實(shí)現(xiàn)是基于以往的Web技術(shù),通過(guò)定義相關(guān)協(xié)議和標(biāo)準(zhǔn)來(lái)實(shí)現(xiàn),主要包括XML、SOAP(Simple Object Access Protocal)、WSDL(Web Services Description Language)、UDDI(Universal Description Discover and Integration)。
通過(guò)Web Service將異構(gòu)數(shù)據(jù)源處理服務(wù)標(biāo)準(zhǔn)化,便于將服務(wù)寄宿在不同的計(jì)算機(jī)系統(tǒng)環(huán)境中,避免數(shù)據(jù)挖掘時(shí)有大數(shù)據(jù)量的傳輸。
2 基于移動(dòng)Agent和Web Service的數(shù)據(jù)挖掘
2.1 數(shù)據(jù)挖掘服務(wù)技術(shù)框架設(shè)計(jì)
在電子商務(wù)應(yīng)用中,數(shù)據(jù)主要以分布和異構(gòu)的形式存在,數(shù)據(jù)挖掘服務(wù)需要能提供一種有效、可信、安全及擴(kuò)展性比較好的數(shù)據(jù)挖掘服務(wù)解決方案。本文采用一種基于Web Service標(biāo)準(zhǔn)封裝數(shù)據(jù)挖掘算法組件、由移動(dòng)Agent負(fù)責(zé)智能組合數(shù)據(jù)挖掘服務(wù)、實(shí)現(xiàn)數(shù)據(jù)挖掘服務(wù)與電子商務(wù)系統(tǒng)的松散耦合、便于數(shù)據(jù)挖掘服務(wù)的統(tǒng)一管理和維護(hù)的框架。這種結(jié)構(gòu)能動(dòng)態(tài)減輕分布式數(shù)據(jù)遷移量,滿(mǎn)足各種異構(gòu)系統(tǒng)的數(shù)據(jù)挖掘服務(wù)請(qǐng)求。
該架構(gòu)可以抽象成由組合服務(wù)入口、服務(wù)組合代理(SAgent)和Web服務(wù)三個(gè)實(shí)體組成。用戶(hù)在組合服務(wù)入口輸入服務(wù)組合規(guī)范和初始參數(shù),系統(tǒng)將這些規(guī)范轉(zhuǎn)化為處理模式,并生成一個(gè)Agent來(lái)完成這個(gè)計(jì)劃;行為匹配算法將這個(gè)計(jì)劃轉(zhuǎn)化為SAgent的物理行為,Agent間通過(guò)ACL語(yǔ)言完成如克隆、復(fù)制、執(zhí)行、歸并等操作協(xié)作完成用戶(hù)服務(wù)請(qǐng)求,如圖2所示。具體可以劃分為5層:(1)底層是電子商務(wù)系統(tǒng)數(shù)據(jù)層。包含電子商務(wù)環(huán)境中不同的數(shù)據(jù)源,由不同的組件提供訪(fǎng)問(wèn)服務(wù);(2)數(shù)據(jù)挖掘服務(wù)組件層。主要在數(shù)據(jù)層上提供整個(gè)數(shù)據(jù)挖掘流程所必須的數(shù)據(jù)處理算法的組件;(3)數(shù)據(jù)挖掘服務(wù)組合層。根據(jù)不同的數(shù)據(jù)源組合和封裝相關(guān)的處理組件,并提供XML結(jié)構(gòu)化的數(shù)據(jù)給語(yǔ)義推理層調(diào)用;(4)語(yǔ)義推理層。主要協(xié)調(diào)用戶(hù)請(qǐng)求和機(jī)器處理,服務(wù)推理邏輯解析用戶(hù)請(qǐng)求,根據(jù)本體知識(shí)庫(kù)已有的知識(shí),標(biāo)準(zhǔn)化用戶(hù)請(qǐng)求,設(shè)置約束條件,本體知識(shí)庫(kù)中包含面向電子商務(wù)數(shù)據(jù)挖掘服務(wù)的統(tǒng)一的概念和關(guān)系的描述;(5)應(yīng)用表示層主要是面向用戶(hù)的Web應(yīng)用請(qǐng)求和應(yīng)用程序請(qǐng)求。
2.2 數(shù)據(jù)挖掘服務(wù)評(píng)價(jià)體系設(shè)計(jì)
為電子商務(wù)企業(yè)提供分布式數(shù)據(jù)挖掘服務(wù),服務(wù)質(zhì)量是一個(gè)重要的因素,服務(wù)質(zhì)量從框架的服務(wù)推理邏輯、SAgent服務(wù)組合以及數(shù)據(jù)挖掘Web服務(wù)三個(gè)方面評(píng)價(jià),服務(wù)質(zhì)量概括為包括支撐服務(wù)質(zhì)量和算法服務(wù)質(zhì)量。支撐性服務(wù)質(zhì)量指的是服務(wù)框架整體效果,包括可用度、響應(yīng)時(shí)間、成功率、聲譽(yù)以及價(jià)格;算法服務(wù)質(zhì)量主要指數(shù)據(jù)挖掘Web服務(wù)效果,是整個(gè)數(shù)據(jù)挖掘服務(wù)評(píng)價(jià)體系重要方面,包括吞吐量、可伸縮性、存儲(chǔ)空間、運(yùn)行時(shí)間、魯棒性。服務(wù)質(zhì)量可以從這兩個(gè)方面評(píng)價(jià)[3],如表1所示。
3 .NET平臺(tái)下框架技術(shù)實(shí)現(xiàn)分析
電子商務(wù)分布式數(shù)據(jù)挖掘服務(wù)框架主要結(jié)合移動(dòng)Agent和Web Service技術(shù),Agent的遷移和服務(wù)的封裝是兩個(gè)關(guān)鍵問(wèn)題,具體實(shí)現(xiàn)采用.NET技術(shù)。目前移動(dòng)Agent開(kāi)發(fā)主要在通信結(jié)構(gòu)相同的兩端,采用Java語(yǔ)言的序列化和類(lèi)裝載機(jī)制實(shí)現(xiàn)。但電子商務(wù)數(shù)據(jù)系統(tǒng)是分散的,無(wú)法保證同構(gòu)性,而且對(duì)于常見(jiàn)協(xié)議支持較弱,難以在分布式環(huán)境中提供完整的服務(wù)。.NET是Microsoft XML Web services平臺(tái),XML Web services支持應(yīng)用程序在Internet上通信和數(shù)據(jù)共享,對(duì)于不同操作系統(tǒng)、設(shè)備或編程語(yǔ)言是透明的,能有效支持Internet協(xié)議和相關(guān)標(biāo)準(zhǔn)。
3.1 基于.NET移動(dòng)Agent遷移
移動(dòng)Agent遷移主要是解決Agent程序體和數(shù)據(jù)在異構(gòu)節(jié)點(diǎn)間的遷移和恢復(fù)問(wèn)題。完整地移動(dòng)Agent的數(shù)據(jù)狀態(tài)由代碼態(tài)、數(shù)據(jù)態(tài)和執(zhí)行態(tài)構(gòu)成[4]。代碼態(tài)是指能完成Agent功能并做控制的任務(wù)程序代碼;數(shù)據(jù)態(tài)指的是Agent對(duì)象的一些全局變量和屬性,是對(duì)Agent的一些元數(shù)據(jù)的描述,如Agent標(biāo)識(shí)、目的節(jié)點(diǎn)、遷移路徑等;執(zhí)行態(tài)指的是Agent執(zhí)行過(guò)程中需要保存的上下文信息。在實(shí)際遷移過(guò)程中,Agent代碼態(tài)和數(shù)據(jù)態(tài)分別可以在.NET平臺(tái)生成dll文件和結(jié)構(gòu)化XML文件實(shí)現(xiàn)遷移;接收端可以利用.NET反射技術(shù)和XML類(lèi)解析,還原Agent代碼態(tài)和數(shù)據(jù)態(tài)。因此,技術(shù)實(shí)現(xiàn)上,構(gòu)建Agent代碼態(tài)類(lèi),管理這些類(lèi)的管理類(lèi)以及負(fù)責(zé)Agent代碼態(tài)類(lèi)和數(shù)據(jù)態(tài)文件遷移的通信類(lèi)。針對(duì)分布式環(huán)境文件傳輸,.NET平臺(tái)通過(guò)System.Net和System.Net.Socket命名空間提供網(wǎng)絡(luò)通信的類(lèi)和方法;而對(duì)于XML文件的傳輸則通過(guò)System.XML命名空間提供的XmlWriter類(lèi)和XmlReader類(lèi)實(shí)現(xiàn)Agent數(shù)據(jù)態(tài)XML文件生成和解析。
3.2 基于WCF構(gòu)建數(shù)據(jù)挖掘組件Web服務(wù)
移動(dòng)Agent要完成分布式數(shù)據(jù)挖掘服務(wù),需要?jiǎng)討B(tài)調(diào)用針對(duì)不同數(shù)據(jù)源的數(shù)據(jù)挖掘服務(wù)組件,Web服務(wù)組件實(shí)現(xiàn)采用SOA(Service Oriented Architecture)設(shè)計(jì)的WCF技術(shù)。WCF是微軟基于SOA而設(shè)計(jì)的技術(shù)架構(gòu), WCF技術(shù)能很好地開(kāi)發(fā)分布式應(yīng)用程序,支持HTTP、TCP、Named Pipe、MSMQ、Peer-To-Peer TCP等協(xié)議,能寄宿在IIS、Windows Service、Console、Windows Application等多種宿主(Host)中。技術(shù)實(shí)現(xiàn)上,一個(gè)具體的WCF服務(wù)由宿主、服務(wù)類(lèi)和端點(diǎn)構(gòu)成。宿主是指服務(wù)運(yùn)行的運(yùn)行環(huán)境。服務(wù)類(lèi)是指具體的服務(wù)方法,在.NET平臺(tái)中采用[ServiceContract]特性聲明接口,或者直接聲明類(lèi)。端點(diǎn)是WCF服務(wù)的一個(gè)重要組成,由地址(Adress)、綁定(Binding)、契約(Contract)構(gòu)成。地址即標(biāo)識(shí)消息發(fā)送的終點(diǎn),綁定是描述消息的發(fā)送方式,契約是指消息包含的內(nèi)容、消息的組織和操作方式[5]。
對(duì)于移動(dòng)Agent所調(diào)用的Web服務(wù)利用WCF技術(shù)實(shí)現(xiàn),構(gòu)建的服務(wù)能寄宿在多種環(huán)境中,支持多個(gè)通信協(xié)議。利用WCF創(chuàng)建Web Service分成4步:(1)引入命名空間System.ServiceModel和System.ServiceModel.Description; (2)定義服務(wù)類(lèi),將服務(wù)接口添加[ServiceContract]特性,將服務(wù)算法的方法添加[OperationContract]特性;(3)創(chuàng)建Host宿主。WCF的服務(wù)可以運(yùn)行在程序、Windows服務(wù)或者asp.net上面,由于數(shù)據(jù)挖掘過(guò)程提供數(shù)據(jù)挖掘Web Service,WCF配置節(jié)點(diǎn)<system.serviceModel>終端,綁定協(xié)議選擇<endpoint address="…"binding="wsHttpBinding"contract="…">,將數(shù)據(jù)挖掘Web Service寄宿在IIS上;(4)創(chuàng)建WCF運(yùn)行時(shí)間。
本文針對(duì)電子商務(wù)系統(tǒng)提出了分布式數(shù)據(jù)挖掘服務(wù)框架和相應(yīng)服務(wù)評(píng)價(jià)體系,利用分布式技術(shù)移動(dòng)Agent解決電子商務(wù)環(huán)境中數(shù)據(jù)異構(gòu)和分布的問(wèn)題,將數(shù)據(jù)挖掘過(guò)程封裝成一個(gè)個(gè)服務(wù)寄宿在數(shù)據(jù)源端向移動(dòng)Agent提供服務(wù),為獨(dú)立的電子商務(wù)數(shù)據(jù)處理中心建設(shè)提供依據(jù)。
參考文獻(xiàn)
[1] ABDULLAH M. GHOSON A L. Decision tree induction & clustering techniques in SAS enterprise miner, SPSS clementine, and IBM intelligent miner-a comparative analysis[J]. International Journal of Management & Information Systems,2010,14(3):57-58.
[2] 陳珂,龐景中.基于移動(dòng)Agent的分布式數(shù)據(jù)挖掘平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2011,28(7):183-184.
[3] 陳增科,肖基毅,陳靈娜,等.基于物元和QoS約束的數(shù)據(jù)挖掘服務(wù)選擇[J].計(jì)算機(jī)工程,2009,35(24):90-91.
[4] JAISANKAR N, SARAVANAN R, SWAMY K D. Intelligent intrusion detection system framework using mobile agents[J]. International Journal of Network Security & Its Applications (IJNSA),2009,1(2):73-74.
[5] 韓旭,王海波,柳克俊.基于.NET FrameworkWCF的面向服務(wù)SOA中間件設(shè)計(jì)[J].小型微型計(jì)算機(jī)系統(tǒng),2010,31(12):2359-2361.