Az Ajax mélyrehatóan megváltoztatja a web interakciós modelljét. A hagyományos webkliensek kevésbé kifinomult szinkron kérései lehetővé tették, hogy számos szerveroldali alkalmazás „megússza” egy minimális gyorstárazással, illetve a session-szintű konkurrencia teljes mellőzésével. De ez már a múlté!
Így „gazdagodhatunk” a leggyorsabban |
Az Ajax mélyrehatóan megváltoztatja a web interakciós modelljét. A hagyományos webkliensek kevésbé kifinomult szinkron kérései lehetővé tették, hogy számos szerveroldali alkalmazás „megússza” egy minimális gyorstárazással, illetve a session-szintű konkurrencia teljes mellőzésével. De ez már a múlté! Az AJAX kliensek számos aszinkron, konkurrens, kifinomult kérést küldenek a szervernek, amellyel nem biztos, hogy az adabázisunk meg tud küzdeni. Amikor a kérések között a memóriában az állapot tárolódik, védtelenné válik a konkurrenciáól fakadó hibákkal szemben, mivel a Java EE platform nem biztosít olyan szerkezetet, amely a munkamenet-szintű konkurrenciát tudná kezelni.
A Seam teljesen egyedülálló konkurrencia–, valamint állapotmenedzsment modelljét az AJAX-ra tekintettel találták és fejlesztették ki.
A Seam 1.1 olyan nyílt forrású, JSF-alapú AJAX megoldásokat integrál a konkurrencia–, valamint állapotmenedzsment motorjába, mint amilyen az ICEfaces vagy az Ajax4JSF. Könnyedén hozzáadhatjuk az AJAX-ot az alkalmazásainkhoz, úgy, hogy még a JavaScriptet sem kell megtanulni — ezzel védelmet kapva olyan esetleges hibák és teljesítményproblémák ellen, amelyek az AJAX-ra való váltással összefüggnek.
Ez a legegyszerűbb módja annak, hogy elkezdjük használni az EJB 3.0-t |
Az EJB 3.0 egy remek komponens-modell tranzakciós üzleti komponensek számára, amelynek egyik kiemelt jellemzője a vadonatúj Java Persistence API (JPA). Viszont a Java web és alkalmazási keretrendszere, amelyeket még az EJB 3.0 kibocsátása előtt terveztek, nem támogatják az új komponens-modellt, és emiatt ránk hárul az a feladatot, hogy megírjuk az integrációs kódunkat, valamint gyakran azt is jelenti, hogy olyan rétegezett architektúrát kell használnunk, amely esetleg nem megfelelő az alkalmazásunk számára.
A Seam-et úgy tervezték, hogy az EJB 3.0-val együtt lehessen használni, és bárhol lehetővé teszi az új komponens-modell használatát. Mivel a Seamen belül bármelyik osztály lehet EJB komponens, nincsen arra szükség, hogy további felesleges rétegeket építsünk be csak a keretrendszerünkre tekintettel. És természetesen kódírásra sincsen szükség ahhoz, hogy az EJB 3.0-t a webes keretrendszerünkkel integráljuk, mivel a Seambe ez már be van építve.
Megjegyzendő, hogy a Seam alkalmazásához nem szükséges, hogy az EJB 3.0-t is használjuk, és ha olyan környezetet fejlesztünk ki, amely nem támogatja az EJB 3.0-t, a Seam ilyenkor is kínál alternatív megoldásokat.
Ez a legjobb módja, hogy a JSF előnyeivel éljünk |
A JSF komponens könyvtárak és egyéb add-onok élénk ekorendszerét hozta létre, ami miatt ez minden bizonnyal a Javán belüli legizgalmasabb keretrendszer. De a sima JSF sok XML-t használ, és egy sor fontos jellemzőt kihagy, különösen olyan emberek számára, akik internetes alkalmazásokat építenek. A Seam a fárasztó XML konfigurációt néhány annotációval helyettesíti, így csökkentve a kód-menyiséget, és növelve a hatékonyságot. A Seam kibővíti a JSF-et további funkciókkal a több ablakos munka és munkatér-menedzsment, modell-alapú validáció, jBPM-alapú pageflow, nemzetköziesítés, és oldaltöredékek gyorsítótárazása tekintetében. A Seam még a könyvjelzővel ellátható (REST típusú) weboldalak kezeléséhez is segítséget nyújt, amely a legnagyobb problémát jelenti a JSF felhasználói számára.
Mivel a JSF nem foglalkozik a tranzakciós forrásokhoz való hozzáféréssel, a JSF felhasználók többsége számára elengedhetetlen a Seam által integrált JTA, JPA és EJB 3.0 használata.
Ez a legegyszerűbb módja a BPM használatának is |
A jBPM intuitív és hatékony megoldás összetett emberi együttműködést megkövetelő vállalati alkalmazások vagy összetett felhasználói párbeszédet magukban foglaló webes alkalmazások számára. A BPM technológia nemcsak a fejlesztők és elemzők számára könnyíti meg az üzleti folyamatok modellezését, megvalósítását. és optimalizálását, hanem az üzemeltetők és a menedzsment számára is lehetővé teszi, hogy az üzleti folyamat hatékonyságát elemezzék, és minél előbb értesüljenek az esetleges problémákról.
A Seam mélyen integrálja a jBPM-et, ennek köszönhetően hihetetlenül egyszerű a jBPM-et feladatkezelésre és pageflow-ra használni, valamint remek eszköze annak, hogy a BPM technológiával megismerkedjünk. A Seam és a jBPM kombinációja bizonyos projektek esetében hónapokkal képes lecsökkenteni a fejlesztési időt.
De a CRUD is éppolyan egyszerű… |
A Seam kézbe veszi az összetett vállalati alkalmazásokat érintő nehezebb problémákat is. De ettől az egyszerű dolgok sem lesznek a szükségesnél bonyolultabbak. A Seammel pontosan ugyanolyan hatékonyan építhető egy egyszerű adatvezérelt alkalmazás, mint a mostani CRUD keretrendszerekkel. A Seam egy JPA és Hibernate köré épült egyszerű adathozzáférési keretrendszer, valamint egy parancssor-kódgeneráló és adatbázis visszatervező eszköz kombinációját nyújtja, amelynek segítségével percek alatt belevághatunk a munkába.
Ezentúl már a perzisztencia sem jelent gondot |
A Seam a Hibernate közösségből nőtte ki magát, és azok az emberek tervezték és valósították meg, akik nemcsak a Hibernate-et találták ki, hanem a perzisztencia kontextus kifejezést is. A Seam párbeszéd modellje egy sor olyan, perzisztenciához kapcsolódó programozási problémát old meg, amelyek oka az állapotmentes web alkalmazások architektúrájában rejlik. Akár a Hibernate-et, akár a JPA-t használjuk, a Seam segítségével könnyedén és természetesen tudunk kiterjedt perzisztencia-kontextusokat használni, és segít elkerülni a felesleges állapotok többszörözését, amikor klaszteres környezetben használunk kiterjedt perzisztencia-kontextusokat.
Annotációk |
A Seam az első olyan programozási modell, amely lehetővé teszi a Java 5 annotációk használatát a folyamat elejétől a végéig, a perzisztencia rétegtől a felhasználói felületekig. Többé nem kell szükségtelen, „zajos” XML-ekkel küszködnünk. Ez nem jelenti azt, hogy a Seam nem használ XML-t azokban az esetekben, ahol szükséges (a Seam kifinomult XML-alapú komponens konfigurációs jellemzővel rendelkezik), viszont az egyszerű programozási feladatok végrehajtása során nem fogunk többé elveszni az XML birodalmában.
Automatizált integráció-tesztelés |
Az automatizált egység-teszteknek bármilyen projektek esetében megvan a helyük. De több mint veszélyes csupán egység-tesztekre hagyatkozni. A legtöbb meghibásodás a komponensek interakciójához, illetve a komponensek és az azt futtató konténer-környezet interakciójához kapcsolódik. Az egység-tesztek nem képesek a konténer-környezet viselkedését megfelelően visszaadni, és ez többnyire az összetett, komponensek közti interakciókra is igaz. A Seam az automatizált integrációs tesztelés innovatív megközelítését vezeti be, ahol egy kérés vagy interakció teljes folyamatát emulálja, a Java kód minden rétegét tesztelve az alkalmazásban a prezentációtól a perzisztenciáig.
A nyílt forráskódok és a nyílt szabványok összeházasítása |
A Seam a nyílt szabványok olyan nyílt forráskódú változatain alapul, mint amilyen a JSF vagy az EJB 3.0, illetve olyan nyílt forráskódú innovációkon, mint a Hibernate, jBPM, Facelets, Drools, ICEfaces és az Ajax4JSF. A Seam létrehozói közreműködnek az EJB, JPA, Bean Validation és JSF szakértői csoportokban, és a Web Beans (JSR-299) szakértői csoportot vezetik, amelynek célja, hogy a Seam elemeit beépítse a Java EE szabványba. A Seam projekt elkötelezetten támogatja azt, hogy a nyílt forráskódú újítások új ötletekkel és fejlesztésekkel gazdagítsák a Java platformot.
Egyszerűen, mert működik |
Ha kipróbálod, nem akarsz majd mást használni. Kezdd el most!