Rozdiel medzi EJB2 a EJB3

Rozdiel medzi EJB2 a EJB3
Rozdiel medzi EJB2 a EJB3

Video: Rozdiel medzi EJB2 a EJB3

Video: Rozdiel medzi EJB2 a EJB3
Video: Heinz Grill: Rozvoj cítenia v joge - prednáška 2024, Septembra
Anonim

EJB2 vs EJB3

EJB (Enterprise JavaBeans) je Java API (Application Programming Interface), ktoré sa nachádza v špecifikácii Java EE (Java Platform, Enterprise Edition). EJB popisuje architektonický model pre vývoj podnikových aplikácií. Toto je riadený model na strane servera, ktorý dokáže zachytiť obchodnú logiku podnikovej aplikácie. IBM je pôvodným tvorcom EJB, ktorý ho vyvinul v roku 1997. Sun Microsystems ho prijal v roku 1999.

Pred zavedením EJB sa zistilo, že riešenia problémov nájdených v back-endovom obchodnom kóde boli programátormi často reimplementované. Výsledkom bolo zavedenie EJB na riešenie týchto bežných problémov, ako je pretrvávanie, transakčná integrita a bezpečnosť. EJB poskytuje štandardné spôsoby riešenia týchto problémov back-end špecifikovaním, ako má aplikačný server spracovávať transakcie, integrovať sa so službami JPA (Java Persistence API), spracovávať kontrolu súbežnosti, spracovávať udalosti JMS (Java Message Service), riešiť problémy s pomenovaní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, komunikácia na diaľku 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 používať službu Timer.

EJB2

EJB2 (EJB 2.0) bol vydaný 22. augusta 2001. Popisuje špecifikáciu pre vývoj distribuovaných objektovo orientovaných aplikácií v Jave kombináciou nástrojov vyvinutých rôznymi dodávateľmi. Jedným z hlavných cieľov EJB2 bolo umožniť programátorom ľahšie vyvíjať podnikové aplikácie bez toho, aby museli rozumieť detailom na nízkej úrovni, ako je multi-threading a združovanie pripojení. Ďalším cieľom bolo umožniť programátorom napísať „Bean“raz a spustiť ho kdekoľvek bez rekompilácie (v súlade so sloganom „napíš raz, spusti kdekoľvek“programovacieho jazyka Java). Okrem toho EJB2 zamýšľa umožniť komponentom vyvinutým rôznymi dodávateľmi ľahkú interoperabilitu a umožniť predajcom písať rozšírenia pre ich produkty, ktoré môžu podporovať EJB.

EJB3

EJB3 (EJB 3.0) bol vydaný 11. mája 2006. EJB3 veľmi zjednodušil život programátorom tým, že im umožnil používať anotácie namiesto deskriptorov nasadenia, ktoré sa používali v predchádzajúcich verziách. EJB3 obsahuje obchodné rozhranie a špecifický objekt bean, ktorý môže implementovať toto obchodné rozhranie, čím sa odstraňuje potreba používať domáce/vzdialené rozhrania a súbor ejb-jar.xml. Celkový výkon EJB3 je oveľa lepší v porovnaní s EJB2 a v tomto vydaní EJB došlo k značnému zvýšeniu konfigurovateľnosti, flexibility a prenosnosti.

Aký je rozdiel medzi EJB2 a EJB3?

EJB3 má oproti EJB2 výrazné zlepšenie v konfigurácii a výkone. Jedným z dôvodov tohto zlepšenia výkonu je použitie POJO (Plain Old Java Object) s metaúdajmi a deskriptormi nasadenia XML pomocou EJB3 namiesto vyhľadávaní JNDI používaných v EJB2 pre referencie na objekty. Konfigurácia EJB3 je oveľa jednoduchšia, pretože programátor nemusí implementovať rozhrania Home/Remote a iné (napr. SessionBean), čo odstraňuje potrebu používať metódy spätného volania kontajnerov (ako sú ejbActivate a ejbStore).

Navyše, EJB3 je lepší ako EJB2 v oblastiach flexibility a prenosnosti. Napríklad je ľahké konvertovať entity EJB3 na DAO (Data Access Object) a naopak, pretože entity EJB3 sú ľahké (na rozdiel od ťažkých entít EJB2, ktoré implementujú vyššie uvedené rozhrania). Databázové dotazy napísané v EJB3 sú veľmi flexibilné, pretože používa vylepšený EJB-QL namiesto staršej verzie EJB-QL, ktorá mala niekoľko obmedzení. EJB3 odstraňuje všetky problémy s prenositeľnosťou EJB2 (ktorý používa entity beans na prístup k databáze) tým, že podporuje zovšeobecnené JPA pre všetky dátové transakcie.

Na rozdiel od EJB2, ktorý potrebuje na spustenie kontajner EJB, EJB3 možno spustiť v nezávislom JVM (Java Virtual Machine) bez nutnosti použitia kontajnerov (je to možné, pretože neimplementuje štandardné rozhrania). Na rozdiel od EJB2 je EJB3 ľahko pripojiteľný k poskytovateľom perzistencie ponúkaných tretími stranami. Ďalším dôležitým rozdielom medzi EJB3 a EJB2 je to, že EJB3 môže používať bezpečnosť založenú na anotáciách, zatiaľ čo EJB2 používa bezpečnosť založenú na deskriptoroch nasadenia. To znamená, že úlohy konfigurácie a nastavenia sú v EJB3 oveľa jednoduchšie a v porovnaní s EJB2 došlo k výraznému zníženiu režijných nákladov na výkon.

Odporúča: