Как системный подход помогает управлять городами
Все вокруг построено согласно определенной архитектуре: здания и города, печатные платы устройств и протоколы, по которым они подключаются к интернету — и даже карьера бывает подчинена корпоративной архитектуре. О чем бы мы ни говорили, структурный подход облегчает процесс работы и позволяет добиться лучшего результата. В материале, подготовленном вместе с компанией Huawei, N + 1 рассказывает, что за проблемы решает архитектурный подход в IT (и не только) и какой путь к сегодняшнему дню прошли умные системы управления городами.
Когда говорят об «архитектуре», в первую очередь на ум приходят города. Бывает, что решения архитекторов не лишены изъянов, но постройки становятся культовыми. Яркий пример — Пизанская башня. Иногда архитекторы забывают, что строят здания не в Minecraft, и тогда появляется что-то вроде отеля Вдара в Лас Вегасе, чьи изогнутые зеркальные стены превращают окрестные улицы в горящий ад. Порой архитекторов осеняют действительно интересные идеи — например, позволить пешеходам самостоятельно вытоптать тропинки, после чего замостить их, как это произошло в университете штата Огайо.
От архитектурных объектов требуется соответствовать назначению и приносить пользу, выдерживать нагрузки и быть эстетически приятными. В цифровом мире архитектура должна соответствовать тем же требованиям — разве что эстетическая красота заменяется понятностью и удобностью для пользователя.
Безусловно, можно написать программу для себя или небольшой коммерческий проект, вообще не обращая внимания на архитектуру. Однако при создании сложных систем необходимо учитывать тысячи параметров и обеспечивать взаимосвязь между множеством компонентов. Здесь не обойтись без четко прописанного плана, который описывал бы как состав компонентов, так и взаимодействие между ними. Таким планом и является архитектура системы. Это верно для любых сложных объектов и систем, создаваемых человеком — не зря целые книги посвящают архитектуре предприятий, процессоров и информационных систем, а Международная организация по стандартизации (ISO) выпустила отдельный стандарт ISO/IEC/IEEE 42010:2011 «Системная и программная инженерия. Описание архитектуры».
Кстати, согласно ISO, определение архитектуры звучит так: «Архитектура (системы) — фундаментальная организация системы, реализованная в ее компонентах, их взаимосвязях друг с другом и с окружающей средой, и руководящие правила проектирования и развития системы».
В вычислительных машинах архитектурный подход появился раньше, чем некоторые города на карте. Задолго до трудов фон Неймана в переписке его обсуждали Чарльз Бэббидж и Ада Лавлейс, которые вместе работали над несостоявшимся проектом аналитической машины — прообразом современного компьютера. Конрад Цузе описывал архитектурный подход при патентовании первой версии своей вычислительной машины Z1. Впрочем, архитектуры современных интеллектуальных систем имеют мало общего с этим механическим устройством.
Архитектурный подход к созданию ПО был сформирован гораздо позже. В конце 1960-х это сделал голландский математик и исследователь структурного программирования Эдсгер Дейкстра. Возникновение подобной инициативы было связано с ростом сложности задач, которые решались с помощью компьютеров, и необходимого для этого программного обеспечения.
Сегодня в большинстве случаев ПО создается по принципу экономии времени программиста. Тогда же время вычислительных машин стоило дороже времени программиста, не говоря уже о технических ограничениях ЭВМ середины прошлого века. В итоге разработчики не имели иного выхода, кроме жесткой оптимизации кода. Парадигма структурного программирования, предложенная Дейкстрой, имела своей целью не только повысить производительность труда программистов, но и сократить число ошибок при разработке, а также упростить дальнейшую отладку и модификацию больших программных комплексов.
Каждый из компонентов объемного проекта в IT выполнен по собственной архитектуре: процессор, макетная плата, сетевое размещение, облачные вычисления и нейросети. Более того, для каждого из них существует не одна, а множество архитектур. От архитектора цифровой системы требуется сделать трудный, но правильный выбор.
Взять, к примеру, RISC и CISC архитектуры процессоров. Едва ли можно сказать, что одна лучше другой. CISC процессоры более производительны, поскольку несколько команд в них можно заменить одной аналогичной. Однако стоят они дороже и потребляют больше энергии, чем RISC процессоры, которые благодаря экономичности и более демократичной стоимости популярны в мобильных устройствах. Инженеру же необходимо понять, какая архитектура лучше подойдет его проекту.
Можно выделить три важнейших комплекса технологий, находящихся в основании современных интеллектуальных систем: программное обеспечение, нейросети и облачные технологии.
Архитектура ПО
Архитектура ПО во многом опирается на логические схемы, в которых рассматриваются элементы программ и связи между ними. При этом выбор архитектуры диктуют множество факторов: это и используемый язык программирования, и устройство, для которого создается приложение, и внешние взаимодействия приложения, например, подключения к базам данных и использование сторонних API. Но некоторые архитектуры вполне универсальны.
Например MVC, или Модель-Вид-Контроллер, в которой данные приложения, пользовательский интерфейс и управляющая логика размещены в разных компонентах, благодаря чему их можно модифицировать независимо. В свою очередь эти компоненты тоже имеют свою архитектуру.
Чем сложнее приложение и выше требования к эффективности работы ПО, тем на более мелкие части эти компоненты могут быть разбиты. Как и архитекторы университета штата Огайо, разработчики программного обеспечения смотрят на цифровые тропинки, протоптанные их пользователями, и в обновлениях учитывают пользовательский опыт, чтобы взаимодействие с программой было максимально быстрым и простым. Архитектура, такая как MVC, серьезно упрощает работу, ведь для изменения интерфейса достаточно изменить одну компоненту — Вид.
Архитектура нейросетей
В мире нейросетей новые архитектуры постоянно появляются в ответ на актуальные задачи. Понятие нейросети было введено в 1943 году Мак-Каллоком и Питтсом и относилось к задаче формализации человеческого мозга.
Первая архитектура, перцептрон, была разработана Фрэнком Розенблаттом в 1957 году. Перцептрон был реализован на компьютере «Марк-1» в 1960 году. С его помощью устройство распознавало некоторые рукописные буквы английского алфавита. Входные элементы перцептрона, S-элементы, напоминают фоторезисторы на матрице цифровой фотокамеры. Каждый S-элемент находится в состоянии покоя или возбуждения и передает его А-элементу, которому обычно соответствует несколько S-элементов с весом -1, 1 или 0. В свою очередь сигналы с А-элементов идут с некоторым весом на сумматор, R-элемент, который принимает решение. Эти веса рассчитываются в процессе обучения нейросети.
Более сложные нейросетевые архитектуры, например, LSTM — долгая краткосрочная память, появившаяся в 1997 году, могут гораздо успешнее решать как задачи распознавания рукописного ввода или речи, так и генерации музыки. А нейросети на основе архитектуры «трансформер» 2017 года уже обучены писать выжимки из текстов и блестяще ведут диалог с человеком.
Облачная архитектура
Все современные цифровые технологии держатся на облачных системах. Когда-то, пожелай кто-нибудь развернуть собственное сетевое приложение, ему пришлось бы строить отдельную серверную комнату и размещать там такое количество серверов, чтобы хватило даже в момент пиковых нагрузок — и неважно, что случается это раз в год.
Сейчас необходимые мощности без проблем можно арендовать и не волноваться о том, как лучше объединить серверы в сеть. Существует три основных формы облачных вычислений:
Архитектура карьеры
Служебная иерархия в компании также построена согласно определенной архитектуре. Доминирующей остается стандартная вертикальная (иерархическая) модель, однако все больше компаний ищут альтернативные принципы управления, усиливая роль горизонтальных связей.
Так или иначе в организации существуют сотрудники и группы сотрудников — отделы. Существуют логические соединения между ними, которые отражают принадлежность к формальным и неформальным группам, формальную и неформальную подчиненность. В стандартной модели влиять на иерархию рядовой сотрудник практически не способен, однако он имеет власть над собственным карьерным ростом. Насколько большую и как создать механизм продвижения по карьерной лестнице, который будет одновременно эффективным и безболезненным, — сложный вопрос, занимающий в том числе математиков.
Но уже сейчас есть и практические советы. Например, можно выделить два основных пути: путь карьериста и путь профессионала.
Первый (малоэффективный) предполагает продвижение через целенаправленное увеличение влияния на вашего руководителя. Второй достигается путем приобретения авторитета у сослуживцев. Путь карьериста отражает развитие вертикальных связей в архитектуре вашей команды (то есть получение репутации и влияние через начальника), а путь профессионала — горизонтальных.
В наши дни у многих компаний на вооружении стоят интеллектуальные системы, координирующие отдельные направления деятельности. Такие системы есть и у современных «умных городов». Впрочем, об автоматизации управления — в масштабах, существенно превышающих уровень одного города — задумались еще в прошлом веке.
В середине ХХ века советский кибернетик Анатолий Китов предложил идею ОГАС — общегосударственной автоматизированной системы учета и обработки информации. ОГАС предполагала создание системы управления экономикой СССР с помощью единой государственной сети компьютеров. Тогда же зародилась идея создания облачных систем: Китов предлагал, вместо распыления советских ЭВМ по тысячам предприятий и институтов, группировать их в вычислительные центры. В мирное время они должны были решать гражданские задачи, а в военное — задачи обороны страны. Доступ к таким центрам предполагалось сделать дистанционным.
В 1960-х проект был переработан академиком Виктором Глушковым, которому удалось заручиться поддержкой председателя совета министров Алексея Косыгина. Однако и он не сумел преодолеть сопротивление чиновников, которые считали, что СССР не нуждается в единой информационной системе, и разрабатывать следует только отраслевые — тогда и началась кампания по внедрению на многих предприятиях автоматизированных систем управления, которая продлилась вплоть до начала Перестройки.
Амбициозность планов Глушкова подтверждается тем, что уже тогда с помощью ОГАС он планировал ввести в СССР систему электронных платежей, а не последнюю роль в провале этого проекта сыграло освещение в мировых СМИ. Издания твердили, что компьютерная система заменит Кремль.
Во многом успешнее сложилась судьба другого проекта — чилийского Киберсина (Cybersyn), системы управления плановой экономикой. В 1970 году на выборах в Чили победу одержал социалист Сальвадор Альенде. Оказавшись у власти, он посчитал, что в стране недостаточно квалифицированных управленческих кадров для реализации намеченных им радикальных преобразований экономики. Компенсировать эту нехватку было решено за счет внедрения единой компьютерной системы.
Для ее разработки в 1971 году в Чили был приглашен британский кибернетик Стаффорд Бир. Ученый считал, что для эффективного управления экономика страны должна быть прозрачной. Основная идея Бира заключалась в использовании кибернетики для управления, которое он сам называл «наукой эффективной организации».
Все экономические показатели должны были в режиме реального времени стекаться в комнату управления в Президентском дворце в Сантьяго. Взаимодействие с ней было сделано максимально простым — все для того, чтобы любой человек в будущем был способен управлять государством и влиять на его развитие. Этот подход отражал политические взгляды Альенде и научные взгляды Бира. Несмотря на технологическое отставание Чили (в 1971 году в стране числилось всего-навсего 57 ЭВМ), Киберсин удалось запустить. Для анализа экономики Чили Бир использовал VSM — модель жизнеспособной системы, созданную по образу и подобию нервной системы человека.
VSM состоит из пяти подсистем:
Вместо иерархической системы Бир предложил расположить между правительством и местными производствами орган управления, который бы контролировал как выполнение распоряжений «сверху», так и сбор и передачу информации «снизу».
В 1972 году компьютерная сеть связывала основные предприятия, институты и несколько министерств. Во время забастовки грузоперевозчиков 1972 года Киберсин помог снабжать трехмиллионный Сантьяго продовольствием, имея в наличии всего 200 грузовиков.
У создателей системы были и другие амбициозные идеи. Например, CHECO, экономический симулятор, который должен был помочь министерствам тестировать решения и реформы до их введения, и CyberFolk — система обратной связи с населением. Предполагалось, что люди, используя портативные устройства, могли бы выражать свой уровень согласия и недовольства определенными решениями правительства, и информация об их взглядах всегда была бы доступна министерствам.
Однако планам развития Киберсина не суждено было сбыться. После военного переворота 1973 года и прихода к власти Аугусто Пиночета проект был свернут, а знаменитый центр управления — взорван по указу нового правительства.
Современные проекты схожего толка и близко не столь масштабны: ни один из них не метит в управление целыми странами, ограничиваясь проектами интеллектуальной модернизацией городов. Их цель — цифровизация и повышение качестве жизни горожан. Это предполагает не только облегчение доступа к муниципальным сервисам и, например, оптимизацию электроснабжения, дорожного движения, но также искоренение чрезмерной бюрократии, борьбу с коррупцией и продвинутые методы отслеживания экологической ситуации.
Программа развития умного города в Амстердаме предлагает жителям больше возможностей для принятия локальных решений. Горожане могут сдавать свои парковочные места в аренду через специальное приложение, а муниципалитеты — решать, каким должно быть освещение в управляемых ими городских районах. Все это реализуется с помощью веб- и мобильных приложений, которые подключены к единой платформе. Новые возможности легко добавляются с помощью подключения новых приложений. С их помощью власти города собирают всю актуальную информацию.
План развития Москвы включает разработку и внедрение до 2030 года единой медицинско-аналитической системы, а также управление городом с помощью технологий больших данных и искусственного интеллекта. Для больших городов с увеличивающимся населением и трафиком это единственный путь развития. Архитектура «умной Москвы» делится на четыре уровня:
Большинство современных концепций умного города предполагает более или менее похожее разделение на слои. Их архитектуру рассматривают с точки зрения используемых технологий, взаимодействия человека и интеллектуальных систем, возможностей сбора данных и развития и многих других.
На пути создания комплексной системы умного города необходимо решить множество проблем: от организации технической инфраструктуры до продвижения новых систем среди населения, скорее всего весьма неоднородного как минимум в смысле технической грамотности. Умный город требует архитектуры, которая бы позволила хранить огромное количество данных, обеспечивая высокий уровень безопасности и возможность их передачи от одной системы к другой с минимальной задержкой; предусматривала бы широкую доступность технологий для всех слоев населения; наконец, не требовала бы исключительных усилий по внедрению.
Амбициозный проект, предлагающий эталонную архитектуру для создания умного города, развернут в китайском Шэньчжэне. Для модернизации власти города используют разработанную Huawei архитектуру Intelligent Twins, которая призвана ввести единую модель для управления городами и крупными предприятиями и способна принимать решения за счет повсеместного внедрения искусственного интеллекта.
Архитектура представляет собой объединение разнообразных технологий: гибридную облачную базу, которая облегчает разработку приложений с внедрением ИИ, разнообразные модели машинного обучения, доступные к внедрению с учетом отраслевых особенностей, а также различные стандарты и протоколы, обеспечивающие связь между всеми компонентами системы: 5G, IoT, IP, Wi-Fi и другие.
Прежде чем подробнее рассказать об «интеллектуальных двойниках», стоит уточнить, что это не то же самое, что цифровые двойники. Последние вполне могут быть частью больших интеллектуальных систем, но у них довольно ограниченная задача. Чаще всего цифровые двойники реализованы в виде дополненной реальности или отдельно существующей цифровой модели, которая помогает сравнивать объекты с эталоном или тестировать отдельные решения перед их внедрением в реальном мире.
Архитектура Intelligent Twins — слоеный торт из интеллектуального взаимодействия, интеллектуального подключения, интеллектуального хаба и интеллектуальных приложений, ведущую роль в котором играют облачные технологии и искусственный интеллект. На нижнем уровне взаимодействия располагаются умные устройства, обеспечивающие взаимодействие с физическим миром. Связь между ними и интеллектуальным хабом — центром Intelligent Twins — осуществляется с помощью операционной системы Intelligent Edge Fabric, которая позволяет хабу взаимодействовать с устройствами на базе разных операционных систем, объединяя их в единую экосистему. Интеллектуальный хаб фильтрует, сортирует и анализирует данные различных типов и формирует выводы на основе общих знаний, отраслевых ноу-хау и контекста, а также осуществляет интеллектуальный анализ. В этом ему помогает гибридная облачная система и технологии искусственного интеллекта. Работа «двойников» на местах реализуется с помощью подхода SaaS, то есть пользователи получают доступ к необходимым сервисам удаленно, посредством браузера или собственных гаджетов.
Внедрение «интеллектуальных двойников» осуществляется поэтапно. Сначала необходимо создать инфраструктуру подключений, выстроить коммуникацию между людьми и объектами, объединить все при помощи IoT и других технологий. Затем создается облачная инфраструктура, способная управлять подключениями и поддерживающая работу с большими данными. В дальнейшем созданные системы оптимизируются и соединяются воедино, проходя тесты на безаварийность и качество работы. Наконец, на последнем этапе внедряется ИИ, который должен взять на себя управление вверенными ему сферами.
На текущий момент Intelligent Twins внедрены в более чем 600 проектов. И если их количество будет расти, возможно, использование единой архитектуры позволит формировать вокруг подключенных к системе городов и предприятий надстройки, которые в будущем позволят вновь вернуться к идее «умных государств» с централизованным сбором данных, умным управлением и контролем ресурсов.
Богдан Сиротич
Расставьте важные открытия человечества по порядку
Когда-нибудь задумывались, что электромобиль появился раньше обычного, бензинового? А о том, что первая модель телеграфа была представлена публике почти за сто лет до, например, периодической системы элементов Менделеева? Действительно, некоторые изобретения человечества кажутся старше, чем они есть на самом деле. Попробуйте расставить 20 важнейших открытий по хронологии. И помните: не все так однозначно, как вам кажется.