Bilo da je neko tek početnik ili malo iskusniji Java developer, postoji dobro utabani put kojim bi trebalo poći da se doće do onoga čemu svi težimo - tituli J2EE arhitekte.
Nekada su Enterprise arhitekte svoja dragocena znanja sticali radom na mnogobrojnim projektima u kojima su prošli kroz sito i rešeto distribuiranog programiranja. Danas je situacija malo jednostavnija. Pravo iskustvo se i dalje postiže samo radom na real-world aplikacijama, ali sada je moguće zaviriti u taj svet i kroz sporedna vrata.
Najpoznatiji J2EE gurui današnjice Ed Roman, Floyd Marinescu i Rod Johnson su sakupili svoja dugogodišnja iskustva u nečemu sto se slobodno može reći da predstavljaju biblije Enterprise Java programiranja. Krenimo redom, od početka do kraja...
autor: Ed Roman
izdavač: Wiley, 2002
Ukoliko ste samo načuli da tamo negde postoji nešto što se odaziva na J2EE
ovo je idealna knjiga za vas koja će vas uvesti u Enterprise svet.
Sa druge strane, ova knjiga može da posluži kao odličan priručnik
za iskusne EJB programere koji žele da sve informacije imaju na jednom mestu.
Knjiga počinje opisom klijent/server arhitektura, potrebama za istom i rešenjima koja su raspoloživa na tržistu danas. Serverska rešenja su postala dominantna i u isto vreme vrlo komplikovana, te je iz tog razloga knjiga dalje bazira na objašnjavanju višeslojnih arhitektura koja omogućavaju jasno razdvajanje prezentacionog sloja, biznis logike i modela podataka. U nastavku je akcenat stavljen na pregled EJB tehnologije sa višeg nivoa kao i kratak osvrt na EJB kontejnere koji predstavljaju run-time okruženje EJB-ova. Potreba za EJB kontejnerima kojih danas na tržistu ima preko 40 je vrlo evidentna ukoliko se uzme u obzir da su programeri njihovom upotrebom lišeni glavobolja izazvanih menadžmentom resursa, transakcija, sigurnosti, konkurentnosti pristupa, perzistencije i udaljenog pristupa. Daljim izlaganjem, autor zalazi u detalje EJB tehnologije detaljno objašnjavajući Stateless/Stateful Session, Message Driven i Entity Bean-ove (BMP i CMP). Knjiga se završava primerom razvoja jedne realne e-commerce aplikacije.
U knjizi je obrađena danas aktuelna EJB 2.0 specifikacija, a uskoro se najavljuje i izlazak EJB 2.1. Glavna prednost EJB 2.0 specifikacije nad prethodnom 1.1 jesu Message Driven Beans kao četvrta vrsta enterprise bean-ova namenjenih asinhronoj komunikaciji između klijenta i servera. Takođe, uvedeni su i lokalni interfejsi Entity Bean-ova koji daju ogromno poboljšanje performansi ukoliko se kompletna aplikacija nalazi na jednom serveru (na istoj Java virtualnoj mašini) jer se izbegava mrežni overhead. Najavljena EJB 2.1 verzija nagoveštava poboljšanja u oblasti Entity Bean-ova.
autor: Floyd Marinescu
izdavač: Wiley, 2002
U prvoj knjizi "Mastering EJB", čitaoci su mogli da se upoznaju sa
J2EE tehnologijom i da shvate njen ogroman potencijal i moguću primenu.
Međutim, to nije dovoljno. Da bi se naučene lekcije mogle ispravno upotrebiti
potrebno je opet krenuti utabanim putevima.
Floyd Marinescu je svetski priznati ekspert u EJB dizajn paternima. Dizajn paterni predstavljaju najbolje praktične primere primene neke tehnologije. U mnogo slučajeva svi mi koristimo neke od paterna navedenih u ovoj knjizi, a da toga nismo ni svesni. Poznavanje paterna omogućava znatno lakšu komunikaciju među programerima i zato je potrebno dobro ih prostudirati i zapamtiti.
"EJB Design Patterns" je pisana praktičnim, prizemnim i lako razumljivim jezikom. Nema preteranog teoretisanja i pogađa samu suštinu problema. Nabrojano je 20 dizajn paterna koji su podeljeni po grupama: paterni u srednjem biznis sloju, paterni za međuslojnu komunikacijum, transakcioni i perzistencioni paterni, paterni u prezentacionim sloju kao i paterni vezani za strategije generisanja primarnih ključeva.
Izuzetno korisna i praktična knjiga, koju svi J2EE programeri moraju da imaju.
autor: Rod Johnson
izdavač: Wrox Press, 2003
Ne znam da li se danas može pronaći veće ime na J2EE sceni od
Rod Johnsona. Dovoljno je samo spomenuti da je upravo on autor
čuvenog Spring framework-a koji je doživeo ogromnu ekspanziju
među J2EE developerima jer predstavlja elegantnu zamenu
EJB kontajnera.
U svojoj knjizi "Expert One-on-One" autor demistifikuje sav glamur koji stoji iza EJB-ova. Naime, posle mnogo godina rada na uspešnim J2EE projektima, Rod Johnson je uvideo koje su prednosti, a koje mane korišćenja EJB tehnologije. Kritički se osvrće na sve aspekte distribuiranog modela i jasno stavlja da znanja da "J2EE u dobrim rukama moze biti savršen alat za razvoj aplikacija, dok u pogrešnim rukama može dovesti do potpunog propadanja projekta."
U prethodne dve knjige mogli ste visoko da uzletite od uzbuđenja koje na prvi pogled donosi J2EE tehnologija. Ovom knjigom, Rod vas ruši na zemlju najjačim anti-J2EE raketama. Ukazani su problemi koji nastaju odabirom lošeg aplikacionog servera, problemi u performansama koji nastaju korišćenjem Entity bean-ova, problemi prilikom perzistencije stanja Stateful Session Bean-ova, kao i primeri "gađanja muve topom" kada se za rešenje jednostavnog problema koriste sve J2EE mogućnosti čime se stvari nepotrebno komplikuju.
Sve više aplikacija danas predstavljaju Web aplikacije sa sve manjom potrebom za klasičnim desktop aplikacijama. Takođe, potreba za pravim distribuiranim aplikacija gde se baza u cluster-u nalazi na nekoliko servera fizički udaljenih od aplikativnog servera, je prilično manja od potrebe za Web aplikacijama kod kojih se obično sve nalazi na jednom serveru. Snaga J2EE tehnologije upravo dolazi do izražaja u slučaju pravih distribuiranih aplikacija koje imaju potrebu za ovakvom vrstom arhitekture. U svim ostalim slučajevima, može dovesti samo do drastičnog pada performansi usled nerazumnog korišćenja ove tehnologije. Pojam poznatiji pod nazivom "over-engineering problem".
Rod Johnson nam u svojoj knjizi daje uvid u J2EE alternative, kao na primer zamena Entity Bean-ova nekim od ORM alata (TopLink, JDO, Hibernate), zamena prezentacionog sloja nekim od Web MVC frameworka (Tapestry, Struts, WebWork, Maverick, Spring), pa i sama zamena EJB kontejnera nekim lightweight kontejnerima poput samog Spring-a.