SISTEMAS DISTRIBUÍDOS 3º Projeto - Versão Distribuída da Aplicação usando RPC Prazo de Entrega * 06 de Novembro Descrição do Projeto O trabalho é similar ao anterior, exceto que o mecanismo de socket é substituído pelo mecanismo de RPC (Remote Procedure Call). Neste caso as operações de inversão de string, cálculo do maior divisor e da raiz quadrada se darão via chamadas de procedimentos remotos (um procedimento por operação). Todas as funcionalidades descritas no projeto anterior devem ser mantidas. Você deve também fazer com que o servidor seja capaz de atender a mais de um cliente. Adicionalmente, toda e qualquer especifição contemplada no primeiro projeto acerca da confiabilidade do protocolo deverão ser implementados. Exemplo de programas que utilizam o RPC da Sun: * date.x: arquivo de especificação * proc_svc.c: arquivo com os procedimentos do servidor * clnt.c: cliente rpc (note que contém apenas as chamadas às funções remotas) Nota: para testar o exemplo: * gere os stubs: #> rpcgen date.x * compile os procedimentos do servidor: #> gcc -c proc_svc.c * compile o stub do lado do servidor: #> gcc -c date_svc.c * ligue tudo para gerar o servidor: #> gcc -o servidor proc_svc.o date_svc.o /usr/lib/librpcsvc.a /usr/lib/libnsl.a /usr/lib/libdl.so * compile a função principal do cliente: #> gcc -c clnt.c * compile o stub do lado do cliente: #> gcc -c date_clnt.c * ligue tudo para gerar o cliente: #> gcc -o cliente clnt.o date_clnt.o /usr/lib/librpcsvc.a /usr/lib/libnsl.a /usr/lib/libdl.so