Está en la página 1de 24

Tema 4.

Servicios en red

Autor: Joan Pou


Desarrollo de Aplicaciones Multiplataforma. Programación de servicios y procesos
Tema 4. Servicios en red

Tema 4: Servicios en red

¿Qué aprenderás?

• Los diferentes servicios en red. F P


• Los protocolos con estado y sin estado. I A
• Usar el servicio de correo y el http.
N K
• Crear aplicaciones RMI.
LI
N O
¿Sabías que…? U M
A L
• HTTP fue desarrollado por el World
L E Wide Web Consortium y la


B
Internet Engineering Task Force en 1990.
I correo electrónico en 1971 con el
Ray Tomlinson envió el primer
texto ‘QWERTYIOP’ yIM fue el primero que utilizó el símbolo @.
• R millones de direcciones diferentes. IPv6
IPv4 posibilitaba 4.294
P 36

IMmil billones de direcciones por cada milímetro


posibilita 340 sextillones de direcciones (340x10 ), o lo que es
lo mismo 670
N de la superficie de la Tierra.
cuadrado
I Ó
R S
VE

1
Desarrollo de Aplicaciones Multiplataforma. Programación de servicios y procesos
Tema 4. Servicios en red

4.1. Conceptos básicos

La capa de aplicación de la pila TCP/IP define les aplicaciones de red y los servicios
de internet estándar que puede utilizar un usuario. Estos servicios se utilizan en la capa de
transporte para enviar y recibir los datos. Existen varios protocolos en la capa aplicación de
los que podemos destacar:
• Servicios de nombres como NIS o DNS.


Servicios de directorio LDAP
Servicios TCP/IP estándar como ftp y telnet.
F P
• Servicios de archivos como NFS
I A


Servicios de Internet como HTTP

N K
LI
Servicios de correo electrónico como SMTP y
POP3.
Llamamos sesión al intercambio de información

N O
entre un cliente y servidor durante el tiempo que dura una determinada conexión, desde

U M
que se inicia hasta que se cierra. La mayoría de las sesiones cliente servidor se controlan en
la capa de transporte. Estos intercambios de información pueden ser muy simples del tipo:

AL
petición y respuesta única o puede ser más complejos en los que el orden en que se
reciben las respuestas es determinante. Por tanto podemos distinguir dos tipos de
protocolos:
• L E
IB
Protocolos sin estado (stateless). El servidor responde a las peticiones de forma
individual e independiente. En este caso el orden en que se reciben los mensajes no

I M
afecta al resultado de la comunicación.

R
Protocolos con estado (stateful). El orden en que se reciben los mensajes es
P
importante y afecta al resultado final de la comunicación. El servidor debe almacenar

IM
información durante la sesión para resolver las peticiones de forma correcta.

N
Un ejemplo de protocolo sin estado es el protocolo HTTP ya que no proporciona

I Ó
ningún medio de almacenamiento de los datos del usuario entre las peticiones. En cambio
un servidor FTP utiliza un protocolo con estado. Lleva a cabo una sesión interactiva con los

R S
usuarios/clientes. Durante el tiempo que dura la conexión el usuario debe autentificarse y
establecer diversas características de la comunicación.

V E Los servicios de red son aplicaciones distribuidas que siguiendo el modelo cliente
servidor se encargan de responder a las peticiones de clientes remotos para intercambiar
algún tipo de información.

2
Desarrollo de Aplicaciones Multiplataforma. Programación de servicios y procesos
Tema 4. Servicios en red

Uno de los mayores logros de Internet ha estado la estandarización de un conjunto


de servicios básicos, que son capaces de soportar nuevos servicios de más alto nivel,
garantizando así que se puedan comunicar entre ellos sin necesidad de hacer nuevas
instalaciones o de cambiar programas.
Disponemos de servicios estándar para muchas funcionalidades diferentes del
intercambio de información y muchos de ellos existen desde el inicio de internet. Entre los
que podemos destacar:
• Servicios de nombre de dominio (DNS) para obtener la dirección IP asociada a un


