Проект представляет собой клиент-серверное приложение, предназначенное для управления коллекцией объектов 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.javaJWTService.javaUserTokenPolice.javaUsersHandler.java
- Протокол: UDP.
- Клиентская часть:
ClientSendToServer– отправка команд.
- Серверная часть:
Receiver– прием команд.
- Команды реализованы по шаблону Command.
- Каждая операция над коллекцией инкапсулирована в отдельный класс.