cisc 322
play

CISC 322 Software Architecture Lecture 11: Reference Architecture - PowerPoint PPT Presentation

CISC 322 Software Architecture Lecture 11: Reference Architecture Emad Shihab Paper by: Ahmed E. Hassan and Richard C. Holt Schedule Today No class Midterm Concep. Concep. Arch. Arch. Pres. Report Recap of Last Class Architecture


  1. CISC 322 Software Architecture Lecture 11: Reference Architecture Emad Shihab Paper by: Ahmed E. Hassan and Richard C. Holt

  2. Schedule Today No class Midterm Concep. Concep. Arch. Arch. Pres. Report

  3. Recap of Last Class ■ Architecture Recovery – Conceptual Architecture • In the mind of the developers – Concrete Architecture • The real architecture based on the code

  4. Reference Architecture ■ What is a reference architecture? Defines the fundamental components for a domain and the relations between them

  5. Reference Architecture ■ Why do we need a reference architecture? Different domains have common requirements that largely shape their architecture

  6. Advantages of Reference Architecture ■ Provides a common nomenclature across all software systems in the same domain ■ Establishes common understanding and assists in comparing different architectures ■ Provides a set of expected subsystems and relations between them (in RE)

  7. Reference vs. Conceptual ■ Architecture of a product is an instance of the reference architecture – Specific products refine and extend the reference architecture based on the product’s requirements and constraints

  8. Reference Architecture of Web Servers

  9. Reference architecture of web servers ■ Investigated 3 different web servers – Developed by 3 different organizations – Using different development techniques – Different programming languages – Source code publically available

  10. Web Browsers and Web Servers ■ Web servers provide features for users, email, news etc.. ■ Need a web browser to access these features

  11. Web Browsers and Web Servers ■ Web servers are different, but usually have common features – All web servers can serve simple text – Not all can serve Java servlets ■ Existence of common features leads to common reference arch

  12. Example of Web Request BROWSER Enter URL (www.cnn.com) HTTP request WEB Locate resource SERVER Operating System Resources Servlet CGI Files Dynamic resources Program Static resources

  13. Deriving the Reference Architecture ■ Step1: Derive conceptual architecture – Propose a conceptual architecture based on domain knowledge and documentation – Refine conceptual architecture using concrete architecture

  14. Deriving the Reference Architecture ■ Step2: Derive reference architecture using the conceptual architectures – Propose reference architecture based on domain knowledge and common structure between conceptual architectures – Refine the reference architecture using conceptual architectures

  15. Reference Architecture Derivation Process Reference Architecture for Web Servers Conceptual Conceptual Conceptual Architecture Architecture Architecture Concrete Concrete Concrete Architecture Architecture Architecture Apache AOLServer Jigsaw

  16. Reception ■ Interprets resource request protocol ■ Waits for browser requests ■ Determines capabilities of the browser ■ Data structure and logic to handle multiple requests simultaneously

  17. Request Analyzer ■ Operates on the internal representation of the request ■ Translates the location of the resource from a network location to a local file name – e.x. ~/index.html -> /usr/https/pub/webfiles/index.html

  18. Access Control ■ Enforces access rules employed by the server ■ Authenticates the browser and authorizes access to requested resources – e.x. username and password

  19. Resource Handler and Transaction Log ■ Determines the type of the resource requested by the browser, executes and generates response – e.x. Resource Handler determines if requested resource is static response that is sent directly to the user or dynamic ■ Transaction log records all requests and their results

  20. Support layer ■ Utility contains functions used by all subsystems – e.x. string manipulation ■ OSAL encapsulates operating system specific functionality to support porting of the server to different platforms

  21. Apache

  22. Waits for incoming Send response back requests Creates Request_rec Record request Determine local location Username, password Check if client Determine type of Generate response authorized for resource requested resource Regex engine Facilitates URL and string porting Apache manipulation to multiple libraries platforms

  23. AOLServer

  24. Recep. & Req. Analysis. Interface that is communication protocol independent (e.x. supports Communication SSL, TCP sockets) Driver Records processing of request Access Ctrl. Request Trans. Translates client’s Daemon – requests Core Conn structure NSPerm NSLog Checks for requested resources Req. Handler. Check permission and authorization on requested URL resource Carry out request and Handle generate response Portable thread Schedule Interface to library events at different types implementation different times of databases Database TCL Timer Util NSThread Interface Interpreter Util. OSAL. AOLServer: Conceptual Architecture

  25. Summary ■ Reference Architecture must be flexible enough to encompass many product archs – Does not determine implementation details ■ Conceptual architecture fits well in the reference architecture ■ Structure may be different due to splitting and merging of some subsystems

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend