Haulmont Jmix (ранее CUBA.platform)

Продукт
Разработчики: Haulmont (Хоулмонт)
Дата премьеры системы: 2008
Дата последнего релиза: 2021/05/24
Отрасли: Интернет-сервисы,  Информационные технологии
Технологии: BPM,  Средства разработки приложений

Содержание

Основная статья: Business Process Management

Jmix (ранее CUBA Platform, Платформа CUBA) - это высокоуровневая Java-платформа с открытым кодом для создания корпоративных информационных систем.

Назначение

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

2021: Крупное обновление платформы с переименованием в Jmix

Компания Haulmont 24 мая 2021 года сообщила о выпуске следующей версии фреймворка для быстрой разработки корпоративных приложений CUBA Platform. Изменения настолько глобальные, что версия получила новое название — Jmix.

Для команды платформы обновление стало самым большим в истории. Разработка CUBA началась в 2008 году. Сперва это был фреймворк для использования внутри компании. С его помощью удалось стандартизировать и, следовательно, ускорить разработку проектов. А широкое использование кодогенерации и визуальных редакторов позволило значительно снизить порог входа для новичков.Трендвотчинг рынка CRM. Аналитический отчет TAdviser 10.6 т

Постепенно возможности платформы расширялись, ее начали использовать компании-партнеры Haulmont. В 2015 году CUBA была представлена широкой аудитории, а еще через год выложен в открытый доступ исходный код, и платформа стала доступна по лицензии Apache 2.0. Следующие несколько лет совершенствовался код платформы, повышалось качество документации, был запущен Marketplace дополнений для платформы, а среда разработки CUBA Studio переведена в IntelliJ IDEA.

«
Мы постоянно модернизировали платформу, однако пришло время глобальных технологических изменений. В версии Jmix мы переписали фреймворк с нуля, совместив современные тренды в области Java-разработки и накопленный командой опыт, — сообщили в Haulmont.
»

Особенности Jmix:

  • В основе платформы вместо Spring теперь SpringBoot.
  • Фреймворк разделен на модули (data, security, audit, и так далее), что позволит уменьшить размер создаваемых приложений.
  • Изменился подход к созданию классов-сущностей для модели данных: убран legacy API в виде базовых супер-классов.
  • Обновление базы данных теперь производится при помощи Liquibase.
  • Будет добавлен GraphQL API для упрощения внешней интеграции с данными приложения.
  • Упрощен процесс развертывания в облачных средах.

Название Jmix отражает суть продукта: «J» означает «Java», а «Mix» — технологии и фреймворки, смешанные в одном приложении. По состоянию на май 2021 года Jmix находится в стадии предварительного релиза, который подходит для прототипирования и знакомства с возможностями фреймворка. Стабильную версию планируется выпустить во втором квартале 2021 года.

Прошлая версия CUBA Platform будет бесплатно поддерживаться еще пять лет. Haulmont также предоставит возможность миграции на Jmix через совместимый API.

2020

Как выбрать технологическую базу для цифровой трансформации

За счет цифровой трансформации одни стремятся занять лидерские позиции на рынке, а другие — не отстать. Когда дело доходит до внедрения конкретных решений, обычно в первую очередь вспоминают искусственный интеллект, большие данные, машинное обучение — технологии, которые сейчас на слуху. Однако прорывные технологии — не единственная составляющая успешной цифровой трансформации. Обязательным условием для ее проведения является должный уровень автоматизации.

Основная статья: Как выбрать технологическую базу для цифровой трансформации

Экосистема

На март 2020 года экосистема CUBA Platform базируется на трех компонентах:

  • Проверенная архитектура на основе ведущих открытых технологий
  • Средства быстрой разработки
  • Открытый маркетплейс компонентов для решения типовых задач

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

Платформа включена в Реестр отечественного ПО.

Выпуск CUBA Platform 7.2

2 марта 2020 года вышли в свет CUBA Platform 7.2 и CUBA Studio 13.

Возможности платформы CUBA

Архитектура

По информации на март 2020 года в основе платформы лежит Spring и другие Java-технологии с открытым кодом. При этом открытая и расширяемая архитектура позволяет использовать любые сторонние библиотеки и API.

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

CUBA-приложения совместимы с популярными реляционными СУБД и работают в любом Java-контейнере сервлетов. Приложения можно распространять в виде WAR, Docker image, UberJar или развертывать в облаке.

Интерфейс

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

Модуль Generic UI создан для быстрой разработки функционально насыщенного веб-интерфейса для внутренних пользователей организации. Разработка ведется на Java или другом языке JVM. Его отличает высочайшая скорость разработки благодаря визуальным инструментам, готовой инфраструктуре и богатому набору компонентов, автоматически связываемых с данными.

