CSCI.6500 Distributed Computing over the Internet-- Spring 2006

Instructor:  Carlos Varela
Office:  109 Amos Eaton, x6912
Office Hours:  Mo, Th 11:30am-12:30pm; or by appointment
Meeting Place:  Lally 02
Meeting Hours:  Mo, Th 10-11:20am
Home pagehttp://www.cs.rpi.edu/academics/courses/spring06/distr/
WebCT Page


Course Objectives

This course studies theoretical foundations---namely process calculi, actors, join calculus, and mobile ambients---and practical issues in the design of concurrent and distributed programming languages. We compare communication and synchronization aspects in actor-, process-, and object-oriented concurrent programming models.  We review current research on coordination, mobility, naming, security, fault-tolerance, and scalability in the context of distributed computing over the Internet.

Pre-requisites

CSCI.4430 and CSCI.4220, or equivalent, or permission of instructor.  The student should be familiar with at least one high-level programming language and basic network programming concepts. In particular, this course will assume familiarity with Java and programming with TCP/IP sockets. Knowledge of programming language semantics and lambda-calculus would be helpful but is not mandatory.


Course Contents

  1. Models of Concurrent and Distributed Computing
  2. Programming Languages and Frameworks
  3. Research Topics

Tentative Course Syllabus

Date Topic Grade
01/19 Course Overview. Introduction to Distributed Computing over the Internet Part I -- Models/Theory.
01/23 Pi-Calculus - Introduction
01/26 Pi-Calculus - Operational Semantics
01/30 Pi-Calculus - Bisimilarity and Congruence
02/02 Actors - Introduction
02/06 Actors - Operational Semantics
02/09 Actors - Expression Equivalence
02/13 Mobile Ambients
02/16 Join Calculus
02/21 Partial Exam 20%
02/23 Introduction to Distributed Computing over the Internet Part II -- Programming Languages and Frameworks
02/27 Python Objects, Concurrency, python-intro.ppt, 1.py, test_threading.py
03/02 Python Networking and Distributed Computing
-- Programming Assignment 1 Due 03/05, python_dist.ppt
Echo Server Client
Sockets echo_server.py echo_client.py
XML-RPC xmlrpc_echo_server.py xmlrpc_echo_client.py
Python Remote Objects pyro_echo_server.py pyro_echo_client.py
10%
03/06 Oz Concurrency, oz-concurrency.ppt, 1.oz
03/09 Distributed Oz, oz-distributed.ppt, 2.oz -- Programming Assignment 2 Due 03/22 10%
03/20 No lecture
03/23 No lecture
03/27 SALSA Concurrency, salsa-concurrency.ppt, HelloWorld.salsa, Fibonacci.salsa
03/30 SALSA Distribution and Mobility, salsa-wwc.ppt, Migrate.salsa -- Programming Assignment 3 Due 04/09 10%
04/03 Objective CAML, ocaml.pdf
04/06 JOCAML, jocaml.pdf -- Programming Assignment 4 Due 04/19 10%
04/10 Introduction to Distributed Computing over the Internet Part III -- Research Topics  --  Selected Paper Critiques and Presentations by Students 10%
04/13
Travis Desell Machine learning applied to distributed resource management Increasing Application Performance In Virtual Environments Through Run-time Inference and Adaptation
Dan Nugent Actor garbage collection A Survey of Distributed Garbage Collection Techniques
Using Passive Garbage Collection Algorithms for Garbage Collection of Active Objects
Distributed Garbage Collection for Mobile Actor Systems: The Pseudo Root Approach
04/17
Marcus Griep TBA
Jason LaPorte Distributed systems visualization OverView: A Framework for Generic Online Visualization of Distributed Systems
Visualization of Mobile Object Environments
Vincent Lee Distributed data mining/Coordination languages The STL++ Coordination Language: A Base for Implementing Distributed Multi-agent Applications
04/20
Todd Gardner Secure process/ambient/actor models A Calculus for Cryptographic Protocols The Spi Calculus
Secure Safe Ambients
Mobility and Security in Worldwide Computing
Yin Liu Program analysis for information flow JFlow: Practical Mostly-Static Information Flow Control
Language-Based Information-Flow Security
04/24 No lecture
04/27 Final Project Presentations 25%
05/01
Class Participation 5%

Reading Material  -- Part I


Software Links, Papers, and Tutorials -- Part II


Research Papers -- Part III

Students will critique and present selected papers from recent journal and conference publications, including but not limited to: You may also search papers in CiteSeer

Academic Integrity

The Rensselaer Handbook of Student Rights and Responsibilities defines several types of academic dishonesty, all of which are applicable to this class.  Students found in violation of academic dishonesty policies will receive a failing grade for this course.

Please contact the instructor if there is any question about academic (dis)honesty.


Last Updated -- April 3rd, 2006.