Arquitectura del software multicapa | | UPV
Summary
TLDREn este vídeo, Antonio Garrido explora la arquitectura de software multicapa en el desarrollo de aplicaciones. Los objetivos incluyen entender qué es la arquitectura de software, describir sus características clave y diseñar una arquitectura de tres capas. Se compara con la construcción de un edificio, donde cada capa depende de la inferior. Se analizan ejemplos como la arquitectura cliente-servidor y se destaca la importancia de las arquitecturas cerradas para reducir la dependencia entre capas. Además, se discuten las ventajas y desventajas de este enfoque, como la mejora en el desarrollo y las pruebas, aunque con mayor costo de implementación.
Takeaways
- 🔍 La arquitectura de software es el diseño estructural de sistemas que organiza y planifica elementos como bases de datos, APIs y protocolos.
- 🏗️ La arquitectura multicapa organiza el software en niveles de abstracción, donde cada capa depende de la inferior y proporciona servicios a la superior.
- 🖥️ Ejemplo común de arquitectura multicapa es la arquitectura cliente-servidor (2 capas), o la arquitectura de tres capas (presentación, lógica de negocio, acceso a datos).
- 🎯 El objetivo principal de una arquitectura multicapa es satisfacer tanto los requisitos funcionales como los no funcionales del cliente.
- 🧱 Existen dos tipos de arquitecturas: abierta, donde las capas pueden interactuar libremente, y cerrada, donde solo se comunican con capas adyacentes.
- ⚙️ En las arquitecturas cerradas, se reduce la dependencia entre capas, lo que mejora el acoplamiento y minimiza los efectos de los cambios en una capa sobre las demás.
- 📊 La arquitectura de tres capas permite distribuir la carga entre diferentes máquinas o procesos, lo que facilita el desarrollo y las pruebas en paralelo.
- 🔄 La capa de presentación interactúa con el usuario, la capa de lógica de negocio maneja la funcionalidad, y la capa de acceso a datos gestiona la persistencia.
- 🛠️ La separación en capas mejora la reutilización del software, pero también implica mayor coste de implementación y tiempos de ejecución más altos.
- 💡 Aunque una arquitectura de tres capas es común, no siempre es necesaria; por ejemplo, si no se requiere persistencia de datos, la capa inferior se puede omitir.
Q & A
¿Qué es la arquitectura de software?
-La arquitectura de software es el conjunto de elementos estructurales de alto nivel, como análisis, diseño e implementación, que busca satisfacer los requisitos funcionales y no funcionales de un sistema.
¿Cuál es el objetivo principal de una arquitectura multicapa?
-El objetivo principal es organizar el sistema en diferentes niveles de abstracción, donde cada capa depende de la inferior y proporciona servicios a la capa superior.
¿Cuál es un ejemplo sencillo de arquitectura multicapa?
-Un ejemplo sencillo es la arquitectura cliente-servidor, donde el servidor ejecuta los servicios y los clientes interactúan con él, formando una arquitectura de dos capas.
¿Qué diferencia hay entre una arquitectura abierta y una cerrada?
-En una arquitectura abierta, cualquier capa puede usar servicios de otra capa. En una cerrada, cada capa solo puede interactuar con la capa inmediatamente inferior, reduciendo la dependencia entre capas.
¿Qué beneficios aporta una arquitectura cerrada?
-Una arquitectura cerrada reduce la dependencia entre capas, mejora el acoplamiento y minimiza el impacto de los cambios en una capa sobre el resto del sistema.
¿Cuáles son las tres capas principales en una arquitectura de tres capas?
-Las tres capas principales son: la capa de presentación (interacción con el usuario), la capa de lógica de negocio (funcionalidad del sistema) y la capa de acceso a datos (persistencia de datos).
¿Qué formatos de persistencia de datos pueden usarse en la capa de acceso a datos?
-Los datos pueden persistir en una base de datos relacional, orientada a objetos, híbrida, archivo de texto, XML, JSON o acceso a la nube mediante APIs.
¿Siempre es necesario utilizar las tres capas en una arquitectura de tres capas?
-No, si no se requiere la persistencia de datos, la capa de acceso a datos no es necesaria.
¿Qué ventajas ofrece una arquitectura multicapa para el desarrollo de software?
-Facilita la separación lógica de la aplicación, mejora la reutilización del software, permite el desarrollo paralelo por múltiples equipos y optimiza la distribución de recursos.
¿Qué desventajas tiene el uso de una arquitectura multicapa?
-Implica un mayor costo de implementación, más líneas de código y una interacción más costosa entre capas, lo que puede llevar a tiempos de ejecución ligeramente más altos.
Outlines
🔍 Introducción a la arquitectura de software y objetivos del video
Antonio Garrido introduce el concepto de arquitectura de software y el objetivo del video: explicar qué es la arquitectura de software, describir la arquitectura multicapa y diseñar una arquitectura de tres capas. Se hace una analogía con la planificación de un edificio para ilustrar cómo la arquitectura de software organiza elementos como bases de datos, APIs y protocolos de red para satisfacer los requisitos funcionales y no funcionales del sistema. También menciona la importancia de la organización en niveles o capas, donde cada nivel proporciona servicios a los niveles superiores y depende de los inferiores.
🏛️ Ejemplos y tipos de arquitecturas multicapa
Se explica la organización de sistemas en una arquitectura multicapa, como el modelo cliente-servidor (dos capas) y la arquitectura de tres capas con gestión de datos, servidor de aplicaciones y clientes. También se aborda la arquitectura multicapa más compleja, que distribuye funciones entre la capa de acceso a datos, gestión remota, y servidor de aplicaciones. Se describen dos tipos de arquitecturas: la abierta (donde cualquier capa puede interactuar con otras) y la cerrada (donde solo se puede interactuar con capas adyacentes). Se recomienda el uso de arquitecturas cerradas para reducir dependencias y mejorar el acoplamiento entre capas.
Mindmap
Keywords
💡Arquitectura de software
💡Arquitectura multicapa
💡Capa de presentación
💡Capa de lógica de negocio
💡Capa de acceso a datos
💡Arquitectura cerrada
💡Arquitectura abierta
💡Cliente-servidor
💡Reutilización de software
💡Carga distribuida
Highlights
Introducción a la arquitectura de software multicapa.
Objetivo del video: comprender qué es la arquitectura de software y sus características multicapa.
Comparación de la arquitectura de software con la planificación y construcción de un edificio.
Descripción de los elementos clave de la arquitectura de software, como bases de datos, APIs y sistemas operativos.
El objetivo de la arquitectura de software es satisfacer tanto los requisitos funcionales como no funcionales.
Definición de arquitectura multicapa como una organización de diferentes niveles de abstracción.
Ejemplo de una arquitectura de dos capas: cliente-servidor.
Arquitectura de tres capas: gestión de datos, servidor de aplicaciones y clientes.
Diferencia entre una arquitectura abierta y una arquitectura cerrada.
Recomendación de utilizar arquitecturas cerradas para mejorar el acoplamiento y reducir la dependencia entre capas.
Descripción de la arquitectura de tres capas: capa de presentación, capa de lógica de negocio y capa de acceso a datos.
Posibilidad de no utilizar todas las capas si no es necesario, por ejemplo, si no se necesita persistencia de datos.
Ventajas de la arquitectura multicapa: aislar la presentación, la lógica y el acceso a datos, facilitando el desarrollo y las pruebas.
La segmentación lógica en múltiples capas puede distribuirse en distintos niveles físicos, mejorando la asignación de recursos.
Desventaja de la arquitectura multicapa: mayor coste de implementación y tiempos de ejecución ligeramente superiores.
Transcripts
hola mi nombre es antonio garrido y en este vídeo vamos a ver
la arquitectura de software multicapa dentro del desarrollo de
aplicaciones los objetivos de este vídeo son tres
en primer lugar ver qué es lo que se entiende por arquitectura
del software o arquitectura de sistema
en segundo lugar describiremos las principales características de
una arquitectura multicapa y en tercer lugar lo que haremos será
diseñar una arquitectura de tres capas
por poner un símil que en principio todo el mundo conoce cuando
hablamos de arquitectura realmente estamos pensando en la
forma de planificar en la forma de proyectar
un edificio con todas sus estructuras con sus muros con sus
tabiques con las tuberías y demás teniendo en cuenta siempre
el entorno físico donde el edificio se va a construir
pues bien si nos movemos al apartado de desarrollo de software
la arquitectura del software incluye muchos elementos
desde un gestor por ejemplo de bases de datos
hasta multitud de capas en base a sistemas operativos o en base a
apis distintos protocolos de red distintos formatos de almacenamiento
tipo html xml etcetera
por lo tanto realmente cuando nosotros hablamos de arquitectura
de software estamos hablando de un conjunto de elementos como puede
ser el análisis el diseño la implementación de las estructuras
principalmente de alto nivel y todo lo que implica los elementos
arquitectónicos de nuestro sistema con el objetivo de satisfacer
los requisitos tanto funcionales como no funcionales del
sistema es decir cumplir con las necesidades del cliente
dentro de nuestro desarrollo o producto software
cuando estamos hablando de una arquitectura multicapa
lo que nosotros estamos planteando es una clara organización
en base a distintos niveles de abstracción
que se conoce también comúnmente como capas o niveles
por lo tanto la idea de la de disponer de un conjunto ordenado
de elementos elementos o subsistemas
cada uno de los cuales está fundamentado
en la capa que hay por debajo y proporciona a su vez servicios características
a la capa que hay por encima por poner una metáfora bastante sencilla
tenemos el ejemplo de la pirámide donde cada nivel se sustenta
se apoya en la capa que hay por debajo
y a su vez dar soporte a la capa que hay por encima
si vamos a plantear una serie de ejemplos de arquitecturas multicapa
la más sencilla probablemente es la arquitectura cliente servidor
o arquitectura de dos capas donde tenemos un servidor típicamente
en ejecución y tenemos un conjunto de clientes que atacan que
trabajan contra ese servidor también podemos tener una arquitectura
de tres capas donde tenemos una última capa por ejemplo con la gestión
de los datos podemos tener un gestor remoto un servidor de aplicaciones
y finalmente podemos tener todos los clientes de nuestro sistema
si generalizamos esto todavía más estamos hablando de una arquitectura
multicapa en la que nosotros estamos distribuyendo todos los elementos
de nuestro sistema en una capa de acceso datos
en una capa de gestión remota de datos
en otra de servidor de aplicaciones por ejemplo a través
de la web distribución de la lógica clientes etcétera
si nos centramos en la visibilidad de las capas
realmente la arquitectura puede ser de dos tipos
en primer lugar disponemos de una arquitectura abierta
en la que cualquier capa puede utilizar características servicios
de cualquier otra capa y por el contrario tenemos una arquitectura
cerrada en la que cada capa solamente puede utilizar los servicios
de la capa inmediatamente inferior
dicho de otra forma la comunicación o interacción entre
las capas se está realizando entre capas
adyacentes la recomendación en la mayor parte de los casos es trabajar
con arquitecturas cerradas ya que están reduciendo la dependencia
entre las capas y además mejoran el acoplamiento entre las
mismas de alguna forma lo que nos van a ayudar
es que al cerrar la interacción a simplemente capas adyacentes
cualquier cambio en una capa afecte lo menos posible al resto
si nos centramos en la mayor parte de las aplicaciones sofwer
que haya igualmente es suelen utilizar una arquitectura de tres
capas en primer lugar la capa de arriba representa la capa de presentación
o capa de interacción con el usuario
puede ser grafica desde el punto de vista de utilización de
botones ventanas barras de desplazamiento etcétera o no
en segundo lugar tenemos una capa de lógica de negocio
que lo que incluye es toda la funcionalidad de nuestro sistema
posteriormente tenemos una capa de acceso datos que nos ofrece la
persistencia de los datos y esa persistencia puede estar en múltiples
formatos por ejemplo puede ser una base de datos relacional
puede ser una base de datos orientada a objetos una base de datos
híbrida puede ser un archivo de texto o un archivo en formato xml
o en formato jason o puede ser simple y llanamente pues
un acceso a una capa de persistencia que está en la nube
y que se accede mediante la utilización de distintas apis
eso sí es importante darse cuenta que
a pesar de disponer de estas tres capas
no necesariamente siempre vamos a tener que utilizar las tres capas
por ejemplo si realmente no nos interesa que nuestra aplicación tenga
la persistencia de los datos obviamente la capa de abajo la última
capa no será necesaria en cualquier otro caso pues sí que dispondremos
bien y como conclusiones indicar que una arquitectura multicapa
es interesante desde el punto de vista de desarrollo de software
porque nos permite aislar la aplicación
la lógica típicamente la presentación el acceso datos
en componentes separados y claramente diferenciados
esto a su vez nos facilita distribuir la carga
entre distintas máquinas o procesos es lo que típicamente aparece
en la literatura de disponer de una capa o entender de una capa como
una segmentación lógica se puede distribuir en distintos niveles
que representan la segmentación física en cualquiera de los dos casos
la separación en base a múltiples capas
posibilita y mejora el desarrollo y las pruebas en paralelo
por múltiples analistas desarrolladores y programadores
además de que lógicamente nos permite
una mejor distribución y dedicación de los recursos
a cada capa correspondiente dicho de otra forma en resumen la
separación de capas ayuda a incrementar y mejorar la reutilización
de sofwer eso sí hay que tener en cuenta que el separar nuestro
sofwer múltiples capas implica un modelo más caro de implementar
obviamente si existen más capas hay más líneas de código que implementar
y hay una ejecución una interacción entre capas más costosa
lo que nos lleva a unos tiempos de ejecución ligeramente superiores
es algo por tanto que hay que tener en cuenta cuando nosotros estamos
trabajando con una arquitectura multicapa
تصفح المزيد من مقاطع الفيديو ذات الصلة
Curso de Redes 1.4. Arquitecturas de redes. Descripción de las capas.
Aprende qué es Desarrollo de Software y sus etapas ( Clase fácil )
¿Qué es una API? - La mejor explicación en español
Símil de la arquitectura TCP/IP | | UPV
Plataforma como servicio (Paas)
Angular Microfrontends with NX and Module Federation
5.0 / 5 (0 votes)