Titulo Estágio
Implementação de uma design pattern para comunicação TCP fiável
Áreas de especialidade
Engenharia de Software
Comunicações, Serviços e Infraestruturas
Local do Estágio
DEI
Enquadramento
A crescente importância da Internet na vida das pessoas e nos negócios aumenta a necessidade de aplicações distribuídas confiáveis de grande escala. No coração da maioria das aplicações distribuídas que precisam de confiabilidade, encontramos o protocolo TCP (Transmission Control Protocol). No entanto, se a conectividade for interrompida durante algum tempo, a conexão TCP irá perder-se, tornando muito difícil qualquer tipo de recuperação.
Em muitos programas e protocolos, como o FTP, SSH, X Windows ou streaming de multimédia seria útil manter a interação viva, mesmo depois de uma quebra da ligação TCP. No entanto, a assincronia e a falta de fiabilidade da rede dificultam grandemente a deteção atempada de perdas de mensagens.
Ainda assim, o TCP pode garantir comunicação confiável, com a ajuda de alguns componentes e princípios de programação simples, incluindo alguns design patterns já existentes, que foram desenvolvidos ao longo dos anos para simplificar a programação distribuída.
Objetivo
O objetivo deste estágio será o de garantir a duração das interações TCP num browser, usando design patterns. Um dos componentes chave a utilizar neste trabalho será um buffer circular que armazena todos os dados em trânsito na ligação TCP, com um mínimo de impacto no desempenho. Recorrendo a este buffer e aos padrões referidos anteriormente, poderemos criar um novo padrão de comunicação que suporte múltiplos clientes em simultâneo e capaz de restabelecer ligações TCP sem qualquer perda de dados. No caso do browser, a ideia será garantir que, depois duma falha, tanto o browser como o servidor consigam retomar a transmissão de dados, a partir do ponto em que estavam, sem envolvimento do utilizador. Esta abordagem será particularmente útil para as tags de streaming
Plano de Trabalhos - Semestre 1
Estudo do estado da arte e familiarização com a design pattern atualmente existente (meses 1-2)
Implementação da design pattern no browser (meses 3-4)
Escrita do relatório intermédio (mês 5)
Plano de Trabalhos - Semestre 2
Inclusão de características adicionais, como segurança ou multi-threading (meses 6-7)
Avaliação experimental (meses 8-9)
Escrita do relatório final (mês 10)
Condições
Estágio não remunerado.
Orientador
Filipe Araújo & Fernando Barros
filipius@uc.pt 📩