The University of Western Ontario
Department of Computer Science

CS9868b Internet Algorithmics

2011

Instructor

Roberto Solis-Oba
Office: MC 417
Email: solis@csd.uwo.ca

Office hours: Monday and Thursday from 3:00 pm to 4:30 pm.
Course Description

Outline.

Projects

Topics

Organization of your report

Presentations: April 18-21

Assignments

Assignment 1. Due date: February 2 during class.
Assignment 2. Due date: March 2 during class.
Assignment 3. Due date: April 6 during class.

      Chat server and chat client in C
cnaiapi library. Computer Networks and Internets API Library (Written by Michael H. Evangelista)
Cnaiapi library documentation
readln auxiliary library
cnaiapi.h
compile script
chat server
chat client

To compile the chat client and chat server, place all above files in the same directory, type
    compile chatclient
to compile the chat client, and type
    compile chatserver
to compile the chat server. To run the server type
    chatserver portnumber,
where portnumber is the port number that you want to use for the server. To run the client type
    chatclient serveraddress portnumber,
where serveraddress is the symbolic address of the machine running the chat server, and portnumber is the port number selected by the chat server. The chat server must be started first.

      Chat server and chat client in Java
ChatClient.java
ChatServer.java

To compile the programs type
    java ChatClient.java ChatServer.java.
To run the chat server type
    java ChatServer portnumber.
To run the client type
    java ChatClient servernumber portnumber,
where serveraddress is the symbolic address of the machine running the chat server, and portnumber is the port number selected by the chat server. The chat server must be started first.

Marks

You can see your marks using WebCT.

Simulator for Synchronous Distributed Systems

Simulator (simulator.jar)
How to use the simulator
Leader election algorithm (LeaderElection.java)
LeaderElection.class
Input file for the leader election algorithm
Broadcasting algorithm (Broadcast.java)
Broadcast.class
Input file for the broadcasting algorithm
runsim script (for UNIX)
runsim script (for Windows)
compile java file (for UNIX)
compile java file (for Windows)
Papers and notes

Paper about name servers

Lecture notes on distributed algorithms by Hagit Attiya.
Paper about consistent hashing
Paper about Pastry.
Paper describing the architecture of a web crawler

Paper describing PageRank
Paper about the structure of the Web Graph
Paper describing the greedy dual size algorithm