Grin logo
de en es fr
Shop
GRIN Website
Texte veröffentlichen, Rundum-Service genießen
Zur Shop-Startseite › Informatik - Programmierung

David gegen Goliath - Node.js vs. PHP. Serverseitige Programmierung im Vergleich

Titel: David gegen Goliath - Node.js vs. PHP. Serverseitige Programmierung im Vergleich

Bachelorarbeit , 2014 , 41 Seiten , Note: 1,0

Autor:in: Matthias Neuwersch (Autor:in)

Informatik - Programmierung
Leseprobe & Details   Blick ins Buch
Zusammenfassung Leseprobe Details

Diese Arbeit vergleicht PHP mit Node.js auf technischer Ebene und bietet einen Entscheidungsbaum zur richtigen Technologiewahl für ihr Webprojekt. Es wird erklärt, unter welchen Umständen Node.js Performancevorteile bringt, und wie diese im Detail entstehen. Non-blocking I/O vs. blocking I/O werden auf verständliche Weise erklärt und beispielhaft dargestellt. Es wird aber auch auf einige andere Unterschiede wie prototypenbasierter vs. klassenbasierter Objektorientierung, Unterschiede wie bspw. immutable classes von PHP vs. mutable prototypes von JavaScript oder Mehrfachvererbung vs. Einfachvererbung eingegangen. Auch enthalten ist ein Exkurs zum Hosting (Unterschiede, Marktangebot, etc.).

In der Arbeit sind Codesnippets enthalten, welche die Thematik beispielhaft näher bringen.

Node.js ist ein sehr junger Konkurrent am Markt der serverseitigen Programmierung, konnte aber bereits viel Aufmerksamkeit erwecken. In dieser Arbeit erfahren Sie den Grund dafür.

Leseprobe


Inhaltsverzeichnis

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

Zielsetzung & Themen

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.

  • Vergleich von PHP und Node.js hinsichtlich ihrer Architektur.
  • Untersuchung der Leistungsfähigkeit bei synchroner vs. asynchroner I/O-Verarbeitung.
  • Gegenüberstellung von klassenbasierter und prototypenbasierter objektorientierter Programmierung.
  • Entwicklung eines Entscheidungsbaums zur optimalen Technologiewahl basierend auf Projektanforderungen.
  • Evaluierung der Zukunftsaussichten serverseitiger Webtechnologien.

Auszug aus dem Buch

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.

Zusammenfassung der Kapitel

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.

Schlüsselwörter

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.

Häufig gestellte Fragen

Was ist das grundlegende Thema der Bachelorarbeit?

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.

Welche zentralen Themenfelder werden bearbeitet?

Die Schwerpunkte liegen auf der technischen Architektur, den Unterschieden zwischen synchroner und asynchroner Ein- und Ausgabeverarbeitung sowie den objektorientierten Programmiermodellen der beiden Technologien.

Was ist das primäre Ziel oder die Forschungsfrage?

Das Hauptziel ist die Entwicklung eines Entscheidungsbaums, der Webentwicklern hilft, basierend auf konkreten Projektanforderungen zwischen PHP und Node.js zu wählen.

Welche wissenschaftliche Methode kommt zum Einsatz?

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.

Welche Inhalte dominieren den Hauptteil?

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.

Durch welche Schlüsselwörter lässt sich die Arbeit charakterisieren?

Die zentralen Begriffe sind serverseitige Webentwicklung, Asynchronität, Node.js, PHP, Event-gesteuerte Programmierung und objektorientierte Paradigmen.

Warum wird Node.js besonders für interaktive Echtzeit-Anwendungen hervorgehoben?

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.

Was unterscheidet das objektorientierte Modell von PHP von dem von Node.js?

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.

Welche Rolle spielt der Kostenfaktor bei der Technologieentscheidung?

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.

Was ist das "Diamond Problem" im Kontext dieser Arbeit?

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.

Ende der Leseprobe aus 41 Seiten  - nach oben

Details

Titel
David gegen Goliath - Node.js vs. PHP. Serverseitige Programmierung im Vergleich
Hochschule
Fachhochschule Oberösterreich Standort Hagenberg
Note
1,0
Autor
Matthias Neuwersch (Autor:in)
Erscheinungsjahr
2014
Seiten
41
Katalognummer
V276829
ISBN (eBook)
9783656701767
ISBN (Buch)
9783656702658
Sprache
Deutsch
Schlagworte
node.js node php serverseitige programmierung web vs prototypenbasiert non-blocking I/O javascript serverseitig hosting
Produktsicherheit
GRIN Publishing GmbH
Arbeit zitieren
Matthias Neuwersch (Autor:in), 2014, David gegen Goliath - Node.js vs. PHP. Serverseitige Programmierung im Vergleich, München, GRIN Verlag, https://www.grin.com/document/276829
Blick ins Buch
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
  • Wenn Sie diese Meldung sehen, konnt das Bild nicht geladen und dargestellt werden.
Leseprobe aus  41  Seiten
Grin logo
  • Grin.com
  • Versand
  • Kontakt
  • Datenschutz
  • AGB
  • Impressum