Web-Spider的设计与实现(一)PPT课件_第1页
Web-Spider的设计与实现(一)PPT课件_第2页
Web-Spider的设计与实现(一)PPT课件_第3页
Web-Spider的设计与实现(一)PPT课件_第4页
Web-Spider的设计与实现(一)PPT课件_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 WebSpider的设计与实现 一 基于ProActive的分布式并行P Spider1 0 2 什么是WebSpider WebSpider 又称为网络爬虫 网络蜘蛛 Robots 指遵循标准的http协议利用超链接和Web文档检索的方法遍历万维网信息空间的软件程序 3 基本工作原理 从一个或若干初始网页的URL开始 获得初始网页上的URL 在抓取网页的过程中 不断从当前页面上抽取新的URL放入队列 直到满足系统的一定停止条件 4 效率 互联网信息量非常巨大并且不断快速增长 所以提高搜索引擎的WebSpider的数据采集和更新速度有着重要意义 在单机上使用多线程技术能够在一定程度上提高采集速度 但由于单机计算资源有限 通过多线程技术提高速率也是有限的 采用多机分布式并行结构 增加处理机和网络接口数量 能比单机多线程更加显著地提升WebSpider的采集效率 5 分布式并行计算开发 传统的基于MPI的技术具有程序可移植性差和配置复杂等不足 直接用java开发 在多线程和分布式java应用程序之间还存在很大的缝隙 而且为了在多线程应用程序上构建分布式应用程序而禁止了代码重用 编程人员增加了很大的负担 6 ProAcitive ProActive是一个由法国的INIRA的DenisCaromel教授带领的开发小组开发的适合并行 分布和并发计算 在统一框架具有的移动性和安全性的java开源开发包 7 主动对象 主动对象 ActiveObject AO 是ProActive计算概念的核心 它包括一个远程对象和一个线程 这个线程控制主动对象的活动 以及和其他已经部署好的主动对象协同工作 主动对象是在标准对象的基础上增加了位置透明 活动透明和同步三种功能 主动对象的通讯默认是异步模式的 一个主动对象包括一个主要的对象 一个线程 待处理请求队列 8 异步调用 ProActive对主动对象的异步调用是通过Future对象来实现的 Future对象是ProActive中为方法调用时自动产生表示调用的返回结果的对象 ProActive采用一种Wait by necessity方式来解决内部对象的同步其思想如下 生成Future对象后可继续往下执行 除非是直接对Future对象的引用 才会自动停下等待 直到Future对象得到具体数值 Future对象的值变为可用时 会自动得到更新 9 Future对象 10 TypeGroup 所谓TypeGroup就是具有相同类型的主动对象的群 可以向普通对象一样调用其中的群方法 TypedGroup群通信是建立在ProActive异步远程方法调用基础之上的 可以实现一次调用多个AO操作 如果有返回值 结果也是一个群 11 节点的部署 ProActive的部署文件是一个XML类型文件 它主要由三个部分构成 componentDefinition deployment及infrastructure 用来提供虚拟节点 VirtualNode 简称VN Java虚拟机 JVM 及节点 Node 的映射关系信息 ProActive在程序运行时从部署文件获取结点部署信息 12 P Spider1 0的系统框架 P Spider1 0系统框架 13 协调器 SpiderCoordinator 由两个部分组成 这两个部分分别被设计成Spider和SpiderWorkload两个主动对象 Spider负责对系统进行部署和管理 SpiderWorkload负责维护URL队列 14 SpiderWorker 每个SpiderWorker也被设计成是一个主动对象 每个计算节点上分派了多个SpiderWorker主动对象 SpiderWorker根据读取到的URL下载页面 然后解析页面的HTML 提取出其中包含的URL 将提取出来的URL链接按照预先定义的统一的格式补充完整 对URL进行过滤 如去除带 的搜索产生的URL等 最后 统计下载URL数量 报告新发现的URL 15 系统结构 16 Spider主要算法 proActiveDescriptor ProActive getProactiveDescriptor file descriptors spider xml 为ProActiveDescriptor指定具体的部署文件 spider xml为部署文件名proActiveDescriptor activateMappings 根据部署文件 启动虚拟机 创建NodeProActive turnActive this 将对象Spider变为主动对象 publicvoidinit 17 spiderworkgroup SpiderWorker ProActiveGroup newGroup SpiderWorker class getName params nodes 以数组params中的数据作为参数 生成SpiderWorker类的主动对象 主动对象个数等于params中的参数的组数 并且把这些主动对象部署到nodes中指定的各个节点上去 同时定义名为spiderworkgroup的TypeGroup IntWrapperpageCount spiderworkgroup startwork 调用spiderworkgroup中每个主动对象的startwork 方法 定义返回值为pageCount ProActiveGroup waitAll pageCount 阻塞线程 等待群pageCount全部成员返回 18 SpiderWorker主要算法 publicIntWrapperstartwork intcount 0 统计下载的URL数while curUrl dequeue urlQueue null par do 各个节点并行工作page downloadPage formatUrl curUrl 下载foundUrls extractUrls page 发现页面包含的URLreportUrl foundUrls 报告发现的URLscount returnnewIntWrapper count ProActive异步调用条件 要求返回包装类型 wrapper 19 P Spider1 0运行时IC2D监视结果 图2P Spider运行时IC2D监视结果 20 分析 一方面是得益于处理机和网络接口数量的增加 另一方面得益于基于ProActive的系统架构 主动对象这种用Future对象来实现的异步调用机制在一定

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论