Modeling Request Routing in Web Applications

  • Authors:
  • Minmin Han;Christine Hofmeister

  • Affiliations:
  • Lehigh University;Lehigh University

  • Venue:
  • WSE '06 Proceedings of the Eighth IEEE International Symposium on Web Site Evolution
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

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 level 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.