40
ARQUITECTURA Y DISEÑO DE APLICACIONES J2EE Andrés Guerrero [email protected]

Curso Arquitectura J2 Ee Parte1

Embed Size (px)

DESCRIPTION

Conceptos de arquitectura software, Introducción a la plataforma J2EE, Pautas en el diseño de la capa de cliente

Citation preview

Page 1: Curso Arquitectura J2 Ee Parte1

ARQUITECTURA Y DISEÑO DE APLICACIONES J2EE

Andrés [email protected]

Page 2: Curso Arquitectura J2 Ee Parte1

Objetivos del curso

● Formar para diseñar los sistemas a nivel corporativo● Utilizar J2EE para implantar sistemas multicapa● Aprender a utilizar las tecnologías J2EE para

mejorar la calidad de servicio de los sistemas corporativos

Page 3: Curso Arquitectura J2 Ee Parte1

Conceptos básicos

● ¿Qué es arquitectura y qué es diseño?● Arquitectura:

– Cubre toda la estructura de un sistema

– Escalabilidad, seguridad, portabilidad, rendimiento, fiabilidad, flexibilidad

– Los detalles de implementación están ocultos

● Diseño:– Opera a un nivel de abstracción más bajo

– Trata sobre los detalles de implementación

Page 4: Curso Arquitectura J2 Ee Parte1

Problemas de los arquitectos

● Tiempo● Coste● Experiencia● Habilidades● Visibilidad● Complejidad● Cambios

Page 5: Curso Arquitectura J2 Ee Parte1

LA PRISA MATA

Page 6: Curso Arquitectura J2 Ee Parte1

Fases en el desarrollo SW

● Análisis de requisitos / Alcance del problema– HW, SW, topología de la red, desarrollo, testeo,

entorno de producción

– Generar el modelo de dominio: clases, objetos e interacciones

● Análisis OO/Arquitectura– UML

● Diseño de la arquitectura– Framework, protocolos

● Implementación

Page 7: Curso Arquitectura J2 Ee Parte1

Principios de arquitectura

“Divide y vencerás”Julio César

“Vamos por partes”Jack “El destripador”

Page 8: Curso Arquitectura J2 Ee Parte1

Principios de arquitectura - Capas

● Las capas (layers) es una división lógica de los elementos que componen una solución SW

Page 9: Curso Arquitectura J2 Ee Parte1

Principios de arquitectura - Niveles

● Es una división física de la infraestructura de un sistema

Page 10: Curso Arquitectura J2 Ee Parte1

Características en la arquitectura

● Disponibilidad– Grado de accesibilidad de un sistema (ej: 24x7)

– Relacionado con el rendimiento

● Fiabilidad– Garantizar la integridad y consistencia de una

aplicación y sus transacciones

● Gestionabilidad– Gestionar los recursos de un sistema para garantizar la

disponibilidad y el rendimiento respecto a otros factores (plugins)

Page 11: Curso Arquitectura J2 Ee Parte1

Características en la arquitectura

● Flexibilidad– Acometer cambios en la configuración de la

arquitectura y el HW sin un gran impacto en el sistema

● Rendimiento– Cumplir las funcionalidades en un tiempo

razonable

● Capacidad– Habilidad de un sistema para realizar múltiples

tareas por unidad de tiempo

Page 12: Curso Arquitectura J2 Ee Parte1

Características en la arquitectura

● Escalabilidad– Capacidad de que ante incrementos de

transacciones el sistema cumpla con los requisitos de rendimiento y disponibilidad

● Extensibilidad– Capacidad de extender la funcionalidad

● Validez– Capacidad para predecir o confirmar resultados

en función de determinadas entradas de usuario

Page 13: Curso Arquitectura J2 Ee Parte1

Características en la arquitectura

● Reusabilidad– Poder utilizar un componente en más de un contexto

sin modificarlo internamente

● Seguridad– Garantizar la accesibilidad e integridad de la

información de acuerdo a la política de la empresa

Page 14: Curso Arquitectura J2 Ee Parte1

J2EE - Introducción

● Define un modelo para desarrollar aplicaciones distribuidas

● Basado en un modelo multicapa● Define un conjunto de componentes que pueden

reutilizarse● Destinado para estandarizar y simplificar el

desarrollo de aplicaciones distribuidas● La utilización de componentes es flexible

Page 15: Curso Arquitectura J2 Ee Parte1

Desarrollo de aplicaciones corporativas J2EE - Retos

● Productividad– Equipos de desarrollo con medios de estándar

– Evitar soluciones específicas y arquitecturas propietarias

– Facilitar la división del trabajo

● Integración con sistemas existentes– Legacy systems (CICS, DB2, Mainframes, ...)

Page 16: Curso Arquitectura J2 Ee Parte1

Desarrollo de aplicaciones corporativas J2EE - Retos

● Libertad de elección de herramientas, componentes (Websphere, Weblogic, Jboss, etc)

● Respuesta a la demanda– Disponibilidad, flexibilidad, escalabilidad

– Evitar la necesidad de rediseño, recodificación para conseguir lo anterior

● Mantenimiento de la seguridad– Conseguir un modelo de seguridad integrado en

entornos heterogéneos

Page 17: Curso Arquitectura J2 Ee Parte1

Plataforma J2EE

Page 18: Curso Arquitectura J2 Ee Parte1

Plataforma J2EE

● Modelo de aplicación distribuida multicapa– Capa cliente (navegador)

– Capa de presentación (servlets, JSP)

– Capa de lógica de negocio (EJBs)

– Capa de datos (BD)

Page 19: Curso Arquitectura J2 Ee Parte1

Plataforma J2EE● Gestión de componentes basados en contenedor

– Los contenedores son entornos de ejecución estándares que proveen servicios específicos a componentes

– Por ejemplo: El contenedor web proporciona respuestas a peticiones de clientes (invocando un JSP o servlet)

– Proporcionan selección de comportamiento en tiempo de despliegue

– Los contenedores pueden convivir o no en una misma plataforma

Page 20: Curso Arquitectura J2 Ee Parte1

Plataforma J2EE

● Soporte para componentes de cliente– Páginas HTML estáticas

– HTML generado dinámicamente JSP

– Java applets

– Aplicaciones autónomas (stand-alone) Java o no

– Comunicación con el middle tier por medio de HTTP, HTML, XML

Page 21: Curso Arquitectura J2 Ee Parte1

Plataforma J2EE

● Soporte para componentes de negocio– EJB (Enterprise Java Beans)

– Permite a los desarrolladores concentrarse en la lógica de negocio delegando las complejidades de las transacciones al contenedor

Page 22: Curso Arquitectura J2 Ee Parte1

Contenidos de una aplicación J2EE

Page 23: Curso Arquitectura J2 Ee Parte1

Ventajas de la plataforma J2EE

● Desarrollo y arquitectura más simples– Funcionalidad más fácil de implementar

– Permite especificar comportamientos en tiempo de despliegue

– Permite la división del trabajo

● Integración con los sistemas de información corporativos

– JDBC, JTA, JNDI, JMS, JavaMail, JAXP, CORBA

Page 24: Curso Arquitectura J2 Ee Parte1

Ventajas de la plataforma J2EE

● Múltiples servidores, herramientas, componentes

– Servidores: Glashfish, Websphere, Weblogic,...

– Herramientas: Netbeans, Eclipse, Websphere,...

– Frameworks: Struts, Spring, Hibernate,...

● Fácil escalabilidad– Los contenedores implementan mecanismos para

la escalabilidad de aplicaciones distribuidas

Page 25: Curso Arquitectura J2 Ee Parte1

Ventajas de la plataforma J2EE

● Modelo de seguridad unificado y simplificado– Tanto en los contenedores Web como de EJB la

seguridad puede definirse en los ficheros descriptores de despliegue (flexibilidad)

Page 26: Curso Arquitectura J2 Ee Parte1

Modelos de aplicaciones J2EE

● La arquitectura J2EE es flexible permite la elección de los contenedores a utilizar en cada caso

Page 27: Curso Arquitectura J2 Ee Parte1

Modelo de aplicación multicapa

Page 28: Curso Arquitectura J2 Ee Parte1

Modelo de aplicación centrada en la Web

Page 29: Curso Arquitectura J2 Ee Parte1

CAPA DE CLIENTE

Page 30: Curso Arquitectura J2 Ee Parte1

J2EE – Capa de cliente

● Desde el punto de vista del usuario el cliente es la aplicación

● Debe ser útil, usable, rápida● Dependiendo del tipo de cliente a utilizar hay una

serie de consideraciones a tener en cuenta

Page 31: Curso Arquitectura J2 Ee Parte1

Capa de cliente - Consideraciones

● Consideraciones de la red– Diferentes tipos de conexión

– Latencia

– Ancho de banda

– La red no siempre es fiable

– El cliente ideal se conecta con el servidor sólo lo necesario, transmite la información necesaria y funciona razonablemente bien cuando no puede conectarse

Page 32: Curso Arquitectura J2 Ee Parte1

Capa de cliente - Consideraciones● Consideraciones de seguridad

– Cuando existe un cortafuegos se limita la elección de los protocolos (HTTP, HTTPS) para la comunicación

– Tipo de red: Internet, Intranet → Afecta a la autenticación

Page 33: Curso Arquitectura J2 Ee Parte1

Capa de cliente - Consideraciones

● Consideraciones de la plataforma cliente– Tipo de terminal en el que se visualizará

– Periféricos: Tamaño de la pantalla, ratón, teclado

– Complejidad de las aplicaciones multiplataforma

Page 34: Curso Arquitectura J2 Ee Parte1

Capa de cliente – Directrices generales de diseño

● Aunque la plataforma J2EE recomienda el uso de clientes ligeros la capa cliente puede realizar las siguientes funciones:

– Presentación del interfaz de usuario

– Validar las entradas del usuario

– Comunicarse con el servidor

– Gestionar el estado de la conversación

● Cuantas más funciones tenga la capa de cliente mayor rapidez de respuesta → RIA

Page 35: Curso Arquitectura J2 Ee Parte1

Directrices de diseño para navegadores

● Ventajas de la utilización de navegadores:– Son los clientes más ligeros

– No están afectados por los cambios de la aplicación

– Están en todas partes: Pcs, Móviles, Estaciones de trabajo

Page 36: Curso Arquitectura J2 Ee Parte1

Directrices de diseño para navegadores

● Presentación del interfaz de usuario– Descargan los documentos del servidor

– HTML, XML

– Son estáticos o generados dinámicamente (JSP, servlets)

– Los navegadores ofrecen un entorno familiar al usuario

– Pero ofrecen una limitada interactividad-> requiere muchas conexiones con el servidor

– Javascript

Page 37: Curso Arquitectura J2 Ee Parte1

Directrices de diseño para navegadores

● Validación de las entradas del usuario– Utilizar Javascript (ECMA) para la validación de los

campos del formulario

– El código de Javascript común debe estar incluido en un fichero-> el navegador lo guarda en la caché

– No exime la validación en el lado del servidor

– La aplicación debe funcionar si se desactiva Javascript

Page 38: Curso Arquitectura J2 Ee Parte1

Directrices de diseño para navegadores

● Comunicación con el servidor– Se realiza a través de HTTP(S)

– Métodos GET y POST

– Las peticiones para actualizar datos generalmente son a través de POST

– El API de servlet proporciona el interfaz para atender ambos métodos (doGet, doPost)

– Una aplicación J2EE debe utilizar JSP para generar documentos HTML

Page 39: Curso Arquitectura J2 Ee Parte1

Directrices de diseño para navegadores

● Gestión de la sesión– HTTP es un protocolo de petición-respuesta donde

cada petición es tratada independientemente

– Sesión: Secuencia de peticiones realizadas por un usuario utilizando un único cliente

– Formas de guardar la sesión:● Cookies● Reescritura de URL (URL rewriting)

– Identificador de sesión (jsessionid)

– Los servidores deben manejar el estado de la sesión

Page 40: Curso Arquitectura J2 Ee Parte1

Directrices de diseño para navegadores

● Accesibilidad web– Capacidad de acceso a la web y a sus contenidos por

todas las personas independientemente de la discapacidad que presenten y del contexto de uso (ambientales, tecnológicas)

– Validación semántica del contenido (Test W3C)

– Herramientas de accesibilidad (TAW)

– Relacionado con el posicionamiento en buscadores