Um die Zeitmessung des Berlins Marathon (dient als Beispiel, um ein Kontext zu haben) zu organisieren benötigt es:
- Ein E-COMMERCE System, wo die Läufer die "Tickets" (also eine Startnummer) für diesen Event kaufen können.
- Ein ZEITMESS-SYSTEM, wo vor Ort an verschiedenen Strecken-Abschnitte und am Schluss die Zeit der Läufer misst.
- Ein SOCIAL-PORTAL, wo die Resultate der Athleten über die Jahre ersichtlich sind und wo sich Läufer austauschen können
- Ein CRM, wo die Läufer verwaltet werden
Dies ist ein sehr high-level use case, um ein Marathon aus Software-Sicht zu unterstützen.
Wie würdet ihr die Architektur von einem solchen System, oder der verschiedene vernetzten System designen?
Mein Vorschlag:
- Eine Social-Plattform, welche nach dem MVVM Pattern aufgebaut ist, ein HTML5/JS UI hat, das über Websocket mit einem event-driven async Applikation-Backend Server verbindet.
- In der Social-Plattform soll auch ein eingeschränktes E-Commerce System vorhanden sein.
- Für das CRM auch eine MVVM Applikation mit
HTML/JS im UI und RESTful Verbindungen zu einem "CRUD"-Backend-Server (aufgebrochen in einem Service-Layer, einem Business-Logic-Layer, einem Data-
Access-Layer und einer
DB)
- Für das Zeitmess-System werden alle Sensoren über
TCP direkt im LAN oder über ein Internet-Proxy (über ein UMTS/LTE-Modem) an einem Node.JS Server angebunden, welches die async verarbeitet und auch über ein
HTML/JS UI diese Daten bearbeitet werden können.
- Die verschiedene Systeme kommunizieren über eine Message-Queue untereinander und tauschen somit Daten async aus
Was haltet ihr davon?
Wo liege ich technologisch, oder sonst absolut falsch mit meiner theoretischen Umsetzung?