CprE 450/550X: Distributed Systems and Middleware
Spring 2004

Syllabus

News and Events
  1. Kick-off meeting has been held on Jan. 13, 2003.
  2. Lecture notes will be posted on this web page before the class.
  3. The first course project "Distributed Chat Service" has been announced on Feb. 5, 2004.  It will due on March 2, 2004.
  4. The topics of term papers have been discussed on Feb. 12, 2004.
  5. The sample RPC code and instructions can be downloaded here. More references can be found at the following links:
    1. http://www.cs.wpi.edu/~cs4513/b01/week4-sunrpc/week4-sunrpc.html
    2. http://www.cisco.com/univercd/cc/td/doc/product/software/ioss390/ios390rp/rprpcgen.pdf
  6. The second course project "Remote Time Service" based on Java RMI will be announced on March 9, 2004. A reference on Java RMI is at http://www.cs.wpi.edu/~cs4513/b01/week4-javarmi/week4-javarmi.html.
  7. Mid-term exam will be scheduled on March 11, 2004, Thursday, 3:40-5pm.
  8. Please see the homework assignment.
  9. The third course project "Distributed Auction Services" based on CORBA has announced on April 1, 2004 and will due on April 27, 2004, 5:00pm.
  10. Please finish your demo on the first and second projects by April 7, 2004. Late demo will result in zero credit on the course projects.
  11. Two useful CORBA links: http://java.sun.com/j2se/1.3/docs/guide/idl/jidlInitialization.html and http://java.sun.com/j2se/1.4.2/docs/guide/idl/jidlExample.html.
  12. Please finish your demo on the third project by April 29, 2004, Thursday. Late demo will result in zero credit on the course projects.
  13. We will use the final exam time, Monday, May 3, 2:15-4:15pm, for the presentation of your term papers.  Please send me your powerpoint slides via email by Sunday, May 2, 11:00pm. Note: For undergraduate students, please list the ten papers you read and used in your presentation on the last page of your presentation slides.
  14. Take-home final exam has been distributed to the students on April 27, 2004, 3:40pm and will due on May 4, 2004, 11:59am.
  15. More to be added.
Please keep an eye on this news box for the latest.


Course Description | Course Objectives | Course Prerequisite | Course Materials | Course Outline | Grading | Acad. Policy | Resources | Lecture Notes | Assignments

Instructor:

Yong Guan
Email: guan@iastate.edu
Office: 3216 Cooover
Phone: (515) 294-8378
Fax: (515) 294-8432
Office hours: Tuesday & Thursday 2:30-3:30PM, and other times by appointment.

Lectures:

Tuesday & Thursday 3:40-5:00PM, 0219 Pearson

Course Description:

The knowledge of distributed computing and middleware has become essential in today's network-centric computing environment. This course will give the undergraduate and graduate students both the fundamental knowledge and hands-on practice, make the students to be more current with the industry practices, and prepare the students for active research at the forefront of these areas.

The topics covered in this course include fundamentals of distributed computing, software agents, naming services, distributed transactions, security management, distributed object-based systems, middleware-based application design and development, and case studies of middleware.

The course will consist of three challenging programming projects (i.e., machine problems), two exams (mid-term and final exams), and one term paper. We will have a small number of homework, demonstrations (on your course projects), and presentations (on your term papers). Both undergraduate and graduate students should finish the required machine problems. But for the term paper, we have different requirements for undergraduate and graduate students:
 


A list of selected topics/problems will be given shortly. You can also propose your own one.

For each topic covered in the class, I will also provide you a suggested reading list including a number of selected classical papers and some latest papers published on the top distributed systems conferences/journals (within the past five years).

Course Objectives:

Upon completing this course, the students are expected to understand the basics of distributed systems and middleware and hands-on experience, and to be prepared for active research at the forefront of these areas.

Course Prerequisite:

Familiarity with basic concepts in operating systems (CprE 308 or ComS 352). It will be good if you
have taken a general networking course, or any equivalent.

Course Materials:

Required Textbook:

Reference Books:

In addition, for topics not covered in these books, such as peer-to-peer, I will select a number of papers (most were published within the past five years).

Suggested Reading List is given here.

Course Outline:

In this course, we will study some of the most important concepts in the design of distributed operating systems. Throughout the course, we will try to relate the material covered to the support of large-scale computing on the Internet. We will tentatively discuss the following issues:

Grading:

The total point is 100 and will be based on the following grading criteria:
  1. Mid-term & Final Exam: 30%
  2. Course Projects: 45%
  3. Term Papers: 25%
    • Vision and Previous Related Work: Give your view of the big picture and compare and relate your work to others
    • Critiques: Identify holes, research questions, and potential improvements of the work
    • Depth and breadth of knowledge in the materials

Academic Policy:

Lecture Notes

  1. Lecture notes can be found at here.

Homework Assignments

  1. Chapter 1: 2, 4, 15, 16
  2. Chapter 2: 4, 7, 16, 20, 24, 25, 26
  3. Chapter 3: 1, 12, 19
  4. Solution for problems in Chapter 1, 2, and 3.