Difference between revisions of "PSE"

From Lsdf
Line 1: Line 1:
 
Praxis der Software Entwicklung: Entwicklung eines Big Data Brokers
 
Praxis der Software Entwicklung: Entwicklung eines Big Data Brokers
  +
   
   
Line 12: Line 13:
 
===Details===
 
===Details===
 
* Es soll ein REST-Server konzipiert und in Python implementiert werden, der Datentransfers über Agents koordiniert. Aufgaben des Servers sind:
 
* Es soll ein REST-Server konzipiert und in Python implementiert werden, der Datentransfers über Agents koordiniert. Aufgaben des Servers sind:
* * Clientanfragen überprüfen (collision detection)
+
** Clientanfragen überprüfen (collision detection)
 
** Scheduling und Priorisierung von Datentransfers
 
** Scheduling und Priorisierung von Datentransfers
* * Benutzerrechte-Verwaltung
+
** Benutzerrechte-Verwaltung
* * Statusinformationen bereitstellen, Zeitabschätzungen
+
** Statusinformationen bereitstellen, Zeitabschätzungen
* * Fehlerbehanglung, Logging
+
** Fehlerbehanglung, Logging
 
* Speichersystem sollen abstrakt behandelt und klassifiziert werden (Qualitäten, wie Geschwindigkeit, Kapazität, Latenz)
 
* Speichersystem sollen abstrakt behandelt und klassifiziert werden (Qualitäten, wie Geschwindigkeit, Kapazität, Latenz)
 
* Es sollen durch Module (Agents) verschiedene Kopierprotokolle unterstützt werden (cp, scp, gridftp)
 
* Es sollen durch Module (Agents) verschiedene Kopierprotokolle unterstützt werden (cp, scp, gridftp)
 
* Clients sollen dazu dienen Datentransfers zu konfigurieren. Die Transfer-Tasks werden an den Server submittiert, der die Anfragen dann asynchron abarbeitet. Clients können jederzeit Statusabfragen machen. Es sollen geeignete Clients entworfen und implementiert werden:
 
* Clients sollen dazu dienen Datentransfers zu konfigurieren. Die Transfer-Tasks werden an den Server submittiert, der die Anfragen dann asynchron abarbeitet. Clients können jederzeit Statusabfragen machen. Es sollen geeignete Clients entworfen und implementiert werden:
* * App bzw. Graphisches User Interface (Python/Java)
+
** App bzw. Graphisches User Interface (Python/Java)
* * Web Client
+
** Web Client
* * Kommandozeilenbasierte Python-API
+
** Kommandozeilenbasierte Python-API
* * optional: virtuelles Dateisystem (FUSE)
+
** optional: virtuelles Dateisystem (FUSE)
 
* Die Clients sollen von den gängigsten Betriebssystemen aus verwendet werden können
 
* Die Clients sollen von den gängigsten Betriebssystemen aus verwendet werden können
 
* Zur Kommunikation zwischen den Komponenten sollen REST Schnittstellen verwendet werden
 
* Zur Kommunikation zwischen den Komponenten sollen REST Schnittstellen verwendet werden

Revision as of 15:00, 10 April 2013

Praxis der Software Entwicklung: Entwicklung eines Big Data Brokers



Überblick

Wissenschaftliche Forschungsprojekte nutzen oftmals mehrere heterogene Speichersysteme, um wissenschaftliche Daten im Petabyte-Bereich abzulegen. Beim „Big Data“-Projekt am SCC soll ein Werkzeug zur asynchronen Verwaltung dieser großen Datenmengen entstehen. Das Ziel ist hierbei eine Schnittstelle für die Verwaltung von Datenmengen von mehreren Petabytes zu schaffen.

===Projekt... Konkret soll eine Client-Server Lösung implementiert werden, bei der die Clients dem Server Änderungen in der Dateisystemstruktur und dem Speicherort mitteilen. Der Server muss die Anfrage auf Machbarkeit prüfen, die Durchführung planen (Optimierung, Scheduling) und garantieren und an die ausführenden Agenten weiterleiten. Letztere kopieren, verschieben oder Archivieren die vom Nutzer ausgewählten Dateien.

Details

  • Es soll ein REST-Server konzipiert und in Python implementiert werden, der Datentransfers über Agents koordiniert. Aufgaben des Servers sind:
    • Clientanfragen überprüfen (collision detection)
    • Scheduling und Priorisierung von Datentransfers
    • Benutzerrechte-Verwaltung
    • Statusinformationen bereitstellen, Zeitabschätzungen
    • Fehlerbehanglung, Logging
  • Speichersystem sollen abstrakt behandelt und klassifiziert werden (Qualitäten, wie Geschwindigkeit, Kapazität, Latenz)
  • Es sollen durch Module (Agents) verschiedene Kopierprotokolle unterstützt werden (cp, scp, gridftp)
  • Clients sollen dazu dienen Datentransfers zu konfigurieren. Die Transfer-Tasks werden an den Server submittiert, der die Anfragen dann asynchron abarbeitet. Clients können jederzeit Statusabfragen machen. Es sollen geeignete Clients entworfen und implementiert werden:
    • App bzw. Graphisches User Interface (Python/Java)
    • Web Client
    • Kommandozeilenbasierte Python-API
    • optional: virtuelles Dateisystem (FUSE)
  • Die Clients sollen von den gängigsten Betriebssystemen aus verwendet werden können
  • Zur Kommunikation zwischen den Komponenten sollen REST Schnittstellen verwendet werden