Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Concrete Architecture of Firefox 2 Team One July 6, 2007 Team One July 6, 2007."— Presentation transcript:

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

2 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

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

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

5 Conceptual Architecture

6 Concrete Boxes

7 Concrete Arrows

8 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

9 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

10 LiveConnect Dependencies

11 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

12 XPConnect Dependencies

13 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

14 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

15 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

16 Modules: XML Parser

17 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

18 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

19 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

20 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

21 Modules: Display Backend

22 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

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

24 Thank you Questions?


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

Similar presentations


Ads by Google