Interested Article - Пространство кортежей

Пространство кортежей ( англ. tuple space ) — реализация парадигмы ассоциативной памяти для параллельных/ распределённых вычислений. Она предоставляет репозиторий кортежей с параллельным доступом. Например, можно представить группу процессоров, которые вычисляют данные и сохраняют их в пространство кортежей, и группу процессоров, которые ищут данные в пространстве по шаблону и используют их. Пространство кортежей можно рассматривать как разновидность .

Пространства кортежей являются теоретической основой языка Linda .

Реализации пространств кортежей были разработаны для Java , Smalltalk , Ruby , TCL , Python , Lua , Лисп и Пролог .

Object spaces

JavaSpaces

JavaSpaces — служба, предоставляющая распределённый механизм обмена и координирования объектов Java. Она используется для сохранения состояния распределённой системы и реализации .

Пример использования

// An Entry class
public class SpaceEntry implements Entry
{
     public final String message = "Hello World!";
     public Integer count = 0;
 
     public String service() {
         count = count + 1;
         return message;
     }
 
     public String toString() {
         return "Count: " + count;
     }
}

// Hello World! server
public class Server
{
     public static void main(String[] args) throws Exception
     {
         SpaceEntry entry = new SpaceEntry();            // Create the Entry object
         JavaSpace space = (JavaSpace)space();           // Create an Object Space
         // Register and write the Entry into the Space
         space.write(entry, null, Lease.FOREVER);        
         // Pause for 10 seconds and then retrieve the Entry and check its state.
         Thread.sleep(10*1000);
         SpaceEntry e = space.read(new SpaceEntry(), null, Long.MAX_VALUE);
         System.out.println(e);
     }
}

// Client
public class Client
{
     public static void main(String[] args) throws Exception
     {
         JavaSpace space = (JavaSpace) space();
         SpaceEntry e = space.take(new SpaceEntry(), null, Long.MAX_VALUE);
         System.out.println(e.service());
         space.write(e, null, Lease.FOREVER);
     }
}

Ссылки

  • на c2.com (англ.)
  • at jini.org
Источник —

Same as Пространство кортежей