CHAPTER 4 PROPOSED ARCHITECTURE FOR INCREMENTAL PARALLEL WEBCRAWLER

Similar documents
AN APPROACH TO DESIGN INCREMENTAL PARALLEL WEBCRAWLER

Self Adjusting Refresh Time Based Architecture for Incremental Web Crawler

A crawler is a program that visits Web sites and reads their pages and other information in order to create entries for a search engine index.

CS47300: Web Information Search and Management

Web Crawling. Introduction to Information Retrieval CS 150 Donald J. Patterson

Information Retrieval. Lecture 10 - Web crawling

INTRODUCTION. Chapter GENERAL

Administrivia. Crawlers: Nutch. Course Overview. Issues. Crawling Issues. Groups Formed Architecture Documents under Review Group Meetings CSE 454

FILTERING OF URLS USING WEBCRAWLER

Search Engines. Information Retrieval in Practice

CRAWLING THE WEB: DISCOVERY AND MAINTENANCE OF LARGE-SCALE WEB DATA

Crawling CE-324: Modern Information Retrieval Sharif University of Technology

EXTRACTION OF RELEVANT WEB PAGES USING DATA MINING

Today s lecture. Information Retrieval. Basic crawler operation. Crawling picture. What any crawler must do. Simple picture complications

Running Head: HOW A SEARCH ENGINE WORKS 1. How a Search Engine Works. Sara Davis INFO Spring Erika Gutierrez.

Crawling the Web. Web Crawling. Main Issues I. Type of crawl

Collection Building on the Web. Basic Algorithm

