Die Vorteile einer Webanwendung im Überblick

In den letzten Jahren haben Webanwendungen durch immer mehr Möglichkeiten, Funktionen und Standards der Browser eine wahre Blüte erlebt. Schmilzt doch der Unterschied dessen merklich dahin, was man in einer klassischen Desktop-Anwendung und einer Webanwendung an Funktionen und Benutzerkomfort (sogenannte Usabilty) erreichen kann.

Auch in Punkto Sicherheit hat sich viel getan und so sind die Webanwendungen von damals, die aus Sicherheitsperspektive teilweise löcherig waren wie ein Schweitzer Käse, in keiner Weise mehr zu vergleichen mit einer modernen und aktuellen webbasierten Software oder webbasierten Anwendung.

Entwicklungsansätze, Standards und Sicherheitskonzepte gleichen immer mehr denen der klassischen Softwareentwicklung mit sogenannten Hochsprachen.

Dabei bieten Webanwendungen jedoch eine ganze Menge von Vorteilen gegenüber Desktop-Anwendungen, sowohl in der Nutzung, der Interaktion mit anderen Systemen, der Skalierbarkeit, der Administration und Wartung, als auch beim Verteilen oder Ausrollen von Anwendungen.

Allerdings wäre zu kurz gesprungen, Unternehmenssoftware oder sogenannte On Premise Lösungen 1:1 gegen eine Webanwendung austauschen zu wollen. Anwendungen im Internet verfügbar zu machen oder in der Cloud zu hosten erfordert ein stringentes IT-Konzept und eine umfassende Betrachtung. Aber auch hierfür gibt es bereits erprobte und bewährte Konzepte, wir selbst arbeiten seit 2005 mit solchen Ansätzen und Konzepten und hosten und betreuen entsprechende Systeme.

Was ist eigentlich eine Webanwendung oder Web-App?

Eine Webanwendung ist eine Software, die im Browser des Benutzers aufgerufen oder ausgeführt wird. Häufig wird sie auch als Web-App bezeichnet (Abkürzung des englischen Wortes für Webapplikation web application) oder laut Wikipedia als auch Online-Anwendung, Webapplikation oder kurz Web-App.

Wie unterscheidet sich eine Desktop-Anwendung von einer Webanwendung aus technischer Sicht?

Desktop-Anwendungen werden in der Regel für ein bestimmtes Betriebssystem entwickelt. So läuft eine Anwendung beispielsweise entweder unter Windows oder unter OS X auf einem Mac, aber nicht auf beiden. Es gibt auch Anwendungen, die durch eine sogenannte Laufzeitumgebung wie beispielsweise die Java Runtime auf unterschiedlichen Betriebssystemen laufen können.

Diese programmierten Anwendungen werden dann kompiliert, also in Maschienencode übersetzt und auf dem Desktop System installiert. Dadurch ist möglich, dass solche Anwendungen grundsätzlich auch ohne jegliche Netzwerkverbindung lauffähig sind und durch das Kompilieren für das Betriebssystem die Ressourcen des System sehr effizient nutzen können. Dafür wird meist die Entwicklung mit Hochsprachen, wie zum Beispiel C++, Java oder vergleichbaren Sprachen durchgeführt. Die Anwendung enthält dann oft alles was sie braucht, um die Aufgabe zu lösen. Daher werden für Desktop Anwendungen häufig sogenannte Thick-Clients benötigt, also voll ausgestattete Rechner mit ausreichend Ressourcen und starken CPUs, damit Anwendungen gut bedienbar sind.

Aus Sicht des Softwarearchitekten ist eine Webanwendung eine Client-Server-Anwendung, bei der der Browser den Client darstellt, der wiederum mit der Anwendung auf dem Server im Internet oder dem Intranet kommuniziert und Informationen austauscht. Somit ist in der Regel keine Installation von Software auf dem Rechner des Benutzers mehr erforderlich, um die Anwendung nutzen zu können. Daher reichen für Webanwendungen in der Regel auch sogenannte Thin-Clients vollkommen aus, also Rechner oder Geräte, die lediglich über wenig Speicherplatz, Arbeitsspeicher oder eine schwächere CPU verfügen.

