Verschiedene Typen von Browser-basierten Applikationen

Gelesen bei AboutWebDesign.de
URL: http://www.aboutwebdesign.de/awd/content/1085676951.shtml

Technik-Ecke/kategorie>"Browser-basierte Applikation" - ein sehr weit reichender Begriff. In den letzten Jahren meiner Tätigkeit als IT-Consultant habe ich einige sehr verschiedene Anwendungen kennen gelernt und entwickelt. Ich finde es lohnend, einmal einen Blick auf die zugrunde liegenden Grundtypen zu werfen. Gemeinsam ist ihnen allen, dass sie ein auf HTML basierendes Browser-Interface zur Interaktion mit dem Benutzer verwenden.

Statische Site im World Wide Web


Da wäre zunächst einmal die simple Website: ein gefälliges Layout, gute Usability, verwertbare Informationen. Jedoch keine Datenbankanbindung oder großartige Interaktion mit dem User.

Obwohl insgesamt sicher auf dem Rückzug, hat dieser Applikationstyp Zukunft. Wer nur eine kurze Selbstdarstellung im Web will, ist damit gut beraten, und manche Branchen ermöglichen nun mal keinen Web-Verkauf über Shopping-Cart-Systeme.

Der betreuende Entwickler benötigt hier in erster Linie profunde Kenntnisse in (X)HTML, CSS und JavaScript. Hinzu kommt Wissen über die allgemeine Gestaltung von Websites, Usability, Site-Strukturen.

Website mit Datenbankanbindung


Im Wesentlichen eine Erweiterung des letzten Konzepts. Die Site arbeitet mit Datenbanken, z.B. für Foren, dynamische Inhalte oder einfache Shop-Systeme.
Die Anforderungen für den Entwickler erweitern sich um den Punkt der Server-basierten Entwicklung. Gearbeitet wird meist mit kleinen, recht überschaubaren Skripts in PHP, Perl oder CFML.

Website mit komplexer Datenbankanbindung


Auf der Website werden komplexe, aus Datenbanken generierte Informationen angezeigt, darauf basierend findet Interaktion zwischen Benutzer und Backend-Software statt.
Die verwendete Server-Technologie ist wesentlich vielschichtiger und mächtiger als im Fall der "Website mit Datenbankanbindung". Mindestens ein ausgefeiltes Redaktionssystem werkelt hier hinter den Kulissen, vielleicht auch ein echtes Framework-System. Die selbstgebastelten kleinen Scripts werden ersetzt durch zugekaufte Lösungen, vielleicht wird aber auch ein erfahrener Programmierer hinzugezogen.

Häufig splittet sich das Team hierbei auf: die eine Fraktion kümmert sich um die Gestaltung des Benutzerinterfaces, die andere um die Umsetzung der Programmabläufe in Code.

Bevorzugt werden jetzt "richtige" Server-Applikationssprachen wie Microsoft .NET oder Suns Java in Verbindung mit Enterprise JavaBeans eingesetzt, häufig mit spezifischen Aufsätzen, die z.B. die Synchronisierung zwischen Objekten im Arbeitsspeicher und der Datenbank erlauben.

Einfache Intranet-Applikation


Ähnelt der "Website mit Datenbankanbindung". Einige Informationen werden für die Mitarbeiter zur Verfügung gestellt, ein paar einfache Datenbank-Operationen - darin erschöpft sich dieser Applikationstyp. Mehr als das Erstellen von Websites (die Formulierung hört sich so an, als wäre das allein eine einfache Angelegenheit) und eine serverseitige Scriptsprache muss der Entwickler nicht beherrschen.

Komplexe Intranet-Applikation


Hier sind der Phantasie keine Grenzen mehr gesetzt. Dem möglichen Zeitaufwand und den Projektkosten aber auch nicht.

Das, was der Benutzer im Browser zu sehen bekommt, ist nun häufig nur noch die Schnittstelle zu einer Applikation mit komplexer Geschäftslogik im Hintergrund. Das, was früher über kompilierte Programme oder Microsoft-Access-Formulare verwaltet wurde, läuft nun übers Web. Dadurch erschließt man sich viele Vorteile, wie z.B. Plattformunabhängigkeit (Workstations können unter Linux laufen) und einen geringeren Ressourcenbedarf bei den Clients, aber auch einige Nachteile (Mehr Schwierigkeiten bei der Gestaltung des Interfaces; sämtliche Eigenheiten von HTTP, insb. Zustandslosigkeit).

