1 CS 501 Spring 2005 CS 501: Software Engineering Lecture 14 System Architecture and Design 2.

Slides:



Advertisements
Similar presentations
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 9 Distributed Systems Architectures Slide 1 1 Chapter 9 Distributed Systems Architectures.
Advertisements

Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
28.2 Functionality Application Software Provides Applications supply the high-level services that user access, and determine how users perceive the capabilities.
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
CS CS 5150 Software Engineering Lecture 14 System Architecture 2.
CS 501: Software Engineering Fall 2000 Lecture 14 System Architecture I Data Intensive Systems.
Distributed Systems Architectures
1 CS 501 Spring 2007 CS 501: Software Engineering Lecture 14 System Architecture and Design 2.
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
Lecture 23: Software Architectures
Fall 2007cs4251 Distributed Computing Umar Kalim Dept. of Communication Systems Engineering 31/10/2007.
CS 5150 Software Engineering
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
Networks 1 CS502 Spring 2006 Network Input & Output CS-502 Operating Systems Spring 2006.
1 CS 501 Spring 2008 CS 501: Software Engineering Lecture 14 System Architecture and Design 2.
© Lethbridge/Laganière 2001 Chap. 3: Basing Development on Reusable Technology 1 Let’s get started. Let’s start by selecting an architecture from among.
CS CS 5150 Software Engineering Lecture 14 System Architecture 2.
CS-3013 & CS-502, Summer 2006 Network Input & Output1 CS-3013 & CS-502, Summer 2006.
Systems Architecture, Fourth Edition1 Internet and Distributed Application Services Chapter 13.
16: Distributed Systems1 DISTRIBUTED SYSTEM STRUCTURES NETWORK OPERATING SYSTEMS The users are aware of the physical structure of the network. Each site.
1 CS 501 Spring 2006 CS 501: Software Engineering Lecture 14 System Architecture and Design 2.
CS 501: Software Engineering Fall 2000 Lecture 15 System Architecture II Distributed and Real Time Systems.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 1.
Client/Server Architectures
INTRODUCTION TO WEB DATABASE PROGRAMMING
The Design Discipline.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
1 Chapter Client-Server Interaction. 2 Functionality  Transport layer and layers below  Basic communication  Reliability  Application layer.
1 CMPT 275 High Level Design Phase Architecture. Janice Regan, Objectives of Design  The design phase takes the results of the requirements analysis.
1 소프트웨어공학 강좌 Chap 9. Distributed Systems Architectures - Architectural design for software that executes on more than one processor -
Computers Are Your Future Tenth Edition Chapter 8: Networks: Communicating & Sharing Resources Copyright © 2009 Pearson Education, Inc. Publishing as Prentice.
CH2 System models.
CS CS 5150 Software Engineering Lecture 18 Security.
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.
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Fundamentals of Computer Networks ECE 478/578 Lecture #19: Transport Layer Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University.
Architectures of distributed systems Fundamental Models
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
CS 501: Software Engineering
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 14 System Architecture II.
Distributed Information Systems. Motivation ● To understand the problems that Web services try to solve it is helpful to understand how distributed information.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
CS 501: Software Engineering Fall 1999 Lecture 12 System Architecture III Distributed Objects.
ITGS Network Architecture. ITGS Network architecture –The way computers are logically organized on a network, and the role each takes. Client/server network.
The Client Server Model And Software Design
Enterprise Network Systems Client/ Server Mark Clements.
Distributed System Architectures Yonsei University 2 nd Semester, 2014 Woo-Cheol Kim.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 15 System Architecture and Design I.
CSC 480 Software Engineering Lecture 17 Nov 4, 2002.
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.
Distributed Systems Architectures Chapter 12. Objectives  To explain the advantages and disadvantages of different distributed systems architectures.
Distributed Systems Architectures. Topics covered l Client-server architectures l Distributed object architectures l Inter-organisational computing.
IP Telephony (VoIP).
Last Class: Introduction
Part 3 Design What does design mean in different fields?
CSC 480 Software Engineering
Chapter 3: Windows7 Part 4.
System Architecture CS 560 Lecture 8.
CS 501: Software Engineering Fall 1999
Software models - Software Architecture Design Patterns
Presentation transcript:

1 CS 501 Spring 2005 CS 501: Software Engineering Lecture 14 System Architecture and Design 2

