обработка чисел в реальном времени и хранение в облаке

У меня есть некоторые аппаратные устройства, которые отправляют некоторые данные, которые необходимо хранить на облачном сервере, а также мне нужно выполнять их обработку в реальном времени.

Данные, которые они отправляют, должны храниться в течение нескольких месяцев в некоторых пользовательских двоичных файлах. Эти файлы, связанные с каждым устройством, могут со временем увеличиваться в размере до 10 ГБ.

Будут клиентские программы (мобильные/веб), которые будут просматривать обрабатываемые данные в режиме реального времени.

Я предпочитаю использовать язык C/C++/C#, так как здесь требуется обработка чисел, зависящая от времени.

Цель — написать масштабируемое приложение, которое может контролировать тысячи таких устройств в облаке.

  1. Должен ли я заранее писать код для работы в облаке (понять Azure/Amazon EC2)? Могу ли я написать многопоточное настольное приложение, а затем перенести его в облако?

  2. Раньше я использовал интерфейс передачи сообщений (MPI) для кластеров. Могу ли я по-прежнему использовать MPI?

  3. Если я использую Microsoft Azure API, могу ли я по-прежнему размещать свое программное обеспечение в облаке Amazon?

  4. Я понимаю, что для того, чтобы мобильные устройства могли общаться с сервером, мне нужен работающий веб-сервис. как я могу преобразовать настольную программу, написанную на С++/С#, в качестве веб-службы, разговаривающей с клиентом?

  5. Существуют ли какие-либо сторонние фреймворки или инструменты, которые могут помочь мне в моей работе?


person coolshashi    schedule 10.11.2012    source источник
comment
Выбор C/C++/C#, потому что у вас больше опыта работы с этими языками или потому что у них есть нужные вам библиотеки, это нормально, но не выбирайте их, потому что они быстрее. В любом достаточно популярном динамическом языке есть способ быстро обрабатывать числа с минимальными трудностями. Например, у python есть numpy.   -  person Nick ODell    schedule 10.11.2012
comment
Спасибо за ваш ответ. Мой выбор C/C++/C# в основном потому, что мне с ними очень комфортно, и они неплохо подходят для обработки чисел.   -  person coolshashi    schedule 11.11.2012


Ответы (1)


  1. С большинством служб облачных вычислений вы можете развернуть готовый сервер и установить на нем собственное программное обеспечение. Так что да, вы можете писать и тестировать приложение локально, а затем мигрировать в облако, как только вы исправите все ошибки. Вот доступные конфигурации сервера EC2.
  2. Я не пробовал MPI, но вы должны иметь возможность запускать практически все, что захотите, на серверах в облаке. Однако Amazon предлагает сервис Simple Queue Service, который обеспечивает передачу сообщений в облаке. Ваше программное обеспечение не должно работать в облаке, чтобы использовать эту услугу.
  3. Я не использовал Азур. Я сомневаюсь, что существуют какие-либо ограничения относительно того, какие внешние серверы вы используете для хранения и/или вычислений. Однако хранение вашего облачного хранилища и вычислительных ресурсов у одного поставщика снизит затраты, повысит производительность и предоставит вам унифицированный интерфейс управления и систему выставления счетов.
  4. Веб-серверы — довольно простые вещи. см. этот пост. Это заняло у меня около 10 секунд, чтобы найти.
  5. Существует множество сторонних программ. Разберитесь, что вам нужно, подробнее и задайте более конкретные вопросы
person maldred    schedule 14.11.2012
comment
Большое спасибо. Мне действительно не нужен встроенный веб-сервер. Код работает в облаке, я предполагаю, что мог бы использовать WCF с C#. - person coolshashi; 14.11.2012