Wie schon erwähnt, ist JINI ein auf der Programmiersprache JAVA basierendes Netzwerksystem und es ermöglicht, dass verschiedene, netzwerkfähige Komponenten untereinander kommunizieren können. In unserem Falle war es die Simulation der Kommunikation zwischen der Förderbandsteuerung (z.B. ein Notebook) und der Motorsteuerung für das Förderband.  
   
  Kommen wir nun also zum allgemeinen Programmablauf: Nachdem der LookUpService (LUS genannt) gestartet und die JINI-Umgebung eingerichtet wurde, kann das Förderband in Betrieb genommen werden.  
   
 
  1. Dazu wird als erstes die Klasse "Foerderband" im LUS registriert, denn sie stellt dann die Methode "controlMotor" zur Verfügung. "Foederband" meldet auch die Klasse "Motorsteuerung" im LUS an. Außerdem werden hier die benötigten Stubs und Skeletons erzeugt, bzw. bereitgestellt. Zur näheren Erläuterung sind Stubs und Skeletons Rumpfklassen, die im Server dem Client zur Verfügung stehen. Sie sind von entscheidender Wichtigkeit, da sie die Informationen enthalten, mit welcher Methode (hier "controlMotor") in welcher Klasse der Client mit dem Server über welches Interface (hier " JiniInterface") kommunizieren kann. Skeletons werden für die Übergabe Server/Client benötigt, während die Stubs für die Übergabe Client/Server da sind. In unserem Fall sind es die Klassen "Motorsteuerung_Stub" und "Motorsteuerung_Skel".
  2. Anschließend definiert die Klasse "JiniInterface" die Methode "controlMotor", da sie ja in "JiniInterface" beinhaltet ist.
  3. Nun wird die Klasse "Foerderbandsteuerung" gestartet. Sie implementiert das Interface "JiniInterface".
  4. Als nächstes erfolgt in der Klasse "Motorsteuerung" die Erzeugung einer neuen Methode "Steuerung".
  5. Im fünften Schritt wird die Klasse "Foederbandsteuerung" als Client aufgerufen und registriert sich im LUS selbständig.
  6. Jetzt ruft die Klasse "Foederbandsteuerung" die Methode "controlMotor" im Service (hier die Klasse "Foederband") auf. Anschließend übergibt die "Foerderbandsteuerung" der Methode "controlMotor" ein String-Literal mit der aktuellen Laufrichtung, in der das Förderband laufen soll.
  7. Nachdem das String-Literal übergeben wurde, wird die Methode "controlMotor" in der Klasse "Motorsteuerung" ausgeführt und übergibt anschließend an die Klasse "Foederbandsteuerung" einen Vector mit der aktuellen Endposition des Laufbandes und der aktuellen Signal- bzw. Befehlslaufzeit. Hier findet sozusagen die eigentliche Messung der Zeit statt.
  8. Anhand dieser Information in diesem Vector entscheidet die "Foerderbandsteuerung" über die neue Laufrichtung, übergibt diese der Methode "controlMotor" und gibt gleichzeitig die aktuelle Endposition des Laufbandes sowie die Signallaufzeit auf dem Monitor aus.
  9. Nun werden die Schritte 6.) bis 8.) mehrfach wiederholt, abhängig davon, wieviele Wiederholungzyklen an Messungen der Signallaufzeit und damit Richtungsbestimmungen bzw. -änderungen durchführt werden sollen. Natürlich wird beim letzten Mal dann kein String-Literal mehr an "controlMotor" übergeben, da das Programm ja abgearbeitet wurde.
  10. Zum Schluß werden die Klassen "Foerderbandsteuerung" und "Motorsteuerung" beendet, denn das Programm wurde ja abgearbeitet. Der Service, die Klasse "Foerderband" sowie die Stubs und Skeletons bleiben erhalten. Sie werden geschlossen, wenn die JINI-Umgebung geschlossen wird.
 
 

Klassendiagramm