Shortcuts - JavaScript auf dem Server - JavaScript auf dem Server


Preis: k.A.

Erhältlich ab:  Oktober 2012

Autoren / Autorinnen: Shortcut Autorenteam

Auf der Client-Seite – zumindest im Browser – ist JavaScript heute die dominierende Sprache. Alternative Ansätze wie Microsofts VBScript oder Googles Dart konnten sich (bisher) nicht durchsetzen. Flash und Java-Applets sind im Browser auf dem absteigenden Ast. Auf der Server-Seite dagegen wurden und werden immer noch viele Anwendungen in Java entwickelt. Diese Aufteilung ist nicht immer sinnvoll: Einerseits kann bezüglich Usability und Performance ein JavaScript/Browser-Client einem guten Java-Client mit Swing- oder RCP-Oberfläche nicht das Wasser reichen. Andererseits gibt es auf der Server-Seite gute Gründe, zumindest in Teilen auch Skriptsprachen wie JavaScript einzusetzen. Jenseits der Java-Welt existiert mit Node.js [NODEJS] sogar ein Framework, das auf der Server-Seite komplett auf JavaScript setzt.

In diesem Shortcut geht es nur um JavaScript als Teil von Java Programmen. Nutzt man ein aktuelles JDK, muss man dafür nicht einmal zusätzliche Jars einbinden: Seit Version 6 wird das JDK serienmäßig mit einem JavaScript-Interpreter ausgeliefert. Die Schnittstelle dazu ist im JSR 223 standardisiert [JSR223]. Möchte man JavaScript weiter ausreizen, kann man statt des standardisierten API auch die JavaScript-Engine Rhino [RHINO] aus dem Mozilla-Projekt einbinden.

Warum aber ausgerechnet JavaScript? Sind neuere Sprachen auf der JVM wie Scala oder Clojure nicht viel cooler? Bringen sie nicht die Konzepte wie funktionale Programmierung, die in Java (noch) fehlen? Reicht es nicht, dass wir uns mit diesem hässlichen Entlein im Browser herumschlagen müssen? Aus dem letzten Punkt ergibt sich ein Argument für JavaScript: Da man in Web-Projekten so gut wie immer auch JavaScript einsetzt, ist das entsprechende Wissen im Team normalerweise schon vorhanden. Warum dann nicht gleich davon profitieren und es auf der Server-Seite gewinnbringend einsetzen?

Die neuen Sprachen sind sicher in einigen Punkten „besser als Java“. Da sie auch auf der JVM laufen, lässt sich im Normalfall auch die gesamte Infrastruktur (Server, Bibliotheken, etc.) nutzen. Ob die Zeit für einen Umstieg reif ist, soll hier jedoch nicht diskutiert werden.

Die in diesem Shortcut vorgebrachten Beispiele zeigen die Integration von Java und JavaScript. Als Skriptsprache bietet es sich in den Bereichen an, in denen es auf mehr Dynamik ankommt. Dort spielen Skripte ihre Stärken aus, da sie ohne Compilerlauf oder kompletten Build direkt loslegen können. Die damit vorhandene Unabhängigkeit vom Release-Zyklus der Software bietet auch weitere Optionen. Für Entwickler, die sich „mal eben“ ein neues Release bauen können, ist das zwar egal. Dagegen ist es für die Produktion eben nicht immer einfach, ein neues Release auszurollen. Insbesondere, wenn es ein Produkt ist, das nicht nur innerhalb einer Firma, sondern von externen Kunden genutzt wird. JavaScript macht es möglich, auch nach der Auslieferung Logik im Produkt zu ergänzen oder zu ändern.

Kapitelübersicht

Die Kapitel dieses shortcuts bauen aufeinander auf, wer springt, dem fehlen unter Umständen Grundlagen. Kapitel 2 startet mit ersten Schritten und zeigt, wie man JavaScript mit Hilfe des JDK oder mit Rhino zum Laufen bringt: entweder über eine Shell oder aus Java-Code heraus. Rhino bietet zusätzlich noch einen Debugger mit Swing-GUI. Am Ende des Kapitels folgt auch noch die Gegenrichtung: Wie greift man aus einem Skript auf Java-Klassen zu.

Kapitel 3 soll die Fantasie anregen: Es werden Ideen präsentiert, für die man eine Skript-Anbindung in einem Java-Programm nutzen kann. Als Beispiel gibt es dazu noch eine Erklärung der Skripting-Schnittstelle in ant, die gut gelungen ist und von der man viel lernen kann.

Details zum Datenaustausch zwischen Skripten und Java-Code folgen in Kapitel 4. Dort wird auch gezeigt, wie man aus Java heraus JavaScript-Funktionen aufruft oder Java-Interfaces in JavaScript implementiert.

In den weiteren Kapiteln geht es um fortgeschrittene Features von Rhino, die der JSR223 nicht mehr bietet. Kapitel 5 beschreibt, wie man eine Sandbox für Skripte baut. Sie ist in den Fällen notwendig, in denen Skripte nicht die Sicherheitsmechanismen einer Anwendung aushebeln dürfen. Kapitel 6 zeigt, wie man in Java ein JavaScript-Objekt implementiert, mit dynamischen Properties und Funktionen. Kapitel 7 kümmert sich um die Debug-Schnittstelle von Rhino und zeigt, wie man darüber Aufrufe von Funktionen tracen kann.

In Kapitel 8 geht es wieder zurück zum JSR 223: Es wird gezeigt, wie man eine Skriptsprache über das API des JSR zugänglich macht. Schwerpunkt ist dabei die Anbindung, nicht die Sprache selbst (die ist höchst primitiv).

Im folgenden Text werden öfters Listings auftauchen. Teilweise sind diese gekürzt, so dass nur die interessanten Teile übrig bleiben. Sämtliche Quellen als Eclipse-Projekt kann man auf www.entwickler-press.de/shortcuts/javascript_auf_dem_server als ZIP-Archiv herunterladen.

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