Die Renaissance des Rich Client

24.11.2003 von Wolfgang Miedl
MÜNCHEN (COMPUTERWOCHE) - Browser-Anwendungen stehen seit Jahren hoch im Kurs, portalbasierende Lösungen schießen wie Pilze aus dem Boden. Doch es gibt Anzeichen für eine Kehrtwende hin zu klassischen lokalen Anwendungen - als Smart Client auf Microsofts .NET oder anderen Web-Service-orientierten Plattformen.

Die Client-Frage zählte in den vergangenen Jahren zu den dominierenden strategischen IT-Themen. Das mit den PCs etablierte Client-Server-Modell wurde dabei zunehmend kontrovers diskutiert - vor allem wegen seiner komplexen und teuren Softwarearchitektur. Die gängigen TCO-Berechnungen beispielsweise haben immer wieder gezeigt, dass die Verteilung und die Installation von Software, das Management der Clients und die Wartung der zumeist Windows-gestützten Endgeräte kräftig ins Geld gehen.

Collage: CW

Ausgehend vom Web-Boom und den Internet-Techniken etablierte sich daher eine neue Architektur für Unternehmensanwendungen. HTML-basierende Frontends und Portale überzeugen dadurch, dass sie sich zentral verwalten lassen. Damit schlagen sie zwei Fliegen mit einer Klappe: Eine Verteilung von Software auf eine große Anzahl von Clients ist überflüssig, solange dort ein Browser vorhanden ist. Außerdem kann die Arbeitsplatzkonfiguration weder durch fehlerträchtige Anwendungen noch durch Benutzereingriffe beschädigt werden - der Aufwand für Wartung und Helpdesk sinkt spürbar. Wie sehr sich das Web-Paradigma durchgesetzt hat, zeigt eine Untersuchung von Gartner: Demnach hatten 2002 mehr als 70 Prozent aller neuen Anwendungsprojekte ihren Hauptfokus auf einer Browser-orientierten Benutzer-Schnittstelle.

Doch trotz dieses regen Zuspruchs, darin sind sich Experten wie Anwender einig, stellt der Browser alles andere als ein ideales Anwendungs-Frontend dar. So kann die Web-Sprache HTML nach Ansicht des Forrester/Giga-Analysten John Meyer die zunehmend komplexeren Anforderungen, die an Applikationen gestellt werden, nicht erfüllen. Sobald zum Beispiel keine Netzverbindung zur Verfügung steht, Daten in Echtzeit validiert und bearbeitet sowie Prozesse visualisiert werden müssen oder wenn gar Web-Services ins Spiel kommen, sind laut Meyer alternative User-Interface-(UI-)Techniken notwendig. Vor allem in Sachen Usability - also einfacher Bedienbarkeit - weisen Browser-Anwendungen Defizite auf, wie sie etwa Stephan Krause, Systemarchitekt bei der CSC Ploenzke AG, schildert: "Im Vergleich zu klassischen Rich-Client-Formularanwendungen ist beim Browser-Interface eine einfache Bedienung nur

schwer umzusetzen. Selbst mit hohem Programmieraufwand sind viele gewünschte Funktionen aufgrund technischer Beschränkungen nicht realisierbar."

Browser-Anwendungen oft nur ein Kompromiss

Offensichtlich werden solche Unterschiede, wenn man zum Beispiel die Benutzerführung eines Web-Mailers mit der Funktionalität einer modernen Client-Mail-Software vergleicht. Dass Browser-Anwendungen vielfach nur eine Kompromisslösung sind, meint auch Michael Zill, Lead Architect Solution Development bei der Avanade Deutschland GmbH: "Das Thema User-Interface wird hier den technischen Möglichkeiten untergeordnet. Viele Unternehmen akzeptieren diesen Kompromiss, um der Verteilungs- und Management-Problematik zu entgehen."

Der Browser als Anwendungs-Frontend erfreut sich immer größerer Beliebtheit, weist aber hinsichtlich der Software-Usability einige Defizite im Vergleich zum klassischen Client auf. Die Zukunft gehört Experten zufolge deshalb Smart Clients, einem Konzept, das Microsoft in seiner .NET-Architektur forciert. Sie teilen sich Code mit Applikations-Servern, erlauben einen Mischbetrieb aus Online- und Offline-Modus und bilden deshalb eine gute Voraussetzung für Applikationen, die als Web-Service angelegt sind.

