1 / 20

A Reference Architecture for Web Servers

A Reference Architecture for Web Servers. A. E. Hassan and R. C. Holt. What is a Reference Architecture. A Reference Architecture for a domain is an architecture template for all of the software systems in the domain

mpalumbo
Télécharger la présentation

A Reference Architecture for Web Servers

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. A Reference Architecture for Web Servers A. E. Hassan and R. C. Holt

  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. 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. 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. The Web Domain url Browser Internet Web Server Operating System Resources Programs: Servlet,CGI, etc. Files:HTML, etc.

  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. 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. 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. Web Server Reference Architecture Reference Architecture For Web Servers Apache AOL Server Jigsaw ConceptualArchitecture ConceptualArchitecture ConceptualArchitecture ConcreteArchitecture ConcreteArchitecture ConcreteArchitecture

  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. Web Server Reference Architecture Reception LEGEND RequestAnalysis RecordTransaction ReferenceSubsystem AccessControl ResourceHandler All SubsystemsUse Utilities OS AbstractionLayer Control Flow Operating System

  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. 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. Apache Architecture Request_recCommon structure passedbetween thesubsystems Core Assign a requestto a Process Translation Determine locallocation of theresource Logging Log theTransaction Response Generate theresponse Authentication Authenticate theclient (if needed) Authorization Determine if theclient is authorized MIME Type What is beingrequested Util Utilities: stringmanipulation, regexp, etc OS Layer Used to abstract – portingto different OS

  15. Mapped Apache Architecture Reception Core Utilities Util Request Analysis Record Transaction Translation Logging OSAbstractionLayer Access Control Resource Handler Authentication MIME Type OSLayer Authorization Response

  16. AOL Server Architecture Communication Driver Abstract Communication Protocol –SSL, HTTP, Sockets, etc. ConnCommon structure passedbetween thesubsystems Daemon Core Translate request into a commondata structure - Conn NSPerm Handles Authorization and Authentication URLHandle Execute Requestand Generate theResponse NSLog Log the Transaction Timer Util DatabaseInterface TCLServices NSThread

  17. Mapped AOL Server Architecture Reception/Request Analysis CommunicationDriver Daemon Core Access Control Resource Handler Record Transaction NSPerm URLHandle NSLog OS AbstractionLayer Utilities Timer Util DatabaseInterface TCLServices NSThread

  18. Jigsaw Architecture Daemon Protocol and ThreadPool Manager ProtocolFrameinFilter ProtocolFrameoutFilter Resource Handle Requestand GenerateResponse ResourceinFilter ResourceoutFilter Util Common Services OS Layer Nothing Here – Jigsaw Written in Java

  19. Mapped Jigsaw Architecture Reception/Request Analysis Daemon Access Control Record Transact. Resource Handler ProtocolFrameinFilter ProtocolFrameoutFilter Request ResourceinFilter ResourceoutFilter Utilities OS AbstractionLayer Util

  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

More Related