摘 要: 根据电子商务环境中分布式和异构性数据挖掘服务需求,设计了基于移动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.