Stateless Distributed Parallel Crawling of Interactive Applications
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional methods for validating dynamic Web 2.0 applications are inadequate in capturing their rich, stateful behavior, and existing crawlers are computationally intensive, limiting the exploration of web applications' true behavior-space.
Innovation Solution
A distributed computing system with a master node and worker nodes that crawl interactive client-server applications, utilizing a master state graph to identify reconvergent traces and add results without removing duplicates, enabling efficient parallel crawling of dynamic web applications.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If conventional validation techniques based on manual testing are used, then the process is simple to implement, but they are completely inadequate at capturing or exploring the rich, stateful behavior of web applications
Solution Approach 1:
The patent replaces manual testing mechanisms with an automated crawler system that uses programmatic state exploration and graph-based tracking to capture web application behavior, thereby achieving comprehensive behavior capture without manual intervention
Solution Approach 2:
The patent transforms the validation approach by changing from manual observation parameters to automated state graph parameters, where each node represents an application state and edges represent transitions, enabling systematic exploration of behavior space
2Measurement precision
If custom AJAX web application crawlers are used to comprehensively explore behavior, then behavior capture capability is improved, but the crawling becomes very computationally intensive
Solution Approach 1:
The patent merges the state graph maintenance functionality into the crawler itself, eliminating the need for separate synchronization processes between master and worker nodes, thereby reducing overall computational overhead while maintaining comprehensive behavior exploration
Solution Approach 2:
The crawler performs self-service by automatically maintaining its own state graph and detecting reconvergent states through local computation, eliminating the need for external coordination and reducing computational intensity
3Loss of substance
If duplicate states or transitions are removed during crawling, then data redundancy is reduced, but the crawling process becomes more computationally intensive
Solution Approach 1:
The patent inverts the traditional approach by not removing duplicates but rather by detecting and utilizing reconvergent states as validation opportunities, where the same state reached through different paths confirms correct application behavior
4Productivity
If parallel crawling is implemented across multiple worker nodes, then productivity is improved, but coordination overhead and complexity increase
Solution Approach 1:
The patent segments the crawling task across multiple worker nodes, each independently maintaining its own state graph and exploring different portions of the application behavior space, thereby achieving parallel productivity without complex coordination
Solution Approach 2:
The patent converts the potential harm of duplicate exploration by multiple workers into a benefit by using reconvergent state detection as a validation mechanism, where independent workers reaching the same state through different paths confirms correct application behavior
Data Source
AI summary
A distributed computing system includes worker nodes and a master node including a processor coupled to a memory. Each worker node crawls a portion of an interactive client-server application. The memory includes a master state graph, including the results of crawling. The master node is configured to examine the master state graph to determine a number of reconverging traces, receive a result from a job from a worker node if the number of reconverging traces is below a threshold, and add the result to the master state graph without attempting to remove duplicate states or transitions. A trace includes states and transitions representing valid. A reconvergent trace includes a trace including a reconvergent state, which is a state that can be reached through two or more distinct traces. The result containing states and transitions is associated with crawling a first portion of the interactive client-server application.


