Win or Web?

Der Umbruch der Technologien und die Fülle neuer Möglichkeiten macht die Wahl der Implementierungsplattform für die Anwendungsentwicklung schwierig ... oder doch nicht? Sollen reine Windows-Programme erstellt werden oder doch eine Web-App? Mit den explosionsartigen RIAs (Rich Internet Applications) wird die Wahl zunehmend schwerer.

Denn wer heute Anwendungsprogramme entwickelt, stellt immer weniger zuerst die Frage nach der Programmiersprache oder SEU-Plattform, sondern nach der Plattform, auf der die Zielanwendung laufen soll. Hier befinden wir uns gerade in einer neuen Revolution.

Ein Blick in die noch junge Geschichte

Die ersten Phase der Geschäftsanwendungen war geprägt von möglichst schnörkelloser Funktionalität. Auf Mainframe-Systemen liefen komplexe maskenorientierte Programme, die möglichst effizient von gut geschultem Personal zu bearbeiten waren. Auch wenn heute noch z/OS und OS400-Anwendungen entwickelt werden, so sind diese weit abgekoppelt vom Mainstream und finden sich eher in Nischen von Großkonzernen oder Spezialfirmen.

Bereits seit 20 Jahren werden auch Anwendungsprogramme immer optisch attraktiver. Die Anwendungen haben nicht nur eine bunte Schrift, sondern werden mit optisch ansprechenden Benutzerführungen auch höheren Anforderungen an Benutzerfreundlichkeit eher gerecht. Es war die Ära der lokalen PC-Anwendungen, die immer leistungsfähigere Computerpower auf den Schreibtisch oder ins Laptop brachten. Durch das Aufkommen von Freeware und Open Source wurden auch alternative Lizenzverfahren beliebt. Die Höhepunkte dieser Entwicklung stellen die MS-Office Systeme und Open Office dar. Mehrbenutzer-Anwendungen erweiterten das Konzept um den Bereich Client/Server mit komfortablen und leistungsfähigen Computern rund um eine zentrale Datenbank oder erweiterten Topologien.

Die aktuellen Trends

Seit 10 Jahren machten neue Konzepte von Webanwendungen auf sich aufmerksam. Mit relativ einfachen Formularen konnten DB-Anwendungen rein im Browser eine lokale Installation überflüssig machen. Da hierfür der Installationsaufwand gegen Null geht, erfreuten sich diese steigender Beliebtheit. Allerdings schien die Wahl für eine Web-Plattform meist einfach, da die Leistungsmerkmale waren doch klar zu unterscheiden. Allerdings verwischten sich die Unterschiede mehr und mehr:

  • Mit Windows Terminal Server und Citrix Metaframe -> XenApp wurden klassische PC-Programme unter die zentrale Kontrolle und Unterstützung, so dass Support und Sicherheit zentral sichergestellt werden kann. Allerdings ist der Aufwand, derartige Systeme zu betreiben, noch immer beachtlich. Ich werde hier nicht weiter darauf eingehen.
  • Anwendungsstandards werden technisch immer anspruchsvoller. Web-Technologien finden sich in PC-Programmen, wie Online Update oder Breadcrumb-Navigation.
  • Rich Internet Applications geben das Look-And-Feel eines Desktops mit Drag and Drop ... im Browser!. Mittels AJAX wird die Verfügbarkeit von Informationen dem gewohnten Verhalten bei Desktop-Applikationen immer ähnlicher. Selbst klassische Multimedia und Office-Anwendungen werden im Internet verfügbar. Siehe
  • Security-Bedenken werden ebenso niveliert, da vor Trojanern auch die lokalen Anwendungen nicht mehr sicher sind, und Webanwendungen werden mit Verschlüsselung und Privacy-Areas recht stabil geschützt.

Welche Kriterien und welche Bewertung?

Worauf soll nun eine neue Anwendung entwickelt werden? Folgende Tabelle bildet Schwerpunkte der Plattformen. Neben den klassischen WIN-Anwendungen sollen einfache Web-Formulare (EWF)und RIAs mit erweiterte Web-Plattformen (XWP) ergänzt werden. Letzte stellen ein weiteres Bindeglied zwischen den Welten dar und werden unten genauer erläutert.

KriteriumWINEWFRIAXWP
Look and Feel++++++++++
Geschwindigkeit+++0++++
Komplexe Möglichkeiten+++o++++++
Aktualisierung++++++++++
Entwicklungsaufwand+++oo
Offline & Mobil+++------++
Technische Programme+++---+++
Integration++-o+

