Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Comparativa Entre EJB3 y Spring
Comparativa Entre EJB3 y Spring
ComparativaentreEJB3ySpring
EntraenAdictosatravsde
Email
Contrasea
Registrarme
Olvidmicontrasea
Entrar
Inicio
Quinessomos
Formacin
Comparadordesalarios
Nuestroslibros
Ms
Catlogodeservicios
Autentia
CristhianHerrera
Residencia:Quito(Ecuador)
Cristhian.Herrera@gmail.com/cherrera@kruger.com.ec
Cuentoconexperienciaenelreadedesarrollodesoftwareyenladocencia
acadmica.Dentrodelaconstruccindesoftwarehemanejadolasetapasde:
anlisis,diseo,personalizacineimplementacindeaplicacionesbajoambientes
Cliente/ServidoreInternet.
Vertodoslostutorialesdelautor
Fechadepublicacindeltutorial:20071017
Tutorialvisitado30.803vecesDescargarenPDF
ComparativaentreEJB3ySpringFramework
Sobreelpresentedocumento:
Introduccin
EnterpriseJavaBeans
SpringFramework
CriteriodeComparacin
Fuente:
Referenciasdeldocumentooriginal:
ComparativaentreEJB3ySpringFramework
Sguenosatravs
de:
ltimasNoticias
2015:Volvemosala
oficina!
Sobreelpresentedocumento:
Hace algn tiempo que encontr una comparativa de EJB3 versus Spring Framework, realizada por Janis
GraudinsyLarissaZaitseva,lamismaquemehepermitidotraducirpueslaconsideromuyilustrativayunabuenaayuda
alahoradedeterminarcualdelasalternativasemplear.Heomitidolaseccinde"abstract"deldocumentooriginalyen
generalenlatraduccinheprocuradoserfielalespritudeldocumentoeninglsperoenalgunospuntosdelatablade
comparacinfinalheagregadoalgunasapreciacionespropiascuandoheconsideradoqueloquedicenoesdeltodo
correcto.
Introduccin
CursoJBossdeRedHat
Siereselresponsableo
ldertcnico,considrate
desafortunado.Nopuedes
culparanadieporsergris
Portales,gestoresde
contenidosdocumentalesy
desarrollosamedida
ComentandoellibroStart
upNation,Lahistoriadel
milagroeconmicodeIsrael,
deDanSenor&SaluSinger
Histricodenoticias
LasaplicacionesbasadasenellenguajedeprogramacinJAVAcomprendenunapartesignificativadeluniverso
dedesarrollodesoftware.JavafueinicialmentecreadoporSUNCorporationyhalogradodentrolacomunidadOpen
Source la aceptacin y el soporte de verdaderos gigantes de las TI como BEA Systems, IBM Corporation y JBOSS
(RedHat).JAVAesespecialmentepopulareneldesarrollodegrandesaplicacionesempresariales.Lascomparativas
muestranqueel25,3%delasgrandescompaasusanJAVAensusaplicacionesmsimportantes(octubre2005)[7].
La plataforma Java 2 Enterprise Edition (J2EE) provee grandes oportunidades para el desarrollo de sistemas
distribuidos,seutililizaenlamayoradelasaplicacionesempresarialesylatecnologaEnterpriseJavaBeans(EJB)es
una parte muy importante de la misma. Usualmente la arquitectura de una aplicacin J2EE contiene varias capas
separadascomosepuedeapreciarenlafigura.Lacapadeservidortpicamentecontienecomponentesdeservidorcon
lgicadenegocio,estossonmanejadosporuncontenedorEJB(deacuerdoconlaimplementacindelaespecificacin
EJB). El contenedor EJB es parte del servidor de aplicaciones (usualmente el contenedor EJB y el servidor de
aplicaciones no pueden ser separados y son proporcionados por el mismo proveedor). El servidor de aplicaciones
proveeelciclodevidadeloscomponentes,ascomoserviciosdeseguridadymanejodetransacciones.
ltimosTutoriales
ByteCode:Sabesloque
realmenteprogramasen
Java?
PopArtalestiloAndy
Warhol:Photoshop
Tcnicasderealizacinde
entrevistas
Imprimiendodocumentos
OfficeyPDFexistentescon
JavaenentornoWindows.
Batch&Print
Enfrntateconxitoala
crisisdelahojaenblanco
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=EJB3vsSpring
1/6
18/4/2015
ComparativaentreEJB3ySpring
ltimosTutorialesdel
Autor
Todoloquequeriassaber
sobreDatawareHouse(IV)
Todoloquequeriassaber
sobreDatawareHouse(III)
Todoloquequeriassaber
sobreDatawareHouse(II)
Desafortunadamente,lasversionesanterioresdeEJBfuerondemasiadocomplejasynuevoscomponentesde
manejo tecnolgico aparecieron. Spring Framework, en su versin 1.0 liberada en Marzo de 2004, es un producto
gratuitodecarcterOpenSource,elmismoqueesuncontenedorlivianodecomponentesdenegocioquepuedenser
utilizadoscomounaalternativafrenteaEJB.Engeneral,SpringFrameworkproveealgunosserviciosadicionalestales
comoSpringWebModelViewController(MVC),peroestosestnfueradelalcancedeestedocumento.
AcontinuacinsedescribebrevementealgunasdelascaractersticasbsicasdeEJBydeSpringFramework.
Todoloquequeriassaber
sobreDatawareHouse(I)
Comparativaentre
HibernateyEJB3enlaCapa
dePersistencia
CategorasdelTutorial
Spring
EnterpriseJavaBeans
EJBs/RMI
UnadelasmetasdelaarquitecturaEJBesladepoderescribirdemanerafcilaplicacionesdenegocioorientadas
aobjetosydistribuidas,basadasenellenguajedeprogramacinJAVA[1].Desafortunadamente,lasversiones1.0a2.1
deEJBfuerondemasiadocomplejasynoalcanzaronestameta.ElpropsitodeEJB3eseldeproveerelsoportedela
arquitectura de EJB y al mismo tiempo reducir la complejidad para el desarrollo de aplicaciones empresariales. Para
simplificarlaarquitecturaEJBserealizaronlossiguientescambios[3]:
Seintroduce las anotaciones de metadatos (metadata annotations) [10] las mismas que pueden ser usadas en
combinacin con el descriptor de despliegue (deployment descriptor) separadas del mismo, para anotar
aplicaciones EJB (especificar tipos de componentes, comportamiento, etc.), como una manera de encapsular
dependenciasdelambientedetrabajoyrecursos.
Seeliminaelrequerimientodeespecificarunainterfaz"home"
Enlosentreprisebeansseeliminalanecesidaddeimplementarunainterfazespecfica(javax.ejb.EnterpriseBean)
Sesimplificanlostiposdeentreprisebeans(Losentitybeansfueronremovidos)
1
Laexistenciadeinterceptoresreemplazalanecesidaddeimplementarinterfacestipocallback .
Losvalorespordefectoseempleanlomenosposible(seusalaaproximacindeconfiguracinporexcepcin).
Sereducenlosrequerimientosparaelmanejodeexcepciones
ComocontrapuntoseintroducenenEJB3lasanotacionesdemetadatosydeinterceptorescomolassiguientes:
Lapersistenciadeentidades(EntityPersistence)fuesimplificadaysoportadaparamodelardominiosdenegocio
medianosagrandes,ademsahoraesposibleproveercontenedoresEJB3livianosquepuedenserusadosen
unacapaclientefueradelacajadelservidordeaplicaciones.
SemejoraenEJBQLelsoporteparaconsultasysentenciasSQLnativas
Seproveedeunserviciodetemporizador(TimerService)manejadoporelcontenedorEJBelmismoquepermite
ejecutarEnterpriseBeanseneventosdetiempoespecficos.
EnEJB3sepuedeusarAOPatravsdeinterceptores.
SpringFramework
El principal objetivo de Spring Framework es el constituirse en una alternativa sencilla y fcil ante EJB. La
simplificacin del desarrollo de aplicaciones y de sus respectivas pruebas (testing) es una de las claves del xito de
Spring. Este Framework se sustenta en dos caractersticas bsicas en su ncleo: Inversion de Control (Inversion of
ControlIoC)ylaProgramacinOrientadaaAspectos(Aspectorientprogramming)[11].
Usualmente,losobjetosobtienenlasreferenciasdeotrosobjetosrequeridosporsimismos(talcomoenEJB2.0
losbeansobtienenlosrecursosnecesariosusandoJNDI).Lainversindecontrolpermiteinyectarlasdependenciasen
unbeanalmomentodesucreacinusandounmanejadorexterno.Elbeanslonecesitadefinirlapropiedadrequerida
ensucdigoascomoelmtododeestablecimiento(set()method).Lafuenteprimariadelainyeccindedependencias
esunarchivodeconfiguracinenformatoXML.PorejemploproductServicenecesitarealizaralgunaoperacinsobre
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=EJB3vsSpring
2/6
18/4/2015
ComparativaentreEJB3ySpring
LaProgramacinOrientadaaAspectos(AspectOrientProgrammingAOP)permiteimplementarlamayoradelos
servicios comunes (como manejo de transacciones, seguridad, logging, etc.) que pueden ser aplicados en mltiples
componentes.EnelcasodelusodeAOPnoserequiereningnconocimientoacercadecmohansidoenmascarados
2
(wrapped )losservicios.AOPesusadaenSpring[8]para:
Proveerserviciosdeaplicacin(enterpriseservices)declarativos.Ejemplodeclararelmanejodetransacciones
Permitiralosusuarioslafacilidaddeimplementarsuspropiosaspectospersonalizados
Spring provee un nmero de servicios adicionales que son basados en IoC y AOP. Estos servicios deben ser
comparadosconsusequivalentesenEJBparapodertenerunbuencriteriodeevaluacin.
CriteriodeComparacin
El propsito de la comparacin es mostrar diferencias entre EJB y Spring. Para llegar a esta meta se han
seleccionadolossiguientescriterios
1. Manejodetransacciones(TransactionManager),lacomparacindebepermitircompararlasdiferentesclasesde
implementacindetransaccionesqueestnsoportadas
2. Oportunidadesdecriteriosdetransaccinincluidos(TransactionOpportunities),atributossoportados,nivelesde
3
isolation ),soportedetransaccionesanidadas.
3. Manejodeentidadesdepersistencia(EntityPersistente)quepermitanevaluarfuncionalidadparapersistenciade
objetosObjectRelationalMappings(ORM)
4. AOP(Interceptors)muestrancomoseproveefuncionalidadparaprogramacinorientadaaaspectos
5. Configuracin de aplicaciones (Application Configuration), la posibilidad de instalar la configuracin de la
aplicacinyserviciosdeclarativos
6. Seguridad(Security)lacomparacinmuestracomoseofrecendiferentesnivelesdeseguridad.
7. Flexibilidaddeservicios(ServiceFlexibility),evaluarlaposibilidaddereemplazarserviciosporotros
8. Serviciosdeintegracin(ServiceIntegration),detectalasfacilidadesdeintegracinenespecialconlosservidores
deaplicaciones.
9. Funcionalidadadicional(AdditionalFunctionality),describefuncionalidadadicionalprovistaporelframework,
10. Criterios para testing (Testability Criterion), en este criterio se analiza la facilidad para realizar test en forma
conjuntaydetodosloscomponentesporseparado.
11. Madurez de la tecnologa y soporte (Technology Maturity and support). Este criterio analiza la madurez del
productoysilacompaaofrecesoporteparaelmismo.
12. Precio(Price),posibleprecioycostosasociadosdelproducto.
13. Documentacin (Documentation), investiga si se provee de documentacin, ejemplos y de soporte para los
mismos.
Cadacriteriofueevaluadoenunrangodesde0.0(nosoportado)a1.0(completamentesoportado)
Elresultadodelacomparacinsemuestraenlasiguientetabla:
Nota
EJB3.
SpringFramework
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=EJB3vsSpring
Nota
3/6
18/4/2015
0.7
ComparativaentreEJB3ySpring
ManejodeTransacciones(TransactionManager)
SlosesoportaJTATransactionManager.Esteeselmanejadorde
transaccionesqueseusaenformaprimariaenlasaplicacionesde
negocio.
0.6
OportunidaddeTransacciones(TransactionOpportunities)
0.9
0.9
PersistenciadeEntidades(EntityPersistente)
0.8
0.7
LacalificacinpareceserunpocosesgadaafavordeEJB3,desde
mi perspectiva la nota debera ser inversa. Simplemente Spring
provee una mayor diversidad de alternativas para el manejo de
persistencia.
1.0
ProgramacinOrientadaaAspectos[AOP(Interceptors)]
1.0
0.9
0.9
0.6
FlexibilidaddeServicios(Servicesflexibility)
DependedelaimplementacindeEJB.Sielservidorproveeuna
estructura modular entonces slo se requieren los servicios que
estepuedeusar.
1.0
CualquierserviciopuedeserensambladousandounarchivoXML
deconfiguracin
IntegracindeServicios(ServicesIntegration)
ElservidordeaplicacionescontieneunaimplementacindeEJBy
tienelaoportunidaddeoptimizarrendimiento.Existesoportepara
clustering
0.8
Seguridad(Security)
0.7
Configuracindelaaplicacin(Applicationconfiguration)
Usaanotacionesdemetadatosenformaprimaria,peroesposible
sobrescribirlaseneldescriptordedespliegue
0.9
0.7
Enestepuntonoestoydeacuerdoconlosautoresoriginalesdel
artculo,sibienesciertoSpringnoestprevistoparahacerusode
todaslasfacilidadesdeunservidordeaplicaciones,setratadeun
framework abierto que puede ser fcilmente integrado con otros
frameworks y adicionalmente una aplicacin Spring puede ser
publicadaencualquierservidordeaplicacionesdelmercado.
N/A
FuncionalidadAdicional(AdditionalFunctionality)
N/A
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=EJB3vsSpring
4/6
18/4/2015
0.8
ComparativaentreEJB3ySpring
Testeo(Testability)
0.7
1.0
Todosloscomponentespuedensertesteadosfueradelcontenedor
MadurezdelaTecnologaySoporte(Technologymaturity,support)
0.6
0.3
Precio(Price)
Primariamentelosproductossonpagos,laimplementacindeEJB
deJBOSSesgratuita
0.9
ProductosOpenSourcesongratuitos.
0.8
Documentacin(Documentation)
0.5
LosresultadosdelacomparacinmuestranqueSpringFrameworkesespecialmentepreferibleparausarseen
compaas pequeas, en conjunto con otros productos OpenSource. Es un framework muy simple, conveniente y
flexible,perolamismotiempomuypoderoso.SerecomiendaelusodeSpringenloscasosdondeuncontenedorde
aplicacionespesadonoesnecesario.
En el otro extremo EJB 3 puede ser utilizado por compaas cuyo plan de mantenimiento de aplicaciones
basadas en EJB es un compromiso a largo tiempo y buscan que las nuevas versiones de una aplicacin sean por
completo compatibles con las versiones anteriores. La integracin de EJB con el servidor de aplicaciones provee
grandesoportunidadesenescalamiento,yoptimizacindelprogramadedesarrollo.
Fuente:
"Comparative Analysis of EJB3 and Spring Framework", Janis Graudins, Larissa Zaitseva, Documento original
publicadoenlasiguientedireccinhttp://ecet.ecs.ru.acad.bg/cst06/Docs/cp/SIII/IIIA.18.pdf
Referenciasdeldocumentooriginal:
[1] L. DeMichiel, "Enterprise JavaBeans Specification, Version 2.1", [Online document], Sun Microsystems,
November12,2003,646pages,AvailableatHTTP:http://java.sun.com/products/ejb/docs.html
[2] L. DeMichiel, M. Keith "JSR 220: Enterprise JavaBeans, Version 3.0. EJB 3.0 Simplified API", [Online
document], Sun Microsystems, December 18, 2005, 59 pages, Available at HTTP:
http://jcp.org/aboutJava/communityprocess/pfd/jsr220/index.html
[3]L.DeMichiel,M.Keith"JSR220:EnterpriseJavaBeans,Version3.0.EJBCoreContractsandRequirements",
[Online document], Sun Microsystems, December 18, 2005, 526 pages, Available at HTTP:
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=EJB3vsSpring
5/6
18/4/2015
ComparativaentreEJB3ySpring
http://jcp.org/aboutJava/communityprocess/pfd/jsr220/index.html
[4] J. Graudins "Comparing analysis of Java application servers", Scientific proceedings of Riga Technical
University,2004,p.118"125.
[5]J.Graudins,L.Zaitseva"ApplicationServerEvaluationMethod",ProceedingsoftheInternationalConference
on Computer Systems and Technologies and Workshop for PhD Students in Computing" (CompSysTech
05),2005,p.IIIB.61"IIIB.66.
[6] J. Graudins, L. Zaitseva "Application Server Selection for definite systems class", Proceedings of 19th
International conference "Systems" for Automation of Engineering and Research" (SAER2005), 2005, p.230 "
235.
[7]S.Hamm,"Java?It'sSoNineties",[Onlinedocument],BusinessWeekOnline,December13,2005,Availableat
HTTP:http://www.businessweek.com/technology/content/dec2005/tc20051213_042973.htm
[8]R. Johnson, J. Hoeller, A. Arendsen "Spring. Java/J2EE Application Framework", [Online document], 2004
2005,290pages,AvailableatHTTP:http://www.springframework.org/documentation
[9]R.Lambert,"AnIntroductiontotheSpringFramework",[Onlinedocument],ChicagoJavaUsersGroup,June
21,2005,AvailableatHTTP:http://cjug.org/presentations/2005/June21/SpringFrameworkIntroRobLambert.ppt
[10]R.Mordani"CommonAnnotationsfortheJavaPlatform",[Onlinedocument],SunMicrosystems,October12,
2005,32pages,AvailableatHTTP:http://jcp.org/aboutJava/communityprocess/pfd/jsr250/index.html
[11]C.Walls,R.Breidenbach"SpringinAction",ManningPublications,2005,472pages
1Mecanismodeprogramacinparadevolverelcontroldelflujodelprogramaaunpuntoenparticulardelmismo,luegoderealizadauna
accindeterminada.
2Wrapped:Trminoeninglsquesignificaenvolturayqueenelcontextodeltextodenotalaaccindeenmascararuocultaruna
implementacin.
3ISOLATION:Enmanejodepersistenciaeltrminohacereferenciaagarantizarquelastransaccionesquesondependientesunasdeotrasse
grabentodasoninguna.
Acontinuacinpuedesevaluarlo:
Regstrateparaevaluarlo
Porfavor,vota+1ocomprtelositepareciinteresante
Share |
AnmateycomntanosloquepiensessobreesteTUTORIAL:
Registrateyaccedeaestayotrasventajas
EstaobraestlicenciadabajolicenciaCreativeCommonsdeReconocimientoNocomercialSinobrasderivadas2.5
IMPULSA
sinclicks
Impulsores
Comunidad
Ayuda?
0personashantradoclicksaestapgina
poweredbykarmacracy
Copyright20032015AllRightsReserved|Textolegalycondicionesdeuso|Banners|PoweredbyAutentia|Contacto
http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=EJB3vsSpring
6/6