Платформа Dolmen

Платформа Dolmen - единая IT-платформа для бизнес-приложений

В настоящее время на мировом рынке участвует большое количество IT-игроков, продвигающих свои решения для различных отраслей. Практически у каждого участника можно выделить слабые стороны:

  • Очень большое время выхода на рынок
  • Высокая сложность или невозможность кастомизации решения
  • Тяжелая интеграция или отсутствие возможностей интеграции
  • Высокие требования к квалификации персонала, занятого в разработке и обслуживании решения
  • Частично или полностью зарубежный софт

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

Наша компания предлагает собственную платформу Dolmen, которая решает следующие задачи:

// Предоставляет IT-платформу (экосистему)

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

// Обеспечивает низкий порог вхождения, высокую скорость разработки и внесения изменений.

// Обеспечивает независимость от конкретной базы данных

и предусматривает возможность перехода на распределенные системы хранения в будущем при экспоненциальном росте объема данных.

// Максимально отделяет системные процессы от бизнес-логики самого приложения.

Как результат, готовые приложения состоят только из декларативного описания структуры базы данных, декларативного описания веб-экранов и бизнес-логики на Java/Kotlin. Все остальное, включая развертывание новых версий, берет на себя платформа.

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

Ключевые особенности платформы

// Модульный принцип

Система Dolmen построена на модульном принципе, что позволяет заменять компоненты по мере развития технологий на самые современные. Все приложения, написанные на Dolmen, создаются в виде независимых модулей, которые поставляются и версионируются отдельно. Приложения настолько изолированы от системных процессов, что будут работать также даже при смене базы данных или сервера приложений.

// Кроссплатформенность

Серверы Dolmen работают на Windows и Linux , а приложение пользователя может работать на любом современном интернет браузере.

// Независимость от базы данных

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

Это касается всего:

  • Типов данных
  • Языка
  • Индексирования таблиц
  • Программного кода

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

// Хранение данных в виде объектов и вложенные таблицы

Строки таблицы хранятся в базе данных в виде бинарных объектов списка полей, сериализованных с помощью Google Protocol Buffers. Поэтому изменение структуры таблицы не вызывает необходимости перестройки таблицы в базе данных при необходимости изменяются только индексы.

Таблицы в Dolmen могут быть иерархическими объектами и содержать вложенные таблицы. Это существенно ускоряет работу со сложными структурами за счет того, что чтение или обновление всего объекта в базе данных происходит за одну операцию.

// Быстрый старт и Low-Code разработка

Платформа Dolmen предназначена для быстрого создания новых бизнес-приложений и их дальнейшего развития в соответствии с новыми требованиями. Для этого Dolmen предлагает систему, которая реализует принципы как Low-Code, так и Pro-Code. Все сложности SQL, транзакции, синхронизации при параллельной обработке система берет на себя.

Платформа Dolmen предоставляет простые интерфейсы для доступа к данным и сама заботится о соединениях с базой данных, транзакциях и переводу условий выборки из таблиц на язык базы данных. Чтобы создать или изменить таблицу, достаточно описать (или изменить) её структуру в дескрипторе формата JSON. Веб-экраны пользователя создаются в визуальном редакторе и сохраняются в виде JSON файлов, которые тоже можно модифицировать.

Программный код нужно писать только для реализации бизнес-процесса обработки данных. Если обработки нет например, в приложении для ввода документов и их наполнения позициями программного кода не будет. Для описания бизнес-логики приложения достаточно владеть базовым навыком в языках программирования Java Kotlin и знать несколько функции Dolmen API для CRUD операции. Такой небольшой набор требований для создания приложения позволяет полностью сосредоточится на архитектуре и не думать о технических деталях.

// Кастомизация экранов

В Dolmen предусмотрено переопределение веб экранов на уровне пользователя. Это необходимо в случае, когда клиенту нужно предоставить новый функционал, при этом он не должен попасть в стандартное приложение. Когда будет установлена новая версия приложения, переопределенные (кастомные) экраны клиента будут переопределять новые стандартные экраны. С помощью такого подхода возможно вести разработку основой линейки приложения и кастомизировать её под каждого клиента по мере необходимости.

// Сравнение нескольких версий приложения

Если у компании разработчика много клиентов и много кастомизаций приложения под каждого клиента, то возможность быстрого сравнения и удобного сведения новых версий с конкретной кастомизацией под клиента является критически важной. Поскольку все приложения Dolmen состоят из декларативного описания структуры таблиц в формате JSON, описания веб экранов в формате JSON и бизнес-логики на 
Java Kotlin, то поиск всех различий между несколькими версиями одного приложения можно осуществить путем простого сравнения текстовых файлов.

// Развертывание приложений

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

