| 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. Please keep an eye on this news box for the latest.  
     
      | Spring 2020 |  
      | 1.    
      Kick-off meeting held in Howe 1344. 3.    
      More to be added. |             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. 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. 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. 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 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, 1344
    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. 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: 
    ·        
    Introduction 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 ·        
    Synchronization 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 ·        
    Blockchain ·        
    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 InformationFor further information, please contact Yong Guan
    (yguan@iastate.edu) by email or drop by office Durham 309.   |