Alles in einem!

CUBA 6.3 bringt Anwendungs-Komponenten und multiple Datenspeicher für die Plattform

Dominik Mohilo

© Shutterstock.com / merc67

Die Macher der CUBA-Plattform nennen das aktuelle Update 6.3 das „vielleicht Feature-reichste Plattform-Release jemals“. Betrachtet man sich die Änderungen, die die neueste Version des Full-Stack-Frameworks an Bord hat, könnten sie damit durchaus Recht haben. Wir haben uns die Aktualisierungen für CUBA Platform 6.3 und CUBA Studio 6.3 angesehen.

Update 6.3 hat die Plattform CUBA um viele wichtige Features erweitert. Aktuell wurden bereits zwei Service-Updates veröffentlicht, nämlich die Versionen 6.3.1 und 6.3.2 in denen insgesamt elf kleinere Bugs gefixt wurden. Unter anderem resettet das REST API nun den SecurityContext nach jedem Request und JSON-Entitäten schreiben nun keine Werte mehr für @MetaProperty-Methoden.

Neue Features in CUBA Platform 6.3

Anwendungs-Komponenten

Eine der wichtigsten Neuerungen der Plattform CUBA sind die Application Components. Bislang war es lediglich möglich, Projekte vertikal zu erweitern. Man konnte also eine große Anzahl an Erweiterungen für ein einzelnes Basisprojekt erstellen, nicht aber Add-ons im Sinne von CUBA Reporting oder BPM, die mit anderen Add-ons in der endgültigen Anwendung kombiniert werden können.

Dies ist nun, Dank des Konzepts der Anwendungs-Komponenten, möglich: Große Anwendungen können in CUBA Plattform 6.3 in ein Set funktionaler Module heruntergebrochen werden, die man dann als separate Projekte entwickelt. Diese Module sind dann sogar wiederverwendbar und können in andere Anwendungen eingefügt werden, ganz ähnlich der CUBA Premium Add-ons.

Anwendungs-Komponenten am Beispiel einer Taxi-Management-Anwendung / Quelle: JavaCodeGeeks

Anwendungs-Komponenten am Beispiel einer Taxi-Management-Anwendung / Quelle: JavaCodeGeeks

Multiple Datenspeicher

Ähnlich innovativ ist die Unterstützung mehrerer Datenspeicher für eine Anwendung. Bislang war es so, dass für jede Anwendung lediglich einen Datenspeicher ausgewählt werden konnte. Man konnte zwar andere Datenquellen direkt über JDBC oder andere Verbindungen nutzen, aber die Darstellung und die Bearbeitung solcher „externen“ Daten war mit den Standard-UI-Komponenten schwer abzubilden.

Das neue Konzept zu Datenspeichern wurde als Lösung für dieses Problem designt: Es kann nun mit Daten aus verschiedenen Quellen in einer einzelnen Anwendung gearbeitet werden. Dabei ist es außerdem möglich, die gängigen Plattformmechanismen wie die datensensitiven visuellen Komponenten.

Betrachtet man einen Datenspeicher als Interface mit einigen wenigen Methoden für das Laden und Speichern von Entitäten, beinhaltet die Plattform aktuell eine einzige Implementierung dieses Interfaces, die die Zusammenarbeit mit relationalen Datenbanken über den ORM-Layer erlaubt. Nun können eigene Implementierungen für Datenspeicher in die eigenen Projekte eingefügt werden, etwa um mit NoSQL-Datenbanken zusammenzuarbeiten.

Beispiel einer Datenspeicherstruktur / Quelle: JavaCodeGeeks

Beispiel einer Datenspeicherstruktur / Quelle: JavaCodeGeeks

Weitere neue Features

Die Base Classes haben eine Schlankheitskur hinter sich: Durch das aktuelle Refactoring können minimale Entitäten nur mit einem einzigen benötigten Systemattribut ausgestattet werden (id). Dieses kann zu beinahe jeder Datenbank-Type, inklusive IDENTITY, gemappt werden. Auch composite keys werden nun unterstützt.

Nutzer können sich seit dem Update in mehrere laufende Anwendungen per Singe-sign-on (SSO) einloggen. Das heißt es wird pro Browser-Session nur ein einziger Log-in-Name und ein einziges Passwort benötigt. Dies hat einen positiven Effekt auf die User Experience bei der Arbeit mit mehreren Systemen und hilft Administratoren, die Passwörter der Nutzer zu verwalten.

