Thin Client oder Smart Client: Architektur der Darstellungsschicht

Veröffentlicht: 11. Apr 2005

Von David Hill

Die Darstellungsschicht ist ein enorm wichtiger Bestandteil einer Anwendung. In diesem Artikel werden die Ansätze für Thin Client- und Smart Client-Anwendungen sowie Richtlinien zur Auswahl vorgestellt. (16 gedruckte Seiten)

Auf dieser Seite

Einführung Einführung
Die Bedeutung der Darstellungsschicht Die Bedeutung der Darstellungsschicht
Was ist ein Thin Client? Was ist ein Thin Client?
Was ist ein Smart Client? Was ist ein Smart Client?
Auswählen der geeigneten Architektur für die Interaktionsschicht Auswählen der geeigneten Architektur für die Interaktionsschicht
Client-Plattform Client-Plattform
Bereitstellung und Aktualisierung Bereitstellung und Aktualisierung
Benutzerfreundlichkeit Benutzerfreundlichkeit
Leistung Leistung
Integration auf dem Client Integration auf dem Client
Offlinefähigkeiten Offlinefähigkeiten
Schlussbemerkung Schlussbemerkung
Ressourcen Ressourcen
Der Autor Der Autor

Einführung

Die Darstellungsschicht ist ein enorm wichtiger Bestandteil einer Anwendung - eine ungeeignete Architektur der Darstellungsschicht kann zu unnötiger Komplexität, einem Mangel an Flexibilität und einer ineffizienten und frustrierenden Benutzererfahrung führen. Thin Client-Anwendungen verfügen über bekannte Vorteile gegenüber herkömmlichen Rich Client-Anwendungen bei Bereitstellung und Verwaltbarkeit. Dies hat in den letzten Jahren ihre Popularität begründet. Durch die Einführung von Smart Clients ist jedoch die Wahl der Architektur für die Darstellungsschicht nicht mehr so einfach. Rich Clients sind in Smart Clients übergegangen, um die Vorteile einer zentralen Verwaltung von Thin Clients mit der Flexibilität, Reaktions- und Leistungsfähigkeit von Rich Clients zu kombinieren. In diesem Artikel werden die Ansätze für Thin Client- und Smart Client-Anwendungen sowie Richtlinien zur Auswahl vorgestellt.

 

Die Bedeutung der Darstellungsschicht

Bei den meisten Anwendungen ist die Darstellungsschicht von großer Bedeutung für den Erfolg. Schließlich ist die Darstellungsschicht für die Schnittstelle zwischen Benutzer und Anwendung verantwortlich. Dies ist der entscheidende Punkt. Wenn Benutzer mit einer Anwendung nicht so interagieren können, um ihre Arbeit effizient und effektiv zu leisten, wird der Erfolg für die gesamte Anwendung stark beeinträchtigt.

Persönlich halte ich den Ausdruck "Darstellungsschicht" für wenig geeignet, Funktion und Bedeutung dieser Schicht zum Ausdruck zu bringen. Es geht nicht nur um die Anzeige von Informationen, in der Regel wird dem Benutzer ein interaktiver Zugriff auf die Anwendung zur Verfügung gestellt. Für diese Schicht ist daher die Bezeichnung "Benutzerinteraktionsschicht" vielleicht geeigneter. Um die Dinge einfach zu halten, werde ich in diesem Kapitel jedoch die übliche Bezeichnung für diese Schicht verwenden.

In jedem Fall werden Sie diese Schicht mit der Absicht entwerfen, dem Benutzer eine geeignete Schnittstelle zur Verfügung zu stellen, damit er mit der Anwendung effizient und effektiv interagieren kann. Selbstverständlich müssen Sie diese Schicht gleichzeitig so entwerfen und anschließend implementieren, dass diese die Anforderungen des Unternehmens in Bezug auf Programmierung, Wartung und Betrieb berücksichtigt. Die Auswahl der geeigneten Architektur für die Darstellungsschicht einer Anwendung ist von großer Bedeutung für das Erreichen dieser Ziele.

Die beiden üblicherweise verwendeten Ansätze für Architektur und Entwurf sind der Thin Client- sowie der Smart Client-Ansatz. Die Entscheidung über den geeigneten Ansatz für eine bestimmte Anwendung beeinflussen natürlich viele Faktoren (bspw. Anforderungen an Client-Plattform, Anwendungsentwicklung und -aktualisierung, Benutzererfahrung, Leistung, Integration auf dem Client, Offline-Fähigkeiten und mehr), jeder mit bekannten Stärken und Schwächen und Unterstützung für einen bestimmten Anwendungstyp. Vielleicht finden Sie die Abgrenzungskriterien jedoch etwas unscharf, dann kann leicht ein ungeeigneter Ansatz angewendet werden, der später zu Problemen führen wird.

Es ist beispielsweise möglich, mit einer browserbasierten Darstellungsschicht eine funktionsreiche Benutzeroberfläche bereitzustellen, ebenso möglich ist die Bereitstellung einer vollständig dynamischen Oberfläche mit einem Smart Client. Beides ist nicht ganz einfach zu erreichen und wird in jedem Fall zu unnötiger Komplexität, einem Mangel an Flexibilität und hohen Entwicklungs- und Wartungskosten führen.

Viele Unternehmen wählen grundsätzlich eine Thin Client-Architektur, ohne die Alternativen hinreichend zu erwägen. Obwohl nicht in allen Szenarios geeignet, kann eine Smart Client-Architektur entscheidende Vorteile gegenüber einem Thin Client-Ansatz bieten, ohne die üblicherweise mit Rich Clients verknüpften Nachteile. Unternehmen sollten jeden Ansatz sorgfältig prüfen, damit sie gleich zu Beginn den geeigneten Ansatz übernehmen und damit die TCO über die gesamte Lebensdauer der Anwendung minimieren.

In den folgenden Abschnitten werden die Thin Client- und Smart Client-Ansätze und einige der dahinter stehenden Technologien erläutert. Für jeden Ansatz wird die Basisarchitektur beschrieben und einige der jeweils vorhandenen Entwurfsoptionen erörtert. Anschließend werden die jeweiligen Vor- und Nachteile der Ansätze in Bezug auf einige übliche Faktoren und Anforderungen betrachtet, die Sie beim Festlegen des geeigneten Ansatzes für Ihre Anwendung berücksichtigen sollten.

 

Was ist ein Thin Client?

Viele Thin Client-Technologien betreffen die Serverebene, für die zahlreiche Webserverplattformen und Frameworks (ASP, ASP.NET, JSP und andere) zur Auswahl stehen. Jede verfügt über spezielle Features zum einfachen Schreiben von Thin Client-Anwendungen, sie alle stellen jedoch die Benutzerschnittstelle auf dem Client durch eine Reihe von HTML-Seiten in einem Browser dar. Eine Thin Client-Anwendung kann einfach als eine Anwendung definiert werden, die die Ausführungsumgebung für die Benutzerschnittstelle der Anwendung in einem Browser (als HTML) bereitstellt.

