Espacio de Tuple

Un espacio tuple es una realización del paradigma de memoria asociativo para igualan/distribuyen la informática. Proporciona un depósito de tuples a que pueden tener acceso simultáneamente. Como un ejemplo ilustrativo, considere que hay un grupo de procesadores que producen piezas de datos y un grupo de procesadores que usan los datos. Los productores fijan sus datos como tuples en el espacio, y los consumidores entonces recuperan datos del espacio que corresponden a cierto modelo. Esto también se conoce como la metáfora de la pizarra. El espacio de Tuple se puede pensar como una forma de la memoria compartida distribuida.

Los espacios de Tuple eran el apuntalamiento teórico de la lengua de Linda desarrollada por David Gelernter y Nicholas Carriero en la Universidad Yale.

Las realizaciones de espacios tuple también se han desarrollado para Java (JavaSpaces), Ceceo, Lua, Prólogo, Pitón, Rubí, Smalltalk, Tcl y el marco.NET.

Espacios del objeto

Los Espacios del objeto son un paradigma para el desarrollo de aplicaciones de calcular distribuidas. Es caracterizado por la existencia de entidades lógicas, llamadas Espacios del Objeto. Todos los participantes de la aplicación distribuida comparten un Espacio del Objeto. Un abastecedor de un servicio encapsula el servicio como un Objeto y dice en el Espacio del Objeto. Los clientes de un servicio entonces tienen acceso al Espacio del Objeto, averiguan qué objeto proporciona el servicio necesario, y hacen atender la solicitud por el objeto.

Los Espacios del objeto, como un paradigma de calcular, fueron propuestos por David Gelernter en la Universidad Yale. Gelernter desarrolló una lengua llamada Linda para apoyar el concepto de la coordinación del objeto global.

Pueden pensar del Espacio del objeto como un depósito virtual, compartido entre abastecedores y accessors de servicios de la red, que se abstraen como objetos. Los procesos se comunican el uno entre el otro que usa estos objetos compartidos — actualizando el estado de los objetos si sea necesario.

Un objeto, cuando depositado en un espacio, se tiene que registrar con un Directorio del Objeto en el Espacio del Objeto. Cualquier proceso puede identificar entonces el objeto del Directorio del Objeto, usando la consulta de propiedades, donde la propiedad que especifica los criterios para la consulta del objeto es su nombre o alguna otra propiedad que únicamente lo identifica. Un proceso puede decidir esperar un objeto a colocarse en el Espacio del Objeto, si el objeto necesario no está presente ya.

Los objetos, cuando depositado en un Espacio del Objeto son pasivos, es decir, sus métodos no se pueden invocar mientras los objetos están en el Espacio del Objeto. En cambio, el proceso que tiene acceso lo debe recuperar del Espacio del Objeto en su memoria local, usar el servicio proporcionado por el objeto, actualizar el estado del objeto y colocarlo atrás en el Espacio del Objeto.

Este paradigma intrínsecamente proporciona la exclusión mutua. Como una vez que tienen acceso a un objeto, se tiene que quitar del Espacio del Objeto y se coloca atrás sólo después de que se ha soltado. Esto significa que ningún otro proceso puede tener acceso a un objeto mientras está siendo usado por un proceso, así asegurando la exclusión mutua.

JavaSpaces

JavaSpaces es una especificación del servicio que proporciona un cambio del objeto distribuido y mecanismo de coordinación (que puede o puede no ser persistente) para objetos de Java. Es usado para almacenar el estado del sistema distribuido y el instrumento distribuyó algoritmos. En JavaSpace, todos los compañeros de comunicación (pares) comunican y coordinan compartiendo el estado.

JavaSpaces puede ser usado para conseguir la escalabilidad a través del procesamiento paralelo, también puede ser usado para proporcionar el almacenaje confiable de objetos a través de la réplica distribuida, aunque esto no sobreviva un apagón total como un disco; es considerado por muchos para ser confiable mientras el poder es confiable. La distribución también puede ser a posiciones remotas; sin embargo, esto es raro ya que JavaSpaces por lo general están acostumbrados a latencia baja, aplicaciones de alto rendimiento, más bien que objeto confiable esconder.

El modelo del software más común usado en JavaSpaces es el modelo del Maestro-trabajador. El Maestro reparte unidades del trabajo al "espacio", y éstos se leen, se tratan y contestados al espacio por los trabajadores. En un ambiente típico hay varios "espacios", varios maestros y muchos trabajadores; los trabajadores por lo general se diseñan para ser genéricos, es decir pueden tomar cualquier unidad del trabajo del espacio y tratar la tarea.

JavaSpaces es la parte de la Java tecnología de Jini, que solo no ha sido un éxito comercial. La tecnología ha encontrado y ha guardado a nuevos usuarios durante los años y algunos vendedores ofrecen productos situados en JavaSpaces. JavaSpaces permanece una tecnología del lugar generalmente usada en los servicios financieros e industrias de la compañía telefónica donde sigue manteniendo a unos fieles siguientes. El anuncio de Jini/JavaSpaces creó bastante dan bombo publicitario aunque el co-fundador del Sol y el arquitecto de Jini principal Bill Joy lo pongan directamente que este sueño de sistemas distribuido tomará "un salto espectacular en el pensamiento".

Uso del ejemplo

El ejemplo siguiente muestra una aplicación hecha usando JavaSpaces. En primer lugar, un objeto para compartirse en el Espacio del Objeto se hace. Tal objeto se llama una Entrada en la terminología de JavaSpace. ¡Aquí, la Entrada es usada para encapsular un servicio que vuelve un Hola el mundo! la cuerda, y guarda la pista de cuantas veces se usó. El servidor que proporciona este servicio creará un Espacio del Objeto o JavaSpace. La Entrada se escribe entonces en JavaSpace. El cliente lee la entrada de JavaSpace e invoca su método de tener acceso al servicio, actualizando a su cuenta de uso haciendo tan. La Entrada actualizada se contesta a JavaSpace.

//Una clase de Entrada

la clase pública SpaceEntry pone en práctica la Entrada {\

mensaje de la Cuerda final público = "¡Hola el mundo!";

cuenta del Número entero pública = 0;

servicio de la Cuerda público {\

++ cuenta;

devuelva el mensaje;

}\

Cuerda pública toString {\

vuelta "Conde:" + cuenta;

}\

}\

//¡Hola el mundo! servidor

Servidor de la clase público {\

el vacío estático público principal (Cuerda [] args) lanza la Excepción {\

Entrada de SpaceEntry = nuevo SpaceEntry ;//Crean el objeto de Entrada

Espacio de JavaSpace = (JavaSpace) espacio ;//Crean un Espacio del Objeto

//Registre y escriba la Entrada en el Espacio

space.write (entrada, nula, Arriendo. Para SIEMPRE);

//La pausa durante 10 segundos y luego recupera la Entrada y comprueba su estado.

Thread.sleep (10 * 1000);

SpaceEntry e = space.read (entrada, nula, Long. MAX_VALUE);

System.out.println (e);

}\

}\

//Cliente

Cliente de la clase público {\

el vacío estático público principal (Cuerda [] args) lanza la Excepción {\

Espacio de JavaSpace = (JavaSpace) espacio ;

SpaceEntry e = space.take (nuevo SpaceEntry , nulo, Long. MAX_VALUE);

System.out.println (e.service );

space.write (e, nulo, Arriendo. Para SIEMPRE);

}\

}\

</fuente>

Libros

Entrevistas

Artículos

Realizaciones del espacio de Tuple

Proyectos inactivos:

Véase también

Fuentes

Enlaces externos



Buscar