Skip to content

Commit

Permalink
especificação
Browse files Browse the repository at this point in the history
  • Loading branch information
lorenaelias committed Apr 11, 2021
1 parent 2f9f028 commit f231e75
Show file tree
Hide file tree
Showing 6 changed files with 65 additions and 0 deletions.
Binary file removed Admin/__pycache__/helloworld_pb2.cpython-36.pyc
Binary file not shown.
Binary file removed Admin/__pycache__/helloworld_pb2.cpython-38.pyc
Binary file not shown.
Binary file not shown.
Binary file not shown.
63 changes: 63 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# Projeto de Sistemas Distribuídos

Tópicos:

# Arquitetura e Funcionamento

![images/projeto.drawio-0.svg](images/projeto.drawio-0.svg)

## ⇒ Usuários

O projeto consiste em uma aplicação com dois tipos de usuários, os **clientes** e os **administradores**.

## ⇒ Mecanismos de Comunicação

- Cliente <-> Portal Cliente - Sockets
- Administrador <-> Portal administrativo - RPC
- Portais <-> Cache - *Publish-Subscribe*/Fila de mensagens
- Cache <-> Banco de dados - Comunicação em grupo

# Pré-requisitos

Para executar o sistema é preciso ter instaladas as seguintes ferramentas:

- Python 3
- gRPC
- Mosquitto
- paho-mqtt

# Etapa 1 - Usuários/Portais

## ⇒ Portal Cliente

- O Cliente possui identificador único, CID
- O Cliente tem um "saco" de dados com diversas entradas armazenados no sistema, que podem ser manipuladas individualmente ou em conjunto.
- inserirTarefa(CID, "titulo da tarefa", "descrição da tarefa"): Sucesso/Falha
- modificarTarefa(CID, "titulo da tarefa", "nova descrição da tarefa"): Sucesso/Falha
- listarTarefas(CID): Lista de tuplas (titulo,Descrição)
- apagarTarefas(CID): Sucesso/Falha
- apagarTarefa(CID, "titulo da tarefa"): Sucesso/Falha
- Os dados são mantidos em uma tabela hash (BigInteger,Bytes)
- A comunicação entre cliente e portal cliente se dá por sockets TCP/IP.

## ⇒ Portal Administrativo

- O Administrador gera um CID para cada cliente, baseado em seu nome ou outro atributo único.
- O Administrador manipula clientes
- inserirCliente(CID, "dados do cliente"): Sucesso/Falha
- modificarCliente(CID, "novos dados do cliente"): Sucesso/Falha
- recuperarCliente(CID): "dados do cliente"
- apagarCliente(CID): Sucesso/Falha
- Os dados são mantidos em uma tabela hash (BigInteger, Bytes)
- A comunicação entre Administrador e portal Administrativo se dá por gRPC.

## ⇒ Sincronização dos Bancos de Dados

- A sincronização entre as bases de dados dos portais acontece via MQTTP ou Kafka.
- As bases poderão ficar inconsistentes, mas isso será resolvido na etapa 2.

## ⇒ Aplicação para os usuários finais

- Clientes e Administradores podem fazer manipulações nos dados por meio de aplicações.

Próximas etapas em breve
2 changes: 2 additions & 0 deletions images/projeto.drawio-0.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit f231e75

Please sign in to comment.