Основы проектирования приложений интернета вещей
Конспект курса лекций
Алексей Корнилов

Корректор Надежда Соболева

© Алексей Корнилов, 2018

ISBN 978-5-4490-4945-2

Создано в интеллектуальной издательской системе Ridero

Введение

Технологии интернета вещей относятся к числу «почти неотличимых от магии» и позволяют создавать объемные проекты в разы проще, быстрее и с меньшими ресурсами, чем на основе принятых сегодня технологий автоматизации, что дает возможность даже небольшим проектным командам выполнять сложные проекты, а также реализовывать на основе этих технологий свои стартапы.

Однако приложения, использующие данные технологии, имеют свои особенности создания, к ним предъявляются другие требования, они по-другому устроены. Причем если их программная или технические части остались во многом прежними и переориентировать разработчиков оказывается довольно просто, то уже возникла огромная потребность в аналитиках и архитекторах, которые бы обеспечили разработчикам фронт работ.

Так в сложном положении с кадрами оказываются технопредприниматели, запускающие свой стартап, а также небольшие проектные команды, начинающие специализироваться на технологиях интернета вещей. Это, в частности, происходит потому, что:

• многие – даже талантливые – доступные для небольших команд разработчики не имеют необходимой базовой подготовки;

• привлечь профессиональных аналитиков и архитекторов для таких команд практически нет возможности;

• специалисты, работавшие в разных сферах (к примеру, в разработке автоматизированных систем или веб-приложений), с трудом адаптируются к новым моделям организации работ над проектами;

• всё шире используются международные стандарты разработки, но всё еще действуют и часто являются обязательными к использованию отечественные государственный стандарты, но далеко не все руководители проектов понимают, как они между собой сочетаются.

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

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

Часто, к сожалению, встречается ситуация, когда заказчик обращается к разработчику, который не имеет компетенций для того, чтобы понять проблему клиента и предложить способ решения, но готов «делать, что скажете», так же, как больной, бывает, идет сразу в аптеку, вместо того чтобы пойти к врачу. В итоге деньги, время потрачены, результата нет, претензий как бы тоже («а мы сделали всё, что вы сами сказали!»), но осадок остался.

С другой стороны, и заказчик может существенно сократить свои затраты, если сам сможет формализовать свои требования к системе, а еще лучше – предложить и ее концепцию, оставив разработчику лишь проектирование и реализацию, если понимает, как это работает.

Данное издание как раз рассчитано на то, чтобы дать общее представлении о технологиях интернета вещей и о процессе создания прикладных систем на их основе, включая построение виртуальных моделей и «цифровых двойников».

Издание адресовано прежде всего:

• разработчикам автоматизированных систем, мобильных и веб-приложений, видящих в технологиях интернета вещей новую сферу применения своим навыкам;

• специалистам по интеграции отраслевых решений, продакт-менеджерам для понимания потенциала IoT-технологии;

• аналитикам, архитекторам, системным инженерам, инженерам по требованиям, UX/UI-дизайнерам, которым нужно понимать специфику и особенности архитектуры и реализации данных приложений;

• технопредпринимателям и руководителям проектов данного профиля;

• учащимся и преподавателям общего, профессионального и дополнительного образования, связанного с изучением технологий интернета вещей, промышленного интернета, а также робототехники и других предметных областей, где требуется организовывать взаимодействие и совместную деятельность устройств, систем, систем систем;

• руководителям и наставникам команд в соревнованиях «Молодые профессионалы (WorldSkills)», JuniorSkills и др. в данной компетенции.

О чем эта книга?

Современные технологии разработки приложений интернета вещей позволяют максимально упростить техническую реализацию проекта, и самому разработчику оказывается проще не скидывать «реализацию» на технического исполнителя, а сделать все самому. Аналогично, и UX-архитектор может легко в CodeLess-среде реализовать нужные интерфейсы без привлечения UI-дизайнера, а подключение внешних устройств уже, как правило, не требует разработки, а лишь настройки.

С другой стороны, и заказчик может существенно сократить свои затраты, если сам сможет формализовать свои требования к системе, а еще лучше – предложить и ее концепцию, оставив разработчику лишь проектирование и реализацию.

Более того, остается лишь несколько шагов до того, чтобы техническая часть реализации проекта стала настолько простой, чтобы это мог сделать и сам заказчик, точно так же, как для того, чтобы сделать средний сложности сайт, уже не требуется привлекать веб-студию.

Данный «конспект» был подготовлен к курсу по интернету вещей, организованному Британской высшей школой дизайна, и содержит очень краткое описание общего подхода к разработке приложений на основе данных технологий, чтобы задать общий контекст для программ отдельных тематик (в частности, для UX-архитекторов и UI-дизайнеров, разработчиков приложений дополненной реальности и пр.).

