
Low-code разработка очень полезна в тех случаях, когда в организации требуется постоянное обновление и развитие, а также создание новых сервисов. Однако чтобы такая схема разработки ПО действительно работала, нужно использовать стабильную платформу, которая обеспечит одновременно гибкость, безопасность, прозрачность и эффективность. В этой статье мы расскажем о решении такого класса от РЕД СОФТ, пройдемся по основным возможностям РЕД Платформы, познакомимся с ее архитектурой, принципами работы с документами и сущностями, а также с особенностями разработки.
Разработка РЕД Платформы началась в 2009 году. В то время мы вели проектную деятельность, в рамках которой регулярно сталкивались с множеством похожих задач автоматизации и, разумеется, никому не хотелось повторно проводить разработку всех процессов “с нуля”. За годы развития РЕД Платформы она превратилась в настоящий low-code инструмент, который используется для разработки в корпоративных структурах, государственных ведомствах и, конечно, для сервисов на портале «Госуслуги».
Достаточно долго РЕД Платформу использовали только специалисты РЕД СОФТ и наши партнеры. Но сегодня многое западное ПО стало недоступно в России или работа с ним оказалась неудобной — из-за отсутствия поддержки вендора или требований по сертификации, интерес к РЕД Платформе, как к зрелому инструменту low-code разработки, значительно вырос. Для тех, кому нужно именно такое решение сегодня я расскажу, как именно устроена РЕД Платформа, и какие задачи на ней можно решать.
Архитектура РЕД Платформы
РЕД Платформа изначально развивалась исключительно на открытых технологиях. В качестве платформы разработки была выбрана Java (тогда из версий с длительной поддержкой была актуальна Java 6). С учетом использования нескольких дополнительных библиотек получилось независимое от проприетарных технологий решение.
В качестве средства хранения и одновременно защиты информации, которая попадает в РЕД Платформу, используется РЕД База Данных. Вместе с интегрированной подсистемой криптографической защиты на основе продуктов отечественных провайдеров, решения, построенные с использованием РЕД Платформы, подходят для сертификации ФСТЭК — то есть можно создавать информационные системы с высокой степенью защиты, но в режиме low-code.

В состав РЕД Платформы входит большой набор подсистем. Уже решенные задачи обеспечения безопасности, кластеризации, документооборота и так далее позволяют значительно экономить ресурсы при разработке нового проекта, причем сократить получается время не только разработки, но также аналитики и тестирования. Большинство компонентов платформы разработаны с учетом возможности расширения, доработки и кастомизации — потому что low-code инструмент должен адаптироваться к разным условиям, в которых его будут применять.
Конфигурирование

Широкие возможности конфигурирования — одно из главных преимуществ РЕД Платформы как средства low-code разработки. Благодаря этому на проектах мы
Активно привлекаем к непосредственной работе над прикладным продуктом бизнес-аналитиков, снижая нагрузку на разработчиков
Получаем возможность создания высокофункциональных прототипов систем без написания кода.
Используем созданные прототипы как основу для дальнейшей разработки системы, наполняя их бизнес-функционалом.
Снижаем потребность в тестировании, ведь корректность конфигурации обеспечивается строгой структурой системного каталога и форматно-логическим контролем, а соответствие кода и структуры данных — кодогенерацией.
Сокращаем длительность цикла внедрения изменений.
Структура базы данных Ред Платформы формируется с помощью набора метаданных, называемого системным каталогом. Как и прочие метаданные в платформе, системный каталог хранится в Ред Базе Данных и редактируется с помощью конфигуратора.
Системный каталог описывает все сущности базы данных, их атрибуты и связи между ними. Помимо таблиц с данными, к сущностям относятся представления, триггеры, хранимые процедуры и некоторые другие.
Настройка связей между сущностями позволяет реализовать, например:
Подключение к некому документу списка подчиненных сущностей,
Подключение справочника, из которого могут быть выбраны значения
ORM

ORM-подсистема Ред Платформы предоставляет разработчику удобные механизмы управления данными. Вся работа с СУБД реализована через провайдеры данных. Платформа с помощью внутренних фабрик автоматически формирует для каждой сущности все скрипты добавления, чтения, изменения, удаления данных, с поддержкой сложных фильтров, функций безопасности и т.п. В случае необходимости, разработчик может добавить в провайдер конкретной сущности новый функционал или изменить существующий.
Работа с новыми сущностями доступна в режиме runtime, что позволяет разработчику сразу видеть результат своего труда.
Интерфейс пользователя
Помимо непосредственно структуры данных в системном каталоге хранятся настройки пользовательского интерфейса. На основе этих настроек автоматически формируются экранные и списковые формы сущностей.
В РЕД Платформе применяется несколько технологий пользовательского интерфейса - SWING, Vaadin, а также перспективный интерфейс на основе React.

Мы реализовали единую схему работы с пользовательским интерфейсом. То есть, единожды настроив интерфейс на SWING, можно наблюдать его, например, на Vaadin без изменений.

