EJB2 vs. EJB3
EJB (Enterprise JavaBeans) je rozhranie Java API (Application Programming Interface), ktoré sa nachádza v špecifikácii Java EE (Java Platform, Enterprise Edition). EJB popisuje architektonický model rozvoja podnikových aplikácií. Toto je spravovaný model na strane servera, ktorý dokáže zachytiť obchodnú logiku podnikovej aplikácie. IBM je pôvodný tvorca EJB, ktorý ho vyvinul v roku 1997. Sun Microsystems ho prijal v roku 1999.
Pred zavedením EJB sa zistilo, že programátori často opakovane implementovali riešenia problémov zistených v podnikovom kódexe typu back-end. Výsledkom bolo zavedenie EJB na riešenie týchto bežných problémov, ako sú pretrvávanie, integrita transakcií a bezpečnosť. EJB poskytuje štandardné spôsoby riešenia týchto problémov s koncovými zariadeniami tým, že špecifikuje, ako má aplikačný server spracovávať transakcie, integrovať sa so službami JPA (Java Persistence API), obsluhovať riadenie súbežnosti, spracovávať udalosti JMS (Java Message Service), riešiť problémy s pomenovávaním pomocou JNDI ( Java Naming and Directory Interface), vývoj bezpečných programov s JCE (Java Cryptography Extension) a JAAS (Java Authentication and Authorization Service), nasadenie komponentov, vzdialená komunikácia s RMI-IIOP (Java Remote Method Invocation interface cez Internet Inter-Orb Protocol) , vyvíjať webové služby, vyvolávať asynchrónne metódy a využívať službu Časovač.
EJB2
EJB2 (EJB 2.0) bol vydaný 22. augusta 2001. Opisuje špecifikáciu pre vývoj distribuovaných objektovo orientovaných aplikácií v Jave kombináciou nástrojov vyvinutých rôznymi predajcami. Jedným z hlavných cieľov EJB2 bolo umožniť programátorom ľahšie vyvíjať podnikové aplikácie bez toho, aby museli porozumieť detailom na nízkej úrovni, ako sú viaczávitové a združovanie pripojení. Ďalším cieľom bolo umožniť programátorom napísať „Bean“ raz a bežať kdekoľvek bez rekompilácie (dodržiavanie sloganu „napíšte raz, spustiť kdekoľvek“ programovacieho jazyka Java). Cieľom EJB2 bolo okrem iného umožniť, aby komponenty vyvinuté rôznymi predajcami ľahko spolupracovali, a umožniť predajcom písať rozšírenia pre svoje produkty, ktoré môžu podporovať EJB..
EJB3
EJB3 (EJB 3.0) bol prepustený 11. mája 2006. Program EJB3 veľmi uľahčil život programátorov tým, že im umožnil používať anotácie namiesto deskriptorov nasadenia, ktoré boli použité v predchádzajúcich verziách. EJB3 obsahuje obchodné rozhranie a špecifickú fazuľu entít, ktoré môžu implementovať toto obchodné rozhranie, čím odstraňuje potrebu použitia domácich / vzdialených rozhraní a súboru ejb-jar.xml. Celkový výkon EJB3 je v porovnaní s EJB2 oveľa lepší a v tomto vydaní EJB je značné zvýšenie konfigurovateľnosti, flexibility a prenosnosti..
Aký je rozdiel medzi EJB2 a EJB3?
EJB3 má viditeľné zlepšenie konfigurácie a výkonu oproti EJB2. Jedným z dôvodov tohto zlepšenia výkonu je použitie POJO (Plain Old Java Object) s metadátami a XML Deployment Descriptors pomocou EJB3 namiesto vyhľadávaní JNDI používaných v EJB2 pre odkazy na objekty. Konfigurácia EJB3 je omnoho jednoduchšia, pretože programátor nemusí implementovať rozhranie Home / Remote a ďalšie (napr. SessionBean), čo odstraňuje potrebu používať metódy spätného volania kontajnerov (napríklad ejbActivate a ejbStore)..
Okrem toho je EJB3 lepší ako EJB2 v oblasti flexibility a prenosnosti. Napríklad je ľahké prevádzať entity EJB3 na DAO (Data Access Object) a naopak, pretože entity EJB3 sú ľahké (na rozdiel od ťažkých jednotiek EJB2, ktoré implementujú vyššie uvedené rozhrania). Databázové dotazy napísané v EJB3 sú veľmi flexibilné, pretože namiesto staršej verzie EJB-QL používa prepracovaný EJB-QL, ktorý mal niekoľko obmedzení. EJB3 odstraňuje všetky problémy s prenosnosťou EJB2 (ktorý používa fazuľa entity na prístup do databázy) podporou všeobecnejšieho JPA pre všetky dátové transakcie..
Na rozdiel od EJB2, ktorý potrebuje na vykonanie EJB kontajner, EJB3 môže byť vykonaný v nezávislom JVM (Java Virtual Machine) bez nutnosti použitia kontajnerov (je to možné, pretože to neimplementuje štandardné rozhrania). Na rozdiel od EJB2 je EJB3 ľahko prepojiteľný s poskytovateľmi perzistencie ponúkanými tretími stranami. Ďalším dôležitým rozdielom medzi EJB3 a EJB2 je to, že EJB3 môže používať zabezpečenie založené na anotáciách, zatiaľ čo EJB2 používalo zabezpečenie založené na deskriptoroch nasadenia. To znamená, že úlohy konfigurácie a nastavenia sú v EJB3 omnoho jednoduchšie a v porovnaní s EJB2 je značné zníženie režijných nákladov..