You are on page 1of 7

UNIVERLSIDAD POLITÉCNICA SALESIANA

FACULTAD DE INGENIERÍAS

INFORME DE INVESTIGACIÓN

TÍTULO: JAVASPACES

FECHA DE ENTREGA:25 – 01 – 2010

MIEMBROS DEL GRUPO

1. Espin Diego

2. Sandoval Byron

3. Tutillo Oswaldo

NIVEL: Octavo “D” Sistemas

PROFESORA: Ing. Patsy Prieto


Enero, 2011
MARCO TEÓRICO
JAVA SPACES

1 Resumen:

La tecnología JavaSpaces es una herramienta de alto nivel para la construcción de aplicaciones


distribuidas, y también puede ser utilizado como un instrumento de coordinación. Un inicio
marcado por los modelos clásicos de distribución que se basan en el paso de mensajes o RMI. El
modelo JavaSpaces, desde los puntos de vista de una aplicación distribuida puede ser descrito
como un conjunto de procesos que cooperan a través del flujo de objetos dentro y fuera de uno o
más espacios. Este modelo de programación tiene sus raíces en Linda, una lengua de
coordinación desarrollado por el Dr. David Gelernter de la Universidad de Yale.

2 Introducción:

Los JavaSpaces pueden verse como un espacio en el cual es posible de una manera rápida y
simple almacenar y compartir información, coordinar y comunicar recursos de una manera
distribuida en una red. Toda esta información que fluye de un JavaSpaces es en forma de Objetos.

JavaSpaces provee mecanismos de intercambio de datos y persistencia distribuida para código


escrito en lenguaje Java. Los datos están escritos como "entradas" que proveen agrupamiento
tipado de campos relevantes. Gracias a la tecnología JavaSpaces, aplicaciones distribuidas se
modela como un flujo de objetos entre los participantes, que es diferente de los modelos clásicos
de distribución, tales como RMI.

JavaSpaces se han comparado con las tecnologías, tales como colas de mensajes y bases de
datos. Es importante entender que, si bien JavaSpaces se puede utilizar para realizar algunas de
las tareas con el apoyo de las otras tecnologías, que deben ser tratados de manera muy diferente.

Con JavaSpaces podemos construir aplicaciones que se adaptan especialmente a tres tipos:
• Intercambio de datos.
• Mensajería
• Procesado en paralelo.
3 Materiales y Métodos:

Gracias a la tecnología JavaSpaces, aplicaciones distribuidas se modela como un flujo de objetos


entre los participantes, que es diferente de los modelos clásicos de distribución, tales como
RMI. Figura 1 indica que una aplicación basada en la tecnología JavaSpaces parece.

Un servicio JavaSpaces contiene entradas, cada una de ellas es un grupo con tipo de objetos
expresados en una clase que implementa la interfaz net.jini.core.entry.Entry . Una vez que se
escribe una entrada en un servicio JavaSpaces, puede ser utilizado en futuras operaciones de
búsqueda operaciones. Buscando las entradas se realiza mediante plantillas, que son objetos de
entrada que tienen todas o algunas de sus campos ajustan a los valores especificados que deben
coincidir exactamente. Todos los campos restantes, que no se utilizan en las operaciones de
búsqueda, se quedan como comodines.

Hay dos look-up operaciones: read () y tomar () . La lectura () devuelve el método o una entrada
que coincida con la plantilla o una indicación de que ninguna coincidencia se encontró. La toma
() funciona como método read () , pero si se encuentra una coincidencia, la entrada se elimina del
espacio. eventos distribuidos se puede utilizar al solicitar un servicio JavaSpaces para que le avise
cuando una entrada que coincida con la plantilla especificada se escribe en el espacio. Tenga en
cuenta que cada entrada en el espacio se pueden tomar como máximo una vez, sino dos o más
entradas pueden tener los mismos valores exacto.

Como toda implementación Java, JavaSpaces, puede ser implementada por IDE comunes de
desarrollo como NetBeans, Eclipse, etc. Lo importante de esto es incluir el Jini Technology Starter
Kit para poder acceder a los servicios de JavaSpaces.

4 Resultados

