CprE 450/550: Distributed Systems and Middleware


We are witnessing the popularity of distributed applications and services such as e-Commerce, peer-to-peer systems, distributed multimedia applications, grid computing, and pervasive and ubiquitous computing.

Iowa State University
Ames, IA






Course Objectives

The knowledge of distributed computing and middleware has become essential in today's network-centric computing environment. The course aims at conveying the insight into, and knowledge of, the fundamental concept, principles, and state-of-the-art practice underlying the design of distributed systems. The topics covered in this course include fundamentals of distributed computing, software agents, naming services, distributed transactions, Blockchain, security management, distributed object-based systems, middleware-based application design and development, case studies of middleware, and important Internet applications (such as VoIP, P2P file sharing, etc.).

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.

News and Events

Please keep an eye on this news box for the latest.

Spring 2019

1.     Kick-off meeting held in Howe 1252.

3.     More to be added.







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, Blockchain, secure microkernel OS, middleware-based application design and development, and case studies of middleware. More details can be found in the course outline.

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 programming projects.

For term paper, a list of selected topics/problems will be given. You can also propose your own one. But we will have different requirements for undergraduate and graduate students:

         Undergraduate students: Write a 6-pages literature survey on a specific topic based on the reading of at least 10 papers published within the past five years.

         Graduate students: Write a 8-pages term paper, including defining a specific problem, surveying existing work, developing a (better) solution, and evaluating your results.

The paper format will be double column and single space and should conform to the standard format for IEEE transactions. You can use either Latex or WORD. More information please refer: http://www.ieee.org/organizations/pubs/transactions/stylesheets.htm.

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

Course Materials

Required Textbook:

         S. Tanenbaum and M. V. Steen, Distributed Systems: Principles and Paradigms, Second Edition, Prentice Hall, 2006, ISBN: 0132392275.

Reference Books:

         G. Coulouris, J. Dollimore, and T. Kindberg, Distributed Systems: Concepts and Design, 3rd Edition, Addison-Wesley, 2000, ISBN: 0201619180.

         R. Anderson, Security Engineering: A Guide to Building Dependable Distributed Systems, John Wiley & Sons, 2001, ISBN: 0471389226.

         Alberto Leon-Garcia and Indra Widjaja, Communication Networks: Fundamental Concepts and Key Architectures, First Edition, McGraw-Hill Companies, Inc., 2000, ISBN 0-07-022839-6.

         W. Richard Stevens, Advanced Programming in the UNIX Environment, First Edition, Addison-Wesley Pub Co., 1992, ISBN 0201563177.

         R. Otte, P. Patrick, and M. Roy, Understanding CORBA, Prentice Hall, 1996, ISBN: 013459884-9.

         Nancy Lynch, Distributed Algorithms, Morgan Kaufmann Publishers, San Mateo, CA, 1996.ISBN: 1-55860-348-4.

In addition, for each topic covered in the class, I will select a number of papers (most were published within the past five years). Please see the suggested reading list on Canvas

Lecture slides will be available before class at Canvas.

Course Prerequisite

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

Grading and Acad. Policy

The total point is 100 and will be based on the following grading criteria:.

1.     Mid-term & Final Exam: 30%

2.     Course Projects: 40%

3.     Term Papers: 20%

4.     Quizzes and Presentation: 10%

Academic Policy:

         All incidents of academic dishonesty will be dealt with according to the university policy. No exceptions.

a. All references must be properly cited, including internet web pages (URL must be provided). If plagarism is detected, i.e. without proper citation and quotation, you will automatically receive an F. When in doubt, please ask the instructor if it is reasonable to include other's work in your assignments.

         Due dates for term papers and course projects are hard except that you have reasonable reason. However, for the whole semester, you can have at most one time three-day extension.

         If you have a disability and require accommodations, please contact the instructor early in the semester so that your learning needs may be appropriately met. You will need to provide documentation of your disability to the Disability Resources (DR) office, located on the main floor of the Student Services Building, Room 1076, 515-294-7220

Lecture and Office Hours

Dr. Yong Guan, Department of Electrical and Computer Engineering, Iowa State University, Ames, IA 50011. Office: Coover 3219. Email: yguan@iastate.edu. Phone: (515) 294-8378. Fax: (515) 294-8432.

Lecture: Tuesday & Thursday, 9:30-10:45am, 1252 Howe.

Instructor Office Hours: Tuesday, 11:00-11:59am, Durham 309. You are welcome to drop by or email me to schedule a longer time to meet after class.

Course Outline

In this course, we will study fundamental concepts and theory in the design of distributed operating systems. Throughout the course, we will try to relate the material covered to the support of large-scale applications and services on the Internet. We will tentatively discuss the following topics:


o    Characterization of Distributed Systems

o    Network OSs vs. distributed OSs

o    Middleware

o    Research and design issues

         Inter-process Communication, Remote Procedure Call, and Remote Object Invocation

o    Issues in message passing

o    Client-server communication

o    Case study: Pipe, Shared Memory, and Message Queue

o    Design issues for RPCs and RMIs

o    Case study: Sun RPC and Java RMI

         Distributed Naming Services

o    Names, addresses, routes, capabilities

o    Naming facilities, name distribution, name resolution

o    Migration


o    Event ordering / synchronization

o    Centralized vs. distributed schemes

o    Election Algorithms

o    Mutual Exclusion

         Group Communication

o    Ordered, reliable, and casual multicast

o    Group membership

o    Atomic group multicast

o    Virtual synchrony

o    Case study: ISIS

         Consistency and Replication

         Distributed Shared Memory

o    Shared memory

o    Consistency models

o    Design issues

o    Case studies: Ivy/Munin/Treadmarks


         Distributed Object-based Systems

o    CORBA

o    DCOM

o    Globe

         Distributed File Services

o    Model

o    Case study: NFS, AFS, CODA

o    Modern Systems: OceanStore

         Supporting Internet Applications of the Future

o    Issues

o    Active networks

o    Peer-to-Peer

o    VoIP

o    IPTV

o    Cloud Computing

         Fault Tolerance and Failure Recovery in Distribute Systems

         Security in Distribute Systems

o    Issues

o    Secure OS, seL4, seLinux

o    Key Management

o    Secure Group Management

o    Case Study: KERBEROS, Electric Payment Systems, such as latest development of VISA's on-line payment protocol, etc.

Further Information

For further information, please contact Yong Guan (yguan@iastate.edu) by email or drop by office Durham 309.