Departamento de Lenguajes y Sistemas Informáticos BLOQUE I: Arquitectura del Software Arquitectura Web Tema 3 Arquitectura e Integración de Sistemas Software Curso 2012/2013 Introducción Índice Diseño lógico de la arquitectura Estrategias de diseño Diseño físico de la arquitectura Aplicaciones web Resumen Bibliografía 1
Índice Introducción Diseño lógico de la arquitectura Estrategias de diseño Diseño físico de la arquitectura Aplicaciones web Resumen Bibliografía Introducción Sistema de Información (SI): Sistema diseñado para recoger, almacenar, procesar y distribuir información en el contexto de una organización. A veces llamados aplicaciones empresariales o aplicaciones de gestión. Incluyen: Registros de pacientes. Análisis de costes. Gestión de ventas. Cadenas de suministro. Contabilidad. Etc. No incluyen: Procesadores de texto. Controladores hardware. Juegos. Etc. 2
Introducción Las aplicaciones web más habituales suelen implementar (o ser parte de) un sistema de información. Estos sistemas suelen denominarse Sistemas de Información web (SIW). En este tema nos centraremos en la arquitectura de sistemas de información en general y los sistemas de información web (o simplemente aplicaciones web) en particular. SI SIW Introducción Índice Diseño lógico de la arquitectura Estrategias de diseño Diseño físico de la arquitectura Aplicaciones web Resumen Bibliografía 3
Diseño lógico de la arquitectura Estilo arquitectónico habitual de los SI: Capas Capa 1 Capa 2 Se definen distintas capas en la aplicación de manera que sólo se comunican entre si las capas adyacentes. Capa Capa N Diseño lógico de la arquitectura Estilo arquitectónico habitual de los SI: Capas Es la interfaz de usuario. Hace la información accesible al usuario. Coordina la aplicación, procesa los comandos, toma decisiones, realiza los cálculos y mueve los datos entre las dos capas. Es de donde se obtiene la información y los datos. Suele ser una base de datos, ficheros externos, recursos accesibles a través de la web 4
Sistema de Información Sistema de Información Diseño lógico de la arquitectura Las capas son sólo conceptuales: No tienen por qué corresponderse con la estructura de la implementación. También conocida como vista lógica de la arquitectura. Capa de datos / recursos Diseño lógico de la arquitectura Responsable de presentar información al usuario e interactuar con éste. Capa de datos / recursos La información recibida es procesada mediante comunicación con la capa de lógica (puede realizarse un filtrado previo para comprobar que no hay errores de formato). Suele consistir en la interfaz gráfica de usuario: cuadros de texto, botones, etc. 5
Sistema de Información Sistema de Información Diseño lógico de la arquitectura de aplicación Responsable de implementar las operaciones solicitadas por los clientes a la capa de presentación. Ej: El componente que comprueba sin un cliente se ha registrado en la aplicación. Dependiendo de la complejidad y de la técnica de implementación empleada, también se le conoce como: proceso/lógica/reglas de negocio. Diseño lógico de la arquitectura Responsable de gestionar todos los elementos de información de la aplicación: ficheros planos, XML, bases de datos, recursos web, etc. A veces llamada capa de acceso a datos. En algunas arquitecturas se considera como parte integrante de esta capa aquellos sistemas externos que proporcionan información. 6
Sistema de Información Índice Introducción Diseño lógico de la arquitectura Estrategias de diseño Diseño top-down Diseño bottom-up Diseño físico de la arquitectura Aplicaciones web Resumen Bibliografía Estrategias de diseño Diseño arriba-abajo (top-down) Definir la funcionalidad del sistema desde el punto de vista del cliente. Ir propagando por las capas según las necesidades identificadas en las capas anteriores Ventajas: Desde el principio se tienen claras las funcionalidades y se dirige el desarrollo sobre ellas. Inconvenientes: Sólo es posible aplicarlo a sistemas desarrollados desde cero. Los componentes por lo general son fuertemente acoplados pues se usan en entornos homogéneos. 7
Sistema de Información Índice Introducción Diseño lógico de la arquitectura Estrategias de diseño Diseño top-down Diseño bottom-up Diseño físico de la arquitectura Aplicaciones web Resumen Bibliografía Estrategias de diseño Diseño abajo-arriba (bottom-up) Suele surgir por necesidad más que por elección. Muchos de los sistemas de hoy en día se basan en la integración de productos existentes: aplicaciones externas o sistemas heredados. Sistema heredado (legacy system): aquel que es utilizado en un contexto distinto del que en principio fue concebido. En estos casos no podemos seguir un diseño arriba-bajo pues debemos tener en cuenta la funcionalidad ofrecida por los sistemas que vamos a integrar. 8
Sistema de Información Estrategias de diseño Diseño abajo-arriba (bottom-up) Definir la funcionalidad desde el punto de vista del cliente. Examinar recursos existentes y la funcionalidad que ofrecen. Encapsular la funcionalidad existente. Adaptar la salida de la aplicación a las necesidades del cliente. Ventaja: Los componentes por lo general son poco acoplados y pueden ser reutilizados. Inconveniente: Menor flexibilidad. Viene impuestto por necesidades existentes. Índice Introducción Diseño lógico de la arquitectura Estrategias de diseño Diseño físico de la arquitectura Aplicaciones web Resumen Bibliografía 9
Sistema de Información Diseño físico de la arquitectura Capas vs. niveles Diseño lógica de la arquitectura Capa (Layer) Diseño físico de la arquitectura Nivel (Tier) Existen 4 tipos básicos de arquitecturas: Mononivel (1-tier) 2 niveles (2-tier) 3 niveles (3-tier) N niveles (N-tier) Diseño físico de la arquitectura Arquitectura mononivel (1-tier) 1-Tier: Las capas de presentación, lógica y datos se mezclan en una mismo nivel. Suelen ser cerrados y no presentan ningún tipo de interfaz. Son un ejemplo claro de sistemas heredados. Uso hace décadas. No es la arquitectura usada en aplicaciones web actuales. Ventajas: Eficiencia. Coste casi nulo de despliegue y desarrollo en clientes. Inconveniente: Coste de mantenimiento de la aplicación. Difícil integración. 10
Sistema de Información Diseño físico de la arquitectura Arquitectura mononivel (1-tier) Diseño físico de la arquitectura Arquitectura en 2 niveles (2-tier) La popularización del PC hizo rentable pasar la responabilidad de la capa de presentación al cliente. Se conoce como /Servidor. Servidor Dependiendo de las responsabilidades del cliente se habla de clientes pesados o ligeros. Ejemplo de sistema cliente/servidor: Aplicación de mensajería instantánea. 11
Sistema de Información Diseño físico de la arquitectura Arquitectura en 2 niveles (2-tier) Servidor Diseño físico de la arquitectura Arquitectura en 2 niveles (2-tier) Ventajas: Se pude aprovechar las capacidad de computo del cliente. Permite personalizar la capa de presentación para distintos fines y portarla a distintos entornos (multiplataforma). Eficiencia en el lado del servidor. Servidor Inconvenientes: Protocolos más complejos y gestión de sesiones complican la escalabilidad. Arquitectura inadecuada cuando se necesitan integrar aplicaciones. Ej: integración de messenger y gtalk. 12
Sistema de Información Sistema de Información Diseño físico de la arquitectura Arquitectura en 3 niveles (3-tier) Evolución natural de las dos capas para resolver el problema de la integración de aplicaciones heterogéneas. Middleware La responsabilidad de integrar pasa al middleware, que también se encarga de transacciones, balanceo de carga, replicación, etc. Ejemplos de middleware: (CORBA, DCOM, ESB). Permiten desplegar lógica en otro host. Ventajas: Más escalable. Inconvenientes: Mayor latencia. Diseño físico de la arquitectura Arquitectura en N niveles (N-tier) Middleware Es la arquitectura N-tier escalada tantas veces como sea necesario. La capa de recursos puede ser otro sistema N-tier. Surge de manera natural cuando se desea integrar varios sistemas de información. SI SI SI 13
2 niveles 3 niveles Índice Introducción Diseño lógico de la arquitectura Estrategias de diseño Diseño físico de la arquitectura Aplicaciones web Resumen Bibliografía Aplicaciones web Arquitectura física Las aplicaciones web tienen una arquitectura de 2 o más niveles: BD Servidor web + SGBD BD Servidor web SGBD 14
Evolución Aplicaciones web Dónde se ejecutan las capas lógicas? Servidor Presentación + Lógica + Recursos Recursos Presentación Recursos Lógica + Recursos Presentación Recursos Lógica + Recursos Aplicaciones web Ejemplo: Un Mashup Servidor web + SGBD BD Recursos web 15
Índice Introducción Diseño lógico de la arquitectura Estrategias de diseño Diseño físico de la arquitectura Aplicaciones web Resumen Bibliografía Sistemas de Información y Sistemas de Información web. Diseño lógico en capas: presentación, lógica y recursos. Estrategias de diseño: top-down, bottom-up. Diseño físico en niveles. Tipos de arquitecturas: Mononivel 2-niveles 3-niveles N-niveles Resumen Qué hemos aprendido? Arquitectura física de las aplicaciones web. Correspondencia entre las capas lógicas y niveles físicos en aplicaciones web. 16
Índice Introducción Diseño lógico de la arquitectura Estrategias de diseño Diseño físico de la arquitectura Aplicaciones web Resumen Bibliografía Bibliografía Pressman R. Software Engineering: A Practitioner s Approach. McGraw-Hill. 2009 (7th edition) The Process of Software Architecting, Peter Eeles y Peter Cripps. Addison-Wesley, 2009 Beautiful Architecture: Leading Thinkers Reveal the Hidden Beauty in Software Design, Diomidis Spinellis, Georgios Gousios. O'Reilly Media, Inc., 2009 17
Bibliografía Buschmann F. et al.pattern-oriented Software Architecture. John Wiley & Sons. 1996 Bass L. et al. Software Architecture in Practice Addison-Wesley Professional. 2003 Alonso G. et al. web Services Concepts, Architectures and Applications. Springer. 2004 Disclaimer and Terms of Use All material displayed on this presentation is for teaching and personal use only. Many of the images that have been used in the presentation are Royalty Free images taken from http://www.everystockphoto.com/. Other images have been sourced directly from the Public domain, from where in most cases it is unclear whether copyright has been explicitly claimed. Our intention is not to infringe any artist s copyright, whether written or visual. We do not claim ownership of any image that has been freely obtained from the public domain. In the event that we have freely obtained an image or quotation that has been placed in the public domain and in doing so have inadvertently used a copyrighted image without the copyright holder s express permission we ask that the copyright holder writes to us directly, upon which we will contact the copyright holder to request full written permission to use the quote or images. 18