Значит, делаю я IoT платформу. Не поверите на JavsScript :)) Так вот, сейчас я реализую задача синхронизации области файловой системы контроллера с облаком. Как она происходит:
1. При изменении на контроллере накапливаются дифы.
2. Одновременно с этим и в облаке могут быть изменения.
Т.е. в АТОМАРНОЙ операции нужно произвести синхронизацию. Атомарной, значит или все или ничего.
Что я делаю:
3. Блокирую файловую область на контроллере и снимаю дамп по дифам.
4. Готовлю POST запрос
5. Отправляю его в облако.
6. Облако принимает, обрабатывает изменения, анализуруя их по приоритету. Если у него есть обновление того же файла, но позже, приоритет имеет облако.
7. В ответа отправляет дамп файловой области с теми изменениями который должен накатить контроллер.
Таким образом, за одну операцию достигается синхронизация с облаком.