Принцип сериализации полей в объект делает возможным полностью автоматический быстрый апгрейд и снимает ограничения на типы изменений структуры таблиц, свойственные большим системам с жесткими требованиями ко времени простоя на апгрейде.

// Интеграция

Dolmen позволяет легко подключаться с другим системам предприятия, будь то системы автоматизации, базы данных и пр. Например, список пользователей можно брать из Microsoft Active Directory, другого LDAP сервера или базы данных по JDBC.

Отличительной особенностью интеграции Dolmen является возможность организации доступа к внешним системам абсолютно так же, как если бы они были обычными таблицами в Dolmen. При этом поиск, добавление и изменение данных во внешних системах будет реализован через стандартное Dolmen API как для таблиц из локальной базы. Данный подход позволяет использовать такие «виртуальные таблицы» в программах и экранах везде, где используются обычные таблицы Dolmen.

Также можно строить сложные веб-экраны из данных, собираемых одновременно в локальной базе и во внешних системах, связывать их на лету, выдавать привилегии на работу, редактировать данные. При этом для редактора экранов и бизнес-логики реальное место хранения данных не будет иметь значения и все будет выглядеть абсолютно бесшовно. Кроме того, специальная система «Интерфейс Модуля» позволяет вынести доступ к данным в отдельный модуль и даже сделать несколько его реализаций.

// Уведомления

  • Платформа Dolmen имеет встроенную систему уведомления пользователей, где реализованы различные способы доставки к примеру, e-mail или Telegram и конечно, можно создать свои собственные. При этом, приложениям на платформе Dolmen не нужно знать ничего об этих способах.
  • Для отправки необходимо только сформировать сообщение указать его тематический канал и список получателей. Платформа сама доставит сообщение в соответствии с подпиской пользователей на каналы, используя указанный пользователем способ доставки.
  • Так реализуются и массовые, и групповые, и личные рассылки. Для приложений также доступны всплывающие информационные сообщения и сообщения об ошибках.

// Редактирование офисных документов онлайн

Для онлайн-редактирования офисных документов платформа Dolmen интегрируется с сервером ONLYOFFICE Docs, который можно установить в локальной сети для полного контроля и безопасности или в облаке. Доступ к просмотру и редактированию управляется на уровне Dolmen, файлы документов могут храниться в таблицах Dolmen или в любой внешней системе. С помощью редактора экранов Dolmen просмотр и редактирование документов могут быть встроены в виде графического элемента в любой веб-экран. Также доступны режим совместного редактирования и работа с изменениями track changes.

// Брендирование приложений

Dolmen позволяет изменять веб-интерфейс основных приложений даже для модулей сторонних разработчиков. Можно перекомпоновывать экраны, добавлять или убирать визуализацию данных и кнопки обработки. Для веб-экранов доступны различные темы, также можно создать свой собственный вид в этом случае потребуется знание верстки и CSS.

// Безопасность и контроль

Dolmen поддерживает одно и двухфакторную аутентификацию по технологии TOTP, а также работает через SSO Single Sign On для домена на основе Microsoft Active Directory. Можно настроить пользовательские роли и выдать права на экраны и операции. В них платформа Dolmen сама преобразует эти права к привилегиям на таблицы и акции конкретные вызовы процедур из описания бизнес-логики. Дополнительно можно разграничить доступ к данным на уровне табличных строк, к примеру для ведения данных разных компаний в одной базе данных.

// Housekeeping (работа с устаревшими данными)

За длительное время работы в базе данных может накопиться слишком много устаревших данных, которые необходимо удалить или отправить в архив. Для таблиц Dolmen могут быть заданы условия отбора устаревших данных с учётом желаемого времени хранения, а также другие критерии ненужных промежуточных (или временных) данных. Такие данные будут автоматически выгружаться в файлы и удаляться из базы данных по настроенному расписанию. Это обычно требуется для баз данных, в которых ведется учёт большого объема оперативной информации, а отчеты за прошедшие периоды не требуются.

// Особенности разработки приложений

  • Платформа Dolmen позволяет небольшими усилиями и в кратчайшие сроки создавать сложные высоконагруженные приложения. Для работы нужны скорее аналитики с небольшим опытом в программировании, нежели системные Java разработчики. На практике это важно потому, что системные разработчики больше ориентированы на системное программирование, чем на решение бизнес-задач и как следствие проект «обрастает» различными менеджерами и архитекторами, что приводит к растрате ресурса на управление проектом.
  • На платформе Dolmen разработку можно вести при участии клиента немедленно демонстрируя результат и итеративно формируя / уточняя требования. Изолированность приложений от технических деталей, а также декларативное описание структуры данных и экранов существенно облегчают совместную разработку и на порядок снижают нагрузку на внедрение и кастомизацию.
  • За счет прозрачности и простоты приложений, снижается риск поставки клиенту «black box» решения, в котором невозможно самостоятельно разобраться в случае необходимости.