Neben der Benutzerschnittstelle und den Möglichkeiten zur Interaktion stellt der Browser gleichzeitig generische Sicherheit, Statusverwaltung und Datenverarbeitungsmöglichkeiten bereit, ebenso eine Ausführungsumgebung für die Programmlogik auf dem Client. Für den letztgenannten Zweck bietet der Browser üblicherweise ein Skriptmodul und die Möglichkeit zum Hosten anderer Ausführungskomponenten wie Java Applets, ActiveX und .NET-Steuerelementen usw. (die meisten Definitionen würden diese Ausführungskomponenten jedoch nicht den Thin Client-Technologien zuordnen, siehe Hybridanwendungen weiter unten).

Eine Anwendung, die für eine Thin Client-Darstellungsschicht entworfen wurde, wird in einzelne Seiten zerlegt, und jede Seite wird auf dem Client auf Anforderung "bereitgestellt". Jede Seite enthält die Beschreibung der Benutzeroberfläche und üblicherweise einen kleinen Anteil an Skriptlogik auf dem Client und einen kleinen Teil an Statusinformationen und Daten (Anzeigestatus, Cookies, XML-Dateninseln usw.). In Abbildung 1 wird eine schematische Darstellung der Architektur einer Thin Client-Darstellungsschicht gezeigt.

Ein Browser verfügt über beschränkte Möglichkeiten zur Interaktion mit der Clientumgebung (Hardware und andere auf dem Client ausgeführte Anwendungen). Er stellt einen Mechanismus bereit, der das Speichern von kleinen Datenmengen auf dem Client (über Cookies) ermöglicht, gelegentlich auch die Fähigkeit zum Zwischenspeichern von Seiten. In der Regel bieten diese Funktionen jedoch nur eingeschränkte Verwendungsmöglichkeiten, abgesehen von einfacher Sitzungsverwaltung und -verfolgung und rudimentären, schreibgeschützten Offline-Funktionen.

Der Browser stellt auch eine Sicherheitsinfrastruktur bereit, damit verschiedenen Anwendungen (Seiten) Berechtigungen zugewiesen werden können, so dass diese Statusinformationen (bspw. Cookies) verarbeiten, Komponenten hosten und Skripts ausführen können. Internet Explorer implementiert diese Funktionen durch verschiedene Zonen, vertrauenswürdige Sites, Filter usw.

Im Bestreben, eine verbesserte und reaktionsschnellere Benutzerschnittstelle bereitzustellen, setzen einige Webanwendungen auf DHTML und vergleichbare Technologien. Diese Technologien sind nicht in dem Sinne standardisiert, dass alle Browser sie in der gleichen Weise unterstützen, sie bieten jedoch Möglichkeiten zur Einbindung erweiterter Oberflächenelemente in eine Webseite, unter anderem DropDown-Menüs oder Drag & Drop.

Schematische Übersicht Thin Client Architektur
Abbildung 1: Schematische Übersicht einer Thin Client-Architektur

Andere Webanwendungen setzen auf das Hosten komplexer Komponenten innerhalb der Seite, einschließlich Java Applets, ActiveX und .NET-Komponenten. Diese Komponenten bieten entweder eine reaktionsschnellere Benutzerschnittstelle oder Logik auf dem Client, die aus Leistungs- oder Sicherheitsgründen nicht in Skripten implementiert werden kann. An diesem Punkt überschneiden sich Thin Client und Smart Client. Dies führt zu so genannten Hybridanwendungen.

Sie können solche Hybridanwendungen sicherlich verwenden, um die Vor- und Nachteile der einzelnen Ansätze auszugleichen. In diesem Artikel meint der Ausdruck "Thin Client" eine generische Webanwendung, die nicht auf solchen Komponenten basiert, sondern ausschließlich die von der Browserumgebung bereitgestellten Basisfunktionen verwendet. Da Hybridanwendungen Smart Client-Fähigkeiten erfordern, um Verwaltungs- oder Betriebsprobleme zu vermeiden, werden Hybridanwendungen in einem späteren Abschnitt, der sich mit Smart Client-Anwendungen beschäftigt, erläutert.

 

Was ist ein Smart Client?

Smart Client-Anwendungen sind unter Umständen schwieriger zu definieren, da sie in sehr unterschiedlichen Formen auftreten können und nicht den universellen Ansatz von Thin Client-Anwendungen haben. Der wesentliche Unterschied zwischen einem Smart Client und einem Thin Client liegt darin, dass der Smart Client keinen Browser zur Ausführung, zur Bereitstellung von Sicherheit und der Benutzerschnittstelle benötigt. Darüber hinaus enthalten Smart Clients statt HTML oder Jscript üblicherweise kompilierte Codebestandteile (Komponenten, Assemblys usw.), die auf dem Clientcomputer ausgeführt werden und Benutzerschnittstelle und Programmlogik auf dem Client für die Anwendung zur Verfügung stellen.

In welcher Beziehung stehen Smart Clients zu Rich Clients? Rich Client-Anwendungen wurden zu Smart Client-Anwendungen weiterentwickelt. Rich Clients boten gegenüber Thin Client-Anwendungen einige Vorteile, unter anderem verbesserte Leistung, Reaktionsfähigkeit, Flexibilität und Möglichkeiten zum Offline-Arbeiten, gleichzeitig litten Rich Clients jedoch unter einer Reihe von verfahrenstechnischen Problemen hinsichtlich zuverlässiger Bereitstellung und Aktualisierung. Thin Client-Lösungen zeichnen sich natürlich in den Bereichen Bereitstellung und Aktualisierung aus.

Smart Client-Anwendungen vereinen das Beste aus beiden Technologien miteinander, indem sie die Vorteile von Thin Clients im Bereich Verwaltungsaufwand mit den Vorteilen von Rich Client-Anwendungen kombinieren. Smart Clients sind optimierte Rich Clients, die durch den Einsatz neuer Technologien und Methoden die Nachteile der herkömmlichen Rich Client-Anwendungen vermeiden.

Beispielsweise können auf der .NET-Plattform entwickelte Smart Client-Anwendungen Vorteile aus einer ganzen Reihe von .NET Framework-Technologien ziehen, um die mit Rich Client-Anwendungen verbundenen Probleme zu lösen. Obwohl die Erstellung von Rich Client-Anwendungen, die Bereitstellungs- und Sicherheitsprobleme reduzieren oder verhindern, grundsätzlich immer möglich war, wird dies durch die Funktionalitäten des .NET Framework wesentlich einfacher.

.NET bietet die Möglichkeit zur Bereitstellung einer Anwendung (oder Teilen davon) über einen Webserver. Diese Technologie, bekannt als No-Touch-Deployment (NTD – Bereitstellung ohne Aufwand), ermöglicht die Bereitstellung von Anwendungen über eine URL. Dadurch wird die Veröffentlichung von Anwendungen an einem zentralen Standort (einem Webserver) ermöglicht, und damit bei Bedarf die automatische Bereitstellung der Anwendungen auf dem Client. Alle Clients befinden sich automatisch auf dem aktuellsten Stand, da eine Clientanwendung bei jeder Ausführung nach Aktualisierungen sucht und, sofern erforderlich, den neuen Code herunterlädt.

Schematische Übersicht einer Smart Client-Architektur
Abbildung 2: Schematische Übersicht einer Smart Client-Architektur

