Обзор

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

Приложения разрабатываются полностью на Java Standard Edition, интерфейс описывается декларативно в XML. Для разработки стандартного веб интерфейса не требуется использование HTML, CSS или JavaScript, также поддерживается десктоп клиент. Широкий набор готовой функциональности покрывает типовые задачи проекта, а средства разработки минимизируют шаблонный код, обеспечивая высокую скорость разработки.

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

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

Начните прямо сейчас:

  • 1Установите CUBA Studio
  • 2Создайте новый проект
  • 3Studio автоматически настроит зависимости и загрузит артефакты и исходный код платформы

Исходный код платформы также доступен на GitHub. Мы будем рады, если вы захотите внести вклад в развитие проекта.

  • Управление пользователями

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

    Документация Обучающие материалы

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

    Документация

  • Настраивайте права доступа на основе ролевой модели непосредственно в работающем приложении. Управляйте CRUD-доступом к сущностям, отдельным атрибутам, пунктам меню и компонентам экранов. Создавайте собственные ограничения в коде и управляйте ими через универсальный интерфейс. Ограничивайте доступ к отдельным записям с помощью групп доступа.

    Документация Обучающие материалы 1

    Обучающие материалы 2

  • Отслеживайте информацию о том, кто и когда изменял выбранные элементы данных, или сохраняйте полные версии графов объектов после изменения.

    Журнал изменений Снимки сущностей

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

    JMX Console

  • Поддержка оптимистических и пессимистических блокировок
    Документация

    Управление транзакциями
    Документация

    “Мягкое” удаление
    Документация

  • Создавайте гибкие решения

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

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

    Документация Обзор

  • Создавайте бизнес-процессы с помощью встроенного визуального редактора. Управляйте процессами на протяжении всего жизненного цикла. Отображайте назначенные задачи пользователям с помощью компонента “Application folders”.

    Управление бизнес-процессами является частью премиум-дополнений.

    Документация

  • Расширяйте модель данных приложения “на лету” в работающем приложении благодаря поддержке схемы Entity-Attribute-Value в дополнение к классической реляционной схеме БД.

    Документация

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

    Полнотекстовый поиск является частью премиум-дополнений.

    Документация

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

    Документация

  • Подключайте провайдеров платежей по банковским картам к вашему приложению с помощью универсального интерфейса модуля Credit Card Payments. Модуль поддерживает 3D-secure и предоставляет интерфейс и инфраструктуру для безопасного хранения карт и деталей транзакций, приема, отмены платежей и обработки возвратов.

  • Отображайте даты с учетом часового пояса пользователя.

    Документация

  • Любой сервер Java EE Web Profile

    Запускайте ваше приложение на любом сервере Java EE Web Profile: Tomcat, Glassfish, Jetty, WebSphere и т.д.

    Документация

  • Размещайте CUBA приложения в популярных PaaS/aPaaS облаках, таких как IBM Bluemix, Pivotal Cloud Foundry, RedHat OpenShift или Amazon EC2.

    Загружайте приложения в облако Jelastic в один клик из Studio.

  • Используйте PostgreSQL, MySQL, Oracle Database или Microsoft SQL Server в качестве основной базы данных, или начните со встроенной HSQLDB на этапе создания прототипа. Платформа не привязана к специфике конкретной СУБД, поэтому возможна ее адаптация под другие базы данных.

  • Храните бинарные данные отдельно от БД в файловом хранилище.

    Документация

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

    Документация

  • Интегрируйте ваше приложение с внешними системами посредством универсального REST API. API позволяет вызывать методы среднего слоя, а также загружать и сохранять графы объектов модели данных в формате JSON и XML.

Технологии

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

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

Для реализации ORM применяется фреймворк EclipseLink, позволяющий моделировать предметную область в соответствии со стандартом JPA и выполнять сложные объектно-ориентированные запросы. Не исключается также использование обычного SQL через JDBC или MyBatis.

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

Модуль BPM основан на Activiti и предоставляет средства для создания, исполнения и управления процессами с поддержкой стандарта BPMN 2.0.

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