Tema 5. Plataforma Java EE



Documentos relacionados
Tema 5. Plataforma Java EE

Tema 3. Plataforma Java EE

JAVA EE 5. Arquitectura, conceptos y ejemplos.

JAVA ENTERPRISE EDITION (J2EE) ARQUITECTURA TECNOLOGÍAS (1/2) (L1)

Curso de Java EE Todos los Derechos Reservados Global Mentoring 2012 Experiencia y Conocimiento para tu Vida 1

Tema 1. Introducción a Java EE

Aplicaciones web construidas a base de componentes:

Proyecto ELO-330 Administración Salas del Departamento de Electrónica RC1. Gerardo Lecaros Felipe Díaz

JavaEE.

CentralTECH JAVA EE 7 Desarrollo

Curso de Java EE Todos los Derechos Reservados Global Mentoring Experiencia y Conocimiento para tu Vida 1

Tema 1: Introducción a las Tecnologías Java

Introducción al Desarrollo de Aplicaciones Empresariales

Panorámica de la asignatura

Desarrollo de Software con

Cómo puede ayudarle JBuilder en sus Desarrollos Java?

Cursos PROGRAMACIÓN DE APLICACIONES CON JAVA

Programa de Actualización Profesional Curso: Java Avanzado JEE7 Programa del Curso

Caso J2EE. Necesidades del negocio. Arquitectura Luther

Curso de JavaServer Faces

Curso de Spring Framework

Toda nuestra Experiencia a tu alcance

PROGRAMA FORMATIVO Desarrollo de aplicaciones empresariales Java J2EE 7 (ORACLE)

Desarrollo de Aplicaciones web con JPA, EJB, JSF y PrimeFaces

INTRODUCCIÓN A JAVA EE

Desarrollo y servicios web Sesión 18

UNIVERSIDAD DE PIURA

Facultad de Sistemas e Informática

5 Aplicaciones empresariales con tecnología java EE.

Patrones de Alto nivel: Patrones de Arquitectura Patrones de nivel medio: Patrones de Diseño Patrones de bajo nivel: Idioms

Técnico Superior en Programación con Java SE Standard Edition

Notas técnicas de JAVA Nro. 7 Tip Breve

Curso: Programación con JAVA SE Estándar Edition.

DIPLOMATURA DESARROLLO DE APLICACIONES JAVA

Diplomado Java. Descripción. Objetivo. A quien está dirigido. Requisitos. Beneficios

Capítulo III. Análisis y diseño.

[CASI v.0109] Pág. 1

UNIVERSIDAD AUTONOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES

Guayaquil - Ecuador Pedro Carbo 123 y Junín. Pasaje Comercial la Merced. 2do Piso. Oficina 2. Teléfonos: (593) (04) Mail.

1 Índice Introducción Propósito Alcance Modelo Arquitectónico Inicial... 3

Introducción al Desarrollo de Aplicaciones Web D R A. M A R I C E L A B R A V O

Java 7.0 Advanced Application Developer

Certificaciones: Diploma de Aprobación en Desarrollo Web con Java.

SEGURIDAD EN APLICACIONES WEB CON APACHE TOMEE. Ing. Javier Mantilla Portilla

1. Definición. Open Source. Escalable. Alto desempeño. Arquitectura Modular. Producto de licencia de código abierto sin coste adicional.

Descripción de Arquitectura Repositorio de metadatos de componentes de software

Curso de Jboss Administración

Generador GeneXus JAVA

Desarrollo de Software con

Tema 1: Introducción a Java EE

Formación a distancia de EXPERTO EN PROGRAMACIÓN EN JAVA

PROGRAMA FORMATIVO Desarrollo de aplicaciones Web Java: WebServices con J2EE

Arquitectura. 1.- Aplicaciones Web. Definición. Arquitectura clásica. Contenidos. 1.- Aplicaciones Web


GUÍA TÉCNICA. Desarrollo de Proyectos en Plataforma Liferay en el Gobierno de Extremadura

Diplomado Java Web Programming with Servlets, JSP, JSF & Ajax

Capítulo 2. Planteamiento del problema. Capítulo 2 Planteamiento del problema

Centro de Capacitación en Tecnologías de la Información. Desarrollo de. aplicaciones web con

Arquitectura de aplicaciones

MARCANDO LA DIFERENCIA

5.1 Introducción a Servicios Web

PRÁCTICA 3: COMPONENTES. Javier Sánchez Pérez Arquitectura del Software Grado en Informática

Servicios Web con Java EE

Servicios Web con Java EE

Enterprise JavaBeans

