Tema 1: Introducción a Java EE



Documentos relacionados
JAVA 2 ENTERPRISE EDITION

Introducción al Desarrollo de Aplicaciones Empresariales

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

Tema 1: Introducción a J2EE

Tema 1: Introducción a J2EE

Introducción al Desarrollo de Aplicaciones Empresariales

Tema 1. Introducción a Java EE

JAVA EE 5. Arquitectura, conceptos y ejemplos.

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

Tema 5. Plataforma Java EE

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

Diseño e Implementación con J2EE

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

Desarrollo y servicios web Sesión 18

Tema 1: Introducción a J2EE

Capítulo VI. Conclusiones. En este capítulo abordaremos la comparación de las características principales y

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

Introducción al Desarrollo de Aplicaciones Empresariales

Tema 5. Plataforma Java EE

Tema 4: Tecnologías Web Java

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

Versión: 01. Fecha: 01/04/2013. Código: F004-P006-GFPI GUÍA DE APRENDIZAJE Nº 1 1. IDENTIFICACIÓN DE LA GUIA DE APRENDIZAJE

Introducción al Desarrollo de Aplicaciones Empresariales

CentralTECH JAVA EE 7 Desarrollo

Diseño e Implementación con J2EE

ORBERE. Memoria Técnica del Aplicativo de Gestión de la producción para ADIMDE

Tema 1: Introducción

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

Introducción al Desarrollo de Aplicaciones Empresariales

1. INTRODUCCIÓN Y OBJETIVOS

TFC J2EE. Aplicación Web para la gestión de facturación de una empresa de cerrajería. Sara Gutiérrez Melero ITIG Junio de 2012

Desarrollo de Aplicaciones Web con JAVA: J2EE y Struts

Plataforma desarrollo Java Formación elearning tutorizada en castellano. Fabricante: Java Grupo: Desarrollo Subgrupo: Master Java

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

Introducción al Desarrollo de Aplicaciones Empresariales

UNIVERSIDAD DE PIURA

desarrollo. Dentro del desarrollo de la tesis el proceso de modelado del sistema fue hecho con el

Java 7.0 Advanced Application Developer

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

CURSO SUPERIOR DESARROLLO DE COMPONENTES WEB JAVA J2EE

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

Arquitectura de Software

Estilos Arquitectónicos

Caso J2EE. Necesidades del negocio. Arquitectura Luther

Visual Studio 2008 es el conjunto de herramientas de

IFCD05 Desarrollo de Aplicaciones Móviles Java ME


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

INF 473 Desarrollo de Aplicaciones en Java

Capítulo II. Arquitectura del Software

Rafael Doña Gil. Enginyeria Tècnica en Informàtica de Sistemes. Consultor: Jose Juan Rodríguez

Herramientas Libres para Desarrollo de Aplicaciones en la Industria del Software. Por Gustavo González

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

Notas técnicas de JAVA Nro. 7 Tip Breve

TÈCNICO EN PROGRAMACIÒN DE SOFTWARE SERVICIO NACIONAL DE APRENDIZAJE, SENA Material de Apoyo Plataforma.NET LA PLATAFORMA.NET

Herramienta de Gestión Integral de E-Business

Diseño dinámico de arquitecturas de información

DIPLOMATURA DESARROLLO DE APLICACIONES JAVA

Estándares para el Uso de Herramientas de Desarrollo y Plataformas de Aplicaciones Web

CATÁLOGO DE FORMACIÓN

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor.

5.1 Introducción a Servicios Web

Diseño e Implementación con J2EE

Herramienta de Desarrollo Netbeans

POSGRADO EXPERTO.NET DESARROLLO DE SOFTWARE

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

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

Generador GeneXus JAVA

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

BackflipSD Modelo de Diseño

Curso de Spring Framework

Curso Desarrollo Java Web con JSP, Servlets y el MVC

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

11/06/2011. Alumno: José Antonio García Andreu Tutor: Jairo Sarrias Guzman

01. Implementación de proyectos:

Tema Tecnologías de Desarrollo

arquitectura que maneja. Encontraremos también los diferentes servidores que

Seminario de Java. Contenido

ARQUITECTUA DE M2M MIGUEL ÁLVAREZ Y CLARA HERRERO. Documento inicial

SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO

Análisis y diseño del sistema CAPÍTULO 3

Java Avanzado Facultad de Ingeniería. Escuela de computación.

Estilos Arquitectónicos

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

CAPÍTULO 5 IMPLEMENTACIÓN DEL SISTEMA

Estándares para el Uso de Herramientas de Desarrollo y Plataformas de Aplicaciones Web

Gestión de Incidencias

Revista Digital Universitaria. 10 de agosto 2004 Volumen 5 Número 7 ISSN:

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

