A reference software architecture for a domain defines the fundamental components of the domain and the relations between them. Research has shown the benefits of having a reference architecture for product development, software reuse, and maintenance. Many mature domains, such as compilers and operating systems, have well-known reference architectures. In this paper, we present a process to derive a reference architecture for a domain. We used this process to derive a reference architecture for web servers, which is a relatively new domain. The paper presents the mapping of this reference architecture to the architectures of three open source web servers: Apache (80KLOC), AOL-Server (164KLOC), and Jigsaw (106KLOC). Keywords Software architecture, reference architecture, domain architecture, web server.
Ahmed E. Hassan, Richard C. Holt