SlideShare una empresa de Scribd logo
1 de 54
Descargar para leer sin conexión
Introduciéndose en el mundo
de Java EE
Martín Pérez Mariñán
I Jornada de Tecnologías Java, Alicante, 12/05/2006
2
Sobre la compañía
L a s e g u n d a c o m p a ñ ía e s p a ñ o la
in d e p e n d ie n t e d e c o n s u lt o r ía y
s e r v ic io s d e I T
3
Sobre el autor
 Martín Pérez Mariñán es Ingeniero de sistemas por la Universidad
de A Coruña.
 Actualmente trabaja como desarrollador J2EE para IT Deusto dentro
del Complejo Hospitalario Universitario Juan Canalejo de A Coruña
desarrollando aplicaciones de gestión de costes sobre IBM
WebSphere e IBM Informix.
 Es Sun Certified Java Programmer, Sun Certified Java Developer y
Sun Certified Business Component Developer
 Martín es el creador de jLibrary (http://jlibrary.sourceforge.net), una
herramienta de gestión de documentación Open Source desarrollada
sobre Eclipse RCP y el Apache Jackrabbit (JSR-170). Este proyecto
le ha supuesto nominaciones para eventos internacionales como
EclipseCon 2006 o los JAX Innovation Awards.
4
Sobre esta presentación
 La universidad es una excelente herramienta de modelado de
mentes, pero en cierto modo te esconde del mundo exterior.
Todos nos hemos preguntado al estar ahí
 ¿Qué voy a hacer al salir?
 ¿Qué hacen las empresas fuera?
 ¿Qué perfiles piden?
 ¿Cómo se hace un proyecto del mundo real?
 ¿Cuánto pagan?
 ¿Vale la pena escoger esta tecnología?
 Ninguna de estas preguntas tiene un respuesta fija o directa.
Esta presentación pretende ser una pequeña guía para que
tengáis algo más claras las posibles respuestas cuando
hablamos de Java EE (J2EE).
5
Índice
1.Las posibilidades
2.Estado de salud de J2EE
3.Lo último: Java EE 5
4.Modelos y tendencias de desarrollo
5.Conclusiones
Las posibilidades
7
Las posibilidades
● Los entornos de trabajo en los días actuales están bastante
claros:
● J2EE
● Microsoft .NET
● A menor escala pero muy común en sistemas Open Source:
● LAMP ( Linux + Apache + MySQL + Perl o PHP o Python )
● Lo más de moda:
● Ruby
● Ruby on Rails
● Sistemas de gestión:
● Siebel, SAP, ...
● Otros frameworks propios de compañías y lenguajes menores
8
Las posibilidades: Java EE
● Java EE o J2EE o JEE
● Es probablemente la solución más completa en cuanto a
arquitectura, escalabilidad, patrones, metodologías, etc.
● Enorme soporte de fabricantes: Sun, IBM, Oracle, BEA,
RedHat, SAP, Siebel, Compuware, Sybase, ...
● Gobernada por un sistema de especificaciones y un
organismo coordinador, el JCP.
● Las especificaciones van evolucionando. Diferentes empresas
participan en su evolución bajo un sistema democrático de
votaciones. No hay vetos.
9
Las posibilidades: Java EE
file:///Users/domingo/Documents/Proyectos/Jornadas%20JAVA%202006/Charlas/overview-j2eeArchitecture.gif
Estado de Salud de Java EE
11
Las posibilidades: Java EE
● El estado de salud en España es excelente
● No sólo ha copado las grandes empresas y administraciones
públicas sino también poco a poco las medianas empresas
● Influencia de universidades
● Mayor rendimiento en los contenedores
● Muchísimas más posibilidades
● Despliegues desde 0€
● Rendimiento cada vez mejor en el escritorio
● Bendecido por la administración pública
● Hace tres o cuatro años se premonizaba el fin con .NET...
● ... sin embargo el uso de J2EE sigue y sigue aumentando
12
Estado de Salud de Java EE
 Una de las medidas más subjetivas, inválidas desde el punto teórico,
pero muy efectivas desde el punto de vista práctico es ver el impacto
en buscadores de empleo.
 Una búsqueda muy rápida sobre Infojobs.net (1 mes de antigüedad)
refleja lo siguiente:
 Java: 1622 ofertas
 J2EE: 781 ofertas
 Microsoft: 1167 ofertas
 ASP: 1012 ofertas
 JSP: 332 ofertas
 http://www.itjobswatch.co.uk/ Proporciona cifras analíticas más
interesantes sobre la salud de tecnologías en UK.
13
Estado de salud de Java EE
14
15
16
17
18
19
Estado de Salud de Java EE
 Algunas conclusiones:
 En UK se cobra más :-)
 Las tecnologías concretas se pagan mejor que tecnologías más
comunes.
 En general el mundo Java y J2EE está mucho mejor pagado que el
mundo .NET
 Sin embargo, el entorno Microsoft presenta muchas más ofertas.
 El mercado de XML y Servicios Web también es interesante.
 Las tecnologías web (asp, jsp) parecen estar peor pagadas que las de
escritorio (swing).
Lo último: Java EE 5.0
21
Java EE 5.0: Historia
J a v a E E 5
M a y o , 2 0 0 6
L a m a y o r r e v is ió n d e s d e J 2 E E 1 . 3 . C a m b io d e n o m b r e . C a m b io c o m p le t o e n
e l m o d e lo d e E J B s . M á s f á c i le s , n u e v o m o d e lo d e p e r s is t e n c ia . I n t r o d u c c ió n
d e a n o t a c io n e s e n t o d o s lo s c o m p o n e n t e s , in y e c c ió n d e d e p e n d e n c ia s y
c o n c e p t o s d e A O P . A p a r e c e J a v a S e r v e r F a c e s . S t r e a m in g X M L .
J S P 2 . 1 , S e r v le t s 2 . 5 , E J B 3 . 0 , J C A 1 . 5 , J A X - W S 2 . 0 , J A X - R P C 1 . 1 , J A X B
2 . 0 , S t A X , J a v a S e r v e r F a c e s 1 . 0
J 2 E E 1 . 4
A b r i l, 2 0 0 4
R e v is ió n m e n o r . M e jo r a s m e n o r e s e n E J B c o m o t im e r s , m e jo r a s e n E J B - Q L ,
e t c . S o p o r t e d e s e r v ic io s w e b y e n d p o in t s . S o p o r t e d e l W S - I B a s ic P r o f i le .
N u e v o le n g u a je d e e x p r e s io n e s p a r a J S P . E x t e n s io n e s d e g e s t ió n J M X .
E s e l e s t á n d a r a c t u a l e n la s ú lt im a s v e r s io n e s d e s e r v id o r e s d e a p lic a c io n e s :
jb o s s 4 , W e b S p h e r e 6 . 0 , W e b L o g ic 9 . 1 , A p a c h e G e r o n im o 1 . 0 , . ..
J S P 2 . 0 , S e r v le t s 2 . 4 , E J B 2 . 1 , J C A 1 . 5 , J M S 1 . 1 , J D B C 3 . 0 , J a v a M a i l 1 . 3 ,
J M X 1 . 0 , J A X P 1 . 2 , J A X R 1 . 0 , J A X - R P C 1 . 1 , S A A J 1 . 1
J 2 E E 1 . 3
O c t u b r e , 2 0 0 1
R e v is ió n im p o r t a n t e . R e n o v a d o e l m o d e lo d e c o m p o n e n t e s d e E J B . C M P
2 . 0 . A u m e n t o e n o r m e d e r e n d i m ie n t o d e E J B s . I n t e r f a c e s lo c a le s . B e a n s d e
m e n s a je r ía . S im p l i f ic a c ió n d e c o n c e p t o s . F ilt r o s d e S e r v le t , m e jo r a s e n e l
s o p o r t e d e c u s t o m t a g s e n J S P . S o p o r t e b á s ic o d e X M L .
E s t o d a v ía u n a e s p e c if ic a c ió n m u y u t il iz a d a y t u v o u n g r a n é x it o .
J S P 1 . 2 , S e r v le t s 2 . 3 , E J B 2 . 0 , J C A 1 . 0 , J M S 1 . 0 , J D B C 3 . 0 , J a v a M a i l 1 . 2 ,
J A X P , .. .
J 2 E E 1 . 2
D ic ie m b r e , 1 9 9 9
P r im e r a v e r s ió n s e r ia . M u c h o s p r o b le m a s d e r e n d i m ie n t o y p e r s is t e n c ia c o n
lo s E J B . P r á c t ic a m e n t e s ó lo u s a b le s lo s c o m p o n e n t e s w e b .
J S P 1 . 1 , S e r v le t s 2 . 2 , E J B 1 . 1 , J C A 1 . 0 , J D B C 3 . 0 , J a v a M a i l 1 . 1 , . ..
22
Java EE 5.0
 Java EE 5.0 es la última versión de lo que siempre se ha conocido
