DataFinder FrOSCon 2010 Miriam Ney <Miriam.Ney@dlr.de> Deutsches Zentrum für Luft- und Raumfahrt e.v., Berlin/Köln/Braunschweig http://www.dlr.de/sc Folie 1 Miriam Ney > DataFinder > 21.08.2010
Überblick Motivation Konzepte Prototyp und erste Version Aktuelle Version (DataFinder 2.0) Open Source Verfügbarkeit Anwendungsbeispiele Folie 2
Motivation Folie 3 Miriam Ney > DataFinder > 21.08.2010
Motivation Hintergrund: Data Management Problem Fehlende organisatorische Strukturen Keine zentrale Richtlinie zur Datenlagerung Jeder Mitarbeiter verwaltet die Daten einzeln Forscher verwenden 30% ihrer Zeit mit Datensuche Probleme mit Daten von Zeitmitarbeitern Zunahme von zu verwaltenden Daten Wachstum der erzeugten Daten aus Simulationen und Experimenten Gesetzliche Richtlinien erfordern die Langzeitverfügbarkeit von Daten (bis zu 50 Jahre!) Situation ist ähnlich für jedes DLR Institut, viele Forschungslabore und die Industrie Folie 4
Motivation Suche nach Lösungen für das Datenverwaltungsproblem Definition eines Standard Problems zur Evaluation Aerodynamische Simulation von Helikopter Bewertung von kommerziellen Product-Data-Management-Systemen (PDM) Kostenintensiv Überflüssige Funktionen Selbst definierte oder unverständliche Skriptsprachen Ziele bei der Entwicklung des DataFinder Leichtgewichtige Datenverwaltungsanwendung für existierende Server-Umgebungen Gerade genügend Funktionalität für unsere Probleme Folie 5
Konzepte Folie 6 Miriam Ney > DataFinder > 21.08.2010
Konzepte Ansätze zum Verwalten von großen Datensets Datenstrukturierung: Meta- Informationen und Datenmodelle Flexible Nutzung von Speichermedien: Data Stores Infrastrukturaufbau: Server-Client-Struktur Umgebungsintegrierung: Erweiterungen durch Skripte Programmiersprache: Python Nützliche Software zum effizienten Verwalten von wissenschaftlichen und technischen Daten Folie 7
Konzepte Python in Forschung und Industrie Beobachtung: Wissenschaftler und Ingenieure wollen keine Software entwickeln sondern Probleme lösen Ich will Flugzeuge entwerfen und nicht Software! Code schreiben: so einfach wie möglich! Warum ist Python perfekt? Einfach zu lernen und zu benutzen ( = steile Lernkurve) Ermöglicht schnelle Entwicklungen ( = kurze Entwicklungszeiten) Inhärente sehr gute Wartbarkeit Folie 8
Konzepte Datenmodell: Datenstruktur und Metadaten Datenmodell: Definition der Datenstruktur und der Metadaten Speicherung als XML Anwender kann in Metadaten suchen Verschiedene Level von Metadaten Administrator definiert erforderliche Metadaten Anwender definiert zusätzliche Metadaten Verschiedene Datentypen Folie 9
Konzepte Datenmodell Folie 10
Konzepte Auswirkungen auf den Anwender DataFinder schränkt die Rechte des Anwenders ein! Einhalten von gutem Benehmen Anwender muss sich an organisatorische Standards halten Speicherung von Daten in einer bestimmten Hierarchie auf einem Server Erforderliche Metadaten müssen vor dem Upload gesetzt werden Nutzer hat eingeschränkte Rechte innerhalb einer Hierarchie Mist! Ich bin ein großartiger Wissenschaftler, ich will die Freiheit meine Daten selbst zu organisieren Folie 11
Konzepte Data Stores Trennung der logischen Sicht des Nutzers von der tatsächlichen Server-Struktur Getrennte Speicherung von Datenmodell bzw. Metadaten und den tatsächlichen Dateien Flexibler Gebrauch von (verteilten) Speichermedien Dateisystem, WebDAV, FTP, GridFTP Amazon S3 (Simple Storage Service) Tivoli Storage Manager (TSM) Storage Resource Broker (SRB) Folie 12
Konzepte Verteiltes System Client-Server-Lösung Basierend auf offenen und stabilen Standards Server: WebDAV-Server für Datenmodell und Metadaten Data Store Konzept für Massendaten Client: Nutzer und Administrator Folie 13
Konzepte Python-Skripte zur Erweiterung und Automatisierung Motivation: Integrierung des DataFinder in die Umgebung Nutzer, Infrastruktur, Software, Typische Erweiterungen Aktionen für einzelne Ressourcen (wie Dateien oder Ordner) Zusätzliche Benutzeroberflächen Typische Automatisierungen und Anpassungen Migration und Import von Daten Starten von externen Anwendungen Auslesen von Metadaten aus Ergebnissen Automatisierung von sich wiederholenden Aufgaben Folie 14
Konzepte: Aggregation Folie 15
Konzepte Prozess zur Einführung des DataFinder Anforderungsanalyse Analyse der Daten, der Arbeitsumgebung und der typischen Arbeitsschritte eines Anwenders mit den Daten Konfiguration Definition und Konfiguration des Datenmodells Konfiguration von verteilten Speichermedien (Data Stores) Anpassung Schreiben von funktionalen Erweiterungen mit Python-Skripten Folie 16
Prototyp und erste Version Folie 17 Miriam Ney > DataFinder > 21.08.2010
Prototyp Vom Java-Prototyp zum Python-Produkt Entwicklung des Prototypen in Java Nutzung von existierendem Code Rückschläge: Java Probleme auf wichtigen Plattformen (SGI IRIX) Vorteil: Integrierter Jython- Interpreter Nutzer: Die Java GUI ist scheixxx, aber das Python- Scripting ist toll. Wir wollen eine reine Python-Lösung! Entwicklung des DataFinder von Grund auf neu mit Python Folie 18
Erste Version Realisierung Komponenten Python 2.5.6 Meta Data Server: Tamino XML DB Unterstützte Data Stores : FTP WebDAV File system GUI: Qt 3 + PyQt Code-Struktur: Kaum vorhanden Folie 19
Erste Version Benutzeroberfläche des DataFinder 1.x Benutzer Client Administrator Client Folie 20
Aktuelle Version (DataFinder 2.0) Folie 21 Miriam Ney > DataFinder > 21.08.2010
Aktuelle Version (DataFinder 2.0) Realisierung Komponenten Python 2.6 Meta Data Server: Limestone (basierend auf Catacomb) Unterstützte Data Stores: FTP, WebDAV, FS, Amazon, S3, GUI: Qt 4 + PyQt Code-Struktur Schichtenmodell Abstraktion von Konzepten Separate Skript API Folie 22
Aktuelle Version (DataFinder 2.0) Benutzeroberfläche des DataFinder 2.x Nutzer Client Administrator Client Folie 23
Aktuelle Version (DataFinder 2.0) Skript Beispiel: Erstellen einer Datei # Creating a file /text.txt using data store Data Store. from datafinder.gui.user import script_api as gui_api from datafinder.script_api.repository import setworkingrepository from datafinder.script_api.item.item_support import createleaf # Get representation of the current managed repository mr = gui_api.managedrepositorydescription() # Get currently selected collection in DataFinder Server-View if not mr is None: setworkingrepository(mr) def _createleaf(): properties = dict() properties[" dataformat "] = "TEXT" properties[" datastorename "] = "Data Store" createleaf("/test.txt", properties) script_api.performwithprogressdialog(_createleaf) Folie 24
Live Demo Folie 25
Open-Source- Verfügbarkeit Folie 26 Miriam Ney > DataFinder > 21.08.2010
Open-Source-Verfügbarkeit Hintergrund Entwicklung mit Open-Source-Komponenten Python Qt Werkzeug soll allen Interessenten frei zur Verfügung stehen Keine kommerziellen Interessen des DLR Einflussnahme von externen Nutzern auf die Entwicklung Projekt-Hosting und Weiterentwicklung auf Launchpad Folie 27
Open-Source-Verfügbarkeit Orte Aktuelles stabiles release: DataFinder 2.0 Simplified BSD License Websites Launchpad (Code) Sourceforge (Binaries) Freshmeat (Ankündigungen) Folie 28
Anwendungsbeispiele Folie 29 Miriam Ney > DataFinder > 21.08.2010
Anwendungsbeispiele Im Allgemeinen Anpassen an aktuellere Bibliotheks-Versionen PyQt Unterstützung zusätzlicher Python-Interpretern Jython Python 3.x Innerhalb des DLR DataFinder-Web-Portal für Luftverkehrs-Projekte Web-Framework Liferay Provenance-Integration (Projekt AeroGrid) Nutzergruppen und Entwickler außerhalb des DLR Max Planck Gesellschaft BeSTGrid (Neuseeland) Folie 30
Anwendungsbeispiele Datenbank zur Flugverkehrsbeobachtung Flugverkehrsbeobachtung ist wichtig für die Forschung Vorhersage von Flugverkehr Neue Verkehrsmanagementansätze Anwendung des DataFinder Datenbank für Verkehrsdaten und Berichte Projektorientierte Sicht auf Daten Folie 31
Anwendungsbeispiele Web Portal Folie 32
Information Folie 33 Miriam Ney > DataFinder > 21.08.2010
Links DataFinder Webseite http://www.dlr.de/datafinder DataFinder Projektseiten http://launchpad.net/datafinder https://launchpad.net/~datafinder-team http://sourceforge.net/projects/datafinder DataFinder Wiki http://wiki.sistec.dlr.de/datafinderopensource Folie 34
Unterstütze uns: Werde DataFinder- Werde DataFinder Fan bei Facebook! Fan bei Facebook! Folie 35
Fragen? Stand # Kontakt: Miriam Ney DLR Simulations- und Softwaretechnik, Berlin Email: Miriam.Ney@dlr.de Folie 36