Anwendungsentwickler, die auf Roblet®-Server zugreifen und ihnen Roblets® schicken und diese verwalten möchten, benutzen dazu einen Roblet®-Klienten. Ein Roblet®-Klient dient auch noch dazu, in einem lokalen Netz zunächst unbekannte Roblet®-Server aufzufinden.
Erfahrenere Entwickler können mit Hilfe der Standard-Einheiten auf Ressourcen bzw. Möglichkeiten zurückgreifen, die jeder (neuere) Roblet®-Server zur Verfügung stellt.
An alle Anwendungsentwickler richtet sich die API-Dokumentation für Anwendungen.
Roblet®-Klient
Anwendungsentwickler, die auf Roblet®-Server zugreifen und ihnen Roblets® schicken möchten, benutzen dazu eine Anzahl spezieller Klassen. Diese kontaktieren Roblet®-Server und verpacken und versenden Roblet®-Instanzen. Sie kümmern sich auch um Rückgabewerte und Ausnahmen. Bei Bedarf werden Verbindungen wieder aufgebaut und überhaupt wird ermöglicht, daß eine Anwendung ständig mit ihren Roblets® kommunizieren kann.
Die wichtigste Klasse ist dabei genRob.genControl.client.Client. Sie dient hauptsächlich dem Auffinden von Roblet®-Servern. Von dieser Klasse braucht eine Anwendung nur genau eine Instanz zu erzeugen. Diese Instanz wird dann kurz Klient genannt.
Repräsentanten für Roblet®-Server bekommt man vom Klienten in Form von Instanzen des Typs genRob.genControl.client.Server. Diese Repräsentanten benutzt man hauptsächlich, um sich ein oder mehrere Fächer (s.u.) auf einem Roblet®-Server zu reservieren. Der Klient stellt sicher, daß pro realem Roblet®-Server nur genau ein Repräsentant im Umlauf ist1. Die Repräsentanten werden meist kurz selbst als Server bezeichnet.
Ein Server(-Repräsentant) gibt auf Anfrage eine Instanz vom Typ genRob.genControl.client.Slot zurück. Bei jeder Anfrage wird eine neue Instanz zurückgegeben. Jede solche Instanz fungiert als Repräsentant für ein auf dem Roblet®-Server befindliches Fach2. Der Roblet®-Server reserviert für jeden Klienten separate Fächer. Mit Hilfe der Fach-Repräsentanten kann eine Anwendung Roblets® platzieren (laufen lassen) und notfalls beenden aber auch Kommunikationskanäle (ferne Instanzen) erzeugen. In jedem Fach kann immer nur ein Roblet® laufen. Die Fach-Repräsentanten werden meist kurz selbst als Fach bezeichnet. Die Nutzung von fernen Instanzen von und in Richtung eines Roblets® erfolgt auf Seiten der Anwendung auch über den zugehörigen Fach-Repräsentanten.
Als Sieb wird jede Instanz vom Typ genRob.genControl.client.Sieve bezeichnet. Ein Sieb filtert aus den vom Klienten automatisch gefundenen Roblet®-Servern genau die heraus, die gewissen anwendungsspezifischen Kriterien genügen.
Standard-Einheiten
Erfahrenere Entwickler können mit Hilfe der Standard-Einheiten auf Ressourcen bzw. Möglichkeiten zurückgreifen, die jeder (neuere) Roblet®-Server zur Verfügung stellt.
Will ein Roblet® eine ferne Instanz seiner Anwendung benutzen, so geschieht das zum Teil mit Hilfe der Einheit genRob.genControl.unit.Proxies. Die Anwendung muß allerdings vorher mit Hilfe von genRob.genControl.client.Slot.offerRemote(...) über den Fach-Repräsentanten eine entsprechende Instanz zum Zugriff freigegeben haben. Die Rückrichtung geht über die Einheit genRob.genControl.unit.Remotes und der zugehörigen Fach(-Repräsentanten)-Methode genRob.genControl.client.Slot.obtainProxy(...).
Nicht nur in der Phase der Entwicklung ist es interessant, Roblets® Ausgaben ins Logbuch des Servers machen zu lassen. Dies geschieht unter Zuhilfenahme der Einheit genRob.genControl.unit.log.Logger2 und ihren Hilfsklassen. Das Lesen von Log-Einträgen kann eine Anwendung mit der Einheit genRob.genControl.unit.log.Log2 durchführen.
1 Das gilt nicht für den Fall, daß mehrere Klienten gleichzeitig erzeugt werden.
2 Ein Fach könnte in Analogie zu Servlet®-Containern auch als Roblet®-Container bezeichnet werden. Genauso gut wäre der Begriff Sandbox verwendbar. Ebenso könnte der Begriff Prozeßraum (process space) zum Einsatz kommen und ein Roblet® wäre dann ein Prozeß.