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