ECS 289C ADVANCED TOPICS IN DISTRIBUTED SYSTEMS (4) II

Lecture: 3 hours

Prerequisite: Courses 140A and 150

Grading: Letter, Reading Assignments (20%), Presentation (30%), Projects (50%)

Catalog Description:
Distributed programming languages; Internet infrastructure, services and protocols, Adaptive and Dynamic Middleware, Ubiquitous computing, P2P and Web services, Scalability, Fault tolerance, and Security.

Goals:
This course will focus on the technical challenges in building scalable, fault tolerant, secure and adaptive distributed systems. Specifically the course will examine the following:

I. How have advances in communication and computational infrastructures influenced distributed computing models? Here we will examine well known distributed computing models (for instance, client-server), and emerging models such as peer-to-peer (P2P) and ubiquitous computing models.

II. How can we design distributed systems that are fault-tolerant, scalable, secure and adaptable?

III. What kind of programming language and runtime support are needed for the computational models?

IV. What are the challenges in building a core distributed system infrastructure? We will analyze the design and implementation of servers, caches, middleware, and runtime systems; protocols; and networking and operating system support.

Expanded Course Description:

I. Introduction: Distributed system models

A. Client-Server (Web)
B. Peer to Peer and Web services
C. Pervasive (Ubiquitous) computing

II. Distributed system design characteristics

A. Fault Tolerance

1. System fault tolerance models
2. Networking fault tolerance model

B. Security

1. Network Security
2. Distributed System Security

C. Scalability
D. Adaptability

III. Distributed programming

A. Programming models

1. Communication models
2. Distribution models
3. Mobile code models

B. Runtime System Support
C. Performance analysis

III. Web infrastructure

A. Performance analysis framework
B. Design and Implementation of scalable Web Servers
C. Analysis of web caches and caching schemes
D. Examples: Apache Web Server and Squid Web Cache

IV. Peer to Peer infrastructure

A. Design of directory services
B. Search techniques
C. Scalability, Fault tolerance and Security
D. Applications
D. Examples: Microsoft's .NET and Sun's JXTA initiatives

V. Ubiquitous computing

A. Operating systems for small devices
B. Middleware services for network of sensors
C. Programming models
D. Applications

VI. Middleware

A. Middleware models

1. Communication Middleware
2. Object-based Middleware
3. Component-based Middleware

B. Adaptive and Reflective middleware
C. Quality of Service
D. Examples: CORBA, COM and J2SE

Textbook: None

Readings: Selected papers from the literature

ABET Category Content:
Engineering Science: 1 unit
Engineering Design: 2 units

Laboratory:
Substantial laboratory work involves implementation and analysis of advanced Internet infrastructures.

Engineering Design Content:
Lectures discuss design issues and their trade offs in building scalable, fault tolerant, secure and dynamic distributed system infrastructures. The presentations, papers, and projects focus on the state of the art of these technologies. Typical examples of these activities include: designing and implementing Internet infrastructure services such as Web servers and caches; analyzing behavior of these services for scalability, usability, and fault-tolerance; designing and implementing distributed programming language; and developing applications for P2P and Ubiquitous devices.

Instructor: R. Pandey

Prepared By: R. Pandey (Oct 2001)

10/01