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
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
Zielsetzung & Themen
Die vorliegende Arbeit zielt darauf ab, Handlungsempfehlungen für den Einsatz der serverseitigen Technologien PHP und Node.js zu entwickeln, basierend auf einer Analyse typischer Webanforderungsprofile. Die Forschungsfrage untersucht dabei, für welche modernen Webanwendungstypen sich Node.js gegenüber einer klassischen PHP-Infrastruktur als vorteilhafter erweist.
- Vergleich von PHP und Node.js als serverseitige Architekturen
- Klassifizierung typischer Webseiten in spezifische Anwendungstypen
- Anforderungsanalyse für Webserver anhand von Nutzwertanalysen
- Bewertung von Synchronem (PHP) vs. Asynchronem I/O-Modell (Node.js)
- Entwicklung von Handlungsempfehlungen für Webentwickler
Auszug aus dem Buch
3.2 Grundlagen von Node.js
JavaScript ist für sich genommen eine Sprache für die clientseitige Programmierung. Das Framework Node.js wurde daher als Möglichkeit für eine serverseitige Programmiersprache (auf Basis von JavaScript), entworfen. Die Programmiersprache wurde 2009 veröffentlicht. Sie ist im Vergleich zu PHP noch „jung“, jedoch kann Node.js im Gegensatz zu PHP einen eigenen Webserver erstellen. Allerdings benötigt Node.js Administratorrechte bei der Installation auf dem Server. In einer aktuellen Statistik von W3Techs ist Node.js auf Platz 6 der am meisten genutzten Webserver. Als Vergleich sieht man den Apache Server (unterstützt PHP) auf Platz 1. Daran lässt sich erkennen, dass Node.js nicht die Verbreitung wie PHP in den letzten 10 Jahren erreicht hat.
Gleichzeitig nutzen einige populäre Webapplikationen (z. B. Netflix, Google Docs, Trello, Paypal, Uber) Node.js in ihren Systemen. Durch die Möglichkeit, JavaScript mit Node.js sowohl im Browser als auch auf dem Server laufen zu lassen, ergeben sich für die Entwickler neue Möglichkeiten für die Wiederverwendung von Code. Des weiteren ist kein Umdenken zwischen einer Programmiersprache für das Frontend und der Programmiersprache für das Backend erforderlich, da beide in JavaScript geschrieben werden können.
Da JavaScript eine eventgesteuerte Programmiersprache ist, kann Node.js die Vorteile nutzen. Im Gegensatz zu PHP ist Node.js prototypenbasierte Programmiersprache. Daher existieren in Node.js keine Klassen. Jedoch können aus speziellen Funktionen Pseudoklassen gebildet werden, um typische Funktionsweise von Klassen abzubilden. Jede Funktion in Node.js kann als Konstruktor verwendet werden. Durch den speziellen Aufbau der Pseudoklassen unterstützt Node.js das Prinzip der Mehrfachvererbung.
Zusammenfassung der Kapitel
1 Einleitung: Einführung in die Themenstellung, Zielsetzung sowie die methodische Vorgehensweise zur Beantwortung der Forschungsfrage.
2 Grundlagen Webserver: Erläuterung der Webserver-Funktionalität und Klassifizierung typischer Webanwendungstypen zur Vorbereitung der Nutzwertanalyse.
3 Analyse von PHP und Node.js: Gegenüberstellung der technischen Eigenschaften, Architekturen sowie der Vor- und Nachteile von PHP und Node.js.
4 Einschätzung der Programmiersprachen anhand ermittelter Anforderungen: Durchführung von Nutzwertanalysen zur Bewertung beider Sprachen anhand definierter Anforderungskriterien.
5 Fazit und Rückblick auf Forschungsfrage: Zusammenfassung der Ergebnisse und Beantwortung der Forschungsfrage inklusive Handlungsempfehlungen für die Praxis.
Schlüsselwörter
PHP, Node.js, Webserver, Webanwendung, Nutzwertanalyse, Serverseitige Programmierung, Asynchrones I/O, Synchrones I/O, JavaScript, Softwarearchitektur, Anforderungsprofil, Performanz, Webtechnologie, Skalierbarkeit, Programmmiersprachen
Häufig gestellte Fragen
Worum geht es in dieser Seminararbeit grundlegend?
Die Arbeit vergleicht die serverseitigen Technologien PHP und Node.js hinsichtlich ihrer Eignung für verschiedene Arten von Webanwendungen.
Welche zentralen Themenfelder werden abgedeckt?
Die Arbeit behandelt Webserver-Grundlagen, die Analyse von Webanwendungstypen, technische Vergleiche der Programmiersprachen und eine bewertende Nutzwertanalyse.
Was ist das primäre Ziel der Untersuchung?
Das Ziel ist die Erarbeitung von Handlungsempfehlungen, welche Programmiersprache für spezifische Anforderungsprofile von Webanwendungen am besten geeignet ist.
Welche wissenschaftliche Methode kommt zum Einsatz?
Der Autor nutzt eine Literaturanalyse, ein Experteninterview sowie eine Nutzwertanalyse zur methodischen Bewertung der Alternativen.
Was wird im Hauptteil der Arbeit behandelt?
Der Hauptteil gliedert sich in die Definition von Webservern, die Klassifizierung von Webanwendungen und den direkten technischen Vergleich zwischen PHP und Node.js.
Durch welche Schlüsselwörter lässt sich die Arbeit charakterisieren?
Wichtige Begriffe sind PHP, Node.js, Webanwendung, Nutzwertanalyse, asynchrones I/O und Softwarearchitektur.
Wie unterscheidet sich Node.js technisch grundlegend von PHP bei der Anfrageverarbeitung?
PHP verwendet ein synchrones I/O-Modell, bei dem Prozesse blockieren können, während Node.js ein asynchrones I/O-Modell mit einer ereignisgesteuerten Schleife nutzt, was besonders bei hohen Zugriffszahlen performanter ist.
Warum wird PHP in der Arbeit für Unternehmensportale empfohlen?
Die Nutzwertanalyse ergab für Unternehmensportale eine höhere Punktzahl für PHP, was unter anderem auf die etablierte Verbreitung und Sicherheitsmodule zurückzuführen ist.
- Citar trabajo
- Sebastian Engert (Autor), 2019, Vergleich von PHP und Node.js anhand typischer Anforderungsprofile an einen Webserver, Múnich, GRIN Verlag, https://www.grin.com/document/498951