Manche der im Architekturentwurf vorgestellten Komponenten benötigen eine interne Datenhaltung. Es werden ERDs für die jeweiligen Services vorgestellt, die die grobe Datenstruktur beschreiben. Dabei muss die finale Datenhaltung nicht zwingend als relationale Datenbank implementiert sein. Es gibt auch andere Datenbankparadigmen, die diese Strukturen ähnlich abbilden können (z.B. Dokumentbasierte Datenbanken). Welches Paradigma für welche Komponente verwendet werden sollte, muss kurz vor beziehungsweise zur Implementationszeit entschieden werden.
Der Condition Service verfügt über die komplexeste Datenhaltung der Komponenten. Es werden Conditions (Bedingungen) verwaltet, die von einem Bedingungstypen sind und über Eingabeparameter verfügen. Eine Bedinung muss einer Ressource zugeordnet werden. Wird aus dem Booking Service eine Buchung für eine Ressource angefragt, wird ein Check (Abfrage) im Condition Service erstellt. Diese Abfrage gibt die Parameterwerte an die jeweilen Bedingungen weiter und überprüft den Status. Weitere Informationen über die Conditions finden sie hier
Condition Types (ENUM)
name |
---|
isRessourceAvailable |
isAllowedToBook |
isOnTime |
maxDuration |
hasEnoughtContigent |
isApprovedByOwner |
Parameter
condition | name | value |
---|---|---|
2 | “allowedRoles” | [Student, Prof] |
3 | “timeInAdvanceInHours” | 24 |
5 | “timeInAdvanceInHours” | 24 |
Conditions
id | resourceId | conditionTypeId |
---|---|---|
1 | THK-GM01-0301 | isRessourceAvailable |
2 | THK-GM01-0301 | isAllowedToBook |
3 | THK-GM01-0301 | isOnTime |
4 | THK-CGN01-0200 | isRessourceAvailable |
5 | THK-CGN01-0200 | isOnTime |
Checks
bookingId | conditionId | status |
---|---|---|
1 | 1 | met |
1 | 2 | met |
1 | 3 | met |
2 | 4 | met |
2 | 5 | pending |
Der Booking Service verwaltet ausschließlich Buchungen von Ressourcen. Alle weiteren Informationen werden aus den anderen Services abgefragt und Referenzen auf Datensätzen aus anderen Services abgespeichert.
bookingId | resourceId | bookedBy | from | to | status |
---|---|---|---|---|---|
1 | THK-GM01-0301 | ybruegge | 01.10.2022 12:00 | 01.10.2022 13:00 | booked |
2 | THK-CGN01-0200 | bengel | 04.10.2022 09:30 | 01.10.2022 10:30 | pending |
Dieser Service verwaltet Ressourcen und Equipment. Ressourcen sind grundsätzlich alles, was buchbar ist, wie Räume oder ein mobiles Whiteboard. Eine Ressource kann über Equipment verfügen, wie beispielsweise die Ausstattung eines Raumes. Equipment und Ressourcen können durch weitere dynamische Eigenschaften erweitert werden.
Resource Types
name |
---|
room |
workplace |
smartboard |
Resources
resourceId | resourceType | name |
---|---|---|
1 | room | “3216 - MI Studio” |
2 | smartboard | “Microsoft Smartboard” |
3 | workplace | “Workstation 01” |
4 | room | “3215 - 360° Vorlesungsraum” |
Resource Properties
resourceId | name | value |
---|---|---|
1 | “size” | “25m²” |
1 | “seats” | “50” |
1 | “seatingType” | “loose” |
2 | “size” | “40 inches” |
2 | “brand” | “Microsoft” |
2 | “model” | “Surface Hub Pro 3” |
3 | “software” | “Paint, Word, Gimp” |
Equipment Types
name |
---|
projector |
3Dcameras |
smartboard |
Eqipment
equipmentId | equipmentType | name | resourceId |
---|---|---|---|
1 | projector | “Main Projector” | 1 |
2 | smartboard | “Philips Smartboard” | 1 |
3 | 360CameraSystem | “12 360° Camera System” | 4 |
Equipment Properties
resourceId | name | value |
---|---|---|
1 | “connectors” | “HDMI, DisplayPort” |
1 | “resolution” | “1920x1080” |
2 | “size” | “33 inches” |
2 | “brand” | “Philips” |
2 | “model” | “PX03” |
3 | “Working Cameras” | “8/12” |
Als Stammdatenservice verwaltet der Location Service Daten zu Locations (Standorte wie z.B. Campus) Buildings (Gebäuden) und Rooms (Räumen).
Locations
locationId | name |
---|---|
1 | “TH Köln - Campus Gummersbach” |
2 | “TH Köln - Campus Deutz” |
3 | “TH Köln - Campus Südstadt” |
Buildings
buildingId | name | locationId |
---|---|---|
1 | “Bibliothek” | 1 |
2 | “Kino” | 1 |
3 | “Geb. 3 (Mensagebäude)” | 1 |
4 | “Geb. 4 (Hörsaalgebäude)” | 1 |
5 | “Geb. 1 (Hauptgebäude)” | 1 |
6 | “Geb. 2 (Hauptgebäude)” | 1 |
Rooms
roomId | name | buildingId |
---|---|---|
1 | “Arbeistraum 1” | 1 |
2 | “3216 - MI Studio” | 6 |
3 | “Mensa” | 3 |
4 | “3215 - 360° Vorlesungsraum” | 6 |