Аналитики и представители различных отраслевых сообществ много говорят сегодня о растущей популярности концепции Интернета вещей, называя ее в числе факторов, которые в конечном счете способны привести к Программируемому миру. Для столь высокой оценки есть все основания: общее количество подключенных к Интернету вещей устройств ежегодно растет на 20–30%, к 2018 году их будет 22 млрд, а к 2031-му — уже 200 млрд.
Количество вполне может перейти в качество. Например, крупнейшие игроки, среди которых IBM, Samsung, Intel, GE и Cisco, спешат отметиться на поприще стандартизации Интернета вещей, появилось множество платформ от работающих в различных областях ведущих производителей: ThingWorx от PTC, Amazon IoT, GE predix, Jasper Cisco, IBM Watson IoT platform и др. Сегодня почти 2,5 тыс. компаний так или иначе работают на этой ниве, причем пока больше всего в Интернет вещей инвестируют разработчики ПО — 30% всех инвестиций. Далее следуют игроки телекоммуникационной отрасли — на них приходится 5%. По оценкам аналитиков IDC, инвестиции в Интернет вещей сейчас растут ежегодно на 17% и к 2020 году достигнут 1,6 трлн долл.
Примечательно, что из 3 тыс. компаний, бизнес которых связан с большими данными, только 400 одновременно работают и в сфере Интернета вещей, который, похоже, необязательно предполагает большие объемы данных, и сейчас более актуальны другие задачи развития компонентов его экосистемы: обеспечение безопасности, универсальные платформы, инструменты создания сервисов.
К 2018 году 66% сетей, задействованных в IoT, подвергнутся кибератакам. Уже известные недавние распределенные атаки на отказ в обслуживании продемонстрировали массовую уязвимость систем и устройств Интернета вещей, что говорит о необходимости масштабируемых решений для обеспечения его безопасности. Наличие большого количества незащищенных устройств делает их привлекательной мишенью для злоумышленников, создающих, например, ботнеты широкого охвата. Интернет вещей не имеет четкого периметра, непрерывно меняется, характеризуется высокой гетерогенностью средств и протоколов связи, программных и аппаратных платформ. Многие «вещи» изначально не рассчитаны на подключение к Сети и лишены даже элементарных механизмов безопасности. Кроме того, системы Интернета вещей или их части могут управляться несколькими инстанциями, причем, в отличие от мобильных приложений, на установку и действия которых необходимо разрешение пользователя, для систем Интернета вещей это обычно не требуется, да и не всегда возможно из-за огромного количества самих устройств.
Интернет вещей переживает сейчас непростой период: изделия вроде домашней техники Nest, колонок Amazon Echo и Google Home начинают интересовать массового потребителя, но инциденты безопасности — например, с центрами домашней автоматизации Wink и веб-камерами TrendNet — рождают недоверие потенциальных покупателей. Конечно, находятся энтузиасты, которые пытаются построить свой умный дом, но они сталкиваются с многочисленными сложностями, получая в итоге «лоскутное одеяло» — множество несовместимых друг с другом устройств от разных производителей, мобильных приложений и аккаунтов на различных сервисах. Возможный выход — создание умных устройств, но эта идея начнет приносить плоды лишь при отказе от монолитных платформ и наличии набора защищенных открытых протоколов. Здесь можно опираться на концепции, уже давно зарекомендовавшие себя в WWW, добавив к ним идею «блоков Lego» и «Low code» — то есть построить инфраструктуру Интернета вещей из готовых компонентов с минимумом программирования прикладных сервисов, которых уже сейчас за год предлагается около 200 тыс.
С появлением в нашей жизни огромной массы программируемых устройств, работающих в среде Интернета вещей, перед разработчиками ПО возникли совершенно новые сложности, которые в полной мере проявят себя при переходе от нынешних облачных систем, полагающихся на данные, к Программируемому миру. Нынешние методы, языки и инструменты разработки не готовы к тому, что в окружающем мире появятся миллионы программируемых вещей, и здесь возникает ряд проблем, обсуждению которых на фоне тем, связанных с Интернетом вещей, сейчас уделяется непозволительно мало внимания. Если представить, что обычные предметы: лампочки, дверные ручки, кондиционеры, системы поливки газонов и др. — объединятся и станут динамически программируемыми, то что это будет означать для систем программирования? Классические облачные системы сильно централизованы и пока справляются с устройствами Интернета вещей, однако расходы на связь и электроэнергию уже становятся неприемлемо большими — в среде Интернета вещей, состоящей из огромного количества близко расположенных друг к другу устройств, слишком затратно передавать данные от них в удаленный центр обработки. С появлением в конце 1990-х виртуальных машин в мобильных телефонах началось массовое освоение мобильных платформ широким кругом программистов, что привело к рождению многомиллиардной индустрии мобильных приложений. К чему приведет рождение Программируемого мира, когда возможностями динамического программирования будет наделено практически все, что нас окружает.
Будущее Интернета вещей сегодня принято рисовать в радужных тонах, но на деле картина иная. И чтобы всем субъектам его экосистемы оказаться на волне, а не под волной, следует уже сегодня задуматься о возможностях дистанционной оркестровки и программирования обширных топологически сложных сетей устройств. А самому человеку нелишне было бы разобраться с тем, как в Программируемом мире ему придется сосуществовать вместе с умными устройствами.