Curso Arquitectura J2 Ee Parte1

3,420 views
3,276 views

Published on

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

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,420
On SlideShare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
138
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Curso Arquitectura J2 Ee Parte1

  1. 1. ARQUITECTURA Y DISEÑO DE APLICACIONES J2EE Andrés Guerrero andres.guerrero@coit.es
  2. 2. 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
  3. 3. 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
  4. 4. Problemas de los arquitectos ● Tiempo ● Coste ● Experiencia ● Habilidades ● Visibilidad ● Complejidad ● Cambios
  5. 5. LA PRISA MATA
  6. 6. 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
  7. 7. Principios de arquitectura “Divide y vencerás” Julio César “Vamos por partes” Jack “El destripador”
  8. 8. Principios de arquitectura - Capas ● Las capas (layers) es una división lógica de los elementos que componen una solución SW
  9. 9. Principios de arquitectura - Niveles ● Es una división física de la infraestructura de un sistema
  10. 10. 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)
  11. 11. 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
  12. 12. 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
  13. 13. 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
  14. 14. 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
  15. 15. 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, ...)
  16. 16. 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
  17. 17. Plataforma J2EE
  18. 18. 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)
  19. 19. 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
  20. 20. 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
  21. 21. 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
  22. 22. Contenidos de una aplicación J2EE
  23. 23. 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
  24. 24. 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
  25. 25. 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)
  26. 26. Modelos de aplicaciones J2EE ● La arquitectura J2EE es flexible permite la elección de los contenedores a utilizar en cada caso
  27. 27. Modelo de aplicación multicapa
  28. 28. Modelo de aplicación centrada en la Web
  29. 29. CAPA DE CLIENTE
  30. 30. 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
  31. 31. 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
  32. 32. 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
  33. 33. 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
  34. 34. 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
  35. 35. 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
  36. 36. 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
  37. 37. 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
  38. 38. 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
  39. 39. 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
  40. 40. 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

×