1 Sistemas Distribuidos Lunes, 16 de enero ● Invocación remota
2 Invocación remota ● Remote Method Invocation (RMI) ● 1990s ● No confundir con Java RMI ● Comunicar procesos (RPC) o entidades de un mayor nivel de abstracción (objetos o servicios)
3 Request - Reply Request ServerClient doOperation (wait) (continuation) Reply message getRequest execute method message select object sendReply
4 Operaciones public byte[] doOperation (RemoteRef s, int operationId, byte[] arguments) sends a request message to the remote server and returns the reply. The arguments specify the remote server, the operation to be invoked and the arguments of that operation. public byte[] getRequest (); acquires a client request via the server port. public void sendReply (byte[] reply, InetAddress clientHost, int clientPort); sends the reply message reply to the client at its Internet address and port.
5 Estructura del mensaje messageType requestId remoteReference operationId arguments int (0=Request, 1= Reply) int RemoteRef int or Operation array of bytes
6 Tipos de protocolos R Request RRReply RRAAcknowledge reply Request Reply Client Server Client NameMessages sent by
7 Mensaje HTTP GET//www.dcs.qmw.ac.uk/index.htmlHTTP/ 1.1 URL or pathnamemethodHTTP versionheadersmessage body
8 Mensaje HTTP HTTP/1.1200OK resource data HTTP versionstatus codereasonheadersmessage body
9 RMI ● Extensión de RPC ● Común a RPC: ● Soportan programación con interfaces ● Construidas sobre protocolos Request-Reply ● Soportan una serie de semánticas de llamadas como at-least-once y at-most-once ● Ofrecen el mismo nivel de transparencia: emplean la misma sintaxis para llamadas locales y remotas ● (Llamadas remotas exponen la naturaleza distribuida, eg excepciones remotas)
10 Diferencias ● Con RMI, el programador puede utilizar toda la expresividad de la OOP, como el uso de objetos, clases y herencia, además de metodologías y herramientas relacionadas ● Objetos tienen identificadores únicos, tanto locales como remotos, y estas referencias pueden pasarse como parámetros, expandiendo la semántica de RMI sobre la de RPC
11 Invocación local y remota invocation remote invocation remote local invocation A B C D E F
12 Interfaces remotas interface remote m1 m2 m3 m4 m5 m6 Data implementation remoteobject { of methods
13 Instanciamiento remoto
14 El papel del proxy y el esqueleto