Основы проектирования приложений интернета вещей. Конспект курса лекций
Алексей Корнилов
Третий закон Кларка гласит, что «любая достаточно развитая технология неотличима от магии». В этом смысле интернет вещей и технологии «цифровых двойников» напоминают магию Вуду: чтобы управлять объектом, надо создать его модель («двойника»), и пусть все, что происходит с двойником, происходит и в реальности… Современные платформы позволяют создавать приложения интернета вещей просто и быстро, как это делается – предмет данного курса лекций.
Основы проектирования приложений интернета вещей
Конспект курса лекций
Алексей Корнилов
Корректор Надежда Соболева
© Алексей Корнилов, 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. Интернет вещей как технология
Неандертальцы, говорят, были умнее кроманьонцев. Говорят, они были даже умнее современных людей. Они боролись за выживание в этом мире поодиночке, а для этого надо хорошо соображать.