JVx

JVx

Basisdaten

Hauptentwickler SIB Visions
Aktuelle Version 3.1
(7. Mai 2025)
Betriebssystem Plattformunabhängig
Programmier­sprache Java
Kategorie Framework
Lizenz Apache-Lizenz
www.sibvisions.com

JVx ist ein quelloffenes Framework für die Java Plattform. Lizenziert ist es unter der Apache Lizenz 2.0. Es ermöglicht die Erstellung von grafischen Anwendungen vorrangig für relationale Daten die in Datenbanken gespeichert werden. Das Framework wird hauptsächlich von der Firma SIB Visions aus Wien entwickelt.

Das Kürzel JVx[1] steht für Java Application extensions und ursprünglich war JAx angedacht. Da dieses Kürzel jedoch schon vergeben war, wurde kurzerhand aus dem A ein V gemacht.

Merkmale

Eines der Hauptmerkmale von JVx ist die vollständige Umsetzung eines Schichtenmodells. Aufbauend auf einer Drei-Schichtenarchitektur werden dem Softwareentwickler diverse Einsatzmöglichkeiten geboten.

Die Drei Schichten sind:

  • Präsentationsschicht (Darstellung der Anwendung im Browser, als App am Smartphone/Tablet oder als installierbare Desktop Anwendung)

Durch diese Architektur hat der Softwareentwickler auch die Möglichkeit einzelne Schichten auszutauschen ohne das komplette Framework zu Ersetzen.

Implementierungen

Die einzelnen Schichten von JVx wurden abstrakt definiert und sind dadurch Technologie unabhängig. Das erlaubt den Einsatz unterschiedlichster Technologien ohne die Anwendung neu zu entwickeln. Für die Präsentationsschicht gibt es bereits vollständige Implementierungen für die Technologien:

Die Implementierungen sind wie das Framework ebenfalls quelloffen.

Die Logikschicht ist zuständig für die Verwaltung der Geschäftslogik und diese wird für jede Anwendung speziell implementiert, da jede Anwendung eigene Abläufe hat. Das kann zum Beispiel die Berechnung von Summen oder die Überprüfung von Gültigkeiten sein. Diese Schicht wird nie ausgetauscht, sondern immer wieder neu verwendet.

In der Datenhaltungsschicht existiert bereits mittels JDBC die Möglichkeit auf relationale Datenbanken zuzugreifen. Da diese Schicht ebenfalls abstrakt gehalten wurde können die Daten auch von anderen Datenquellen bezogen werden.

Historie

Das Framework wurde das erste Mal im März 2010 als 0.8 Beta[6] veröffentlicht. Die erste GUI Technologie war Swing (Java). Im Jahr 2010 hatte sich die Anwendungsentwicklung im Browser noch nicht vollständig etabliert und Desktop Technologien waren noch gefragt. Das war auch der Grund warum eine weitere Desktop Technologie mit QT implementiert[7][8] wurde.

Ebenfalls im Jahr 2010 wurde parallel zur Desktop Technologie bereits die Umsetzung einer Web Technologie[9] gestartet. Diese war jedoch äußerst exotisch mit GWT und der Ext JS Implementierung extGWT (GXT). Es gab auch Experimente mit Technologien wie Silverlight[10] oder JavaFX[11].

Die Version 1.0 von JVx wurde offiziell im Dezember 2011 veröffentlicht[12]. Die Web Technologien wurden in dieser Zeit zunehmend wichtiger.

Das war dann auch der Grund warum im Mai 2013 eine komplett neue Implementierung mit Vaadin 7 veröffentlicht wurde[13]. Die Vaadin Version wurde im Jahr 2017 auf Vaadin 8 migriert[14].

Als dann jedoch ebenfalls im Jahr 2017 bekannt gegeben wurde das mit Februar 2022 das EOL[15] von Vaadin 8 erreicht sein wird, musste eine neue Web-Technologie angedacht werden. Das war dann der Beginn des react basierten reactUI[16].

Die Weiterentwicklung von JVx wurde unabhängig von den jeweiligen GUI Technologien vorangetrieben und im April 2014 wurde JVx 2.0[17] veröffentlicht. Dann wurden stets nur kleinere Aktualisierungen veröffentlicht bis letztendlich im Dezember 2024 die Version 3.0 veröffentlicht wurde[18].

Bereits vor 2014 wurde an nativen Implementierungen für Android und iOS basierte Geräte gearbeitet und im Jahr 2014 wurden dann im Rahmen zweier Masterthesen ein Android[19] sowie ein iOS Client[20] vorgestellt. Es handelte sich dabei aber um 2 unterschiedliche Code Basen und das war vermutlich auch der Grund warum im April 2020 ein komplett neuer Client für mobile Geräte angekündigt[21] wurde. Dieser war Flutter basierend und wurde im April 2021 erstmals als Version 1.1.0[22] veröffentlicht. Die Version 2.0.0[23] ließ jedoch über ein Jahr auf sich warten und wurde erst im November 2022 veröffentlicht. Doch ab diesem Zeitpunkt ging es rasant weiter und es wurde kontinuierlich aktualisiert.

Konkurrenz

Das Framework ist schwer vergleichbar, weil es technologieunabhängig ist und für einen konkreten Anwendungsfall erstellt wurde. Aber ein Konkurrent ist ganz bestimmt Flutter weil auch damit mit einer einzigen Code Basis die unterschiedlichsten Plattformen bespielt werden können. Bei JVx findet jedoch eine Spezialisierung auf datengetriebene Anwendungen statt und bei Flutter gibt es diese Spezialisierung nicht.

Zwei weitere Konkurrenten sind auch die Remote Application Platform (RAP) von Eclipse oder Codename One[24].

Das interessante an JVx ist, das die Konkurrenz verwendet wurde um unterschiedliche Präsentationsschichten zu implementieren.

Einzelnachweise

  1. JVx
  2. Swing UI
  3. react UI
  4. Flutter UI
  5. Vaadin UI
  6. JVx 0.8 Beta
  7. QT UI
  8. Swing UI vs. QT UI
  9. GXT UI
  10. Silverlight UI
  11. JavaFX UI
  12. JVx 1.0
  13. Vaadin UI 1.0
  14. Vaadin UI mit Vaadin 8
  15. Vaadin 8 EOL
  16. react UI Start
  17. JVx 2.0
  18. JVx 3.0
  19. Android UI
  20. iOS UI
  21. Flutter UI Start
  22. Flutter UI 1.1.0
  23. Flutter UI 2.0.0
  24. CodenameOne