.NET stellt gleichzeitig die Code Access Security-Infrastruktur (CAS – Codezugriffssicherheit) zur Verfügung. CAS weist je nach bereitgestellten Autorisierungsdaten .NET-codespezifische Berechtigungen zu. CAS bietet daher ähnliche Funktionen wie der Browser für eine Thin Client-Anwendung, da sie eine Sandbox-Umgebung bereitstellt, in der die Anwendung ausgeführt wird. NTD ist in CAS integriert. In der Standardeinstellung werden über NTD bereitgestellten Anwendungen eingeschränkte Berechtigungen gewährt, abhängig von der URL-Zone, in der sie bereitgestellt werden. Netzwerk-Administratoren können die Berechtigungen durch Sicherheitsrichtlinien ändern und den Anwendungen je nach Anforderung bestimmte Berechtigungen gewähren oder versagen.

Das Erstellen von Smart Client-Anwendungen mit dem .NET Framework führt zu stabileren Anwendungen. Bisher konnten durch Installieren einer Rich Client-Anwendung andere Anwendungen beschädigt werden, da von anderen Anwendungen gemeinsam verwendete wichtige Komponenten und DLLs möglicherweise überschrieben wurden. .NET ermöglicht das Isolieren der einzelnen Anwendungen, das Speichern aller Bestandteile der Anwendung in einem lokalen Verzeichnis, damit so alle Assemblys separat vorliegen. Darüber hinaus benötigen diese Anwendungen bei der Bereitstellung keinerlei Registrierungsmaßnahmen, was die Risiken für andere Anwendungen ebenfalls reduziert. Zusätzlich ermöglicht das .NET Framework das parallele Bereitstellen mehrerer Versionen einer Assembly. Dadurch wird für die Ausführung der Anwendung sichergestellt, dass exakt die Versionen der Assemblys verwendet werden, mit denen sie erstellt und getestet wurde.

Eine Anwendung mit Smart Client-Architektur für die Darstellungsschicht verfügt in der Regel über einen zentralen Bereitstellungsserver, der die Smart Client-Bestandteile für die Clients bereitstellt. Gleichzeitig stehen für die Verwendung durch den Smart Client eine Reihe von Webdiensten für den Zugriff auf die Back-End-Geschäftsfunktionalitäten (Geschäftslogik und Daten) bereit. Da der Smart Client Code auf dem Client ausführt, kann er die Benutzerschnittstelle sauberer von den Daten und der Programmlogik auf dem Client trennen. Zusätzlich kann er, abhängig von den gewährten Berechtigungen, freier mit Clientressourcen umgehen, bspw. mit lokaler Hardware und anderer auf dem Client ausgeführten Software. In Abbildung 2 wird eine schematische Übersicht dieser Architektur dargestellt.
Wie sieht ein Smart Client aus? Smart Client-Anwendungen können in vielen Formen erscheinen. Zunächst ist eine Entscheidung über den am besten geeigneten Anwendungsstil zu treffen, der Stil, in dem der Smart Client dem Benutzer angezeigt wird. Im Allgemeinen gibt es drei Möglichkeiten, eine Smart Client-Anwendung zu entwerfen:

  • Windows-Anwendungen: Herkömmliche Anwendungen im Windows-Stil, üblicherweise mit Windows Forms erstellt, oder mobile Anwendungen auf Basis von .NET Compact Framework.

  • Office-Anwendungen: Microsoft Office-Anwendungen, die durch eingebaute Smart Client-Fähigkeiten erweitert wurden und dem Benutzer Zugang zu Geschäftsanwendungen und Geschäftsprozessen ermöglichen.

  • Hybridanwendungen: Anwendungen, die einer Kombination von Thin Client- und Smart Client-Technologien entsprechen. Beispielsweise durch das Hosten eines Windows Forms-Steuerelements in einer Browserseite oder das Hosten des Browsers in einer Windows Forms-Anwendung.

Das Auswählen des geeigneten Anwendungsstils ist von großer Bedeutung, wenn Sie alle sich aus dem Smart Client-Ansatz ergebenden Vorteile realisieren möchten. Der Smart Client-Anwendungsstil wird von Bereitstellung, Sicherheit, Entwicklung und Offline-Fähigkeiten beeinflusst, der entscheidende Punkt ist unter Umständen jedoch die allgemeine Benutzerfreundlichkeit. Jede Wahl führt zu einem anderen Ansatz für die Benutzerfreundlichkeit, nur das Auswählen des geeigneten Stils gewährt dem Benutzer die von ihm geforderte Kombination aus Flexibilität und Leistung.

Windows-Anwendungen

Benutzer verbinden Anwendungen für Smart Clients mit Anwendungen im herkömmlichen Windows-Stil, da sie Rich Client-Funktionalitäten bereitstellen, einschließlich Symbolleisten, Menüleisten, Kontextmenüs, Drag & Drop, kontextspezifischer Hilfe, Rückgängig/Wiederherstellen usw. Entwickler können diese Art von Smart Client-Anwendungen mit dem .NET Framework oder .NET Compact Framework mit Hilfe von Windows Forms erstellen.
Sie können jedoch auch die in den Application Blocks vorhandenen Smart Client-Funktionalitäten nutzen, die von der Microsoft Patterns & Practices Group zur Verfügung gestellt werden. Diese Bausteine stellen der Anwendung übliche Smart Client-Fähigkeiten zur Verfügung, etwa lokales Zwischenspeichern von Daten, nahtlose Bereitstellung und Möglichkeiten zur Offline-Arbeit.
Windows Forms-Anwendungen stellen die umfangreichsten Möglichkeiten für die Oberfläche zur Verfügung, so dass Entwickler die Benutzerschnittstelle und das Benutzerinteraktionsmodell exakt an die Anforderungen anpassen können. Für Anwendungen, die eine besondere Benutzeroberfläche benötigen, die eine Office-Anwendung nicht leisten kann, ist dieser Ansatz am besten geeignet.

Office 2003 Smart Client-Anwendungen

Microsoft Office-Programme bieten eine beeindruckende Plattform zum Erstellen von Smart Client-Lösungen. Das Erweitern von Office-Anwendungen durch die Verbindung zu entfernten Datenquellen und Geschäftsdiensten, damit sie Bestandteil einer verteilten Lösung werden, bietet nicht nur für die Benutzer Vorteile, sondern auch für Entwickler, die auf diese Weise Anwendungen effizienter schreiben können, sowie für die Mitarbeiter, die für Bereitstellung und Verwaltung zuständig sind.

Es gibt viele Benutzer, die sich mit Office-Anwendungen gut auskennen und diese bei ihrer täglichen Arbeit verwenden. Das Erweitern von Office-Anwendungen durch das Verbinden mit entfernten Datenquellen und Geschäftsdiensten bedeutet, dass die Lösung von den Erfahrungen des Benutzers profitiert und so den Bedarf an erneuter Schulung nicht entstehen lässt oder erheblich reduziert. Der Benutzer hat ebenfalls Vorteile, da er weiterhin mit der vertrauten Anwendung arbeiten kann.

