A Brief History of Web Crawlers
|
|
|
- Joanna Lane
- 10 years ago
- Views:
Transcription
1 A Brief History of Web Crawlers Seyed M. Mirtaheri, Mustafa Emre Dinçtürk, Salman Hooshmand, Gregor V. Bochmann, Guy-Vincent Jourdan School of Electrical Engineering and Computer Science University of Ottawa, Ottawa, Ontario, Canada {staheri,mdinc075, Iosif Viorel Onut Security AppScan R Enterprise, IBM 770 Palladium Dr, Ottawa, Ontario, Canada [email protected] Abstract Web crawlers have a long and interesting history. Early web crawlers collected statistics about the web. In addition to collecting statistics about the web and indexing the applications for search engines, modern crawlers can be used to perform accessibility and vulnerability checks on the application. Quick expansion of the web, and the complexity added to web applications have made the process of crawling a very challenging one. Throughout the history of web crawling many researchers and industrial groups addressed different issues and challenges that web crawlers face. Different solutions have been proposed to reduce the time and cost of crawling. Performing an exhaustive crawl is a challenging question. Additionally, capturing the model of a modern web application and extracting data from it automatically is another open question. What follows is a brief history of different techniques and algorithms used from the early days of crawling up to the recent days. We introduce criteria to evaluate the relative performance and objective of web crawlers. Based on these criteria we plot the evolution of web crawlers. Copyright c IBM Canada Ltd., Permission to copy is hereby granted provided the original copyright notice is reproduced in copies made. 1 Introduction Crawling is the process of exploring web applications automatically. The web crawler aims at discovering the web pages of a web application by navigating through the application. This is usually done by simulating the possible user interactions considering just the client-side of the application. As the amount of information on the web has been increasing drastically, web users increasingly rely on search engines to find desired data. In order for search engines to learn about the new data as it becomes available, the web crawler has to constantly crawl and update the search engine database. 1.1 Motivations for Crawling There are several important motivations for crawling. The main three motivations are: Content indexing for search engines. Every search engine requires a web crawler to fetch the data from the web. Automated testing and model checking of the web application Automated security testing and vulnerability assessment. Many web applications use sensitive data and provide critical services. To address the security concerns for web applications, many commercial and open-source automated web application security scanners
2 have been developed. These tools aim at detecting possible issues, such as security vulnerabilities and usability issues, in an automated and efficient manner [1, 2]. They require a web crawler to discover the states of the application scanned. 1.2 The Evolution of Web Crawlers In the literature on web-crawling, a web crawler is basically a software that starts from a set of seed URLs, and downloads all the web pages associated with these URLs. After fetching a web page associated with a URL, the URL is removed from the working queue. The web crawler then parses the downloaded page, extracts the linked URLs from it, and adds new URLs to the list of seed URLs. This process continues iteratively until all of the contents reachable from seed URLs are reached. The traditional definition of a web crawler assumes that all the content of a web application is reachable through URLs. Soon in the history of web crawling it became clear that such web crawlers can not deal with the complexities added by interactive web applications that rely on the user input to generate web pages. This scenario often arises when the web application is an interface to a database and it relies on user input to retrieve contents from the database. The new field of Deep Web-Crawling was born to address this issue. Availability of powerful client-side webbrowsers, as well as the wide adaptation to technologies such as HTML5 and AJAX, gave birth to a new pattern in designing web applications called Rich Internet Application (RIA). RIAs move part of the computation from the server to the client. This new pattern led to complex client side applications that increased the speed and interactivity of the application, while reducing the network traffic per request. Despite the added values, RIAs introduced some unique challenges to web crawlers. In a RIA, user interaction often results in execution of client side events. Execution of an event in a RIA often changes the state of the web application on the client side, which is represented in the form of a Document Object Model (DOM) [3]. This change in the state of DOM does not necessarily means changing the URL. Traditional web crawlers rely heavily on the URL and changes to the DOM that do not alter the URL are invisible to them. Although deep web crawling increased the ability of the web crawlers to retrieve data from web applications, it fails to address changes to DOM that do not affect the URL. The new and recent field of RIA web-crawling attempts to address the problem of RIA crawling. 1.3 Problem Definition A web application can be modeled as a directed graph, and the World Wide Web can be modeled as a forest of such graphs. The problem of Web crawling is the problem of discovering all the nodes in this forest. In the application graph, each node represents a state of the application and each edge a transition from one state to another. As web applications evolved, the definition of the state of the application evolved as well. In the context of traditional web applications, states in the application graph are pages with distinct URLs and edges are hyperlinks between pages i.e. there exist an edge between two nodes in the graph if there exist a link between the two pages. In the context of deep web crawling, transitions are constructed based on users input. This is in contrast with hyperlink transitions which always redirect the application to the same target page. In a deep web application, any action that causes submission of a form is a possible edge in the graph. In RIAs, the assumption that pages are nodes in the graph is not valid, since the client side code can change the application state without changing the page URL. Therefore nodes here are application states denoted by their DOM, and edges are not restricted to forms that submit elements, since each element can communicate with the server and partially update the current state. Edges, in this context, are client side actions (e.g. in JavaScript) assigned to DOM elements and can be detected by web crawler. Unlike the traditional web applications where jumps to arbitrary states are possible, in a RIA, the execution of sequence of events from the current state or from a seed URL is required to reach a particular state. The three models can be unified by defining the state of the application based on the state of the DOM as well as other parameters such as the page URL, rather than the URL or the DOM alone. A hyperlink in a traditional web application does not
3 Table 1: Different categories of web crawlers Category Input Application graph components Traditional Deep RIA Unified Model Set of seed URLs Set of Seed URLs, user context specific data, domain taxonomy A starting page A seed URL Nodes are pages with distinct URL and a directed edge exist from page p 1 to page p 2 if there is a hyperlink in page p 1 that points to page p 2 Nodes are pages and a directed edge exists between page p 1 to page p 2 if submitting a form in page p 1 gets the user to page p 2. Nodes are DOM states of the application and a directed edge exist from DOM d 1 to DOM d 2 if there is a client-side JavaScript event, detectable by the web crawler, that if triggered on d 1 changes the DOM state to d 2 Nodes are calculated based on DOM and the URL. An edge is a transmission between two states triggered through client side events. Redirecting the browser is a special client side event. only change the page URL, but it also changes the state of the DOM. In this model changing the page URL can be viewed as a special client side event that updates the entire DOM. Similarly, submission of a HTML form in a deep web application leads to a particular state of DOM once the response comes back from the server. In both cases the final DOM states can be used to enumerate the states of the application. Table 1 summarizes different categories of web crawlers. 1.4 Requirements Several design goals have been considered for web crawlers. Coverage and freshness are among the first [4]. Coverage measures the relative number of pages discovered by the web crawler. Ideally given enough time the web crawler has to find all pages and build the complete model of the application. This property is referred to as Completeness. Coverage captures the static behaviour of traditional web applications well. It may fail, however, to capture the performance of the web crawler in crawling dynamically created web pages. The search engine index has to be updated constantly to reflect changes in web pages created dynamically. The ability of the web crawler to retrieve latest updates is measured through freshness. An important and old issue in designing web crawlers is called politeness [5]. Early web crawlers had no mechanism to stop them from bombing a server with many requests. As the result while crawling a website they could have lunched an inadvertent Denial of Service(DoS) attack and exhaust the target server resources to the point that it would interrupt normal operation of the server. Politeness was the concept introduced to put a cap on the number of requests sent to a web-server per unit of time. A polite web crawler avoids launching an inadvertent DoS attack on the target server. Another old problem that web crawlers faced are traps. Traps are seemingly large set of websites with arbitrary data that are meant to waste the web crawler resources. Integration of black-lists allowed web crawlers to avoid traps. Among the challenges web crawlers faced in the mid 90s was scalability [6]. Throughout the history of webcrawling, the exponential growth of the web and its constantly evolving nature has been hard to match by web crawlers. In addition to these requirements, the web crawler s model of application should be correct and reflect true content and structure of the application. In the context of deep-web crawling Raghavan and Garcia-Molina [7] suggest two more requirements. In this context, Submission efficiency is defined as the ratio of submitted forms leading to result pages with new data; and Lenient submission efficiency measures if a form submission is semantically correct (e.g., submitting a company name as input to a form element that was intended to be an author name) In the context of RIA crawling a non-functional requirement considered by Kamara et al. [8] called efficiency. Efficiency means discovering valuable information as soon as possible. For example states are more important than transitions and should be found first instead of finding transitions leading to
4 already known states. This is particularly important if the web crawler will perform a partial crawl rather than a full crawl. This paper defines web crawling and its requirements, and based on the defined model classifies web crawlers. A brief history of traditional web crawlers 1, deep web crawlers 2, and RIA crawlers 3 is presented in sections II-IV. Based on this brief history and the model defined, taxonomy of web crawling is then presented in section V. Section VI concludes the paper with some open questions and future works in web crawling. 2 Crawling Traditional Web Applications Web crawlers were written as early as This year gave birth to four web crawlers: World Wide Web Wanderer, Jump Station, World Wide Web Worm [11], and RBSE spider. These four spiders mainly collected information and statistic about the web using a set of seed URLs. Early web crawlers iteratively downloaded URLs and updated their repository of URLs through the downloaded web pages. The next year, 1994, two new web crawlers appeared: WebCrawler and MOMspider. In addition to collecting stats and data about the state of the web, these two web crawlers introduced concepts of politeness and black-lists to traditional web crawlers. WebCrawler is considered to be the first parallel web crawler by downloading 15 links simultaneously. From World Wide Web Worm to WebCrawler, the number of indexed pages increased from 110,000 to 2 million. Shortly after, in the coming years a few commercial web crawlers became available: Lycos, Infoseek, Excite, AltaVista and HotBot. In 1998, Brin and Page [12] tried to address the issue of scalability by introducing a large scale web crawler called Google. Google addressed the problem of scalability in several ways: Firstly it leveraged many low level optimizations to reduce disk access time through techniques such as compression and indexing. Secondly, and on a higher 1 See Olston and Najork [4] for a survey of traditional web crawlers. 2 See He et al. [9] for a survey of deep web crawlers. 3 See Choudhary et al. [10] for a survey of RIA crawlers. level, Google calculated the probability of a user visiting a page through an algorithm called PageRank. PageRange calculates the probability of a user visiting a page by taking into account the number of links that point to the page as well as the style of those links. Having this probability, Google simulated an arbitrary user and visited a page as often as the user did. Such approach optimizes the resources available to the web crawler by reducing the rate at which the web crawler visits unattractive pages. Through this technique, Google achieved high freshness. Architecturally, Google used a master-slave architecture with a master server (called URLServer) dispatching URLs to a set of slave nodes. The slave nodes retrieve the assigned pages by downloading them from the web. At its peak, the first implementation of Google reached 100 page downloads per second. The issue of scalability was further addressed by Allan Heydon and Marc Najork in a tool called Mercator [5] in Additionally Mercator attempted to address the problem of extendability of web crawlers. To address extensibility it took advantage of a modular Java-based framework. This architecture allowed third-party components to be integrated into Mercator. To address the problem of scalability, Mercator tried to solve the problem of URL-Seen. The URL-Seen problem answers the question of whether or not a URL was seen before. This seemingly trivial problem gets very time-consuming as the size of the URL list grows. Mercator increased the scalability of URL-Seen by batch disk checks. In this mode hashes of discovered URLs got stored in RAM. When the size of these hashes grows beyond a certain limit, the list was compared against the URLs stored on the disk, and the list itself on the disk was updated. Using this technique, the second version of Mercator crawled 891 million pages. Mercator got integrated into AltaVista in IBM introduced WebFountain [13] in WebFountain was a fully distributed web crawler and its objective was not only to index the web, but also to create a local copy of it. This local copy was incremental meaning that a copy of the page was kept indefinitely on the local space, and this copy got updated as often as WebFountain visited the page. In WebFountain, major components such as the scheduler were distributed and the crawling was an ongoing process where the local copy of the web only grew. These features, as well as de-
5 ployment of efficient technologies such as the Message Passing Interface (MPI), made WebFountain a scalable web crawler with high freshness rate. In a simulation, WebFountain managed to scale with a growing web. This simulated web originally had 500 million pages and it grew to twice its size every 400 days. In 2002, Polybot [14] addressed the problem of URL-Seen scalability by enhancing the batch disk check technique. Polybot used Red-Black tree to keep the URLs and when the tree grows beyond a certain limit, it was merged with a sorted list in main memory. Using this data structure to handle the URL-Seen test, Polybot managed to scan 120 million pages. In the same year, UbiCrawler [15] dealt with the problem of URL-Seen with a different, more peer-to-peer (P2P), approach. Ubi- Crawler used consistent hashing to distribute URLs among web crawler nodes. In this model no centralized unit calculates whether or not a URL was seen before, but when a URL is discovered it is passed to the node responsible to answer the test. The node responsible to do this calculation is detected by taking the hash of the URL and map it to the list of nodes. With five 1GHz PCs and fifty threads, UbiCrawler reached a download rate of 10 million pages per day. In addition to Polybot and UbiCrawler, in 2002 Tang et al. [16] introduced psearch. psearch uses two algorithms called P2P Vector Space Model (pvsm) and P2P Latent Semantic Indexing (plsi) to crawl the web on a P2P network. VSM and LSI in turn use vector representation to calculate the relation between queries and the documents. Additionally psearch took advantage of Distributed Hash Tables (DHT) routing algorithms to address scalability. Two other studies used DHTs over P2P networks. In 2003, Li et al. [17] used this technique to scale up certain tasks such as clustering of contents and bloom filters. In 2004, Loo et al. [18] addressed the question of scalability of web crawlers and used the technique to partition URLs among the crawlers. One of the underlying assumptions in this work is the availability of high speed communication medium. The implemented prototype requested 800,000 pages from more than 70,000 web crawlers in 15 minutes. In 2005, Exposto et al. [19] augmented partitioning of URLs among a set of crawling nodes in a P2P architecture by taking into account servers geographical information. Such an augmentation reduced the overall time of the crawl by allocating target servers to a node physically closest to them. In 2008, an extremely scalable web crawler called IRLbot ran for days on a quad-cpu AMD Opteron 2.6 GHz server and it crawled over 6.38 billion web pages [20]. IRLbot primarily addressed the URL-Seen problem by breaking it down into three sub-problems: CHECK, UPDATE and CHECK+UPDATE. To address these sub-problems, IRLbot introduced a framework called Disk Repository with Update Management (DRUM). DRUM optimizes disk access by segmenting the disk into several disk buckets. For each disk bucket, DRUM also allocates a corresponding bucket on the RAM. Each URL is mapped to a bucket. At first a URL was stored in its RAM bucket. Once a bucket on the RAM is filled, the corresponding disk bucket is accessed in batch mode. This batch mode access, as well as the two-stage bucketing system used, allowed DRUM to store a large number of URLs on the disk such that its performance would not degrade as the number of URLs increases. 3 Crawling Deep Web As server-side programming and scripting languages, such as PHP and ASP, got momentum, more and more databases became accessible online through interacting with a web application. The applications often delegated creation and generation of contents to the executable files using Common Gateway Interface (CGI). In this model, programmers often hosted their data on databases and used HTML forms to query them. Thus a web crawler can not access all of the contents of a web application merely by following hyperlinks and downloading their corresponding web page. These contents are hidden from the web crawler point of view and thus are referred to as deep web [9]. In 1998, Lawrence and Giles [21] estimated that 80 percent of web contents were hidden in Later in 2000, BrightPlanet suggested that the deep web contents is 500 times larger than what surfaces through following hyperlinks (referred to as shallow web) [22]. The size of the deep web is rapidly growing as more companies are moving their data to databases and set up interfaces for the users to access them [22]. Only a small fraction of the deep web is indexed by search engines. In 2007, He et al. [9] ran-
6 domly sampled one million IPs and crawled these IPs looking for deep webs through HTML form elements. The study also defined a depth factor from the original seed IP address and constrained itself to depth of three. Among the sampled IPs, 126 deep web sites were found. These deep websites had 406 query gateways to 190 databases. Based on these results with 99 percent confidence interval, the study estimates that at the time of that writing, there existed 1, 097, 000 to 1, 419, 000 database query gateways on the web. The study further estimated that Google and Yahoo search engines each has visited only 32 percent of the deep web. To make the matters worse the study also estimated that 84 percent of the covered objects overlap between the two search engines, so combining the discovered objects by the two search engines does not increase the percentage of the visited deep web by much. The second generation of web crawlers took the deep web into account. Information retrieval from the deep web meant interacting with HTML forms. To retrieve information hidden in the deep web, the web crawler would submit the HTML form many times, each time filled with a different dataset. Thus the problem of crawling the deep web got reduced to the problem of assigning proper values to the HTML form fields. The open and difficult question to answer in designing a deep web crawler is how to meaningfully assign values to the fields in a query form [23]. As Barbosa and Freire [23] explain, it is easy to assign values to fields of certain types such as radio buttons. The difficult field to deal with, however, is text box inputs. Many different proposals tried to answer this question: In 2001, Raghavan and Garcia-Molina [7] proposed a method to fill up text box inputs that mostly depend on human output. In 2002, Liddle et al. [24] described a method to detect form elements and fabricate a HTTP GET and POST request using default values specified for each field. The proposed algorithm is not fully automated and asks for user input when required. In 2004, Barbosa and Freire [23] proposed a two phase algorithm to generate textual queries. The first stage collected a set of data from the website and used that to associate weights to keywords. The second phase used a greedy algorithm to retrieve as much contents as possible with minimum number of queries. In 2005, Ntoulas et al. [25] further advanced the process by defining three policies for sending queries to the interface: a random policy, a policy based on the frequency of keywords in a reference document, and an adaptive policy that learns from the downloaded pages. Given four entry points, this study retrieved 90 percent of the deep web with only 100 requests. In 2008, Lu et al. [26] map the problem of maximizing the coverage per number of requests to the problem of set-covering [27] and uses a classical approach to solve this problem. 4 Crawling Rich Internet Applications Powerful client side browsers and availability of client-side technologies lead to a shift in computation from server-side to the client-side. This shift of computation, also creates contents that are often hidden from traditional web-crawlers and are referred to as Client-side hidden-web [28]. In 2013, Behfarshad and Mesbah studies 500 websites and found that 95 percent of the subject websites contain client-side hidden-web, and among the 95 percent web-sites, 62 percent of the application states are considered client-side hidden-web. Extrapolating these numbers puts almost 59 percent of the web contents at the time of this writing as client-side hidden-web. RIA crawling differs from traditional web application crawling in several frontiers. Although limited, there has been some research focusing on crawling of RIAs. One of the earliest attempts to crawl RIAs is by Duda et al. [29 31] in This work presents a working prototype of a RIA crawler that indexed RIAs using a Breath-First- Search algorithm. In 2008, Mesbah et al. [32, 33] introduced Crawljax a RIA crawler that took the user-interface into account and used the changes made to the user interface to direct the crawling strategy. Crawljax aimed at crawling and taking a static snapshot of each AJAX state for indexing and testing. In the same year, Amalfitano et al. [34 37]
7 addressed automatic testing of RIAs using execution traces obtained from AJAX applications. This section surveys different aspects of RIA crawling. Different strategies can be used to choose an unexecuted event to execute. Different strategies effect how early the web crawler finds new states and the overall time of crawling. Section 4.1 surveys some of the strategies studied in recent years. Section 4.2 explains different approaches to determine if two DOMs are equivalent. Section 4.3 surveys parallelism and concurrency for RIA crawling. Automated testing and ranking algorithms are explored in Sections 4.4 and 4.5, respectively. 4.1 Crawling Strategy Until recent years, there has not been much attention on the efficiency requirement, and existing approaches often use either Breadth-First or a Depth-First crawling strategy. In 2007, 2008 and 2009, Duda et al. [29 31] used Breadth-First crawling strategy. As an optimization, the communication cost was reduced by caching the JavaScript function calls (together with actual parameters) that resulted in AJAX requests and the response received from the server. Crawljax [32, 33] extracted a model of the application using a variation of the Depth-First strategy. Its default strategy only explored a subset of the events in each state. This strategy explored an event only from the state where the event was first encountered. The event was not explored on the subsequently discovered states. This default strategy may not find all the states, since executing the same event from different states may lead to different states. However, Crawljax can also be configured to explore all enabled events in each state, in that case its strategy becomes the standard Depth-First crawling strategy. In 2008, 2009 and 2010, Amalfitano et al. [34 36] focused on modelling and testing RIAs using execution traces. The initial work [34] was based on obtaining execution traces from user-sessions (a manual method). Once the traces are obtained, they are analyzed and an FSM model is formed by grouping together the equivalent user interfaces according to an equivalence relation. In later study [35] introduced CrawlRIA which automatically generated execution traces using a Depth- First strategy. Starting from the initial state, Crawl- RIA executed events in a depth-first manner until a DOM instance that is equivalent to a previously visited DOM instance was reached. Then the sequence of states and events was stored as a trace in a database, and after a reset, crawling continued from the initial state to record another trace. These automatically generated traces were later used to form an FSM model using the same technique that is used in [34] for user-generated traces. In 2011, Benjamin et al. [8] present the initial version of the first model-based crawling strategy: the Hypercube strategy. The strategy makes predictions by initially assuming the model of the application to be a hypercube structure. The initial implementation had performance drawbacks which prevented the strategy from being practical even when the number of events in the initial state are as few as twenty. These limitation were later removed [38]. In 2012, Choudhary et al. [39,40] introduced another model-based strategy called the Menu strategy. This strategy is optimized for the applications that have the same event always leading to the same state, irrelevant of the source state [39]. Dincturk et al. [41] introduced a statistical model-based strategy. This strategy uses statistics to determine which events have a high probability to lead to a new stete [38]. In the same year, Peng et al. [42] suggested to use a greedy strategy. In the greedy strategy if there is an un-executed event in the current state (i.e. the state which the web crawler s DOM structure represents) the event is executed. If the current state has no unexplored event, the web crawler transfers to the closest state with an unexecuted event. Two other variants of the greedy strategy are introduced by the authors as well. In these variations, instead of the closest state, the most recently discovered state and the state closest to the initial state are chosen when there is no event to explore in the current state. They experimented with this strategy on simple test applications using different combinations of navigation styles to navigate a sequence of ordered pages. The navigation styles used are previous and next events, events leading to a few of the preceding and succeeding pages from the current page, as well as the events that lead to the first and last page. They concluded that all three variations of the strategy have similar performance in terms of the total number of event executions to finish crawling. In 2013, Milani Fard and Mesbah [43] introduce
8 FeedEx: a greedy algorithm to partially crawl a RIAs. FeedEx differs from Peng et al. [42] in that: Peng et al. [42] use a greedy algorithm in finding the closest unexecuted event, whereas, FeedEx defines a matrix to measure the impact of an event and its corresponding state on the crawl. The choices are then sorted and the most impactful choice will be executed first. Given enough time, FeedEx will discover entire graph of the application. FeedEx defines the impact matrix as a weighted sum of the following four factors: Code coverage impact: how much of the application code is being executed. Navigational diversity: how diversely the crawler explores the application graph. Page structural diversity: how newly discovered DOMs differ from those already discovered. Test model size: the size of the created test model.. In the test cases studied, Milani Fard and Mesbah [43] show that FeedEx beats three other strategies of Breadth-First search, Depth-First search, and random strategy, in the above-mentioned four factors. 4.2 DOM Equivalence and Comparison In the context of traditional web applications it is trivial to determine whether two states are equal: compare their URLs. This problem is not as trivial in the context of RIAs. Different chains of events may lead to the same states with minor differences that do not effect the functionality of the state. Different researchers address this issue differently. Duda et al. [29 31] used equality as the DOM equivalence method. Two states are compared based on the hash value of the full serialized DOM [31]. As admitted in [31] this equality is too strict and may lead to too many states being produced. Crawljax [32] used an edit distance (the number of operations that is needed to change one DOM instance to the other, the so-called Levenstein distance) to decide if the current DOM instance corresponds to a different state than the previous one. If the distance is below a certain threshold the current DOM instance is considered equivalent to the previous one. Otherwise, the current DOM instance is hashed and its hash value is compared to the hash values of the already discovered states. Since the notion of distance is not transitive, it is not an equivalence relation in the mathematical sense. For this reason, using a distance has the problem of incorrectly grouping together client-states whose distance is actually above the given threshold. In a later paper [33], Crawljax improves its DOM equivalency: To decide if a new state is reached, the current DOM instance is compared with all the previously discovered DOMs using the mentioned distance heuristic. If the distance of the current DOM instance from each seen DOM instance is above the threshold, then the current DOM is considered as a new state. Although this approach solves the mentioned problem with the previous approach, this method may not be as efficient since it requires to store the DOM-trees and compute the distance of the current DOM to all the discovered DOMs. Amalfitano et al. [36] proposed DOM equivalence relations based on comparing the set of elements in the two DOM instances. According to this method, two DOM instances are equivalent if both contain the same set of elements. This inclusion is checked based on the indexed paths of the elements, event types and event handlers of the elements. They have also introduced two variations of this relation. In the first variation only visible elements are considered, in the other variation, the index requirement for the paths is removed. In 2013, Lo et al. [44] in a tool called Imagen, consider the problem of transferring a JavaScript session between two clients. Imagen improves the definition of client-side state by adding the following items: JavaScript functions closure: JavaScript functions can be created dynamically, and their scope is determined at the time of creation. JavaScript event listeners: JavaScript allows the programmer to register event-handlers. HTML5 elements: Certain elements such as Opaque Objects and Stream Resources. These items are not ordinarily stored in DOM. Imagen uses code instrumenting and other techniques to add the effect of these features to the state of the
9 application. To the best of our knowledge, Imagen offers the most powerful definition of a RIA state at the time of this writing. This definition has not been used by any web crawler yet, and its effect on the web crawler performance is an open research topic. 4.3 Parallel Crawling To the best of our knowledge, at the time of this writing only one distributed RIA crawling algorithm exists. Mirtaheri et al. [45] used the JavaScript events to partition the search space and crawl a RIA in parallel. Each web crawler, running on a separate computer, visits all application states, but only executes a subset of the JavaScript events in each state. If execution of an event leads to the discovery of a new state, the information about the new state is propagated to all the web crawlers. Together, the web crawlers cover every JavaScript events in every application states. The proposed algorithm is implemented and evaluated with 15 computers and a satisfactory speedup is demonstrated. Apart from this work, two algorithms are proposed to achieve a degree of concurrency: Matter [30], proposed to use multiple web crawlers on RIAs that use hyperlinks together with events for navigation. The suggested method first applies traditional crawling to find the URLs in the application. After traditional crawling terminates, the set of discovered URLs are partitioned and assigned to event-based crawling processes that run independent of each other using their Breadth- First strategy. Since each URL is crawled independently, there is no communication between the web crawlers. Crawljax [33] used multiple threads for speeding up event-based crawling of a single URL application. The crawling process starts with a single thread (that uses depth-first strategy). When a thread discovers a state with more than one event, new threads are initiated that will start the exploration from the discovered state and follow one of the unexplored events from there. 4.4 Automated Testing 4 Automated testing of RIAs is an important aspect of RIA crawling. In 2008, Marchetto et al. [47] used a state-based testing approach based on a FSM model of the application. The introduced model construction method used static analysis of the JavaScript code and dynamic analysis of user session traces. Abstraction of the DOM states was used rather than the DOM states directly in order to reduce the size of the model. This optimization may require a certain level of manual interaction to ensure correctness of the algorithm. The introduced model produced test sequences that contained semantically interacting events 5. In 2009, Marchetto and Tonella [48] proposed search-based test sequence generation using hill-climbing rather than exhaustively generating all the sequences up to some maximum length. In 2009 and 2010, Crawljax introduced three mechanisms to automate testing of RIAs: Using invariant-based testing [49], security testing of interactions among web widgets [50], and regression testing of AJAX applications [50]. In 2010, Amalfitono et al. [35] compared the effectiveness of methods based on execution traces (user generated, web crawler generated and combination of the two) and existing test case reduction techniques based on measures such as state coverage, transition coverage and detecting JavaScript faults. In another study [37], authors used invariant-based testing approach to detect faults visible on the user-interface (invalid HTML, broken links, unsatisfied accessibility requirements) in addition to JavaScript faults (crashes) which may not be visible on the user-interface, but cause faulty behaviour. 4.5 Ranking (Importance Metric) Unlike traditional web application crawling, there has been a limited amount of research in ranking states and pages in the context of RIA crawling. In 2007, Frey [31] proposed a ranking mechanism for the states in RIAs. The proposed mechanism, called AjaxRank, ordered search results by assign- 4 For a detailed study of web application testing trends from 2000 to 2011 see Garousic et al. [46] 5 Two events are semantically interacting if their execution order changes the outcome.
10 ing an importance value to states. AjaxRank can be viewed as an adaptation of the PageRank [51]. Similar to PageRank, AjaxRank is connectivitybased but instead of hyperlinks the transitions are considered. In the AjaxRank, the initial state of the URL is given more importance (since it is the only state reachable from anywhere directly), hence the states that are closer to the initial state also get higher ranks. 5 Taxonomy and Evolution of Web Crawlers The wide variety of web crawlers available are designed with different goals in mind. This section classifies and cross-measures the functionalities of different web crawlers based on the design criteria introduced in Section 1.4. It also sketches out a rough architecture of web crawlers as they evolve. Sections 5.1, 5.2 and 5.3 explain the taxonomy of traditional, deep, and RIA web crawlers, respectively. 5.1 Traditional Web Crawlers Figure 1 shows the architecture of a typical traditional web crawler. In this model Frontier gets a set of seed URLs. The seed URLs are passed to a module called Fetcher that retrieves the contents of the pages associated with the URLs from the web. These contents are passed to the Link Extractor. The latter parses the HTML pages and extracts new links from them. Newly discovered links are passed to Page Filter and Store Processor. Store Processor interacts with the database and stores the discovered links. Page Filter filters URLs that are not interesting to the web crawler. The URLs are then passed to URL-Seen module. This module finds the new URLs that are not retrieved yet and passes them to Fetcher for retrieval. This loop continues until all the reachable links are visited. Table 2 summarizes the design components, design goals and different techniques used by traditional web crawlers. 5.2 Deep Web Crawlers Figure 2 shows the architecture of a typical deep web crawler. In this model Select Fillable gets as input set of seed URLs, domain data, and user specifics. Select Fillable then chooses the HTML elements to interact with. Domain Finder uses these data to fill up the HTML forms and passes the results to Submitter. Submitter submits the form to the server and retrieves the newly formed page. Response Analyser parses the page and, based on the result, updates the repository; and the process continues. Table 3 summarizes the design components, design goals and different techniques used by deep web crawlers. 5.3 RIA Web Crawlers Figure 3 shows the architecture of a typical RIA web crawler. JS-engine starts a virtual browser and runs a JavaScript engine. It then retrieves the page associated with a seed URL and loads it in the virtual browser. The constructed DOM is passed to the DOM-Seen module to determine if this is the first time the DOM is seen. If so, the DOM is passed to Event Extractor to extract the JavaScript events form it. The events are then passed to the Strategy module. This module decides which event to execute. The chosen event is passed to JS- Engine for further execution. This process continues until all reachable states are seen. Table 4 summarizes the design components, design goals and different techniques used by RIA web crawlers. 6 Some Open Questions in Web-Crawling In this paper, we have surveyed the evolution of crawlers, namely traditional, Deep and RIA crawlers. We identified several design goals and components of each category and developed a taxonomy that classifies different cases of crawlers accordingly. Traditional web crawling and its scalability has been the topic of extensive research. Similarly, deep-web crawling was addressed in great detail. RIA crawling, however, is a new and open area for research. Some of the open questions in the field of RIA crawling are the following: Model based crawling: The problem of designing an efficient strategy for crawling a RIA can be mapped to a graph exploration problem. The objective of the algorithm is to visit every node at least once in an unknown
11 Repository Store Processor Input Frontier Fetcher Link Extractor Web URL-Seen Page Filter Figure 1: Architecture of a Traditional Web Crawler. Input Select Fillable Domain Finder Submitter Repository Response Analyzer Web Figure 2: Architecture of a Deep Web Crawler. Input JS-Engine DOM-Seen Event Extractor Web Strategy Model Figure 3: Architecture of a RIA Web Crawler. Table 2: Taxonomy of Traditional Web Crawlers Study Component Method Goal WebCrawler, MOMspider [4] Page filter Fetcher, Frontier, Parallel downloading of 15 links, robots.txt, Black-list Scalability, Politeness Reduce disk access time by compression, PageRank Scalability, Coverage, Mercator [5] Frontier URL-Seen Batch disk checks, cache Freshness Scalability Google [12] Store processor, WebFountain [13] Storage processor, Local copy of the fetched pages, Adaptive download rate, Homogenous Completeness, Freshness, Frontier, Fetch cluster as hardware Scalability Polybot [14] URL-Seen Red-Black tree to keep the URLs Scalability UbiCrawler [15] URL-Seen P2P architecture Scalability psearch [16] Store processor Distributed Hashing Tables (DHT) Scalability Exposto et al. [19] Frontier Distributed Hashing Tables (DHT) Scalability IRLbotpages [20] URL-Seen Access time reduction by disk segmentation Scalability
12 Table 3: Taxonomy of Deep Web Crawlers Ntoulas et al. [25] Lu et al. [26] Study Component Method Goal HiWe [7] Select fillable, Domain Finder, Submit- etc, Approximation matching, Manual domain, Ignore submitting small Partial page layout and visual adjacency, Normalization by stemming Lenient submission efficiency, Submission ter, Response Analyst detect errors or incomplete forms, Hash of visually important parts of the page to efficiency Fields with finite set of values, ignores automatic filling of text field, Liddle et al. [24] Stratified Sampling Method (avoid queries biased toward certain fields), Lenient submission efficiency, Submission Select fillable, Domain Finder Concatenation of pages connected through navigational elements, Stop Detection of new forms inside result page, Removal of repeated form efficiency queries by observing pages with repetitive partial results, Detect record boundaries and computes hash values for each sentence Single keyword-based queries, Based on collection data associate Select fillable, weights to keywords and uses greedy algorithms to retrieve as much Lenient submission efficiency, Submission Barbosa and Freire Domain Finder, contents with minimum number of queries, Considers adding stopwords to maximize coverage, Issue queries using dummy words to de- efficiency [23] Response Analysis tect error pages Select fillable, Domain Finder Lenient submission efficiency, Submission efficiency Select fillable, Domain Finder Single-term keyword-based queries, Three policies: random, based on the frequency of keyword in a corpus, and an Adaptive policy that learn from the downloaded pages. maximizing the unique returns of each query querying textual data sources, Works on sample that represents the original data source, Maximizing the coverage Lenient submission efficiency, Scalability, Submission efficiency Table 4: Taxonomy of RIA Web Crawlers Study Component Method Goal Strategy, JS-Engine, Breadth-First-Search, Caching the JavaScript function calls and results, Duda et al. [29 31] Completeness, Efficiency DOM-Seen Comparing Hash value of the full serialized DOM Depth-First-Search, Explores an event only once, New threads are initiated for unexplored events, Comparing Edit distance with all previous Completeness, State Coverage Efficiency, Scalability Mesbah et al. [32,33] Strategy, DOM-Seen states Depth-First strategy (Automatically generated using execution traces), CrawlRIA [34 37] Strategy, DOM-Seen Comparing the set of elements, event types, event handlers in two Completeness DOMs Assuming hypercube model for the application, Using Minimum Chain Kamara et al. [8, 52] Strategy State Coverage Efficiency M-Crawler [53] Strategy Decomposition and Minimum Transition Coverage Menu strategy which categorizes events after first two runs, Events which always lead to the same/current state has less priority, Using Rural-Postman solver to explore unexecuted events efficiently State Coverage Efficiency, Completeness Peng et al. [42] Strategy Choose an event from current state then from the closest state State Coverage Efficiency AjaxRank [31] Strategy, DOM-Seen The initial state of the URL is given more importance, Similar to PageRank, connectivity-based but instead of hyperlinks the transitions are considered hash value of the content and structure of the DOM State Coverage Efficiency Dincturk et al. [41] Dist-RIA [45] Feedex [43] Crawler Strategy Strategy Strategy Considers probability of discovering new state by an event and cost of following the path to event s state Uses JavaScript events to partition the search space and run the crawl in parallel on multiple nodes Prioritize events based on their possible impact of the DOM, Considers factors like code coverage, navigational and page structural diversity State Coverage Efficiency Scalability State Coverage Efficiency
13 directed graph by minimizing the total sum of the weights of the edges traversed. The offline version of this problem, where the graph is known beforehand, is called the Asymmetric Traveling Salesman Problem (ATSP) which is NP-Hard. Although there are some approximation algorithms for different variations of the unknown graph exploration problem [54 57], not knowing the graph ahead of the time is a major obstacle to deploy these algorithms to crawl RIAs. Scalability: Problems such as URL-Seen may not exist in the context of RIA crawling. However, a related problem is the State-Seen problem: If a DOM state was seen before. Widget detection: In order to avoid state explosion, it is crucial to detect independent parts of the interface in a RIA. This can effect ranking of different states, too. Definition of state in RIA: some HTML5 elements such as web sockets introduce new challenges to the web crawlers. Some of the challenges are addressed by Imagen [44], however many of these challenges remain open. In addition, combining different types of crawlers to build a unified crawler seems another promising research area. Acknowledgements This work is largely supported by the IBM R Center for Advanced Studies, the IBM Ottawa Lab and the Natural Sciences and Engineering Research Council of Canada (NSERC). A special thank to Anseok Joo and Di Zou. Trademarks IBM, the IBM logo, ibm.com and AppScan are trademarks or registered trademarks of International Business Machines Corp., registered in many jurisdictions worldwide. Other product and service names might be trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at Copyright and trademark information at Java and all Java-based trademarks and logos are trademarks or registered trademarks of Oracle and/or its affiliates. References [1] J. Bau, E. Bursztein, D. Gupta, and J. Mitchell, State of the art: Automated black-box web application vulnerability testing, in Security and Privacy (SP), 2010 IEEE Symposium on. IEEE, 2010, pp [2] A. Doupé, M. Cova, and G. Vigna, Why johnny can t pentest: An analysis of black-box web vulnerability scanners, in Detection of Intrusions and Malware, and Vulnerability Assessment. Springer, 2010, pp [3] J. Marini, Document Object Model, 1st ed. New York, NY, USA: McGraw-Hill, Inc., [4] C. Olston and M. Najork, Web crawling, Foundations and Trends in Information Retrieval, vol. 4, no. 3, pp , [5] A. Heydon and M. Najork, Mercator: A scalable, extensible web crawler, World Wide Web, vol. 2, pp , [6] M. Burner, Crawling towards eternity: Building an archive of the world wide web, Web Techniques Magazine, vol. 2, no. 5, May [7] S. Raghavan and H. Garcia-Molina, Crawling the hidden web, in Proceedings of the 27th International Conference on Very Large Data Bases, ser. VLDB 01. San Francisco, CA, USA: Morgan Kaufmann Publishers Inc., 2001, pp [8] K. Benjamin, G. Von Bochmann, M. E. Dincturk, G.-V. Jourdan, and I. V. Onut, A strategy for efficient crawling of rich internet applications, in Proceedings of the 11th international conference on Web engineering, ser. ICWE 11. Berlin, Heidelberg: Springer-Verlag, 2011, pp [9] B. He, M. Patel, Z. Zhang, and K. C.-C. Chang, Accessing the deep web, Commun. ACM, vol. 50, no. 5, pp , May [10] S. Choudhary, M. E. Dincturk, S. M. Mirtaheri, A. Moosavi, G. von Bochmann, G.-V. Jourdan, and I.-V. Onut, Crawling rich internet applications: the state of the art. in CASCON, 2012, pp [11] O. A. McBryan, Genvl and wwww: Tools for taming the web, in In Proceedings of the First International World Wide Web Conference, 1994, pp [12] S. Brin and L. Page, The anatomy of a large-scale hypertextual web search engine, in Proceedings of the seventh international conference on World Wide Web 7, ser. WWW7. Amsterdam, The Netherlands, The Netherlands: Elsevier Science Publishers B. V., 1998, pp
14 [13] J. Edwards, K. McCurley, and J. Tomlin, An adaptive model for optimizing performance of an incremental web crawler, [14] V. Shkapenyuk and T. Suel, Design and implementation of a high-performance distributed web crawler, in In Proc. of the Int. Conf. on Data Engineering, 2002, pp [15] P. Boldi, B. Codenotti, M. Santini, and S. Vigna, Ubicrawler: A scalable fully distributed web crawler, Proc Australian World Wide Web Conference, vol. 34, no. 8, pp , [16] C. Tang, Z. Xu, and M. Mahalingam, psearch: Information retrieval in structured overlays, [17] J. Li, B. Loo, J. Hellerstein, M. Kaashoek, D. Karger, and R. Morris, On the feasibility of peer-to-peer web indexing and search, Peer-to- Peer Systems II, pp , [18] B. T. Loo, S. Krishnamurthy, and O. Cooper, Distributed web crawling over dhts, EECS Department, University of California, Berkeley, Tech. Rep. UCB/CSD , [19] J. Exposto, J. Macedo, A. Pina, A. Alves, and J. Rufino, Geographical partition for distributed web crawling, in Proceedings of the 2005 workshop on Geographic information retrieval, ser. GIR 05. New York, NY, USA: ACM, 2005, pp [20] H. tsang Lee, D. Leonard, X. Wang, and D. Loguinov, Irlbot: Scaling to 6 billion pages and beyond, [21] S. Lawrence and C. L. Giles, Searching the world wide web, SCIENCE, vol. 280, no. 5360, pp , [22] M. K. Bergman, The deep web: Surfacing hidden value, September [23] L. Barbosa and J. Freire, Siphoning hiddenweb data through keyword-based interfaces, in In SBBD, 2004, pp [24] S. W. Liddle, D. W. Embley, D. T. Scott, and S. H. Yau1, Extracting Data behind Web Forms, Lecture Notes in Computer Science, vol. 2784, pp , Jan [25] A. Ntoulas, Downloading textual hidden web content through keyword queries, in In JCDL, 2005, pp [26] J. Lu, Y. Wang, J. Liang, J. Chen, and J. Liu, An Approach to Deep Web Crawling by Sampling, Web Intelligence and Intelligent Agent Technology, IEEE/WIC/ACM International Conference on, vol. 1, pp , [27] T. H. Cormen, C. E. Leiserson, R. L. Rivest, and C. Stein, Introduction to Algorithms, 3rd ed. The MIT Press, [28] Z. Behfarshad and A. Mesbah, Hidden-web induced by client-side scripting: An empirical study, in Proceedings of the International Conference on Web Engineering (ICWE), ser. Lecture Notes in Computer Science, vol Springer, 2013, pp [29] C. Duda, G. Frey, D. Kossmann, R. Matter, and C. Zhou, Ajax crawl: Making ajax applications searchable, in Proceedings of the 2009 IEEE International Conference on Data Engineering, ser. ICDE 09. Washington, DC, USA: IEEE Computer Society, 2009, pp [30] R. Matter, Ajax crawl: Making ajax applications searchable, Master s thesis, ETH Zurich, 2008, collection.library.ethz.ch/eserv/eth:30709/eth pdf. [31] G. Frey, Indexing ajax web applications, Master s thesis, ETH Zurich, 2007, collection.library.ethz.ch/eserv/eth:30111/eth pdf. [32] A. Mesbah, E. Bozdag, and A. v. Deursen, Crawling ajax by inferring user interface state changes, in Proceedings of the 2008 Eighth International Conference on Web Engineering, ser. ICWE 08. Washington, DC, USA: IEEE Computer Society, 2008, pp [33] A. Mesbah, A. van Deursen, and S. Lenselink, Crawling ajax-based web applications through dynamic analysis of user interface state changes, TWEB, vol. 6, no. 1, p. 3, [34] D. Amalfitano, A. R. Fasolino, and P. Tramontana, Reverse engineering finite state machines from rich internet applications, in Proceedings of the th Working Conference on Reverse Engineering, ser. WCRE 08. Washington, DC, USA: IEEE Computer Society, 2008, pp [35] D. Amalfitano, A. Fasolino, and P. Tramontana, Rich internet application testing using execution trace data, Software Testing Verification and Validation Workshop, IEEE International Conference on, vol. 0, pp , [36] D. e. a. Amalfitano, Experimenting a reverse engineering technique for modelling the behaviour of rich internet applications, in Software Maintenance, ICSM IEEE International Conference on, sept. 2009, pp [37] D. Amalfitano, A. Fasolino, and P. Tramontana, Techniques and tools for rich internet applications testing, in Web Systems Evolution (WSE), th IEEE International Symposium on, sept. 2010, pp
15 [38] M. E. Dincturk, Model-based crawling - an approach to design efficient crawling strategies for rich internet applications, Master s thesis, EECS - University of Ottawa, 2013, MustafaEmre 2013 thesis.pdf. [39] S. Choudhary, E. Dincturk, S. Mirtaheri, G.-V. Jourdan, G. Bochmann, and I. Onut, Building rich internet applications models: Example of a better strategy, in Web Engineering, ser. Lecture Notes in Computer Science, F. Daniel, P. Dolog, and Q. Li, Eds. Springer Berlin Heidelberg, 2013, vol. 7977, pp [40] S. Choudhary, M-crawler: Crawling rich internet applications using menu meta-model, Master s thesis, EECS - University of Ottawa, 2012, [41] M. E. Dincturk, S. Choudhary, G. von Bochmann, G.-V. Jourdan, and I.-V. Onut, A statistical approach for efficient crawling of rich internet applications, in ICWE, 2012, pp [42] Z. Peng, N. He, C. Jiang, Z. Li, L. Xu, Y. Li, and Y. Ren, Graph-based ajax crawl: Mining data from rich internet applications, in Computer Science and Electronics Engineering (ICCSEE), 2012 International Conference on, vol. 3, march 2012, pp [43] A. Milani Fard and A. Mesbah, Feedback-directed exploration of web applications to derive test models, in Proceedings of the 24th IEEE International Symposium on Software Reliability Engineering (ISSRE). IEEE Computer Society, 2013, p. 10 pages. [44] J. Lo, E. Wohlstadter, and A. Mesbah, Imagen: Runtime migration of browser sessions for javascript web applications, in Proceedings of the International World Wide Web Conference (WWW). ACM, 2013, pp [45] S. M. Mirtaheri, D. Zou, G. V. Bochmann, G.-V. Jourdan, and I. V. Onut, Dist-ria crawler: A distributed crawler for rich internet applications, in In Proc. 8TH INTERNATIONAL CONFERENCE ON P2P, PARALLEL, GRID, CLOUD AND INTERNET COMPUTING, [46] V. Garousi, A. Mesbah, A. Betin Can, and S. Mirshokraie, A systematic mapping study of web application testing, Information and Software Technology, vol. 55, no. 8, pp , [47] A. Marchetto, P. Tonella, and F. Ricca, Statebased testing of ajax web applications, in Proceedings of the 2008 International Conference on Software Testing, Verification, and Validation, ser. ICST 08. Washington, DC, USA: IEEE Computer Society, 2008, pp [48] A. Marchetto and P. Tonella, Search-based testing of ajax web applications, in Proceedings of the st International Symposium on Search Based Software Engineering, ser. SSBSE 09. Washington, DC, USA: IEEE Computer Society, 2009, pp [49] A. Mesbah and A. van Deursen, Invariant-based automatic testing of ajax user interfaces, in Software Engineering, ICSE IEEE 31st International Conference on, may 2009, pp [50] D. Roest, A. Mesbah, and A. van Deursen, Regression testing ajax applications: Coping with dynamism. in ICST. IEEE Computer Society, 2010, pp [51] L. Page, S. Brin, R. Motwani, and T. Winograd, The pagerank citation ranking: Bringing order to the web, 1998, standford University, Technical Report. [52] K. Benjamin, A strategy for efficient crawling of rich internet applications, Master s thesis, EECS - University of Ottawa, 2010, Thesis.pdf. [53] S. Choudhary, M. E. Dincturk, G. von Bochmann, G.-V. Jourdan, I.-V. Onut, and P. Ionescu, Solving some modeling challenges when testing rich internet applications for security, in ICST, 2012, pp [54] N. Megow, K. Mehlhorn, and P. Schweitzer, Online graph exploration: new results on old and new algorithms, in Proceedings of the 38th international conference on Automata, languages and programming - Volume Part II, ser. ICALP 11. Berlin, Heidelberg: Springer-Verlag, 2011, pp [55] S. Dobrev, R. Královič, and E. Markou, Online graph exploration with advice, in Structural Information and Communication Complexity, ser. Lecture Notes in Computer Science, G. Even and M. Halldórsson, Eds. Springer Berlin Heidelberg, 2012, vol. 7355, pp [56] K.-T. Förster and R. Wattenhofer, Directed graph exploration, in Principles of Distributed Systems, ser. Lecture Notes in Computer Science, R. Baldoni, P. Flocchini, and R. Binoy, Eds. Springer Berlin Heidelberg, 2012, vol. 7702, pp [57] R. Fleischer, T. Kamphans, R. Klein, E. Langetepe, and G. Trippen, Competitive online approximation of the optimal search ratio, in In Proc. 12th Annu. European Sympos. Algorithms, volume 3221 of Lecture Notes Comput. Sci. Springer-Verlag, 2004, pp
Solving Some Modeling Challenges when Testing Rich Internet Applications for Security
Solving Some Modeling Challenges when Testing Rich Internet Applications for Security Suryakant Choudhary 1, Mustafa Emre Dincturk 1, Gregor v. Bochmann 1,3, Guy-Vincent Jourdan 1,3 1 EECS, University
A Scalable P2P RIA Crawling System with Partial Knowledge
A Scalable P2P RIA Crawling System with Partial Knowledge Khaled Ben Hafaiedh, Gregor von Bochmann, Guy-Vincent Jourdan, and Iosif Viorel Onut EECS, University of Ottawa, Ottawa, Ontario, Canada [email protected],
Chapter-1 : Introduction 1 CHAPTER - 1. Introduction
Chapter-1 : Introduction 1 CHAPTER - 1 Introduction This thesis presents design of a new Model of the Meta-Search Engine for getting optimized search results. The focus is on new dimension of internet
IRLbot: Scaling to 6 Billion Pages and Beyond
IRLbot: Scaling to 6 Billion Pages and Beyond Presented by Xiaoming Wang Hsin-Tsang Lee, Derek Leonard, Xiaoming Wang, and Dmitri Loguinov Internet Research Lab Computer Science Department Texas A&M University
So today we shall continue our discussion on the search engines and web crawlers. (Refer Slide Time: 01:02)
Internet Technology Prof. Indranil Sengupta Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture No #39 Search Engines and Web Crawler :: Part 2 So today we
Techniques and Tools for Rich Internet Applications Testing
Techniques and Tools for Rich Internet Applications Testing Domenico Amalfitano Anna Rita Fasolino Porfirio Tramontana Dipartimento di Informatica e Sistemistica University of Naples Federico II, Italy
Design and Implementation of Domain based Semantic Hidden Web Crawler
Design and Implementation of Domain based Semantic Hidden Web Crawler Manvi Department of Computer Engineering YMCA University of Science & Technology Faridabad, India Ashutosh Dixit Department of Computer
IBM Software Information Management. Scaling strategies for mission-critical discovery and navigation applications
IBM Software Information Management Scaling strategies for mission-critical discovery and navigation applications Scaling strategies for mission-critical discovery and navigation applications Contents
Dr. Anuradha et al. / International Journal on Computer Science and Engineering (IJCSE)
HIDDEN WEB EXTRACTOR DYNAMIC WAY TO UNCOVER THE DEEP WEB DR. ANURADHA YMCA,CSE, YMCA University Faridabad, Haryana 121006,India [email protected] http://www.ymcaust.ac.in BABITA AHUJA MRCE, IT, MDU University
Industrial Adoption of Automatically Extracted GUI Models for Testing
Industrial Adoption of Automatically Extracted GUI Models for Testing Pekka Aho 1,2 [email protected], Matias Suarez 3 [email protected], Teemu Kanstrén 1,4 [email protected], and Atif M. Memon
Web Mining. Margherita Berardi LACAM. Dipartimento di Informatica Università degli Studi di Bari [email protected]
Web Mining Margherita Berardi LACAM Dipartimento di Informatica Università degli Studi di Bari [email protected] Bari, 24 Aprile 2003 Overview Introduction Knowledge discovery from text (Web Content
CHAPTER 20 TESING WEB APPLICATIONS. Overview
CHAPTER 20 TESING WEB APPLICATIONS Overview The chapter describes the Web testing. Web testing is a collection of activities whose purpose is to uncover errors in WebApp content, function, usability, navigability,
AN EXTENDED MODEL FOR EFFECTIVE MIGRATING PARALLEL WEB CRAWLING WITH DOMAIN SPECIFIC AND INCREMENTAL CRAWLING
International Journal on Web Service Computing (IJWSC), Vol.3, No.3, September 2012 AN EXTENDED MODEL FOR EFFECTIVE MIGRATING PARALLEL WEB CRAWLING WITH DOMAIN SPECIFIC AND INCREMENTAL CRAWLING Md. Faizan
EVILSEED: A Guided Approach to Finding Malicious Web Pages
+ EVILSEED: A Guided Approach to Finding Malicious Web Pages Presented by: Alaa Hassan Supervised by: Dr. Tom Chothia + Outline Introduction Introducing EVILSEED. EVILSEED Architecture. Effectiveness of
EXTENDING JMETER TO ALLOW FOR WEB STRUCTURE MINING
EXTENDING JMETER TO ALLOW FOR WEB STRUCTURE MINING Agustín Sabater, Carlos Guerrero, Isaac Lera, Carlos Juiz Computer Science Department, University of the Balearic Islands, SPAIN [email protected], [email protected],
CS 558 Internet Systems and Technologies
CS 558 Internet Systems and Technologies Dimitris Deyannis [email protected] 881 Heat seeking Honeypots: Design and Experience Abstract Compromised Web servers are used to perform many malicious activities.
Globule: a Platform for Self-Replicating Web Documents
Globule: a Platform for Self-Replicating Web Documents Guillaume Pierre Maarten van Steen Vrije Universiteit, Amsterdam Internal report IR-483 January 2001 Abstract Replicating Web documents at a worldwide
Analysis of Web Archives. Vinay Goel Senior Data Engineer
Analysis of Web Archives Vinay Goel Senior Data Engineer Internet Archive Established in 1996 501(c)(3) non profit organization 20+ PB (compressed) of publicly accessible archival material Technology partner
Optimization of Search Results with Duplicate Page Elimination using Usage Data A. K. Sharma 1, Neelam Duhan 2 1, 2
Optimization of Search Results with Duplicate Page Elimination using Usage Data A. K. Sharma 1, Neelam Duhan 2 1, 2 Department of Computer Engineering, YMCA University of Science & Technology, Faridabad,
Understanding Web personalization with Web Usage Mining and its Application: Recommender System
Understanding Web personalization with Web Usage Mining and its Application: Recommender System Manoj Swami 1, Prof. Manasi Kulkarni 2 1 M.Tech (Computer-NIMS), VJTI, Mumbai. 2 Department of Computer Technology,
Real-Time Analysis of CDN in an Academic Institute: A Simulation Study
Journal of Algorithms & Computational Technology Vol. 6 No. 3 483 Real-Time Analysis of CDN in an Academic Institute: A Simulation Study N. Ramachandran * and P. Sivaprakasam + *Indian Institute of Management
How To Protect Your Data From Being Hacked On Security Cloud
F-SECURE SECURITY CLOUD Purpose, function and benefits October 2015 CONTENTS F-Secure Security Cloud in brief 2 Security Cloud benefits 3 How does Security Cloud work? 4 Security Cloud metrics 4 Security
[Rokadiya,5(4): October-December 2015] ISSN 2277 5528 Impact Factor- 3.145
INTERNATIONALJOURNALOFENGINEERING SCIENCES&MANAGEMENT A MODEL FOR WEB BASED APPLICATION USING MANUAL AND AUTOMATED TESTING TECHNIQUES AND ALSO STUDY FAULTS, THEIR EFFECTS AND TESTING CHALLENGES IN WEB
WebMate: A Tool for Testing Web 2.0 Applications
WebMate: A Tool for Testing Web 2.0 Applications Valentin Dallmeier Martin Burger Tobias Orth Andreas Zeller Saarland University Computer Science Saarbrücken, Germany {dallmeier, mburger, orth, zeller}@st.cs.uni-saarland.de
How To Test A Web Based Application Automatically
A General Framework for Testing Web-Based Applications Saeed Abrishami, Mohsen Kahani Computer Engineering Department, Ferdowsi University of Mashhad [email protected] r, [email protected] Abstract Software
Framework for Intelligent Crawler Engine on IaaS Cloud Service Model
International Journal of Information & Computation Technology. ISSN 0974-2239 Volume 4, Number 17 (2014), pp. 1783-1789 International Research Publications House http://www. irphouse.com Framework for
A Platform for Supporting Data Analytics on Twitter: Challenges and Objectives 1
A Platform for Supporting Data Analytics on Twitter: Challenges and Objectives 1 Yannis Stavrakas Vassilis Plachouras IMIS / RC ATHENA Athens, Greece {yannis, vplachouras}@imis.athena-innovation.gr Abstract.
METHODS TO TEST WEB APPLICATION SCANNERS
METHODS TO TEST WEB APPLICATION SCANNERS Fernando Román Muñoz, Luis Javier García Villalba Group of Analysis, Security and Systems (GASS) Department of Software Engineering and Artificial Intelligence
WebMate: Generating Test Cases for Web 2.0
WebMate: Generating Test Cases for Web 2.0 Valentin Dallmeier, Martin Burger, Tobias Orth, and Andreas Zeller Saarland University, Computer Science Department, Saarbrücken, Germany {dallmeier,mburger,orth,zeller}@st.cs.uni-saarland.de
131-1. Adding New Level in KDD to Make the Web Usage Mining More Efficient. Abstract. 1. Introduction [1]. 1/10
1/10 131-1 Adding New Level in KDD to Make the Web Usage Mining More Efficient Mohammad Ala a AL_Hamami PHD Student, Lecturer m_ah_1@yahoocom Soukaena Hassan Hashem PHD Student, Lecturer soukaena_hassan@yahoocom
A Load Balancing Algorithm based on the Variation Trend of Entropy in Homogeneous Cluster
, pp.11-20 http://dx.doi.org/10.14257/ ijgdc.2014.7.2.02 A Load Balancing Algorithm based on the Variation Trend of Entropy in Homogeneous Cluster Kehe Wu 1, Long Chen 2, Shichao Ye 2 and Yi Li 2 1 Beijing
Understanding the Benefits of IBM SPSS Statistics Server
IBM SPSS Statistics Server Understanding the Benefits of IBM SPSS Statistics Server Contents: 1 Introduction 2 Performance 101: Understanding the drivers of better performance 3 Why performance is faster
Detection of Distributed Denial of Service Attack with Hadoop on Live Network
Detection of Distributed Denial of Service Attack with Hadoop on Live Network Suchita Korad 1, Shubhada Kadam 2, Prajakta Deore 3, Madhuri Jadhav 4, Prof.Rahul Patil 5 Students, Dept. of Computer, PCCOE,
Test Run Analysis Interpretation (AI) Made Easy with OpenLoad
Test Run Analysis Interpretation (AI) Made Easy with OpenLoad OpenDemand Systems, Inc. Abstract / Executive Summary As Web applications and services become more complex, it becomes increasingly difficult
Google Analytics for Robust Website Analytics. Deepika Verma, Depanwita Seal, Atul Pandey
1 Google Analytics for Robust Website Analytics Deepika Verma, Depanwita Seal, Atul Pandey 2 Table of Contents I. INTRODUCTION...3 II. Method for obtaining data for web analysis...3 III. Types of metrics
Enabling Kerberos SSO in IBM Cognos Express on Windows Server 2008
Enabling Kerberos SSO in IBM Cognos Express on Windows Server 2008 Nature of Document: Guideline Product(s): IBM Cognos Express Area of Interest: Infrastructure 2 Copyright and Trademarks Licensed Materials
Muse Server Sizing. 18 June 2012. Document Version 0.0.1.9 Muse 2.7.0.0
Muse Server Sizing 18 June 2012 Document Version 0.0.1.9 Muse 2.7.0.0 Notice No part of this publication may be reproduced stored in a retrieval system, or transmitted, in any form or by any means, without
NETWRIX EVENT LOG MANAGER
NETWRIX EVENT LOG MANAGER QUICK-START GUIDE FOR THE ENTERPRISE EDITION Product Version: 4.0 July/2012. Legal Notice The information in this publication is furnished for information use only, and does not
Component visualization methods for large legacy software in C/C++
Annales Mathematicae et Informaticae 44 (2015) pp. 23 33 http://ami.ektf.hu Component visualization methods for large legacy software in C/C++ Máté Cserép a, Dániel Krupp b a Eötvös Loránd University [email protected]
IBM Advanced Threat Protection Solution
IBM Advanced Threat Protection Solution Fabio Panada IBM Security Tech Sales Leader 1 Advanced Threats is one of today s key mega-trends Advanced Threats Sophisticated, targeted attacks designed to gain
Load testing with. WAPT Cloud. Quick Start Guide
Load testing with WAPT Cloud Quick Start Guide This document describes step by step how to create a simple typical test for a web application, execute it and interpret the results. 2007-2015 SoftLogica
Search engine ranking
Proceedings of the 7 th International Conference on Applied Informatics Eger, Hungary, January 28 31, 2007. Vol. 2. pp. 417 422. Search engine ranking Mária Princz Faculty of Technical Engineering, University
Optimization of Distributed Crawler under Hadoop
MATEC Web of Conferences 22, 0202 9 ( 2015) DOI: 10.1051/ matecconf/ 2015220202 9 C Owned by the authors, published by EDP Sciences, 2015 Optimization of Distributed Crawler under Hadoop Xiaochen Zhang*
IBM RATIONAL PERFORMANCE TESTER
IBM RATIONAL PERFORMANCE TESTER Today, a major portion of newly developed enterprise applications is based on Internet connectivity of a geographically distributed work force that all need on-line access
IJREAS Volume 2, Issue 2 (February 2012) ISSN: 2249-3905 STUDY OF SEARCH ENGINE OPTIMIZATION ABSTRACT
STUDY OF SEARCH ENGINE OPTIMIZATION Sachin Gupta * Ankit Aggarwal * ABSTRACT Search Engine Optimization (SEO) is a technique that comes under internet marketing and plays a vital role in making sure that
Identifying the Number of Visitors to improve Website Usability from Educational Institution Web Log Data
Identifying the Number of to improve Website Usability from Educational Institution Web Log Data Arvind K. Sharma Dept. of CSE Jaipur National University, Jaipur, Rajasthan,India P.C. Gupta Dept. of CSI
DISCOVERY OF WEB-APPLICATION VULNERABILITIES USING FUZZING TECHNIQUES
DISCOVERY OF WEB-APPLICATION VULNERABILITIES USING FUZZING TECHNIQUES By Michael Crouse Dr. Errin W. Fulp, Ph.D., Advisor Abstract The increasingly high volume of users on the web and their use of web
Oracle Primavera P6 Enterprise Project Portfolio Management Performance and Sizing Guide. An Oracle White Paper October 2010
Oracle Primavera P6 Enterprise Project Portfolio Management Performance and Sizing Guide An Oracle White Paper October 2010 Disclaimer The following is intended to outline our general product direction.
User-Centric Client Management with System Center 2012 Configuration Manager in Microsoft IT
Situation Microsoft IT needed to evolve their Configuration Manager 2007-based environment that used homegrown application distribution services to meet the self-service needs of Microsoft personnel. Solution
A Multi agent Scanner to Detect Stored XSS Vulnerabilities
A Multi agent Scanner to Detect Stored XSS Vulnerabilities E. Galán, A. Alcaide, A. Orfila, J. Blasco University Carlos III of Madrid, UC3M Leganés, Spain {edgalan,aalcaide,adiaz,jbalis}@inf.uc3m.es Abstract
Tableau Server 7.0 scalability
Tableau Server 7.0 scalability February 2012 p2 Executive summary In January 2012, we performed scalability tests on Tableau Server to help our customers plan for large deployments. We tested three different
RANKING WEB PAGES RELEVANT TO SEARCH KEYWORDS
ISBN: 978-972-8924-93-5 2009 IADIS RANKING WEB PAGES RELEVANT TO SEARCH KEYWORDS Ben Choi & Sumit Tyagi Computer Science, Louisiana Tech University, USA ABSTRACT In this paper we propose new methods for
InfiniteGraph: The Distributed Graph Database
A Performance and Distributed Performance Benchmark of InfiniteGraph and a Leading Open Source Graph Database Using Synthetic Data Objectivity, Inc. 640 West California Ave. Suite 240 Sunnyvale, CA 94086
How To Test Your Web Site On Wapt On A Pc Or Mac Or Mac (Or Mac) On A Mac Or Ipad Or Ipa (Or Ipa) On Pc Or Ipam (Or Pc Or Pc) On An Ip
Load testing with WAPT: Quick Start Guide This document describes step by step how to create a simple typical test for a web application, execute it and interpret the results. A brief insight is provided
Data Refinery with Big Data Aspects
International Journal of Information and Computation Technology. ISSN 0974-2239 Volume 3, Number 7 (2013), pp. 655-662 International Research Publications House http://www. irphouse.com /ijict.htm Data
Running a Workflow on a PowerCenter Grid
Running a Workflow on a PowerCenter Grid 2010-2014 Informatica Corporation. No part of this document may be reproduced or transmitted in any form, by any means (electronic, photocopying, recording or otherwise)
A Comparative Study of Different Log Analyzer Tools to Analyze User Behaviors
A Comparative Study of Different Log Analyzer Tools to Analyze User Behaviors S. Bhuvaneswari P.G Student, Department of CSE, A.V.C College of Engineering, Mayiladuthurai, TN, India. [email protected]
A REVIEW PAPER ON THE HADOOP DISTRIBUTED FILE SYSTEM
A REVIEW PAPER ON THE HADOOP DISTRIBUTED FILE SYSTEM Sneha D.Borkar 1, Prof.Chaitali S.Surtakar 2 Student of B.E., Information Technology, J.D.I.E.T, [email protected] Assistant Professor, Information
How To Create An Insight Analysis For Cyber Security
IBM i2 Enterprise Insight Analysis for Cyber Analysis Protect your organization with cyber intelligence Highlights Quickly identify threats, threat actors and hidden connections with multidimensional analytics
NMS300 Network Management System
NMS300 Network Management System User Manual June 2013 202-11289-01 350 East Plumeria Drive San Jose, CA 95134 USA Support Thank you for purchasing this NETGEAR product. After installing your device, locate
Semantic Search in Portals using Ontologies
Semantic Search in Portals using Ontologies Wallace Anacleto Pinheiro Ana Maria de C. Moura Military Institute of Engineering - IME/RJ Department of Computer Engineering - Rio de Janeiro - Brazil [awallace,anamoura]@de9.ime.eb.br
How To Set Up A Shared Insight Cache Server On A Pc Or Macbook With A Virtual Environment On A Virtual Computer (For A Virtual) (For Pc Or Ipa) ( For Macbook) (Or Macbook). (For Macbook
SEP 12.1 Best Practices in a Virtual Environment The document is intended to capture the complete set of best practices for installation and configuration of SEP in a virtual environment. 1 Table of Contents
Basic & Advanced Administration for Citrix NetScaler 9.2
Basic & Advanced Administration for Citrix NetScaler 9.2 Day One Introducing and deploying Citrix NetScaler Key - Brief Introduction to the NetScaler system Planning a NetScaler deployment Deployment scenarios
Graph Theory and Complex Networks: An Introduction. Chapter 08: Computer networks
Graph Theory and Complex Networks: An Introduction Maarten van Steen VU Amsterdam, Dept. Computer Science Room R4.20, [email protected] Chapter 08: Computer networks Version: March 3, 2011 2 / 53 Contents
System Center Configuration Manager 2007
System Center Configuration Manager 2007 Software Distribution Guide Friday, 26 February 2010 Version 1.0.0.0 Baseline Prepared by Microsoft Copyright This document and/or software ( this Content ) has
An Automated Model Based Approach to Test Web Application Using Ontology
An Automated Model Based Approach to Test Web Application Using Ontology Hamideh Hajiabadi, Mohsen Kahani [email protected], [email protected] Computer Engineering Department, Ferdowsi
Distributed Framework for Data Mining As a Service on Private Cloud
RESEARCH ARTICLE OPEN ACCESS Distributed Framework for Data Mining As a Service on Private Cloud Shraddha Masih *, Sanjay Tanwani** *Research Scholar & Associate Professor, School of Computer Science &
IBM Tealeaf CX. A leading data capture for online Customer Behavior Analytics. Advantages. IBM Software Data Sheet
IBM Tealeaf CX A leading data capture for online Customer Behavior Analytics Advantages Passively captures network traffic without impacting site performance Provides breakthrough visibility into customer
Six Days in the Network Security Trenches at SC14. A Cray Graph Analytics Case Study
Six Days in the Network Security Trenches at SC14 A Cray Graph Analytics Case Study WP-NetworkSecurity-0315 www.cray.com Table of Contents Introduction... 3 Analytics Mission and Source Data... 3 Analytics
Introduction. A. Bellaachia Page: 1
Introduction 1. Objectives... 3 2. What is Data Mining?... 4 3. Knowledge Discovery Process... 5 4. KD Process Example... 7 5. Typical Data Mining Architecture... 8 6. Database vs. Data Mining... 9 7.
Usage Analysis Tools in SharePoint Products and Technologies
Usage Analysis Tools in SharePoint Products and Technologies Date published: June 9, 2004 Summary: Usage analysis allows you to track how websites on your server are being used. The Internet Information
Optimizing the Performance of Your Longview Application
Optimizing the Performance of Your Longview Application François Lalonde, Director Application Support May 15, 2013 Disclaimer This presentation is provided to you solely for information purposes, is not
Arti Tyagi Sunita Choudhary
Volume 5, Issue 3, March 2015 ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com Web Usage Mining
Proposed Protocol to Solve Discovering Hidden Web Hosts Problem
IJCSNS International Journal of Computer Science and Network Security, VOL.9 No.8, August 2009 247 Proposed Protocol to Solve Discovering Hidden Web Hosts Problem Mohamed A. Khattab, Yasser Fouad, and
Scalability. Microsoft Dynamics GP 10.0. Benchmark Performance: Advantages of Microsoft SQL Server 2008 with Compression.
Scalability Microsoft Dynamics GP 10.0 Benchmark Performance: Advantages of Microsoft SQL Server 2008 with Compression White Paper May 2009 Contents Introduction... 3 Summary Results... 3 Benchmark Test
Technology WHITE PAPER
Technology WHITE PAPER What We Do Neota Logic builds software with which the knowledge of experts can be delivered in an operationally useful form as applications embedded in business systems or consulted
Energy Constrained Resource Scheduling for Cloud Environment
Energy Constrained Resource Scheduling for Cloud Environment 1 R.Selvi, 2 S.Russia, 3 V.K.Anitha 1 2 nd Year M.E.(Software Engineering), 2 Assistant Professor Department of IT KSR Institute for Engineering
A SURVEY ON WEB MINING TOOLS
IMPACT: International Journal of Research in Engineering & Technology (IMPACT: IJRET) ISSN(E): 2321-8843; ISSN(P): 2347-4599 Vol. 3, Issue 10, Oct 2015, 27-34 Impact Journals A SURVEY ON WEB MINING TOOLS
Finding Execution Faults in Dynamic Web Application
International Journal of Information and Computation Technology. ISSN 0974-2239 Volume 4, Number 5 (2014), pp. 445-452 International Research Publications House http://www. irphouse.com /ijict.htm Finding
Automated Model Based Testing for an Web Applications
Automated Model Based Testing for an Web Applications Agasarpa Mounica, Lokanadham Naidu Vadlamudi Abstract- As the development of web applications plays a major role in our day-to-day life. Modeling the
A Framework of Model-Driven Web Application Testing
A Framework of Model-Driven Web Application Testing Nuo Li, Qin-qin Ma, Ji Wu, Mao-zhong Jin, Chao Liu Software Engineering Institute, School of Computer Science and Engineering, Beihang University, China
Cray: Enabling Real-Time Discovery in Big Data
Cray: Enabling Real-Time Discovery in Big Data Discovery is the process of gaining valuable insights into the world around us by recognizing previously unknown relationships between occurrences, objects
ANALYSIS OF WEBSITE USAGE WITH USER DETAILS USING DATA MINING PATTERN RECOGNITION
ANALYSIS OF WEBSITE USAGE WITH USER DETAILS USING DATA MINING PATTERN RECOGNITION K.Vinodkumar 1, Kathiresan.V 2, Divya.K 3 1 MPhil scholar, RVS College of Arts and Science, Coimbatore, India. 2 HOD, Dr.SNS
An Oracle White Paper June 2012. High Performance Connectors for Load and Access of Data from Hadoop to Oracle Database
An Oracle White Paper June 2012 High Performance Connectors for Load and Access of Data from Hadoop to Oracle Database Executive Overview... 1 Introduction... 1 Oracle Loader for Hadoop... 2 Oracle Direct