dominio concreto.
Servicios de intercambio de ficheros como los proporcionados por muchas F P
aplicaciones web o el servicio FTP
I A
• Servicios de sincronización horaria que mantienen en hora los dispositivos que
N K
LI
solicitan este servicio.
• Servicios de intercambio de información como los foros, los chats, las aplicaciones de


mensajería o el correo electrónico.

N O
Servicios de comunicación bidireccional remota como el ssh (cifrada, puerto 22) o el

aplicaciones web con entornos gráficos.


U M
telnet (no cifrada, puerto 23). Estos servicios se están sustituyendo cada vez más por

AL
• El servicio HTTP para intercambiar información entre un navegador y un servidor web
utilizando lenguajes de marcas para dar estructura a la información que se transmite.

L E
De todos estos servicios destacamos sobre todo Por su importancia en la evolución
de internet y por la utilización en el desarrollo de aplicaciones más grandes, de todos estos
I B
servicios destacamos sobre todo tres: el servicio HTTP, el correo electrónico y los servicios
de transferencia de ficheros.
I M
P R
IM
4.2. Servicios de transferencia de ficheros
N
I Ó
El protocolo estándar FTP (File Tranfer Protocol) especificado en el documento RFC-

R S
959 es un protocolo que utiliza TCP y basándose en una arquitectura cliente servidor
permite gestionar la transferencia de ficheros entre dos lugares situados en diferentes

V E dispositivos.
Las características del protocolo FTP son las siguientes:

• Promover el intercambio de ficheros entre dispositivos a través de una red local o de


una red de Internet.
• Fomentar el acceso a máquinas remotas.
• Ser transparente a los diferentes sistemas de archivos utilizados en los dispositivos.
• Conseguir una transferencia rápida y fiable.

3
Desarrollo de Aplicaciones Multiplataforma. Programación de servicios y procesos
Tema 4. Servicios en red

• Permite navegar por el sitio remoto y realizar toda una serie de acciones a través e
comandos.
• Es posible implementarlo utilizando una interfaz gráfica.
• El servidor FTP conectado a la red proporciona servicio utilizando dos puertos
diferentes: el puerto 20 para la transferencia de los datos y el puerto 21 para la
transferencia de las órdenes.
• El cliente se conecta al servidor utilizando un puerto mayor de 1024.
La conexión de un cliente remoto al servidor FTP se puede realizar de tres formas
diferentes:

• Como usuario autentificado utilizando su nombre (login) y su contraseña. F P



I
Usuario genérico (anónimo), no disponen de cuenta y para conectarse utilizan una A
contraseña simbólica que suele ser una dirección de correo electrónico.
N K
LI
• Usuario virtual que no requiere ninguna cuenta en el sistema. Sus cuentas se crean en
una base de datos, tipo MySQL.

O
El protocolo FTP presenta una serie de inconvenientes en temas de seguridad:
N


U M
Transfiriere los datos del usuario: login y contraseña sin cifrar en texto plano.
No cifra la sesión por lo que las transferencias de archivos también son en texto plano.
El servicio FTP soporta dos modos de conexión:
AL

E
Modo Activo: la conexión es iniciada por el servidor utilizando el puerto indicado por el
cliente FTP. L

IB
Modo Pasivo: el cliente FTP inicia la conexión para la transferencia utilizando el puerto
indicado por el servidor.
I M
P R
IM
N
I Ó
R S
V E

4
Desarrollo de Aplicaciones Multiplataforma. Programación de servicios y procesos
Tema 4. Servicios en red

El proceso de comunicación entre el cliente y el servidor FTP es el siguiente:

• El servidor permanece a la escucha en el puerto 21.


