Está en la página 1de 5

Sistemas Distribuidos

Enero - Mayo 2017

Tarea
Investigacin
05
JavaSpaces

Jatar Atala Moreno Lacalle

JavaSpaces la tecnologa es una herramienta de coordinacin de alto nivel para los procesos de
encolado juntos en una aplicacin distribuida. Es una desviacin de herramientas distribuidas
convencionales, que se basan en la transmisin de mensajes entre procesos o invocando mtodos
en objetos remotos. Tecnologa JavaSpaces proporciona un modelo de programacin
fundamentalmente diferente que considera una aplicacin como un conjunto de procesos que
cooperan a travs del flujo de objetos dentro y fuera de uno o ms espacios. Este modelo basado
en el espacio de la computacin distribuida tiene sus races en el lenguaje de la coordinacin Linda
desarrollado por el Dr. David Gelernter en la Universidad de Yale. Proporcionamos varias
referencias a este trabajo en el Captulo 12.

Un espacio es un repositorio accesible desde la red compartida para los objetos. Procesos utilizan
el repositorio como un almacn de objetos persistentes y mecanismo de intercambio; en lugar de
comunicarse directamente, coordinan mediante el intercambio de objetos a travs de los
espacios. Como se muestra en la Figura 1.1, los procesos realizan operaciones sencillas
para escribir nuevos objetos en un espacio, tomar objetos de un espacio, o leer (hacer una copia
de) los objetos en un espacio. Cuando se toma o lectura de objetos, procesos utilizan un simple
valor de las operaciones de bsqueda de coincidencia para encontrar los objetos que son
importantes para ellos. Si no se encuentra un objeto coincidente inmediatamente, a continuacin,
un proceso puede esperar hasta que se llega. A diferencia de las tiendas de objetos
convencionales, los procesos no modifican los objetos en el espacio o invocan sus mtodos
directamente - Una vez all, los objetos son slo datos pasivas. Para modificar un objeto, un
proceso debe eliminar de forma explcita, que se actualizar, y vuelva a introducirla en el espacio

Procesos utilizan espacios y operaciones simples de coordinar.


Para crear aplicaciones basadas en el espacio, diseamos estructuras de datos distribuidas y
protocolos distribuidos que operan sobre ellos. Una estructura de datos distribuida se compone de
varios objetos que se almacenan en uno o ms espacios. Por ejemplo, una lista ordenada de
artculos podra ser representado por un conjunto de objetos, cada uno de los cuales contiene el
valor y la posicin de un solo elemento de la lista. En representacin de los datos como una
coleccin de objetos en un espacio compartido permite que varios procesos para acceder y
modificar la estructura de datos al mismo tiempo.

Protocolos distribuidos definen la forma en que los participantes en una cuota de aplicacin y
modificar estas estructuras de datos de una manera coordinada. Por ejemplo, si nuestra lista
ordenada representa una cola de tareas de impresin para varias impresoras, entonces nuestro
protocolo debe especificar la forma en que las impresoras coordinan entre s para evitar la
duplicacin de esfuerzos. Nuestro protocolo tambin debe controlar los errores de otra manera
una impresora atascada, por ejemplo, podra hacer que muchos usuarios esperan
innecesariamente trabajo para completar, a pesar de que otras impresoras pueden estar
disponibles. Si bien este es un ejemplo sencillo, es representativa de muchos de los problemas que
surgen en los protocolos distribuidos ms avanzados.

Protocolos distribuidos escritos utilizando espacios tienen la ventaja de estar dbilmente


acoplados: porque los procesos interactan indirectamente a travs de un espacio (y no
directamente con otros procesos), los remitentes de datos y receptores no estn obligados a
conocer las identidades de los dems o incluso a estar activos al mismo hora. Herramientas de red
convencionales requieren que todos los mensajes enviados a un proceso particular (OMS), en una
mquina en particular (dnde), en un momento determinado (cuando). En lugar de ello, usando
un sistema de JavaSpaces, podemos escribir un objeto en un espacio con la expectativa de que
alguien, en algn lugar, en algn momento, tendr el objeto y hacer uso de ella de acuerdo con el
protocolo distribuido. Remitentes y receptores desacoplar conduce a protocolos que son simples,
flexible y fiable. Por ejemplo, en nuestro ejemplo la impresin, podemos soltar las peticiones de
impresin en el espacio sin especificar una impresora en particular o preocuparse por lo que las
impresoras estn en marcha, ya que cualquier impresora libre puede recoger una tarea.

