CptS 464/564 Syllabus (11/13/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

1)   Background

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.

2)   Course Objectives

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.

3)   Text

a)    Required Text:

Coulouris, G, Dollimore, J., and Kindberg, T. Distributed Systems: Concepts and Design, 3ed, Addison-Wesley, 2001, ISBN 0-201-61918-0.

b)    Optional Texts:

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.

4)   Additional Reading

Additional papers will be either handed out or linked to in the web page.

5)   Course Prerequisites

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.

6)   Course Requirements

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.

7)   Assigned Work and Tentative Grading Policy

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:

            Component                                                      464                  564

Exams (2):                                                        45%                 30%

Homeworks (5) and Surprise Quizzes : 15%                 20%

Projects (5):                                                     40%                 40%

Particiation                                                         0%                 10%

8)   Policies and Expectations

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….


9)   Tentative Schedule (Updated 11/013/00)

 

#

Day

Topic

Text

HW

Project

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

 

17

10/25

MIDTERM EXAM

 

 

3 due

18

10/30

Distributed Simulation & HLA (BBN guest lecture)

 

 

 

19

11/1

Midterm Exam review

 

 

 

20

11/6

Distributed Voting and Collation

Slides

 

 

21

11/8

Linda, FT-Linda, and Jini

Slides

 

 

22

11/13

CORBA-IV

Slides

 

 

23

11/15

Naming

9

 

4 out

 

11/20

NO CLASS: THANKSGIVING HOLIDAY

 

 

 

 

11/22

NO CLASS: THANKSGIVING HOLIDAY

 

 

 

24

11/27

Naming (cont.)

9

 

 

25

11/29

Time and Global States

10+paper

4 out

 

26

12/4

Time and Global States

10

 

 

27

12/6

Distributed Quality of Service

Papers

 

 

28

12/11

Distributed Quality of Service

Papers

4 due

 

29

12/13

Conclusions,Review for Exam, and Future of DSs

 

 

4 due

 

12/19

FINAL EXAM (Time and Room TBA)

 

 

 


·       Student Survey (complete, tear off, and return to instructor)

a)    Which courses (or their equivalents at other schools) have you taken? 

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

b)    What is your Major and what category of student are you:

 

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:

c)     What experience do you have with these different languages and environments?

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.