Экранные формы, генерируемые на основе метаданных, поддерживают вкладки, группы полей, подчиненные списки, вложенные объекты.
Документооборот
Подсистема управления бизнес-процессами, которую мы называем подсистемой документооборота, основана на сущностях, которые мы называем документами. Для РЕД Платформы документ — это объект, к которому подключена статусная модель документооборота.

Статусные модели представляют собой конечные автоматы с настраиваемыми событиями, действиями, обработками. Они позволяют управлять полным жизненным циклом документов, включая:
междокументное взаимодействие,
работу с ЭЦП,
контроль сроков,
вложения,
проводки,
штрихкодирование,
сканирование.
Статусная модель полностью настраивается через конфигуратор, и хранится в базе данных. Для каждого события, описанного в статусной модели, прописывается так называемое дерево обработки, состоящее из методов, описанных в бизнес-классах.
В РЕД Платформе уже есть ряд универсальных методов, позволяющих выполнять движение по статусной модели и отправку сообщений другим документам, в прикладных проектах их набор методов значительно расширяется для каждого из документов.
Подсистема обновлений
Подсистема обновлений необходима для того, чтобы вся конфигурация, созданная в ходе разработки, могла быть перенесена на любые другие стенды – в том числе мигрировать между различными проектами. Это очень важно, когда вы разрабатываете сложные бизнес-системы для задач с большим количеством пользователей и департаментов.

Подсистема обновлений РЕД Платформы поддерживает не только системные, но и прикладные сущности. То есть, разрабатывая новые и новые бизнес-функции, вы можете быть уверены, что элементы в их составе будут обновляться единообразно, так как каждый прикладной продукт или программный модуль на основе РЕД Платформы содержит свой набор пакетов обновления.
Подсистема обновления позволяет использовать стандартный цикл разработки, несмотря на то, что РЕД Платформа – это low-code инструмент. И если процесс внесения изменений в проект часто включает в себя этап конфигурирования и, соответственно, создание пакета обновления, то дальнейшее управление изменениями базы данных не требует от разработчика каких-то особых шагов.

Подсистема безопасности
Решение вопросов безопасности начинается с задач аутентификации. Для этого в РЕД Платформе предусмотрены различные механизмы, включая вход по логину и паролю, по сертификату, LDAP, OpenID, а также многофакторная аутентификация.

Безопасность доступа к данным обеспечивается на уровне СУБД — каждый пользователь имеет свою учетную запись для подключения к данным. И здесь большой плюс дает собственная архитектура безопасности РЕД Базы Данных.
На уровне РЕД Платформы поддерживаются все основные виды разграничения доступа: ролевой, меточный, мандатный, разграничение доступа к конфиденциальной информации внутри одной таблицы.
Настройки безопасности, доступные администраторам, включают в себя ведение журналирования изменения всех документов, белый список IP, фиксацию инцидентов безопасности, и прочее. Все настройки доступа выполняются через конфигуратор, и доступны администратору прикладной системы.
Возможности интеграции
Разумеется, проекты, которые реализуют на РЕД Платформе, должны работать в тесном взаимодействии с другими информационными системами. Поэтому РЕД Платформа имеет несколько стандартных вариантов интеграции, которые настраиваются через конфигуратор. В их число входит SOAP (через протокол СМЭВ), а также REST API и GraphQL, причем с поддержкой всех функций безопасности и возможностей платформы.
Если говорить о брокерах сообщений, у нас на данный момент поддерживаются Apache Kafka и Apache ActiveMQ Artemis.
Заключение
Подводя итог, я скажу, что на сегодняшний день РЕД Платформа представляет собой готовое решение для ускоренной разработки систем автоматизации бизнес-процессов, которое уже содержит в себе все необходимое для быстрого запуска защищенных ИТ-сервисов. Мы продолжаем развивать наш продукт, добавляя в него новый функционал по мере запросов со стороны заказчиков, модернизируем стек и добавляем новые проекты (так, на 2025 год РЕД Платформа работает на Java версий 8, 11 и 17 (LTS)). С РЕД Платформой работает ряд партнеров РЕД СОФТ, которые создают на базе опробованных технологий готовые решения для различных отраслей, и в ближайшее время коллеги сами расскажут о своих наработках в нашем блоге.
Сегодня мы, конечно, провели только общий обзор решения. Но дальше мы обязательно поговорим подробнее об особенностях и возможностях каждой из подсистем в отдельных статьях. И если вам может быть полезно такое решение как РЕД Платформа на пути цифровой трансформации — чтобы ускорить разработку, чтобы привлечь к ней аналитиков и самих бизнес-пользователей, чтобы решить много типовых задач на базе российского и открытого ПО — буду рад ответить на любые ваши вопросы и постараюсь раскрыть больше технических подробностей о РЕД Платформе здесь, в нашем блоге на Хабре.