В то же время, публично доступные интерфейсы обычно предполагают нетиповой дизайн, а также возможность комфортной работы с любого устройства в условиях малопредсказуемой нагрузки. Для реализации этих требований платформа предоставляет генератор кода для разработки UI на React/React.native с бэкендом на CUBA.

Универсальный REST API позволяет легко интегрировать CUBA приложения с произвольными UI-клиентами или внешними системами. Он поддерживает аутентификацию, CRUD-операции, настраиваемые выборки данных и вызов бизнес-методов. Документация Swagger генерируется автоматически.

Инструменты

Основное средство разработки на платформе - CUBA Studio. Студия основана на IDE IntelliJ IDEA и обеспечивает продуктивный процесс разработки благодаря генерации кода, визуальным редакторам, контекстным подсказкам и интуитивной навигации.

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

CUBA Platform

Дополнения

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

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

CUBA Platform: Дополнения

Поддержка

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

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

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

Лицензирование CUBA Platform

Open Source / Бесплатная версия CUBA Studio

На март 2020 года фреймворк, как и большинство дополнений, распространяются по открытой лицензии Apache 2.0, наиболее популярной среди open source-проектов. Исходный код размещен в публичном репозитории на GitHub.

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

Коммерческая версия CUBA Studio и платные дополнения

Коммерческая подписка включает:

  • Доступ к визуальным редакторам CUBA Studio
  • Премиум-дополнения, такие как WebDAV, BPM, Maps.

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

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

Для коммерческой подписки доступен пробный период в 28 дней.

2019: Совместимость с Liberica JDK

18 июля 2019 года BellSoft сообщил, что совместно с Haulmont и провели кросс-тестирование своих продуктов и технически подтвердили, что платформа CUBA полностью совместима с Liberica JDK. Это означает, что все продукты, созданные на платформе CUBA гарантированно работают на импортозамещающей среде исполнения Java - Liberica JDK. Подробнее здесь.

2016

Платформа CUBA вошла в единый реестр российского программного обеспечения

Флагманская разработка компании «Хоулмонт» - оpen-source платформа CUBA, предназначенная для разработки корпоративных приложений, включена в реестр российских программ для электронных вычислительных машин и баз данных. Решение о включении платформы CUBA в реестр было принято экспертным советом по российскому ПО при Минкомсвязи России 5 сентября 2016 года. Платформа CUBA также включена в каталог Ассоциации Разработчиков Программных Продуктов «Отечественный софт».

CUBA Platform переведена на opensource

Российская компания-разработчик Haulmont объявила в июне 2016 года о переводе платформы CUBA в open source. Теперь платформа распространяется по лицензии Apache 2.0 с исходным кодом доступным на GitHub; монетизировать её компания планирует за счет продажи инструментов повышающих эффективность разработки и дополнительных модулей.

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

По сути, платформа CUBA представляет собой высокоуровневый фреймворк, объединяющий в единую архитектуру набор популярных open-source технологий, что позволяет разработчикам абстрагироваться от отдельных технологий, использующихся для создания бизнес-систем (технологий разработки пользовательского интерфейса, ORM и т.д.) и сконцентрироваться на создании бизнес-логики приложения.

Приложения на базе CUBA имеют стандартную трехуровневую архитектуру: уровень БД, средний слой и клиентский уровень. Платформа обладает спектром функциональности, такой как: подсистема контроля уровня доступа пользователей, аудит данных, задачи по расписанию, мультиязыковой интерфейс, консоль разработчика, универсальный REST API, динамические атрибуты и другие характерные для корпоративных приложений модули.

С точки зрения разработчика, весь код пишется на Java SE (бизнес-логика приложения), XML (пользовательский интерфейс) и JPQL (работа с данными). Пользовательский интерфейс описывается декларативно в XML, а контроллеры экранов реализуются также на Java SE. Однако, возможно создание динамического пользовательского интерфейса непосредственно из кода контроллера. Пользовательский интерфейс включает в себя более 70 визуальных компонентов, в том числе универсальный фильтр данных; при этом существует возможность интегрировать сторонние или свои собственные компоненты, разработанные на JavaScript или GWT.

Приложения на CUBA могут развертываться в различных конфигурациях, в том числе в кластере, обеспечивая возможность разрабатывать критичные для бизнеса системы. Поддерживаются базы данных PostgreSQL, Oracle Database, Microsoft SQL Server, MySQL и HSQL (которая, в основном, используется для прототипирования). Приложение может быть развернуто на любом сервере приложений Java EE Web Profile (Jetty, Tomcat, Glassfish, Websphere), в «облаках» CloudFoundry, OpenShift и Jelastic или в Docker конейнере.

Разработка приложения может вестись в популярных Java IDE (IntelliJ IDEA, Eclipse). Параллельно с IDE возможно использование CUBA Studio. Это специализированная визуальная среда разработки, которая позволяет наиболее эффективно использовать функционал фреймворка.

