Curso Arquitectura J2 Ee Parte1
Upcoming SlideShare
Loading in...5
×
 

Curso Arquitectura J2 Ee Parte1

on

  • 3,894 views

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

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

Statistics

Views

Total Views
3,894
Views on SlideShare
3,884
Embed Views
10

Actions

Likes
1
Downloads
125
Comments
0

2 Embeds 10

http://www.slideshare.net 9
http://businessworldti.wordpress.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Curso Arquitectura J2 Ee Parte1 Curso Arquitectura J2 Ee Parte1 Presentation Transcript

  • 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 multicapa ● Aprender a utilizar las tecnologías J2EE para mejorar la calidad de servicio de los sistemas corporativos
  • 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
  • Problemas de los arquitectos ● Tiempo ● Coste ● Experiencia ● Habilidades ● Visibilidad ● Complejidad ● Cambios
  • LA PRISA MATA
  • 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
  • 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 solución SW
  • 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) – 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)
  • 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
  • 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
  • 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
  • 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
  • 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, ...)
  • 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
  • Plataforma J2EE
  • 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)
  • 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
  • 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
  • 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
  • Contenidos de una aplicación J2EE
  • 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
  • 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
  • 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)
  • Modelos de aplicaciones J2EE ● La arquitectura J2EE es flexible permite la elección de los contenedores a utilizar en cada caso
  • 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, rápida ● Dependiendo del tipo de cliente a utilizar hay una serie de consideraciones a tener en cuenta
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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