Presentation is loading. Please wait.

Presentation is loading. Please wait.

Concrete Architecture of Mozilla Firefox (version 2.0.0.3) Iris Lai Jared Haines John,Chun-Hung,Chiu Josh Fairhead July 06, 2007.

Similar presentations


Presentation on theme: "Concrete Architecture of Mozilla Firefox (version 2.0.0.3) Iris Lai Jared Haines John,Chun-Hung,Chiu Josh Fairhead July 06, 2007."— Presentation transcript:

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


Download ppt "Concrete Architecture of Mozilla Firefox (version 2.0.0.3) Iris Lai Jared Haines John,Chun-Hung,Chiu Josh Fairhead July 06, 2007."

Similar presentations


Ads by Google