• Se establece una conexión para transmitir órdenes desde cualquier puerto superior al
1024 hacia el puerto 21 del servidor.
• En esta conexión se comunica al servidor qué puerto utiliza el cliente para la recepción
de los datos.
• El servidor abre su puerto 20 para realizar la transferencia solicitada por el cliente hacia
el puerto especificado en el cliente.

F P
Utilizando la librería Apache Commons podemos implementar un cliente FTP que se
I A
conecta a un Servidor Filezilla FTP del paquete XAMPP.

N K
LI
N O
U M
AL
L E
I B
I M
P R
IM
N
I Ó
R S
VE

5
Desarrollo de Aplicaciones Multiplataforma. Programación de servicios y procesos
Tema 4. Servicios en red

F P
IA
N K
4.3. Servicio de transferencia de mensajes
LI
N O
El protocolo SMTP (Simple Mail Transfer Protocol) constituye el estándar de
internet para el intercambio de correo electrónico.
U M
AL
El protocolo SMTP se encarga del transporte del correo saliente desde el dispositivo
cliente hasta el servido que almacena los mensajes de los destinatarios. Desde el servidor

L E
se reenvía al servidor del destinatario, quien lo descarga localmente utilizando el protocolo
POP3 o lo consulta vía web utilizando el protocolo IMAP.

IB
El servicio utiliza el puerto 25 o el puerto 587 (presentación) para enviar el correo.

I M
El protocolo está formado por un conjunto de comandos y respuestas entre emisor y
receptor.
P R
El funcionamiento del protocolo se puede resumir en los siguientes pasos:

• IM
El dispositivo que envía el mensaje abre una conexión TCP con el servidor destino.
• N
El Servidor responde con el mensaje 220 service SMTP.

I Ó
El cliente (emisor) se identifica con HELLO.

R S
El Servidor acepta y lo notifica con “250 OK”. Si no está disponible contesta “421
Service Not Avaliable”. El servidor no es capaz de responder por el momento al emisor.

V E La librería JavaMail nos permite implementar clientes de correo Java permitiendo


implementar los protocolos SMTP y POP3.
Las clases más importantes de esta librería son:

• Session: Define un sesión de correo básica. El objeto Session utilizando el objeto


java.util.Properties obtiene la información del servidor de correo, el nombre del
usuario, la contraseña, etc.

6
Desarrollo de Aplicaciones Multiplataforma. Programación de servicios y procesos
Tema 4. Servicios en red

• Message: A partir del objeto Session, se crea el mensaje de envío. Se hace mediante el
objeto Message. Es un clase abstracta por tanto deberemos trabajar con una subclase
que generalmente será javax.mail.internet MimeMessage.
• Address: A partir de Session y Message, indicaremos el destino del mensaje. Esta clase
también es abstracta por tanto trabajaremos con la subclase InternetAddress.
• Authenticator: Permite proteger el acceso a los recursos mediante el empleo de un
autentificador de nombre y clave asociada.
• Transport: Realiza el envío del mensaje.
• Store/Folder: Para la obtención de los mensajes. Después de obtener la sesión y
autentificarnos le indicamos a Store que protocolo utilizar. Una vez obtenido el Store,
F P
buscamos el folder que debe estar abierto para obtener los mensajes.
I A
N K
LI
N O
U M
AL
L E
I B
I M
P R
IM
N
I Ó
R S
VE

7
Desarrollo de Aplicaciones Multiplataforma. Programación de servicios y procesos
Tema 4. Servicios en red

En el siguiente ejemplo vemos como enviar un mensaje utilizando la librería


JavaMail y el correo electrónico de Google.
Para ejecutar el ejemplo debemos activar el acceso de aplicaciones poco seguras de
google. https://myaccount.google.com/lesssecureapps

F P
IA
N K
LI
N O
U M
AL
L E
IB
I M
P R
IM
N
I Ó
R S
V E

8
Desarrollo de Aplicaciones Multiplataforma. Programación de servicios y procesos
Tema 4. Servicios en red

Comprobación de que el correo se ha enviado correctamente.

