PAW

Lic. en Sistemas de Información

PAW

Lic. en Sistemas de Información

Speaker:

Tomás DELVECHIO

tdelvechio@unlu.edu.ar

Arquitectura de
las Aplicaciones

Índice

  • Desarrollo Monolítico
  • Arquitectura de 2 niveles
  • Layer vs Tier
  • Arquitectura de 3 niveles
  • Referencias

Índice

  • Desarrollo Monolítico
  • Arquitectura de 2 niveles
  • Layer vs Tier
  • Arquitectura de 3 niveles
  • Referencias

Aplicaciones Monolíticas

Software donde todos los niveles estan acoplados y se instalan y ejecutan en la misma plataforma

Aplicaciones Monolíticas

Acoplamiento ~ Falta de modularidad

Aplicaciones Monolíticas

Acoplamiento ~ Falta de modularidad

No se puede ejecutar porciones de la app en diferentes dispositivos

Aplicaciones Monolíticas

Ejemplos: App Desktop clásica

Índice

  • Desarrollo Monolítico
  • Arquitectura de 2 niveles
  • Layer vs Tier
  • Arquitectura de 3 niveles
  • Referencias

2 niveles - 2-tier

Expansión de la web

2 niveles - 2-tier

Expansión de la web

Aplicaciones transaccionales

2 niveles - 2-tier

Expansión de la web

Aplicaciones transaccionales

Modelo Cliente / Servidor: Restricciones

2 niveles - 2-tier

Aplicaciones transaccionales

Modelo Cliente / Servidor: Restricciones

No es posible apps monolíticas

2 niveles - 2-tier

Modelo Cliente / Servidor: Restricciones

No es posible apps monolíticas

Separación de responsabilidades

2 niveles - 2-tier

No es posible apps monolíticas

Separación de responsabilidades

Desacople de módulos

2 niveles - 2-tier

Separación de responsabilidades

Desacople de módulos

Presentación o Render

2 niveles - 2-tier

Desacople de módulos

Presentación o Render

Lógica de negocio

2 niveles - 2-tier

Presentación o Render

Lógica de negocio

Acceso a capa de persistencia

2 niveles - 2-tier

¿Comunicación entre ambos procesos?

2 niveles - 2-tier

¿Comunicación entre ambos procesos?

HTTP!!!

2 niveles - 2-tier

Autores plantean un nivel cuando...

2 niveles - 2-tier

Autores plantean un nivel cuando...

Se puede dibujar una linea conceptual que separe responsabilidades

2 niveles - 2-tier

2 niveles - 2-tier

Ejemplos

2 niveles - 2-tier

1 app C/S (2-tier) puede ejecutarse en un único dispositivo

2 niveles - 2-tier

1 app C/S (2-tier) puede ejecutarse en un único dispositivo

1 app monolítica no puede ejecutarse en 2 o mas dispositivos

Índice

  • Desarrollo Monolítico
  • Arquitectura de 2 niveles
  • Layer vs Tier
  • Arquitectura de 3 niveles
  • Referencias

Layer vs Tier

Tier = Nivel

Layer vs Tier

Tier = Nivel

Layer = Capa

Layer vs Tier

Tier = Nivel

Layer = Capa

¿Son lo mismo?

Layer vs Tier

Literatura los usa de forma intercambiable...

Layer vs Tier

Literatura los usa de forma intercambiable...

...a veces.

Layer vs Tier

¿Podemos dibujar la linea de división de dispositivo?

[Fowler,2002]

Layer vs Tier

Layer: Desacople en librerias internas (p.e. MVC)

Tier: Desacople en servicios diferentes (p.e. C/S)

Layer vs Tier

Se pueden usar como sinonimo

Si no hay posibilidad de ambigüedad

Índice

  • Desarrollo Monolítico
  • Arquitectura de 2 niveles
  • Layer vs Tier
  • Arquitectura de 3 niveles
  • Referencias

Arquitectura de 3 niveles

3 componentes con capacidad de ejecutarse en diferentes dispositivos

Arquitectura de 3 niveles

Arquitectura de 3 niveles

Tier 2 puede ser MVC por ejemplo

Arquitectura de 3 niveles

[Erl,2013]

Índice

  • Desarrollo Monolítico
  • Arquitectura de 2 niveles
  • Layer vs Tier
  • Arquitectura de 3 niveles
  • Referencias

Referencias

  • R. C. Martin, Clean architecture: a craftsman’s guide to software structure and design. Prentice Hall, 2018.
  • T. Erl, R. Cope, and A. Naserpour, Cloud computing design patterns. Prentice Hall Press, 2015.
  • M. Fowler, Patterns of enterprise application architecture. Addison-Wesley Longman Publishing Co., Inc., 2002.