Sie sind hier: JD Web Pages > Themen > mindrobots > Alte Projekte > s²mirs > Architektur > Aufbau
Hallo Gast, Sie sind nicht angemeldet.

Aufbau

Von Johannes Dörr am 13.06.2009, aktualisiert am 14.06.2009 um 00:52 Uhr

Das System besteht aus zwei Ebenen. Die untere Ebene ist sozusagen roboterintern und beinhaltet das Grundprogramm, nämlich die Main Control (MC). Sie übernimmt die Kommunikation mit den einzelnen Modulen und stellt weitere Funktionen wie z.B. eine Datenbank zur Verfügung. Auf jedem Roboter des s²mirs-Systems läuft so eine MC. Sie ist also das "Herzstück" des einzelnen Roboters, jedoch nicht das Gehirn - schließlich wird sein Verhalten durch die Module bestimmt.

Die obere Ebene beschreibt die Vernetzung der einzelnen MCs. Wie oben bereits erwähnt, gibt es dabei keine übergeordnete Einheit. Die MC kommuniziert mit allen anderen MCs und gleicht ihre Daten ab.

Die Module

Module in diesem System sind eigenständige Programme. Die Kommunikation zwischen MC und Modul läuft über TCP/IP, mit dem Datenstring gesendet und empfangen werden können. Obwohl es sich dabei um ein Netzwerk-Protokoll handelt, funktioniert es ebenfalls auf einem einzelnen Rechner. TCP hat den großen Vorteil, dass es von fast allen Programmiersprachen direkt unterstützt wird. Die einzelnen Module können also in verschiedenen Sprachen programmiert sein.

Jedes Modul besteht aus einem Client und besitzt auf der MC einen eigenen TCP-Server. Es ist ebenso möglich, dass ein Server mit mehreren Clients kommuniziert, wie es zum Beispiel bei Webservern im Internet der Fall ist. Da es sich hier jedoch um stehende Verbindungen handelt, die während des ganzen Betriebs offen gehalten werden (bei Webservern besteht hingegen immer nur eine kurze Verbindung, solange die Daten übertragen werden), ist es effektiver, einen Server mit nur einem Client zu belasten und dafür mehrere Server zu starten.

Einbinden von Modulen

Die Einbindung bzw. der Login von Modulen funktioniert sinnvollerweise vollautomatisch. Damit ist gemeint, dass die Zuweisung von Ports an die einzelnen Module nicht manuell geschehen muss.

Die MC erstellt beim Start einen Login-Server, der nur die Aufgabe hat, den Login von Modulen zu regeln. Ein neues Modul meldet sich bei diesem Server an und startet eine Anfrage. Diese beinhaltet zunächst den Namen des Moduls. Jedes Modul muss einen eindeutigen Namen besitzen. Ist bereits ein Modul mit demselben Namen vorhanden, wird die Anfrage abgewiesen. Dies geschieht auch, wenn der gewünschte Name nicht erlaubte Zeichen beinhaltet.

Zweitens wird der Modultyp angegeben. Mit ihm lassen sich Module gruppieren. Eine spezielle Gruppe stellt der Typ "GUI" dar. Er steht für ein Modul, das es dem Benutzer ermöglicht, das System zu überwachen. Es ist also eine Benutzeroberfläche. Ein Modul dieses Typs besitzt deshalb ein paar zusätzliche Rechte im Gegensatz zu normalen Modulen, was hier jedoch zunächst nicht von großer Beachtung sein soll. Drittens wird die Art der Verbindung angegeben. Auch hierauf wird später weiter eingegangen.

War die Anfrage erfolgreich, so wird dem Modul eine neue Portnummer zugewiesen. Auf diesem startet die MC einen neuen Server, auf dem sich das Modul nun anmeldet. Schließlich kann über diese neue Verbindung kommuniziert werden, die Verbindung mit dem Login-Server wird wieder getrennt und ein neues Modul kann sich einloggen.