Unterschiedliche Arten von Webanwendungen

Je nach Anwendung kann dabei trotzdem Programmlogik sowohl auf Client-, als auch auf Server-Seite ausgeführt werden. Welche Verteilung hier sinnvoll ist, hängt vom Einsatzgebiet und dem individuellem Anwendungsfall ab. So können beispielsweise serverseitig sehr große Datenmengen in kürzester Zeit bearbeitet und ausgewertet werden. Wohingegen clientseitig eine direkte Nutzerinteraktion stattfindet. Je mehr Logik clientseitig erfolgt, desto mehr wird eine Webanwendung häufig als klassische Software wahrgenommen und nicht mehr als Webseite.

Bei neueren Ansätzen, wie den sogenannten Progressive Web Apps (PWA abgekürzt) verschwimmt die Webanwendung sogar nicht nur mit klassischen Desktop-Funktionen, sondern zusätzlich auch mit denen klassischer Smartphone-Apps. Dabei sieht die gleiche Webanwendung auf dem Destop-Browser aus wie ein Programm und auf dem Smartphone oder Tablet wie eine App.

Große Einsparungen durch Progressive Web Apps im B2B Umfeld möglich

Das geht sogar so weit, dass auch unterschiedliche Funktionen und Inhalte auf den verschiedenen Geräteklassen angezeigt werden können, obwohl es sich technisch um die gleiche Anwendung handelt. In Bezug auf den Entwicklungsaufwand einer Lösung für unterschiedliche Geräte ist das ein Quantensprung. Da es früher keine Alternative zur Entwicklung mehrerer nativer Apps (zum Beispiel Android, iOS, Windows Mobile usw.) gab, musste jede Anwendung in ihrem eigenen Ökosystem entwickelt und ausgerollt werden, was einen enormen Aufwand durch parallele, mehrfache Entwicklung mit sich zog.

Daher entwickelt man heutzutage Webanwendungen in der Regel nach dem sogenannten MobileFirst Ansatz. Dabei wird beim Design und in der Konzeption zunächst festgelegt, wie die Webanwendung auf einem Smartphone bzw. mobilen Endgeräten aussehen soll. Danach werden dann sukzessive die anderen Geräteklassen betrachtet und entsprechend der größeren Interaktionsfläche weitere Funktionen hinzugefügt. Das zahlt auf den Trend ein, dass immer mehr Benutzer zunächst mit dem Smartphone oder dem Tablet im Internet unterwegs sind und nicht mehr zu allererst mit dem Desktop-Rechner.

Im geschäftlichen Umfeld können PWAs in der Regel voll ihre Stärken ausspielen, da klassische native Apps häufig nur noch wenig Alleinstellungsmerkmale bei den im B2B Bereich benötigten Funktionen haben. Selbst Offline-Funktionalitäten können mit PWAs entwickelt werden. Für schnelle Spiele oder die Verarbeitung großer Datenmengen hingegen, wie sie häufig für Spiele benötigt werden, sind native Apps besser geeignet.

Von hybriden Apps oder Anwendungen spricht man, wenn sie ähnlich wie native Apps auf dem Smartphone oder Tablet installiert werden. So können einige Sensoren oder Geräteschnittstellen genutzt werden wie durch native Anwendungen, jedoch auch hier nicht vollumfänglich.

Im B2B Bereich, also zum Beispiel bei einer internen Unternehmensanwendung oder beispielsweise einer Software für Außendienstmitarbeiter ist es ein großer Vorteil, dass bei Webanwendungen keine Updates durch den Nutzer installiert werden müssen. Selbst auf dem Smartphone ist keine Zertifizierung der Anwendung oder des Updates durch den Anbieter des App-Stores mehr erforderlich. Die Aktualisierungen können zentral auf dem Anwendungsserver deployed, also ausgerollt werden und erreichen so automatisch alle Benutzer.

