Este repositório contém uma implementação do método Publish-Subscribe, um metodo sobre comunicação em Sistemas Distribuídos, desenvolvido em Python.
Este código foi desenvolvido para a apresentação de um minicurso da matéria COM242 - Sistemas Distribuídos do curso de Ciência da Computação da Universidade Federal de Itajubá - UNIFEI.
Rafael Antunes Vieira - [email protected] - 2018000980
Flávio Mota Gomes - [email protected] - 2018005379
Alef Aparecido de Paula Bispo - [email protected] - 2018008460
O arquivo servidor.py contém as atribuições dos publishers e do broker. A aplicação utiliza de sockets para realizar o envio das mensagens e dados de comunicação entre publishers, broker e subscribers. Trata-se de uma implementação centralizada. Também é utilizada a biblioteca PyPubSub para gerenciar toda a lógica do sistema de Publish-Subscribe, fazendo o papel do broker na implementação.
Os arquivos cliente1.py, cliente2.py e cliente3.py são iguais, a única coisa que difere entre os arquivos são as portas de conexão, sendo que cada porta se refere a um cliente diferente. Destaca-se que o cliente desta aplicação corresponde ao subcriber e que foram utilizados aqui três deles, mas que, devido à característica de escalabilidade do método, basta uma adaptação para inserção de quantos mais clientes forem necessários.
Nesta pasta estão os arquivos de persistência de inscrições dos clientes. Nesta implementação, ocorre a persistência das inscrições e desinscrições realizadas pelos subscribers e o resultado dessas ações está dentro desta pasta, tendo cada um dos clientes um arquivo próprio. Por exemplo, o cliente1 tem seus dados persistidos em DadosCliente1.txt, e assim sucessivamente para os demais clientes.
Neste documento contém um tutorial de como funciona Publisher-Subscribe, como foi implementado e a logica do código.
- Instale o Python 3 https://www.python.org/downloads/
- Instale a biblioteca PyPubSub (https://pypi.org/project/PyPubSub/) com o comando: "pip install PyPubSub"
- Abra o Terminal Linux ou o CMD do Windows e execute a aplicação do servidor: Terminal Linux: "python3 servidor.py" ou CMD Windows: "servidor.py"
- Abra o Terminal Linux ou o CMD do Windows e execute a aplicação dos clientes: Terminal Linux: "python3 cliente1.py" ou CMD Windows: "cliente1.py"
- Execute todos os clientes conforme a etapa 4
Assista ao video de demostração da execução da aplicação por meio do seguinte link: https://www.youtube.com/watch?v=nizucEyP6ws