Die Lücke, die sich zwischen dem überkommenen Rich- oder Fat-Client-Modell (in der Regel der Windows-PC) und den Einschränkungen des Thin-Client-Konzepts geöffnet hat, soll nun ein neues Client-Paradigma ausfüllen: Smart Client nennen Microsoft und einige andere Anbieter den neuen Anwendungstyp, als Rich Client der zweiten Generation wird er bei Forrester/Giga bezeichnet, und Gartner hat dafür den Begriff High-Fidelity-Client erfunden. Smart Clients zeichnen sich im Wesentlichen durch folgende Charakteristika aus:

Nutzung lokaler Rechenleistung,

Konsumieren von Web-Services,

Unterstützung von Online-Offline-Szenarien,

Anpassung an Spezifika des Endgeräts sowie

automatische Installation und Update.

Bedeutsam für Unternehmensanwendungen ist, dass das lange Zeit dominierende, starre Two-Tier-Client-Server-Modell ausgedient hat. An dessen Stelle treten nun modernere Softwarekonzepte wie "Service Oriented Architecture" (SOA) und "Business Process Integration". Das Konzept der SOAs sieht vor, dass zentrale Bausteine einer Unternehmensarchitektur servicebasierend modelliert und über Web-Service-Schnittstellen bereitgestellt werden. Dienste tauschen dabei untereinander Nachrichten aus, und zwar unabhängig von den zugrunde liegenden Plattformen. Zwingende Abhängigkeiten zwischen bestimmten Server- und Client-Architekturen sind damit passé.

Als Alternative zu Browser-Anwendungen stehen derzeit mehrere Smart-Client-Techniken in den Startlöchern, die sich in zwei Lager gruppieren: eigenständige sowie Browser-gestützte Smart Clients. Stand-alone-Konzepte sind zu finden in Microsofts .NET, in der Java 2 Standard Edition (J2SE)/Webstart sowie in Macromedia Central. Als Fundament für Browser-basierende Smart Clients eignen sich Macromedias Flash MX, Altio, Droplets oder Curl. Letztere bieten zwar durch Client-seitige Logik Performance- und Usability-Vorteile, ermöglichen aber wie herkömmliche HTML-Anwendungen kein Offline-Szenario.

Smarte Rich Clients holen auf

Trotz dieser vielfältigen Alternativen am Markt geht Forrester/Giga davon aus, dass Microsoft auch im Smart-Client-Umfeld die Nase vorne haben dürfte - unter anderem aufgrund der umfassenden Möglichkeiten, die Visual Studio .NET bei der Entwicklung, der Verteilung und dem Management von derartigen Anwendungen bietet. Attraktiv sei Visual Studio .NET aber nicht nur wegen seines technischen Potenzials, wie Ploenzke-Mann Krause bestätigt, sondern auch aufgrund seiner Produktivität - und im Projektgeschäft sei das schließlich ein nicht zu unterschätzender Kostenfaktor.

Smart Clients lösen das Management-Problem

"Windows Forms" ist auf der .NET-Plattform das Schlüsselwort für Smart Clients. Der Begriff steht für eine Klassenbibliothek im .NET-Framework, die die Entwicklung von Stand-alone-Anwendungen im klassischen Windows-Look-and-Feel ermöglicht. Allerdings garantiert der Einsatz von Windows Forms nicht automatisch, dass hinterher auch eine echte Smart-Client-Software herauskommt.

Mit der Technik können nach wie vor auch klassische Client-Server-Anwendungen geschrieben werden. Ein Rückfall in veraltete Client-Server-Strukturen wäre somit laut Gartner durchaus möglich. Allerdings rechnen die Analysten damit, dass in den meisten Anwendungsprojekten Web-Services eingesetzt werden - mit Code, den sich Clients und Mid-Tier-Application-Server teilen. Im Jahr 2005 sollen demnach weniger als zehn Prozent der neuen Anwendungen Two-Tier-Client-Server-Methoden nutzen.

Auch Avanade-Manager Zill sieht im Projektgeschäft die Web-Service-Features als entscheidendes Argument: "Für unsere Kunden ist das netzunabhängige Arbeiten der Treiber für Smart-Client-Anwendungen - und Web-Services sind hierfür die ideale Grundlage." Neben der hohen Usability zähle dabei vor allem eine zentrale Geschäftslogik, auf die neben den Smart Clients auch andere Frontends wie Browser zugreifen können. Um eine lose Koppelung zu erreichen, die eine lokale Anwendung unabhängig von einer Server-Anbindung macht, sind spezielle Datenzugriffs-Schnittstellen notwendig. Bei .NET übernehmen die Komponenten von ADO.NET diese Aufgabe. Sie puffern beispielsweise im gemischten Online-Offline-Betrieb den Zugriff auf Datenbanken, halten Datensätze am Client vor und synchronisieren bei Verbindung im Hintergrund. Der Endanwender merkt von alledem nichts.

