EN

sd-wavys

sistema distribuído de monitorização oceânica

código fonte ↗
C# ASP.NET Core Blazor RabbitMQ gRPC Protobuf TCP/Sockets SQLite

Contexto

Trabalho da UC de Sistemas Distribuídos, em duas fases: simula uma rede de boias oceânicas (WAVY) que recolhem dados de sensores, enviam-nos a um AGREGADOR que os pré-processa, e este reencaminha os dados a um SERVIDOR central que os persiste e analisa. A primeira fase usava sockets TCP ponto-a-ponto; a segunda evoluiu a comunicação entre a WAVY e o AGREGADOR para publicação/subscrição via RabbitMQ (um tópico por sensor) e introduziu dois microserviços gRPC independentes, de pré-processamento e análise estatística, mantendo o formato de mensagens e o padrão ACK/NACK da primeira fase para não quebrar compatibilidade. Além da interface de consola, o SERVIDOR expõe uma API REST consumida por um painel web em Blazor que permite filtrar os dados recebidos por sensor, WAVY ou intervalo de tempo, pedir novas análises e exportar os resultados filtrados em JSON.

Desafios técnicos

Screenshots