Arquitectura del software multicapa | | UPV

Universitat Politècnica de València - UPV
4 Oct 201708:48

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

00:00

🔍 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.

05:01

🏛️ 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

La arquitectura de software se refiere a la planificación y estructuración de los componentes de un sistema informático, como si se tratara del diseño de un edificio. En el video, se menciona que la arquitectura incluye elementos como bases de datos, sistemas operativos, y protocolos de red. Es un concepto clave porque establece las bases de cómo se organizará el desarrollo de una aplicación.

💡Arquitectura multicapa

Es un tipo de arquitectura de software que organiza el sistema en varias capas o niveles de abstracción, donde cada capa tiene una función específica. En el video se utiliza la metáfora de una pirámide, donde cada capa se apoya en la que está debajo y ofrece servicios a la capa superior. Este tipo de arquitectura mejora la organización y la separación de responsabilidades dentro del sistema.

💡Capa de presentación

Es la capa más alta en una arquitectura multicapa, encargada de la interacción con el usuario. En el video se explica que esta capa puede incluir elementos gráficos como botones, ventanas o barras de desplazamiento. Es fundamental porque permite que el usuario interactúe con la aplicación de forma intuitiva.

💡Capa de lógica de negocio

Es la capa intermedia en una arquitectura de software, responsable de la funcionalidad principal del sistema. Según el video, esta capa contiene toda la lógica que define cómo debe operar el sistema, como las reglas de negocio o procesos internos. Es crucial porque gestiona las operaciones clave de la aplicación.

💡Capa de acceso a datos

Esta capa es la encargada de gestionar la persistencia de los datos, es decir, cómo y dónde se almacenan. En el video se mencionan múltiples formatos de persistencia, como bases de datos relacionales, archivos XML o sistemas en la nube. Es importante porque asegura que los datos se guarden de manera adecuada para su posterior uso.

💡Arquitectura cerrada

Es un tipo de arquitectura multicapa en la que cada capa solo puede interactuar con la capa inmediatamente inferior. En el video se sugiere que este enfoque reduce la dependencia entre capas y mejora el acoplamiento, haciendo más fácil manejar los cambios en el sistema sin afectar otras capas. Es recomendada en la mayoría de los casos.

💡Arquitectura abierta

A diferencia de la arquitectura cerrada, en este modelo cualquier capa puede interactuar con otra capa, sin restricciones. Aunque esto puede proporcionar flexibilidad, el video menciona que generalmente se prefiere la arquitectura cerrada porque reduce las dependencias entre capas, lo que facilita el mantenimiento del sistema.

💡Cliente-servidor

Es un ejemplo de arquitectura de dos capas donde los clientes (los usuarios) interactúan con un servidor central. El video describe este modelo como la forma más simple de arquitectura multicapa, con el servidor gestionando las peticiones de los clientes. Es una base para entender arquitecturas más complejas.

💡Reutilización de software

Es la capacidad de usar componentes de software previamente desarrollados en otros proyectos o capas del sistema. En el video se menciona que la separación en capas facilita esta reutilización, ya que cada componente puede ser desarrollado y probado de forma independiente. Este concepto es clave para mejorar la eficiencia del desarrollo.

💡Carga distribuida

Es la capacidad de repartir la carga de trabajo entre varias máquinas o procesos, mejorando el rendimiento del sistema. En el video se señala que una arquitectura multicapa permite distribuir la carga de manera más eficiente, ya que las diferentes capas pueden ejecutarse en distintas máquinas. Esto es esencial en sistemas de gran escala.

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

play00:01

hola mi nombre es antonio garrido y en este vídeo vamos a ver

play00:06

la arquitectura de software multicapa dentro del desarrollo de

play00:10

aplicaciones los objetivos de este vídeo son tres

play00:15

en primer lugar ver qué es lo que se entiende por arquitectura

play00:19

del software o arquitectura de sistema

play00:23

en segundo lugar describiremos las principales características de

play00:27

una arquitectura multicapa y en tercer lugar lo que haremos será

play00:31

diseñar una arquitectura de tres capas

play00:36

por poner un símil que en principio todo el mundo conoce cuando

play00:40

hablamos de arquitectura realmente estamos pensando en la

play00:43

forma de planificar en la forma de proyectar

play00:46

un edificio con todas sus estructuras con sus muros con sus

play00:51

tabiques con las tuberías y demás teniendo en cuenta siempre

play00:55

el entorno físico donde el edificio se va a construir

play01:01

pues bien si nos movemos al apartado de desarrollo de software

play01:05

la arquitectura del software incluye muchos elementos

play01:09

desde un gestor por ejemplo de bases de datos

play01:12

hasta multitud de capas en base a sistemas operativos o en base a

play01:17

apis distintos protocolos de red distintos formatos de almacenamiento

play01:23

tipo html xml etcetera

play01:26

por lo tanto realmente cuando nosotros hablamos de arquitectura

play01:30

de software estamos hablando de un conjunto de elementos como puede

play01:33

ser el análisis el diseño la implementación de las estructuras

play01:39

principalmente de alto nivel y todo lo que implica los elementos

play01:43

arquitectónicos de nuestro sistema con el objetivo de satisfacer

play01:48

los requisitos tanto funcionales como no funcionales del

play01:52

sistema es decir cumplir con las necesidades del cliente

play01:57

dentro de nuestro desarrollo o producto software

play02:03

cuando estamos hablando de una arquitectura multicapa

play02:06

lo que nosotros estamos planteando es una clara organización

play02:11

en base a distintos niveles de abstracción

play02:13

que se conoce también comúnmente como capas o niveles

play02:18

por lo tanto la idea de la de disponer de un conjunto ordenado

play02:22

de elementos elementos o subsistemas

play02:25

cada uno de los cuales está fundamentado

