Arquitectura multicapa

17,063 views

Published on

Arquitectura multicapa

  1. 1. ARQUITECTURA MULTICAPA
  2. 2. Arquitectura de software La programación se consideraba un arte con grandificultad pero con el tiempo se han ido descubriendo y desarrollando formas y guías generales, con base a las cuales se puedan resolver los problemas, llamadasArquitectura de Software, a semejanza de los planos de un edificio o construcción, estas indican la estructura, funcionamiento e interacción entre las partes del software. "más allá de los algoritmos y estructuras de datos de la computación; el diseño y especificación de la estructura global del sistema es un nuevo tipo de problema".
  3. 3. La Arquitectura del Software o LógicaEs el diseño de más alto nivel de la estructura de unsistema.Es un conjunto de patrones y abstracciones coherentesque proporcionan el marcoSe selecciona y diseña con base en objetivos (prefijadospara el sistema de información, funcionales y otros comomantenibilidad, auditabilidad, flexibilidad e interaccióncon otros sistemas de información) y restricciones(limitaciones derivadas de las tecnologías disponiblespara implementar sistemas de información).
  4. 4. La Arquitectura del Software o LógicaUnas arquitecturas son más recomendables deimplementar con ciertas tecnologías mientras que otrastecnologías no son aptas para determinadas arquitecturas.Ejemplo, no es viable emplear una arquitectura desoftware de tres capas para implementar sistemas entiempo real.Define, de manera abstracta, los componentes que llevana cabo alguna tarea de computación, sus interfaces y lacomunicación entre ellos. Toda arquitectura debe serimplementable en una arquitectura física, que consistesimplemente en determinar qué computadora tendráasignada cada tarea.
  5. 5. Programación por capasLa programación por capas es una arquitectura cliente-servidor cuyo objetivo primordial es la separación de lalógica de negocios de la lógica de diseño, es decir separarla capa de datos de la capa de presentación al usuario.La ventaja principal es que el desarrollo se puede llevar acabo en varios niveles, en caso de cambios, sólo se afectaal nivel requerido, sin tener que revisar todo el código.Ejemplo el modelo de interconexión de sistemas abiertos.Permite distribuir el trabajo de creación de una aplicaciónpor niveles, cada grupo de trabajo está totalmenteabstraído del resto de niveles, de forma que basta conconocer la API (Interfaz de programación de aplicaciones)que existe entre niveles.
  6. 6. Programación por capasEn el diseño de sistemas informáticos actual se suelenusar las arquitecturas multinivel o Programación por capas.En dichas arquitecturas a cada nivel se le confía unamisión simple, lo que permite el diseño de arquitecturasescalables (que pueden ampliarse con facilidad en caso deque las necesidades aumenten).El diseño más utilizado actualmente es el diseño en tresniveles (o en tres capas).
  7. 7. Modelo OSI o Modelo de interconexión de sistemas abiertos)Fue desarrollado en 1984 por la(ISO).OSI es una normativa formada porsiete capas que define las diferentesfases por las que deben pasar losdatos para viajar de un dispositivo aotro sobre una red decomunicaciones. Especifica elprotocolo que debe ser usado encada capa. Todo el mundo secomunica entre sí, sin importar lalocalización geográfica o el lenguajeutilizado, únicamente con unasnormas mínimas: Internet.
  8. 8. Modelo OSI o Modelo de interconexión de sistemas abiertos)Los datos reciben una serie de nombres y formatos específicosen función de la capa en la que se encuentren.
  9. 9. Arquitecturas más comunes Generalmente, se adopta una arquitectura para cada sistema deinformación , en función de sus ventajase inconvenientes. Las arquitecturas más universales son: Monolítica Cliente-servidorArquitectura de tres niveles
  10. 10. Monolítica El software se estructura en grupos funcionales muy acoplados. No hay distribución, tanto a nivel físico como a nivel lógico. Está formado por la presentación, los datos y el procesamiento. Es una arquitectura rígida de programación en un solo computador.Es la arquitectura de los primeros S.O., un solo programacompuesto de un conjunto de rutinas entrelazadas. Lascaracterísticas fundamentales son:a) Construcción del programa final a base de módulos compilados separadamente que se unen a través del ligador.
  11. 11. Monolíticac) Carecen de protecciones y privilegios al entrar a rutinas que manejan diferentes aspectos de los recursos de la computadora, como memoria, disco, etc.d) Generalmente están hechos a medida, por lo que son eficientes y rápidos en su ejecución y gestión, pero por lo mismo carecen de flexibilidad para soportar diferentes ambientes de trabajo o tipos de aplicaciones.
  12. 12. MonolíticaVentajas:Muy eficiente ya que se producen pocos cambiosde contexto.Desventajas:Difícil de depurar, un error en una función sepuede manifestar en otra distinta.Difícil de ampliar.
  13. 13. Cliente-servidorDonde el software reparte su carga de cómputo en dospartes independientes pero sin reparto claro de funciones.Surge con las redes, planteando un modelo versátil,modular basado en mensajes que permite incrementar laflexibilidad, la escalabilidad y la ínteroperación de lossistemas.El cliente se define como el PROCESO que requiere unservicio en particular.El servidor se define como el PROCESO que provee dichoservicio. Una misma máquina puede actuar como cliente yservidor al mismo tiempo.
  14. 14. Cliente-servidorVENTAJAS Aprovecha mejor el ancho de banda Aprovecha en mayor medida el hardware Mayor seguridad y autonomía Mejor manejo de la concurrencia Permite que los clientes trabajen GUI (Interfaz Gráfica de Usuario) mientras el servidor se centra en los procesos centrales
  15. 15. Cliente-servidorEjemplos: Servidor Web (Apache, IIS) Cliente Web(IExplorer, Netscape Navigator, Mozilla) Cliente WEBServidor WEB Protocolo, Servidor FTP (SFTP) Cliente FTP(Cute FTP, WS FTP) Cliente FTP Servidor FTP ProtocoloServidor IRC (IRC Server) Cliente IRC (Mirc, Pirch) ClienteIRC Servidor IRC Protocolo Servidor de Bases de datos(Interbase, Oracle, SyBase, MySql, SQL Server, Postgress)Cliente de Base de Datos (IBManager,IBConsole) ClienteInterbase Servidor InterBase Protocolo Interacción declientes y servidores Servidor DB (InterBase) Servidor WEB(Apache) Servidor de Aplicaciones (PHP) Clientes WEBServidor de DB (MySQL) Cliente Interbase (IBmanager)Cliente Win32 (SkyCell)
  16. 16. Arquitectura de tres niveles o capasEspecialización de la arquitectura cliente-servidor donde la carga se divide entres partes (o capas) con un reparto clarode funciones: para la presentación (interfaz de usuario), para el cálculo (donde se encuentra modelado el negocio) y para el almacenamiento (persistencia).Una capa (conjunto de componentes de un aplicativo quese dedican a una labor en particular) solamente tienerelación con la siguiente.
  17. 17. Arquitecturas más comunesGeneralmente, se adopta una arquitectura para cadasistema de información , en función de sus ventajas einconvenientes. Las arquitecturas más universales son:Monolítica. Donde el software se estructura en gruposfuncionales muy acoplados.Cliente-servidor. Donde el software reparte su carga decómputo en dos partes independientes pero sin repartoclaro de funciones.Arquitectura de tres niveles. Especialización de laarquitectura cliente-servidor donde la carga se divide entres partes (o capas) con un reparto claro de funciones:una capa para la presentación (interfaz de usuario), otrapara el cálculo (donde se encuentra modelado el negocio)y otra para el almacenamiento (persistencia). Una capasolamente tiene relación con la siguiente.
  18. 18. CLIENTE SERVIDOR DE 3 CAPAS - MulticapaAgrega una capa intermedia (middle tier) quepermite priorización y gestión depeticiones, gestión de balance, entre otros.Buen manejo de concurrencia con miles deusuarios simultáneos.Protocolos estandarizados permiten granflexibilidad, portabilidad y escalabilidad.Google: Millones de clientes (5’000.000 pordía, 57 por segundo aprox.) Servidor deindexación Servidor de documentos Servidor debalance
  19. 19. CAPA DE PRESENTACIÓN (FrontEnd)Todo aquello que se enfoca en lainteracción con el usuario final.REGLAS DEL NEGOCIO (Bussines rules):Validaciones, restricciones, reglamentos, protocolos y normativas relativas a undominio en particular.
  20. 20. CAPA LÓGICA (Middle Tier, Middleware)Todo aquello que gestiona y hace valer las reglas del negocio
  21. 21. CAPA DE ALMACENAMIENTO (BackEnd)Todos los elementos dedicados a la persistencia del sistema
  22. 22. CLIENTE SERVIDOR DE 2 CAPASLa primera capa encapsula la presentación y lalógica La segunda gestiona el almacenamiento y puede almacenar parte de la lógica (Procedimientos almacenados, triggers) Presentación Lógica Almacenamiento Lógica Buen manejo de concurrencia hasta con 100 usuarios simultáneos aprox. Protocolos propietarios pueden causar problemas de flexibilidad, portabilidad y escalabilidad.

×