CS 501: Software Engineering Fall 2000 Lecture 15 System Architecture II Distributed and Real Time...

Preview:

Citation preview

CS 501: Software EngineeringFall 2000

Lecture 15

System Architecture II

Distributed and Real Time Systems

Administration

Assignment 2: Requirements

• Grades -- presentation, report, individual• Comments at presentation• Comments from teaching assistant

Assignment 3: Design

Comments on Requirements Report

Audience

• Client and design team• Will be updated over time

Content

• Level of detail -- will be used to validate the implementation• Requirements, not design• Precise, but not legalistic

Sequence Diagram: Notation

BookBorrower

libMem: LibraryMember

theCopy:Copy

theBook:Book

borrow(theCopy)okToBorrow

borrowborrow

dotted line shows object

lifetime

rectangle shows focus

of control

Sequence Diagram: Branching

BookBorrower

libMem: LibraryMember

theCopy:Copy

theBook:Book

1:borrow(theCopy)2:okToBorrow

[ok]3:borrow4:borrow

branch

[not ok]3:noborrow

Example: Distributed Database

two copies of the same data

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 problem is consistency.

Example: Broadcast Search

User interfaceserverUser

Databases

Example: UseNet

Stateless Protocol v. Stateful

Stateless protocol

Example: http

Open connectionSend message Return replyClose connection

State in http must be sent with every message (e.g., as parameter string or in a cookie)

Stateless Protocol v. Stateful

Stateful (session) protocol

Example: Z39.50Open connectionBegin sessionInteractive sessionEnd sessionClose connection

Server remembers the results of previous transactions (e.g., authentication, partial results) until session is closed.

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 connectionan unknown packet type

The Domain Name System

.edu server

cornell.edu server

cs.cornell.edu server

First attempt to resolve www.cs.cornell.edu

1

2

3

Discussion of the First Attempt

Problems?

The Domain Name System

.edu server

cornell.edu server

cs.cornell.edu server

Better method

3

1

almaden.ibm.comcornell.eduece.cmu.eduibm.comacm.org.edu

2

Localcache

local DNS server

Real Time System

A real time 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

Example: Web Server

http messagedaemon

spawned processesTCP port 80

The daemon listens at port 80.

When a message arrives it:spawns a processes to handle the messagereturns to listening at port 80

Embedded 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

The software may be embedded in the device in a manner that can not be altered after manufacture.

Example: Autonomous Land Vehicle

Sensors

GPS

Sonar

Laser

Signal processing

Model Control signals

Steer

Throttle

Controls

Other Applications

Response critical

• Network router

• Telephone switch

• Seat bag controller

Shared systems

• Multi-user data processing

• Time sharing

Techniques

• Special purpose hardware

• Multi-threading and multi-tasking

• Parallel processing

=> digital signal processing

• Interrupts

=> levels and priorities

Multi-Threading

Several similar threads operating concurrently:

• Re-entrant code -- separation of pure code from data for each thread

• Testing -- single thread and multi thread

May be real time (e.g., telephone switch) or non-time critical

Real Time Executive

Schedules and dispatches tasks in a real time system

• Real time clock

• Interrupt handler

• Scheduler

• Resource manager

• Dispatcher

Must be extremely reliable

Timing

Timing mechanisms

• Synchronous (clocked) -- periodic stimuli

• Asynchronous -- wait for next signal

Example: Communications protocols may be synchronous or asynchronous

Hardware v. Software

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.

Example: Dartmouth Time Shared System

Communications processor

Communications processor

Centralprocessor

Centralprocessor

Centralprocessor

I/OMulitplexor

master processor

Software Considerations

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

Example: CD Controller

Input block Output

block

12

345

67

Circular buffer

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.

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

Recommended