EJB2 proti EJB3
EJB (Enterprise JavaBeans) je Java API (aplikacijski programski vmesnik), ki ga najdemo v specifikaciji Java EE (Java Platform, Enterprise Edition). EJB opisuje arhitekturni model razvoja podjetniških aplikacij. To je upravljani model na strani strežnika, ki lahko zajame poslovno logiko poslovne aplikacije. IBM je prvotni ustvarjalec EJB, ki ga je razvil leta 1997. Sun Microsystems ga je sprejel leta 1999.
Pred uvedbo EJB so ugotovili, da programerji pogosto rešijo težave, ki jih najdemo v zalednem poslovnem kodu. Zato je bil EJB uveden za reševanje teh pogostih težav, kot so vztrajnost, transakcijska celovitost in varnost. EJB ponuja standardne načine za reševanje teh težav na koncu, tako da določi, kako naj aplikacijski strežnik obdeluje transakcije, se integrira s storitvami JPA (Java Persistence API), upravlja s kontrolo sočasnosti, upravlja z dogodki JMS (Java Message Service), reši težave s poimenovanjem z JNDI ( Java Naming and Directory Interface), razvijte varne programe z JCE (Java Cryptography Extension) in JAAS (Java Authentication and Authorization Service), namestite komponente, komunicirajte na daljavo z RMI-IIOP (Java Remote Method Invocation Interface for Internet Inter-Orb Protocol) , razvijati spletne storitve, uporabljati asinhrone metode in uporabljati storitev Timer.
EJB2
EJB2 (EJB 2.0) je izšel 22. avgusta 2001. Opisuje specifikacije za razvoj distribuiranih objektno usmerjenih aplikacij na Javi s kombiniranjem orodij, ki so jih razvili različni ponudniki. Eden glavnih ciljev EJB2 je bil omogočiti programerjem, da lažje razvijajo poslovne aplikacije, ne da bi jim bilo treba razumeti podrobnosti na nizki ravni, kot sta večrezanje in povezovanje povezav. Drugi cilj je bil omogočiti programerjem, da enkrat napišejo "Bean" in tečejo kamor koli brez ponovne priprave (držijo se slogana "piši enkrat, teči kamor koli" programskega jezika Java). Poleg tega je EJB2 nameraval omogočiti, da komponente, ki jih razvijejo različni prodajalci, lažje delujejo, prodajalcem pa omogočijo, da napišejo razširitve za svoje izdelke, ki podpirajo EJB.
EJB3
EJB3 (EJB 3.0) je izšel 11. maja 2006. EJB3 je življenje programerjev zelo olajšalo, saj so jim omogočili uporabo opomb namesto deskriptorjev uvajanja, ki so bili uporabljeni v prejšnjih različicah. EJB3 vsebuje poslovni vmesnik in poseben fižol entitete, ki lahko izvaja ta poslovni vmesnik, s čimer odstrani potrebo po uporabi domačih / oddaljenih vmesnikov in datoteke ejb-jar.xml. Splošna učinkovitost sistema EJB3 je v primerjavi z EJB2 bistveno izboljšana, v tej izdaji EJB pa se znatno povečuje nastavljivost, prilagodljivost in prenosljivost..
Kakšna je razlika med EJB2 in EJB3?
EJB3 je opazno izboljšal konfiguracijo in delovanje v primerjavi z EJB2. Eden od razlogov za to izboljšanje zmogljivosti je uporaba POJO (Plain Old Java Object) z metapodatki in deskriptorji uvajanja XML s strani EJB3 namesto JNDI poizvedb, ki se uporabljajo v EJB2 za reference predmetov. Konfiguracija EJB3 je veliko preprostejša, ker programerju ni treba implementirati domačih / oddaljenih vmesnikov in drugih (npr. SessionBean), kar odstrani potrebo po uporabi povratnih klicnih vsebnikov (na primer ejbActivate in ejbStore).
Poleg tega je EJB3 na področju prilagodljivosti in prenosljivosti boljši od EJB2. Na primer, enote EJB3 je enostavno pretvoriti v DAO (Data Access Object) in obratno, ker so entitete EJB3 lahke (v nasprotju s težkimi osebami EJB2, ki izvajajo zgoraj omenjene vmesnike). Poizvedbe po zbirki podatkov, napisane v EJB3, so zelo prilagodljive, saj uporablja rafinirani EJB-QL namesto starejše različice EJB-QL, ki je imela več omejitev. EJB3 odpravlja vse težave prenosljivosti EJB2 (ki uporablja entitetski fižol za dostop do baze podatkov), tako da podpira bolj posplošen JPA za vse podatkovne transakcije.
Za razliko od EJB2, ki za izvedbo potrebuje vsebnik EJB, se lahko EJB3 izvede v neodvisnem JVM (Java Virtual Machine), ne da bi morali uporabljati vsebnike (to je mogoče, ker ne uporablja standardnih vmesnikov). Za razliko od EJB2 je EJB3 enostavno priključiti s ponudniki vztrajnosti, ki jih ponujajo tretje osebe. Druga pomembna razlika med EJB3 in EJB2 je, da lahko EJB3 uporablja zaščito na podlagi opomb, medtem ko EJB2 uporablja varnost, ki temelji na deskriptorjih uvajanja. To pomeni, da so naloge konfiguracije in nastavitve v EJB3 veliko lažje, poleg tega pa se znatno zmanjšajo režijski stroški v primerjavi z EJB2.