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

Stellvertreter für Roblet®-Server bekommt man vom Klienten in Form von Instanzen des Typs genRob.genControl.client.Server.  Diese Stellvertreter benutzt man hauptsächlich, um sich ein oder mehrere Fächer (s.u.) von einem Roblet®-Server zu besorgen.  Der Klient stellt sicher, daß pro realem Roblet®-Server nur genau ein Stellvertreter im Umlauf ist1.  Die Stellvertreter werden meist kurz selbst als Server bezeichnet.

Ein Server 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 Stellvertreter für ein auf dem Roblet®-Server befindliches Fach2.  Der Roblet®-Server reserviert für jeden Klienten separate Fächer.  Mit Hilfe der Fach-Stellvertreter kann eine Anwendung Roblets® platzieren (laufen lassen) und notfalls beenden aber auch Kommunikationskanäle erzeugen.  In jedem Fach kann immer nur ein Roblet® laufen.  Die Stellvertreter werden meist kurz selbst als Fach bezeichnet.  Die Nutzung von fernen Instanzen in Richtung eines Roblets® erfolgt auf Seiten der Anwendung auch über das zugehörige Fach.

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 erreichen.  Die Anwendung muß allerdings vorher mit Hilfe von genRob.genControl.client.Slot.offerRemote(...) eine entsprechende Instanz zum Zugriff freigegeben haben.  Die Rückrichtung geht über die Einheit genRob.genControl.unit.Remotes und der zugehörigen Fach-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.

In seltenen Fällen ist es interessant, die Version eines Roblet®-Servers zu erfahren.  Dies kann man mit Hilfe der Einheit genRob.genControl.unit.Version erreichen.


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 10.06.2010 um 15:17:18.506 CEST mit
genRob®-genSite 3.4