Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
wiki:software:beuthbot:berichte:ss2020:zwischen [04.06.2020 13:47] Lukas Danckwerth |
wiki:software:beuthbot:berichte:ss2020:zwischen [04.06.2020 15:58] (aktuell) Lukas Danckwerth |
||
---|---|---|---|
Zeile 8: | Zeile 8: | ||
* Denny Schumann | * Denny Schumann | ||
- | ====Übersicht (Fragen, die beantwortet werden sollten)==== | + | ====Inhaltsangabe==== |
+ | |||
+ | - Einleitung / Aktueller Stand | ||
+ | - BeuthBot-Projekt | ||
+ | - deconcentrator-js | ||
+ | - Virtuellen Machine | ||
+ | - Funktionale Anforderungen | ||
+ | - Persistenz & Cache | ||
+ | - Microservices | ||
+ | - Ausblick | ||
===Was haben wir vorgefunden? | ===Was haben wir vorgefunden? | ||
Zeile 64: | Zeile 73: | ||
Nun wurde der Beuth Bot gestartet, konnte allerdings nicht in Betrieb genommen werden, da dieser keine Netzwerkverbindung nach draußen hatte. Daraufhin wurde uns ein Server auf der Beuth zur verfügung gestellt, auf welchem der Beuth Bot letztendlich laufen sollte. Nachdem dieser dort versucht wurde eingerichtet zu werden, fehlte es dem Server an zugewiesenem Speicher, was erst behoben werden musste um den Bot vollständig installieren und in Betrieb nehmen zu können. Es konnten nach der Behebung des fehlenden Speichers letztendlich fast alle Docker-Container erfolgreich gestartet werden, bis auf den Service Deconcentrator, | Nun wurde der Beuth Bot gestartet, konnte allerdings nicht in Betrieb genommen werden, da dieser keine Netzwerkverbindung nach draußen hatte. Daraufhin wurde uns ein Server auf der Beuth zur verfügung gestellt, auf welchem der Beuth Bot letztendlich laufen sollte. Nachdem dieser dort versucht wurde eingerichtet zu werden, fehlte es dem Server an zugewiesenem Speicher, was erst behoben werden musste um den Bot vollständig installieren und in Betrieb nehmen zu können. Es konnten nach der Behebung des fehlenden Speichers letztendlich fast alle Docker-Container erfolgreich gestartet werden, bis auf den Service Deconcentrator, | ||
+ | |||
+ | ===Resultierende Aufgaben=== | ||
+ | |||
+ | * Dokumentation komplettieren / umstruktorieren | ||
+ | * Den alten deconcentrator " | ||
+ | * Übergeordnetes Git Projekt erstellen mit Paketen als Submodule | ||
===Wo stehen wir gerade?=== | ===Wo stehen wir gerade?=== | ||
Zeile 72: | Zeile 87: | ||
Auf diese Punkte wird im weiteren Verlauf dieses Dokuments eingegangen. | Auf diese Punkte wird im weiteren Verlauf dieses Dokuments eingegangen. | ||
- | |||
- | ====Challenges / Barriers==== | ||
- | |||
- | * Complex Project Structure | ||
- | * Bad documentation of final state. So we ... | ||
- | * Focused to long on the image of virtual machine | ||
- | * Bad documentation of JSON format of messages | ||
- | * Running out of space on Virtual Machine | ||
- | * Current Situation with the Corona Virus | ||
- | |||
- | ====Needs For Action==== | ||
- | |||
- | * Complete Documentation | ||
- | * "Kick out" the `deconcentrator` and `scraper` | ||
- | * Create a master project containing the packages as submodules | ||
- | ====Done so far==== | ||
- | |||
- | ===Model of Messages of Telegram Bot=== | ||
- | |||
- | <uml> | ||
- | @startuml | ||
- | class Message { | ||
- | message_id: Integer | ||
- | from: User | ||
- | chat: Chat | ||
- | date: Long | ||
- | text: String | ||
- | } | ||
- | |||
- | class User { | ||
- | id: Integer | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | } | ||
- | |||
- | class Chat { | ||
- | id: Integer | ||
- | | ||
- | | ||
- | type: String | ||
- | } | ||
- | |||
- | Message *--- User | ||
- | Message *--- Chat | ||
- | |||
- | @enduml | ||
- | </ | ||
===BeuthBot Project (One Git Repository)=== | ===BeuthBot Project (One Git Repository)=== | ||
Zeile 290: | Zeile 256: | ||
The following lists the resources that can be requested with the deconcentrator API. | The following lists the resources that can be requested with the deconcentrator API. | ||
- | Request life sign, | + | Request life sign. |
< | < | ||
Zeile 296: | Zeile 262: | ||
</ | </ | ||
- | Request interpretation of model. | + | Answer: |
+ | |||
+ | < | ||
+ | Hello from BeuthBot Deconcentrator: | ||
+ | </ | ||
+ | |||
+ | Request interpretation of message. | ||
< | < | ||
Zeile 413: | Zeile 385: | ||
==Requirements Analysis deconcentrator.js== | ==Requirements Analysis deconcentrator.js== | ||
- | /DCF100/ The deconcentrator responds to incoming POST requests by delegating the message to a collection of NLU processor which try to interpretate the given message | + | * /DCF100/ The deconcentrator responds to incoming POST requests by delegating the message to a collection of NLU processor which try to interpretate the given message |
- | /DCF101/ The deconcentrator accepts incoming messages as defined via the Request Schema | + | |
- | /DCF102/ The deconcentrator sends answers as defined via the Response Schema | + | |
- | /DCF103/ The deconcentrator answers with proper messages for occuring errors | + | |
- | /DCF104/ New NLU processors muss be easy to integrate | + | |
- | /DCF105/ The deconcentrator has a default value for the minimum confidence score | + | |
- | /DCF106/ The deconcentrator has a default value for the list of processors | + | |
- | /DCF107/ The minimum confidence score can be set globally within the Dockerfile | + | |
- | /DCF108/ The list of processors to be used can be set globally within the Dockerfile | + | |
===Deploying on Virtual Machine=== | ===Deploying on Virtual Machine=== | ||
Zeile 640: | Zeile 612: | ||
Damit der Benutzer sich selbst nicht ständig wiederholen muss, wird ihm die Möglichkeit geboten, seine Vorlieben zu speichern. Als Datenbank haben wir uns für die MongoDB entschieden. | Damit der Benutzer sich selbst nicht ständig wiederholen muss, wird ihm die Möglichkeit geboten, seine Vorlieben zu speichern. Als Datenbank haben wir uns für die MongoDB entschieden. | ||
+ | |||
+ | <uml> | ||
+ | @startuml | ||
+ | actor " | ||
+ | rectangle " | ||
+ | package " | ||
+ | rectangle " | ||
+ | package " | ||
+ | rectangle " | ||
+ | database " | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | U -down-> TGB | ||
+ | TGB -right-> GW | ||
+ | GW -left-> TGB | ||
+ | |||
+ | GW -up-> DBC | ||
+ | DBC -down-> GW | ||
+ | |||
+ | DB_NAME -right-> DBC | ||
+ | DBC -left-> DB_NAME | ||
+ | @enduml | ||
+ | </ | ||
===Cache=== | ===Cache=== | ||
Zeile 755: | Zeile 752: | ||
====Goal for end of semester==== | ====Goal for end of semester==== | ||
+ | |||
+ | Following diagram demonstrates the current state of the working component of the BeuthBot. | ||
Current State: | Current State: | ||
Zeile 791: | Zeile 790: | ||
</ | </ | ||
- | Target State: | + | Following diagram demonstrates the target state of the working component of the BeuthBot. |
<uml> | <uml> | ||
Zeile 865: | Zeile 864: | ||
-- Implementation -- | -- Implementation -- | ||
- | [Persist user preferences] as [I1] lasts 30 days and starts 5 days after [C]'s end | + | [Persist user preferences |
- | [Cache microservices responses] as [I2] lasts 30 days and starts 5 days after [C]'s end | + | [Cache microservices responses |
- | [Transform scraper microservice] as [I3] lasts 30 days and starts 5 days after [C]'s end | + | [Transform scraper microservice |
- | [Adjust weather microservice] as [I4] lasts 30 days and starts 5 days after [C]'s end | + | [Adjust weather microservice |
- | [New course schedule microservice] as [I5] lasts 30 days and starts 5 days after [C]'s end | + | [New course schedule microservice |
[C] -> [I1] | [C] -> [I1] | ||
[C] -> [I2] | [C] -> [I2] | ||
Zeile 875: | Zeile 874: | ||
[C] -> [I4] | [C] -> [I4] | ||
[C] -> [I5] | [C] -> [I5] | ||
+ | [D] is 80% completed | ||
[I1] is 0% completed | [I1] is 0% completed | ||
[I2] is 0% completed | [I2] is 0% completed |