Над проектом я працюю над тим, щоб надрукувати веб-додаток, який керуватиме списком завдань між кількома користувачами. Це головний список завдань, елементи завдань якого розповсюджуються авторизованим користувачем. У кожного користувача є свій власний обліковий запис для входу та перегляду завдань, які їм призначені; можна для декількох користувачів мати одне загальне завдання.
Я намагаюся залишити деталі проекту поза цим, оскільки я більше розуміюсь із загальною концепцією того, як впоратися з наступними ситуаціями, але якщо це допомагає, я використовую Java, EclipseLink та GWT з реалізованою RequestFactory. База даних - PostgreSQL.
Отже, концептуальні проблеми, які я намагаюся примирити, такі:
Якщо окреме завдання, яке є загальним для кількох користувачів, зміниться будь-яким чином, наприклад, завдання виконано, видалено тощо, список завдань для всіх користувачів, які мають це завдання, буде оновлений. Які існують шаблони дизайну, які допомагають реалізувати цю функцію?
- Деякі зразки, які я переглянув, - це "Спостерігач" і "Посередник" - чи існують інші, які слід враховувати?
Скажімо, два користувачі одночасно змінюють одне і те ж завдання.
По-перше, я повинен дозволити, щоб така ситуація сталася, чи слід накладати на неї замок, поки одна чи інша людина не зробить змін?
По-друге, якщо я не ставлю замок, як я погоджую чиї зміни приймати? Це пов'язано з ситуацією в 1, оскільки користувач 1 може подати дані, і перш ніж користувач 2 отримає оновлені дані, він / вона, можливо, пішов вперед і подав свої зміни.
Я дійсно шукаю будь-які орієнтири, поради чи поради, які можна надати, як правильно синхронізувати дані між кількома примірниками цього веб-додатка. Я б дуже цінував це!