M6C / M6D

Programación de Redes

Los temas del curso, con las diapositivas y el material de cada clase. Ver el mapa del temario

Introducción

Sistemas distribuidos, sus modelos y los bloques que los componen.

Multi-threading

Ejecución de threads, los problemas que traen y los mecanismos para manejar la concurrencia.

Sockets

El mecanismo que sirve de base para el resto de los mecanismos de comunicación del curso.

  1. Del mensaje al protocolo

    Repaso, refactors y protocolo custom.

  2. Envío de archivos

    Protocolo, configuración y envío de archivos por bloques.

  3. Excepciones

    Excepciones en el cliente y el servidor, y cómo arreglarlas.

  4. TcpClient y Stream

    De Socket a TcpClient/TcpListener y Stream, e intro a async.

Asincronía y paralelismo

De la programación paralela basada en threads al modelo asincrónico basado en tareas.

  1. Task y async/await

    Task, async/await, cancelación y paralelismo de datos.

Docker

Empaquetar y correr las aplicaciones en contenedores, y levantar varios juntos con docker compose.

  1. Docker Compose

    Redes, puertos, volúmenes y configuración con .env.

Message-oriented middleware

Un middleware que desacopla la producción y el consumo de mensajes y permite trabajar de forma asincrónica.

  1. RabbitMQ

    MOM y AMQP: colas, work queues, publish/subscribe, filtros y request/reply.

RPC y gRPC

Invocar funciones remotas como si fueran locales, con gRPC y Protocol Buffers.

  1. RPC y gRPC

    Invocar funciones remotas como si fueran locales, con gRPC y Protocol Buffers.

Web API y REST

Construir APIs REST con ASP.NET Core, y las alternativas para tareas largas y notificaciones.

  1. Web API y REST

    Construir APIs REST con ASP.NET Core, y las alternativas para tareas largas y notificaciones.

WebSockets

Comunicación bidireccional sobre una conexión persistente, y en qué se diferencia de una API REST.

  1. WebSockets

    Comunicación bidireccional sobre una conexión persistente, y en qué se diferencia de una API REST.

Diferencias entre mecanismos de comunicación

Cuándo usar sockets, MOM, RPC, REST o WebSockets, y cuándo combinar más de uno.