Está en la página 1de 35

LA ARQUITECTURA

EN CAPAS
TEMAS

● ¿Qué es la arquitectura en
capas?
● Capa de presentación
● Capa lógica (aplicación)
● Capa de persistencia
● Middleware
● Escalabilidad y balanceo

Spre
Aprendizaje esperado
• Describir las responsabilidades asociadas a un servidor web dentro de un modelo arquitectónico.
• Describir las responsabilidades asociadas a la capa lógica dentro de un modelo arquitectónico.
• Describir las responsabilidades asociadas a un servidor de aplicación dentro de un modelo arquitectónico.
• Describir las responsabilidades asociadas a la persistencia de datos dentro de un modelo arquitectónico.
• Describir el rol de la capa de middleware dentro de un modelo arquitectónico.
• Describir el mecanismo de escalabilidad horizontal mediante balanceo dentro de un modelo arquitectónico.
¡Vamos a comenzar!
LA ARQUITECTURA
EN CAPAS
¿Qué es la arquitectura en capas?

En una arquitectura en capas , la aplicación de software se divide en varias capas


horizontales, con cada capa ubicada encima de una capa inferior. Cada capa
depende de una o más capas debajo de ella (dependiendo de si las capas están
abiertas o cerradas), pero es independiente de las capas superiores.

❑ Capas abiertas versus cerradas.


❑ Niveles versus capas.
❑ Ventajas de las arquitecturas en capas.
❑ Desventajas de las arquitecturas en capas.
❑ Arquitectura cliente-servidor (Arquitectura de dos niveles).
❑ Arquitectura de n niveles.
3 capas

La arquitectura en tres capas lo que


hace es dividir el sistema en tres
partes diferenciadas, de tal forma que
cada capa solo se comunique con la
inferior. Esas tres capas se
denominan:

❑ Presentación.
❑ Negocio “Lógica”.
❑ Persistencia.
Capa de presentación
Los componentes de la capa de
presentación implementan la
funcionalidad necesaria para permitir a
los usuarios interactuar con la aplicación.
Los siguientes tipos de
componentes se encuentran
comúnmente en la capa de
presentación:

❑ Interfaz de usuario (UI).


❑ Procesos de interfaz de usuario.
Rol de la capa de presentación

La capa de presentación tiene tres funciones principales:

✔ Dar formato a los datos del dispositivo de origen, o presentarlos, en una


forma compatible para que lo reciba el dispositivo de destino.
✔ Comprimir los datos de forma tal que los pueda descomprimir el
dispositivo de destino.
✔ Encriptar los datos para su transmisión y posterior descifrado al llegar al
dispositivo de destino.
Web Server

El servidor web (también llamado


webserver en inglés) es el software
que se encarga de despachar el
contenido de un sitio web al usuario.

Existen multitud de servidores web, y


entre los más conocidos podemos
encontrar por ejemplo a Apache, IIS,
Nginx o LiteSpeed.
Características de un Web Server

❑ Sistema operativo (Windows, Linux o Unix).


❑ Sistema de archivos.
❑ Servidor HTTP.
❑ Virtual Hosting.
❑ Despacho de servidores estáticos y dinámicos.
❑ Monitoreo de red y límites.
❑ Sistema de seguridad.
Web Server más utilizados

Hoy en día la mayor cuota de mercado la posee IIS


de Microsoft, con cerca de 688 millones de sitios
según los datos del más reciente análisis de
Netcraft. Le siguen Nginx con 358 millones de sitios
y Apache con 313 millones.

❑ IIS
❑ APACHE
❑ NGINX
❑ LITESPEED
Capa lógica (Aplicación)

La definición de los límites de cada capa nos permitirá definir correctamente la


colaboración que proveerá cada una de ellas y descubriremos que la capa intermedia
es inevitablemente la lógica de negocios. Esto permitirá obtener una infraestructura
robusta y lista para la extensión y el crecimiento como proveedora de servicios.
Existen tres tipos de componentes de negocio fundamentales:

❑ Reglas de negocio, implementan la funcionalidad de negocio del sistema.


❑ Entidades de negocio, representan las entidades del sistema.
❑ Workflow, implementan procesos de negocio en los cuales participan entidades y
lógica de negocio.
Elementos que la conforman