Compartida, almacn de objetos persistentes.La tecnologa JavaSpaces fomenta el uso de


estructuras de datos distribuidas, y su naturaleza imprecisa simplifica el desarrollo de protocolos
distribuidos. Estos temas constituyen el tema principal de este libro - antes de la inmersin y la
construccin de nuestra primera aplicacin basada en el espacio, vamos a obtener una mejor idea
de las caractersticas clave de la tecnologa y cmo los espacios se pueden utilizar para una
variedad de aplicaciones distribuidas y de colaboracin.

Caractersticas principales

La interfaz de programacin JavaSpaces es simple, hasta el punto de ser mnima: aplicaciones


interactan con un espacio a travs de un puado de operaciones. Por un lado, esto es bueno -
que reduce al mnimo el nmero de operaciones que necesita aprender antes de escribir
aplicaciones reales. Por otra parte, se plantea la pregunta: cmo podemos hacer cosas tan
poderosas con slo unas pocas operaciones? La respuesta est en el espacio en s, que ofrece un
conjunto nico de caractersticas clave:
Los espacios son compartidos : son espacios compartidos "memorias" basadas en la red que
muchos procesos remotos pueden interactuar con al mismo tiempo. Un espacio mismo se encarga
de los detalles de acceso concurrente, dejando que se centrar en el diseo de sus clientes y los
protocolos entre ellos. La "memoria compartida" tambin permite que varios procesos para
construir de forma simultnea y acceso distribuido estructuras de datos, el uso de objetos como
bloques de construccin. Estructuras de datos distribuidas sern un tema importante en el
Captulo 3.

Los espacios son persistentes : espacios proporcionan un almacenamiento fiable de objetos. Una
vez almacenados en el espacio, un objeto permanecer all hasta que un proceso elimina de forma
explcita. Los procesos tambin pueden especificar un tiempo de "arrendamiento" para un objeto,
despus de lo cual ser destruida y se retira del espacio de forma automtica (vamos a cubrir
contratos de arrendamiento en detalle en el captulo 7).

Dado que los objetos son persistentes, es posible que sobreviven a los procesos que los crean, que
queda en el espacio, incluso despus de que los procesos han terminado. Esta propiedad es
importante y necesario para soportar protocolos desacoplados entre los procesos. Persistencia
permite a los procesos comunicarse, incluso si se encuentran en momentos que no se solapan. Por
ejemplo, podemos construir una aplicacin distribuida "chat" que almacena mensajes como
objetos persistentes en el espacio y permite que los procesos para llevar a cabo una conversacin,
incluso si nunca son en torno al mismo tiempo (similar al correo electrnico o correo de
voz). persistencia de objetos tambin se puede utilizar para almacenar informacin de preferencia
para una aplicacin entre invocaciones - incluso si la aplicacin se ejecuta desde una ubicacin
diferente en la red cada vez.

Los espacios son asociativa : Los objetos en un espacio se encuentran a travs de las operaciones
de bsqueda asociativa , en lugar de por la posicin de memoria o por identificador. Asociativo de
bsqueda proporciona un medio sencillo para encontrar los objetos que le interesan en funcin de
su contenido, sin necesidad de saber lo que el objeto se llama, que lo tiene, que lo cre, o donde
se almacena. Para buscar un objeto, se crea una plantilla (un objeto con una parte o la totalidad de
sus campos a valores especficos, y los dems nos fuimos como nullpara actuar como
comodines). Un objeto en el espacio coincide con una plantilla si coincide con los campos
especificados de la plantilla exactamente. Veremos que con las operaciones de bsqueda
asociativa, podemos expresar fcilmente las consultas de objetos tales como: "? Hay tareas para
calcular" o "Hay alguna solucin al factor primordial que ped?" Vamos a cubrir los detalles del
juego en el siguiente captulo.

Los espacios son transaccionalmente seguro : La tecnologa JavaSpaces proporciona un modelo de