GUÍA TÉCNICA. Desarrollo de Sistemas de Información la plataforma Business Intellingence Pentaho

JAVA 2 ENTERPRISE EDITION

Facultad de Ingeniería Escuela de Ciencias y Sistemas Estructura de Datos Guatemala 2013 JSF + JSP + RichFaces

MASTER JAVA AVANZADO Master en desarrollo de aplicaciones avanzadas con JAVA 2008

Tema 6: Comparativa CORBA/Servicios Web

Temario máster Java. Módulo 1 Fundamentals of the Java Programming Language. Duración: 40 horas

Desarrollo de Aplicaciones Web con Eclipse

Centro de Capacitación en Tecnologías de la Información. Desarrollo de. diplomado

Unidad II. - Las técnicas en las que se basó, las categorías de análisis o ejes centrales que permiten guiar el proceso de investigación.

Enunciado Práctica Java EE Iteración 1: aplicación web con JSF

Sistema de gestión de tareas y proyectos

IFCD04 Desarrollo de Aplicaciones Java: componentes web y aplicaciones de base de datos (JSP y JPA)

Curso de HTML5 y CSS3

TEMARIO. 4-Servlet Definición de servlet El Web Container y el ciclo de vida de los servlets El ciclo request- response.

Herramienta de Gestión Integral de E-Business

FUJITSU Java Development Framework

Capas de la arquitectura de referencia

Desarrollo de Sistemas Software Basados en Servicios y Componentes

CURSO DE PROGRAMACIÓN EN JAVA J2EE 7 ÍNDICE

'HVDUUROORGH$SOLFDFLRQHV

IFCD07 Desarrollo de Aplicaciones Web Java: Webservices con J2EE

Curso Android Curso Online Desarrollo en Celulares con Android

Plataforma de expediente

La inscripción sólo se realiza rellenando en Internet la ficha de inscripción:

UNIVERSIDAD DE OVIEDO

Programación y Arquitectura

Web Services en Java. Taller de Programación. Instituto de Computación Facultad de Ingeniería Universidad de la República

FRAMEWORK SPRING EN UNA APLICACIÓN WEB

Introducción a los Servicios Web. Ing. José Luis Bugarin ILUMINATIC SAC jbugarin@consultorjava.com

Universidad Tecnológica Nacional FRC DIPLOMATURA SUPERIOR en Desarrollo bajo Plataforma Java EE

Ficha Técnica. Categoría. Contenido del Pack. Sinopsis. Programación. - 2 Manual Teórico - 1 Cuaderno de Ejercicios - 1 CDROM

Desarrollo de Aplicaciones Web con JAVA: J2EE y Struts

Servicios Web y Firma Electrónica en los Procesos de las AAPP 25/01/2005

Introducción al Desarrollo de Aplicaciones Empresariales

Concepto de Arquitectura en Desarrollo Software. Arquitectura física Distribución de nodos en la red. Concepto de Arquitectura software Moderno

Transcripción:

Tema 5. Plataforma Java EE SCS Sistemas Cliente/Servidor 4 o informática http://ccia.ei.uvigo.es/docencia/scs septiembre 2011 FJRP, FMBR 2008-2011 ccia SCS

5.1 Introducción a Java EE Java EE (Java Enterprise Edition): Plataforma Java para el desarrollo de aplicaciones empresariales Ofrece un framework para el desarrollo de aplicaciones distribuidas multicapa (3-tier, n-tier) basadas en Web Define una infraestructura común básica para el acceso a bases de datos, gestión de la persistencia, control de seguridad, gestión de transacciones,... Separación clara entre presentación (interfaz), modelo (lógica) de negocio y datos Plataforma basada en componentes Entes (objetos) intercambiables que residen en un servidor de aplicaciones y son gestionados por él http://www.oracle.com/technetwork/java/javaee/ Java EE es un conjunto de especificaciones de APIs Java (no es un producto/aplicación en si mismo) Describe el conjunto de paquetes, interfaces y clases Java que debe de ofrecer un framework Java EE Define también una test suite (ejemplos de referencia) que todo servidor de aplicaciones Java EE debe soportar y una colección de documentos (guias de diseño) explicativos La implementación de esas API es responsabilidad del fabricante Implementaciones propietarias IBM: WebSphere AS 8.0 Oracle: Oracle Application Server Implementaciones libres: Red Hat: JBoss AS 7.0 (http://www.jboss.org) Oracle: GlashFish v3.x (http://glassfish.java.net) Apache: Gerónimo [Tomcat+OpenEJB] (http://geronimo.apache.org) Servidores certificados: http://www.oracle.com/technetwork/java/javaee/overview/compatibility-jsp-136984.html Punto clave: independencia del fabricante Una aplicación distribuida Java EE que use las APIs estándar se podrá desplegar en distintos servidores de aplicaciones sin necesidad de modificación FJRP, FMBR 2008-2011 ccia SCS 1

