Author: lsh

DAT3 Project Proposals (Fall 2008) (download) (slides)
#1 "distributed group work environment"
We are envisaging a possibility of carrying out group work in an on-line manner. Rather than being just an individual computer, here a "group member" can actually be a networked computing entity, e.g., a PC, a laptop, a PDA, a mobile phone, and so on.
The working groups are subject to the following design constraints:
- dynamically resizable, i.e., group members can join or exit while the group is working.
- self-coordinated or self-managed, i.e., there is no central administration node.
- autonomous and independent, e.g., there are no accessible traditional file server, mail server or messenger server. Functionalities of these servers are distributed among the group nodes.
To facilitate efficient group work, you are supposed to develop a distributed group work environment which features:
- versatile group communication, e.g., by providing instant messaging, group mail, distributed calendar/agenda, whiteboard group discussion, etc.
- active backend file replication, e.g., whenever a host's data file changes, that file will be automatically replicated to some other hosts for backup purpose.
- capability of distributed coordination, e.g., to elect a "leader" host which will be assigned some special responsibilities such as initiating a meeting or making some announcements.
This project will cover the topics of e.g.,
- interprocess communication, group comminication,
- replication, consistency, distributed file systems,
- distributed coordination and consensus, peer-to-peer systems.
#2 "distributed server for on-line games"
On-line multi-player games in many respects can be thought of as distributed systems. They implement some distributed system concepts such as inter-process communication, coordination, agreement, and distributed transactions. However, many of them are still using the centralized game server architectures. While this helps to ensure consistency, sometimes the bursting heavy network traffic at the server side may lead to unbearable network latency, or "unable to get connected" or "connection lost" problems.
With a distributed server approach,
- the long latency problem can be solved,
- you can possibly save a monthly game subscription fee,
- you can choose to design and implement your own game strategies, and
- you can hopefully realize "playing games anytime anywhere" (e.g. via blueteeth connections).
Nowadays there are many open-source multi-player games (e.g., UFO: Alien Invasion), or open-source game clients (e.g., Second Life), or open source game middlewares (e.g. GASP). This provides good starting points for us to distribute or to move the server functionalities/responsibilities to those participating clients. Since the game clients constitute a volatile rather than stable client set during the game activities, this brings about the problems of how to ascertain the global state of the game world, how to distribute and replicate the game user data, how to carry out synchronization and concurrent access control, how to implement coordination, and how to handle fault-tolerance.
#3 "on-line auctions"
Traditional automatic bidding system such as that of eBay operates in browser/server mode. The user as an employer can publish and invite tenders for her items on the web. The user as a buyer can bid for the items offered by the employers. During the bidding session all relevant information are collected by the server. Based on these information the server makes the comparisons, the final decisions, and the one-by-one notifications to the buyers.
Despite the many advantages of traditional browser/server bidding such as a large variety of goods, there are still some disadvantages. One is that in traditional browser/server systems you are usually required to be registered as an affiliated member by providing credit card information. Thus you cannot acquire or abandon a membership very freely and easily. Another is that traditional browser/server bidding systems may charge a processing fee, such as the insertion fee and the final value fee. Still another is that in traditional browser/server system, successful transactions heavily rely on the proper functioning of the bidding system at the server side.
To overcome the aforementioned disadvantages, we propose to use a distributed peer-to-peer real-time on-line bidding system. By 'distributed' we mean there is no central administrative authority that makes the comparisons, decisions, and one-by-one notifications. By 'peer-to-peer' we mean that each participant has the same privilege, obligation, and responsibility in the bidding session. By 'real-time' we mean that the updated bidding information can propagate to other nodes in a timely way.
The main objective of this project is to design and implement a sample distributed application. Another emphasis will be laid on the study of distributed algorithms, especially on how distributed consensus can be efficiently achieved.