面向商务智能应用的分布式数据挖掘系统设计
商务智能(business intelligence,BI)是1989年由Gartner Group的Howard Dresner提出,但目前对商务智能还没有统一的定义。一般地,商务智能被认为是将存储于各种商业信息系统中的数据通过智能手段转换成有用信息以帮助企业提高决策能力解决商业问题的概念、方法和技术的集合。商务智能引起了国内外企业界和软件开发界的广泛关注,并成为当前一个热点研究问题。作为商务智能的重要组成部分之一的数据挖掘(dataining,DM)的研究提高到了一个新的高度,在分布式商务智能环境下,采取合适的数据挖掘系统模型和数据挖掘算法尤为重要。
Agent技术是人工智能的新兴研究课题,是有效解决复杂分布式问题的计算模式之一。基于Agent技术的应用系统不仅具有一般分布式系统所具有易于扩张、灵活性强等特点,而且系统具有很强的智能性和组织能力。本文在分析商务智能分布式环境基础上,介绍了面向商务智能的分布式数据挖掘系统应具有的基本特点,提出了一种面向商务智能应用基于Agent技术的分布式数据挖掘系统,并讨论了系统各组成部分功能特点。
1 商务智能的分布式环境
商务智能的发展,先后经历了事务处理系统、高级管理员信息系统、管理信息系统、决策支持系统和专家系统等阶段,最终演变成今天的商务智能。商务智能系统,与这些信息系统相比,主要区别之一是用户不再仅仅局限于企业的领导和决策分析人员,而是扩展到企业组织内外各类人员,即商务智能系统是面向多层次各类用户的应用需要。这些用户往往分布在不同部门或地区,从而使商务智能系统面向分布式应用环境。
同时,商务智能面向分布式数据环境。商务智能有效地集成企业内外部各种商业数据,并转换成易于理解的商业知识,帮助企业内外部用户进行科学决策,更好地实现商业目的。企业内部数据是指通过企业各种业务信息系统收集到的数据。这些数据可能分布在不同的硬件、数据库、网络环境中,为不同的业务部门服务。外部数据主要是市场信息和外部竞争对手信息,这些数据可以通过网络或市场调研等手段获得。因此,商务智能将肯定面向分布式的应用环境和数据环境。
2 面向商务智能应用的数据挖掘系统特点
为了充分利用企业内外流动的大量商业数据,企业商业智能系统必须采用数据挖掘技术实现商务知识的发现。数据挖掘是从大量数据中挖掘出隐含的、未知的、用户可能感兴趣的和对决策有价值的知识和规则。传统的商务智能数据挖掘是采用一种集中式思想,即要求将这些分布存储的数据收集到一个集中的地方,然后才进行知识发现、管理和决策,这样的商务智能要求企业有高速的数据通信网络。商务智能往往需要用户交互以获取参数信息,这无疑增加了集中式商务智能系统的负荷。同时,这种方式也破坏了数据的私有性和安全性。因此,数据的分布式存储、数据的私有性和安全性、用户频繁的信息交互和商务智能的及时性要求等迫切需要深入研究分布式环境下的分布式数据挖掘技术。
分布式数据挖掘(distributed data mining,DDM)主要涉及到分布式数据挖掘系统模型和分布式数据挖掘算法。一个分布式数据挖掘系统是一个复杂的实体,整个系统必须提供有效的访问分布式数据和计算资源、监控整个挖掘过程和以一定格式将挖掘结果呈现给用户的功能。而且,一个成功的DDM系统应该具有灵活的结构,提供一个简单的更新其组件的方式以适应变化的环境。由此可见,面向商务智能的分布式数据挖掘系统模型应该具有以下特点:①采用模块化设计,保证系统中不同模块可以根据需要进行灵活地增减和配置以及分布式数据挖掘系统的持续可用;②实现分布式移动数据挖掘,满足商务智能系统中多层次用户的多种数据挖掘需要,保证商业数据安全;③采用商务本体知识模型和通用数据描述格式实现各个站点上的分布式数据挖掘以及数据挖掘系统与其他系统的信息交互;④集成多种安全保障技术,满足业务系统安全以及分布式数据挖掘系统自身安全需要。
3 基于Agent技术的分布式数据挖掘系统
为了满足分布式数据挖掘的需要,三层客户/服务器结构被应用到系统设计中,如Kensington系统和Intelliminer系统。然而,这些系统采用的体系结构本质上仍没有改变集中式数据挖掘系统的模式,系统缺乏开放性、自主性和智能性。为了提高系统的智能性和开放性,融合不同的数据挖掘技术,许多学者将数据挖掘过程进行功能抽象,并分别由不同的Agent来完成。对于大量分散数据的数据挖掘,更多系统采用基于Agent的分布式结构模型,其中典型的应用系统如JAM系统和BODHI系统。本文充分利用移动Agent的移动性并以Agent为主要组件构造满足商务智能需要的分布式数据挖掘系统。同时,系统中Agent按照FIPA标准设计,这样只要增加消息转换和服务描述注册转换器等部件就可以实现Agent与web services的集成,从而使得系统支持web功能。因此,整个系统具有更大的灵活性、智能性和开放性。
[page] 3.1 分布式数据挖掘系统整体结构
如图1所示,整个商务智能系统可以整合为4个部分:用户群、用户接口、数据挖掘系统和企业数据库系统。用户通过用户接口提交数据挖掘请求,数据挖掘系统规划数据挖掘任务并创建装配数据挖掘Agent。依据要求,数据挖掘Agent迁移到企业业务数据库系统中进行数据挖掘,并提交结果给协调Agent进行综合且按照用户要求返回结果。
1)用户接口 是用户与数据挖掘系统互操作的渠道,完成用户参数的输入和数据挖掘结果的显示。例如,用户可以选择挖掘模型(挖掘算法)、数据源、挖掘的预设流程等;用户可以完成系统中Agent的知识和规则的更新,弥补系统知识的不足;用户还可以选择最终的挖掘结果的可视化形式等。
2)数据挖掘系统 是基于Agent的分布式数挖掘系统的工作流程大致为:①用户Agent将用户通过用户接口提交的数据挖掘任务转变成协调Agent可接受的挖掘任务;②协调Agent综合环境信息规划数据挖掘任务,创建多个装载合适挖掘模型的移动数据挖掘Agent,并将这些移动Agent打包和序列化为数据流进行数据的网络移动。
图1 基于Agent技术的分布式数据挖掘系统结构
3)企业数据库系统主要由移动Agent服务器、业务子系统和数据库等3部分组成。这里,移动Agent服务器作为windows服务而在系统启动时自动启动。
3.2 数据挖掘系统
如图1所示,数据挖掘系统由协调Agent、数据挖掘Agent、数据挖掘Agent管理器、用户Agent、挖掘算法Agent和数据站点管理Agent组成。其中,数据挖掘Agent是移动Agent,其他功能Agent
为静态Agent。这些Agem协调一致地工作,共同完成数据挖掘任务。
1)用户Agent代表用户向数据挖掘系统提出数据挖掘请求。只需要用户提出相应的要求或者做一系列的选择,用户Agent就可以将用户要求转化为协调Agent能够识别的命令并提交给协调Agent进行任务的计划分配;用户Agent还负责处理通过用户接口输入的系统更新信息等,如数据挖掘特定算法参数、Agent知识和规则等。该Agent除了处理用户输入的信息外,还需要能够保存数据挖掘结果等输出信息以待用户查询或直接提交这些信息给用户拥有的用户接口。
2)协调Agent主要完成下列3项任务:①任务规划优化,主要完成数据挖掘任务的规划,并选择最优的规划方案。与数据挖掘算法Agent、数据挖掘Agent管理器和数据站点管理Agent交互,得到数据挖掘算法效率功能特点、系统中挖掘Agent的功能状态等信息来确定相应的数据挖掘方案以尽可能满足用户需要。该Agent还具有实时规划能力以满足因某个移动Agent失效而进行任务的重新规划。②依据规划结果,协调Agent创建并命名多个并行协同工作的装载有挖掘模型的移动数据挖掘Agent,并将这些移动Agent的基本信息注册到挖掘Agent管理器中。③数据挖掘整个过程的协作协调,主要协调数据挖掘过程的各个Agent以及维护系统当前的运行状态信息等。同时,协调Agent也是系统中Agent信息交换中心,负责维护Agent之间信息的交互传递等。
3)数据挖掘Agent是移动Agent,由协调Agent创建,并移动到相应的数据库系统主机上进行数据挖掘,并将自身的,其他功能Agent
为静态Agent。这些Agem协调一致地工作,共同完成数据挖掘任务。
1)用户Agent代表用户向数据挖掘系统提出数据挖掘请求。只需要用户提出相应的要求或者做一系列的选择,用户Agent就可以将用户要求转化为协调 Agent能够识别的命令并提交给协调Agent进行任务的计划分配;用户Agent还负责处理通过用户接口输入的系统更新信息等,如数据挖掘特定算法参 数、Agent知识和规则等。该Agent除了处理用户输入的信息外,还需要能够保存数据挖掘结果等输出信息以待用户查询或直接提交这些信息给用户拥有的 用户接口。
2)协调Agent主要完成下列3项任务:①任务规划优化,主要完成数据挖掘任务的规划,并选择最优的规划方案。与数据挖掘算法Agent、数据挖掘 Agent管理器和数据站点管理Agent交互,得到数据挖掘算法效率功能特点、系统中挖掘Agent的功能状态等信息来确定相应的数据挖掘方案以尽可能 满足用户需要。该Agent还具有实时规划能力以满足因某个移动Agent失效而进行任务的重新规划。②依据规划结果,协调Agent创建并命名多个并行 协同工作的装载有挖掘模型的移动数据挖掘Agent,并将这些移动Agent的基本信息注册到挖掘Agent管理器中。③数据挖掘整个过程的协作协调,主 要协调数据挖掘过程的各个Agent以及维护系统当前的运行状态信息等。同时,协调Agent也是系统中Agent信息交换中心,负责维护Agent之间 信息的交互传递等。
3)数据挖掘Agent是移动Agent,由协调Agent创建,并移动到相应的数据库系统主机上进行数据挖掘,并将自身的位置信息和状态信息传递给挖掘 Agent管理器,将数据挖掘结果反馈给协调器以进行数据结果的融合。数据挖掘Agent运用自身携带的算法模型或请求协调Agent得到的算法等完成具 体的数据挖掘任务。
[page] 4)数据挖掘Agent管理器主要负责管理所有数据挖掘Agent的相关信息,这样各种Agent通过与管理Agent交互便可以动态获取其他Agent 的属性信息(位置、功能等),从而与其他Agent进行交互,以获取所需要的信息。是实现系统分布式透明性的关键,主要用于收集、管理、统计、查询各种 Agent信息资源,按其功能分类或建立Agent联盟。同时,也担当可信任的安全认证中心,保证各Agent之间的安全通信机制。
5)数据挖掘算法Agent主要负责维护数据挖掘算法。用户可以注册数据挖掘算法。当算法注册到系统中,算法Agent登记算法的元知识信息及其特点(比 如,名字、版本、输入参数、操作环境描述和输出格式等)。同时,算法Agent将这些信息反馈给协调Agent以便协调Agent根据数据挖掘任务选择最 佳的算法。
6)数据站点管理Agent 主要负责企业数据库系统Agent服务器的基本信息,如Agent服务器的启动、停止状态信息、位置信息以及数据源信息等。Agent服务器及时将其启 动、停止信息注册到数据站点管理器以便协调器合理规划任务。为了维护Agent服务器和防止Agent服务器出现故障,往往在企业提供同步工作的 Agent服务器。
数据挖掘系统由6类功能各异协同工作的Agent组成,当接受到用户提交的具体数据挖掘任务后,系统自动有条不紊地工作。在整个系统中,数据挖掘Agent及执其执行环境——移动Agent服务器是数据挖掘任务执行的关键部件。
图2 数据挖掘Agent内部结构
3.3 数据挖掘Agent
数据挖掘Agent是一种移动Agent,每个数据挖掘Agent都是一个相对独立的工作单元,利用其自带的数据挖掘算法和知识库信息等执行任务。数据挖 掘Agent封装了描述其状态的属性以便当Agent移动到另一主机上重新开始工作和向数据挖掘Agent管理器返同信息。图2给出了本系统中数据挖掘 Agent的内部结构。
1)接口模块主要将数据挖掘Agent的内部机制与外界隔离,所有信息交流都通过该接口。该模块包含与协调Agent和Agent服务器进行交互接口和消息的传递接口以及与数据源的JDBC联接接口。
2)安全控制模块对移动Agent自身提供保护;防止外部环境对数据挖掘Agent的非法访问,以保证数据的正确性和合法性;完成对数据的加/解密、数字签名等任务。
3)数据挖掘模块首先对业务数据挖掘数据进行预处理,然后依据数据挖掘模型来对已经规范化的数据进行分析,并将分析结果传给协调Agent以实现数据综合。
4)路由策略确定移动数据挖掘Agent移动到企业数据库系统主机的有序列表。对于明确的任务数据挖掘过程,可采用静态路由策略,即数据挖掘系统中的协调Agent给定移动Agent的移动路径,或采用基于规则的动态路由策略以满足复杂数据挖掘任务的计算。
数据挖掘Agent中的知识库,由协调Agent进行初始化,主要存放数据挖掘模型和其他一些必备的知识。身份信息用来标明该Agent的身份,包括该 Agent的ID号、Agent的主人、源站点、代码在源站点上的路径以及一些对该Agent权限进行限制的信息,这些信息均是加密的,而且在该 Agent的Java类设计中将这些属性设置为只读的。状态反映的是Agent执行状态信息、原始数据、中间数据以及数据挖掘结果。
[page] 3.4 移动Agent服务器
为了实现移动数据挖掘Agent在网络中安全可靠地访问不同的业务主机并在本地执行数据挖掘任务,系统中的业务主机必须提供Agent支撑环境为 Agent提供所需要的服务,包括Agent的传输、创建、激活、挂起、删除以及安全管理、通信和事件服务等。本系统中,移动Agent服务器采用如图3 所示的内部结构。
图3 移动Agent服务器内部结构
1)ATP模块提供Agent传输服务,即包括负责发送和接收移动Agent。本系统采用Java环境中的弱迁移方式,采用Agent传输协议 ATP(Agent transfer protocol),并在底层移动平台上采用socket技术。系统在确认符合接受方安全要求的情况下,进行Agent的传输,并在由Agent安全器进 行认证和解密后将其加入到系统Agent库中。在传输过程中,采用Java实现的IAIK SSL加密和认证TCP字节流,实现传输层上的数据加密。
2)Agent管理器是移动Agent服务器的核心部件。其主要功能是:①为系统中的所有数据挖掘Agent提供生命周期服务(创建、激活、挂起和终 止),协调和监视各个数据挖掘Agent的运行,负责记录Agent的运行状态,进行系统中Agent的队列管理和持续性管理;②将Agent正常运行所 需要的各项服务正确地分配到相应的模块,并协调本系统中各个功能模块,为Agent提供一个完整而顺畅的运行环境,使得Agent安全可靠地完成各自的任 务。
3)Agent安全管理器提供双向的安全管理机制,一方面保证Agent本身不被恶意Agent以及执行环境的攻击破坏,另一方面也保证主机不受恶意 Agent的攻击,其主要功能:①负责对接收的信息和Agent进行认证与解密,负责对发送的信息与Agent进行签名与加密,同时还负责Agent的权 限控制,其中使用存取控制权限列表ACL(access control list)来描述Agent对资源访问权限;②采用Java线程组和类装载器实现移动审计Agent自身的安全;③Agent访问等安全验证以及授权等。
4)通信管理器负责同一主机上的Agent之间以及与其他主机上的Agent之间的通信和数据交换。对于服务器中的Agent之间的通信采用Proxy方 式,具体过程为:通过Agent管理器对被请求Agent处于运行状态的确定,通信管理器激活与被请求Agent具有相同接口的Proxy。该Proxy 访问Agent安全管理器,并在确定该请求Agent具有访问权限的情况下为请求Agent提供通信和数据交换服务。对于本地Agent与其他主机上的 Agent之间的通信采用Java提供的远程方法调用RMI(remote method invocation)机制来实现。同时,使用XML来实现Agent之间的数据交互。
5)事件管理器负责管理发送给Agent或从Agent发出的注册和通知等事件,主要为网络上其他主机上的Agent与本系统中Agent之间的协作和事件的传送提供支持。
6)接口模块除ATP模块外惟一与外部环境信息交流的接口。该模块包含与协调Agent和Agent服务器进行交互接口和消息的传递接口以及不同Agent服务器中Agent之间通过RMI交互接口。
7)资源注册器负责系统中资源的注册服务。采用统一资源名字URN(universal resource name)来命名系统中的各种资源,如文件、打印机等。同时,资源注册器保存有本地数据站点的有关信息,如本地数据的形式、数据库管理系统、业务数据库表 结构、数据范围等。本系统中的资源访问控制分两级:
①系统级的资源访问控制采用Java提供的安全控制策略,即Security Manager;②应用级资源的访问控制采用基于Proxy的资源访问策略。
4 结语
面向商务智能应用基于Agent技术的分布式数据挖掘系统是从多Agent系统的角度来研究商务智能环境下的分布式数据挖掘任务的计算模型。本系统充分利 用移动Agent的移动性,大大降低了系统对网络带宽的依赖且提高了数据挖掘过程中数据安全性,具有良好的扩展性和自组织能力,对构建基于Agent技术 的商务智能数据挖掘系统具有一定的参考意义。
数据分析咨询请扫描二维码
《Python数据分析极简入门》 第2节 5 Pandas数学计算 importpandasaspdd=np.array([[81,&n ...
2024-11-23数据分析涉及多个方面的学习,包括理论知识和实践技能。以下是数据分析需要学习的主要方面: 基础知识: 数据分析的基本概念 ...
2024-11-22数据分析适合在多个单位工作,包括但不限于以下领域: 金融行业:金融行业对数据分析人才的需求非常大,数据分析师可以从事经 ...
2024-11-22数据分析是一种涉及从大量数据中提取有用信息和洞察力的过程。其工作内容主要包括以下几个方面: 数据收集与整理:数据分析师 ...
2024-11-22数据分析师需要掌握多种技能,以确保能够有效地处理和分析数据,并为业务决策提供支持。以下是数据分析师需要掌握的主要技能: ...
2024-11-22数据开发和数据分析是两个密切相关但又有所区别的领域。以下是它们的主要区别: 定义和目标: 数据开发:数据开发涉及数据的 ...
2024-11-22数据架构师是负责设计和管理企业数据架构的关键角色,其职责涵盖了多个方面,包括数据治理、数据模型设计、数据仓库构建、数据安 ...
2024-11-22数据分析师需要具备一系列技能,以确保能够有效地处理、分析和解释数据,从而支持决策制定。以下是数据分析师所需的关键技能: ...
2024-11-22数据分析师需要具备一系列技能,以确保能够有效地处理、分析和解释数据,从而支持决策制定。以下是数据分析师所需的关键技能: ...
2024-11-22数据分析师需要具备一系列的技能和能力,以确保能够有效地处理、分析和解释数据,从而支持业务决策。以下是数据分析师所需的主要 ...
2024-11-22需求持续增长 - 未来数据分析师需求将持续上升,企业对数据驱动决策的依赖加深。 - 预测到2025年,中国将需要高达220万的数据人 ...
2024-11-22《Python数据分析极简入门》 第2节 4 Pandas条件查询 在pandas中,可以使用条件筛选来选择满足特定条件的数据 importpanda ...
2024-11-22数据分析师的工作内容涉及多个方面,主要包括数据的收集、整理、分析和可视化,以支持商业决策和问题解决。以下是数据分析师的一 ...
2024-11-21数据分析师必须掌握的技能可以从多个方面进行归纳和总结。以下是数据分析师需要具备的主要技能: 统计学基础:数据分析师需要 ...
2024-11-21数据分析入门的难易程度因人而异,总体来看,入门并不算特别困难,但需要一定的学习和实践积累。 入门难度:数据分析入门相对 ...
2024-11-21数据分析是一项通过收集、整理和解释数据来发现有用信息的过程,它在现代社会中具有广泛的应用和重要性。数据分析能够帮助人们更 ...
2024-11-21数据分析行业正在迅速发展,随着技术的不断进步和数据量的爆炸式增长,企业对数据分析人才的需求也与日俱增。本文将探讨数据分析 ...
2024-11-21数据分析的常用方法包括多种技术,每种方法都有其特定的应用场景和优势。以下是几种常见的数据分析方法: 对比分析法:通过比 ...
2024-11-21企业数字化转型是指企业利用数字技术对其业务进行改造和升级,以实现提高效率、降低成本、创新业务模式等目标的过程。这一过程不 ...
2024-11-21数据分析作为一个备受追捧的职业领域,吸引着越来越多的女性加入其中。对于女生而言,在选择成为一名数据分析师时,行业选择至关 ...
2024-11-21