Presentation is loading. Please wait.

Presentation is loading. Please wait.

© Drexel University Software Engineering Research Group (SERG) 1 A. E. Hassan and R. C. Holt A Reference Architecture for Web.

Similar presentations


Presentation on theme: "© Drexel University Software Engineering Research Group (SERG) 1 A. E. Hassan and R. C. Holt A Reference Architecture for Web."— Presentation transcript:

1 © Drexel University Software Engineering Research Group (SERG) http://serg.cs.drexel.edu 1 A. E. Hassan and R. C. Holt A Reference Architecture for Web Servers

2 © Drexel University Software Engineering Research Group (SERG) http://serg.cs.drexel.edu 2 What is a Reference Architecture A Reference Architecture for a domain is an architecture template for all of the software systems in the domain The Reference Architecture defines the fundamental components of the domain and the relations between the components The architecture for a specific implementation in the domain is an instance of the reference architecture

3 © Drexel University Software Engineering Research Group (SERG) http://serg.cs.drexel.edu 3 Domains Domains classify a family of products that perform a similar function Its argued that individual products within a domain should share a reference architecture Examples: Compilers and Operating Systems This paper proposes a reference architecture for web servers and examines 3 open source web server instances – Apache (“C”), Jigsaw (Java), AOLServer (“C” and TCL)

4 © Drexel University Software Engineering Research Group (SERG) http://serg.cs.drexel.edu 4 The Value of Reference Architectures Valuable for design and program understanding A template to be used for new designs A template to support mapping from a reverse engineering perspective Provides common terminology for similar things that are described differently in specific implementations of a product family Supports objective comparisons of different product implementations

5 © Drexel University Software Engineering Research Group (SERG) http://serg.cs.drexel.edu 5 The Web Domain Internet Browser url Web Server Operating System Resources Programs: Servlet, CGI, etc. Files: HTML, etc.

6 © Drexel University Software Engineering Research Group (SERG) http://serg.cs.drexel.edu 6 Deriving A Web Server Reference Architecture Goal: Reverse Engineer the Reference Architecture for the Web Server domain using 3 different web server products Authors were not domain experts Authors did not interview system implementers Reference architecture derived from the source code

7 © Drexel University Software Engineering Research Group (SERG) http://serg.cs.drexel.edu 7 Process: Deriving A Web Server Reference Architecture Develop a set of usage scenarios Execute the scenarios and trace the implementation Individual scenarios help uncover parts of the reference architecture Quality of the reference architecture is based on the quality and quantity of the chosen scenarios

8 © Drexel University Software Engineering Research Group (SERG) http://serg.cs.drexel.edu 8 Process: Deriving A Web Server Reference Architecture Step 1: Derive the conceptual (as-designed) architecture: Propose a conceptual architecture using domain knowledge Refine the conceptual architecture using reverse engineering techniques Continue until the conceptual architecture is “reasonable” Step 2: Derive the reference architecture using the conceptual architectures Propose a reference architecture based on domain knowledge and the common structures between the conceptual architectures Refine and continue until the reference architecture is “reasonable”

9 © Drexel University Software Engineering Research Group (SERG) http://serg.cs.drexel.edu 9 Web Server Reference Architecture Reference Architecture For Web Servers Apache Conceptual Architecture Concrete Architecture AOL Server Conceptual Architecture Concrete Architecture Jigsaw Conceptual Architecture Concrete Architecture

10 © Drexel University Software Engineering Research Group (SERG) http://serg.cs.drexel.edu 10 Starting the Web Server Reference Architecture Recovery Process Start: What is the architecture style? Domain knowledge suggests a pipe-and-filter style Use the architecture style to guide the creation of the reference architecture Since intuition suggests a pipe-and-filter architectural style, the reference architecture should capture the significant subsystems and the data flow between the subsystems

