Алгоритм синхронизации данных — различия между версиями
Материал из Wiki
ASLezhnin (обсуждение | вклад) (Новая страница: «* Шаг 1. Клиент (мобильный официант) запрашивает сервер о наличии изменений на сервере, ср…») |
ASLezhnin (обсуждение | вклад) |
||
| Строка 2: | Строка 2: | ||
* Шаг 2. Клиент запрашивает список версий справочников (wt_list_versions). По-элементно сравниваются локальные и серверные версии справочников. В случае различий версий соответствующих справочников, делается переход к шагу 3. При успешном обходе всех элементов, версия данных локальной базы устанавливается равной серверной версии. | * Шаг 2. Клиент запрашивает список версий справочников (wt_list_versions). По-элементно сравниваются локальные и серверные версии справочников. В случае различий версий соответствующих справочников, делается переход к шагу 3. При успешном обходе всех элементов, версия данных локальной базы устанавливается равной серверной версии. | ||
* Шаг 3. Клиент запрашивает список версий элементов справочника, поэлементно сравнивая локальные и серверные версии. Если версии не совпадают, то делается запрос на получение данных элемента - шаг 4. Если в локальном справочнике отсутствует элемент из серверного справочника, то переходим к шагу 5. В случае наличия элементов, которых нет в серверном списке, они удаляются. | * Шаг 3. Клиент запрашивает список версий элементов справочника, поэлементно сравнивая локальные и серверные версии. Если версии не совпадают, то делается запрос на получение данных элемента - шаг 4. Если в локальном справочнике отсутствует элемент из серверного справочника, то переходим к шагу 5. В случае наличия элементов, которых нет в серверном списке, они удаляются. | ||
| − | * Шаг 4. Клиент запрашивает данные об элементе с соответствующим идентификатором и редактирует его. Переход на | + | * Шаг 4. Клиент запрашивает данные об элементе с соответствующим идентификатором и редактирует его. Переход на шаг3. |
* Шаг 5. Клиент запрашивает данные эквивалентные шагу 4, и добавляет данные в локальную базу данных. | * Шаг 5. Клиент запрашивает данные эквивалентные шагу 4, и добавляет данные в локальную базу данных. | ||
Версия 13:24, 29 августа 2014
- Шаг 1. Клиент (мобильный официант) запрашивает сервер о наличии изменений на сервере, сравнивая версию локальных данных с данными сервера (wt_db_version). Если версии не совпадают переходим к шагу 2. Если версии совпадают делается пауза, по истечению которого шаг 1 повторяется.
- Шаг 2. Клиент запрашивает список версий справочников (wt_list_versions). По-элементно сравниваются локальные и серверные версии справочников. В случае различий версий соответствующих справочников, делается переход к шагу 3. При успешном обходе всех элементов, версия данных локальной базы устанавливается равной серверной версии.
- Шаг 3. Клиент запрашивает список версий элементов справочника, поэлементно сравнивая локальные и серверные версии. Если версии не совпадают, то делается запрос на получение данных элемента - шаг 4. Если в локальном справочнике отсутствует элемент из серверного справочника, то переходим к шагу 5. В случае наличия элементов, которых нет в серверном списке, они удаляются.
- Шаг 4. Клиент запрашивает данные об элементе с соответствующим идентификатором и редактирует его. Переход на шаг3.
- Шаг 5. Клиент запрашивает данные эквивалентные шагу 4, и добавляет данные в локальную базу данных.