Прежде всего вам понадобится какой-то шлюз.Он должен обрабатывать TCP-соединения от устройств (используйте асинхронные сокеты! =)), Анализировать их данные и отправлять в хранилище.
Следующая большая вещь - это сама память.Если вы хотите поддерживать разные устройства, я бы предложил использовать что-то вроде Apache Cassandra с ключами на основе даты (только дата, а не время) и UID устройства.
Третья часть головоломки - это то, как вы собираетесь представлять данные пользователям.Это довольно просто.Я бы предложил REST услуги.
Это мой собственный опыт.На моей последней работе я был архитектором / руководителем совершенно того же проекта.Теперь он работает и успешно обрабатывает более 30 тыс. Устройств в режиме онлайн на 1 сервере для приложений (IIS), 2 для данных и 2 для шлюзов TCP.
Если вам нужна более конкретная информация, не стесняйтесь спрашивать =)