В эпоху быстрых изменений критически важна способность компаний изобретать новое и быстро менять направление развития, что для цифровой эпохи означает постоянный мониторинг событий и непрерывный анализ генерируемых в экосистеме компании данных, 80% которых сегодня являются внешними. Как следствие, большинство предприятий и компаний уверены, что им надо стать дата-центрическими и получить возможность управлять данными, чтобы выявить в них скрытые закономерности и раньше конкурентов предоставить своим клиентам то, что они хотят получить, но еще не догадываются об этом. Как же стать компанией, управляемой данными? Для жизни требуется время, и цифровая трансформация не исключение: уровень «дата-центричности» не достигается мгновенно лишь путем внедрения пула новых технологий и инструментов.
Наличие данных как таковых не гарантирует «озарения» для бизнеса, но может способствовать его пробуждению, а для этого нужна эффективная архитектура корпоративной информационной системы. Архитектура (элементы системы в их взаимосвязи и развитии) имеется у каждой системы физического или цифрового пространства, а отказ от системного подхода к ее развитию повышает риск упустить что-то важное — «не увидеть леса за деревьями». Высокая скорость изменения архитектурных элементов — веха современности. Надежность архитектуры можно обеспечить двумя путями. Например, можно фиксировать требования к связям между элементами. А можно фиксировать поток событий и создавать исполняемые семантические модели, реализуя выполнение алгоритмов, управляемое потоком данных, — то есть производить асинхронную отработку операций по мере готовности данных, в противоположность типичной сегодня архитектуре пошагового выполнения команд.
Если раньше было достаточно экономично хранить данные и обеспечивать доступ к ним, то теперь важно уметь повторно использовать уже имеющиеся данные, причем в разных контекстах. Другое ключевое свойство современных корпоративных данных — их связанность, которая порождает, в частности, аналитические умозаключения и новые расчетные характеристики, что позволяет обогащать исходные данные и фактически превращать корпоративные данные в корпоративные знания. Оба свойства меняют представления об архитектуре цифровизации: важными становятся не столько сами данные, сколько их модель. Описание данных, обеспечивающее поддержку их связанности и повторного использования, можно выполнять на основе семантических моделей: на сегодня онтологии являются наиболее развитым вариантом семантического описания предметной области, формализующего знания о ней.
Соединение событийного подхода, семантики и ориентированного на данные принципа управления позволяет поднять планку декомпозиции прикладной области до уровня описания бизнес-операций на языке событий, доступном бизнес-пользователям, что существенно сокращает бизнесу путь «от озарения до монетизации». Сегодня мы попали в лавину технологий цифровизации. Резко выросли возможности обработки данных: облачные сервисы стали товаром, расцвела наука о данных, искусственный интеллект в целом и машинное обучение в частности стали обыденными даже для устройств с ограниченными возможностями (мобильных гаджетов, датчиков и сенсоров Интернета вещей). Все это неизбежно влияет на современные архитектуры и системы программирования, для которых простота разработки и сопровождения ПО — потерянная добродетель.
Простые вещи должны быть простыми, а сложные должны быть возможными. Однако на данный момент это не так: в нынешних программных системах активно применяются виртуализация и сторонние программные компоненты из неизвестных источников, а также существует мешанина перекрывающихся по функционалу технологий реализации разных частей единой, по замыслу ее архитекторов, корпоративной системы. Сложность, динамизм и разнообразие современного ПО постоянно возрастают, и становится очевидной опасность пути, по которому идет нынешнее развитие систем программирования. Жесткие системные архитектуры, широкий спектр технологий, неоправданное заимствование методов реализации из других применений, необоснованное использование виртуализации, трудности управления пакетами и эксплуатации — все это ведет к увеличению сложности программных систем. В ситуации, когда все вещи становятся программируемыми, необходим унифицированный программный уровень для управления сложностью разработки, который освободит разработчиков от нынешней сильно фрагментированной архитектуры. Нужна изоморфная архитектура, в рамках которой различные вычислительные ресурсы выполняют один и тот же код.
В изоморфной системе программирования устройства, шлюзы, пользовательские приложения и облачные сервисы созданы с помощью одних и тех же технологий и в идеале используют одни и те же программные компоненты, что дает возможность гибкой миграции кода. Разработчикам не нужно осваивать многочисленные несовместимые друг с другом инструменты: в изоморфной архитектуре достаточно одной базовой технологии, охватывающей все этапы разработки, и одними и теми же инструментами можно пользоваться при создании ПО для разных вычислительных ресурсов в системе.
Информационная насыщенность и динамичность любой деятельности приводят к необходимости постоянно искать и реализовывать новые или незаслуженно забытые старые архитектуры. Цифровизация в значительно большей степени, чем автоматизация, вытесняет человеческий труд из регулярной рутинной деятельности, и технологии потенциально позволяют человеку продвинуться вверх по пищевой цепочке — отказаться от рутины и использовать интеллектуальные машины, чтобы работать быстрее и эффективнее. Если же работать как робот-оператор, то скоро робот возьмет на себя такую работу. В эпоху цифровизации человек не оператор, а архитектор.
Дмитрий Волков
DOI: 10.51793/OS.2021.19.80.001