Proyecto Integral de Ingeniería del Software | |
---|---|
Metodologías Ágiles |
Trabajo Fin De Grado | |
---|---|
Guía Memoria TFG |
Servidores | |
---|---|
Minercraft | |
Knoppia | |
Omegacraft |
Base de datos de juegos | |
---|---|
GameBoy Advance (GBA) |
Proyecto Integral de Ingeniería del Software | |
---|---|
Metodologías Ágiles |
Trabajo Fin De Grado | |
---|---|
Guía Memoria TFG |
Servidores | |
---|---|
Minercraft | |
Knoppia | |
Omegacraft |
Base de datos de juegos | |
---|---|
GameBoy Advance (GBA) |
¡Esta es una revisión vieja del documento!
Tenemos dos conceptos principales: Definición de comportamiento e implementación de comportamiento
rmi://<host_name>[:puerto del servicio de directorio]/<nombre del servicio>
En este ejemplo implementaremos una calculadora en un servidor que será utilizada por un cliente.
La interfaz debe heredar de java.rmi.Remote
public interface InterfazServidor extends java.rmi.Remote{ public long sumar(long a, long b) throws java.rm.RemoteException; public long restar (long a, long b) throws java.rm.RemoteException; public long multiplicar () throws java.rmi.RemoteException; public long dividir() throws java.rmi.RemoteException; }
public class ImplementacionInterfaceServidor extends UnicastRemoteObject implements Calculator{ private static final long serialVersionUID = 1L; public implementacion() throws RemoteException{ super(); } public long sumar(long a, long b) throws RemoteException{ return a+b; } public long restar(long a, long b) throws RemoteException{ return a-b; } public long multiplicar (long a, long b) throws RemoteException{ return a*b; } public long dividir (long a, long b) throws RemoteExcepcion{ return a/b; } }
public class Server(){ public server(){ try{ LocateRegistry.createRegistry(1099); InterfazServidor is = new ImplementacionInterfaceServidor(); Naming.rebind("rmi://localhost:109/CalculatorService", is); }catch (Exception e){ System.out.println("Error en el servidor: " + e); } } public static void main(String args[]){ new CalculatorServer(); } }