Plan-X

Seminar: Issues in distributed and mobile data and software

Fall 2002

Messages

Date posted
Title
Body
17/12/2002
Last session with muffins The last session of our seminar is Wednesday, December 18th, featuring: the wrap-up from last time (9-10, questions and answers re lecture 14); a discussion of how state-of-the-art software platforms address some of the issues we have covered in the seminar and how they support the construction of open distributed and mobile applications (10-11); a (written) evaluation cum (oral) discussion of the seminar (11-12); and, throughout it all, Henning's famous muffins and coffee ad libitum (tea anyone?), which should make it hard to stay away... FH.
12/12/2002
Questions (lecture 14) The questions for lecture 14 are now available here. FH/HN.
5/12/2002
Questions (lecture 13) The questions for lecture 13 are now available here. FH.
28/11/2002
Questions (lecture 12) The questions for lecture 12 are now available here. FH.
22/11/2002
Questions (lecture 11) The questions for lecture 11 are now available here. HN/FH.
15/11/2002
Questions (lecture 10) The questions for lecture 10 are now available here. HN.
6/11/2002
Slides and questions The slides and questions for lecture 8, and the questions for lecture 7, are now available. HN.
21/10/2002
Answers to questions Please feel free to submit answers to questions for previous lectures, even if they have already been discussed in class. I will try to give back comments as soon as possible. HN.
21/10/2002
Hughes paper The paper by Hughes is, as mentioned on the bibliography page, not available online. However, a hard copy is available from the DIKU Library (LNCS 201, pages 256-272) or from my office. HN.
13/10/2002
Questions (lecture 6) The questions for lecture 6 are now available here. HN.
4/10/2002
Questions (lecture 5) The questions for lecture 5 are now available here. Please note that there are two additional questions by Fritz. HN.
1/10/2002
Questions (lecture 4) Please remember that the questions for lecture 4 are on the last page of part II of Mads' and Niels' slides (see lecture plan below). FH
Update (HN): they can now also be found here and in the exercises section.
24/9/2002
Mailing list and newsgroup There is established a mailing list, plan10 (at diku.dk), for all participants in our seminar. If you haven't received a message about having being added to it, you should do so yourself: Behind DIKU's firewall, go to http://hugin.diku.dk/mailman/listinfo/plan10. Outside DIKU's firewall, send a message to plan10-request (at diku.dk), with the subject "Subscribe", without quotes (or "Help" to receive more detailed instructions). The mailing list is gatewayed with newsgroup diku.plan10 (news server news.diku.dk:119, only accessible inside DIKU's firewall), which means everything mailed to the mailing list shows up on the newsgroup, and everything posted to the newsgroup is sent to the mailing list. You can thus elect to use email or a news reader --- or both. (If you want to use the newsgroup alone, you have to unsubscribe to the mailing list -- or not subscribe to it in the first place. See instructions in your welcome message for how to unsubscribe.) FH
18/9/2002
Questions (lecture 3)
Questions for lecture 3 by Christoffer, with some supplementary questions by Henning and myself are posted.  Note: They include a programming exercise where you are asked to implement (simplified) versions of (simulations of) the original Unix file systems and a log-structured file system.  You may do these by yourself, but you are strongly encouraged to work on these programming exercises in groups of 2-4 persons.  We expect to build on top of this programming exercise next week in connection with distributed file systems.  Important: Deadline for answers to the questions, excluding the programming exercise, is Tuesday, September 24th, 10:00.  Deadline for the programming exercise is Monday, September 30th, 15:00.  For both, send your answers to Henning. Satisfactory answers to (a), (b), (c) of the programming exercise constitute a satisfactory answer to the programming exercise part of the questions. Satisfactory implementation of (d) on top of that constitutes a good answer, and (e) is strictly voluntary. FH
18/9/2002
URL
You can now access the course home through http://www.plan-x.org. FH
16/9/2002
Voluntary exercises
I have posted a rather lengthy list of voluntary questions on lecture no. 1, which we'll discuss Wednesday, Sep. 18, 9:15-10:00. Please take a look at them and think about them in preparation for that.  
14/9/2002 No exercises Unfortunately, there will be no exercises related to the XML Store presentation (Sep 11). Please read the thesis anyway. The slides for the presentation are available below (by clicking on the presentation title). HN
5/9/2002 Lecture plan updated I updated the lecture plan and the list of students. Please check that I assigned you a correct slot (i.e,. one that you wished for) and e-mail me if something went wrong. HN

Description

