-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
2f9f028
commit f231e75
Showing
6 changed files
with
65 additions
and
0 deletions.
There are no files selected for viewing
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.