System Architecture CS 560 Lecture 8.

Slides:



Advertisements
Similar presentations
Database System Concepts and Architecture
Advertisements

8.
Slide 1 Client / Server Paradigm. Slide 2 Outline: Client / Server Paradigm Client / Server Model of Interaction Server Design Issues C/ S Points of Interaction.
Technical Architectures
Introduction to Web Database Processing
SWE Introduction to Software Engineering
Introduction to Web Interface Technology (CSE2030)
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
Systems Architecture, Fourth Edition1 Internet and Distributed Application Services Chapter 13.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Application Layer. Applications A program or group of programs designed for end users. A program or group of programs designed for end users. Software.
The Design Discipline.
An Introduction to Software Architecture
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 16 System Architecture and Design II.
CS 360 Lecture 8.  The requirements describe the function of a system as seen by the client.  The software team must design a system that will meet.
10/6/2015 ©2007 Scott Miller, University of Victoria 1 2a) Systems Introduction to Systems Introduction to Software Systems Rev. 2.0.
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
Unit – I CLIENT / SERVER ARCHITECTURE. Unit Structure  Evolution of Client/Server Architecture  Client/Server Model  Characteristics of Client/Server.
MACIASZEK, L.A. (2001): Requirements Analysis and System Design. Developing Information Systems with UML, Addison Wesley Chapter 6 - Tutorial Guided Tutorial.
1 Welcome to CSC 301 Web Programming Charles Frank.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
CS 501: Software Engineering
9 Systems Analysis and Design in a Changing World, Fourth Edition.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
1 CS 501 Spring 2005 CS 501: Software Engineering Lecture 14 System Architecture and Design 2.
CS 501: Software Engineering Fall 1999 Lecture 12 System Architecture III Distributed Objects.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
System Architecture CS 560. Project Design The requirements describe the function of a system as seen by the client. The software team must design a system.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
CS 5150 Software Engineering Lecture 12 Software Architecture 1.
1 Chapter 1 INTRODUCTION TO WEB. 2 Objectives In this chapter, you will: Become familiar with the architecture of the World Wide Web Learn about communication.
Deployment Diagram.
Method – Notation 8 Hours.
Databases (CS507) CHAPTER 2.
CS 325: Software Engineering
CIIT-Human Computer Interaction-CSC456-Fall-2015-Mr
Deployment Diagram.
Web Programming Developing Web Applications including Servlets, and Web Services using NetBeans 6.5 with GlassFish.V3.
SOFTWARE DESIGN AND ARCHITECTURE
OO Methodology OO Architecture.
Exam 1 Study Guide Cs 595 Lecture 17.
Software Design and Architecture
Distribution and components
Understand the OSI Model Part 2
Part 3 Design What does design mean in different fields?
Chapter 3: Windows7 Part 4.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 2 Database System Concepts and Architecture.
The Internet and HTTP and DNS Examples
What is an Architecture?
CS 425/625 Software Engineering Architectural Design
Lecture 1: Multi-tier Architecture Overview
Distributed Systems Bina Ramamurthy 11/30/2018 B.Ramamurthy.
Systems Analysis and Design in a Changing World, 6th Edition
Chapter 6 – Architectural Design
IMPORTANT NOTICE TO STUDENTS:
Software models - Software Architecture Design Patterns
An Introduction to Software Architecture
Internet Protocols IP: Internet Protocol
Exam 1 review CS 360 Lecture 20.
What is an Architecture?
Chapter 5 Architectural Design.
Design Yaodong Bi.
Computer Networks DA2402.
Web Servers (IIS and Apache)
Chapter 6: Architectural Design
CS 381: Introduction to Computer Networks
Presentation transcript:

System Architecture CS 560 Lecture 8

Project Design The requirements describe the function of a system as seen by the client. The software team must design a system that will meet the given requirements. In this course, we look at the following aspects of design: System architecture Program design Usability Performance Security

Creativity and Design Software development Creativity and design A major part of software development is to select the appropriate language/API/Framework for a given requirement. Creativity and design System and program design are a particularly creative part of software development. Above all, strive for simplicity. The aim is to find simple ways to implement complex requirements.

System architecture System architecture is the conceptual model that defines structure, behavior, and views of a system. Computers and networks (monolithic, distributed) Interfaces and protocols (HTTP, IEEE 802.3, ODBC) Databases (relational, NoSQL) Security (authentication, encryption) Operations (backup, archiving, replication) At this stage of the development process, you should also be selecting: Software environments (languages, database systems, APIs) Test cases

Models for System architecture Models for system architectures are based on UML When developing a system model, every diagram must have supporting documentation Diagrams show the relationships among parts of the system, but much more detail is needed to explain system functionality. For example, to specify a web plug-in, the supporting documentation should include: Version of the protocols to be supported at the interfaces Options (if any) Implementation dependencies/restrictions

