Главная
Блог разработчиков phpBB
 
+ 17 предустановленных модов
+ SEO-оптимизация форума
+ авторизация через соц. сети
+ защита от спама

CUBA — платформа для стремительной разработки бизнес-приложений на Java

Anna | 3.06.2014 | нет комментариев
Если вы занимаетесь разработкой софта для предприятий, то допустимо теснее написали собственную платформу. Которая разрешает вам стремительно создавать UI и логику для работы с данными, содержит всеобщую для ваших планов функциональность: управление правами пользователей, генератор отчетов, BPM и тому сходственное, и имеет архитектуру, разрешающую легко сопровождать и масштабировать приложение. Если еще не поспели написать, предлагаем познакомиться с нашей разработкой — платформой CUBA.

image

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

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

  • Декларативное создание UI: компоновка экранов в XML, инициализация и обработка событий в классах Java.
  • Библиотека data-aware визуальных компонентов. Есть все типовые, плюс специфические, скажем, многофункциональный фильтр данных, поля выбора связанных сущностей с многообразными вероятностями, таблица с группировками.
  • Экраны работают в веб (AJAX) и в десктоп (Swing) заказчиках. Исходники всеобщие.
  • Метаданные — расширенная информация о модели данных. Проектирование модели данных «от сущностей к таблицам».
  • Мягкое удаление записей в БД.
  • Управление правами доступа на ярусе операций с сущностями, их признаков и отдельных экземпляров, экранов и компонентов UI.
  • Подключаемая при необходимости функциональность: генератор отчетов, модуль бизнес-процессов с визуальным редактором, полнотекстовый поиск, работа с кредитными картами.
  • «Из коробки» поддерживаются PostgreSQL, MS SQL Server, Oracle, HSQL.ll Text Search начали разработку собственного генератора отчетов. До этого применяли JasperReports, но он нас не устраивал, во-первых из-за слишком трудоемкого процесса создания образцов, а во-вторых из-за трудностей с итогом итогов в Excel. Реализовали примитивную идею: отдельно описывать логику извлечения данных, отдельно создавать образец в Excel, Word либо HTML. Такой подход себя оправдал, и незадолго мы даже выделили ядро генератора в обособленный open-source план под наименованием YARG для применения вне платформы. Про него непременно будет статья на Прогре.

    Система сборки достаточно длинное время основывалась на Ant-скриптах. Причем, если сторонние библиотеки загружались из репозитория в бинарном виде, то платформа подключалась к прикладному плану только в виде исходников, напрямую из SVN. Такой подход имел превосходства на этапе становления платформы — всякий программист при работе над своим планом мог легко исправить что-то в платформе и легко закоммитить свои метаморфозы. В определенный момент мы перешли на типовой вариант, когда бинарные артефакты и исходники платформы загружаются в план так же, как и остальные зависимости — из Maven-репозитория. Заодно заменили Ant на Gradle, тот, что дозволил нам заключить стержневой код сборки в плагине, а скрипты планов сделать максимально лаконичными, но при этом произвольно расширяемыми.

    Когда мы начали делать Sherlock — продукт для такси, понадобился десктопный заказчик. Тогда и возникла вторая реализация GenericUI-компонентов на Swing. В итоге каждый UI продукта (больше 300 экранов) доступен и в веб и в десктоп вариантах с идентичной функциональностью, различия только в отзывчивости интерфейса и нюансах работы с клавиатуры.

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

    В определенный момент времени возникла идея сделать платформу доступной разработчикам за пределами нашей компании. Два года назад CUBA была взята на вооружение еще двумя ИТ-компаниями, которые сделали на ее основе достаточно большие планы: систему обработки электронных сообщений граждан Правительства Москвы и федеральный Электронный регистр онкобольных Республики Казахстан. Это окончательно уговорило нас в том, что CUBA может быть пригодной не только нам, и мы начали подготовку к публичному релизу.

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

    Планы на грядущее

    На данный момент CUBA перешла из фазы насыщенного роста и непрерывных изменений в больше мирную стадию эволюции. Безусловно, в первую очередь это постоянный процесс разных локальных доработок и устранения недостатков. Помимо того, мы планируем в ближайшее время заняться доделкой модуля отображения диаграмм — там появятся компоненты для отображения карты и интерактивные диаграммы на JavaScript, которые будут управляться, как и все остальные GenericUI-компоненты, из серверного Java-кода. Позже этого, скорее каждого, займемся вопросами деплоймента CUBA-приложений в облаке у PaaS-провайдеров.

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

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

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

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

Источник: programmingmaster.ru

Оставить комментарий
Форум phpBB, русская поддержка форума phpBB
Рейтинг@Mail.ru 2008 - 2017 © BB3x.ru - русская поддержка форума phpBB