Зачем и как строить Интернет вещей с Node.js |
||
МЕНЮ Главная страница Поиск Регистрация на сайте Помощь проекту Архив новостей ТЕМЫ Новости ИИ Голосовой помощник Разработка ИИГородские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Искусственный интеллект Слежка за людьми Угроза ИИ ИИ теория Внедрение ИИКомпьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Нейронные сети начинающим Психология ИИ Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Распознавание лиц Распознавание образов Распознавание речи Творчество ИИ Техническое зрение Чат-боты Авторизация |
2020-02-18 20:06 О том, как применить Node.js для серверной части Интернета вещей. Разбираемся с вопросами безопасности и показываем пару реальных примеров интеграции платформы в IoT. Публикация представляет собой перевод поста на freeCodeCamp Олега Романюка – главы отдела входящего маркетинга в KeenEthics. 1. Оценка состояния рынка В 2019 году рыночная выручка IoT достигла 212 миллиардов долларов. В мире насчитывается около 26,7 миллиарда подключенных устройств IoT. К 2025 году это число достигнет 75,4 миллиарда. По оценкам ООН, на февраль 2020 года численность населения составляет 7,7 миллиарда человек. У среднестатистического человека есть около 3-4 устройств IoT. Наверняка у вас есть хотя бы одно из таких устройств: смарт-часы, фитнес-трекер, смарт-ТВ или, может быть, даже «умная» машина. Ожидается, что в 2025 году численность населения достигнет 8,1 миллиарда человек и на каждого человека будет приходиться 9-10 IoT-устройств. Думаем, вы уже поняли к чему мы клоним. Наверняка вы были бы не прочь присоединиться к этому рынку и тем более, чтобы ваше IoT-устройство было одним из тех девяти-десяти, что будут у каждого. Статистические данные получены от Statista и ООН. 2. Выбор правильного фреймворка Клиентская часть IoT-устройств представлена самим аппаратным обеспечением. Она написана на C, C++, Lua и других низкоуровневых языках программирования. Из-за аппаратных ограничений с этим ничего не поделаешь. Наряду с высокой производительностью, пользователи IoT-устройств отдают приоритет низкой стоимости и энергоэффективности. Поэтому приложения для устройств следует писать на низкоуровневых языках. По крайней мере, пока. Но вы никак не ограничены в выборе фреймворка и языка программирования для серверной части IoT-приложений. На наш взгляд, Node.js – правильный выбор. И вот почему. 2.1. Быстрота и производительность Так как любое IoT-устройство постоянно работает с динамически изменяющимися данными, нужен фреймворк, способный работать с приложениями, работающими в режиме реального времени и с большими объемами данных. Node.js работает на высокоэффективном и масштабируемом JavaScript движке V8 от Google. Вследствие этого Node.js является основной платформой для работы с приложениями, работающими в режиме реального времени и постоянно меняющимися данными. 2.2. Node.js легко интегрируется с протоколами IoT Приложения интернета вещей активно использует протокол MQTT для обмена сообщениями между устройствами по принципу издатель-подписчик. Для транспортировки и инкапсуляции этот протокол задействует WebSockets. Как MQTT, так и WebSockets хорошо поддерживаются и легко интегрируются с Node.JS. 2.3. Модули Node.js облегчают разработку IoT В Node.js есть npm (менеджер пакетов, англ. Node Package Manager) с множеством полезных пакетов для IoT-устройств. Существует около 80 пакетов для Intel IoT Edison, Arduino и Raspberry Pi. Кроме того, он содержит более 30 пакетов для различных датчиков, маячков и модулей. 2.4. Ресурсоэффективность и масштабируемость Разработчики предпочитают работать с Node.js, так как он не требует большого объема ресурсов. Процессор и оперативная память не перегружены. Кроме того, Node.js обладает высокой масштабируемостью, что абсолютно необходимо для большинства современных компаний. 3. Избегаем подводных камней Вход в нишу IoT может привести вас к успеху. Неудивительно, что на пути вас ждет множество проблем и ловушек – успех никогда не бывает легким. Первая и самая главная задача, которую вы должны решить, – безопасность. 3.1. Безопасная аутентификация Существует множество инструментов для аутентификации в Node.js: токены, JWT, Auth0 и т. д. Каждый из них имеет свои преимущества и недостатки. Для начала посмотрим на них с точки зрения IoT. Токены эффективны, но не на 100% безопасны. Они являются отличным способом настройки аутентификации, так как позволяют идентифицировать конкретного пользователя и принять решение о том, предоставлять или запрещать ему доступ. Токен может быть зашифрован любым алгоритмом. Однако, аппаратное обеспечение (сканеры, датчики, хабы и другие штуки IoT) должно хранить этот токен или данные логина в прошивке. Это означает, что злоумышленники могут украсть токен, если у них есть физический доступ к аппаратным средствам. То же самое касается JWT и Auth0. С другой стороны, вы можете использовать любые инструменты для аутентификации на стороне сервера и интегрировать такой инструмент в платформу Node.js. Есть много npm-пакетов, которые позволяют сделать это вручную: Auth0, Passport и JWT. Есть также пакеты для интеграции с облачными IoT-сервисами: @azure-iot/authentication, aws-iot-device-sdk и т. д. 3.2. Безопасные HTTP запросы Обратите внимание на HTTP-запросы с IoT-устройств. Вы должны проверить, получаете ли вы запрос от соответствующего IoT-устройства. Используйте HTTPS для передачи данных между IoT-устройствами. Оборудование – не браузер, решить вопрос с HTTPS нужно самостоятельно. Для серверной части вы можете сделать это вручную или использовать хостинг провайдера с настройкой HTTPS и сертификатами. В Node.js это довольно легко реализовать: HTTPS использует протоколы SSL или TLS для шифрования данных. Чтобы убедиться, что вы получили запрос от нужного сервера или клиента, используйте дополнительное шифрование данных. Например, вот так можно использовать подпись: Далее:
Чрезвычайно важно знать, что вы получаете запросы с соответствующих устройств, и не сталкиваетесь с атакой где-то посередине. 4. Пара примеров примнения Node.js в IoT на практике 4.1. Asama – трекинг перемещений сотрудников компании Asama — это система микролокации, использующая смарт-часы и Bluetooth-маячки для отслеживания передвижения и другой активности сотрудников компании. Смарт-часы определяют местоположение сотрудника и анализируют, носит ли его нужный человек, спит ли сотрудник или работает. Данные передаются в мобильное приложение, которое устанавливается и настраивается на телефоне работодателя. Приложение работает на Node.js. Таким образом, менеджеры могут отслеживать своих сотрудников в режиме реального времени, сразу же найти нужного им человека и оптимизировать рабочее пространство. Кроме того, в конце недели работодатель получает обширный отчет о деятельности сотрудников. Все это помогает повысить производительность и продуктивность компании. Такое решение может не подойти бизнесу с небольшим офисом и гибким графиком работы. Тем не менее, оно отлично подходит для промышленных предприятий, строительных площадок, фабрик, складов, торговых центров, супермаркетов, гостиниц, охранных агентств, ресторанов и магазинов. То есть везде, где работодателю необходимо знать, не приходят ли сотрудники слишком поздно или рано, их местоположение, активность работы в течение дня, следование расписанию. PREE – поиск ваших вещей PREE – система Bluetooth-маячков и мобильное приложение, помогающее людям перестать терять свои вещи. Это помощник для тех, кто часто забывает телефон, сумку, ключи, бумажник или любые другие ценные аксессуары. Пользователь видит местонахождение своего предмета в режиме реального времени и делится им с доверенными контактами. Как только предмет окажется вне досягаемости, он получит уведомление, так же как и его друзья или члены семьи. Чтобы уведомления не отвлекали, их можно отключить для определенной области. Эта система IoT построена на Node.js, Express и Mongo на бэкенде и Ionic с Cordova на фронтенде. *** Если статья вас убедила в выборе платформы для серверной части IoT, Библиотека программиста подготовила еще несколько популярных статей по Node.js:
А по Интернету вещей у нас даже есть отдельный тег IoT. Источники
Источник: proglib.io Комментарии: |
|