Curso Arquitectura J2 Ee Parte1
-
Upload
andresguerrerog -
Category
Technology
-
view
3.092 -
download
0
description
Transcript of Curso Arquitectura J2 Ee Parte1
![Page 2: Curso Arquitectura J2 Ee Parte1](https://reader033.fdocuments.mx/reader033/viewer/2022052506/557b0387d8b42af74a8b4c86/html5/thumbnails/2.jpg)
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](https://reader033.fdocuments.mx/reader033/viewer/2022052506/557b0387d8b42af74a8b4c86/html5/thumbnails/3.jpg)
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](https://reader033.fdocuments.mx/reader033/viewer/2022052506/557b0387d8b42af74a8b4c86/html5/thumbnails/4.jpg)
Problemas de los arquitectos
● Tiempo● Coste● Experiencia● Habilidades● Visibilidad● Complejidad● Cambios
![Page 5: Curso Arquitectura J2 Ee Parte1](https://reader033.fdocuments.mx/reader033/viewer/2022052506/557b0387d8b42af74a8b4c86/html5/thumbnails/5.jpg)
LA PRISA MATA
![Page 6: Curso Arquitectura J2 Ee Parte1](https://reader033.fdocuments.mx/reader033/viewer/2022052506/557b0387d8b42af74a8b4c86/html5/thumbnails/6.jpg)
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](https://reader033.fdocuments.mx/reader033/viewer/2022052506/557b0387d8b42af74a8b4c86/html5/thumbnails/7.jpg)
Principios de arquitectura
“Divide y vencerás”Julio César
“Vamos por partes”Jack “El destripador”
![Page 8: Curso Arquitectura J2 Ee Parte1](https://reader033.fdocuments.mx/reader033/viewer/2022052506/557b0387d8b42af74a8b4c86/html5/thumbnails/8.jpg)
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](https://reader033.fdocuments.mx/reader033/viewer/2022052506/557b0387d8b42af74a8b4c86/html5/thumbnails/9.jpg)
Principios de arquitectura - Niveles
● Es una división física de la infraestructura de un sistema
![Page 10: Curso Arquitectura J2 Ee Parte1](https://reader033.fdocuments.mx/reader033/viewer/2022052506/557b0387d8b42af74a8b4c86/html5/thumbnails/10.jpg)
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](https://reader033.fdocuments.mx/reader033/viewer/2022052506/557b0387d8b42af74a8b4c86/html5/thumbnails/11.jpg)
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](https://reader033.fdocuments.mx/reader033/viewer/2022052506/557b0387d8b42af74a8b4c86/html5/thumbnails/12.jpg)
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](https://reader033.fdocuments.mx/reader033/viewer/2022052506/557b0387d8b42af74a8b4c86/html5/thumbnails/13.jpg)
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](https://reader033.fdocuments.mx/reader033/viewer/2022052506/557b0387d8b42af74a8b4c86/html5/thumbnails/14.jpg)
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](https://reader033.fdocuments.mx/reader033/viewer/2022052506/557b0387d8b42af74a8b4c86/html5/thumbnails/15.jpg)
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](https://reader033.fdocuments.mx/reader033/viewer/2022052506/557b0387d8b42af74a8b4c86/html5/thumbnails/16.jpg)
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](https://reader033.fdocuments.mx/reader033/viewer/2022052506/557b0387d8b42af74a8b4c86/html5/thumbnails/17.jpg)
Plataforma J2EE
![Page 18: Curso Arquitectura J2 Ee Parte1](https://reader033.fdocuments.mx/reader033/viewer/2022052506/557b0387d8b42af74a8b4c86/html5/thumbnails/18.jpg)
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](https://reader033.fdocuments.mx/reader033/viewer/2022052506/557b0387d8b42af74a8b4c86/html5/thumbnails/19.jpg)
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](https://reader033.fdocuments.mx/reader033/viewer/2022052506/557b0387d8b42af74a8b4c86/html5/thumbnails/20.jpg)
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](https://reader033.fdocuments.mx/reader033/viewer/2022052506/557b0387d8b42af74a8b4c86/html5/thumbnails/21.jpg)
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](https://reader033.fdocuments.mx/reader033/viewer/2022052506/557b0387d8b42af74a8b4c86/html5/thumbnails/22.jpg)
Contenidos de una aplicación J2EE
![Page 23: Curso Arquitectura J2 Ee Parte1](https://reader033.fdocuments.mx/reader033/viewer/2022052506/557b0387d8b42af74a8b4c86/html5/thumbnails/23.jpg)
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](https://reader033.fdocuments.mx/reader033/viewer/2022052506/557b0387d8b42af74a8b4c86/html5/thumbnails/24.jpg)
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](https://reader033.fdocuments.mx/reader033/viewer/2022052506/557b0387d8b42af74a8b4c86/html5/thumbnails/25.jpg)
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](https://reader033.fdocuments.mx/reader033/viewer/2022052506/557b0387d8b42af74a8b4c86/html5/thumbnails/26.jpg)
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](https://reader033.fdocuments.mx/reader033/viewer/2022052506/557b0387d8b42af74a8b4c86/html5/thumbnails/27.jpg)
Modelo de aplicación multicapa
![Page 28: Curso Arquitectura J2 Ee Parte1](https://reader033.fdocuments.mx/reader033/viewer/2022052506/557b0387d8b42af74a8b4c86/html5/thumbnails/28.jpg)
Modelo de aplicación centrada en la Web
![Page 29: Curso Arquitectura J2 Ee Parte1](https://reader033.fdocuments.mx/reader033/viewer/2022052506/557b0387d8b42af74a8b4c86/html5/thumbnails/29.jpg)
CAPA DE CLIENTE
![Page 30: Curso Arquitectura J2 Ee Parte1](https://reader033.fdocuments.mx/reader033/viewer/2022052506/557b0387d8b42af74a8b4c86/html5/thumbnails/30.jpg)
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](https://reader033.fdocuments.mx/reader033/viewer/2022052506/557b0387d8b42af74a8b4c86/html5/thumbnails/31.jpg)
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](https://reader033.fdocuments.mx/reader033/viewer/2022052506/557b0387d8b42af74a8b4c86/html5/thumbnails/32.jpg)
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](https://reader033.fdocuments.mx/reader033/viewer/2022052506/557b0387d8b42af74a8b4c86/html5/thumbnails/33.jpg)
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](https://reader033.fdocuments.mx/reader033/viewer/2022052506/557b0387d8b42af74a8b4c86/html5/thumbnails/34.jpg)
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](https://reader033.fdocuments.mx/reader033/viewer/2022052506/557b0387d8b42af74a8b4c86/html5/thumbnails/35.jpg)
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](https://reader033.fdocuments.mx/reader033/viewer/2022052506/557b0387d8b42af74a8b4c86/html5/thumbnails/36.jpg)
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](https://reader033.fdocuments.mx/reader033/viewer/2022052506/557b0387d8b42af74a8b4c86/html5/thumbnails/37.jpg)
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](https://reader033.fdocuments.mx/reader033/viewer/2022052506/557b0387d8b42af74a8b4c86/html5/thumbnails/38.jpg)
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](https://reader033.fdocuments.mx/reader033/viewer/2022052506/557b0387d8b42af74a8b4c86/html5/thumbnails/39.jpg)
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](https://reader033.fdocuments.mx/reader033/viewer/2022052506/557b0387d8b42af74a8b4c86/html5/thumbnails/40.jpg)
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