presentación especialista universitario java enterprise€¦ · • los clientes únicamente...

30
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

Upload: others

Post on 02-Oct-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Presentación Especialista Universitario Java Enterprise€¦ · • Los clientes únicamente realizan el “renderizado” de la “vista” proporcionada por el servidor (cliente

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

Page 2: Presentación Especialista Universitario Java Enterprise€¦ · • Los clientes únicamente realizan el “renderizado” de la “vista” proporcionada por el servidor (cliente

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

Page 3: Presentación Especialista Universitario Java Enterprise€¦ · • Los clientes únicamente realizan el “renderizado” de la “vista” proporcionada por el servidor (cliente

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

Page 4: Presentación Especialista Universitario Java Enterprise€¦ · • Los clientes únicamente realizan el “renderizado” de la “vista” proporcionada por el servidor (cliente

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

Page 5: Presentación Especialista Universitario Java Enterprise€¦ · • Los clientes únicamente realizan el “renderizado” de la “vista” proporcionada por el servidor (cliente

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

Page 6: Presentación Especialista Universitario Java Enterprise€¦ · • Los clientes únicamente realizan el “renderizado” de la “vista” proporcionada por el servidor (cliente

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

Page 7: Presentación Especialista Universitario Java Enterprise€¦ · • Los clientes únicamente realizan el “renderizado” de la “vista” proporcionada por el servidor (cliente

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

Page 8: Presentación Especialista Universitario Java Enterprise€¦ · • Los clientes únicamente realizan el “renderizado” de la “vista” proporcionada por el servidor (cliente

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

Page 9: Presentación Especialista Universitario Java Enterprise€¦ · • Los clientes únicamente realizan el “renderizado” de la “vista” proporcionada por el servidor (cliente

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, ...- )

Page 10: Presentación Especialista Universitario Java Enterprise€¦ · • Los clientes únicamente realizan el “renderizado” de la “vista” proporcionada por el servidor (cliente

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

Page 11: Presentación Especialista Universitario Java Enterprise€¦ · • Los clientes únicamente realizan el “renderizado” de la “vista” proporcionada por el servidor (cliente

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

Page 12: Presentación Especialista Universitario Java Enterprise€¦ · • Los clientes únicamente realizan el “renderizado” de la “vista” proporcionada por el servidor (cliente

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

Page 13: Presentación Especialista Universitario Java Enterprise€¦ · • Los clientes únicamente realizan el “renderizado” de la “vista” proporcionada por el servidor (cliente

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

Page 14: Presentación Especialista Universitario Java Enterprise€¦ · • Los clientes únicamente realizan el “renderizado” de la “vista” proporcionada por el servidor (cliente

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

Page 15: Presentación Especialista Universitario Java Enterprise€¦ · • Los clientes únicamente realizan el “renderizado” de la “vista” proporcionada por el servidor (cliente

• 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

Page 16: Presentación Especialista Universitario Java Enterprise€¦ · • Los clientes únicamente realizan el “renderizado” de la “vista” proporcionada por el servidor (cliente

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

Page 17: Presentación Especialista Universitario Java Enterprise€¦ · • Los clientes únicamente realizan el “renderizado” de la “vista” proporcionada por el servidor (cliente

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

Page 18: Presentación Especialista Universitario Java Enterprise€¦ · • Los clientes únicamente realizan el “renderizado” de la “vista” proporcionada por el servidor (cliente

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

Page 19: Presentación Especialista Universitario Java Enterprise€¦ · • Los clientes únicamente realizan el “renderizado” de la “vista” proporcionada por el servidor (cliente

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

Page 20: Presentación Especialista Universitario Java Enterprise€¦ · • Los clientes únicamente realizan el “renderizado” de la “vista” proporcionada por el servidor (cliente

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

Page 21: Presentación Especialista Universitario Java Enterprise€¦ · • Los clientes únicamente realizan el “renderizado” de la “vista” proporcionada por el servidor (cliente

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

Page 22: Presentación Especialista Universitario Java Enterprise€¦ · • Los clientes únicamente realizan el “renderizado” de la “vista” proporcionada por el servidor (cliente

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

Page 23: Presentación Especialista Universitario Java Enterprise€¦ · • Los clientes únicamente realizan el “renderizado” de la “vista” proporcionada por el servidor (cliente

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

Page 24: Presentación Especialista Universitario Java Enterprise€¦ · • Los clientes únicamente realizan el “renderizado” de la “vista” proporcionada por el servidor (cliente

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

Page 25: Presentación Especialista Universitario Java Enterprise€¦ · • Los clientes únicamente realizan el “renderizado” de la “vista” proporcionada por el servidor (cliente

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

Page 26: Presentación Especialista Universitario Java Enterprise€¦ · • Los clientes únicamente realizan el “renderizado” de la “vista” proporcionada por el servidor (cliente

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

Page 27: Presentación Especialista Universitario Java Enterprise€¦ · • Los clientes únicamente realizan el “renderizado” de la “vista” proporcionada por el servidor (cliente

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

Page 28: Presentación Especialista Universitario Java Enterprise€¦ · • Los clientes únicamente realizan el “renderizado” de la “vista” proporcionada por el servidor (cliente

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

Page 29: Presentación Especialista Universitario Java Enterprise€¦ · • Los clientes únicamente realizan el “renderizado” de la “vista” proporcionada por el servidor (cliente

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

Page 30: Presentación Especialista Universitario Java Enterprise€¦ · • Los clientes únicamente realizan el “renderizado” de la “vista” proporcionada por el servidor (cliente

Especialista Universitario Java Enterprise

Presentación Especialista © 2010-2011 Depto. Ciencia de la Computación e IA Introduccion a Java EE

¿Preguntas...?

30