Verschil tussen EJB2 en EJB3

Anonim

EJB2 vs EJB3

EJB (Enterprise JavaBeans) is een Java API (Application Programming Interface) (Java Platform, Enterprise Edition) specificatie. EJB beschrijft een architectonisch model voor de ontwikkeling van bedrijfsapplicaties. Dit is een beheerd server-side model dat de bedrijfslogica van de enterprise applicatie kan vastleggen. IBM is de oorspronkelijke creator van EJB die in 1997 ontwikkelde. Sun Microsystems heeft het in 1999 aangenomen.

Voor de introductie van EJB bleek dat oplossingen voor problemen in back-end business code vaak door de programmeurs opnieuw werden geïmplementeerd. Als gevolg daarvan werd EJB geïntroduceerd om deze gemeenschappelijke problemen aan te pakken, zoals persistentie, transactie-integriteit en beveiliging. EJB biedt standaard manieren om deze back-endproblemen aan te pakken, door te specificeren hoe de applicatieserver transacties moet verwerken, integreren met JPA (Java Persistence API) -diensten, handelen met concurrentiecontrole, JMS-berichten (Java Message Service) Java Namen- en Gidsinterface), beveiligde programma's ontwikkelen met JCE (Java Cryptography Extension) en JAAS (Java Authentication and Authorization Service), implementeer componenten, communiceer op afstand met RMI-IIOP (interface voor Java-invoegtoepassingen via het internet via het internet inter-orb protocol), webdiensten ontwikkelen, asynchrone methoden aanroepen en de Timer-service gebruiken.

EJB2

EJB2 (EJB 2.0) is vrijgegeven op 22 augustus 2001. Het beschrijft specificatie voor het ontwikkelen van gedistribueerde object-georiënteerde applicaties in Java door combineren van tools ontwikkeld door verschillende leveranciers. Een van de belangrijkste doelstellingen van EJB2 was om de programmeurs gemakkelijker te maken voor bedrijfsapplicaties zonder te begrijpen op lage niveau details, zoals multi-threading en connection pooling. Een ander doel was om de programmeurs in staat te stellen een 'Bean' een keer te schrijven en ergens overheen te lopen zonder opnieuw te compileren (in overeenstemming met de slogan van de Java-programmeertaal van de 'write once, run anywhere'). Bovendien heeft EJB2 ervoor gezorgd dat componenten die door verschillende leveranciers zijn ontwikkeld, gemakkelijk kunnen interopereren, en toestaan ​​dat verkopers extensies schrijven voor hun producten die EJB's kunnen ondersteunen.

EJB3

EJB3 (EJB 3. 0) werd vrijgegeven op 11 mei 2006. EJB3 heeft de programmeurs het leven heel makkelijk gemaakt door hen in staat te stellen annotaties te gebruiken in plaats van implementatie descriptors die eerder werden gebruikt versies. EJB3 bevat een zakelijke interface en een specifieke entiteitboon die die zakelijke interface kan implementeren, waarbij u de noodzaak om thuis / externe interfaces en de ejb-jar te verwijderen, verwijdert. xml bestand. De algehele prestatie van EJB3 is veel verbeterd in vergelijking met EJB2, en er is een aanzienlijke stijging van de configuratie, flexibiliteit en draagbaarheid in deze release van EJB.

Wat is het verschil tussen EJB2 en EJB3?

EJB3 heeft een opvallende verbetering in configuratie en prestaties boven EJB2. Een van de redenen voor deze prestatieverbetering is het gebruik van de POJO (Plain Old Java Object) met metadata en XML Deployment Descriptors door EJB3 in plaats van JNDI-opzoekingen die worden gebruikt in EJB2 voor objectverwijzingen. De configuratie van EJB3 is veel eenvoudiger omdat de programmeur geen Home / Remote interfaces en anderen (bv. SessionBean) moet implementeren, waardoor het nodig is om terugroepmethoden van containers te gebruiken (zoals ejbActivate en ejbStore).

Bovendien is EJB3 beter dan EJB2 op het gebied van flexibiliteit en draagbaarheid. Bijvoorbeeld, het is gemakkelijk om EJB3-entiteiten om te zetten in DAO (Data Access Object) en vice versa omdat EJB3-entiteiten lichtgewicht zijn (in tegenstelling tot de zwaargewicht EJB2-entiteiten die bovengenoemde interfaces implementeren). Database zoekopdrachten die in EJB3 zijn geschreven, zijn zeer flexibel omdat het gebruik maakt van een verfijnde EJB-QL, in plaats van de oudere versie van EJB-QL, met verschillende beperkingen. EJB3 verwijdert alle overdraagbaarheidsproblemen van EJB2 (die entiteitsbonen gebruikt voor toegang tot databases) door meer algemene JPEG te ondersteunen voor alle data transacties.

In tegenstelling tot EJB2, die een EJB-container nodig heeft om te kunnen uitvoeren, kan EJB3 worden uitgevoerd in een onafhankelijke JVM (Java Virtual Machine) zonder containers te gebruiken (dit is mogelijk omdat het geen standaard interfaces uitvoert). In tegenstelling tot EJB2, is EJB3 makkelijk te pluggen met persistentie aanbieders aangeboden door derden. Een ander belangrijk verschil tussen EJB3 en EJB2 is dat EJB3 op basis van annotatie gebaseerde beveiliging kan gebruiken, terwijl EJB2 beveiligingsbeschrijvingen op basis van beveiligingssoftware gebruikt. Dit betekent dat configuratie- en setuptaken veel eenvoudiger zijn in EJB3, en er is een aanzienlijke vermindering van de prestatiekosten vergeleken met EJB2.