`

Schneider Electric - Узнайте все про энергоэффективность ЦОД


СПЕЦИАЛЬНЫЕ
ПАРТНЕРЫ
ПРОЕКТА

Архив номеров

Что для вас является метрикой простоя серверной инфраструктуры?

Best CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Автомобильный инфотаймент - "началось"

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

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

Есть такой очень народный автомобильчик - Opel (Vauxhall в Британии) Astra. Доступный, надёжный, компактный хэтчбэк. Даже ездит. Позиционирование, ценовая категория и характеристики этого автомобильчика (как и любых аналогов) всегда ограничивали его насыщенность системами инфотаймента до, грубо говоря, "балалайки" (когда-то - магнитолы, потом - гибрида CD-проигрывателя с радиоприёмником).

Автомобильный инфотаймент - "началось"

И вот наступил 2015 год. В сентябре Opel Astra станет первым в мире онлайн-автомобилем своего класса. Серийная модель будет оснащаться системой Onstar, содержащей LTE/WiFi шлюз и обслуживающей до семи WiFi устройств (смартфоны, планшеты, ноутбуки, медиаплееры, причём версия системы поддерживает как Android, так и iOS устройства на уровне Android Auto и Apple CarPlay) внутри автомобиля. Кроме инфотаймента и сопутствующих онлайн-сервисов, Onstar обеспечивает и удалённую диагностику подсистем автомобиля.

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

Понимаете, что произошло? То, что было "святым атрибутом очень высокого класса" - с сентября становится штатным в автомобиле класса Opel Astra. General Motors играет в исключительно серьёзную и большую игру. Фактически это диктат всем автомобильным производителям - теперь бюджетный хэтчбэк такой, и точка. Естественно, никто из производителей не сделает вида, что такое дерзкое заявление (ещё и от GM) не замечает.

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

Всё это я ещё и к тому, что "битва за QNX", систему, которая "съела" 50% рынка инфотаймента в период "обкатки на элитах", по логике, должна быть лютой. После технологической революции Opel Astra эти 50% в абсолютных цифрах превращаются во что-то астрономическое, серийность "народных автомобилей" огромная у всех производителей.

Так что будет очень интересно. Особенно с учётом независимости QNX от кого бы то ни было - эта система сформировала целый "свой мир", в котором что-то ломать никто не захочет (да и не сможет без печальных последствий).

Откланиваюсь.

Большие небольшие сделки

Без отступлений - речь идёт о подтверждённой буквально несколько часов назад сделке и о "сплетнях на тех уровнях, где сплетни достовернее газетных заголовков": Intel всё-таки приобретает Altera (примерная сумма сделки $16,7 млрд.), а за Blackberry бьются друг с другом Microsoft, Apple, Xiaomi и Lenovo (по сведениям из других источников, в приобретении также "очень заинтересованы" Google и Samsung).

$16,7 миллиардную сделку назвать небольшой язык не поворачивается. Даже для корпорации с оборотом $55,9 млрд это практически треть годового оборота (не прибыли). Тем более, такую, на первый взгляд, "внезапную".

Atlera, с годовым оборотом "всегда около $2 млрд" - известный производитель микросхем программируемой логики, со своим конкурентом Xilinx фактически делящие мировой рынок FPGA (суммарная доля почти 90% в 2013 году, причём всего за три года, 2010-2013, эти два производителя увеличили свою суммарную долю рынка FPGA на треть).

Рынок высокоуровневой программируемой логики (FPGA) характеризуется очень специфической структурой потребителей. Это обусловлено и ценами FPGA-микросхем, и особенностями их использования в серийном производстве, и даже нюансами проектирования систем на их основе. Львиную долю (более 40%) рынка формируют потребители из телекомуникационного сектора, примерно столько же суммарно "выедают" военные, гражданская авионика и производители систем промышленного назначения, оставшиеся 20% непропорционально делятся между автомобильной промышленностью, сектором "обработки данных" (всевозможные аппаратно-программные акселераторы для датацентров и рабочих станций) и, наконец, растущим, но всё равно небольшим, сегментом массовой бытовой электроники. Если говорить о доле рынка, отвоёванной Altera, в ней картина в целом соответствует общей:

Большие небольшие сделки

Давайте из интереса посмотрим на аналогичную картинку Intel, за тот же период:

Большие небольшие сделки

В ней 62% - тот самый "рынок ПК", 26% - условно говоря, "серверный рынок" (датацентры), 4% - IoT, 0% - мобильная связь и телекоммуникации, 4% - программное обеспечение (включая Wind River) и 4% всякого-разного.

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

Но мы начнём с неинтересного. Очевидно, что с приобретением Altera 0% от телекоммуникаций и мобильного сектора становится уже не нулём, потому что эта рыночная ниша - 44% рыночной доли Altera. Понятно, что сегмент DCG, "всё для датацентров", также получает существенное усиление, потому что доля продаж Altera совпадающей специфики - 16%.

Это вроде как очевидно. CEO Intel Брайан Кржанич уже кратко обрисовал перепективы слияния, оставив вне внимания очевидное заполнение "нольпроцентного" сегмента MCG (мобильная связь и телкоммуникации) - к концу 2016 года следует ожидать выпуска гибридных микросхем для серверных применений, объединяющих в одном корпусе микросхемы кристаллы x86 процессора и FPGA (крайне маловероятно, что в общем случае можно говорить об однокристальной реализации такого гибрида, слишком большие площади кристалла требуются что для мощного x86 процессора, что для серьёзного FPGA). Такие же гибридные системы, по сути, классические процессоры с реконфигурируемым акселератором, Intel собирается производить и для встраиваемых систем (не уточняя, каких именно и о каком уровне вообще идёт речь, потому что рыночные исследования этого в Intel ещё завершены).

И вот тут мы сталкиваемся с весьма интересным явлением. Дело в том, что такие системы на чипе... у Intel уже есть. Причём объединяющие в одном корпусе микросхемы именно x86 процессор и именно FPGA от Altera. Судя по году анонса (это был конец 2010), кентавры с кодовым названием Stellarton создавались для "энергоэффективных датацентров", когда было модно надеяться, что низкопроизводительные ARM и Atom окажутся эффективными в больших датацентрах. Stellarton выпускались и выпускаются серийно, правда, они уже объявлены "бесперспективными для новых заказов" (end of life).

Никакого "шума" Stellarton не сделали (по-моему, о них вообще мало кто слышал), разве что отметились некоторыми особенностями, и вот их стоит вспомнить. Во-первых, они были дорогими. Интеграция в одном корпусе с Atom E600 неплохой FPGA среднего уровня (Arria II GX), удачно соответствующей требованиям быстрой реконфигурации (грубо говоря - быстрого перепрограммирования) наличием быстрых портов, обернулось трёхкратным увеличением цены (в партиях от 1000 штук просто Atom - $29, Stellarton - $97). Во-вторых, чудес не бывает, и перепрограммирование немаленького реконфигурируемого вычислителя требует времени (именно сам процесс перепрограммирования), очень специфического инструментария (вся красота идеи реконфигурируемых вычислителей как раз в том, что они могут изменяться в соответствии с решаемыми задачами, а не один раз "прошиваться" и потом использоваться как акселератор чего-то) и, увы, специалистов, способных всё это "заставить взлететь". В общем, факт остаётся фактом - за прошедшие четыре года Stellarton "не взлетел" и фактически снят с производства.

Второй интересный вопрос неизбежно возникает, если задуматься об обещанных гибридах x86-процессора и FPGA для embedded приложений. Тут ситуация зеркальная - всё дело в том, что у самой Altera такое есть, только процессоры не x86, а ARM, и это есть давным-давно и у Xilinx, и у всех - гибрид FPGA и ARM вообще является чуть ли не негласным стандартом индустрии. А за этим статусом стоят очень серьёзные вещи - подготовка специалистов, инструментальные средства, оборудование, вообще всё, включая специфику проектных работ.

Итого, в двух озвученных направлениях невооружённым глазом видны два очевидных противоречия. Некоторые бизнес-аналитики уже скептически щурятся, опасаясь перемен в Intel, некоторые - опасаясь перемен в Altera.

Зато. Intel превратила 0% от мобильного подразделений совсем не в 0%. Причём этот сектор стабильно и неторопливо растёт, а уже этот рост компенсирует стабильный и неторопливый спад в секторе PC. Кроме того, есть интересная и явно не для публики игра в загрузку производственных мощностей - новые фабы надо загружать, чтобы сократить срок их окупаемости, а производитель масштабов Altera - это очень подходящий что новым технологическим нормам, что специфике Intel (FPGA малой площадью кристалла и стоимостью готовой микросхемы никогда не отличались).

В общем, в истории Intel - Altera мы явно наблюдаем очень дорогое сугубо тактическое слияние. Если в нём есть что-то стратегическое - оно пока настолько конфиденциальное, что лучше не гадать.

Теперь рубрика "ЧТО, ОПЯТЬ?" Или новая волна слухов о "битве за Blackberry". И опять не буду повторять всё написанное, оно легко находится (только следите за датами, это давняя история). Крайне интересный сюжет, сплошные интриги.

Понятно, что Blackberry как "производитель смартфонов" никому не интересна. Сейчас она - правообладатель приличного портфеля интеллектуальной собственности (патентов), и, что главное, - она же и есть та самая маленькая канадская QNX, которая тихо-тихо "откусывает" почти 50% рынка автомобильных систем инфотаймента, а это постоянно растущая инсталляционная база (в 2014 году - более чем 50 млн. автомобилей).

Также понятно, что планка уровня цены автомобиля со штатной системой инфотаймента непрерывно снижается - промышленности нужно стимулировать продажи, в том числе и за счёт "доступности дополнительных необязательных функций".

Интрига же в том, что практически все претенденты на Blackberry не очень успешно пытались "подвинуть" QNX, и у всех, по сути, есть свои системы, пытающиеся конкурировать с "главной ценностью Blackberry" - QNX.

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

Откланиваюсь.

Тихая-тихая революция MOST, а также громкое от Samsung

Насколько я знаю (даже проверял), большинство профессионалов в IT вообще не слышали аббревиатуру MOST. Никакого шума о ней в русскоязычном (и вообще кириллическом) сегменте интернета нет (как и перевода единственной статьи википедии). Можно было бы это так и оставить, но одна небольшая (и очень внутриотраслевая) новость буквально вынудила пробел заполнить.

MOST – медиа-ориентированный системный транспорт (Media Oriented System Transport). Де-факто стандарт в автомобильной промышленности (что уже объясняет его «неизвестность», если учесть уровень развития этой промышленности).

Размытый термин «де-факто стандарт» переводится лаконичным языком цифр – с 2001 года производители выпустили более 170 миллионов серийных автомобилей 184х моделей, мультимедийные/инфотаймент системы которых основаны на шине и устройствах MOST.

А внутриотраслевая маленькая новость – только один производитель компонентного уровня, Microchip, объявил о выпуске и продаже 25-миллионной микросхемы, позволяющей создавать MOST-устройства.

Первое и самое интересное в MOST – даже не достигнутый уровень одобрения промышленностью, а его сочетание, сопоставленное с наличием конкурирующего и действительно хорошо отработанного стандарта IEEE 1355, очень похожего на MOST и аналогичного назначения. Еще интереснее факт, что найти какое-то детальное объяснение такому феномену (промышленность всегда и очень уважает стандарты) от специалистов из автопрома если не очень трудно, то, по крайней мере, мне не удалось. В общем, по каким-то очень очевидным (но совершенно неважным широкой публике) причинам MOST завоевал умы автоконструкторов, и этого достаточно, а в этом убеждает список партнёров «кооперации MOST» (всё «неправильно» в MOST, даже это – не традиционная ассоциация, а кооперация).

Второе даже не столько интересное, сколько неочевидно забавное, кроется в истории появления MOST, в компании, стоящей за этой историей. Когда-то SMSC (приобретённая Microchip) входила в крохотный (буквально из нескольких названий) список производителей котроллеров сети ARCNet. Больше того, производство этих контроллеров не прекращено по сей день, и они есть в спектре продукции Microchip (на цены их лучше даже не смотреть, они какие-то заоблачные).

Об ARCNet уже вообще не знают IT-шники новых поколений, и никогда в глаза живьём эту сеть не видели. А сеть была (и есть) хорошая и даже уникальная – кольцевой топологии, с маркером («бегающим» от устройства к устройству пакетом, дающим право на доступ к сети).

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

Большего от ARCNet и не требуется, потому что, как это ни странно, MOST в чём-то похожа на ARCNet – это тоже кольцевой топологии сеть, синхронно-асинхронная, сохраняющая в асинхронной части черты ARCNet (асинхронные каналы предназначены для передачи командной информации), а в синхронной (основанной на TDM-доступе к сети) обеспечивающая транспортировку медиапотоков с минимальной чувствительностью к джиттерам и прочему, что портит медиаканалы.

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

Высокоскоростные версии MOST позволяют инкапсулировать и транслировать пакеты TCP/IP, что делает MOST уже не только медиаориентированной, а единой системной шиной автомобиля.

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

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

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

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

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

Теперь о Samsung. Когда производитель такого масштаба начинает какую-то игру – это не игрушки. И вот Samsung пришёл в IoT, с платформой ARTIK, представленной тремя устройствами узлового уровня.

ARTIK 1 – крохотный (12x12 мм) встраиваемый компьютер, содержащий в себе маленькую такую бомбу, очень неожиданную. ARTIK 1 – «рабочая лошадка» IoT, тот самый узел, который располагается в тех самых Things, и, потому, по логике IoT, должен тиражироваться в неисчислимых количествах. И вот тут-то Samsung заготовила очень большую неожиданность для очень многих. Потому что самый массовый элемент IoT в видении конструкторов Samsung основан вовсе не на ARM-архитектуре. А на MIPS 32. В ARTIK 1 два MIPS 32 процессорных ядра (архитектура microAptive) с разными максимальными тактовыми частотами (250 MHz и 80 MHz), типовая тактовая частота для менее скоростного (и, естественно, энергоёмкого) – 12 MHz, аппаратные криптоускорители, 9-осевая подсистема датчиков (гироскоп, акселерометр, магнетометр), 1 MB статической оперативной памяти, 4 MB флэш-памяти, встроенный Bluetooth LE радиоканал и удивительно развитая, очевидно избыточная для такой крохотной машинки (как самостоятельного изделия), система питания – 25 (!) стабилизаторов разных напряжений. Последнее очень хорошо характеризует конструкторов Samsung и взгляды специалистов компании на IoT, это, пожалуй, самый реалистичный встраиваемый IoT-компьютер, только за счёт подсистемы питания освобождающий разработчиков завершённых устройств от кучи головной боли (ведь такая машинка предназначена для подключения к ней самых разных датчиков, подсистемы питания которых могут быть не унифицированы). Учитывая крайне агрессивную ценовую политику MIPS и очевидное желание вернуть этой замечательной архитектуре былую и незаслуженно забытую славу, ARTIK 1 должна быть ещё и соответствующей масштабам её потенциального применения, цены. Позволю себе нарушение принципа нейтральности – эта машинка мне действительно очень нравится.

Два старших ARTIC – полноценные ARM-машины, незначительно отличающиеся габаритами печатных плат (самая большая – чуть меньше 30x40 мм), числом ядер процессоров (2 или 4), объёмами памяти (512MB/4GB и 1GB/16GB соответственно).

Системное ПО ARTIK 1 – ОС реального времени Nucleus OS (похоже, что речь идёт о Nucleus RTOS, очень распространённой и популярной системе), ARM-машины работают под управлением Yocto Linux.

Похоже, Samsung не собирается останавливаться только на встраиваемых вычислителях, потому что в набор разработчика входят не только они, но и явно производимые компанией модули беспроводных каналов связи (LoRa/Z Wave/ZigBee/WiFi/Bluetooth LE/NFC).

То есть, Samsung открытым текстом объявляет о запуске собственной полноценной платформы для IoT. И раз в анкетах есть вопрос об интересе к Cloud connectivity, следует ожидать и увеличения интереса к облачной платформе SmartThing (одноимённую компанию Samsung тихо приобрела примерно полтора года назад).

В общем, с приходом Samsung, неожиданно хорошо подготовленной и предлагающей весьма привлекательное, в секторе IoT становится интереснее. Особенно в том его сегменте, который до сих пор называется «smart home», ведь у Samsung и сейчас в руках работающая немаленькая сеть SmartThings с более чем 19 тысячами уже подключенных этих самых «умных устройств».

На этом пока всё.

Откланиваюсь.

Цепочка событий в смежных областях: IoT, робототехники и UAV (за неделю)

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

IoT

Из «незначительных событий с большими возможными последствиями» знаковым, конечно, стал выход пререлиза IoT-версии Windows 10 для Raspberry Pi (второй версии).

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

Очевидные основы стратегии Microsoft в IoT - модная тематика, доступность аппаратных средств на уровне узлов (давайте вспомним – в момент выхода RTM-версии, Ready To Manufacturing, Windows XP, в августе 2001 года, встраиваемый компьютер с параметрами Raspberry Pi был фактически чем-то «очень военным» и стоил как всё очень военное), сравнительная простота освоения и изобилие потенциальных применений, отобрать из которых реально интересные и полезные – как раз задача для crowd.

И совершенно не важно, как отреагируют индустрии на весь сегмент Windows For Devices, он необходим для будущего корпорации и для специалистов из её «экосистемы» (через неделю где-то подробнее напишу об IoT версии Windows 10, пока сам разбираюсь с ней вживую и никаких суждений озвучивать не хочу).

 

Для контраста, сразу о промышленного масштаба событии. Альянс DASH7 объявил об окончательном утверждении версии стека протоколов 1.0.

Для незнакомых с DASH7 – это стек протоколов беспроводной меш-сети, работающей в нелицензируемом диапазоне 433 MHz, совмещающий возможности RFID с поддержкой сенсоров, акутаторов (исполнительных механизмов), подсистем позиционирования в помещениях (за DASH7 стоит стандарт ISO/IEC 18000-7).

Несмотря на почти полную «невидимость» в популярных изданиях, DASH7 с 2009 года применяется в промышленных объёмах, например, только Министерство Обороны США закупало DASH7-устройства на почти пол миллиарда долларов. За счёт сочетания частотного диапазона (обеспечивающего большую дальность связи и лучшее проникновение через препятствия, характерные для городских, складских etс условий), очень интересных и даже уникальных возможностей стека, благодаря дешёвым аппаратным средствам, относительной простоте, и, наконец, открытости, DASH7 выглядит исключительно привлекательно.

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

 

Для ещё большего усиления контраста, событие из мира «недавно noname» производителей узлового уровня. Китайская fabless-компания Expressif, разработчик популярного у «самодельщиков» уже всей планеты WiFi модуля ESP8266, успешно провела FCC-сертификацию (а также CE, TELEC, SRRC) своей продукции.

Сертифицированные модули сменили название, теперь они образуют маленькое, но семейство, объединённое общим словом WROOM, модель WROOM-01 предназначена для удобного прототипирования и макетирования, более компактная WROOM-02 – для мало- и среднесерийного производства. Вопреки возможному (и расхожему) мнению «затраты на международную сертификацию производитель компенсирует повышением цены», новые модули в очередной раз подешевели, и теперь крохотный самостоятельный 32-битовый компьютер с полноценным WiFi адаптером и даже подсистемой оцифровки аналоговых данных, который совершенно законно можно применять в промышленных устройствах, стоит меньше $3,50 в розницу.

 

Если кто-то думает, что взрывной рост популярности Expressif во вроде как неважном сегменте «любителей» остаётся незамеченным большими игроками, заблуждается. Очень все всё замечают. И реагируют. Причём китайские fabless-производители новой волны и здесь говорят своё слово – Atmel и китайская MXCHIP образовали такой компактный альянс «на двоих» с целью создания аппаратно-программной WiFi-платформы для IoT, то есть, фактически для повторения успеха Expressif (если посмотреть в документацию новых модулей Expressif, можно увидеть её авторство – IoT-подразделение компании).

 

Теперь события корпоративно-индустриального уровня. Кто мог подумать лет 10 назад, что крупным игроком в IoT станет почти кристально чистый производитель CAD/CAM/CAE систем высочайшего класса?

И вот примета, подчёркивающая связь IoT и Industry 4.0 – Parametric Technology Corporation, PTC, мало что выпустила уже шестую версию своей IoT-системы с «тематическим» названием ThingsWorks, так ещё и ведёт агрессивную кампанию приобретений, расширяя собственную модель IoT подсистемами предикативного анализа и машинного обучения. Об этом говорит покупка за $100+ миллионов компании ColdLight. Так что, кому интересно как и зачем реально работают big data – присмотритесь к PTC, там явно очень хорошо знают тематику, куда лучше ритейла с его фокусами «персонализации продаж методом постфактум усреднения потребителя до типовой абстракции».

 

Из области «стратегий, экспертных мнений и аналитики» рекомендую обратить внимание на короткий текст человека, прекрасно знающего Amazon изнутри, Джона Россмана. То есть, IoT-стратегия Amazon существует, и не просто «органично вписана в высокоуровневую модель компании», а является в какой-то мере очевидным эволюционным этапом развития. Внутреннее чёткое разделение на ритейл-  и обеспечивающую её самостоятельную (как бизнес) IT подсистемы органично меняет «IT» на «IoT». Больше того. Забавный эксперимент с Dash Button, который многие приняли за первоапрельскую шутку, на фоне даже этой короткой событийной цепочки уже не кажется таким странным и забавным. Снижение стоимости функционально завершённых IoT-модулей (вроде WROOM и им подобных) может означать скорое появление «умной IoT-упаковки», например, реализующей функцию «повторного заказа» с минимальными требуемыми усилиями (не надо ничем сторонним пользоваться, ничего сканировать, посещать какие-то страницы, вводить какие-то коды etc). В общем, если PTC агрессивно формирует своё видение и свою поддержку Industry 4.0, Amazon, похоже, делает то же самое в огромной и уникальной структуре Retail 4.0.

Робототехника

Здесь размениваться на непрерывный поток продуктовых новостей не стоит, лучше обратить внимание на главное – взрывной рост популярности.

Буквально на прошлой неделе завершившаяся, казалось бы, специфической, почти «келейной» тематики, выставка Hannover Messe, посвящённая промышленной автоматизации и робототехнике.

Посмотрим на цифры, даже не «неожиданные», а обескураживающие – 220 тысяч посетителей и 6500 экспонентов из 115 стран, 120 лекций, 76% рост по сравнению с 2013 годом.

 

Студенческий чемпионат FIRST (For Inspiration and Recognition of Science and Technology) в Сент-Луисе, слоган чемпионата «Больше чем роботы». Большое шоу с участием звёзд от рок-музыки до NASA. 18 тысяч участников. Не зрителей, именно участников. 900 команд из 40 стран. И всё это, в том числе, под покровительством Lego (хорошая иллюстрация неочевидному факту «производители игрушек формируют будущее»).

 

Буквально за неделю до FIRST завершился очередной студенческий чемпионат VEX U World Championship в Луисвилле – 850 команд, 15 тысяч участников. В списке топ-партнёров этого мероприятия – Армия США (так что специалисты по робототехнике явно будут очень востребованы военными).

 

Второе (по моему скромному мнению) важное из событий недели – эта небольшая заметка в блогах Wall Street Journal. Она о влиянии расширения использования промышленных роботов на… рынки труда. У неолуддитов или просто опасающихся нового есть устойчивое подозрение, что роботы отнимают рабочие места, особенно в областях низкоквалифицированного труда. Практика же это не подтверждает – в странах со стабильно растущей и интенсивной роботизацией производств (Германия и Южная Корея, например) общее сокращение числа рабочих мест ниже, чем в прочих высокоразвитых. Этой выжимкой и ограничусь, достойный прочтения материал с хорошей базой ссылок по теме.

Дроны (UAV)

Сингапурская Horizon Energy System, специализирующаяся на топливных элементах для автономных беспилотных летательных аппаратов, анонсировала квадрокоптер со временем полёта до четырёх часов. Аналогичными системами питания (заменяющими аккумуляторы) занимаются и канадцы, EnergyOR, их самолётной схемы UAV имеют время автономного полёта до 10 часов.

Повышение времени полёта – ключевой фактор для расширения реальных применений малых UAV, характеризующихся ещё и небольшими полезными нагрузками. И если год назад ещё не шла речь о, например, серьёзных (не для аэрофотосъёмки и близкого) агротехнических применениях мультикоптеров (15-20 минут полёта очень мало для больших агротехнических площадей), то сейчас появление новых технологий не остаётся незамеченным – федеральные власти США и FAA одобрили использование дронов для прецизионного внесения удобрений, гербицидов и пестицидов. Это на деле очень большое событие, которое оказалось почти незамеченным. Так что взрыв дешёвых, долголетающих мультикоптеров, даже способных нести небольшую нагрузку, непременно будет.

 

Не менее важным событием оказалась готовность FAA (как ключевого регулирующего развитие UAV органа) к обсуждению возможности увеличения дальности полёта коммерческих дронов за пределы их прямой видимости оператором.

Аббревиатура BVLOS (Beyond-Visual-Line-Of-Sight) – крайне неприятный фактор, сводящий на нет уже возросшее время автономного полёта дронов: требование их видимости оператором очевидно входит в противоречие с их возможностями и реальными потребностями особо заинтересованных в них потенциальных пользователей (агросектор, мониторинг масштабных объектов инфраструктуры, газо- и трубопроводов, системы экстренной помощи etc). И, судя по всему, в новой редакции требований к UAV аббревиатуры BVLOS как ограничения не будет. Это может произойти в течение двух лет, но, учитывая стиль работы FAA с текущими правилами эксплуатации дронов, вероятнее всего случится много раньше и опять «внезапно», слишком велико давление со стороны коммерческого сектора, стремящегося к легальности, да и ожидаемые дивиденды тоже очень велики.

Это пока всё.

Откланиваюсь.

Протокол MQTT (и немного из опыта реализации). Часть 2.

Основа стандарта протокола MQTT – конечно же, описание форматов пакетов и обмена ими, на которые отображены все механизмы MQTT.

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

Общую структуру всех пакетов можно отобразить следующей «схемой» (в дальнейшем буду позволять себе довольно свободное обращение с терминологией MQTT, придерживаясь в переводах терминов правила «лучше понятнее, чем дословно», но для сохранения «синхронности» с текстом стандарта всегда буду приводить оригинальные термины):

Протокол MQTT (и немного из опыта реализации). Часть 2.

Предваряя деталировку, сразу замечу довольно интересную организацию пакетов протокола, заметную на логическом уровне. Во-первых, иногда, казалось бы, обязательные и потому относящиеся к «системным» данные, вынесены разработчиками протокола в «полезную нагрузку», Payload. Во-вторых, без окончательного разбора общего для всех пакетов заголовка (Fixed Header) невозможно определить полный размер пакета, и, соответственно, выделить память для его обработки.

Общий для всех пакетов заголовок (Fixed Header), несмотря на слово «fixed» в стандартном названии, имеет переменную длину от двух до пяти октетов (или, если больше нравится, байтов).

Самый первый байт – фактически селектор типа пакета (всего текущая версия стандарта описывает 14 типов пакетов) и, по совместительству, контейнер для управляющих флагов всего одного ключевого типа пакета – Publish. Этот байт в старшем ниббле содержит код типа пакета, в младшем – флаги для пакетов Publish и, иногда, предустановленные для некоторых типов пакетов биты.

Второй и последующие (до четырёх суммарно) байты содержат не слишком хитро закодированную длину (в байтах) всех прочих элементов пакета. Механизм кодирования длины основан на следующем принципе – если старший бит байта установлен в единицу, 7 битов этого байта записываются в результирующее 32-битовое (точнее, 28-битовое) слово в 7-битовую позицию, соответствующую номеру байта в последовательности. Следовательно, полная длина максимального MQTT-пакета, соответствующего стандарту, будет равна 5 (байтов Fixed Header) + значение 28-битового слова со всеми единичными битами, или 228-1, что в сумме даёт примерно 255 мегабайтов.

Я не случайно обращаю внимание на эту вроде как незначительную деталь стандарта. Потому что есть реальность, с её реальными вычислителями. И в этой реальности с одной стороны есть MQTT-клиент, который может исполняться малым встраиваемым вычислителем (речь идёт не о микроконтроллерах, а о малых одноплатных машинах масштаба Raspberry Pi и меньше), и, с другой стороны, есть MQTT-сервер, обслуживающий массу клиентов. Из-за pub-симметричности протокола инжектированные в общую систему пакеты большого размера могут одновременно создать чудовищную нагрузку на сервер и фактически уничтожить тонкие MQTT-клиенты. Поэтому, хоть стандарт и не устанавливает никаких дополнительных ограничений на размер пакета, при реализации что клиента, что сервера разумно ограничиться максимально возможными двумя байтами кодирования длины пакета, иными словами – в серверной реализации декодера пакетов MQTT строго проверять старший бит третьего байта общего для всех пакетов заголовка (если этот байт, конечно, есть) любого MQTT-пакета, и если в нём появляется единица, немедленно закрывать сетевое соединение с клиентом, от которого поступил pub-пакет такого размера. И, само собой, «бить тревогу». Да, это нарушение стандарта, но оно ограничивает возможную максимальную длину пакетов примерно 16 килобайтами, что для реальных M2M и IoT применений более чем достаточно, даже для неспешных обновлений большого объёма firmware (передачей фрагментов), и спасает систему от потенциальных опасностей (не обязательно умышленных).

Не случайно уделяю внимание Fixed Header. Во-первых, из всего множества возможных значений первого байта (256 значений) стандарт определяет допустимыми всего 24 (до этой цифры можно добраться тщательным изучением стандарта). Во-вторых, разбор Fixed Header любого MQTT-пакета даёт необходимую для дальнейшего разбора полного пакета информацию, критически важную для любой системы с динамическим выделением памяти (оставшуюся длину пакета в октетах/байтах, об этом было выше). В-третьих, стандарт чётко указывает зарезервированный характер некоторых полей Fixed Header, из-за чего реализация даже простого кода разбора всего-то нескольких байтов пакета становится потенциально расширяемой. В-четвёртых, реализация разбора пакетов любого протокола должна быть настолько быстрой, насколько возможно. Вообще, здраво считать разбор пакетов hard realtime задачей (что усложняет кодирование, но в данном случае – на уровне количества касаний клавиатуры), такое требование точно не повредит. Ну и, наконец, в-пятых, при реализации «боевого» MQTT-сервера для больших нагрузок после почти мгновенного разбора Fixed Header можно «отправлять» остаток пакета в отдельный поток исполнения.

Флаги фундаментального для любой реализующей pub-sub системы пакета (или, если больше нравится, команды) Publish критически важны для понимания работы MQTT в целом. Всего их три – флаг признака повторной отправки (DUP), двухбитовый флаг «качества обслуживания» механизмов доставки (QoS, Quality of Service) и флаг признака «актуальной до обновления публикации» (RET, Retain).
QoS, «качество обслуживания» MQTT, определяет степень доверия к работе механизма транспорта. К сожалению, текст стандарта даёт трудно точно переводимые лаконичные определения трёх возможных уровней степени доверия, поэтому придётся прибегнуть к многословию.

Основной уровень степени доверия – QoS 0, «at most onсe delivery», лучше всего объяснить военным термином «выстрелил и забыл». Клиент или сервер «выстреливает» Pub-команду (пакет) и забывает об этом, никаких дополнительных проверок, ничего вообще. Основным уровнем его можно считать потому, что протокол требует канала с гарантированной доставкой данных с сохранением порядка и проч.

Уровень степени доверия «с подтверждением», QoS 1, «at least once delivery» требует подтверждения получения передачей специального пакета каждого получения Pub-команды (пакета).

И, наконец, самый высокий уровень степени доверия – QoS 2, «exactly once delivery», с двойным подтверждением от обеих сторон симметричного pub-канала (ещё раз напоминаю, что и клиент, и сервер, передают/принимают Publish-пакеты).

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

В некоторых реальных реализациях протокола разработчики ограничиваются самым простым QoS 0, и, как показывает практика, на принципиальную работоспособность систем на основе усечённых реализаций это в большом количестве случаев не влияет.

Флаг DUP, обозначающий повторную отправку пакета, интуитивно понятен, как и понятно, что при QoS 0, «выстрелил и забыл», никаких повторных отправок быть не может. А вот флаг RET, актуальной до обновления публикации, как раз относится к публикуемым данным, как к ресурсу. Если этот флаг установлен в 1, сервер MQTT будет «удерживать» полученные данные и публиковать их любым новым клиентам, подписавшимся на топик этих данных. Для «неудерживаемых» (RET=0) данных новые подписчики не получат ничего вообще до очередной публикации данных.

Из-за развитой системы QoS о MQTT распространены urban legends, утверждающие «перетяжелённость» и «неэффективность» протокола. В реальном мире свойства MQTT прекрасно и тщательно изучены (теоретически и на практике), особенно для мобильных систем с батарейным питанием и очень энергоёмкими каналами связи (например, для смартфонов).  Можно найти большие работы, посвящённые изучению эффективности MQTT, но можно ограничиться и сравнительно короткими результатами практиков, например, профилированием работающего MQTT-клиента на смартфоне под управлением ОС Android. Естественно, это не «ответы на все вопросы», но получить достаточную для оценочного уровня информацию из результатов можно. В этой таблице видны затраты энергии (не в джоулях, а в «расходе заряда батареи»), «пропускную способность», выраженную в количестве отправленных в час pub-пакетов с payload всего 1 байт, и, соответственно, «расход батареи» на отправку одного пакета, всё это для разных уровней качества обслуживания:

Протокол MQTT (и немного из опыта реализации). Часть 2.

В сравнении с протоколами аналогичного назначения, например, с CoAP, MQTT обеспечивает меньшее время задержки и большую пропускную способность при использовании каналов с малыми потерями.

TBC

Откланиваюсь

Протокол MQTT (и немного из опыта реализации). Часть 1.

Несмотря на растущую популярность и де-юре стандартность MQTT в мире «большой автоматики» (этот факт подтверждается принятием MQTT в качестве стандарта концерном OASIS, объединяющим более пяти тысяч участников из 65 стран и являющимся системообразующим в мире IT), вменяемой информации ни на украинском, ни на русском языках, я о нём не находил, потому решил собрать свой опыт «разбора по косточкам» текста стандарта.

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

Два слова об истории протокола. Он был создан ещё в 1999 году, в исследовательском центре IBM, всего двумя разработчиками (Энди Стэнфорд-Кларком, IBM, и Эрлоном Ниппером, Cirrus Link Solution). Это важный факт, и вовсе не для «необязательной иллюстративной истории». Протоколы, созданные малыми рабочими группами или даже отдельными личностями, отличаются компактностью и «обозримостью». А уже эти два фактора во многом определяют скорость появления, живучесть и распространение разработок на основе таких протоколов.

Довольно долго MQTT был внутренним протоколом IBM, затем он был открыт (подразумевается полная открытость, без каких-либо патентных и прочих ограничений) и использован, например, Facebook (в мессенджере). Динамику изменения интереса к MQTT можно косвенно оценить с помощью Google Trends, разумно также сравнить интерес к MQTT с интересом к специально созданному практически для IoT протоколу COAP. Картина будет выглядеть так (синий – MQTT, красный – COAP):

Протокол MQTT (и немного из опыта реализации). Часть 1.

Фактически экспоненциальный рост интереса – следствие целого ряда причин, которым и будет посвящено всё остальное.

Начнём с главного. Согласно стандарту, MQTT – сугубо транспортный протокол (что немного не так, более точно было бы говорить об управляемом свободно задаваемой семантикой механизме транспортировки, но об этом позже), поэтому всё, что связано с безопасностью и защитой механизмов транспорта, выходит за его пределы.

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

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

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

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

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

Ключевые элементы коммуникационной системы, описываемой протоколом MQTT – клиент (client) и сервер (server, в ранних редакциях стандарта MQTT – broker).

Каждый клиент MQTT обязан иметь уникальный идентификатор ClientId, представленный UTF-8 строкой с числом символов от 1 до 23. В строке ClientId допускается использование только символов [a-z, A-Z, 0-9].

Максимальное количество уникальных идентификаторов для MQTT клиентов оценивается числом 6223 или примерно 1,6*1041. Идентификаторы клиентов используются исключительно сервером и только для организации единой сессии работы клиента и сервера при множественных подключениях и отключениях клиента с сервером на уровне сетевого соединения. Несмотря на обязательность наличия ClientId, стандарт допускает вариант работы клиента и сервера, при которой клиент указывает "пустой" ClientId (это специальный случай работы «с чистого листа», о нём дальше).

Представление ClientId даёт первый пример важной детали протокола – в пакетах MQTT практически везде используются UTF-8 строки с определённым стандартом Unicode множеством недопустимых символов (соответствующие требованию «well-formed UTF-8») и префиксным явным бинарным двухбайтовым указанием длины, так что когда в дальнейшем будет употребляться термин «MQTT UTF-8 строка», он будет обозначать такую конструкцию:

Протокол MQTT (и немного из опыта реализации). Часть 1.

Стандарт декларирует принадлежность протокола к классу архитектурных паттернов Pub/Sub и частичную симметричность (Pub-симметричность) протокола. Это требует детального пояснения.

Архитектурный паттерн Pub/Sub определяет класс «сильно слабосвязанных» систем, в которых участники обмена информацией вообще не обязаны знать о существовании друг друга. Кроме того, в этих системах может вообще не использоваться традиционная сетевая «адресация узлов» (или использоваться, но не на уровне фундаментального принципа, а сугубо в служебных целях, как ClientId в MQTT). Всё строится на данных и их метаинформации. «Издатель» (Pub, Publisher) «публикует» данные и метаинформацию (формирует описанные метаинформацией «каналы»), «подписчик» (Sub, Subscriber) «подписывается» на «каналы», определённые метаинформацией. Если для подписки на метаинформацию данные от «издателя» есть, «подписчик» их получает. Если таких данных нет – ничего не происходит вообще, никто не запрещает «подписываться» на несуществующие «каналы», никаких ограничений нет.

В терминах MQTT транспортируемые данные и метаинформация, формирующая «каналы» транспорта, представлены MQTT UTF-8 строками. Строки метаинформации формируются из фрагментов, имеющих название топиков (topic), предусмотрены специальные символы и правила форматирования, вводящие иерархию топиков и возможность «подписки» на множества каналов за счёт wildcards. Эти «специальные правила» и wildcards хорошо знакомы всем, кто хоть раз пользовался любой командной оболочкой при работе с файловой системой.

Иерархия формируется соединением топиков с помощью символа «/», например строка:

room1/north_wall/temperature

состоит из трёх топиков (room1, north_wall, temperature), очевидно формирующих некоторые иерархические отношения (в комнате №1 находится северная стена и на ней измеряется температура). Почти никаких ограничений кроме well-formed UTF-8 на текст топиков не существует, это область полной свободы для разработчиков конкретных приложений.

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

идентификатор_сети/GUID_контроллера_в_сети
/ID_измерительного_канала_контроллера

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

Теперь о wildcards. Они позволяют задавать одним символом множество каналов сразу. Понятно, что именно поэтому при «публикации» данных в метаинформации они недопустимы (метаинформация о публикуемых данных должна быть точно определена, чтобы до данных можно было «добраться»), и стандарт MQTT это понятное формулирует строго – wildcards в Pub-метаинформации (строке, состоящей из топиков и символов иерархии) категорически не должно быть. Текущая версия стандарта не определяет поведение MQTT сервера при получении pub-метаинформации, содержащей wildcards, но, если следовать довольно строгой логике разработчиков протокола (её легко заметить при изучении стандарта), обнаружив такое (как и любое нарушение правила «всё должно быть well-formed UTF-8 string»), сервер должен разрывать сетевое соединение с клиентом-нарушителем правил (хотя бы потому, что возможность инжекции любой неправильной метаинформации в единый механизм управляемого семантикой транспорта данных может использоваться для атак на систему).

В метаинформации о подписке возможны всего два символа wildcards – «#» и «+». Первый обозначает «всю под-иерархию топиков», второй «весь только один уровень иерархии». Это лучше всего пояснить на простом примере. Пусть в MQTT-системе опубликованы следующие пять иерархий топиков:
L0
L0/L1
L0/L1/L2
L0/L1/L2/L3.1
L0/L1/L2/L3.2
L0/L1/L2/L3/L4

Использование «#», например, L0/L1/L2/# , формирует сразу четыре канала транспорта данных:

L0/L1/L2
L0/L1/L2/L3.1
L0/L1/L2/L3.2
L0/L1/L2/L3/L4

В свою очередь, L0/L1/L2/+ задаёт только три канала:

L0/L1/L2/L3.1
L0/L1/L2/L3.2

L0/L1/L2/L3

Описание подписки на множественные каналы может содержать любые правильно описанные комбинации wildcards, использование повторяющихся неразделённых «/» символов wildcards стандартом запрещено.

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

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

Как бы подводя итоги – Pub-метаинформация (точный семантический «путь» к публикуемым данным) клиента MQTT должна соответствовать требованию well-formed UTF-8 string и не может содержать символов «#», «+» и «$», Sub-метаинформация (описание множества семантических «путей» требуемых данных) может содержать wildcards и символ «$» первым символом топика высшего уровня.

Пожалуй, последнее важное, что нужно к этому добавить – стандартом определено право MQTT-сервера на модификацию текста топиков (зачем и как – об этом позже).

Частичная симметричность (или Pub-симметричность) протокола MQTT означает, что и клиент, и сервер могут выступать «издателями», причём с помощью одинакового механизма. «Подписчиком» же может быть только клиент.

TBC
Откланиваюсь

Первый украинский форум инновационных технологий INNOTECH

«Интересно и странно» – я бы так кратко отозвался об INNOTECH после проведенного на форуме с начала до закрытия. Это не в плохом смысле, и без ёрничанья.

Во-первых, удивили конференции INNOTECH – большая редкость, когда в одном месте собираются и докладчики, и их слайды, но докладчики слайдов не читают. На INNOTECH эта большая редкость не просто случилась, а в первый день была стилем почти всех выступающих. За что им отдельное спасибо.

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

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

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

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

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

Первый украинский форум инновационных технологий INNOTECH

Игорь Гомилко, лаборатория робототехники и электроники Noosphere Engineering School, и учебный робот

 

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

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

Первый украинский форум инновационных технологий INNOTECH

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

Вы что-то понимаете в общей логике этой картины? Я – нет. Эти вектора – набор мнений и опыта людей, реально делающих что-то высокотехнологическое. Хоть бы и «просто забавное» (а кто сказал, что «высокотехнологическое» – это непременно нечто зверино серьёзное промышленно-авиакосмическое?).

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

 

Первый украинский форум инновационных технологий INNOTECH

Иван Довгаль, основатель Robotics Laboratory, 44 дрона для армии, настоящий, опытный "фанат"

 

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

Представительств иностранных компаний в экспозиционной части INNOTECH было, мягко говоря, немного. Грубо говоря – были 3M, и всё. И это, по моему скромному мнению, очень плохо. По логике, подобное мероприятие должно привлечь в первую очередь производителей компонентного уровня, умеющих работать с малыми производителями. Таких, к слову, в мире в достатке. И они очень активны где угодно, кроме как. Но, вспоминаем странные вектора, и не удивляемся.

3M же показали очень милый, нужный и полезный образчик Internet of Things – «умный стетоскоп». Технически настолько очевидный (активное шумоподавление? сто лет как встроено в обычные наушники и смартфоны; беспроводные каналы? сто лет как везде), что не смог скрыть белой зависти – почему это безусловно очевидное (особенно медикам) прекрасно спроектированное и нужное устройство возникло и показывается именно 3M, а не… Увы, всё те же вектора. Всё они.

Первый украинский форум инновационных технологий INNOTECH

 

В итоге – двойственное впечатление. Никаких претензий к организации и формату, даже наоборот, всё очень удачно и правильно. Огромное спасибо всем активистам и фанатам своего дела, а также «первопроходцам».

Если бы не эти нехорошие векторы, всё было бы хорошо (а с привлечением компонентных производителей – ещё лучше).

Понятно, что векторы унаследованы, часть их – от полной непригодности советской "высокотехнологической" (читай – оборонной) промышленности к массовому эффективному производству, часть – от пост-советского анекдотического стиля «реактивного ROI, сегодня 10 – завтра 30, и на эти 3% и…» и принципа «возможности протолкнуть заказ».

Застарелые хронические болячки, особенно заметные в период стагнации рынка – вроде как все понимают и первое, и второе, но что и как конкретно делать, знают (тем более, - умеют) очень немногие.

Так что, особое спасибо популяризаторам высоких технологий на уровне их создания и "непродуктового использования" – явно очень нужно новое поколение людей любопытных и достаточно смелых, способных эти самые четыре вектора перенаправить куда-нибудь в /dev/null

Откланиваюсь.

Экономическая арифметика IoT, которой нет, не будет и, наверное, не надо

Продираясь через дебри маркетингового blah-blah-blah и шарахаясь от растущих на глазах оценок ёмкости будущего рынка IoT, в какой-то момент устаёшь и начинаешь задумываться о самых простых вещах. То ли в маркетинговых подразделениях сидят люди, для которых слишком многое очевидно, то ли что ещё, но мало что на простые вопросы ответы никто дать не может, так ещё и почти некому задавать эти самые простые вопросы. Любая вменяемая и содержательная статья или запись в блоге – уже событие. При всём этом, даже с учётом смешного сарказма, который вызывал шумный сегмент «IoT-погремушек» (советую посматривать в очень смешной блог We Put A Chip In It!), монстры масштабов IBM не скупятся на упреждающее финансирование своих IoT-разработок. То есть, происходит нечто вовсе непонятное. Позволю себе задать несколько вопросов и попытаюсь даже не ответить на них (это в общем случае просто невозможно), а обрисовать пути поиска ответов в некоторых классах конкретных случаев.

Начну с «общей схемы IoT», которая ничуть не нова и никаких тайн не содержит:

Экономическая арифметика IoT, которой нет, не будет и, наверное, не надо

В ней «облака» - вовсе не clouds в терминах IT, а проекции фрагментов реального физического мира на множество задач (то есть, на основании каких критериев фрагментируется реальный мир – зависит от создателей конкретных IoT-систем, так что один и тот же фрагмент реальности может быть представлен множеством таких «облаков»), синие «шарики» в облаках - сугубо сенсоры (если игнорировать всякое служебное и оставить только суть – сугубо источники данных), красные «шарики» - сугубо актуаторы (исполнительные механизмы, преобразующие информацию и энергию источников питания в какие-то изменения в физическом мире), выделенный мерзким зелёным цветом гибрид красного и синего «шариков» - актуатор с сенсорами (есть и такие устройства, например, подтверждающие каким-то датчиком факт срабатывания), зелёные и красные штриховые линии – каналы передачи информации, всё прочее хорошо знакомо из мира традиционных IT, пограничные роутеры (как хотите их назовите, их даже может не быть), нечто сервисно-клаудное (пре- и пост- обработки, аналитика, что угодно, на что хватает воображения), и, наконец, специфические СУБД (в общем, это Big Data, о которых прожужжали все уши). Так как речь идёт сугубо об IoT, «интерфейсная» часть «для людей» вообще не отображена, в идеале всё это должно работать для человека, но без его вмешательства.

Самая массовая часть IoT – синие и красные «шарики», сенсоры и актуаторы. И, само собой, – каналы передачи информации (зелёные и красные дуги).

Главная идея IoT, отличающая всю эту по сути типовую для M2M систем схему, - не столько в доступности каждого «шарика» с помощью единого стека протоколов Internet-мира (в M2M всегда был и есть ужасающий разнобой в стеках протоколов, оправданный локальностью, спецификой развития и разным назначением M2M-систем), сколько в глобальности и возможности использования фактически любых источников информации в единой системе. И, естественно (но не так очевидно) – в объединении миров M2M, Big Data, аналитики и прогностики.

На основании этой модели можно уже классифицировать почти всё, что создано и создаётся в IoT.

Если в физическом мире оставить только «синие шарики» сенсоров и принять, что все бесчисленные каналы передачи информации – беспроводные, получим WSN (Wireless Sensors Networks), сети беспроводных сенсоров. В этом случае прямоугольник «А» может отображать то, что принято называть sensor fusion (предварительная «улучшающая» обработка сигналов от сенсоров). Есть расхожее мнение, что WSN некритичны к пропаданию единичных результатов измерений отдельными сенсорами. Что, конечно, не соответствует реальности в общем случае, это, скорее, подкласс WSN (примеров можно найти множество, например, в сельском хозяйстве системы оценки влажности почвы для прецизионной агрокультуры, в строительстве и эксплуатации капитальных сооружений – системы контроля нагрузок, вибраций и деформаций, etc).

Более общий случай, с сенсорами и актуаторами, SAN (Sensors and Actuators Network), соответствует, например, системам промышленной автоматики и управления объектами (любых масштабов, начиная от электронного управления двигателем внутреннего сгорания и заканчивая масштабными инфраструктурными системами вроде управления водоснабжением мегаполисов, smart grids etc).

«Глубина проникновения» интернет-протоколов также определяет целые классы IoT-систем.

Например, обширный класс, основанный на идее «раз IPv6 позволяет адресовать бездну устройств (больше чем 1038), значит весь IoT будет на основе сквозного стека IPv6, вплоть до уровня неисчислимых сенсоров и актуаторов». «Тонкая» версия IPv6, 6LoWPAN, и реализации соответствующих стеков более высокого уровня как раз формируют этот класс IoT.

Есть менее радикальные подходы, основанные на попытке органично вписать в IoT-мир традиционные низкоуровневые M2M-системы, сохранив их приспособленность к классам задач (например, управления).

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

Каналы связи – отдельный критерий классификации. Первые истерики IoT-hype уже прошли, и теперь только совсем отставшие от IoT-поезда упорно утверждают «IoT=wireless на самом массовом уровне». Трезвомыслящие специалисты и целые системообразующие компании от такой категоричности держатся вдалеке, и вот уже Bosch объявляет ожидающуюся полевую шину CAN FD одной из стратегических для своих IoT-систем, то же самое звучит в лагере разработчиков Industrial Ethernet (это очень специфический мир, почти ничего общего с «офисным» Ethernet не имеющий), etc.

И, похоже, во всём этом простом (с высоты птичьего полёта, конечно) наступает время простых экономических вопросов. Например, как соотносится ценность информации от сенсора N с суммарной стоимостью самого сенсора, его инсталляции, развёртывания канала связи для него, его обслуживания и администрирования, хранения и обработки данных от него? Как оценивать эти стоимости, как на основании этих оценок выбирать тот или иной класс IoT-систем? Мы вторгаемся в область тьмы. А ведь всё это – только фрагментарные основы, необходимые «всего лишь» для оценки ROI реальных развёртываемых систем (экономическую целесообразность до сих пор никто не отменил).

Сложности кроются вовсе не в широком диапазоне возможных вариантов исполнения конкретной IoT-системы. Хотя и здесь есть масса нюансов и тонкостей. Даже если рассматривать экстремальные варианты применения «не совсем IoT технологий».

Предположим, некоторая задача требует размещения нескольких сотен (300-400) генерирующих большие объёмы данных (то есть, часто и помногу, извините за двусмысленность) сенсоров на площади 1 квадратный километр. Потоки данных от каждого сенсора исключают возможность применения медленных радиоканалов (например, субгигагерцевых 802.15.4), но допускают использование традиционного WiFi.

Что в итоге получится дешевле (в развёртывании и эксплуатации) и «расширяемее» – классическая проводная сеть или меш-сеть WiFi с оснащёнными WiFi контроллерами сенсорами (считаем, что проблем с питанием устройств нет)? Классическая, «по руководству» схема однохоповой меш-сети в таком случае требует 25 точек доступа (всего 4 из которых – root, с проводными каналами):

Экономическая арифметика IoT, которой нет, не будет и, наверное, не надо

Какой будет оценка стоимости проводной сети для 300 Ethernet-сенсоров? Сколько будет стоить расширение такой сети ещё на 20 сенсоров через год эксплуатации? Результат сравнения классической проводной и беспроводной меш-сети может быть далеко не очевидным, особенно если учесть стабильное снижение стоимости встраиваемых WiFi контроллеров и отсутствие каких-то оснований для изменения этой тенденции.

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

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

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

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

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

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

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

Похоже, потому в высокоразвитых странах спешат внедрять ещё «сырые» IoT-системы, причём в больших инфраструктурных проектах (достаточно упомянуть всего одну компанию Sigfox, IoT-сети которой покрывают территории Нидерландов, Франции, Испании, Великобритании).

В общем, нет экономической арифметики "IoT вообще", и, наверное,  быть не может. Но IoT уже есть, и, без всякого сомнения, будет.

Такой вот парадокс.

Откланиваюсь.

Незаконченная история [не]одного «стартапа» и одной идеи

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

Начнём с сути – с идеи стартапа Energous. Потому что она настолько нечётко, сугубо «по-маркетинговому» описана в прессе, и именно по этой причине вызывает сомнения даже не «сразу», а до сих пор.

Речь идёт о системе беспроводной зарядки (то есть, передачи, приёма и преобразования энергии) со свободным размещением заряжаемых устройств в некотором участке пространства. Не нужно помещать устройство именно у катушки уже почти традиционной индуктивной системы беспроводной зарядки, никаких особых требований и ограничений – хоть случайно разбросай до 12 устройств в поле действия передатчика энергии (радиус примерно 5 метров), они будут заряжаться.

Уже в этом есть что-то фантастическое. Ещё хуже, что большинство «переписывающих новости» изданий ограничиваются загадочным описанием технологии на уровне «uses pocket-forming technology to accurately direct energy to the receiver». Загадочное «формирование карманов», почти нигде и никем не описанный термин, окончательно сбивает с толку и превращает описание в нечто эзотерическое, что очень любят весьма специфические ценители наследия Николы Тесла.

Это была общая картина «идеи Energous» в некольких предложениях. Если не всматриваться пристальнее, можно было бы на этом и остановиться. И даже обо всём этом забыть (причин много, и чуть позже попробуем разобраться, что они вовсе не в «принципиальной нереализуемости»). Но это только начало действительно интересной и даже в какой-то мере детективной истории.

Основной идеолог Energous, Михаэль Либман, человек в IT не просто не «новый», он уже создал несколько удачных компаний, которые были не менее удачно проданы. И он – серьёзный правообладатель целого патентного портфеля (более 100 патентов – не игрушка).

Причём «патентным троллем» назвать этого действительно очень опытного специалиста не поворачивается язык – все патенты объединены единой тематикой (Либман – выпускник MIT, специализация – высокочастотная связь и теория электромагнитного поля).

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

Во-первых, вероятнее всего, передатчик энергии в системе Enegrous является многолучевой фазированной антенной решёткой (антенной с электронно управляемой и формируемой диаграммой направленности). Известно, что рабочая частота этого передатчика совпадает с частотой Wi-Fi (5,8 GHz).

Во-вторых, положение в пространстве каждого из заряжаемых устройств должно быть довольно точно определено, для этого каким-то образом (каким именно, - не заявлено) используется Bluetooth LE канал устройства (патентная база даже предусматривает и этот нюанс, но для маркетологов, популярная "подача контента в зависимости от местоположения").

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

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

Дальше никаких тайн – классическая система energy harvesting (сбора энергии) в заряжаемом устройстве, цепи зарядки и собственно аккумулятор.

Очень сложная в реализации, по-своему красивая и «принципиально работающая» идея. О КПД которой пока ничего не известно (но кого особо интересует КПД таких систем, если суммарная стоимость зарядки типового по характеристикам IPhone, например, за год «накручивает» меньше 50 центов, а планшета – менее $2?).

Зато известно, что работающий прототип уже существует. Также известно, что не одна Energous пытается сделать что-то подобное. Есть ещё Ossia (маркетологи которой сначала вообще громко заявляют, что передача энергии для подзарядки аккумуляторов осуществляется чуть ли не «посредством WiFi», но потом тонко уточняют, что от WiFi может использоваться только WiFi антенна устройства, а аппаратные средства канала сбора энергии всё-таки надо встраивать). И есть ещё Wi-Charge, пытающаяся довести до пригодности собственную систему беспроводной зарядки со свободным расположением заряжаемых устройств, использующую оптический (лазерный инфракрасный) канал передачи энергии.

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

Первый прототип, передающий энергию на расстояние порядка полутора метра одному устройству, Либман показывает ушедшему в венчурные капиталисты Джорджу Холмсу, человеку с большой предысторией во всех уровнях продаж (включая топ-менеджмент) идеально профильной Lucent Microelectronics. И (вот где дар убеждения и вера в свою идею) убеждает Холмса в том, что массовая дешёвая фазированная антенная решётка, ещё и уникального назначения, ещё и с системой позиционирования заряжаемых устройства, с формированием нужной интерференционной картины – решаемая проблема.

Через Холмса и с его поддержкой будущая Energous получает первые инвестиции, $5,5 миллиона. Если кто-то решил, что будущая компания сразу бросается нанимать конструкторов и инженерный персонал – заблуждается. Модель, которую приняли для развития Energous – ранний выход на IPO, а для такого требуется солидный пул управляющих «с именем». Мелкая забавная деталь – наймом CEO занимался сам Либман, и замахивался на людей, недавно продавших успешные бизнесы за миллиардные суммы. Ещё забавнее, что именно из-за этого размаха Energous умудрилась попасть в скандальную хронику. «В пакете с CEO» в компанию попал и временный финансовый директор другой компании, Medbox, так спешащей «вписаться» в растущий рынок легализованной рекреационной марихуаны со своими автоматами продажи «потов», что поспешность оправдывала любые финансовые приёмы, в том числе и самые, мягко говоря, нечистые. Ничего нового – приписки в финансовой отчётности, подмена реальных убытков липовыми прибылями, весь пакет наивных корпоративных хитростей, которыми или временно «закрывают бреши», или вообще используют как метод, если компания создаётся «под быструю продажу» (советую поинтересоваться разбирательствами с Medbox, там действительно очень смешная детективная история).

В октябре 2013 компания «обрастает такими CEO, которых не стыдно показывать кому угодно» (ключевой фактор), выходит на IPO, акции подпрыгивают к марту 2014 до $9,6 (c $6 начальных).

Получив почти $28 миллионов, компания набирает хороших инженеров и параллельно запускает механизм «коммерциализации технологии». Следим за руками, - пока ещё беспроводное зарядное устройство не выходило из стадии прототипа. К ноябрю 2014 у компании уже есть больше ста официальных партнёров, картина с точки зрения маркетинга радужная, но, не забываем, что дальше прототипа пока ещё дело не идёт, серийной продукции нет. Что и сказывается падением цен акций – за день с $9,63 до $8,66, потом до $7.

Спасением от разочарования инвесторов становится январская выставка CES 2015 – здесь прототип Enegrous (это всё равно не совсем промышленный образец) буквально обласкан прессой и популярными блогами.

Кажется, всё почти очень хорошо, остаётся одна техническая мелочь – довести прототип до серийной, повторяемой и доступной продукции. И тут внезапно в Energous замечают, что системы стандартизации и Федеральная Комиссия связи США (FCC) как-то странно смотрят на беспроводной подвод энергии в заданные области пространства, не как на промышленную или бытовую технологии. Больше того, вообще никак не смотрят, не предусматривают такой технологии.

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

Очень интересная история очень необычной технологии.

По-хорошему, если Energous действительно доведёт подобную систему до продукта, даже не представляю какой новый монстр появится в индустрии, потому что только массовая дешёвая антенная решётка ISM (свободно лицензируемого) диапазона 5,8GHz – это революция вовсе не в беспроводной зарядке гаджетов, а в робототехнике, например. Да в где угодно вообще, ничего подобного на рынке не существует. И вообще, любая подзадача в системе Energous – очень перспективная как самостоятельная, с явно многомиллиардными рынками (например, точное определение координат устройства – это же indoor навигация, и в системе беспроводной зарядки оно должно быть очень точным, длина волны 5,8 GHz всего порядка 5 сантиметров, а интерференционные картины определяются половиной длиной волны, фундаментального никто не отменял).

Но суть истории не в том. Energous, из-за привлечения внимания (в том числе и косвенными, не имеющими непосредственного отношения к самой компании, скандальными историями) даёт забавную картину hype-периода развития технологий, в которой всё может быть, а результирующее реальное развитие гарантируется двумя сугубо человеческими факторами – стремлением к разнообразию и любопытством. Даже если в истории Energous есть элементы аферистичности, даже если продукта никто не увидит (что тоже вполне возможно) – есть ещё несколько тысяч компаний, проходящих через нечто подобное, и из них пусть всего десять будут реальными – вот и реальное развитие.

Откланиваюсь.

В триллионные бизнесы – на белом коне под знаменем Open Source

Не один раз писал – IoT и Open Source неразделимы, – кажется, наступило время обозреть хоть с высоты птичьего полёта эту картину, не столько для доказательства утверждения, сколько в качестве какого-то минимального «справочника». Постараюсь воздержаться от обстоятельных комментариев ко всему последующему, у меня есть вполне (и хорошо) обоснованная система взглядов на IoT, но она для справочных целей даже вредна. Ограничусь только одним очевидным замечанием – на этом этапе развития IoT почти всеми забыты два фундаментальных принципа инженерии – декомпозиция (разбиение большого сложного на минимально возможный набор простого) и нейтральность (максимальная независимость любого из полученного набора простого от любой локальной инженерной культуры). Почти все стараются повторить историю IBM PC и создать этакую «одну систему для всего IoT вообще». Ну, такой период развития сейчас, что поделать. Эволюционный процесс очень многое поставит на свои места.

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

Итак, преамбулы и отступления закончились, дальше будут короткие обзоры самых важных (по моему скромному мнению) open source масштабных системообразующих IoT-проектов (всякое косвенное, что создаётся на базе перечисленного, даже не буду касаться). Начинаем с самого низкого уровня, который в IoT ожидается самым бесчисленным – с уровня конечных устройств, всех этих «умных сенсоров и актуаторов», «управляемых радиомаячков» (beacons), бытовых устройств, простых роботов etc.

ARMmbed

Совсем недавно это было просто и скромно «mbed». Но в ARM рассмотрели важность проекта до необходимости приобретения пусть малых, но весьма значимых в своей области компаний, и интеграции продуктов этих приобретений в open source комплект mbed.

ARMmbed – сквозной технологический стек, начинающийся от самого нижнего уровня, от «железа». Это же ARM, так что уровень «железа» - процессорные ядра семейств Cortex M, шины ARM, универсальный для семейств уровень абстракции аппаратных средств CMSIS (этакий супер-HAL от ARM, независимый от конечных производителей и призванный внести порядок в грозящую огромному миру ARM сегментацию) и аппаратная «обвязка», которую лицензиаты ARM создают в конкретных микроконтроллерах. Над CMSIS и драйверами периферии – пока всё ещё ожидаемая операционная система реального времени mbed™ OS, с которой ARM явно по технологическим, конкурентным и репутационным причинам очень не спешит, не желая выдавать за production ready код нечто «сырое» весьма чувствительной к качеству индустрии (это же не для конечного потребителя). План выхода mbed™ OS до второго стабильного релиза «затянут» аж до февраля 2016 года (не думайте, что это будет «гигантский продукт», исходные тексты самой популярной RTOS FreeRTOS – всего 4 файла очень скромных масштабов, речь идёт ведь о «железе» микроскопических по нынешним временам мастштабов). В mbed™ OS будет входить весь стек «модных» IoT-протоколов, и, что важно, стек, реализующий безопасность транспортного уровня, для этого ARM не так давно купила голландскую компанию Offspark, производителя TLS (SSL) встраиваемого стека для малых вычислителей, работающих под управлением RTOS (то есть, этот TLS-стек не требует POSIX-совместимости от ОС и учитывает весь спектр ограничений embedded-программирования).

Итоговое о ARMmbed – этим проектом ARM пытается создать полноценную сквозную IoT-систему для реализации «всего на уровне оконечных устройств IoT с помощью встраиваемого компьютера архитектуры ARMmbed, использующего весь стек mbed™ OS». Предлагаемая (или даже навязываемая) таким решением модель предусматривает полный отказ разработчиков конечных IoT-устройств от фактически всех предыдущих наработок, освоение ими всего технологического стека ARMmbed и «вписывания» своих задач в код реального времени, разделяющий это самое время со всеми программами стека mbed™ OS. То есть, это мир, в котором всё «завязано на ARM, всё зависит от ARM, в том числе, и все конструкторские решения при разработке конечной продукции в областях, никакого отношения к ARM и её лицензиатам не имеющих». Учитывая мощь ARM (не надо смотреть на объёмы продаж в деньгах, ARM – феноменально мощная системообразующая компания мирового уровня), заключающуюся в умениях её конструкторов создавать парализующие волю индустрии очень яркие и талантливые решения, а её сейлз-подразделений – добиваться благосклонности лицензиатов, сверхзадача компанией может быть решена. Не факт, что это будет «одна система для одного мира», но безоговорочно, без всяких прогнозистских предположений – свою территорию (очень большую) в мире IoT ARMmbed завоюет. Хотя бы потому, что проект mbed уже давольно давно работает на «образование» и «тренировку» будущих массовых IoT-разработчиков.

FreeRTOS

Это насколько возможно в embedded-мире платформенно-независимый программный стек, включающий собственно ядро ОС реального времени FreeRTOS, IoT-микростек Nabto (радикально отличающийся от решений, основанных на «традиционных унаследованных протоколах»), свои реализации традиционных сетевых стеков (TCP/IP, конечно) и стеков безопасности транспортного уровня. А также почти что угодно ещё, включая инструментальную поддержку вплоть до симуляторов кода реального времени для «обкатки» в POSIX-совместимых «настольных» ОС и поддержанной трассировки исполнения кода реальным вычислителем, инструментальную поддержку фактически всеми производителями «железа» и кросс-средств разработки для него (например, компания Microchip поддерживает программирование для FreeRTOS на уровне интегрированного программного фреймворка Harmony и IDE). В общем, это целый мир, в котором исходные тексты всего всегда доступны всем, а коммерческое лицензирование стоит на традиционных для индустрии принципах. Кроме того, у проекта есть сертифицированная для самых требовательных ко всему приложения ветка SafeRTOS (естественно, это уже очень недешёвое удовольствие, но такой скромный пакет сертификатов и инструментальная поддержка тотального контроля собственного кода на соответствие требованиям стандартов прикладных областей, существенно упрощают разработчику конечных устройств вход на очень специфические рынки.

Итоговое о FreeRTOS – почти что очень хорошая для embedded-мира независимость от аппаратной платформы (для реального разработчика это означает свободу выбора и возможность сохранения собственных наработок и опыта), стабильное развитие, принятие embedded-индустрией (годами FreeRTOS значится в лидерах этого мира, «выедая» примерно 80% рынка невидимых вычислителей, и картина не меняется), хорошая поддержка разработчиками «железа» (для них доступность и бесплатность тиражирования, royalty-free, продукции с кодом FreeRTOS – стимулятор продаж), хорошая поддержка на уровне кросс-средств разработки сторонних производителей, полнота доступных программных стеков и возможность использования собственных стеков и фреймворков от производителей «железа». Естественно, FreeRTOS не может быть такой же «идеально завершённой системой», как «полностью своё от ARM» (расплата за кросс-платформенность), и уж точно не может быть такой же «хорошей во всём на любом «железе»» (по той же самой причине). Естественно, система требует глубинного её понимания, адаптации её кода к конкретным применениям, etc, чудес не бывает.

NuttX

Малозаметный, малошумный проект, сравнительно давно начавшийся как «разработка одного человека». Поразительный не только в дерзком демонстративно-воодушевляющем «один в поле воин» (автор, Грегори Эллис Натт создавал первый релиз системы три года, с 2004 по 2007й, в 2011м система доросла до открытия автором компании NX Engineering, занимающейся сопровождением коммерчески используемой NuttX, версия которой на момент написания текста – 7.8), но и в ряде особенностей.

NuttX – редкая open source POSIX-совместимая BSD-лицензированная (то есть, делай с кодом что хочешь, только уважай автора упоминанием) полноценная ОС (со всеми программными стеками «всего») реального времени. При этом ещё и кросс-платформенная со спектром аппаратных платформ от 8-битовых до 32-битовых. Полнота программных стеков достойна удивления и уважения (не буду пересказывать всё это, смысла нет), разве что упомяну совсем уж редкие в мире RTOS командный интерпретатор и собственную графическую подсистему c оконным менеджером и библиотекой виджетов. В общем, это такой BSD-лицензированный аналог то ли знаменитой QNX, то ли VxWorks (естественно, со всеми «вытекающими» из особенностей проекта следствиями, как-то: отсутствием серьёзных сертификаций, базовым характером кросс-платформенной поддержки, совсем слабенькой реализацией драйверов модной и востребованной радиочастотной периферии etc etc etc).

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

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

Contiki

Платформа-легенда, ещё одна взрывная разработка одного человека (Адам Дункельс не только автор концепции и фундаментальных узлов Contiki, но и один из первопроходцев «встраиваемого интернета»), превратившаяся в международное сообщество разработчиков и весьма успешную компанию Thingsquare. Системообразующий стек для конечных устройств IoT – собственная даже не совсем RTOS, её «тонкий» заменитель, сетевой стек (но штатных средств безопасности нет), кросс-платформенность (но сравнительно скромная), замечательный свой симулятор беспроводных сетей, свой MAC-уровень для беспроводных сетей, собственные средства тестирования embedded-кода, пересказывать сайт нет смысла. О влиятельности Contiki достаточно упомянуть одну «мелочь» - код IPv6 этой платформы разработан в Cisco, сертифицирован и передан в «общую копилку» платформы.

Итоговое о Contiki – более простые в освоении механизмы, заменяющие «ядро» RTOS, хорошо знакомые опытным embedded-программистам, чем RTOS, отличные сетевые стеки, особенно реализация 6LoWPAN (IPv6 для встраиваемых систем), очень серьёзная поддержка беспроводных сетей (это «конёк» Contiki), скромные кросс-платформенные «из коробки tar.gz файла исходных текстов» возможности, отсутствие в стеке собственных подсистем безопасности, стабильное не очень быстрое развитие, лучшие во всём классе средства высокоуровневого моделирования беспроводных сетей, возможность реализации беспроводных роутеров на основе общей платформы, доказанная применимость и работоспособность в реальных коммерческих конечных устройствах IoT, развитые средства тестирования, не очень хорошая (как и у NuttX) «безболезненность» использования стороннего кода из стеков производителей.

Riot

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

Micrium Spectrum

Понимаю, что лицензионные отчисления и модель лицензирования компании Micrium (известной многим по RTOS µC/OS) примерно так же соответствуют возможностям наших разработчиков, как smart watch соответствуют реальным потребностям жителей наших спальных районов, но сугубо справедливости (и ознакомления) ради.

Ещё одна полная IoT-платформа от одной из королев коммерческих программных embedded-систем. Всё, что душа может пожелать, включая микро-Java. Какое угодно сертифицирование, дающее вход во всё, что требовательно к надёжности (авионика, медицина, ядерные технологии, автопром, космос). Поддержка пристойного списка «железа» (но не такого, какого бы хотелось, опять же, чудес не бывает – требования и сертификация надёжности неизбежно сокращают список поддерживаемого «железа»), инструментарий до уровня аппаратных симуляторов, версия «ОС в железе» (для конструкторов, использующих программируемую логику), соответствие промышленным стандартам etc, это всё из большого серьёзного мира M2M, это всё дорого, но для решения целых классов задач такая дороговизна оборачивается существенной экономией.

Естественно, всё ПО Micrium поставляется с открытыми исходными текстами.

Старая (с 1992 года) заслуженно уважаемая в embedded-мире компания с настолько стабильным положением, обусловленным качеством продукции, что её платиновый партнёр ARM вроде как грозной разработкой ARMmbed совершенно ей не угрожает.

tbc

Откланиваюсь

 

 
 
Реклама

  •  Home  •  Рынок  •  ИТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Сети  •  Безопасность  •  Наука  •  IoT