Vorwort
Die Beobachtung des Internet und des Verhaltens der Benutzer belegt weiterhin: Die Zahl der mittels World Wide Web bearbeiteten Aufgaben steigt, der Umfang der einzelnen Aufgaben nimmt zu. Die Voraussetzung dafür wird gegeben durch adäquate Steigerung der Komplexität von Web-Anwendungen; für die Entwickler eine in etwa synchron wachsende Herausforderung. Technologisches Umsetzen solcherart Herausforderung macht akribische Entwicklungsarbeit erforderlich, die zu Recht durch eine große Menge faktenreicher Publikationen flankiert wird. Erinnert man sich der wohl nach wie vor geltenden 60:40 Regel - bezüglich der Verteilung von Fehlern in der Entwicklungsarbeit auf die Abschnitte Entwurf und Implementierung - dann wird rasch klar, dass zusätzliche Unterstützung benötigt wird, denn auch angepasste Tools z.B. haben offenbar keine signifikante Verbesserung gebracht. Bewusstheit um das Gestalten einer Web-Anwendung fördert den Sinn für Architektur, ja bringt das Concept (im engl. Wortsinn) erst ins Blickfeld des Entwicklers. Der hier vorgelegte Ansatz ist neu: Die Aufgabe, die eine Web-Applikation erfüllen soll, wird Ausgangs aber auch zentraler Dreh- und Angelpunkt der Entwicklung. Ein Gegenstück zum Bottom-up-Ansatz, der bestimmt ist durch detaillierte Beschreibungen von Technologien zur Implementierung von Web-basierten Anwendungen. Das bedeutet, dieses Vorgehen wird nunmehr um den Top-Down-Aspekt ergänzt. Wir liegen damit zwar im Bereich des Model Driven Development, die Achse WebApplikationen ist darin jedoch stark förderungsbedürftig.
Natürlich benötigen wir möglichst präzise und bis ins Einzelne gehende Erläuterungen spezifischer Technologien. Ausarbeitungen solcher Art machen allerdings einen Zugang zum Feld 'Web-Applikationen' recht schwer. Sie erfordern stets schon ein gewisses Maß an Kenntnis, um die jeweils diskutierte Thematik einordnen und verstehen zu können. Sie sind in aller Regel spezialisiert auf einen recht engen Ausschnitt des Feldes. Und sie verstellen durch die Vielzahl an Details doch zu häufig den Blick aufs Ganze, wir erfahren also hier wie es ist, den Wald vor lauter Bäumen nicht zu sehen.
Zentrales Konzept unseres Ansatzes ist die Architektur von Web-Applikationen. Sie wird als direkte Ableitung aus der Gesamtaufgabe einer Anwendung angesehen. Die Gestaltung einer Applikation auf diese Art folgt dem Muster, dass primär eine Funktion zu realisieren ist und sekundär dazu eine adäquate Form entwickelt wird. Damit befinden wir uns auf einem Weg mit langer Tradition. Die Herausbildung des Begriffes Form erfolgt in der Antike. Aristoteles hat dabei von Beginn eine Dualität im Sinn: Form und Materie. Seither sind verschiedene Adaptionen in unterschiedlichen Bereichen entwickelt worden:
Sinn und Form (Literatur)
Form und Inhalt (Ästhetik)
Form und Funktion (Technik, Architektur).
Und immer wieder werden Paradigmen für die jeweilige Doppelheit erarbeitet, mitunter heftigst diskutiert, zu gegebener Zeit erneuert.
Architekturen für Web-Anwendungen
Ein Paradigma der modernen Architektur lautet: Die Form folgt der Funktion. Sieht man die Funktion begründet in der zu erfüllenden Aufgabe, so entspricht unser Ansatz dieser Intention. Die Form soll - ihrem Begründer zufolge -
aufweisen. Somit fordert die Informatik zu Recht: "Gute Architektur ist konsistent - sie wird nach allgemeinen Grundsätzen und festgelegten Vorschriften gestaltet, ..." [Zemanek 1992, S.161]. Und in der Konsistenz findet sich auch die angesprochene Dualität wieder, hier als System und Funktion.
Derartige Überlegungen werden nun zum Anlass genommen, Aufgaben-orientierte Architektur-Typen zu entwickeln und in ihren charakteristischen Merkmalen zu reflektieren. Und im vorliegenden Fall sind genau diese Merkmale nicht a priori bestimmt durch die Technologie der Implementierung, sondern werden aus den Anforderungen an die Anwendung hergeleitet. Das ist auch eine Konsequenz der Überlegung, dass dem zu unterstützenden Geschäftsprozess das Primat zukommt und das unterstützende IT-System ihm zu entsprechen hat. Schwerpunkt jedoch ist, einen Weg vom Gesamten zum Detaillierten zu entwickeln. So soll für den Studierenden und auch für den Entwickler die Möglichkeit verbessert werden, stets im Blick zu haben, WAS getan wird bzw. zu tun ist und damit zu entscheiden, WIE es ausgeführt werden soll. Und dazu wird die Palette der Architektur-Stile um die Aufgaben-orientierte Facette erweitert. So soll betont werden, dass wir das Anwenden - über das unsere Produkte sowohl Zweckmäßig als auch Sinnfälligkeit erhalten - als Motivation dafür nehmen, neben rein Ingenieur-gemäßen Aspekten auch Aufgaben-bedingte Merkmale in Betracht zu ziehen.
Architekturen sind Modelle antizipierter oder auch bereits vorhandener IT-Systeme. Und im Rahmen der Exzellenzinitiative sind 2007 gleich mehrere Excellence Clusters bzw. Graduiertenschulen gebildet worden, die Software-Modellierung zum Thema haben.
Die in unserem Text zahlreichen Technologien zur Implementierung von Web-Komponenten werden hier nicht um ihrer selbst willen, sondern lediglich soweit wie der Erläuterung und Veranschaulichung der Architektur-Überlegungen dienlich, diskutiert. Weitere Unterstützung zum Buch findet der Leser über den Service Online-Plus des Verlages (www.viewegteubner.de).
Techniken und Werkzeuge zur Implementierung ändern sich relativ häufig. Das erklärt u.a. die große Vielzahl und rasche Abfolge von Arbeiten auf dieser Ebene. Und so kann die Betrachtung von einem etwas 'höheren Punkt' aus doch sehr vorteilhaft sein, wenn es gilt, den Überblick zu gewinnen bzw. zu behalten.
Panketal, im Januar 2008
Günther Bauer