Distributed Systems Project 2021/2022
Group G25
In all source files (namely in the groupIds of the POMs), replace GXX with your group identifier. The group identifier consists of a G and the group number - always two digits. This change is important for code dependency management, to ensure your code runs using the correct components and not someone else's.
Number | Name | User | |
---|---|---|---|
95565 | Duarte Almeida | https://github.com/Duarte-Almeida | mailto:[email protected] |
95587 | Gustavo Aguiar | https://github.com/ImGugz | mailto:[email protected] |
95680 | Tomás Tavares | https://github.com/Th0mz | mailto:[email protected] |
The overall system is made up of several modules. The main server is the ClassServer. The clients are the Student, the Professor and the Admin. The definition of messages and services is in the Contract. The future naming server is the NamingServer.
See the Project Statement or a complete domain and system description.
The Project is configured with Java 17 (which is only compatible with Maven >= 3.8), but if you want to use Java 11 you can too, just downgrade the version in the POMs.
To confirm that you have them installed and which versions they are, run in the terminal:
javac -version
mvn -version
To compile and install all modules (in the project root directory):
mvn clean install
To run all modules, run in each directory:
(-debug is an optional debug flag, it is not a required argument)
- ~/A25-Turmas/NamingServer:
mvn exec:java -Dexec.args="<hostname> 5000 [-debug]"
- ~/A25-Turmas/ClassServer:
primary server :
----------------
mvn exec:java -Dexec.args="<hostname> <port> P [-debug]"
secondary server :
------------------
mvn exec:java -Dexec.args="<hostname> <port> S [-debug]"
- ~/A25-Turmas/Admin:
mvn exec:java -Dexec.args="[-debug]"
- ~/A25-Turmas/Professor:
mvn exec:java -Dexec.args="[-debug]"
- ~/A25-Turmas/Student:
mvn exec:java -Dexec.args="<Student ID> <Student name> [-debug]"