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