2 CS 501 Spring 2005 Administration

3 CS 501 Spring 2005 Data Intensive Systems: Merger of Two Banks Each bank has a database with its customer accounts. The databases are used by staff at many branches and for back-office processing. The requirement is to integrate the two banks so that they appear to the customers to be a single organization and to provide integrated service from all branches. This is an example of working with legacy systems.

4 CS 501 Spring 2005 Merger of Two Banks: Options ??? A B

5 CS 501 Spring 2005 Merger of Two Banks: Architectural Options I.Convert everything to System A convert databases retrain staff enhance System A (software and hardware) discard System B II.Build an interface between the databases in System A and System B III.Extend client software so that it can interact with either System A or System B database

6 CS 501 Spring 2005 Architectural Styles An architectural style is system architecture that recurs in many different applications. See: Mary Shaw and David Garlan, Software architecture: perspectives on an emerging discipline. Prentice Hall, 1996

7 CS 501 Spring 2005 Coupling and Cohesion Coupling is a measure of the dependencies between two subsystems. If two systems are strongly coupled, it is hard to modify one without modifying the other. Cohesion is a measure of dependencies within a subsystem. If a subsystem contains many closely related functions its cohesion is high. An ideal breakdown of a complex system into subsystems has low coupling between subsystems with high cohesion within subsystems.

8 CS 501 Spring 2005 Architectural Style: Repository Repository Input components Transactions Example: A digital library Advantages: Flexible architecture for data-intensive systems. Disadvantages: Difficult to modify repository since all other components are coupled to it.

9 CS 501 Spring 2005 Architectural Style: Repository with Storage Access Layer Data Store Input components Transactions Advantages: Data Store subsystem can be changed without modifying any component except the Storage Access. Storage Access This is sometimes called a "glue" layer Repository

10 CS 501 Spring 2005 Architectural Style: Model/Controller/View Model Controller View Example: An unmanned aircraft Controller: Sends control signals to the aircraft and receives instrument readings. Model: Translates data received from and sent to the aircraft into a model of flight performance. It uses domain knowledge about the aircraft and flight. View: Displays information about the aircraft to the user.

11 CS 501 Spring 2005 Architectural Style: Pipe Example: A three-pass compiler Parser Lexical analysis Code generation Output from one subsystem is the input to the next.

12 CS 501 Spring 2005 Distributed Computing: General Problem An application that is running on one computer wishes to use data or services provided by another: Network connection private, public, or virtual private network location of firewalls Protocols point-to-point, multicast, broadcast message passing, RPC, distributed objects stateful or stateless Performance quality of service

13 CS 501 Spring 2005 Architectural Style: Client/Server Example: the Web Firefox client Apache server The control flows in the client and the server are independent. communication between client and server follows a protocol. In a peer-to-peer architecture, the same component acts as both a client and a server.

14 CS 501 Spring 2005 Network Choices Public Internet: Ubiquitous -- worldwide Low cost Private network: Security / reliability Predictable performance Choice of protocols (not constrained to TCP/IP)

15 CS 501 Spring 2005 Quality of Network Services Criteria in choosing a system architecture Performance Maximum throughput Latency Variations in throughput Real-time media (e.g., audio) Business Suppliers, cost Trouble shooting and maintenance

16 CS 501 Spring 2005 Firewall Public network Private network Firewall A firewall is a computer at the junction of two network segments that: Inspects every packet that attempts to cross the boundary Rejects any packet that does not satisfy certain criteria, e.g., an incoming request to open a TCP connection an unknown packet type Firewalls provide security at a loss of flexibility and a cost of system administration.

17 CS 501 Spring 2005 Distributed Data two copies of the same data

18 CS 501 Spring 2005 Distributed Data and Replication Distributed Data Data is held on several computer systems. A transaction may need to assemble data from several sources. Replication Several copies of the data are held in different locations. Mirror: Complete data set is replicated Cache: Dynamic set of data is replicated (e.g., most recently used) With replicated data, the biggest problems are concurrency and consistency.

19 CS 501 Spring 2005 Distributed Computing: Searching User interface server User Databases This is an example of a multicast protocol. The primary difficulty is to avoid troubles at one site degrading the entire system (e.g., every transaction cannot wait for a system to time out). Broadcast Searching

