Developers: | Haulmont (Howlmont) |
Date of the premiere of the system: | 2008 |
Last Release Date: | 2021/05/24 |
Branches: | Internet Services, Information Technology |
Technology: | BPM, Application Development Tools |
Content |
Main article: Business Process Management
Jmix (formerly CUBA Platform, CUBA Platform) is a high-level Java platform open source with for creating corporate information systems.
Appointment
Jmix is designed to build enterprise applications, as well as government information systems and the back end of portals and mobile applications.
2025: As part of the complex of infrastructure components
VK Tech together with OPUS TECH have developed a set of infrastructure components that optimize the processes of creating business applications and accelerate the digital transformation of enterprises in the oil and gas sector. VK Tech announced this on March 28, 2025. The project was implemented on the basis of a solution for building a private cloud in the data center of the customer Private Cloud based on VK Cloud and a platform for the rapid development of Jmix web applications from Holmont. Read more here.
2021: Major platform update renamed Jmix
Haulmont on May 24, 2021 announced the release of the next version of the framework for the rapid development of enterprise applications CUBA Platform. The changes are so global that the version received a new name - Jmix.
For the platform team, the update was the largest in history. Development of CUBA began in 2008. At first, it was a framework for use within the company. With its help, it was possible to standardize and, therefore, speed up the development of projects. And the widespread use of codogeneration and visual editors has significantly reduced the entry threshold for beginners.
Gradually, the platform's capabilities expanded, and Haulmont's partner companies began to use it. In 2015, CUBA was presented to a wide audience, and a year later the source code was made available to the public, and the platform became available under the Apache 2.0 license. For the next few years, the platform code was improved, the quality of documentation improved, the Marketplace of add-ons for the platform was launched, and the CUBA Studio development environment was transferred to IntelliJ IDEA.
We have constantly modernized the platform, but it is time for global technological change. In the Jmix version, we rewrote the framework from scratch, combining modern trends in Java development and the team's experience, Haulmont said. |
Features of Jmix:
- The platform is now based on SpringBoot instead of Spring.
- The framework is divided into modules (data, security, audit, and so on), which will reduce the size of applications being created.
- The approach to creating entity classes for the data model has changed: the legacy API has been removed as basic super classes.
- The database is now updated using Liquibase.
- The GraphQL API will be added to facilitate external integration with application data.
- Simplified deployment in cloudy environments.
The name Jmix reflects the essence of the product: "J" means "Java," and "Mix" means technologies and frameworks mixed in one application. As of May 2021, Jmix is in pre-release, which is suitable for prototyping and familiarizing yourself with the capabilities of the framework. A stable version is planned to be released in the second quarter of 2021.
The previous version of CUBA Platform will be supported for free for another five years. Haulmont will also provide the ability to migrate to Jmix via a compatible API.
2020
How to choose the technology base for digital transformation
Due to digital transformation, some seek to take leadership positions in the market, while others do not lag behind. When it comes to implementing specific solutions, artificial intelligence, big data, machine learning - technologies that are now heard - are usually remembered first. However, breakthrough technologies are not the only component of a successful digital transformation. A prerequisite for its implementation is the proper level of automation.
Main article: How to choose the technology base for digital transformation
Ecosystem
As of March 2020, the CUBA Platform ecosystem is based on three components:
- Proven architecture based on leading open technologies
- Quick Development Tools
- Open component marketplace for solving common problems
This comprehensive approach ensures a high development rate while reducing entry threshold and technological risks. The open source framework guarantees independence from the vendor.
The platform is included in the Register of domestic software.
CUBA Platform 7.2 Release
On March 2, 2020, CUBA Platform 7.2 and CUBA Studio 13 were released.
CUBA Platform Capabilities
Architecture
According to information for March 2020, the platform is based on Spring other Java technologies with. open source At the same time, an open and extensible architecture allows you to use any third-party libraries and. API
The platform allows you to create horizontally and vertically scalable solutions, as well as provide modular applications.
CUBA applications are compatible with popular relational DBMSs and work in any Java servlet container. Applications can be distributed as WAR, Docker image, UberJar, or deployed in the cloud.
Interface
The platform provides various options for implementing the user interface depending on the tasks being solved. The application can combine several UI clients.
The Generic UI module is designed to quickly develop a functionally rich web interface for internal users of the organization. Development is in Java or another JVM language. It is distinguished by the highest development speed thanks to visual tools, a ready-made infrastructure and a rich set of components that are automatically associated with data.
At the same time, publicly available interfaces usually assume an atypical design, as well as the ability to comfortably work from any device under low-predictive loads. To implement these requirements, the platform provides a code generator for UI development on React/React.native with a backend on CUBA.
The universal REST API makes it easy to integrate CUBA applications with arbitrary UI clients or external systems. It supports authentication, CRUD operations, configurable data fetches, and calling business methods. Swagger documentation is generated automatically.
Tools
The main development tool on the platform is CUBA Studio. The studio is based on IntelliJ IDEA IDE and provides a productive development process through code generation, visual editors, contextual hints and intuitive navigation.
Studio not only increases development productivity, but also significantly reduces the entry threshold for beginners to work with the platform.
Additions
Add-ons are high-level components that implement individual business requirements. Add-ons can include native UI, logic, and storage structure. Thanks to the modularity of the platform architecture, they are seamlessly embedded in the final application.
The public marketplace contains more than 50 additions, including BPM support, report generator, maps, full-text search, localizations, etc. Most add-ons are free.
Support
The platform website contains complete documentation in three languages: Russian, English and Chinese, as well as a large number of training materials.
There is also a free forum (Russian, English) of the community, where you can ask a question on technical topics.
In addition, Haulmont as a development company offers the full range of commercial services, from training and paid support to participating in projects or doing them turnkey.
CUBA Platform Licensing
Open Source/Free version of CUBA Studio
As of March 2020, the framework, like most add-ons, is distributed under the open license Apache 2.0, the most popular among open source projects. The source code is hosted in a public repository on GitHub.
Most CUBA Studio features are free. Exceptions are visual editors of the data model and screens, which are optional, but increase the comfort of work.
Commercial version of CUBA Studio and paid add-ons
Commercial subscription includes:
- Access to CUBA Studio Visual Editors
- Premium add-ons such as WebDAV, BPM, Maps.
A subscription to CUBA Studio is issued separately for each developer. Paid add-ons are licensed entirely to a legal entity, regardless of the number of developers.
Commercial subscription to add-ons is required only at the development stage and does not limit the operation of developed applications in any way.
A trial period of 28 days is available for commercial subscriptions.
2019: Liberica JDK compatibility
On July 18, 2019, BellSoft reported that it had cross-tested its products in conjunction with Haulmont and technically confirmed that the CUBA platform was fully compatible with Liberica JDK. This means that all products created on the CUBA platform are guaranteed to work on the import-substituting Java execution environment - Liberica JDK. Read more here.
2016
CUBA platform entered the unified register of Russian software
The flagship development of the company Haulmont"" - оpen-source the CUBA platform, designed for the development of corporate applications, is included register of Russian programs in the for electronic computers and databases. The decision to include the CUBA platform in the register was made by the expert council on Russian ON at Ministry of Digital Development, Communications and Mass Media Russia September 5, 2016. The CUBA platform is also included in the catalog of the Software Products Developers Association. ""Domestic software
CUBA Platform switched to opensource
Russian developer Haulmont announced in June 2016 the transfer of the CUBA platform to open source. The platform is now distributed under the Apache 2.0 license with source code available on GitHub; the company plans to monetize it by selling tools that increase the efficiency of development and additional modules.
According to the creators, the framework is designed for the rapid development of enterprise applications and is most effective for systems with "a complex data model, hundreds of screens, support for various business processes, strict requirements for flexibility and security."
In fact, the CUBA platform is a high-level framework that combines a set of popular open-source technologies into a single architecture, which allows developers to abstract from individual technologies used to create business systems (user interface development technologies, ORM, etc.) and concentrate on creating application business logic.
CUBA-based applications have a standard three-tier architecture: database layer, middle layer, and client layer. The platform has a range of functionality such as: user access control subsystem, data auditing, scheduled tasks, multi-language interface, developer console, universal REST API, dynamic attributes and other enterprise-specific modules.
From the developer's point of view, all code is written in Java SE (business logic of the application), XML (user interface) and JPQL (working with data). The user interface is described declaratively in XML, and screen controllers are also implemented in Java SE. However, it is possible to create a dynamic user interface directly from the controller code. The user interface includes more than 70 visual components, including a universal data filter; in this case, it is possible to integrate third-party or its own components developed in JavaScript or GWT.
Applications on CUBA can be deployed in a variety of configurations, including a cluster, providing the ability to develop business-critical systems. Databases,,,, and PostgreSQL Oracle Database Microsoft SQL Server MySQL HSQL (which is mainly used for prototyping) are supported. The application can be deployed on any Java EE Web Profile application server (Jetty, Tomcat, Glassfish, Websphere), in clouds, and CloudFoundry or OpenShift Jelastic Docker in a container.
The application can be developed in the popular Java IDE (IntelliJ IDEA, Eclipse). You can use CUBA Studio in parallel with the IDE. This is a specialized visual development environment that allows you to most effectively use the functionality of the framework.
Studio allows you to quickly create a data model in visual mode, generate database creation and update scripts and standard CRUD screens for it, which can then be modified using a screen designer. Studio is synchronized with the Java IDE, so a developer can, for example, generate a screen using Studio, and describe the logic of its work in the preferred IDE.
CUBA Studio, unlike the platform itself, is available in two versions: free and commercial. Free is fully functional, but limits the size of the application data model. However, it is possible to create a prototype application in free Studio, and continue further development in the IDE.
The commercial version, available by annual subscription, does not limit the size of the data model, and also provides the ability to connect premium add-ons that include a report generator, a chart and map module, a full-text search engine, and a business process module with a visual designer.
The main advantage of licensing the platform for Apache 2.0 is the absence of restrictions on applications created using the platform, which can be freely used and distributed without any payments.
Thus, development can also be carried out completely free of charge, or purchase an annual subscription at a price of 18,000 per developer in order to gain access to CUBA Studio and premium add-ons. In addition, the company offers technical support options for teams working on business-critical projects.
2015
As of October 2015, the CUBA Platform (CUBA Platform) is a high-level Java framework for enterprise application development. The platform integrates open-source technologies and includes a set of ready-made components that allow you to quickly solve typical problems when developing fault-tolerant business applications, thereby creating an effective development environment.
Initially, the platform was used as the main tool for developing most of Haulmont's products and solutions. Since 2015, CUBA Platform has been distributed as a separate product for IT developers.
CUBA Platform Assignment
The use of the platform is most effective in creating corporate information systems. Such systems are usually distinguished by complex organized data; high requirements for interface functionality, and at the same time a large number of typical screens; the need for flexible access controls, data filtering, and reporting.
Distinctive features
Compared to the well-known full stack frameworks, CUBA Platform provides the developer with a high level of abstraction, as well as a wide range of ready-made functionality. At the same time, the ability to work directly with low-level mechanisms remains.
Quick Visual Application Development
CUBA Studio is a developer tool that allows you to quickly configure a project, describe a data model and visually design user interface screens. Due to the possibility of "hot deploy," the changes made can be applied without restarting the application.
CUBA Studio supports two-way integration with the most popular IDEs: JetBrains IntelliJ IDEA and Eclipse.
Scaling
The platform architecture makes it possible to scale applications both functionally and in terms of fault tolerance.
In the maximum deployment option, users connect to Web Client servers via Load Balancer. WebClient servers work with a Middleware server cluster.
In the Middleware server cluster, interaction is organized to exchange information about user sessions, locks, etc. This ensures full fault tolerance of the Middleware block - when one of the servers is disabled, requests from client blocks continue to be made transparently to users on the available server.
Support for various DBMSs
The platform provides independence from the specifics of the DBMS. 'Out of the box' supports the ability to work with HSQL, PostgreSQL, Microsoft SQL Server, Oracle database. The ability to work with other DBMS is configured separately.
The conversion of the data model between the database and JAVA code is carried out using ORM together with the corresponding JDBC driver.
Security subsystem
The CUBA platform provides the following tools for monitoring application security:
- Authorization, including integration with LDAP and the ability to use Single Sign-On.
- Role model of users. The role combines a set of permissions that determine the user's right to any object or functionality of the system: a screen, an operation on an entity, and so on.
- Access groups that allow you to organize users into a hierarchical structure for setting restrictions and for assigning arbitrary session attributes.
Universal filter
The CUBA platform provides a universal mechanism for creating user filters for selecting arbitrary data in UI.
Flexible customization options
The CUBA platform solves one of the most difficult tasks for developers of boxed IT products. The platform contains a built-in mechanism for creating extension projects that allows you to adapt replicated products for specific customers, without hindering product version updates.
This mechanism implements two key points:
- The program code of the custom project is completely separated from the product code.
- Any part of the product code is available for modification in the client project.
In the CUBA platform, an "extension" is a separate project that inherits all the properties of the project at a level below (in the usual case, the source product), using it as a plug-in library. This allows developers to implement the new functionality without changing the source code.
This approach frees developers from creating redundant code branches or integrating all requirements in the source product, which makes the code more manageable and saves time significantly.
You can also create multiple levels of extensions.
Integration with third-party applications
The universal REST API of the platform allows you to download and save any entities of the application data model by sending simple HTTP requests. This opens up the possibility of easy integration with third-party applications of the widest range of − from JavaScript code running in a browser to arbitrary systems running on Java,.NET, PHP or any other platform.
The main features of the API:
- Loading entity instances from the database by ID or JPQL query with parameters
- Save new and modified instances, delete instances
- obtaining a description of the data model in HTML format;
- JSON and XML data presentation to choose from
- user authentication;
- calling middle layer services.
All functions work with UTF-8 encoded data.
Plug-ins
A specific set of modules can be connected as needed. Otherwise, they are not included in the application assembly.
Business Process Management
The execution subsystem of the CUBA platform business processes is based on the Alfresco Activiti framework, which allows you to use the business processes described in the BPMN 2.0 notation in the application.
Report Generator
The CUBA platform provides a mechanism for creating reports with output to office document formats, PDFs, as well as arbitrary text formats (xml, html or csv). The report generator is based on the YARG framework.
For ease of reporting, a wizard is provided.
A more complex setup of reports is provided using a special editor.
Full-Text Search
Full text search (FTS) of the CUBA platform provides the ability to unstructured search by the values of attributes of entities and by the content of downloaded files.
A feature of the CUBA full-text search implementation is its focus on use in business applications with complex data models. In particular, search results display not only entities that directly contain the search string in some attribute, but also related entities that use this attribute in their display.
Interactive charts and integration with Google Maps
The CUBA platform diagram display subsystem supports a large number of chart types: circular, linear, bubble, petal, accumulated diagrams, and others. You can export charts. Most chart types support scrolling and zooming.
Wide functionality for working with cards:
- Reaction to events.
- Setting markers. The Marker.ru can be fixed or with a user to drag. The Marker.ru can handle mouse clicks and pass the corresponding event to the screen code.
- Displays and draws broken lines and polygons (polygons).
- Displays the heat map.
Technologies used
Spring Framework
The Spring container is used as the core infrastructure of the middle layer and client blocks of the application. The capabilities of the framework are also used to organize remote interaction between blocks and implement web services.
EclipseLink
ORM EclipseLink is an extensible framework for interacting with various data sources, including databases, web services, Object XML mapping (OXM), corporate information systems.
Vaadin
The Vaadin framework is used in the web client to display a universal user interface. On the one hand, Vaadin provides a rich set of components, the ability to expand and customize visual representation using CSS, on the other hand, its server execution model increases application security and allows you to unify UI code between web and desktop clients.
Activiti framework
The integrated Alfresco Activiti framework enables BPMN 2.0 execution of business processes.
Lucene The Apache Lucene framework, which is the de facto standard for implementing the full-text search mechanism, is used in the additional FTS (full-text search) module.
Gradle To build projects, the popular Gradle system is used, which allows you to encapsulate in plugins the features of building CUBA applications, and on the other hand, it provides, if necessary, unlimited options for customizing assembly scripts written in Groovy.
YARG
YARG is used as a reporting tool.
Applications based on CUBA can be deployed on any Java EE Web Profile server: Tomcat, Glassfish, etc.
Licensing
Free license
The CUBA platform can be used free of charge with a limit of 5 simultaneous connections to the application. The free license file is downloaded along with the platform.
A free license is also provided to Russian educational institutions for use in their own needs.
Commercial license
The commercial license is bound to an application created on the platform. Within one organization, you can use any number of applications according to the license you purchased, but you need a separate license for each new application or to use the same application in another organization.
The license cost depends on the maximum number of concurrent sessions, as well as the complexity of the application, which is determined by the number of domain entities in its data model.
2008: Platform Development Begins
Development of the platform began in 2008 by Howlmont. It was conceived as a platform for quickly creating easily scalable enterprise applications with a web interface. The popular Java technology stack was taken as a basis: OpenJPA (later EclipseLink), Spring, Vaadin.