play02:29

en la capa que hay por debajo y proporciona a su vez servicios características

play02:35

a la capa que hay por encima por poner una metáfora bastante sencilla

play02:40

tenemos el ejemplo de la pirámide donde cada nivel se sustenta

play02:45

se apoya en la capa que hay por debajo

play02:48

y a su vez dar soporte a la capa que hay por encima

play02:54

si vamos a plantear una serie de ejemplos de arquitecturas multicapa

play02:59

la más sencilla probablemente es la arquitectura cliente servidor

play03:03

o arquitectura de dos capas donde tenemos un servidor típicamente

play03:08

en ejecución y tenemos un conjunto de clientes que atacan que

play03:12

trabajan contra ese servidor también podemos tener una arquitectura

play03:18

de tres capas donde tenemos una última capa por ejemplo con la gestión

play03:22

de los datos podemos tener un gestor remoto un servidor de aplicaciones

play03:28

y finalmente podemos tener todos los clientes de nuestro sistema

play03:34

si generalizamos esto todavía más estamos hablando de una arquitectura

play03:38

multicapa en la que nosotros estamos distribuyendo todos los elementos

play03:42

de nuestro sistema en una capa de acceso datos

play03:46

en una capa de gestión remota de datos

play03:49

en otra de servidor de aplicaciones por ejemplo a través

play03:53

de la web distribución de la lógica clientes etcétera

play04:01

si nos centramos en la visibilidad de las capas

play04:04

realmente la arquitectura puede ser de dos tipos

play04:07

en primer lugar disponemos de una arquitectura abierta

play04:11

en la que cualquier capa puede utilizar características servicios

play04:15

de cualquier otra capa y por el contrario tenemos una arquitectura

play04:21

cerrada en la que cada capa solamente puede utilizar los servicios

play04:26

de la capa inmediatamente inferior

play04:29

dicho de otra forma la comunicación o interacción entre

play04:33

las capas se está realizando entre capas

play04:36

adyacentes la recomendación en la mayor parte de los casos es trabajar

play04:43

con arquitecturas cerradas ya que están reduciendo la dependencia

play04:47

entre las capas y además mejoran el acoplamiento entre las

play04:51

mismas de alguna forma lo que nos van a ayudar

play04:55

es que al cerrar la interacción a simplemente capas adyacentes

play05:00

cualquier cambio en una capa afecte lo menos posible al resto

play05:09

si nos centramos en la mayor parte de las aplicaciones sofwer

play05:13

que haya igualmente es suelen utilizar una arquitectura de tres

play05:17

capas en primer lugar la capa de arriba representa la capa de presentación

play05:23

o capa de interacción con el usuario

play05:26

puede ser grafica desde el punto de vista de utilización de

play05:29

botones ventanas barras de desplazamiento etcétera o no

play05:35

en segundo lugar tenemos una capa de lógica de negocio

play05:39

que lo que incluye es toda la funcionalidad de nuestro sistema

play05:43

posteriormente tenemos una capa de acceso datos que nos ofrece la

play05:47

persistencia de los datos y esa persistencia puede estar en múltiples

play05:52

formatos por ejemplo puede ser una base de datos relacional

play05:57

puede ser una base de datos orientada a objetos una base de datos

play06:01

híbrida puede ser un archivo de texto o un archivo en formato xml

play06:06

o en formato jason o puede ser simple y llanamente pues

play06:12

un acceso a una capa de persistencia que está en la nube

play06:15

y que se accede mediante la utilización de distintas apis

play06:20

eso sí es importante darse cuenta que

play06:23

a pesar de disponer de estas tres capas

play06:26

no necesariamente siempre vamos a tener que utilizar las tres capas

play06:31

por ejemplo si realmente no nos interesa que nuestra aplicación tenga

play06:36

la persistencia de los datos obviamente la capa de abajo la última

play06:41

capa no será necesaria en cualquier otro caso pues sí que dispondremos

play06:50

bien y como conclusiones indicar que una arquitectura multicapa

play06:55

es interesante desde el punto de vista de desarrollo de software

play06:59

porque nos permite aislar la aplicación

play07:03

la lógica típicamente la presentación el acceso datos

play07:07

en componentes separados y claramente diferenciados

play07:12

esto a su vez nos facilita distribuir la carga

play07:16

entre distintas máquinas o procesos es lo que típicamente aparece

play07:21

en la literatura de disponer de una capa o entender de una capa como

play07:26

una segmentación lógica se puede distribuir en distintos niveles

play07:32

que representan la segmentación física en cualquiera de los dos casos

play07:38

la separación en base a múltiples capas

play07:41

posibilita y mejora el desarrollo y las pruebas en paralelo

play07:47

por múltiples analistas desarrolladores y programadores

play07:51

además de que lógicamente nos permite

play07:54

una mejor distribución y dedicación de los recursos

play07:58

a cada capa correspondiente dicho de otra forma en resumen la

play08:04

separación de capas ayuda a incrementar y mejorar la reutilización

play08:10

de sofwer eso sí hay que tener en cuenta que el separar nuestro

play08:15

sofwer múltiples capas implica un modelo más caro de implementar

play08:20

obviamente si existen más capas hay más líneas de código que implementar

play08:26

y hay una ejecución una interacción entre capas más costosa

play08:32

lo que nos lleva a unos tiempos de ejecución ligeramente superiores

play08:37

es algo por tanto que hay que tener en cuenta cuando nosotros estamos

play08:40

trabajando con una arquitectura multicapa

Rate This

5.0 / 5 (0 votes)

相关标签
arquitectura softwaremulticapadesarrollo aplicacionestres capaslógica de negociopersistencia datoscliente-servidordiseño softwaresistemas distribuidosoptimización código
您是否需要英文摘要?