`

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

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

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

Best CIO

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

Человек года

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

Продукт года

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

 

Можно начинать подводить итоги, 2

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

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

О латентных же результатах, особенно об интересных для IT-индустрии, говорят совсем мало. А они есть, хоть и совсем не очевидны.

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

Начну с тривиального соображения. Успех Falcon 9 – это действительно триумф во многих научных дисциплинах, но в их списке одна занимает особое место. Потому что именно ей этот успех обязан. Дисциплина называется «теория автоматического управления» (control theory). Кто её изучал «не для галочки», неплохо если не понимают, то «осознают» масштабы чуда, сделанного разработчиками возвращаемой первой ступени Falcon. Прочим же просто напомню одну «мелкую» деталь – Первая Промышленная Революция стала следствием безопасности и надёжной работы паровых машин, что, в свою очередь, предопределило их массовость. А причиной безопасности и надёжности стал регулятор Уатта (центробежный регулятор) – механический функциональный вычислитель, преобразующий информацию о скорости вращения вала машины в управляющее воздействие в реальном мире, на подачу топлива так, чтобы скорость была постоянной в некотором диапазоне нагрузок. Этот преобразователь информации в новые свойства материальной системы стал основой теории автоматического управления (безукоризненно гениальный Дж.К.Максвелл, «О регуляторах», 1868 год, почти через сто лет после появления регулятора Уатта).

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

Первое наблюдалось на компонентном уровне, и я когда-то о нём писал – компания Microchip выпустила микроконтроллер с независимым от процессорного ядра аппаратным PID-вычислителем. PID (пропорционально-интегрально-дифференцирующий регулятор) – во всевозможных видах овеществлённая теоретическая конструкция (от механических аналоговых реализаций до цифровых аппаратных и чисто программных), одна из очень простых, но на основе которой работает неисчислимое количество устройств, использующих обратную связь. Появление аппаратно-программного вычислителя, интегрированного с автоматически (извините за тавтологию) становящимся сугубо служебным универсальным процессором, и всё это в комплекте с необходимым набором интегрированных на одном кристалле всех периферийных устройств, необходимых для реализации полного замкнутого контура регулирования во внешнем «аналоговом» мире – по моей скромной оценке это событие. Никто такого до Microchip не сделал, и, уже тем более, никто не сделал это за скромные $0,53 (стартовая цена в партиях микроконтроллеров семейства PIC16F161X). И уж совсем в этом забавно и логично, что разрядность независимого вычислителя (он может работать и работает, когда процессорное ядро выполняет любые свои программы или вообще «спит» для снижения энергопотребления), реализующего PID-алгоритм, выше, чем у основного процессора. Просто потому, что освобождённому от интенсивных непрерывных вычислений «служебному центральному процессору» (и такая новость есть, да) повышенная разрядность и не нужна. Разработчиков же всё это полностью освобождает от решения крайне непростой задачи синхронизации выполняемых процессором программ, что снижает риски нестабильной работы контура регулирования. В общем, была в уходящем году действительно яркая и интересная микросхема, основанная на красивой идее и здравой инженерной логике.

Второе событие как бы продолжает показанную ранее неявную цепочку «регулятор Уатта – работа Дж.К.Максвелла «О регуляторах»». Только временная дистанция и значимость для всего человечества совсем другие. И всё-таки, считаю это событием. Фактически в 2015 году книга Филиппа Джейнерта «Feedback Control for Computer Systems» добралась до, если так можно сказать, «некоторого внимания» со стороны аудитории (издана книга O’REILLY в конце 2014 года). Потому что она – для «enterprise programmers», а не для разработчиков встраиваемых систем. И в ней управляемым объектом являются единственные существующие «овеществлённые абстракции» - программы во время исполнения (естественно, раз речь идёт об «enterprise», то не «вообще программы», а характерные для крупных сервисов – СУБД, серверы etc).

Можно начинать подводить итоги, 2

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

В этом контексте (теории автоматического управления) Falcon 9 принёс и нечто совсем латентное. Мало кто заметил, что полезной нагрузкой успешного запуска были 11 спутников для формирования космической группировки M2M (Machine 2 Machine communication, взаимодействие между машинами для машин) и IoT связи компании ORBCOMM. И уж почти никто не знает, что эта космическая группировка формируется исключительно для M2M и/или IoT. Вот такой фокус – вроде и hype и смешки об IoT-кофеварках, и вдруг «внезапно» возникает планетарного масштаба система. 

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

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

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

Начну с совсем мелочей, потому что из них состоит обыденность. Пусть это не совсем новое и не совсем 2015 года, но. Именно в 2015 году мобильные пользователи получили наконец реально работающий и идеально соответствующий «рабочему циклу» очень многих инструмент «отложенного просмотра web-страниц» - Flynx. Причём инструмент бесплатный и развивающийся, поддерживающий и офлайн сохранение «очищенного контета» (синхронизация «накоплений» с различными сервисами – в перспективе). Очень рекомендую эту программу всем, кто предпочитает сначала просматривать всякие «источники-интеграторы» (rss, Reddit, Hacker News etc), пробегая глазами заголовки, и открывать для чтения только заинтересовавшее. Без Flynx этот процесс прерывистый, с переключением между приложениями, с Flynx – непрерывный в одном приложении, за это время Flynx «подтянет» открытые страницы, и потом можно обстоятельно и спокойно уже их просмотреть, не дожидаясь загрузки каждой. Понравившееся можно локально сохранить для оффлайн-чтения, причём Flynx удалит «web 2.0 шум». Хорошее приложение, реально соответствующее стилю работы со смартфоном или планшетом, а таких приложений далеко не так много, как хотелось бы.

2015 стал годом доступных вычислителей for fun. Причём речь идёт не о Raspberry Pi вовсе. Именно в этом году «неожиданные китайцы», компания Espressif, добились всемирного признания у «самодельщиков» благодаря копеечному Wi-Fi модулю ESP8266, который на деле оказался вполне универсальным 32-битовым компьютерчиком с Wi-Fi адаптером и готовым стеком протоколов. Итогом стали неисчислимые сообщества разработчиков разных уровней, от совсем начинающих любителей до балующихся на досуге профессионалов. И масса всяких забавных конструкций. Для тех, кто уже «заболел» ESP8266, явно воодушевлённые такой реакцией, разработчики Espressif готовят новую игрушку – ESP32, с двухядерным процессором, большим объёмом оперативной памяти (около 400 KB, это очень много), быстрым (144 Mbps) Wi-Fi, полным Bluetooth (LE и Classic) и аппаратными акселераторами для подсистем шифрования. Больше того. Espressif серьёзно готовится к выводу ESP32 на фактически любительский рынок. Для ранних пользователей этого модуля-компьютера Espressif установила премию $1000 за каждую найденную новую ошибку в SDK. Так что в новом году будут новые интересные игрушки.

Очень понравилось, что в уходящем году у нас проявилось (не «появилось», а именно проявилось) массовое движение maker’ов (трудно перевести это слово) и было неожиданно много мероприятий для них. То же самое можно сказать и о поддержке стартапов, а также в целом о привлечении общественного внимания к стартапам, в планах которых IT составляет какую-то долю, а не все 100%. Всемирная междицисплинарность, несмотря на все трудности времени, добиралась и до нас.

Если внимательно следить за «разрастающимся в нишах», уходящий год можно назвать «годом LoRa». Эти спецификации глобальной сети с очень низким энергопотреблением узловых устройств очень долго доводились до завершённого документа, после чего если не «выстрелили», то, по крайней мере, получили признание ведущими производителями компонентного и узлового уровней. Буквально за полгода с момента доведения спецификаций (это всего лишь документ) до уровня release, появились доступные ($11) сертифицированные Альянсом LoRa модули радиотракта со стеком протоколов от Microchip, и вовсе на днях в игру включилась ST Micro с планами создания своих реализаций LoRa контроллеров и микроконтроллеров с полным интегрированным (аппаратным и программным) LoRa стеком. Безусловно, с учётом особенностей LoRa (например, низкой скорости передачи), это не претендующее на универсальность решение, но потенциальные области применения его очень велики благодаря большому радиусу работы и ожидающемуся снижению стоимости радиотракта (в IoT системах это исключительно важный показатель, потому что оконечных устройств в них должно быть значительно больше, чем просто Очень Много). Так что заинтересованным в IoT есть смысл уже обратить внимание на эти спецификации и начинать пробовать, благо, затраты на «вхождение в LoRa» уже снизились до пороговых $100, доступных всем.

TBC

Можно начинать подводить итоги

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

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

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

Справедливость этого курьёзного утверждения я сам проверил на себе. Мой грошовый китайский не-А-брендовый смартфон имеет IGZO экран с разрешением 1920x1080 (а монитор настольного компьютера, старенький Dell с IPS матрицей - 1680 x1050, и я не вижу пока поводов его менять) и 8-ядерный процессор (настольный ПК – 4-ядерный Intel Core i5).

Мне самому уже трудно понять на основании сугубо технических показателей, что из этих устройств больше «ПК». Что же говорить о людях «не из IT», для которых первый смартфон становится и первым персональным компьютером?

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

С системным ПО в мире «новых ПК» как раз всё обстоит, скажем так, «нормально» (не надо играть словами и вспоминать творчество писателя Сорокина). Если в начале года ещё раздавались смешки над «фрагментацией» ОС Android, к концу этого же года все хотят устройства с установленной Marshmallow или с перспективой её появления, а Lollipop просто стала обыденностью (всё, что было раньше, уже надо искать). Apple незначительно изменяет успешную iOS, никакой погоды эти изменения не делают, и самым яростным апологетам всё труднее придумывать как объяснить публике – что же там такого нового сделано (последняя системная новость – 3D жесты, gestures – оказалась настолько таинственной, что после её появления все синхронно о ней замолчали, ни одной новости за пару месяцев). Microsoft, из-за резкого обновления стратегии, тактики и внутренней политики, вообще заняла загадочную позицию на рынке «карманных ПК с сотовыми мобильными каналами связи». И, то ли стабильная Windows 10 уже есть обновлением для крохотного перечня уже выпущенных устройств, то ли её нет (а есть только бета-версии) – эти вопросы стали слишком нишевыми, чтобы будоражить умы (насколько я знаю, буквально сегодня в очередной раз владельцы в целом довольно «свежего» аппарата Lumia 640 обнадёжены – «некоторые смартфоны Microsoft Lumia 640 уже получают Windows 10 Mobile»). А с фантазёров (вроде Firefox OS, Ubuntu и прочих «революционных» разработчиков) фактически окончательно «осыпалась листва».

С системным ПО ПК всё в целом ясно. Но дело вовсе не в нём. ПК образца 2015 года (в любом исполнении) – это не «железо для красивенькой или совершенной ОС». Большинству пользователей вообще безразлична та ОС. Пользователям нужны прикладные программы. А ОС… Лишь бы не мешала очевидными алогичностями, да производитель следил за выявленными «дырками» в безопасности и ошибками, и своевременно это «пролечивал» обновлениями.

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

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

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

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

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

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

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

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

Пора сформулировать внятно, резко и сильно – ноутбуки окончательно убили «настольный ПК», больше такой категории вообще нет. «Настольный ПК» 2016 года – это рабочая станция, в сочетании с соответствующим прикладным ПО – инструмент в первую очередь «не IT профессионала», решаемые которым задачи нуждаются в высокой локальной вычислительной мощности и большом объёме оперативной памяти. И других «настольных ПК» больше не будет. Будет «остаточный шум рынка» и «длинный хвост». Всё остальное – ноутбуки. Они достаточны для непрофессиональных задач пользователей, компактны и дёшевы.

Рабочие станции. Область, где единственным реальным «продуктовым» событием была попытка Hewlett-Packard создать моделью Sprout нечто новое. Об этой попытке все уже забыли. К сожалению, виденные мной (возможно, я упустил что-то большое и важное) описания реального использования этой интересной конструкции не выходили за пределы, скажем так, «забавы». В мире рабочих станций всё очень спокойно, они как были копеечными (по сравнению со стоимостью лицензий прикладного ПО) «ящиками для работы», так и остались. Платы акселераторов и прочие внутренние детали этих ящиков радикальной новизны не явили, это мир, где «всё уже было».

К сожалению, я совершенно утратил и без того чахлый интерес к компьютерным играм, и мне почти нечего сказать об «игровом мире», это вообще не моя епархия. Но то, что видел новое за год, видел и пару лет назад (а то и раньше). У меня такое впечатление, что игровая индустрия фактически переориентировалась на «казуальные игры», которых может быть (и есть) очень много, они дешёвые, быстро приедаются и потому пользователь быстро их меняет. Разве что даже я не мог не заметить успехи в создании «всемирного Лас Вегаса» онлайновых уже даже не игр, а целых платформ. Миллионные призы, реальные деньги за виртуальные объекты, собственная «журналистика», кристально чистый gambling в 3D-виртуальности. По логике, вся эта машина будет уходить от игровых требований уровня «рабочих станций» и переходить к возможностям самых массовых вычислителей, при этом ещё агрессивнее использовать все уже обкатанные приёмы gambling’а. Это был очень субъективный и ни на что не претендующий параграф, «я так вижу».

IoT. Много писал о нём, и буду писать. Это было очень интересно, многообещающе и… И пока всё, таким IoT и остаётся – областью, где можно приложить усилия с вероятной отдачей в будущем. Другое дело, что IoT как hype расширяет область применения IT, а это очень хорошо для любой индустрии. Пока можно относится к нему как к диверсификации знаний и умений – и не ошибиться. В этой области ещё будут Большие Войны за Стандарты, совершенно новые разработки и что угодно ещё. Просто потому что это неизбежная диверсификация, даже вынужденная.

Робототехника. Всплеск новостей в начале года. И затишье. Междисциплинарная отрасль, из которой в ходе её развития стало понятно одно – уровень развития IT существенно обогнал всё остальное, что для неё нужно. Механотроника, аккумуляторы, сенсоры, надёжность, вес, прочностные свойства, технологичность, список можно продолжать до изнеможения. Изящный мир «за бесплатно» повторяемых алгоритмов и абстракций столкнулся с суровой реальностью, в которой каждая репликация материального объекта имеет стоимость, характеризуется тьмой параметров, должна соответствовать куче критериев, стандартов etc.

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

TBC

DJI. Урок скорости.

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

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

Лаконично. Фрэнк Вэнг – из «неокитайской» семьи, похожей на пост-советские, но не совсем. Родители – учительница, перешедшая в малый бизнес (без намёков понятно, что достаток китайских учителей такой же хороший, как во всех пост-коммунистических странах), и инженер. Ну и сын с типичными увлечениями, авиамоделизм и электроника. Семья примечательна тем, что в ней понимали – без образования уровня лучших университетов у сына будущего не будет. Но финансовая поддержка планов явно была не блестящей, потому из лучшего был выбран действительно очень хороший Университет Гонконга. В отличие от популярных в пост-СССР факультетов, готовящих к «нематериальному производству» (будь то денег из других денег, будь то программного кода), был выбран факультет электроники. Дальше почти стандартная история.

Студент, фанат радиоуправляемых вертолётов (для его семьи это было очень долго непозволительно дорогим хобби) делает на дому то, что более всего доступно любителям – бортовую электронику самых простых технологически мультикоптеров. Многие так делают. Только есть один нюанс – сделанное продаётся, причём… китайским же учебным заведениям. Объёмы «партий» мизерные, но какую-то денежку процесс приносит. Возникает даже небольшая команда, работающая на дому. В ней ужасы «наждачного перфекционизма» основателя (именно эти слова использовал Фрэнк Вэнг в интервью Forbes) компенсируются мизерными «зарплатами». В итоге команда сокращается до одного основателя при объёмах производства 20 бортовых контроллеров в месяц.

И начинается период «привлечения инвестиций». Тоже очень специфический. Друг семьи (с ласковым прозвищем «скряга») даёт $90 тысяч. Это было единственное финансовое вливание, которое, по мнению Вэнга, было реально нужным в истории компании. Сейчас этот «скряга» – владелец 16% акций DJI и «начинающий миллиардер» (потому что это примерно $1,6 миллиарда). Ещё один крупный инвестор (14% акций) вообще известен только по смешному прозвищу «толстоголовая рыба» и по забавному факту – он вовремя продал свою квартиру и все средства инвестировал в фактически «компанию из одного человека».

«Сугубо китайский» период развития DJI на этом фактически заканчивается. Начинается «заграничный». Контроллеры DJI (пока «компания» не производит никакой затратной механики) начинают продаваться в Новой Зеландии и Германии (всё практически на личных связях между фанатами). И тут в США появляется форум для своих фанатов, DIY Drones («дроны сделай сам»), и происходит небольшой взрыв в объемах, поддержанный резким снижением цены контроллеров (первые модели стоили $2000, новая цена стала более приемлемой для американских самодельщиков, $400).
В общем, DJI как производитель мультикоптеров (а не одного ключевого компонента) сформировалась всего неполных три года назад. Именно тогда компания предложила покупателям набор «собери сам», включающий всё необходимое для построения летательного аппарата.

Если не говорить о финансовых результатах, а о чистой инженерии, всего за 3 года упорные китайцы добились:

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

На примере DJI Agras MG-1 можно все эти достижения рассмотреть. Особенно важно последнее. Компании хватило смелости преодолеть непонятно кем установленный маркетинговый барьер «мультикоптеры неэффективны и потому непригодны для промышленных применений, их роль – летающая камера».

DJI. Урок скорости.

Авионика – независимые модули на CAN-шине, система связи и передачи HD-видео в реальном времени Lightbridge 2 (задержка не более 50 ms, дальность до 5 км), активная с многоступенчатой фильтрацией система охлаждения двигателей (для увеличения срока службы), использующая элементы конструкции (раму) как воздуховоды, применение только не поддающихся коррозии материалов, и, наконец, подсистема прецизионного распыления (дефолиантов, гербицидов) с 10 кг баком (это уже серьёзная цифра), независимо управляемыми сменными активными керамическими соплами (каждое – со своим насосом и двигателем, заявленный срок работы до замены сопла – десятки тысяч часов). Производительность DJI Agras MG-1 заявлена на уровне 2,5-4 гектара в час.

Потрясающий результат всего за три года.

И можно с очень высокой степенью вероятности предсказать дальнейшее развитие DJI (надеюсь, мы сможем проверить этот прогноз). Появление в спектре продукции серьёзной машины с совсем неигрушечной стоимостью $15K и нелюбительским назначением, говорит об очень серьёзных намерениях. Вероятнее всего, уже в следующем году DJI предложит мультикоптер с системой питания на топливных элементах и существенно большей продолжительностью полёта – ресурсов у компании теперь хватает на что угодно, а мультикоптеры в ней знают лучше, чем кто-либо.

В общем, мы ещё услышим от DJI всякое интересное и неожиданное.

$5. И немного паники.

Фонд Raspberry Pi анонсировал новую модель популярного у самодельщиков всего мира одноплатного компьютера-полуфабриката. И установил новую ценовую планку, рекордную для класса такой продукции. Анонсированная конечная цена Raspberry Pi Zero – всего $5 (правда, в реальности пока она наблюдается далеко не везде, что объясняется компенсацией стоимости доставки и малыми локальными объёмами продаж).

Итак, встраиваемый компьютер-полуфабрикат для любителей мастерить в версии уже фактически начала 2016 года за $5 даёт:
- процессор семейства ARM11 с тактовой частотой 1 GHz (всё та же система на чипе Broadcomm BCM2835, что и в прежних моделях);

  • 512 MB ОЗУ;
  • 40-выводный порт GPIO;
  • традиционные для Raspberry Pi порты ввода-вывода и установленный на плате слот для micro SD карты памяти;
  • значительно уменьшенные габариты (по сравнению с предыдущими моделями), 65 мм x 30 мм.

. И немного паники.

По сути, это всё та же Raspberry Pi, без взрывной новизны (что и очень хорошо, с одной стороны, и не очень). Новизна сугубо в цене. Снижение которой достигнуто в том числе и за счёт незначительного упрощения конструкции (выводы GPIO, например, в этой модели не имеют запаянного разъёма), которое нельзя считать принципиальным.

Вывод на рынок модели Zero сопровождается необычными, а в пост-советском пространстве даже можно сказать шокирующими, действиями. Например, 10-тысячный тираж "юбилейного" сорокового выпуска бумажного журнала The Magpi выходит с гигагерцевым компьютером… в нагрузку, причём крохотные габариты и маленькая толщина Zero позволили просто прикреплять подарочный компьютерчик к обложке степлером. Невероятная деталь – мало что нишевый бумажный журнал где-то вообще существует, ещё и такой маркетинговый ход.

Это был скучный фактаж, который есть во всех связанных с анонсом материалах. А теперь попробуем посмотреть на эти же факты иначе.
В таком габаритном исполнении и с такой ценой Zero фактически является «большой микросхемой», или, если больше нравится, «Linux-микроконтроллером». И, похоже, стратегия фонда Raspberry Pi (и стоящей за ним Broadcom) заключается именно в достижении этой цели. Большая пользовательская аудитория любителей, со специфическими потребностями и возможностями, позволяет «обкатывать» на ней системное программное обеспечение, например. Явные недостатки конструкции, не являющиеся ошибкой конструкторов, а технологическими решениями, навязанными её низкой ценой, можно не принимать во внимание («горячий» линейный стабилизатор питания, например). Иными словами – на наших глазах (и при косвенном участии многих из нас) создаётся совершенно новый класс устройств. Это уже не совсем «встраиваемые одноплатные компьютеры», просто потому что класс «embedded single-board» всегда характеризовался очень высокими ценами. Так что, если «стабильная и тучная, пасущаяся на обильном поле бытовой электроники» Broadcom внезапно и спокойно войдёт в сегмент IoT с чем-то весьма новыми и интересным – это не станет неожиданным.

 

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

Действия простые и традиционные - Win + R, запускаем services.msc, останавливаем Connected User Experiences and Telemetry, заглядываем в Properties этого сервиса и запрещаем ему автозапуск.

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

IoT. Попытка навести порядок (в голове) № N+1 (часть 2)

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

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

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

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

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

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

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

Поясню о чём идёт речь на примере объявленного властями города Сан Хосе «аукциона» проекта модернизации уличного освещения. Городские власти хотят заменить 40 тысяч устаревших уличных фонарей на современную IoT-систему светодиодного освещения. Фрагменты её, содержащие более 23 тысяч фонарей, уже модернизированы за счёт грантов и в рамках демонстрационных (читать рекламных) проектов. Теперь наступил коммерческий этап. Но с одним очень хитрым условием-требованием «сурового реализма» - владелец системы должен сам создать механизм её окупаемости.

То есть, все возвышенные слова о «передовитости IoT» - это безусловно хорошо, но ROI – то, что решается владельцем системы.

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

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

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

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

Такие пороги ограничивает сверху область традиционных M2M систем (Machine 2 Machine Communication), а в ней каких-то взрывных изменений никто не ожидает. Но этот факт даёт и дополнительную информацию – в масштабных IoT системах M2M подсистемы могут быть (и должны быть) равноправными и полноценными фрагментами единой архитектуры. Именно это частично и подразумевается в концепции Industry 4.0, и именно для этого классические разработки из мира M2M адаптируются для IoT-применений (например, коммуникационный протокол OPC UA, реализации которого являются фундаментальными для систем промышленной автоматики и M2M).

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

Для компенсации нагрузки – короткий обзор «продуктовых» тематических новостей, совершенно непрофильных для «большой IT». Несмотря на очередное колебание спроса на электронные компоненты и постоянно увеличивающееся число моделей 32-битовых встраиваемых вычислителей, рынок показывает стабильный рост популярности малоразрядных (8 и 16 битов) микроконтроллеров. Объяснение феномену, вероятнее всего, простое – производители буквально «напичкивают» эти устройства интегрированной автономной интеллектуальной периферией, что при низкой цене даёт возможность относиться к ним как к «программируемым дискретным компонентам». И, конечно, сказываются десятилетия опыта разработчиков. Свежий яркий пример – обновление семейства 8-битовых контроллеров Laser Bee компании SiLabs. Казалось бы, видимой программисту архитектуре процессорного ядра этих вычислителей примерно 35 лет (полная совместимость с i8051, модернизации затрагивают только реализацию архитектуры – большинство команд стало однотактовыми, а тактовая частота повысилась до 75 MHz). И на её основе фактически в 2016 году, когда доступна масса копеечных 32-битовых конкурентов, прекрасно поддержанных средствами разработки (например, на ядре ARM Cortex M0), анонсируется целое новое семейство контроллеров. Разгадка такой алогичности проста – конструкторы SiLabs «утрамбовали» в Laser Bee большой «швейцарский нож» аналоговой и прочей периферии, 14-битовый многовходовый аналогово-цифровой преобразователь (ADC), до четырёх 12-битовых цифро-аналоговых (DAC), отдельный 6-битовый DAC, подключенный к входам двух компараторов (аналоговая микросхема, сравнивающая значения напряжений на двух входах и выдающая дискретный результат сравнения), температурный датчик, маленькие, но достаточные для реальных потребностей программируемые логические матрицы, позволяющие переопределить назначение физических выводов микросхемы для удобства проектирования печатной платы. Ещё один характерный пример – обновление Microchip своего 16-битового семейства микроконтроллеров PIC24 моделями с мегабайтом флеш-памяти программ. Мегабайт – это очень много во встраиваемых приложениях. Огромная цифра, потому что в пару десятков килобайтов обычно помещается всё что нужно для реализации иногда очень вычурной функциональности, загрузчик, реализация какого-то M2M протокола и даже что-нибудь для обеспечения надёжности. По-видимому, уже 16-битовые встраиваемые вычислители более чем достаточны и востребованы для аппаратной поддержки реально больших программных систем, раз конструкторы и менеджмент Microchip решились на такой шаг. Ну и, наконец, совсем характерная для IoT новая линейка микросхем от Texas Instruments - SimpleLink CC1310. Это однокристальные гибриды микроконтроллера с полным низкочастотным (до 1 GHz) радиоканалом. Причём процессорное ядро для них выбрано далеко не самым слабым – ARM Cortex M3, а специфический радиоканал позволяет при сочетании массы условий и грамотной реализации всего остального добиваться устойчивой связи на многокилометровых дистанциях. И всё это «упаковано» в крохотный 16-выводный корпус. В этом коротком обзоре забавно, что объём памяти программ у этих микросхем «всего» 128 KB, и он вполне разумен и достаточен для реализации RTOS, стека протоколов и основной функциональности какого-то устройства. Это позволяет представить «программистские возможности» в огромном 1 MB кода программ PIC24 (сравнение тем более допустимо, что, несмотря на 32-битовость рабочих регистров и данных, Cortex M3, как и PIC24, исполняет 16-битовую систему команд).

Такая разносторонняя картина получилась сама собой, просто из анонсов за несколько дней.

TBC

IoT. Попытка навести порядок (в голове) № N+1

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

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

Для начала, давайте вообще забудем об обширном списке доступных IoT-технологий, о всяких стеках протоколов и их реализациях, об аппаратных средствах и прочей важной, но всё же «технологической шелухе». И вернёмся к самому главному вопросу – что такое Thing в термине IoT, и зачем вообще этому Thing тот самый IoT?

Сам этот вопрос содержит одну нарочито сделанную сильно заметной «тонкость» – в нём нет «человека». Но мы же говорим об «интернете вещей», ведь правда? Интернет людей давно создан, и постоянно самосовершенствуется, изменяя номер настолько загадочной версии 2.0+, что никто о ней уже и не говорит. Это важный нюанс, позволяющий избавиться от бесчисленных подмен IoT всякими «пультами дистанционного управления» на основе смартфонов и планшетов – они ровным счётом ничего нового ни в «вещах», ни «для людей», не создают. Управлять цветом и яркостью LED-лампочки можно с копеечного специального пульта управления, а можно вычурно, отобразив простую систему «человек – канал управления – лампочка» на любой стек протоколов, любые системы связи и устройства, ничего радикально не изменится, новые свойства и возможности не откроются ни в лампочке, ни для человека, потому что ничего нового в принципе «вот кнопка управления – вот реакция на её активацию» нет.

Итак, «Thing» в IoT. Оказывается, не я один задаюсь этим вопросом. И сам вопрос настолько популярен, что дошёл до "обсуждения наболевшего" на площадке TED. И где же в этом вопросе «человек», ради которого делается людьми вообще всё?

Без многословности – «человеческая составляющая» IoT заключается в придании новых возможностей, свойств и всего, что в английском языке принято называть «value», предметам из «мира людей» (то есть, созданным людьми для людей).

Если value нет, если это не новая value, то это не IoT, а «нечто другое». Потому фитнесс-браслеты, «умные кроссовки», программные пульты дистанционного управления (ПДУ) для смартфонов etc – это не IoT, это эволюция традиционных шагомеров и ПДУ (причём эволюция не всегда рациональная, часто основанная на принципе «потому что теперь мы это можем»). Нет value в этом. Что и объясняет не только скучное развитие этих рыночных сегментов, но и дерзость тех же китайских производителей, реагирующих на всплеск популярности резким «сбросом рыночной цены» (фитнес-браслеты типа Mi Band, уронившие ценовую планку до уровня $15 – это только начало). Раз нет новой value – агрессивные производители просто заполняют временно популярную нишу, «вынимая» единственно доступную value из объёмов продаж.

Так где и как формировать и извлекать эту новую value? Почему-то все боятся ответить на вопрос прямолинейно.

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

Если бы я писал это поверхностно, чтобы отписаться, на этом бы и остановился. Но здесь есть нечто латентное, к чему следует привлечь внимание тех, кто сейчас пытается «вписаться в IoT», но не чувствует в себе искры гениальности.

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

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

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

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

Восстановим недостающее.

В реальном мире «предмет» (ещё раз уточняю – нечто, созданное человеком для людей) является чьей-то собственностью. У него есть владелец, и для этого владельца предмет характеризуется стоимостью владения. Из банального следует нечто совершенно не банальное, чего прямым текстом отыскать трудно – для реального успеха IoT-проекта стоимость «нового IoT предмета» должна соответствовать стоимости традиционного аналога (если он существует) и value от его IoT-составляющей. Если традиционный холодильник стоит $500, а его IoT-конкурент $1500, и value от этого IoT никто не может внятно объяснить – IoT-холодильников не будет (что с ними и произошло). Да, такой продукт может какое-то время побыть нишевым, и даже найти своего покупателя, но никакого «нишевого Internet для избранных ценителей» почему-то не существует, а все попытки его построить оборачивались провалами. Из этого же банального следует, что право владения должно быть обеспечено и гарантировано. То есть, это область security. К которой мы ещё вернёмся, причём вовсе не из-за очевидных рисков (это было бы слишком просто), а в контексте value за счёт IoT.

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

И вот, наконец, о владельце. «IoT-предмет» в этом аспекте совершенно нов. Он формирует интересную модель коллективной собственности, в которой value создаётся именно за счёт дополнительной, избыточной информации, получаемой из массового владения «предметами», но эта информация не является конечным продуктом, более того, она не просто сугубо «побочна», а в общем случае – синтетическая на основе «побочных информационных продуктов». Это действительно совершенно новое явление, потому и некоторые специалисты не боятся говорить о новой промышленной революции IoT, причём в Германии, например, вообще принято говорить не об IoT, а о «Промышленности 4.0». А из этого очевидного соображения следует нечто совсем не очевидное. «Владение» в IoT распространяется на эту самую побочную информацию, которая является источником value. Пока я не слышал ни об одной системе, которая создавалась бы с учётом этого «внезапного открытия». И существующая модель со всеми big data и аналитиками выглядит примерно так – вы там создавайте масштабные системы нижнего уровня (изучайте прикладную область, ищите где и как из можно сформировать value, развёртывайте все эти сенсоры), а право владения value остаётся у собственника аналитической платформы.

TBC

Intel вернулась на микроконтроллерный рынок

Позавчера случилось нечто трудно предсказуемое (хотя, по логике, ожидавшееся). И уж совсем неожиданное в техническом исполнении. Но не будем забегать вперёд, и начнём с терминов и истории, они важны.

Микроконтроллер – завершённый вычислитель, содержащий на одном кристалле всё необходимое для работы, включая память программ, оперативную память, подсистему ввода-вывода etc. Первое такое устройство, TMS 1000, разработали в 1971 году и пустили в масштабное серийное производство в 1974 в Texas Instruments, это была 4-битовая машина с объёмами памятей, измеряемыми в битах (на снимке кристалла красным ограничена область 512-битового ОЗУ, зелёным – 1024-битовой постоянной памяти):

Intel вернулась на микроконтроллерный рынок

За долгие годы TMS 1000 в более чем сорока вариантах и конфигурациях было произведено неисчислимое количество, известен только оценочный порядок – сотни миллионов. На пике спроса TMS 1000 стоил около $2 в партиях. Несмотря на первопроходческий характер, TMS 1000 показал удивительные характеристики надёжности – по данным TI, один сбой (аппаратный, естественно) приходился в среднем на 240 лет непрерывной работы микросхемы.

В 1976 на новый микроконтроллерный рынок вышла Intel со своим 8-битовым контролером i8048, ставшим основой семейства MCS-48 (трудно поверить, но клоны i8048 производятся до сих пор), и через четыре года расширила свою микроконтроллерную линейку семейством MCS-51 с, опять же, до сих популярной микросхемой i8051. С тех пор, кроме расширений исключительно удачного семейства, MCS-151 и MCS-251, специализированного (для Ford) i8061 и семейства MCS-96 на его основе, в Intel к микроконтроллерам с ядром собственной разработки в серийной продукции не возвращались.

Вот что важно в контексте – все «ранние» микроконтроллеры Intel никакого отношения к архитектуре x86 не имели и были на неё непохожи настолько, насколько это возможно.

И вот, в начале ноября 2015 года Intel выводит на рынок нечто совершенно необычное – пока небольшое семейство микроконтроллеров с процессорами, исполняющими набор команд архитектуры x86 (IA-32), Intel Quark D1000 и D2000. И, параллельно с ними, ОС реального времени Wind River Rocket, а также сервис, обеспечивающий разработку ПО в этой ОС для нескольких целевых платформ.

Начнём с уже доступного (то есть, серийного) Intel Quark D1000. Это крохотная микросхема во всего 40-выводном корпусе, «чистый микроконтроллер», а не традиционный для Intel «процессор в embedded исполнении», без встроенных средств и шин подключения внешней памяти.

Несмотря на систему команд, являющуюся подмножеством IA-32 (и соответствующую ей регистровую структуру), процессор этого контроллера – гарвардской архитектуры, с раздельными адресными пространствами для памяти кода программы и для памяти данных. Шина доступа к памяти команд – 128-битовая, к памяти данных – 32-битовая.

О суперскалярности в документации ничего не сказано (соответственно, её нет), назван только пятиступенчатый конвейер (совсем точно - single-issue, in-order) с BTFNT предсказанием ветвлений (Backward Taken Forward Not Taken, расписывать это не буду, привожу сугубо для интересующихся, материалов более чем достаточно).

Команды умножения и деления реализованы аппаратно.

О том, что процессорное ядро создавалось для приложений реального времени и для микроконтроллеров именно, говорит, например, заявленная 21-тактовая латентность обработки прерываний (что для процессора с высокоуровневой CISC системой команд – не такая простая задача).

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

Intel вернулась на микроконтроллерный рынок

Трудно в это поверить, но, если бы не IA-32 частичная совместимость, процессорное ядро было бы очень похоже на… MIPS32. Ещё забавнее в этом микроконтроллере наличие системообразующего «фрагмента» из мира ARM – шин семейства AMBA (опять же, для интересующихся - AHB-Lite и APB).

В общем, в Quark D1000 Intel показала миру совершенно новое процессорное ядро. И новую системную архитектуру на уровне кристалла. Это факт.

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

Аналоговая подсистема содержит шесть микропотребляющих компараторов (аналоговые функциональные узлы, выполняющие сравнение напряжений) и 12-битовый аналогово-цифровой преобразователь (с автоматической калибровкой, возможностью коммутации сигналов от 19 физических выводов и частотой выборки 2,4 мегасемпла), способный работать самостоятельно, при «засыпании» остальных подсистем, и «будить» их при готовности результата измерений. К интересным особенностям АЦП относятся задаваемая программистом таблица «опроса физических выводов» и FIFO буфер для результатов 32х измерений.

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

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

Отдельного описания требует подсистема памяти (или, точнее, памятей), она отличается от большинства аналогов. D1000 имеет две физических области флэш-памяти размерами 32 KB (речь идёт о килобайтах) и 4 KB. Первая предназначена для хранения исполняемого кода, вторая – для данных. Эти области памяти доступны с помощью разных шин, 128-битовой (память кода) и 128-битовой и 32-битовой (память данных). Флэш-память не отличается высокой скоростью, при максимальной тактовой частоте 33 MHz доступ к ней требует двух циклов ожидания процессора (на частотах ниже 6,7 MHz ожидания вообще не требуется). У D1000 есть ещё третья энергонезависимая память – системное ПЗУ (постоянное запоминающее устройство), где хранятся коды загрузчика и, что интересно, сервисные подпрограммы, в списке которых – AES шифрование и дешифрование 128-битовых блоков данных и операции с ключами AES (при максимальной тактовой частоте требующая всего 34 микросекунд процессорного времени), модификация содержимого памяти программ (то есть, D1000 позволяет программно обновлять свою «прошивку»). Оперативная память имеет объём 8 KB, все регистры всех периферийных устройств отображены в единое адресное пространство оперативной памяти.

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

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

Все типовые и нужные последовательные интерфейсы (I2C, SPI, UART) присутствуют, со всей требуемой аппаратной поддержкой.

Из этого краткого описания можно сделать один вывод – на рынке микроконтроллеров появился новый игрок, с неожиданной и нетиповой стратегией. CISC-микроконтроллер, конечно, не такая большая редкость, как кажется на первый взгляд. Но 32-битовый x86-совместимый – это нечто совершенно новое. Очевидно, что в Intel сделали ставку на готовность программистов принять такую конструкцию (ни для кого не тайна, что x86 процессоры являются де-факто стандартом в системе образования, например) и на доступность практически любых средств разработки для них (а также опыта их создания). Шаг более чем логичный. Принципиально новая архитектура (которую в Intel без всякого сомнения способны разработать и реализовать очень быстро, если судить по ревизиям документации D1000, от начального её релиза до появления продукта прошло менее шести месяцев), при любых её достоинствах потребовала бы создания целой огромной инфраструктуры, которая в мире x86 существует не одно десятилетие.

У всех производителей 32-битовых микроконтроллеров за один день появился очень опасный конкурент. К тому же, вероятнее всего, Intel не пойдёт по пути открытия и лицензирования IP (модель ARM) – производственные мощности корпорации колоссальны, и если в корпорации при всех особенностях её фабов нашли способ снизить стоимость производства необъятного количества дешёвых микросхем (пока известно, что D1000 будет стоить в пределах $2 в партиях), то никакой особой нужды в повторении бизнес-модели ARM у Intel нет.

Но это ещё не всё. Входящая в Intel Wind River подкрепила вывод новых микроконтроллеров на рынок новой микроядерной ОС реального времени и средствами разработки для неё. И здесь наблюдается «отступление от канонов». ОС Wind River Rocket объявлена бесплатной (и без роялти), с интересно открытыми исходными текстами (в которых можно рассмотреть, что целевой платформой x86 область применения RTOS не ограничивается, в дереве исходных текстов есть платформенно-зависимые каталоги и для ARM, например). В двух словах описать модель поддержки разработки ПО для ОС Rocket можно так – сервисы Wind River предлагают полноценную онлайн-IDE (очень приятную, надо сказать), симуляторы, кросс-компиляторы, отладчики, в общем, всё, что необходимо, сопровождают это развитой системой подсказки по API ОС, и вот через эту полную web-среду можно «добраться» до исходных текстов ОС. Необычная и интересная модель, к которой многие разработчики RTOS шли десятилетиями. Большего пока ничего не скажу, чтобы разобраться со всем этим надо прилично времени.

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

Тема x86-совместимых микроконтроллеров и Rocket RTOS заслуживает продолжения, потому что это действительно очень интересно. Время покажет, насколько контроллеры семейства Quark будут «доставабельны» (критический показатель, никакой симулятор не заменяет реальное «железо»), особенно с учётом специфики нашего рынка компонентов. Но что-то мне подсказывает, что такие большие и согласованные проекты реализуются не «на один день», они надолго. Так что hype из-за Internet of Things хоть и hype, но на деле, всё-таки, нечто куда большее.

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

 

Alphabet OS?

Трудами журналистов Wall Street Journal на днях поднялся шум о стратегии Alphabet (более привычно Google), вынудивший даже отреагировать верхушку корпорации. Так как шум был «ни о чём», повторять его причину не буду (и даже ссылки не привожу, потому что это будет ссылка "ни на что"). Но даже в неправильно понятой и интерпретированной журналистами информации оказалось нечто очень интересное.

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

Alphabet OS?

Интересно попробовать оценить то, что у Alphabet уже есть, и подумать, чего реально не хватает для появления вполне полноценной "большой" рабочей ОС.

Итак, есть – свой кросс-платформенный 32х и 64х битовый (ARM, x86/x64, MIPS) минимальный дистрибутив ОС Linux, лежащий в основе Android, мощная и развитая инфраструктура разработки драйверов для специфических «мобильных» узлов (эта инфраструктура обеспечивает появление тысяч реальных устройств), полностью виртуализированный развитый уровень userspace, основанный на действительно хорошем «компиляторе в ходе инсталляции» ART, содержащий реализованные очень важные подсистемы (локализации, 3D на основе промышленного стандарта OpenGL, etc) и поддержанный различными инструментальными средствами и огромным количеством разработчиков, и над всем этим – работающий гигантские «рынок программ» и машина монетизации, механизмы обновления ПО устройств, учебная инфраструктура, сервисы, дающие в обмен на приватность (этот обмен – основа монетизации) массу удобных и нужных пользователям функций и инструментов.

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

Что в том, что есть, уникально именно для Android? Конечно, архитектурная модель userspace и её реализация, прошедшая (и проходящая) многоэтапное эволюционное развитие, очень быстрое по меркам индустрии, но в целом совершенно традиционное. А также планетарного масштаба механизм распространения кросс-платформенного прикладного ПО с компиляцией в код целевой платформы машиной пользователя. Этого нет ни у кого, и это оказалось на удивление живучим и удачным (иначе Android не стала бы тем, чем является).

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

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

Так как в Google всегда умели очень тихо готовить что-то большое (и также тихо что-то отправлять в небытие), гадать обо всём этом смысла нет, но увлекательно. Но и какие-то страшные и непреодолимые препятствия на пути к «настольной Android» высмотреть трудно (даже невозможно). Ограничение трех «мульти-», о которых говорилось выше, не являются принципиальными технологическими, а, скорее, отражают специфику использования мобильных устройств, для которых пока предназначена Android. От раннего вывода на рынок чего-то, в чём эти ограничения устранены, вероятнее всего, Alphabet/Google удерживают повышенные риски, связанные с обеспечением безопасности, и реальная «почти ненужность» в устройствах, более ориентированных на «потребление контента», чем на его создание.

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

Давайте вспомним на уровне описания «рабочие станции» скольки-то там летней (скажем, всего лишь 15-летней) давности, например, легендарные от Silicon Graphics. Это были многопроцессорные (сравнительно «низкочастотные» MIPS, тактовая частота до полугигагерца) 64-битовые машины с объёмом физической оперативной памяти до 16 GB, с характерными OpenGL-акселераторами, работающие под управлением ОС IRIX (гибрид UNIX и BSD). И это были прекрасные (но очень недешёвые) для своего времени машины. И попробуем ответить себе на вопрос – чем они радикально отличаются от машины с «64-битовым 4-ядерным x86 или 8-ядерным ARM/MIPS процессором или несколькими процессорами, с объёмом оперативной памяти до 16 GB, с акселератором OpenGL, работающей под управлением дистрибутива UNIX-подобной ОС Linux»? Я не вижу принципиальных различий. Кроме двух. Первый – цена. Второй – ориентированность «на пользователя» ОС. И самое забавное - второе устройство уже стоит порядка $300, при этом содержит недешёвые радиоканалы мобильной связи и аккумулятор, явно не являющиеся в десктопах, например, первой необходимостью. Второе устройство знают все – это смартфон или планшет.

Очень интересная стратегия. Характерно «наоборот», как было почти всё в истории Android. От решения тотальной виртуализации userspace для мобильных устройств с ограниченными ресурсами («очевидно неправильное», потому что нативный код всегда быстрее и требует меньше энергии для питания вычислителя, чем виртуальная машина). Через миллионнократно раскритикованную фрагментацию «разные системы для разных устройств», осложнённую реактивной скоростью развития системы. Через войну с казавшимися непобедимыми столпами мобильного рынка – Apple, Nokia, Blackberry. И вот всё это небезболезненное привело к системе, радикально отличающейся от предшественниц, но сохраняющей высокоуровневую совместимость почти со всем наработанным ранее. За рекордные сроки (которые прямолинейно подтверждают в том числе и правильность архитектурных решений).

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

Первый фактор можно назвать сложно, «устоявшейся доступностью избыточных вычислительных мощностей, снижающей потребности в модернизации аппаратных средств». Но объяснить просто – даже если ваш рабочий компьютер оснащён процессором класса i5-2500K и 16 GB оперативной памяти (а это более чем доступная конфигурация фактически пятилетней давности), трудно придумать реальные нужные для работы локальные задачи и ПО для их решения, для которых бы этой машины сегодня не хватило (будь то CAD/CAM/CAE, EDA, дизайн, что угодно). Пятилетний «срок актуальности» - огромная цифра. Эхо её – снижение спроса на ПК. Возможности огромного парка машин всё ещё актуальны и даже избыточны.

Второй совершенно латентный фактор – в Google собрали исключительно ярких специалистов, стоящих за историей разных весьма нетривиальных OS, и влияние этих специалистов на культуру проектирования и общий «внутренний идейный уровень» очень велико. Многие идеи, сильно обогнавшие своё время (например, из ОС Plan 9) до сих пор где-то очень тихо развиваются внутри огромной корпорации.

Третий вовсе уж латентный фактор – из-за уникальности собственной внутренней IT-инфраструктуры (которую безоговорочно можно считать одной из лучших в мире), Alphabet располагает и уникальным опытом разработки «многомашинных» (кластерных, etc) систем.

Попробуем сложить всё это в одно целое.

С одной стороны, индустрия нуждается в новом буме «обновления железа». Этого заждались производители и все цепочки сбыта. И, из-за продолжающегося спада продаж (речь о десктопах, в первую очередь) явно горит желанием «компенсации за счёт бума», что означает и желание снижения стоимости разработки. С другой стороны, эффект «долгой актуальности» никто не отменял, и бум может оказаться коротким, до насыщения. В таких специфических условиях логичным может оказаться совершенно «неправильное» решение. Например, дешёвые завершённые одноплатные немодернизируемые компьютеры. Принципиально работоспособные самостоятельно, но позволяющие при необходимости собирать «персональные кластеры» просто способом добавления «узлов-плат». Опыт, знания и умения в Alphabet для этого безусловно есть. ОС – без сомнения будет. Да, это «совершенно неправильно» на первый взгляд. Но мы и говорим о корпорации, которая доказанно умеет быть очень эффективной в совершенно «неправильных» гигантских проектах, влияющих на макроуровне на целые индустрии. Помнится, в Google был довольно странный, но очень инженерно красивый, проект Ara – модульного смартфона, собираемого из блоков, скреплённых с помощью электроперманентных магнитов (кстати, возглавлял этот проект Пол Еременко, выходец из Украины, выпускник MIT с опытом работы в DARPA и Motorola). Проект «затих», но не продан вместе с Motorola и не закрыт. Не знаю, как для смартфонов (с их габаритами), но вот для модульных рабочих станций (или ПК) это решение точно выглядит удивительно подходящим.

Можно выстроить ещё много версий, отталкиваясь от возможностей и опыта Alphabet/Google. Остаётся только один открытый вопрос – решатся ли в Google на только «взрослую ОС Android», или используют рыночную ситуацию и заявят нечто большее? Опыта в этом у корпорации не занимать. А также дерзости.
Но понятно одно – с появлением «большой Android» станет интереснее.

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

Очевидное, но невероятное (а также agile)

Сразу предупреждаю – в первой части этой записи выдерживать серьёзный стиль просто невозможно. Цирк не обещаю, но смешно будет. Потому что «внезапность из-за банального» – это всегда очень смешно. А что очень смешно – то, чаще всего, неожиданно серьёзно.

Без всяких предисловий – есть в Атланте (штат Джорджия, США) банковский холдинг SunTrust Banks. Не такой, чтобы гигантский, но и далеко не маленький – порядка $175 млрд активов (на 2013 год, сейчас под $190 млрд), почти 1500 отделений и 2500 банкоматов.

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

И вот в этом холдинге решились на аутсорсинг каких-то фрагментов IT-инфраструктуры, что позволило «освободиться» от порядка сотни работников IT-сектора. Казалось бы, при общем числе работающих в холдинге чуть большем, чем 26 тысяч, это всего лишь 0,38%, и такой уровень увольнений вообще никого не интересует. Но именно это увольнение стало чуть ли не знаковым, о нём пишут в весьма солидных изданиях, причём пишут чуть ли не в стиле «ЧТО ЭТО БЫЛО?».

Причина такой реакции предельно проста. Неизвестные герои из HR холдинга SunTrust Banks, похоже, проложили тропу в «новый прекрасный мир». Потому что в условиях принудительного увольнения «первой сотни героев agile эпохи» значится удивительный, доселе невероятный, пункт – они обязаны по первому требованию оказывать консультационные услуги холдингу на протяжении двух лет без всякой оплаты этих услуг (только с «обоснованными и необходимыми» материальными компенсациями, вероятнее всего, на транспорт, телефонные переговоры, проживание в гостиницах etc).

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

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

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

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

I understand and agree that, in my role at SunTrust, I have been responsible for and involved in numerous matters and projects of a significant and/or confidential nature and that, in some instances, I possess knowledge regarding those and other matters that is unique to me and of value to SunTrust or any subsidiary, and that SunTrust or any subsidiary may have need of my continuing assistance in the future with respect to investigations, audits, litigation or potential litigation related to these matters.

Беспрецедентный прецедент, мотивы которого фактически универсальны для IT. Для product owner’ов самого чахлого стартапа создаваемый продукт исключительно важен, на каких-то этапах разработки обязательно конфиденциален, и его непосредственные создатели должны всё это понимать. То есть, прецедент SunTrust Banks вполне логично можно считать довольно общим.
О правовых аспектах этого загадочного события толком ничего не известно.

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

Почему речь идёт о «реакции», и почему, всё-таки, такой странный прецедент важен? Давайте посмотрим на методологии проектирования. Что у нас там сейчас «единое и для всего»? Agile, конечно. Хоть бы это никакая не методология (жуткое слово с кучей непознаваемых смыслов), а обобщённый способ реакции на взрывной рост популярности всего одного класса ПО (web-центрического, если нравится), для которого выполняются три критерия:

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

И что же будет итогом этого? Давайте попробуем ответить на этот вопрос искренне. Будут сотни миллионов строк кода без всякой проектной документации (просто потому, что она дико дорогая и в agile-проектах создаётся вроде как "параллельно", на деле же «потом, в нагрузку, если повезло», то есть почти никогда).

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

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

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

Именно эта простая логика в какой-то мере объясняет шум из-за истории SunTrust Banks. Все это как-то по-своему это понимают, и все боятся в этом понимании себе признаться.

Иными словами – если заказчик (или product owner) на этапе проектирования не знает, чего хочет, кто может хоть что-то сказать о его возможных желаниях на прочих этапах всего жизненного цикла созданного? А прецедент SunTrust Banks как бы подсказывает возможный «изящный» способ временного разрешения этого несмешного противоречия в некоторых "неприятных, но типовых, условиях".

Похоже, именно поэтому из-за такой латентной мелочи и поднялся шум.

Что будет дальше с этой историей – неведомо, возможно, она временно тихо уйдёт в небытие (условия конфиденциальности etc). Но знать о ней точно невредно.

Для завершения – традиционные полезные «в быту» мелочи. Их две, и они совершенно необязательные, но всё же.

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

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

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

ARM mbed OS (и пара полезных мелочей в качестве компенсации)

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

mbed OS – нетривиальная операционная система, которую в ARM позиционируют как «ОС для IoT», и речь идёт о потенциально самой большой (если оценивать по численности инсталляций) части IoT – об оконечных устройствах, неисчислимых сенсорах и актуаторах.

Естественно, в ARM не ограничиваются только этой частью IoT, и полный технологический стек для реализации завершённых IoT-систем называют «mbed IoT Device IoT Platform». В более привычных для традиционных IT терминах mbed OS по сути является программным стеком, реализующим всю «клиентскую часть», включая безопасность и сетевые протоколы разных уровней.

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

Понятийный аппарат: состояние (state) – «точка» в дискретном временном пространстве, полностью описывающая информационный «снимок» системы (или, если хотите, всех переменных в ней), событие (event) – это значимое изменение состояния. Классическим образцом event-driven архитектур являются конечные автоматы (FSM, Finite State Machines), которые технологически реализуются как угодно (даже полностью аппаратно) – от традиционного оператора switch() в бесконечном цикле до управляемой данными табличной структуры и шаблона проектирования State (рекомендую C-программистам этот замечательный и детальный обзор Адама Петерсена). Латентное принципиальное отличие управляемых событиями ОС от классических систем – однопоточность и отсутствие механизма диспетчеризации потоков или процессов (tasks scheduler). А уже это, в свою очередь, означает, что вся ответственность за принципиальную работоспособность системы в целом лежит полностью на программисте, и что о соблюдении фундаментальных для систем реального времени принципов речь вести можно только на уровне «прикладного ПО». Этот базис можно считать достаточным для дальнейшего обзора.

В отличие от многих RTOS с широким диапазоном разрядностей поддерживаемых архитектур, mbed OS создана исключительно для 32-битовых микроконтроллеров ARM, и, возможно этот факт стал основой выбора главного языка реализации – C++. Но язык реализации унаследованных высокоуровневых подсистем безопасности (например, разработанные в приобретённой ARM компании Offspark библиотеки PolarSSL) и даже таких важных абстракций, как сокеты (sockets), остаётся прежним, C. Так что в итоге получается «двуязычная embedded платформа», в которой почти вся низкоуровневая системная часть – объектно-ориентированная, на С++ (что само по себе весьма необычно).

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

С высоты птичьего полёта вся «системная часть» ОС в текущей бета-версии состоит из настроенного над двухуровневым стеком абстракции аппаратных средств «диспетчера событий» (event manager), названного MINAR. Упомянутые два уровня абстракции образованы минимальными С-библиотеками HAL (Hardware Abstraction Layer) и использующими их C++ классами «драйверов». Несмотря на открытость исходных текстов, уровень HAL явно будет претерпевать достаточно серьёзные изменения (сейчас фактически есть две конкурирующих реализации, одна – "оболочка" над официальным "уровнем абстракции железа" ARM CMSIS) и не рекомендуется разработчиками для прямого доступа из пользовательского уровня, поэтому последний, уровень драйверов, умышленно «поднят» до объектно-ориентированного дизайна и языка реализации.

С точки зрения embedded-программиста, MINAR почти предельно прост, это по сути «переключатель» вызовов функций из заданной в теле программы очереди. Что очевидно означает – если управление из такой функции вообще не возвращено программистом в диспетчер, никакого переключения событий больше не будет вообще. Большинство embedded-программистов неизбежно писали что-то подобное «руками», обходясь без высокоуровневых объектно-ориентированных абстракций. И здесь кроется сразу несколько опасных деталей. Обманчивое слово «функция» может обозначать и метод класса, имеющего время жизни и область видимости. И если логика программы такова, что между переключениями видимость или существование объекта класса изменится – всю систему, в которую встроен вычислитель, вероятнее всего ожидает крах. Вторая очень большая сложность систем с таким принципом переключения задач – конечно же, согласование времён исполнения функций-событий. Это заслуживающая отдельного обсуждения тема из области практического программирования, здесь же стоит ещё раз подчеркнуть – mbed OS не является системой реального времени, но написанное для неё ПО можно разработать так, что оно будет соответствовать специфическим требованиям задачи.

Следует заметить, что MINAR не «окончательно единственное ядро» системы, а всего лишь «одно из возможных, работоспособное в текущем состоянии проекта». В планах ARM реализация полноценного ядра RTOS с вытесняющей многозадачностью (точнее, многопоточностью) в 2016 году, и защищённое ядро-гипервизор uVisor для высокоуровневых микроконтроллеров, имеющих аппаратные подсистемы защиты памяти.

Кроме диспетчера событий и уровня абстракции аппаратных средств mbed OS фактически традиционен и предлагает уровень абстракции сокетов с поддержкой Ethernet и 6LoWPAN интерфейсов (естественно, список физических контроллеров пока очень ограничен), Bluetooth LE стек (только для контроллеров компании Nordic Semiconductor), стек SSL/TLS безопасности (популярные библиотеки PolarSSL), стеки некоторых высокоуровневых IoT-протоколов (до сих пор рано говорить о существование «единого стандарта в IoT», потому можно считать эту часть системы «одной из возможных»).

В проекте довольно интересна собственная технологическая поддержка. Своя система компиляции-сборки yotta (на базе популярной Cmake), своя поддержка регрессионного тестирования etc. В целом, параллельно с ПО для целевых платформ, в ARM создают и свой технологический стек.

Итак, ARM делает очередную заявку на «полное замыкание» мира её интеллектуальной собственности (IP) на себя, вплоть до технологического кросс-инструментария. Заявка не первая (уже в 2012 году у ARM была операционная система в составе CMSIS 3). И, похоже, этот процесс оказался весьма непростым (если судить по срокам и наблюдаемым результатам). Для основанных на IP ARM реальных микросхем есть десятки конкурирующих проверенных временем и опытом ОС, и ARM нужно сказать разработчикам какое-то такое «волшебное слово», которое сделает новую систему настолько привлекательной, чтобы оправдать затраты на её освоение и поддержку в своих разработках. Пока, по моему скромному мнению, этого слова не слышно. Проект безусловно интересный и заслуживающий внимания, но этого мало.

А теперь, в качестве компенсации за всё это – немного очень полезных маленьких утилит.

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

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

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

 
 
IDC
Реклама

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