Sei sulla pagina 1di 29

OBJETOS

DISTRIBUIDOS E
INVOCACIN
REMOTA

Objetos distribuidos

los

objetos dinmicamente asumen el papel


de clientes o servidores, segn la necesidad.

Un objeto distribuido es un objeto que puede


ser accedido remotamente desde cualquier
lugar en la red, del mismo modo que se hara
si estuviese en la misma mquina.

Objetos distribuidos
Los

objetos distribuidos estarn "unidos"


mediante algn mecanismo que permita
saber a los clientes:

dnde se encuentran los servidores,


cmo acceder a ellos y
qu se les puede pedir.

Por

ejemplo, una especie de gestionador


de peticiones de objetos podra servirnos
para esta tarea o bien algn tipo de
registro general dinmico.

Objetos distribuidos
Este

pegamento lgico es el que nos


hace todo el sistema transparente.

Localiza

los objetos en los sistemas


remotos y transforma las peticiones para
que se entiendan independientemente a la
mquina sobre la que se estn ejecutando
o en el lenguaje en el que estn escritos.

Objetos distribuidos

El concepto global de objetos distribuidos

puede verse como una red global de clientes


y servidores heterogneos.

Ventajas de usar objetos


distribuidos
Sirven para hacer ms sencilla la

reconstruccin de aplicaciones por


partes sin tener que reinstalarla o
recompilarla completamente.

Favorecen la escalabilidad y permiten


el mejor uso de la potencia
computacional de las mquinas
repartiendo la ejecucin de los
objetos constituyentes entre ellas.

Ventajas de usar objetos


distribuidos

Pueden facilitar la movilidad de los objetos entre


las mquinas, aumentado considerablemente la
disponibilidad y la eficiencia global de la
aplicacin.

Pueden servir para que las aplicaciones se


construyan independientemente de la plataforma
sobre la que se crearon.

Favorecen la comparticin de datos entre


aplicaciones y usuarios de forma inmediata,
adems de la sincronizacin de actividades a
travs de varias mquinas.

Tecnologas

El mecanismo ms usado en el modelo procedural es la


llamada a procedimiento remoto (Remote procedure call,
RPC ) que es idntico a una llamada a un procedimiento
slo que origen y destino son procesos distintos.

El inconveniente que presenta esta forma de trabajo es


que para utilizarlo se debe hacer referencia a conceptos
de bajo nivel que estn en funcin del sistema operativo
en el que se est programando.

Los RPCs son un estndar del DCE (Distributed Computed


Environment), que fue creado por empresas como HP,
IBM, Sun y DEC como un entorno para sistemas abiertos
que nos ofrece un conjunto de servicios como son
direccionamiento (naming), administracin de tareas
8
paralelas (thread management) y seguridad.

Tecnologas

Actualmente, algunas de las tendencias


principales que se estn utilizando
dando soporte a la distribucin de
objetos son RMI de Sunsoft, CORBA del
Object Management Group y DCOM
(Distributed Component Object Model)
de Microsoft.

Tecnologas

De estos tres mecanismos no hay ninguna


respuesta nica en cuanto a cual es el
mejor.

Las tendencias actuales consisten en


establecer conexiones entre ellos.
10

Interfaces
que son?

La

mayora de los lenguajes de programacin


proporcionan medios para organizar un programa
en
conjuntos
de
mdulos
que
puedan
comunicarse unos con otros.

La comunicacin entre mdulos se puede realizar

mediante llamadas a procedimientos entre los


mdulos o accediendo directamente a las
variables de otro mdulo.

Para

controlar las interacciones posibles entre


los mdulos, se define explcitamente una
interfaz para cada mdulo.

Los mdulos se implementan de forma que se

oculte toda la informacin excepto aquella que


se haga disponible a travs de su interfaz.

De este modo mientras la interfaz permanezca


inalterada, la implementacin podr cambiar
sin afectar a los usuarios del mdulo.

Las interfaces en los


sistemas distribuidos
En

un programa distribuido, los mdulos


pueden lanzarse en procesos separados.

No es posible para un mdulo que se ejecuta e


un proceso acceder a las variables de un
mdulo que est en otro proceso.

Los

mecanismos de paso de parmetros, por


ejemplo la llamada por valor y la llamada por
referencia,
utilizados
en
las
llamadas
a
procedimientos locales, NO son adecuados
cuando el que llama y el procedimiento llamado
estn en procesos diferentes.

La especificacin de un mtodo o procedimiento

en la interfaz de un mdulo en un programa


distribuido describe los parmetros como entrada
o salida o ambos.

Los parmetros de entrada se pasan al mdulo

remoto mediante el envo de los valores de los


argumentos en el mensaje de peticin y
posteriormente se proporcionan como argumentos
a la operacin que se ejecutar en el servidor.

Los

parmetros de salida se devuelven en el


mensaje de respuesta y se sitan como la
respuesta de la llamada o remplazando los
valores de las correspondientes variables
argumento en el entorno de la llamada

Entonces
Cuando se proporciona un
parmetro tanto como para
entrada como para salida, el
valor debe trasmitirse tanto en los
mensajes de peticin como en
los mensajes de respuesta.

Otra diferencia entre los


mdulos locales y los
mdulos remotos
Es que los punteros en un proceso dejan de
ser vlidos en el remoto.

En consecuencia, NO PUEDEN PASARSE

PUNTEROS COMO ARGUMENTOS o como


valores retornados como resultado de las
llamadas a los mdulos remotos.

Introduccin

El Remote Method Invocation aparece como


parte integrante del JDK (Java Development
Kit) de Java a partir de la versin 1.1.

RMI permite la invocacin de mtodos de


objetos Java que residen en otras
mquinas.

Estas otras mquinas no tienen por que


tener ni la misma arquitectura ni el mismo
sistema operativo, slo requieren tener su

21

Introduccin

RMI usa un protocolo nativo propio


JRMP(Java Remote Method Protocol) que
se sita sobre el protocolo de red
(TCP/IP, por ejemplo) que hace que slo
se pueda hablar con otros objetos Java.

La principal diferencia de este


mecanismo con respecto a los RPC es
que el RMI forma parte integrante del
lenguaje y no hay que hacer ninguna
referencia explcita a ningn nivel
subyacente del sistema sobre el que se
va a ejecutar la aplicacin.

22

Para el desarrollo de una aplicacin distribuida,


la solucin planteada por Java y RMI (Remote
Method Invocation) es ms sencilla de llevar a
cabo que cualquiera de las otras alternativas
(CORBA o DCOM).

Carece de un soporte contrastado para


mltiples lenguajes y no es tan robusto y
escalable como los dos anteriores.

Lo que realmente hace interesante esta


aproximacin es la facilidad de desarrollo de
aplicaciones distribuidas dentro del marco del
lenguaje Java.

23

El uso de RMI, entre otras cosas, aporta:

Un recolector de basura distribuido,

mantiene los sistemas de seguridad de Java,

usa la posibilidad de crear hilos de ejecucin (threads)


concurrentes potenciando la idea concurrente en las
aplicaciones distribuidas y

hace un uso inteligente de la Serialization de los objetos


Java con la posibilidad de transportar objetos a travs
24
de la red sin necesidad de ningn esquema extra.

Estrategia

El objetivo bsico que se persigue es la


posibilidad de enviar un mensaje a un
objeto que reside en una mquina a partir
de un mtodo que se est ejecutando en
otra mquina distinta.

25

Arquitectura RMI
Servicio directorios
objeto
cliente

Objeto
servidor

stub

skeleton

Interfaz con el programa

Implementa protocolos de ref. remota

Capa ref. remota

Capa de ref. remota

Capa transporte

Capa transporte

Implementa protocolo transporte

Ruta de datos lgica


Ruta de datos fsica
26

Interacciones stub
stub

mtodo
remoto

stub

tiempo
Empaquetado parmetros
Llamada a mtodoEnva peticin
Desempaquetado:
Invoca mtodo

executa codigo
Recibe retorno
empaqueta
enva
desempaqueta
Retorna valor

27

Ejemplo cliente/servidor

Para estudiar el mecanismo de RMI se


plantea el siguiente ejercicio.

Disear un servidor remoto que informe


sobre la hora, de forma que tenga un
mtodo obtenerHora que pueda ser
consultado por cualquier cliente.
28

Como se define
una interfaz en
java RMI?

Potrebbero piacerti anche