HWR-Chat: Pflichtenheft
Warning: preg_match(): Compilation failed: group name must start with a non-digit at offset 8 in /www/htdocs/w0102873/mediawiki/includes/MagicWord.php on line 739
Aus It2010-g1
Chge (Diskussion | Beiträge) (→Datenbank) |
Chge (Diskussion | Beiträge) (→Datenerhaltungskonzept: Server Data Access Object) |
||
Zeile 327: | Zeile 327: | ||
===Datenerhaltungskonzept: Server Data Access Object=== | ===Datenerhaltungskonzept: Server Data Access Object=== | ||
− | *Die Anmeldung der User soll am Server erfolgen. Dabei lädt der Nutzer sein Profil sowie seine ihm bekannten Kontakte und Gruppen. Diese Daten müssen daher für den Server vorgehalten werden, damit dieser sie bei Bedarf speichern, bearbeiten oder auch löschen kann. Um auch bei einem möglichen Absturz oder beim Herunterfahren konsistente Daten zu gewährleisten, soll hierzu eine Datenbank genutzt werden. | + | *Die Anmeldung der User soll am Server erfolgen. Dabei lädt der Nutzer sein Profil sowie seine ihm bekannten Kontakte und Gruppen. Diese Daten müssen daher für den Server vorgehalten werden, damit dieser sie bei Bedarf speichern, bearbeiten oder auch löschen kann. Um auch bei einem möglichen Absturz oder beim Herunterfahren konsistente Daten zu gewährleisten, soll hierzu eine Datenbank genutzt werden. |
− | *Für die konkrete Implementierung bedeutet | + | *Für die konkrete Implementierung bedeutet dies, dass es zwei unterschiedliche Datenmodelle gibt. Zum Einen die Datenbank selbst (und deren Schnittstelle um Daten auszulesen / zu speichern) und andererseits ein internes Datenmodell des Servers. Beim initialen Start wird die Datenbasis des Servers mit der Datenbank synchronisiert, was im konkreten Fall bedeutet, dass alle Nutzer und Gruppen geladen werden. Werden nun lesende Anfragen gestellt, wird nur die ServerDatenStruktur benutzt, die Datenbank bleibt unangetastet (Performance). Erst wenn Daten verändert werden, muss ein Abgleich der Datenbank mit dem Server erfolgen, damit die Daten konsistent bleiben. |
− | *Die Datenerhaltung auf dem Server erfolgt durch einen Liste von Benutzerobjekten, die wiederum Referenzen auf andere Gruppen/User Objekte besitzen. Diese Objektorientiertheit hat den Vorteil, das bei Änderung eines Users, die User die auf diesen User referenziert worden sind | + | *Die Datenerhaltung auf dem Server erfolgt durch einen Liste von Benutzerobjekten, die wiederum Referenzen auf andere Gruppen/User Objekte besitzen. Diese Objektorientiertheit hat den Vorteil, das bei Änderung eines Users, die User die auf diesen User referenziert worden sind, unmittelbar die aktuellen Daten bereithält. Der Server muss bei Änderungen nur dafür Sorge tragen, dass alle Freunde, die diesen Nutzer kennen, diese Änderung auch mitbekommen. |
− | *Die einzigen Daten die nicht mit der Datenbank synchronisert werden sind die Statuseinträge, da diese | + | *Die einzigen Daten, die nicht mit der Datenbank synchronisert werden, sind die Statuseinträge, da diese lediglich live existieren.<br> (Eine benutzerdefinierte Statusnachricht (Weiterentwicklung) würde wiederum gespeichert werden.) |
===Config-Manager=== | ===Config-Manager=== |