George Mason University
DEPARTMENT OF COMPUTER SCIENCE

CS 707 Distributed Software Systems

Spring 2002

Monday 4:30 - 7:10 pm, Enterprise 278

Prerequisites | Description | Readings | Syllabus | Grading | Lateness | Home Page

This page last updated on Jan 4, 2002



Professor Sanjeev Setia
703-993-4098
setia@cs.gmu.edu

Course office hours: Monday 2-4 pm
S&T II, Room 347


PREREQUISITES:

CS 571 (Operating Systems), CS 706 (Concurrent Software Systems) and knowledge of C and/or C++ and/or Java.
NOTE: If you do not have these prerequisites, you need my permission to take the class


DESCRIPTION:
The class focuses on concepts that arise in the design and implementation of distributed applications. Issues that arise in making distributed applications secure, reliable, and scalable will be discussed. Programming assignments will involve middleware technologies such as TCP/IP sockets, RPC, and CORBA.


READINGS:
The textbook for this class is
G. Coulouris, J. Dollimore, T. Kindberg, “Distributed Systems: Concepts and Design”, 3rd Edition, Addison-Wesley, 2001.

In addition, here are recommendations for books on specific topics. Class notes will also be provided as necessary.

Sockets

1.      D. Comer and S. Stevens, ``Inter-networking with TCP/IP Vol III: Client-Server Programming and Applications'', 3rd edition, Prentice Hall, 1999.

2.      Merlin Hughes, Conrad Hughes, Michael Shoffner, Maria Winslow. ``Java Network Programming'', Manning Publications Co., 2nd edition, 1999.

3.      Stevens, W. Richard, ``Unix Network Programming'', Prentice-Hall, 2nd Edition, 1998

The examples in books (1) and (3) above are in C, whereas book (2) focuses on Java. There are probably several other books available on Java network programming. You will be free to use either Java or C or C++ for the programming assignments in this class, so you should probably buy a book appropriately. Book (1) above is more like a textbook, whereas book (3) is a reference text with more information on sockets than any book ever written.

CORBA

M. Henning and S. Vinoski. ``Advanced CORBA Programming with C++'', Addison Wesley, 1999.

This book covers CORBA in great depth. The examples are in C++. Several Java books include a chapter on Java IDL/CORBA.

Designing Distributed Applications

Some of the material in these books is useful for this class

1.      G. Andrews, "Foundations of Multithreaded, Distributed, and Parallel Programming", Addison Wesley, 1999.

2.      K. Birman, "Building Secure and Reliable Network Applications", Manning, 1996.

3.      Andrew Tannenbaum. ``Distributed Systems: Paradigms and Principles'', Prentice-Hall, 2001.


SYLLABUS:

The following topics will be covered: (note: this list does not represent the order in which these topics will be covered)

1.      Distributed systems, computer networks, concurrent programming (Review)

2.      Design of Client/Server applications

3.      Middleware technologies

1.      TCP/IP Sockets

2.      RPC/Java RMI/CORBA

3.       JINI, Javaspaces

4.      Issues in the design of scalable, reliable distributed applications

1.      Logical Time and Global States

2.      Coordination and Agreement

3.      Distributed Transactions

4.      Replication

5.      Scalability


GRADING:

There will be two or three programming assignments involving the development of a distributed application using various middleware technologies, e.g., sockets, CORBA/RMI, etc. In addition, there will be a project for which you will be free to use any middleware technology. The software required for these projects is available on the computers in the IT&E Lab.

The class project will be relatively large and may be done in a group of two. Each member of a group is expected to contribute equally to the project in order to get the same grade. 60% of the course grade will be based on these projects. In addition, there will be a mid-term exam in March worth 20% of the grade. The final exam will account for the remaining 20% of the grade. (The final exam may be a take-home exam; this decision will be announced in April)


LATENESS:

The late submission policy is as follows: projects will be marked down 20 % for each late day after the due date.


CLASS HOME PAGE:

Class notes, slides, handouts, etc. will be available at the class home page.

Back to the top.