Arquitectura multicapa

22
ARQUITECTURA MULTICAPA

Transcript of Arquitectura multicapa

Page 1: Arquitectura multicapa

ARQUITECTURA MULTICAPA

Page 2: Arquitectura multicapa

Arquitectura de software

La programación se consideraba un arte con gran dificultad 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, llamadas Arquitectura 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".

Page 3: Arquitectura multicapa

La Arquitectura del Software o Lógica

Es el diseño de más alto nivel de la estructura de un sistema.

Es un conjunto de patrones y abstracciones coherentes que proporcionan el marco

Se selecciona y diseña con base en objetivos (prefijados para el sistema de información, funcionales y otros como mantenibilidad, auditabilidad, flexibilidad e interacción con otros sistemas de información) y restricciones (limitaciones derivadas de las tecnologías disponibles para implementar sistemas de información).

Page 4: Arquitectura multicapa

Unas arquitecturas son más recomendables de implementar con ciertas tecnologías mientras que otras tecnologías no son aptas para determinadas arquitecturas. Ejemplo, no es viable emplear una arquitectura de software de tres capas para implementar sistemas en tiempo real.

Define, de manera abstracta, los componentes que llevan a cabo alguna tarea de computación, sus interfaces y la comunicación entre ellos. Toda arquitectura debe ser implementable en una arquitectura física, que consiste simplemente en determinar qué computadora tendrá asignada cada tarea.

La Arquitectura del Software o Lógica

Page 5: Arquitectura multicapa

Programación por capas La programación por capas es una arquitectura cliente-servidor cuyo objetivo primordial es la separación de la lógica de negocios de la lógica de diseño, es decir separar la capa de datos de la capa de presentación al usuario.

La ventaja principal es que el desarrollo se puede llevar a cabo en varios niveles, en caso de cambios, sólo se afecta al 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ón por niveles, cada grupo de trabajo está totalmente abstraído del resto de niveles, de forma que basta con conocer la API (Interfaz de programación de aplicaciones) que existe entre niveles.

Page 6: Arquitectura multicapa

Programación por capas

En el diseño de sistemas informáticos actual se suelen usar las arquitecturas multinivel o Programación por capas. En dichas arquitecturas a cada nivel se le confía una misión simple, lo que permite el diseño de arquitecturas escalables (que pueden ampliarse con facilidad en caso de que las necesidades aumenten).

El diseño más utilizado actualmente es el diseño en tres niveles (o en tres capas).

Page 7: Arquitectura multicapa

Modelo OSI o Modelo de interconexión de sistemas abiertos)

Fue desarrollado en 1984 por la (ISO). OSI es una normativa formada por siete capas que define las diferentes fases por las que deben pasar los datos para viajar de un dispositivo a otro sobre una red de comunicaciones. Especifica el protocolo que debe ser usado en cada capa. Todo el mundo se comunica entre sí, sin importar la localización geográfica o el lenguaje utilizado, únicamente con unas normas mínimas: Internet.

Page 8: Arquitectura multicapa

Modelo OSI o Modelo de interconexión de sistemas abiertos)

Los datos reciben una serie de nombres y formatos específicos en función de la capa en la que se encuentren.

Page 9: Arquitectura multicapa

Arquitecturas más comunes

Generalmente, se adopta una arquitectura para cada sistema de

información , en función de sus ventajas e inconvenientes. Las arquitecturas más

universales son:

MonolíticaCliente-servidor

Arquitectura de tres niveles

Page 10: Arquitectura multicapa

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 programa compuesto de un conjunto de rutinas entrelazadas. Las características fundamentales son:

a) Construcción del programa final a base de módulos compilados separadamente que se unen a través del ligador.

b) Buena definición de parámetros de enlace entre las distintas rutinas existentes, que puede provocar mucho acoplamiento.

Page 11: Arquitectura multicapa

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.

Page 12: Arquitectura multicapa

Monolítica

Ventajas:Muy eficiente ya que se producen pocos cambios de contexto.

