MC705 - Laboratório de Programação de Sistemas
João Eduardo Ferreira Bertacchi
Dicas para a primeira apresentação
Este conjunto de itens pode servir de guia para a primeira
apresentação dos grupos. Note que os exemplos estão todos resumidos e
servem apenas para ilustrar os tópicos a serem abordados.
Definição do problema
Escopo do problema
Inicie com as características gerais do seu sistema.
Exemplo: Será implementada uma loja online de venda de
livros. Existem L produtos (livros) diferentes. Cada estoque armazena
no máximo LL cópias de cada produto. Cada cliente pode comprar no
máximo l produtos de cada tipo e ll produtos no total....
Infraestrutura
Exemplo: S estoques localizados em locais físicos diferentes. Cada
estoque possui seu próprio servidor com os dados totalmente
replicados. Eles ligados entre si por uma rede WAN. Os clientes fazem
as compras através de um interface web que acessa o servidor/estoque
mais próximo fisicamente do cliente....
Pode ser interessante a apresentação de uma figura que ilustre o
problema e a infraestrutura.
Operações
Cada grupo deve apresentar uma lista de operações esperadas para o
sistema. O funcionamento de cada operação deve ser detalhado (a
explicação pode ser feita pensando-se em casos de uso da operação).
Exemplo:
- Lista produtos disponíveis
Exibe uma lista com os produtos existentes (disponíveis ou não no
estoque).
- Consulta se o produto X está disponível
O usuário informa o produto desejado e o sistema avisa se o produto
está disponível no estoque (local ou em qualquer outro)
- Adiciona X livros do tipo Y ao carrinho de compras
Caso o produto Y esteja disponível em algum estoque, X unidades são
adicionadas ao carrinho de compras.
- Efetua compra
O cliente informa o endereço de entrega. O sistema verifica se os
produtos do carrinho estão disponíveis nas quantidades desejadas nos
estoques. Caso não haja produtos suficientes em estoque o sistema
informa o cliente do problema para que ele modifique o carrinho de
compras. Caso todos os produtos estejam disponíveis no estoque local,
o sistema subtrai dele os produtos do carrinho. As unidades que não
forem fornecidas pelo estoque local serão fornecidas pelo estoque mais
próximo. Note que mesmo quando o produto não está disponível
localmente, o produto é removido do estoque (operação local) e é
criado um pedido com o produto, a quantidade e o estoque que está
enviando.
- Adiciona Y livros do tipo X no estoque.
Adiciona produtos no estoque e propaga a informação para outros
servidores.
- ...
Definição da solução
Arquitetura do sistema
Exemplo: Serão implementados processos clientes que irão
interagir com os processos servidores via gerentes de réplicas...
Algoritmo e modelo de consistência
Exemplo: Será utilizado o algoritmo proposto por Fulano e
Beltrano, que adota o modelo de consistência Tal. Para as operações
X e Y, o sistema impõe maiores restrições de consistência do que
para as operações W e Z. (...)
É importante descrever casos de inconsistências e como estes serão
contornados.
Linguagem e ferramentas adotadas
Exemplo: O sistema será implementado em Python e utilizará o banco de
dados IC-Database. Será utilizada a biblioteca de replicação
GNU-Replica versão 1.2.3.
Auto-avaliação da solução
Cada grupo deve levantar pontos positivos e negativos da sua solução.
Os seguintes pontos podem ser comentados: desempenho, disponibilidade,
consistência dos dados, tolerância a falhas, confiabilidade e
escalabilidade.