Добавлены разделы о ВПК, алгоритме, ИИ
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user