1. Neue Funktionen
1.1. Unterstützung für FVA-Workbench-Versionen ab 9.0
Bei Verwendung des FVA Simulation Hub 1.0.0 mit FVA-Workbench-Versionen ab 9.0.0 kommt es bei der Ausführung von Tasks zu Problemen. Ursache dafür sind interne Umstellungen von Verzeichnissen für Caching, Logging und Konfiguration ab der FVA-Workbench 9.0.0.
Mit dem FVA Simulation Hub 1.1.0 werden diese Umstellungen berücksichtigt.
1.2. Informationen zur ausführenden FVA-Workbench
Die Endpunkte für die Ausführung von Tasks wurden um Informationen über Version und Revision der ausführenden FVA-Workbench erweitert.
Die folgenden Endpunkte wurden für die Rückgabe der zusätzlichen Informationen hinzugefügt:
-
POST /api/1.1/workbench/task/simulate-work/create
-
GET /api/1.1/workbench/task/simulate-work/{id}/result
-
POST /api/1.1/workbench/task/execute-batch-job/create
-
GET /api/1.1/workbench/task/execute-batch-job/{id}/result
-
GET /api/1.1/workbench/node/instance/list
-
GET /api/1.1/workbench/node/instance/{id}
-
GET /api/1.1/workbench/node/server/list
-
GET /api/1.1/workbench/node/server/{id}
Mit Hinzufügen der neuen Endpunkte, wurden die folgenden Endpunkte zu den Legacy-Endpunkten verschoben:
-
POST /api/1.0/workbench/task/simulate-work/create
-
GET /api/1.0/workbench/task/simulate-work/{id}/result
-
POST /api/1.0/workbench/task/execute-batch-job/create
-
GET /api/1.0/workbench/task/execute-batch-job/{id}/result
-
GET /api/1.0/workbench/node/instance/list
-
GET /api/1.0/workbench/node/instance/{id}
-
GET /api/1.0/workbench/node/server/list
-
GET /api/1.0/workbench/node/server/{id}
Legacy-Endpunkte bleiben zunächst für die Abwärtskompatibilität verfügbar. Mit Version 2.0 des FVA Simulation Hub werden diese aber entfernt. |
Beispiel für die Antwort des Endpunkts /api/1.1/workbench/task/execute-batch-job/{id}/result
:
{ "status": "FINISHED", "id": "b431a18d-8e92-46d9-a9a5-b456dbc898e3", "executingWorkbench": (1) { "version": "7.1.0", (2) "revision": "12345" (3) }, "batchExecutionStatus": "OK", "outputFiles": [ { "directory": "path/to/file/in/output/directory", "filename": "error.log", "content": "UEsDBAoAAAAAAKlbVlIAAAAAAAAAAAAAA..." } ] }
1 | Mit executingWorkbench werden die Informationen zur ausführenden FVA-Workbench angegeben. |
2 | version gibt die Version der FVA-Workbench an. |
3 | revision gibt die Revision der FVA-Workbench an. Der Wert kann nur mit der FVA-Workbench ab Version 9.0.0 ausgelesen werden. |
1.3. JobTimeout
für Batch-Jobs
Mit der FVA-Workbench Version 9.0.0 wurde im Batchbetrieb der Parameter JobTimeout
hinzugefügt. Für jeden Batch-Job kann damit ein Zeitraum angegeben werden, nachdem die FVA-Workbench-Instanz terminiert wird, sollte der Job bis dahin nicht durchgelaufen sein. Die Angabe des Werte erfolgt in Sekunden.
Der Parameter JobTimeout
kann jetzt auch beim Endpunkt zur Bearbeitung von Batch-Jobs mit angegeben werden und wird für die Ausführung an die Workbench übergeben.
Sollte die FVA-Workbench-Instanz den Batch-Job nicht innerhalb des übergebenen Parameters bearbeitet haben, wird sie terminiert und steht nicht für weitere Jobs zur Verfügung. Mit dem Konfigurationsparameter restartPolicy können Sie die FVA-Workbench-Instanzen so konfigurieren, dass sie nach Terminierung automatisch neugestartet werden.
|
Die folgenden Endpunkte wurden für die Rückgabe der zusätzlichen Informationen hinzugefügt:
-
POST /api/1.1/workbench/task/execute-batch-job/create
Mit Hinzufügen der neuen Endpunkte, wurden die folgenden Endpunkte zu den Legacy-Endpunkten verschoben:
-
POST /api/1.0/workbench/task/execute-batch-job/create
Legacy-Endpunkte bleiben zunächst für die Abwärtskompatibilität verfügbar. Mit Version 2.0 des FVA Simulation Hub werden diese aber entfernt. |
Beispiel für die Anfrage des Endpunkts /api/1.1/workbench/task/execute-batch-job/create
:
{ "inputModel": { "type": "WBPZ", "content": "UEsDBAoAAAAAAMNwGFUAAAAAAAAAA..." }, "inputScripts": [ { "content": "cnVuQ2FsY01ldGhvZCgnMDAxX1NZU1RFTV9DQUxDVUxBVElPTicsIDEpOw==" } ], "jobTimeout": 120 (1) }
1 | Mit jobTimeout kann der Wert übergeben werden. |
1.4. Initial-Status für FVA-Workbench-Instanzen konfigurieren
Bisher wurde beim Start des FVA Simulation Hub immer versucht, alle konfigurierten FVA-Workbench-Instanzen zu starten.
Dieses Verhalten kann jetzt mit Hilfe des Konfigurations-Parameters app.workbench.instances[0].initialStatus
gesteuert werden. Der Parameter legt den gewünschten Ausgangsstatus für eine FVA-Workbench-Instanz fest.
Das folgende Beispiel zeigt einen Auszug aus der Konfigurationsdatei application.yml
:
[...] app: workbench: instances: - workbenchDirectory: C:\\FVA-Simulation-Hub\\worker\\FVA-Workbench-9.0.0 initialStatus: down (1)
1 | Mit inititalStatus: down wird festgelegt, dass die FVA-Workbench-Instanz nicht gestartet werden soll. |
1.5. FVA-Workbench-Instanz kann mehrmals parallel gestartet werden
Ab Version 9.0.0 wurde die FVA-Workbench dahingehend überarbeitet, dass sie mehrmals parallel aus einem Installationsverzeichnis ausgeführt werden kann.
Diese Funktion kann im FVA Simulation Hub mit Hilfe des Konfigurations-Parameters app.workbench.instances[0].replicas
genutzt werden. Der Parameter definiert, wieviele Prozesse für eine FVA-Workbench-Instanz gestartet werden sollen.
Das folgende Beispiel zeigt einen Auszug aus der Konfigurationsdatei application.yml
:
[...] app: workbench: instances: - workbenchDirectory: C:\\FVA-Simulation-Hub\\worker\\FVA-Workbench-9.0.0 replicas: 3 (1)
1 | Mit replicas wird die Anzahl für die zu startenden Prozesse angegeben. |
1.6. Optimierung der Warteschlange
Zur Verbesserung der Abarbeitung von Tasks wurde die Warteschlange optimiert. Dabei wurde der Task-Status SCHEDULED
eingeführt.
Eingige Endpunkte wurden um die neue Status-Informationen erweitert.
Die folgenden Endpunkte wurden für die Rückgabe der zusätzlichen Informationen hinzugefügt:
-
POST /api/1.1/workbench/task/simulate-work/create
-
GET /api/1.1/workbench/task/simulate-work/{id}/result
-
POST /api/1.1/workbench/task/execute-batch-job/create
-
GET /api/1.1/workbench/task/execute-batch-job/{id}/result
-
GET /api/1.1/workbench/task/list
-
GET /api/1.1/workbench/task/list/running
-
GET /api/1.1/workbench/task/list/waiting
-
GET /api/1.1/workbench/task/{id}
Mit Hinzufügen der neuen Endpunkte, wurden die folgenden Endpunkte zu den Legacy-Endpunkten verschoben:
-
POST /api/1.0/workbench/task/simulate-work/create
-
GET /api/1.0/workbench/task/simulate-work/{id}/result
-
POST /api/1.0/workbench/task/execute-batch-job/create
-
GET /api/1.0/workbench/task/execute-batch-job/{id}/result
-
GET /api/1.0/workbench/task/list
-
GET /api/1.0/workbench/task/list/running
-
GET /api/1.0/workbench/task/list/waiting
-
GET /api/1.0/workbench/task/{id}
Legacy-Endpunkte bleiben zunächst für die Abwärtskompatibilität verfügbar. Mit Version 2.0 des FVA Simulation Hub werden diese aber entfernt. |
Beispiel für die Antwort des Endpunkts /api/1.1/workbench/task/{id}
:
{ "id": "mRsoooWBmyFNtk0x3ug6j", "type": "SIMULATE_WORK", "priority": "NORMAL", "requestedDatetime": "2022-03-30T13:20:48.940547", "status": "SCHEDULED", (1) }
1 | Bei status kann jetzt auch der Status SCHEDULED enthalten sein. |
1.7. Bereitstellung von Beispielen für Client-Anwendungen
Im Installationsverzeichnis unter docs/client-examples
wurden verschiedene Beispiele für Client-Anwendungen hinterlegt.
Um diesen Beispielen den Zugriff auf die REST-API zu ermöglichen, wurden die folgenden Konfiguationsparameter hinzugefügt:
-
app.security.cors.allow
-
app.security.cors.allowedOrigins
2. Gelöste Anforderungen
2.1. Gelöste Anforderungen in v1.1.0
Type | Summary |
---|---|
Neue Funktion |
Unterstützung für FVA-Workbench-Versionen ab 9.0 |
Neue Funktion |
Informationen zur ausführenden FVA-Workbench: Die Endpunkte für die Ausführung von Tasks wurden um Informationen über Version und Revision der ausführenden FVA-Workbench erweitert. |
Neue Funktion |
|
Neue Funktion |
Initial-Status für FVA-Workbench-Instanzen konfigurieren |
Neue Funktion |
FVA-Workbench-Instanz kann mehrmals parallel gestartet werden |
Neue Funktion |
Bereitstellung von Beispielen für Client-Anwendungen |
Verbesserung |
Optimierung der Warteschlange |
Bugfix |
Blättern in GUI funktioniert bei Tasks nicht |
Bugfix |
Tasks im Status |
Bugfix |
Prioritäten wurden in der Warteschlange nicht für die ersten fünf Einträge berücksichtigt. |
Bugfix |
Warteschlange blockiert bei mehr als fünf Anfragen mit unbekannter Workbench-Version. |