Subsystems Ideal division of a complex system into subsystems: A subsystem is a grouping of elements that form part of a system. Ideal division of a complex system into subsystems: Low coupling between subsystems. High cohesion within subsystems. Coupling is a measure of the dependencies between two subsystems. If two subsystems are strongly coupled, it is hard to modify one without the other. Number of required interfaces and data passed between subsystems. Cohesion is a measure of dependencies within a subsystem. High cohesion if a subsystem contains many closely related functions.

System components (documentation) A component is a replaceable part of a system that conforms to a set of interfaces. Can be thought of as an implementation of a subsystem. Set of closely related functions. UML definition of a component: “A distributable piece of a system, including code (source, binary, etc.), but also includes documentation”

Components as replaceable elements Components allow systems to be assembled from replaceable elements Can be replaced by other component(s) that conforms to the interfaces/specifications. Provide the implementation and documentation of a set of requirements. The entire system is made of many components. //Sort Component x //input: obj[] //ouput: sorted obj[] Public SortObjs(obj[] E) …sorting alg //Sort Component y //input: obj[] //ouput: sorted obj[] Public SortObjs(obj[] E) …sorting alg …10x faster than Sort Component x

Components and Classes (documentation) Classes represent logical abstractions. They have attributes(data) and operations (methods). Components have operations that are reachable only through Interfaces. http requests, GPIO port, memory location, socket, etc.

Packages (Documentation) Package is a namespace used to group together elements that are related and might change together. Used to organize elements into groups to provide a better structure for system models. The members of the package may be shown within the boundaries of the package. In this case the name of the package should be placed on the tab.

Nodes (Documentation) A node is a physical element (or virtualized environment) that exists at run time and provides a computational environment and resources. Computer Smartphone Router/switch Embedded System Virtual Machine Docker Container

Nodes Nodes are associated with deployments of packaged elements and components. Can be interconnected with communication paths. Ex: application and database on different nodes need to communicate. Communication paths between the nodes define how these processes communicate. Communication Path

Example: Simple web system Static pages requested from web server All interactions require communication with the server DNS, HTTP TCP IP IEEE 802.x

Deployment diagram (Documentation)

Component diagram: Interfaces (Documentation)

Architectural Styles (Documentation) An architectural style is a system architecture that recurs in many different applications. Examples: Input/output data pipeline Client/server Repositories Buffering

Architectural Style: Pipe Example: A three-pass compiler Output from one subsystem is the input of the next subsystem.

Architectural Style: Client/server Example: An E-mail system Communication between client/server follows specific protocols. HTTP, Sockets, etc. In a peer-to-peer architecture, components can act as both client and server.

Architectural Style: Repository Example: Storm data repository Advantages: Flexible architecture for data-intensive systems Disadvantages: Difficult to modify repository since many different components can be connected to it.

Time-critical systems A time-critical (real time) system is a software system whose correct functioning depends on Time taken to produce results Quality of results produced A hard real time system fails if the results are not produced within required time constraints. EX: fly-by-wire control system for an airplane must responds within specified time limits. A soft real time system is degraded if the results are not produced within required time constraints. EX: A network router is permitted to time out or lose a packet.

Time Critical system: Architectural Style - Daemon A daemon is a background process generally used to help process requests for a larger system. Example: Web server Daemon listens at port 80 (background process, httpd) When a message arrives: Spawns a process to handle the message Returns to listening at port 80

Architectural styles for distributed data Replication: Several copies of the data are held in different locations. Mirror: complete data set is replicated Cache: subset of data is replicated (most recently used/fetched data) With replicated data, the biggest problems are: Concurrency: many users can access the data at the same time. Consistency: each user sees exactly the same data, including changes made by themselves and others on local and/or replicated systems. Example: The Domain Name System (DNS)

Architectural style: Buffering When an application wants a continuous stream of data from a source that delivers data in bursts Software reads the bursts of data into a buffer Application then reads data from the buffer EX: TCP Flow and congestion control windows (buffers) determine transmission rate.

Architectural style Example: Components Web server with data store

System Design Example: Extending the architecture of the web The previous three tier architecture is just one way the basic architecture of the web can be extended. Other ways: Protocols: HTTP, DNS, TCP, ICMP Data interactions: APIs, plug-ins, frameworks Executable code: Server/client scripts Style sheets and dynamic markup: CSS, XHTML, XML

Continuous Operation Many systems must operate continuously Software updates occur while operating. Hardware is monitored and repaired. Uses alternative power supplies, duplicate networks, etc. Administrators have remote access to system components. Example: Cloud Architecture Virtual machines may be live migrated away from a failing server. Users are unaware of the migration. These functions must be designed into the fundamental system architecture.

Exam 0 Exam: six questions, one to omit, graded out of five. Each question equally weighted (25% each) Detailed answers must be legible (marked incorrect if I can’t read your answer) Answer quality/detail will determine your score for each question Possible multiple section questions; a, b, c, .. Two hours to complete the exam in class Content on exam 0: First seven lectures Chapters 1, 2, 4, 5, 6, 7, 22, and 23 Supplemental reading Suggested reading: Your group’s project documentation