Propostas Submetidas - sem aluno

DEI - FCTUC
Gerado a 2024-03-28 18:02:18 (Europe/Lisbon).
Voltar

Titulo Estágio

Implementação de uma design pattern para comunicação distribuída 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 garantir a fiabilidade das aplicações distribuídas ​​de grande escala. No coração da maioria das aplicações distribuídas que precisam de fiabilidade, encontramos os protocolos TCP e HTTP. 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, havendo também limites de tempo associados à interação HTTP.

Para muitas aplicações seria útil manter a interação viva, mesmo que ocorram interrupções na conectividade. Por exemplo, todas as interações que envolvam reservas de recursos ou transferências de dinheiro deveriam ser fiáveis e totalmente controladas e delimitadas pelo programador com uma indicação inequívoca do seu destino para o utilizador (i.e., sucesso ou insucesso).

Objetivo

O problema de garantir que as interações feitas através dum browser sejam fiáveis e perdurem por um tempo definido pelo programador, quer se use streaming de dados sobre o HTTP, quer se use AJAX ou WebSockets é um problema que se assemelha também ao de recuperar ligações TCP que falhem, de forma a permitir que cliente e servidor mantenham o diálogo aberto sem perda de dados.

Na medida em que existe um problema que se repete para diferentes protocolos de comunicação e para diferentes cenários, o objetivo deste trabalho é o de definir um padrão de desenho (design pattern) capaz de capturar aquilo que existe de comum às diferentes soluções para estes problemas.

Será ainda considerado o problema de garantir a invocação de determinadas funções (por exemplo de transferência de dinheiro) no máximo uma vez (at-most-once) e de como é que estas invocações se relacionarão com o padrão de desenho anterior. Novamente, será um objetivo garantir que estas invocações at-most-once terminem com sucesso ou, em alternativa, que o insucesso seja transmitido ao cliente de forma inequívoca, sendo sempre de evitar situações em que haja ausência de resposta por parte do servidor, por haver uma falha na rede.

Plano de Trabalhos - Semestre 1

Estudo do estado da arte e familiarização com a design pattern atualmente existente (meses 1-2)

Conceção do padrão de desenho (meses 3-4)

Escrita do relatório intermédio (mês 5)

Plano de Trabalhos - Semestre 2

Consideração do problema das invocações at-most-once (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 e Fernando Barros
filipius@uc.pt 📩