Перейти к содержанию

GraphMechanic - платформа визуальной работы с графовыми данными — SRS-сборка

Эта страница собирает разделы для спецификации требований к ПО: от контекста и проблемы до безопасности, качества и эксплуатации.

Содержание

Краткое описание

Статус

concept-stage project / paused project

Роль

автор концепции, системный проектировщик, prototype engineer

Стек

Тип: Graph visualization / GIS-aware graph editing / internal tooling platform; Происхождение: развитие идеи из PolylineMechanic - утилиты редактирования полилиний железнодорожного графа

Ценность проекта

GraphMechanic - концепция визуальной платформы для работы с прикладными графовыми данными: инфраструктурными сетями, транспортными графами, GIS-связанными объектами, логическими зависимостями и операционной топологией.

Контекст и проблема

Контекст

GraphMechanic вырос из PolylineMechanic - внутренней утилиты редактирования полилиний железнодорожного графа, созданной в контексте enterprise GIS-инициативы.

Изначальный инструмент PolylineMechanic решал узкую, но повторяющуюся задачу: геометрию железнодорожных путей нужно было подготовить и восстановить перед загрузкой в enterprise GIS-платформу. GraphMechanic обобщает этот опыт до более широкой платформенной концепции для визуальных graph operations в разных доменах.

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

Проблема

Во многих организациях графовые данные хранятся в базах данных, GIS-системах, внутренних сервисах или операционных платформах, но для них нет удобного интерфейса визуальной проверки и управляемого редактирования.

Типовые проблемы:

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

Цели, требования и ограничения

Цели и нецели

Требования

Ключевые возможности

1. Обобщённая доменная модель графа

GraphMechanic не ограничивается железнодорожной предметной областью.

Платформа опирается на обобщённые понятия:

  • узлы;
  • рёбра;
  • геометрия рёбер;
  • атрибуты узлов;
  • атрибуты рёбер;
  • слои;
  • статусы;
  • доменные метаданные;
  • внешние идентификаторы;
  • правила проверки топологии.

Это позволяет адаптировать инструмент к разным предметным областям без переписывания ядра приложения.

2. Настраиваемые коннекторы к данным

Платформа предполагает connector-oriented подход к доступу к данным.

Вместо жёсткой привязки к одной структуре БД GraphMechanic отделяет внутреннюю модель графа от исходной схемы данных.

Слой коннекторов отвечает за:

  • чтение узлов;
  • чтение рёбер;
  • чтение геометрии рёбер;
  • маппинг полей БД на атрибуты графа;
  • применение фильтров;
  • запись подтверждённых изменений обратно в источник;
  • поддержку разных исходных схем.

Потенциальные источники данных:

  • PostgreSQL / PostGIS;
  • реляционные БД с графоподобными таблицами;
  • CSV / JSON-выгрузки;
  • в перспективе - graph database connectors.

3. Отображение нескольких графовых слоёв

GraphMechanic позволяет отображать несколько графовых слоёв на одной карте.

Примеры слоёв:

  • физическая инфраструктура;
  • логическая маршрутизация;
  • слой доступности сервисов;
  • планируемые изменения;
  • слой ошибок и аномалий;
  • исторический снимок состояния.

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

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

4. Параметризация внешнего вида узлов и рёбер

Внешний вид узлов и рёбер может настраиваться динамически.

Визуальные параметры могут зависеть от атрибутов объектов:

  • цвет узла по статусу;
  • размер узла по важности или нагрузке;
  • толщина ребра по пропускной способности или трафику;
  • цвет ребра по доступности;
  • пунктирные линии для планируемых или неактивных сегментов;
  • иконки для разных типов объектов;
  • подписи на основе выбранных полей.

Так граф становится не просто геометрией, а операционной визуальной моделью.

5. Динамические параметры и наблюдение состояния

GraphMechanic предполагает возможность наблюдать изменения состояния графа во времени.

Одна и та же топология может дополняться динамическими данными:

  • доступность;
  • нагрузка;
  • состояние ошибки;
  • задержка;
  • статус обработки;
  • время последнего обновления;
  • операционные метрики.

Это превращает статический граф в лёгкую операционную консоль.

Цель не в том, чтобы заменить полноценные observability-платформы, а в том, чтобы показывать состояние системы в привязке к доменной топологии.

6. Логический вид графа

Помимо отображения на карте, GraphMechanic предполагает режим негеографического графа.

