EJB2 vs. EJB3
EJB (Enterprise JavaBeans) je Java API (Application Programming Interface), které se nachází ve specifikaci Java EE (Java Platform, Enterprise Edition). EJB popisuje architektonický model pro vývoj podnikových aplikací. Toto je 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 programátoři často re-implementovali řešení problémů nalezených v back-end business code. Výsledkem bylo zavedení EJB k řešení těchto běžných problémů, jako je vytrvalost, integrita transakcí a bezpečnost. EJB poskytuje standardní způsoby řešení těchto problémů s koncovým serverem tím, že specifikuje, jak by aplikační server měl 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 pojmenováním pomocí JNDI ( Java Naming and Directory Interface), vyvíjet zabezpečené programy pomocí JCE (Java Cryptography Extension) a JAAS (Java Authentication and Authorization Service), implementovat komponenty, vzdáleně komunikovat s RMI-IIOP (Java Remote Method Invocation interface přes Internet Inter-Orb Protocol) , vyvíjet webové služby, vyvolávat asynchronní metody a využívat službu časovače.
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 prodejci. Jedním z hlavních cílů EJB2 bylo umožnit programátorům snadnější vývoj podnikových aplikací, aniž by museli rozumět detailům na nízké úrovni, jako je vícevláknové zpracování a sdružování připojení. Dalším cílem bylo umožnit programátorům psát „Bean“ jednou a běžet kdekoli bez rekompilace (dodržovat slogan „psát jednou, běž kamkoli“ programovacího jazyka Java). Kromě toho EJB2 zamýšlel umožnit snadno interoperabilní komponenty vyvinuté různými prodejci a umožnit prodejcům psát rozšíření pro své produkty, které mohou podporovat EJB.
EJB3
EJB3 (EJB 3.0) byl vydán 11. května 2006. Díky programu EJB3 byl život programátorů velmi snadný tím, že jim umožnil používat anotace namísto deskriptorů implementace, které byly použity v předchozích verzích. EJB3 obsahuje obchodní rozhraní a konkrétní fazole entit, které mohou implementovat toto obchodní rozhraní, čímž se odstraňuje potřeba používat domácí / vzdálená rozhraní a soubor ejb-jar.xml. Celkový výkon EJB3 je ve srovnání s EJB2 mnohem lepší a v tomto vydání EJB dochází ke značnému zvýšení konfigurovatelnosti, flexibility a přenositelnosti..
Jaký je rozdíl mezi EJB2 a EJB3?
EJB3 má znatelné zlepšení v konfiguraci 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 XML Deployment Descriptors by EJB3 mí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 potřebu používat metody zpětného volání kontejnerů (například ejbActivate a ejbStore)..
Kromě toho je EJB3 lepší než EJB2 v oblasti flexibility a přenosnosti. 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 jednotek EJB2, které implementují výše uvedená rozhraní). Databázové dotazy napsané v EJB3 jsou velmi flexibilní, protože místo starší verze EJB-QL používá rafinovaný EJB-QL, který měl několik omezení. EJB3 odstraňuje všechny problémy s přenositelností EJB2 (který používá fazole entit pro přístup k databázi) podporou obecnějšího JPA pro všechny datové transakce.
Na rozdíl od EJB2, který potřebuje k provedení kontejner EJB, lze EJB3 provádět v nezávislém JVM (Java Virtual Machine) bez nutnosti používat kontejnery (je to možné, protože to neimplementuje standardní rozhraní). Na rozdíl od EJB2 je EJB3 snadno propojitelný s poskytovateli vytrvalosti nabízenými 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žíval zabezpečení založené na deskriptorech implementace. To znamená, že úlohy konfigurace a nastavení jsou v EJB3 mnohem snazší a ve srovnání s EJB2 dochází ke značnému snížení režijních nákladů..