La capa de negocio consta de la lógica del sistema: reglas de negocio, workflow


de negocio, operaciones no persistentes. Todas las operaciones persistentes son
delegadas a la capa de acceso de datos.

❑ Reglas de negocio.
❑ Validaciones de los datos.
❑ Comunicaciones entre capas. La entidad de negocio.
❑ Transacciones.
❑ Tratamiento de excepciones en la capa.
❑ Encapsular la capa en servicios.
❑ Control sobre el uso de servicios.
Rol de la capa de aplicación

Cabe aclarar que el usuario normalmente no interactúa directamente con el


nivel de aplicación. Suele interactuar con programas que a su vez interactúan
con el nivel de aplicación, pero ocultando la complejidad subyacente.

❑ Sincroniza las aplicaciones.


❑ Establece acuerdos con respecto a procedimientos para recuperación de
errores.
❑ Establece la disponibilidad de los socios de comunicación deseados.
❑ Además, la capa de aplicación soporta aplicaciones de redes directas e
indirectas.
App server

El marco que une esta relación e


interacción es la Arquitectura de
Aplicaciones Web. En pocas
palabras, el flujo de procesos
generalmente incluye al usuario
que busca una URL, luego de lo
cual el navegador desencadena
una búsqueda.
Arquitectura del servidor web

Los servidores web son intrínsecos al


funcionamiento de las aplicaciones
web, lo que exige la necesidad de un
mayor énfasis en la arquitectura del
servidor web, incluida la capacidad
física del servidor: almacenamiento,
memoria, potencia informática y
rendimiento, además de los niveles
de la aplicación.
Capa de persistencia
El modelo de objetos difiere en muchos aspectos del modelo relacional. La
interfaz que une esos dos modelos se llama asociación objeto-relacional
(ORM en inglés). Una capa de persistencia encapsula el comportamiento
necesario para mantener los objetos. O sea: leer, escribir y borrar objetos
en el almacenamiento persistente (base de datos). La persistencia de la
información es la parte más crítica en una aplicación de software.
Rol de la capa de persistencia

Si la aplicación está diseñada con orientación a objetos, la persistencia se logra por


serialización del objeto o almacenamiento en una base de datos. Las bases de datos
más populares hoy en día son relacionales.

❑ Asociación Objeto-Relacional.
❑ Uso del patrón DAO.
❑ Manejo de la caché.
❑ Permitir la concurrencia de usuarios.
❑ Evitar las referencias circulares entre objetos.
❑ Buen uso de la información oculta.
❑ Actualización en cascada.
Bases de datos

Una base de datos es una herramienta


que recopila datos, los organiza y los
relaciona para que se pueda hacer una
rápida búsqueda y recuperar con ayuda
de un ordenador. Hoy en día, las bases
de datos también sirven para desarrollar
análisis. Las bases de datos más
modernas tienen motores específicos
para sacar informes de datos complejos.
Base de datos ¿en la nube o en local?
Cada vez hay más proveedores que ofrecen la opción
de tener la base de datos en la nube. Esto se debe al
aumento de la demanda de este tipo. Sin embargo,
todavía hay empresas que se deciden por la opción on-
premise (en local). La tendencia a ir a la nube se debe a
varios motivos, entre ellos: la rapidez de
implementación; las facilidades de acceso fuera del
sistema; no tener que hacerse cargo del mantenimiento
de los servidores. Sin embargo, algunas empresas
prefieren tener las bases de datos en local.
Frameworks de persistencia

Los objetivos principales:


❑ Acelerar el proceso de desarrollo.
❑ Reutilizar código ya existente.
❑ Promover buenas prácticas de
desarrollo como el uso de
patrones.
Comparación de las tecnologías

Cada uno de los Frameworks tiene sus pro y sus contra. Vamos a considerar varios
parámetros que ayudarán a decidir la mejor opción posible entre ellos para sus necesidades.

❑ Simplicidad.
❑ Solución completa ORM.
❑ La dependencia de SQL.
❑ Soporte para los lenguajes de consulta.
❑ Rendimiento.
❑ Portabilidad a través de diferentes bases de datos relacionales.
❑ Comunidad de soporte y documentación.
Middleware
Es el software que proporciona un enlace entre aplicaciones de software
independientes. Middleware a veces se llama a la vía que conecta dos
aplicaciones y pasa los datos entre ellas. Los middleware permiten que los
datos contenidos en una base de datos puedan ser accedidos a través de
otra, ahorrando tiempo a los programadores.
¿Qué es un middleware?