Конспект носит вспомогательно-справочный характер и дополняет учебный курс, содержащий более развернутую информацию, иллюстрации, образцы документов, примеры и предполагающий выполнение практических заданий.

Примеры выполнения реальных проектов планируется вынести в отдельное издание «Основы проектирования приложений интернета вещей: Практикум».

Предполагается, что слушателю/читателю доступны другие материалы по системной инженерии, анализу требований, разработке прикладного программного обеспечения и управлению соответствующими проектами, по UX/UI-дизайну или разработке «умных, взаимодействующих через интернет устройств» и пр., но ему надо дать общую картину о целях и процессе создания прикладных систем на основе технологий интернета вещей.

Можно сказать, что цель данного конспекта – дать ответ на вопрос «А почему именно так?», возникающий при работе по проекту, в более развернутом виде, чем это возможно в ходе обычных практических занятий.

Общие принципы разработки приложений интернета вещей, приведенные здесь, применимы при работе с различными современными платформами (например, ThingWorx, HANA, Bluemix, Azure и др.).

Первая часть дает общие понятия для дальнейшего изложения: представление о технологиях интернета вещей и их специфике, о том, почему предметом проектирования прикладных систем на базе этих технологий является их поведение, а также об основных принципах системного подхода к разработке таких систем.

Вторая часть посвящена разработке концепции и архитектуре проекта системы, исходя из заданных требований, потребностей и ограничений.

В третьей части рассматривается процесс разработки программного приложения интернета вещей, работающего на специализированной платформе, включая построение архитектуры приложения, создание виртуальной модели совокупности объектов, чье взаимодействие организуется приложением, реализацию пользовательских и других интерфейсов, а простой пример работы над подобным проектом приведен в приложении.

Издание осуществлено в рамках проекта «Разумные-Системы.рф» (SmartThings. Center) при поддержке компании «Техновижн» (www.technovision.ru) и Академической программы компании PTC (www.ptc.com).

Свои отзывы, замечания, пожелания и предложения по поводу следующих версий книги присылайте по адресу smart.things.center@gmail.com для Алексея Корнилова

Автор выражает особую благодарность Анатолию

Левенчуку и Дмитрию Курило за ценные замечания,

высказанные при подготовке этого издания

Часть первая

1. Интернет вещей как технология

Неандертальцы, говорят, были умнее кроманьонцев. Говорят, они были даже умнее современных людей. Они боролись за выживание в этом мире поодиночке, а для этого надо хорошо соображать.

А кроманьонцы были менее «интеллектуальны», но зато образовали сообщества. И, как оказалось, совместные согласованные действия сообществ даже относительно примитивных субъектов, были более эффективны, чем действия более интеллектуальных «индивидуалов». Как результат, кроманьонцы стали нашими предками, а про неандертальцев мы знаем лишь по результатам раскопок…

Как студент со смартфоном на экзамене часто оказывается «умнее» того, кто потратил много времени на запоминание, так и вещи становятся «умными» за счет того, что способны общаться с другими вещами.

Но обмен информацией между устройствами не является чем-то новым, точно так же, как люди могли общаться между собой и до появления интернета. Однако формат взаимодействия через интернет изменяет для вещей формы этого общения так же, как благодаря «интернету людей» изменили жизнь человека социальные сети, электронная коммерция, системы хранения и поиска информации и пр., и пр.

Этапы развития интернета

Международный союз электросвязи определяет интернет вещей (Internet of things, IoT) как «глобальную инфраструктуру для информационного общества, которая обеспечивает возможность предоставления более сложных услуг путем соединения друг с другом (физических и виртуальных) вещей̆ на основе существующих и развивающихся функционально-совместимых информационно-коммуникационных технологий»¹.

Умные взаимосвязанные устройства

Функциональность продукта (изделия) всё больше повышается за счет его «разумности», затем изделия начинают взаимодействовать между собой и объединяться в системы, системы – взаимодействовать между собой и т. д. Функциональность выходит на качественно новый уровень.

Благодаря интернету вещей информационно-коммуникационные технологии (ИКТ), которые уже обеспечивают связь в любое ВРЕМЯ и в любом МЕСТЕ, получают новый аспект – «связь с любой ВЕЩЬЮ»².

Таким образом, благодаря повсеместному распространению интернета появляется новый класс устройств: умные, взаимодействующие через сеть (Smart, Connected Products, SCP).

Интеллектуальные, поддерживающие сетевые функции изделия – «вещи» в Интернете вещей – должны дать толчок для следующей̆ волны производства. Потенциал огромен: институт McKinsey Global Institute прогнозирует, что интернет вещей обеспечит рост производительности на 2,5—5% на протяжении следующих десяти лет. Это превращается в совокупный̆ рост доходов и экономию в объеме 900 млрд долларов США в год лишь для производственного сектора. Цифра может быть гораздо выше при более широком внедрении³.

