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