Webframeworks - Teil 1 (PDF)

J2EE & Frameworks

Autor:
Thomas Bayer
Orientation in Objects GmbH
Thomas Bayer
Thomas Bayer
Datum:März 2003

Abstract

Das Entwickeln von Web Anwendungen gleicht oft der Programmierung in Maschinensprache. Entwickler müssen sich mit den Tücken und Besonderheiten des Web auseinandersetzen. Die Arbeit mit "Sessions" und "Contexten" läßt nur wenig Raum für die Lösung des eigentlichen Problems. Web Frameworks versprechen Abhilfe - sie verbergen die Niederungen der Web Programmierung und ermöglichen die Entwicklung auf einer höheren abstrakten Ebene.

Der erste Teil dieses Artikels befaßt sich mit der Motivation für den Einsatz eines Webframeworks. Teil 2 stellt populäre Frameworks wie Struts und Cocoon, Vertreter mit einem unkonventionellem Ansatz wie Tapestry oder Enhydra sowie die Portalframeworks Jahia und Jetspeed vor. Im dritten und letzten Teil gibt es Hinweise und Kriterien, die bei der Entscheidung und Auswahl helfen.

1 Ein Application Server ist nicht genug

Nach der Zentralisierung kann eine Webschicht erstellt werden, die eine Oberfläche für den Zugriff auf die Geschäftslogik bietet. Die meisten Application Server Produkte haben ihren Fokus auf der Schicht mit der Geschäftslogik. Für die Webschicht wird oft nur ein Web Container mit Servlet und JavaServer Page Unterstützung mitgeliefert. Ein Web Container ist für die Entwicklung von Web Anwendungen allein etwas mager, da der Programmierer mit HTML und HTTP alleingelassen wird.

2 Genügt J2EE nicht?

Die Java 2 Enterprise Edition ist eine Sammlung abgestimmter Technologien, mit denen sich unternehmensweite Lösungen erstellen lassen. Wie man die J2EE Technologien anwendet, ist in den Blueprints und J2EE Entwurfsmustern von Sun beschrieben.

Die J2EE Entwurfsmuster geben Lösungsansätze für die Praxis vor, stellen jedoch selbst keine Software dar, die man einfach einsetzen könnte. Die Architektur vieler Web Frameworks basiert auf J2EE Patterns wie zum Beispiel dem Frontcontroller oder dem ViewHelper. Webframeworks erleichtern den Einsatz von J2EE Patterns. Beispielsweise indem Muster nicht manuell implementiert werden müssen, sondern über eine Datei konfiguriert werden können. Ein Beispiel ist die Konfiguration von Frontcontroller und Dispatcher.

3 Wann Frameworks einsetzen?

So wie ein Bagger nur für bestimmte Aufgaben geeignet ist, so kann ein Framework meist nur für Aufgaben eingesetzt werden, für die das Framework geschaffen wurde. Das Umtopfen von Blumen ist eine Aufgabe für die ein Spaten völlig ausreicht. Bei Web Anwendungen muß auch das Werkzeug zur Aufgabe passen - leider sind in der Softwareentwicklung ungeeignete Werkzeuge schwerer zu erkennen als bei der Gartenarbeit.

Unter den Frameworks gibt es unterschiedlich große und komplexe Bagger, die für verschiedene Aufgaben geschaffen wurden.

Die folgenden Punkte sprechen für den Einsatz eines Frameworks:

  • An der Entwicklung sind mehrere Personen beteiligt

  • Die Personen haben unterschiedliche Rollen (Programmierer, Web Designer, Redakteur)

  • Die Web Anwendung soll auf Fremdsysteme zugreifen

  • Sicherheit und rollenspezifisches Verhalten ist gewünscht

  • Die Web Anwendung besteht aus mehr als drei Web Seiten

  • Inhalte sollen für verschiedene Medien aufbereitet werden

3.1 Probleme bei der Web Entwicklung