Studio позволяет в визуальном режиме быстро создавать модель данных, генерировать для нее скрипты создания и обновления БД и стандартные экраны CRUD, которые потом можно модифицировать при помощи дизайнера экранов. Studio синхронизируется c Java IDE, так что разработчик может, к примеру, сгенерировать экран при помощи Studio, а логику его работы описать в предпочитаемой IDE.

CUBA Studio, в отличие от самой платформы, доступна в двух версиях: бесплатной и коммерческой. Бесплатная полностью функциональна, но ограничивает размер модели данных приложения. Впрочем, есть возможность создать прототип приложения в бесплатной Studio, а дальнейшую разработку продолжить в IDE.

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

Главное преимущество лицензирования платформы по Apache 2.0 - отсутствие ограничений на приложения, созданные с помощью платформы, которые можно свободно использовать и распространять без каких-либо платежей.

Таким образом разработку также можно вести полностью бесплатно, либо приобрести годовую подписку по цене 18 000 на разработчика, чтобы получить доступ к CUBA Studio и премиум-дополнениям. В дополнение, компания предлагает варианты техподдержки для команд, работающих над критическими для бизнеса проектами.

2015

По состоянию на октябрь 2015 года платформа CUBA (CUBA Platform) - это высокоуровневый Java-framework для разработки корпоративных приложений. Платформа объединяет open-source технологии и включает в себя набор готовых компонентов, позволяющий быстро решать типовые задачи при разработке отказоустойчивых бизнес-приложений, создавая тем самым эффективную среду разработки.

Изначально платформа использовалась как основной инструмент разработки большинства продуктов и решений компании Haulmont. С 2015 года CUBA Platform распространяется в виде отдельного продукта для ИТ-разработчиков.

Назначение CUBA Platform

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

Отличительные особенности

По сравнению с известными full stack фреймворками CUBA Platform предоставляет разработчику высокий уровень абстракции, а также широкий набор готовой функциональности. При этом сохраняется и возможность работы напрямую с низкоуровневыми механизмами.

Быстрая визуальная разработка приложений

CUBA Studio ­- инструмент разработчика, позволяющий быстро конфигурировать проект, описывать модель данных и визуально проектировать экраны пользовательского интерфейса. Ввиду наличия возможности "hot deploy" сделанные изменения могут применяться без перезапуска приложения.

CUBA Studio поддерживает двустороннюю интеграцию с наиболее популярными IDE: JetBrains IntelliJ IDEA и Eclipse.

Масштабирование

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

В максимальном варианте развертывания подключение пользователей к серверам Web Client производится через Load Balancer. Серверы WebClient работают с кластером серверов Middleware.
В кластере серверов Middleware организуется взаимодействие для обмена информацией о пользовательских сессиях, блокировках и пр. При этом обеспечивается полная отказоустойчивость блока Middleware - при отключении одного из серверов выполнение запросов от клиентских блоков продолжается на доступном сервере прозрачно для пользователей.

Поддержка различных СУБД

Платформа предоставляет независимость от специфики СУБД. `Из коробки` поддерживается возможность работы с HSQL, PostgreSQL, Microsoft SQL Server, Oracle database. Возможность работы с другими СУБД настраивается отдельно.

Конвертация модели данных между БД и JAVA кодом осуществляется при помощи ORM совместно с соответствующим драйвером JDBC.

Подсистема безопасности

Платформа CUBA предоставляется следующие средства для контроля безопасности приложения:

  • Авторизация, включая интеграцию с LDAP и возможность использовать Single Sign-On.
  • Ролевая модель пользователей. Роль объединяет набор разрешений, которые определяют право пользователя на какой-либо объект или функциональность системы: экран, операцию над сущностью и так далее.
  • Группы доступа, которые позволяют организовывать пользователей в иерархическую структуру для установки ограничений и для присвоения произвольных атрибутов сессии.

Универсальный фильтр

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

Гибкие возможности кастомизации

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

Данный механизм реализует два ключевых момента:

  • Программный код кастомного проекта полностью отделяется от кода продукта.
  • Любая часть кода продукта доступна для изменения в клиентском проекте.

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

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

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

Интеграция со сторонними приложениями

Универсальный REST API платформы позволяет выполнять загрузку и сохранение любых сущностей модели данных приложения посредством отправки простых HTTP запросов. Это открывает возможность легкой интеграции со сторонними приложениями самого широкого спектра − от JavaScript кода, выполняющегося в браузере, до произвольных систем, работающих на Java, .NET, PHP или любой другой платформе.

Основные возможности API:

  • загрузка экземпляров сущностей из базы данных по идентификатору или по JPQL запросу с параметрами;
  • сохранение новых и измененных экземпляров, удаление экземпляров;
  • получение описания модели данных в формате HTML;
  • представление данных в форматах JSON и XML на выбор;
  • аутентификация пользователя;
  • вызов сервисов среднего слоя.

