Project 2 for the course of Sistemas Distribuídos (Distributed Systems) at Universidade de Aveiro.
To compile, build, deploy and run the project, run the following commands in the root directory of the project:
$ chmod +x *.sh
$ ./random_machines.sh; ./build.sh global; ./run_global.sh
or
$ chmod +x *.sh
$ ./local_machines.sh; ./build.sh local; ./run_local.sh
The deployment configuration is in the config
file in the root directory of the project. Use this to change the machine and ports used by the servers and clients.
Put the password to access the machines in the password
file in the root directory of the project.
If you want to deploy the project locally, don't forget to change the machine names in the config
file to localhost
(can be done automatically by running ./local_machines.sh
in the root directory of the project).
To build the project, run the following commands in the root directory of the project:
$ chmod +x build.sh build_server.sh build_client.sh deploy_local.sh deploy_global.sh
$ ./build.sh <local | global>
This file compiles, builds and deploys the project. The argument can be either local
or global
, depending on the type of deployment you want to do.
To run the project, run the following commands in the root directory of the project:
$ chmod +x run_global.sh
$ ./run_global.sh
or
$ chmod +x run_local.sh run_server.sh run_client.sh
$ ./run_local.sh
To clean the project, run the following commands in the root directory of the project:
$ chmod +x clean.sh
$ ./clean.sh
In the root directory of the project, there are some auxiliary scripts that are used by the previous scripts and might not work properly (or achieve any desired goal) if run directly. These scripts are: build_server.sh
, build_client.sh
, deploy_global.sh
, deploy_local.sh
, run_server.sh
and run_client.sh
.
To deploy and remotely run the project, you need xterm and sshpass. To install them, run the following commands:
$ sudo apt-get install xterm
$ sudo apt-get install sshpass
- Diogo Correia (90327): diogo.correia99@ua.pt
- Lara Rodrigues (93427): laravieirarodrigues@ua.pt
- sd-project1: Pure concurrent implementation of the problem running in a single platform.
- sd-project2: Distributed implementation of the problem, based on message passing, running in multiple platforms.
- sd-project3: Distributed implementation of the problem, based on method invocation on remote objects, running in multiple platforms.