Sunteți pe pagina 1din 22

PROGRAMACION

ORIENTADA A OBJETOS II
CD. 11.55.305
https://sites.google.com/a/ufps.edu.co/borisperezg

UNIDAD 7: REMOTE METHOD INVOCATION

Denicin
Servidor RMI
Cliente RMI
Ejemplos

UNIDAD 7: RMI

INTRODUCCIN
Obje;vo: hacer que el soAware distribuido se programe igual que una aplicacin no distribuida.

Mediante el modelo RPC la comunicacin se realiza conceptualmente igual que la invocacin de
un procedimiento local.

UNIDAD 7: RMI

INTRODUCCIN
Pasos:
A llama al procedimiento remoto de B
La llamada dispara una accin de un procedimiento de B
Al nalizar el procedimiento, B devuelve el valor a A

Simplica la comunicacin entre procesos y la sincronizacin de eventos.



Ejemplos:

Open Network Compu;ng Remote Procedure Call, desarrollada a par;r del API RPC de Sun
Microsystems a comienzo de los aos 80
Distributed Compu;ng Environment (DCE) RPC de Open Group
Simple objeto Access Protocol (SOAP)

UNIDAD 7: RMI

INTRODUCCIN
Primera aproximacin al uso de un modelo orientado a objetos sobre aplicaciones distribuidas

Objetos distribuidos dentro de una red.
Los objetos proporcionan mtodos, los cuales dan acceso a los servicios

Ejemplo:

Remote method invoca;on (RMI) de Java

UNIDAD 7: RMI

INTRODUCCIN
El mecanismo RMI (Remote Method Invoca;on) permite que una aplicacin se comunique con
objetos que residen en programas que se ejecutan en mquinas remotas. En esencia, en lugar de
crear un objeto, el programador enlaza el objeto remoto con un objeto local, conocido como
stub.

Los mensajes dirigidos al objeto remoto se envan al stub local, como si fuera el objeto real. El
stub acepta los mensajes que se le enven, y a su vez, los enva al objeto remoto, el cual invoca
sus mtodos apropiados. El resultado de la invocacin de los mtodos en el objeto remoto se
enva de regreso al stub local, que los remite al emisor original de la llamada.

Aparte de enlazar el stub con el objeto remoto, el cdigo escrito por el programador para
comunicar con el objeto remoto es igual al cdigo que se u;lizara si el objeto se encontrara en
una aplicacin local.

UNIDAD 7: RMI

INTRODUCCIN
A con;nuacin se muestra una aplicacin cliente ejecutndose en una mquina A, que enva un
mensaje a un objeto remoto en una aplicacin servidor que se ejecuta en una mquina B.

Cuando la aplicacin cliente enva un mensaje al stub local del objeto remoto, la pe;cin se
transmite a la mquina que con;ene al objeto real, donde el mtodo es invocado y cualquier

resultado es retornado al stub local, de modo que la aplicacin cliente puede obtener la
respuesta apropiada.

UNIDAD 7: RMI

INTRODUCCIN

UNIDAD 7: RMI

INTRODUCCIN
El soporte para RMI en Java est basado en las interfaces y clases denidas en los paquetes
java.rmi y java.rmi.server.

RMI ofrece:

Mecanismos para crear servidores y objetos cuyos mtodos se puedan invocar remotamente.

Mecanismos que permiten a los clientes localizar los objetos remotos.

Servicio de directorios:

rmiregistry, servicio de directorios de Java
Se ejecuta en la mquina servidor objeto

UNIDAD 7: RMI

INTRODUCCIN
Comparacin RMI y sockets

Ventajas:

Los programas RMI son ms sencillos de disear
Servidor RMI concurrente

Inconvenientes:

Sockets ;enen menos sobrecarga
RMI slo para plataformas Java

UNIDAD 7: RMI

INTRODUCCIN
La clase java.rmi.Naming

La clase Naming con;ene los siguientes mtodos est;cos que permiten el acceso a objetos
remotos u;lizando un URL para especicar el nombre y lugar del objeto remoto.

UNIDAD 7: RMI

INTRODUCCIN
La clase java.rmi.Naming

El URL se presenta en la forma rmi://host:port/objectName, donde:

UNIDAD 7: RMI

ARQUITECTURA RMI

UNIDAD 7: RMI

ARQUITECTURA RMI
Nivel de resguardo o stub
Se encarga del aplanamiento de los parmetros.
Stub: resguardo local. Cuando un cliente realiza una invocacin remota, en realidad hace una
invocacin de un mtodo del resguardo local.

Nivel de gesSn de referencias remotas

Interpreta y ges;ona las referencias a objetos remotos.


Invoca operaciones de la capa de transporte.

Nivel de transporte
Se encarga de las comunicaciones y de establecer las conexiones necesarias.
Basada en protocolo TCP

UNIDAD 7: RMI

SERVIDOR RMI

UNIDAD 7: RMI

SERVIDOR RMI
Interface





The Remote interface serves to iden;fy interfaces whose methods may be invoked from a non-local virtual
machine. Any object that is a remote object must directly or indirectly implement this interface. Only those
methods specied in a "remote interface", an interface that extends java.rmi.Remote are available remotely.
ImplementaSon classes can implement any number of remote interfaces and can extend other remote
implementa;on classes. RMI provides some convenience classes that remote object implementa;ons can
extend which facilitate remote object crea;on. These classes are java.rmi.server.UnicastRemoteObject and
java.rmi.ac;va;on.Ac;vatable.

UNIDAD 7: RMI

SERVIDOR RMI
Server

UNIDAD 7: RMI

SERVIDOR RMI
Server

Registry is a remote interface to a simple remote object registry that provides methods for
storing and retrieving remote object references bound with arbitrary string names.

Registry enables RMI client bootstrapping: it provides a simple means for a client to obtain an
ini;al reference to a remote object.

The LocateRegistry class provides a programma;c API for construc;ng a bootstrap reference to a
Registry at a remote address and for crea;ng and expor;ng a Registry in the current VM on a
par;cular local address.

UNIDAD 7: RMI

SERVIDOR RMI
Server

A Registry implementa;on may choose to restrict access to some or all of its methods (for
example, methods that mutate the registry's bindings may be restricted to calls origina;ng from
the local host). If a Registry method chooses to deny access for a given invoca;on, its

implementa;on may throw AccessExcep;on, which (because it extends RemoteExcep;on) will be


wrapped in a ServerExcep;on when caught by a remote client.

The names used for bindings in a Registry are pure strings, not parsed. A service which stores its
remote reference in a Registry may wish to use a package name as a prex in the name binding
to reduce the likelihood of name collisions in the registry.

UNIDAD 7: RMI

SERVIDOR RMI
Client

Gracias por su atencin

Boris Prez
borisperezg@ufps.edu.co

S-ar putea să vă placă și