Title: CS 501: Software Engineering Fall 2000
1CS 501 Software EngineeringFall 2000
Lecture 15 System Architecture II Distributed
and Real Time Systems
2Administration
Assignment 2 Requirements Grades --
presentation, report, individual Comments
at presentation Comments from teaching
assistant Assignment 3 Design
3Comments 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
4Sequence Diagram Notation
libMem LibraryMember
theBookBook
BookBorrower
theCopyCopy
dotted line shows object lifetime
borrow(theCopy)
okToBorrow
borrow
rectangle shows focus of control
borrow
5Sequence Diagram Branching
libMem LibraryMember
theBookBook
theCopyCopy
BookBorrower
1borrow(theCopy)
2okToBorrow
ok3borrow
not ok3noborrow
4borrow
branch
6Example Distributed Database
two copies of the same data
7Distributed 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.
8Example Broadcast Search
Databases
User interface server
User
9Example UseNet
10Stateless 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 or in a cookie)
11Stateless Protocol v. Stateful
Stateful (session) protocol Example
Z39.50 Open connection Begin session Interactiv
e session End session Close connection Server
remembers the results of previous transactions
(e.g., authentication, partial results) until
session is closed.
12Firewall
Private network
Public 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
13The Domain Name System
First attempt to resolve www.cs.cornell.edu
.edu server
1
cornell.edu server
2
3
cs.cornell.edu server
14Discussion of the First Attempt
Problems?
15The Domain Name System
Better method
.edu server
local DNS server
1
2
cornell.edu server
almaden.ibm.com cornell.edu ece.cmu.edu ibm.com ac
m.org .edu
3
Local cache
cs.cornell.edu server
16Real 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
17Example Web Server
http message
daemon
TCP port 80
spawned processes
The daemon listens at port 80. When a message
arrives it spawns a processes to handle the
message returns to listening at port 80
18Embedded 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.
19Example Autonomous Land Vehicle
GPS
Steer
Sonar
Model
Control signals
Throttle
Laser
Controls
Sensors
Signal processing
20Other Applications
Response critical Network router
Telephone switch Seat bag controller Shared
systems Multi-user data processing
Time sharing
21Techniques
Special purpose hardware
Multi-threading and multi-tasking Parallel
processing gt digital signal processing
Interrupts gt levels and priorities
22Multi-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
23Real Time Executive
Schedules and dispatches tasks in a real time
system Real time clock Interrupt
handler Scheduler Resource manager
Dispatcher Must be extremely reliable
24Timing
Timing mechanisms Synchronous (clocked) --
periodic stimuli Asynchronous -- wait for
next signal Example Communications protocols
may be synchronous or asynchronous
25Hardware 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.
26Example Dartmouth Time Shared System
master processor
Central processor
Communications processor
Central processor
I/O Mulitplexor
Communications processor
Central processor
27Software 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
28Example CD Controller
3
4
1
2
Input block
5
Output block
6
7
Circular buffer
29Continuous 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.
30Routers and Other Network Computing
Interoperation with third party devices
Support for several versions of protocols
Restart after total failure Defensive
programming -- must survive gt erroneous or
malicious messages gt extreme loads Time
outs, dropped packets, etc. Evolution of
network systems