Está en la página 1de 22

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".
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).
La Arquitectura del Software o Lógica
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.
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.
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).
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.
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.
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
Cliente-servidor
Arquitectura de tres niveles
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.
Monolítica
c) 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.
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.
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.
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
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)
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.
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.
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
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, pr
otocolos y normativas relativas a un
dominio en particular.
CAPA LÓGICA (Middle
Tier, Middleware)

Todo aquello que gestiona y hace valer las


reglas del negocio
CAPA DE ALMACENAMIENTO
(BackEnd)

Todos los elementos dedicados a la


persistencia del sistema
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.

También podría gustarte