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 3.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 3.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 3.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. |