Jiří Hradil blog

o software


EJB - potřebujeme střílet vrabce “kanónem”?

Tímto chci všem zůčastněným poděkovat za podnětné připomínky k mým EJB příspěvkům.
Rád bych reagoval především na jAbLoK spot “EJB 3.0 aneb Proč že tu mrtvolu stále resuscitují?“od Pavla Kolešnikova, který jsem pochopil jako vyčítání komplikovanosti specifikace EJB 2.x pro jejich nutná rozhraní, záznam v DD, či vyhazovaní vyjímek. Pavel staví rovněž otázku, zda jsou EJB vhodné pro triviální webové aplikace.
Ale co když nechceme psát “jednoduchou” webovou aplikaci, ale skutečně systém, který musí být škálovatelný a robustní, kde musíme používat clustering a load balancing a kde uvítáme, že se pro vyžadovanou spolehlivost a složitost rádi soustředíme hlavně na business implementaci?

EJB přece ví a počítají s tím, že budou použity pro rozsáhlé projekty a zastřešují hlavní potřeby vývojářů tím, že se na sebe snaží převzít do maximální možné míry tolik potřebný “background”. IDE díky jasným pravidlům umožňují tvořit komponenty velmi rychle a celý návrh tak minimalizuje množství chyb. Že jsou třeba k beanu minimálně 2 další rozhraní (pominu-li message-driven beans)? No a? Pravidla jsou tak dána, umožňují nám pak určitou funkčnost a je na každém, zda mu tato vyhovuje, či ne.

Technologií pro Javu je velmi mnoho a nelze jednoznačně říct, že EJB jsou všelékem na veškeré problémy, které musíme řešit. Místo porovnávání “kdo z koho” je rozumných východiskem zvážit, čím může být konkrétní technologie přínosem pro náš projekt. Pokud se najde vhodnější kandidát pro naše potřeby, bylo by hříchem jej nepoužít. Právě volnost rozhodování nám dává prostor pro další zdokonalování a psaní kvalitnějšího software. A pro mě jsou EJB vhodnou technologií.

Publikoval Jiří Hradil • 08.01.2005 v 02:01 • pod kategorií ejbŽádné komentáře

Studujeme EJB

Pro studium Enterprise Java Beans je nezbytně nutná vhodná literatura, která nás provede všemi zákoutími této technologie. Musí nás přesvědčit o tom, že Sun měl ty nejlepší úmysly a skutečně se nám snažil usnadnit náš nelehký vývojářský život.
Zdrojů ke studiu je mnoho a podle dotazů a zdůvodnění, proč EJB nepoužívat mám spíše dojem, že to spousta zvědavců vzdala už na začátku a vůbec se nesnaží pochopit podstatu této skvělé technologie. Vůbec se jim nedivím, pokud studovali podle J2EE tutorialu. Jsou ale mnohem jednodušší cesty.

Head First EJB (EJB 2.0) je vysněnou knihou, která nám jasně ukazuje, jak má vypadat správný a srozumitelný výklad. Musím rovnou říct, že nenávidím zbytečně složité věci a pokud mám něco dobře pochopit, musím si to nakreslit. Právě tento způsob používají autoři Kathy Sierra a Bert Bates a celá kniha je koncipována jako co nejjednodušší (a zároveň velmi kvalitní) příprava na certifikaci Sun Certified Business Component Developer (SCBCD). Témata jsou do hloubky probírána, perfektně rozkreslena a jsou podána velmi nenásilným způsobem. Čtenář pochopí koncepci EJB rozhraní, typy beanů, životní cyklus beanu a vůbec všechno, co potřebuje, aby mohl začít psát skutečné SW komponenty.
Dostupnost: v ČR jsem ji ještě neviděl, objednával jsem přímo z Amazon.
Hodnocení: jedna z nejlepších investicí, které jsem kdy udělal. Pokud potřebujete dokonale vysvětlit EJB, tak není důvod váhat. Nic lepšího se mi zatím do rukou nedostalo (ne, nemám procenta z prodeje ;).

