Instituto de Computação - UNICAMP

MC705 - Laboratório de Programação de Sistemas

Islene Calciolari Garcia

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:

  1. Lista produtos disponíveis

    Exibe uma lista com os produtos existentes (disponíveis ou não no estoque).

  2. 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)

  3. 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.

  4. 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.

  5. Adiciona Y livros do tipo X no estoque.

    Adiciona produtos no estoque e propaga a informação para outros servidores.

  6. ...

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.