Überblick für Anwendungsentwickler

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ß.
powered by genRob®erzeugt am 08.01.2011 um 12:28:48.024 CET mit
genRob®-genSite 3.4