В этом режиме все узлы размещаются на одном экране с помощью force-directed или layout-based представления, близкого по смыслу к Obsidian-style graph visualization.

Такой режим полезен, когда география скрывает логическую структуру или когда граф вообще не имеет географической природы.

Примеры использования:

  • карты зависимостей;
  • логическая топология;
  • связи инфраструктурных объектов;
  • графы доменных сущностей;
  • процессные графы;
  • knowledge graphs;
  • data lineage-like представления.

7. Визуальное редактирование

GraphMechanic развивает функциональность PolylineMechanic:

  • редактирование узлов;
  • редактирование рёбер;
  • создание полилиний;
  • восстановление полилиний;
  • генерация геометрии через routing service;
  • редактирование атрибутов;
  • визуальная валидация;
  • управляемое сохранение или экспорт изменений.

Модель редактирования снижает потребность в прямой правке данных в БД и даёт доменным пользователям более безопасный визуальный workflow.

Примеры использования

  • Проверка железнодорожного графа перед загрузкой в enterprise GIS-платформу.
  • Сравнение физического и логического слоя сети.
  • Поиск несвязанных узлов и разорванных маршрутов.
  • Отображение операционного состояния поверх инфраструктурной топологии.
  • Редактирование атрибутов графа без прямого доступа к БД.
  • Построение визуальной консоли для доменно-специфичных сетевых данных.
  • Переключение между картографическим и логическим представлением графа.
  • Поиск расхождений между плановой и фактической топологией.

Ограничения

Роль и обязанности

Я выступал автором концепции, системным проектировщиком и prototype engineer.

Мой вклад включал:

  • формулирование продуктовой концепции и обобщение PolylineMechanic до более широкой платформенной идеи;
  • проектирование модульной архитектуры и connector-oriented модели доступа к данным;
  • спецификацию ключевых возможностей: многослойное отображение, параметризация стилей, двойной географический/логический режим и сценарии визуального редактирования;
  • позиционирование продукта относительно GIS-платформ, инструментов визуализации графов и monitoring-систем.

Модель системы

Доменная модель

Обобщённые понятия графа

  • узлы;
  • рёбра;
  • геометрия рёбер;
  • атрибуты узлов;
  • атрибуты рёбер;
  • слои;
  • статусы;
  • доменные метаданные;
  • внешние идентификаторы;
  • правила проверки топологии.

Целевые пользователи

  • GIS-аналитики;
  • системные аналитики, работающие с графовыми доменами;
  • data engineers в инфраструктурных проектах;
  • транспортные и логистические аналитики;
  • telecom / utility network teams;
  • команды внутренней автоматизации;
  • команды, сопровождающие кастомные операционные графовые данные.

Модель данных

API-контракты

Архитектура и интеграции

Архитектура

GraphMechanic проектируется как модульное веб-приложение.

Ключевые компоненты:

  • Web UI - визуализация графа, map view, logical graph view, инструменты редактирования;
  • Graph Model Layer - нормализованное внутреннее представление узлов, рёбер, геометрии, атрибутов и слоёв;
  • Connector Layer - адаптеры к внешним БД и источникам данных;
  • Style Engine - настраиваемое соответствие между атрибутами объектов и визуальным отображением;
  • Validation Engine - проверки топологии и доменно-специфичные правила консистентности;
  • State Update Layer - динамические обновления для live / near-real-time состояния графа;
  • Persistence Layer - хранение конфигураций, layout-настроек, пользовательских параметров и audit data.

Потоки интеграции

Потоки чтения и записи через коннекторы к данным

Слой коннекторов читает узлы, рёбра и геометрию рёбер из внешних источников, выполняет маппинг полей БД на атрибуты графа, применяет фильтры и записывает подтверждённые изменения обратно в источник.

Потенциальные источники данных включают PostgreSQL / PostGIS, реляционные БД с графоподобными таблицами и CSV / JSON-выгрузки.

Генерация геометрии через routing service

Визуальное редактирование развивает функциональность PolylineMechanic: генерация геометрии через routing service для создания и восстановления полилиний.

Управляемое сохранение и экспорт

Изменения проходят через управляемый workflow сохранения или экспорта, снижающий потребность в прямой правке данных в БД и дающий доменным пользователям более безопасный визуальный путь редактирования.

Безопасность, качество и эксплуатация

Модель безопасности и доступа

Нефункциональные требования

Режимы отказа

Оценка масштаба и стоимости