Space

Ein Space ist ein Informationsspeicher in der Tradition des Tuplespace. Space ist in Java implementiert und als Open Source erhältlich (siehe Space-Client-Package und Space-Server-Package).

Ein
Space speichert sogenannte Entries, die Instanzen mehrerer Entry-Klassen sein können. Entries haben durch Zeichenketten benannte Attibute, deren Werte S-Expressions (siehe Lisp) sein müssen.

Die elementaren Operationen mit einem
Space sind:

• read - liest ein Entry, das auf ein Template passt,
• readIfExists - wie read, jedoch kehrt die Operation sofort mit dem Resultat null zurück, wenn kein passendes Entry im
Space ist,
• readAllIfExist - wie readIfExists, es wird aber nicht nur ein Entry, sondern alle passenden Entries geliefert,
• take - entnimmt ein passendes Entry,
• takeIfExists - wie take, jedoch wird nicht darauf gewartet, dass ein passendes Entry im
Space erscheint,
• write - schreibt ein Entry in den
Space,
• notify - dient der Registrierung eines Listeners, der Events erhält, wenn passende Entries geschrieben oder entnommen werden,
• call - führt ein Script auf der Serverseite aus.


Alle Operationen können transaktionsgesichert ausgeführt werden.

Für Entries, Transaktionen und Registrierungen von Listenern werden Leases vergeben (siehe
Lease).

Es gibt aktive Entries, die selbsttätig Operationsfolgen im
Space ausführen. Die Operationsfolgen werden dabei in einem Lisp-Dialekt (siehe Lisp) formuliert. Lisp-Funktionen können in Bibliotheken organisiert werden, die ebenfalls durch spezielle Entries repräsentiert werden.

Für das Space-System gibt es eine Reihe von Zusatzpaketen, mit denen sich z.B. einfach Client-Applikationen mit graphischer Oberfläche erstellen lassen (siehe
AWT-Forms-Package).