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

JobTimeout für Batch-Jobs

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 CANCELED wurden nach Neustart der Anwendung wieder in die Warteschlange aufgenommen.

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.