Mastering EJB II (EJB 2.0) je další hutná kniha, kterou si lze zdarma stáhnout ze serveru TheServerSide. Méně srozumitelná, než HF EJB, ale v některých případech jde více do hloubky (patterns, load balancing, clustering). Má několik chyb a není tak úplná jako HF EJB (a book errata mail není funkční), ale nabízí prostě jiný pohled a rozhodně rozšíří vědomosti.
Dostupnost: volně ke stažení po registraci.
Závěr: Velmi dobrý zdroj, doporučuji číst až po zvládnutí základů.

J2EE Tutorial 1.4 (EJB 2.1) nabízí úvod do technologie EJB (společně se servlety, jsp a jsf), ale nějak mi tento způsob výkladu nepadnul do oka. Prostě vysvětlují jednoduché věci složitě a nemají tolik obrázků :). Chybí motivace, proč je třeba technologii používat určeným způsobem. Pak se nedivím, že vývojáři po shlédnutí EJB zavrhnou pro jejich příllišnou “složitost”.
Dostupnost: volně ke stažení
Závěr: Od Sunu, stačí jen prolétnout, není nutno studovat :)

EJB 2.0 Specification je prostě základ, na kterém staví všichni ostatní. Sem si chodím pro radu, když něco potřebuji vysvětlit dokonale a do hloubky “doladit”.
Dostupnost: volně ke stažení
Závěr: Pokud neznáte EJB, je zbytečné začínat tady, opět směruji dychtivé studenty na HF EJB. Co není v této specifikaci, není ani v certifikačním testu SCBCD.

Na konec se ještě zmíním, proč se nyní učím EJB 2.0 (a ne 2.1, či 3.0):

  • studijní materiály jsou psané většinou pro 2.0
  • Sun certifikuje opět pouze 2.0
  • pokud zvládnu základy 2.0, pak nebude problém přejít na novější technologii
Publikoval Jiří Hradil • 06.01.2005 v 17:01 • pod kategorií ejbŽádné komentáře

Objevujeme EJB

Jsou technologie, které jsou všeobecně známé a používané a technologie všeobecně známé a nepoužívané. Po několika měsících experimentování s Hibernate jsem došel k názoru, že to ještě není to pravé ořechové a začal jsem se učit a zkoušet Enterprise Java Beans (EJB). Po nastudování několika knih mám pocit, že je tato technologie přímo zrozená k tomu, aby byla objevena a masivně používána. Nebudu tady popisovat, o čem jsou EJB (to už udělali lépe jiní), jen vypíchnu, co se mi na nich líbí a co ne:

Líbí:

  • Striktně komponentový přístup
  • Definice home/remote (local/local-home) rozhraní k beanu (fakt, mě se tato logika velmi líbí, když pochopíte, o čem to je, nedáte na to dopustit)
  • Striktní definice v názvech metod (ejbCreate, ejbHome…) a vůbec držení vývojáře maximálně zkrátka (řeči o volnosti neberu, když se na projektu střídá hafo lidí, tak někdy ani jmenné konvence nestačí)
  • Container Managed Persistence (CMP) (při deploy create table, atd.) a relationships
  • DD ejb-jar.xml
  • Miluju Sun a tohle dělá Sun :)

Nelíbí:

  • Specifikace EJB je místy příliš obecná (i když, zase vendoři serverů mají volnější ruce, např. load balancing, clustering, generace PK…)
  • EJB-QL je dost chudý (např. 2.0 nemají ani ORDER BY)
  • Složitá technologie, ale jen na začátku. Když pochopíte, jak vše funguje a hlavně proč je to tak uděláno, nedáte na EJB dopustit. Chce to dobrou literaturu a hned musím říct, že J2EE tutorial od SUNu dobrý zdroj není (v dalším příspěvku uvedu lepší materiály ke studiu).

Jak tak procházím java konferenci, či různé příspěvky, mám z nich pocit, že EJB se nepoužívají jednoduše proto, že spoustě lidí připadají příliš složité (což nejsou). Možná je ale pravda jinde-prostě je všichni používají, ale nepíšou o tom :).

Publikoval Jiří Hradil • 06.01.2005 v 01:01 • pod kategorií ejbŽádné komentáře