Пространство кортежей (англ.tuple space) — реализация парадигмы ассоциативной памяти для параллельных/распределённых вычислений. Она предоставляет репозиторий кортежей с параллельным доступом. Например, можно представить группу процессоров, которые вычисляют данные и сохраняют их в пространство кортежей, и группу процессоров, которые ищут данные в пространстве по шаблону и используют их. Пространство кортежей можно рассматривать как разновидность распределённой памяти.
Пространства кортежей являются теоретической основой языка Linda.
JavaSpaces — служба, предоставляющая распределённый механизм обмена и координирования объектов Java. Она используется для сохранения состояния распределённой системы и реализации распределённых алгоритмов.
Пример использования
// An Entry classpublicclassSpaceEntryimplementsEntry{publicfinalStringmessage="Hello World!";publicIntegercount=0;publicStringservice(){count=count+1;returnmessage;}publicStringtoString(){return"Count: "+count;}}// Hello World! serverpublicclassServer{publicstaticvoidmain(String[]args)throwsException{SpaceEntryentry=newSpaceEntry();// Create the Entry objectJavaSpacespace=(JavaSpace)space();// Create an Object Space// Register and write the Entry into the Spacespace.write(entry,null,Lease.FOREVER);// Pause for 10 seconds and then retrieve the Entry and check its state.Thread.sleep(10*1000);SpaceEntrye=space.read(newSpaceEntry(),null,Long.MAX_VALUE);System.out.println(e);}}// ClientpublicclassClient{publicstaticvoidmain(String[]args)throwsException{JavaSpacespace=(JavaSpace)space();SpaceEntrye=space.take(newSpaceEntry(),null,Long.MAX_VALUE);System.out.println(e.service());space.write(e,null,Lease.FOREVER);}}