SLIDE 1
- A Reference Architecture for
Web Servers
SLIDE 2 Reference Architecture
- Architecture template for software systems
in a domain
- A product architecture is an instantiation of
- A product architecture is an instantiation of
the reference arch
- Defines the fundamental components and
the relations between them
- Well known for mature domain (eg.
Compilers, Operating Systems)
SLIDE 3 Compiler Ref. Arch.
Parser Sem.
Source Binary
Code Scanner Parser Sem. Analyzer
Source Binary
Code Gen. Scanner
SLIDE 4 Reference Architecture Benefits
- Documents existing well-proven designs
- Helps build complex systems
- Provides a common vocabulary
- Provides a common vocabulary
- Aids in the comparison of different
architectures in the same domain
SLIDE 5 Paper Overview
– A process to derive a reference architecture by non-domain experts non-domain experts – A reference architecture for web servers – Mapping it to different product architectures
SLIDE 6
The Web Server Domain
SLIDE 7
BROWSER WEB SERVER Operating System Servlet CGI Program Files Resources
SLIDE 8 Web Servers
- Apache
- Microsoft - IIS
- Netscape - iPlanet Server
- Netscape - iPlanet Server
- AOL Server
- Jigsaw
SLIDE 9 Summary: 3 Servers
Web Server Main arch. Dev type 1st release Code size
(KLOC)
Lang. Arch. stable Apache Robert Open April 80 C 5 yrs Apache Robert Thau Open source April 1995 80 C 5 yrs AOL Server
ercial May 1995 164 C & TCL
Yves Lafon Experi mental May 1996 106 Java 2.5 yrs
SLIDE 10 Conceptual vs. Concrete Architecture
– Resides in the head(s) of the developer(s) – Mental model: incomplete, inaccurate, ideal – Mental model: incomplete, inaccurate, ideal
– Extracted from the system’s implementation – Many mismatches with the conceptual architecture
SLIDE 11
Process for Deriving Ref. Arch.
Reference Architecture for Web Servers AOLServer Concrete Architecture Conceptual Architecture Apache Concrete Architecture Conceptual Architecture Jigsaw Concrete Architecture Conceptual Architecture
SLIDE 12
Web Server Reference Architecture Architecture
SLIDE 13 Reception Request Analysis Record Transaction Resource Handler Access Control Util
Operating System Abstraction Layer
Control flow All depend on Web Server Reference Architecture
SLIDE 14
Mapping the Reference Architecture to a Web Server Architecture to a Web Server
SLIDE 15
The Apache Web Server
SLIDE 16
Request Trans. Access Ctrl.
Recep. Core MIME Logging Translation Authen- Author- OSAL. Util. Apache: Conceptual Architecture MIME type Response Authen- tication Author- ization Util OS Layer Apache: Conceptual to ref. architecture mapping
SLIDE 17
The AOL Web Server
SLIDE 18
Request Trans. Access Ctrl.
Communication Driver NSLog Daemon – Core NSPerm AOLServer: Conceptual to ref. architecture mapping OSAL. Util. AOLServer: Conceptual Architecture Timer NSThread URL Handle TCL Interpreter Util Database Interface
SLIDE 19 Mapping Summary
- Conceptual arch. of 3 servers maps nicely to
- ref. arch.
- Main differences are splitting and merging
- Main differences are splitting and merging
- f subsystems
- The derived architecture is independent of
development methodology
SLIDE 20 Conclusions
- Ref. arch.: Framework to assist in forward
and reverse engineering
- Conceptual arch: Each server maps nicely
- Conceptual arch: Each server maps nicely
to the derived reference architecture