Monday 4:30 - 7:10 pm,
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
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 and RMI.
In addition, here are recommendations for books on specific topics. Class notes will also be provided as necessary.
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.
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.
Distributed Systems and
Some of the material in these books is useful for this class
The following topics will be covered: (note: this list does not represent the order in which these topics will be covered)
There will be three programming assignments involving the development of a distributed application using various middleware technologies, e.g., sockets, CORBA/RMI, etc. The software required for these projects is available on the computers in the IT&E Lab.
60% of the course grade will be based on these programming assignments. 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)
Class notes, slides, handouts, etc. will be available at the class home page.