In vielen Unternehmen ist der Einsatz von Microsoft Office sehr verbreitet. Office als Client für Geschäftssysteme kann den Aufwand zum Installieren und Warten einer zunehmenden Zahl von Clientanwendungen für den Zugriff auf Back-End-Datenquellen und Dienste reduzieren. Gleichzeitig werden Daten aus Geschäftsanwendungen sehr oft in Office-Anwendungen wie Word oder Excel zur weiteren Bearbeitung, Analyse oder Präsentation kopiert. Kopieren und Einfügen kostet Zeit, zudem sind es mögliche Fehlerquellen. Wichtiger ist jedoch der Umstand, dass die Verbindung zu den Daten unterbrochen wird, so dass der Benutzer regelmäßige Aktualisierungen benötigt und Wiederholungen der Kopier- und Einfügevorgänge durchführen muss. Dies kann möglicherweise zu Problemen führen.

Darüber hinaus können Office-Anwendungen viele Funktionalitäten bereitstellen, die zur Anzeige und Bearbeitung von Daten erforderlich sind. Der Benutzer kann so mit dem vollständigen Office-Leistungsumfang mit der Lösung arbeiten. Dadurch lässt sich erheblich Zeit und Mühe einsparen, und Sie können eine Lösung wesentlich schneller entwickeln und veröffentlichen. Excel bietet umfassende Möglichkeiten zum Sortieren, Bearbeiten und Anzeigen von Daten. Die Nutzung dieser Möglichkeiten in Ihrer Smart Client-Lösung kann eine Menge Geld sparen.

Natürlich haben die Benutzer seit einiger Zeit die Möglichkeit zum Integrieren zusätzlicher Funktionalitäten in ihre Office-Anwendungen. In einigen Fällen führte dies zu schnellen, jedoch geschäftskritischen Lösungen, die schwierig zu verwalten waren, da sie nicht von der IT-Abteilung entwickelt oder gewartet wurden. Das Erstellen mit Smart Client-Technologien ermöglicht ein einfacheres Bereitstellen und Aktualisieren bei gleichzeitiger Lösung einiger Verwaltungsprobleme. Außerdem stellt diese Vorgehensweise eine Möglichkeit dar, den Wert dieser Lösungen zu erhalten. Office 2003 unterstützt das Integrieren von Smart Client-Fähigkeiten in Office-Anwendungen zum Verbinden mit entfernten Diensten, die Zugriff auf Daten und Geschäftsprozesse gewähren. Zu den von Office 2003 unterstützten wichtigeren Technologien zum Erstellen von Smart Client-Lösungen gehören:

  • XML-Unterstützung: Office 2003 enthält eine Reihe von Funktionalitäten, die Entwicklern eine einfachere Verbindung von Office-Anwendungen mit entfernten Datenquellen und Geschäftsprozessen über XML ermöglichen.

  • Word, Excel und InfoPath können XML verwenden, um Struktur und Inhalt eines Dokuments in für Menschen und Maschinen lesbarer Form zu speichern. Für diese Dateiformate hat Microsoft W3C-konforme XSD-Schemas veröffentlicht. Diese sind zur Verwendung in eigenen Lösungen ohne Einschränkung verfügbar. Diese Schemas ermöglichen das einfache Erstellen von Word- und Excel-Dokumenten oder InfoPath-Formularen auf dem Server und das Bereitstellen für den Client durch XML-Webdienste. So können Benutzer diese Dokumente sofort anzeigen und bearbeiten. Diese Technologie kann ebenfalls verwendet werden, um das Erstellen von Dokumenten und Funktionalitäten zum Indizieren und Suchen bereitzustellen. Da diese Dokumente in XML codiert vorliegen, können sie von beliebigen Systemen oder Prozessen verarbeitet werden. Dadurch wird der Datenaustausch zwischen heterogenen Systemen möglich. Diese Technologie kann ideal in dokumentzentrierten Lösungen eingesetzt werden.

  • Darüber hinaus können Word, Excel und InfoPath XML-Nachrichten oder -Dokumente verarbeiten, die benutzerdefinierten Schemas entsprechen. Benutzer können ihre Office-Anwendungen als Dienste für die Darstellungsschicht in datenzentrierten Lösungen verwenden, in denen Geschäftsprozesse oder Geschäftsdienste das Nachrichtenschema bereits definieren. Diese Art einer Smart Client-Anwendung weist in der Nachricht enthaltene Elemente und Attribute bestimmten Bereichen im Dokument zu, damit die Office-Anwendung sie entsprechend anzeigen und der Benutzer die Werte bearbeiten kann. Gleichzeitig ist bei der Dateneingabe das Einhalten des zugrundeliegenden Schemas sichergestellt. Bestimmte Werte können mit einer XPath-Abfrageanweisung programmgesteuert abgefragt, eingetragen oder referenziert werden.

  • Smart Documents: Smart Document-Lösungen unterstützen den Benutzer bei der Interaktion mit einem Dokument, da sie zusätzliche Daten und Hilfestellungen bereitstellen, jeweils in Bezug auf die aktuelle Position innerhalb des Dokuments. Während der Benutzer das Dokument bearbeitet, können wichtige Informationen oder Hilfetexte im Aufgabenbereich angezeigt werden, ebenso lassen sich fehlende Daten automatisch ergänzen. Werden diese Möglichkeiten mit entfernten Diensten verbunden, um Echtzeitdaten abzurufen oder Interaktion mit Geschäftsprozessen zu ermöglichen, können umfassende und integrierte Anwendungen erstellt werden.

  • Information Bridge Framework (IBF): Bei IBF handelt es sich um eine deklarative Lösung, die auf der Smart Document-Technologie beruht und Dokumenten die Anbindung an Dienste über Metadaten ermöglicht. Smart Tags in einer Office-Anwendung interagieren mit der generischen IBF-Infrastruktur und den mit dem verfügbaren Webdienst verknüpften Metadaten, um aus dem Dokument heraus Zugriff auf wichtige Daten und Geschäftsprozesse bereitzustellen, jeweils unter Bezug auf den Inhalt des Dokuments und die aktuelle Aktivität des Benutzers. Erhält ein Benutzer beispielsweise ein mit einem bestimmten Lieferanten verknüpftes Dokument, kann die IBF-Infrastruktur Daten über dessen Firma abrufen und im Aufgabenbereich anzeigen. Ebenso kann Zugriff auf vorhandene Optionen gewährt werden, damit das Dokument mit anderen Geschäftsprozessen verbunden werden kann.

  • Visual Studio-Tools für Office (VSTO): VSTO stellt den Zugriff auf die Objektmodelle von Word und Excel über verwaltete Codeerweiterungen bereit. Mit VSTO können Entwickler komplexe und umfassende Smart Client-Officelösungen erstellen, die nicht nur den vollständigen Leistungsumfang von Word und Excel vorhalten, sondern gleichzeitig alle Features von .NET Framework (z.B. Windows Forms) und auf diese Weise sehr einfach umfassende und reaktionsfähige Benutzerschnittstellen integrieren. VSTO stellt gleichzeitig eine ausnehmend gute Entwicklungsumgebung bereit, sodass Entwickler sehr einfach eine Lösung erstellen und debuggen können. Grundsätzlich stellt VSTO den einem Dokument zugrundeliegenden Code zur Verfügung, damit eine Lösung erstellt werden kann, die alle Möglichkeiten der "Host"-Anwendung nutzen kann.

