Im Rahmen der vorliegenden Arbeit an der FOM Berlin wird ein Vergleich von den beiden Serverinfrastrukturen "Node.js" und "PHP" durchgeführt. Dies geschieht dabei anhand typischer Anforderungsprofile für einen Webserver.
Die Veröffentlichung des HTTP-Protokolls von Tim Berners-Lee war ein wichtiger Schritt für die technische Nutzbarkeit des Internets. Durch dieses Protokoll ist es seitdem möglich, gezielt Verbindungen zu anderen Servern aufzubauen, um Webseiten und andere Informationen abzurufen. Was am Anfang als reine HTML-Datei, die statische Inhalte abbildet, begann, entwickelte sich im Laufe der folgenden Jahre zu interaktiven und komplexen Webanwendungen. Damit Webseiten auf Interaktionen des Users reagieren können, ist klassischerweise eine Serverinfrastruktur notwendig, die Eingaben des Users verarbeitet und entsprechend Ergebnisse zurückgibt. Eine der klassischsten Infrastrukturen ist dabei der Einsatz von PHP, welches 1995 erschien.
Es entwickelten sich viele Lösungen und Webseiten auf Basis von PHP und parallel viele weitere Architekturen und Sprachen (z. B. Perl, Python, Ruby, ASP.Net) für die Umsetzungen von Webanwendungen. 2009 wurde das Framework "Node.js" zur serverseitigen Verwendung von JavaScript für den Betrieb von Webanwendungen entwickelt. Dadurch ist es möglich, JavaScript sowohl in der client- als auch in der serverseitigen Programmierung einzusetzen. Dabei tritt die Frage auf, ob es Vorteile bringt, "Node.js" statt einer klassischen "PHP"-Infrastruktur zu verwenden. Dies kann dabei nicht generalisiert beantwortet werden, da die Sprachen zu unterschiedlichen Zeiten für unterschiedliche Zwecke gebaut wurden. Die Vor- und Nachteile müssen je nach Anwendungsfall bewertet werden. Diese Bewertung ist auf empirischer Ebene aufwendig, da es ein großer Aufwand ist, die jeweiligen Eigenschaften der Programmiersprachen auf die einzelne Webanwendung abgestimmt zu bewerten.
Inhaltsverzeichnis
Tabellenverzeichnis
II Abbildungsverzeichnis
Abkürzungsverzeichnis
1 Einleitung
1.1 Inhaltliche Einführung
1.2 Zielsetzung
1.3 Forschungsfrage
1.4 Abgrenzung
1.5 Vorgehensweise und Methodik
2 Grundlagen Webserver
2.1 Definition und Funktion eines Webservers
2.2 Analyse typischer Webseiten / Applikationen
2.2.1 Analyse von Webanwendungstypen
2.2.2 Ableitung der relevanten Webanwendungstypen und Anforderungsdefinitionen
3 Analyse von PHP und Node.js
3.1 Grundlagen von PHP
3.2 Grundlagen von Node.js
3.3 Zusammenfassung des Vergleichs
4 Einschätzung der Programmiersprachen anhand ermittelter Anforderungen
4.1 Zusammenfassung der Nutzwertanalysen und Handlungsempfehlungen
5 Fazit und Rückblick auf Forschungsfrage
Anhänge
Anhang 1 - Nutzwertanalyse: Suchdienst
Anhang 2 - Nutzwertanalyse: soziales Netzwerk
Anhang 3 - Nutzwertanalyse: horizontaler Marktplatz
Anhang 4 - Nutzwertanalyse: Anwendungsdienst
Anhang 5 - Nutzwertanalyse: Streaming - Portal
Anhang 6 - Nutzwertanalyse: Informationsdienst
Anhang 7 - Nutzwertanalyse: Bezahldienst
Anhang 8 - Nutzwertanalyse: Unternehmensportal
Literaturverzeichnis
Tabellenverzeichnis
Tabelle 1 - Top 50 Webseiten weltweit; Quelle: (eigene_1 Tabelle; Datenquelle: SimilarWeb LTD, 2019)
Tabelle 2 - Schnittmenge mehrfach genannter Webseiten; Quelle: eigene Tabelle
Tabelle 3 - Einordnung der typischen Webseiten; Quelle: eigene Tabelle
Tabelle 4 - relevante Webanwendungstypen; Quelle: eigene Tabelle
Tabelle 5 - Zusammenfassung der Anforderungen der Webanwendungstypen; Quelle: eigene Tabelle
Tabelle 6 - Ergebnis der Nutzwertanalysen; Quelle: eigene Tabelle
Abbildungsverzeichnis
Abbildung 1 - Kommunikation zwischen Browser und Server; Quelle: (DATACOM Buchverlag GmbH, 2019)
Abbildung 3 - Top 25 Webseiten in den USA; Quelle: (comScore_1, 2018)
Abbildung 2 - Top 20 Webseiten in Deutschland; Quelle: (comScore_2, 2018)
Abbildung 4 - Übersicht Arten von Webseiten; Quelle: eigene Darstellung; Inhaltliche Anlehnungen an: S. 302 - S. 327 (Hans Robert Hansen, 2015), (Webdesigner einer Medienagentur, 2019)
Abbildung 5 - Nutzung von serverseitigen Programmiersprachen; Quelle: (W3Techs_1, 2019)
Abbildung 6 - Hallo Welt in PHP; Quelle: (PHP.net, 2019)
Abbildung 7 - Nutzung von Webservern; Quelle: (W3Techs_2, 2019)
Abbildung 8 - Verhalten von PHP und Node.js; Anlehnung an Quelle: (Code School, 2019)
Abbildung 9 - Ergebnisse bei der Berechnung von Fibonacci (10); Quelle: (Kai Lei, 2014)
Abbildung 10 - Hallo Welt in Node.js; Quelle: (Node.js Foundation_2, 2019)
Abkürzungsverzeichnis
Abbildung in dieser Leseprobe nicht enthalten
1 Einleitung
Im Rahmen der vorliegenden Arbeit an der FOM Berlin wird ein Vergleich von den beiden Serverinf- rastrukturen „Node.js“ und „PHP“ durchgeführt. Dies geschieht dabei anhand typischer Anforderungs- profile für einen Webserver.
1.1 Inhaltliche Einführung
Die Veröffentlichung des HTTP-Protokolls von Tim Berners-Lee war ein wichtiger Schritt für die tech- nische Nutzbarkeit des Internets1. Durch dieses Protokoll ist es seitdem möglich, gezielt Verbindungen zu anderen Servern aufzubauen, um Webseiten und andere Informationen abzurufen. Was am Anfang als reine HTML- Datei, die statische Inhalte abbildet, begann, entwickelte sich im Laufe der folgenden Jahre zu interaktiven und komplexen Webanwendungen.
Damit Webseiten auf Interaktionen des Users reagieren können, ist klassischerweise eine Server- infrastruktur notwendig, die Eingaben des Users verarbeitet und entsprechend Ergebnisse zurückgibt. Eine der klassischsten Infrastrukturen ist dabei der Einsatz von PHP, welches 1995 erschien.
Es entwickelten sich viele Lösungen und Webseiten auf Basis von PHP und parallel viele weitere Architekturen und Sprachen (z. B. Perl, Python, Ruby, ASP.Net) für die Umsetzungen von Web- anwendungen.
2009 wurde das Framework „Node.js“ zur serverseitigen Verwendung von JavaScript für den Betrieb von Webanwendungen entwickelt. Dadurch ist es möglich, JavaScript sowohl in der client- als auch in der serverseitigen Programmierung einzusetzen.2 Dabei tritt die Frage auf, ob es Vorteile bringt, „Node.js“ statt einer klassischen „PHP“-Infrastruktur zu verwenden.
Dies kann dabei nicht generalisiert beantwortet werden, da die Sprachen zu unterschiedlichen Zeiten für unterschiedliche Zwecke gebaut wurden. Die Vor- und Nachteile müssen je nach Anwendungsfall be- wertet werden.
Diese Bewertung ist auf empirischer Ebene aufwendig, da es ein großer Aufwand ist, die jeweiligen Eigenschaften der Programmiersprachen auf die einzelne Webanwendung abgestimmt zu bewerten.
1.2 Zielsetzung
Zur Vereinfachung einer Bewertung von „Node.js“ und „PHP“ sollen Handlungsempfehlungen entwickelt werden. Dabei erfolgt die Bewertung anhand von Anforderungsprofilen typischer Webseiten. Je Anforderungsprofil soll dafür eine Handlungsempfehlung entwickelt werden, die als Ausgangspunkt für die Betrachtung der eigenen Webanwendung dienen kann.
1.3 Forschungsfrage
Gibt es typische moderne Webanwendungen, bei denen sich „Node.js“ besser eignet als eine klassische „PHP-Infrastruktur“?
1.4 Abgrenzung
Die vorliegende Arbeit soll keine Einführung in die vorgestellten Programmiersprachen sein. Sie hat nicht den Anspruch, alle möglichen Sprachen für eine Webapplikation zu berücksichtigen. Des weiteren werden in der Arbeit keine entwicklerspezifischen Perspektiven (z. B. benötigte Fähigkeiten, Einarbei- tungsaufwand, etc.) berücksichtigt. Bei der Analyse der Webanwendungstypen und der anschließenden Bewertung der Programmiersprachen „Node.js“ und „PHP“, werden nicht alle denkbaren Webanwen- dungstypen betrachtet.
1.5 Vorgehensweise und Methodik
Zuerst werden die grundlegenden Eigenschaften und Fähigkeiten eines Webservers betrachtet. Anhand einer Literaturanalyse und eines ausführlichen Experteninterviews werden Profile für typische Websei- ten/ -applikationen erstellt. Diese werden dabei durch ihre typischen Eigenschaften und Anforderungen definiert. Die erstellten Anforderungsprofile bilden die Grundlage für die anschließende Untersuchung der Programmiersprachen.
Dabei bilden sie den Ausgangspunkt für eine anschließende Analyse. Diese bildet die Basis für eine Bewertung der Programmiersprachen anhand von Nutzwertanalysen. Die Anforderungen des Webappli- kationstyps werden als Kriterien und die Programmiersprachen als zu bewertende Alternativen darge- stellt. Auf Basis der Ergebnisse der Nutzwertanalysen wird eine Handlungsempfehlung für das jeweilige Anforderungsprofil erstellt.
2 Grundlagen Webserver
2.1 Definition und Funktion eines Webservers
Ein Webserver dient zur Verbreitung von Webinhalten. Dabei ist dieser keine physische Komponente, sondern eine Software, die Programmcode ausführen kann. Webinhalte stellt er dabei nach dem Client- Server-Modell den Internet- bzw. Intranetnutzern zur Verfügung. Dabei übertragen die Server Dateien an die Browser, die diese wiederum interpretieren und als Webseite darstellen.
Der Ablauf eines Webseite-Aufrufs beginnt dabei mit einer Eingabe einer Internetadresse in einem Browser. Anschließend wird eine Verbindung zum DNS-Server aufgebaut, der die entsprechende IP- Adresse dazu auflöst. Sie wird an den Client zurückgesandt, welche dann genutzt wird um eine TCP- Verbindung zum Webserver aufzubauen. Darauf fordert der Browser eine Datei vom Webserver an. Diese Datei kann dabei statisch vom Webserver abgerufen oder dynamisch erzeugt werden. Bei einer dynamisch erzeugten Webseite hat der Server vorher Programmcode ausgeführt. Dabei könnte bei- spielsweise PHP oder Node.js ausgeführt sein und eventuell eine Datenbank für das Laden von Inhalten benutzt worden sein. Die dadurch erstellte oder statische Seite wird an den Client gesendet, eventuell müssen weitere Anfragen an den Server gestellt werden um zusätzliche Inhalte (z. B. Bilder, CSS- Dateien) zu laden.3
Ein Webserver kann die Anfragen mehrerer Browser verarbeiten. Die Anzahl der möglichen gleichzei- tigen Anfragen hängt dabei von der Hardware und der eingesetzten Programmiersprache ab.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 1 - Kommunikation zwischen Browser und Server;
Quelle: (DATACOM Buchverlag GmbH, 2019)
Neben der Primäraufgabe, der Übertragung von Webinhalten, bieten viele HTTP-Server noch weitere Funktionen4:
- Verbindungssicherheit: die Verschlüsselung der Kommunikation zwischen dem Webserver und dem Webclient durch den Einsatz von HTTPS
- Zugriffsbeschränkung: die Bereitstellung einer Nutzerauthentifizierung für geschützte Bereiche einer Webseite
- Weiterleitung / Fehler: die Weiterleitung eines Dokumentenaufrufes auf andere Inhalte (z. B. bei einer Fehlerseite)
- Caching: den Einsatz von Caching-Methoden um dynamisch erzeugte Dokumente zwischen zu speichern und die Last auf den Webserver zu minimieren
- Cookie-Verwaltung: das Senden und Verarbeiten von Cookies
- Protokollierung: Ereignisse auf dem Webserver für spätere Analysen protokollieren
Der Webserver ist daher die zentrale Komponente für die Darstellung von Webinhalten und die Aus- führung von Webapplikationen.
2.2 Analyse typischer Webseiten / Applikationen
Da die Bewertung der Programmiersprachen „Node.js“ und „PHP“ auf die Webanwendung spezifisch vorgenommen werden muss, ist eine Einteilung der Webseiten in Webanwendungstypen erforderlich. Der Begriff „typische Webseiten“ wird in der vorliegenden Arbeit synonym zu den beliebtesten Web- seiten genutzt. Als Ausgangspunkt der Analyse werden mehrere Statistiken der meistbesuchten Web- seiten verwendet, da diese die populärsten Webseiten abbilden und die Nutzung von Webanwendungen für die Mehrheit der Bevölkerung widerspiegeln. Die nachfolgenden Statistiken zeigen die meistbesuch- ten Internetseiten der USA und Deutschlands auf.
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 3 - Top 20 Webseiten in Deutschland;
Quelle: (comScore_2, 2018)
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 2 - Top 25 Webseiten in den USA;
Quelle: (comScore_1, 2018)
Für die Betrachtung der global am häufigsten besuchten Webseiten, ist die nachfolgende Quelle genutzt worden. Da diese keinen kostenlosen Zugang bietet, jedoch die 50 beliebtesten Webseiten als Vorschau anbietet, wurden die Daten extrahiert und in einer eigenen Tabelle dargestellt.
Abbildung in dieser Leseprobe nicht enthalten
Tabelle 1 - Top 50 Webseiten weltweit;
Quelle: (eigene_1 Tabelle; Datenquelle: SimilarWeb LTD, 2019)
Die drei vorangestellten Auswertungen sind ausgewählt worden, um eine Analyse der typischen Web- seiten möglichst unabhängig von der Messmethode und dem Betrachtungswinkel zu ermöglichen. Um die gemeinsam genannten Webseiten zu ermitteln, wurde aus den Statistiken die Schnittmenge der mehrfach genannten Seiten gebildet.
Abbildung in dieser Leseprobe nicht enthalten
Tabelle 2 - Schnittmenge mehrfach genannter Webseiten
Quelle: eigene Tabelle
Die hierbei ermittelte Schnittmenge bildet in der vorliegenden Arbeit die „typischen Webseiten“ ab, die bei der späteren Ermittlung der relevanten Webanwendungstypen die Grundlage bilden.
2.2.1 Analyse von Webanwendungstypen
Auf Basis einer Literaturrecherche und einem Experteninterview mit einem Webdesigner aus einer Medienagentur5 wurde eine Übersicht der im Internet vorwiegenden Webanwendungstypen erstellt. Diese Übersicht dient als Grundlage, um in Verbindung mit der vorhergehenden Analyse der typischen Webseiten die relevanten Webanwendungstypen abzuleiten
Abbildung in dieser Leseprobe nicht enthalten
Abbildung 4 - Übersicht Arten von Webseiten; Quelle: eigene Darstellung; Inhaltliche Anlehnungen an: S. 302 - S. 327 (Hans Robert Hansen, 2015), (Webdesigner einer Medienagentur, 2019)
2.2.2 Ableitung der relevanten Webanwendungstypen und Anforderungsdefinitionen
Durch die vorhergehende Analyse der Webseitenarten und der Schnittmenge der Analyse der typischen Webseiten, konnte jetzt eine Einordnung anhand der Arten vorgenommen werden. Diese Einordnung wurde im Rahmen des Experteninterview durch den Webdesigner der Medienagentur vorgenommen.
Da die Webseiten der Schnittmengenanalyse teilweise verschiedene Funktionen anbieten, wurden bei der Einordnung die Hauptfunktionen betrachtet und manchen Webseiten wurden mehrere Typen zuge- ordnet. Die mehrfache Zuordnung stellt sicher, dass jede Perspektive der Webseite betrachtet wird und keine wesentlicher Webanwendungstyp in der späteren Nennung der eineindeutigen vernachlässigt wird.
Die folgende Übersicht zeigt die Einordnung der typischen Webseiten durch den Webdesigner der Medienagentur.6
Abbildung in dieser Leseprobe nicht enthalten
Tabelle 3 - Einordnung der typischen Webseiten; Quelle: eigene Tabelle
So wurden die „Google Seiten“ sowohl als Suchdienst, Webapplikation und Soziales Netzwerk einge- ordnet. Google gilt weithin als größter Suchdienst im Internet. Ein Suchdienst ist ein Dienst im Internet, der Benutzer beim Auffinden von gesuchten Webseiten bzw. Webanwendungen unterstützt.7 Oath wurde ebenfalls als Suchdienst eingeteilt, da die bekanntesten Marken des Unternehmens AOL und Yahoo sind.
Da sie für viele Nutzer einen Einstiegspunkt ins Internet darstellen, muss ein Webserver in der Lage sein, viele Suchanfragen gleichzeitig zu bearbeiten. Dabei ist eine schnelle Durchsuchung des Verzeich- nisses und eine schnelle Datenbankverbindung notwendig, damit die Nutzer das Ergebnis ihrer Such- anfrage möglichst in Echtzeit erhalten. Für die Analyse von Webinhalten und Medien, benötigen die Suchmaschinen teilweise komplexe Funktionen8.
Die Aufgaben eines sozialen Netzwerkes erfüllen der Google-Dienst „Google Plus“ sowie „Facebook“ und „Twitter“. Ein soziales Netzwerk ist dabei eine virtuelle Gemeinschaft, die Beziehungen zwischen Personen und Gruppen abbildet. Dabei unterstützt es die Interaktion der Beteiligten.9
[...]
1 Vgl. (Connolly, 2019)
2 Vgl. (Hlambert63, 2019)
3 Vgl. (DATACOM Buchverlag GmbH, 2019); Vgl. (Roland Bauch, 2004)
4 Vgl. (1&1 IONOS SE, 2019)
5 eigene Quelle, Mitarbeiter möchte aus Gründen des Datenschutzes nicht näher genannt werden.
6 während des Experteninterviews (Webdesigner einer Medienagentur, 2019)
7 Vgl. S. 306 (Hans Robert Hansen, 2015)
8 komplexe Funktionen werden in der vorliegenden Arbeit vorwiegend mit Notwendigkeit von Mehrfachverer- bungen assoziiert; Anforderungsbeschreibung im Interview (Webdesigner einer Medienagentur, 2019)
9 Vgl. S. 313 (Hans Robert Hansen, 2015)
- Citation du texte
- Sebastian Engert (Auteur), 2019, Vergleich von PHP und Node.js anhand typischer Anforderungsprofile an einen Webserver, Munich, GRIN Verlag, https://www.grin.com/document/498951
-
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X. -
Téléchargez vos propres textes! Gagnez de l'argent et un iPhone X.