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

Slides:



Advertisements
Similar presentations
Lecture plan Information retrieval (from week 11)
Advertisements

Executional Architecture
Implementation Architecture
Omniran TG 1 Cooperation for OmniRAN P802.1CF Max Riegel, NSN (Chair OmniRAN TG)
OPeNDAP’s Server4 Building a High Performance Data Server for the DAP Using Existing Software Building a High Performance Data Server for the DAP Using.
Netscape Application Server Application Server for Business-Critical Applications Presented By : Khalid Ahmed DS Fall 98.
INTERNET DATABASE Chapter 9. u Basics of Internet, Web, HTTP, HTML, URLs. u Advantages and disadvantages of Web as a database platform. u Approaches for.
1. Introducing Java Computing  What is Java Computing?  Why Java Computing?  Enterprise Java Computing  Java and Internet Web Server.
OCT1 Principles From Chapter One of “Distributed Systems Concepts and Design”
Time Scalability Single User Unlimited Users 100s of Users Several Users PC based Single user Late 1980sNow PC based, file-level locking Single user or.
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
CS 290C: Formal Models for Web Software Lecture 6: Model Driven Development for Web Software with WebML Instructor: Tevfik Bultan.
The Architecture of Transaction Processing Systems
WWW and Internet The Internet Creation of the Web Languages for document description Active web pages.
Application Architectures Vijayan Sugumaran Department of DIS Oakland University.
CIS 365 Vandana Janeja Nov 27 th 2001 Connecting Cobol programs to Other Languages- Visual Basic, Java,HTML.
Electronic Commerce Last Week Internet utility programs
Session-01. What is a Servlet? Servlet can be described in many ways, depending on the context: 1.Servlet is a technology i.e. used to create web application.
Nilesh Mandani Competencies include: Volume Licensing Enterprise Resource Planning Customer Relationship Management Business Intelligence Proposal for.
UNIT-V The MVC architecture and Struts Framework.
TOPIC 1 – SERVER SIDE APPLICATIONS IFS 234 – SERVER SIDE APPLICATION DEVELOPMENT.
Hyrax Installation and Customization Dan Holloway James Gallagher.
 SAP AG 2001, Title of Presentation, Speaker Name 1 Thomas Ryan Product Manager SAP Markets SAP Internet Transaction Server.
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
Applets & Servlets.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
CSCI 6962: Server-side Design and Programming Course Introduction and Overview.
Chapter 4: Core Web Technologies
HTTP client wide area network (Internet) HTTP proxy HTTP server HTTP gateway firewall HTTP tunnel Copyright Springer Verlag Berlin Heidelberg 2004.
What makes web pages look like web pages LS 560 Spring 2012, section 901.
1 CMPT 275 High Level Design Phase Architecture. Janice Regan, Objectives of Design  The design phase takes the results of the requirements analysis.
Jaeki Song ISQS6337 JAVA Lecture 16 Other Issues in Java.
Enticy GROUP THE A Framework for Web and WinForms (Client-Server) Applications “Enterprise Software Architecture”
An Introduction to Software Architecture
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 07. Review Architectural Representation – Using UML – Using ADL.
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
CS4273: Distributed System Technologies and Programming Lecture 13: Review.
Java Servlets & Java Server Pages Lecture July 2013.
Architecture of the web Client Server retrieved or generated web page.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
3/20/2001 Network Computing Laboratory EE. KAIST 1 Web Servers & Load Balancing Techniques 3/20/2001 송준화 김영호.
PatentScope - Electronic Publication World Intellectual Property Organization.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
Struts 2 introduction. Struts 2 framework Struts 2 A full-featured web application framework for the Java EE platform The Java Servlet API exposes the.
Enterprise Java Beans. Model 1 J2EE – Web View Model/View/Controller Model View Control Data base Web Server Model One Architecture HTTP Request HTTP.
Concrete Architecture of Mozilla Firefox (version ) Iris Lai Jared Haines John,Chun-Hung,Chiu Josh Fairhead July 06, 2007.
Web application architecture1 Based on Jim Conallen: Web Applications with UML.
Developing Applications with the CSI Framework A General Guide.
1 Java Servlets l Servlets : programs that run within the context of a server, analogous to applets that run within the context of a browser. l Used to.
Assignment of JAVA id : BSSE-F10-M-10-JAVA1 Overview of J2EE/Session 2/Slide 1 of 38.
21/12/20151 T h i s p r e s e n t a t i o n w i l l p r o b a b l y i n v o l v e a u d i e n c e d i s c u s s i o n, w h i c h w i l l c r e a t e a.
Page 1 R MVC Design Pattern Definition Properties Describing MVC design patterns.
JS (Java Servlets). Internet evolution [1] The internet Internet started of as a static content dispersal and delivery mechanism, where files residing.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
WEB SERVER SOFTWARE FEATURE SETS
Ahmed Hassan and Richard Holt Software Architecture Group University of Waterloo CANADA A Reference Architecture for Web Servers.
Apache Web Server Architecture Chaitanya Kulkarni MSCS rd April /23/20081Apache Web Server Architecture.
9/21/04 James Gallagher Server-Side: The Basics This part of the workshop contains an overview of the two servers which OPeNDAP has developed. One uses.
CS 562 Advanced Java and Internet Application Computer Warehouse Web Application By Team Alpha :-  Puja Mehta (102163)  Mona Nagpure (102147)
Netscape Application Server
Java Servlets By: Tejashri Udavant..
Server Concepts Dr. Charles W. Kann.
Processes The most important processes used in Web-based systems and their internal organization.
MapServer In its most basic form, MapServer is a CGI program that sits inactive on your Web server. When a request is sent to MapServer, it uses.
CMPE419 Mobile Application Development
File Operations Access Permissions.
Architecture of the web
CS122B: Projects in Databases and Web Applications Winter 2019
Presentation transcript:

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

© Drexel University Software Engineering Research Group (SERG) 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

© Drexel University Software Engineering Research Group (SERG) 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)

© Drexel University Software Engineering Research Group (SERG) 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

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

© Drexel University Software Engineering Research Group (SERG) 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

© Drexel University Software Engineering Research Group (SERG) 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

© Drexel University Software Engineering Research Group (SERG) 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”

© Drexel University Software Engineering Research Group (SERG) 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

© Drexel University Software Engineering Research Group (SERG) 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

© Drexel University Software Engineering Research Group (SERG) 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

© Drexel University Software Engineering Research Group (SERG) 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.

© Drexel University Software Engineering Research Group (SERG) 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

© Drexel University Software Engineering Research Group (SERG) 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

© Drexel University Software Engineering Research Group (SERG) 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

© Drexel University Software Engineering Research Group (SERG) 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

© Drexel University Software Engineering Research Group (SERG) 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

© Drexel University Software Engineering Research Group (SERG) 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

© Drexel University Software Engineering Research Group (SERG) 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

© Drexel University Software Engineering Research Group (SERG) 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