Страница 1 из 1

Исправлена ошибка в Облачном кабинете

СообщениеДобавлено: 28 фев 2013, 15:02
Telnov
Многие пользователи получили доступ к деревьям JSON на сервере. Но первоначально деревья не были оформлены как разделяемый ресурс.

Предположим, две проектные группы А и Б одновременно работают со своими папками в Облачном кабинете.
Что-то меняют, добавляют, удаляют. Потом сохраняют изменения на сервере, тоже почти одновременно, но всё-таки сначала А, потом Б.
Если они работали в одном и том же дереве JSON, актуальной будет только последняя сохраненная копия дерева, то есть копия группы Б.
Изменения, сделанные группой А, будут утеряны. Потому, что дерево сохраняется (перезаписывается на сервере) всегда целиком, а не частями.

Это логическая ошибка софта. Она исправлена в настоящее время.
Способ решения означенной проблемы известен - блокировать разделяемый ресурс на время его редактирования (обновления).

Итак, в Облачном кабинете появились два режима работы с деревьями - режим "просмотр" и режим "редактирование".
Если кто-то из авторизованных клиентов перешел в режим "редактирование", для остальных клиентов данное дерево будет доступно только в режиме "просмотр", пока он не закончит.
Время редактирования деревьев контролируется с помощью механизма сессий. Возможны два варианта завершения сессий:
    1. Пользователь закончил редактирование дерева, сохранил изменения и самостоятельно завершил сессию.
    2. В режиме редактирования пользователь бездействовал в течение определенного времени (более 12 минут - предложено студентами). В этом случае сессия завершается принудительно.
Пожалуйста проверьте, как это работает.