|
Roblet®-Development-Kit 2.1 (01Mrz12) API für Module |
||||||||
PREV NEXT | FRAMES NO FRAMES |
See:
Description
Module | |
---|---|
genRob.genControl.modules | Dieses Java™-Package enthält wesentliche Teile dessen, was die API für Module zum Roblet®-Server ausmacht. |
Dies ist die Beschreibung der API (application programming interface - Anwendungsprogrammierschnistelle) für Module zum Roblet®-Server. Module bieten die Möglichkeit, Ressourcen in Form von Einheiten für Roblets® bereitzustellen. Ressourcen sind prinzipiell alles, was über die grundlegenden Möglichkeiten einer Java™-Klasse in einer JVM, wie Ablaufkontrolle, Methodenaufrufe, Instanzerzeugung, Threading etc., hinausgeht. Dazu gehören die Daten der Laufzeitbibliothek genauso wie Dateisystem, Netzwerk, Datenbank, grafische Oberfläche usw. Auch native Zugriffe (per JNI - Java™ native interface) fallen darunter.
Roblets® können vom Roblet®-Server jederzeit ohne deren
Widerspruchsmöglichkeit beendet werden.
Dieses "harte" Beenden trifft die einzelnen Threads eines Roblets® dann in
einem beliebigen Punkt ihres Ablaufs.
Die Klassen eines Roblets® werden nach einem solchen Ende nicht mehr
weiterverwendet sondern verfallen einfach.
Die Ressourcen-verwaltenden Bibliotheken insbesonderes die des JDK
(Java™ Development Kit) werden jedoch auch von anderen Teilen
eines Roblet®-Servers verwendet und können nicht verfallen.
Diese Bibliotheken sind aber in der Regel auf derartiges nicht vorbereitet
(weswegen ThreadGroup.stop()
auch abgekündigt und nicht
mehr empfohlen ist).
Stattdessen muß der Roblet®-Server dafür Sorge tragen, daß Threads eines
Roblets® nicht innerhalb der o.g. Bibliotheken "hart" enden.
Um das bewerkstelligen zu können, gibt es das Konzept der Einheiten. Die Einheiteninstanzen, die ein Modul zur Verfügung stellt, werden vom Roblet®-Server nicht direkt an das jeweilige Roblet® weitergegeben. Stattdessen erhält das Roblet® automatisch eine Ersatzinstanz, die das obige Problem des "harten" Endes löst und gleichzeitig noch Aspekte der Sicherheit berücksichtigt.
Ein Entwickler muß für ein Modul die Schnittstelle
Module2
implementieren.
Dabei hat er sich hauptsächlich nur darum zu kümmern, daß
eine Regel eingehalten wird:
Alle Instanzen, die ein Modul an ein Roblet® herausgibt und die im Modul
über ihre Methoden etwas verändern können, müssen vom Typ
Unit
sein.
Darüberhinaus muß an den Stellen, wo derartige Instanzen zurückgegeben
oder als Parameter an das Modul übergeben werden, ein Schnittstellentyp
(interface) stehen.
Dieser Schnittstellentyp läßt es dann zu, daß der Roblet®-Server diese Instanzen zur Laufzeit erkennt und seine Arbeit hinsichtlich der Ersatzinstanzen erfüllen kann.
Das Kapitel Entwicklung enthält Informationen hinsichtlich der Architektur des Roblet®-Serves. Dort ist auch ein Beispiel-Modul erläutert. Zur Einstiegsseite des RDK kommt man hier.
|
Roblet®-Development-Kit 2.1 (01Mrz12) API für Module |
||||||||
PREV NEXT | FRAMES NO FRAMES |