Всем доброго дня.
Если кратко, то имеются роботы которыми нужно управлять удаленно - отправлять команды, давать расписания на работу, получать данные + что-то еще. Все это должно управляться с централизованного сервера.
Нужно по-критиковать/по-советовать по поводу той реализации которую хочется сделать. Может быть предложить что-то кардинально иное...
Сейчас для тестового использования имею сервер на джанге, который может выполнять, то что нужно. Но это только при наличии прямого доступа к роботам, что ограниченно формально одним помещением(длина усб кабеля).
Более глобальная задача сделать управление данными устройствами из вне, при этом часть из них может быть как в одном помещении так и разнесены в разные города(и имеют скорее всего не белые ip). Скорее всего нужно чтобы данные хранились и на "клиенте" и на "центральном сервере". Объемы трафика небольшие - дата + показания датчиков, иногда пара картинок.
Пока что мне видится решение данной задачи - установка в помещение какого-либо устройства, которое выполняет необходимые операции, при это он может отправлять данные на и получать команды от центрального сервера. В частности раз в несколько минут устройство шлет запросы на центральный сервер и отправляет/получает с него данные/команды. Для центрального сервера думаю брать джангу, что ставить на "клиента" не совсем понимаю. Видится мне малинка там с написанным приложением, но на чем? Не понимаю хватит ли только requests + celery + threads + мелкая база на mysql или кого-то вроде джанги туда ставить(flask, tornado?) - кажется что они там лишние.
Вопрос в следующем, как организовать данную работу системы?
- Что должно стоять на "клиентской стороне" ?
- Как поддерживать долговременное соединение?
- Что взять в качестве "клинетской" машины(малинку?)?
- Что ставить на "клиента"?
- Как организовать синхронизацию баз данных?
Заранее спасибо!