Um die Aufgabenstellung zu lösen, wird meist eine Kombination aus verschiedenen Technologien eingesetzt, meist auf Java oder .NET basierend.
Verschiedene Schichten des Programms kümmern sich um Dinge wie Zustandsverwaltung, Abwicklung der Geschäftsprozessse und -logik, Synchronisation mit der Datenbank und diverse Fehler- und Ausnahmebehandlungen.

Wer von einem der oben genannten in diesen Bereich einsteigen möchte, muss sich mental umstellen: das Hauptproblem ist nun nicht mehr die Darstellung von Daten. Vielmehr konzentriert man sich auf Geschäftsabläufe und damit zusammenhängend Problemfelder wie Datenkonsistenz, Prozessteuerung, Objektmodelle und ähnliches. Ein interessanter Unterschied ist, dass die Daten, auf denen operiert wird, häufig nicht mehr nur angezeigt und verändert werden müssen, sondern vielmehr in einem auf Arbeitsprozessen basierenden Modell gesehen werden müssen: nach Schritt A folgt Schritt C, aber nur, wenn Schritt B bestimmte Daten geliefert hat. Sonst wird Schritt D ausgeführt.

Wenn Sie neu in diesem Bereich sind: nehmen Sie sich die Zeit, sich gründlich zu überlegen, was Sie wie tun wollen. Um gute Literatur werden Sie dabei nicht herumkommen.

Immer wiederkehrendes Thema ist bei derartigen Projekten die Abbildung der Beziehungen zwischen Objekten und das Abspeichern dieser Beziehungen und der Objektdaten in Ihrer Datenbank. Man kann versuchen, hier mit selbst erstellten Lösungen zu arbeiten, was manchmal sicher nötig ist. Es gibt aber auch diverse Frameworks, die zwar einige Einarbeitung erfordern, im Endeffekt aber sehr viel Arbeit ersparen können. Informieren Sie sich also im Internet, bevor Sie zum Quellcodeeditor greifen. Geeignete Schlüsselwörter für eine Web-Recherche sind z.B. "framework", "enterprise", "object", "consistency", "persistent objects".

Einen Blick wert ist auch Webobjects von Apple, ein Applikationsserver, der mit einfacher Bedienung und durchdachten Konzepten glänzt. Sowohl Entwicklungs- als auch Ausführungsumgebung sind nicht nur für Mac OS X verfügbar.

Weitergehende Interaktionen


Sind Sie erst einmal bei der komplexen Intranet-Applikation angelangt, wird schnell von Ihnen verlangt, in ganz andere Bereiche vorzustoßen: z.B. Integration in andere Applikationen, Ansprechen von Druckern, Erzeugen von Reports mit Diagrammen, Etiketten-Druck mit Barcodes oder Fernsteuerung von CD-Brenn-Robotern.

Wenn Sie hier auf offene Standards wie XML und Web Services setzen können, haben Sie Glück. Wenn nicht, müssen Sie eine proprietäre Schnittstelle entwickeln, die dann eventuell über Web Services mit dem Rest Ihrer Applikation kommunizieren kann.

Fazit


Sei es nun die einfache Datenbank-Anbindung oder die komplexe Datenerfassung zur Weiterverabeitung in Enterprise-Prozessen (für alle, die mit der Terminologie noch nicht vertraut sind: Enterprise bedeutet "Unternehmen", alle Technologie-Namen, die mit "Enterprise" beginnen, konzentrieren sich auf die ein oder andere Weise auf die Bedürfnisse der Informationsverarbeitung in Unternehmen): der Browser ist als Interface geeignet und bringt viele Vorteile mit sich. Erstaunlich ist, dass die Anforderungen an den Entwickler sich je nach Projekttyp sehr unterschiedlich sind, obwohl die Ausgabetechnologie doch die gleiche ist.