Externe Skripte

Neumi5694

Top Contributor
Hallo
Ich stehe vor dem Problem, das bestimmte Logiken nicht hardcodiert werden dürfen, extern gespeichert werden können müssen. Dabei sind verschachtelte Ifs, Zahlenauswertungen usw. notwendig. Rückgabewerte sollen entweder primitive Typen oder auch Listen von Strings sein.

An diese Logiken werden sollen Listen von möglichen Parameterwerten übergeben werden mit vorgegebenen Datentypen.


Gerade bastle ich an eigenen Klassen, die die entsprechenden Funktionen bereitstellen, das Ganze funktioniert rudimentär auch schon, kann auch lesbar abgespeichert werden. Nur graut es mir davor, den Mist wieder zu parsen.
Alternativ würde ich die Struktur dann mit dem internen XML Encoder/Decoder speichern und lesen.

Gibt es da brauchbare Alternativen?
 
Warum macht man sowas? Wenn es externe Berechnungen in einer "BlackBox" geben soll, dann würde ich auf RMI oder WebServices zurückgreifen, aber was du hier vorhast hört sich nach einer kleinen selbstgeschriebenen Programmiersprache an.
 
Richtig. Das stellt es dar. Und deshalb versuch ich auch, eine Alternative zu finden.

Das Ganze sollte dann am Besten noch mit einer GUI editierbar sein, weswegen ich mit der Selbstentwicklung überhaupt erst angefangen hab. Aber auf die GUI kann ich notfalls auch verzichten.
 
Sauber wäre RMI oder Webservices zu verwenden!

Wenn es dennoch anders sein muss: Java hat eine JavaScript-Engine. Damit kannst du JS Skripte starten und auswerten. Das ist wahrscheinlich was am nächsten zu deiner Aufgabenstellung rankommt.
 
Du kannst Python, JavaScript in Java einbetten oder Groovy Scripte benutzen. Damit kannst du dir ein JavaScript Script machen, das Funktionen von deinem Java Code Aufruf oder der Java Code kann eine Funktion von deinem JavaScript Script aufrufen kann.

Vielleicht ne Lösung, da du die Scripte vom FileSystem laden kannst.
 
Ok, danke für den Input. Ich muss mich da wohl noch mit beschäftigen.
Prinzipiell bin ich eher dazu geneigt, die Konfigurationen in einer Datei zu hinterlegen, aber die kann ja auch hinter dem Webservice stehen. Mit einem solchen ist es natürlich schwieriger, die Konfiguration während der Laufzeit selbst ändern zu können.
 
Der ganze Sinn und Zweck der Sache ist, dass bestimmte Abläufe pro Client konfigurierbar sind. Das Script muss also am Client zur Verfügung stehen, geändert werden, dann wieder an den Webservice zum Ausführen übergeben werden.
Machbar? Klar. Nur eben etwas komplizierter/schwieriger.
 
Rech einfach umzusetzen, wenn die Kompexität der Sprache nicht so hoch ist wäre die Verwendung einer Objektalgebra. Das ganze ähnelt ein wenig dem Interpreter/Visitorpattern bietet aber ein paar Vorteile was die Wartbarkeit angeht. Als Einstieg wäre der Artikel Extensibility for the Masses zu suchen.
 

Neue Themen


Zurück
Oben