El término middleware se refiere a un sistema de software que ofrece servicios y


funciones comunes para las aplicaciones. En general, el middleware se encarga de
las tareas de gestión de datos, servicios de aplicaciones, mensajería, autenticación
y gestión de API.

Ayuda a los desarrolladores a diseñar aplicaciones con mayor eficiencia. Además,


actúa como hilo conductor entre las aplicaciones, los datos y los usuarios.

En el caso de las empresas con entornos de contenedores y multicloud, el


middleware puede rentabilizar el desarrollo y la ejecución de aplicaciones a escala.
¿Por qué es importante el middleware?

Las empresas recurren al middleware como


una forma de abordar esta complejidad y de
agilizar y rentabilizar el desarrollo de
aplicaciones. El middleware admite
entornos de aplicaciones que funcionan de
manera uniforme y sin problemas en una
plataforma altamente distribuida.
¿Cuáles son los tipos de middleware disponibles?
¿Cuáles son los tipos de middleware disponibles?
Rol de un middleware en una arquitectura

❑ Ocultación de la distribución, es decir, el hecho de que


una aplicación se compone generalmente de muchas
partes interconectadas que se ejecutan en ubicaciones
distribuidas.
❑ Cómo ocultar la heterogeneidad de los componentes
de hardware, sistemas operativos y protocolos de
comunicación.
❑ Proporcionar uniformes, estándares, interfaces de alto
nivel a los desarrolladores de aplicaciones e
integradores.
❑ Suministrar un conjunto de servicios comunes a las
diversas funciones de uso general.
Escalabilidad horizontal y balanceo

La escalabilidad horizontal consiste en potenciar el rendimiento del sistema


desde un aspecto de mejora global, a diferencia de aumentar la potencia de
una única parte del mismo. Este tipo de escalabilidad se basa en la
modularidad de su funcionalidad. Por ello suele estar conformado por una
agrupación de equipos que dan soporte a la funcionalidad completa.

Normalmente, en una escalabilidad horizontal se añaden equipos para dar


más potencia a la red de trabajo.
Rol de la capa de balanceo

El balanceo de carga del servidor es el


proceso de distribuir peticiones del servicio a
través de un grupo de servidores.

❑ Minimizar tiempos de respuesta.


❑ Mejorar el desempeño del servicio.
❑ Evitar la saturación.
Balanceadores de carga
Se entiende este concepto, como la técnica usada para dividir el trabajo a
compartir entre varios procesos, ordenadores, u otros recursos.
Balance de Carga por Hardware Balance de carga por Software
❑ A partir de un algoritmo (Round Robin, ❑ Examinan el paquete a nivel del protocolo.
LRU), examina las peticiones HTTP ❑ HTTP para garantizar el mantenimiento de
entrantes y selecciona el más apropiado la sesión de usuario.
entre los distintos clones del sistema. ❑ Distintas peticiones del mismo usuario son
❑ La selección del clon del sistema está
servidas por el mismo clon del servidor.
basada en el algoritmo de sustitución y es
❑ Más lentos que los balanceadores
aleatoria.
❑ La sesión debe de ser mantenida por el Hardware.
❑ Normalmente son soluciones baratas.
desarrollador.
❑ Al ser un proceso hardware, es muy rápido.
Balanceadores de tráfico

El balanceador de cargas de red admite todos


los puertos. Puedes usar el balanceo de cargas
de red para balancear las cargas de tráfico de
TCP y UDP. Debido a que el balanceador de
cargas es un balanceador de cargas de paso,
tus backends finalizan la conexión TCP o los
paquetes UDP balanceados. Por ejemplo,
puedes ejecutar un servidor web HTTPS en tus
backends y usar un balanceo de cargas de red
para enrutar solicitudes a él, y finalizar TLS en
los backends.
¿PREGUNTAS?
GRACIAS POR
LA ATENCIÓN
Nos vemos en la
próxima clase

También podría gustarte