Das wichtigste Feature eines "echten" Smart Client ist die Automatisierung von Installation und Update - schließlich haben diesbezügliche Defizite den Rich Client unpopulär gemacht. .NET stellt mehrere Techniken bereit, um Anwendungen am Server zentral bereitzustellen und von dort auf die Clients auszurollen. Eine ungewöhnliche Variante Server-basierender Anwendungen dürfte dabei der Programmaufruf über einen HTML-Link sein: Welcher vernünftige Anwender klickt heutzutage schon auf eine EXE-Datei, die auf einer Web-Seite als Link angeboten wird, und lässt dieser Anwendung freien Lauf? Kein Problem ist das mit Windows-Forms-Programmen, wie das anschauliche Beispiel von Chris Sells zeigt. Sofern am Client-PC das .NET-Framework installiert ist, wird diese EXE-Datei -

es handelt sich um ein einfaches Tetris-Spiel - beim Klick im Browser in den lokalen Assembly-Cache geladen und sofort ausgeführt.

Das direkte Ausführen einer unbekannten EXE-Datei war bisher wegen der Sicherheitsrisiken auf der Win-32-Plattform ein absolutes Tabu. Durch ein fein abgestuftes Sicherheitskonzept des .NET-Frameworks kann nun aber jeglicher Zugriff auf Client-Ressourcen wie etwa das Dateisystem kontrolliert oder unterbunden werden. Dabei berücksichtigt die Code Access Security beispielsweise die Herkunft des Codes, eine digitale Signatur oder den Server-Pfad der Installation. Unbekannter Code aus dem Internet wird generell als nicht vertrauenswürdig eingestuft und erhält nur minimale Ausführungsrechte. Nachteil dieser Art der zentralen Softwarebereitstellung ist jedoch, dass die Anwendung über einen Link im Browser gestartet werden muss.

Für Unternehmen bietet sich eine benutzerfreundlichere Möglichkeit der Smart-Client-Installation an: Eine kleine Programmkomponente wird am Endgerät installiert, wobei deren XML-Metadaten das Server-Verzeichnis enthalten, in dem bei jedem Programmstart nach Updates gesucht werden soll. Sobald der Administrator eine aktuellere Version auf den Server stellt, erkennt die Anwendung dies selbständig und lädt die neueste Variante. Im Prinzip überflüssig werden damit die heute üblichen Werkzeuge für die Verteilung von Anwendungen auf die Clients sowie deren Überwachung.

Sich selbst installierende .NET-Anwendungen

Als unterstützende Faktoren kommen zwei weitere Features des .NET-Framework hinzu: "Side-by-Side-Execution" und selbstbeschreibende Komponenten. Sie machen der berüchtigten "DLL-Hölle" ein Ende. Die Ursache hierfür liegt in der bisher notwendigen Registrierung von COM-Komponenten in der lokalen Windows-Registrierdatenbank. Wird bei einer Softwareinstallation eine alte Bibliothek (DLL = Dynamic Link Library) durch eine neue ausgetauscht und registriert, ist die Betriebssicherheit anderer Programme potenziell gefährdet. Smart-Client-Anwendungen in .NET benötigen diese zentrale Registrierung nicht mehr, da sie in den beigelegten XML-Metadaten alle Komponenteninformationen enthalten. Auch ein DLL-Austausch ist überflüssig: Anstelle des bisherigen Zwangs einer gemeinsamen, systemweiten Nutzung von Bibliotheken tritt nun die Möglichkeit der privaten Nutzung von DLLs. Dabei können mehrere Versionen einer Bibliothek gleichzeitig in den Arbeitsspeicher geladen werden

(Side-by-Side). Für die Softwareverteilung bedeutet das, dass sich eine Client-Anwendung durch einfaches Kopieren von einem Server-Verzeichnis an die Endgeräte ausbringen lässt.

Gartner geht davon aus, dass Smart Clients wieder stark an Boden gewinnen werden - auch wegen der zunehmenden Verbreitung von Web-Services. Die von .NET gebotenen Möglichkeiten einer automatisierten Softwareverteilung sollen bis 2005 in 60 Prozent der Anwendungen implementiert sein.