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

cisc 322
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

CISC 322

Software Architecture Lecture 11: Reference Architecture Emad Shihab

Paper by: Ahmed E. Hassan and Richard C. Holt

slide-2
SLIDE 2

Schedule

Today No class Midterm Concep.

  • Arch. Pres.

Concep. Arch. Report

slide-3
SLIDE 3

Recap of Last Class

■ Architecture Recovery

– Conceptual Architecture

  • In the mind of the developers

– Concrete Architecture

  • The real architecture based on the code
slide-4
SLIDE 4

Reference Architecture

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

slide-5
SLIDE 5

Reference Architecture

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

slide-6
SLIDE 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)

slide-7
SLIDE 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

slide-8
SLIDE 8

Reference Architecture of Web Servers

slide-9
SLIDE 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

slide-10
SLIDE 10

Web Browsers and Web Servers

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

slide-11
SLIDE 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

slide-12
SLIDE 12

Example of Web Request

BROWSER WEB SERVER Operating System Servlet CGI Program Files Resources

Enter URL (www.cnn.com)

HTTP request Locate resource Dynamic resources Static resources

slide-13
SLIDE 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

slide-14
SLIDE 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

slide-15
SLIDE 15

Reference Architecture Derivation Process

AOLServer Concrete Architecture Conceptual Architecture Reference Architecture for Web Servers Apache Concrete Architecture Conceptual Architecture Jigsaw Concrete Architecture Conceptual Architecture

slide-16
SLIDE 16
slide-17
SLIDE 17

Reception

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

slide-18
SLIDE 18

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

slide-19
SLIDE 19

Access Control

■ Enforces access rules employed by the server ■ Authenticates the browser and authorizes access to requested resources

– e.x. username and password

slide-20
SLIDE 20

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

slide-21
SLIDE 21

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

slide-22
SLIDE 22

Apache

slide-23
SLIDE 23

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

slide-24
SLIDE 24

AOLServer

slide-25
SLIDE 25

OSAL. Util.

  • Req. Handler.

Request Trans. Access Ctrl.

  • Recep. & Req. Analysis.

AOLServer: Conceptual Architecture Communication Driver NSLog Timer NSThread Daemon – Core NSPerm URL Handle TCL Interpreter Util Database Interface

Interface that is communication protocol independent (e.x. supports SSL, TCP sockets) Translates client’s requests Conn structure Checks for requested resources Check permission and authorization on requested resource Carry out request and generate response Records processing of request Schedule events at different times Portable thread library implementation Interface to different types

  • f databases
slide-26
SLIDE 26

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