|
|
Syllabus for ECEN 4/5053 Software Engineering of Distributed Systems
This syllabus will be updated as the course progresses. Refer to it frequently.
This schedule is organized by lecture number.
For each unit you will find the lecture numbers and dates of the classes,
a lecture title, the final examination or a holiday if any.
Lecture titles are accompanied by a list of sections from the
textbooks or other readings that are relevant to that lecture.
When a sequence of lectures is devoted to the same material, all
are listed with the same title. You should be doing the reading ahead of the lecture.
-
- Overview of distributed software and hardware issues with a historical
perspective.
Suggested reading:
- Chapter 1 Characterization of Distributed Systems
- Chapter 2 System Models
-
- Each distributed software application falls into one of three major
categories or is a combination of those three.
Suggested reading:
- Chapter 3: Networking and Internetworking -- I'm not lecturing on this
material but you will be doing homework on it. It will have implications for
various topics throughout the rest of the semester.
-
- How processes communicate across networks; what infrastructure is
necessary to make this possible.
Suggested reading:
- Chapter 4: Interprocess Communication
-
- How remote method invocation is accomplished; characteristics,
assumptions, and tradeoffs of tools that support rmi.
Suggested reading:
- Chapter 5 Distributed Objects and Remote Invocation
-
- We extend the COMET methodology for analysis, design, and specification
of distributed software systems.
Suggested reading:
- Document from the web for this week.
10/03/2006 & 10/05/2006:
Continued
- Topic continued from previous week.
Suggested reading:
- Continue reading the document obtained from the web in the previous week.
-
- Earlier in the semester we considered the requirements for process interaction
across networks. We looked at some tools that implement these requirements and
considered the tradeoffs involved in using them.
- At an algorithmic level, there are classic paradigms or models for
accomplishing different types of process interaction. We look at generic designs for
those models.
Suggested reading:
- Presentation notes for this week from the web.
-
- Transaction-based distributed software represents one of the most common
applications today. They raise interesting questions in the absence of a global
clock and in the presence of concurrency and the possibility of network failure,
node failure, and latency effects.
Suggested reading:
- Chapter 13 Transactions and Concurrency Control
- Chapter 14 Distributed Transactions
-
- Because of real world constraints, it is impossible for all computers in a
network to be synchronized exactly. Yet many distirbuted software applications
require that actions be executed in the same order on each machine in the network
regardless of their origination points in the network.
- Also, because one can not distinguish between painfully slow performance of a
node and failure of the node, it is difficult to assess certain global states such as
termination of a program. Yet the correctness of some algorithms requires the
ability to detect termination.
- We consider the algorithms devised to address these problems and their impact
on design.
Suggested reading:
- Chapter 11: Time and Global States
-
- Rate monotonic analysis can be readily applied to distributed systems. We
will review the RMA techniques and apply them, in class, to an extended problem.
Suggested reading:
- If you did not take ECEN5043, you may want to request the opportunity to
view the videotape on RMA before this week.
- (No class the week of 11/20-11/24, includes Thanksgiving Holiday)
- An immediate consequence of the ability to have distributed software applications
is the increased challenge to security. We look at the causes and the primary
solutions. We also look at why these solutions are not considered to be adequate.
Suggested reading:
- Chapter 7 Security
- plus a set of articles from The Economist, October 2002.
-
- The desire to avoid a single point of failure for data availability
introduces its own set of problems. There are tradeoffs that must be considered
at design time.
Suggested reading:
- Chapter 15 Replication
- Chapter 18 Distributed Shared Memory
-
- There are patterns for testing distributed systems. We will look at some of
these and look at what they entail and when to use them. We also will consider
how to design for testability of distributed systems.
Suggested reading:
- McGregor & Sykes, A Practical Guide to Testing Object-Oriented Software, Chapter 8
- Lecture notes available on the web.
Monday, 12/18/2006 1:30 p.m. - 4:00 p.m.: Final Exam
- Distance CAETE students should make arrangements with their Education Officers
to proctor the exam on Monday, 12/18, or Tuesday, 12/19. CAETE students are welcome
to come to the classroom to take the exam with the on-campus students. Tell the
instructor if you are planning to do so.
- Although homework and class activities have been done in teams, the final exam
will be an individual effort.
What to bring:
- You may bring textbooks, lecture notes, handouts, notes, but not graded homework.
- Bring plenty of paper or an exam booklet. Bring a WATCH! You may bring a laptop computer
to type your exam rather than writing it but you will be monitored to ensure you are not going
"outside the classroom" for assistance. If you bring a laptop computer, be sure you have a way
to transfer your completed exam to me!
|