como J2EE.
 El principal objetivo es la facilidad de desarrollo:
 Siempre ha sido complicado hacer aplicaciones en J2EE. Era necesaria
una solución.
 Menos código que escribir.
 Valores por defecto.
 Usto extensivo de anotaciones en todos los componentes.
 Inyección de dependencias
 La principal novedad es EJB 3.0
 Adopción del modelo de POJOs.
 Nueva API de persistencia.
 Utilizable fuera de servidores de aplicaciones.
23
Java EE 5.0
 Construcción más sencilla de aplicaciones web
 Soporte de Java Server Faces.
 Mejor integración con herramientas de desarrollo.
 Mejoras en JSTL.
 Soporte de Web 2.0 y AJAX
 Soporte mejorado de servicios web
 Despliegue más sencillo
 Añade las últimas APIs
 ¿Puede empezar?
 Todavía no hay servidores que soporten esta especificación ya que se
aprobó hace unos días.
 Hay versiones beta de varios servidores y servidores que ofrecen parte
de las funcionalidades.
24
Java EE 5.0
 Tabla de servidores:
S e r v i d o r e s d e a p l i c a c i o n e s O p e n S o u r c e
S e r v i d o r d e a p l i c a c i o n e s V e r s i ó n d e J 2 E E s o p o r t a d a
A p a c h e G e r o n im o 1 . 0 J 2 E E 1 . 4
jb o s s 4 . 0 . 4 J 2 E E 1 . 4 , d is p o n ib le p lu g - in E J B 3 . 0
J O n A S 4 . 7 . 1 J 2 E E 1 . 4 , d is p o n ib le p lu g - in E J B 3 . 0
G la s s f is h M i l e s t o n e 6 J a v a E E 5
S e r v i d o r e s d e a p l i c a c i o n e s n o O p e n S o u r c e
S e r v i d o r d e a p l i c a c i o n e s V e r s i ó n d e J 2 E E s o p o r t a d a
O r a c le A p p l ic a t io n S e r v e r 1 0 g J 2 E E 1 . 4 , d is p o n ib le p lu g - in E J B 3 . 0
I B M W e b S p h e r e J 2 E E 1 . 4
W e b S p h e r e A p p l ic a t io n S e r v e r
C o m m u n it y E d it io n 1 . 0 ( b a s a d o e n A p a c h e
G e r o n im o )
J 2 E E 1 . 4
B E A W e b L o g ic 9 . 1 J 2 E E 1 . 4
25
Java EE 5.0: Java Server Faces
 Especificación que define un framework web para la creación de
aplicaciones.
 Gestión de componentes gráficos.
 Manejo de eventos en el servidor.
 Validación de entradas.
 Asociación entre el modelo de datos y el interfaz de usuario.
 Gestión del flujo entre páginas.
 Sistema de renderización independiente de la web.
 Alternativa a Struts y otros frameworks.
 El colíder de la especificación es Craig McClanahan, autor de Struts.
 Ventajas frente a otros frameworks
 Estándar
 Gran soporte por parte de la industria y fabricantes. Es difícil que te den
soporte de Spring o Struts pero te lo darán de JSF.
 Muchas herramientas de diseño gráfico y desarrollo disponibles.
26
Java EE 5.0: Java Server Faces
 IDEs: MyEclipse, Sun Java Studio, Borland Jbuilder, Oracle
Jdeveloper, IBM Rational Application Developer, ...
 Respuesta al desarrollo rápido de aplicaciones en ASP .NET
 Shale, la evolución de Struts, se fundamente sobre JSF
 La tendencia ahora mismo es crear componentes JSF con soporte
de AJAX.
 El problema de la especificación es que define sólo los componentes
más básicos. Lo más complejo es una tabla.
 Se hace necesario buscar frameworks más completos. Ej: MyFaces,
Oracle ADF Faces, ...
 Surge también un mercado de componentes. Ej: AjaxFaces.
27
Java EE 5.0: Java Server Faces
<t:inputHtml value="String"
style="CSSClass"
fallback="{true|false}"
type="Constant"
allowExternalLinks="{true|false}"
addKupuLogo="{true|false}"
showAllToolBoxes="{true|false}"
allowEditSource="{true|false}"
showPropertiesToolBox="{true|false}"
showLinksToolBox="{true|false}"
showImagesToolBox="{true|false}"
showTablesToolBox="{true|false}"
showDebugToolBox="{true|false}"
showCleanupExpressionsToolBox="{true|false}"/>
Editor de texto en MyFacesEditor de texto en MyFaces
28
Java EE 5.0: Java Server Faces
Árbol de MyFacesÁrbol de MyFaces
<t:tree2 value="TreeModel"
var="String"
varNodeToggler="String">
...(anyComponent)...
</t:tree2>
29
Java EE 5.0: Java Server Faces
Menús en MyFacesMenús en MyFaces
<t:jscookMenu [ user-role-support-attributes ]
[layout="values {hbr, hbl, hur, hul, vbr, vbl, vur, vul}"]
[theme="values {ThemeIE, ThemeMiniBlack, ThemeOffice, ThemePanel}"]
Nested <t:navigationMenuItem> or <t:navigationMenuItems> tags (menu items)
</t:jscookMenu>
30
Java EE 5.0: Java Server Faces
MyEclipse y JSFMyEclipse y JSF
31
Java EE 5.0: Java Server Faces
Oracle JDeveloper y JSFOracle JDeveloper y JSF
32
Java EE 5.0: EJB 3.0
 Nueva API de persistencia
 Se separa la persistencia de los componentes de negocio
 Modelo de persistencia basado en POJOs y POJIs
 CMP Simplificada
 Es utilizable tanto en J2SE como en J2EE
 Influencias de Hibernate, TopLink y JDO
 Anotaciones
 Simplificación en el desarrollo
 Mejor integración con herramientas de desarrollo
 Influencias de Xdoclet