Erläuterungen:

  • Look and Feel: User fordern gewisse Standards, die sich an vielen Stellen durchgesetzt haben. Die Erwartungen entscheden über die Benutzerfreundlichkeit.
  • Geschwindigkeit: Lokale PCS können die Rechenpower mit optimierten Sprachen nutzen. Auch wenn lokale Komponenten bestehen, so sind doch Java-Skript-Anwendungen eingeschränkt leistungsfähig. Die neuen Web-Extender adressieren das Problem.
  • Komplexe Möglichkeiten: Grafische Benutzerführung mit optimierten Gestaltungsoptionen bleibt die Stärke lokaler Windows-PC's, aber die Web-Konkurrenz nähert sich diesem an.
  • Aktualisierung: Auch wenn moderne PC-Programme Online Updates unterstützen, so bleiben doch die Aufforderungen zum Neustart und Installation lästig. Web-Applikationen haben Vorteile in der Aktualisierung der Programme und Daten, die für den User unmerklich sofort wirksam sind.
  • Entwicklungsaufwand: Web-Technologien sind meist nicht homogen. Der Entwickler muss mehrere Sprachen beherrschen und integrieren. Dies ist sicher eine Hürde, die es bei Windows-Entwicklern so nicht gibt. Die Nutzung der vielen Möglichkeiten wird durch moderne Entwicklungssysteme erleichtert, die ein Teil der Komplexität vereinfachen.
  • Offline & Mobil: Auch wenn der High-Speed-Zugang heute fast flächendecken möglich ist, so besteht dieser - auch im Mobilbetrieb nicht immer und kann ggf gestört sein. Anwendungen, die die Verfügbarkeit des Webs voraussetzen, sind damit störanfälliger und eingeschränkt. Moderne Webextender schaffen hier teilweise Abhilfe.
  • Technische Programme: Fesplattenoptimierun, Virenscan, Betrieb lokaler Datenbanken, Spezielle Adapter, Multimedia ... alles das ist auf dem lokalen Rechner zu hause, aber einige Web-Anwendungen dringen auch hier vor.
  • Integration: Die Verbindung unterschiedlicher Aufgaben und Anwendungen erfordert erweiterte Möglichkeiten technischer Natur. Einfache Skript-Programmierung ist vor allem im Kontext geringen Overheads zu fordern.

Neue Technologien

In der Klasse der Windows-Applikationen haben sich neue Entwicklungsplattformen auf Basis von Java und .NET weitgehend durchgesetzt. Tool-Tips, Pop-Ups, Hilfe-Funktionen, Fenster, Buttons und andere Power-Controls lassen sich so implementieren.

Bei den einfachen Web-Apps dominieren Anwendungen auf Basis von PHP, JSP und Servlets und ASP. Auch diese Technologien werden durch Kombination mit modernen Komponenten erweitert.

RIAs nutzen Adobe Flex / Flash, Javascript-Libraries Ext JS, Dojo u.a.]], oder JavaServer Faces (JSF)-Erweiterungen, z.B. ICEfaces. Natürlich unterstützt auch Microsoft RIAs. ASPX-Anwendungen mit Silverlight

Eine ganz neue klasse der Erweiterungen stellen lokale Web-Extender dar, die die Leistung des Internets mit der Leistung lokaler Rechner und Platten verbindet: Google Gears und Adobe AIR stellen das, was Microsoft bereits im proprietären Umfeld möglich machte, auf eine systematische Basis. Lokale Datenbanken und lokale Web-Server lassen auch Offline-Arbeiten für Web-Anwendungen zu.

Einige Nischen und Hot Spots

Technische Anwendungen wie Platten-Management, Security-Anwendungen, Nvigator-Lösungen, Unterstützung bestimmter Hardware bleiben Domänen für Windows-Anwendungen.

Multi-User DB-Anwendungen verlagern sich stärker auf Web-Anwendungen

Integrations-Lösungen werden je nach Integrationsaufgabe auf der jeweiligen Plattform ihre spezifischen Stärken finden. Technische Integration ist auf dem lokalen Rechner am Arbeitsplatz, zu Hause oder Unterwegs, während Informationsintegration zunehmend ein Thema fürs das Web wird. Die Programmierung von Scripts kann hiermit der Praktischen Nutzung mächtiger Anwendungen die entscheidende Produktivität liefern.

Spezialanwendungen kaufmännischer und wissenschaftlicher Applikationen: Hier halten sich wegen dem Nischen-Charakter auch ältere Standards sehr lange. Solange eine Alleinstellung vorliegt und wichtige Funktionalität exklusiv definiert ist, wird der Migrationsaufwand eher prohibitiv sein. Risiken entstehen für den Programmanbieter erst mit Konkurrenten mit modernerer Technik.

Fazit

Die neuen Möglichkeiten sind gigantisch, aber sie verlagern die Tätigkeit des Software-Entwicklers vermehrt von der Kodierung, die Einfacher und automatisiert wird, zum Designer und Entscheider, der mit viel Querschnittswissen unterschiedliche Technologien beherrscht und auswählt. Leichter geworden ist der Job nur dann, wenn man eine möglichst homogene Entwicklungsumgebung vorgibt.