Download presentation
Presentation is loading. Please wait.
Published byJasper Hector Garrison Modified over 9 years ago
1
Concrete Architecture of Mozilla Firefox (version 2.0.0.3) Iris Lai Jared Haines John,Chun-Hung,Chiu Josh Fairhead July 06, 2007
2
Outline Modified Conceptual Architecture Firefox Conceptual Architecture vs. Concrete Architecture Necko Concrete Architecture Interface architecture in Necko Handling downloads in Necko Necko Conceptual Architecture vs. Concrete Architecture Design Patterns and Architecture Styles
3
Modified Conceptual Architecture of Mozilla Firefox
4
Modified Conceptual Architecture Display backend module not part of Gecko, tightly couple with local machine, provides widget toolkit API that can be use by UI module Remove XPCOM from conceptual architecture since every modules relates to XPCOM. Conceptual should focus on main components and conceptual relations. The dependency between Necko and XML Parser was also eliminated according to our concrete architecture.
5
Firefox Concrete Architecture
6
We divide source into nine parts(modules) Runtime Utility -functions (nsUnicharUtils) User Interface Gecko Data Persistence Java Script Display Backend XML Parser Necko
7
Conceptual vs Concrete Architecture The concrete architecture shows more relations and dependencies than the conceptual architecture. There are two more components in the concrete architecture: Runtime and Utility.
8
Necko Concrete Architecture
9
Network Service Protocol Handler Socket Transport Stream Converter Security URL Handler Necko Utility
10
Necko Concrete Architecture Network Service Network Service contains essential modules nsIOService provides major Necko services. It manages protocol handlers and provides interface for creating URI objects from URI strings. nsSocketTransportService manages socket transport service which builds physical connections protocol handlers and the Internet.
11
Necko Concrete Architecture Protocol Handler In Protocol Handler layer, the corresponding protocol is selected according to the URI schema. Protocol Handler can handle requests that use ftp, http, or gopher protocol. Socket Transport Socket Transport is a layer between Protocol Handler and the Internet.
12
Necko Concrete Architecture Stream Converter Stream Converter provides stream conversion services to Protocol Handler. Security Uses Mozilla PSM URL Handler URL handler is called from Gecko (docshell) when a URI is requested
13
Necko Concrete Architecture Necko Utility DNS Cookie MIME Cache
14
Interface architecture in Necko
15
nsIURL and nsINetService are implemented in Network Service subsystem. nsIProtocolHandlers are implemented in Protocol Handler subsystem. nsIprotocolConnection is implemented by channels. Socket transports and file transports are implemented in Network Service subsystem and Socket Transport subsystem. Necko also handles transport threads. There is a single socket transport thread that manages a pool of file descriptors for all outstanding socket requests. This is similar to the Master-Slave design pattern. A master is monitoring all its slaves and talks to clients. In Necko, the masters are located in Network Service package, and slaves are implemented in other subsystems such as Protocol Handler.
16
Handling downloads in Necko
17
Necko Conceptual Architecture vs. Concrete Architecture There is no Protocol Connection subsystem in the Necko concrete architecture. The Protocol Connection is implemented by channels. There are two types of channels: synchronous and asynchronous. There are extra subsystems in Necko concrete architecture Stream converter Necko Utility. Necko Utility includes DNS, Cookie, MIME, and Cache.
18
Design Patterns Observer RequestObserver Cache module Abstract Factory SocketProviderService, StreamConverterService Singleton IOService, CookieService Facade SecretKeyFacade
19
Architecture Styles Pipe and Filter URL Network Service Protocol Handler Protocol Connection Transport Implicit Invocation
20
References [1] Mozilla: Core Modules & Libraries - http://www.mozilla.org/catalog/libraries/uriloader/ http://www.mozilla.org/catalog/libraries/uriloader/ [2] Network library documentation - http://www.mozilla.org/projects/netlib/ http://www.mozilla.org/projects/netlib/ [3] http://www.mozilla.org/docs/http://www.mozilla.org/docs/ [4] http://www.mozilla.org/owners.htmlhttp://www.mozilla.org/owners.html [5] Multithreading in Necko - http://www.mozilla.org/projects/netlib/necko_threading.ht ml http://www.mozilla.org/projects/netlib/necko_threading.ht ml [6] http://www.mozilla.org/docs/netlib/necko.htmlhttp://www.mozilla.org/docs/netlib/necko.html [7] MDC Glossary - http://developer.mozilla.org/en/docs/Glossary#SMIME http://developer.mozilla.org/en/docs/Glossary#SMIME
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.