33
Java EE 5.0: EJB 3.0
Ejemplo deEjemplo de
anotaciones:anotaciones:
Relaciones CMPRelaciones CMP
@Entity
public class Empleado {
private Cubiculo cubiculoAsignado;
@OneToOne
public Cubiculo getCubiculoAsignado() {
return cubiculoAsignado;
}
public setCubiculoAsignado(Cubiculo cubiculo) {
this.cubiculoAsignado = cubiculo;
}
}
34
Java EE 5.0: EJB 3.0
@Entity
@Table (name=”empleados”)
@Inheritance (strategy=JOINED)
public abstract class Empleado {
@Id protected Integer idEmpleado;
@Version protected Integer version;
@ManyToOne protected Direccion direccion;
}
@Entity
@Table(name=”empleados_fijos”)
@DiscriminatorValue=(“FI”)
@PrimaryKeyJoinColumn(name=”FI_idemp”)
public class EmpleadoFijo extends Empleado {
protected Integer salario;
public Integer getSalario() { return salario; }
}
AnotacionesAnotaciones
Mejora en el modelo deMejora en el modelo de
persistencia: Herenciapersistencia: Herencia
35
Java EE 5.0: EJB 3.0
@Stateless public class FacturasBean {
@PersistenceContext EntityManager manager;
public void introducirFactura(int idClient, Factura factura) {
Client cliente = manager.find(Cliente.class, idCliente);
cliente.getFacturas().add(factura);
factura.setCliente(cliente);
}
}
Uso del EntityUso del Entity
ManagerManager
Muy similar a las Session de HibernateMuy similar a las Session de Hibernate
36
Java EE 5.0
 Inyección de dependencias
 También conocido como IoC (Inversión de control)
 No es el usuario el que busca los recursos.
 El contenedor se los inyecta automáticamente.
 Ya no es necesario realizar las farragosas llamadas JNDI.
 El código se simplifica y es menos propenso a errores.
 Influencias de contenedores lightweight como Spring.
37
Java EE 5.0: EJB 3.0
<ejb-local-ref>
<ejb-ref-name>ejb/HolaAlicante</ejb-ref-name>
<local>org.jtech.HolaAlicanteBean</local>
</ejb-local-ref>
Context context = new InitialContext();
HolaAlicante bean (HolaAlicante)
context.lookup(“java:comp/env/ejb/HolaAlicanteBean”);
AntesAntes
@EJB(name=”HolaAlicante”)
private HolaAlicante myEJB;
Ahora.Ahora.
La dependencia se inyecta. No hayLa dependencia se inyecta. No hay
que buscar el EJB.que buscar el EJB.
38
Java EE 5.0
 Intercepción (Interceptors)
 Permiten al desarrollador un mayor control sobre el flujo de sus
programas.
 Se llaman antes y después de la invocación a un método.
 Se aplican a todos los métodos de negocio de un EJB.
 Permiten modificar valores de entrada a métodos.
 Permiten modificar valores de retorno.
 Gestionar las excepciones.
 Interrumpir llamadas completamente.
 Realizar análisis y optimización de métodos.
 Influencias de AOP.
 etc.
