a reference architecture for web browsers
play

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


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

  2. Overview • Introduction • The web browser domain • Deriving a reference architecture • Validating the reference architecture • Conclusions and future work 2

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

  4. Web browser evolution 2.1 3.0 4.0 5.0 6.0 7.0 Legend Opera Open−source 0.8 1.0 1.2 Closed−source Safari Hybrid 1.0 2.0 3.0 Konqueror 0.5 1.0 Firefox W3C founded 1.0 1.2 Galeon 1998−03−31 M18 1.0 1.7 Mozilla 1.0 2.0 3.0 4.0 4.5 6.0 7.0 8.0 Netscape 1.0 2.0 3.0 Mosaic 1.0 2.0 3.0 4.0 5.0 5.5 6.0 Internet Explorer 1.0 2.0 2.4 2.85 Lynx 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 4

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

  6. Refining a conceptual architecture Source Object Program code code facts Build bfx rawlink Linked program Predefined Facts with File level facts landscape decomp− program schema osition facts addschema addcontain liftfile Hierarchichal Software subsystem landscape decomposition Concrete Conceptual Legend Architecture Architecture Tool Adjustments script jgrok Data flow lsedit Human interaction 6

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

  8. A reference architecture for web browsers User Interface Data Persistence Browser Engine Rendering Engine XML JavaScript Networking Display Backend Parser Interpreter 8

  9. Conceptual architecture of Mozilla User Interface UI Toolkit (XPFE) Browser Persist. User, Secure, Gecko Spider− GTK+ Necko Expat Monkey Adapter Security GTK+ / X11 Libraries (NSS/PSM) 9

  10. Mapping the ref. arch. onto Mozilla User Interface UI Toolkit (XPFE) Browser Persist. Data Persistence User, Secure, User Interface Browser Engine Gecko Rendering Engine Spider− GTK+ Necko Expat Monkey Adapter JavaScript XML Security Interpreter Parser GTK+ / X11 Libraries (NSS/PSM) Networking Display Backend 10

  11. Conceptual architecture of Lynx Browser Core wwwlib Curses Security (libgnutls) 11

  12. Mapping the ref. arch. onto Lynx User Interface Data Persistence Browser Core Browser Engine Rendering Engine JavaScript XML wwwlib Curses Interpreter Parser Display Backend Security (libgnutls) Networking 12

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

Recommend


More recommend