Austausch über Schnittstellen mit anderen Systemen

Die meisten modernen Webanwendungen sind bereits darauf ausgelegt, sich über definierte Schnittstellen und Protokolle mit anderen Systemen auszutauschen. Auch hier gibt es inzwischen bewährte Standards. Durch sie können zum Beispiel Funktionsaufrufe oder Datenformate zwischen den Anwendungen einfach ausgestauscht werden, ohne das es eine aufwändige oder detaillierte Abstimmung erfordert, wir das noch vor einiger Zeit der Fall war. Austauschformate wie zum Beispiel XML oder das JSON-Format ermöglichen dabei den unkomplizierten und effizienten Austausch von Daten.

Vorteile von Webanwendungen

Darüber hinaus haben Webanwendungen eine Menge weiterer Vorteile gegenüber klassischen Desktop-Anwendungen. Hier seien nur einige exemplarisch und stichpunktartig genannt:

  • Nutzung
  • Parallele Nutzung durch alle Anwender möglich
  • Informationsaustausch in Echtzeit
  • Zugriff und Nutzbarkeit von überall, aus dem Homeoffice, von unterwegs oder aus dem Urlaub
  • Look and Feel steht Desktop-Anwendungen in nichts mehr nach
  • Selbst Offline-Funktionalitäten bei PWAs möglich
  • Nutzung durch Thin-Clients oder selbst kleineren Geräten wie Smartphones möglich
  • Interaktion mit anderen Systemen
  • Einfacher Datenaustausch und Interaktion mit anderen Systemen über standardisierte Schnittstellen
  • Das Auslagern von spezifischen Funktionen ist über Schnittstellen einfach möglich (zum Beispiel Kopplung Zeiterfassung an Buchhaltung über API)
  • Modularisierung von Anwendungsteilen, beispielsweise genutzt bei Microservices Architektur
  • Skalierbarkeit
  • einfache Skalierung, sowohl horizontal als auch vertikal, bei entsprechenden konzeptionellen Ansätzen
  • Administration und Wartung
  • Zentrale Betreuung und Wartung der Anwendung und der Systeme
  • Keine Interaktion mit den Anwendern für Updates erforderlich
  • Verteilen oder Ausrollen
  • automatisches und kontinuierliches Ausrollen von Aktualisierungen und neuen Funktionen
  • Einfache Durchführung von A-B Tests möglich

Herausforderungen und Besonderheiten von Webanwendungen

Häufig haben Webanwendungen bestimmte Anforderungen an die Browser-Versionen, wenn zum Beispiel bestimmte Technologien oder Funktionen genutzt werden, die von älteren Browsern noch nicht unterstützt werden. Daher vermeidet der Einsatz der aktuellsten Browser Versionen häufig Schwierigkeiten oder Probleme, die häufig fälschlicherweise auch als Fehler (sogenannte Bugs) der Anwendung fehlinterpretiert werden.

In großen Konzernen oder Unternehmen mit vielen Mitarbeitern werden häufig die Computersysteme zentral verwaltet. Das führt mitunter dazu, dass durch die aufwändigen Tests und Zertifizierung von Systemen nach Updates, veraltete Browserversionen im Unternehmen verwendet werden. Deshalb kann es dann vorkommen, dass Webanwendungen, die neuste Technologien verwenden, nicht vollumfänglich nutzbar sind.

Bei der Konzeption und auch bereits in der Anforderungsaufnahme einer Webanwendung ist daher darauf zu achten, bis zu welchen zurückliegenden Browserversionen die Anwendung Rückwärtskompatibilität gewährleisten muss, also welche Browserversionen alle unterstützt werden müssen. Es lassen sich häufig auch ältere Browser-Versionen mit entsprechendem Mehraufwand unterstützen, in dem Funktionen mit alternativen Ansätzen implementiert werden. Hier ist dann entsprechend gemeinsam mit dem Auftraggeber das Kosten-Nutzen-Verhältnis abzuwägen.

