CSC 258

45 downloads 3137 Views 14KB Size Report
Catalog Description: Distributed system architectures, distributed object ... G. Coulouris, et al, Lecture Notes for Distributed Systems: Concepts and Design. 3.
COURSE DESCRIPTION Department and Course Number:

CSC 258

Course Title: Distributed Systems

Course Coordinator: Jinsong Ouyang Total Credits:

3

Catalog Description: Distributed system architectures, distributed object model, component-based design, time and global states, coordination and agreement, distributed transactions and concurrency control, replication, security, distributed multimedia systems, message passing and distributed shared memory, Web services and Service-Oriented Architecture (SOA), Grid computing. Emphasis on scalability, manageability, security, and dependability of distributed systems. Prerequisite: CSc 204 and fully classified graduate status in Computer Science, Software Engineering, or Computer Engineering. Textbooks 1.

G. Coulouris, J. Dollimore, and T. Kindberg, Distributed Systems: Concepts and Design, 4th Ed., Addison-Wesley, 2005

References 1.

A.S. Tanenbaum and M. van Steen, Distributed Systems: Principles and Paradigms, Prentice Hall,

2. 3.

G. Coulouris, et al, Lecture Notes for Distributed Systems: Concepts and Design J. Ouyang, Readings on Distributed Systems (Papers)

2002

Course Goals 1. 2. 3. 4. 5.

To provide an introduction to concepts in distributed computer systems To obtain knowledge of fundamental distributed algorithms and protocols To obtain knowledge of building scalable and dependable large-scale distributed systems with proper architecture and protocol/algorithm design To develop proficiency in the development of enterprise distributed applications To expose the latest research and technology trends in the area

Prerequisites by Topic 1. 4. 2. 3. 4.

Proof by introduction and proof by contradiction for algorithm/protocol correctness Algorithm space and time complexity analysis The Internet protocol stack: HTTP, TCP, UDP, IP, WLAN, Ethernet Operating systems principles: CPU scheduling, load balancing, virtual memory management, interprocess communication, and the concept of quality of service Database management systems: SQL and JDBC

Major Topics Covered in the Course 1. 2. 3. 4. 5.

Introduction, architectural models and fundamental distributed computing models (2 hrs) Distributed object systems and component-based systems (8 hrs) Time and global states: clock and logic clock synchronization algorithms, distributed snapshot algorithms (3 hrs) Directory and name services (1.5 hrs) Distributed file systems (1.5 hrs)

6. 7. 8. 9. 10. 11. 12.

Coordination and agreement: distributed mutual exclusion algorithms, election algorithms, and multicast communication algorithms and protocols ( 5 hrs) Transactions, concurrency control, distributed transactions (7 hrs) Replication and dependable computing (3 hrs) Techniques and protocols for building secure and trusted distributed systems (6 hrs) Message passing and distributed shared memory (1 hr) Distributed multimedia systems (1 hrs) Web services and SOA: XML, SOAP, WSDL, UDDI, BPEL, SOA (6 hrs)

Sample Laboratory Projects 1. 2. 3.

Development of a Web-based multi-tier enterprise application Design and implementation of a distributed checkpointing algorithm Design and implementation of a distributed transaction manager prototype

Estimated CSAB Category Content CORE Data Structures Algorithms Software Design Computer Organization and Architecture Concept of Programming Languages

ADVANCED

1.5 1.0 .5

Oral and Written Communications Every student is required to submit at least one written report for their development project and/or research project Social and Ethical Issues No significant component Theoretical Content Algorithms and protocols Analysis and Design Please see the Laboratory Projects section above.

Rev. 02/10/07