wiki.ziemers.de

ziemer's informatik Wiki

Benutzer-Werkzeuge

Webseiten-Werkzeuge


wiki:software:beuthbot:berichte:ws2020:zwischen:geplanter-stand-features:bot49

Dies ist eine alte Version des Dokuments!


BOT-43: Erstellung eines Common-Frameworks für (Content-)Services
Services im BHT-Bot kommunizieren alle über REST-Schnittstellen. Diese sind alle als Express-Anwendung mit JSON-Kommunikation implementiert, was für viel Code-Redundanz führt. Gleichzeitig benutzt kein Service strukturierte Darstellungen der Schnittstellen, wie Anfragen und Antworten zum Gateway, User Daten oder Rasa-Intents.
Ein spezieller, repititiver, Unterfall der Microservices sind solche, die Content bereitstellen. Diese erhalten alle Nachrichten vom Gateway und senden ihre antworten auch dort wieder zurück. Request- und Response sind durch das Gateway definiert, die resultierende Struktur ist entsprechend für alle Contentservices prinzipiell Identisch.
Zur Vermeidung von Code-Redundanzen und Erleichterung des „Kick-Off“ eines neuen Content-Services sollen die Common Funktionen und Entitäten in ein Framework gegossen werden
Initiale Schätzung 1
Technologien * Javascript
* Typescript
* Dockerfile
Abhängigkeiten * BOT-37
Anforderungen * Das Framework implementiert eine NodeJS Express REST-API, äquivalent zu den existierenden Content-Services
* Das Framework lässt sich in NodeJS Anwendungen via Dependency-Management einbinden (npm/yarn)
* Das Framework abstrahiert den (Express) Server und dessen Routing, so dass ein Contentservices nur noch die Response implementieren muss
* Das Framework implementiert die Schnittstelle zum Datenbankservice um a) Userdaten zu speichern/abzurufen und b) eigene Daten zu speicher und abzurufen
* Das Framework füllt die “debug-history” der Requests so, dass ein Service dieses Feature zwangsweise implementiert / nutzt
* Requests, Responses, User, Rasa-Intents und ggf. weitere Entitäten werden durch das Framework als typisierte (typescript) Objekte definiert
* Das Framework wird in allen bestehenden und geplanten Content-Services implementiert: Wetter, Mensa, Reminder
* Die Nutzung des Frameworks ist verständlich dokumentiert
* Die Contribution wird mittels Linting, Dokumentation und Build-Scripts erleichtert
* Das Framework nutzt types aus der (noch zu entwickelnde) BHT-Bot Library um Redundanzen zwischen Client-Bibliothem und Service-Framwork zu vermeiden
Tasks * BOT-44 Common Code, Features, Entitäten identifizieren → Use Case ableiten
* BOT-45 Typisiertes Javascript Framework erstellen
* BOT-46 Framework einbinden in Weather Service
* BOT-47 Framework einbinden in Mensa Service
* BOT-48 Framework einbinden in Reminder Service
* BOT-108 Framework dokumentieren
* BOT-117 Request History implementieren - Nutzung enforcen
                                         |
wiki/software/beuthbot/berichte/ws2020/zwischen/geplanter-stand-features/bot49.1606057772.txt.gz · Zuletzt geändert: 22.11.2020 16:09 von Robert Xaver Halwaß