Все функции работают с данными в кодировке UTF-8.

Подключаемые модули

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

Управление бизнес- процессами

Подсистема исполнения бизнес-процессов платформы CUBA основана на фреймворке Alfresco Activiti, что позволяет использовать в приложения бизнес-процессы, описанный в нотации BPMN 2.0.

Генератор отчетов

Платформа CUBA предоставляет механизм создания отчетов с выводом в форматы офисных документов, PDF, а также произвольные текстовые форматы (xml, html или csv). В основе генератора отчетов лежит фреймворк YARG.

Для простоты формирования отчетов предусмотрен wizard.

Более сложная настройка отчетов предусмотрена при помощи специального редактора.


Полнотекстовый поиск

Полнотекстовый поиск (full text search, FTS) платформы CUBA предоставляет возможность неструктурированного поиска по значениям атрибутов сущностей и по содержимому загруженных файлов.
Особенностью реализации полнотекстового поиска CUBA является его ориентация на использование в бизнес-приложениях со сложными моделями данных. В частности, в результатах поиска отображаются не только сущности, напрямую содержащие в некотором атрибуте искомую строку, но и связанные сущности, при отображении которых используется этот атрибут.

Интерактивные диаграммы и интеграция с Google Maps

Подсистема отображения диаграмм платформы CUBA поддерживает большое количество типов диаграмм: круговые, линейные, пузырьковые, лепестковые, диаграммы с накоплением и прочие. Имеется возможность экспорта диаграмм. Для большинства типов диаграмм поддерживается прокрутка и зуммирование.

Широкая функциональность по работе с картами:

  • Реакция на события.
  • Установка маркеров. Маркер может быть фиксированным или с перетаскиваемым пользователем. Маркер может обрабатывать щелчки мыши и передавать соответствующее событие в код экрана.
  • Отображение и рисование ломаных линий и полигонов (многоугольников).
  • Отображение тепловой карты (heat map).

Используемые технологии

Spring Framework

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

EclipseLink

ORM EclipseLink - это расширяемый фреймворк для взаимодействия с различными источниками данных, включая базы данных, веб-сервисы, объектный маппинг в XML (Object XML mapping, OXM), корпоративные информационные системы.

Vaadin

Фреймворк Vaadin используется в веб-клиенте для отображения универсального пользовательского интерфейса. С одной стороны, Vaadin предоставляет богатый набор компонентов, возможности расширения и кастомизации визуального представления с помощью CSS, с другой - его серверная модель исполнения увеличивает безопасность приложения и позволяет унифицировать код UI между веб- и десктоп-клиентами.

Activiti framework
Интегрированный фреймворк Alfresco Activiti обеспечивает исполнение бизнес процессов в формате BPMN 2.0.

Lucene Фреймворк Apache Lucene, являющийся де-факто стандартом реализации механизма полнотекстового поиска, используется в дополнительном модуле FTS (full-text search).

Gradle Для сборки проектов применяется популярная система Gradle, позволяющая с одной стороны инкапсулировать в плагинах особенности построения CUBA-приложений, а с другой - дает при необходимости неограниченные возможности кастомизации написанных на Groovy скриптов сборки.

YARG

YARG используется в качестве инструмента для формирования отчетов.

Веб-серверы

Приложения, созданные на основе CUBA, могут быть развернуты на любом сервере Java EE Web Profile: ­ Tomcat, Glassfish и т.п.

Лицензирование

Бесплатная лицензия

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

Коммерческая лицензия

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

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

2008: Начало разработки платформы

Разработка платформы началась в 2008 году компанией «Хоулмонт». Она задумывалась как платформа для быстрого создания легко масштабируемых корпоративных приложений с web-интерфейсом. За основу был взят популярный стек Java технологий: OpenJPA (позже EclipseLink), Spring, Vaadin.



ПРОЕКТЫ (7) ПРОЕКТЫ НА БАЗЕ (519) ИНТЕГРАТОРЫ (2)
РЕШЕНИЕ НА БАЗЕ (5) СМ. ТАКЖЕ (26) ОТРАСЛИ (40)


Распределение вендоров по количеству проектов внедрений (систем, проектов) с учётом партнёров

За всю историю
2021 год
2022 год
2023 год
Текущий год


Распределение вендоров по количеству проектов внедрений (систем, проектов) с учётом партнёров

За всю историю
2021 год
2022 год
2023 год
Текущий год

  Microsoft (41, 47)
  Солар (ранее Ростелеком-Солар) (2, 46)
  Oracle (49, 26)
  Hyperledger (Open Ledger Project) (1, 23)
  IBM (33, 18)
  Другие (553, 270)