Concrete Architecture of Firefox 2 Team One July 6, 2007 Team One July 6, 2007.

Slides:



Advertisements
Similar presentations
The Web Service Browser Automatic Client Generation and Efficient Data Transfer for Web Services Steffen Heinzl, Markus Mathes, Thilo Stadelmann, Dominik.
Advertisements

1/7 ITApplications XML Module Session 8: Introduction to Programming with XML.
PRESENTATION 3 Sri Raguraman CIS 895 Kansas State University.
Object-Oriented Analysis and Design CHAPTERS 12-14: INTRODUCTION TO DESIGN 1.
XML Parsing Using Java APIs AIP Independence project Fall 2010.
Karan Seth Rahul Dureja Salim Ali Khan.  Generate Year based timelines for celebrities.  Freely available Wikipedia datasets are being used.  Sax parser.
Model-View-Controller ("MVC") This is a architectural design pattern for interactive applications. This design pattern organizes an interactive application.
Mozilla Technologies Sept. 30, History of Mozilla Mosaic -> Netscape 1.0 -> Netscape 5.0 Netscape 5.0 was announced to be an Open Source project.
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
Design Patterns Module Name - Object Oriented Modeling By Archana Munnangi S R Kumar Utkarsh Batwal ( ) ( ) ( )
Conceptual Architecture of Firefox 6.0 Rob Staalduinen Katie Tanner Gordon Krull James Brereton By Fully Optimized.
- 1 - Strategic Information Technology Ltd PUG Challenge Americas 2013 “XML Data Services” for the Business Developer William MacDonald Architect.
Faculty Advisor – Dr. Suraj Kothari Client – Jon Mathews Team Members – Chaz Beck Marcus Rosenow Shaun Brockhoff Jason Lackore.
UNIT-V The MVC architecture and Struts Framework.
By: Shawn Li. OUTLINE XML Definition HTML vs. XML Advantage of XML Facts Utilization SAX Definition DOM Definition History Comparison between SAX and.
Presented by…. Group 2 1. Programming language 2Introduction.
By The Fully Optimized eXperience (FOX) James Brereton Katie Tanner Gordon Krull Rob Staalduinen
Networking Nasrullah. Input stream Most clients will use input streams that read data from the file system (FileInputStream), the network (getInputStream()/getInputStream()),
Server-Side JavaScript with jQuery and AOLserver jQueryCamp07 October 27, 2007 Dossy Shiobara jQueryCamp07 October 27, 2007 Dossy Shiobara.
TRADE SMART Zihao Yu Kevin Bobsein Ashrith Kumar Marpaka Hanzhi Wu Instructor : Prof. Ivan Marsic Partial fulfillment of the course Software Engineering.
Workflow Management Chris A. Mattmann OODT Component Working Group.
XForms: A case study Rajiv Shivane & Pavitar Singh.
14th IEEE-NPSS Real Time Conference 2005, 8 June Stockholm.
The Old World Meets the New: Utilizing Java Technology to Revitalize and Enhance NASA Scientific Legacy Code Michael D. Elder Furman University Hayden.
1 The Architectural Design of FRUIT: A Family of Retargetable User Interface Tools Yi Liu, H. Conrad Cunningham and Hui Xiong Computer & Information Science.
Todd Snyder Development Team Lead Infragistics Experience Design Group.
CPSC 410.  Build on previous Connector lectures  Learn how to implement flexible connector implementations  Learn the Dependency Injection pattern.
RECALL THE MAIN COMPONENTS OF KIM Functional User Interfaces We just looked at these Reference Implementation We will talk about these later Service Interface.
© 2007 Pearson Addison-Wesley. All rights reserved 0-1 Spring(2007) Instructor: Qiong Cheng © 2007 Pearson Addison-Wesley. All rights reserved.
BTS430 Systems Analysis and Design using UML Domain Model Part 1—Finding Conceptual Classes.
Chapter 17 GRASP: Designing Objects with Responsibilities. 1CS6359 Fall 2011 John Cole.
Conceptual Architecture of Mozilla Firefox (version ) Jared Haines Iris Lai John,Chun-Hung,Chiu Josh Fairhead June 5, 2007.
Mid-term Presentation Validation of Architecture Rules & Design Patterns 25 th May Shravan Shetty &Vinod J Menezes Supervised by, Prof. Dr. M. v. d. Brand.
© 2006 IBM Corporation Agile Planning Web UI. © 2006 IBM Corporation Agenda  Overview of APT Web UI  Current Issues  Required Infrastructure  API.
Design Patterns CSIS 3701: Advanced Object Oriented Programming.
DynaRIA: a Tool for Ajax Web Application Comprehension Dipartimento di Informatica e Sistemistica University of Naples “Federico II”, Italy Domenico Amalfitano.
December 4, ICSSEA’03 The SmartTools Software Factory The MDA approach and Generative programming for Software Development:
Concrete Architecture of Mozilla Firefox (version ) Iris Lai Jared Haines John,Chun-Hung,Chiu Josh Fairhead July 06, 2007.
Chapter 2 The Mechanism behind Extensions. How “Extensions” are implemented.
SAX2 and DOM2 Kanda Runapongsa Dept. of Computer Engineering Khon Kaen University.
Design Patterns By Mareck Kortylevitch and Piotreck Ratchinsky.
PRESENTATION 2 Sri Raguraman CIS 895 Kansas State University.
Honeywell Displays Testing Ryan Hernandez Matt Lombardo Jeremy Pager Mike Santa Cruz Brad Simons.
Ajax VS Flex A comparison based on shopping cart implementation PoHsu Yeh py2157.
SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler
Javascript Static Code Analyzer
REST By: Vishwanath Vineet.
The Facade Pattern (Structural) ©SoftMoore ConsultingSlide 1.
Data analytics and mash-up Real time analytics of employment data Team Shadowfax 1/25/2016 CMPE Class Project 0.
AJAX and REST. Slide 2 What is AJAX? It’s an acronym for Asynchronous JavaScript and XML Although requests need not be asynchronous It’s not really a.
Summary from previous lectures
/16 Final Project Report By Facializer Team Final Project Report Eagle, Leo, Bessie, Five, Evan Dan, Kyle, Ben, Caleb.
Java API for XML Processing
Lecture Transforming Data: Using Apache Xalan to apply XSLT transformations Marc Dumontier Blueprint Initiative Samuel Lunenfeld Research Institute.
Introduction to WebKit Girish Ramakrishnan. History
GUI and Web Programming CSE 403 (based on a lecture by James Fogarty)
XML Parsers Overview Types of parsers Using XML parsers SAX DOM
RSA Model Builder B-Spec Review
Introduction to Design Patterns
BTS430 Systems Analysis and Design using UML
AJAX and REST.
Satisfying Open/Closed Principle
XML Parsers Overview Types of parsers Using XML parsers SAX DOM
Java API for XML Processing
Lecture 1: Multi-tier Architecture Overview
An Introduction to Software Architecture
CS 350 – Software Design Principles and Strategies – Chapter 14
WPS - your story so far Seems incredible complicated, already
An Introduction to Eclipse
A4 Pre.
Presentation transcript:

