Pular para o conteúdo

Programação Distribuída – RPC com Java

O código está disponível em:

Procedimento remoto ou rpc que consiste em chamar a função o método procedimento que esteja rodando em um outro aplicativo essa chamada é feita via redes de computadores várias linguagens de programação e implementam essa forma de comunicação remota internamente além planeta sócrates só que a gente vai ver que que a gente trabalha no nível mais elevado com

Muitas das das coisas que a gente trabalhava quando trabalha com só que tinha que a gente vai vai ser abstraído ok então é necessário baixar essa biblioteca da paz porque eu tô utilizando ela essa xmlrpc para fazer essa comunicação i have a rede utilizando a chamada de procedimento remoto e os procedimentos que eu vou chamar os métodos serão esses só são

Métodos simples de uma calculadora básica mas poderiam ser meta nos complexos que faria algum processamento aqui de imagem por exemplo do exemplo de processamento de imagem profissionalmente operações que demora um certo tempo e exige um poder computacional então se a gente pode chamar o método simples a gente pode tá mexendo método complexo ele já ter que fazer

É de um aplicativo cliente fornecer os parâmetros necessários para que o esse método execute depois eu obter o resultado da execução deste método e fazer alguma coisa com esse resultado bom então servidor eu vou ter que baixar tanto para o cliente quanto para o servidor para usar essa abordagem eu vou ter que baixar cebola pega aqui da apache xmlrpc ela vai vir

Com conjunto de arquivos. já para o servidor vou utilizar algumas para o cliente a utilizar outros na compilação eu vou precisar somente de dois desses arquivos ou duas dessas bibliotecas que a serra ea como então eu vou ter que ser tá aqui no clash pf porque eu não tô utilizando uma ideia tá utilizando o notepad + + então é necessário para compilar na mão eu

Acertar as bibliotecas que são usadas no no programa no clash o ponto aqui é para ele pegar o próprio o que já tinha no clash pfl não perder e nós de executar eu vou chamar mais bibliotecas porque tem coisas que são feitos nada de executar que não são chamados na hora da compilação por exemplo de encapsulamento desencapsulamento das mensagens oi gente vamos ao

Código é sério do inpc e não servidor baseado na web ele vai utilizar o protocolo http no nível elevado o nível mais baixo a gente vai pegar para ter prejuízo tcp então internamente ele vai utilizar socket tcp ou seja orientado a conexão então começa a primeira linha de código aqui eu creio um servidor web rodando na porta 80 e 85 que vai se registrar no sistema

Operacional nela né nessas primeiras duas linhas eu faço isso depois eu creio aqui um map é um mapeamento de nome para objeto então quê que eu estou fazendo aquela minha calculadora eu vou ter que cumprir lar ela e depois eu vou associar os objetos dela ao nome calc então para o cliente ele nem sabe que existe essa classe calculadora ele vai chamar pelo apelido calc e

Dessa forma vai conseguir acessar os procedimentos métodos e aqui dessa calculadora e e é uma vez que eu fiz esse mapeamento eu certo ele né no meu servidor e inicia uma sair do web tá certo com este mapeamento eu poderia ter outros mapeamentos também calculadora calculadora científica qualquer coisa essa é a que é a servidor então para que o rodi esse programa eu

Criei um vem aqui onde eu só faço da uniu eu não estou ansioso esse objeto na tribunal avaliar porque eu não usava para nós nada eu simplesmente preciso que execute essas linhas de código inclusive poderia ter colocado dentro de um meio também mas dividimos essa forma no consultor para ficar mais bem é mais caro né o ok então para compilar como já expliquei javac

Essas bibliotecas lembrando que o nome da classe tem que ser o mesmo nome do arquivo de classe tem que ser pública e na hora compilação tem que passar o nome em ponto já na hora de rodar java no crash bash aqui o restante das bibliotecas ranca biblioteca que eu não vou te avisar que a cliente vende cinco bibliotecas e que eu só uso quatro não usa atlântico e lá

No no cliente já vou usar o contrário eu vou usar cliente não usar o server em ok e é que eu chamo o arquivo sem ponto já viu que é comando java não é do rpc todo mundo já sabe disso e no meu cliente né como é que funciona não é que agora então no meu cliente como falamos novamente já vou deixar esse aqui é a disponível à disposição para vocês baixarem

Né site da parte a biblioteca é que são as bibliotecas para compilar e que as bibliotecas palavras dar o cliente observe que são bem parecidos corrente servidor que muda que é um servidor que é serve e no cliente aqui é biblioteca cliente. já então no meu cliente é muito parecida com clientes fazer alguém só críticas que nós já vimos o cliente é baseado em

