Modeling Request Routing in Web Applications

Minmin Han, Christine Hofmeister
2006 International Workshop on Web Site Evaluation, Proceedings of the  
For web applications, determining how requests from a web page are routed through server components can be time-consuming and error-prone due to the complex set of rules and mechanisms used in a platform such as J2EE. We define request routing to be the possible sequences of server-side components that handle requests. Many maintenance tasks require the developer to understand the request routing, so this complexity increases maintenance costs. However, viewing this problem at the architecture
more » ... evel provides some insight. The request routing in these web applications is an example of a pipeline architectural pattern: each request is processed by a sequence of components that form a pipeline. Communication between pipeline stages is event-based, which increases flexibility but obscures the pipeline structure because communication is indirect. Our approach for improving the maintainability of J2EE web applications is to provide a model that exposes this architectural information. We use Z to formally specify request routing models and analysis operations that can be performed on them, then provide tools to extract request routing information from an application's source code, create the request routing model, and analyze it automatically. We have applied this approach to a number of existing applications up to 34K LOC, showing improvement via typical maintenance scenarios. Since this particular combination of patterns is not unique to web applications, a model such as our request routing model could provide similar benefits for these systems.
doi:10.1109/wse.2006.14 dblp:conf/wse/HanH06 fatcat:qe6pg2lltjagvp7jsv4yd2h6qm