transaccin que asegura que una operacin en un espacio es atmica (se aplica ya sea la
operacin, o no lo es). Las transacciones son compatibles con las operaciones individuales en un
solo espacio, as como mltiples operaciones sobre uno o ms espacios (ya sea todos se aplican las
operaciones, o ninguno son). Como veremos en el captulo 9, las transacciones son una forma
importante para hacer frente a fallo parcial.

Espacios nos permiten el intercambio de contenido ejecutable : Mientras que en el espacio, los
objetos son datos simplemente pasiva - no podemos modificarlos o invocar sus mtodos. Sin
embargo, cuando leemos o tomar un objeto de un espacio, se crea una copia local del objeto. Al
igual que cualquier otro objeto local podemos modificar sus campos pblicos, as como invocar sus
mtodos, incluso si nunca hemos visto un objeto como antes. Esta capacidad nos da un poderoso
mecanismo para extender el comportamiento de nuestras aplicaciones a travs de un espacio.

JavaSpaces Tecnologa en Contexto

Para darle una idea de cmo las aplicaciones distribuidas pueden ser modelados como objetos que
fluyen dentro y fuera de los espacios, vamos a ver un par de escenarios de uso sencillo. Considere
la posibilidad de un espacio que ha sido creado para actuar como una "sala de subastas" a travs
del cual interactan los compradores y vendedores. Vendedores de depsito para la venta
artculos con descripciones y precios que piden (en forma de objetos) en el espacio. Los
compradores monitorear el espacio para los artculos que les interesan, y cuando encuentran
alguna, escriben los objetos de oferta en el espacio. A su vez, los vendedores controlan el espacio
para las ofertas en sus ofertas y hacer un seguimiento de los licitadores ms altos; cuando perodo
de venta de un artculo expira, el vendedor cumple el objeto como "vendido" y escribe de nuevo
en el espacio (o tal vez en el espacio del comprador ganador) para cerrar la venta.

Consideremos ahora una casa de produccin de animacin por ordenador. Para producir una
secuencia de animacin, artistas de la computadora crean un modelo que a continuacin se debe
dejar para cada cuadro de una escena (un trabajo informtico intensivo). La prestacin se realiza a
menudo por una red de estaciones de trabajo grficas caros. Utilizando la tecnologa JavaSpaces,
una serie de tareas - por ejemplo, una tarea por trama que debe ser prestado - estn escritos en el
espacio. Cada estacin de trabajo de grficos participante busca en el espacio para una tarea de
representacin, lo elimina, lo ejecuta, el resultado cae de nuevo en el espacio y sigue buscando
ms tareas. Este enfoque escalas de forma transparente: funciona de la misma manera si hay diez
estaciones de trabajo de grficos disponibles o mil. Adems, el enfoque "equilibra la carga" de
forma dinmica: cada trabajador recoge exactamente el mismo trabajo que puede manejar, y si las
nuevas tareas se agregan al espacio (por ejemplo otros depsitos animador tareas), los
trabajadores comenzarn a computar tareas de ambas secuencias de animacin .

Por ltimo, considerar un simple sistema multiusuario de chat. Un espacio puede servir como una
"zona de chat" que contiene todos los mensajes que componen una discusin. Para "hablar", un
mensaje participante deposite objetos en el espacio. Todos los miembros de chat esperar a que
aparezcan nuevos objetos de mensajes, leerlos, y mostrar su contenido. La lista de asistentes
tambin puede ser colocado en el lugar y se actualiza cada vez que alguien se une o abandona la
conversacin. Si llega tarde pueden examinar los objetos de los mensajes existentes en el espacio
para revisar la discusin anterior. De hecho, ya que el espacio es persistente, un nuevo
participante puede ver la discusin mucho despus de que todos los dems han desaparecido, y
los participantes pueden incluso volver ms tarde para recoger la conversacin donde lo dejaron.

Estos ejemplos ilustran algunos de los posibles usos de los espacios, de los sistemas de flujo de
trabajo, servidores de computacin en paralelo, a los sistemas de colaboracin. Mientras que
dejan un montn de detalles a la imaginacin (por ejemplo, cmo logramos pedidos en los
mensajes de chat)

También podría gustarte