分布式数据检索系统的设计与实现摘要提出了一套对非结构化数据进行分析和检索系统的设计方案。采用分布式技术在windows平台上建立了一套以任务分发服务器为中心,运算终端为任务处理单元,带有反馈和容错机制的分布式数据检索系统。在给出系统模型和设计思想基础上,对各个功能部件进行了模块化设计、并对各模块故障进行了测试,结果表明,系统能够在部分模块出错的情况下稳定运行,能够满足在实际工作中的需求。关键词分布式数据检索;windows;反馈;容错机制;:文献标识码:DesignAndImplementofADataRetrievalDistributionSystemZHUXin,ZHONGQiu-xi(SchoolofComputer,NationalUniversityofDefenseTechnology,Changsha,Hunan410073,China)AbstractAuthorsproposeasetofpairsofunstructureddataanalysisandretrievalsystemdesign.Useofdistributedtechnologyinthewindowsplatformtoestablishasetoftask-distributionserverasthecentraltaskofcomputingtheterminalprocessingunit,withfeedbackandfault-tolerantmechanismfordistributeddataretrievalsystem.Inthegivensystemmodelanddesignbasedontheideaofthevariousfunctionalcomponentsofthemodulardesign,andfailureofeachmodulewastested,resultsshowthatthesystemcangowronginsomecasesthemodulestableoperationtomeettheactualworkrequirements.KeywordsDataRetrievalDistribution;windows;feedback;fault-tolerantmechanism随着互联网应用技术的推广和普及,互联网在带来发布、传递和获取信息自由便利的同时,各种虚假信息、垃圾邮件、个人隐私问题、网上经济犯罪、危及社会稳定、涉及国家重大利益等内容的信息所引发的问题日益突现[1]。近年来互联网上的各种网络犯罪形式日趋多样,传统的网络监管方式已无法适应当前的需求,特别对于一些网络黑客的攻击行为难以被传统的监控系统所识别。当前互联网监管部门在对海量互联网数据进行分析、检索过程只关注到了结构化文本数据[2],而大量的非结构化的二进制数据由于受数据库处理能力限制,关键词的设定和并不能像文本数据那样通过自然语言的结构化信息抽取[3]建立数据索引。因此面对互联网上巨大的数据量就必须有一套高效的系统来对这类攻击行为进行及时的处理。这套系统主要针对海量的省或市的出口网络数据进行筛选和自动识别。目前中型城市的出口带宽都在100G以上,虽然单台计算机的处理能力不断提高,但是对于大规模的数据运算,单台计算机的处理能力毕竟有限,面对如此庞大的数据量必须采用分布式技术,利用多台计算机的计算或存储资源来解决这一问题。针对目前海量非结构化数据处理的需求,在Windows环境上构建了分布式任务分数据检索系统,以满足省际或市际网关中对大规模网络数据实施分布式检索的需求。1系统设计目前对省际或市际网络数据截取的流程如下图1:通过部署在各个网关处的采集设备将采集的网络数据包按不同的协议类型存储到磁盘阵列服务器(文件池)中,待查询。图1目前对省际或市际网络数据截取的流程Fig.1Thecurrentinter-provincialorinter-citynetworkdatainterceptionprocess由于在市际、省际网关数据量极大,要在网关处对网络数据数据包抓取,受限于计算机的成本和处理能力,因此在设计的该套系统部主要用对已获取的数据进行分析和处理。整个系统由三个部分组成,1)任务分发中心,为用户提供特定的接口;2)运算终端,执行分发任务;3)数据库,用于管理任务和终端。其中任务分发中心是整个系统的核心部分,主要负责将任务数据库中的任务分发到各个终端进行运算。系统模型如图2图2系统模型Fig.2SystemModel文件池:通过专用系统捕获网络数据,以IP包的形式存于磁盘阵列器中。数据采集模块:采集文件池中需要被匹配的文件路径,并将文件路径加入数据库中,同时监听文件池中新增文件的系统消息,动态的将文件池的新增文件加入至数据库之中。任务分发中心:监听参与运算的终端设备,采用轮询机制检测终端设备是否由于某种原因停止运算或脱离运算,实时调整运算任务,即,一旦某个终端停止工作,即将其未完成的任务加入至未执行任务列表,并将该任务分发给其他终端。运算终端:查询数据库中分配给自己的任务列表,...