Проект представляет собой клиент-серверное приложение, предназначенное для управления коллекцией объектов Person
. В качестве системы постоянного хранения используется база данных PostgreSQL с доступом через Hibernate ORM. Взаимодействие клиента с сервером реализовано посредством командной строки и сокетов дейтаграмм (UDP). Приложение поддерживает многопоточность, аутентификацию и авторизацию пользователей с использованием токенов JWT и хэширования паролей.
- Сервер обрабатывает параллельные клиентские запросы.
- Используемые механизмы:
- Кэшированный пул потоков для чтения запросов.
- Кэшированный пул потоков для обработки логики.
ForkJoinPool
для отправки ответов.
- Реализация:
Server.java
(экземплярыExecutorService
).
- Хранение данных: PostgreSQL.
- ORM: Hibernate.
- Конфигурационные файлы:
hibernate.cfg.xml
– настройки Hibernate.Server.java
– параметры подключения к БД.- DAO-классы:
Server/src/main/java/Groupld/Server/collectionmanagers/DAO
.
- Хэширование паролей: алгоритм SHA-512.
- Авторизация: JWT-токены.
- Основные модули:
SQLUserManager.java
JWTService.java
UserTokenPolice.java
UsersHandler.java
- Протокол: UDP.
- Клиентская часть:
ClientSendToServer
– отправка команд.
- Серверная часть:
Receiver
– прием команд.
- Команды реализованы по шаблону Command.
- Каждая операция над коллекцией инкапсулирована в отдельный класс.