
Eine Webanwendung (oder Web-App ) ist Anwendungssoftware , die mit Webtechnologien erstellt wird und über einen Webbrowser ausgeführt wird . [ 1 ] [ 2 ] Webanwendungen entstanden Ende der 1990er Jahre und ermöglichten es dem Server, im Gegensatz zu statischen Webseiten , dynamisch eine Antwort auf die Anfrage zu erstellen . [ 3 ]
Webanwendungen werden üblicherweise über einen Webserver bereitgestellt . Für die Kommunikation zwischen Webbrowser, Client-Schnittstelle und Serverdaten nutzen Webanwendungen verschiedene Systemebenen. Jedes System hat seine spezifischen Anwendungsbereiche und funktioniert auf unterschiedliche Weise. Entwickler müssen sich jedoch während der Entwicklung zahlreicher Sicherheitsrisiken bewusst sein; geeignete Maßnahmen zum Schutz von Benutzerdaten sind unerlässlich.
Webanwendungen werden häufig mithilfe eines Webanwendungs-Frameworks erstellt . Single-Page-Anwendungen (SPAs) und Progressive Web Apps (PWAs) sind zwei Architekturansätze zur Erstellung von Webanwendungen, die ein ähnliches Benutzererlebnis wie native Apps bieten , einschließlich Funktionen wie reibungslose Navigation, Offline-Unterstützung und schnellere Interaktionen.
Webanwendungen werden häufig vollständig in der Cloud gehostet , benötigen eine ständige Verbindung und können herkömmliche Desktop-Anwendungen für Betriebssysteme wie Microsoft Windows ersetzen . Dies erleichtert den Betrieb von Software-as-a-Service (SaaS) , da Entwickler die Abrechnung anhand der Nutzung der Cloud-Dienste präzise steuern und die Abhängigkeit von einem einzelnen Anbieter durch das Hosting von Daten vermeiden können. Moderne Browser wie Chrome bieten Sandboxing für jeden Browsertab, was die Sicherheit erhöht und den Zugriff auf lokale Ressourcen einschränkt. Da die Anwendung im Browser ausgeführt wird, ist keine Softwareinstallation erforderlich, wodurch der Verwaltungsaufwand für Softwareinstallationen reduziert wird. Dank der Cloud-Dienste müssen Kunden keine Server verwalten, da dies vom Entwickler und dem Cloud-Anbieter übernommen wird. Die Software kann auch auf leistungsschwachen PCs wie Thin Clients genutzt werden . Der Quellcode der Anwendung bleibt durch responsives Webdesign auf allen Betriebssystemen und Geräten der Nutzer unverändert , da er lediglich mit Webbrowsern kompatibel sein muss, die Webstandards einhalten. Dies macht den Code hochgradig portabel und spart Entwicklungszeit. Zahlreiche JavaScript- und CSS-Frameworks erleichtern die Entwicklung.
Geschichte
Das Konzept einer „Webanwendung“ wurde erstmals in der Java-Sprache mit der Servlet-Spezifikation Version 2.2 eingeführt, die 1999 veröffentlicht wurde. Zu diesem Zeitpunkt waren JavaScript und XML bereits entwickelt, das XMLHttpRequest- Objekt war jedoch erst kurz zuvor mit Internet Explorer 5 als ActiveX- Objekt eingeführt worden. Ab Anfang der 2000er-Jahre begannen Anwendungen wie Myspace (2003), Gmail (2004), Digg (2004) und Google Maps (2005), ihre Clientseiten zunehmend interaktiv zu gestalten. Ein Webseiten-Skript kann den Server kontaktieren, um Daten zu speichern oder abzurufen, ohne die gesamte Webseite herunterladen zu müssen. Diese Vorgehensweise wurde 2005 als Ajax bekannt. Schließlich wurde sie durch Web-APIs mit JSON ersetzt , auf die asynchron über JavaScript auf Clientseite zugegriffen wird.
In früheren Computermodellen wie Client-Server wurde die Rechenlast einer Anwendung zwischen dem Code auf dem Server und dem lokal auf den Clients installierten Code aufgeteilt. Jede Anwendung besaß also ein eigenes, vorkompiliertes Clientprogramm als Benutzeroberfläche , das separat auf den Rechnern der Benutzer installiert werden musste . Ein Update des serverseitigen Codes erforderte in der Regel auch ein Update des clientseitigen Codes auf den Arbeitsstationen der Benutzer, was die Supportkosten erhöhte und die Produktivität verringerte. Zudem waren sowohl die Client- als auch die Serverkomponenten einer Anwendung eng an eine bestimmte Computerarchitektur und ein bestimmtes Betriebssystem gebunden , wodurch die Portierung auf andere Systeme – außer bei sehr großen Anwendungen – extrem teuer war.
Später, im Jahr 1995, führte Netscape die clientseitige Skriptsprache JavaScript ein , die es Programmierern ermöglichte, dynamische Elemente zur Benutzeroberfläche hinzuzufügen , die clientseitig ausgeführt wurden. Anstatt Daten an den Server zu senden, um eine vollständige Webseite zu generieren, können die eingebetteten Skripte der heruntergeladenen Seite verschiedene Aufgaben übernehmen, wie beispielsweise die Eingabevalidierung oder das Ein- und Ausblenden von Seitenteilen.
Der Begriff „ Progressive Web Apps “, der 2015 von der Designerin Frances Berriman und dem Google Chrome- Ingenieur Alex Russell geprägt wurde, bezeichnet Anwendungen, die neue Funktionen moderner Browser nutzen. Diese Anwendungen laufen zunächst in einem Browsertab, können später aber vollständig offline ausgeführt werden und lassen sich starten, ohne die App-URL im Browser eingeben zu müssen.
Struktur
Herkömmliche PC-Anwendungen sind typischerweise einschichtig und laufen ausschließlich auf dem Client-Rechner. Webanwendungen hingegen ermöglichen von Natur aus eine mehrschichtige Architektur. Obwohl viele Varianten möglich sind, ist die dreischichtige Architektur am weitesten verbreitet. In ihrer gängigsten Form werden die drei Schichten als Präsentations- , Anwendungs- und Speicherschicht bezeichnet . Die erste Schicht, die Präsentationsschicht, umfasst den Webbrowser selbst. Die zweite Schicht umfasst jede Engine, die dynamische Webtechnologien wie ASP , CGI , ColdFusion , Dart , JSP/Java , Node.js , PHP , Python oder Ruby on Rails verwendet . Die dritte Schicht umfasst eine Datenbank, die Daten speichert und die Struktur der Benutzeroberfläche bestimmt. Im Wesentlichen sendet der Webbrowser bei Verwendung eines dreischichtigen Systems Anfragen an die Engine, die diese durch Abfragen und Aktualisierungen der Datenbank verarbeitet und eine Benutzeroberfläche generiert.
Die 3-Schichten-Lösung stößt bei komplexeren Anwendungen möglicherweise an ihre Grenzen und muss gegebenenfalls durch einen n-Schichten-Ansatz ersetzt werden. Dessen größter Vorteil liegt in der feineren Strukturierung der Geschäftslogik (die sich auf der Anwendungsschicht befindet). [ 4 ] Ein weiterer Vorteil ist die Integrationsschicht, die die Datenschicht trennt und eine benutzerfreundliche Schnittstelle für den Datenzugriff bereitstellt. [ 4 ] Beispielsweise können Kundendaten durch Aufruf der Funktion „list_clients()“ abgerufen werden, anstatt eine SQL- Abfrage direkt auf die Kundentabelle in der Datenbank auszuführen. Dadurch kann die zugrundeliegende Datenbank ausgetauscht werden, ohne dass Änderungen an den anderen Schichten erforderlich sind. [ 4 ]
Manche betrachten Webanwendungen als zweischichtige Architektur. Dabei kann ein „intelligenter“ Client alle Aufgaben ausführen und einen „dummen“ Server abfragen, oder ein „dummer“ Client, der auf einen „intelligenten“ Server angewiesen ist. [ 4 ] Der Client übernimmt die Präsentationsschicht, der Server die Datenbank (Speicherschicht), und die Geschäftslogik (Anwendungsschicht) befindet sich entweder auf der einen oder auf der anderen Schicht. [ 4 ] Obwohl dies die Skalierbarkeit der Anwendungen erhöht und Darstellung und Datenbank trennt, ermöglicht es keine echte Spezialisierung der Schichten, sodass die meisten Anwendungen diesem Modell entwachsen. [ 4 ]
Sicherheit
Sicherheitslücken bei solchen Anwendungen sind ein großes Problem, da sie sowohl Unternehmensinformationen als auch private Kundendaten betreffen können. Der Schutz dieser Daten ist ein wichtiger Bestandteil jeder Webanwendung, und es gibt einige zentrale operative Bereiche, die in den Entwicklungsprozess einbezogen werden müssen. [ 5 ] Dazu gehören Prozesse für Authentifizierung, Autorisierung, Datenverwaltung, Eingabe sowie Protokollierung und Überwachung. Die Integration von Sicherheitsaspekten von Anfang an in die Anwendungen ist langfristig oft effektiver und weniger aufwändig.
Entwicklung
Die Entwicklung von Webanwendungen wird durch den Einsatz von Web-Frameworks vereinfacht . Diese Frameworks ermöglichen eine schnelle Anwendungsentwicklung , indem sie es einem Entwicklungsteam erlauben, sich auf die für seine Ziele spezifischen Teile der Anwendung zu konzentrieren, ohne sich mit gängigen Entwicklungsproblemen wie der Benutzerverwaltung auseinandersetzen zu müssen. [ 6 ]
Darüber hinaus besteht Potenzial für die Entwicklung von Anwendungen auf Internet-Betriebssystemen , obwohl es derzeit nicht viele geeignete Plattformen gibt, die diesem Modell entsprechen.
Siehe auch
- Web-API
- Software as a Service (SaaS)
- Web 2.0
- Webentwicklung
- Web-GIS
- Webdienste
- Webwissenschaften
- Web-Widget
Referenzen
- ^ „Web-App | Definition, Geschichte, Entwicklung, Beispiele, Anwendungen & Fakten | Britannica“ . www.britannica.com . Encyclopædia Britannica . Abgerufen am 4. November 2024 .
- ^ „Was ist eine Web-App? – Webanwendungen erklärt – AWS“ . Amazon Web Services, Inc. Abgerufen am 4. November 2024 .
- ^ „Webanwendungen“ . DocForge . Archiviert vom Original am 19. April 2015. Abgerufen am 9. November 2024 .
- ^ a b c d e f Petersen, Jeremy (4. September 2008). „Vorteile der Verwendung des n-Tier-Ansatzes für Webanwendungen“ . Archiviert vom Original am 1. Dezember 2017. Abgerufen am 24. November 2017 .
- ^ „Top-Tipps für die sichere App-Entwicklung“ . Dell.com. Archiviert vom Original am 22.05.2012 . Abgerufen am 22.06.2012 .
- ^ Multiple (Wiki). „Web Application Framework“ . Docforge . Archiviert vom Original am 20.06.2020 . Abgerufen am 06.03.2010 .
Externe Links
- HTML5-Entwurfsempfehlung : Änderungen an HTML und zugehörigen APIs zur Vereinfachung der Erstellung webbasierter Anwendungen.
- Arbeitsgruppe Webanwendungen beim World Wide Web Consortium (W3C)
- PWAs auf Web.dev von Google Developers .