A Reference Architecture for Web Browsers Alan Grosskurth and - - PowerPoint PPT Presentation
A Reference Architecture for Web Browsers Alan Grosskurth and - - PowerPoint PPT Presentation
A Reference Architecture for Web Browsers Alan Grosskurth and Michael W. Godfrey Software Architecture Group (SWAG) School of Computer Science University of Waterloo, Waterloo, Canada { agrossku,migod } @uwaterloo.ca 2005.09.29 1 Overview
Overview
- Introduction
- The web browser domain
- Deriving a reference architecture
- Validating the reference architecture
- Conclusions and future work
2
Introduction
- A reference architecture captures the fundamental
subsystems common to systems in a domain as well as the relationships between them
- Benefits:
– Improve understanding of existing systems – Help analyzing trade-offs between different design decisions – Serve as a template for design and reengineering
- Currently no reference architecture proposed for web
browsers
3
Web browser evolution
Lynx
1.0 2.0 2.4 2.85 1998−03−31 4.0 3.0 2.0 1.0 4.5 6.0 8.0 1.7 1.0 3.0 2.0 1.0 2.0 3.0 4.0 5.0 5.5 6.0 M18
Galeon Netscape
1.0 0.5
Firefox
1.0 3.0 2.0 1.0
Safari
0.8 1.0 1.2 7.0 2.1 3.0 5.0 6.0 4.0 Hybrid Closed−source Open−source
Legend 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 Internet Explorer Mosaic
1.0 1.2
Mozilla Konqueror Opera
7.0 W3C founded
4
Deriving a reference architecture
- 1. For each system:
- Propose a conceptual architecture for each browser
based on domain knowledge and documentation
- Refine it using the extracted concrete architecture
- 2. Propose a reference architecture based on the common
structure between the conceptual architectures
5
Refining a conceptual architecture
rawlink addcontain
Program facts Object code program Linked
liftfile
Source code facts landscape
Architecture Concrete
Adjustments
lsedit
program schema landscape
Conceptual Architecture
Predefined decomposition Hierarchichal subsystem Software Facts with File level decomp− facts
- sition
addschema bfx
Tool jgrok Data flow Human interaction script
Legend Build
6
Approximate web browser statistics
Project Version Languages Files kLOC Created Mozilla 1.7.3 C++, C 10,500 2,400 1998 Konqueror 3.3.1 C++ ≈950 ≈240 1996 Safari 1.2 C++, Obj C >750 >140 2003 Lynx 2.8.5 C 200 122 1992
7
A reference architecture for web browsers
Browser Engine Rendering Engine Networking
JavaScript Interpreter
XML Parser Data Persistence Display Backend User Interface
8
Conceptual architecture of Mozilla
Necko Security
(NSS/PSM)
Spider− Monkey Expat GTK+ Adapter Browser Persist. Gecko UI Toolkit (XPFE) User Interface User, Secure, GTK+ / X11 Libraries 9
Mapping the ref. arch. onto Mozilla
Necko Security
(NSS/PSM)
Spider− Monkey Expat GTK+ Adapter JavaScript Interpreter XML Parser Browser Persist. Networking Display Backend Rendering Engine Browser Engine Gecko UI Toolkit (XPFE) User Interface User, Secure, User Interface GTK+ / X11 Libraries Data Persistence
10
Conceptual architecture of Lynx
Browser Core Security (libgnutls) Curses wwwlib 11
Mapping the ref. arch. onto Lynx
Rendering Engine Browser Engine Browser Core User Interface Security (libgnutls) JavaScript Interpreter XML Parser Curses Display Backend Networking wwwlib Data Persistence 12
Conclusions
- 1. Emergent domain boundaries
- 2. Convergent evolution
- 3. Tension between open and closed source development
approaches
Future work
- More browsers: Mosaic, Galeon, GTK-Webcore