Rozdíl mezi EJB2 a EJB3

Rozdíl mezi EJB2 a EJB3
Rozdíl mezi EJB2 a EJB3

Video: Rozdíl mezi EJB2 a EJB3

Video: Rozdíl mezi EJB2 a EJB3
Video: THREE REASONS WHY TO GRILL (vs Using An Oven) 2024, Listopad
Anonim

EJB2 vs EJB3

EJB (Enterprise JavaBeans) je Java API (Application Programming Interface), které se nachází v rámci specifikace Java EE (Java Platform, Enterprise Edition). EJB popisuje architektonický model pro vývoj podnikových aplikací. Jedná se o spravovaný model na straně serveru, který je schopen zachytit obchodní logiku podnikové aplikace. IBM je původním tvůrcem EJB, který jej vyvinul v roce 1997. Sun Microsystems jej přijal v roce 1999.

Před zavedením EJB bylo zjištěno, že řešení problémů nalezených v back-endovém obchodním kódu byla programátory často znovu implementována. V důsledku toho byl zaveden EJB, který řeší tyto běžné problémy, jako je perzistence, transakční integrita a bezpečnost. EJB poskytuje standardní způsoby řešení těchto problémů back-end tím, že specifikuje, jak by měl aplikační server zpracovávat transakce, integrovat se se službami JPA (Java Persistence API), zpracovávat řízení souběžnosti, zpracovávat události JMS (Java Message Service), řešit problémy s názvy pomocí JNDI (Java Naming and Directory Interface), vývoj bezpečných programů s JCE (Java Cryptography Extension) a JAAS (Java Authentication and Authorization Service), nasazování komponent, vzdálená komunikace s RMI-IIOP (rozhraní Java Remote Method Invocation přes Internet Inter-Orb Protocol), vyvíjet webové služby, vyvolávat asynchronní metody a používat službu Timer.

EJB2

EJB2 (EJB 2.0) byl vydán 22. srpna 2001. Popisuje specifikaci pro vývoj distribuovaných objektově orientovaných aplikací v Javě kombinací nástrojů vyvinutých různými dodavateli. Jedním z hlavních cílů EJB2 bylo umožnit programátorům snadněji vyvíjet podnikové aplikace, aniž by museli rozumět nízkoúrovňovým detailům, jako je multi-threading a sdružování připojení. Dalším cílem bylo umožnit programátorům napsat „Bean“jednou a spustit jej kdekoli bez rekompilace (v souladu se sloganem programovacího jazyka Java „zapište jednou, spusťte kdekoli“). Kromě toho EJB2 zamýšlel umožnit komponentám vyvinutým různými dodavateli snadnou interoperabilitu a umožnit prodejcům psát rozšíření pro jejich produkty, které mohou podporovat EJB.

EJB3

EJB3 (EJB 3.0) byl vydán 11. května 2006. EJB3 velmi usnadnil život programátorům tím, že jim umožnil používat anotace místo deskriptorů nasazení, které byly používány v předchozích verzích. EJB3 obsahuje obchodní rozhraní a konkrétní objekt bean, který může implementovat toto obchodní rozhraní, čímž odstraňuje potřebu používat domácí/vzdálená rozhraní a soubor ejb-jar.xml. Celkový výkon EJB3 je mnohem lepší ve srovnání s EJB2 a v tomto vydání EJB došlo ke značnému zvýšení konfigurovatelnosti, flexibility a přenositelnosti.

Jaký je rozdíl mezi EJB2 a EJB3?

EJB3 má znatelné zlepšení konfigurace a výkonu oproti EJB2. Jedním z důvodů tohoto zlepšení výkonu je použití POJO (Plain Old Java Object) s metadaty a deskriptory nasazení XML pomocí EJB3 namísto vyhledávání JNDI používaných v EJB2 pro odkazy na objekty. Konfigurace EJB3 je mnohem jednodušší, protože programátor nemusí implementovat rozhraní Home/Remote a další (např. SessionBean), což odstraňuje nutnost používat metody zpětného volání kontejneru (jako jsou ejbActivate a ejbStore).

Kromě toho je EJB3 lepší než EJB2 v oblastech flexibility a přenositelnosti. Například je snadné převést entity EJB3 na DAO (Data Access Object) a naopak, protože entity EJB3 jsou lehké (na rozdíl od těžkých entit EJB2, které implementují výše zmíněná rozhraní). Databázové dotazy napsané v EJB3 jsou velmi flexibilní, protože používá vylepšený EJB-QL namísto starší verze EJB-QL, která měla několik omezení. EJB3 odstraňuje všechny problémy s přenositelností EJB2 (který používá entity beans pro přístup k databázi) tím, že podporuje obecnější JPA pro všechny datové transakce.

Na rozdíl od EJB2, který ke spuštění potřebuje kontejner EJB, lze EJB3 spustit v nezávislém JVM (Java Virtual Machine) bez nutnosti použití kontejnerů (toto je možné, protože neimplementuje standardní rozhraní). Na rozdíl od EJB2 je EJB3 snadno připojitelný k poskytovatelům persistence nabízených třetími stranami. Dalším důležitým rozdílem mezi EJB3 a EJB2 je to, že EJB3 může používat zabezpečení založené na anotacích, zatímco EJB2 používalo zabezpečení založené na deskriptorech nasazení. To znamená, že úlohy konfigurace a nastavení jsou v EJB3 mnohem jednodušší a ve srovnání s EJB2 dochází ke značnému snížení režijních nákladů na výkon.

Doporučuje: