Добавлены разделы о ВПК, алгоритме, ИИ

This commit is contained in:
2026-05-28 16:25:59 +03:00
parent 3673c4aa8d
commit 5c40687011
17 changed files with 1552840 additions and 42 deletions

View File

@@ -2,8 +2,7 @@
' Увеличенный растр для вставки в отчёт (Word / печать)
scale 3
title
Wallenc — старт приложения и параллельная синхронизация
(проектное решение; фоновая синхронизация к реализации)
Wallenc — старт приложения и фоновая синхронизация
end title
skinparam defaultFontName "DejaVu Sans"
@@ -45,32 +44,18 @@ partition "**Основной поток (UI)**" {
fork
partition "**Фон: синхронизация (по таймеру)**" #E8F5E9 {
note right
**Проектная механика (не реализовано в коде)**
• Таймер / WorkManager Android
Таблица в Room: UUID **storage_id**
для очереди синхронизации
Для каждого storage — **история коммитов**
(аналог git): дерево/цепочка снимков
• Сервис: сравнение коммитов
локально vs удалённо → вычисление diff
• Применение изменений →
**одинаковое зашифрованное содержимое**
на клиенте и у провайдера
(ключи на сервер не передаются)
**Реализовано:** StorageSyncEngine,
журнал изменений по путям, merge ревизий
Room: DbStorageSyncGroup (UUID группы)
• WorkManager / debounce — запуск sync
Ключи шифрования провайдеру не передаются
Подробный алгоритм — гл. 4, рис. 35
end note
:По срабатыванию таймера:
запуск **SyncService** / Worker;
:Чтение из БД списка
**UUID storage** из очереди;
while (Есть необработанный UUID?) is (да)
:Загрузить историю **коммитов**
для этого Storage (локально + у провайдера);
:Найти расхождения
(common ancestor / merge);
:Свести содержимое
к единому состоянию;
:Обновить очередь /
метаданные синхронизации;
:Запуск sync (Worker / debounce);
:StorageSyncEngine.syncAllGroups;
while (Есть группа синхронизации?) is (да)
:Слияние журналов → победитель по пути;
:findSourceStorage → applyEntry\nна отстающие Storage;
endwhile (нет)
}
end fork