Titulo Estágio
Implementação de uma design pattern para comunicação TCP fiável
Áreas de especialidade
Engenharia de Software
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 Transmission Control Protocol (TCP). No entanto, se a conectividade for perdida 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 desconexão do 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. O objetivo deste estágio será o de garantir a duração das interações TCP, usando design patterns.
Objetivo
Para tolerar falhas do TCP, vamos adotar alguns padrões já existentes, que foram desenvolvidos ao longo dos anos para simplificar a programação distribuída. Por exemplo, o Acceptor-Connector, o Publisher-Subscriber, o Líder-Seguidor, o Reactor, o Proactor, e assim por diante. 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. O estagiário deverá implementar a design pattern tolerante a falhas do TCP num browser, de forma a que este ofereça comunicação fiável nas tags
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 📩