CPE 469 (Distributed Computing II)
Fall 2006
Professor Mei-Ling L. Liu
Office: 14-217, 756-6460
Office hours: Monday 2-3, Tuesday 1-3, Wed. 2-3, Friday 2-3
e-mail:
http://www.csc.calpoly.edu/~mliu
Course Description
CSC 469 Distributed Computing II (4) (Also
listed as CPE 469)
Continued exploration of topics in distributed computing in greater depth, with emphasis on design patterns and team projects. 3 lectures, 1 laboratory. Prerequisite: CSC/CPE 369.
Class Hours and Location
Lec MWF 3:10 14-253
Lab MWF 4:10
14-302
CSC/CPE 369 or instructor's consent. Note: CPE 369 and CPE 469 will count as a technical
elective sequence in your study plan.
Remoting Patterns: Foundations of Enterprise, Internet and Realtime Distributed Object Middleware by Markus Völter, Michael Kircher, Uwe Zdun,
ISBN: 0-470-85662-9
Some material, including
those on distributed algorithms (not available on the web), will be handed out
in class. It is the student's responsibility to obtain class handouts while
they are distributed. The instructor
does not retain copies of such handouts.
References:
-
Sources of
information on Design Patterns (click on this link to reach a set of
helpful articles that may be discussed in class.)
-
Software
Architecture Design Patterns in Java by Partha Kuchana, ISBN 0849321425
-
Pattern-Oriented
Software Architecture, Volume 1, A System of Patterns by Frank Buschmann, et all, ISBN: 0-471-95869-7
-
Design
Patterns: Elements of Reusable Object-Oriented Software. Erich Gamma, Richard Helm, Ralph Johnson,
John Vlissides. Addison-Wesley,
-
Pattern-Oriented
Software Architecture, Volume 2, Patterns for Concurrent and Networked Objects
by Douglas Schmidt, Michael Stal, Hans Rohnert, Frank
Buschmann. ISBN-0471606952
-
Fault Tolerance
in Distributed Systems, P. Jalote, Prentice Hall
-
Distributed Algorithms,
Nancy Lynch, Morgan Kaufmann
-
Week
1: Distributed computing basics, threaded programming, design documents (UML class diagram, sequence diagram)
-
Week
2: Introduction to design patterns: singleton, observer, adapter
-
Week
3: proxy, chain of responsibilities, broker
-
Week
4: Basic remoting patterns: requestor, client proxy,
invoker, request handler, remoting error, monitor,
reflection, dynamic proxies
-
Week
5: Identification patterns: object ID, object reference, lookup; midterm.
-
Week
6: Lifecycle management patterns: static instance, per-request instance,
client-dependent instance, lazy acquisition, pooling. Leasing.
-
Week
7: Invocation Asynchrony Patterns: Fire and forward, sync and server, polling,
result callback
-
Week
8-10: Project review and presentations
midterm 20%
assignments (exercises, projects, presentations) 50%
Final 30%
In
general, letter grades are assigned as follows:
Earned weighted grade Course letter grade
90%
and above A- or better
80%
- 90% B- or better
70%
- 80% C- or better
-
On each problem
where you have a dispute, write a short paragraph explaining your arguments.
-
Return the
assignment to me within a week of its return, with the word "REGRADE"
marked on the top center of the front page, and a note explaining which
problem(s) are to be re-graded.
-
I will look at
the arguments and adjust the grade if appropriate. I reserve the right to
re-grade the entire assignment.
-
The re-graded
paper will be returned to you.