Sei sulla pagina 1di 3

Introduccin Las llamadas a procedimiento remoto o RPC (Remote Procedure Call) son un mecanismo de comunicacin que permiten a un cliente

comunicar con un servidor dentro del marco de un sistema distribuido ocultando ciertos detalles de la comunicacin. Es un mtodo bien conocido para transferir el control de una parte del programa a otra, con un retorno del control a la primera

Para el presente informe se busc en el internet un ejemplo de un RPC en java en la que interacta un servidor y un cliente el cual el servidor enva 2 nmeros y el cliente hace la suma y devuelve el resultado

Objetivos: Objetivo General Copilar y ejecutar la suma de dos nmeros en java mediante RPC. Objetivos Especficos Conocer que es un RPC Entender cmo se compila y ejecuta un RPC y una aplicacin. Comprender el uso y manejo de variables y operaciones aritmticas. Interpretar el concepto de RPC en el lenguaje de programacin Java, y la lgica utilizada en la solucin. Desarrollo Para el presente informe se ha tomado el ejemplo de suma de dos nmeros en java utilizando RPC, para lo cual se crea una clase servidor en una mquina que va a cumplir la funcin de un servidor en la que se la realiza la solicitud de dos nmeros al usuario mediante la interfaz de entrada y en la otra mquina que va ser el cliente se crea la clase cliente la cual se ofrece la ayuda al servidor para realizar la operacin y recibe el primer nmero desde el servidor y luego el segundo nmero, cuando ya tiene los dos nmeros el cliente realiza la operacin y presenta el resultado al servidor y este toma el resultado de la operacin y presenta al usuario la respuesta de la operacin solicitada, para realizar esta operacin escribimos el siguiente cdigo: SERVIDOR import java.io.* ; import java.net.* ; class Servidor { static final int PUERTO=5000;

public Servidor( ) { try { ServerSocket skServidor = new ServerSocket( PUERTO ) Socket skCliente = skServidor.accept(); con esta lnea de cdigo creamos el objeto System.out.println("este programa realiza una suma de 2 numeros"); System.out.println("dame el primer numero"); OutputStream aux = skCliente.getOutputStream(); DataOutputStream flujo= new DataOutputStream( aux ); flujo.writeInt(Leer.datoInt()); System.out.println("dame el segundo numero"); OutputStream aux1 = skCliente.getOutputStream(); DataOutputStream flujo1= new DataOutputStream( aux1 ); flujo1.writeInt(Leer.datoInt()); InputStream aux8 = skCliente.getInputStream(); DataInputStream flujo8 = new DataInputStream( aux8 ); System.out.println("el resultado es"); System.out.println( flujo8.readInt() ); skCliente.close(); } catch( Exception e ) { System.out.println( e.getMessage() ); } } public static void main( String[] arg ) { new Servidor(); } } CLIENTE import java.io.*; import java.net.*; class Cliente { static final String HOST = "localhost"; static final int PUERTO=5000; static int a,b; public Cliente( ) { try{ Socket skCliente = new Socket( HOST , PUERTO ); System.out.println("yo te ayudo a realizar tu operacion"); InputStream aux = skCliente.getInputStream(); DataInputStream flujo = new DataInputStream( aux ); a=flujo.readInt(); System.out.println(" recibido el primer numero que es "+a); InputStream aux1 = skCliente.getInputStream(); DataInputStream flujo1 = new DataInputStream( aux1 ); b=flujo1.readInt(); System.out.println(" e recibido el segundo numero que es "+b); System.out.println(" sumo el primer numero "+a+" mas el segundo numero "+b); int res; res=a+b;

System.out.println(" el resultado es "+res); OutputStream aux5 = skCliente.getOutputStream(); DataOutputStream flujo5= new DataOutputStream( aux5 ); flujo5.writeInt(res); skCliente.close(); } catch( Exception e ) { System.out.println( e.getMessage() ); } Experiencias El cliente enva una peticin y se queda a la espera un tiempo determinado. Si no llega la respuesta dentro del tiempo de espera, contina su ejecucin. El cliente no tiene realimentacin en caso de fallo (no sabe que pas). En RPC el cliente a veces es incapaz de localizar al servidor. La operacin lo realiza de la misma manera que si su ejecucin fuera local. Los procedimientos son remotos pero son parecidas a una local.

Conclusin El proceso de la operacin la realizo el cliente mientras que el servidor solicita los nmeros para la operacin y presenta el resultado al usuario. La codificacin de datos entre los clientes y el servidor. RPC-R es un potente mecanismo para resolver los aplicaciones. El cliente puede recibir una respuesta o ninguna. Para la comunicacin entre el servidor y el cliente se utiliza interfaces. La utilizacin de RPC es para compartir recursos en los procesos. problemas ms complejos de este tipo de

Potrebbero piacerti anche