Se solicita información sobre el paradero del estudiante Arshak Karhanyan

Clase 4

Viernes (Noche, 2026)

Temario

  • Manejo de errores y validaciones.
  • Arquitectura web monolítica (continuación). Repaso del modelo cliente-servidor. Recursos y competencia de recursos.
  • Arquitectura web distribuida: servicios, servicios externos y microservicios. Problemas, oportunidades y riesgos. Protocolos de comunicación y estrategias de integración.

Resumen

Repaso de materiales previos

Canalizamos las dudas sobre los materiales de las clases pasadas

  • Video: Puesta en común Macowins
  • Video y apunte: Patrones de diseño
  • Video y apunte: Cualidades de diseño
  • Video: Strategy y Template
  • Ejercicio QMP Primera iteración

Dejamos también algunas preguntas y respuestas frecuentes al ejercicios del TPI0 Macowins

Por último, conversamos sobre para que nos sirvió Macowins y QMP1, y cómo utilizaremos las próximas entregas de QMP. Comentamos que es importante leer siempre los ejercicios, intentar resolverlos, luego leer la resolución y ver videos de puesta en común (si los hubiera). No ver las soluciones sin intentar resolver el ejercicio antes.

Manejo de Errores y validaciones

Discutimos sobre el manejo de errores y la importancia de realizar validaciones :

  • Conversamos sobre los ejes fundamentales del manejo del error: no ocultarlo, propagarlo ordenadamente yt tratarlo solo cuando sabemos cómo hacerlo.
  • Ideas clave sobre cuándo, dónde y por qué fallar: fail fast, regiones de confianza (estrategia del panal de abeja) y el mantenimiento de consistencia como norte.
  • Comparamos distintos mecanismos de manejo de errores: impresión por pantalla, logging, retorno de valores y lanzamiento de excepciones. Estudiamos en particular el último y por qué es nuestra primera (y muchas veces, única) opción.

Por último, destacamos que el foco de los apuntes está puesto en los errores dentro del dominio, pero las ideas son extrapolables también a la arquitectura física y lógica.

Arquitectura física, lógica y servicios

Durante la clase pasada presentamos la arquitectura cliente-servidor y contamos que la variante Web es la más extendida en el 2026, la cual se caracteriza por el uso de:

  • de internet o intranet como red de comunicación;
  • de HTTP (y derivados como HTTPS) como protocolo de comunicación;
  • de navegadores (en inglés, browsers) como principal (pero no exclusivo) software cliente;
  • de lenguajes y tecnologías vinculadas a los navegadores (HTML, CSS, JS, WebSockets, DOM, XML/JSON, XmlHTTPRequest/Ajax, LocalStorage, CORS, etc) o protocolos que se basan en HTTP (REST, GraphQL, gRPC, OAuth, etc)

En esta sección repasamos y profundizamos estas ideas, para luego estudiar la división de la arquitectura física en servicios:

  1. La variante de Web que vimos (la que se estudia en DDSo) se llama monolítica (en esta materia se estudia en particular Web Monolítica Cliente Liviano mientras que en DDSo se estudia Web Monolítica Cliente Pesado)
  2. Pero ~muchas~ algunas veces nos queda corta: hay que distribuir
  3. Base de datos: la competencia de recursos nos obliga a separar la base y llevarla a un nodo aparte. Irónicamente lo seguiremos considerando una arquitectura web monolítica 😅
  4. Servicios adicionales: a veces separaciones lógicas llevan a separaciones físicas.
  5. Separar en servicios:
  6. implica separa el dominio (N dominios)
  7. No siempre es necesario.
  8. Muchas veces obedece más a una cuestión política, comercial y organizacional que de escalabilidad (ver apunte de cualidades; no confundir con mantenibilidad).
  9. Requiere coordinación: se necesita un orquestador (en principio, en su forma mas simple)
  10. A veces distribuir es una opción, otras veces es una obligación, porque no tenemos control de esos servicios. (Paréntesis: control es un término al que volveremos mucho en la materia)
  11. Distinguimos servicios externos, internos y dentro de éstos últimos, microservicios. Mencionamos sus características.
  12. Mencionamos las estrategias de integración entre servicios
    1. los mismos protocolos de la Web (HTTP & cia; se aprovecha la omnipresencia). APIs REST (a profundizar en segundo cuatrimestre).
    2. Otros protocolos y componentes.
  13. Conversamos sobre riesgos de los servicios externos, tales como el vendor locking, la pérdida de soberanía tecnológica, la (des)protección de datos personales, etc.

Cerramos resignificando la importancia del manejo de errores en una arquitectura (web) distribuida.

Material

Tarea