Parallel Crawlers. 1 Introduction. Junghoo Cho, Hector Garcia-Molina Stanford University {cho,

PROJECT REPORT (Final Year Project ) Project Supervisor Mrs. Shikha Mehta

Today s lecture. Basic crawler operation. Crawling picture. What any crawler must do. Simple picture complications

Conclusions. Chapter Summary of our contributions

CS47300: Web Information Search and Management

A GEOGRAPHICAL LOCATION INFLUENCED PAGE RANKING TECHNIQUE FOR INFORMATION RETRIEVAL IN SEARCH ENGINE

Web Crawling. Jitali Patel 1, Hardik Jethva 2 Dept. of Computer Science and Engineering, Nirma University, Ahmedabad, Gujarat, India

The Google File System

Parallel Crawlers. Junghoo Cho University of California, Los Angeles. Hector Garcia-Molina Stanford University.

IJESRT. [Hans, 2(6): June, 2013] ISSN:

Estimating Page Importance based on Page Accessing Frequency

A Framework for adaptive focused web crawling and information retrieval using genetic algorithms

Information Retrieval Spring Web retrieval

A Novel Interface to a Web Crawler using VB.NET Technology

Focused Web Crawler with Page Change Detection Policy

PreFeed: Cloud-Based Content Prefetching of Feed Subscriptions for Mobile Users. Xiaofei Wang and Min Chen Speaker: 饒展榕

THE WEB SEARCH ENGINE

5 Choosing keywords Initially choosing keywords Frequent and rare keywords Evaluating the competition rates of search

Desktop Crawls. Document Feeds. Document Feeds. Information Retrieval

CS6200 Information Retreival. Crawling. June 10, 2015

A Study of the Performance Tradeoffs of a Tape Archive

1. Introduction. 2. Salient features of the design. * The manuscript is still under progress 1

SOURCERER: MINING AND SEARCHING INTERNET- SCALE SOFTWARE REPOSITORIES

DATA MINING II - 1DL460. Spring 2014"

WINDOWS AZURE QUEUE. Table of Contents. 1 Introduction

Information Retrieval May 15. Web retrieval

DATA MINING - 1DL105, 1DL111

CS 347 Parallel and Distributed Data Processing

CS 347 Parallel and Distributed Data Processing

DDS Dynamic Search Trees

The Anatomy of a Large-Scale Hypertextual Web Search Engine

Searching the Web What is this Page Known for? Luis De Alba

General Objectives: To understand the process management in operating system. Specific Objectives: At the end of the unit you should be able to:

Chapter 2: Literature Review

Segregating Data Within Databases for Performance Prepared by Bill Hulsizer

A SURVEY ON WEB FOCUSED INFORMATION EXTRACTION ALGORITHMS

Database System Concepts

Process- Concept &Process Scheduling OPERATING SYSTEMS

Data Structures and Algorithms Dr. Naveen Garg Department of Computer Science and Engineering Indian Institute of Technology, Delhi

Administrative. Web crawlers. Web Crawlers and Link Analysis!

Distributed Web Crawling over DHTs. Boon Thau Loo, Owen Cooper, Sailesh Krishnamurthy CS294-4

Site Audit SpaceX

Crawling. CS6200: Information Retrieval. Slides by: Jesse Anderton

Searching the Deep Web

Searching the Deep Web

Features of a proxy server: - Nowadays, by using TCP/IP within local area networks, the relaying role that the proxy

Query Processing & Optimization

Chapter 12: Indexing and Hashing

Configuring global CAR 73 Overview 73 Configuring aggregate CAR 73 Configuration procedure 73 Configuration example 73

Chapter 13: Query Processing

UNIT-V WEB MINING. 3/18/2012 Prof. Asha Ambhaikar, RCET Bhilai.

Maintaining Mutual Consistency for Cached Web Objects

Introduction to Information Retrieval

Distributed Systems 26. Mobile Ad Hoc Mesh Networks

SEO WITH SHOPIFY: DOES SHOPIFY HAVE GOOD SEO?

Operations on Heap Tree The major operations required to be performed on a heap tree are Insertion, Deletion, and Merging.

Searching the Web for Information

Ch 4 : CPU scheduling

Chapter 12: Query Processing. Chapter 12: Query Processing

Implementation of a High-Performance Distributed Web Crawler and Big Data Applications with Husky

CRAWLING THE CLIENT-SIDE HIDDEN WEB

How to Evaluate the Effectiveness of URL Normalizations

Google Search Appliance

Lecture 13 Concurrent Programming

Information Retrieval

Chapter 11: Indexing and Hashing

Chapter 12: Query Processing

Today we shall be starting discussion on search engines and web crawler.

How To Construct A Keyword Strategy?

! A relational algebra expression may have many equivalent. ! Cost is generally measured as total elapsed time for

Chapter 13: Query Processing Basic Steps in Query Processing

Lixia Zhang M. I. T. Laboratory for Computer Science December 1985

MAPILab Statistics for SharePoint User Guide

Data Structure. IBPS SO (IT- Officer) Exam 2017

Chapter 12: Indexing and Hashing. Basic Concepts

DiffServ Architecture: Impact of scheduling on QoS

B.H.GARDI COLLEGE OF ENGINEERING & TECHNOLOGY (MCA Dept.) Parallel Database Database Management System - 2

Advanced Crawling Techniques. Outline. Web Crawler. Chapter 6. Selective Crawling Focused Crawling Distributed Crawling Web Dynamics

Automated Online News Classification with Personalization

CS101 Lecture 30: How Search Works and searching algorithms.

Effective Page Refresh Policies for Web Crawlers

Architecture of A Scalable Dynamic Parallel WebCrawler with High Speed Downloadable Capability for a Web Search Engine

14.7 Dynamic Linking. Building a Runnable Program

Transcription:

CHAPTER 4 PROPOSED ARCHITECTURE FOR INCREMENTAL PARALLEL WEBCRAWLER 4.1 INTRODUCTION In 1994, the World Wide Web Worm (WWWW), one of the first web search engines had an index of 110,000 web pages [2] but now a day s most of the popular search engines claim to have billions of web pages indexed. Though there is no exact figure available about their sizes but the approximations made through indexes maintained by search engines; it is close to 50 billion web pages [1]. The major problem associated with any search engine is that it is not possible to index the entire Web as the Web is dynamic and continuously growing as well. Therefore indexing and refreshing of such documents within reasonable time is a challenging task. It is not possible to create such a huge database by running a single web crawler as it may take months or even more to download and index the publicly accessible web. Nevertheless in the mean time, large fractions of web pages would have been changed leading to getting stale information. Thus, continuous refreshing of the downloaded documents is required at regular intervals to maintain fresh information at Search engine side. To minimize download time, search engines need to execute multiple crawlers in parallel, subject to the following issues that must be addressed [3]: Overlapping of downloaded web documents Quality of downloaded web documents Network bandwidth Refreshing of web documents 69

Overlapping problem occurs when multiple crawlers running in parallel download the same web document multiple times due to the reason that one web crawler may not be aware that another has already downloaded the page. Also many organizations mirror their documents on multiple servers to avoid arbitrary server corruption [31]. In such situation a crawler may unnecessarily download many copies of the same document. By eliminating overlap problem one can save the download time of crawlers and the saved time may be utilized for downloading other web pages. The quality of downloaded information can be ensured only when more relevant web pages are downloaded by the crawlers. Therefore, to download such relevant web pages, multiple crawlers running in parallel must have global image of collectively downloaded web pages so that redundancy in terms of duplicate documents may be avoided. Thus, in order to maintain the quality, the crawling process can be carried out using either of the following two approaches. Crawlers can be generously allowed to communicate among themselves or They cannot be allowed to communicate among themselves at all. In the first approach network traffic will increase because crawlers communicate among themselves more frequently to reduce the overlap problem whereas in second approach, if they are not allowed to communicate then as a result same web documents may be downloaded multiple times, thereby, not only consuming the network bandwidth but also adding redundancy at the Search engine side storage and thus putting extra burden on network traffic. In this chapter, a novel architecture for incremental parallel web crawler is being proposed, which not only minimizes the overlap problem but also avoids unnecessary communications along with maintaining quality of collectively downloaded web pages. 70

4.2 PROPOSED ARCHITECTURE OF INCREMENTAL PARALLEL WEBCRAWLER The proposed crawler (see Figure 4.1) has a client server based architecture consisting of following main components: Multi Threaded server Client crawlers Change detection module The Multi Threaded (MT) server is the main coordinating component of the architecture. On its own, it does not download any web document but manages a connection pool with client machines which actually download the web documents. The client crawlers collectively refer to all the different instances of client machines interacting with each other through server. The number of clients may vary depending on the availability of resources and the scale of actual implementation. It may be noted that there are no direct links among client crawlers and therefore, all communications take place through the server. Change detection module helps to identify whether the target page has changed or not and consequently only the changed documents are stored in the repository in search/insert fashion. Thus the repository is kept up-to-date having fresh and latest information available at Search engine database end. 4.2.1 MULTI THREADED (MT) SERVER As discussed earlier, the Multi Threaded server is the main coordinating component of the proposed architecture (see Figure 4.2), directly involved in interaction with client processes ensuring that there is no need for direct communication among them. 71

User Seed URL Extract URLs URL Dispatcher Add URLs Queue of unsorted URLs Change detection module Document and URL Buffer Refresh URLs Queue Add /Index Web Pages/URLs Indexer Rank URLs Repository Distribute_URLs Ranking module C-crawler 1 URL Distributor Select URLs C-crawler 2 C-crawler n Client Crawlers URL Allocator P_list1 P_list-2 P_list-3 Divide URLs in sub lists Queue of sorted URLs Crawl Web Pages WWW Multi Threaded Server Message Data flow Figure 4.1: Architecture of Incremental Parallel Web Crawler 72

The sub-components of MT server are: URL dispatcher Ranking module URL distributor URL allocator Indexer Repository 4.2.1.1 URL DISPATCHER The URL dispatcher is initiated by a seed URL. In the beginning, both unsorted as well as sorted URL queues are empty and the seed URL received from user is stored in sorted URLs queue and a message called distribute_urls is sent to URL distributor. URL distributor selects the seed URL from the sorted queue and puts it in first priority list (P_list 1) as shown in Figure 4.2. URL allocator picks the URL from priority list and assigns it to client crawler to download web document. After downloading the document, the client crawler parses it to extract the embedded URLs within it and stores the web document and corresponding URLs in document and URL buffer. Every URL, retrieved by the URL dispatcher from document and URL buffer, is verified from repository before putting it in the unsorted queue, to know whether it has already been downloaded or not. If it is found that the URL is already downloaded and the corresponding document exists in the repository then the retrieved URL is discarded and not stored in unsorted queue. By doing this, URL dispatcher ensures that the same URL is not used multiple times to download its corresponding document from WWW and thus it helps to save network bandwidth. URL dispatcher keeps all new URLs in the queue of unsorted URLs in the order they are retrieved from the buffer and sends rank_url message to ranking module. This process is repeated till the queue of sorted URLs becomes empty. 73

Receives URLs URL Dispatcher Indexer Add URLs in Receiving Order Rank URLs Queue of unsorted URLs Retrieves URLs Repository Ranking module Get the required data Distribute URLs Put URLs after sorting based on priority Queue of sorted URLs Select URLs URL Distributor Divide URLs in sub lists P_list1 P_list-2 P_list-3 URL Allocator Assign URLs to client crawlers Figure 4.2: Architecture of Multi threaded server 74

4.2.1.2 RANKING MODULE After receiving Rank_URLs message from the dispatcher, the ranking module retrieves URLs from the unsorted queue and computes their priority. For computing priority of the URLs to be crawled, it considers both their forward as well as back link count where forward link count is the number of URLs present in the web page, pointing to other web pages of WWW and back link count is the number of URLs from search engine s local repository pointing to this URL. The forward link count is computed at the time of parsing of the web pages. However, to estimate the number of back link count, the server refers to its existing database and checks as to how many pages of current database refer to this page. Once the forward and back link counts are known, the priority (Pvalue) is computed using the formula developed as shown in Equation 4.1. Pvalue = FwdLk BkLk ------------------ (4.1) Where, Pvalue = priority value FwdLk = forward link counts BkLk = back link counts URLs having higher difference between FwdLk and BkLk are assigned higher Pvalue. In case two or more URLs get equal Pvalue, their priority is decided on first come first serve (FCFS) basis. Initially, the forward link count holds higher weightage as there are no or very few URLs pointing to current URLs, as the database is still in a nascent stage but as the database of indexed web pages grows, the weightage of back link count gradually increases. This results in more number of URLs having lower Pvalue and thus more URLs holding lower priority. This is important since it is not desired to assign high priority to a page which is already downloaded and update it very frequently as indicated by the high BkLk value but we do want to prioritize addition of new pages to our repository of indexed pages, which has a nil BkLk, but high FwdLk as it leads to a higher number of pages. A similar ranking method is discussed in [5] in which only back link counts are considered. After calculating priority, the ranking module sorts the list 75

in descending order of priority, stores them in the sorted queue and sends signal to URLs distributor. The algorithmic steps of ranking module for calculating priority of URLs to be crawled may be represented as follows: Step 1 Begin; 2 Retrieve URLs from unsorted queue; 2 Get forward and back link counts for URLs; 3 Compute Priority of URLs; 4 Sort and store URLs in sorted queue; 5 Send a signal Distribute_URLs to URL Distributor; 6 Stop; This method is particularly useful as it also gives weightage to current database and builds a quality database of indexed web pages even when the focus is to crawl whole of the Web. It works efficiently in both, when the database is growing or in maturity stage. Also, the method works well for broken links i.e. the URLs having zero value for forward link. Even if it is referred from pages in the database, priority will always be negative resulting in low priority value. The advantage of above ranking method over others is that it does not require the image of the entire Web to know the relevance of an URL as forward link counts are directly computed from the downloaded web pages where as back link counts are obtained from in-built repository. 4.2.1.3 URL DISTRIBUTOR URLs distributor retrieves URLs from the sorted queue maintained by the ranking module. Sometimes, a situation may arise wherein highly referenced URL with a low forward link counts, may always find itself at the bottom in the sorted queue of URLs. To get rid of such situations, the URLs list is divided into three almost equal parts on the basis of priority in such a way that 76

top one-third of the URLs are sent to p_list1, middle one-third are sent to p_list2 and bottom one-third are sent to p_list3 from where the URL allocator assign them to the respective client crawlers, as shown in Figure 4.2. For example, if the queue of unsorted URLs contains URLs list as shown in Table 4.1 then after calculating the ranking of URLs, same are divided in three lists as shown in Table 4.2. From the Table 4.2 one can see that the number of back link count is zero for all URLs as no links from the local repository of search engines are pointing to them, being the repository in initial state and is almost empty. Table 4.1: Unsorted URLs list received from client crawlers URL Forward Link count Back link count http://www.jiit.ac.in 20 0 20 http://www.jiit.ac.in/jiit/files/rti.htm 18 0 18 http://www.jiit.ac.in/jiit/files/department.htm 11 0 11 http://www.jiit.ac.in/jiit/files/proj_spons.htm 4 0 4 http://www.jiit.ac.in/jiit/files/curri_obj.htm 3 0 3 http://www.google.co.in/ 40 0 40 http://www.rediffmail.com 79 0 79 http://www.gmail.com 65 0 65 http://www.yahoo.com 155 0 155 http://www.ugc.ac.in/ 60 0 60 http://www.ugc.ac.in/orgn/regional_offices.html 21 0 21 http://www.ugc.ac.in/policy/fac_dev.html 13 0 13 http://www.ugc.ac.in/policy/payorder.html 52 0 52 http://www.ugc.ac.in/policy/modelcurr.html 60 0 60 http://www.ugc.ac.in/inside/uni.html 15 0 15 http://www.ugc.ac.in/contact/index.html 5 0 5 http://www.ugc.ac.in/inside/fakealerts.html 16 0 16 http://www.ugc.ac.in/orgn/directory.html 53 0 53 Priority value (Pvalue) 77

Table 4.2: URLs after sorting on basis of Pvalue and assigned in respective lists URL Forward Link count Back link count Priority value (Pvalue) http://www.yahoo.com 155 0 155 1 http://www.rediffmail.com 79 0 79 1 http://www.gmail.com 65 0 65 1 http://www.ugc.ac.in/ 60 0 60 1 http://www.ugc.ac.in/policy/modelcurr.html 60 0 60 1 http://www.ugc.ac.in/policy/payorder.html 52 0 52 1 http://www.ugc.ac.in/orgn/directory.html 53 0 53 2 http://www.google.co.in/ 40 0 40 2 http://www.ugc.ac.in/orgn/regional_offices.html 21 0 21 2 http://www.jiit.ac.in 20 0 20 2 http://www.jiit.ac.in/jiit/files/rti.htm 18 0 18 2 http://www.ugc.ac.in/inside/fakealerts.html 16 0 16 2 http://www.ugc.ac.in/inside/uni.html 15 0 15 3 http://www.ugc.ac.in/policy/fac_dev.html 13 0 13 3 http://www.jiit.ac.in/jiit/files/department.htm 11 0 11 3 http://www.ugc.ac.in/contact/index.html 5 0 5 3 http://www.jiit.ac.in/jiit/files/proj_spons.htm 4 0 4 3 http://www.jiit.ac.in/jiit/files/curri_obj.htm 3 0 3 3 P_list 4.2.1.4 URL ALLOCATOR The basic function of URL allocator is to select appropriate URLs from sub-lists (P_list1, P_list 2, P_list3) and assign them to client crawlers for downloading the respective web documents. According to the ranking algorithm discussed above, P_liast1 contains higher relevant URLs but we cannot completely ignore the P_list2 & P_list3. P_list 2 contains the URLs which either belongs to a web document having higher forward link count as well as large number of URLs from repository points to this web document or both forward link count and back link count are less for these URLs. Similarly P_list3 consists of mostly those URLs which have higher back link count value and less forward link count. Therefore, to avoid complete ignorance for URLs present in these both lists (P_list1 & P_list2), the strategy used is such that for every 4 URLs selected from p-list1, 2 URLs from p-list2 and 1 URL from p-list3 are assigned to client crawlers for downloading. 78

4.2.1.5 INDEXER Indexer module retrieves web documents and corresponding URLs from document and URL buffer. The documents are stored in repository in search/insert fashion and corresponding index is created for them. The indexes created for the documents mainly consist of keywords present in the document, address of document in repository, corresponding URL through which the web document was downloaded, checksum values and so many other information. Later, all these indexed information for web documents help to produce appropriate result when users fire search query using search engine as well as to detect whether the current downloaded version is same or changed from its previous version existing in the repository. 4.2.1.6 REPOSITORY It is centrally indexed database of web pages, maintained by server which later may be used by search engines to answer the queries of end users. The incremental parallel crawler maintains index of complete web documents in the repository along with other information as mentioned in indexer (section 4.2.1.5). The efficiency by which the repository is managed affects the search results. As users need most relevant results for a given search query, the repository and corresponding information maintained for these documents play a major role apart from ranking algorithm to produce the result. It is known that every search engine s repository contains billions of web documents. The users need response in quick time periods. Therefore, there is a need for efficient indexing of the repository. The salient features of the MT server are as given below: It establishes communication links between MT server and client crawlers. If a client crawler loses its connection with the MT server, the whole system does not get disrupted as other client crawlers remain functional. The system is scalable and it is possible to add-up new client crawlers/machines to an ongoing crawling system without any temporary halt of the overall system. The MT server automatically starts allocation of URLs to the newly added client crawler without any inherent effects on the other client processes or the whole system. 79

Once the communication is established between the MT server and the clients, the URL allocator sends seed URL to a client crawler in order to download the corresponding web document and waits for its response. The client crawler responses to MT server in the form of downloaded web document as well as embedded URLs extracted from the document. The URL dispatcher adds these URLs to an unsorted queue from where they are stored in a sorted queue by ranking module. From sorted queue the URLs are further divided in three sub-lists by URL distributor, based on their rank. Finally these URLs are selected by URL allocator and are assigned to suitable client crawlers to carry forward the crawling process. In order to achieve parallelization, the MT server maintains independent threads with each client and carries out the tasks of receiving and sending URLs. The server ensures that it does not lose the connection with any client machine and in case of disruption, it automatically stops assigning URLs to that client machine, thereby, avoiding data losses. Once a normal crawling routine is established, the server routinely receives lists from the clients, sorts them by priority and resends each URL to the suitable client crawlers. It coordinates functioning of all its individual components such as URL dispatcher, ranking module, URL distributor, URL allocator, indexer etc. It provides required data to change detection module too, to find whether a page is changed or not. 4.2.2 CLIENT CRAWLERS Client crawlers collectively refer to all the different client machines interacting with the server. The numbers of client crawlers supported by the architecture are not fixed. It may be scaled up or down depending on availability of resources and the scale of actual requirement. As mentioned earlier, there are no inter client crawler communications, all types of communications are between the MT server and an individual client crawler. In Figure 4.1 these client crawlers are represented as C-crawler 1, C-crawler 2 and so on. The detailed architecture of a client crawler is shown in Figure 4.3. 80

These client crawlers are involved in actual downloading of the web documents. They depend on MT server (URL allocator) for receiving URLs for which they are supposed to download the web pages. After downloading the web documents for the assigned URLs, a client crawler parses and extracts all URLs present in it and puts them back to document and URL buffer from where they are extracted by change detection module as well as URL dispatcher. After performing preprocessing on the received URLs, they are assigned to client crawlers for further downloading. This whole process continues till no more URLs to be crawled are left. Following are the main components of a client crawler: URL buffer Crawl Worker 4.2.2.1 URL BUFFER It stores URLs temporarily which are assigned to the client crawler by URL allocator for downloading the corresponding web documents. This is implemented as simple FIFO (first in first out) queue. The crawl worker retrieves URLs from this queue and starts its downloading process. 4.2.2.2 CRAWL WORKER Crawl worker is major component of the client crawler in proposed architecture of incremental parallel web crawler. URL allocator selects URL from appropriate sub-lists (P_list1, P_list2, P_list3) and puts it in client crawler s buffer. Crawl worker retrieves the URL from the buffer in FCFS fashion and sends request to web server. The crawl worker first searches the robot.txt file maintained by web server to verify whether the URL, it is looking to be downloaded, is permitted for downloading or not. If it is among the list of restricted URLs then crawl worker stops downloading process and discards the URL otherwise the web document for corresponding URL is downloaded. 81

Retrieve URLs Send web pages Change Detection Module Document and URL Buffer Extract URLs and Web pages Extract URLs Multi Threaded Server Assign URLs URL buffer Client Crawler Fetch URLs Craw worker Download web pages Sends Request to Web Server WWW Message Data flow Figure 4.3: Architecture of client Crawler 82

Working of the whole process of the crawl worker may be represented by the following algorithm: Crawl_worker () { Start Repeat Pickup a URL from the URL buffer; Determine the IP address for the host name; Download the Robot.txt file which carries downloading permissions and also specifies the files to be excluded by the crawler; Determine the protocol of underlying host like http, ftp, gopher etc; Based on the protocol of the host, download the document; Identify the document format like.doc,.html, or.pdf etc; Parse the downloaded document and extract the links; Convert the URL links into their absolute URL address; Add the URLs and downloaded document in document and URL buffer ; Until not empty (URL buffer); End } After downloading the web documents for assigned URLs, the crawl worker parses its contents with the help of parser for the following further applications: Each page has a certain number of links present in it. To maintain the index of back link count, each link on that page is stored in repository along with its source/parent URL in which it appears. The client crawler sends the pair of values (link, parent_url) to the repository/database. When the same link reappears on some other page, only the name of parent URL is required to be added to the link indexer to the already existing value of the link. 83

The crawl worker also extracts all the links present on a web page to compute the number of forward links counts which it sends to the URL dispatcher which are later used by ranking module to compute relevance of uncrawled URLs based on which they are further redistributed among client crawlers for further downloading as discussed in section 4.2.1.2 to 4.2.1.4. Another motive behind parsing the contents of web pages is to compute the page updating parameters such as checksum etc. that are used by change detection module to check whether the web page has been changed or not. These parameters are discussed in details in the next chapter. After parsing, all downloaded web documents are stored in document and URL buffer associated with MT server. After keeping the documents in the document and URL buffer, crawl worker sends extract URLs & web page message to change detection and extract URLs message to MT server (URL dispatcher). After receiving the message, the change detection module and URL dispatcher, extract the web documents along with URLs and other relevant information from the buffer. The client crawler machines are robust enough to be able to handle all types of web pages appearing on the web. With growing technology, the web is no longer limited to simple HTML pages, but it consists of varieties of web pages used to display dynamic content and ever changing layouts. The client crawlers are implemented in such a manner that they are able to accurately parse the web page contents and handle each type of page in an efficient manner. The client crawlers are robust enough to handle the pages, which are not allowed to be crawled [4]. It also automatically discards URLs that are referenced but do not exist any more on WWW. Therefore, a client machine, before starting the actual downloading of web pages, checks for its actual existence on the Web using the remote server response. If there is no response from the server or the page is forbidden to be visited from certain networks as indicated by the corresponding robot.txt file, it immediately discards the page without waiting for further responses in order to conserve resources for faster crawling. 84

4.2.3 CHANGE DETECTION MODULE The change detection module identifies whether two versions of a web document are same or not and thus helps to decide whether the existing web page in the repository should be replaced with changed one or not. Methods for detecting structural and content level changes in web documents have been proposed. There may be other types of changes also like behavioral, presentation etc. It may not always be required to test both types of changes at the same time. The latter one i.e. content level change detection may be performed only when there are no changes detected by structural change detection methods or the changes detected are minor. The details about proposed methods for change detection are being discussed in the next chapter. 4.3 SUMMARY The complete working of all components of the proposed architecture for integrated parallel web crawler, discussed in this chapter, may be represented by following algorithm: Algorithms: Step1. Initialize URL dispatcher with a seed URL; 2 Store the seed URL in unsorted queue; 3. Ranking module takes the URLs from unsorted queue, computes the rank, sorts them and stores in the queue of sorted URLs; 4. URL distributor divides the URLs stored in the sorted queue in three equal parts and stores them in sub-lists namely P-list1, P_list2, and P_list3 respectively; 5. While all three sub-lists are not empty repeat step 6 to 10; 6. URL allocator fetches URLs from these sub-lists in a way such that at a time 4, 2, 1 no. of URLs are picked from P_list 1, P_list2 and P_list3 respectively, and are assigned to the client crawlers; 7. Client crawlers download the web page for the assigned URL; 8. The downloaded web documents are parsed and stored along with other parameters in document and URL buffer. A signal is sent to change detection and URL dispatcher afterwards; 85

9. URL dispatcher verifies the URLs for duplicity i.e. if URLs are already there in the queue, crawled and indexed then discard otherwise send all such URLs to ranking module; 10. Change detection module retrieves the crawled pages and parameters from document and URL buffer and verifies whether the web documents are changed from the existing document in repository or not. If document is changed or it is new web document then send to indexer else discard the page and go to step5; 11. Stop. 4.4 COMPARISON OF PROPOSED ARCHITECTURE WITH EXISTING ARCHITECTURE OF PARALLEL WEBCRAWLER The performance of proposed incremental parallel web crawler is compared with that of existing parallel crawlers [3]. The summary of the comparison is as shown in Table 4.3. The proposed web crawler s performance was found to be comparable with [3]. Table 4.3: comparison with existing parallel crawler architecture Features Existing Parallel Crawler Incremental parallel web crawlers Central No central server. It works in It has central coordinator in the form of Coordinator distributed environment. MT server as it works on client server principle. Overlapping Have overlapping problem As MT server assigns the URLs to be associated as individual crawler do crawled to client crawlers and it has not have global image of global image of crawled/uncrawled downloaded web documents. URLs and thus, significantly reduces the overlapping. Quality of Web pages Being distributed coordination, it URLs are provided by server to client may not be aware about others crawlers on the basis of priority so high collection, so it decreases the priorities pages are downloaded and quality of web pages downloaded. thus high quality documents are 86

Priority calculation Scalability Network bandwidth The crawlers compute priority of pages to be downloaded based on local repository which may be different if computed on global structure of web pages Architecture is scalable as per requirement and resources Due to problem of overlapping more network bandwidth is consumed in this architecture. available at Search engine side. In our approach all web pages after downloading are sent back to server along with embedded URLs, the priority is computed based on global information. It may also be scaled up depending upon resource constraints Due to reduction in overlapping problem, network bandwidth is also reduced at the cost of communication between MT server and client crawlers. The architecture has been implemented as well as tested for about 2.5 million web pages from various domains. The implementation details are provided in Appendix A. The results obtained thereof establish the fact that the proposed incremental parallel web crawler does not have problem of overlapping and also downloaded pages are of high quality, thereby, proving the efficiency of ranking method developed. 87