CN103678471A - 对用于分布式抓取的搜索空间进行分区的方法和装置 - Google Patents
对用于分布式抓取的搜索空间进行分区的方法和装置 Download PDFInfo
- Publication number
- CN103678471A CN103678471A CN201310435241.4A CN201310435241A CN103678471A CN 103678471 A CN103678471 A CN 103678471A CN 201310435241 A CN201310435241 A CN 201310435241A CN 103678471 A CN103678471 A CN 103678471A
- Authority
- CN
- China
- Prior art keywords
- event
- node
- sets
- new state
- sign
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 117
- 230000009193 crawling Effects 0.000 title abstract description 5
- 238000000638 solvent extraction Methods 0.000 title abstract 3
- 230000008569 process Effects 0.000 claims abstract description 90
- 230000004044 response Effects 0.000 claims description 35
- 238000004891 communication Methods 0.000 claims description 27
- 238000009826 distribution Methods 0.000 claims description 25
- 239000013307 optical fiber Substances 0.000 claims description 14
- 238000004364 calculation method Methods 0.000 claims description 5
- 238000010276 construction Methods 0.000 claims description 4
- 238000005192 partition Methods 0.000 abstract description 29
- 238000010586 diagram Methods 0.000 description 31
- 238000003860 storage Methods 0.000 description 24
- 238000012545 processing Methods 0.000 description 23
- 230000006870 function Effects 0.000 description 19
- 238000004590 computer program Methods 0.000 description 12
- 238000013500 data storage Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000004087 circulation Effects 0.000 description 2
- 239000006185 dispersion Substances 0.000 description 2
- 210000003811 finger Anatomy 0.000 description 2
- 239000003292 glue Substances 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000032683 aging Effects 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种对用于分布式抓取的搜索空间进行分区的方法和装置。用于对抓取空间进行分区的计算机实现的过程的一个示例性实施例包括:计算事件集合中的每个事件的事件标识符以形成标识后的事件集合;将所述标识后的事件集合划分成多个分区;为节点集合中的每个节点分配一个分区;以及由相应节点执行每个分配的分区中的每个事件。响应于判定发现新状态,向其它节点通知所述新状态,其中将与所述新状态关联的信息添加到每个节点处的相应分配的事件ID集合。响应于判定不存在更多通知,所述计算机实现的过程判定是否存在更多待处理事件,以及响应于判定不存在更多待处理事件,所述计算机实现的过程终止。
Description
技术领域
本公开一般地涉及在数据处理系统中索引Web页面,更具体地说,涉及在数据处理系统中对用于分布式抓取的抓取空间进行分区。
背景技术
近二十年来,Web应用的分布式抓取已经成为广泛研究的主题[WebCrawling(Web抓取),2010年,作者:Christopher Olston和Marc Najork]。但是,典型的建议解决方案集中于常规或非AJAX应用的抓取[UbiCrawler:a scalable fully distributed Web crawler(UbiCrawler:可扩展的完全分布式Web抓取器),2003年1月27日,Paolo Boldi、Bruno Codenotti、Massimo Santini、Sebastiano Vigna;以及Distributed Web Crawling overDHTs(通过DHT的分布式Web抓取),2004年,Boon Thau Loo、OwenCooper、Sailesh Krishnamurthy]。术语AJAX的使用表示基于Web的技术的集合。所述技术的各实施例用于实现Web应用,这些Web应用能够在后台与服务器通信,同时不干扰Web页面的当前状态。AJAX实现通常包括技术组合,包括具有用于呈现用途的级联样式表的超文本标记语言(HTML)或可扩展超文本标记语言(XHTML)、用于动态显示数据和与数据的交互的文档对象模型(DOM)、用于数据定义和交换的可扩展标记语言(XML)以及用于数据交换的可扩展标记语言(XML)、用于数据转换的可扩展样式表语言转换(XSLT)、提供异步通信能力的可扩展标记语言超文本传输协议请求(XMLHttpRequest)对象,以及提供用于组合各技术的胶水(glue)语言的JavaScript。
在非AJAX应用中,在文档对象模型(DOM)的状态和对应的统一资源定位符(URL)之间存在一对一对应。因此,传统的抓取器通常使用主要利用URL的矩阵对搜索空间进行分区[Design and Implementation ofa High-Performance Distributed Web Crawler(高性能分布式Web抓取器的设计和实现),2002年,Vladislav Shkapenyuk、Torsten Suel]。使用所述框架,每个抓取器负责一组特定的URL,其中特定的抓取器负责转到原始URL,并获得有关使用原始URL定位的新URL的信息。当新发现的URL落入分配给另一个抓取器节点的URL集合时,第一节点与第二节点通信,以便向第二节点通知由第一节点新发现的URL。
随着交互式和基于AJAX的JavaScript库的使用增加,支持AJAX的富互联网应用(RIA)的数量迅速增加。在RIA型应用中,在DOM的状态和URL之间不像在非AJAX应用中那样存在一对一对应。因此,传统抓取器中使用的技术通常在此类应用中不能工作或不能很好地工作。例如,抓取器不能仅通过发送URL到达所有状态,搜索空间的分区也不能继续基于URL。
当处理RIA型应用时,需要抓取器以执行事件以便物化新页面,这与典型的传统应用形成对照,在传统应用中,抓取器可以简单地查看目的地URL并标识负责该URL的节点。此外,当处理非AJAX应用时,到达传统Web站点中的页面的成本通常不变,因为在任何点处,抓取器可以简单地跳转到具有该URL的任何页面。但是,当处理RIA时成本有所变化,因为要到达某一状态,通常执行一系列事件,其后通常产生增加的可变成本。对于与覆盖范围和覆盖范围时效性关联的抓取器性能矩阵,与抓取Web页面关联的成本函数是一个重要因素。
发明内容
根据一个实施例,一种用于对抓取空间进行分区的计算机实现的过程包括:计算事件集合中的每个事件的事件标识符以形成标识后的事件集合;将所述标识后的事件集合划分成多个分区;为节点集合中的每个节点分配一个分区,以便由相应节点执行每个分配的分区中的每个事件。响应于判定发现新状态,向其它节点通知所述新状态,其中将与所述新状态关联的信息添加到每个节点处的相应分配的事件ID集合。响应于判定不存在更多通知,所述计算机实现的过程判定是否存在更多待处理事件,以及响应于判定不存在更多待处理事件,所述计算机实现的过程终止。
根据另一个实施例,一种用于对抓取空间进行分区的计算机程序产品包括计算机可读型存储介质,所述介质包含在其上存储的计算机可执行程序代码。所述计算机可执行程序代码包括:用于计算事件集合中的每个事件的事件标识符以形成标识后的事件集合的计算机可执行程序代码;用于将所述标识后的事件集合划分成多个分区的计算机可执行程序代码;用于为节点集合中的每个节点分配一个分区的计算机可执行程序代码;用于由相应节点执行每个分配的分区中的每个事件的计算机可执行程序代码;用于判定是否发现新状态的计算机可执行程序代码;响应于判定发现所述新状态,用于向其它节点通知所述新状态的计算机可执行程序代码;用于将与所述新状态关联的信息添加到每个节点处的相应分配的事件ID集合的计算机可执行程序代码;用于判定是否存在更多的通知的计算机可执行程序代码;响应于判定不存在更多的通知,用于判定是否存在更多的待处理事件的计算机可执行程序代码;以及响应于判定不存在更多的待处理事件,用于终止的计算机可执行程序代码。
根据另一个实施例,一种用于对抓取空间进行分区的装置包括:通信光纤通道网络;与所述通信光纤通道网络相连的存储器,其中所述存储器包含计算机可执行程序代码;与所述通信光纤通道网络相连的通信单元;与所述通信光纤通道网络相连的输入/输出单元;与所述通信光纤通道网络相连的显示器;以及与所述通信光纤通道网络相连的处理器单元。所述处理器单元执行所述计算机可执行程序代码以引导所述装置执行以下操作:计算事件集合中的每个事件的事件标识符以形成标识后的事件集合;将所述标识后的事件集合划分成多个分区;为节点集合中的每个节点分配一个分区;由相应节点执行每个分配的分区中的每个事件;判定是否发现新状态;以及响应于判定发现新状态,向其它节点通知所述新状态。所述处理器单元还执行所述计算机可执行程序代码以引导所述装置执行以下操作:将与所述新状态关联的信息添加到每个节点处的相应分配的事件ID集合;判定是否存在更多通知;响应于判定不存在更多通知,判定是否存在更多待处理事件;以及响应于判定不存在更多待处理事件而终止。
附图说明
为了更全面地理解本发明,现在结合附图和具体实施方式参考下面的简单描述,其中相同的参考标号表示相同的部件,这些附图是:
图1是可操作以用于本公开的各实施例的示例性网络数据处理系统的框图;
图2是可操作以用于本公开的各实施例的示例性数据处理系统的框图;
图3是可操作以用于本公开的各实施例的分区系统的框图;
图4是可操作以用于本公开的各实施例的图3的分区系统中的数据流的框图;
图5是根据本公开的一个实施例的图3的分区系统中使用的过程的流程图;
图6是跨可操作以用于本公开的各实施例的图3的分区系统中的所有节点使用的过程的流程图;以及
图7提供在可操作以用于本公开的各实施例的图3的分区系统的备选模式中使用的过程的流程图。
具体实施方式
尽管下面提供了一个或多个实施例的示例性实现,但是所公开的系统和/或方法可以使用任意多种技术实现。本发明不应被限于下面示出的示例性实现、附图和技术,其中包括此处示出的示例性设计和实现,而是可以在所附权利要求及其完整范围等价物的范围内进行修改。
所属技术领域的技术人员知道,本发明的各方面可以实现为系统、方法或计算机程序产品。因此,本发明的各方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,本发明的各方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读数据存储介质的任意组合。计算机可读数据存储介质例如可以是—但不限于—电、磁、光、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读数据存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑盘只读存储器(CD-ROM)、光存储设备或者磁存储设备、或者上述的任意合适的组合。在本文件中,计算机可读数据存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的信号可以采用多种形式,包括—但不限于—电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括—但不限于—无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的各方面操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。Java和所有基于Java的商标和图标都为Oracle和/或其关联公司在美国、其它国家或者美国以及其它国家的商标。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。
这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机或其它可编程数据处理装置以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacturer)。
也可以把计算机程序指令加载到计算机或其它可编程数据处理装置上,使得在计算机或其它可编程数据处理装置上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。
现在参考附图,具体参考图1-2,提供了其中可实现示例性实施例的数据处理环境的示例性图。应该理解,图1-2仅作为示例,并非旨在断言或暗示对其中可以实现不同实施例的环境的任何限制。可做出对所示环境的许多修改。
图1示出其中可实现对抓取空间进行分区的示例性实施例的网络数据处理系统的图形表示。网络数据处理系统100是其中可实现示例性实施例的计算机的网络。网络数据处理系统100包含网络102,该网络是用于提供在网络数据处理系统100内连接在一起的各种设备与计算机之间的通信链路的介质。网络102可以包括诸如有线、无线通信链路或光缆之类的连接。
在所示实例中,服务器104和服务器106连同存储单元108一起与网络102相连。此外,客户机110、112和114与网络102相连。客户机110、112和114例如可以是个人计算机或网络计算机。在所示实例中,服务器104将诸如引导文件、操作系统映像及应用之类的数据提供给客户机110、112和114。客户机110、112和114在该实例中是服务器104的客户机。网络数据处理系统100可以包括其它服务器、客户机以及未示出的其它设备。
在所示实例中,网络数据处理系统100是因特网,同时网络102代表全球范围内使用传输控制协议/网际协议(TCP/IP)协议集来相互通信的网络和网关的集合。在因特网的核心是主节点或主机之间的高速数据通信线路的主干,它包括数以千计的商业、政府、教育以及其它路由数据和消息的计算机系统。当然,网络数据处理系统100也可以实现为许多不同类型的网络,例如内联网、局域网(LAN)或广域网(WAN)。图1旨在作为一个实例,并非旨在作为对不同示例性实施例的体系结构限制。
参考图2,提供了可操作以用于本公开的对抓取空间进行分区的各实施例的示例性数据处理系统的框图。在该示例性实例中,数据处理系统200包括通信光纤通道网络(fabric)202,其在处理器单元204、存储器206、永久性存储装置208、通信单元210、输入/输出(I/O)单元212和显示器214之间提供通信。
处理器单元204用于执行可以被载入存储器206的软件的指令。处理器单元204可以是包含一个或多个处理器的集合或者可以是多处理器核心,具体取决于特定实现。进一步,处理器单元204可以使用一个或多个异构处理器系统来实现,其中在单个芯片上同时存在主处理器与辅助处理器。作为另一个示例性实例,处理器单元204可以是包含同一类型的多个处理器的对称多处理器系统。
存储器206和永久性存储装置208是存储设备216的实例。存储设备是任何能够存储信息的硬件,所述信息例如包括但不限于数据、功能形式的程序代码和/或其它合适的临时性和/或持久性信息。在这些实例中,存储器206例如可以是随机存取存储器或任何其它合适的易失性或非易失性存储设备。永久性存储装置208可以采取各种形式,具体取决于特定实现。例如,永久性存储装置208可以包含一个或多个组件或设备。例如,永久性存储装置208可以是硬盘驱动器、闪存、可重写光盘、可重写磁带或上述各项的某种组合。永久性存储装置208使用的介质也可以是移动的。例如,可移动硬盘驱动器可以用于永久性存储装置208。
在这些实例中,通信单元210提供与其它数据处理系统或设备的通信。在这些实例中,通信单元210是网络接口卡。通信单元210可以通过使用物理和无线通信链路两者之一或全部来提供通信。
输入/输出单元212允许使用其它可以连接到数据处理系统200的设备来输入和输出数据。例如,输入/输出单元212可以通过键盘、鼠标和/或某种其它合适的输入设备来提供连接以实现用户输入。进一步,输入/输出单元212可以将输出发送到打印机。显示器214提供用于向用户显示信息的机构。
用于操作系统、应用和/或程序的指令可以位于存储设备216中,存储设备216通过通信光纤通道网络202与处理器单元204通信。在这些示例性实例中,指令以功能形式位于永久性存储装置208中。这些指令可以被加载到存储器206以便由处理器单元204运行。处理器单元204可以使用计算机实现的指令(可以位于存储器(例如存储器206)中)执行不同实施例的过程。
这些指令被称为程序代码、计算机可用程序代码或计算机可读程序代码,它们可以由处理器单元204中的处理器读取和执行。在不同的实施例中,程序代码可以包含在不同的物理或有形计算机可读存储介质(例如存储器206或永久性存储装置208)中。
程序代码218以功能形式位于选择性地可移动的计算机可读存储介质220中,并可以被加载或传输到数据处理系统200以便由处理器单元204执行。在这些实例中,程序代码218和计算机可读存储介质220形成计算机程序产品222。在一个实例中,计算机可读存储介质220可以采取有形形式,例如光盘或磁盘,光盘或磁盘被插入或放置到属于永久性存储装置208的一部分的驱动器或其它器件中,以便传输到属于永久性存储装置208的一部分的存储设备(例如硬盘驱动器)。在有形形式中,计算机可读存储介质220还可以采取永久性存储装置的形式,例如连接到数据处理系统200的硬盘驱动器、拇指驱动器或闪存。有形形式的计算机可读存储介质220也被称为计算机可记录存储介质。在某些情况下,计算机可读存储介质220可能不可移动。
备选地,可以通过到通信单元210的通信链路和/或到输入/输出单元212的连接,将程序代码218从计算机可读存储介质220传输到数据处理系统200。在所述示例性实例中,通信链路和/或连接可以是物理或无线的。计算机可读介质还可以采取非有形介质的形式,例如包含程序代码的通信链路或无线传输。
在某些示例性实施例中,可以通过网络将程序代码218从另一个设备或数据处理系统下载到永久性存储装置208,以便在数据处理系统200中使用。例如,可以通过网络将存储在服务器数据处理系统内的计算机可读存储介质中的程序代码从该服务器下载到数据处理系统200。提供程序代码218的数据处理系统可以是服务器计算机、客户端计算机,或者能够存储和传输程序代码218的某种其它设备。
使用图2的数据处理系统200作为实例,提供用于对抓取空间进行分区的计算机实现的过程。处理器单元204在从存储设备216检索的文档对象模型中,计算事件集合中的每个事件的事件标识符,以便形成标识后的事件集合。处理器单元204将标识后的事件集合划分成多个分区,并为节点集合中的每个节点分配一个分区。处理器单元204启动由相应节点执行每个分配的分区中的每个事件。响应于判定发现新状态,处理器单元204使用通信单元210向其它节点通知新状态,其中将与新状态关联的信息添加到每个节点处的相应分配的事件ID集合。响应于判定不存在更多的通知,处理器单元204判定是否存在更多的待处理事件,并且响应于判定不存在更多的待处理事件,处理器单元204结束分区过程。
参考图3,提供了可操作以用于本公开的各实施例的分区系统的框图。分区系统300是用于对富互联网应用的抓取空间进行分区以实现分布式抓取的系统的一个实例。
分区系统300利用底层数据处理系统(例如图1的网络数据处理系统100中的服务器106或图2的数据处理200)的支持。分区系统300包括多个功能组件,包括DOM302、事件集合304、事件标识器306、事件分区器308、事件分配器310、节点集合312和节点消息传送器314。分区系统300的组件可以实现为一组单独的组件(如在图3中),或者以某种功能组合实现而不丢失能力。
DOM302提供定义事件集合304的能力,事件集合304包括富互联网应用的对象表示的不同状态。DOM302是表示一组不同状态和关联的JavaScript事件的数据结构。
事件集合304定义一组JavaScript事件,这些JavaScript事件在相应的文档对象模型数据结构(例如DOM302)中定义。事件是可以由JavaScript检测的操作。在Web页面上使用的每个元素具有一个或多个关联的特定事件,这些事件可以触发JavaScript。例如,与按钮元素关联的onclick事件用于指示当用户选择(单击)按钮时执行功能。典型的事件包括单击元素、页面完成加载、图像完成加载、鼠标光标在元素上移动、输入字段进行输入、提交表单和执行键击。
事件标识器306提供唯一标识与DOM302的特定实例关联的每个JavaScript事件的能力。事件标识器306表示使用选定标识方法在文档对象模型中标识事件的一组能力。例如,一种标识方法可以包括将事件索引与文档对象模型一起使用,或者可以使用特定事件的XML路径语言路径(XPath)作为事件标识符。XML路径语言是一种查询语言,其使用路径表达式在XML文档中浏览以便从XML文档选择节点,并提供语法以便定义XML文档的各部分。
事件分区器308提供将使用事件标识器306标识的事件划分成预定段或分区的能力。事件分区器308提供一组能力,包括可选择的分区方法。分区方法包括将分区定义为每个节点的特定数量的事件、每个节点的某一百分比的事件、通过除以节点数量确定的某一数量的分区后的事件,以及与每个节点的处理能力成比例的某一数量的分区后的事件。选择用于分区的方法还可以取决于用于标识事件的方法。
事件分区器308可以实现为所有单独节点都可以调用的功能。在一个实施例中,事件分区器308可以实现为单独抓取器的模块,其分散节点集合,从而在事件属于相应节点时,使节点能够识别而无需其它通信。在另一个实施例中,事件分区器308可以实现为管理所有节点的集中单元模块,其中在节点和中央单元之间需要附加通信以便同步信息。
事件分配器310提供将事件分区器308的结果分配或分派给节点集合312中的每个节点的能力。事件分配器310能够将事件作为JavaScript事件列表分配给节点集合312中的节点,或者包括适用于节点集合312中的特定节点的数组或数据库表项的其它数据结构。
节点集合312提供处理事件集合中的已分配事件的能力,该事件先前分配给节点集合312中的特定节点。每个节点是负责处理所有分配的事件的工作集合或池中的工作单元,其中每个已分配事件表示一个工作单位。在处理事件期间,节点可以发现其它新状态。响应于发现新状态,节点使用节点消息传送器314向所有其它节点通知或通告发现。节点消息传送器314可以是现有通信网络或节点集合312的专用通信机构。通信包括广播、令牌传递以及张贴到公共站点,其中其它节点定期查看张贴以便标识附加工作项目。作为接收有关新发现状态的通知的结果,其它节点添加新发现的状态以及到达该状态所需的JavaScript操作序列。
参考图4,提供可操作以用于本公开的各实施例的分区系统中的数据流的框图。流程400是用于对富互联网应用的抓取空间进行分区以实现分布式抓取的系统的逻辑单元之间的过程流程的一个实例(如在图3的分区系统300中)。
并非如在当前技术中进行URL分区,所公开的分区系统的实施例使用JavaScript事件执行RIA分区。所公开的框架的实施例包括节点集合,这些节点具有以下能力:发现DOM的新状态和不同状态;交换状态的信息,并且每个节点在每个DOM中执行分配的事件。
文档对象模型402是包括一组JavaScript事件的数据结构。文档对象模型402中的每个JavaScript事件被处理以分配唯一的ID,以便形成标识后的事件404。可以使用各种已知方法之一计算事件标识符。例如,使用第一方法,将使用关联的DOM中的事件的索引。可以通过使用宽度优先搜索从根朝向叶遍历关联的DOM来计算索引。使用该方法,第一个遇到的JavaScript事件具有索引0,并且接下来遇到的JavaScript事件具有索引1,依此类推,直到遇到并索引所有的JavaScript事件。在第二方法中,将JavaScript事件的XPath视为事件ID。还可以使用其它方法以便针对每个待处理JavaScript事件生成唯一标识符。
不管计算事件ID的方法为何,计算事件ID之后,使用利用事件分区器(例如,图3的事件分区器308)的分区事件406的过程将事件ID集合分为组、段或分区。如前所述,事件分区器也可以在单独节点上托管,而不是在集中站点处托管,因为文档对象模型的分区功能将一致地划分搜索空间。当事件分区器是集中式的时,可以按需更新或替换分区方法以便跨所有节点使用。
分区事件406的输出采取分区后的事件1408、分区后的事件2410到分区后的事件n412的形式。分区数量取决于以节点(例如节点1414、节点2416到节点n418)形式提供的处理资源。为节点集合中的每个节点分配一个或多个范围的ID(分区后的事件)。分区和分配确保在单独节点的搜索空间中没有重叠,因此将特定事件定向到每个节点以便执行。在相应节点中处理事件期间,可以发现新状态,如在发现的状态420中。当发现新状态时,在节点之间共享信息以便确保完全覆盖任何关联的事件。
通常,代表RIA的相应DOM中的事件数量远高于状态数量。执行在相应DOM中定义的所有事件,以便确保不会丢失与相应DOM关联的状态。通过使用JavaScript事件对搜索空间进行分区,当在处理分配的事件期间发现新事件时,通常仅需要节点之间的通信,同时允许节点执行分配的事件而无需与其它节点通信,并且在搜索空间中没有重叠。因此,所公开的过程的实施例通常需要节点之间的最少通信,同时确保执行相应DOM中的所有事件,从而使能全面抓取所表示的RIA。
因为使用和分配唯一事件标识符,所以单独节点通常不探索同一搜索空间,并且不需要在节点之间发送许多消息以便执行搜索空间分区。所公开的分区系统的固有特性是一个事件不会被分配给两个或更多节点,因此两个或更多节点从不为了发现状态而执行同一事件。
参考图5,提供了可操作以用于本公开的各实施例的分区系统中使用的过程的流程图。过程500是使用用于对富互联网应用的抓取空间进行分区以实现分布式抓取的系统的过程的一个实例(如在图3的分区系统300中)。
过程500开始(步骤502),并接收包括事件集合的文档对象模型(DOM)(步骤504)。如前所述,事件集合是代表富互联网应用(RIA)的一组JavaScript事件。所接收的DOM可以根据需要包括一个或多个DOM以便表示特定RIA。
过程500计算事件集合中的每个事件的事件ID以便形成标识后的事件集合(步骤506)。每个事件标识符是针对在DOM中定义的相应事件集合计算的一组标识符中的唯一值。
过程500将标识后的事件集合划分成或分为多个分区(步骤508)。分区数量通常取决于可用于处理标识的事件的节点数量,并与可用节点数量成比例。当资源限制较少时,可以通过分配更多的节点以便处理标识后的事件集合(而不是分配较少的节点),获得增加的并行性。
过程500为节点集合中的每个节点分配一个分区(步骤510)。在某些情况下,可以使用所公开的过程为节点分配一个或多个分区而不丧失功能。将多个分区分配给节点只是延长该节点处的处理时间,因为处理额外事件需要额外工作。
将事件划分成分区取决于用于计算事件标识符的方法。使用前面的标识符计算实例,当使用第一方法时,可以使用范围和模数函数实现事件标识符的划分。例如,当两个节点可用时,为第一节点分配所有偶数事件,为第二节点分配所有奇数事件。概括该实例然后得出,对于n个节点,每个节点接收1/n的事件集合。对于每个事件,标识符模数n提供负责执行与事件标识符关联的特定事件的节点的索引。
当使用第二方法时,可以使用相应DOM的树结构并将不同分支分配给不同节点来完成划分。
过程500确保所有节点接收初始种子URL以便启动处理(步骤512)。每个节点执行每个分配的分区中的每个事件(步骤514)。在每个节点上处理分配的事件期间,过程500判定是否发现潜在的新状态(步骤516)。
响应于判定未发现潜在的新状态,在特定节点处,过程500向前跳到步骤522。响应于判定发现潜在的新状态,在特定节点处,过程500向其它节点通知潜在的新状态(步骤518)。可以以多种格式完成通知。通知方法包括通过以下操作传送信息:节点广播,或者使用令牌环,或者传送先前未被广播的新发现状态的其它手段,所述信息包括到达新状态所需的JavaScript操作序列。
发现新状态或者从其它节点接收新状态时,每个节点将与新状态关联的信息添加到分配的事件标识符集合的相应待办事项(to do list)列表(步骤520)。
过程500判定是否存在更多通知(步骤522)。响应于判定存在更多通知,过程500循环返回以便如先前那样执行步骤518。响应于判定不存在更多通知,过程500判定是否存在更多待处理事件(步骤524)。响应于判定存在更多待处理事件,过程500循环返回以便如先前那样执行步骤514。响应于判定不存在更多待处理事件,过程500终止(步骤526)。
公开了一种用于对富互联网应用的抓取空间进行分区以实现分布式抓取的过程。所公开的过程包括在文档对象模型(DOM)中标识事件集合中的事件的事件标识符,其中使用以下各项之一分配标识符:第一计算,其在DOM中使用事件索引,其中通过使用宽度优先搜索从根开始向外朝向叶遍历DOM来计算索引,其中为第一个遇到的JavaScript事件分配索引值0,并且为接下来的每个JavaScript事件分配从前一个JavaScript事件递增1的索引值;以及第二计算,其中所标识事件的XPath形成事件标识符。
所公开的过程还在节点之间划分标识的事件标识符,其中根据用于计算事件标识符的方法确定划分,其中当使用第一计算时,事件标识符的划分使用范围和模数函数,其中对于n个节点,每个节点将获得1/n的事件集合,并且对于每个事件,标识符模数n提供负责执行该特定事件标识符的节点的索引,并且其中当使用第二计算时,使用DOM的树结构确定划分,并将不同分支分配给不同节点。
响应于使每个节点知晓关联的事件,所有节点使用所公开的过程接收初始种子统一资源定位符(URL),并且每个节点执行分配给每个节点的事件,以便发现潜在的新状态。
响应于发现新状态,所公开的过程的节点将以前未告知的新发现状态连同到达新发现状态所需的JavaScript操作序列一起传送到其它节点。响应于发现新状态或者从其它节点接收新状态中的至少一个,每个节点将新状态添加到关联的待办事项。
所公开的过程还判定节点是否具有要广播的任何事物或者要执行的任何事件,并且响应于判定节点没有要广播的任何事物或者要执行的任何事件,所公开的过程终止。
参考图6,提供了跨可操作以用于本公开的各实施例的分区系统中的所有节点使用的过程的流程图。过程600是使用用于对富互联网应用的抓取空间进行分区以实现分布式抓取的系统的过程的一部分的一个实例(如在图3的分区系统300中)。
过程600表示过程500的一部分,其适用于参与分区过程的所有节点。
参考图7,提供了可操作以用于本公开的各实施例的分区系统的备选模式中使用的过程的流程图。每个备选模式是图5的过程500的一部分的实例,其使用用于对富互联网应用的抓取空间进行分区以实现分布式抓取的系统(如在图3的分区系统300中)。
第一实例表示图5的过程500的一部分,其适用于分区过程的集中实现。当分区是集中式的时,需要所有节点和其它处理模块以便与集中单元通信,从而增加消息业务以及控制。使用分区的集中实现将图5的过程500的步骤510实现为变型510A。
第二实例表示图5的过程500的一部分,其适用于分区过程的分散实现。当分区分散并在所有节点上托管时,节点和其它处理模块之间的通信比使用集中单元需要的通信减少,从而减少消息业务以及控制。使用分区的分散实现将图5的过程500的步骤510实现为变型510B,其将分区分配给当前节点。
因此,在一个示例性实施例中提供了一种用于对抓取空间进行分区的计算机实现的过程。所述计算机实现的过程计算事件集合中的每个事件的事件标识符以便形成标识后的事件集合,将标识后的事件集合划分成多个分区,向节点集合中的每个节点分配一个分区,并且由相应节点执行每个分配的分区中的每个事件。响应于判定发现新状态,向其它节点通知新状态,其中将与新状态关联的信息添加到每个节点处的相应分配的事件ID集合。响应于判定不存在更多的通知,计算机实现的过程判定是否存在更多的待处理事件,并且响应于判定不存在更多的待处理事件,计算机实现的过程结束。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以下的权利要求中的对应结构、材料、操作以及所有功能性限定的装置或步骤的等同替换,旨在包括任何用于与在权利要求中具体指出的其它单元相组合地执行该功能的结构、材料或操作。所给出的本发明的描述在于示意和描述,并非是穷尽性的,也并非将本发明限定到所公开的形式。在不偏离本发明的范围和精神的情况下,对于本领域的普通技术人员而言,许多修改和变化都将是显而易见的。实施例的选择和描述,旨在最好地解释本发明的原理、实际应用,当适合于所构想的特定应用时,可使本技术领域的普通技术人员理解本发明带有各种修改的各实施例。
本发明可以采取完全的硬件实施方式、完全的软件实施方式或同时包含硬件和软件元素的实施例的形式。在一个优选实施例中,本发明在软件中实现,其中包括但不限于固件、驻留软件、微代码,以及本领域的技术人员识别的其它软件介质。
重要的是指出,虽然在功能完备的数据处理系统上下文中描述了本发明,但是本领域的普通技术人员将理解,本发明的过程能够以计算机可读数据存储介质的形式分发,所述计算机可读数据存储介质上以各种形式存储计算机可执行指令。计算机可读数据存储介质的实例包括可记录型介质,例如软盘、硬盘驱动器、RAM、CD-ROM、DVD-ROM。所述计算机可执行指令可以采取编码格式的形式,这些代码格式在特定数据处理系统中针对实际使用进行解码。
适合于存储和/或执行计算机可执行的指令的数据处理系统将包括至少一个通过系统总线直接或间接连接到存储元件的处理器。所述存储元件可以包括在程序代码的实际执行期间采用的本地存储器、大容量存储装置以及提供至少某些程序代码的临时存储以减少必须在执行期间从大容量存储装置检索代码的次数的高速缓冲存储器。
输入/输出或I/O设备(包括但不限于键盘、显示器、指点设备等)可以直接或通过中间I/O控制器与系统相连。
网络适配器也可以被连接到系统以使所述数据处理系统能够通过中间专用或公共网络变得与其他数据处理系统或远程打印机或存储设备相连。电话调制解调器、电缆调制解调器和以太网卡只是几种当前可用的网络适配器类型。
Claims (15)
1.一种用于对抓取空间进行分区的计算机实现的过程,所述计算机实现的过程包括:
计算事件集合中的每个事件的事件标识符以形成标识后的事件集合;
将所述标识后的事件集合划分成多个分区;
为节点集合中的每个节点分配一个分区;
由相应节点执行每个分配的分区中的每个事件;
判定是否发现新状态;
响应于判定发现新状态,向其它节点通知所述新状态;
将与所述新状态关联的信息添加到每个节点处的相应分配的事件ID集合;
判定是否存在更多通知;
响应于判定不存在更多通知,判定是否存在更多待处理事件;以及
响应于判定不存在更多待处理事件而终止。
2.根据权利要求1的计算机实现的过程,其中计算事件集合中的每个事件的事件标识符以形成标识后的事件集合进一步包括:
接收包括所述事件集合的文档对象模型,其中所述事件集合中的每个事件是JavaScript事件。
3.根据权利要求1的计算机实现的过程,其中计算事件集合中的每个事件的事件标识符以形成标识后的事件集合进一步包括:
从包括以下项的组选择计算方法:
第一计算,其在文档对象模型中使用事件索引,其中通过使用宽度优先搜索从根开始向外朝向叶遍历所述文档对象模型来计算所述索引,其中为第一个遇到的JavaScript事件分配索引值0,并且为接下来遇到的每个JavaScript事件分配从前一个遇到的JavaScript事件递增1的索引值;以及
第二计算,其中所述事件集合中的已标识事件的XPath形成事件标识符。
4.根据权利要求3的计算机实现的过程,其中将所述标识后的事件集合划分成多个分区进一步包括:
在节点之间划分标识后的事件标识符,其中根据用于计算所述事件标识符的所述计算方法确定划分,其中当使用所述第一计算时,所述事件标识符的划分使用范围和模数函数,其中对于n个节点,每个节点接收1/n的事件集合,并且对于每个事件,标识符模数n提供负责执行该特定事件标识符的节点的索引,并且其中当使用所述第二计算时,使用所述文档对象模型的树结构确定所述划分,并将每个不同分支分配给不同节点。
5.根据权利要求1的计算机实现的过程,其中计算事件集合中的每个事件的事件标识符以形成标识后的事件集合进一步定义富互联网应用的用于分布式抓取的抓取空间。
6.根据权利要求1的计算机实现的过程,其中将与所述新状态关联的信息添加到每个节点处的相应分配的事件ID集合进一步包括:
添加包括到达所述新状态所需的JavaScript操作序列的信息。
7.根据权利要求1的计算机实现的过程,其中向其它节点通知所述新状态进一步包括:
通过以下操作之一传送所述信息:节点广播;使用令牌环;张贴到公共站点,其中其它节点定期查看张贴以便标识先前尚未通知的新发现状态的附加工作项目。
8.一种用于对抓取空间进行分区的装置,所述装置包括:
适于计算事件集合中的每个事件的事件标识符以形成标识后的事件集合的模块;
适于将所述标识后的事件集合划分成多个分区的模块;
适于为节点集合中的每个节点分配一个分区的模块;
适于由相应节点执行每个分配的分区中的每个事件的模块;
适于判定是否发现新状态的模块;
响应于判定发现新状态,适于向其它节点通知所述新状态的模块;
适于将与所述新状态关联的信息添加到每个节点处的相应分配的事件ID集合的模块;
适于判定是否存在更多通知的模块;
响应于判定不存在更多通知,适于判定是否存在更多待处理事件的模块;以及
响应于判定不存在更多待处理事件,适于终止的模块。
9.根据权利要求8的装置,其中适于计算事件集合中的每个事件的事件标识符以形成标识后的事件集合的模块进一步包括:
适于接收包括所述事件集合的文档对象模型的单元,其中所述事件集合中的每个事件是JavaScript事件。
10.根据权利要求8的装置,其中适于计算事件集合中的每个事件的事件标识符以形成标识后的事件集合的模块进一步包括:
适于从包括以下项的组选择计算方法的单元:
第一计算,其在文档对象模型中使用事件索引,其中通过使用宽度优先搜索从根开始向外朝向叶遍历所述文档对象模型来计算所述索引,其中为第一个遇到的JavaScript事件分配索引值0,并且为接下来遇到的每个JavaScript事件分配从前一个遇到的JavaScript事件递增1的索引值;以及
第二计算,其中所述事件集合中的已标识事件的XPath形成事件标识符。
11.根据权利要求10的装置,其中适于将所述标识后的事件集合划分成多个分区的模块进一步包括:
适于在节点之间划分标识后的事件标识符的单元,其中根据用于计算所述事件标识符的所述计算方法确定划分,其中当使用所述第一计算时,所述事件标识符的划分使用范围和模数函数,其中对于n个节点,每个节点接收1/n的事件集合,并且对于每个事件,标识符模数n提供负责执行该特定事件标识符的节点的索引,并且其中当使用所述第二计算时,使用所述文档对象模型的树结构确定所述划分,并将每个不同分支分配给不同节点。
12.根据权利要求8的装置,其中适于计算事件集合中的每个事件的事件标识符以形成标识后的事件集合的模块进一步定义富互联网应用的用于分布式抓取的抓取空间。
13.根据权利要求8的装置,其中适于将与所述新状态关联的信息添加到每个节点处的相应分配的事件ID集合的模块进一步包括:
适于添加包括到达所述新状态所需的JavaScript操作序列的信息的单元。
14.根据权利要求8的装置,其中适于向其它节点通知所述新状态的模块进一步包括:
适于通过以下操作之一传送所述信息的单元:节点广播;使用令牌环;张贴到公共站点,其中其它节点定期查看张贴以便标识先前尚未通知的新发现状态的附加工作项目。
15.一种用于对抓取空间进行分区的装置,所述装置包括:
通信光纤通道网络;
存储器,其与所述通信光纤通道网络相连,其中所述存储器包含计算机可执行程序代码;
通信单元,其与所述通信光纤通道网络相连;
输入/输出单元,其与所述通信光纤通道网络相连;
显示器,其与所述通信光纤通道网络相连;以及
处理器单元,其与所述通信光纤通道网络相连,其中所述处理器单元执行所述计算机可执行程序代码以引导所述装置执行以下操作:
计算事件集合中的每个事件的事件标识符以形成标识后的事件集合;
将所述标识后的事件集合划分成多个分区;
为节点集合中的每个节点分配一个分区;
由相应节点执行每个分配的分区中的每个事件;
判定是否发现新状态;
响应于判定发现新状态,向其它节点通知所述新状态;
将与所述新状态关联的信息添加到每个节点处的相应分配的事件ID集合;
判定是否存在更多通知;
响应于判定不存在更多通知,判定是否存在更多待处理事件;以及
响应于判定不存在更多待处理事件而终止。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CA2790479A CA2790479C (en) | 2012-09-24 | 2012-09-24 | Partitioning a search space for distributed crawling |
CA2790479 | 2012-09-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103678471A true CN103678471A (zh) | 2014-03-26 |
CN103678471B CN103678471B (zh) | 2017-03-29 |
Family
ID=50316019
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310435241.4A Active CN103678471B (zh) | 2012-09-24 | 2013-09-23 | 对用于分布式抓取的搜索空间进行分区的方法和装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9710557B2 (zh) |
CN (1) | CN103678471B (zh) |
CA (1) | CA2790479C (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107211300A (zh) * | 2015-01-26 | 2017-09-26 | 诺基亚通信公司 | 分析和分类信令集合或呼叫 |
CN108021606A (zh) * | 2016-10-31 | 2018-05-11 | 甲骨文国际公司 | 基于对象突变事件确定系统信息 |
CN109302300A (zh) * | 2017-07-25 | 2019-02-01 | 阿里巴巴集团控股有限公司 | 数据分配方法及装置、数据处理方法及服务器 |
CN110888941A (zh) * | 2019-10-23 | 2020-03-17 | 贝壳技术有限公司 | 用于业务场景内的连带关系事件的处理方法及处理系统 |
CN111316243A (zh) * | 2017-10-31 | 2020-06-19 | 起元技术有限责任公司 | 基于状态更新的一致性管理计算集群 |
US11599504B2 (en) | 2016-10-27 | 2023-03-07 | Oracle International Corporation | Executing a conditional command on an object stored in a storage system |
US11726979B2 (en) | 2016-09-13 | 2023-08-15 | Oracle International Corporation | Determining a chronological order of transactions executed in relation to an object stored in a storage system |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2838911C (en) * | 2014-01-09 | 2020-05-05 | Ibm Canada Limited - Ibm Canada Limitee | Tracking javascript actions |
US10210001B2 (en) * | 2015-11-04 | 2019-02-19 | Observepoint, Inc. | Automatic execution of objects in a user interface |
US10360133B2 (en) | 2016-02-04 | 2019-07-23 | Observepoint Inc. | Analyzing analytic element network traffic |
US10826802B2 (en) | 2016-02-09 | 2020-11-03 | Observepoint, Inc. | Managing network communication protocols |
CN114637756B (zh) * | 2021-10-20 | 2024-08-13 | 支付宝(杭州)信息技术有限公司 | 分布式数据处理方法、装置及设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101594377A (zh) * | 2008-05-28 | 2009-12-02 | 国际商业机器公司 | 用于管理Feed数据的系统和方法 |
US20120109930A1 (en) * | 2010-10-29 | 2012-05-03 | Fujitsu Limited | Technique for coordinating the distributed, parallel crawling of interactive client-server applications |
CN102480524A (zh) * | 2010-11-26 | 2012-05-30 | 中国科学院声学研究所 | 一种网页爬虫协作方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7054952B1 (en) * | 1999-12-09 | 2006-05-30 | International Business Machines Corp. | Electronic document delivery system employing distributed document object model (DOM) based transcoding and providing interactive javascript support |
US7010576B2 (en) * | 2002-05-30 | 2006-03-07 | International Business Machines Corporation | Efficient method of globalization and synchronization of distributed resources in distributed peer data processing environments |
US20060190561A1 (en) | 2002-06-19 | 2006-08-24 | Watchfire Corporation | Method and system for obtaining script related information for website crawling |
US7200675B2 (en) * | 2003-03-13 | 2007-04-03 | Microsoft Corporation | Summary-based routing for content-based event distribution networks |
US7725452B1 (en) * | 2003-07-03 | 2010-05-25 | Google Inc. | Scheduler for search engine crawler |
US8392890B2 (en) * | 2007-10-15 | 2013-03-05 | Software Research, Inc. | Method and system for testing websites |
US7917494B2 (en) * | 2008-07-11 | 2011-03-29 | Adobe Software Trading Company Limited | System and method for a log-based data storage |
US8296722B2 (en) | 2008-10-06 | 2012-10-23 | International Business Machines Corporation | Crawling of object model using transformation graph |
KR20110136881A (ko) | 2009-04-03 | 2011-12-21 | 인터내셔널 비지네스 머신즈 코포레이션 | 협력 크롤링에 의한 리치 인터넷 어플리케이션을 위한 접근성을 향상시키는 방법 및 컴퓨터 프로그램 |
CA2706743A1 (en) | 2010-06-30 | 2010-09-08 | Ibm Canada Limited - Ibm Canada Limitee | Dom based page uniqueness indentification |
TW201222315A (en) | 2010-11-22 | 2012-06-01 | Inst Information Industry | Web page crawling method, web page crawling device and computer program product thereof |
-
2012
- 2012-09-24 CA CA2790479A patent/CA2790479C/en active Active
-
2013
- 2013-09-23 CN CN201310435241.4A patent/CN103678471B/zh active Active
- 2013-09-24 US US14/035,626 patent/US9710557B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101594377A (zh) * | 2008-05-28 | 2009-12-02 | 国际商业机器公司 | 用于管理Feed数据的系统和方法 |
US20120109930A1 (en) * | 2010-10-29 | 2012-05-03 | Fujitsu Limited | Technique for coordinating the distributed, parallel crawling of interactive client-server applications |
CN102480524A (zh) * | 2010-11-26 | 2012-05-30 | 中国科学院声学研究所 | 一种网页爬虫协作方法 |
Non-Patent Citations (1)
Title |
---|
许笑等: "广域网分布式爬虫中的Agent系统与Web划分研究", 《高技术通讯》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107211300A (zh) * | 2015-01-26 | 2017-09-26 | 诺基亚通信公司 | 分析和分类信令集合或呼叫 |
US11726979B2 (en) | 2016-09-13 | 2023-08-15 | Oracle International Corporation | Determining a chronological order of transactions executed in relation to an object stored in a storage system |
US11599504B2 (en) | 2016-10-27 | 2023-03-07 | Oracle International Corporation | Executing a conditional command on an object stored in a storage system |
CN108021606A (zh) * | 2016-10-31 | 2018-05-11 | 甲骨文国际公司 | 基于对象突变事件确定系统信息 |
CN108021606B (zh) * | 2016-10-31 | 2023-09-01 | 甲骨文国际公司 | 基于对象突变事件确定系统信息 |
CN109302300A (zh) * | 2017-07-25 | 2019-02-01 | 阿里巴巴集团控股有限公司 | 数据分配方法及装置、数据处理方法及服务器 |
CN111316243A (zh) * | 2017-10-31 | 2020-06-19 | 起元技术有限责任公司 | 基于状态更新的一致性管理计算集群 |
CN111316243B (zh) * | 2017-10-31 | 2023-11-10 | 起元技术有限责任公司 | 基于状态更新的一致性管理计算集群 |
CN110888941A (zh) * | 2019-10-23 | 2020-03-17 | 贝壳技术有限公司 | 用于业务场景内的连带关系事件的处理方法及处理系统 |
CN110888941B (zh) * | 2019-10-23 | 2023-08-11 | 贝壳技术有限公司 | 用于业务场景内的连带关系事件的处理方法及处理系统 |
Also Published As
Publication number | Publication date |
---|---|
CA2790479C (en) | 2020-12-15 |
US9710557B2 (en) | 2017-07-18 |
CA2790479A1 (en) | 2014-03-24 |
CN103678471B (zh) | 2017-03-29 |
US20140195510A1 (en) | 2014-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103678471A (zh) | 对用于分布式抓取的搜索空间进行分区的方法和装置 | |
US11818049B2 (en) | Processing high volume network data | |
CN105045856B (zh) | 一种基于Hadoop的大数据遥感卫星数据处理系统 | |
CN103380421B (zh) | 用于图形数据的分布式缓存 | |
CN101491006B (zh) | 会合联盟内的近邻间通信 | |
CN106980669B (zh) | 一种数据的存储、获取方法及装置 | |
US10178067B1 (en) | Data center portal applications monitoring | |
US20160219089A1 (en) | Systems and methods for messaging and processing high volume data over networks | |
WO2015055067A1 (en) | Method and apparatus for pushing messages | |
JP2014528126A (ja) | 複数のターゲットへのマルチソースプッシュ通知の分配 | |
CN103338135A (zh) | 一种集群存储容量的实时监控方法 | |
US20120084422A1 (en) | Graph Based Flexible Service Discovery and Management System and Method | |
Al-Doghman et al. | A review of aggregation algorithms for the internet of things | |
CN111008521A (zh) | 生成宽表的方法、装置及计算机存储介质 | |
CN107343021A (zh) | 国网云中应用的一种基于大数据的日志管理系统 | |
CN103138981A (zh) | 一种社交网络分析方法和装置 | |
Ma et al. | Scalable and elastic event matching for attribute-based publish/subscribe systems | |
Nguyen et al. | A low-cost two-tier fog computing testbed for streaming IoT-based applications | |
Parihar et al. | Handling of resource allocation in flying ad hoc network through dynamic graph modeling | |
CN111698326B (zh) | 用于确定云服务资源的成本归属的方法和装置 | |
CN108170832A (zh) | 一种面向工业大数据的异构数据库的监控系统及监控方法 | |
US9100202B2 (en) | Message routing based on modeled semantic relationships | |
CN106599216A (zh) | 一种用于计算机辅助训练课件发布系统 | |
CN111159207B (zh) | 一种信息处理方法和装置 | |
ES2900746T3 (es) | Sistemas y métodos para distribuir eficazmente mensajes de alerta |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |