RSS
Логотип
Баннер в шапке 1
Баннер в шапке 2

CUBA.platform

Product
Developers: Haulmont
Last Release Date: 2020/03
Branches: Internet services,  Information technologies
Technology: BPM,  Development tools of applications

Content

CUBA Platform is high-level Java platform with the open code for creation of corporate information systems.

Appointment

The CUBA platform is intended for creation of corporate applications and also the state information systems and a server part of portals and mobile applications.

Ecosystem

For March, 2020 the ecosystem of CUBA Platform is based on three components:

  • The checked architecture on the basis of the dominant open technologies
  • Means of rapid development
  • Open marketplace of components for the solution of standard tasks

Such complex approach provides the high speed of development, at the same time reducing a threshold of an input and technological hazards. The open code of a framework guarantees independence of vendor.

The platform is included in the Register of domestic software.

2020

How to select technology base for digital transformation

Due to digital transformation some aim to take leader positions in the market, and others — not to lag behind. When it comes to implementation of specific solutions, usually first of all remember artificial intelligence, Big Data, machine learning — technologies which now very famous. However disruptive technologies — not the only component of successful digital transformation. The compulsory provision for its carrying out is the due level of automation.


Main article: How to select technology base for digital transformation

Release of CUBA Platform 7.2

On March 2, 2020 CUBA Platform 7.2 and CUBA Studio 13 were published.

Possibilities of the CUBA platform

Architecture

According to information for March, 2020 of the platform Spring and others is the cornerstone of Java technology with the open code. At the same time the opened and expanded architecture allows to use any third-party libraries and API.

The platform allows to create horizontally and vertically scalable solutions and also provides modularity of applications.

CUBA-applications are compatible to popular relational DBMS and work in any Java container of servlets. Applications can be distributed in a type of WAR, Docker image, UberJar or to unroll in a cloud.

Interface

The platform provides different options of implementation of the interface of users depending on solvable tasks. In the application several UI clients can be combined.

The module Generic UI is created for rapid development of functionally saturated web interface for internal users of the organization. Development is conducted on Java or other JVM language. It is distinguished by the highest speed of development thanks to visual tools, ready infrastructure and a rich set of the components which are automatically connected with data.

At the same time, publicly available interfaces are usually involved by non-standard design and also a possibility of comfortable work from any device in the conditions of low-predictable loading. For implementation of these requirements the platform provides the code generator for development of UI on React/React.native with a backend on CUBA.

Universal REST API allows to integrate easily CUBA applications with any UI clients or external systems. It supports authentication, CRUD transactions, the configured data samplings and a call of business methods. Documentation of Swagger is generated automatically.

Tools

Fixed asset of development on the platform - CUBA Studio. The studio is founded on IDE IntelliJ IDEA and provides productive development process thanks to code generation, visual editors, contextual hints and intuitive navigation.

Studio not only increases productivity of development, but also considerably reduces an input threshold for beginners to work with the platform.

CUBA Platform

Additions

Additions are the high-level components implementing separate business requirements. Additions can include own UI, logic and structure of data storage. Thanks to modularity of architecture of the platform, they are seamlessly embedded in the final application.

Public marketplace contains more than 50 additions, including support of BPM, the report generator, cards, full-text search, localizations, etc. The majority of additions are free.

CUBA Platform: Additions

Support

Complete documentation in three languages is posted on the website of the platform: Russian, English and Chinese and also a large amount of the training materials.

In the same place the free forum (Russian, English) communities where it is possible to ask a question on technical subjects is placed.

In Haulmont addition as the developer company offers all range of commercial services, from training and paid support before participation in projects or their turnkey accomplishment.

CUBA Platform licensing

Open Source / Free version of CUBA Studio

For March, 2020 the framework, as well as the majority of additions, extend according to the open license Apache 2.0, the most popular among open source-проектов. The source code is placed in a public repository on GitHub.

The majority of opportunities of CUBA Studio are free. Exceptions are made by the visual editors of a data model and screens who are not obligatory, but increasing comfort of work.

Commercial version of CUBA Studio and paid additions

The commercial subscription includes:

  • Access to visual editors of CUBA Studio
  • Premium additions, such as WebDAV, BPM, Maps.

On CUBA Studio it is subscribed separately on each developer. Paid additions are licensed entirely on the legal entity, irrespective of the number of developers.

The commercial subscription to additions is required only at a development stage and does not limit operation of the developed applications in any way.

The trial period in 28 days is available to a commercial subscription.

2019: Compatibility with Liberica JDK

On July 18, 2019 BellSoft reported that they together with Haulmont and carried out cross-testing of the products and technically confirmed that the CUBA platform is completely compatible to Liberica JDK. It means that all products created on the CUBA platform with guarantee work at the import-substituting environment of execution Java - Liberica JDK. Read more here.

2016

The CUBA platform was included into the unified register of the Russian software

Flagman development of the company "Haulmont" - оpen-source the CUBA platform intended for development of corporate applications is included in register of the Russian programs for electronic computers and databases. The decision on inclusion of the CUBA platform in the register was made by expert advice on Russian SOFTWARE at Ministry of Telecom and Mass Communications Russia September 5, 2016. The CUBA platform is also included in the directory of Association of Software developers "Domestic software".

CUBA Platform is transferred to opensource

The Russian developer company of Haulmont announced in June, 2016 the translation of the CUBA platform in open source. Now the platform extends according to the license Apache 2.0 with the source code available to GitHub; her company is going to monetize due to sale of tools raising efficiency of development and add-on modules.

According to creators, the framework is expected rapid development of corporate applications and is most effective for systems with "a difficult data model, hundreds of screens, support of different business processes, strict requirements to flexibility and security".

In fact, the CUBA platform represents the high-level framework integrating a set of popular open-source of technologies in uniform architecture that allows developers to abstract from the separate technologies which are used for creation of business systems (technologies of development of the user interface, ORM, etc.) and to concentrate on creation of business logic of the application.

Applications based on CUBA have standard three-level architecture: DB level, center and client level. The platform has a range of functionality, such as: subsystem of control of the access level of users, audit of data, tasks of the schedule, multilanguage interface, console of the developer, universal REST API, dynamic attributes and other modules, characteristic of corporate applications.

From the point of view of the developer, all code is written in Java SE (business logic of the application), XML (user interface) and JPQL (work with data). The user interface is described is declarative in XML, and controllers of screens are implemented also on Java SE. However, creation of the dynamic user interface directly from the code of the controller is possible. The user interface includes more than 70 visual components, including the universal filter of data; at the same time there is an opportunity to integrate the third-party or own components developed on JavaScript or GWT.

Applications on CUBA can be unrolled in different configurations, including in a cluster, providing an opportunity to develop systems, critical for business. Databases PostgreSQL Oracle Database Microsoft SQL Server, MySQL and HSQL are supported (which, is generally used for prototyping). The application can be unrolled on any Java EE Web Profile application server (Jetty, Tomcat, Glassfish, Websphere), in "clouds" CloudFoundry, OpenShift and Jelastic or in Docker a koneyner.

Application programming can be conducted in popular by Java IDE (IntelliJ IDEA, Eclipse). In parallel with IDE CUBA Studio use is possible. It is a specialized visual development environment which allows to use functionality of a framework most effectively.

Studio allows to create quickly in the visual mode a data model, to generate for it scripts of creation and updating a DB and standard CRUD screens which can be modified then by means of the designer of screens. Studio is synchronized with Java IDE so the developer can generate, for example, the screen through Studio, and to describe logic of its work in the preferred IDE.

CUBA Studio, unlike the platform, is available in two versions: free and commercial. Free it is completely functional, but limits the extent of a data model of the application. However, there is an opportunity to create an application prototype in free Studio, and to continue further development in IDE.

The commercial version available on an annual subscription does not limit the extent of a data model and also gives a connectivity of premium additions which include the report generator, the module for work with charts and cards, a subsystem of full-text search and the module of business processes with the visual designer.

The main advantage of licensing of the platform on Apache 2.0 - lack of restrictions for the applications created using the platform which can be used and extended freely without any payments.

Thus development can also be conducted completely free of charge, or to purchase an annual subscription at the price 18,000 on the developer to get access to CUBA Studio and premium additions. In addition, the company offers options of technical support for the commands working on projects, critical for business.

2015

As of October, 2015 the CUBA platform (CUBA Platform) is high-level Java-framework for development of corporate applications. The platform integrates open-source of technology and includes a set of ready components allowing to solve quickly standard problems when developing failsafe business applications, creating thereby an effective development environment.

Initially the platform was used as the main building tool of the majority of products and solutions of Haulmont company. Since 2015 CUBA Platform extends in the form of a separate product for IT developer.

CUBA Platform appointment

Use of the platform is most effective during creation of corporate information systems. Such systems usually differ in difficult organized data; high functional requirements of the interface, and at the same time large number of standard screens; need of flexible control facilities of access, data filtering and obtaining reports.

Distinctive features

In comparison with the known full stack frameworks CUBA Platform provides to the developer the high level of abstraction and also a broad set of ready functionality. At the same time also the opportunity for work directly with low-level mechanisms remains.

Fast visual application development

CUBA Studio is the tool of the developer allowing to configure quickly the project, to describe a data model and to visually design screens of the user interface. In view of existence of a possibility of "hot deploy" the made changes can be applied without restart of the application.

CUBA Studio supports bilateral integration with the most popular IDE: JetBrains IntelliJ IDEA and Eclipse.

Scaling

The architecture of the platform gives the chance to scale applications as it is functional, and in terms of fault tolerance.

In the maximum option of deployment connection of users to the Web Client servers is made through Load Balancer. The WebClient servers work with Middleware server cluster.
In a server cluster of Middleware interaction for information exchange about the user sessions, blocking and so forth will be organized. At the same time the complete fault tolerance of the Middleware block is provided - at shutdown of one of servers accomplishment of requests from client blocks continues on the available server is transparent for users.

Support of different DBMS

The platform provides independence of specifics of DBMS. 'From a box' the opportunity for work with HSQL, PostgreSQL, the Microsoft SQL Server, Oracle database is supported. The opportunity for work with other DBMS is configured separately.

Converting of a data model between a DB and JAVA the code is performed through ORM together with the corresponding JDBC driver.

Security subsystem

The CUBA platform is provided the following means for control of security of the application:

  • Authorization, including integration about LDAP and an opportunity to use Single Sign-On.
  • Role model of users. The role integrates a set of permissions which define the user's right to any object or functionality of a system: the screen, transaction over an entity and so on.
  • Groups of access which allow to organize users in a hierarchical structure for installation of restrictions and for assignment of any attributes of a session.

Universal filter

The CUBA platform is provided the universal mechanism of creation of the user filters for selection of random data in UI.

Flexible opportunities of customization

The CUBA platform solve one of the most difficult tasks for developers of boxed IT products. The platform contains the built-in mechanism of creation of projects expansions allowing to adapt the replicated products for specific customers without complicating at the same time updating of versions of products.

This mechanism implements two key moments:

  • The program code of the custom project completely separates from a product code.
  • Any part of a product code is available to change in the client project.

In the CUBA platform "expansion" is a separate project which inherits all project properties level below (usually - an initial product), using it as the connected library. It allows developers to implement new functionality, without changing the source code.

This approach exempts developers from creation of excess branches of the code or integration of all requirements in an initial product that does the code more managed and considerably saves time.

Perhaps also creation of several levels of expansions.

Integration into third-party applications

Universal REST API platforms allows to execute loading and preserving of any entities of a data model of the application by means of sending simple HTTP of requests. It opens a possibility of easy integration into third-party applications of the broadest spectrum − from JavaScript of the code which is executed in the browser to any systems working at Java,.NET, PHP or any other platform.

Main opportunities of API:

  • loading of copies of entities from the database on the identifier or on JPQL to a request with parameters;
  • preserving of the new and changed copies, removal of copies;
  • obtaining the description of a data model in the HTML format;
  • data view in the JSON and XML formats at choice;
  • user authentication;
  • call of services of the center.

All functions work with data in UTF-8 encoding.

The connected modules

A certain set of modules can be connected as necessary. Otherwise they do not turn on in assembly of the application.

Management of business processes

The subsystem of execution of business processes of the CUBA platform is based on Alfresco Activiti framework that allows to use in applications business processes, BPMN 2.0 described in a notation.

Report generator

The CUBA platform provides the mechanism of creation of reports with an output in formats of office documents, PDF and also any text formats (xml, html or csv). The framework of YARG is the cornerstone of the report generator.

For simplicity of report generation wizard is provided.

More difficult report settings are provided by means of the special editor.


Full-text search

Full-text search (full text search, FTS) the CUBA platforms gives an opportunity of unstructured search in values of attributes of entities and on contents of the loaded files.
Feature of implementation of full-text search for CUBA is its orientation to use in business applications with difficult data models. In particular, in search results not only the entities directly containing in some attribute a required line, but also the connected entities at which display this attribute is used are displayed.

Interactive charts and integration with Google Maps

The display subsystem of charts of the CUBA platform maintains a large number of types of charts: circular, linear, bubble, lobe, charts with accumulation and other. There is a possibility of export of charts. For the majority of types of charts scrolling and zooming is supported.

Broad functionality on work with cards:

  • Reaction to events.
  • Installation of markers. Marker.ru can be fixed or with the dragged user. Marker.ru can process mouse clicks and transfer the corresponding event to the code of the screen.
  • Display and drawing of broken lines and polygons (polygons).
  • Display of the thermal card (heat map).

The used technologies

Spring Framework

The container Spring is used as the main infrastructure of the center and client blocks of the application. Possibilities of a framework are also used for the organization of remote interaction between blocks and implementation of web services.

EclipseLink

ORM EclipseLink is an expanded framework for interaction with different data sources, including databases, web services, object mapping in XML (Object XML mapping, OXM), corporate information systems.

Vaadin

The framework of Vaadin is used in the web client for display of the universal user interface. On the one hand, Vaadin gives a rich set of components, opportunities of expansion and customization of visual representation using CSS, with another - its server model of execution increases security of the application and allows to unify the UI code between web and a desktop clients.

Activiti framework
The integrated framework of Alfresco Activiti provides execution business of processes in the BPMN 2.0 format.

Lucene Apache Lucene framework which is de facto the standard of sale of the mechanism of full-text search is used in the FTS add-on module (full-text search).

Gradle The popular Gradle system allowing to encapsulate on the one hand in plug-ins of feature of creation of CUBA-applications is applied to assembly of projects, and with another - gives if necessary unlimited opportunities of customization of the assembly scripts written on Groovy.

YARG

YARG is used as the tool for report generation.

Web servers

The applications created on the basis of CUBA can be unrolled on any Java EE Web Profile server: Tomcat, Glassfish, etc.

Licensing

Free license

The CUBA platform can be used free of charge with restriction for 5 simultaneous connections to the application. The free license file is loaded together with the platform.
The free license is also provided to the Russian educational institutions for use in own needs.

Commercial license

The commercial license is tied to the application created on the platform. Within one organization it is possible to use any number of applications according to the purchased license, but the separate license is necessary for each new application or for use of the same application in other organization.

The cost of the license depends on the maximum number of simultaneous sessions and also on complexity of the application which is defined by number of entities of data domain in its data model.

2008: Beginning of development of the platform

Development of the platform began Haulmont company in 2008. It thought as the platform for fast creation of easily scalable corporate applications with the web interface. The popular stack of Java of technologies was taken as a basis: OpenJPA (after EclipseLink), Spring, Vaadin.