Выпуск #7/2020
Э. Родланд
КАК АДАПТИРОВАТЬ СУЩЕСТВУЮЩЕЕ РЕШЕНИЕ ДЛЯ ИСПОЛЬЗОВАНИЯ В ИНТЕРНЕТЕ ВЕЩЕЙ
КАК АДАПТИРОВАТЬ СУЩЕСТВУЮЩЕЕ РЕШЕНИЕ ДЛЯ ИСПОЛЬЗОВАНИЯ В ИНТЕРНЕТЕ ВЕЩЕЙ
Просмотры: 910
DOI: 10.22184/1992-4178.2020.198.7.104.106
Как адаптировать существующее решение для использования в Интернете вещей
Э. Родланд
Для многих людей нынешний всплеск в количестве подключенных к Интернету бытовых приборов вызывает воспоминания о том, как персональные компьютеры все чаще подключались к Интернету в 1990-х годах. В то же время велись аналогичные споры о том, является ли эта технология просто интересной новинкой или она действительно окажет длительное воздействие на общество. В настоящее время подключенные к Интернету персональные компьютеры (ПК) и сотовые телефоны считаются незаменимыми, и многие предвидят аналогичные перспективы для подключенных бытовых приборов.
Возможность включения кофеварки из любой точки мира может не показаться технологией, которая меняет жизнь, но кофеварки – это только начало революции, которую порождает Интернет вещей (IoT) в домашнем хозяйстве. Все новые достижения в области машинного обучения и технологии искусственного интеллекта только ускорят эти процессы.
Возможность сбора необработанных данных от электрических бытовых приборов и датчиков открывает огромное количество новых вариантов применения и возможностей.
Некоторые разработчики не уверены, хотят ли они присоединиться к революции IoT, поскольку опасаются, что разработка встраиваемых систем с возможностью подключения к IoT будет сложной задачей. Но в действительности решить ее достаточно просто. Продукт с поддержкой IoT обычно состоит только из трех элементов: процессора или микроконтроллера («умный» элемент), сетевого контроллера («подключенный» элемент) и средств защиты связи с облаком («безопасный» элемент).
Поскольку большинство разработчиков уже потратило много времени и усилий на создание первоклассных продуктов, имеет смысл брать их за основу при разработке новых решений.
Часто для обеспечения возможности подключения к IoT необходимо добавить только элементы связи и безопасности в существующий проект. Вместо того, чтобы разрабатывать решение с нуля, можно быстро преобразовать существующие проекты для подключения к IoT. Это может быть сделано очень эффективно с использованием методов, хорошо зарекомендовавших себя в мире программирования для упрощения и ускорения разработки.
Декомпозиция сложной задачи
Есть несколько подходов, которые разработчики встраиваемых систем могут позаимствовать у программистов, когда они приступают к задаче обеспечения работы существующего продукта в IoT. Программисты, сталкивающиеся со сложной задачей, имеют давнюю традицию обращения к нисходящему подходу к разработке, или модульному программированию. Этот метод включает в себя декомпозицию более крупной проблемы на более мелкие, легче решаемые, задачи, которые в свою очередь можно разделить на еще более мелкие и легкие подзадачи. Это мощный и проверенный подход к решению сложных проблем, которые трудно решить с помощью единого, не разделенного на блоки, кода. Как же перенести такой подход на разработку встраиваемых аппаратных систем?
Оказывается, что инженеры, занимающиеся созданием встраиваемых систем, могут достичь тех же преимуществ, разрабатывая свою систему модульно. В дополнение к постановке сложных задач, связанных с собственно программированием, встраиваемые системы часто должны соответствовать стандартам и проходить строгие процедуры сертификации.
Внесение изменений в программное или аппаратное обеспечение после сертификации может привести к необходимости повторной сертификации продукта. Уже по одной этой причине есть огромное преимущество в разделении частей, которые требуют сертификации, на подсистемы. В таком случае ошибки в одной подсистеме не будут влиять на функционирование других подсистем.
Например, многие разработчики хотят добавить к следующему поколению существующего продукта безопасное подключение к Интернету, чтобы улучшить механизм взаимодействия с пользователем и обеспечить добавление новых возможностей, включая удаленную диагностику, функции мониторинга и сбор статистических данных, для планирования будущего усовершенствования продукта. Такой продукт с поддержкой IoT будет иметь три основные составляющие: 1) исходное решение; 2) средства для подключения к Интернету; 3) средства обеспечения безопасности. Как показано на рис. 1, данный тип решения с поддержкой IoT в своей основе является исходным решением с дополнительной безопасностью и возможностью подключения.
С точки зрения реализации, эта задача проектирования может быть разбита на три подзадачи, где используется код исходного решения и добавляются только безопасность и подключение.
Однако безопасность и подключение к Интернету сложно разработать с нуля. Кроме того, интеграция новых функций в существующее решение может создавать помехи в его функционировании, что снижает качество комбинированного решения. Разработчики часто пишут код, который был сильно оптимизирован для исходного продукта. В результате может быть очень трудно добавить критичное к привязке по времени (timing) подключение и требующую больших вычислительных ресурсов безопасность, при этом гарантируя те же уровни производительности в обновленных продуктах.
Рис. 2 иллюстрирует этот комбинированный подход. Все функциональные возможности реализованы как единое решение, что увеличивает сложность как написания, так и отладки приложения. Ошибки в одной части кода могут влиять на привязку по времени и производительность других критических функций, делая гораздо более вероятным, что простая ошибка может иметь побочные эффекты, вызывая необходимость повторной сертификации.
Использование модульного подхода позволит разработчикам сохранить их существующую кодовую базу без изменений и просто добавить требуемые функции подключения и безопасности.
С использованием этого подхода функции безопасности и подключения могут быть реализованы в виде отдельных программных и аппаратных решений (рис. 3), что экономит огромное количество времени и уменьшает число инженеров, необходимых для создания требуемого продукта. Этот подход также упрощает повторное использование кода и аппаратной части, что обеспечивает большую гибкость. Например, разработчик может захотеть предложить как Wi-Fi, так и BLE (Bluetooth Low Energy – Bluetooth с низким энергопотреблением) версии одного и того же продукта. Модульный подход позволяет быстро и легко реализовывать подобные решения для IoT.
Преимущество модульного подхода заключается в том, что вся работа, направленная на оптимизацию и настройку существующей системы, не теряется при добавлении в продукт возможности подключения к IoT. Разработчик может легко добавить необходимые функции, не затрагивая другие части системы.
Для упрощения процесса можно выбрать сертифицированные модули как для обеспечения безопасности, так и для беспроводной связи. Это значительно сократит время сертификации и время, необходимое для вывода нового продукта на рынок. Примером такого сертифицированного защищенного элемента является устройство ATECC608A компании Microchip. Это устройство выполняет все задачи, связанные с аутентификацией и безопасным хранением ключей и сертификатов, обеспечивая безопасное решение без необходимости написания какого-либо кода. Аналогично, сертифицированные беспроводные модули выполняют всё необходимое для безопасного подключения к беспроводной сети.
Использование сертифицированных модулей для обеспечения безопасности и беспроводной связи также устраняет необходимость для разработчика быть экспертом в области безопасности или связи. Модули включают в себя все необходимые фрагменты кода и, как правило, управляются простыми командами, посылаемыми через последовательный интерфейс, например UART, SPI или I2C.
Чтобы еще больше упростить проектирование и ускорить выход на рынок, такие макетные платы, как AVR-IoT WG Development Board компании Microchip (рис. 4), содержат эти модули для безопасного и простого в реализации подключения к IoT. При использовании подобных инструментов инженеру может понадобиться всего 30 с и несколько кликов, чтобы подключить существующий продукт к Google Cloud IoT Core и начать передачу данных.
Возможность подключения электрических бытовых приборов и других потребительских продуктов к облаку значительно повышает их потенциальную ценность: как благодаря доставке больших объемов данных для приложений искусственного интеллекта и машинного обучения, так и просто за счет предоставления более простого способа выполнения безопасных удаленных обновлений прошивки. Декомпозиция задачи и использование сертифицированных модулей для обеспечения безопасности и связи позволяет разработчикам быстро адаптировать свои текущие проекты, чтобы воспользоваться этими возможностями. ●
Э. Родланд
Для многих людей нынешний всплеск в количестве подключенных к Интернету бытовых приборов вызывает воспоминания о том, как персональные компьютеры все чаще подключались к Интернету в 1990-х годах. В то же время велись аналогичные споры о том, является ли эта технология просто интересной новинкой или она действительно окажет длительное воздействие на общество. В настоящее время подключенные к Интернету персональные компьютеры (ПК) и сотовые телефоны считаются незаменимыми, и многие предвидят аналогичные перспективы для подключенных бытовых приборов.
Возможность включения кофеварки из любой точки мира может не показаться технологией, которая меняет жизнь, но кофеварки – это только начало революции, которую порождает Интернет вещей (IoT) в домашнем хозяйстве. Все новые достижения в области машинного обучения и технологии искусственного интеллекта только ускорят эти процессы.
Возможность сбора необработанных данных от электрических бытовых приборов и датчиков открывает огромное количество новых вариантов применения и возможностей.
Некоторые разработчики не уверены, хотят ли они присоединиться к революции IoT, поскольку опасаются, что разработка встраиваемых систем с возможностью подключения к IoT будет сложной задачей. Но в действительности решить ее достаточно просто. Продукт с поддержкой IoT обычно состоит только из трех элементов: процессора или микроконтроллера («умный» элемент), сетевого контроллера («подключенный» элемент) и средств защиты связи с облаком («безопасный» элемент).
Поскольку большинство разработчиков уже потратило много времени и усилий на создание первоклассных продуктов, имеет смысл брать их за основу при разработке новых решений.
Часто для обеспечения возможности подключения к IoT необходимо добавить только элементы связи и безопасности в существующий проект. Вместо того, чтобы разрабатывать решение с нуля, можно быстро преобразовать существующие проекты для подключения к IoT. Это может быть сделано очень эффективно с использованием методов, хорошо зарекомендовавших себя в мире программирования для упрощения и ускорения разработки.
Декомпозиция сложной задачи
Есть несколько подходов, которые разработчики встраиваемых систем могут позаимствовать у программистов, когда они приступают к задаче обеспечения работы существующего продукта в IoT. Программисты, сталкивающиеся со сложной задачей, имеют давнюю традицию обращения к нисходящему подходу к разработке, или модульному программированию. Этот метод включает в себя декомпозицию более крупной проблемы на более мелкие, легче решаемые, задачи, которые в свою очередь можно разделить на еще более мелкие и легкие подзадачи. Это мощный и проверенный подход к решению сложных проблем, которые трудно решить с помощью единого, не разделенного на блоки, кода. Как же перенести такой подход на разработку встраиваемых аппаратных систем?
Оказывается, что инженеры, занимающиеся созданием встраиваемых систем, могут достичь тех же преимуществ, разрабатывая свою систему модульно. В дополнение к постановке сложных задач, связанных с собственно программированием, встраиваемые системы часто должны соответствовать стандартам и проходить строгие процедуры сертификации.
Внесение изменений в программное или аппаратное обеспечение после сертификации может привести к необходимости повторной сертификации продукта. Уже по одной этой причине есть огромное преимущество в разделении частей, которые требуют сертификации, на подсистемы. В таком случае ошибки в одной подсистеме не будут влиять на функционирование других подсистем.
Например, многие разработчики хотят добавить к следующему поколению существующего продукта безопасное подключение к Интернету, чтобы улучшить механизм взаимодействия с пользователем и обеспечить добавление новых возможностей, включая удаленную диагностику, функции мониторинга и сбор статистических данных, для планирования будущего усовершенствования продукта. Такой продукт с поддержкой IoT будет иметь три основные составляющие: 1) исходное решение; 2) средства для подключения к Интернету; 3) средства обеспечения безопасности. Как показано на рис. 1, данный тип решения с поддержкой IoT в своей основе является исходным решением с дополнительной безопасностью и возможностью подключения.
С точки зрения реализации, эта задача проектирования может быть разбита на три подзадачи, где используется код исходного решения и добавляются только безопасность и подключение.
Однако безопасность и подключение к Интернету сложно разработать с нуля. Кроме того, интеграция новых функций в существующее решение может создавать помехи в его функционировании, что снижает качество комбинированного решения. Разработчики часто пишут код, который был сильно оптимизирован для исходного продукта. В результате может быть очень трудно добавить критичное к привязке по времени (timing) подключение и требующую больших вычислительных ресурсов безопасность, при этом гарантируя те же уровни производительности в обновленных продуктах.
Рис. 2 иллюстрирует этот комбинированный подход. Все функциональные возможности реализованы как единое решение, что увеличивает сложность как написания, так и отладки приложения. Ошибки в одной части кода могут влиять на привязку по времени и производительность других критических функций, делая гораздо более вероятным, что простая ошибка может иметь побочные эффекты, вызывая необходимость повторной сертификации.
Использование модульного подхода позволит разработчикам сохранить их существующую кодовую базу без изменений и просто добавить требуемые функции подключения и безопасности.
С использованием этого подхода функции безопасности и подключения могут быть реализованы в виде отдельных программных и аппаратных решений (рис. 3), что экономит огромное количество времени и уменьшает число инженеров, необходимых для создания требуемого продукта. Этот подход также упрощает повторное использование кода и аппаратной части, что обеспечивает большую гибкость. Например, разработчик может захотеть предложить как Wi-Fi, так и BLE (Bluetooth Low Energy – Bluetooth с низким энергопотреблением) версии одного и того же продукта. Модульный подход позволяет быстро и легко реализовывать подобные решения для IoT.
Преимущество модульного подхода заключается в том, что вся работа, направленная на оптимизацию и настройку существующей системы, не теряется при добавлении в продукт возможности подключения к IoT. Разработчик может легко добавить необходимые функции, не затрагивая другие части системы.
Для упрощения процесса можно выбрать сертифицированные модули как для обеспечения безопасности, так и для беспроводной связи. Это значительно сократит время сертификации и время, необходимое для вывода нового продукта на рынок. Примером такого сертифицированного защищенного элемента является устройство ATECC608A компании Microchip. Это устройство выполняет все задачи, связанные с аутентификацией и безопасным хранением ключей и сертификатов, обеспечивая безопасное решение без необходимости написания какого-либо кода. Аналогично, сертифицированные беспроводные модули выполняют всё необходимое для безопасного подключения к беспроводной сети.
Использование сертифицированных модулей для обеспечения безопасности и беспроводной связи также устраняет необходимость для разработчика быть экспертом в области безопасности или связи. Модули включают в себя все необходимые фрагменты кода и, как правило, управляются простыми командами, посылаемыми через последовательный интерфейс, например UART, SPI или I2C.
Чтобы еще больше упростить проектирование и ускорить выход на рынок, такие макетные платы, как AVR-IoT WG Development Board компании Microchip (рис. 4), содержат эти модули для безопасного и простого в реализации подключения к IoT. При использовании подобных инструментов инженеру может понадобиться всего 30 с и несколько кликов, чтобы подключить существующий продукт к Google Cloud IoT Core и начать передачу данных.
Возможность подключения электрических бытовых приборов и других потребительских продуктов к облаку значительно повышает их потенциальную ценность: как благодаря доставке больших объемов данных для приложений искусственного интеллекта и машинного обучения, так и просто за счет предоставления более простого способа выполнения безопасных удаленных обновлений прошивки. Декомпозиция задачи и использование сертифицированных модулей для обеспечения безопасности и связи позволяет разработчикам быстро адаптировать свои текущие проекты, чтобы воспользоваться этими возможностями. ●
Отзывы читателей