Harbour2025

Im Rahmen meines ersten Masterprojektes Harbour2025 haben wir, eine Gruppe von Studierenden des Informatikmasters an der HS Bremerhaven, eine kooperative Kartenanwendung gebaut, mit der User gemeinsam die Stadt Bremerhaven erkunden können. Interaktionen wie das Verschieben, Zoomen und Fokussieren der Kartenansicht werden in Echtzeit zwischen mehreren Teilnehmenden geteilt, sodass alle dieselbe Perspektive auf die Stadt erleben.

Der Prototyp ist noch bis voraussichtlich Mai 2026 hier gehostet.

Architektur

Für die Kartendarstellung im Frontend wird der MapLibre GL Renderer verwendet um Tiles von OpenFreeMap zu rendern die auf OpenStreetMap Daten basieren. Das Backend ist mit Python und FastAPI umgesetzt. Die Echtzeitsynchronisierung läuft über einen Websocket Server der auch in Python implementiert ist. Diese Komponente ist das Bottleneck unserer Anwendung und wurde zu konzipiert, dass sie sich horizontal skalieren lässt. Eine Valkey Instanz (Redis-Protokoll) verteilt die Nachrichten zwischen den einzelnen Websocket-Server-Containern.

Lasttest mit K6

Für eine Beurteilung des Resourcenbedarfs der Anwendung haben wir das Websocket-Backend einem Lasttests unterzogen. Mit K6 wurden beliebig viele User simuliert die ihre Karten bewegen oder anderen folgen. K6 stellt dabei Daten wie die Zahl der ausgetauschten Nachrichten oder die Verzögerung eines vorprogrammierten Ablaufs zur Verfügung. Mit diesen Daten konnten wir verschiedene Versionen vergleichen und die Anwendung für mehrere 100 gleichzeitige User optimieren.