Разлика между EJB2 и EJB3

Разлика между EJB2 и EJB3
Разлика между EJB2 и EJB3

Видео: Разлика между EJB2 и EJB3

Видео: Разлика между EJB2 и EJB3
Видео: Java EE 123: EJB 1: Что такое EJB 2024, Септември
Anonim

EJB2 срещу EJB3

EJB (Enterprise JavaBeans) е Java API (интерфейс за програмиране на приложения), открит в спецификацията на Java EE (Java Platform, Enterprise Edition). EJB описва архитектурен модел за разработване на корпоративни приложения. Това е управляван модел от страната на сървъра, който е в състояние да улови бизнес логиката на корпоративното приложение. IBM е оригиналният създател на EJB, който го разработи през 1997 г. Sun Microsystems го прие през 1999 г.

Преди въвеждането на EJB беше установено, че решенията на проблемите, открити в задния бизнес код, често се внедряваха отново от програмистите. В резултат на това EJB беше въведен за справяне с тези често срещани проблеми като постоянство, интегритет на транзакциите и сигурност. EJB предоставя стандартни начини за справяне с тези задни проблеми, като указва как сървърът на приложения трябва да обработва транзакции, да се интегрира с JPA (Java Persistence API) услуги, да управлява паралелния контрол, да обработва JMS (Java Message Service) събития, да разрешава проблеми с именуване с JNDI (Java интерфейс за именуване и директория), разработват защитени програми с JCE (Java Cryptography Extension) и JAAS (Java Authentication and Authorization Service), внедряват компоненти, комуникират дистанционно с RMI-IIOP (Java Remote Method Invocation interface over the Internet Inter-Orb Protocol), разработване на уеб услуги, извикване на асинхронни методи и използване на услугата Timer.

EJB2

EJB2 (EJB 2.0) беше издаден на 22 август 2001 г. Той описва спецификация за разработване на разпределени обектно-ориентирани приложения в Java чрез комбиниране на инструменти, разработени от различни доставчици. Една от основните цели на EJB2 беше да позволи на програмистите да разработват корпоративни приложения по-лесно, без да се налага да разбират детайли на ниско ниво, като многопоточност и групиране на връзки. Друга цел беше да се позволи на програмистите да напишат „Bean“веднъж и да стартират навсякъде без повторно компилиране (придържайки се към лозунга „пиши веднъж, изпълнявай навсякъде“на езика за програмиране Java). Освен това EJB2 има за цел да позволи на компонентите, разработени от различни доставчици, лесно да взаимодействат и да позволи на доставчиците да пишат разширения за своите продукти, които могат да поддържат EJB.

EJB3

EJB3 (EJB 3.0) беше пуснат на 11 май 2006 г. EJB3 направи живота на програмистите много лесен, като им позволи да използват анотации вместо дескриптори за разгръщане, които бяха използвани в предишните версии. EJB3 съдържа бизнес интерфейс и специфичен субект bean, който може да имплементира този бизнес интерфейс, като премахва необходимостта от използване на домашни/отдалечени интерфейси и файла ejb-jar.xml. Цялостната производителност на EJB3 е много подобрена в сравнение с EJB2 и има значително увеличение на конфигурируемостта, гъвкавостта и преносимостта в тази версия на EJB.

Каква е разликата между EJB2 и EJB3?

EJB3 има забележимо подобрение в конфигурацията и производителността спрямо EJB2. Една от причините за това подобрение на производителността е използването на POJO (Plain Old Java Object) с метаданни и XML Deployment Descriptors от EJB3 вместо JNDI справки, използвани в EJB2 за препратки към обекти. Конфигурирането на EJB3 е много по-опростено, тъй като програмистът не трябва да внедрява Home/Remote интерфейси и други (напр. SessionBean), което премахва необходимостта от използване на методи за обратно извикване на контейнер (като ejbActivate и ejbStore).

Освен това EJB3 е по-добър от EJB2 в областта на гъвкавостта и преносимостта. Например, лесно е да конвертирате EJB3 обекти в DAO (обект за достъп до данни) и обратно, тъй като EJB3 обектите са леки (за разлика от тежките EJB2 обекти, които имплементират гореспоменатите интерфейси). Заявките към базата данни, написани в EJB3, са много гъвкави, тъй като използва усъвършенстван EJB-QL, вместо по-старата версия на EJB-QL, която имаше няколко ограничения. EJB3 премахва всички проблеми с преносимостта на EJB2 (който използва компоненти на обекти за достъп до база данни), като поддържа по-обобщен JPA за всички транзакции с данни.

За разлика от EJB2, който се нуждае от EJB контейнер за изпълнение, EJB3 може да се изпълнява в независима JVM (Java Virtual Machine), без да се налага да се използват контейнери (това е възможно, защото не прилага стандартни интерфейси). За разлика от EJB2, EJB3 е лесно свързан с доставчици на постоянство, предлагани от трети страни. Друга важна разлика между EJB3 и EJB2 е, че EJB3 може да използва защита, базирана на анотация, докато EJB2 използва защита, базирана на дескриптори за внедряване. Това означава, че задачите за конфигуриране и настройка са много по-лесни в EJB3 и има значително намаление на производителността в сравнение с EJB2.

Препоръчано: