EJB2 vs EJB3
EJB (Enterprise JavaBeans) er en Java API (Application Programming Interface), der findes inden for Java EE (Java Platform, Enterprise Edition) specifikation. EJB beskriver en arkitektonisk model til udvikling af virksomhedsapplikationer. Dette er en administreret serversidemodel, der er i stand til at fange forretningslogikken for virksomhedsapplikationen. IBM er EJBs originale skaber, der udviklede den i 1997. Sun Microsystems vedtog den i 1999.
Før introduktionen af EJB blev det konstateret, at løsninger til problemer, der findes i back-end-forretningskode, ofte blev implementeret igen af programmererne. Som et resultat blev EJB introduceret for at tackle disse almindelige problemer, såsom vedholdenhed, transaktionsintegritet og sikkerhed. EJB giver standardmåder til at håndtere disse backend-problemer ved at specificere, hvordan applikationsserveren skal behandle transaktioner, integrere med JPA (Java Persistence API) -tjenester, håndtere samtidighedskontrol, håndtere JMS (Java Message Service) -hændelser, løse navngivningsproblemer med JNDI ( Java Naming og Directory Interface), udvikle sikre programmer med JCE (Java Cryptography Extension) og JAAS (Java Authentication and Authorization Service), distribuere komponenter, kommunikere eksternt med RMI-IIOP (Java Remote Method Invocation interface via Internet Inter-Orb Protocol) , udvikle webtjenester, påberåbe sig asynkrone metoder og bruge Timer-tjenesten.
EJB2
EJB2 (EJB 2.0) blev frigivet den 22. august 2001. Den beskriver specifikation for udvikling af distribuerede objektorienterede applikationer i Java ved at kombinere værktøjer udviklet af forskellige leverandører. Et af de største mål for EJB2 var at give programmerere lettere at udvikle virksomhedsapplikationer uden at skulle forstå detaljer på lavt niveau, såsom multi-threading og sammenkobling pooling. Et andet mål var at give programmerere mulighed for at skrive en "Bean" en gang og køre hvor som helst uden genkompilering (vedhæftning af "skriv en gang, kør hvor som helst" sloganet på Java-programmeringssprog). Derudover havde EJB2 til hensigt at tillade komponenter, der er udviklet af forskellige leverandører, nemt at samarbejde og give leverandører mulighed for at skrive udvidelser til deres produkter, der kan understøtte EJB'er.
EJB3
EJB3 (EJB 3.0) blev frigivet den 11. maj, 2006. EJB3 gjorde programmørernes liv meget let ved at give dem mulighed for at bruge kommentarer i stedet for implementeringsbeskrivelser, der blev brugt i tidligere versioner. EJB3 indeholder en forretningsgrænseflade og en bestemt enhedsbønne, der kan implementere denne forretningsgrænseflade, hvilket fjerner behovet for at bruge hjemme / fjerngrænseflader og filen ejb-jar.xml. Den samlede ydelse af EJB3 er meget forbedret sammenlignet med EJB2, og der er en betydelig stigning i konfigurerbarhed, fleksibilitet og portabilitet i denne udgivelse af EJB.
Hvad er forskellen mellem EJB2 og EJB3?
EJB3 har en mærkbar forbedring i konfiguration og ydeevne i forhold til EJB2. En af grundene til denne ydelsesforbedring er brugen af POJO (Plain Old Java Object) med metadata og XML Deployment Descriptors af EJB3 i stedet for JNDI-opslag, der bruges i EJB2 til objektreferencer. Konfiguration af EJB3 er meget enklere, fordi programmereren ikke har brug for at implementere Home / Remote-grænseflader og andre (f.eks. SessionBean), hvilket fjerner behovet for at bruge container callback-metoder (som ejbActivate og ejbStore).
Desuden er EJB3 bedre end EJB2 inden for områderne fleksibilitet og bærbarhed. For eksempel er det let at konvertere EJB3-enheder til DAO (Data Access Object) og vice versa, fordi EJB3-enheder er lette (i modsætning til de tunge EJB2-enheder, der implementerer ovennævnte grænseflader). Databaseforespørgsler skrevet i EJB3 er meget fleksible, fordi de bruger en raffineret EJB-QL i stedet for den ældre version af EJB-QL, der havde flere begrænsninger. EJB3 fjerner alle portabilitetsproblemer i EJB2 (som bruger enhedsbønner til databaseadgang) ved at understøtte mere generaliseret JPA for alle datatransaktioner.
I modsætning til EJB2, som har brug for en EJB-container for at udføre, kan EJB3 udføres i en uafhængig JVM (Java Virtual Machine) uden at skulle bruge containere (dette er muligt, fordi det ikke implementerer standardgrænseflader). I modsætning til EJB2, kan EJB3 let tilsluttes med udholdenhedsudbydere, der tilbydes af tredjepart. En anden vigtig forskel mellem EJB3 og EJB2 er, at EJB3 kan bruge annotationsbaseret sikkerhed, mens EJB2 benyttede installationsinstallationsbeskrivelsesbaserede sikkerhed. Dette betyder, at konfigurations- og opsætningsopgaver er meget lettere i EJB3, og der er en betydelig reduktion i ydelsesomkostninger sammenlignet med EJB2.