Bachelorarbeit, 2014
41 Seiten, Note: 1,0
1 Einleitung
1.1 Motivation
1.2 Ziele und Hypothese
1.3 Aufbau der Arbeit
2 Grundlagen und Begriffsbestimmungen
2.1 Serverseitige Programmierung
2.1.1 PHP
2.1.2 Node.js
2.1.3 Klassenbasierte, objektorientierte Programmierung
2.1.4 Prototypenbasierte, objektorientierte Programmierung
2.2 Datenbanksysteme
2.3 Hosting
3 PHP und Node.js im Vergleich
3.1 Technische Voraussetzungen
3.2 Synchrone vs. asynchrone Ein- und Ausgabemodelle
3.3 Klassenbasierte vs. prototypenbasierte OOP
3.4 Zusammenfassung des Vergleichs
3.5 Überprüfung der Hypothese
4 Entwicklung einer Entscheidungshilfe
4.1 Ziel
4.2 Herangehensweise
4.3 Der Entscheidungsbaum
5 Zukunftsausblick
5.1 Non-blocking I/O Modelle in PHP
5.2 Golang und weitere Konkurrenten
Die Arbeit analysiert die Unterschiede zwischen PHP und Node.js als serverseitige Technologien, um Entwicklern eine fundierte Entscheidungshilfe für die Technologiewahl bei neuen Webprojekten bereitzustellen.
3.2 Synchrone vs. asynchrone Ein- und Ausgabemodelle
Eines der wichtigsten Themen, worin sich Node und PHP unterscheiden, sind sog. „blocking-I/O“ bzw. „non-blocking-I/O“ Modelle. „I/O“ steht hierbei für „Input/Output“, also für Ein- und Ausgaben. Man spricht auch von „synchron“ (blocking) und „asynchron“ (non-blocking). Die beiden Ansätze unterscheiden sich darin, ob Empfangen und Senden von Daten zeitlich versetzt sein können, oder nicht. Blocking-I/O Modelle verfolgen demnach den Ansatz, dass nach dem Senden von Daten ein Prozess solange blockiert wird, bis vom Empfänger eine Antwort kommt. Non-blocking-I/O Modelle hingegen können bis zur Antwort weitere Aufgaben durchführen. Der Prozess wird also nicht blockiert.
Node.js ist für den asynchronen Ansatz ausgelegt, Dieser ermöglicht es, mehrere Operationen nebeneinander durchzuführen. Callback Funktionen werden erst zu einem späteren Zeitpunkt ausgeführt (bspw. wenn Daten aus einer Datenbank abgefragt wurden). Bis zu diesem Zeitpunkt muss die Ausführung nicht angehalten werden, weshalb in der Zwischenzeit andere Dinge passieren können. Mit dem synchronen Ansatz erfolgen Operationen nacheinander und müssen auf die Fertigstellung der jeweils vorhergehenden warten.
1 Einleitung: Beschreibt die Motivation zur Arbeit, die Zielsetzung sowie die Hypothese zum Vergleich zwischen PHP und Node.js.
2 Grundlagen und Begriffsbestimmungen: Führt in die Konzepte der serverseitigen Programmierung, Datenbanksysteme und des Hostings ein.
3 PHP und Node.js im Vergleich: Analysiert und vergleicht beide Technologien anhand technischer Kriterien, I/O-Modelle und Programmierparadigmen.
4 Entwicklung einer Entscheidungshilfe: Präsentiert die Methodik zur Erstellung und den Aufbau eines Entscheidungsbaums zur Technologiewahl.
5 Zukunftsausblick: Diskutiert zukünftige Trends, insbesondere die Entwicklung von I/O-Modellen in PHP und aufkommende Konkurrenten wie Golang.
PHP, Node.js, Serverseitige Programmierung, Webentwicklung, Asynchrone Programmierung, Non-blocking I/O, Objektorientierte Programmierung, Klassenbasierte OOP, Prototypenbasierte OOP, Entscheidungsbaum, Webhosting, Datenbankanbindung, Event-Loop, Skalierbarkeit, Push-Notifications.
Die Arbeit untersucht und vergleicht die beiden serverseitigen Technologien PHP und Node.js, um deren Stärken und Schwächen für verschiedene Webprojekt-Szenarien aufzuzeigen.
Die Schwerpunkte liegen auf der technischen Architektur, den Unterschieden zwischen synchroner und asynchroner Ein- und Ausgabeverarbeitung sowie den objektorientierten Programmiermodellen der beiden Technologien.
Das Hauptziel ist die Entwicklung eines Entscheidungsbaums, der Webentwicklern hilft, basierend auf konkreten Projektanforderungen zwischen PHP und Node.js zu wählen.
Die Arbeit basiert auf einem detaillierten theoretischen Vergleich der Technologien, der Herleitung von Entscheidungskriterien und der daraus resultierenden Modellierung eines Entscheidungsbaums für die Praxis.
Der Hauptteil befasst sich mit der technischen Gegenüberstellung, der Analyse der I/O-Verarbeitung (Blocking vs. Non-blocking) und dem Vergleich von klassenbasierter (PHP) gegenüber prototypenbasierter (Node.js) Programmierung.
Die zentralen Begriffe sind serverseitige Webentwicklung, Asynchronität, Node.js, PHP, Event-gesteuerte Programmierung und objektorientierte Paradigmen.
Aufgrund des non-blocking I/O-Modells kann Node.js effizient mit sehr vielen gleichzeitigen Verbindungen umgehen, was es ideal für Anwendungen mit hoher Interaktivität und Push-Features macht.
PHP nutzt einen klassenbasierten Ansatz mit restriktiveren Strukturen, während JavaScript (und damit Node.js) auf prototypenbasierter Vererbung basiert, die flexiblere und dynamischere Strukturen ermöglicht.
Da Hosting für PHP aufgrund der größeren Verbreitung oft günstiger ist, wird dies als ein Kriterium im Entscheidungsbaum berücksichtigt, wobei Node.js für spezifische Performance-Anforderungen trotz höherer Kosten bevorzugt werden kann.
Es handelt sich um ein Problem bei der Mehrfachvererbung, das bei prototypenbasierten Modellen auftreten kann und den Grund darstellt, warum PHP zur Vermeidung solcher Fehler auf Mehrfachvererbung verzichtet.
Der GRIN Verlag hat sich seit 1998 auf die Veröffentlichung akademischer eBooks und Bücher spezialisiert. Der GRIN Verlag steht damit als erstes Unternehmen für User Generated Quality Content. Die Verlagsseiten GRIN.com, Hausarbeiten.de und Diplomarbeiten24 bieten für Hochschullehrer, Absolventen und Studenten die ideale Plattform, wissenschaftliche Texte wie Hausarbeiten, Referate, Bachelorarbeiten, Masterarbeiten, Diplomarbeiten, Dissertationen und wissenschaftliche Aufsätze einem breiten Publikum zu präsentieren.
Kostenfreie Veröffentlichung: Hausarbeit, Bachelorarbeit, Diplomarbeit, Dissertation, Masterarbeit, Interpretation oder Referat jetzt veröffentlichen!

