EJB2 vs EJB3
EJB (Enterprise JavaBeans) är ett Java API (Application Programming Interface) som finns i Java EE (Java Platform, Enterprise Edition) specifikation. EJB beskriver en arkitektonisk modell för utveckling av företagsapplikationer. Detta är en hanterad serverns sida som kan ta upp företagslogiken i företagsapplikationen. IBM är EJBs ursprungliga skapare som utvecklade den 1997. Sun Microsystems antog den 1999.
Före introduktionen av EJB fann man att lösningar på problem som hittades i back-end-företagskoden ofta implementerades av programmerarna. Som ett resultat infördes EJB för att ta itu med dessa vanliga problem som persistens, transaktionsintegritet och säkerhet. EJB tillhandahåller vanliga sätt att hantera dessa bakproblem, genom att ange hur applikationsservern ska hantera transaktioner, integrera med JPA-tjänster (Java Persistence API), hantera samtidskontroll, hantera JMS (Java Message Service) -händelser, lösa namngivningsproblem med JNDI ( Java Naming and Directory Interface), utveckla säkra program med JCE (Java Cryptography Extension) och JAAS (Java Authentication and Authorization Service), distribuera komponenter, kommunicera fjärr med RMI-IIOP (gränssnitt för Java Remote Method Invocation via Internet Inter-Orb Protocol) , utveckla webbtjänster, anropa asynkrona metoder och använd Timer-tjänsten.
EJB2
EJB2 (EJB 2.0) släpptes den 22 augusti 2001. Den beskriver specifikationen för att utveckla distribuerade objektorienterade applikationer i Java genom att kombinera verktyg som utvecklats av olika leverantörer. Ett av de viktigaste målen med EJB2 var att låta programmerare enkelt utveckla företagsapplikationer utan att behöva förstå lågnivådetaljer, till exempel multi-threading och anslutningspooling. Ett annat mål var att tillåta programmerare att skriva en "Bean" en gång och springa var som helst utan omkompilering (adhering till "skriv en gång, kör någonstans" slogan i Java-programmeringsspråket). Dessutom var EJB2 avsett att låta komponenter som utvecklats av olika leverantörer enkelt koppla ihop och tillåta leverantörer att skriva tillägg för sina produkter som kan stödja EJB.
EJB3
EJB3 (EJB 3.0) släpptes den 11 maj 2006. EJB3 gjorde programmerare livet väldigt enkelt genom att låta dem använda annoteringar i stället för installationsbeskrivningar som användes i tidigare versioner. EJB3 innehåller ett företagsgränssnitt och en specifik enhetsböna som kan implementera det affärsgränssnittet, vilket eliminerar behovet av att använda hem / fjärrgränssnitt och ejb-jar.xml-filen. Övergripande prestanda för EJB3 förbättras mycket jämfört med EJB2, och det finns en avsevärd ökning av konfigurerbarhet, flexibilitet och bärbarhet i denna release av EJB.
Vad är skillnaden mellan EJB2 och EJB3?
EJB3 har en märkbar förbättring av konfiguration och prestanda över EJB2. En orsak till denna prestationsförbättring är användningen av POJO (Plain Old Java Object) med metadata och XML Deployment Descriptors av EJB3 istället för JNDI-sökningar som används i EJB2 för objektreferenser. Konfigurationen av EJB3 är mycket enklare eftersom programmeraren inte behöver implementera hem / fjärrgränssnitt och andra (t.ex. SessionBean), vilket undanröjer behovet av att använda containeråterkallningsmetoder (som ejbActivate och ejbStore).
Dessutom är EJB3 bättre än EJB2 inom områdena flexibilitet och bärbarhet. Det är till exempel lätt att konvertera EJB3-enheter till DAO (Data Access Object) och vice versa eftersom EJB3-enheter är lätta (i motsats till de tunga EJB2-enheterna, som implementerar ovan nämnda gränssnitt). Databasfrågor skrivna i EJB3 är mycket flexibla eftersom det använder en raffinerad EJB-QL, istället för den äldre versionen av EJB-QL, som hade flera begränsningar. EJB3 tar bort alla portabilitetsproblem av EJB2 (som använder företagsbönor för databasåtkomst) genom att stödja mer generaliserad JPA för alla datatransaktioner.
Till skillnad från EJB2, som behöver en EJB-behållare, kan EJB3 exekveras i en oberoende JVM (Java Virtual Machine) utan att behöva använda behållare (det här är möjligt eftersom det inte implementerar standardgränssnitt). Till skillnad från EJB2 är EJB3 enkelt pluggbar med persistensleverantörer som erbjuds av tredje part. En annan viktig skillnad mellan EJB3 och EJB2 är att EJB3 kan använda anteckningsbaserad säkerhet, medan EJB2 använde deployment descriptors-baserad säkerhet. Det betyder att konfigurations- och installationsuppgifter är mycket enklare i EJB3, och det finns en betydande minskning av prestationskostnaderna jämfört med EJB2.