A Java továbbra is népszerű a szerveroldali fejlesztésekben, érdemes időről időre áttekinteni, hogy milyen fejlesztésekkel jelentkeztek a Java platformú szerveroldali keretrendszerek.
Ebben a blogposztban két fő területre osztva járjuk körül a keretrendszerekkel kapcsolatos fejlesztéseket, híreket:
-
Spring
-
Jakarta EE
Spring Boot
A Spring Boot és a Spring Framework keretrendszerrel kapcsolatos legfontosabb hírnek talán az mondható, hogy a Broadcom felvásárolta a Vmware-t 2023 novemberében. Hogyan és miért is érinti ez a Springet? A Spring Framework és a belőle kiinduló technológiák fő támogatója a Pivotal Software Inc. volt, amelyet 2019-ben vásárolt meg a Vmware, ekkor integrálták a Vmware Tanzu projektek közé a Springet.
Így most a Spring Framework fő céges támogatója a Broadcom, amely azonban a felvásárlás után komoly leépítésekbe kezdett a Vmware dolgozói között - több, mint 2008 Vmware dolgozótól váltak meg. A Spring Framework vezető fejlesztője, Oliver Drothbohm aggodalmát fejezte ki, ugyanis ezek az elbocsátások érintettek Spring Framework fejlesztőket is.
Valószínű azonban, hogy nem kell aggódnunk a Spring jövője miatt, két okból sem:
-
A fejlesztői bázis továbbra is hatalmas, és nem csak Vmware alkalmazottakból áll
-
A Spring nyílt forráskódú
A fejlődést jól mutatja, hogy a Broadcom felvásárlás óta is tervszerűen jelennek meg a Spring technológiák újabb kiadásra. A cikk írásának pillanatában a legfrissebb Spring Framework verzió a 6.1.2, de már elérhető a 6.2-es sorozat tesztverziója is, jelenleg a 7-es mérföldkőnél tart a fejlesztés. Hasonlóan, a Spring Boot keretrendszer is már a 3.3.3-mas verziónál tart, és fejlesztés alatt áll a 3.4-es sorozat.
Fontos megemlíteni, hogy a Spring Boot 2.x-es sorozat támogatása már tavaly lejárt, a 3.0 támogatásával együtt, idén májusban pedig a 3.3-mas sorozat támogatása is véget ért. Természetesen enterprise támogatási szerződéssel még vásárolható, de már csak egy évig, támogatás ezekhez a régi verziókhoz.
Ajánlott, hogy mindenki frissítsen a 3.3-as sorozatra. Azonban ez nem mindenhol zökkenőmentes, ugyanis nagy újdonság a Spring Boot 3.x esetén, hogy elvárja Java 17 meglétét. Azonban sok vállalat még nem vezette a Java 17-et be, különféle felmérések alapján még mindig a Java 8 és Java 11 vezet. A New Relic által elkészített felmérés alapján még mindig csak az alkalmazások 35%-a használ Java 17-et, miközben a Java 21 már a jelenlegi legfrissebb hosszú támogatási idejű (LTS) verzió.
A másik legnépszerűbb szerveroldali keretrendszer Java platformon a régi nevén Java Enterprise Edition (Java EE), amelyet ma már Jakarta EE-nek nevezünk, amióta az Oracle 2017 végén átadott az Eclipse Foundation részére. Az átnevezés is ennek köszönhető, a védjegyhasználat körüli jogviták megelőzése céljából új néven jelennek meg ennek a keretrendszernek/specifikációnak a jövőbeni verziói.
Elmondható, hogy ahogy a Sun Oracle általi felvásárlása meggyorsította a Java kiadásokat és a Java platform fejlődését, úgy ez a lépés is meggyorsította a Jakarta EE fejlődését az, hogy új kezekbe kerül. Egyre gyakrabban kerülnek kiadásra új verziók a specifikációkból, és nem csak régi specifikációkat frissítenek, újak is készülnek.
A jelenleg aktuális verzió a Jakarta EE 10, amelyet több nyílt forráskódú alkalmazásszerver is támogat, a legnépszerűbbek:
-
Eclipse GlassFish, a referenciaimplementációja a Jakarta EE platformnak
-
Wildfly, régebben Jboss Application Server
-
OpenLiberty
Ezekre építve több cég is ad támogatást és épít megoldásokat, például:
-
Payara, a Glassfishre építve
-
Jboss EAP a Red Hat portfóliójában
A Jakarta EE fejlődését erősen inspirálja a Spring Framework és Spring Boot fejlődése, jót tesz az iparban ez a verseny. Az elmúlt időben jellemzően olyan fejlesztések jelentek meg Jakarta EE-ben, amelyek a klasszikus alkalmazásszerverre telepített EAR alkalmazásoktól elmozdultak a konténerizált (akár mondhatnánk úgy is, beágyazott) alkalmazásszerverek felé. Modularizálták az alkalmazásszervereket, hogy a fejlesztők összeállíthassanak minimális futtatókörnyezeteket, anélkül, ha nincs szükségük a teljes Jakarta EE platform támogatására.
Emellett támogató technológiaként megjelent az Eclipse MicroProfile, amely a felhőalapú fejlesztésekben elterjedt technológiák használatát segítik.
A platform következő verziója a Jakarta EE 11 lesz, már elérhetők előzetes specifikációk. Nagy újdonság fejlesztői szemmel, hogy a specifikációkban egyre több és több helyen lesz támogatva a Java recordok használata, valamint a többszálúságban nagy teljesítménynövekedést hozó virtuális szálak is a specifikáció részét képezik.
Sajnos a Jakarta EE 11-be sem kerül be a platform specifikációi közé a Jakarta Web MVC, ugyanis ez olyan programozási modellt tesz lehetővé a Jakarta EE felhasználók számára, amelyet a Spring Web MVC keretrendszer is nyújt. Azonban aki ki szeretné próbálni ezt a technológiát, megteheti, az Eclipse Krazo használatával, akár Jakarta EE 10 alkalmazásszervereken is.
Ezen kívül a legfontosabb változás a Jakarta Data megjelenése, amely elhozza a Spring Databól ismert Repository interfészt és metódusnév alapú lekérdezések képzését.
Érdemes követni a Jakarta EE keretrendszer fejlődését, levetette magáról ez a technológia azt a sok régi problémás dolgot, ami miatt a legtöbb fejlesztő a Spring használatát egyszerűbbnek tartotta. A Jakarta EE 2024-ben még relevánsabb a modern üzleti alkalmazások szerveroldali fejlesztéseinél, mint eddig volt, méltó versenytársa a Spring technológiáknak.
Nagy előnyt adhat az is, hogy több cégtől is vásárolhatunk támogatást, amennyiben szükséges, nem egy cég áll a fejlesztés mögött, mint a Broadcom/Vmware/Pivotal esetén.