Обсуждение:Верхнеуровневая архитектура
Версия 1
Создал юз-кейс для централизованного варианта (когда все данные проходят через управляющую подсистему. Схему залил целиком ту, что мы нарисовали (с модификациями для читабельности). Ниже мои мысли по этой схеме.
По HTTPS.
Пользователь должен проходить аутентификацию и авторизацию на сервере - вводить логин/пароль. Процедуру авторизации/аутентификации придется все-равно писать самостоятельно. Предполагалось использовать следующий протокол.
Регистрация:
- Пользователь задает логин
- Пользователь задает ключ аутентификации (либо вычисляет его как хеш от пароля).
- Пользователь, используя известный открытый ключ сервера, шифрует логин/ключ и передает их серверу, сервер их сохраняет.
Аутентификация:
- Клиент генерирует случайную байтовую последовательность .
- Клиент вычисляет шифр .
- Клиент в открытом виде посылает и свой логин на сервер.
- Сервер, после получения запроса с и логином от клиента, вычисляет .
- Сервер генерирует случайное
- Сервер вычисляет .
- Сервер посылает и клиенту по открытому каналу.
- Клиент сравнивает и полученный , и, если имеется равенство, аутентификация сервера пройдена.
- Клиент вычисляет .
- Клиент посылает в открытом виде на сервер.
- Сервер проверяет равенство и и, если равенство истинно, аутентификация клиента пройдена.
При таком протоколе мы проводим аутентификацию и клиента, и сервера за раз. Алгоритмы шифрования при аутентификации используются симметричные, следовательно имеется большая производительность, по сравнению с асимметричными шифрами SSL. Единственное место, где возможно проведение атаки "человек-в-середине" и подмена сервера - регистрация, а именно не подтверждается подлинность открытого ключа сервера.
Имеет ли смысл использовать SSL и HTTPS?
--Андрей Чусов (обсуждение) 18:35, 7 июля 2015 (UTC)
По СУБД
Готовым (и поставляемым) продуктом будет сервер со всеми сервисными подсистемами. Таким образом мы будет поставлять и СУБД - MariaDB. Вопрос с лицензированием - не придется ли открывать код?
Еще раз: назначение СУБД2 - бэкапы? Кто будет удалять ненужные проекты, если они хранятся на сервере?
--Андрей Чусов (обсуждение) 18:35, 7 июля 2015 (UTC)
Use-case
Часть юз-кейса с назначением физических параметров модели выглядит немного избыточной. Предлагаю:
- Пользователь обращается к управляющей подсистеме с запросом на ассоциацию данных из СУБД1 с компонентами геометрической модели для выбранной предметной области.
- Управляющая система считывает идентификаторы данных с СУБД2 и ассоциирует их с компонентами модели
- Управляющая подсистема делегирует запрос подсистеме предметной области.
- Подсистема предметной области считывает данные из СУБД напрямую по адресу, предоставленному управляющей подсистемой.
- Подсистема предметной области задает ассоциацию данных с компонентами геометрической модели.
--Андрей Чусов (обсуждение) 18:35, 7 июля 2015 (UTC)