Java EE se asienta sobre Java SE (Java Standard Edition) Java SE provee la infraestructura de ejecución (Java Virtual Machine + APIs básicas) y de compilación (javac, rmic,...) Variantes de la plataforma Java Java EE: aplicaciones distribuidas multicapa sobre Web Java SE: aplicaciones de escritorio y applets Java ME: (Java MicroEdition) aplicaciones para dispositivos móviles Versión simplificada de Java SE + APIs específicas (localización, etc...) Versión actual: Java EE 6.0 A partir de Java EE 5.0 cambios importantes respecto a versiones previas: J2EE 1.4 y anteriores Objetivo: simplificación del modelo de desarrollo Uso extensivo de nuevas funcionalidades introducidas en la versión 5 de Java SE (jdk 1.5) Uso de anotaciones Java para añadir metainformación al código fuente que será explotada por en entorno de ejecución Java EE (contenedores de aplicaciones) Reemplazan en parte a los descriptores de despliegue (ficheros XML de configuración) Uso de inyección de dependencias (Dependency Injection) para simplificar el desarrollo de las aplicaciones Java EE, facilitar su instalación (despliegue) y reducir el acoplamiento Ciclo vida de los objetos gestionado por el servidor de aplicaciones A partir de la metainformación (anotaciones) el contenedor/servidor Java EE es capaz de inyectar referencias a otros objetos en determinados atributos de los componentes JEE sin necesidad de que el propio componente lo tenga que hacer por si mismo En el código de los componentes JEE se usan anotaciones especiales para marcar atributos cuyos valores serán rellenados por el contenedor JEE en el momento en que sean desplegados (tiempo de ejecución). Idea: el componente no tiene que preocuparse de hacer new() o consultar un servidor de nombres (JNDI), ni de configurar el objeto referenciado FJRP, FMBR 2008-2011 ccia SCS 2

(a) Esquema general Java EE (b) Componentes de la arquitectura Java EE Tipos de componentes: Clientes de la aplicación 8 < : clientes web [navegador] clientes de escritorio Java [swing, awt] clientes de escritorio no Java Componentes Web: servelts, páginas JSP (Java Server Pages), JSF (Java Server Faces),... Se ejecutan en el contenedor Web Responsables de componer la presentación de datos en formato HTML Suelen apoyarse en el uso de componentes Java Beans Java Beans: objetos Java que verifican 2 requisitos 1. tienen un constructor sin argumentos 2. todos sus atributos son accesibles mediante pares de métodos get() y set() FJRP, FMBR 2008-2011 ccia SCS 3

Componentes de negocio: EBJ (Enterprise Java Beans) y entidades JPA (Java Persistence API ) Se ejecutan en el contenedor de EBJs Componentes (objetos Java) responsables de implementar la lógica de la aplicación EBJ gestionan interacciones con los clientes e implementan reglas de negocio Entidades Java: objetos persistentes que representan los datos de la capa EIS Capa EIS (Enterprise Information Systems) Capa de datos gestiona la información permanente del sistema Bases de datos o aplicaciones empresariales heredadas (legacy systems) que actúan como almacenes de datos Nota: En general, se entiende por componente un objeto Java con restricciones especiales que se ensambla y ejecuta dentro de un servidor de aplicaciones Java EE (contenedor) FJRP, FMBR 2008-2011 ccia SCS 4

(c) Contenedores Java EE Ofrecen servicios a los componentes, actuando como interfaz entre un componente y los aspectos de bajo nivel de cada plataforma Simplifican el desarrollo de los componentes ocultando los detalles complejos Sus tareas concretas depende de la capa a la que pertenezcan Servicios ofrecidos: seguridad, gestión de transacciones, consulta de directorios de nombres (JNDI), etc Tipos de contenedores en la plataforma Java EE Servidor de Aplicaciones Java EE: entorno de ejecución de aplicaciones JEE Proporciona el contenedor Web y/o el contenedor de EBJs Contenedor EBJ (Enterprise Java Beans): gestiona la ejecución (ciclo de vida) de los EJBs Da soporte a los componentes que implementan la capa de lógica de negocio Ofrece servicios de control de acceso y seguridad, control de transacciones y ejecución concurrente, etc Nota: Hay otras alternativas que ofrecen funcionalidades similares para implementar la lógica de negocio sin tener que usar EJBs (ej.: framework Spring) Ejemplos libres: JBoss, OpenEJB,... Contenedor Web: gestiona la ejecución de los servlets y paginas JSP Da soporte a los componentes que implementan la capa Web API de Servlets, APIs JSP, JSTL, Framework JSF, JavaBeans Ejemplos libres: Tomcat, Jetty,... Contenedor aplicación cliente: ofrece la infraestructura necesaria para la ejecución del cliente FJRP, FMBR 2008-2011 ccia SCS 5