«Как ожидается, в интернете вещей произойдет масштабная интеграция ведущих, таких как технологии в области перспективного межмашинного взаимодействия, организации автономных сетей, интеллектуального анализа данных и принятия решений, обеспечения безопасности и защиты неприкосновенности частной жизни, а также облачных вычислений с технологиями усовершенствованного измерения и срабатывания»⁴.

Если до сих пор благодаря интернету между собой взаимодействовали люди, потом данные, то теперь это начинают делать и вещи, их сообщества, системы, системы систем и т. д.

От «Продуктов» к системам систем

Сутью технологии интернета вещей является возможность создания сообществ из умных, умеющих общаться устройств (SCP – Smart Connected Products), а также данных и людей, связанных через интернет, и организация взаимодействия в таких сообществах.

Такое взаимодействие вещей⁵, людей и данных может быть использовано для решения прикладных задач, выступая в качестве средств такой деятельности. Управлять этим взаимодействием могут прикладные компьютерные программы, а всё вместе начинает действовать как единая прикладная система. В этом смысле приложением интернета вещей может, в зависимости от контекста, считаться как программная часть, работающая, как правило, на специализированной облачной платформе, так и вся система взаимодействующих устройств, людей и данных, решающая конкретную прикладную задачу.

Ожидается, что к 2020 году количество технических устройств, подключенных к сетям, превысит 40 миллиардов штук⁶.

Сотнями миллионов будет исчисляться и число приложений интернета вещей, охватывающих все сферы жизни: «Умная планета», «Умный город», «Умный дом», «Умная энергетика», «Умное производство», «Умный транспорт» и пр. Соответственно, разработчик приложений интернета вещей – это одна из наиболее востребованных профессий не только ближайшего будущего, но уже настоящего.

Благодаря «интеллекту» и «коннективности» (способности взаимодействовать) у прикладных систем появляется новый набор функций. Их можно разделить на четыре группы:

• мониторинг (Monitoring): датчики и внешние источники данных контролируют состояние объектов и окружающую среду, предупреждают/уведомляют об изменениях;

• управление (Control): приложение контролирует состояние объектов и персонализирует опыт пользователя;

• оптимизация (Optimization): возможности мониторинга и управления позволяют использовать алгоритмы, которые оптимизируют состояние объектов и выполняют их диагностику, обслуживание и ремонт;

• «автономность» (Autonomy), автоматическое выполнение функций: сочетание мониторинга, управления и оптимизации дает объектам возможность работать и обслуживаться автономно, а также обеспечивает им координацию с другими системами объектов.

Каждая функция, важная и сама по себе, оказывается своего рода ступенькой для следующего уровня. Например, функция мониторинга служит основой для управления, управление в сочетании с мониторингом дает возможность оптимизировать процессы, а оптимальное управление позволяет сделать систему полностью самостоятельной, работающей автономно. Компания может выбирать такой набор функций, чтобы ее продукция была максимально полезной для потребителя, и тем самым укреплять свою конкурентную позицию⁷.

Технология цифровых двойников

Раз ключевым становится обмен информацией между устройствами, то будет совершенно естественным всё, что касается этого обмена, вынести в единое информационное пространство.

Поэтому интернет – это тот мир, в котором дальше будут общаться и развиваться созданные человеком устройства и системы. Когда-то они существовали полностью в реальном мире, потом всё больше устройств начинают выносить «информационную часть себя» в виртуальной пространство: сначала какие-то свои данные, чтобы не закачивать их под каждый запрос по каналам связи, потом начинают выполнять там какие-то вычислительные или логические операции, принимать решения и всё чаще уже даже без обмена информацией с самим устройством.

Постепенно у реальных устройств появляются в виртуальном информационном мире свои «цифровые двойники» (digital twins), и все операции, связанные с обменом информацией, производится уже на цифровом двойнике, а реальное устройство лишь получает уже готовую итоговую информацию о необходимом состоянии, которое оно должен принять.

Но если состояние физического устройства «синхронизировано» с состоянием его цифровым двойника, то зачем дублировать на физическом устройстве все те процессы, которые происходят в его модели в информационном пространстве? Ведь с точки зрения «физического мира», необходимыми являются лишь то, что с этим миром реально взаимодействует: те же датчики и исполнительные устройства.

По сути, физические устройства становятся лишь «аватарами» своих виртуальных сущностей, живущих своей бурной жизнью в виртуальном информационном мире. «Интернет вещей» – это не просто «вещи, подключенные к интернету»: как до последнего времени интернет был преимущественно средством общения и обмена информацией между людьми («интернет людей»), так сейчас он становится средой и технологией взаимодействия «вещей», как физических, так и виртуальных.