Ein SSO-System mit zwei Anwendungen / Quelle: JavaCodeGeeks

Ein SSO-System mit zwei Anwendungen / Quelle: JavaCodeGeeks

Weitere Änderungen umfassen unter anderem die Möglichkeit Anwendungen mit UI screens zu entwickeln, ohne sich einzuloggen. Die Plattform beinhaltet ab Version 6.3 einen vordefinierten anonymen Nutzer, alle Änderungen am Code werden vor dem Log-in diesem Nutzer zugewiesen. Seit dem Update gibt es auch einen neuen Mechanismus, der es erlaubt, UI screens für verschiedene Geräte zu adaptieren, also für Desktops, Tablets oder Smartphones.

Schließlich und endlich wurde für Version 6.3 der CUBA-Plattform ein völlig neues REST API mit Namen REST API v2 konzipiert. Dieses geht mit dem REST-Architekturstil konform, nutzt also URIs und HTTP verbs sowie die OAuth2-Authentifizierung. In Verbindung mit der verbesserten JSON-Serialisierung soll die Erstellung von Web- und Mobile-Anwendung einfacher werden.

Neue Features in CUBA Studio 6.3

Nicht ganz so umfangreich wie das Update von der CUBA-Plattform fällt hingegen das Update auf CUBA Studio 6.3 aus. Insgesamt wurden etwa 30 Änderungen vorgenommen, darunter Bugfixes, Verbesserungen der Usability und Erweiterungen. Außerdem wird sich nun die Versionsnummer des Studios nach dem Schema Major.Minor immer vollständig an jener der unterstützten Plattform orientieren.

Individuelle Anwendungs-Komponenten können mit Version 6.3 nun über das Panel Project Properties | App components hinzugefügt werden. Um das aktuelle Projekt als Anwendungs-Komponente nutzen zu können, kann man nun den Descriptor und den Manifest Entry der app-component.xml generieren. Dies geht über die Verknüpfung Project Properties |App component descriptor.

Eine umfangreiche Beschreibung aller neuen Features in CUBA Platform 6.3 gibt es auf JavaCodeGeeks. Die Release Notes zur CUBA Platform 6.3 gibt es auf der Homepage von CUBA, dort finden sich auch die Release Notes zu CUBA Studio 6.3.

Hintergrund

CUBA ist ein Full-Stack-Framework, das auf mehreren Java-Technologien wie Spring, Vaadin, OpenJPA, Lucene, jBPM und Gradle basiert. Dabei ist das Framework vor allem auf die Entwicklung von Enterprise-Anwendungen ausgelegt, die beispielsweise komplexe Datenmodelle, strenge Sicherheitsmaßnahmen und die Unterstützung diverser Geschäftsprozesse erfordern. Auch für Anwendungen, die darüber hinaus noch skalierbar und je nach Entwicklung des Unternehmens auch für ständige Änderungen bereit sein müssen, eignet sich CUBA.

Float Cocktail / Quelle: CUBA Blog

Float Cocktail / Quelle: CUBA Blog

Das verbindende Element stellen in CUBA die Metadaten dar, die alle visuellen Komponenten datensensitiv machen. Das deklarative User Interface unterstützt die Definierung des Layouts per XML oder visuellem Editor, der aus mehr als 70 Komponenten besteht. Dies können zum Beispiel einfache Buttons oder größere Anwendungen wie Google Maps sein. Auf den Generic Filter des User Interfaces, der es Nutzern erlaubt, eigene Suchbedingungen zu erstellen, legt das Team von CUBA ein besonderes Augenmerk. Hinzu kommt das rollenbasierte Sicherheits-Subsystem, das den CRUD-Zugriff bis hin zu den Entitäts-Attributen kontrolliert.

Abgesehen von den drei Hauptkomponenten bietet CUBA standardmäßig noch einige weitere Features, wie etwa Volltextsuche, ein REST API für die Integration mit externen Systemen, die Unterstützung von Kreditkartenzahlungen oder asynchronen Mailversand. Weitere Informationen zum architektonischen Aufbau von CUBA gibt es auf dem CUBA Blog.

Geschrieben von
Dominik Mohilo
Dominik Mohilo
Dominik Mohilo studierte Germanistik und Soziologie an der Goethe-Universität in Frankfurt. Seit 2015 ist er Redakteur bei S&S-Media.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: