Documentos de Académico
Documentos de Profesional
Documentos de Cultura
(Callbacks)
Sistemas Distribuidos
(Captulo 8 de Distributed
Computing de M. L. Liu)
Cliente-servidor clsico
servidor pasivo
Tipo pull.
Monitorizacin
Juegos
Subastas
Votacin/encuesta
Chat
Tablero de noticias
Groupware
Callbacks
Servidor
Servidor
...
...
Cliente
RMI
Cliente
Algunas
Esto
Proceso 1
peticin
respuesta
Callbacks RMI
Servidor
Clientes
Lista de
callbacks
Cliente.class
Host
HTTP
CiertaInterfaz_stub.class
Registro RMI
3
CiertaInterfaz_stub.class
4
CiertaInterfaz_stub.class
CallbackInterfaz_stub.class
CiertoServidor.class
5
CallbackInterfaz_stub.class
Host del objeto cliente
Despliegue
Object client host
ServerInterface.class
ServerInterface.class
ServerImpl.class
ServerImpl_Stub.class
ServerImpl_Stub.class
ClientInterface.class
ClientInterface.class
ClientImpl.class
ClientImpl _Stub.class
ClientImpl _Stub.class
Diagrama de Clases
CallbackClientInterface
HelloInterface
UnicastRemoteObject
sayHello()
UnicastRemoteObject
HelloServer
HelloImpl
CallbackClient
CallbackClientImpl
listRegistry()
startRegistry()
Diagrama de secuencia
client
registry
server
rebind( )
lookup( )
sayHello()
addCallback()
notifyMe()
Interfaz de callback
10
UnicastRemoteObject
sayHello
HelloServer
RMIPort
sayHello
addCallback
11
CallbackInterface
UnicastRemoteObject
sayHello
HelloClient
RMIPort
sayHello
callMe
Diagrama de Clases de HelloClient
Sistemas Distribuidos -- Csar Llamas Bello, 2004
12
HelloClient
RMIregistry
HelloServer
getRegistry
sayHello
addCallback
callMe
13
14
15
16
17
18
19
20
10
21
22
11
23
24
12
25
Archivo de poltica
grant {
permission java.net.SocketPermission "*:1099", "connect, accept, resolve";
// Permite contactar con el registro de cualquier host
permission java.net.SocketPermission "*:1024-65535", "connect, accept, resolve";
// Permite a los clientes RMI conectar por red con los puertos pblicos
// de cualquier host. Podemos poner en estos puertos el registro
permission java.net.SocketPermission "localhost:1099", "connect, resolve";
// Esta direccin es de un host concreto (cambiar)
permission java.net.SocketPermission "129.65.242.5:1024-", "connect, accept";
permission java.net.SocketPermission "*:80", "connect";
// Permite conexin con el web en cualquier host
};
Sistemas Distribuidos -- Csar Llamas Bello, 2004
26
13