Highly Dependable Systems 2021-2022, 2nd semester, 1st period project.
Group 35
The overall system is composed of multiple modules:
- client: the module that is responsible for the client API and the user interface.
- server: the module that is responsible for the server infrastructure.
- contract: the module that defines the contract between the client and the server, i.e. the remote procedures supported by the system.
Java Developer Kit 17 is required running on Linux, Windows or Mac.
Maven 3 is also required.
To confirm that you have them installed, open a terminal and type:
javac -version
mvn -versionTo compile and install all modules:
mvn clean install -DskipTestsNote: Alternatively, you can compile and install each module separately, by using the -pl option:
mvn clean install -DskipTests -pl <module>Note: To use a different f value from the default value of 1, you must run the script cert_gen.sh to
generate the certificates for the necessary number of replicas.
You must also add -Df=<f> to the end of all the following exec:java commands.
To run the server with the default configuration, open a terminal and type:
mvn exec:java -pl serverYou may specify the port number to use, by using the -Dsvport=<port> option.
To run multiple replicas of the server, you must use the -Dn=<number> option. Where number must be a number between **
0 and 3f**.
Then to run a client, open a terminal and type:
mvn exec:java -pl clientYou may specify the server address and port number to use, by using the -Dsvhost=<hostname> and -Dsvport=<port>
options.
Note: If the intended hostname contains a . (dot), you must use quotes around it (ex: -Dsvhost="127.0.0.1").
To run the included demo, you must first run the server replicas, and then open a terminal and type:
mvn exec:java -pl client -Dinputfile="demo.txt"