Para la siguiente investigación se a propuesto el desarrollo del prototipo de un servicio Jini que
hace uso extensivo de la tecnología JavaSpaces, consiste en un canal de conversaciones de
múltiples participantes. La definición, codificación y distribución de esta aplicación recurre a todas
las facilidades proporcionadas por los elementos de la herramienta.
La implementación de este prototipo persigue dos objetivos. En primer lugar, ilustrar el proceso de
desarrollo de una aplicación completa utilizando todas las facilidades de la herramienta. Y en
segundo lugar, ilustrar el potencial de la herramienta para construir aplicaciones de mayor
complejidad en otros entornos de interacción con la guía proporcionada por el desarrollo del
prototipo de este caso de estudio

Requerimientos de un servidor de conversaciones con Jini y JavaSpaces

Como se mencionó anteriormente a la tecnología JavaSpaces, una de las aplicaciones


distribuidas que se pueden realizar con la orientación proporcionada por esta tecnología es la de
servicios de conversación. En estas aplicaciones el espacio se utiliza como el repositorio de
mensajes que cada participante en una conversación envía.

La idea detrás de la construcción de este prototipo es utilizar un servicio JavaSpaces como el


repositorio de mensajes intercambiados por un grupo de usuarios, y un servicio
Jini que funja como el punto de acceso y administración a ese repositorio y a la interacción de
esos usuarios.

En particular, el servicio de conversación deberá proporcionar una interfaz de usuario con la cual
los participantes realicen toda interacción con el servicio, enviando mensajes a los demás. Entre
las características específicas que este servicio deberá tener se enumeran las siguientes:

• Los participantes en una conversación pueden crear canales de algún interés particular, al que
otros participantes con el mismo interés puedan unirse. Por ejemplo, pueden crear un canal
llamado “Literatura Latinoamericana”, en el que los interesados en este tema puedan intercambiar
sus comentarios. Deberá ser posible poder eliminar estos.

• Cada participante debe tener acceso a la lista de los canales creados que se encuentren en un
espacio determinado.

• Todos los mensajes que un participante envíe al canal deben ser visualizados por todos los
demás integrantes de la conversación.

Si un participante se une a un canal determinado en el que ya haya mensajes previos, debe tener
acceso a todos esos mensajes.

• El servicio puede proporcionar los medios por los cuales un participante de desconecte de cierto
canal.

• Los mensajes depositados en cierto canal pueden ser almacenados permanentemente, aun
cuando no tenga participantes en un momento dado, mientras que no se elimine la información de
ese canal.

• Debe incluir un mecanismo de transacciones para asegurar el buen comportamiento de la


aplicación, en términos del correcto intercambio de mensajes entre los participantes y las demás
interacciones con el servicio.

En la Figura siguiente se resumen las interacciones del usuario del servicio de conversación con
el espacio de objetos de JavaSpaces. Enseguida se presentará el diseño de un servicio de
conversación desarrollado con JavaSpaces, y que contempla la implementación de estas
características.

Diseño e implementación del servicio de conversación


La Figura siguiente muestra los bloques principales para esta aplicación. El soporte principal de la
aplicación lo integran el servicio JavaSpaces para el almacenamiento de los mensajes y el
servicio Jini como punto de acceso de los participantes o clientes a los canales de conversación.
El componente de administración de transacciones es vertical respecto a los demás, en el sentido
de que está presente en las interacciones críticas de los usuarios con el servicio de conversación
para garantizar la confiabilidad del conjunto de mensajes y acciones que se lleven a cabo en la
aplicación.
Con las actividades dispuestas en el anterior punto se toma como resultados la definición e
implementación del servicio Jini de conversación.

En la siguiente figura muestra la ventana del asistente de definición de servicio con la captura de
los métodos para el servicio de conversación, y en la posterior Figura se muestra la configuración
del acceso de este servicio a servicios JavaSpaces y de administración de transacciones.

Uso del servicio de conversación