(d) APIs de Java EE 6.0 Java EE se basa en Java SE Todas las APIS de Java SE están disponibles En Java EE se definen nuevas API específicas pare el desarrollo de sistemas distribuidos multicapa Algunas han acabado pasando a Java SE (ej. JDBC, JPA) En Java EE 6.0 se introducen el concepto de profiles los servidores de aplicaciones no están obligados a implementar todas las APIs de la especificación 1. Web profile: incluye sólo parte de las APIs, fundamentalmente las orientadas a construcción de aplicaciones Web en Java a) APIs incluidas: Servlet 3.0, JSF 2.0, JSP 2.2, JSTL 1.2, CDI, EJB 3.1 lite, JPA, JTA, BeanValidation b) Omite: EJB 3.1 full, APIs de servicios web (JAX-WS, JAX-RS), JCA, JMS, APIs de seguridad, etc 2. Full profile: incluye todas las APIs de la especificación FJRP, FMBR 2008-2011 ccia SCS 6

Tecnologías y APIs más relevantes Enterprise Java Beans (ver. 3.1): Definición de componentes EJB que ejecutan los procesos de negocio session beans: componentes de negocio que gestionan la conversación con el cliente Ofrecen un punto de entrada (interfaz) mediante el cual los clientes (Web, escritorio) 8invocan los procesos de la lógica de negocio < con estado (stateful session bean) 3 tipos: sin estado (stateless session bean) : singleton (singleton session bean) Permiten la invocación local (dentro del contenedor JEE) y/o remota (mediante RMI/IIOP) message-driven beans: componentes de negocio que reciben y gestionan invocaciones asíncronas Nota: hasta J2EE 1.4 existían los entity beans, desde JEE 5 han sido reemplazados por las entidades JPA (objetos persistentes) Java Persistence API (JPA) (ver. 2.0): soporte estándar para persistencia de objetos Permite definir un mapeo objeto-relacional para tipos de entidades (mediante anotaciones o ficheros XML) Entidad: objeto Java que representa los datos almacenados en una tupla de una BD JPA gestiona la consulta, carga, modificación y escritura de entidades Salva las diferencias entre modelo relacional y modelo Orientado a Objetos Se asienta sobre el API JDBC (acceso a BD SQL) Contexts and Dependency Injection for the Java EE Platform (CDI): ampĺıa y generaliza el soporte para la inyección de dependencias y la gestión del ciclo de vida de los objetos basada en contextos. Simplifica la integración de las capas Web (JSF) y de lógica de aplicación (EJB) Java Database Connectivity (JDBC): soporte para acceso a sistemas gestores de base de datos e invocación de sentencias SQL API de Servlets (ver. 3.0): servlets son objetos Java que manejan peticiones HTTP FJRP, FMBR 2008-2011 ccia SCS 7

Java Server Pages (JSP) (ver. 2.2): lenguaje de marcado que combina Java y HTML Internamente se compilan en servlets JSP Standard Tag Library (JSTL) (ver. 1.2): juego de etiquetas estándar para definir páginas JSP a alto nivel Java Server Faces (JSF) (ver 2.0): Framework MVC (modelovista-controlador) basado en componentes del lado servidor. Java API for XML Processing (JAXP) y Java Architecture for XML Binding (JAXB) (ver. 2.2): soporte para el procesamiento de documentos XML Java API for XML Web Services (JAX-WS) (ver. 2.2): soporte para invocación y publicación de Servicios Web (protocolos SOAP, WSDL, UDDI) Java API for RESTful Web Services (JAX-RS) (ver. 1.1): soporte para invocación y publicación de Servicios Web basados en la arquitectura REST Java Naming and Directory Interface (JNDI): soporte para el acceso (inserción y consulta) a servicios de directorio Permite almacenar (asociar nombre) y recuperar información, recursos, referencias a objetos (EJB), etc Otras: Java Message Service(JMS), Java Tansaction API(JTA), Java Mail, Java Authentication and Authorization Service(JAAS),Java EE Connector Architecture (JCA)... FJRP, FMBR 2008-2011 ccia SCS 8