Die Entstehung von Frameworks wurde durch den Leidensdruck der bisherigen Entwicklung von Web Anwendung begünstigt. Ein Framework verspricht typische Probleme zu lösen. Die folgenden Abschnitte führen Aufgaben und Probleme auf, die von Frameworks adressiert werden.

Formulare und Validierung

Web Formulare, die nur eine Spur von Komfort für die Anwender bieten, stellen einen enormen Entwicklungsaufwand dar. Anwender möchten auch in Web Anwendungen nicht auf Bedienungsfreundlichkeit verzichten, die sie von anderen Programmen kennen. Keiner akzeptiert Formulare, die nach einer Fehleingabe den Benutzer auffordern, auf Back zu Klicken und die Eingaben zu korrigieren. Validierung von Formularinhalten mit ansprechenden Fehlermeldungen und graphischen Hinweisen im Formular ist heute eine Selbstverständlichkeit.

Einheitliches Vorgehen

Server Pages und Servlets lassen dem Programmierer viel Spielraum. Das Formularhandling und die Validierung kann auf verschiedene Arten umgesetzt werden. Die Folge sind unterschiedliche Ansätze für gleiche Formulartypen innerhalb einer Anwendung. Verschärft wird das Problem, sobald mehrere Personen an der Entwicklung beteiligt sind.

Trennung von Code und Layout

Bei der klassischen Server Page werden HTML Markup und Java Code bunt gemischt. Alle hier aufgeführten Frameworks ermöglichen eine Trennung von Markup und Code. Das Layout kann in HTML oder in Vorlagen, sogenannten Templates erstellt werden, während die Funktionalität in Java Klassen ausgelagert wird.

4 Web Frameworks - alles wird gut

Web Frameworks versprechen die Lösung der oben aufgeführten Probleme. Bevor im 2 Teil verschiedene Frameworks vorgestellt werden, werfen wir einen Blick auf Gesichtspunkte, die für alle Frameworks gelten.

4.1 Der Rahmen

Frameworks sind wie ein Korsett, welches die Anwendung stützt. Haltung und Form wird vorgegeben, die Entwicklung wird kontrolliert in eine Richtung gelenkt.

Das Korstett allein reicht nicht aus. Es muss auch gut geschnürt werden, um optimale Führung zu bieten. Zum Schnüren eignen sich Richtlinien und ein exemplarischer Prototyp. Sun bietet mit dem PetStore eine kleine Beispielanwendung für den Einsatz von J2EE Technologien und Entwurfsmuster. Aus meiner Erfahrung kann ich empfehlen, vor Projektbeginn einen PetStore mit dem ausgewählten Framework zu erstellen.

4.2 Features

Viele Web Frameworks bieten die unten aufgeführten Features.

  • Mehrsprachigkeit

  • Formularbehandlung

  • Trennung von Logik und Präsentation

  • Crossbrowser Unterstützung (HTML, WAP, PDF, ...)

Neben den "eingebauten" Leistungsmerkmalen können Frameworks um eigene Funktionalität und Verhalten erweitert werden.

4.3 Erweiterbarkeit

Ein Framework ist keine fertige Anwendung, die nur konfiguriert werden muß. Ein Framework ist ein mehr oder weniger starrer Rahmen, der den Programmierer bei der Entwicklung von Anwendungen einer Familie, wie z.B. Webanwendungen unterstützt.

Über Erweiterungspunkte kann eigene Funktionalität in ein Framework eingeklinkt werden kann. Einige Frameworks können den Lifecycle von eingeklinkten Komponenten, Diensten und Plugins verwalten. Dazu gehört das Initialisieren beim Start der Webanwendung und das Aufräumen bei Beendigung.

Nachdem die Frage Im zweiten Teil des Artikels werden typische Webframeworks vorgestellt.

Zum Geschaeftsbreich Competence Center
Schulungen
Schulungen zur Entwicklung von Web Anwendungen:
Newsletter abonnieren