F P
4.4. Servicio HTTP I A
N K
LI
HTTP (HyperText Transfer Protocol) es un protocolo creado en el 1990 en el CERN

N O
(Laboratorio Europeo de Física de las Partículas) utilizado para la transferencia de
hipertexto (páginas web) a través de la red (normalmente Internet). Es el método más

U M
común de intercambio de información en la World Wide Web, por el cual se transfieren las
páginas web o HTML a un ordenador. Sus características principales son las siguientes:

• AL
Los servidores HTTP (o servidores web) utilizan el puerto 80 para establecer su


conexión.
L E
actual. I B
Es un protocolo sin estado, no recuerda nada relativo a conexiones anteriores a la


I M
El lenguaje utilizado para crear los documentos (o páginas web) es el HTML.
• R
Permiten además la transferencia de cualquier otro tipo de ficheros.
P

IM
El protocolo por sí solo no establece mecanismos de seguridad, por lo que en un
principio cualquier puede acceder al documento que quiera.
• N
Existe una versión segura llamada HTTPS que permite el uso de cifrado siempre que lo

I Ó
compartan el cliente y el servidor.

R S
Es un protocolo cliente/servidor en el que un servidor almacena una serie de
documentos de forma que múltiples clientes pueden conectarse a él para acceder a los

V E mismos.

9
Desarrollo de Aplicaciones Multiplataforma. Programación de servicios y procesos
Tema 4. Servicios en red

HTTP es un protocolo cliente-servidor y su funcionamiento se basa en mensajes. El


F P
mecanismo es el siguiente:
I A
• K
El usuario especifica en el cliente web (navegador) la dirección de la página que quiere
N
LI
consultar utilizando el siguiente formato: http://direccion[:puerto][path].
• El cliente web decodifica la información de la URL, diferenciando: el protocolo, la IP o el


nombre de dominio, el puerto, la ruta, ….

N O
El cliente web establece una conexión (socket) con el servidor web y solicita la página


(mensaje request).
U M
AL
El servidor envía la página (si no existe envía un código de error) y el cliente web
interpreta el HTML recibido (mensaje response del servidor).
• Se cierra la conexión.
L E
Para implementar un cliente HTTP podemos utilizar el componente JEditorPane en
IB
el que fijamos una URL. Este componente es capaz de renderizar páginas web de forma
muy básica.
I M
P R
IM
N
I Ó
R S
V E

10
Desarrollo de Aplicaciones Multiplataforma. Programación de servicios y procesos
Tema 4. Servicios en red

Utilizando la clase URL podemos leer el contenido de una página web y obtener su
código HTML.

F P
I A
N K
LI
N O
U M
AL
L E
I B
I M
P R
IM
N
4.5. RMI
I Ó
R S
V E RMI (Remote Method Invocation) es un paquete de JAVA que permite manejar
objetos (y sus respectivos métodos) de manera remota, para utilizar los recursos de un
servidor de manera transparente para el usuario local.

Es un mecanismo que permite realizar llamadas a métodos de objetos remotos


situados en distintas (o la misma) máquinas virtuales Java, compartiendo así recursos y
carga de procesamiento a través de varios sistemas.

11
Desarrollo de Aplicaciones Multiplataforma. Programación de servicios y procesos
Tema 4. Servicios en red

Permite exportar objetos como objetos remotos para que otro proceso remoto
pueda acceder directamente como un objeto Java. Todos los objetos de una aplicación
distribuida basada en RMI deben ser implementados en Java. RMI forma parte del API de
Java y esta es una de sus principales ventajas, con lo que la integración de objetos remotos
en aplicaciones distribuidas se realiza sin necesidad de usar recursos adicionales. De esta
forma se utiliza la misma sintaxis para una llamada a un objeto local o un objeto remoto.

F P
IA
N K
LI
N O
U M
AL
Utilizando una interfaz remota el cliente invoca a los objetos remotos. Para esto se
ocupa una herramienta de JAVA, llamada RMI Registry. El RMI Registry puede estar