Hybridanwendungen

Smart Client-Hybridanwendungen kombinieren die Ansätze für Smart Clients und Thin Clients. Sie können eine Erweiterung einer bestehenden Thin Client-Anwendung mit Smart Client-Fähigkeiten darstellen oder die Integration einer browserbasierten Anwendung in eine Smart Client-Anwendung.

Eine Smart Client-Anwendung kann beispielsweise eine Browserinstanz hosten, damit bestimmte Inhalte und Anwendungsfunktionalitäten auch mit der Thin Client-Technik bereitgestellt werden können. Diese Architektur kann sehr hilfreich sein, wenn die Anwendung eine vorhandene Thin Client-Anwendung integrieren muss oder eine wesentliche Funktionalität des Thin Client-Ansatzes zum Bereitstellen von verknüpften dynamischen Inhalten eines Webservers genutzt werden soll. Solche Inhalte und Funktionalitäten stehen natürlich nur zur Verfügung, wenn der Benutzer online ist. Der Smart Client-Bestandteil der Anwendung kann jedoch verwendet werden, um sinnvolle Funktionen im Offlinebetrieb bereitzustellen, und die Anwendung online mit dem Zugriff auf die Thin Client-Funktionalitäten zu ergänzen.

In einigen Fällen ist der Hybridansatz zum Erweitern einer vorhandenen Thin Client-Anwendung zu verwenden, indem man Smart Client-Steuerelemente oder -Komponenten in einer Webseite hostet. Mit diesen Komponenten lassen sich eine umfassende und reaktionsfähige Benutzerschnittstelle und besondere Anwendungsfunktionalitäten (bspw. Rendern und Visualisieren von Daten) realisieren, während die übrigen Teile der Anwendung als Thin Client bereitgestellt werden. Diese Architektur ist jedoch für eine Offline-Unterstützung ungeeignet, da die für die Bereitstellung verwendete Webseite ohne Verbindung nicht zur Verfügung steht. Auch eine Integration von Software oder Hardware auf dem Client ist ohne geeignete und aktivierte Sicherheitsrichtlinien nicht möglich.

 

Auswählen der geeigneten Architektur für die Interaktionsschicht

Beide Ansätze, Thin Client und Smart Client, haben eindeutige Einsatzgebiete. Beide verfügen über bestimmte Vor- und Nachteile, die Auswahl ist abhängig von den Anforderungen an eine bestimmte Anwendung oder an besondere Geschäftsgegebenheiten.

In einigen Unternehmen existieren Richtlinien, die einen Thin Client-Ansatz für alle Anwendungen vorschreiben. Eine solche grundsätzliche Vorgehensweise kann bei einigen Anwendungen zu großen technischen Problemen führen, da eine Browserplattform nicht in der Lage ist, eine einfache Unterstützung für relativ komplexe Anwendungs-Anforderungen bereitzustellen. Das Entwickeln einer Thin Client-Anwendung, die das Aussehen und Verhalten sowie die Möglichkeiten einer herkömmlichen Rich Client-Anwendung haben soll, kann extrem herausfordernd und kostenintensiv sein. Warum? Der Browser schränkt den Entwickler bei Statusverwaltung, Programmlogik und Datenverwaltung auf dem Client, Bereitstellung von Schnittstellenfeatures wie Drag & Drop, Rückgängig/Wiederherstellen usw. ein. Umgekehrt kann ein Smart Client-Ansatz für sämtliche Anwendungen ungeeignet sein, da dies zu komplexen Lösungen bei Anwendungen führen kann, die lediglich eine dynamische Datendarstellung enthalten und die Vorteile einer extrem dynamischen Benutzerschnittstelle erfordern. Wenn Ihre Anwendung unterschiedliche Betriebssysteme auf den Clients unterstützen muss, kann ein Smart Client-Ansatz aufgrund von plattformübergreifenden Einschränkungen ungeeignet sein.

Das Festlegen eines Ansatzes für alle Anwendungen kann daher zu unnötigen Kosten, zu gesteigerter Komplexität, einem Mangel an Flexibilität und verminderter Benutzerfreundlichkeit führen. Beide Ansätze können in einem Unternehmen wahrscheinlich nebeneinander existieren und je nach Anforderungen an bestimmte Anwendungen und Geschäftsbedingungen Verwendung finden. Die Auswahl des geeigneten Ansatzes sollte auf Basis der einzelnen Anwendung erfolgen, obwohl in einigen Fällen beide Ansätze kombiniert werden können, entweder durch geeignetes Integrieren von Thin Client- und Smart Client-Technologien, oder durch Verwenden eines Parallelansatzes, in dem einige Benutzergruppen mit Thin Clients, andere Gruppen mit strengeren Anforderungen über Smart Clients auf die Anwendung zugreifen. In jedem Fall steht das Verwenden der geeigneten Technologie in der zur Verfügung stehenden Zeit im Vordergrund, um die Erwartungen der Benutzer und die Geschäftsanforderungen zu erfüllen.

Der Thin Client-Ansatz hat bekannte Vorzüge bei Verfügbarkeit und Einfachheit beim Bereitstellen und im Betrieb. Seit dem Erscheinen der Smart Client-Technologie holen Clients mit dieser Technologie in diesem Bereich jedoch auf und stellen inzwischen in einigen Szenarios eine wirkliche Alternative zu Thin Clients dar. Insbesondere umgehen Smart Clients die Bereitstellungs- und Verwaltungsprobleme von Rich Client-Lösungen, sie profitieren von Vorzügen in den Bereichen Flexibilität, Reaktionsfähigkeit und Leistung.

Da also Bereitstellung und Verwaltbarkeit nicht länger die entscheidenden Faktoren beim Auswählen des geeigneten Ansatzes sind: Wie entscheidet man zwischen beiden Ansätzen? Durch den Wegfall der relativen Vorteile des Thin Client-Ansatzes in diesen Bereichen ändert sich die Bewertung, und die Anzahl von betrachtenswerten Faktoren nimmt zu. Abhängig von den Prioritäten der Anforderungen, kann ein Ansatz geeigneter sein. Die Auswahl des geeigneten Ansatzes führt zu einem schnelleren und weniger komplexen Entwicklungsprozess, einer einfacheren Bedienung und zu höherer Benutzerzufriedenheit.

Die Features sowie Vor- und Nachteile der jeweiligen Ansätze wurden in diesem Artikel bisher beschrieben. Wie führen diese jedoch zu einer Entscheidung, wenn die Anforderungen einer speziellen Anwendung vorliegen? Unternehmen müssen unter anderem die folgenden wichtigen Anforderungskriterien berücksichtigen:

  • Client-Plattform

  • Bereitstellung und Aktualisierung

  • Benutzerschnittstelle

  • Leistung

  • Integration auf dem Client

  • Offlinebetrieb

