Está en la página 1de 6

18/4/2015

ComparativaentreEJB3ySpring
EntraenAdictosatravsde

Email
Contrasea
Registrarme
Olvidmicontrasea

Entrar

Inicio

Quinessomos

Formacin

Comparadordesalarios

Nuestroslibros

Ms

Estsen:Inicio Tutoriales ComparativaentreEJB3ySpring

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

customerService, la referencia de customerService debe ser inyectada en la propiedad customer de


com.article.ProductServiceenlasiguientefigurasemuestraunejemplodecmosemapearaestaconfiguracinenel
respectivoarchivoXML:

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

JTA es una de las alternativas disponibles. Pueden usarse


diferentesORMcomoHibernate,JDO,JDBC,ODBC

OportunidaddeTransacciones(TransactionOpportunities)

Slo los atributos de una transaccin son soportados. No se


soportantransaccionesanidadas.

0.9

0.9

Soportaatributos de transaccin y diferentes niveles de isolation.


Lastransaccionesanidadassonsoportadasslosielmanejadode
transaccioneslasimplementa.

PersistenciadeEntidades(EntityPersistente)

Definesu propio manejo de persistencia, posibilidad de emplear


anotaciones en ORM, EJB QL y sentencias SQL nativas, adems
deintegracinconHibernate

0.8

0.7

Usaimplementaciones ORM de terceros como Hibernate, IBATIS,


JDO,OJB.

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)]

Interceptorespor defecto pueden ser especificados y aplicados a


todos los componentes, interceptores de callback, Los
interceptorespuedenser implementados en la misma clase o en
una clase separada. Pueden ser seteados (establecidos) usnado
anotacioneseneldescriptordedespliegue.

1.0

0.9

0.9

0.6

Provee integracin con la solucin Open Source Acegi Security


Framework,elmismoquesoportaseguridaddeclarativabasadaen
elusodeIoCyAOP.

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

En forma primaria se usan archivos XML de configuracin,


posibilidaddeusarJakartaCommonsAttributeslasanotaciones
J2SEestndares

Seguridad(Security)

Soporta seguridad declarativa por medio de anotaciones de


metadatosydeclaracioneseneldescriptordedespliegue

0.7

Provee servicios de aplicacin en forma declarativa, aspectos


personalizadospuedenserdefinidos.

Configuracindelaaplicacin(Applicationconfiguration)

Usaanotacionesdemetadatosenformaprimaria,peroesposible
sobrescribirlaseneldescriptordedespliegue

0.9

0.7

Spring Framework es desarrollado en forma separada de un


servidor de aplicaciones y resulta ms dificultoso optimizar su
integracin.Noseaplicasinoseusaunservidordeaplicaciones.

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)

Depende de la implementacin EJB proporcionada por el


proveedor

N/A

Proveeoportunidades de integracin con varios productos Open


Source,SpringMVC

Enambos casos el estudio debera mostrar alguna puntuacin o


mejoreliminarelcriterio.

http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=EJB3vsSpring

4/6

18/4/2015

0.8

ComparativaentreEJB3ySpring

Testeo(Testability)

La mayor parte de los componentes pueden ser testeados fuera


del contenedor, pero el servicio de contenedor de objetos slo
puede ser testeado dentro del contenedor (Por ejemplo
EntityManager)

0.7

1.0

Todosloscomponentespuedensertesteadosfueradelcontenedor

MadurezdelaTecnologaySoporte(Technologymaturity,support)

EJB es un estndar, creado por expertos que provienen de


diferentes proveedores (incluidos Oracle, BEA, IBM) y en sus
implementaciones son completamente compatibles. El estndar
comotalsemantienenicamenteenestadoPFD

0.6

La tecnologa de OpenSource es soportada por Interface21. Es


relativamentemadura(2aosdesdelaliberacin1.0),peronoes
unestndar.

Tampoco parece ser una justificacin del todo valedera, pues el


nmerodeproyectosyporendeelnmerodedesarrolladorescon
experienciaenSpringes,porahora,mayoraldeEJB3yportanto
hayunamayoraplicacinymadurezenestatecnologa.

0.3

Precio(Price)

Primariamentelosproductossonpagos,laimplementacindeEJB
deJBOSSesgratuita

0.9

ProductosOpenSourcesongratuitos.

El criterio como tal no parece estar bien empleado, el que un


producto tengo 0 costo no implica que por eso deba tener una
mejorpuntuacineneserubro.

0.8

Documentacin(Documentation)

Los diferentes proveedores producen excelente y extensa


documentacin.Se presentan varios ejemplos. Y los vendedores
danelsoportedelcaso

0.5

La documentacin en formato Javadoc no contiene todos los


detallestcnicos,pocosejemplosdetallados.

La documentacin de algunos proveedores no es tan completa


como podra esperarse, especialmente si hay una paga de por
medioenelservicio.

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

También podría gustarte