L E
localizado en un lugar distinto al servidor, y se encarga de registrar un determinado objeto
y asignarle un servidor que se encargará de procesar dicho objeto.

IB
La interacción con el objeto remoto se lleva a cabo a través de la interfaz remota.
I M
Esencialmente, ésta describe los métodos que pueden ser invocados de forma remota, y

P R
que el objeto remoto implementa. Cuando se obtiene una referencia a un objeto remoto,
el objeto no se envía a través de la red al cliente que lo solicita. En su lugar se genera un

IM
stub que constituye el proxy de la parte del cliente del objeto remoto. Todas las
interacciones del cliente se realizarán con esta clase stub, la cual es responsable de
N
gestionar los datos entre el sistema local y el remoto. Muchos clientes pueden tener

I Ó
referencias a un único objeto remoto. Cada cliente tiene su propio objeto stub que
representa al objeto remoto, pero dicho objeto remoto no se replica.

R S
La clase skeleton en la parte del servidor, es la responsable de gestionar las

V E llamadas al método y los datos enviados al objeto real referenciado. Éste es el proxy de la
parte del servidor para el objeto remoto. El sistema completo puede verse como un
modelo de cuatro capas.

12
Desarrollo de Aplicaciones Multiplataforma. Programación de servicios y procesos
Tema 4. Servicios en red

• Aplicación: es la primera capa donde se implementan las aplicaciones cliente y


servidor. En esta capa se realizan las llamadas a alto nivel para acceder y exportar
F P
objetos remotos. Las aplicaciones que quieran exportar sus métodos los deben
I A
implementados deben ser exportados, con una llamada al método exportObject() o
N K
declarar en una en una interfaz que extienda java.rmi.Remote. Los métodos una vez

LI
extendiendo la clase UnicastRemoteObject (paquete java.rmi.server).
• Stub-Skeleton: o también llamada capa proxy, Dota a clientes y servidores de una

fueran locales. N O
interfaz que les permite localizar objetos remotos para invocar sus métodos como si

• M
Referencia remota. Esta capa se encarga de la creación y gestión de las referencias a
U
AL
objetos remotos, manteniendo para ello una tabla de objetos distribuidos. Además,
convierte las llamadas remotas en peticiones hacia la capa de transporte.

E
La capa 4 es la de transporte. Es la responsable de realizar las conexiones y de
L
transportar los datos de una máquina a otra. RMI por defecto usa TCP, aunque admite
otros.
I B
I M
P R
4.5.1. Creación de una aplicación rmi

IM
En este apartado se explicará los pasos que deben realizarse para elaborar y

N
ejecutar una aplicación rmi. Esta aplicación lo único que realiza es enviar un mensaje por la
pantalla.
I Ó
R S
4.5.2. Interfaz remota

VE En primer lugar se escribe la interfaz remota del servidor, que en este caso se
llamará Mensaje. Todas interfaz remotas deben declararse como public y debe extender
java.rmi.Remote. Además, esta interfaz debe definir los métodos que serán accesibles
remotamente. Cada uno de estos métodos debe lanzar la excepción
java.rmi.RemoteException.

13
Desarrollo de Aplicaciones Multiplataforma. Programación de servicios y procesos
Tema 4. Servicios en red

4.5.3. Implementación de la interfaz remota

Es una clase java normal que implementa la interfaz remota definida


F P
una implementación para todos los métodos. En el constructor de esta clase hay que IA
anteriormente. Extiende la clase java.rmi.server.UnicastRemoteObject y debe proporcionar

llamar al constructor de la clase UnicastRemoteObject utilizando un super().


N K
LI
N O
U M
AL
L E
IB
4.5.4. Creación de los archivos stub y skeleton
I M
P R
Se generan los archivos stub y skeleton a partir de la clase que implementa la
interfaz remota. Para ello se utiliza el compilador rmic. Actualmente no es necesario, el

