Mark Newton vagyok, a JBoss.org fejlesztői csapatának tagja. A következő interjú alanya Gavin King, akivel a Seam Frameworkről, a Web Beans-ről és egy sor más témáról fogunk beszélgetni.
Mark: Először is beszéljünk a Seamről, arról, hogy mit tartogat a jövő, és az új könyvvel kapcsolatos friss információkról. Gavin, március végén azt írtad a blogodban, hogy a Seam letöltések száma csaknem megegyezik a Hibernate letöltésekkel. Minek tulajdonítod ezt a magas befogadási szintet?
Gavin: Szerintem az emberek manapság az alkalmazásfejlesztés problémájára teljes megoldásokat keresnek; belefáradtak abba, hogy tíz különböző keretrendszert kell keresniük a szűk technikai problémák megoldásához, aztán pedig ki kell találniuk, hogy ezeket hogyan építsék egybe és hogyan működtessék együtt. A következő szintre akarnak eljutni, mely az alkalmazás fejlesztésének teljes problémáját megoldja.
Szerintem az első lépéseket ebbe az irányba az olyan szkript nyelv környezetek jelentették, mint például a Ruby, de úgy gondolom sokan nagyon szeretnék ezt a fajta hatékonyságot elérni Javában is. Sok nagyszerű előnye van annak, ha olyan, típusokat tartalmazó nyelvben dolgozunk, amely támogatja a Java által kínált összes csodálatos eszközt. A JVM egy nagyszerű végrehajtási környezet. Egy csodálatos végrehajtási környezet. Emellett a Java EE-ben elérhető vállalati szolgáltatások páratlanok.
Szerintem az emberek az ilyen, előre felépített környezet akarnak használni, mégpedig Javában. Viszonylag kevés olyan projekt van, ami ezt megpróbálja elérni. Persze van néhány projekt, ami ezt akarja elérni, és a Seam nyilvánvalóan ezek egyike.
Mark: Remek. Mostanság sokat hallhatunk arról, hogy a Seamet webes alkalmazásfejlesztésnél használjátok. Tudjátok a Seamet különböző Java alkalmazások esetén is, azaz nem csak a webes alkalmazásoknál használni?
Gavin: Manapság minden a webes alkalmazásokról szól, de hónapok óta jelezzük, hogy ez több annál. A Seam alapjai, a kontextuális komponens modell, az állapotkezelés, az integráció a Drools-szal, jBPM-mel, illetve a programozási modell alapjai a webes alkalmazásokon túl is alkalmazhatók. Jelenleg a JBoss ESB-vel, JBoss WS-sel való integráción dolgozunk.
Hallottunk olyanokról, akik jelenleg a Seamet GWT-vel és Adobe Flexszel integrálják. Már nagyon várjuk, hogy lássuk az eredményét. Valamikor majd mi is a Swing, az Eclipse RCP vagy valami hasonló környezet felé fordulunk.
Mark: Nagyszerű. A Red Hat üzleti modellben történt kettéválással most már Seam keretrendszerről beszélünk, ami a JBoss Enterprise Application Platform szerves része. A Seam hogyan illik ebbe bele? Milyen előnyöket nyújt?
Gavin: Egy dolog, amit tudok, hogy Norman nagyon keményen dolgozott azon, hogy a Seam a JBoss AS legutóbbi verzióján működjön, és bekerüljön az Enterprise Application Platformba annak első megjelenésekor. Ez az első alkalom, hogy a JBoss ennyire letesztelt platformot jelentetett meg. A múltban, ha alkalmazásszerveren akartuk alkalmazni a jBPM-et, a Seamet és a Hibernate-et, akkor külön kellett azokat letölteni, és ez annak a kockázatát teremtette meg, hogy nem biztos, hogy megfelelően működnek együtt.
Az alkalmazási platform fejlesztése során a technológiakészletet olyan minőségbiztosítási ellenőrzésen vezettük át, amire eddig még nem volt példa. A fejlesztési csapat vezetőjeként az a munkám, hogy támogassam a közösségi megjelenéseket, a legújabb jellemzők megjelenését egy olyan felhasználói bázis számára, akik a legújabbat és a legjobbat keresik.
Az elmúlt napokban sokan megkerestek minket, és beszéltek az élesüzemű alkalmazásaikról, melyeket egy fél vagy egy éve használnak. Ezeknek az embereknek minőségbiztosított környezetre van szükségük az alkalmazás során, és az alkalmazási platform valóban ezt nyújtja. Ez egy bizonyos mértékig felszabadított minket olyan problémák alól, mint a visszafelé kompatibilitás az alkalmazásszerverek különböző korábbi verziói, és a Hibernate korábbi verziói esetén. Most már tudjuk, hogy a termékesítési csapat mindenről gondoskodik.
Mark: Persze, tehát akkor több integrációs pont is van, melyekkel nem lesz probléma. Megjelent Michael Yuan JBoss Seam könyve, és ha jól tudom, különböző okokból gyorsan el is fogyott a JavaOne konferencián.
Gavin: Igen, Michael Yuan Seam könyve volt az a könyv, amiből a legtöbbet tulajdonítottak el a JavaOne konferencián. Legalább 8 lopott példányról tudunk, és a könyvesboltban is eladták az összeset.
Mark: Ez pedig jó hír.
Gavin: Ez egy fantasztikus hír. A 10 legkeresettebb könyv között volt. Nagyon érdekes ezt látni, és gratulálok Michaelnek, nagyon örülünk neki. Megjelent egy másik könyv az A!Pressnél is, és beszéltem néhány emberrel, akik a Manning kiadónak írnak könyveket, illetve tudok egy másik kiadóról is. Rengeteg könyv jelenik meg, ami nagyszerű. Ez azt jelenti, hogy ha megkérdezik tőlem, hogy hogyan kezdjék a Seam használatát, akkor rámutathatok egy könyvre.
Mark: Nagyszerű. Nagyon szeretem a könyveket, sokat lehet belőlük tanulni. Jelenleg a Web Beans JSR specifikációjában is nagymértékben részt veszel. Mit tudsz erről mondani?
Gavin: Kellett néhány hónap ahhoz, hogy elinduljunk a specifikációval, de most már jól haladunk. Volt jónéhány konferencia beszélgetés, illetve résztvétel a Sun, Google és Oracle részéről, különösen néhány egyéni hozzájárulótól, olyanoktól, mint Jacob Hookon és Richard Kennard.
A legérdekesebb, ami történt, hogy Bob Lee és én rengeteg közös vonást fedeztünk fel. Én sok időt töltöttem a Guice tanulmányozásával, Bob pedig a Seam tanulmányozásával. Mind a ketten érdekes dolgokat fedeztünk fel a másik modelljében. Így egy olyan modell felépítésén dolgozunk, mely rendelkezik a Seam kontextuális, állapotkezelési jellemzőivel, valamint a Guice modell által nyújtott előnyökkel, melyekkel a Seam nem rendelkezik, vagyis a komponensek összeillesztésének típusokon alapuló (type-safe) megközelítésével. Ebból olyan modell jön létre, ami eltér mind a kettőtől, de remélhetőleg rendelkezik azok jó jellemzőivel. Ez pedig nagyon izgalmas és érdekes.
Egy rendszer felépítése az alapoktól rendkívül érdekes, eközben pedig mindenféle döntés születik. Néha a döntések meghozatalakor nem feltétlenül látjuk azok hatását teljes mértékben. Tehát jó, ha vissza tudunk menni, és megkérdőjelezni a feltételezéseinket, illetve újból megbeszélni ezeket másokkal, akik nem feltétlenül osztják az előítéleteidet, és látják, hogy melyik a helyes út vagy van-e más megközelítés. Ez segít abban, hogy jobban megértsük a problémát. És ez egy jó szórakozás.
Mark: Nagyszerű, alig várom, hogy lássam mi lesz az eredménye.
Gavin: Ez eltart még egy ideig.
Mark: Vannak még további érdekes technológiák, amiket az ezévi konferencián láttál?
Gavin: Nyilvánvaló, hogy nagy népszerűség övezi a JSF modellt. Szerintem a legkeresettebb könyv a konferencián a JSF könyv volt. Az olyan dolgok, mint az Exadeltől átvett technológia, a RichFaces és az ICEFaces, nagyon sikeresek most, és pont akkor válnak éretté, amikor a Seam. A JSF modellje valóban az egyik legizgalmasabb dolog mostanság. Csodálatos, hogy milyen könnyű gazdag AJAX alkalmazásokat építeni JSF-ben, és szerintem sokan meglepődtek ezen.
A javablogs.com-nál mindenki azt sulykolja a másiknak, hogy a JSF egy kalap …, pedig még nem is használták. Tehát nagyon jó látni az arcukat, amikor megbizonyosodnak az ellenkezőjéről. A JSF nagyon jól teljesít.
A Groovy és Grails közösség nagyon szilárdnak tűnik. A Grails és a Groovy könyvek egyaránt keresettek. A Grails nagyszerű. Emmanual az utóbbi pár hétben azon dolgozott, hogy megtanulja Seam komponensek írását Groovyban. Ez mindenki szerint nagyszerű. Érdekes lesz látni a Seam alkalmazásokat a Groovyban. Ez az itt épülő közösség határozottan erős.
Mark: És mi a helyzet a JavaFXszel? Azzal is foglalkoztál?
Gavin: Nem mondhatnám, hogy olyan mértékben, hogy hozzá tudnék szólni.
Mark: Rendben. Tudom, hogy San Francisco-ban élsz. Mi vonzott ide?
Gavin: Egy hölgy vonzott ide. De mindig is szerettem San Francisco-t. Ez egy nagyszerű város. Sok mindent lehet itt csinálni, például különböző kétkerekú közlekedési eszközökön utazni. Nagyon jó itt élni.
Mark: Köszönöm az interjút.
Gavin: Én is köszönöm.
A Red Hat Runtimes for Spring Boot a Red Hat egyik termékcsomagja, ami Spring Boot keretrendszer-támogatást nyújt fejlesztők számára. A Spring Boot egy népszerű keretrendszer a Java alkalmazások fejlesztéséhez, amelyet a könnyűsúlyú és gyors prototípuskészítés, valamint az alkalmazások egyszerű konfigurációja jellemzi. A Red Hat Runtimes for Spring Boot segítségével a fejlesztők hatékony eszközöket és környezetet kapnak a Spring Boot alapú alkalmazásaik futtatásához és menedzseléséhez.
A Red Hat Runtimes for Spring Boot az alábbi előnyöket kínálja:
A Red Hat JBoss Enterprise Application Platform (JBoss EAP) egy nyílt forráskódú alkalmazásfejlesztési és alkalmazásüzemeltetési platform. Az EAP egy teljeskörű Java Platform, Enterprise Edition (Java EE) kompatibilis alkalmazás-szerver, amely kifejezetten vállalati környezetekben történő használatra lett tervezve. A platformot a Red Hat fejleszti és támogatja, és az egyik meghatározó megoldás a vállalati környezetekben történő Java alkalmazásfejlesztés és futtatás terén.
A JBoss EAP alapvető jellemzői:
Java EE Kompatibilitás: A JBoss EAP teljes körűen támogatja a Java Platform, Enterprise Edition (Java EE) specifikációt. Ez magában foglalja a Servletek, JSP-k, EJB-k (Enterprise Java Beans), JMS-t (Java Message Service), JPA-t (Java Persistence API) és számos más Java EE technológiát.
Moduláris Architektúra: Az EAP moduláris architektúrával rendelkezik, amely lehetővé teszi, hogy csak azokat a komponenseket használd, amelyekre szükséged van, ezáltal csökkentve az erőforrásigényt és javítva a teljesítményt.
Adminisztrációs eszközök: Az EAP kiterjedt adminisztrációs eszközöket és vezérlőfelületeket nyújt az alkalmazások konfigurálásához, kezeléséhez és felügyeletéhez.
Üzleti támogatás: A JBoss EAP hosszú távú támogatást nyújt vállalati ügyfelek számára, biztosítva a biztonsági frissítéseket és a hibajavításokat.
Klaszterezés: Az EAP támogatja a klaszterezést, ami lehetővé teszi az alkalmazások horizontális skálázását és a nagyobb rendelkezésre állást.
Könnyű integráció: Az EAP könnyen integrálható más Red Hat termékekkel és megoldásokkal, például a Red Hat JBoss Data Grid-del és a Red Hat JBoss Fuse szolgáltatás-buszrendszerrel.
Az EAP-t különféle alkalmazások fejlesztésére és futtatására használják, ideértve a webalkalmazásokat, az üzleti alkalmazásokat és a mikroszolgáltatásokat. A Red Hat JBoss EAP által nyújtott megbízhatóság és teljesítmény miatt sok vállalat választja ezt a platformot vállalati szintű Java alapú alkalmazásokhoz.
A Red Hat JBoss Web Server egy nyílt forráskódú webkiszolgáló szoftver, ami a Red Hat middleware portfóliójának a része. A JBoss Web Server az Apache Tomcat és az Apache HTTP Server komponensekre épül, és lehetővé teszi pehelysúlyú, hatékony és biztonságos webalkalmazások futtatását.
A Red Hat JBoss Web Server főbb jellemzői:
Apache Tomcat: A Red Hat JBoss Web Server meghatározó eleme az Apache Tomcat szoftverkomponens, ami egy nyílt forráskódú Java Servlet és JavaServer Pages (JSP) konténer. A Tomcat lehetővé teszi Java-alapú webalkalmazások futtatását és kezelését.
Apache HTTP Server: Az Apache HTTP Server a világ egyik legelterjedtebb webkiszolgáló szoftvere, az internet jelentős részén használják. A Red Hat JBoss Web Server az Apache HTTP Serverre épül, ahhoz kiegészítő funkciókat és teljesítményjavításokat biztosít.
Java Web Container: A Red Hat JBoss Web Server olyan webes konténerként működik, amely támogatja a Java Servlet API-t és a JavaServer Pages (JSP) technológiát. Ez lehetővé teszi a Java alapú webalkalmazások könnyű futtatását és kezelését.
Egyszerű telepítés és konfiguráció: A Red Hat JBoss Web Server egyszerű telepítést és konfigurációt biztosít, segítségével gyorsan készíthetünk olyan webkiszolgálót, amely képes webalkalmazások futtatására.
Biztonság: A Red Hat JBoss Web Server számos már alapértelmezetten is olyan előre definiált biztonsági beállításokkal rendelkezik, amelyek védelmet biztosítanak a legelterjedtebb webbiztonsági fenyegetésekkel szemben.
A Red Hat JBoss Web Servert gyakran használják olyan környezetekben, ahol egyszerűen szeretnének Java alapú webalkalmazásokat futtatni és ahol fontos a megbízhatóság és a biztonság. Az Apache Tomcat és az Apache HTTP Server együttes használata révén a JBoss Web Server a vállalati igényeket is maximálisan kielégíti mind teljesítmény, mind funkcionalitás szempontjából.
A Red Hat Data Grid egy elosztott, in-memory (memóriában működő) gyorsítótár és NoSQL adatbáziskezelő megoldás a Red Hattől. A Red Hat Data Grid biztosítja, hogy az alkalmazások a jellemzően nagyságrendekkel gyorsabb memóriában tárolják és kezeljék a gyakran használt adatokat, jelentősen növelve azok teljesítményét és skálázhatóságát.
A Red Hat Data Grid főbb jellemzői:
In-memory adattárolás: A Red Hat Data Grid az alkalmazások számára biztosít memóriában működő adattárolást, ami gyors és alacsony válaszidőt eredményez.
Elosztott architektúra: A Red Hat Data Grid elosztott architektúrával rendelkezik, ami lehetővé teszi az adatok elosztott tárolását és kezelését több szerveren átívelően. Ez növeli a rendelkezésre állást és skálázhatóságot.
Cache funkciók: A Red Hat Data Grid támogatja a gyorsítótás (cache) funkciókat, így az alkalmazások a gyakran használt adatokat memóriában tárolhatják, csökkentve a késleltetést és az adatbázis terhelését.
Tranzakciós támogatás: A Red Hat Data Grid támogatja a tranzakciókat, így biztosítva az adatok konzisztens és atomi módosítását.
Keretrendszerfüggetlen: A Red Hat Data Grid olyan platformfüggetlen megoldás, amely támogatja például a Java, .a NET, Node.js és más programozási keretrendszereket, nyelveket.
Integráció a Red Hat termékekkel: A Data Grid jól integrálható más Red Hat termékekkel, például a JBoss Enterprise Application Platform (JBoss EAP) és a Red Hat JBoss Middleware szoftverekkel.
A Red Hat Data Grid-t gyakran olyan alkalmazások fejlesztéséhez és futtatásához használják, ahol fontos a magas teljesítmény és skálázhatóság. Ilyenek például webalkalmazások, mikroszolgáltatások, adatelemzési alkalmazások és real-time alkalmazások.
A Red Hat AMQ a Red Hat által kínált üzenetküldő szoftvermegoldás, illetve megoldások, hiszen két meghatározó technológiára, az Apache ActiveMQ-ra és az Apache Kafkára épül.
A Red Hat AMQ egy rugalmas és megbízható messaging platform, célja az üzenetek hatékony és biztonságos továbbítása alkalmazások között, függetlenül attól, hogy azok melyik platformon futnak vagy milyen programozási nyelvet használnak.
A Red Hat AMQ főbb jellemzői és szolgáltatásai:
Üzenetküldés és -fogadás: Az AMQ lehetővé teszi az alkalmazások számára, hogy üzeneteket küldjenek és fogadjanak egymás között. Az üzenetek lehetnek egyszerű szöveges üzenetek, bináris adatok vagy akár strukturált formátumok is.
Queue-k és topicok: Az AMQ támogatja mind a queue-k, mind a topicok használatát. A queue-k esetén az üzeneteket több címzett között osztják meg, míg a topicok lehetővé teszik, hogy az üzeneteket több feliratkozó (subscriber) kapja meg.
Késeknek támogatása: Az AMQ támogatja a Java Message Service (JMS) és az Advanced Message Queuing Protocol (AMQP) szabványokat, amelyek együttműködést (kommunikációt) tesznek lehetővé különböző rendszerek között, függetlenül azok implementációs részleteitől és az azok létrehozására használt nyelvektől, keretrendszerektől.
Elosztott architektúra: Az AMQ elosztott architektúrával rendelkezik, így több üzenetkiszolgáló (broker) között oszthatja meg az üzeneteket, ami javítja a rendelkezésre állást és skálázhatóságot.
Állapotmentes (stateless) működés: Az AMQ szerverek állapotfüggetlenek, ami lehetővé teszi a könnyű bővítést és a megbízható működést.
Üzenetszűrők és transzformációk: Az AMQ lehetővé teszi az üzenetek szűrését és átalakítását, amely rugalmasságot és könnyű integrációt biztosít más rendszerekkel.
Klienskönyvtárak: Az AMQ-hez számos klienskönyvtár áll rendelkezésre különböző programozási nyelvekhez, mint például Java, Python, .NET, stb.
Az AMQ-t gyakran használják olyan alkalmazások és rendszerek fejlesztéséhez, ahol fontos a megbízható és skálázható üzenetküldés, például a mikroszolgáltatások közötti kommunikáció, az integrált alkalmazások közötti adatcsere, és a hálózaton átívelő kommunikációhoz. Az AMQ lehetővé teszi a fejlesztők és az üzemeltetők számára, hogy könnyedén kezeljék az üzeneteket és biztosítsák az alkalmazások hatékony és megbízható kommunikációját.
A Red Hat Single Sign-On (SSO) egy nyílt forráskódú, szabványos és biztonságos azonosítási és hitelesítési megoldás, amely lehetővé teszi, hogy a felhasználók egyetlen bejelentkezési folyamatot (Single Sign-On) használva férjenek hozzá több különböző alkalmazáshoz és szolgáltatáshoz.
Az SSO olyan technológia, amely biztosítja, hogy a felhasználónak csak egyszer kelljen bejelentkeznie egy rendszerbe, és ezt követően az azonosítása automatikusan továbbítódik más alkalmazásokhoz anélkül, hogy újra meg kellene adni a bejelentkezési adatokat. Ez nem csak a felhasználók számára kényelmesebbé teszi az alkalmazások használatát, hanem csökkenti az (adminisztratív) overheadet és növeli az informatikai biztonságot.
A Red Hat SSO a következő fő jellemzőkkel rendelkezik:
Azonosítási és hitelesítési szabványok támogatása: Az SSO támogatja a modern azonosítási és hitelesítési protokollokat, például SAML (Security Assertion Markup Language), OAuth és OpenID Connect, amelyek lehetővé teszik a biztonságos és szabványos bejelentkezési folyamatokat.
Központosított felhasználó- és hozzáféréskezelés: Az SSO lehetővé teszi a felhasználók központi kezelését és az egységes hozzáférési jogosultságokat több alkalmazáshoz.
Klienskönyvtárak és API-k: A Red Hat SSO klienskönyvtárakkal és API-kkal rendelkezik, amelyek egyszerűvé teszik az SSO integrációját a meglévő alkalmazásokkal és szolgáltatásokkal.
Többfaktoros azonosítás (MFA): Az SSO támogatja a többfaktoros azonosítást, ami tovább növeli az alkalmazások biztonságát.
Skálázhatóság és megbízhatóság: A Red Hat SSO architektúrája lehetővé teszi a nagy terhelések kezelését és a megbízható működést.
A Red Hat SSO-t gyakran vállalati környezetekben alkalmazzák, ahol fontos az egyszerű és biztonságos azonosítás és hozzáféréskezelés a számos alkalmazáshoz és szolgáltatáshoz. Az SSO segít az informatikai csapatoknak egyszerűsíteni az üzemeltetést és növelni az adatbiztonságot, miközben a felhasználók kényelmét is javítja.