Después de la implementación de las clases que proporcionan la funcionalidad completa del
servicio, y del desarrollo de su interfaz gráfica, se procede a distribuirlo con la ayuda del asistente
de distribución expuesto en el anterior punto de desarrollo de la herramienta, previamente
compilando y copiando las clases a los directorios de distribución respectivos con la ayuda de la
herramienta ant y el archivo XML que mantiene la configuración de la compilación y la copia de
esas clases. Por razones de simplificación de la exposición no se muestra aquí la configuración
del asistente de distribución para este servicio de conversación, aunque se hace notar que es
semejante a la configuración de la distribución de los servicios Jini de ejemplo del capítulo
mencionado.
Jini es una tecnología con una arquitectura orientada a servicios que define un modelo de
programación que explora y extiende la tecnología Java para permitir la construcción de sistemas
distribuidos seguros, que consiste de federaciones de redes de servicios bien definidas y clientes. La
tecnología Jini se puede utilizar para construir sistemas de red adaptables, flexibles y escalables,
que pueden ser gradualmente evolucionados, soportando los requisitos de entornos informáticos
dinámicos. Un aspecto importante de Jini es el entendimiento de que, inevitablemente, habrá
algunas fallas en la red, o en clientes, o incluso en los servicios ofrecidos. Por definición, Jini
proporciona portabilidad de plataforma, movilidad de código y seguridad. Puede ser utilizado en
aplicaciones con acceso pleno al ambiente de ejecución de la plataforma JSE o dispositivos
pequeños, sistemas empotrados e incluso en aplicaciones escritas en otros lenguajes.
Contrariamente a la propaganda hecha por Sun Microsystems hace unos años, Jini va mucho más
allá de hacer que aplicaciones para refrigeradores y tostadores intercambien información.

5 5. Discusión
<Sus resultados obtenidos compárelos con otros publicados o conocidos. ¿Están de acuerdo con lo
esperado o con las hipótesis iniciales establecidas?>

Jini es una tecnología con una arquitectura orientada a servicios que define un modelo de
programación que explora y extiende la tecnología Java para permitir la construcción de sistemas
distribuidos seguros, que consiste de federaciones de redes de servicios bien definidas y clientes. La
tecnología Jini se puede utilizar para construir sistemas de red adaptables, flexibles y escalables,
que pueden ser gradualmente evolucionados, soportando los requisitos de entornos informáticos
dinámicos. Un aspecto importante de Jini es el entendimiento de que, inevitablemente, habrá
algunas fallas en la red, o en clientes, o incluso en los servicios ofrecidos. Por definición, Jini
proporciona portabilidad de plataforma, movilidad de código y seguridad. Puede ser utilizado en
aplicaciones con acceso pleno al ambiente de ejecución de la plataforma JSE o dispositivos
pequeños, sistemas empotrados e incluso en aplicaciones escritas en otros lenguajes.
Contrariamente a la propaganda hecha por Sun Microsystems hace unos años, Jini va mucho más
allá de hacer que aplicaciones para refrigeradores y tostadores intercambien información.

6 Conclusiones

• JavaSpaces se han utilizado en varios proyectos de gran escala junto con Jini. La conjunción
de estas dos tecnologías soporta las características de la arquitectura SOA
• El modelo descrito para JavaSpaces puede considerarse complicado para el programador,
pues requiere que su entrada sea colocada en un objeto EntryRep para ser enviada al JS.
• Puede verse como un sistema distribuido orientado a los eventos, con capacidad de
almacenar comportamiento. Mas que un sistema de mensajes.

7 Recomendaciones

• Se podría decir que SOA es una arquitectura de sistemas distribuidos que se caracteriza por
las siguientes propiedades: Visión Lógica, Orientación al mensaje, Orientación a la
descripción, Granularidad, Orientación a la red, Neutralidad de la plataforma; por lo tanto se
recomientda el uso de esta a las empresas que requieran software como servicios disponibles
a través de la red.
• Una entrada en una clase de Java, que es una subclase de jive.javaSpace.Entry. Todos los
campos deben ser publicos, y deben ser referencias a objetos serializables.
• El estado actual de JavaSpaces es solo una especificacion formal. No existe implementacion
alguna aun, por lo que no se pueden hacer evaluaciones de eficiencia.

8 8. Referencias

• http://www.dosideas.com/noticias/java/341-soa-sin-web-services.html
• http://amap.cantabria.es/confluence/display/BASE/JavaSpaces
• http://www.javaworld.com/jw-04-2000/jiniology/spacerelay.zip

9 9. ANEXOS (En medio digital)


• MCD.ppt.- Teoria y generalidades de JavaSpaces
• ejemplo.zip.- ejemplo jini y JavaSpaces

9.1 9.1 Documentación de respaldo consultada, en formato digital

You might also like