Forskel mellem EJB2 og EJB3

Anonim

EJB2 vs EJB3

EJB (Enterprise JavaBeans) er et Java API (Application Programming Interface) fundet i Java EE (Java Platform, Enterprise Edition) specifikation. EJB beskriver en arkitektonisk model til udvikling af virksomhedsapplikationer. Dette er en administreret server-side model, der er i stand til at fange forretningslogikken i virksomhedsapplikationen. IBM er EJBs oprindelige skaber, der udviklede den i 1997. Sun Microsystems vedtog det i 1999.

Før indførelsen af ​​EJB blev det konstateret, at løsninger på problemer, der blev fundet i back-end-forretningskoden, ofte blev implementeret af programmørerne. Som et resultat blev EJB introduceret for at løse disse almindelige problemer som persistens, transaktionsmæssig integritet og sikkerhed. EJB leverer standardmåder til at håndtere disse problemer med bagproblemer ved at angive, hvordan applikationsserveren skal behandle transaktioner, integrere med JPA-tjenester (Java Persistence API), håndtere samtidighedskontrol, håndtere JMS (Java Message Service) Events, løse navngivningsproblemer med JNDI Java Naming og Directory Interface), udvikle sikre programmer med JCE (Java Cryptography Extension) og JAAS (Java Authentication og Authorization Service), implementer komponenter, kommunikere eksternt med RMI-IIOP (Java Remote Method Invocation-grænsefladen via Internet Inter-Orb Protocol), udvikle webtjenester, påberåbe asynkrone metoder og bruge Timer-tjenesten.

EJB2

EJB2 (EJB 2. 0) blev udgivet den 22. august 2001. Det beskriver specifikationen for udvikling af distribuerede objektorienterede applikationer i Java ved at kombinere værktøjer udviklet af forskellige leverandører. Et af hovedmålene for EJB2 var at give programmører lettere at udvikle virksomhedsapplikationer uden at skulle forstå detaljer om lavt niveau, såsom multi-threading og connection pooling. Et andet mål var at tillade programmører at skrive en "Bean" en gang og køre hvor som helst uden genkompilering (adherende til "skrive en gang, løbe overalt" slogan af Java-programmeringssproget). Desuden havde EJB2 til formål at tillade komponenter udviklet af forskellige leverandører til let at interoperere og tillade sælgerne at skrive udvidelser til deres produkter, der kan understøtte EJB'er.

EJB3

EJB3 (EJB 3. 0) blev udgivet den 11. maj 2006. EJB3 gjorde programmerne livet meget nemt ved at lade dem bruge annoteringer i stedet for implementeringsbeskrivelser, der blev brugt i tidligere versioner. EJB3 indeholder en forretningsinterface og en specifik enhedsbønne, der kan implementere denne forretningsinterface, fjerner behovet for brug af hjemme / fjerngrænseflader og ejb-jar. xml-fil. Den samlede præstation af EJB3 er meget forbedret i forhold til EJB2, og der er en betydelig stigning i konfiguration, fleksibilitet og bærbarhed i denne udgivelse af EJB.

Hvad er forskellen mellem EJB2 og EJB3?

EJB3 har en mærkbar forbedring i konfiguration og ydeevne over EJB2. En af grundene til denne forbedring er anvendelsen af ​​POJO (Plain Old Java Object) med metadata og XML Deployment Descriptors af EJB3 i stedet for JNDI opslag anvendt i EJB2 til objektreferencer. Konfigurationen af ​​EJB3 er meget enklere, fordi programmøren ikke behøver at implementere Home / Remote-grænseflader og andre (f.eks. SessionBean), hvilket fjerner behovet for at bruge container-tilbagekaldelsesmetoder (såsom ejbActivate og ejbStore).

Endvidere er EJB3 bedre end EJB2 inden for områderne fleksibilitet og bærbarhed. For eksempel er det nemt at konvertere EJB3-enheder til DAO (Data Access Object) og omvendt, fordi EJB3-enheder er lette (i modsætning til de heavyweight EJB2-enheder, som implementerer ovennævnte grænseflader). Database forespørgsler skrevet i EJB3 er meget fleksible, fordi det bruger en raffineret EJB-QL, i stedet for den ældre version af EJB-QL, som havde flere begrænsninger. EJB3 fjerner alle portabilitetsproblemer af EJB2 (som bruger enhedsbønner til databaseadgang) ved at støtte mere generaliseret JPA for alle datatransaktioner.

I modsætning til EJB2, som kræver en EJB-container, 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 er EJB3 let pluggbar med persistensudbydere, der tilbydes af tredjeparter. En anden vigtig forskel mellem EJB3 og EJB2 er, at EJB3 kan bruge annotationsbaseret sikkerhed, mens EJB2 brugte implementeringsbeskrivelser baseret sikkerhed. Det betyder, at konfigurations- og opsætningsopgaver er meget nemmere i EJB3, og der er en betydelig reduktion i præstationsomkostninger i forhold til EJB2.