Sei sulla pagina 1di 5

Distributed Computing, Project Ideas

BIT-10

Dr. Hamid Mukhtar, DoC, SEECS

 Project-1: “Service discovery with dynamic attributes”

Service discovery is the ability to know about services available in LAN, etc. One of the desirable features
of service discovery is to be able to do things like print to the printer with the shortest queue. Service
attributes for the printer such as location and memory do not change over time. However, attributes
such as queue length and printing load are dynamic. By dynamic, I mean that the attributes WILL vary
over time and you will capture that.

Requirement: This project requires simulation of at least 2 services of your choice (say printing, a file, a
processor, cafeteria counter, etc.). You need to monitor these services for dynamic changes. A
dashboard needs to be created that will update the user (administrator) about the activities going on. If
there is something wrong, the application should use proper mechanism to notify the user about that
for immediate action.

Also, the request will be made dynamically and not be hard-coded. The analysis of the requested service
and discovery will occur in real-time in simulation. You can use Jini to solve your problem. The location
and properties shall be discovered at run-time.

Resources:

 http://www.artima.com/jini/resources/index.html
 Students can be given a book for Jini

 Project 2: “Replicated File Repository”

Build a service that maintains consistent replicated data across a collection of devices, i.e., given a set of
devices, the user may be interested in keeping them consistent on all of the devices. If a user creates a
file on one device, it should appear with the same contents on all other devices as well. If a file is
changed on one device, it should also be updated on the remaining devices. We assume there is no
problem of concurrency, i.e., a single file is updated on a single device at a time.

Requirement: You will use Jini to pass messages between devices. Initially, the user who wishes to
monitor files and folders needs to identify one folder on a given device and the total devices on which
he needs to synchronize the replicated files. With the help of a user interface, he will be able to monitor
the changes and the current state of each device. If there is an update process going on a device, the
user interface should provide this information.
Resources:

 http://download.oracle.com/javase/tutorial/essential/io/notification.html
 http://www.indiastudychannel.com/resources/61429-Monitoring-Folder-using-Java-
Program.aspx

 Project-3: “P2P document/processing sharing systems”

You must have seen some very popular examples of P2P sharing software like utorrent, Gnutella, Kazaa
and Napster, etc.

Requirement: You are required to simulate a P2P sharing network, where the sharing includes two
things. Either one of the processes can ask for support in processing, where other “known” processes
have that capability in them, else it can ask for a particular file (let be a text-file). Now for these parts
you will do the following things.

 Check the response time and current workload conditions. Since we are on a high-speed LAN,
they may be randomly generated by each process. The transfer/processing will start with the
“healthiest process”.
 However, processes will/may die during the simulation, in which case the processing/sharing
shall not be aborted.
 When sharing a file, the file server will be required to tell how many files, it is already sharing. It
may share more than one file at a time and we will randomly decrease the “health” by a certain
amount per sharing. Same will happen in case of processing.

You are free to design the processing problem and the files to be shared (which shall be of enough size
to take a while in transfer). You will be using JXTA technology in this project.

 www.jxta.org
 http://ethesis.nitrkl.ac.in/306/1/10506012%2610506034_thesis.pdf

 Project 4: “Problem Solving using Distributed Shared Memory”

There is one central repository of problems along with some number of processors acting on the
problem. Problems are posted in memory randomly. All the processes which are available will
compete. One/more of them will start working and will make an entry in the queue which will be
(problem ID, <taken>), where taken is a Boolean variable telling whether we would still appreciate more
processes to join in and help. This may happen if for example we are trying to break RSA algorithm and
we need more processes to join in to speed the work.
Once a process is done, it pastes its work at the appropriate place and searches for another problem or
waits if there is none. The manager process prints/shows the solution when the problem is completely
solved using your own protocol.

Please note that request for a well known file available at more than one processes is assumed to be a
processing problem.

Requirment: You are required to make a DSM implementation using Java Spaces, which shall do the
following:

 Implement a producer/consumer problem, where there are several producers and several
consumers
 Show the processing using a graphical user interface.

 Project 5: Simulation of the Telecom network

We all are aware of the functionality of how our mobile phone calls are routed in the network. In this
project you are required to simulate a typical GSM network including its various entities such as VLR,
HLR, BSC, MSC, etc.

Requirement: Your developed software should be distributed, where each network entity should
execute independently. Mobile phones are also to be represented independently. You will then simulate
how a typical mobile phone call is initiated and routed through the network to the destination number.
All the intermediate steps should be followed precisely including roaming of a phone user. All these
should be done using a proper user interface.

 Project 6: Wireless File Sharing Between Computer and Mobile Phone

One problem faced by mobile phone users is the sharing of different files between the phone and other
devices supporting wireless connection. The purpose of this project is to develop a solution for this
particular problem.

Requirement: You will develop a file transfer utility for bidirectional exchange between mobile phone
and a laptop/desktop or another mobile phone. For connection, the devices will be using Wi-Fi. Your
developed tool will have both client and server in the same application.

The development platform could be Android, Symbian or iPhone.

Resources:

 Books related to Android programming can be provided to students


 Project 7: Bulletin Board (BBS) System development

A bulletin board is a place where people can leave public messages, for example, to advertise things to
buy or sell, announce events, or provide information. In this project, you are required to develop such a
system. However, instead of developing a centralized BBS, a non-centralized BBS system is required.

Requirement: The users should be able to do the following:

 Post messages into bulletin board.


 Search for messages
 If a user is logged in, he/she must be notified of a message as soon as it is posted.

As there will be no central server for message storage, the procedure will be as following:

 Each message has a header and a body


 When a user logs into the system, he/she will be able to post a message and search for
messages.
 Each message must be available on at least two devices at a time. As soon as one of these
devices gets down, the messages on the remaining device must immediately be distributed
among other devices.
 It musts be ensured that at a given time, the last 30 posted messages are kept in the network
irrespective of which devices have these messages.
 The user’s search will be propagated to all devices present in the network.

You should use the UPnP technology in this project.

 Project 8: Scheduling of Trains in a Distributed System

Assume that you are requested to develop some software for Pakistan Railways that will be responsible
for displaying the schedule of trains between different stations. It will show the expected arrival time of
trains from its starting station to its destination and showing the intermediate stations. This display of
information should be consistent and unique to each station.

Requirement: A train will be represented by a file and each station will be represented by one instance
of the software. You will need to simulate the movement of the train between different stations. The
time it will take for a train to travel between stations will be proportional to file size and other
parameters of your choice. You should have a pre-defined schedule of each train that will include
starting time and origin and the list of station it will serve. At any given time, only one train will be
served by a station and at each station a train will be waiting for some time.

 Project 9: Multiplayer Word Game


The purpose of this project is to develop a game where users will compete for building different words
starting from a given word. Each new word will be related to the previous one and will different slightly
by a single character. For example, given the starting work try, the user could continue the game as:

Try -> cry -> fry -> dry -> day -> say - > sad …

 Project 10: Twitter or facebook galaxy of persons

Potrebbero piacerti anche