Implementation of Token Ring and Ricart agrawala algorithms in Ruby
Ruby Shell
Latest commit b5c00ed May 6, 2014 @ElvinEfendi copy the project
Permalink
Failed to load latest commit information.
LICENSE
README.md
appointment.rb
appointment_handler.rb
appointments.csv
appointments_controller.rb
calendar_network.rb
calendar_network_handler.rb
config.yml
constants.rb
http_pass
node.rb
readme
ricart_agrawala.rb
ricart_agrawala_request.rb
start.sh
token_server.rb
xml_rpc_client.rb

README.md

Coursework: Distributed calendar app

In this project I've implemented simple distributed calendar network in order to gain practical knowledge on Distributed Systems, XML RPC, Token Ring and Ricart Agrawala algorithms. Another clone of the project is written in Java and these two applications can be run in one calendar network at the same time.

Instructions to run the application:

  • Edit and set configuration in config.yml

  • To start a new network run calendar_network.rb. Note that in this mode you will still not be able to add or modify appointments.

  • To fully use the distributed application calendar_network.rb using host and port of one of the online node as argument

  • If calendar_network program is terminated your node will automatically be logged out from the network

  • To do operations on appointments run the client appointments_controller.rb. If you are not running client your node can still be online and serving to the other nodes in the network

  • Set your preferred mutual exclusion algorithm in config.yml: me_algorithm: token_ring or me_algorithm: ricart_agrawala. REQUIREMENT: every node in the same network has to use same me_algorithm