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

Slides:



Advertisements
Similar presentations
June, 2007 Petr Hamernik Extending Instant JChem 2.0 Architecture & API.
Advertisements

Mobile Agents Mouse House Creative Technologies Mike OBrien.
What is RMI? Remote Method Invocation –A true distributed computing application interface for Java, written to provide easy access to objects existing.
Web Service Ahmed Gamal Ahmed Nile University Bioinformatics Group
TCP/IP Protocol Suite 1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 22 World Wide Web and HTTP.
Copyright © 2012 Certification Partners, LLC -- All Rights Reserved Lesson 4: Web Browsing.
Synera The Software That Thinks Like You Do Synera Technical Presentation.
Lesson 4: Web Browsing.
Concrete Architecture of Firefox 2 Team One July 6, 2007 Team One July 6, 2007.
Network Programming Chapter 11 Lecture 6. Networks.
1 Object-Oriented Software Development Project Aaron Christopher.
Network Programming 授課教師 : 詹益禎 中文課名 : 網路程式設計 學分時數 : 3 學分\ 3 小時 助教 : 李宏杰、趙振宣 教室 : 上課時間 : 9:05~12:00 (Wed.)
1 CS 502: Computing Methods for Digital Libraries Lecture 22 Web browsers.
R-Mancala Srinivas Krishnan & Kiranjit Sidhu. Outline Design Details Refactoring Experience Demo.
The Application Layer Chapter 7. Electronic Mail Architecture and Services The User Agent Message Formats Message Transfer Final Delivery.
OCT 1 Master of Information System Management Organizational Communications and Distributed Object Technologies Review For Midterm.
CS490T Advanced Tablet Platform Applications Network Programming Evolution.
Networking Support In Java 2 Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
Getting a Web Page (And what to do once you’ve got it)
Web Servers How do our requests for resources on the Internet get handled? Can they be located anywhere? Global?
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
Networking Support In Java Nelson Padua-Perez Bill Pugh Department of Computer Science University of Maryland, College Park.
J2EE Java 2 Enterprise Edition. Relevant Topics in The Java Tutorial Topic Web Page JDBC orial/jdbc
Networking Support In Java 2 Fawzi Emad Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
An Introduction to Internetworking. Algorithm for client-server communication with UDP (connectionless) A SERVER A CLIENT Create a server-socket (listener)and.
VSP Video Station Protocol Presented by : Mittelman Dana Ben-Hamo Revital Ariel Tal Instructor : Sela Guy Presented by : Mittelman Dana Ben-Hamo Revital.
July 16 th, 2005 Software Architecture in Practice RiSE’s Seminars Bass’s at all Book :: Chapters 13 Fred Durão.
Conceptual Architecture of Firefox 6.0 Rob Staalduinen Katie Tanner Gordon Krull James Brereton By Fully Optimized.
By The Fully Optimized eXperience (FOX) James Brereton Katie Tanner Gordon Krull Rob Staalduinen
Computer Concepts 2014 Chapter 7 The Web and .
Network Programming 授課教師 : 詹益禎 中文課名 : 網路程式設計 學分時數 : 3學分\3小時 助教 :許聖宏
Socket Programming -What is it ? -Why bother ?. Basic Interface for programming networks at transport level It is communication end point Used for inter.
Human-Computer Interface Course 5. ISPs and Internet connection.
Chapter 4: Core Web Technologies
Getting to Know TiVo: The Home Media Engine (HME SDK) Eric M. Upchurch CS 525 Spring 2008.
Apache Mina Dima Ionut Daniel. Contents What is Apache Mina? Why Apache Mina? Mina Architecture Mina Core Mina Advanced JMX Support Spring Integration.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
1 Apache. 2 Module - Apache ♦ Overview This module focuses on configuring and customizing Apache web server. Apache is a commonly used Hypertext Transfer.
Chapter 1: The Internet and the WWW CIS 275—Web Application Development for Business I.
OWL Jan How Websites Work. “The Internet” vs. “The Web”?
Conceptual Architecture of Mozilla Firefox (version ) Jared Haines Iris Lai John,Chun-Hung,Chiu Josh Fairhead June 5, 2007.
Software Status Sonja Vrcic Socorro,
© Drexel University Software Engineering Research Group (SERG) 1 A. E. Hassan and R. C. Holt A Reference Architecture for Web.
Web Services Presented By : Noam Ben Haim. Agenda Introduction What is a web service Basic Architecture Extended Architecture WS Stacks.
Developing Applications with the CSI Framework A General Guide.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
1 Software Design Lecture What’s Design It’s a representation of something that is to be built. i.e. design  implementation.
Plug-in Architectures Presented by Truc Nguyen. What’s a plug-in? “a type of program that tightly integrates with a larger application to add a special.
Software Architecture Transformation Jan Bosch Professor of Software Engineering University of Groningen, Netherlands
©NIIT Introducing Enterprise JavaBeans (EJB) Lesson 1A / Slide 1 of 43J2EE Server Components Objectives In this lesson, you will learn about: The features.
Introduction to the World Wide Web & Internet CIS 101.
Java Programming: Advanced Topics 1 Building Web Applications Chapter 13.
Globus Data Storage Interface (DSI) - Enabling Easy Access to Grid Datasets Raj Kettimuthu, ANL and U. Chicago DIALOGUE Workshop August 2, 2005.
Gerhard Dueck -- CS3013Architecture 1 Architecture-Centric Process  There is more to software development then going blindly through the workflows driven.
1 Network Communications A Brief Introduction. 2 Network Communications.
TCP/IP Protocol Suite 1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 22 World Wide Web and HTTP.
Networking Mehdi Einali Advanced Programming in Java 1.
Java Web Services Orca Knowledge Center – Web Service key concepts.
Presentation on Distributed Web Based Systems Submitted by WWW
What is RMI? Remote Method Invocation
Processes The most important processes used in Web-based systems and their internal organization.
IS 4506 Server Configuration (HTTP Server)
Software models - Software Architecture Design Patterns
Introduction to Web Services
WinINet Windows Internet.
An Introduction to Internetworking
Message Passing Systems Version 2
OPeNDAP/Hyrax Interfaces
IS 4506 Configuring the FTP Service
Message Passing Systems
Presentation transcript:

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

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

Modified Conceptual Architecture of Mozilla Firefox

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.

Firefox Concrete Architecture

We divide source into nine parts(modules)  Runtime  Utility -functions (nsUnicharUtils)  User Interface  Gecko  Data Persistence  Java Script  Display Backend  XML Parser  Necko

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.

Necko Concrete Architecture

Network Service Protocol Handler Socket Transport Stream Converter Security URL Handler Necko Utility

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.

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.

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

Necko Concrete Architecture Necko Utility  DNS  Cookie  MIME  Cache

Interface architecture in Necko

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.

Handling downloads in Necko

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.

Design Patterns Observer  RequestObserver  Cache module Abstract Factory  SocketProviderService, StreamConverterService Singleton  IOService, CookieService Facade  SecretKeyFacade

Architecture Styles Pipe and Filter URL Network Service Protocol Handler Protocol Connection Transport Implicit Invocation

References [1] Mozilla: Core Modules & Libraries [2] Network library documentation [3] [4] [5] Multithreading in Necko - ml ml [6] [7] MDC Glossary -