Skirtumas tarp EJB2 ir EJB3

EJB2 ir EJB3

EJB („Enterprise JavaBeans“) yra „Java API“ (programų programavimo sąsaja), aptinkama „Java EE“ („Java Platform“, „Enterprise Edition“) specifikacijose. EJB aprašo verslo programų kūrimo architektūrinį modelį. Tai yra valdomas serverio modelis, galintis užfiksuoti įmonės programos verslo logiką. IBM yra pradinis EJB kūrėjas, kuris ją sukūrė 1997 m. „Sun Microsystems“ ją priėmė 1999 m.

Prieš įvedant EJB, buvo nustatyta, kad programinės įrangos kūrėjai dažnai iš naujo įgyvendino galiniame verslo kode rastų problemų sprendimus. Todėl EJB buvo įvesta šioms įprastoms problemoms, tokioms kaip patvarumas, operacijų vientisumas ir saugumas, spręsti. EJB pateikia standartinius šių galinių problemų sprendimo būdus, nurodydamas, kaip programų serveris turėtų apdoroti operacijas, integruotis su JPA („Java Persistence API“) paslaugomis, tvarkyti lygiagrečiosios valiutos valdymą, tvarkyti JMS („Java Message Service“) įvykius, išspręsti įvardijimo problemas su JNDI ( „Java Naming“ ir „Directory Interface“, kuria saugias programas su JCE („Java“ kriptografijos plėtiniu) ir JAAS („Java“ autentifikavimo ir autorizacijos tarnyba), diegia komponentus, nuotoliniu būdu bendrauja su RMI-IIOP („Java Remote Method Invocation“ sąsaja per interneto „Inter-Orb“ “protokolą). , kurti internetines paslaugas, naudoti asinchroninius metodus ir naudotis laikmačio paslauga.

EJB2

EJB2 (EJB 2.0) buvo išleistas 2001 m. Rugpjūčio 22 d. Jame aprašomos paskirstytų į objektą orientuotų programų Java plėtojimo specifikacijos, derinant skirtingų pardavėjų sukurtus įrankius. Vienas pagrindinių EJB2 tikslų buvo leisti programuotojams lengviau kurti verslo programas, nesuprantant žemo lygio detalių, tokių kaip kelių sriegių sujungimas ir jungčių sujungimas. Kitas tikslas buvo leisti programuotojams vieną kartą parašyti „Pupelę“ ir paleisti bet kur be kompiliacijos (laikantis „Java“ programavimo kalbos šūkio „Parašyk vieną kartą, paleisk bet kur“). Be to, EJB2 ketino leisti skirtingų pardavėjų sukurtiems komponentams lengvai sąveikauti ir leisti pardavėjams rašyti savo produktų plėtinius, galinčius palaikyti EJB..

EJB3

EJB3 (EJB 3.0) buvo išleistas 2006 m. Gegužės 11 d. EJB3 labai palengvino programuotojų gyvenimą, nes jie leido naudoti anotacijas vietoj dislokavimo aprašų, kurie buvo naudojami ankstesnėse versijose. „EJB3“ yra verslo sąsaja ir konkretus subjekto pupelis, galintis įdiegti tą verslo sąsają, pašalinant poreikį naudoti namų / nuotolines sąsajas ir failą „ejb-jar.xml“. Bendras EJB3 veikimas yra žymiai patobulintas, palyginti su EJB2, ir šioje EJB laidoje žymiai padidėja konfigūracija, lankstumas ir perkeliamumas..

Kuo skiriasi EJB2 ir EJB3?

EJB3 pastebimai pagerino konfigūraciją ir našumą, palyginti su EJB2. Viena iš šio pagerėjimo rezultatų yra POJO (paprastas senas „Java“ objektas) su metaduomenimis ir XML diegimo aprašais, kuriuos naudoja EJB3, vietoj JNDI paieškų, naudojamų EJB2, objekto nuorodoms, naudojimas. „EJB3“ konfigūracija yra daug paprastesnė, nes programuotojui nereikia įdiegti „Home“ / „Remote“ sąsajų ir kitų (pvz., „SessionBean“), todėl nebereikia naudoti konteinerių atgalinio ryšio metodų (tokių kaip „ejbActivate“ ir „ejbStore“)..

Be to, lankstumo ir perkeliamumo srityse EJB3 yra geresnis nei EJB2. Pvz., Lengva konvertuoti EJB3 subjektus į DAO (duomenų prieigos objektą) ir atvirkščiai, nes EJB3 subjektai yra lengvi (priešingai nei sunkiasvoriai EJB2 subjektai, įgyvendinantys aukščiau paminėtas sąsajas). Duomenų bazės užklausos, parašytos EJB3, yra labai lanksčios, nes vietoj senesnės EJB-QL versijos, kurioje buvo keli apribojimai, ji naudoja patobulintą EJB-QL. EJB3 pašalina visas EJB2 (kuris naudoja subjektų pupeles prieigai prie duomenų bazės) perkeliamumo problemas palaikydamas visapusiškesnę JPA visoms duomenų operacijoms..

Skirtingai nuo EJB2, kuriam vykdyti reikalingas EJB konteineris, EJB3 galima vykdyti nepriklausomame JVM („Java Virtual Machine“) nenaudojant konteinerių (tai įmanoma, nes jis neįgyvendina standartinių sąsajų). Skirtingai nuo EJB2, EJB3 lengvai prijungiamas prie patvarumo teikėjų, kuriuos siūlo trečiosios šalys. Kitas svarbus skirtumas tarp EJB3 ir EJB2 yra tas, kad EJB3 gali naudoti anotacija pagrįstą apsaugą, o EJB2 naudojo dislokavimo aprašais pagrįstą apsaugą. Tai reiškia, kad EJB3 konfigūravimo ir sąrankos užduotys yra daug lengvesnės, palyginti su EJB2, žymiai sumažėja eksploatacinės pridėtinės išlaidos..