© Excellent backgrounds/Shutterstock.com
Cloud-Anwendung mit JavaScript

Cutting-Edge für die Kaninchenliebe


Kann JavaScript halten, was es verspricht? Hat der aktuelle Hype um die Sprache einen begründeten Hintergrund? In diesem Artikel beleuchten wir mögliche Anwendungsbereiche JavaScript-basierter Technologien, um den Reifegrad der alten Skriptsprache darzustellen. Als Basis für unsere Überlegungen soll ein nicht ganz ernst gemeintes Cloud-Portal für Kaninchenfreunde dienen [1].

Wir planen, eine Kaninchenfanseite mit JavaScript-Technologien zu erstellen. Diese Fanseite soll alle populären Zielumgebungen und Plattformen abdecken. Sie soll auf einem Server in der Cloud Microservices bereitstellen, auf die browserbasierte Webanwendungen, Desktopprogramme sowie Smartphone-Apps zugreifen können.

herczeg_javascript_1.tif_fmt1.jpgAbb. 1: Die zentrale Position der Cloud-Anwendung mit REST-/JSON-API, das die Clients bedient

Die Basis unseres Fanportals bildet die Node.js-Plattform, die aus Kostengründen in der Cloud bereitgestellt werden soll. Es gibt heutzutage eine Reihe von Cloud-Anbietern, die als PaaS (Platform as a Service) kostengünstig vorinstalliert Node.js anbieten. Die bekanntesten Anbieter sind unter anderem Modulus, OpenShift und Heroku. Wir haben uns für das Angebot von Red Hat (OpenShift) entschieden, da dieses auch das Aufsetzen von kostenlosen Webseiten erlaubt und eine Datenbank (MongoDB) out of the box anbietet. Ein weiterer Vorteil: Die Entwicklung und das Testen können auf dem lokalen Entwicklungsrechner mit einer lokalen Node. js-Installation erfolgen, da (fast) keine OpenShift-spezifischen proprietären Einrichtungsschritte erforderlich sind (Listing 1). In 15 Minuten hat man sich registriert und einen URL mit der gewünschten Serverumgebung reserviert [2]. Die Verwaltung und spätere Aktualisierung der geplanten Webseite lässt sich mit gewohnten Mitteln wie Git erledigen.

Listing 1: Zwei Codezeilen sind OpenShift-­spezifisch

module.exports = { 'ipaddress': process.env.OPENSHIFT_NODEJS_IP || 'localhost', 'port' : process.env.OPENSHIFT_NODEJS_PORT || 80, 'database' : 'mongodb://myusername:mypassword@apollo.modulusmongo.net:27017/nihun8eM', 'secret' : 'mysecret' };

Auf dem Server

Nach der Reservierung unserer Webadresse ist die nächste Herausforderung, die eigentliche JavaScript-Anwendung aufzusetzen. Hier können wir aus den Vollen schöpfen. Node.js als Plattform bietet zahlreiche Module, um die Entwicklung für Kaninchenfreunde zu erleichtern. Die meistgenutzten Module sind Express (als Middleware), Morgan (als Logger-Komponente) und Mongoose als Datenbankabstraktionsmechanismus.

Aber was sind eigentlich die Vorteile der Node.js-Umgebung im Vergleich zu traditionellen serverbasierten Lösungen? Wir wollen ja nicht aufgrund eines möglicherweise unbegründeten Hypes unsere Entscheidung über die grundlegende Technologie treffen. Es gibt eine Reihe von Argumenten, die für JavaScript auf der Serverseite sprechen:

  • Die asynchrone Ausführung ist wohl der wichtigste Vorteil. Der überwiegende Teil der API-Aufrufe in Node.js-Anwendungen ist asynchron. Als Konsequenz muss sich der Entwickler nicht mehr um die Verteilung und Synchronisation der Businesslogik in verschiedene Threads kümmern. Die Plattform macht das automatisch.

  • Die Zyklen der Entwicklung, die Schreib-Test-Fix-Arbeitsläufe können entscheidend beschleunigt werden, da die traditionellen Build- und Deploy-Schritte (möglicherweise gefolgt von einem Applikationsserver-Restart) entfallen.

  • Server- und clientseitiger Code kann geteilt werden. Da auch Domainobjekte und Validationslogik in JavaScript vorliegen, können diese auf beiden Seiten unserer Anwendung verwendet werden. Die Server- und Browserseite kann auf die nur einmal entwickelte Logik verlinken.

  • Native Unterstützung für JSON, das faktische Standarddatenaustauschformat im Webumfeld.

  • Die Geschwindigkeit steht nicht der der kompilierten Sprachen nach, dem Browserkrieg sei Dank. Die in Node.js verwendete, von Google entwickelte V8 Engine ist dieselbe, die auch im Chrome-Browser läuft und mit exzellenter Performance besticht.

  • Glaubenskriege über die beste Entwicklungsumgebung gehören der Vergangenheit an. Alle modernen schwergewichtigen IDEs unterstützen JavaScript hervorragend. Aber auch einfachere Editoren wie Notepad++ oder Sublime Text sind zur Entwicklung geeignet.

  • Schluss mit der Dependency Hell. Da Node.js es erlaubt, Abhängigkeiten der Abhängigkeiten in mehreren Versionen gleichzeitig geladen z...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang