Successfully reported this slideshow.
ARQUITECTURA Y DISEÑO DE APLICACIONES J2EE
                Andrés Guerrero
             andres.guerrero@coit.es
Objetivos del curso
●   Formar para diseñar los sistemas a nivel corporativo
●   Utilizar J2EE para implantar sistemas mul...
Conceptos básicos
●   ¿Qué es arquitectura y qué es diseño?
●   Arquitectura:
       –   Cubre toda la estructura de un si...
Problemas de los arquitectos
●   Tiempo
●   Coste
●   Experiencia
●   Habilidades
●   Visibilidad
●   Complejidad
●   Camb...
LA PRISA MATA
Fases en el desarrollo SW
●   Análisis de requisitos / Alcance del problema
       –   HW, SW, topología de la red, desarr...
Principios de arquitectura


    “Divide y vencerás”
         Julio César

    “Vamos por partes”
    Jack “El destripador”
Principios de arquitectura - Capas
●   Las capas (layers) es una división lógica de los
    elementos que componen una sol...
Principios de arquitectura - Niveles
●   Es una división física de la infraestructura de un
    sistema
Características en la arquitectura
●   Disponibilidad
       –   Grado de accesibilidad de un sistema (ej: 24x7)
       – ...
Características en la arquitectura

●   Flexibilidad
       –   Acometer cambios en la configuración de la
           arqu...
Características en la arquitectura

●   Escalabilidad
       –   Capacidad de que ante incrementos de
           transacci...
Características en la arquitectura
●   Reusabilidad
      –   Poder utilizar un componente en más de un contexto
         ...
J2EE - Introducción

●   Define un modelo para desarrollar aplicaciones
    distribuidas
●   Basado en un modelo multicapa...
Desarrollo de aplicaciones
             corporativas J2EE - Retos
●   Productividad
       –   Equipos de desarrollo con m...
Desarrollo de aplicaciones
          corporativas J2EE - Retos
●   Libertad de elección de herramientas,
    componentes (...
Plataforma J2EE
Plataforma J2EE
●   Modelo de aplicación distribuida multicapa
      –   Capa cliente (navegador)
      –   Capa de presen...
Plataforma J2EE
●   Gestión de componentes basados en contenedor
      –   Los contenedores son entornos de ejecución
    ...
Plataforma J2EE
●   Soporte para componentes de cliente
      –   Páginas HTML estáticas
      –   HTML generado dinámicam...
Plataforma J2EE
●   Soporte para componentes de negocio
      –   EJB (Enterprise Java Beans)
      –   Permite a los desa...
Contenidos de una aplicación J2EE
Ventajas de la plataforma J2EE

●   Desarrollo y arquitectura más simples
       –   Funcionalidad más fácil de implementa...
Ventajas de la plataforma J2EE

●   Múltiples servidores, herramientas,
    componentes
       –   Servidores: Glashfish, ...
Ventajas de la plataforma J2EE
●   Modelo de seguridad unificado y simplificado
      –   Tanto en los contenedores Web co...
Modelos de aplicaciones J2EE
●   La arquitectura J2EE es flexible permite la elección
    de los contenedores a utilizar e...
Modelo de aplicación multicapa
Modelo de aplicación centrada en la
               Web
CAPA DE CLIENTE
J2EE – Capa de cliente
●   Desde el punto de vista del usuario el cliente es la
    aplicación
●   Debe ser útil, usable, ...
Capa de cliente - Consideraciones
●   Consideraciones de la red
       –   Diferentes tipos de conexión
       –   Latenci...
Capa de cliente - Consideraciones
●   Consideraciones de seguridad
      –   Cuando existe un cortafuegos se limita la ele...
Capa de cliente - Consideraciones
●   Consideraciones de la plataforma cliente
       –   Tipo de terminal en el que se vi...
Capa de cliente – Directrices
           generales de diseño
●   Aunque la plataforma J2EE recomienda el uso
    de client...
Directrices de diseño para
                    navegadores
●   Ventajas de la utilización de navegadores:
       –   Son l...
Directrices de diseño para
                  navegadores
●   Presentación del interfaz de usuario
       –   Descargan los...
Directrices de diseño para
                    navegadores
●   Validación de las entradas del usuario
       –   Utilizar ...
Directrices de diseño para
                 navegadores
●   Comunicación con el servidor
      –   Se realiza a través de ...
Directrices de diseño para
                  navegadores
●   Gestión de la sesión
       –   HTTP es un protocolo de petic...
Directrices de diseño para navegadores
●   Accesibilidad web
      –   Capacidad de acceso a la web y a sus contenidos por...
Upcoming SlideShare
Loading in …5
×

Curso Arquitectura J2 Ee Parte1

3,591 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
  • Be the first to comment

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

×