Технологии интернета вещей делают возможной реализацию концепции «цифровых двойников»

Использование технологий интернета вещей меняет концепцию встраиваемых систем: теперь обработка данных может вестись не на самом устройстве, а организована в облачной платформе, что в десятки и сотни раз снижает стоимость оборудования, используемого для решения пользовательской задачи.

Мы говорим о технологиях интернета вещей не тогда, когда вещь «подключили к интернету», но когда речь идет о задачах, решение которых предполагает взаимодействие (чаще «кооперацию») «достаточно умных» для этого физических или виртуальных устройств.

В этом смысле технологии «цифровых двойников» (digital twins) напоминают магию Вуду: чтобы управлять объектом, надо создать его модель («цифрового двойника»), а дальше сделать так, чтобы все, что происходит с двойником, происходило и в реальности…

Специфика разработки приложений IoT

В отличие от мобильных или веб-приложений, где взаимодействие с внешними по отношению к приложению объектами (источниками или потребителями данных) является скорее исключением, то для приложения, использующего технологии интернета вещей, организация взаимодействия различных удаленных, в том числе физических, систем является целью их создания.

Поэтому если разработчик (в частности системный архитектор) мобильных или веб-приложений сконцентрирован, как правило, на выстраивании внутренней структуры приложения с относительно небольшим числом внешних взаимодействий, то задача архитектора приложения интернета вещей принципиально другая: ему требуется выстроить взаимодействие множества внешних по отношению к приложению вещей (объектов, устройств, систем) так, чтобы за счет их взаимодействия была решена поставленная задача. Тут фактически вся совокупность связанных объектов становится единым приложением, причем при этом может статься, что многие из этих объектов являются частью других приложений, притом действующих совершенно независимо.

Меняется и роль разработчика «взаимодействий с пользователем» (UX), поскольку у пользователей может оказаться множество разных ролей: для кого-то приложение будет «человеко-ориентированной интерактивной системой⁸», а кто-то станет лишь «источником данных», но при этом продолжая ими «пользоваться» (т. е. оставаясь пользователем).

Таким образом, в разработке приложения интернета вещей UX-архитектор/дизайнер начинает отвечать за организацию «человеко-ориентированных взаимодействий» как имеющих свою специфику вследствие особенностей человека как элемента (часто ключевого) сложной системы; при этом он должен иметь представление и об архитектуре системы в целом, а архитектор системы – понимать специфику предмета деятельности разработчика UX.

Важно, что чем более интеллектуальными становятся системы, тем больше общение с ними начинает походить на общение с человеком.

Меняется и формат взаимодействий с человеком: всё чаще система должна реагировать не на команды, даваемые им через интерфейс мобильного или веб-приложения, а «понимать», что человеку требуется, исходя из условий вокруг него (к примеру, если «видит», что ему жарко, – включить кондиционер), отслеживая его положение (скажем, предусмотрительно открыть перед ним дверь) или даже настроение.

Соответственно, появляется специфика и дополнительные требования к разработке пользовательских интерфейсов (UI) приложений интернета вещей для обеспечения сенсомоторной и психофизиологической совместимости такого приложения с человеком, в том числе в случае использования технологий Ambient или Zero UI, а также дополненной реальности (AR).

Более того, часто смыслом создания приложения интернета вещей является организация взаимодействия пользователя с другими объектами, устройствами и системами, так что приложение должно быть фактически прозрачным для пользователя, и UX-архитектура становится основой всей архитектуры приложения.

Конец ознакомительного фрагмента.

Текст предоставлен ООО «ЛитРес».

Прочитайте эту книгу целиком, купив полную легальную версию на ЛитРес.

Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.

Примечания

1

Рекомендация МСЭ-T Y.2060 (06/2012).

Вернуться

2

Там же

Вернуться

3

Интеллектуальные, поддерживающие сетевые функции изделия: Следующая трансформация производственной отрасли. Исследование Oxford Economics в сборнике Harvard Business Review Россия, 2015

Вернуться

4

Рекомендация МСЭ-T Y.2060 (06/2012)

Вернуться

5

«Вещь (thing): Применительно к интернету вещей означает предмет физического мира (физические вещи) или информационного мира (виртуальные вещи), который̆ может быть идентифицирован и интегрирован в сети связи». Рек. МСЭ-T Y.2060 (06/2012)

Вернуться

6

McKinsey & Company. The Internet of Things: Mapping The Value Beyond The Hype.

Вернуться

7

См.: Harvard Business Review. Сборник статей по теме: «Интернет вещей».

Вернуться

8

ГОСТ Р ИСО 9241-210-2016. Эргономика взаимодействия человек-система. Часть 210. Человеко-ориентированное проектирование интерактивных систем.

Вернуться