39
Java EE 5.0
@Stateless
@WebService
@Interceptors( { Interceptor2.class })
public class HelloWorldBean {
@Interceptors( { Interceptor1.class })
@WebMethod
public String sayHello() {
return "Hello";
}
@WebMethod
public String sayHi() {
return "Hi";
}
@AroundInvoke
public Object log(InvocationContext invocationContext) throws Exception {
System.err.println(invocationContext.getMethod().getName() + " called from interceptor 3");
return invocationContext.proceed();
}
}
Uso de los interceptores. Uno a nivelUso de los interceptores. Uno a nivel
de EJB y otro a nivel de métodode EJB y otro a nivel de método
40
Java EE 5.0
public class Interceptor1 {
@AroundInvoke
public Object log(InvocationContext invocationContext) throws Exception {
System.err.println(invocationContext.getMethod().getName() + " called from
interceptor 1");
return invocationContext.proceed();
}
}
public class Interceptor2 {
@AroundInvoke
public Object log(InvocationContext invocationContext) throws Exception {
System.err.println(invocationContext.getMethod().getName() + " called from
interceptor 2");
return invocationContext.proceed();
}
}
Declaración de losDeclaración de los
interceptoresinterceptores
41
Java EE 5.0
 Simplificación
 API de persistencia (ya visto)
 Metadatos. (ya visto)
 Inyección de dependencias (ya visto)
 Eliminación de las interfaces de componente e interfaces home. Todo se
autogenera a partir de las anotaciones.
 Valores por defecto en la configuración.
 Reducción del uso de excepciones chequeadas.
Modelos y tendencias de
desarrollo
43
Java EE 5.0
 Modelos ágiles de desarrollo con Java EE
 Antes complicado. Infraestructura compleja. Difícil testabilidad.
 Ahora se abren nuevas perspectivas:
 APIs más sencillas
 Contenedores ligeros
 Herramientas de pruebas más evolucionadas: bases de datos, interfaces de
usuario, componentes web, etc.
 Aceptación del cambio
 Refactorización
 El cliente puede modificar los requisitos, renegociación
 Buscar la simplicidad
 TDD: Test Driven Development
44
Modelos y tendencias de desarollo
 Con el paso de los años se ha impuesto un modelo de desarrollo
orientado a los frameworks.
 Un framework te ofrece una base de desarrollo y servicios listos para
utilizar.
 No hay necesidad de invertir tiempo, dinero y recursos en reinventar la
rueda.
 Las compañías prefieren estándares oficiales (Java Server Faces) o
estándares de facto (Struts, Spring, Hibernate).
 Los desarrolladores pueden centrarse en construir funcionalidades sobre
los frameworks.
 Los frameworks-de-casa están en declive
 Demasiado trabajo para hacer siempre lo mismo
 Es dificíl ofrecer servicios sobre algo no estándar. [jLibrary]
 Es difícil encontrar gente que extienda los sistemas. [javahispano]
 Los frameworks con éxito han influenciado muchísimo en J2EE.
 Ej: Hibernate, Struts, ...
45
Modelos y tendencias de desarrollo
 La tendencia es a construir stacks completos sobre Open Source
 Los frameworks propietarios prácticamente han desaparecido
 ¿Quién va a utilizar frameworks de pago con lo que hay actualmente?
 Las grandes empresas están liberando sus frameworks
 Ej: Oracle ADF (Java Server Faces)
 Ej: BEA, XMLBeans, KODO, ...
 Existen frameworks excelentes cubriendo todas las partes del
desarrollo empresarial
 Hubo gente que predijo el caos debido a la variedad de frameworks
 El mundo del Open Source se ha mostrado muy efectivo. Todos han
ganado.
 Las empresas ya no venden frameworks, venden soporte, formación
y servicios. Ej: Spring (Apache License) e Interface21.
46
Modelos y tendencias de desarollo
Navegador
Web
Java
Server
Faces
Web
Services
Stack
Servlets
JSP
Componentes
EJB
Persistence
Manager
API
AJAX
SOAP
REST
BBDD
Tendencia propuesta por las specs.Tendencia propuesta por las specs.
47
Modelos y tendencias de desarollo
 Pero también hay críticas a las especificaciones:
 Casi todas provienen de las comunidades de frameworks más afectados
por la especificación.
 Sobre todo Spring.
 Críticas a la inyección de dependencias e interceptores.
 AOP no aparece realmente como un actor de primer nivel. El soporte es
muy light.
 La comunidad JDO también clama su superioridad.
 La realidad es que los frameworks siempre van a ser más
específicos que el estándar que tiene que mantenerse más neutral.
 El estándar se muestra fantástico para situaciones habituales.
 Hay hueco para todo:
 Siempre es una buena elección seguir el estándar...
 ... pero habrá ocasiones en que será necesaria más flexibilidad.
48
Modelos y tendencias de desarollo
Navegador
Web
MyFaces
Web
Services
Stack
Servlets
JSP
Spring
Framework
Hibernate
JDO
AJAX
SOAP
REST
BBDD
Posible variación utilizando frameworksPosible variación utilizando frameworks
alternativos.alternativos.
49
Java EE 5.0
 Ventajas
 La especificación Java Server Faces ofrece pocos componentes.
MyFaces ofrece muchos más, pero no estándar.
 Spring se presenta como un framework de gran potencia.
 Permite aprovechar al máximo el contenedor de IoC y la programación
orientada a aspectos.
 Ofrece un contenedor ligero para la ejecución de aplicaciones sin la
carga de un stack completo Java EE.
 Hibernate está disponible y tiene una gran comunidad. No hay que
esperar a que los servidores lo soporten
 JDO ofrece funcionalidades no presentes en EJB
50
Java EE 5.0
 Desventajas
 Muchos componentes no estándar: Spring, Hibernate, etc.
 Alta probabilidad de quedarse atado a un framework o producto.
 Se pierde toda la potencia extra de Java EE: timers, mensajería, soporte
implícito de servicios web, etc.
 A más número de frameworks más necesidades de formación extra.
 A veces surgen complejidades para la integración de diferentes
frameworks. En un stack estándar todo viene ya preparado.
 El nuevo API de persistencia cubre la mayor parte de necesidades de un
proyecto.
 JDO tiene mayor complejidad.
51
Java EE 5.0
 ¿Cuál escojo entonces?
¿?
Modelos y tendencias de
desarrollo
53
Conclusiones
 Conclusiones
 J2EE es una plataforma muy saludable. Una buena salida profesional en
todos los sentidos: salario, aprendizaje, experiencia, ...
 Java EE 5 promete traer muchos cambios al desarrollo con J2EE.
 Java EE 5 busca simplificar el desarrollo en J2EE que tradicionalmente
ha sido muy complejo.
 El desarrollo con EJBs ha evolucionado. Más fácil, más flexible, más
potente.
 Los modelos ágiles de desarrollos e han enraizado en J2EE.
 Java EE es una especificación realmente fuerte que amenaza la
supervivencia de muchos frameworks. Compentencia. Beneficio para
todos.
 La tendencia es el desarrollo contra frameworks.
 La tendencia es el desarrollo con componentes Open Source.
54
Java EE 5.0
Gracias
y
mucha suerte

Más contenido relacionado

Similar a Introduccion jee

Morrin lenguaje java
Morrin     lenguaje javaMorrin     lenguaje java
Morrin lenguaje javaRAPDANIS
 
ABP - Aprendizaje Basado en problemas frente a la Clase Magistral en la enseñ...
ABP - Aprendizaje Basado en problemas frente a la Clase Magistral en la enseñ...ABP - Aprendizaje Basado en problemas frente a la Clase Magistral en la enseñ...
ABP - Aprendizaje Basado en problemas frente a la Clase Magistral en la enseñ...minideg
 
Josue cortes portafolio
Josue cortes portafolioJosue cortes portafolio
Josue cortes portafolioJosueacc
 
20150302_Infoday regional H2020_SME Instrument_Vicente Rodilla
20150302_Infoday regional H2020_SME Instrument_Vicente Rodilla20150302_Infoday regional H2020_SME Instrument_Vicente Rodilla
20150302_Infoday regional H2020_SME Instrument_Vicente RodillaRedit
 
20150226_Infoday H2020_Energía_Vicente Rodilla
20150226_Infoday H2020_Energía_Vicente Rodilla20150226_Infoday H2020_Energía_Vicente Rodilla
20150226_Infoday H2020_Energía_Vicente RodillaRedit
 
Guía alumno profesor
Guía alumno profesorGuía alumno profesor
Guía alumno profesorLoreS84
 
Raz. mat. iii bim ok nivel 1
Raz. mat. iii bim ok nivel 1Raz. mat. iii bim ok nivel 1
Raz. mat. iii bim ok nivel 1lavictoria2012
 
Caries dental y ecología bucal, aspectos importantes
Caries dental y ecología bucal, aspectos importantesCaries dental y ecología bucal, aspectos importantes
Caries dental y ecología bucal, aspectos importantesAlejandra Blanco
 
Joce (tic´s) 2
Joce (tic´s) 2Joce (tic´s) 2
Joce (tic´s) 2Jc1702n
 

Similar a Introduccion jee (20)

Morrin lenguaje java
Morrin     lenguaje javaMorrin     lenguaje java
Morrin lenguaje java
 
Nuevas tecnologías en Java
Nuevas tecnologías en JavaNuevas tecnologías en Java
Nuevas tecnologías en Java
 
ABP - Aprendizaje Basado en problemas frente a la Clase Magistral en la enseñ...
ABP - Aprendizaje Basado en problemas frente a la Clase Magistral en la enseñ...ABP - Aprendizaje Basado en problemas frente a la Clase Magistral en la enseñ...
ABP - Aprendizaje Basado en problemas frente a la Clase Magistral en la enseñ...
 
Folleto cofaso
Folleto cofasoFolleto cofaso
Folleto cofaso
 
Parte 4
Parte 4Parte 4
Parte 4
 
Josue cortes portafolio
Josue cortes portafolioJosue cortes portafolio
Josue cortes portafolio
 
20150302_Infoday regional H2020_SME Instrument_Vicente Rodilla
20150302_Infoday regional H2020_SME Instrument_Vicente Rodilla20150302_Infoday regional H2020_SME Instrument_Vicente Rodilla
20150302_Infoday regional H2020_SME Instrument_Vicente Rodilla
 
20150226_Infoday H2020_Energía_Vicente Rodilla
20150226_Infoday H2020_Energía_Vicente Rodilla20150226_Infoday H2020_Energía_Vicente Rodilla
20150226_Infoday H2020_Energía_Vicente Rodilla
 
Presentación.pptx
Presentación.pptxPresentación.pptx
Presentación.pptx
 
Guía alumno profesor
Guía alumno profesorGuía alumno profesor
Guía alumno profesor
 
Presentación.pdf
Presentación.pdfPresentación.pdf
Presentación.pdf
 
Plantillasoftmov
PlantillasoftmovPlantillasoftmov
Plantillasoftmov
 
Wechat
WechatWechat
Wechat
 
Enfoques de analitica web
Enfoques de analitica webEnfoques de analitica web
Enfoques de analitica web
 
Raz. mat. iii bim ok nivel 1
Raz. mat. iii bim ok nivel 1Raz. mat. iii bim ok nivel 1
Raz. mat. iii bim ok nivel 1
 
Caries dental y ecología bucal, aspectos importantes
Caries dental y ecología bucal, aspectos importantesCaries dental y ecología bucal, aspectos importantes
Caries dental y ecología bucal, aspectos importantes
 
Joce (tic´s) 2
Joce (tic´s) 2Joce (tic´s) 2
Joce (tic´s) 2
 
Presentación los virus
Presentación los virusPresentación los virus
Presentación los virus
 
Formatos y aplicaciones word
Formatos y aplicaciones wordFormatos y aplicaciones word
Formatos y aplicaciones word
 
Web quest
Web quest Web quest
Web quest
 

Último

Obras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónObras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónXimenaFallaLecca1
 
Calavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfCalavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfyoseka196
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSaulSantiago25
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxClaudiaPerez86192
 
clases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfclases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfDanielaVelasquez553560
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALKATHIAMILAGRITOSSANC
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfmatepura
 
nom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdfnom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdfDiegoMadrigal21
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPJosLuisFrancoCaldern
 
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfTAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfAntonioGonzalezIzqui
 
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptaCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptCRISTOFERSERGIOCANAL
 
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVEl proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVSebastianPaez47
 
hitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxhitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxMarcelaArancibiaRojo
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdfAnthonyTiclia
 
presentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctricopresentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctricoalexcala5
 
Residente de obra y sus funciones que realiza .pdf
Residente de obra y sus funciones que realiza  .pdfResidente de obra y sus funciones que realiza  .pdf
Residente de obra y sus funciones que realiza .pdfevin1703e
 
Curso intensivo de soldadura electrónica en pdf
Curso intensivo de soldadura electrónica  en pdfCurso intensivo de soldadura electrónica  en pdf
Curso intensivo de soldadura electrónica en pdfFernandaGarca788912
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)ssuser563c56
 
Falla de san andres y el gran cañon : enfoque integral
Falla de san andres y el gran cañon : enfoque integralFalla de san andres y el gran cañon : enfoque integral
Falla de san andres y el gran cañon : enfoque integralsantirangelcor
 
tema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdftema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdfvictoralejandroayala2
 

Último (20)

Obras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónObras paralizadas en el sector construcción
Obras paralizadas en el sector construcción
 
Calavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfCalavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdf
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusibles
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptx
 
clases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdfclases de dinamica ejercicios preuniversitarios.pdf
clases de dinamica ejercicios preuniversitarios.pdf
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
 
ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdf
 
nom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdfnom-028-stps-2012-nom-028-stps-2012-.pdf
nom-028-stps-2012-nom-028-stps-2012-.pdf
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
 
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdfTAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
TAREA 8 CORREDOR INTEROCEÁNICO DEL PAÍS.pdf
 
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptaCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
 
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVEl proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
 
hitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxhitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docx
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
 
presentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctricopresentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctrico
 
Residente de obra y sus funciones que realiza .pdf
Residente de obra y sus funciones que realiza  .pdfResidente de obra y sus funciones que realiza  .pdf
Residente de obra y sus funciones que realiza .pdf
 
Curso intensivo de soldadura electrónica en pdf
Curso intensivo de soldadura electrónica  en pdfCurso intensivo de soldadura electrónica  en pdf
Curso intensivo de soldadura electrónica en pdf
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
 
Falla de san andres y el gran cañon : enfoque integral
Falla de san andres y el gran cañon : enfoque integralFalla de san andres y el gran cañon : enfoque integral
Falla de san andres y el gran cañon : enfoque integral
 
tema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdftema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdf
 

Introduccion jee