PROGRAMA FORMATIVO Desarrollo de aplicaciones Móviles Java ME

Aplicaciones web construidas a base de componentes:

Cómo puede ayudarle JBuilder en sus Desarrollos Java?


Pattern Oriented Software Architecture. Whole-Part. Jamir Antonio Avila Mojica César Julio Bustacara Medina. Patrones de Software

Programador en Plataforma Java y XML

MATERIAL DE TRABAJO 1. Evaluación del software

Curso de JavaServer Faces

Tema 1: Introducción a los estándares de portales

Transcripción:

Tema 1: Introducción a Java EE

Índice Arquitecturas características de las aplicaciones empresariales Tecnologías J2EE Alternativas a J2EE Patrones arquitectónicos Model-View-Controller y Layers Recursos en Internet Material de clase

Características de las aplicaciones empresariales (1) Acceso a bases de datos (BD) Normalmente con BD relacionales Transaccionales Propiedades ACID (Atomicity-Consistency-Isolation-Durability) Escalables Deberían poder soportar más carga de trabajo sin necesidad de modificar el software (sólo añadir más máquinas) Disponibilidad Idealmente no deben dejar de prestar servicio Seguras No todos los usuarios pueden acceder a la misma funcionalidad Integración Es preciso integrar aplicaciones construidas con distintas tecnologías

Características de las aplicaciones empresariales (y 2) Tipo de interfaz De entorno de ventanas (clientes standalone): normalmente sólo tiene sentido en intranets Web: En Internet y en intranets Separación clara entre la interfaz gráfica y el modelo Modelo: encapsula la lógica de negocio Ejemplo => aplicación bancaria Modelo: conjunto de clases que nos permiten: crear cuentas, destruirlas, encontrarlas por distintos criterios, hacer transferencias bancarias, etc. El modelo debería ser reusable con distintas interfaces gráficas En el ejemplo de la aplicación bancaria podría haber dos clientes: uno web y otro standalone Arquitecturas multi-capa

Una aplicación con clientes standalone Arquitectura en dos capas (1) Capa 1 Capa 2 Int. gráfica Modelo Base de datos Intranet Int. gráfica Modelo Int. gráfica Modelo

Una aplicación con clientes standalone Arquitectura en dos capas (y 2) Problema Cambios en la implementación de la capa modelo => recompilación de toda la aplicación y reinstalación en clientes Cambios de drivers de acceso a la BD Cambios en la lógica del modelo Cambio de tipo de BD Solución Modelo en servidor intermedio Un cambio en la implementación del modelo sólo afecta al servidor Clientes standalone Sólo disponen de la interfaz gráfica Acceden al servidor que implementa el modelo

Una aplicación con clientes standalone Arquitectura en tres capas Capa 1 Capa 2 Capa 3 Int. gráfica Modelo Serv. modelo Base de datos Int. gráfica Intranet Int. gráfica

Una aplicación web Arquitectura en tres capas Capa 1 Capa 2 Capa 3 Navegador Int. web Modelo Base de datos Serv. ap. web Navegador Internet/ Itranet Navegador

Una aplicación web Arquitectura en cuatro capas Navegador Capa 1 Capa 2 Capa 3 Capa 4 Int. web Serv. ap. web Modelo Serv. modelo Base de datos Navegador Internet/ Intranet Navegador

Comentarios Para una aplicación web, la arquitectura en tres capas es más eficiente En la arquitectura en tres capas, la comunicación entre la interfaz gráfica y el modelo es local En la arquitectura en cuatro capas, la comunicación entre la interfaz gráfica y el modelo es remota Cómo conseguir escalabiliad y disponibilidad? Replicando servidores

Quées J2EE? J2EE es un conjunto de especificaciones de APIs Java para la construcción de aplicaciones empresariales La mayor parte de las abstracciones de las APIs corresponden a interfaces y clases abstractas Existen múltiples implementaciones de distintos fabricantes, incluso algunas Open Source Una aplicación construida con J2EE no depende de una implementación particular Sitio central: http://java.sun.com/j2ee Es necesario distinguir entre J2ME (Java 2 Platform, Micro Edition) Para dispositivos (ej.: PDAs) Ahora renombrado como Java ME J2SE (Java 2 Platform, Standard Edition) Para aplicaciones y applets Ahora renombrado como Java SE J2EE (Java 2 Platform, Enterprise Edition) Se apoya en J2SE Con el paso del tiempo, algunas APIs de J2EE se pasaron (y quizás se sigan pasando) a J2SE Ahora renombrado como Java EE

Principales tecnologías proporcionadas por J2EE (1) JDBC (J2SE) API para acceso a bases de datos relacionales El programador puede lanzar queries (consulta, actualización, inserción y borrado), agrupar queries en transacciones, etc.

