Seite wählen

NETWAYS Blog

Weekly Snap: NSClient++, Galaxy S3, Connect for NodeJS & B2Run

23 – 27 July took on two blog series – NSClient++ and Galaxy S3, considered Connect for NodeJS, looked back at a successful first B2Run and forward to the OSMC.
Eva counted 86 days down to the OSMC 2012 with Jörge Linge’s presentation on PNP4Nagios, while Marius looked at Connect, a framework for NodeJS that comes bundled with middleware plugins for all possible purposes.
Thilo then kicked off his blog series on Samsung Galaxy S3 as a mobile office and Phillip continued with Part 8 of his NSClient++ series, on using external and perl scripts.
We ended a great week by celebrating Sysadmin Day with a thank you cake and Vanessa’s reflections on our first B2Run.

Kleber für middleware

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.