IM
skeleton se crea automáticamente a partir de la versión 1.2 de java y el stub a partir de la
versión 5.
N
I Ó
4.5.5. Creación del servidor

R SCrea el objeto que será accedido remotamente, la instancia del objeto que

V E implementa la interfaz. Después registra este objeto remoto (asignándole un nombre) y lo


publica en un servidor de nombres rmi, utilizando las instrucciones Naming.bind() o
Naming.rebind() si queremos reemplazarlo.
El servidor puede implementarse en una clase aparte o dentro de la clase de la
implementación. La instancia y el registro habría que hacerlos en el main. Opcionalmente
se puede instalar un gestor de seguridad.

14
Desarrollo de Aplicaciones Multiplataforma. Programación de servicios y procesos
Tema 4. Servicios en red

F P
4.5.6. Creación del cliente
I A
N K
LI
Se escribe la clase cliente. Realiza una petición a un servidor de nombres RMI con el
método Naming.lookup() pasando como argumento el nombre con el que se registró el
objeto remoto, obteniendo una referencia al objeto remoto

N O
Una vez recibida, se pueden invocar sus métodos como si fuera un objeto local. Los

U M
objetos pasados como argumento y recibidos como valor. Para poder ejecutar un método
remoto, RMI tiene que transmitir los argumentos del método desde el cliente al servidor, y

AL
transmitir los resultados en la dirección contraria. El proceso de codificar los argumentos y
resultados para su transmisión se denomina marshalling.

L E
I B
I M
P R
IM
N
I Ó
R S
VE 4.5.7. Servidor de nombres rmi

El servidor rmi es un repositorio centralizado de objetos remotos donde los


aplicaciones servidor los registran y las aplicaciones cliente los recuperan.

Puede iniciarse de dos maneras diferentes, indicando en que puerto debe escuchar:

• En la consola utilizando rmiregistry [puerto]


• En el código del servidor LocateRegistry.createRegistry()

15
Desarrollo de Aplicaciones Multiplataforma. Programación de servicios y procesos
Tema 4. Servicios en red

El cliente accede al servidor de dos formas diferentes.

• Utilizando el Naming.
• Mediante una instancia del registro: LocateRegistry.getRegistry().

Para ejecutar la aplicación primero ejecutamos el servicio de nombre rmi con un


start rmiregistry y luego el cliente y el servidor.

F P
IA
N K
LI
N O
U M
AL
La segunda forma de ejecutar la aplicación es utilizar el paquete java.rmi.registry
que contiene también la clase LocateRegistry que puede usarse para crear o encontrar un
registro.
L E

IB
El método LocateRegistry.getRegistry() devuelve una referencia de una instancia de un
registro ejecutándose en un sistema remoto.
• I M
El método LocateRegistry.createRegistry() permite crear un registro propio, que puede
R
ejecutarse dentro de nuestra aplicación en lugar de utilizar la aplicación rmiregistry.
P
IM
En el programa servidor creamos el registro en el puerto 5555 y registramos el
objeto utilizando el registry.rebind:
N
I Ó
R S
V E

16
Desarrollo de Aplicaciones Multiplataforma. Programación de servicios y procesos
Tema 4. Servicios en red

En la clase cliente buscamos el registro en el puerto 5555 y obtenemos el objeto


utilizando el método lookup del objeto Registy.

F P
I A
N K
LI
N O
El resultado de la aplicación es el mismo pero sin la necesidad de tener que ejecutar
manualmente el servicio de nombres rmi.
U M
AL
L E
I B
I M
P R
IM
N
I Ó
R S
VE

17
Desarrollo de Aplicaciones Multiplataforma. Programación de servicios y procesos
Tema 4. Servicios en red

Recursos y enlaces
• JavaMail

F P
IA
• Librería Apache Commons Net.
N K
LI
N O
U M
• Oracle Java RMI. AL
L E
IB
I M
P R
IM
Conceptos clave N
• I Ó