Diese Liste ist keine vollständige Sammlung aller Kriterien. Die IT-Abteilung eines Unternehmens wird wahrscheinlich für bestimmte Anwendungen weitere entscheidende Kriterien hinzufügen. Diese Liste berücksichtigt hauptsächlich Anforderungen in Bezug auf Betrieb und Funktionalität, Entwicklungs- und Entwurfszeitkriterien sind dagegen nicht enthalten. Diese Faktoren können jedoch von ausreichender
Bedeutung sein, um den Ausschlag für den einen oder anderen Ansatz zu geben. Das Auswählen des geeigneten Ansatzes ist eine gemeinsame Entscheidung von IT-Mitarbeitern und Geschäftsinhabern. Der gewählte Ansatz sollte zu einer für beide Seiten befriedigenden Lösung führen: für die IT-Mitarbeiter in Bezug auf die Verwaltung, für die Geschäftsinhaber in Bezug auf Funktionalität.

 

Client-Plattform

Flexibilität in Bezug auf die Client-Plattform kann für einen Kunden oder Geschäftspartner von Bedeutung sein, wenn sich die Hauptbenutzer einer Anwendung außerhalb des Unternehmens befinden und daher eine bestimmte Client-Plattform nicht vorausgesetzt werden kann. Das gilt ebenfalls für Anwendungen, die von Systemen ohne Windows-Betriebssystem erreicht werden müssen.

Thin Clients unterstützen zahlreiche Zielplattformen. Dies erfordert allerdings oft, dass die Anwendung den korrekten Typ der Zielplattform ermittelt, um Betrieb und Verhalten den Unterschieden der einzelnen Browser anzupassen. Dies gilt insbesondere, wenn die Zielplattformen mobile Geräte einschließen. Das Thin Client-Framework selbst kann mit vielen dieser Unterschiede umgehen. ASP.NET auf dem Server kann beispielsweise den Typ des Zielbrowsers ermitteln und jeweils angepasste Inhalte übertragen. Das Verwenden spezieller Browserfeatures führt jedoch üblicherweise zur Entwicklung speziellen Codes, um die Abweichungen zwischen den Browsertypen zu behandeln.

Der Smart Client-Ansatz bietet diese Fähigkeiten nicht. Laufen die Anwendungen jedoch ausschließlich unter Windows-Betriebssystemen, können das .NET Framework und/oder das .NET Compact Framework (für mobile Anwendungen) Smart Client-Lösung auf einer Vielzahl von Clientgeräten bereitstellen, auch für externe Benutzer.

Wenn Ihre Anwendung externe Benutzer oder Clients, die kein Windows-Betriebssystem verwenden, unterstützen muss, sollten Sie den Thin Client-Ansatz in die engere Wahl ziehen.

 

Bereitstellung und Aktualisierung

Bei beiden Ansätzen geht es um das Bereitstellen der Benutzerschnittstelle, Anwendungslogik und Daten auf dem Client. In beiden Fällen werden diese Bestandteile zentral gehalten und verwaltet und auf dem Client auf Anforderung bereitgestellt. Beim Thin Client-Ansatz sind diese Bestandteile nicht dauerhaft auf dem Client vorhanden und müssen bei jeder Ausführung der Anwendung erneut "bereitgestellt" werden. Im Smart Client-Ansatz kann der Client diese Bestandteile lokal speichern und damit Offlinearbeit ermöglichen bzw. den Bereitstellungs- und Aktualisierungsvorgang optimieren.

Da beide Ansätze einem Unternehmen das zentrale Speichern der Anwendungsbestandteile ermöglichen, gilt dies auch für eine zentrale Verwaltung von Benutzerautorisierung, Bereitstellung, Aktualisierung usw. Unternehmen können Thin Clients und Smart Clients für Lösungen verwenden, die das Ausführen der aktuellsten Programmversion erfordern. Ein Smart Client ermöglicht jedoch zusätzliche Flexibilität, etwa die Option, für verschiedene Benutzer verschiedene Versionen der Anwendung (z. B. bei Pilotgruppen) auszuführen, oder die Anwendung offline zu betreiben. Um diese Vorteile nutzen zu können, erfordert die Lösung jedoch möglicherweise zusätzlich Änderungen von Sicherheitsrichtlinien und/oder eine auf dem Client bereitgestellte Aktualisierungs-Verwaltungskomponente.

Wenn Ihr Szenario den Offlinebetrieb der Anwendung erfordert, sollten Sie den Smart Client-Ansatz in die engere Wahl ziehen. Wenn die Anwendung andererseits keine Vorteile von einer lokalen Speicherung auf dem Client hat, macht ein Thin Client-Ansatz unter Umständen mehr Sinn. Im letztgenannten Fall wird ein Thin Client die richtige Wahl sein, wenn die Anwendung in erster Linie dynamische Daten anzeigt oder Probleme bei Parallelbetrieb (in Bezug auf Anwendungslogik oder Daten) von großer Bedeutung sind.

 

Benutzerfreundlichkeit

Thin Client- und Smart Client-Anwendungen verfügen jeweils über einen bestimmten Typ von Benutzerschnittstelle. In vielen Thin Client-Anwendungen wird versucht, eine umfassende Benutzerschnittstelle bereitzustellen. Dies scheitert jedoch oft aufgrund von Browsereinschränkungen. Beispielsweise sind grundlegende Rich Client-Features (Drag & Drop, Rückgängig/Wiederherstellen) in einer Thin Client-Lösung nur sehr schwierig zu implementieren. Die mit der Bereitstellung solcher Features verbundene Komplexität sollte beachtet werden; möglicherweise kann dies die plattformübergreifenden Vorteile des Thin Client-Ansatzes aufwiegen.

Sie sollten auch die Interaktion des Benutzers mit der Anwendung berücksichtigen. Einige Anwendungen sind sehr geradlinig, da der Benutzer üblicherweise in einer vordefinierten oder ähnlichen Weise mit der Anwendung interagiert. Andere Anwendungen sind komplexer; der Benutzer kann möglicherweise eine Aufgabe starten, diese sofort unterbrechen, eine andere Aufgabe abschließen und wieder zur ersten zurückkehren. Eine Statusverwaltung, die für solche Funktionalitäten erforderlich ist, kann in einer Thin Client-Lösung schwierig sein. Thin Client-Lösungen müssen beispielsweise so entworfen werden, dass einem Benutzer das Klicken auf die Schaltfläche Zurück inmitten einer wichtigen Transaktion möglich ist. Dieser Vorgang lässt sich in einer Smart Client-Anwendung leichter verarbeiten.

Smart Clients können gleichzeitig lokale Ressourcen sinnvoll verwenden, um lokales Suchen, Sortieren und Anzeigen sowie die Datenüberprüfung auf dem Client zur Verfügung zu stellen, und so die Verwendbarkeit und Benutzerfreundlichkeit einer Anwendung verbessern. Solche Features können zu einer Verbesserung in Bezug auf Datenqualität, Benutzerzufriedenheit und Produktivität führen.

 

Leistung

Ein wesentlicher Unterschied zwischen den beiden Ansätzen besteht darin, dass die Leistung von Smart Client-Anwendungen der von Anwendungen auf Thin Clients überlegen ist.

