Está en la página 1de 4

1

Sistemas distribuidos: protector de pantalla


Distributed systems: screen saver.
liceth alvarez, jaider Villamizar, Damaso Ospino

lam_1628@hotmail.com, vizard2223@gmail.com, djospino@unicesar.edu.co

UNIVERSIDAD POPULAR DEL CESAR

 aplicaciones distribuidas. Este software permite a los


Resumen-El presente artículo muestra el diseño e ordenadores coordinar sus actividades y compartir
implementación de un sistema distribuido, dando los recursos del sistema – hardware, software y datos.
paso a cuestiones como (escalabilidad, acceso,
rendimiento, tolerancia a fallos, etc.) teniendo El término ‘recurso’ es bastante abstracto, pero es el
como referencia el modelo cliente-servidor, que mejor caracteriza el abanico de entidades que
planteamos la tecnología a usar para el desarrollo pueden compartirse en un sistema distribuido. El
del sistema. Se presenta la introducción a los abanico se extiende desde componentes hardware
sistemas distribuidos a partir del software como discos e impresoras hasta elementos software
distribuido middleware como lo es Java RMI como ficheros, ventanas, bases de datos y otros
para objetos distribuidos. objetos de datos.

II. PLANTEAMIENTO DEL PROBLEMA


Palabras clave---Sistemas Distribuido, objeto,
Java, Corba, interoperabilidad, integración Implementaremos un sistemas en el que obtengamos
como resultados la interconexión por medio de la red
de dos máquinas en las que podamos presentar un
modelo de protector de pantalla en sistemas
distribuido, en nuestro caso burbujas aleatorias.
I. INTRODUCCION
Desarrollaremos nuestro sistema distribuido en
Un sistema distribuido se define como una colección JAVA con ayuda del RMI
de computadores autónomos conectados por una red,
y con el software distribuido adecuado para que el III. JAVA
sistema sea visto por los usuarios como una única
entidad capaz de proporcionar facilidades de Java es un entorno de computación introducido al
computación. público en 1995 por Sun Microsystems. Considerado
como lenguaje de programación, es simplemente un
El desarrollo de los sistemas distribuidos vino de la lenguaje cuya sintaxis recuerda la del C++, y tiene,
mano de las redes locales de alta velocidad a respecto a este, ventajas, que el marketing de la
principios de 1970. Esta tendencia se ha acelerado compañía trata de resaltar, e inconvenientes, que
por el desarrollo de software para sistemas trata de ocultar, sin embargo, las librerías de clases y
distribuidos, diseñado para soportar el desarrollo de el que todos sus programas se ejecuten en una
2

máquina virtual lo convierten en un lenguaje Proporcionar un middelware para el desarrollo de


altamente portátil, muy apto para una red con aplicaciones distribuida manteniendo un estilo Java
ordenadores y sistemas operativos tan heterogéneos puro y ortodoxo:
como Internet [1].
 Facilita la interacción de objetos instanciados
Máquinas Virtuales en diferente JVM mediante el paradigma de
invocación de métodos de los objetos
 Integra el modelo de objetos distribuidos en
El secreto de la portabilidad binaria de los
el lenguaje Java de una forma natural y
programas Java reside en las máquinas virtuales. Los
manteniendo la semántica que le es propia
compiladores Java no generan binarios para una
Capacita para escribir aplicaciones distribuidas tan
arquitectura real, sino para una inexistente máquina
simples como sea posible.
virtual Java, por lo que para usar los binarios, se
 Mantiene y preserva en aplicaciones
necesita un emulador encargado de traducir
distribuidas el tipado fuerte propio de Java.
instrucciones del programa a primitivas de la
arquitectura anfitriona.  Proporciona diferentes modelos de
persistencia de objetos distribuidos (objetos
Popularidad vivos, objetos persistentes, objetos con
activación débil) para conseguir la
La popularidad actual del lenguaje Java es, en parte, escalabilidad de las aplicaciones.
fruto de una agresiva campaña de marketing por  Introduce los niveles de seguridad necesarios
parte de Sun, además de pactos con la compañía que para garantizar la integridad de las
anteriormente era líder en la fabricación y aplicaciones distribuidas.
distribución de navegadores de Internet, Netscape.
En todo caso, hoy en día, Java es una plataforma muy
popular y casi todos los ordenadores que se fabrican VI. VENTAJAS E INCONVENIENTES DE
ahora mismo incluyen una máquina virtual capaz de RMI
ejecutar sus programas
Ventajas:
IV. SISTEMAS DISTRIBUIDOS EN JAVA  Permite distribuir una aplicación de
forma muy transparente, es decir, sin que
RMI el programador tenga que modificar
apenas el código.
RMI [2] fue el primer framework4 para crear  Las invocaciones remotas son más
sistemas distribuidos que apareció para Java. eficientes que las peticiones vía http que
Además, viene integrado en cualquier máquina se usan con los CGIs o los Servlets.
virtual Java posterior a la 1.0 y está pensado para
hacer fácil la creación de sistemas distribuidos a Inconvenientes:
partir de una aplicación cuyas clases ya estén  El paso de parámetros por valor implica
implementadas. tiempo para hacer la serialización, enviar
los objetos serializados a través de la red
RMI (Remote Method Invocation) es parte de la y luego volver a recomponer los objetos
librería de clases de Java que permite la creación de en el destino.
sistemas distribuidos en Java