Principales tecnologías proporcionadas por J2EE (2) Tecnologías web (J2EE) APIs: Servlets, páginas JSP y JSTL Permiten implementar la interfaz gráfica de una aplicación web Contenedor de aplicaciones web Navegador Aplicaciones web (int. gráf. + modelo ) JDBC BD NOTA: Contenedor = servidor

Principales tecnologías proporcionadas por J2EE (3) EJB (J2EE) API de Persistencia Permite mapear clases persistentes (llamadas entidades ) a una BD relacional Session Beans Permiten implementar fachadas del modelo Pueden tener interfaz local y/o remota Permiten especificar declarativamente las políticas de transacciones y seguridad Facilidad de desarrollo NOTA Con el objetivo de reducir el temario de Java EE, se ha suprimido el tema de EJB (ver http://www.tic.udc.es/~fbellas/teaching/is-2005-2006) La distribución de los ejemplos Java de la asignatura (J2EE- Examples-src) conserva los ejemplos de EJB (con mejoras) Como parte del tema 5 se dará un seminario que proporciona una visión global de esta tecnología

Principales tecnologías proporcionadas por J2EE (4) Arquitectura de una aplicación con clientes standalone Contenedor de componentes EJB Ap. Standalone (int. gráfica) Componentes EJB (modelo) BD

Principales tecnologías proporcionadas por J2EE (5) Arquitectura de una aplicación web con un contenedor completo J2EE (tres capas) Contenedor J2EE Navegador Aplicaciones web (int. gráf.) Componentes EJB (modelo) BD

Principales tecnologías proporcionadas por J2EE (6) Arquitectura de una aplicación web con un contenedor web y un contenedor de EJB (quizás de distinto fabricante) Si los dos contenedores corren en la misma máquina física, se puede considerar como una arquitectura en tres capas Contenedor de aplicaciones web Contenedor de componentes EJB Navegador Aplicaciones web (int. gráf.) Componentes EJB (modelo) BD

Principales tecnologías proporcionadas por J2EE (7) APIs para XML XML (http://www.w3c.org) Lenguaje de tags (similar en sintaxis a HTML) Es extensible (no dispone de tags predefinidos) Permite expresar datos y no aspecto visual (a diferencia de HTML) Ejemplo <?xml version= 1.0 > <forecasts> <city name="cor"> <forecast type="sunny" day="1 month= 10 year= 2001"/> <forecast type="foggy" day="2 month= 10 year= 2001"/> </city> <city name="lug"> <forecast type="rainy" day="1 month= 10 year= 2001"/> <forecast type="rainy" day="2 month= 10 year= 2001"/> </city>... </forecasts>

Principales tecnologías proporcionadas por J2EE (y 8) APIs para XML (cont) Campos de aplicación Intercambio de datos entre aplicaciones heterogéneas Configuración de aplicaciones Generación de aspecto visual (ej.: HTML) a partir de los datos Bases de datos... y muchos otros... JAXP (J2SE) API Java para procesamiento de documentos XML APIs para integración de aplicaciones heterogéneas Principalmente APIs para Servicios Web Tecnologías basadas en XML para la integración de aplicaciones heterogéneas Se explican en Análisis y Diseño Orientado a Objetos (Optativa 2º ciclo)

Implementaciones de J2EE (1) Existen un gran número de fabricantes que venden servidores de aplicaciones certificados J2EE Lista completa en http://java.sun.com/javaee/overview/compatibility.jsp Algunos ejemplos BEA WebLogic Server: http://www.bea.com IBM WebSphere ApplicationServer: http://www.ibm.com Sun Java System Application Server: http://www.sun.com Oracle Application Server: http://www.oracle.com

Implementaciones de J2EE (y 2) Implementaciones Open Source Tomcat (proyecto de Apache): http://tomcat.apache.org Contenedor de aplicaciones web JBoss: http://www.jboss.com Contenedor J2EE GlassFish: https://glassfish.dev.java.net Contenedor J2EE OpenEJB: http://openejb.codehaus.org Contenedor de EJB Geronimo: http://geronimo.apache.org Contenedor J2EE Portabilidad Si una aplicación sólo usa las APIs estándares => es posible instalarla sobre cualquier servidor de aplicaciones conforme a J2EE No se depende de un fabricante!

Alternativas a J2EE (1).NET http://www.microsoft.com/net Define un Common Language Runtime (CLR) y un IL (Intermediate Language) al que todos los lenguajes conformes a.net compilan Idea similar a la máquina virtual de Java y a los bytecodes generados por el compilador de Java, respectivamente Lenguajes Visual Basic.NET, Visual C++.NET, Visual C#.NET, Visual J#.NET, etc. Tecnologías ADO.NET y ASP.NET: similares en concepto a JDBC y JSP, respectivamente APIs para XML y Servicios Web Implementaciones Principalmente la de Microsoft También Mono (Open Source): http://www.mono-project.com

Alternativas a J2EE (y 2) LAMP http://www.onlamp.com Linux + Apache + MySQL +Perl/PHP/Python Perl/PHP/Python Lenguajes tipo Script Acceso a base de datos Tecnologías web Soporte para XML y Servicios Web Requiere menos conocimientos técnicos que J2EE o.net Y la calidad del software? Ruby on Rails http://www.rubyonrails.org Framework Web para el lenguaje Ruby (http://www.rubylang.org) Buen compromiso entre facilidad de desarrollo y calidad de código

Patrones arquitectónicos Model-View-Controller y Layers (1) Cómo se debe diseñar una aplicación empresarial para que sea mantenible y contenga partes reusables? Debería estar diseñada siguiendo la arquitectura que fijan los patrones arquitectónicos Model-View-Controller (MVC) y Layers F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, M. Stal, Pattern-Oriented Software Architecture: A System Of Patterns, John Wiley and Sons, 1996. Un patrón arquitectónico es un patrón de alto nivel que fija la arquitectura global de una aplicación Posteriormente, el diseño hará uso de patrones de diseño para resolver problemas específicos

Patrones arquitectónicos Model-View-Controller y Layers (2) Patrón arquitectónico MVC Separación clara entre el modelo (lógica de negocio) y la vista (interfaz gráfica), gracias a un controlador que los mantiene desacoplados Ventajas: El modelo es reusable con distintas vistas (ej.: una vista web y una con interfaz de ventanas) División clara de trabajo entre los miembros de un equipo, que estará formado por personas con distintos niveles de especialización Patrón arquitectónico Layers El software está estructurado en capas Permite ocultar las tecnologías que usa nuestro software Cuando hay un cambio de versión en una de ellas (o incluso se reemplaza por otra distinta), no tiene impacto sobre las capas superiores División clara de trabajo entre los miembros de un equipo Dará soporte a la arquitectura MVC Ej.: tanto la vista como el controlador nunca conocerán las tecnologías que usa la implementación del modelo

Patrones arquitectónicos Model-View-Controller y Layers (y 3) En esta asignatura nos concentraremos en J2EE y aprenderemos a diseñar aplicaciones empresariales con Arquitectura {MVC + Layers} + múltiples patrones de diseño Fuentes Libro Core J2EE Patterns Java BluePrints (http://java.sun.com/reference/blueprints) La descripción de los anteriores patrones usa EJB, sin embargo gran parte de ellos son aplicables cuando se usa JDBC Muchos patrones se pueden usar con otras tecnologías (e.g..net) Dos grandes ejemplos: MiniBank y MiniPortal, Iremos viendo el diseño del modelo, vista y controlador a medida que avancemos Proporcionan varias versiones de la implementación de la capa modelo (con JDBC y con EJB), sin que ello afecte a la vista y al controlador

Recursos en Internet (1) Sitio central de J2EE http://java.sun.com/javaee Especificaciones, JavaDoc del API, tutoriales, etc. Java BluePrints http://java.sun.com/reference/blueprints Guías de diseño para J2EE The ServerSide.com http://www.theserverside.com Noticias y artículos relacionadas con J2EE

Recursos en Internet (2) Software Java Apache Open Source Usaremos: Maven (sistema de gestión de builds) http://maven.apache.org Tomcat (implementación de servlets y JSP) http://tomcat.apache.org Standard TagLibs (implementación de JSTL) http://jakarta.apache.org/taglibs Struts (implementación de MVC sobre servlets y JSP) http://struts.apache.org Disponibles en el DVD de IS y ADOO

Recursos en Internet (3) Bases de datos MySQL: http://www.mysql.com PostgreSQL: http://www.postgresql.org Disponibles en el DVD de IS y ADOO J2SE http://java.sun.com/j2se Máquina y compilador de Java Disponible en el DVD de IS y ADOO

Recursos en Internet (y 4) Eclipse http://www.eclipse.org IDE Disponible en el DVD de IS y ADOO CSS (Cascading Style Sheets) Especificación: http://www.w3.org/style/css Técnicas de diseño http://www.alistapart.com http://www.glish.com/css http://www.csszengarden.com

Material de clase Página web de la asignatura http://www.tic.udc.es/~fbellas/teaching/is Sitio web de apoyo a la parte I (Java EE) de la asignatura Transparencias y código con los ejemplos Enlaces (en Internet) al software usado en el laboratorio DVD de IS y ADOO Contiene todo el software (para Linux y MS-Windows) para realizar las prácticas de las asignaturas Integración de Sistemas (Java EE) Análisis y Diseño Orientado a Objetos