CptS 464/564 Syllabus (10/02/00)
Distributed Systems Concepts and Programming[1]
http://www.eecs.wsu.edu/~bakken/464-564-Web.htm
Fall 2000; MW 2:10-3:25, Sloan 46
Prof. Dave Bakken,EME 55; 335-2399; bakken@eecs.wsu.edu
Office Hours: Monday 3:30-5:00, Wednesday 10:00-12:00
TA: Zhiyuan (“Troy”) Zhan, zzhan@eecs.wsu.edu
TA Office Hours (in ETRL 301): Monday 7-9PM, Thursday 3-5PM
The last few years have seen a significant number of advances in computer and communications technologies, as well as the sharp decline in their cost. These developments, coupled with the growing availability (almost ubiquity) of network and internet connections, have resulted in the huge growth in the size and diversity of computer programs, which are executed across multiple computers. The most prominent example use the World Wide Web (WWW), which has been called “the last gold rush of the millennium,” but other examples abound.
This course will examine the state of the art and practice in distributed systems and will provide significant experience in programming them.
As a result of this course, students will:
· Be well-versed in the fundamental issues involved in designing, programming, and using distributed systems
· Be familiar with some of the most significant new software technologies for creating distributed programs
· Have significant experience using CORBA, the most technologically advanced software framework for creating distribute program, as well as exposure to XML and Microsoft’s SOAP.
Coulouris, G, Dollimore, J., and Kindberg, T. Distributed Systems: Concepts and Design, 3ed, Addison-Wesley, 2001, ISBN 0-201-61918-0.
Birman, K. Building Secure and Reliable Network Applications, Manning and Prentice Hall, 1997, ISBN 0-137-19584-2. (May be out of print; author has some .pdf online under www.cs.cornell.edu.)
Orfali, Robert et al. Client/Server Survival Guide, 3ed, Wiley, 1999, ISBN 0-471-31615-6.
Natarjan, V. et al. Programming With Visibroker : A Developer's Guide to Visibroker for Java, 2ed, John Wiley & Sons; Sept. 2000 (not quite available), ISBN: 0-471-37682-5.
Scribner, K. and Stiver, M. Understanding SOAP, Sams, 2000, ISBN 0-672-31922-5.
Orfali, R., Harkey, D., and Edwards, J. Client/Server Survival Guide, 3ed. John Wiley and Sons, 1999, ISBN 0-471-31615-6.
Additional papers will be either handed out or linked to in the web page.
Cpt. S. 360 (Systems Programming), or permission from the instructor. Also fluency and significant experience in either Java or C++.
If you do not meet these prerequisites, you MUST come and talk with me the first week of class. I reserve the right to drop you from the course if it becomes obvious that you do not meet the prerequisites.
You are required to attend every lecture. If you miss one, it is your responsibility to find out what happened and to collect any material, which was handed out in class.
You are also expected to participate in class discussions to a reasonable extent. This aids your learning and that of your classmates, and provides valuable feedback on the lecture.
I reserve the right to lower the grade of any student who is markedly deficient in attendance and/or participation.
There will be two mid-term exams and one final examination; the second mid-term exam will only cover the material discussed and assigned after the first exam. There will be five homework assignments given out, mainly involving exercises from the book. There will be five programming projects. The first two will be individual programming projects to familiarize you with CORBA, and especially VisiBroker, the CORBA software we will be using in this course. The third programming assignment will be with Microsoft’s SOAP and XML. The fourth and fifth ones will be decided later in the semester, based on student progress and the available software, but will very likely involve at least CORBA. All programming assignments will be done with the computers in the instructional lab in ETRL 301.
The following allocation of grade percentages is tentative, and may change during the semester:
Exams (2): 40%
Homeworks (5) and Surprise Quizzes : 20%
Projects (5): 35%
Particiation 05%
Your exams, homeworks, and programming projects are subject to the academic honor code. DO NOT CHEAT IN ANY WAY: DO YOUR OWN WORK! Side effects of cheating may involve expulsion, revocation of assistantships, a pox on your family, etc., not to mention seriously “ticking me off”…
It is quite acceptable to ask others things like “Have you gotten this exception before?,” and even have them look at your stack trace and its code It is quite unacceptable, on the other hand, to have them spend hours helping develop or seriously rearrange your program’s logic. If in doubt, ask me first….
# |
Day |
Topic |
Text |
HW |
Proj. |
1 |
8/28 |
Characterization of DSs[2] |
1+papers |
|
|
2 |
8/30 |
Characterization of DSs |
1 |
|
|
|
9/4 |
NO CLASS: LABOR DAY HOLIDAY |
|
|
|
3 |
9/6 |
Networking (guest lecture) |
3 (some) |
|
|
4 |
9/11 |
System Models |
2 |
1 out |
|
5 |
9/13 |
System Models |
2 |
|
|
6 |
9/18 |
CORBA-I |
Slides, 17[3] |
1 due |
1 out |
7 |
9/20 |
CORBA-II |
Slides |
|
|
8 |
9/25 |
Interprocess Communication (IPC) |
4 |
|
|
9 |
9/27 |
IPC |
4 |
2 out |
1 due |
10 |
10/2 |
IPC; CORBA User Exceptions; Project 1 Review
|
4 |
|
2 out |
11 |
10/4 |
Distributed Objects & Remote Invocation |
5 |
|
|
12 |
10/9 |
Distributed Objects & Remote Invocation |
5 |
2 due |
2 due |
13 |
10/11 |
CORBA-III |
Slides |
|
3 out |
14 |
10/16 |
Operating System Support |
6 |
3 out |
|
15 |
10/18 |
Operating System Support |
6 |
|
|
16 |
10/23 |
XML and SOAP (Troy lecture) |
Slides |
3 due |
4 out |
17 |
10/25 |
MIDTERM
EXAM
|
|
|
3 due |
18 |
10/30 |
Distributed Simulation & HLA (BBN guest lecture) |
|
|
|
19 |
11/1 |
Midterm Exam review; Naming |
9 |
|
|
20 |
11/6 |
Naming |
9 |
|
4 due |
21 |
11/8 |
CORBA-IV |
Slides |
|
5 out |
22 |
11/13 |
Time and Global States |
10 |
4 out |
|
23 |
11/15 |
Time and Global
States
|
10 |
|
|
|
11/20 |
NO CLASS:
THANKSGIVING HOLIDAY
|
|
|
|
|
11/22 |
NO CLASS: THANKSGIVING HOLIDAY |
|
|
|
24 |
11/27 |
Distributed
Realtime Systems (DM guest lecture)
|
Slides |
4 due |
|
25 |
11/29 |
Distributed Replication (GB guest lecture) |
Slides |
|
|
26 |
12/4 |
Linda, Jini, and Fault Tolerance |
Slides+Paper |
5 out |
|
27 |
12/6 |
Distributed Quality of Service |
Slides+Paper |
|
|
28 |
12/11 |
Distributed Quality of Service |
Slides+Paper |
|
5 due |
29 |
12/13 |
Distributed Voting and Collation |
Paper |
5 due |
|
|
12/19 |
FINAL EXAM (Time and Room TBA) |
|
|
|
·
Student Survey (complete,
tear off, and return to instructor)
WSU # |
What |
Taken before |
Taking Now |
Not taken ever |
CS 460 |
Operating Systems |
13 |
2 |
8 |
CS 455 |
Intro Networks |
18 |
0 |
5 |
CS 555 |
Comp. Comm. Net |
6 |
10 |
7 |
CS 557 |
Advanced Networks |
1 |
0 |
22 |
CS 360 |
Systems Programming |
12 |
0 |
11 |
EE 414 |
Digital Systems Design |
8 |
0 |
15 |
CS 425 |
Network Security |
2 |
0 |
21 |
CS 427/527 |
Computer Security |
4 |
0 |
19 |
CS 451/551 |
Database Systems |
12 |
3 |
8 |
CS 461 |
Embedded Systems |
3 |
0 |
20 |
|
CptS |
Cpt Eng |
EE |
ME |
Other |
Undergraduate |
3 |
0 |
1 |
1 |
0 |
Graduate |
14 |
1 |
4 |
2 |
0 |
If other, please write what your major is here:
What |
0 |
1 |
2 |
3 |
4 |
5 |
C++ |
0 |
7 |
11 |
4 |
1 |
0 |
Java |
7 |
6 |
7 |
3 |
0 |
0 |
LISP |
20 |
2 |
1 |
0 |
0 |
0 |
Ada |
22 |
1 |
0 |
0 |
0 |
0 |
CORBA |
20 |
3 |
0 |
0 |
0 |
0 |
DCOM/COM+ |
20 |
2 |
1 |
0 |
0 |
0 |
Microsoft OLE |
20 |
2 |
1 |
0 |
0 |
0 |
Microsoft Programming environments (Visual C++/J++, etc) |
4 |
13 |
7 |
3 |
2 |
0 |
Linux |
0 |
13 |
7 |
3 |
0 |
0 |
Windows NT or Windows 2000 |
1 |
6 |
10 |
3 |
3 |
0 |
Other (specify) (Cluster, C, ASP): |
|
1 |
1 |
1 |
|
|
0 == none or vague familiaty; 1 == played with it a little; 2 == used in lots of courses, and am one of the best at it among my peers; 4 == used for years and a local guru; 5 top 100 or 1000 in the US in it.
[1] Note: This class is being taught as CptS 483 Section 2 and CptS 580 Section 1. Once these new courses are approved by the WSU administration then we will hopefully automatically switch your official registration to these new classes.
[2] Note: I abbreviate “Distributed System” as DS.
[3] Chapter 17 may be useful additional material on CORBA for some students, but only the topics that are lectured on or programmed in projects will be testable.