Softez eu tinha que saber onde está o servidor tanto a máquina quanto a porta que ele estava rodando então aqui eu tenho uma url do servidor onde eu indico aqui onde é que ele tá rodando em um servidor web então vai utilizar o protocolo http ah tá rodando no local roxo na minha própria máquina mas se tivesse rodando eu trabalho que não era somente colocar o nome

Ou ip aqui e aqui a porta um servidor da rodando 8185 certo o cliente rpc ele configura aqui ou seta a configuração do cliente para que ele possa se conectar nessa nesse servidor nessa url rodando em local rosto na porta 80 e 85 protocolo http uma vez que foi feita essa configuração e sentada para que este cliente se conecte neste servidor e aqui né é terminamos a

Configuração inicial do cliente só que como que o cliente agora vai fazer chamada aqueles métodos de métodos de calculadora que estão lá no servidor e no cliente você só vai ter somente essa classe você não quer acesso é para mim parça interna de calculadora eu como a gente vai fazer isso a gente vai criar novos métodos certo observe que os métodos lá chama

Adição subtração multiplicação divisão aqui no cliente poderia ser os mesmos nomes mas o que se usar nomes diferentes para a gente ver que não precisa ser exatamente o nome é adição então que eu tô usando somar lá e subtração tô usando subtrair uma explicação tô usando multiplicar divisão tô usando o dividir então é esse meu cliente que eu criei esse

Meu cliente aqui que é um cliente rpc internamente ele já tem implementado é esse e internamente ele já tem implementado método execute que se execute permita permite que eu passe dados para ser executado remotamente e ele precisa de dois parâmetros parâmetro é um parâmetro stringhi indicando qual o procedimento ou método que eu quero chamar então a classical

Que o procedimento é adição que tem implementado no servidor e um array de objetos indicando os parâmetros de entrada que o método recebem no caso nossos métodos lá todos recebem antes somente divisão que retornam w é que poderia ser objeto também não teria problema se objeto ser até mais simples porque possenti eu tenho transformar-se num objeto então tem que

Dar um ele impede aqui se fosse um outro tipo eu poderia colocar ele aqui diretamente sem precisar criar um objeto tô com a objetos em java então um inteiro tá pior já tinha então eu posso em uma rede obra que esquece caso de parâmetros eu posso colocar elementos de qualquer tipo porque tudo ela object mesmo então paramos usar uma rede óptica eu tô passando aqui

Pelo método execute o nome do procedimento que eu quero chamar eu paramos que na rede objetos que ele vai utilizar como parâmetros para esse método adição no caso tradição prometo do subtração então execute não foi eu que criei ele já é implementado dentro do rpc cliente então queriam para cada né mas pode falar poxa mas a representação que ele ficou mais

Complexa do que a do servidor mas independente de como fosse a implementação do servidor e do cliente seria essa é o servidor poderia ser um método gigante e aí a cliente não mudaria nada tá certo e aqui agora é somente o uso né então eu vou chamar os o mack ao método que implementei aqui observe a chamada como se fosse local mas esse essa chamada vai acontecer

Vai ser realizada no servidor até o cria um objeto do tipo dessa classe creio que o nome x eu instância porque eu vou precisar dele distância assim atribuir a uma variável né e aqui eu faço a chamada x pontos o mar passando os parâmetros nos dois que que vai acontecer esse ano e dois vão ser transformados para objetos você colocar dentro de uma rede de obras não

É somar levar eu vou chamar eu vou execute no passado com parâmetros adição e esse array de objetos então isso daí vai ser encapsulado vai ser realizado é ser enviado para o servidor rpc que vai pegar calc para calc é um objeto do tipo calculadora então ele vai lá na calculadora e vai chamar o método correto que o método adição que o cliente setor na hora de

Chamar somar e vai desencapsular desses array de objetos os parâmetros e vai usar os aqui como parâmetros para chamada do método vai chamar o método vai executar o retorno desse método aqui por exemplo foram tipo primitivo mas poderia ser um tipo objeto o próprio o próprio execute já retorno 11 opte também eterno retorno obra que a gente tem que fazer a equação

Político correto tô como é o inteiro eu tô utilizando ele vai fazer coração por inteiro e observe que inclusive até um eu aqui ó dividir ele não retorna um tabu é porque a divisão pode dar o número fracionado então aqui eu vou ter que fazer uma correção para um dando um tá certo bom então aqui um dado é que também é um da boca pronto certinho agora então

É isso rpc.com java e aí e então é só para ficar mais claro aqui aqui é a chamada do método somar passando o valor 12 que talvez na câmera não tinha aparecido antes

Transcrito do video
Programação Distribuída – RPC com Java By Cláudio Rodolfo Sousa de Oliveira