| |
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,
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 2012
|
-
Kick-off meeting held on Jan. 10, 2012.
-
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, 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.
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.
Lecture slides will be available before class at
https://bb.its.iastate.edu/webapps/portal/frameset.jsp.
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:.
-
Mid-term & Final Exam:
30%
-
Course Projects: 40%
-
Term Papers: 25%
-
Presentation and Attendance: 5%
Academic Policy:
- All incidents of academic dishonesty will be dealt with
according to the university policy. No exceptions.
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 3216. Email: yguan@iastate.edu. Phone:
(515) 294-8378. Fax: (515) 294-8432.
Lecture: Tuesday & Thursday,
9:30-10:45am.
Instructor Office Hours: Monday,
10:00-11:00am, Coover 3216. You are welcome to drop by or email me to
schedule a longer time to meet after class.
TA: Ramzi Saifan,
ramzi@iastate.edu.
TA Office Hours: Thursday
11-noon, Durham 324.
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
- Characterization of Distributed Systems
- Network OSs vs. distributed OSs
- Middleware
- Research and design issues
- Inter-process Communication, Remote Procedure Call, and Remote Object
Invocation
- Issues in message passing
- Client-server communication
- Case study: Pipe, Shared Memory, and Message Queue
- Design issues for RPCs and RMIs
- Case study: Sun RPC and Java RMI
- Distributed Naming Services
- Names, addresses, routes, capabilities
- Naming facilities, name distribution, name resolution
- Migration
- Synchronization
- Event ordering / synchronization
- Centralized vs. distributed schemes
- Election Algorithms
- Mutual Exclusion
- Group Communication
- Ordered, reliable, and casual multicast
- Group membership
- Atomic group multicast
- Virtual synchrony
- Case study: ISIS
- Consistency and Replication
- Distributed Shared Memory
- Shared memory
- Consistency models
- Design issues
- Case studies: Ivy/Munin/Treadmarks
- Distributed Object-based Systems
- Distributed File Services
- Model
- Case study: NFS, AFS, CODA
- Modern Systems: OceanStore
- Supporting Internet Applications of the Future
- Issues
- Active networks
- Peer-to-Peer
- VoIP
- IPTV
- Cloud Computing
- Fault Tolerance and Failure Recovery in Distribute Systems
- Security in Distribute Systems
- Issues
- Key Management
- Secure Group Management
- 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 Coover 3216.
|