Desventajas:Difícil de depurar, un error en una función se puede manifestar en otra distinta.Difícil de ampliar.

Page 13: Arquitectura multicapa

Cliente-servidor

Donde el software reparte su carga de cómputo en dos partes independientes pero sin reparto claro de funciones.

Surge con las redes, planteando un modelo versátil, modular basado en mensajes que permite incrementar la flexibilidad, la escalabilidad y la ínteroperación de los sistemas.

El cliente se define como el PROCESO que requiere un servicio en particular.

El servidor se define como el PROCESO que provee dicho servicio. Una misma máquina puede actuar como cliente y servidor al mismo tiempo.

Page 14: Arquitectura multicapa

Cliente-servidor

VENTAJAS

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

Page 15: Arquitectura multicapa

Cliente-servidor

Ejemplos: Servidor Web (Apache, IIS) Cliente Web (IExplorer, Netscape Navigator, Mozilla) Cliente WEB Servidor WEB Protocolo, Servidor FTP (SFTP) Cliente FTP (Cute FTP, WS FTP) Cliente FTP Servidor FTP Protocolo Servidor IRC (IRC Server) Cliente IRC (Mirc, Pirch) Cliente IRC Servidor IRC Protocolo Servidor de Bases de datos (Interbase, Oracle, SyBase, MySql, SQL Server, Postgress) Cliente de Base de Datos (IBManager,IBConsole) Cliente Interbase Servidor InterBase Protocolo Interacción de clientes y servidores Servidor DB (InterBase) Servidor WEB (Apache) Servidor de Aplicaciones (PHP) Clientes WEB Servidor de DB (MySQL) Cliente Interbase (IBmanager) Cliente Win32 (SkyCell)

Page 16: Arquitectura multicapa

Arquitectura de tres niveles o capas

Especialización de la arquitectura cliente-servidor donde la carga se divide en tres partes (o capas) con un reparto claro de 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 que se dedican a una labor en particular) solamente tiene relación con la siguiente.

Page 17: Arquitectura multicapa

Arquitecturas más comunes

Generalmente, se adopta una arquitectura para cada sistema de información , en función de sus ventajas e inconvenientes. Las arquitecturas más universales son:Monolítica. Donde el software se estructura en grupos funcionales muy acoplados.Cliente-servidor. Donde el software reparte su carga de cómputo en dos partes independientes pero sin reparto claro de funciones.Arquitectura de tres niveles. Especialización de la arquitectura cliente-servidor donde la carga se divide en tres partes (o capas) con un reparto claro de funciones: una capa para la presentación (interfaz de usuario), otra para el cálculo (donde se encuentra modelado el negocio) y otra para el almacenamiento (persistencia). Una capa solamente tiene relación con la siguiente.

Page 18: Arquitectura multicapa

CLIENTE SERVIDOR DE 3 CAPAS - Multicapa

Agrega una capa intermedia (middle tier) que permite priorización y gestión de peticiones, gestión de balance, entre otros. Buen manejo de concurrencia con miles de usuarios simultáneos.Protocolos estandarizados permiten gran flexibilidad, portabilidad y escalabilidad.

Google: Millones de clientes (5’000.000 por día, 57 por segundo aprox.) Servidor de indexación Servidor de documentos Servidor de balance

Page 19: Arquitectura multicapa

CAPA DE PRESENTACIÓN (FrontEnd)

Todo aquello que se enfoca en la interacción con el usuario final.

REGLAS DEL NEGOCIO (Bussines rules): Validaciones, restricciones, reglamentos, protocolos y normativas relativas a un dominio en particular.

Page 20: Arquitectura multicapa

CAPA LÓGICA (Middle Tier, Middleware)

Todo aquello que gestiona y hace valer las reglas del negocio

Page 21: Arquitectura multicapa

CAPA DE ALMACENAMIENTO (BackEnd)

Todos los elementos dedicados a la

persistencia del sistema

Page 22: Arquitectura multicapa

CLIENTE SERVIDOR DE 2 CAPAS

La primera capa encapsula la presentación y la ló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.