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).