11 © Drexel University Software Engineering Research Group (SERG) http://serg.cs.drexel.edu 11 Web Server Reference Architecture Reception Request Analysis Access Control Record Transaction Resource Handler Utilities OS Abstraction Layer Operating System Reference Subsystem All Subsystems Use Control Flow LEGEND

12 © Drexel University Software Engineering Research Group (SERG) http://serg.cs.drexel.edu 12 Reference Architecture Flexibility A reference architecture must be flexible to encompass many product architectures Resource Mapping Flexibility – A web server must map resources managed by the operating system to the web Security Flexibility – A web server must support security but the implementation can be specific to a product and/or operating system. Concurrency Flexibility – A web server must support concurrent access but the concurrency model can be different. Apache uses process pools, AOL Server and Jigsaw use threads.

13 © Drexel University Software Engineering Research Group (SERG) http://serg.cs.drexel.edu 13 Web Servers Examined Apache Written in “C” 80K Lines of Code AOL Server Written in “C” and TCL 164K Lines of Code – 160K in “C”, 4K in TCL Jigsaw Written in Java 106K Lines of Code

14 © Drexel University Software Engineering Research Group (SERG) http://serg.cs.drexel.edu 14 Apache Architecture Core Assign a request to a Process Translation Determine local location of the resource Authentication Authenticate the client (if needed) Authorization Determine if the client is authorized MIME Type What is being requested Response Generate the response Logging Log the Transaction Util Utilities: string manipulation, regexp, etc OS Layer Used to abstract – porting to different OS Request_rec Common structure passed between the subsystems

15 © Drexel University Software Engineering Research Group (SERG) http://serg.cs.drexel.edu 15 Mapped Apache Architecture Reception Core Request Analysis Translation Access Control Authentication Authorization Resource Handler MIME Type Response Record Transaction Logging Utilities Util OS Abstraction Layer OS Layer

16 © Drexel University Software Engineering Research Group (SERG) http://serg.cs.drexel.edu 16 AOL Server Architecture Communication Driver Abstract Communication Protocol – SSL, HTTP, Sockets, etc. Timer Conn Common structure passed between the subsystems Daemon Core Translate request into a common data structure - Conn NSPerm Handles Authorization and Authentication URLHandle Execute Request and Generate the Response NSLog Log the Transaction Util Database Interface TCL Services NSThread

17 © Drexel University Software Engineering Research Group (SERG) http://serg.cs.drexel.edu 17 Mapped AOL Server Architecture Reception/Request Analysis Communication Driver Access Control NSPerm Record Transaction NSLog Daemon Core Resource Handler URLHandle Utilities Timer OS Abstraction Layer Util Database Interface TCL Services NSThread

18 © Drexel University Software Engineering Research Group (SERG) http://serg.cs.drexel.edu 18 Jigsaw Architecture Daemon Protocol and Thread Pool Manager ProtocolFrame inFilter Resource Handle Request and Generate Response Util Common Services OS Layer Nothing Here – Jigsaw Written in Java Resource inFilter ProtocolFrame outFilter Resource outFilter

19 © Drexel University Software Engineering Research Group (SERG) http://serg.cs.drexel.edu 19 Mapped Jigsaw Architecture Reception/Request Analysis Daemon Resource Handler Request UtilitiesOS Abstraction Layer Util Access Control ProtocolFrame inFilter Resource inFilter Record Transact. ProtocolFrame outFilter Resource outFilter

20 © Drexel University Software Engineering Research Group (SERG) http://serg.cs.drexel.edu 20 Summary: Creating a Reference Architecture for a Web Server Reference Architectures are good for system understanding Enables implementations within an application domain to be compared to each other Facilitates both forward and reverse engineering of products within a domain The paper illustrated a reverse engineering approach towards recovering a reference architecture, and examined 3 different open- source web servers A reasonable reference architecture for a Web Server was produced


Download ppt "© Drexel University Software Engineering Research Group (SERG) 1 A. E. Hassan and R. C. Holt A Reference Architecture for Web."

Similar presentations


Ads by Google