Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tarea
Investigacin
05
JavaSpaces
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
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.
Caractersticas principales
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.
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.
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)