projekte:datenreise

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
projekte:datenreise [2012/04/10 16:36] – [Infrastruktur] macgoeverprojekte:datenreise [2012/04/16 17:56] – [Infrastruktur] macgoever
Zeile 10: Zeile 10:
  
 ==Frontend== ==Frontend==
-Das Frontend soll möglichst einfach sein, damit die Einstieghürde für potentielle Mitmacher möglichst gering ist. Die Schnittstelle soll möglichst vielseitig sein, aber auch ein Mindestmaß an Sicherheit bieten. Daher kommen für die Übertragung der Daten nur Protokolle in Frage, die eine Authentifizierung ermöglichen. Toll wären: HTTPFTPSCPGgf noch SMTP zum Einschicken? Die einzelnen Stationen sollen einfach die Daten als Datei runterladen und als Datei wieder hochladen können. Jeder hat dann sein eigenes abgeschlossenes Homeverzeichnis, aus dem er auch nicht rauskommt+Das Frontend soll möglichst einfach sein, damit die Einstieghürde für potentielle Mitmacher möglichst gering ist. Die Schnittstelle soll möglichst vielseitig sein, aber auch ein Mindestmaß an Sicherheit bieten. Daher kommen für die Übertragung der Daten nur Protokolle in Frage, die eine Authentifizierung ermöglichen. Eine mögliche Schnittstelle wäre http mit nem PHP oder CGI im Hintergrund. Da http selbst zu proggen nicht ultraeingängig istkönnte man noch ein MiniFTP entwickelnder mit den Befehlen ''auth'',''get'' und ''put'' arbeitetDer MiniFTPdemon könnte die Daten auch direkt aus der Datenbank holen
- +Mit dieser Vorgehensweise hat man folgende Probleme erschlagen
-Noch zu lösen+  * Dateinamen : Dateinamen sind immer eine Fehlerquelle bei Falschbenennung oder auch bei bereits vorhandenen Dateinamen. Dadurch kann es zu zahlreichen unvorhergesehenen Fehlern kommen und das Interface sollte ja einfach seingell? 
-Dann noch das Problem mit den Dateinamen. Statisch wäre einfacherbirgt aber die Gefahr des Überschreibens. +  * Timestamps: Für unsere statistische Auswertung müssen wir wissen, welche Station wie lange gebraucht hat. Einfach nur eine Datei hochladen, die dann von einem Prozess eingesammelt wird, der nur alle 15 Minuten läuft ist etwas ungenauDann könnte der Dateiname der Uploaddatei einen Timestamp enthaltenDer müsste aber korrekt im Layout und synchron zur zentralen Uhr sein. Zudem hat nicht jede Station überhaupt eine Uhrzeit da. 
-Und ein Upload ist leider keine atomare AktionDer Backenddienst könnte also in einen Upload reinpfuschenErst Upload und dann umbenennen ist ggf zu komplex? +  * Threadsicherheit: Die Threadsicherheit ist notwendigda immer 2 Prozesse auf die Daten zugreifenErstens der Upload/Download der Station und zweitens Auswertungsprozesse auf der zentralen EinheitWenn beide Prozesse gleichzeitig auf eine Datei zugreifen, bekommt der eine nur die Hälfte der Daten und die andere Hälfte landet im NirvanaKonstrukte mit .lock Dateien oder ähnlichem sind für dieses Szenario ungeeignet bzw. zu komplex umzusetzen. Beim Schreiben in eine Datenbank achtet die Datenbank drauf, das nix passiert. 
- +  * Authentifizierung: Für einen Dienst, der im Internet hängt und dessen öffentlich Schnittstellen dokumentiert sind, braucht man eine AuthentifizierungSie muss nicht besonders komplex seinaber man soll es ja auch nicht zu einfach machen
-==Backend== +  * Datenintegrität: Damit uns nicht irgendwelche Skriptkiddies Pornobilder in die Daten schiebensollten wir eine minimale Überprüfung der Daten vornehmenDie Größe der Daten sollte zumindest ungefähr passen (vielleicht +/-10%). Wenn ein gewisser Prozentsatz (70%) falsch ist, ist vielleicht auch eine Schluderei oder eine defekte Station im SpielHier sollte man überlegenob man der Station nochmal dieselben Daten schickt, oder die Daten einfach benutzt? Wenn eine Station offensichtlich defekt ist, weil sie nur noch quatsch schickt, könnte man sie auch aus dem Prozess rausnehmen und dem Admin Bescheid geben.Damit die Stationen nicht nur als Datensenke fungieren, sollte es neue Daten immer erst geben, wenn die letzten bereits wieder hochgeladen wurden.
-Im Backend brauchen wir ein Scriptdas die Daten aus den Verzeichnissen klaubtDass darf natürlich nicht während eines Upload passierenDie Daten sollen in eine Datenbank geschrieben werden. Daraus können dann die Daten/Statistiken für die Webseite zusammengebaut werdenDann müssen die Daten auch in das Home der nächsten Station gelegt werdenWann das passieren muss, ist auch noch zu definiern+
- +
-==Sicherheit== +
-Da wir auch Externe einbinden möchtenmüssen wir auch mit Scherzkeksen rechnen, die zBgroße Files hochschieben oder Pornobilder in unser Landschaftsbild einbauenEine gewisse Plausibilitätsprüfung muss also ran. Vielleicht kann man sagenab 70% Bitfehlern auf einer Station (durch Injektion oder kaputte Station) kriegt sie dieselben Daten nochmal und beim 10ten Mal wird sie unter Generierung eines Alarms temporär aus dem Prozess ausgenommen und bekommt Dummydaten.+
 ====Webseite==== ====Webseite====
 Um das Projekt auch überregional bekannt zu machen brauchen wir natürlich eine Webseite. Dort wäre eine Karte nett, auf der alle Stationen verzeichnet sind. Bei Klick auf die Stationen kriegt man Infos über die Station: Um das Projekt auch überregional bekannt zu machen brauchen wir natürlich eine Webseite. Dort wäre eine Karte nett, auf der alle Stationen verzeichnet sind. Bei Klick auf die Stationen kriegt man Infos über die Station:
  • projekte/datenreise.txt
  • Zuletzt geändert: 2017/03/01 19:19
  • von 127.0.0.1