© saicle/Shutterstock.com
PHP Magazin
Event- und Thread-basierter Ansatz zur asynchronen Verarbeitung von Daten mit PHP

Asynchronous I/O, oder doch Threads?

In den letzten Monaten erobern, angelehnt an Node.js, zunehmend Event-driven non-blocking Lösungen für die ansynchrone Verarbeitung von Daten ihren Platz im PHP-Ökosystem. Neben dem auch als Asynchronous I/O bezeichneten Programmierkonzept haben mittlerweile auch Threads Einzug in PHP gefunden. So entwickelt Joe Watkins seit ca. sechs Monaten an einer PHP-Extension, die Threads in PHP zur Verfügung stellt. Dieser Artikel soll Vor- und Nachteile beider Ansätze sowie denkbare Einsatzmöglichkeiten aufzeigen.

Tim Wagner


Node.js hat sich mittlerweile zu einer Art Trend entwickelt, der nach und nach auch auf die PHP-Community übergreift. So konnte der interessierte Entwickler das Interesse der Community an asynchroner Verarbeitung in PHP auf der International PHP Conference in Berlin am eigenen Leib spüren. Sowohl die Session „Asynchronous I/O in PHP“ von Thomas Weinert als auch die „Einführung in Node.js“ von Sebastian Springer waren vollkommen überlaufen.

Mit Node.js hat die JavaScript-Community endlich eine stabile und leistungsfähige Möglichkeit bekommen, die Sprache auch serverseitig einzusetzen. Für die bisher eher belächelten JavaScript-Entwickler haben sich damit völlig neue Möglichkeiten eröffnet: Plötzlich lassen sich Anwendungen komplett in JavaScript realisieren, die Unterstützung durch Entwickler serverseitiger Sprachen wie PHP ist nicht mehr notwendig. PHP-Entwickler hingegen haben mittlerweile das Problem, dass sie aufgrund der ständig wachsenden Anforderungen und Komplexität von JavaScript, HTML5 und CSS mehr und mehr auf Entwickler, die sich auf diese Bereiche spezialisiert haben, angewiesen sind. Der Spieß hat sich sozusagen umgedreht.

Node.js führt eingefleischten PHP-Entwicklern vor Augen, dass sich ihre JavaScript-Kollegen mittlerweile auf Augenhöhe befinden und die Technologie sowie die damit verbundenen Möglichkeiten PHP z. T. vielleicht sogar überholt haben. So haben sicherlich die wenigsten PHP-Entwickler jemals versucht, einen HTTP-Server auf Basis von PHP zu entwickeln, auch wenn dieser Ansatz zweifellos Vorteile mit sich bringen würde. Node.js zeigt, dass es anscheinend nicht nur Einsatzmöglichkeiten für derartige Lösungsansätze gibt, sondern Entwickler vielmehr danach verlangen, auch derartige Lösungen selbst entwickeln, erweitern und anpassen zu können.

Nach dem Vorbild von Node.js haben sich mittlerweile einige Projekte in der Community etabliert, die dem „großen“ JavaScript-Bruder nacheifern und ähnliche Ansätze auch im PHP-Umfeld etablieren wollen. Neben dem bereits zuvor angesprochenen Carica Io [1] von Thomas Weinert gehören phpDaemon [2] und ReactPHP [3] zu den wohl renommiertesten Lösungen. ReactPHP wird mittlerweile von einigen Projekten sogar im Livebetrieb eingesetzt, was die Themen sinnhaftig und Machbarkeit obsolet erscheinen lässt.

Event- vs. Thread-basierte Verarbeitung

Für die asynchrone Verarbeitung von Daten gibt es aktuell zwei favorisierte Möglichkeiten. Node.js setzt hierbei auf einen Event-driven Ansatz. Dabei werden Daten üb...

PHP Magazin
Event- und Thread-basierter Ansatz zur asynchronen Verarbeitung von Daten mit PHP

Asynchronous I/O, oder doch Threads?

In den letzten Monaten erobern, angelehnt an Node.js, zunehmend Event-driven non-blocking Lösungen für die ansynchrone Verarbeitung von Daten ihren Platz im PHP-Ökosystem. Neben dem auch als Asynchronous I/O bezeichneten Programmierkonzept haben mittlerweile auch Threads Einzug in PHP gefunden. So entwickelt Joe Watkins seit ca. sechs Monaten an einer PHP-Extension, die Threads in PHP zur Verfügung stellt. Dieser Artikel soll Vor- und Nachteile beider Ansätze sowie denkbare Einsatzmöglichkeiten aufzeigen.

Tim Wagner


Node.js hat sich mittlerweile zu einer Art Trend entwickelt, der nach und nach auch auf die PHP-Community übergreift. So konnte der interessierte Entwickler das Interesse der Community an asynchroner Verarbeitung in PHP auf der International PHP Conference in Berlin am eigenen Leib spüren. Sowohl die Session „Asynchronous I/O in PHP“ von Thomas Weinert als auch die „Einführung in Node.js“ von Sebastian Springer waren vollkommen überlaufen.

Mit Node.js hat die JavaScript-Community endlich eine stabile und leistungsfähige Möglichkeit bekommen, die Sprache auch serverseitig einzusetzen. Für die bisher eher belächelten JavaScript-Entwickler haben sich damit völlig neue Möglichkeiten eröffnet: Plötzlich lassen sich Anwendungen komplett in JavaScript realisieren, die Unterstützung durch Entwickler serverseitiger Sprachen wie PHP ist nicht mehr notwendig. PHP-Entwickler hingegen haben mittlerweile das Problem, dass sie aufgrund der ständig wachsenden Anforderungen und Komplexität von JavaScript, HTML5 und CSS mehr und mehr auf Entwickler, die sich auf diese Bereiche spezialisiert haben, angewiesen sind. Der Spieß hat sich sozusagen umgedreht.

Node.js führt eingefleischten PHP-Entwicklern vor Augen, dass sich ihre JavaScript-Kollegen mittlerweile auf Augenhöhe befinden und die Technologie sowie die damit verbundenen Möglichkeiten PHP z. T. vielleicht sogar überholt haben. So haben sicherlich die wenigsten PHP-Entwickler jemals versucht, einen HTTP-Server auf Basis von PHP zu entwickeln, auch wenn dieser Ansatz zweifellos Vorteile mit sich bringen würde. Node.js zeigt, dass es anscheinend nicht nur Einsatzmöglichkeiten für derartige Lösungsansätze gibt, sondern Entwickler vielmehr danach verlangen, auch derartige Lösungen selbst entwickeln, erweitern und anpassen zu können.

Nach dem Vorbild von Node.js haben sich mittlerweile einige Projekte in der Community etabliert, die dem „großen“ JavaScript-Bruder nacheifern und ähnliche Ansätze auch im PHP-Umfeld etablieren wollen. Neben dem bereits zuvor angesprochenen Carica Io [1] von Thomas Weinert gehören phpDaemon [2] und ReactPHP [3] zu den wohl renommiertesten Lösungen. ReactPHP wird mittlerweile von einigen Projekten sogar im Livebetrieb eingesetzt, was die Themen sinnhaftig und Machbarkeit obsolet erscheinen lässt.

Event- vs. Thread-basierte Verarbeitung

Für die asynchrone Verarbeitung von Daten gibt es aktuell zwei favorisierte Möglichkeiten. Node.js setzt hierbei auf einen Event-driven Ansatz. Dabei werden Daten üb...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang