EJB2 vs EJB3
EJB (Enterprise JavaBeans) er et Java API (Application Programming Interface) som finnes i Java EE (Java Platform, Enterprise Edition) spesifikasjon. EJB beskriver en arkitektonisk modell for utvikling av bedriftsapplikasjoner. Dette er en administrert server-side modell som er i stand til å fange forretningslogikken i bedriftsapplikasjonen. IBM er EJBs opprinnelige skaperen som utviklet den i 1997. Sun Microsystems vedtok den i 1999.
Før innføringen av EJB ble det funnet at løsninger på problemer som ble funnet i back-end forretningskode ofte ble re-implementert av programmererne. Som et resultat ble EJB introdusert for å løse disse vanlige problemene som utholdenhet, transaksjonell integritet og sikkerhet. EJB tilbyr standard måter å håndtere disse problemene ved å spesifisere hvordan applikasjonsserveren skal behandle transaksjoner, integrere med JPA (Java Persistence API) -tjenester, håndtere samtidighetskontroll, håndtere JMS (Java Message Service) -hendelser, løse navngivningsproblemer med JNDI ( Java Naming and Directory Interface), utvikle sikre programmer med JCE (Java Cryptography Extension) og JAAS (Java Authentication and Authorization Service), distribuere komponenter, kommuniser eksternt med RMI-IIOP (Java Remote Method Invocation-grensesnitt over Internett Inter-Orb Protocol) , utvikle webtjenester, påkalle asynkrone metoder og bruke Timer-tjenesten.
EJB2
EJB2 (EJB 2.0) ble utgitt 22. august 2001. Det beskriver spesifikasjon for utvikling av distribuerte objektorienterte applikasjoner i Java ved å kombinere verktøy utviklet av ulike leverandører. Et av hovedmålene for EJB2 var å tillate programmerere å utvikle bedriftsapplikasjoner lettere uten å måtte forstå lavt nivå detaljer, for eksempel multi-threading og tilkobling pooling. Et annet mål var å tillate programmerere å skrive en "Bean" en gang og løpe hvor som helst uten omkompilering (ved å følge "skrive en gang, kjøre hvor som helst" slagordet i Java-programmeringsspråket). Videre har EJB2 ment å tillate at komponenter som er utviklet av ulike leverandører, enkelt kan samarbeide, og tillater leverandører å skrive utvidelser for deres produkter som kan støtte EJB.
EJB3
EJB3 (EJB 3.0) ble utgitt 11. mai 2006. EJB3 gjorde programmerer livet veldig enkelt ved å la dem bruke notater i stedet for distribusjonsbeskrivelser som ble brukt i tidligere versjoner. EJB3 inneholder et forretningsgrensesnitt og en bestemt enhetsbønne som kan implementere det grensesnittet, fjerner behovet for bruk av hjem / fjerngrensesnitt og ejb-jar.xml-filen. Den totale ytelsen til EJB3 er mye bedre sammenlignet med EJB2, og det er en betydelig økning i konfigurerbarhet, fleksibilitet og bærbarhet i denne utgivelsen av EJB.
Hva er forskjellen mellom EJB2 og EJB3?
EJB3 har en merkbar forbedring i konfigurasjon og ytelse over EJB2. En årsak til denne ytelsesforbedringen er bruken av POJO (Plain Old Java Object) med metadata og XML Deployment Descriptors av EJB3 i stedet for JNDI-søk som brukes i EJB2 for objektreferanser. Konfigurering av EJB3 er mye enklere fordi programmereren ikke trenger å implementere Home / Remote-grensesnitt og andre (for eksempel SessionBean), som fjerner behovet for å bruke container tilbakeringingsmetoder (som ejbActivate og ejbStore).
Videre er EJB3 bedre enn EJB2 innen fleksibilitet og portabilitet. For eksempel er det enkelt å konvertere EJB3-enheter til DAO (Data Access Object) og omvendt fordi EJB3-enheter er lette (i motsetning til de tungvektige EJB2-enhetene som implementerer ovennevnte grensesnitt). Databasespørsmål skrevet i EJB3 er svært fleksible fordi det bruker en raffinert EJB-QL, i stedet for den eldre versjonen av EJB-QL, som hadde flere begrensninger. EJB3 fjerner alle portabilitetsproblemer av EJB2 (som bruker enhetsbønner for databasetilgang) ved å støtte mer generalisert JPA for alle datatransaksjoner.
I motsetning til EJB2, som trenger en EJB-beholder til å utføre, kan EJB3 utføres i en uavhengig JVM (Java Virtual Machine) uten å måtte bruke containere (dette er mulig fordi det ikke implementerer standardgrensesnitt). I motsetning til EJB2, er EJB3 enkelt pluggbar med utholdenhetsleverandører som tilbys av tredjeparter. En annen viktig forskjell mellom EJB3 og EJB2 er at EJB3 kan bruke annotasjonsbasert sikkerhet, mens EJB2 brukte distribusjonsbeskrivelser basert sikkerhet. Dette betyr at konfigurasjons- og oppsettsoppgaver er mye lettere i EJB3, og det er en betydelig reduksjon i ytelseskostnader i forhold til EJB2.