R S
En los protocolos con estado el servidor debe almacenar información de la sesión.
La clase URL es representa un puntero a un recurso de la red.

V E •

Un servidor RMI es un repositorio centralizado de objetos remotos.
RMI: Permite trabajar con objetos y métodos remotos.

18
Desarrollo de Aplicaciones Multiplataforma. Programación de servicios y procesos
Tema 4. Servicios en red

Test de autoevaluación

El puerto 21 lo utiliza el servicio.


a) FTP.
b) HTTP.
c) POP3.
d) DNS.
F P
HTTP es un servicio de nivel de I A
a) Internet
N K
b) Transporte
LI
c) Aplicación.
d) Red. N O
U M
AL
En un sistema de invocación de métodos remotos:
a) Los stubs son tuberías que comunican los dos extremos de las aplicaciones.

L E
b) Los skeleton son mecanismos de sincronización de hilos y procesos.

I B
c) En el cliente los skeleton permiten invocar métodos remotos como si fueran locales.

I M
d) En el cliente los stubs permiten invocar métodos remotos como si fueran locales.

P R
Ponlo en práctica IM
N
I Ó
R S
Actividad 1

VE Se desea programar conversor monetario utilizando una arquitectura RMI. Con


el siguiente funcionamiento. Este servidor implementará todos los métodos para
realizar el cambio de euros a la divisa que le indiquemos.

El Cliente introduce una cantidad en euros y después escogeremos la operación


a realizar: D convertir en dólares, Y convertir a yenes, P convertir a pesos, L convertir a
libras. F (final). Se visualiza la operación y se repite el proceso hasta que se introduzca la
orden F.

19
Desarrollo de Aplicaciones Multiplataforma. Programación de servicios y procesos
Tema 4. Servicios en red

SOLUCIONARIOS

Test de autoevaluación

El puerto 21 lo utiliza el servicio.


e) FTP.
f) HTTP.
g) POP3. F P
IA
h) DNS.

N K
HTTP es un servicio de nivel de
LI
e) Internet
f) Transporte N O
g) Aplicación.
U M
AL
h) Red.

L
En un sistema de invocación de métodos remotos:E
IB
e) Los stubs son tuberías que comunican los dos extremos de las aplicaciones.

I M
f) Los skeleton son mecanismos de sincronización de hilos y procesos.

P R
g) En el cliente los skeleton permiten invocar métodos remotos como si fueran locales.
h) En el cliente los stubs permiten invocar métodos remotos como si fueran locales.
IM
N
I Ó
R S
V E

20
Desarrollo de Aplicaciones Multiplataforma. Programación de servicios y procesos
Tema 4. Servicios en red

Ponlo en práctica

Actividad 1

Se desea programar conversor monetario utilizando una arquitectura RMI. Con


el siguiente funcionamiento. Este servidor implementará todos los métodos para
realizar el cambio de euros a la divisa que le indiquemos.

F P
I
El Cliente introduce una cantidad en euros y después escogeremos la operación
A
N K
a realizar: D convertir en dólares, Y convertir a yenes, P convertir a pesos, L convertir a
libras. F (final). Se visualiza la operación y se repite el proceso hasta que se introduzca la
orden F.
LI
N O
Solución Actividad 1

U M
AL
Interfaz.

L E
I B
I M
P R
IM
N
I Ó
R S
V E

21
Desarrollo de Aplicaciones Multiplataforma. Programación de servicios y procesos
Tema 4. Servicios en red

Implementación de la interfaz

F P
IA
N K
LI
N O
U M
AL
Servidor RMI
L E
IB
I M
P R
IM
N
I Ó
R S
V E

22
Desarrollo de Aplicaciones Multiplataforma. Programación de servicios y procesos
Tema 4. Servicios en red

Cliente

F P
I A
N K
LI
N O
U M
AL
L E
I B
I M
P R
IM
N
I Ó
R S
V E

23

También podría gustarte