От объекта к системе
Как модель реального мира определяет архитектуру цифровых платформ
Аннотация
Современные инженерные системы управляют огромным количеством данных: изделиями, документами, требованиями, ревизиями, конфигурациями, экземплярами, связями, пользователями и проектами. Однако сложность таких систем возникает не только из-за объёма данных. Она возникает прежде всего из-за того, что разные по смыслу сущности начинают смешиваться в одной модели.
Эта книга начинается с простого вопроса: что такое объект?
Постепенно этот вопрос приводит к более глубокому исследованию. Если объект должен сохранять свою идентичность, а его описание, свойства, связи и административное состояние изменяются во времени, то они не могут быть представлены одной и той же сущностью. Из этого следуют разделение объекта и знания о нём, появление версий и ревизий, различение конфигурации, исполнения и экземпляра, а затем — необходимость явных правил, определяющих допустимые состояния модели.
На этой основе рассматривается архитектура PLM-системы Constructum. В ней KObject задаёт общий фундамент для различных типов объектов, а описание, атрибуты, административный контекст, связи и производные представления существуют как отдельные части модели. Такое разделение позволяет сохранить идентичность объекта независимо от изменений знаний о нём и построить архитектуру, в которой границы сервисов следуют из границ ответственности модели.
Особое внимание уделяется инвариантам — правилам, определяющим, какие состояния системы допустимы. В распределённой архитектуре часть таких правил пересекает границы отдельных баз данных и становится распределёнными инвариантами. Поэтому согласованность системы рассматривается не как свойство отдельной таблицы или сервиса, а как свойство всей модели.
Книга не предлагает очередной набор технических решений для построения PLM. Её предмет — переход от понимания объекта к построению системы вокруг этого понимания.
Показано, как из одного фундаментального вопроса последовательно возникают модель данных, правила существования объектов, управление изменениями, архитектура сервисов и механизмы, позволяющие сохранять историю инженерного мира во времени.
Таким образом, книга рассматривает PLM не как хранилище документов и не как набор функциональных модулей, а как систему, построенную вокруг объектов, их идентичности, знаний о них и правил, определяющих их существование.
кто обладает даром видеть красоту замысла."
Пролог
Каждый человек без труда отличит автомобиль от самолёта, насос от редуктора, карандаш от книги. Мы делаем это настолько естественно, что не задумываемся о самом процессе. Ребёнок, впервые увидев автомобиль, не знает, что такое колёсная база или двигатель внутреннего сгорания, — но уже понимает, что перед ним автомобиль.
Человек умеет мыслить объектами. Компьютер — нет.
Для компьютера не существует автомобиля. Не существует самолёта. Не существует даже документа. Для него существует лишь последовательность данных, смысл которой появляется только тогда, когда его определяет человек. Поэтому любая информационная система начинается не с программного кода. Она начинается с вопроса: что именно мы пытаемся представить?
Если ответить на этот вопрос неправильно, никакая архитектура уже не исправит ошибку. Можно использовать лучшие базы данных, самые быстрые алгоритмы, самые современные микросервисы. Но, если цифровая модель не соответствует реальному миру, пользователи начинают обходить систему: создают дополнительные таблицы, используют поля не по назначению, ведут учёт в Excel. И постепенно информационная система перестаёт отражать реальность. Она начинает отражать собственные ограничения.
За последние десятилетия инженеры научились строить очень сложные системы. Мы умеем хранить миллиарды записей, строить распределённые платформы, обрабатывать огромные объёмы данных. Но значительно реже задаём себе другой вопрос: а правильно ли мы вообще выбрали объект, который моделируем?
Эта книга не посвящена языкам программирования. Не посвящена конкретной базе данных. Не посвящена микросервисам. Она не является руководством по выбору или внедрению PLM-системы. Она посвящена значительно более фундаментальной задаче: как представить объекты реального мира в цифровой системе так, чтобы сама система помогала человеку работать правильно, а не заставляла его приспосабливаться к ограничениям собственной модели данных.
Она адресована архитекторам информационных систем, инженерам-конструкторам, разработчикам PLM-платформ и всем, кто принимает решения о том, как цифровая система представляет инженерный объект. Книга опирается на отечественную систему ЕСКД, международные стандарты управления конфигурацией (ANSI/EIA-649, NASA CM Handbook, MIL-HDBK-61, CMII, ISO 10007) и стандарт ISO 10303 (STEP/PLCS). Нормативные положения отделены от авторских выводов и архитектурных решений.
В качестве основной предметной области мы будем использовать инженерные системы управления жизненным циклом изделия. Не потому, что они уникальны, а потому, что именно здесь наиболее отчётливо проявляются все проблемы моделирования. Что считать изделием? Что такое изменение? Когда изменение становится новым изделием? Что первично — объект или документ? Ответы на эти вопросы определяют не только структуру базы данных. Они определяют архитектуру всей цифровой платформы.
Именно поэтому книга называется «От объекта к системе». Путь любой сложной информационной системы начинается задолго до появления первой таблицы или первой строки кода. Он начинается с понимания объекта реального мира.