Warum nicht gleich die gesamte Anwendung in einer Scriptsprache implementieren? Bedenken wir, dass die Scriptsprachen zwar alle eine unterschiedliche Performance bieten, aber in der Regel langsamer sind als Java-Code. Dieser Unterschied ergibt sich aus dem zusätzlichen Rechenaufwand für Kompilierung beziehungsweise Interpretation der Scripts sowie die zugrunde liegende Implementierung der Scriptsprache.
Man sollte sich also gut überlegen, wann man auf Scripting zurückgreift. Dieses Beispiel geht davon aus, dass man bestehenden Java-Code in ein Script verpackt, das sich um die Ein- und Ausgabe kümmert. Man könnte die Entwicklung auch vollständig in einer Scriptsprache vornehmen und später leistungshungrigen Code in Java-Code auslagern.
Der Code erwartet als Kommandozeilenparameter die Namen zweier Scripts. Dem ersten Script wird ein Targets-Objekt zum Füllen mit den Daten übergeben, dem zweiten Script ein Results-Objekt für die Bearbeitung sowie der Zugriff auf das ursprüngliche Targets-Objekt. Der Aufruf von der Kommandozeile sieht wie folgt aus:
java -jar MixedScripts.jar acquire.py output.gy
Acquire.py ist nur ein einfaches Jython-Script, welches ein Target hinzufügt; output.gy ist ein Groovy-Script, welches zu Testzwecken die Ergebnisse einfach unverändert zurückgibt. Das mag reichlich aufwendig klingen, nur um eine Variable zu setzen und eine HashMap auszudrucken, aber wenn man die Datenerfassung ändern will, muss man nur das Script ändern: Acquire1.py ist zum Beispiel ein entsprechendes Script, welches eine Datei liest.
Diese Beispielscripts sind zwar einfach, aber die tatsächliche Implementierung, auf der das MixedScripts-Beispiel basiert, erhielt die Eingabedaten als Ergebnis eines XML-RPC-Aufrufs und verschickte die Ausgabe per E-Mail als XML-formatierten Dateianhang. Scripting ist eine nützliche Technik, aber kein Allheilmittel. Wenn man es allerdings überlegt einsetzt, kann es zu mehr Flexibilität führen und das Bean Scripting Framework befreit einen davon, selber Code zur Anbindung aller möglichen Scriptsprachen schreiben zu müssen.
Den Beispielcode zu diesem Artikel gibt es hier zum Download: mixedscripts.zip
Die Anfälligkeit erlaubt das Einschleusen von Schadsoftware. Lazarus verbreitet über ein gefälschtes Browser-Game eine Spyware,…
Es besteht unter anderem ein Kompatibilitätsproblem mit Sound-Treibern von Intel. Gegebenenfalls können Software- oder Firmware-Updates…
Die Digitalisierung hat nahezu alle Bereiche des täglichen Lebens revolutioniert, und die Finanzwelt bildet dabei…
Der neue mobile Chipsatz verspricht Zuwächse bei der Performance und der Grafikleistung. Der Snapdragon 8…
Mit Google AdWords können auch kleine Unternehmen leicht ihre Sichtbarkeit im Internet erhöhen und damit…
Sie sollen Unternehmen in Bereichen wie Vertrieb, Kundenservice und Finanzwesen unterstützt. Außerdem lassen sich künftig…