Seite wählen

Kleber für middleware

von | Jul 26, 2012 | Development

Viele Webanwendungen werden heute fast ausschließlich in Javascript geschrieben. Frameworks existieren wie Sand am Meer und bieten mannigfaltige Möglichkeiten. Bei den richtig großen muss man gar kein HTML mehr anfassen, sie nehmen einem alles an Arbeit ab – und das ist gut so. Was aber passiert denn mit der Middleware? Also der Teil der Applikation wo die Datenbank befragt wird und Sessions gesteuert werden?
Normalerweise verwendet man hier eine andere Sprache, z.B. PHP, Python oder Perl. Doch hier sind Probleme und Schwierigkeiten bereits vorprogrammiert. Die verwendeten Frameworks sind oft zu groß und die meiste Zeit geht dafür verloren, Datenstrukturen von Links nach Rechts zu konvertieren. Vom Kontextwechsel ganz zu schweigen: Variablen mit oder ohne Dollarzeichen, Strichpunkte Ja/Nein, unterschiedliche Objektorientierung usw – gräuslich …
Seit einiger Zeit begibt sich Javascript auf der Konsole wie Nodejs/V8 oder Rhino in die stabilen Zweige der Distributionen und es schießen immer mehr Frameworks aus dem Boden welche die großen Klassiker im Webumfeld ersetzen können (nicht müssen ^^). Warum also nicht mal eine Sprache für alle Teile der Applikation zu verwenden?
Einer dieser Leichtfüßer für Nodejs ist Connect von Senchalabs welches unter der MIT Lizenz veröffentlicht wurde. Ein kleiner Exkurs:

var connect = require('connect');
var http = require('http');
var app = connect();
app.use(connect.logger());
app.use(connect.cookieParser());
app.use("/data", function(req, res) {
    res.setHeader("Content-Type", "application/json");
    res.end(JSON.stringify({
        success: true,
        count: 2,
        data: [{
            firstname: "Eduart",
            surname: "Zimmermann"
        }, {
            firstname: "Heidrun",
            surname: "Bumbel"
        }]
    }));
});
http.createServer(app).listen(3000);

Das Plugin Prinzip von Connect ist sehr interessant und vereinfacht das Handling von gleichartigen Anfragen. Die Plugins (Middleware) sind in Reihe geschaltet und können so bereits viel Vorarbeit leisten bis die eigentlich konkrete Implementierung. So können z.B. JSON Requests, Cookies oder Authentifizierung bereits vorher abgearbeitet werden und stehen dann schon bereit.
Das alles setzt natürlich ein einigermaßen aktuelles System (was der Entwickler grundsätzlich besitzt) voraus auf dem Nodejs und sein Paket Manager npm als Distro Pakete verfügbar sind (z.B. Ubuntu). Aber selbst kompilieren von Hand ist ohne großen Aufwand möglich. Am besten gleich probieren und freuen …

Marius Hein
Marius Hein
Head of IT Service Management

Marius Hein ist schon seit 2003 bei NETWAYS. Er hat hier seine Ausbildung zum Fachinformatiker absolviert und viele Jahre in der Softwareentwicklung gearbeitet. Mittlerweile ist er Herr über die interne IT und als Leiter von ITSM zuständig für die technische Schnittmenge der Abteilungen der NETWAYS Gruppe. Wenn er nicht gerade IPv6 IPSec Tunnel bohrt, sitzt er daheim am Schlagzeug und treibt seine Nachbarn in den Wahnsinn.

0 Kommentare

Einen Kommentar abschicken

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Mehr Beiträge zum Thema Development

Mein PHP-Trainingsprojekt

PHP Schulung Vor kurzem haben wir begonnen, eine neue Programmiersprache zu lernen – PHP. In der ersten Woche haben wir mit den Grundlagen wie Variablen, Arrays, Schleifen begonnen und uns schrittweise zu komplizierterer Syntax wie Funktionen, Objekten und Klassen...

check_prometheus ist jetzt öffentlich verfügbar!

Monitoring ist komplex, das wissen wir hier bei NETWAYS leider zu gut. Deswegen laufen in der Infrastruktur auch mal gerne mehrere Tools für die Überwachung. Zwei gern gesehene Kandidaten sind dabei Icinga und Prometheus. Icinga und Prometheus erfüllen...