Ein Thin Client verwendet üblicherweise Skripts (die zur Ausführung interpretiert werden müssen), um die Anwendungslogik auf dem Client zur Verfügung zu stellen und auszuführen. Eine Smart Client-Lösung kann dem Client im Gegensatz dazu speziell kompilierten Code zur Verfügung stellen. Außerdem, und das ist vielleicht noch wichtiger, ist die Programmlogik auf dem Client in einer Smart Client-Anwendung in der Weise weniger eingeschränkt, so dass diese mit der Benutzerschnittstelle, dem lokalen Datenspeicher oder im Netzwerk verfügbaren Diensten interagieren kann. Aus diesen Gründen kann ein Entwickler mit einer guten Smart Client-Architektur leichter eine Hochleistungslösung bereitstellen.

Wie Benutzer die Leistung wahrnehmen, ist davon abhängig, wie sie die Anwendung nutzen und welches Verhalten sie von der Anwendung erwarten. Anwendungen, die nur selten eingesetzt werden oder bei denen nicht viel Interaktion mit dem Benutzer stattfindet, profitieren nicht von größerer Leistung auf dem Client. Anwendungen, die jedoch intensiv genutzt werden, erwecken einen wenig leistungsfähigen Eindruck, wenn bei häufig verwendeten Funktionen auch nur geringe Verzögerungen auftreten. Bei einer Callcenter-Anwendung kann eine Verzögerung von vier oder fünf Sekunden bei der Abfrage von Kundenbestelldetails zu erheblicher Benutzerunzufriedenheit (und Kosten) führen.

Natürlich zeigen beide Ansätze bei Funktionen, die Daten über das Netzwerk senden oder abfragen, die gleiche Leistung. Eine gut entworfene Smart Client-Lösung kann die Netzwerkkommunikation allerdings in einem separaten Thread ausführen. Dadurch bleibt die Anwendung reaktionsfähig, während sie Daten über das Netzwerk sendet und empfängt. Derartige Hintergrundaufgaben können aktiv ausgeführt werden, zum Beispiel als Reaktion auf einen empfangenen Kundenanruf. Für Smart Client-Lösungen ist es außerdem leichter, Daten lokal zwischenzuspeichern. Dadurch kann die Anzahl der Netzwerkaufrufe bzw. die erforderliche Bandbreite zur Ausführung derselben Funktion verringert werden. Diese Funktionen können großen Einfluss auf das Leistungsempfinden von Benutzern bezüglich einer Anwendung haben.

Smart Client-Lösungen bieten strengere Datenüberprüfung auf dem Client. So können zum Beispiel schreibgeschützte Referenzdaten, die von der Anwendung zur Feldüberprüfung und zur feldübergreifenden Überprüfung verwendet werden können, zwischengespeichert werden, da eine Smart Client-Lösung Daten und Programmlogik lokal speichern kann. Anwendungen, die solche Überprüfungen verwenden, können dem Benutzer schon früh Rückmeldungen zur Verfügung stellen. Dadurch wird die wahrgenommene Anwendungsleistung verbessert, die Anzahl der Datenübertragungen über das Netzwerk verringert und eine höhere Datenqualität gewährleistet. Thin Client-Lösungen müssen sich eher auf komplizierte Skripts verlassen, um die gleiche Funktionalität zur Verfügung zu stellen, und können Daten möglicherweise nicht lokal überprüfen, da diese sich auf andere Daten beziehen, die auf der aktuellen Seite nicht angezeigt werden.

Eine Smart Client-Lösung profitiert ebenfalls sehr von lokaler Verarbeitung, Speicherung und lokalen Anzeigemöglichkeiten, da der Benutzer dadurch Daten auf dem Client abfragen, sortieren und darstellen kann, ohne Netzwerkaufrufe ausführen zu müssen. Diese Fähigkeit wird insbesondere bei Verwendung einer Office-Anwendung wie Excel als Smart Client-Hostumgebung deutlich. Dies kann im Gegensatz zur Ausführung derselben Funktion auf einem Thin Client zu einer wesentlichen Verringerung von Netzwerkaufrufen führen.

Da die Benutzerschnittstelle einer Smart Client-Lösung typischerweise durch speziellen, auf dem Client ausgeführten Code zur Verfügung gestellt wird, kann eine reaktionsschnellere Benutzerschnittstelle bereitgestellt werden. Benutzerschnittstellenfunktionen von Rich Clients wie beispielsweise Drag & Drop, Rückgängig/Wiederherstellen, kontextbezogene Hilfetexte, Tastenkombinationen usw., können zu einer besseren Bedienung für die Benutzer und damit zu einer merklichen Verbesserung der Anwendungsleistung führen.

Wenn Leistung wichtig ist, sollten Sie eine Smart Client-Lösung in Betracht ziehen. Die vom Benutzer wahrgenommene Anwendungsleistung ist oft wichtiger als die tatsächliche Leistung einzelner Operationen. Das Ziel einer guten Anwendung besteht darin, zu gewährleisten, dass der Benutzer seine Arbeit so optimal erledigen kann, dass seine Zufriedenheit erhalten bleibt.

 

Integration auf dem Client

Anwendungen müssen häufig auf die Ressourcen eines Clients zugreifen, so dass diese in die Gesamtlösung integriert werden sollten. Ressourcen auf dem Client bestehen aus Hardware (Drucker, Telefon, Barcodeleser usw.) oder Software (Integration weiterer Geschäfts- oder Desktopanwendungen).

Natürlich wird sowohl der Thin Client als auch der Smart Client in einer so genannten Sandbox (begrenzte Umgebung) ausgeführt. Im Fall des Thin Clients stellt der Browser die Sandbox zur Verfügung, beim Smart Client wird die Sandbox von der .NET Framework-Laufzeitumgebung bereitgestellt. Um Clientressourcen in eine Thin Client-Anwendung zu integrieren, ist typischerweise eine hybride Anwendungsarchitektur erforderlich, bei der eine Komponente (z. B. ein ActiveX-Steuerelement) in einer Seite gehostet wird, um die Browsersandbox zu erweitern. Dieser Ansatz ist nicht besonders flexibel und häufig von sicherheitsrelevanten Entscheidungen des Benutzers abhängig, wenn Komponenten heruntergeladen werden müssen, die auf dem Client mit den Rechten des jeweiligen Benutzers ausgeführt werden.

Die .NET Framework-Laufzeitumgebung verwendet einen flexibleren Ansatz, indem sie verwaltetem Code Berechtigungen auf der Grundlage der vorgewiesenen Autorisierungsdaten und der lokalen Sicherheitsrichtlinien gewährt. In der Standardeinstellung kann von einem Webserver heruntergeladener Code nur in sehr begrenztem und festgelegtem Maß mit lokalen Ressourcen interagieren. Ihre Anwendungslogik kann diesem Code jedoch zusätzliche Zugriffsrechte auf bestimmte Ressourcen (wie spezielle Verzeichnisse auf dem Datenträger, andere Anwendungen, lokale Datenbanken usw.) gewähren.