Title:
Seminar on Issues in Distributed and Mobile Data and Software
Teachers:
Fritz Henglein and Henning Niss
Course ID:
224
Time and place:
Lectures and exercises: Wednesdays, 9:15-12:00, DIKU, room N037
Format:
Weekly 3 hour sessions, starting with 1-hour wrap-up (exercises) from previous session (first session: course organization), followed by 2-hour presentation on select topic, based on 1 main article, plus a number of supplementary articles. Presentations include preparation of exercises (paper and/or programming) for the participants.

First session: Wednesday, September 4th, 9:15-12:00, room TBA.

Credits:
7.5 ECTS points (1/4 full-time semester credit), either pass/fail or grade on 13-scale; possibility of continuation projects (7.5 or 15 ECTS points per person, or for Master's theses) in the Spring 2003 semester.  Pass/fail is based on at least one paper presentation, plus active participation throughout the seminar, including select solutions of paper and programming exercises.  13-scale grade is based on an oral exam in January 2003 (exact date/time TBA), with an external evaluator (censor).  To qualify for participation in the oral exam, active participation during the seminar is required.
Goals:
In this seminar we study fundamental computer science (domain independent) issues in the design and implementation of mobile and distributed software systems, with an emphasis on data management and programming.

This seminar is intended to:

  • present you with fundamental problems that present and future distributed and mobile systems face;
  • explore known techniques for addressing those problems;
  • provide a survey of state-of-the-art systems embodying those techniques, including select distributed file systems and peer-to-peer based systems; and
  • shed fundamental insights into the interplay between programming models and distributed and mobile systems techniques.
This seminar is a precursor to and desirable prerequisite for a cluster of projects intended at developing the components of a software platform supporting development of distributed and mobile applications based on a value-oriented programming model as part of the Plan-X research project.  The seminar, however, is in no way tied to that and should be of independent interest as an introduction into the state-of-the-art of timely topics such as distributed file systems, peer-to-peer networking and mobile code.
Topics:
Below is a list of topics for the seminar. Note that this is not a course schedule nor a schedule of presentations.
  • Fundamental issues for distributed and mobile systems:
    • Programming models for distributed and mobile applications
    • Caching, coalescing, memoization
    • Synchronous and asynchronous remote access (incl. time-outs)
    • Concurrency control (incl. control and limitation of updates)
    • Replication (for availability, fault tolerance, efficiency; incl. back-up)
    • Synchronization and merging of data (after multiple independent updates)
    • Garbage collection (distributed)
    • Naming, addressing and routing (incl. name services)
    • Security (incl. authentication, privacy, resource control)
    • software and data versioning
  • Systems/software architecture:
    • Distributed file systems and peer-to-peer networking;  e.g., FastTrack (Kazaa), Gnutella, Napster, OceanStore/Tapestry, CFS etc.
  • Mobile software:
    • programming language technology for mobile code (type systems, proof-carrying code, static resource analysis)
    • cryptographic techniques for authenticity and privacy
    • programming languages: Transcript, Obliq, Actors, Java applets etc.
    NB: This part will only receive superficial treatment due to limitations on time; a more thorough treatment may have to be moved to a future course.
  • Desiderata for a software platform:

    Given the fundamental issues, present techniques and experience with current systems, we take a stab (and no more) at discussing the following issues:

    • Which services (incl. interfaces) should a "software platform" ideally provide to support programming applications that "work" in a distributed and mobile setting such that the programming can focus on the application logic instead of being encumbered with solving the "generic" problems of dealing with distribution and mobility (migration) of data and software?
    • What is a good software architecture for such a software platform, both in terms of its component structure and configurability, and in terms of supporting "good" software design patterns for distributed and/or mobile systems?
    • How do existing software platforms such as J2EE (Java 2 Enterprise Edition), .NET (Microsoft's distributed webservices platform), Jini (Java-based platfrom aimed at ad-hoc networking of devices), CORBA (Common Object Request Broker Architecture) address and solve the fundamental issues?

    NB: This part may be moved to the start of the follow-up project cluster in Spring 2003.

Course material:
Will be posted on the course home page.
Prerequisites:
Mandatory prerequisites: Bachelor's degree in computer science; or corresponding introductions to:
  • programming and programming languages,
  • algorithms and data structures,
  • operating systems and networks,
  • concurrency.
Desirable prerequisites (not necessary):
  • Introduction to distributed systems; e.g. at DIKU (Intro. to parallel programming and distributed systems), at DTU (Distribuerede systemer, course 02222), IT-C (Distribuerede systemer; course DS or DSY), or at RUC (Distribuerede systemer);
  • Introduction to programming language semantics; e.g. at DIKU (DAT2V Programming Languages and/or Introduction to semantics).
Web page (URL):
http://www.plan-x.org/
Additional remarks:
The course is held in English, unless all the participants are fluent in Danish and agree on switching to Danish.

People

Teachers

Teachers
Name Initials Office Telephone E-mail
Fritz Henglein FH N203 35 32 14 63 henglein@diku.dk
Henning Niss HN N110 35 32 14 06 hniss@diku.dk

Students

Students
Name Initials E-mail
Arne Glenstrup AG panic
Casper Gjerris CG
Christian Ulrik Søttrup CUS chrulle
Christoffer H. Fredriksen CHF
Claus Jensen CJ surf
Daniel Brixen DB daniel
David Nykjær Jørgensen DNJ davidn
Dina Friis DF dina
Henrik Skovby HS skovby
Jacob Jensen JJ jacobjj
Jakob Gregor Pedersen JGP bbrother
Lars Georg Techau Jøregensen LGTJ larsj
Mads Pultz Hansen MPH mpultz
Mikkel Fischer Christensen MFC halte
Niels Ebsen Boldt NEB boldt
Thomas Ambus TA

Lectures

The following is the plan of presentations for the semester. Click on a subject title to go the corresponding bibliography section.
Presentations
No. Date Teacher Contents Main literature Slides
1 Sep. 4 FH Introduction to issues H, [WWWK94]  
2 Sep. 11 HN XML Store / Value-oriented programming and Distribution [TBF2002] .pdf
3 Sep. 18 CHF File systems (UNIX and log-structured file systems) [MJLF84,RO92] .html
4 Sep. 25 MPH NEB Distributed file systems 1 (client/server systems) [LS90,Sat+90] I: .pdf
II: .pdf/.ppt
5 Oct. 2 CG DNJ Distributed file systems 2 (basic peer-to-peer systems) [Ora2000, Napster, Gnutella, Rit2001, CSWH2001] I: .pdf/.ppt
II: .pdf/.ppt
6 Oct. 9 TA Distributed garbage collection [PS95] .pdf
  Oct. 16 Fall break
7 Oct. 23 JGP CUS Distributed file systems 3 (naming/routing) [SMKKB2001,ZKJ2001] .pdf/.ppt
8 Oct. 30 JJ MFC Distributed file systems 4 (peer-to-peer file systems) [DKKMS2001,Dab2001,Kub-al2000] .pdf
9 Nov 6 FH Replication [CDK2001, Chapter 14] .pdf/.ppt
10 Nov. 13 DB LGTJ Data merging [BP98] I: .pdf
II: .pdf
11 Nov. 20 AG Concurrency control [Her91] .ppt/.html/.pdf
12 Nov. 27 CJ Programming languages [BST89,Whi96] .ppt/.pdf
13 Dec. 4 DF Mobile programming languages 1 (Actors) [AMST97] .ps/.pdf
14 Dec. 11 HS Mobile programming languages 2 (Obliq) [Car95] .ppt/.pdf
15 Dec. 18   Discussion: Current software platforms for distributed information systems    

Exercises

Exercises associated with a particular presentation will be posted shortly after the presentation. (Whoever is giving the presentation must send the exercises in plain text or HTML format to Henning Niss for subsequent posting here. Please do this before you hold your presentation or immediately after.)
No.
Description
1 (Sep 4) No exercises
2 (Sep 11) Question set no. 2
3 (Sep. 18)
Question set no. 3
4 (Sep. 25)
Question set no. 4
5 (Oct. 2)
Question set no. 5
6 (Oct. 9)
Question set no. 6
7 (Oct. 23)
Question set no. 7
8 (Oct. 30)
Question set no. 8
9 (Nov. 6)
Question set no. 9
10 (Nov. 13)
Question set no. 10
11 (Nov. 20)
Question set no. 11
12 (Nov. 27)
Question set no. 12
13 (Dec. 4)
Question set no. 13
14 (Dec. 11)
Question set no. 14

An oral exam

An oral exam will be held in January 2003 for those participants who would like to obtain a grade on the Danish "13-scale". The exam will be conducted by the course teachers and an external evaluator (censor).
Exam schedule
Date Time Place Student Pensum (Reading list)

Literature

All literature have been moved to a separate page to allow me to make a more comprehensive bibliography while not cluttering the main page. Let me know if there are any difficulties with the new setup. HN.

Resources

The Java Software Development Kit (Java SDK, J2SE 1.4) installed on the DIKU pc's may be used for programming exercises and experiments. Other programming platforms and languages may be used at your liberty, e.g., O'Caml. Indeed you are encouraged to try different implementation platforms so that we can obtain practical experiences in class from the use of a variety of programming languages, development environments and library packages. 

Odds'n'ends

Odds and ends, snippets of interesting information that relate to the topics covered in the class in one way or the other will be posted here. (Send a one sentence description and a link to Henning Niss for posting.) 

Last updated: Dec 9, 2002 (hniss)