Concrete Architecture of Firefox 2 Team One July 6, 2007 Team One July 6, 2007

Agenda Introduction Concrete Architecture Comparison with Conceptual Modules JavaScript Interpreter XML Parser Display Backend Conclusion Introduction Concrete Architecture Comparison with Conceptual Modules JavaScript Interpreter XML Parser Display Backend Conclusion

Introduction Analyzing Concrete Architecture Previously researched Conceptual Architecture Extracted Architecture from code Analyzing Concrete Architecture Previously researched Conceptual Architecture Extracted Architecture from code

Comparison with Conceptual High cohesion (XPCOM) Additional layers Extensions Common Additional dependencies High cohesion (XPCOM) Additional layers Extensions Common Additional dependencies

Conceptual Architecture

Concrete Boxes

Concrete Arrows

Modules: JS Interpreter Called SpiderMonkey Written in C Many classes and packages, but 6 seem to be most important Called SpiderMonkey Written in C Many classes and packages, but 6 seem to be most important

LiveConnect Package in SpiderMonkey Bridge between JavaScript and Java Depends on a few internal classes and XPCOM Package in SpiderMonkey Bridge between JavaScript and Java Depends on a few internal classes and XPCOM

LiveConnect Dependencies

XPConnect Package in SpiderMonkey Allows JavaScript objects access to XPCOM objects and vice-versa Depends on some internal classes and XPCOM Package in SpiderMonkey Allows JavaScript objects access to XPCOM objects and vice-versa Depends on some internal classes and XPCOM

XPConnect Dependencies

JSInterp Class in SpiderMonkey JavaScript Interpreter Class All classes that depend on JSInterp are internal All classes JSInterp depends on are internal Class in SpiderMonkey JavaScript Interpreter Class All classes that depend on JSInterp are internal All classes JSInterp depends on are internal

API Classes JSAPI, JSXDRAPI, JSDbgAPI Used by external classes Depend on and are depended on by many internal classes Façade Pattern JSAPI, JSXDRAPI, JSDbgAPI Used by external classes Depend on and are depended on by many internal classes Façade Pattern

API Classes JSAPI is the main API for SpiderMonkey JSXDRAPI is the external data representation API JSDbgAPI is SpiderMonkey’s debug API JSAPI is the main API for SpiderMonkey JSXDRAPI is the external data representation API JSDbgAPI is SpiderMonkey’s debug API

Modules: XML Parser

XML Parsers expat module performs DOM parsing xml module performs SAX parsing Both work independently of each other expat module is self-contained and has no dependencies; however, xml module relies on stream input and string operations support from xpcom expat module performs DOM parsing xml module performs SAX parsing Both work independently of each other expat module is self-contained and has no dependencies; however, xml module relies on stream input and string operations support from xpcom

htmlparser Module Abstracts away string and unichar issues Delegates parsing requests to expat and xml modules, and receives the result back. Implements something close to a façade, however, xml talks to xpcom Abstracts away string and unichar issues Delegates parsing requests to expat and xml modules, and receives the result back. Implements something close to a façade, however, xml talks to xpcom

Deviation from Conceptual Nothing is invoking/depending on parser module for XML parsing requests Could be a dynamic dependency rather than static, which bfx and lsedit cannot capture Nothing is invoking/depending on parser module for XML parsing requests Could be a dynamic dependency rather than static, which bfx and lsedit cannot capture

Modules: Display Backend Set of platform-independent drawing primitives Adapter to the native graphics interface (GTK, GDI, etc) PostScript handling Shared sub-components Set of platform-independent drawing primitives Adapter to the native graphics interface (GTK, GDI, etc) PostScript handling Shared sub-components

Modules: Display Backend

Deviation from Conceptual UI talks directly to Display Backend Interaction with Common intl xpcom nsprpub UI talks directly to Display Backend Interaction with Common intl xpcom nsprpub

Conclusion Conceptual Architecture Useful Additional Layers Additional Dependencies Conceptual Architecture Useful Additional Layers Additional Dependencies

Thank you Questions?