Praktische Aufgabe zu Web Application Engineering & Content Management

Hinweis: Erarbeiten Sie dieses Beispiel in der Gruppe, zu der Sie sich unter angemeldet haben.

Der Übungsteil zu Web Application Engineering befasst sich mit der serverseitigen Umsetzung von komplexen Web Services auf Basis eines exemplarischen Web Application Servers. Zum Einsatz kommt dabei der open source Application Server Mason und die Anwendungsdomäne des Web Content Managements. Die Aufgabe ist in Gruppen zu 2-4 Studenten zu lösen, d.h. jede Gruppe hat die kurzen Programme als Team zu erstellen und abzugeben. Beim kurzen Abgabegespräch werden die Mason-Komponenten übergeben, diskutiert und bewertet.

In Kürze die gestellte Aufgabe:

Auf Basis einer (oder wenn nötig mehrerer) einfachen Datenbanktabelle(n) sollen zumindest Dokument-ID, Inhalt, Titel und Erstellungdatum von Web-Dokumenten erfasst werden können. Durch den Einsatz eines Open Source WYSIWIG Editors hat der Content Manager die Freiheit, Texte mit Bildern und Hyperlinks zu kombinieren. Seiten sollen angelegt, gespeichert und gelöscht werden können, eine zu entwicklende Preview-Semantik erlaubt einen Blick auf das soeben Erstellte. Mittels hierarchischer Strukturierung über die Ids ist ein Dokumentenbaum zu erstellen und als Menu (analog zur Darstellung in Typo3, siehe Vorlesung 5) zu visualisieren. Letztlich soll ein Template für eine individuelles Erscheinungsbild der Site sorgen. Die Einbindung mehrerer Komponenten in den Web Application Server reichert die Ergebnissite mit anschaulichen und fantasiereichen Features an.

Die Aufgabe wird gelöst, indem mehrere Mason-Komponenten eingesetzt werden, die einige Features dieses Web Application Servers demonstrieren:

  1. Bearbeitungskomponente (Content Management Component)
    In einem Formular soll ein Dokument erfasst bzw. editiert werden können. Analog zum Workflow von aktuellenCMS sollen hier Daten und Metadaten von Web-Dokumenten erfasst werden. Als Hilfsmittel steht der WYSIWYG-Editor FCKeditor zur Verfügung, ein einfaches Code-Beispiel zur Integration finden Sie hier.
    Die Dokumente sollen per Mason-Komponente in die Datenbank hinzugefügt werden können bzw. die bestehenden Dokumente gelöscht werden können. Die entsprechenden Formularkomponenten sollen dem Template mitteilen können, dass sie in unterschiedlichem Layout erscheinen sollen. Es sind dazu objekt-orientierte Konzepte von Mason anzuwenden, nämlich die Komponenten mit Attributen zu versehen.
  2. Eine Menu Komponente
    Diese Komponente stellt eine selbstständige Mason-Komponente dar, die aus den Titeln der in der Datenbank befindlichen Dokumente eine hierarchische Auflistung in Form eines Menus darstellt. Durch die Auswahl eines Eintrages soll ein entsprechendes Dokument aufgerufen werden können. Musterbeispiele, wie dies in der Wirtschaftspraxis umgesetzt ist, finden sich in Screenshot1, Screenshot2 und Screenshot3.

    Das Menu baut aufgrund der hierarchischen Beziehung zwischen den Dokument-IDs einen entsprechenden Menubaum (höchstens 3 Ebenen) auf. Das Menu, die Anzeige des Dokumentinhaltes und eventuelle Header/Footer/Hintergrundbilder werden dann vom Template (siehe nächste Komponente) integriert.

  3. Eine autohandler Komponente
    Diese Komponente stellt ein Template dar und soll, abhängig von der Funktionalität der im weiteren aufgerufenen Komponenten verschiedene Layouts erzeugen können. Je nachdem, ob es sich um eine Produktbearbeitung (Eingabe, Löschen) oder um die Produktanzeige zur Bestellung handelt, soll sichtbar ein anderes Design erzeugt werden. Es steht jeder Gruppe frei, ein ansprechendes Layout dafür zu definieren.
    Die template Komponente muss den Namen "autohandler" tragen, denn der Mason Server für den Praxisteil ist auf diese Bezeichnung konfiguriert. Ihr template kann zur unterschiedlichen Darstellung gerne objektorientierte Elemente aus Mason einsetzen (Attribute, Methoden, etc.)
  4. Datenbank-Access-Komponente
    Es ist empfohlen, eine eigene Komponente (oder mehrere) zu entwerfen, die sich um die Datenbankzugriffe kümmert/n. So kann in den Formularkomponenten das Hauptaugenmerk auf der Formularerstellung bleiben und die Datenbankanbindung mit den zu liefernden Datenbankergebnissen als Subkomponenten eingebunden werden (als Vorbild gilt hier das MVC-Architekturmodell, demzufolge die Dagenbankmodellierung und der -zugriff als Model, die Applicationslogikkomponenten als Control und die Benutzerschnittstelle als View bezeichnet werden. Die Aufteilung der jeweiligen Zuständigkeiten erleichtert die Code-Wartung und bringt semantische Struktur in den Web Application Engineering Prozess). Wie eine Komponente aus einer anderen aufgerufen bzw. eingebunden wird, erklären die Beispiele im Anhang und www.masonhq.com.
  5. Weitere selbst-definierte Komponenten Im Sinne der Erstellung eines attraktiven CMS-Services bieten das Internet aktuell viele Möglichkeiten, wie das Erscheinungsbild einer speziellen Applikation aussehen kann. Viele Seiten setzen sich aus mehreren Einzelkomponenten zusammen, die mehrere, individuell spezifizierte Aufgaben erfüllen (oben sprachen wir von Menu und Content-Bereich). Frei nach Ihrer Fantasie soll hier die eine oder andere Komponente hinzugefügt werden, die Ihrem Ergebnis eine persönliche Note verleihen.
Sie benötigen zur Lösung dieser Aufgabe eine Account am Mason Webserver (wae.culturall.com), wo Sie in Ihrem Verzeichnis (z.B.: wae019) die Komponenten erstellen und testen können, ebenso wie einige Hinweise zur Komponentenerstellung und Datenbankanbindung. Pro Gruppe gibt es zusätzlich auch einen Account für das Rechnernetze Lab, das Sie zur Arbeit nutzen können. Die Datenbank können Sie mit dem Kommandozeiletool "mysql" bedienen (naeheres auch unter http://www.mysql.com). Die Datenbank ist einfach über http://wae.culturall.com/phpMyAdmin zu bedienen, bitte nur die Datenbank "test" verwenden, um evtl. Tabellen anzulegen und Inhalte zu kontrollieren.

Hinweise zur Erstellung von Mason-Komponenten finden Sie unter http://www.masonhq.com und einige wenige zu Mason und besonders zur Datenbankanbindung mit dem perl-Modul DBIx::Abstract auch hier.

Abgegeben werden die Ergebnisse beim Jänner-Termin im Labor, eine entsprechende Zeiteinteilung (ca. 15 min pro Gruppe) steht ab Dezember auf der Homepage der Lehrveranstaltung.

Viel Erfolg bei der Bearbeitung wünscht
Markus Schranz