У меня есть некоторые аппаратные устройства, которые отправляют некоторые данные, которые необходимо хранить на облачном сервере, а также мне нужно выполнять их обработку в реальном времени.
Данные, которые они отправляют, должны храниться в течение нескольких месяцев в некоторых пользовательских двоичных файлах. Эти файлы, связанные с каждым устройством, могут со временем увеличиваться в размере до 10 ГБ.
Будут клиентские программы (мобильные/веб), которые будут просматривать обрабатываемые данные в режиме реального времени.
Я предпочитаю использовать язык C/C++/C#, так как здесь требуется обработка чисел, зависящая от времени.
Цель — написать масштабируемое приложение, которое может контролировать тысячи таких устройств в облаке.
Должен ли я заранее писать код для работы в облаке (понять Azure/Amazon EC2)? Могу ли я написать многопоточное настольное приложение, а затем перенести его в облако?
Раньше я использовал интерфейс передачи сообщений (MPI) для кластеров. Могу ли я по-прежнему использовать MPI?
Если я использую Microsoft Azure API, могу ли я по-прежнему размещать свое программное обеспечение в облаке Amazon?
Я понимаю, что для того, чтобы мобильные устройства могли общаться с сервером, мне нужен работающий веб-сервис. как я могу преобразовать настольную программу, написанную на С++/С#, в качестве веб-службы, разговаривающей с клиентом?
Существуют ли какие-либо сторонние фреймворки или инструменты, которые могут помочь мне в моей работе?