Technische Abhängigkeiten

Genau wie bei State of the art Softwareentwicklung, verwendet man auch bei Webanwendungen gern bewährte Standardlösungen in Form von Fremd-Bibliotheken, die in die Anwendung oder Software eingebunden werden. Dafür gibt es unterschiedliche Gründe. Einmal spart dies Entwicklungsaufwand, was am Ende dem Kunden zu Gute kommt. Dann ist aus Entwicklersicht eine Standardlösung eines Problems gegenüber einer Eigenentwicklung zu bevorzugen, sofern diese sauber implementiert ist, sich bewährt hat und ansonsten nichts dagegenspricht. Denn so haben sich bereits andere Entwickler mit dem Problem und auch den Randbedingungen auseinandergesetzt und Herausforderungen gelöst, denen man ansonsten erst später im Verlauf der Entwicklung begegnen würde. Ein gutes Beispiel dafür ist der direkt sicherheitsrelevante Bereich der Verschlüsselung oder auch Kryptifizierung. Hier gibt es bewährte Algorithmen die verwendet werden können. In der Regel scheitern auch begabte Entwickler daran, ein eigenes Verschlüsselungskonzept zu entwickeln und zu implementieren, dass einem Angriff eines Experten standhalten würde. Ein weiterer guter Grund für die Verwendung von externen Bibliotheken ist, dass diese in der Regel von ganzen Teams von Entwicklern weiterentwickelt und gewartet werden. Wird also beispielsweise eine Sicherheitslücke bekannt, ist diese in der Regel in relativ kurzer Zeit gefixt. Das spart auch während Betrieb und Betreuung der Webanwendung Aufwände. Dadurch sind selbst in kleineren Webanwendungen in der Regel eine Menge an externen Bibliotheken (englisch Libraries) eingebunden. Es ist dabei zu beachten, dass die Versionen entsprechend zusammenpassen. Das Einbinden kann dabei auf unterschiedliche Arten erfolgen – werden die Libraries direkt von den Anbietern eingebunden, kann das die initiale Ladezeit erheblich verkürzen, wenn diese durch eine andere Anwendung vorher bereits schon einmal geladen wurde. Werden alle benötigten Bibliotheken auf dem eigenen Server gebündelt und von dort ausgeliefert, hat der Anbieter eine bessere Kontrolle und kann auch die Sicherheitsrichtlinen des Servers erhöhen, da lediglich das eigene System als zuverlässig gelten muss.

Sicherheit von Webanwendungen

Um die Sicherheit von Webanwendungen zu gewährleisten ist es wichtig, ein umfassendes Konzept zu erstellen oder das Hosting der Anwendung entsprechenden Spezialisten zu überlassen.

Häufig wird davon ausgegangen, dass Anwendungen oder Daten am sichersten im eigenen Firmennetz aufgehoben sind. Das ist aber in der Regel nicht der Fall, denn moderne Rechenzentrum sind durch technische und organisatorische Maßnahmen bestens vor einem Ausfall der Systeme oder dem Eindringen von unbefugten geschützt. Durch die große Anzahl der betreuten Systeme häufig besser, als die IT Abteilung eines Mittelständlers, da Zugangsschutz oder Redundante Geräte bis hin zur Stromversorgung einen erheblichen finanziellen und organisatorischen Aufwand darstellen.

