Este projeto implementa um Conversor de Medidas distribuído em Java utilizando o RMI (Remote Method Invocation), permitindo a execução de métodos remotos entre cliente e servidor.
O sistema realiza conversões em diferentes categorias:
- Temperatura: Celsius ↔ Fahrenheit
- Distância: Km ↔ Milhas, Metros ↔ Centímetros
- Peso: Quilogramas ↔ Libras
- Tempo: Horas ↔ Minutos
- Altura: Metros ↔ Pés
O servidor processa as conversões e exibe no console logs de cada operação solicitada pelos clientes.
rmi-application/
├── ClientConverter.java # Aplicação cliente (interface de usuário)
├── ServerConverter.java # Servidor RMI com as implementações de conversão
├── Converter.java # Interface remota (definição dos métodos)
└── README.md
- Java SE
- Java RMI (Remote Method Invocation)
-
Compilar os arquivos Java
javac *.java -
Iniciar o servidor
java ServerConverter
O servidor cria um registro RMI na porta 2001 e fica aguardando conexões de clientes locais.
-
Executar o cliente (em outro terminal)
java ClientConverter
O cliente se conecta ao servidor via
localhost(padrão) e apresenta um menu interativo.
Esta opção demonstra o real comportamento distribuído da aplicação RMI.
-
Descubra o endereço IP local da máquina servidor:
-
No Windows:
ipconfig -
No Linux/macOS:
ifconfig
Exemplo:
IPv4 Address: 192.168.0.105 -
-
Edite a linha no
ServerConverter.java, substituindolocalhostpelo IP da máquina servidor:System.setProperty("java.rmi.server.hostname", "192.168.0.105"); Naming.rebind("rmi://192.168.0.105:2001/Converter", stub); -
Compile novamente e execute o servidor:
javac *.java java ServerConverterO servidor ficará aguardando chamadas remotas na rede.
-
Copie os arquivos
ClientConverter.javaeConverter.javapara o computador cliente.
(não é necessário oServerConverter.java). -
Compile:
javac *.java -
Execute o cliente informando o IP do servidor como argumento:
java ClientConverter 192.168.0.105O cliente se conectará ao servidor remoto pela porta 2001 via RMI.
Se houver bloqueios de conexão:
-
Verifique o firewall e permita conexões Java/RMI na porta 2001.
-
Certifique-se de que ambos os computadores estão na mesma rede.
=== CONVERSOR DE MEDIDAS ===
1 - Celsius -> Fahrenheit
2 - Fahrenheit -> Celsius
3 - Km -> Milhas
4 - Milhas -> Km
...
Escolha uma opcao: 1
Digite o valor a converter: 25
25.00 °C = 77.00 °F
No console do servidor:
Convertendo 25.0 °C para Fahrenheit
O projeto demonstra o uso de RMI (Remote Method Invocation), tecnologia que permite a chamada de métodos em objetos localizados em diferentes máquinas, tornando possível a comunicação entre aplicações distribuídas em Java.
Desenvolvido por Aliana Wakassugui de Paula e Silva, Jamile Hassen Sá e José Lucas Hoppe Macedo
Universidade Estadual do Oeste do Paraná (UNIOESTE)
Disciplina: Sistemas Distribuídos