4 Beispiel im Rahmen des DVP-Projektes

4.1.2 Eingriffsbereiche

Bereiche, in denen Änderungen vorgenommen werden können, werden im Folgenden beschrieben.

4.1.2.1 Bootvorgang

Da der Bootvorgang und die Hardwareerkennung Knoppix-eigen sind, sind Änderungen hier nicht für das VDR-Programm nötig bzw. nicht immer möglich. Jedoch muss hier erwähnt werden, dass aufgrund von Kapazitätsbeschränkungen eine große Zahl an Software und Treiber aus der CD und dem Kernel entfernt wurden.
So reduziert sich der Umfang der Demo-CD weiterhin auf die Größe einer CD, lässt sich jedoch ausschließlich für die Laborumgebung nutzen. Deswegen wäre es angebracht, bei weiteren Versionen den vollen Kernelumfang der Knoppix-Version bestehen zu lassen und anschließend eine DVD zu brennen, um so die volle Hardwareerkennung und die Treiberaktivierung zu nutzen.

4.1.2.2 Die Weboberfläche

Die Weboberfläche wird durch den laufenden Apacheserver gesteuert. Der Nutzer selbst sieht lediglich die lokale Webseite, die von dem Server übergeben wird, nachdem das Programm dvp.py durch die Nutzereingaben die Seiten aus den HTML- und XML-Fragmenten und den Bildern zusammengesetzt hat.
Dazu gehört die entsprechende CSS-Datei, die das Aussehen der Webseite steuert. Die HTML-Fragmente enthalten jeweils Teile zur Überschrift, zur Navigation und zum Warenkorb mit Platzhaltern für die Grafiken und Links, die dann jeweils mit den XML-Fragmenten gefüllt und je nach Pluginauswahl zusammengesetzt werden.
Für die XML-Dateien gibt es 3 verschiedene DTDs: für die Plugins selbst, für das Bedienungsmodul und für die Steuerung des Ganzen171.
Der genaue Ablaufplan ist der folgenden Abbildung zu entnehmen:


Abbildung 22: Zusammenspiel von Apache, Python und dem Menü172



4.1.2.3 Der Programmcode

Das Skript dvp.py setzt aus den einzelnen Teilen die HTML-Seiten für die Weboberfläche zusammen, gibt sie zurück an den Webserver und startet und stoppt den VDR. Im Quelltext selbst werden die entsprechenden Pfade am Anfang deklariert.
Eine Veränderung ist hier leicht und verständlich möglich. Python lässt sich sowohl prozedural als auch objektorientiert verwenden.
Das hier verwendete Programm ist jedoch nicht objektorientiert geschrieben. Deswegen besteht der Quellcode aus diversen Funktionen, die folgendermaßen miteinander agieren:


Abbildung 23: Prozedur- und Programmaufrufe im Hauptprogramm173

Die einzelnen Funktionen haben kurz zusammengefasst folgende Aufgaben:
  • start ( ): initialisiert das Menü, verteilt die HTML-Anfragen auf die anderen Funktionen, Sessionmanagement
  • ifaces ( ): ermittelt IO-Ports und IRQs für die serielle Schnittstelle (Fernbedienung)
  • auswahl ( ): regelt die Liste ausgewählter Plugins, Steuerung und Kategorieansichten
  • auswahlisten ( ): Regelt die Scrolldown-Auswahlmenüs der Fernbedienung
  • patch ( ): Regelt das Scrolldown-Auswahlmenü für die Patchs
  • warenkorb ( ): Erstellt den HTML-Code für den Warenkorb aus 3 Fragmenten
  • Start ( ): setzt die Start-Kommandozeile für den VDR unter Verwendung der Hilfsprogramme vdrremote_server.py und modul.py zusammen
  • Stop ( ): beendet den VDR, gibt die Schnittstelle von lirc wieder frei


4.1.2.4 Integration neuer Plugins

Trotz einer detaillierten Beschreibung in der Studienjahresarbeit174 ergeben sich bei der Installation eines Plugins 5 praktische Probleme:

  1. Da die Ordnerstruktur nicht den Standardvorgaben entspricht, müssen die Makefiles und die Includedateien umgeschrieben und ein neues Debian-Paket für das Plugin erstellt und kompiliert werden.
  2. Da die beiden Patchs je einer Installation bedürfen, sind dabei für jedes Plugin 2 Debian- Pakete für den gepatchten VDR nötig.
  3. Für das Einbinden des Plugins in das Programm müssen neue Grafiken für die Navigation, den Warenkorb und die Buttons für das gesamte Menü erstellt werden, was trotz Templates mit höherem Aufwand verbunden ist, da die Bilder nicht dynamisch erstellt, sondern statisch geladen werden.
  4. Dazu muss zu jedem Plugin mindestes ein HTML-Fragment geändert oder erstellt, und mindestens ein XML-Fragment erstellt werden.
  5. Außerdem kann ein Plugin auch Zusatzkonfigurationen, und damit zusätzliche HTMLElemente wie z.B. eine Scrollbox, oder andere Plugins erfordern. Die Probleme bei der Integration können durch nachfolgende theoretische Änderungen im Programm selbst und der Konfiguration der Weboberfläche verbessert werden.


  • 171: Vgl. [Schö 2005] S. 42 ff
  • 172: Vgl. [Schö 2005] S. 44
  • 173: Vgl. [Schö 2005] S. 51
  • 174: Vgl. [Schö 2005] S. 55 ff

 


Top| Home| << Zurück | Nächste >>
" TARGET="_blank"> >> Home Page <<