Ist die Anwendung in einem sicheren Umfeld beheimatet und performant angebunden, muss noch die Sicherheit Anwendung selbst betrachtet werden. Denn Systeme sind grundsätzlich immer nur so sicher, wie das schwächste Glied in der Kette. Wie sicher eine Anwendung ist hängt zum einen davon ab wie sie entwickelt wurde. Also ob zum Beispiel nach bewährten Standards vorgegangen und mit aktuellen Technologien gearbeitet wurde. Zum anderen hängt es davon ab, ob sie gut gehostet und regelmäßig betreut und mit aktuellen Sicherheitsupdates versorgt wird. Als gute Ausgangsbasis für die Sicherheit von Webanwendungen kann zum Beispiel der
 Maßnahmenkatalog zur Sicherheit von Webanwendungen vom BSI, dem Bundesamt für Sicherheit in der Informationstechnik dienen. Auch die Allianz für Cyber-Sicherheit befasst sich mit diesen Themen.

Ob eine Anwendung sicher ist, kann auch durch sogenannte Vulnerability Scans also Schwachstellen Scanner und PenetrationTests geprüft werden. Bei einem Vulnerability Scan wird die Anwendung mit einer Software auf bekannte Sicherheitslücken hin überprüft. Das kann initial vor der Inbetriebnahme oder auf regelmäßiger Basis erfolgen. Wird eine bekannte Sicherheitslücke in der Anwendung gefunden, so wird dies im Fehlerreport angezeigt. Es gibt dafür Dienste, die man zum Beispiel online buchen kann oder eigene Anwendungen, mit denen man selbst, entsprechende Kenntnis vorausgesetzt, einen Vulnaribility Scan durchführen kann. Ein bekannter Vulnerability Scanner in diesem Bereich ist zum Beispiel OpenVAS. Mit dem Thema Sicherheitslücken befasst sich auch das Open Web Application Security Project (OWASP), und veröffentlich zum Beispiel die Top 10 Web Application Security Risks und eine Liste nützlicher Tools in diesem Bereich. Beim Penetration Test versucht ein Spezialist ganz gezielt und auf unterschiedliche Wege in die Anwendung einzudringen. Gelingt ihm dies, so meldet er dem Auftraggeber seine Erkenntnisse, so dass die Anwendung entsprechend gefixt werden kann. Dies ist definitiv eine Disziplin für Experten, da auf allen Ebenen einer Webanwendung die sicherheitsrelevant sind, wie zum Beispiel Server, Netzwerke, Protokolle, Programmierung und Systemadministration tiefgreifende Kenntnis und Erfahrung erforderlich ist. Durch das unsachgemäße Testen auf Sicherheit ist es sehr leicht, nicht beabsichtigte Effekte zu verursachen.

Neben der Gefahr für Kollateraleffekte sind bei den Sicherheitstests auch rechtliche Aspekte zu beachten, da sehr schnell gesetzliche und rechtliche Grenzen überschritten sind.

Zusammenfassung

Moderne Webanwendungen, sogenannte Web-Apps haben eine Menge von Vorteilen gegenüber klassischer Desktopanwendungen und stehen diesen in vielen Fällen in nichts mehr nach. Aus diesem Grund erleben wir seit einiger Zeit einen Wandel in der Entwicklung hin in Richtung von Webanwendungen, die auch in klassisch sensiblen Bereichen wie Banken, Finanzen oder ähnlichem Einzug erhalten.

Entwicklung und Betrieb sind häufig weit weniger aufwändig, als vergleichbare Konzepte mit klassischen Desktop-Anwendungskonzepten umgesetzt. So können Webanwendungen inzwischen auch in vielen Fällen Smartphone-Apps ersetzen und ermöglichen damit eine systemübergreifende Lösung in Form einer einzigen Anwendung. Früher waren hier für Desktop, Webseite und je Smartphone-Hersteller (Apple, Google etc.) eine jeweils eigene Lösung erforderlich.

In Punkto Sicherheit ist einiges zu beachten, aber wenn dies bei der Entwicklung berücksichtigt und in einem passenden Konzept geplant und das Hosting entsprechend professionell durchgeführt wird, ist dies vergleichbar mit klassischen IT-Konzepten.

Wir entwickeln seit 2005 professionelle Webanwendungen. Haben Sie fragen? Kommen Sie gern auf uns zu.