Dieser verwaltete Ansatz stellt einen feiner einstellbaren und flexibleren Mechanismus zur Steuerung der Sicherheitsaspekte einer Anwendung dar, indem der Smart Client andere Clientressourcen ohne zusätzliches Sicherheitsrisiko integrieren kann. Noch wichtiger ist, dass der Netzwerkadministrator eher Sicherheitsrichtlinien für sicherheitsrelevante Entscheidungen verwendet als der einzelne Benutzer, so dass die Anwendung keine Aktionen ausführen oder auf Ressourcen zugreifen kann, für die keine Berechtigungen gewährt wurden.

Smart Client-Anwendungen verwenden häufig Sicherheitseinstellungen für Codezugriffe, um das Zwischenspeichern von Daten und die Logik auf dem Client zu steuern. Ein derartiges Verhalten ist für Offlinefähigkeiten äußerst wichtig. Daher sind für derartige Anwendungen normalerweise Änderungen der Sicherheitsrichtlinien erforderlich, um spezielle Berechtigungen zu gewähren. Dies umfasst auch die Berechtigung für die Anwendung, Code und Daten auf dem lokalen Datenträger zwischenzuspeichern. Smart Clients bieten eine sichere und flexible Lösung, wenn der Zugriff auf Clientressourcen wie lokale Hardware oder andere, lokal installierte Anwendungen erforderlich ist.

 

Offlinefähigkeiten

Während Unternehmen zunehmend von ihren IT-Systemen und den zur Verfügung gestellten Daten und Diensten abhängig werden, wird es für Benutzer immer wichtiger, auch offline arbeiten zu können. Der Benutzer bleibt dadurch jederzeit produktiv, während gleichzeitig die Konsistenz und die Datenqualität gewährleistet ist.

Während die Verbindung über Netzwerke zunehmend allgegenwärtig wird, ist es wichtig, zu beachten, dass eine bestehende Netzwerkverbindung nicht ausreicht, um den Zugriff auf eine Anwendung und die durch diese bereitgestellten Daten und Dienste zu garantieren. Spezielle Geschäftsanwendungen, die hinter einer Firewall ausgeführt werden, können von Benutzern außerhalb des Büros nicht genutzt werden, es sei denn, das Unternehmen investiert in eine VPN-Infrastruktur. Das Herstellen einer Verbindung kann auch in diesem Fall zeitraubend und teuer sein. Sofortige oder kurze Zugriffe auf die Anwendung sind häufig ungeeignet oder können zu verpassten Absatzmöglichkeiten oder inkonsistenten Daten führen.

Manchmal können Benutzer Offlinearbeit einplanen. Dies trifft beispielsweise auf einen Vertriebsmitarbeiter zu, der sich für bestimmte Zeiten außerhalb des Büros befindet, oder für einen Benutzer, der zuhause arbeitet. Manchmal ist es jedoch schwierig einzuschätzen, wann offline gearbeitet wird. Ein Benutzer in einem Warenhaus mit einem Tablet PC könnte zum Beispiel über eine drahtlose Verbindung arbeiten, die gelegentlich ausfällt. Ein weiterer Punkt ist die Verbindungsqualität. Da Unternehmen zunehmend weltweit operieren, kann die Netzwerkverbindung durch hohe Latenzzeiten oder zu geringe Bandbreite beeinträchtigt werden.

In jedem dieser Fälle kann eine Smart Client-Lösung sicheren Zugriff auf die Anwendung bieten, so dass die Auswirkungen durch Änderungen der Verbindungsqualität minimiert oder ganz ausgeschlossen werden können. Durch das intelligente Zwischenspeichern von Daten und Programmlogik auf dem Client und die gegebenenfalls automatische Bereitstellung von Aktualisierungen für Daten und Logik kann der Benutzer unabhängig vom Verbindungsstatus mit der Anwendung arbeiten. Außerdem kann ein Smart Client gewährleisten, dass Netzwerkaufrufe in Hintergrundthreads bearbeitet werden, so dass die Anwendung nicht auf Antworten aus dem Netzwerk warten muss. Dadurch kann der Benutzer wiederum unabhängig vom Netzwerkstatus seine Arbeit fortsetzen.

Diese Ziele sind mit einem Thin Client nur sehr schwer zu realisieren. Einige Lösungen versuchen, dieses Problem dadurch zu lösen, dass sie die Webanwendung, oder einen Teil davon, mithilfe eines lokalen Webservers zur Verfügung stellen. Derartige Lösungen sind schwer zu warten und erfordern eine komplizierte Infrastruktur, um die entsprechende Verarbeitung von Aktualisierungen für die Anwendung und deren Daten zu gewährleisten. Diese Lösungen verringern die Vorteile der zentralen Verwaltung, die oft als Hauptgrund für den Einsatz von Thin Clients angeführt werden, und schließen alle anderen Nachteile der Thin Client-Lösung mit ein.

 

Schlussbemerkung

Für den Gesamterfolg einer Anwendung kann die Wahl der passenden Architektur der Darstellungsschicht sehr wichtig sein. In einer passenden Architektur sind die Benutzererfahrung, leichtes Entwickeln und Testen und die betrieblichen Anforderungen der Anwendung ausgeglichen. Benutzer fordern zunehmend, dass ihre Bedürfnisse berücksichtigt werden.

Thin und Smart Clients sind jeweils für besondere Arten von Anwendungen gut geeignet. Aktuelle Fortschritte in der Technik haben einige Unausgewogenheiten zwischen diesen beiden Ansätzen beseitigt, so dass diese nicht in Fällen, für die sie nicht geeignet sind, eingesetzt werden müssen. Es ist wichtig, von Anfang an die passende Technik anzuwenden, um unnötige Komplexität, Kosten, Mangel an Flexibilität und schlechte Erfahrungen für Benutzer zu vermeiden.

Pauschale Unternehmensrichtlinien, die einen Ansatz bevorzugen, sind anfällig für diese Probleme. Ein Unternehmen muss alle Anforderungen einer Anwendung sorgfältig untersuchen und mit den Möglichkeiten jedes Ansatzes abgleichen. Es gibt viele verschiedene Faktoren, die diese Entscheidung beeinflussen. In diesem Artikel wurden nur einige der häufigsten behandelt. Die Entscheidung wird immer einen Kompromiss in Bezug auf die verschiedenen Faktoren darstellen. Das Verstehen dieser Faktoren und der davon abhängigen Prioritäten kann dabei helfen, dass Ihr Unternehmen die geeignete Architektur für die Darstellungsschicht auswählt.

 

Ressourcen

  • Smart Client Architecture and Design Guide – Microsoft Patterns and Practices (in Englisch).

  • Microsoft Office System: Überblick über Entwicklertechnologien – MSDN.

  • Overview of Office 2003 Developer Tools and Programs – MSDN (in Englisch)

 

Der Autor

David Hill
Microsoft Corporation
(davidhil@microsoft.com (in Englisch))
David Hill ist ein Softwarearchitekt im Microsoft Architecture Strategy Team. In den letzten beiden Jahren hat David Kunden und Partner bei der Erstellung erfolgreicher Smart Client-Lösungen auf der .NET-Plattform unterstützt. Er war einer der wichtigsten Mitarbeiter bei dem Buch "Patterns and Practices Smart Client Architecture and Design Guide" (in Englisch) und dem Offline Application Block.