presentación especialista universitario java enterprise€¦ · • los clientes únicamente...
TRANSCRIPT
Especialista Universitario Java Enterprise
© 2010-2011 Depto. Ciencia de la Computación e IA
Presentación Especialista Universitario Java Enterprise
Introducción a Java EE
Especialista Universitario Java Enterprise
Presentación Especialista © 2010-2011 Depto. Ciencia de la Computación e IA Introduccion a Java EE
La plataforma Java
Pequeños dispositivos Aplicaciones de escritorio
Servidores
2
Especialista Universitario Java Enterprise
Presentación Especialista © 2010-2011 Depto. Ciencia de la Computación e IA Introduccion a Java EE
Carácterísticas más importantes
• Multi-plataforma• Basadada en estándares• Soportada por la industria• Madura• Fiable• Gratuita
3
Especialista Universitario Java Enterprise
Presentación Especialista © 2010-2011 Depto. Ciencia de la Computación e IA Introduccion a Java EE
Versiones de la plataforma• 1996: Lanzamiento de Java (JDK 1.0)• 1998: J2SE 1.2 • 1999: J2EE 1.2 (Primera versión de Java EE)• 2001: J2EE 1.3 (EJB 2.0)• 2002: J2SE 1.4• 2003: J2EE 1.4• 2004: J2SE 1.5• 2006: Java EE 5 y Java SE 6• 2009: Java EE 6 y Java SE 7
4
Especialista Universitario Java Enterprise
Presentación Especialista © 2010-2011 Depto. Ciencia de la Computación e IA Introduccion a Java EE
Arquitectura de aplicaciones enterprise• Aplicaciones enterprise = aplicaciones multi-usuario• Elementos que constituyen una aplicación enterprise• Capas (layers): separación lógica, unidades de diseño• Lógica de presentación• Lógica de negocio• Lógica de datos• Servicios del sistema (seguridad, logging, transaccionalidad)
• Niveles (tiers): separación “física”, unidades de despliegue
• Una arquitectura de una aplicación define cómo organizar estos elementos en un sistema informático
5
Especialista Universitario Java Enterprise
Presentación Especialista © 2010-2011 Depto. Ciencia de la Computación e IA Introduccion a Java EE
Arquitectura de tres niveles
ClienteWeb
Servidor
BD
Clientemóvil
ClientePDA
SQL
HTTP / HTML
XML / HTTP
HTTP / HTML
• Los clientes únicamente realizan el “renderizado” de la “vista” proporcionada por el servidor (cliente fino)
• La capa de negocio y la generación de la “vista” residen en el servidor intermedio
• La capa de datos reside en el servidor de base de datos• Ejemplo: aplicación web
6
Especialista Universitario Java Enterprise
Presentación Especialista © 2010-2011 Depto. Ciencia de la Computación e IA Introduccion a Java EE
Arquitectura multi-capa
Clienterico
Presentación
Clientemóvil
ClientePDA
BDClienteWeb
Negocio y ServiciosAnálisis Financiero
Negocio y ServiciosAlmacen
Negocio y ServiciosVentas y Clientes
Clienterico
Presentación
ClienteWeb
• Múltiples servidores de presentación• Múltiples servidores de aplicación• Tecnologías: EJBs, Mensajes asíncronos (JMS), WebServices• Ejemplo: banca, universidad, administración pública, ...
7
Especialista Universitario Java Enterprise
Presentación Especialista © 2010-2011 Depto. Ciencia de la Computación e IA Introduccion a Java EE
¿Qué proporciona Java EE?• Librerías (o bibliotecas) estáticas
• APIs encapsuladas en ficheros .jar• Ejemplos:
log4j-1.2.14.jar - loggingjunit-4.8.1.jar - testsmysql-connector-java-5.0.8.jar - conexión BD
• Se incluyen en nuestros proyectos en tiempo de compilación
• Servidores en ejecución• Contenedores + Servicios runtime
Contenedores web en los se despliegan servletsContenedores EJB en los que se despliegan componentes
• Ejemplos:Servidor web (Tomcat, Jetty, etc.)Servidor de aplicaciones (Glassfish, JBoss, ...)
• Desplegamos nuestros proyectos en ellos
8
Especialista Universitario Java Enterprise
Presentación Especialista © 2010-2011 Depto. Ciencia de la Computación e IA Introduccion a Java EE
Contenedores en Java EE
9
Las aplicaciones enterprise son componentes que residen en un contenedor (contenedor Web -Apache Tomcat- o servidor de aplicaciones -BEA, GlassFish, Jboss, ...- )
Especialista Universitario Java Enterprise
Presentación Especialista © 2010-2011 Depto. Ciencia de la Computación e IA Introduccion a Java EE
APIs y Tecnologías Java EE 5
Aplicaciones Web• Java Servlet 2.5• JavaServer Pages (JSP) 2.1• JSP Standard Tag Library• JavaServer Faces (JSF) 1.2
Aplicaciones Enterprise• Enterprise JavaBeans (EJB) 3.0• Java Message Service API (JMS)• JavaMail• Java Persistence API (JPA)• Java Transaction API (JTA)• Java API para Servicios Web XML
(JAX-WS)
10
Basado en Java SE 6
Especialista Universitario Java Enterprise
Presentación Especialista © 2010-2011 Depto. Ciencia de la Computación e IA Introduccion a Java EE
Java SE 6
• Colecciones de datos• Excepciones e hilos• Entrada/Salida y Red• Swing• Consultas a una BD con JDBC• Transaciones, optimización y DAO
11
Especialista Universitario Java Enterprise
Presentación Especialista © 2010-2011 Depto. Ciencia de la Computación e IA Introduccion a Java EEPresentación Especialista © 2007-2008 Depto. Ciencia de la Computación e IA
Servidores web
• Un servidor web centraliza todas las peticiones de varios usuarios a una web
12
Especialista Universitario Java Enterprise
Presentación Especialista © 2010-2011 Depto. Ciencia de la Computación e IA Introduccion a Java EEPresentación Especialista © 2007-2008 Depto. Ciencia de la Computación e IA Introducción a Java EE-21
Servidores web
• Bases del protocolo HTTP• Utilizaremos software libre (Tomcat)• Gran parte de las configuraciones son aplicables
a otros muchos servidores web y de aplicaciones (Resin, WebLogic, JBoss…)
13
Especialista Universitario Java Enterprise
Presentación Especialista © 2010-2011 Depto. Ciencia de la Computación e IA Introduccion a Java EEPresentación Especialista © 2007-2008 Depto. Ciencia de la Computación e IA
Servlets
• Los servlets son programas Java instalados en un servidor web que:• Generan contenido web (HTML)• Cargan páginas web• Controlan el acceso no
autorizado, gestionan las conexiones con bases de datos…
MiServlet
BD
?
14
• Permiten separar la presentación de la lógica de negocio• Los JSP son adecuados para generar la presentación en HTML o
XML
• La lógica de negocio se llevará a otros componentes: JavaBeans, taglibs, EJBs, …
• Se construye sobre la tecnología de Servlets• Ampliable mediante librerías de tags• Lenguaje de expresiones propio
<%@page import=“java.util.Date” %><html><head> <title> Ejemplo de JSP </title> </head><body>Hoy es <%= (new Date()).toString() %></body></html>
Especialista Universitario Java Enterprise
Presentación Especialista © 2010-2011 Depto. Ciencia de la Computación e IA Introduccion a Java EE
Java Server Pages (JSP)
15
Especialista Universitario Java Enterprise
Presentación Especialista © 2010-2011 Depto. Ciencia de la Computación e IA Introduccion a Java EE
JSF
16
• Framework estándar de Java EE para implementar el MVC
• Conjunto de componentes gráficos• Vinculación entre componentes y Java Beans• Soporte para validación y conversión automática• Modelo de navegación entre páginas• Soporte para la internacionalización
Especialista Universitario Java Enterprise
Presentación Especialista © 2010-2011 Depto. Ciencia de la Computación e IA Introduccion a Java EE
Java Persistence API• Clases y objetos persistentes• Los objetos persistentes se mapean con la base de
datos:• Las clases se mapean con tablas• Las objetos se mapean con filas de las tablas
• Las operaciones habituales de una BD (creación, actualización y búsqueda) se realizan mediante la creación y actualización de objetos de clases persistentes.
BD
17
Especialista Universitario Java Enterprise
Presentación Especialista © 2010-2011 Depto. Ciencia de la Computación e IA Introduccion a Java EE
Frameworks• Un framework es un diseño reusable que
podemos usar en nuestra aplicación• Generalmente consiste en la práctica en una serie
de clases abstractas, librerías adicionales, etc.• Framework vs. Librería
• Una librería es un API “listo para usar”. Un framework es un “armazón” sobre el que construir nuestro código (de ahí las clases abstractas)
• Podemos ver un framework como la implementación de una filosofía de diseño
18
Especialista Universitario Java Enterprise
Presentación Especialista © 2010-2011 Depto. Ciencia de la Computación e IA Introduccion a Java EE
Frameworks en JavaEE• Resuelven problemas comunes, permitiendo al
desarrollador concentrarse en lo particular de la aplicación• Ejemplos paradigmáticos:• Spring
Cubre todas las capas de la arquitecturaImplementa una serie de “buenos principios”, que se pueden resumir en las ideas de “contenedores ligeros” y “código no invasivo”• Struts
Cubre únicamente la capa de presentaciónImplementa el patrón de diseño Modelo/Vista/Controlador
19
Contenedor web
JPQLJPA
Especialista Universitario Java Enterprise
Presentación Especialista © 2010-2011 Depto. Ciencia de la Computación e IA Introduccion a Java EE
En resumen...
.java JDBC
Struts
Servlet
JSP
JSF
20
Especialista Universitario Java Enterprise
Presentación Especialista © 2010-2011 Depto. Ciencia de la Computación e IA Introduccion a Java EE
Servidores de aplicaciones• Proporciona servicios que soportan la ejecución de aplicaciones
Java EE:• Contenedor de servlets, contenedor de EJBs, clustering (balanceo de
carga, recuperación ante fallos), etc.• Veremos el servidor de aplicaciones GlassFish, open source y desarrollado
por Sun
21
Especialista Universitario Java Enterprise
Presentación Especialista © 2010-2011 Depto. Ciencia de la Computación e IA Introduccion a Java EE
Componentes EJB• Un componente EJB (o Enterprise JavaBean) es un objeto remoto
que reside en un contenedor EJB de un servidor de aplicaciones• Proporciona acceso a un conjunto de servicios definidos por su
interfaz de negocio• El contenedor EJB:• Recubre la interfaz de negocio con un conjunto de servicios
añadidos (seguridad, transaccionalidad, concurrencia, escalabilidad)
• Proporciona acceso a un conjunto de recursos (BD, colas de mensajes, ...)
• El desarrollo de componentes EJB posibilita la construcción de aplicaciones débilmente acopladas
22
Especialista Universitario Java Enterprise
Presentación Especialista © 2010-2011 Depto. Ciencia de la Computación e IA Introduccion a Java EE
JMS• Servicio que permite enviar/recibir o publicar/leer mensajes
de forma segura (persistencia) y asíncrona:• Usa recursos administrados por el sistema (colas y tópicos).• Maneja tanto comunicación punto-a-punto como orientada a
subscripción.• Uso en interacción entre aplicaciones (p.e. en beas Mbeans). • Fácil integración con parsers XML.
23
Especialista Universitario Java Enterprise
Presentación Especialista © 2010-2011 Depto. Ciencia de la Computación e IA Introduccion a Java EE
Servicios Web• Componentes Java EE pueden ser
exportados como Servicios Web• Servicios accesibles a través de Internet
mediante protocolos Web estándar.• Similar a RPC con independencia del
lenguaje• No conflictivo con firewalls• Aplicaciones distribuidas en Internet• Se invocan mediante protocolo HTTP
• Mensajes codificados en XML• SOAP: Llamada y respuesta de un• servicio• WSLD: Descriptor de servicios• UDDI: Localización de servicios
Servidor Java EE
Servicio Web externo
Cliente rico
Navegador
Cliente MIDP
SOAP
SOAP
SOAP
HTML
Aplicaciónenterprise
SOAP
24
Especialista Universitario Java Enterprise
Presentación Especialista © 2010-2011 Depto. Ciencia de la Computación e IA Introduccion a Java EE
Service-Oriented Architecture• Es un enfoque de
diseño de software, basado en servicios que se ejecutan en una red, que facilita una respuesta rápida a los requerimientos cambiantes del mercado
• Los servicios se reutilizan entre múltiples aplicaciones
25
Servidor de aplicaciones
Especialista Universitario Java Enterprise
Presentación Especialista © 2010-2011 Depto. Ciencia de la Computación e IA Introduccion a Java EE
En resumen...
Navegadorweb
EJB
Peticiónremota
WebServices
Peticiónremota
26
Especialista Universitario Java Enterprise
Presentación Especialista © 2010-2011 Depto. Ciencia de la Computación e IA Introduccion a Java EE
Metodologías de desarrollo ágiles• Con dominar las tecnologías no es suficiente• Es necesario:• saber lo que hacer en cada momento• organizar el trabajo en equipo• preparar y estimar las entregas• utilizar prácticas útiles:
• programación en parejas• desarrollo dirigido por las pruebas• propiedad colectiva del código
• Las metodologías ágiles dejan de lado la burocracia de las metodologías clásicas/pesadas y se centran en los resultados
27
Especialista Universitario Java Enterprise
Presentación Especialista © 2010-2011 Depto. Ciencia de la Computación e IA Introduccion a Java EE
Framework ágil: Grails• Framework para el desarrollo rápido de aplicaciones basado en el
lenguaje dinámico Groovy • Ideal para aplicar diversas metodologías ágiles. • Se basa en las mejores soluciones del software libre para abarcar
cada una de las fases del desarrollo de una aplicación web:• Tomcat o Jetty como contenedor de aplicaciones • Spring como framework MVC • HSQLDB como gestor de base de datos • SiteMesh para el renderizado de las páginas • JUnit para las pruebas unitarias y de integración
28
Especialista Universitario Java Enterprise
Presentación Especialista © 2010-2011 Depto. Ciencia de la Computación e IA Introduccion a Java EE
RoadMap Java: enlaces
• Sun• http://java.sun.com• http://java.sun.com/javaee/• http://java.net/
• Java Hispano• http://www.javahispano.org/
• InfoQ• http://www.infoq.com/
• The Server Side• http://www.theserverside.com/
29
Especialista Universitario Java Enterprise
Presentación Especialista © 2010-2011 Depto. Ciencia de la Computación e IA Introduccion a Java EE
¿Preguntas...?
30