  • 1. Introduciéndose en el mundo de Java EE Martín Pérez Mariñán I Jornada de Tecnologías Java, Alicante, 12/05/2006
  • 2. 2 Sobre la compañía L a s e g u n d a c o m p a ñ ía e s p a ñ o la in d e p e n d ie n t e d e c o n s u lt o r ía y s e r v ic io s d e I T
  • 3. 3 Sobre el autor  Martín Pérez Mariñán es Ingeniero de sistemas por la Universidad de A Coruña.  Actualmente trabaja como desarrollador J2EE para IT Deusto dentro del Complejo Hospitalario Universitario Juan Canalejo de A Coruña desarrollando aplicaciones de gestión de costes sobre IBM WebSphere e IBM Informix.  Es Sun Certified Java Programmer, Sun Certified Java Developer y Sun Certified Business Component Developer  Martín es el creador de jLibrary (http://jlibrary.sourceforge.net), una herramienta de gestión de documentación Open Source desarrollada sobre Eclipse RCP y el Apache Jackrabbit (JSR-170). Este proyecto le ha supuesto nominaciones para eventos internacionales como EclipseCon 2006 o los JAX Innovation Awards.
  • 4. 4 Sobre esta presentación  La universidad es una excelente herramienta de modelado de mentes, pero en cierto modo te esconde del mundo exterior. Todos nos hemos preguntado al estar ahí  ¿Qué voy a hacer al salir?  ¿Qué hacen las empresas fuera?  ¿Qué perfiles piden?  ¿Cómo se hace un proyecto del mundo real?  ¿Cuánto pagan?  ¿Vale la pena escoger esta tecnología?  Ninguna de estas preguntas tiene un respuesta fija o directa. Esta presentación pretende ser una pequeña guía para que tengáis algo más claras las posibles respuestas cuando hablamos de Java EE (J2EE).
  • 5. 5 Índice 1.Las posibilidades 2.Estado de salud de J2EE 3.Lo último: Java EE 5 4.Modelos y tendencias de desarrollo 5.Conclusiones
  • 7. 7 Las posibilidades ● Los entornos de trabajo en los días actuales están bastante claros: ● J2EE ● Microsoft .NET ● A menor escala pero muy común en sistemas Open Source: ● LAMP ( Linux + Apache + MySQL + Perl o PHP o Python ) ● Lo más de moda: ● Ruby ● Ruby on Rails ● Sistemas de gestión: ● Siebel, SAP, ... ● Otros frameworks propios de compañías y lenguajes menores
  • 8. 8 Las posibilidades: Java EE ● Java EE o J2EE o JEE ● Es probablemente la solución más completa en cuanto a arquitectura, escalabilidad, patrones, metodologías, etc. ● Enorme soporte de fabricantes: Sun, IBM, Oracle, BEA, RedHat, SAP, Siebel, Compuware, Sybase, ... ● Gobernada por un sistema de especificaciones y un organismo coordinador, el JCP. ● Las especificaciones van evolucionando. Diferentes empresas participan en su evolución bajo un sistema democrático de votaciones. No hay vetos.
  • 9. 9 Las posibilidades: Java EE file:///Users/domingo/Documents/Proyectos/Jornadas%20JAVA%202006/Charlas/overview-j2eeArchitecture.gif
  • 10. Estado de Salud de Java EE
  • 11. 11 Las posibilidades: Java EE ● El estado de salud en España es excelente ● No sólo ha copado las grandes empresas y administraciones públicas sino también poco a poco las medianas empresas ● Influencia de universidades ● Mayor rendimiento en los contenedores ● Muchísimas más posibilidades ● Despliegues desde 0€ ● Rendimiento cada vez mejor en el escritorio ● Bendecido por la administración pública ● Hace tres o cuatro años se premonizaba el fin con .NET... ● ... sin embargo el uso de J2EE sigue y sigue aumentando
  • 12. 12 Estado de Salud de Java EE  Una de las medidas más subjetivas, inválidas desde el punto teórico, pero muy efectivas desde el punto de vista práctico es ver el impacto en buscadores de empleo.  Una búsqueda muy rápida sobre Infojobs.net (1 mes de antigüedad) refleja lo siguiente:  Java: 1622 ofertas  J2EE: 781 ofertas  Microsoft: 1167 ofertas  ASP: 1012 ofertas  JSP: 332 ofertas  http://www.itjobswatch.co.uk/ Proporciona cifras analíticas más interesantes sobre la salud de tecnologías en UK.
  • 13. 13 Estado de salud de Java EE
  • 14. 14
  • 15. 15
  • 16. 16
  • 17. 17
  • 18. 18
  • 19. 19 Estado de Salud de Java EE  Algunas conclusiones:  En UK se cobra más :-)  Las tecnologías concretas se pagan mejor que tecnologías más comunes.  En general el mundo Java y J2EE está mucho mejor pagado que el mundo .NET  Sin embargo, el entorno Microsoft presenta muchas más ofertas.  El mercado de XML y Servicios Web también es interesante.  Las tecnologías web (asp, jsp) parecen estar peor pagadas que las de escritorio (swing).
  • 21. 21 Java EE 5.0: Historia J a v a E E 5 M a y o , 2 0 0 6 L a m a y o r r e v is ió n d e s d e J 2 E E 1 . 3 . C a m b io d e n o m b r e . C a m b io c o m p le t o e n e l m o d e lo d e E J B s . M á s f á c i le s , n u e v o m o d e lo d e p e r s is t e n c ia . I n t r o d u c c ió n d e a n o t a c io n e s e n t o d o s lo s c o m p o n e n t e s , in y e c c ió n d e d e p e n d e n c ia s y c o n c e p t o s d e A O P . A p a r e c e J a v a S e r v e r F a c e s . S t r e a m in g X M L . J S P 2 . 1 , S e r v le t s 2 . 5 , E J B 3 . 0 , J C A 1 . 5 , J A X - W S 2 . 0 , J A X - R P C 1 . 1 , J A X B 2 . 0 , S t A X , J a v a S e r v e r F a c e s 1 . 0 J 2 E E 1 . 4 A b r i l, 2 0 0 4 R e v is ió n m e n o r . M e jo r a s m e n o r e s e n E J B c o m o t im e r s , m e jo r a s e n E J B - Q L , e t c . S o p o r t e d e s e r v ic io s w e b y e n d p o in t s . S o p o r t e d e l W S - I B a s ic P r o f i le . N u e v o le n g u a je d e e x p r e s io n e s p a r a J S P . E x t e n s io n e s d e g e s t ió n J M X . E s e l e s t á n d a r a c t u a l e n la s ú lt im a s v e r s io n e s d e s e r v id o r e s d e a p lic a c io n e s : jb o s s 4 , W e b S p h e r e 6 . 0 , W e b L o g ic 9 . 1 , A p a c h e G e r o n im o 1 . 0 , . .. J S P 2 . 0 , S e r v le t s 2 . 4 , E J B 2 . 1 , J C A 1 . 5 , J M S 1 . 1 , J D B C 3 . 0 , J a v a M a i l 1 . 3 , J M X 1 . 0 , J A X P 1 . 2 , J A X R 1 . 0 , J A X - R P C 1 . 1 , S A A J 1 . 1 J 2 E E 1 . 3 O c t u b r e , 2 0 0 1 R e v is ió n im p o r t a n t e . R e n o v a d o e l m o d e lo d e c o m p o n e n t e s d e E J B . C M P 2 . 0 . A u m e n t o e n o r m e d e r e n d i m ie n t o d e E J B s . I n t e r f a c e s lo c a le s . B e a n s d e m e n s a je r ía . S im p l i f ic a c ió n d e c o n c e p t o s . F ilt r o s d e S e r v le t , m e jo r a s e n e l s o p o r t e d e c u s t o m t a g s e n J S P . S o p o r t e b á s ic o d e X M L . E s t o d a v ía u n a e s p e c if ic a c ió n m u y u t il iz a d a y t u v o u n g r a n é x it o . J S P 1 . 2 , S e r v le t s 2 . 3 , E J B 2 . 0 , J C A 1 . 0 , J M S 1 . 0 , J D B C 3 . 0 , J a v a M a i l 1 . 2 , J A X P , .. . J 2 E E 1 . 2 D ic ie m b r e , 1 9 9 9 P r im e r a v e r s ió n s e r ia . M u c h o s p r o b le m a s d e r e n d i m ie n t o y p e r s is t e n c ia c o n lo s E J B . P r á c t ic a m e n t e s ó lo u s a b le s lo s c o m p o n e n t e s w e b . J S P 1 . 1 , S e r v le t s 2 . 2 , E J B 1 . 1 , J C A 1 . 0 , J D B C 3 . 0 , J a v a M a i l 1 . 1 , . ..
  • 22. 22 Java EE 5.0  Java EE 5.0 es la última versión de lo que siempre se ha conocido como J2EE.  El principal objetivo es la facilidad de desarrollo:  Siempre ha sido complicado hacer aplicaciones en J2EE. Era necesaria una solución.  Menos código que escribir.  Valores por defecto.  Usto extensivo de anotaciones en todos los componentes.  Inyección de dependencias  La principal novedad es EJB 3.0  Adopción del modelo de POJOs.  Nueva API de persistencia.  Utilizable fuera de servidores de aplicaciones.
  • 23. 23 Java EE 5.0  Construcción más sencilla de aplicaciones web  Soporte de Java Server Faces.  Mejor integración con herramientas de desarrollo.  Mejoras en JSTL.  Soporte de Web 2.0 y AJAX  Soporte mejorado de servicios web  Despliegue más sencillo  Añade las últimas APIs  ¿Puede empezar?  Todavía no hay servidores que soporten esta especificación ya que se aprobó hace unos días.  Hay versiones beta de varios servidores y servidores que ofrecen parte de las funcionalidades.
  • 24. 24 Java EE 5.0  Tabla de servidores: S e r v i d o r e s d e a p l i c a c i o n e s O p e n S o u r c e S e r v i d o r d e a p l i c a c i o n e s V e r s i ó n d e J 2 E E s o p o r t a d a A p a c h e G e r o n im o 1 . 0 J 2 E E 1 . 4 jb o s s 4 . 0 . 4 J 2 E E 1 . 4 , d is p o n ib le p lu g - in E J B 3 . 0 J O n A S 4 . 7 . 1 J 2 E E 1 . 4 , d is p o n ib le p lu g - in E J B 3 . 0 G la s s f is h M i l e s t o n e 6 J a v a E E 5 S e r v i d o r e s d e a p l i c a c i o n e s n o O p e n S o u r c e S e r v i d o r d e a p l i c a c i o n e s V e r s i ó n d e J 2 E E s o p o r t a d a O r a c le A p p l ic a t io n S e r v e r 1 0 g J 2 E E 1 . 4 , d is p o n ib le p lu g - in E J B 3 . 0 I B M W e b S p h e r e J 2 E E 1 . 4 W e b S p h e r e A p p l ic a t io n S e r v e r C o m m u n it y E d it io n 1 . 0 ( b a s a d o e n A p a c h e G e r o n im o ) J 2 E E 1 . 4 B E A W e b L o g ic 9 . 1 J 2 E E 1 . 4
  • 25. 25 Java EE 5.0: Java Server Faces  Especificación que define un framework web para la creación de aplicaciones.  Gestión de componentes gráficos.  Manejo de eventos en el servidor.  Validación de entradas.  Asociación entre el modelo de datos y el interfaz de usuario.  Gestión del flujo entre páginas.  Sistema de renderización independiente de la web.  Alternativa a Struts y otros frameworks.  El colíder de la especificación es Craig McClanahan, autor de Struts.  Ventajas frente a otros frameworks  Estándar  Gran soporte por parte de la industria y fabricantes. Es difícil que te den soporte de Spring o Struts pero te lo darán de JSF.  Muchas herramientas de diseño gráfico y desarrollo disponibles.
  • 26. 26 Java EE 5.0: Java Server Faces  IDEs: MyEclipse, Sun Java Studio, Borland Jbuilder, Oracle Jdeveloper, IBM Rational Application Developer, ...  Respuesta al desarrollo rápido de aplicaciones en ASP .NET  Shale, la evolución de Struts, se fundamente sobre JSF  La tendencia ahora mismo es crear componentes JSF con soporte de AJAX.  El problema de la especificación es que define sólo los componentes más básicos. Lo más complejo es una tabla.  Se hace necesario buscar frameworks más completos. Ej: MyFaces, Oracle ADF Faces, ...  Surge también un mercado de componentes. Ej: AjaxFaces.
  • 27. 27 Java EE 5.0: Java Server Faces <t:inputHtml value="String" style="CSSClass" fallback="{true|false}" type="Constant" allowExternalLinks="{true|false}" addKupuLogo="{true|false}" showAllToolBoxes="{true|false}" allowEditSource="{true|false}" showPropertiesToolBox="{true|false}" showLinksToolBox="{true|false}" showImagesToolBox="{true|false}" showTablesToolBox="{true|false}" showDebugToolBox="{true|false}" showCleanupExpressionsToolBox="{true|false}"/> Editor de texto en MyFacesEditor de texto en MyFaces
  • 28. 28 Java EE 5.0: Java Server Faces Árbol de MyFacesÁrbol de MyFaces <t:tree2 value="TreeModel" var="String" varNodeToggler="String"> ...(anyComponent)... </t:tree2>
  • 29. 29 Java EE 5.0: Java Server Faces Menús en MyFacesMenús en MyFaces <t:jscookMenu [ user-role-support-attributes ] [layout="values {hbr, hbl, hur, hul, vbr, vbl, vur, vul}"] [theme="values {ThemeIE, ThemeMiniBlack, ThemeOffice, ThemePanel}"] Nested <t:navigationMenuItem> or <t:navigationMenuItems> tags (menu items) </t:jscookMenu>
  • 30. 30 Java EE 5.0: Java Server Faces MyEclipse y JSFMyEclipse y JSF
  • 31. 31 Java EE 5.0: Java Server Faces Oracle JDeveloper y JSFOracle JDeveloper y JSF
  • 32. 32 Java EE 5.0: EJB 3.0  Nueva API de persistencia  Se separa la persistencia de los componentes de negocio  Modelo de persistencia basado en POJOs y POJIs  CMP Simplificada  Es utilizable tanto en J2SE como en J2EE  Influencias de Hibernate, TopLink y JDO  Anotaciones  Simplificación en el desarrollo  Mejor integración con herramientas de desarrollo  Influencias de Xdoclet
  • 33. 33 Java EE 5.0: EJB 3.0 Ejemplo deEjemplo de anotaciones:anotaciones: Relaciones CMPRelaciones CMP @Entity public class Empleado { private Cubiculo cubiculoAsignado; @OneToOne public Cubiculo getCubiculoAsignado() { return cubiculoAsignado; } public setCubiculoAsignado(Cubiculo cubiculo) { this.cubiculoAsignado = cubiculo; } }
  • 34. 34 Java EE 5.0: EJB 3.0 @Entity @Table (name=”empleados”) @Inheritance (strategy=JOINED) public abstract class Empleado { @Id protected Integer idEmpleado; @Version protected Integer version; @ManyToOne protected Direccion direccion; } @Entity @Table(name=”empleados_fijos”) @DiscriminatorValue=(“FI”) @PrimaryKeyJoinColumn(name=”FI_idemp”) public class EmpleadoFijo extends Empleado { protected Integer salario; public Integer getSalario() { return salario; } } AnotacionesAnotaciones Mejora en el modelo deMejora en el modelo de persistencia: Herenciapersistencia: Herencia
  • 35. 35 Java EE 5.0: EJB 3.0 @Stateless public class FacturasBean { @PersistenceContext EntityManager manager; public void introducirFactura(int idClient, Factura factura) { Client cliente = manager.find(Cliente.class, idCliente); cliente.getFacturas().add(factura); factura.setCliente(cliente); } } Uso del EntityUso del Entity ManagerManager Muy similar a las Session de HibernateMuy similar a las Session de Hibernate
  • 36. 36 Java EE 5.0  Inyección de dependencias  También conocido como IoC (Inversión de control)  No es el usuario el que busca los recursos.  El contenedor se los inyecta automáticamente.  Ya no es necesario realizar las farragosas llamadas JNDI.  El código se simplifica y es menos propenso a errores.  Influencias de contenedores lightweight como Spring.
  • 37. 37 Java EE 5.0: EJB 3.0 <ejb-local-ref> <ejb-ref-name>ejb/HolaAlicante</ejb-ref-name> <local>org.jtech.HolaAlicanteBean</local> </ejb-local-ref> Context context = new InitialContext(); HolaAlicante bean (HolaAlicante) context.lookup(“java:comp/env/ejb/HolaAlicanteBean”); AntesAntes @EJB(name=”HolaAlicante”) private HolaAlicante myEJB; Ahora.Ahora. La dependencia se inyecta. No hayLa dependencia se inyecta. No hay que buscar el EJB.que buscar el EJB.
  • 38. 38 Java EE 5.0  Intercepción (Interceptors)  Permiten al desarrollador un mayor control sobre el flujo de sus programas.  Se llaman antes y después de la invocación a un método.  Se aplican a todos los métodos de negocio de un EJB.  Permiten modificar valores de entrada a métodos.  Permiten modificar valores de retorno.  Gestionar las excepciones.  Interrumpir llamadas completamente.  Realizar análisis y optimización de métodos.  Influencias de AOP.  etc.
  • 39. 39 Java EE 5.0 @Stateless @WebService @Interceptors( { Interceptor2.class }) public class HelloWorldBean { @Interceptors( { Interceptor1.class }) @WebMethod public String sayHello() { return "Hello"; } @WebMethod public String sayHi() { return "Hi"; } @AroundInvoke public Object log(InvocationContext invocationContext) throws Exception { System.err.println(invocationContext.getMethod().getName() + " called from interceptor 3"); return invocationContext.proceed(); } } Uso de los interceptores. Uno a nivelUso de los interceptores. Uno a nivel de EJB y otro a nivel de métodode EJB y otro a nivel de método
  • 40. 40 Java EE 5.0 public class Interceptor1 { @AroundInvoke public Object log(InvocationContext invocationContext) throws Exception { System.err.println(invocationContext.getMethod().getName() + " called from interceptor 1"); return invocationContext.proceed(); } } public class Interceptor2 { @AroundInvoke public Object log(InvocationContext invocationContext) throws Exception { System.err.println(invocationContext.getMethod().getName() + " called from interceptor 2"); return invocationContext.proceed(); } } Declaración de losDeclaración de los interceptoresinterceptores
  • 41. 41 Java EE 5.0  Simplificación  API de persistencia (ya visto)  Metadatos. (ya visto)  Inyección de dependencias (ya visto)  Eliminación de las interfaces de componente e interfaces home. Todo se autogenera a partir de las anotaciones.  Valores por defecto en la configuración.  Reducción del uso de excepciones chequeadas.
  • 42. Modelos y tendencias de desarrollo
  • 43. 43 Java EE 5.0  Modelos ágiles de desarrollo con Java EE  Antes complicado. Infraestructura compleja. Difícil testabilidad.  Ahora se abren nuevas perspectivas:  APIs más sencillas  Contenedores ligeros  Herramientas de pruebas más evolucionadas: bases de datos, interfaces de usuario, componentes web, etc.  Aceptación del cambio  Refactorización  El cliente puede modificar los requisitos, renegociación  Buscar la simplicidad  TDD: Test Driven Development
  • 44. 44 Modelos y tendencias de desarollo  Con el paso de los años se ha impuesto un modelo de desarrollo orientado a los frameworks.  Un framework te ofrece una base de desarrollo y servicios listos para utilizar.  No hay necesidad de invertir tiempo, dinero y recursos en reinventar la rueda.  Las compañías prefieren estándares oficiales (Java Server Faces) o estándares de facto (Struts, Spring, Hibernate).  Los desarrolladores pueden centrarse en construir funcionalidades sobre los frameworks.  Los frameworks-de-casa están en declive  Demasiado trabajo para hacer siempre lo mismo  Es dificíl ofrecer servicios sobre algo no estándar. [jLibrary]  Es difícil encontrar gente que extienda los sistemas. [javahispano]  Los frameworks con éxito han influenciado muchísimo en J2EE.  Ej: Hibernate, Struts, ...
  • 45. 45 Modelos y tendencias de desarrollo  La tendencia es a construir stacks completos sobre Open Source  Los frameworks propietarios prácticamente han desaparecido  ¿Quién va a utilizar frameworks de pago con lo que hay actualmente?  Las grandes empresas están liberando sus frameworks  Ej: Oracle ADF (Java Server Faces)  Ej: BEA, XMLBeans, KODO, ...  Existen frameworks excelentes cubriendo todas las partes del desarrollo empresarial  Hubo gente que predijo el caos debido a la variedad de frameworks  El mundo del Open Source se ha mostrado muy efectivo. Todos han ganado.  Las empresas ya no venden frameworks, venden soporte, formación y servicios. Ej: Spring (Apache License) e Interface21.
  • 46. 46 Modelos y tendencias de desarollo Navegador Web Java Server Faces Web Services Stack Servlets JSP Componentes EJB Persistence Manager API AJAX SOAP REST BBDD Tendencia propuesta por las specs.Tendencia propuesta por las specs.
  • 47. 47 Modelos y tendencias de desarollo  Pero también hay críticas a las especificaciones:  Casi todas provienen de las comunidades de frameworks más afectados por la especificación.  Sobre todo Spring.  Críticas a la inyección de dependencias e interceptores.  AOP no aparece realmente como un actor de primer nivel. El soporte es muy light.  La comunidad JDO también clama su superioridad.  La realidad es que los frameworks siempre van a ser más específicos que el estándar que tiene que mantenerse más neutral.  El estándar se muestra fantástico para situaciones habituales.  Hay hueco para todo:  Siempre es una buena elección seguir el estándar...  ... pero habrá ocasiones en que será necesaria más flexibilidad.
  • 48. 48 Modelos y tendencias de desarollo Navegador Web MyFaces Web Services Stack Servlets JSP Spring Framework Hibernate JDO AJAX SOAP REST BBDD Posible variación utilizando frameworksPosible variación utilizando frameworks alternativos.alternativos.
  • 49. 49 Java EE 5.0  Ventajas  La especificación Java Server Faces ofrece pocos componentes. MyFaces ofrece muchos más, pero no estándar.  Spring se presenta como un framework de gran potencia.  Permite aprovechar al máximo el contenedor de IoC y la programación orientada a aspectos.  Ofrece un contenedor ligero para la ejecución de aplicaciones sin la carga de un stack completo Java EE.  Hibernate está disponible y tiene una gran comunidad. No hay que esperar a que los servidores lo soporten  JDO ofrece funcionalidades no presentes en EJB
  • 50. 50 Java EE 5.0  Desventajas  Muchos componentes no estándar: Spring, Hibernate, etc.  Alta probabilidad de quedarse atado a un framework o producto.  Se pierde toda la potencia extra de Java EE: timers, mensajería, soporte implícito de servicios web, etc.  A más número de frameworks más necesidades de formación extra.  A veces surgen complejidades para la integración de diferentes frameworks. En un stack estándar todo viene ya preparado.  El nuevo API de persistencia cubre la mayor parte de necesidades de un proyecto.  JDO tiene mayor complejidad.
  • 51. 51 Java EE 5.0  ¿Cuál escojo entonces? ¿?
  • 52. Modelos y tendencias de desarrollo
  • 53. 53 Conclusiones  Conclusiones  J2EE es una plataforma muy saludable. Una buena salida profesional en todos los sentidos: salario, aprendizaje, experiencia, ...  Java EE 5 promete traer muchos cambios al desarrollo con J2EE.  Java EE 5 busca simplificar el desarrollo en J2EE que tradicionalmente ha sido muy complejo.  El desarrollo con EJBs ha evolucionado. Más fácil, más flexible, más potente.  Los modelos ágiles de desarrollos e han enraizado en J2EE.  Java EE es una especificación realmente fuerte que amenaza la supervivencia de muchos frameworks. Compentencia. Beneficio para todos.  La tendencia es el desarrollo contra frameworks.  La tendencia es el desarrollo con componentes Open Source.