VII. CARACTERÍSTICAS
V. OBJETIVOS DE RMI PARTICULARES DE RMI.

Al contrario que otras tecnologías de sistemas


distribuidos, RMI no busca la colaboración de
3

objetos de distintas plataformas, programados en un objeto remoto por referencia no es nada nuevo,
diferentes lenguajes, Java se encarga de solucionar cualquier objeto exportado ante el RMIRegistry se
los problemas de heterogeneidad. Así, su API es más pasa automáticamente por referencia a cualquier
sencillo y natural al no contemplar que tipos de datos cliente que quiera usarlo.
(y sus tamaños) existan o no en los lenguajes en los
que se implementan cliente y servidor. La novedad es el paso de objetos por valor, para lo
que se emplea la librería de serialización del API de
VIII. GESTIÓN DE LA CONCURRENCIA. Java. Para pasar un objeto por valor del servidor el
cliente, debe implementar una clase abstracta que les
La gestión de la concurrencia en RMI, es obliga a definir cómo almacenar en un flujo de datos
extraordinariamente sencilla e inflexible. Para cada (como por ejemplo un fichero) los datos importantes
cliente que trate de acceder a un objeto remoto, el del objeto serializable y cómo reconstruirlo a partir
servidor creará un nuevo hilo que se encargará de de esos mismos datos. Muchas de las clases del API
darle servicio. Si varios hilos del mismo cliente de Java ya son serializables por lo que otras clases
realizan distintas peticiones al servidor, compartirán que las usen (por herencia o agregación) no tienen
un mismo hilo en el servidor. que ocuparse de serializarlas.

Cuando se necesita llevar un objeto serializable de


una máquina a otra (porque sea un parámetro de un
IX. SERVICIO DE NOMBRADO. método de un objeto remoto que empleamos por
referencia, o porque sea el resultado que devuelve
El nombrado de objetos es sencillo pero dependiente dicho método al cliente), se serializa, se lleva el flujo
del ordenador donde resida el objeto servidor en cada de una máquina a la otra, y una vez en el ordenador
instante. Aun así, está pensado de tal forma que huésped, se reconstruye y se usa.
difícilmente su uso creará problemas al usuario, ya
que emplea la notación URL del tipo La ventaja del paso por valor en un sistema
rmi://nombre_host:puerto/nombre_objeto. distribuido radica en que se minimiza el tráfico en la
red ya que, una vez recibido el objeto, todas las
Un programa que acompaña a las implementaciones comunicaciones con él serán locales.
Java es el RMIRegistry. El registro rmi (rmiregistry)
comunica objetos clientes con servidores. Seguridad.
Conceptualmente, cuando un cliente quiere obtener
una referencia a un objeto remoto, pregunta por él al Por defecto, RMI no incluye ninguna facilidad para
rmiregistry donde resida dicho objeto. El registro restringir el uso de las clases desde clientes no
lleva la cuenta de los objetos exportados7 que residen autorizados, aunque el usuario siempre puede suplir
en esa máquina (ya que todos ellos han sido dados de parte de esta funcionalidad usando los servicios del
alta en el registro por el programa que se haya sistema operativo, o haciendo ese trabajo él8 mismo.
encargado de crearlos e inicializarlos), por lo que Aún así, no se puede confiar en la seguridad de un
comprueba que la solicitud del cliente puede ser sistema solo porque se haya autentificado al usuario
atendida, y caso de ser así, devuelve la referencia al inicio de la conexión si es que el canal de
esperada. comunicación no es seguro. La plataforma Java 2
incluye elsoporte de comunicaciones seguras en RMI
El RMIRegistry puede ser ejecutado como servicio usando el estándar SSL (Secure Sockets Layer).
de Windows NT o como demonio en UNIX (y
similares). Componentes de aplicaciones distribuidas RMI

Paso de parámetros por valor y serialización. Las aplicaciones RMI se componen de:
 Clientes: Conducen el flujo de la
RMI soporta que objetos clientes puedan emplear aplicación. Localizan e invocan métodos
objetos remotos por valor y por referencia. El uso de
4

ofertados como remotos por los


servidores
 Servidores: Conjunto de objetos que
ofrecen interfaces remotas públicas cuyos
métodos pueden ser invocados clientes de
cualquier procesador de la plataforma.
 Registro: Servicio estático que se
establece en cada nudo, en el que se
registran los servidores con un nombre, y
donde los clientes los localizan por él.

REFERENCIAS
 [1] IEEE Software. Software Components.
NoviembreDiciembre, 1998
 [2] Sun Microsystems. RMI Documentation Beta
Draft. Diciembre 1996.

También podría gustarte