Платформа 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 интегрируется с сервером Elasticsearch и при помощи библиотеки Apache Tika способна индексировать множество различных форматов, включая офисные документы. Форматы автоматически различаются по языкам для выбора правильной морфологии.
Доступна как платная, так и бесплатная версия Elasticsearch с открытым исходным кодом например, от Amazon как для локальной установки, так и в виде облачного сервиса. Для настройки поиска разработчику приложений нужно лишь указать какие поля входят в поиск и какие веб-экраны открывать по ссылке всю остальную работу платформа Dolmen сделает автоматически.
// Брендирование приложений
Dolmen позволяет изменять веб-интерфейс основных приложений даже для модулей сторонних разработчиков. Можно перекомпоновывать экраны, добавлять или убирать визуализацию данных и кнопки обработки. Для веб-экранов доступны различные темы, также можно создать свой собственный вид в этом случае потребуется знание верстки и CSS.
// Безопасность и контроль
Dolmen поддерживает одно и двухфакторную аутентификацию по технологии TOTP, а также работает через SSO Single Sign On для домена на основе Microsoft Active Directory. Можно настроить пользовательские роли и выдать права на экраны и операции. В них платформа Dolmen сама преобразует эти права к привилегиям на таблицы и акции конкретные вызовы процедур из описания бизнес-логики. Дополнительно можно разграничить доступ к данным на уровне табличных строк, к примеру для ведения данных разных компаний в одной базе данных.
// Housekeeping (работа с устаревшими данными)
За длительное время работы в базе данных может накопиться слишком много устаревших данных, которые необходимо удалить или отправить в архив. Для таблиц Dolmen могут быть заданы условия отбора устаревших данных с учётом желаемого времени хранения, а также другие критерии ненужных промежуточных (или временных) данных. Такие данные будут автоматически выгружаться в файлы и удаляться из базы данных по настроенному расписанию. Это обычно требуется для баз данных, в которых ведется учёт большого объема оперативной информации, а отчеты за прошедшие периоды не требуются.
// Рабочее пространство
Приложения для платформы Dolmen разрабатываются в IDE JetBrains IDEA, для которой написан специальный плагин, с помощью которого происходит генерация классов по описанию таблиц в JSON файлах и сборка всего проекта в JAR файл дистрибутива.
Итоговый дистрибутив включает в себя всю информацию о приложении:
- Структуру данных
- Экраны
- Программы
- Документацию в MarkDown или HTML
- Файлы для локализации на разные языки
Полноценная отладка модуля работает в обычном для IDE режиме. Для локального запуска достаточно нажать на кнопку плагина, а для установки удалённо достаточно скопировать JAR с модулем на сервер Dolmen.
// Особенности разработки приложений
- Платформа Dolmen позволяет небольшими усилиями и в кратчайшие сроки создавать сложные высоконагруженные приложения. Для работы нужны скорее аналитики с небольшим опытом в программировании, нежели системные Java разработчики. На практике это важно потому, что системные разработчики больше ориентированы на системное программирование, чем на решение бизнес-задач и как следствие проект «обрастает» различными менеджерами и архитекторами, что приводит к растрате ресурса на управление проектом.
- На платформе Dolmen разработку можно вести при участии клиента немедленно демонстрируя результат и итеративно формируя / уточняя требования. Изолированность приложений от технических деталей, а также декларативное описание структуры данных и экранов существенно облегчают совместную разработку и на порядок снижают нагрузку на внедрение и кастомизацию.
- За счет прозрачности и простоты приложений, снижается риск поставки клиенту «black box» решения, в котором невозможно самостоятельно разобраться в случае необходимости.
// Стоимость
Стоимость программного обеспечения рассчитывается индивидуально после направления запроса на адрес электронной почты info@dolmenplatform.ru