EJB2 va EJB3
EJB (Enterprise JavaBeans) bu Java EE (Java Platform, Enterprise Edition) spetsifikatsiyasida topilgan Java API (Ilova dasturlash interfeysi). EJB korporativ ilovalarni ishlab chiqish uchun arxitektura modelini tavsiflaydi. Bu korporativ ilovaning biznes mantiqini qamrab oladigan boshqariladigan server tomoni modeli. IBM EJBning asl yaratuvchisi boʻlib, uni 1997 yilda ishlab chiqqan. Sun Microsystems uni 1999 yilda qabul qilgan.
EJB joriy etilishidan oldin, backend biznes-kodda topilgan muammolarning yechimlari dasturchilar tomonidan tez-tez qayta amalga oshirilganligi aniqlandi. Natijada doimiylik, tranzaksiya yaxlitligi va xavfsizlik kabi umumiy muammolarni hal qilish uchun EJB joriy etildi. EJB ilova serveri tranzaktsiyalarni qanday qayta ishlashi, JPA (Java Persistence API) xizmatlari bilan integratsiyalashuvi, parallel boshqaruvni boshqarishi, JMS (Java Message Service) hodisalarini boshqarishi, JNDI (Java Message Service) hodisalarini boshqarishi, JNDI bilan nomlash bilan bog'liq muammolarni hal qilish orqali EJB ushbu backend muammolarni hal qilishning standart usullarini taqdim etadi. Java nomlash va katalog interfeysi), JCE (Java kriptografiya kengaytmasi) va JAAS (Java autentifikatsiya va avtorizatsiya xizmati) bilan xavfsiz dasturlarni ishlab chiqish, komponentlarni joylashtirish, RMI-IIOP (Inter-Orb protokoli orqali Java masofaviy usulni chaqirish interfeysi) bilan masofadan aloqa qilish., veb-xizmatlarni ishlab chiqing, asinxron usullarni ishga tushiring va Taymer xizmatidan foydalaning.
EJB2
EJB2 (EJB 2.0) 2001-yil 22-avgustda chiqarilgan. U turli ishlab chiqaruvchilar tomonidan ishlab chiqilgan vositalarni birlashtirish orqali Java-da taqsimlangan obyektga yoʻn altirilgan ilovalarni ishlab chiqish spetsifikatsiyasini tavsiflaydi. EJB2 ning asosiy maqsadlaridan biri dasturchilarga ko'p tarmoqli va ulanishni birlashtirish kabi past darajadagi tafsilotlarni tushunmasdan osonroq korporativ ilovalarni ishlab chiqishga imkon berish edi. Yana bir maqsad dasturchilarga “Bean” ni bir marta yozish va istalgan joyda qayta kompilyatsiya qilmasdan (Java dasturlash tilining “bir marta yoz, istalgan joyda ishga tushirish” shioriga amal qilish) ruxsat berish edi. Bundan tashqari, EJB2 turli ishlab chiqaruvchilar tomonidan ishlab chiqilgan komponentlarga oson oʻzaro ishlashga ruxsat berish va sotuvchilarga EJBlarni qoʻllab-quvvatlaydigan oʻz mahsulotlari uchun kengaytmalar yozish imkonini berishni maqsad qilgan.
EJB3
EJB3 (EJB 3.0) 2006-yil 11-mayda chiqarildi. EJB3 oldingi versiyalarda qoʻllanilgan joylashtirish deskriptorlari oʻrniga izohlardan foydalanishga ruxsat berib, dasturchilar hayotini juda oson qildi. EJB3 biznes interfeysi va uy/masofaviy interfeyslarni va ejb-jar.xml faylidan foydalanish zaruratini yo'qotib, ushbu biznes interfeysini amalga oshirishi mumkin bo'lgan ma'lum bir ob'ektni o'z ichiga oladi. EJB3 ning umumiy unumdorligi EJB2 ga nisbatan ancha yaxshilandi va EJB ning ushbu versiyasida konfiguratsiya, moslashuvchanlik va portativlik sezilarli darajada oshdi.
EJB2 va EJB3 oʻrtasidagi farq nima?
EJB3 konfiguratsiyasi va unumdorligi EJB2ga nisbatan sezilarli yaxshilandi. Ushbu ish faoliyatini yaxshilashning sabablaridan biri ob'ektga havolalar uchun EJB2 da qo'llaniladigan JNDI qidiruvlari o'rniga EJB3 tomonidan metama'lumotlar va XML tarqatish identifikatorlari bilan POJO (Oddiy eski Java ob'ekti) dan foydalanishdir. EJB3 konfiguratsiyasi ancha sodda, chunki dasturchi Uy/Masofaviy interfeyslarni va boshqalarni (masalan, SessionBean) amalga oshirishi shart emas, bu esa konteynerni qayta qoʻngʻiroq qilish usullaridan (masalan, ejbActivate va ejbStore) foydalanish zaruriyatini yoʻq qiladi.
Bundan tashqari, EJB3 moslashuvchanlik va portativlik sohalarida EJB2dan yaxshiroqdir. Masalan, EJB3 ob'ektlarini DAO (Ma'lumotlarga kirish ob'ekti) ga aylantirish oson va aksincha, chunki EJB3 ob'ektlari engildir (yuqorida aytib o'tilgan interfeyslarni amalga oshiradigan og'ir vaznli EJB2 ob'ektlaridan farqli o'laroq). EJB3 da yozilgan ma'lumotlar bazasi so'rovlari juda moslashuvchan, chunki u EJB-QL ning eski versiyasi o'rniga bir nechta cheklovlarga ega bo'lgan aniqlangan EJB-QL dan foydalanadi. EJB3 barcha maʼlumotlar tranzaksiyalari uchun yanada umumlashtirilgan JPAni qoʻllab-quvvatlash orqali EJB2 (maʼlumotlar bazasiga kirish uchun obʼyekt loviyalaridan foydalanadi) ning barcha koʻchma muammolarini bartaraf qiladi.
Bajarish uchun EJB konteyneriga muhtoj boʻlgan EJB2 dan farqli oʻlaroq, EJB3 konteynerlardan foydalanmasdan mustaqil JVM (Java Virtual Machine) da bajarilishi mumkin (bu mumkin, chunki u standart interfeyslarni amalga oshirmaydi). EJB2 dan farqli o'laroq, EJB3 uchinchi tomonlar tomonidan taklif qilingan doimiy provayderlar bilan osongina ulanadi. EJB3 va EJB2 o'rtasidagi yana bir muhim farq shundaki, EJB3 izohga asoslangan xavfsizlikdan foydalanishi mumkin, EJB2 esa tarqatish identifikatorlariga asoslangan xavfsizlikdan foydalangan. Bu EJB3 da konfiguratsiya va sozlash vazifalari ancha oson ekanligini va EJB2 bilan solishtirganda unumdorlik uchun qoʻshimcha xarajatlar sezilarli darajada kamayishini bildiradi.