Lab 1: Construct a bulletin board system using Ensemble

Purpose

Through working on this project, students would be familiar with the fundamental ideas and protocols that are discussed in the course. The task is to create a bulletin board system on the top of an existing distributed system infrastructure called Ensemble. The bulletin board supports posting and reading.

System requirements

Try to make ensemble provide you with as much as possible before implementing things on your own.

Documentation and examples

The Ensemble tutorial and reference manual are good sources of information together with the lecture slides on Ensemble and the first lab: ppt, pdf.

Students are recommended to look at this Talk application written in java for an example of a client.

How to run and compile

To run an ensemble client, the ensembled server needs to be running on the current computer. The client are usually running on the remoteX.student.chalmers.se machines (X in {1,2,3,4,5}). If you are running on another machine that does not have the ensembled server running start it by executing /chalmers/groups/cse-ds2/ensemble/ensembled

You need to set the environmental variable CLASSPATH to /chalmers/groups/cse-ds2/javapackages:. to compile and run java programs that use ensemble. You also need to set the environmental variable ENS_CONFIG_FILE to /chalmers/groups/cse-ds2/ensemble/ensembled.conf

In bash you can do these two by executing:
export CLASSPATH="/chalmers/groups/cse-ds2/javapackages:."
export ENS_CONFIG_FILE="/chalmers/groups/cse-ds2/ensemble/ensembled.conf"

Lab groups

You are supposed to do this in groups of two.

Submission

Deadline: 7th of February 2011

The labs will be reported using the Fire system. It can be found at: https://fire.cs.chalmers.se:8039/cgi/Fire-ds2. Make sure that both members of the group are added before submitting.

You are supposed to submit one tar.gz archive (usage: tar cvfz somename.tar.gz file1 file2 ...) that contains the following:
  1. A working program that satisfies the aforementioned requirements, with source code.
  2. A report that shows: