![]() |
CEG 830: Distributed Computing SystemsPrabhaker Mateti |
The objective of the course is to continue to familiarize you with key issues in distributed systems beyond what was discussed in CEG 730. Whereas 730 surveyed all the important principles of distributed computing, 830 focuses on a select few topics in the lectures, and expects you to focus on one topic of your choice. Typically, these have been development project-oriented, but other choices are possible.
Expect to do considerable reading in the course. You are also expected to have spent significant enough time in visiting the Web sites cited. It is possible that there are a couple of papers too many for the amount of time we have. I will lecture only on the non-survey papers cited below.
Conceptual issues and implementation primitives for distributed systems. Location independent invocation. Remote evaluation. Process migration. Consistent global states. Replication management.
File and Directory servers across a network. Semantics of file sharing. Atomic file updates. Caches and replication. Log-structured file systems. Fault Tolerance. Distributed operating systems. Processor pools. Processor allocation and Load balancing. Security and user authentication. Micro-kernels. PVM, CORBA. Java, Jini, JavaSpaces, and COM/DCOM MapReduce and Hadoop.
Ubiquitous computing, reactive programming. Scalability. Computing grids. Fair threads. Interactive web services. Mobile objects. Networks of Workstations. Using idle workstations. Languages and packages for distributed programming.
There are no exams planned. Nevertheless, I expect you to study all the papers with the same intensity as you would otherwise. If I sense that some of you are not studying the cited materials, I may decide to give the entire class an exam, and readjust the weights.
The ``WhiteBoard-of-730'' project: You will implement it in yet more ways. The second is possibly a group project. E.g., use a few, say 8, machines of the OSIS Lab, setup a cluster, install a research prototype of a distributed computing environment, and do a demo. These contribute 20 + 15 % to the grade. The first one is due in six weeks. The second one must be completed one week before the last day of classes. You are expected to submit a brief write-up along with printed listings, and schedule a demo for both versions.
Choose a topic, study it thoroughly, do some implementation/project work, write a term paper, and present it to the class. This term paper + project contributes 30 + 30%. See the references below for guidance on topic selection.
The term paper (and presentation) must be completed at least one week before the last day of classes. The schedule of dates for the talks have to be agreeable to all (the students and me). The paper should be a unified tutorial followed by a careful critique. The length of your paper may range from a short 5 to a fairly lengthy 15 pages. While good technical writing style is important, what I will be looking for in your term project (and presentation) is incisive analysis and deep understanding of the concepts. The presentation may last any where from 30-minutes to 75 (time permitting). You will be judged, by me and your fellow students, for clarity of presentation and, more importantly, command of the material you studied and implemented, but not for pedagogy or slickness of the `talk.' You may prepare whatever (such as transparencies) to help you present your paper.
The project must be interesting and non-trivial. It should be demonstrated to me and the entire class no later than the last day of classes.
I expect knowledgeable participation in the class room. I do not wish the lectures to become no more than monologs. Feel free to discuss openly, including catching any errors that I may make. I reserve 5% of the total points to a subjective rating by me of your participation.