20 CS 501 Spring 2005 Distributed Computing: Stateless Protocol v. Stateful Stateless protocol Example: http Open connection Send message Return reply Close connection State in http must be sent with every message (e.g., as parameter string) Cookies are a primitive way of retaining some state

21 CS 501 Spring 2005 Stateless Protocol v. Stateful Stateful (session) protocol Example: Z39.50 Open connection Begin session Interactive session End session Close connection Client and server remember the results of previous transactions (e.g., authentication, partial results) until session is closed.

22 CS 501 Spring 2005 Distributed Computing: UseNet This is an example of an epidemic protocol. Such protocols are especially useful in networks with intermittent connectivity, e.g., mobile computing. The biggest problem is ensuring that the data is distributed effectively.

23 CS 501 Spring 2005 Distributed Computing: The Domain Name System.edu server cornell.edu server cs.cornell.edu server First attempt to resolve

24 CS 501 Spring 2005 Distributed Computing: The Domain Name System.edu server cornell.edu server cs.cornell.edu server Better method 3 1 almaden.ibm.com cornell.edu ece.cmu.edu ibm.com acm.org.edu 2 Local cache local DNS server

25 CS 501 Spring 2005 Distributed Computing Domain Name System For details of the actual protocol read: Paul Mockapetris, "Domain Names - Implementation and Specification". IETF Network Working Group, Request for Comments: 1035, November

26 CS 501 Spring 2005 Time-Critical Systems A real time (time-critical) system is a software system whose correct functioning depends upon the results produced and the time at which they are produced. A soft real time system is degraded if the results are not produced within required time constraints A hard real time system fails if the results are not produced within required time constraints

27 CS 501 Spring 2005 Time-Critical System: Autonomous Land Vehicle Sensors GPS Sonar Laser Signal processing ModelControl signals Steer Throttle Controls

28 CS 501 Spring 2005 Time-Critical System: Routers and Other Network Computing Interoperation with third party devices Support for several versions of protocols Restart after total failure Defensive programming -- must survive => erroneous or malicious messages => extreme loads Time outs, dropped packets, etc. Evolution of network systems

29 CS 501 Spring 2005 Time Critical Systems: Web Server http message daemon spawned processes TCP port 80 The daemon listens at port 80 When a message arrives it: spawns a processes to handle the message returns to listening at port 80

30 CS 501 Spring 2005 Time-Critical System: Software Development Developers of advanced time-critical software spend almost all their effort developing the software environment: Monitoring and testing -- debuggers Crash restart -- component and system-wide Downloading and updating Hardware troubleshooting and reconfiguration etc., etc., etc.

31 CS 501 Spring 2005 Software Considerations of System Architectures In some types of system architecture, non-functional requirements of the system may dictate the software design and development process.

32 CS 501 Spring 2005 Software Considerations of System Architectures: Performance Resource considerations may dictate software design and implementation: Low level language (e.g., C) where programmer has close link to machine Inter-process communication may be too slow (e.g., C fork). May implement special buffering, etc., to control timings

33 CS 501 Spring 2005 Performance: CD Controller for Automobile Input block Output block Circular buffer

34 CS 501 Spring 2005 Software Considerations of System Architectures: Multi-Threading Several similar threads operating concurrently: Re-entrant code -- separation of pure code from data for each thread May be real-time (e.g., telephone switch) or non-time critical The difficult of testing real-time, multi-threaded systems may determine the entire software architecture. Division into components, each with its own acceptance test.

35 CS 501 Spring 2005 Time-Critical System: Embedded Real-time Systems Software and hardware are combined to provide an integrated unit, usually dedicated to a specific task: Digital telephone Automobile engine control GPS Scientific instruments Seat bag controller The software may be embedded in the device in a manner that cannot be altered after manufacture.

36 CS 501 Spring 2005 Software Considerations: Embedded Real-time Systems Design of embedded systems requires close understanding of hardware characteristics Special purpose hardware requires special tools and expertise. Some functions may be implemented in either hardware of software (e.g., floating point unit) Design requires separation of functions Distinction between hardware and software may be blurred. Hardware v. Software

37 CS 501 Spring 2005 Software Considerations of System Architectures: Continuous Operation Many systems must operate continuously Software update while operating Hardware monitoring and repair Alternative power supplies, networks, etc. Remote operation These functions must be designed into the fundamental architecture. *