Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Teil 11 FAME-DBMS Christian Kästner (Universität Marburg) Sven Apel (Universität Passau) Gunter Saake (Universität Magdeburg)
Apel, Kästner, Saake Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Folie 11-2 Das FAME-DBMS Projekt Methods and Tools for Construction of Highly Configurable Database Families for Embedded Systems DFG gefördert 2006-2008 Kooperation Uni Magdeburg und Uni Dortmund Das Projekt untersucht Hochkonfigurierbare Datenbanklösungen Anwendung von Produktlinientechnologie auf DBMS Anwendungsszenarien Nichtfunktionale Eigenschaften der Varianten http://fame-dbms.org/
Apel, Kästner, Saake Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Folie 11-3 WDH: Maßgeschneiderte Datenhaltung DBMS Produktlinien für eingebettete Systeme Server-DBMS nicht verwendbar Unterschiedliche Hardware Verschiedenste Anforderungen Wiederkehrende Funktionalität Ressourcenbeschränkungen Neuentwicklungen teuer State of the art Programmiersprache C Konfigurierbarkeit durch Präprozessoranweisungen (#ifdef, Makros) Framework/Komponenten durch querschn. Belange i.d.r. ungeeignet
Apel, Kästner, Saake Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Folie 11-4 Agenda Berkeley DB (extraktives Vorgehenmodell) FAME-DBMS (proaktives/reaktives Vorgehensm.) Maßgeschneidertes SQL Variabilität im Datenbankschema Vertikale Integration
Apel, Kästner, Saake Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Folie 11-5 Funktionalität Transaktionsverwaltung, Recovery, Replikation, Indexe Beispiel: Berkeley DB Eingebettetes DBMS Einsatz: Serversysteme bis eingebettete Systeme Bibliothek eingebettet in Anwendung Kein SQL; Zugriff über API Bsp.: put(db, schlüssel, wert ); Programmcode Programmiersprache C Ca. 90.000 Zeilen
Apel, Kästner, Saake Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Folie 11-6 Berkeley DB als Produktlinie Enthält 11 optionale Features (#ifdef, Makros) Indexe, Replikation, Verschlüsselung, etc. Statische Konfigurierung mit Präprozessoranweisungen Binary Size: 480 680 KB Zusätzlich dynamische Konfigurierung (Funktionsargumente)
Apel, Kästner, Saake Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Folie 11-7 Präprozessor in Berkeley DB Verschachtelte Präprozessoranweisungen Sehr lange Methoden (bis zu ca. 500 Zeilen) Konfiguration über Compilerargumente (z.b. HAVE_QUEUE) Probleme Kein separation of concerns Schwer lesbar / verständlich Wartung (z.b. Eleminierung von dead features)
Apel, Kästner, Saake Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Folie 11-8 AOP und FOP in eingebetteten Systemen Berkeley DB ist implementiert in C AOP & FOP Werkzeuge basieren auf OOP: AspectC++: AOP Erweiterung für C++ FeatureC++: FOP Erweiterung für C++ Beide basieren auf Codetransformation Daher: Quelltext zuerst von C nach C++ portieren
Apel, Kästner, Saake Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Folie 11-9 AOP und FOP in eingebetteten Systemen II C vs. C++ Kein grundsätzlicher Unterschied bzgl. Ressourcenbedarf und Performance C Compiler weit verbreitet (insbes. im embedded Bereich) Objektbasierte Entwicklung mit C aufwendiger als Vererbung mit C++ (Speicherung von Funktionszeigern) C++ Mehraufwand für neue Konzepte (virtuelle Methoden, Exception Handling, RTTI) FeatureC++: Statische Optimierung (Inlining von Verfeinerungen)
Apel, Kästner, Saake Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Folie 11-10 Vorgehen Berkeley DB Refactoring von Berkeley DB (extractive approach) Transformation in C++ Code Umwandeln von #ifdef in Klassenverfeinerung Extraktion weiterer Features 35 features, 24 optional 400,000 Varianten möglich Featurediagramm - Ausschnitt
Apel, Kästner, Saake Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Folie 11-11 Binary size [kb] Berkeley DB Binäre Größe Vergleichbare Codegröße (C vs. FeatureC++) FeatureC++: Kein Code zur Konfiguration (z.b. Funktionszeiger) Compilerunterschiede 700 600 500 C FeatureC++ besser 400 300 200 100 0 1 2 3 4 5 6 7 8 Configuration
Apel, Kästner, Saake Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Folie 11-12 besser Mio. queries / s Berkeley DB Performance Lesender Benchmark (Oracle) 2,5 C FeatureC++ 2 1,5 1 0,5 0 1 2 3 4 5 6 7 Configuration
Apel, Kästner, Saake Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Folie 11-13 Berkeley DB Probleme Extrahieren von Features Zerlegung mit Extract Method Refactoring Hook Methoden Feature-Interaktionen Weitere Module (derivatives) Zusätzlicher Aufwand Variable Signatur z.b. DB::put(KEY, VALUE, TXN); Variable Schnittstelle Probleme bei der Verwendung Probleme durch extraktives Vorgehen? Siehe Folie 9-29
Apel, Kästner, Saake Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Folie 11-14 Agenda Berkeley DB (extraktives Vorgehenmodell) FAME-DBMS (proaktives/reaktives Vorgehensm.) Maßgeschneidertes SQL Variabilität im Datenbankschema Vertikale Integration
Apel, Kästner, Saake Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Folie 11-15 Laborpraktikum Maßgeschneidertes Datenmanagement WS07/08 Entwurf und Entwicklung eines DBMS Prototypen Neuentwicklung von DBMS-Produktlinie BTnode
Apel, Kästner, Saake Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Folie 11-16 BTNode Microcontroller: Atmel ATmega 128L (8 MHz @ 8 MIPS) Memories: 64+180 Kbyte RAM, 128 Kbyte FLASH ROM, 4 Kbyte EEPROM Bluetooth subsystem: Zeevo ZV4002, supporting AFH/SFH Scatternets with max. 4 Piconets/7 Slaves, BT v1.2 compatible Low-power radio: Chipcon CC1000 operating in ISM band 433-915 MHz External Interfaces: ISP, UART, SPI, I2C, GPIO, ADC, Timer, 4 LEDs Standard C Programming, TinyOS compatible
Apel, Kästner, Saake Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Folie 11-17 Szenarien
Apel, Kästner, Saake Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Folie 11-18 FAME-DBMS Entwicklung als Produktlinie (FeatureC++)
Apel, Kästner, Saake Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Folie 11-19 FAME-DBMS Varianten Hash LFU LRU WIN Nut- OS No- Index Index Debug ging Put Delete Get BinaySize X X X X X X X X 96 KB X X X X X X X 92 KB X X X X X X 80 KB X X X X X X X X 100 KB X X X X X X X 85 KB X X X X X X 62 KB X X X X X X X 88 KB X X X X X X X 76 KB X X X X X X 69 KB X X X X X 62 KB X X X X X X X X 92 KB X X X X X X X 88 KB X X X X X X 80 KB X X X X X X X 69 KB X X X X X X 66 KB X X X X X 57 KB X X X X X X X X 92 KB X X X X X X 84 KB
Apel, Kästner, Saake Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Folie 11-20 Robby-DBMS Projekt ähnlich zu FAME-DBMS (gleiche Motivation, neu entwickelt)
Apel, Kästner, Saake Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Folie 11-21 Kollaborationen in RobbyDBMS
Apel, Kästner, Saake Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Folie 11-22 RobbyDBMS Varianten
Apel, Kästner, Saake Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Folie 11-23 Erweiterungen FAME-DBMS als Testbett für diverse Erweiterungen und Produktlinien-Werkzeuge Erweiterung um Tabellen, Data-Dictionary (aktuell) Experimente zur Anfrageverarbeitung (aktuell) Erweiterung um verschiedene Transaktionsverwaltungen (geplant) Mehr alternative Features (geplant) Fallstudien z.b. zur Messung nicht-funktionaler Eigenschaften (Performance, Größe, )
Apel, Kästner, Saake Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Folie 11-24 Agenda Berkeley DB (extraktives Vorgehenmodell) FAME-DBMS (proaktives/reaktives Vorgehensm.) Maßgeschneidertes SQL Variabilität im Datenbankschema Vertikale Integration
Apel, Kästner, Saake Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Folie 11-25 Maßgeschneiderte SQL-Anfrageverarbeitung SQL mehrfach standardisiert: Erste Standardisierung 1986 durch ANSI SQL2 (SQL-92) viele neue Statements und Erweiterungen SQL3 (SQL:1999) fünf Packages: Framework, Foundation, CLI, PSM, OLB SQL:2003 drei weitere Packete: XML, JRT and MED SQL in eingebetteten Systemen Smartcards (SCQL) Sensornetzwerke: Erweiterungen notwendig Problem: Ressourcenbeschränkungen Idee: Maßgeschneiderte SQL Anfrageverarbeitung
Apel, Kästner, Saake Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Folie 11-26 Warum massgeschneidertes SQL Konfiguration einer Datenbank mit vielen Features schwierig Kennt der Benutzer alle Interna? LFU vs. LRU Aber: Benutzer weiss, welche Anfragen er stellen will Konfiguration von SQL Auswahl der passenden Datenbank Auswahl von existierenden DBMS Neuimplementierung Generierung aus DBMS-Produktlinie
Apel, Kästner, Saake Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Folie 11-27 Zerlegung von SQL Zwei Beispiele Nach Funktionen Syntaxgetrieben
Apel, Kästner, Saake Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Folie 11-28 Von massgeschneidertem SQL zum massgeschneiderten DBMS
Apel, Kästner, Saake Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Folie 11-29 Variables SQL - Folgen Variabler SQL Parser Variabler SQL Optimierer Unterschiedliche Operationen (Join, Aggregation, )
Apel, Kästner, Saake Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Folie 11-30 Parser Generierung aus Grammatik-Produktlinie
Apel, Kästner, Saake Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Folie 11-31 Agenda Berkeley DB (extraktives Vorgehenmodell) FAME-DBMS (proaktives/reaktives Vorgehensm.) Maßgeschneidertes SQL Variabilität im Datenbankschema Vertikale Integration
Apel, Kästner, Saake Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Folie 11-32 Maßgeschneidertes Datenbankschema Arbeitet jede maßgeschneiderte Anwendung auf der gleichen Datenbank? Variant A Software Produktlinie FAME-DBMS OS BufferMgr Debug Logging Storage Generation Variant B Nut/OS Win Persistent InMemory API B + Tree Unindexed MemAlloc PageRepl. get put delete Static Dyn. LRU LFU Variant C
Apel, Kästner, Saake Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Folie 11-33 Variabilität in Datenbankschemata Kluft zwischen maßgeschneiderter Client- Anwendung und konstantem DB-Schema Maßgeschneiderte Anwendung verwendet nur Teilschema Tote Tabellen Integritätsprobleme Erhöhter Wartungsaufwand Alternative Features benötigen alternative Teilschemata Problem: Wartbarkeit von großen Produktlinien mit hoher Flexibilität
Apel, Kästner, Saake Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Folie 11-34 Beispiel: Uni-Verwaltungssoftware (Produktlinie) Produktlinie für Universitätssoftware Alternative Features für Speicherung der Literatur Optionale Features für Raumplanung etc.
Apel, Kästner, Saake Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Folie 11-35 Bisherige Lösung Ein globales allumfassendes Schema Redundanzen bei Alternativen Erhöhter Wartungsaufwand Tote Tabellen und Spalten Views über Schema SBook und Book / Author teilweise redundant
Apel, Kästner, Saake Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Folie 11-36 FOP Ansatz für Datenmodelle Trennung der Features und deren Teilschemata Schema-Komposition mit FeatureHouse Ähnliche Ansätze mit UML/XMI
Apel, Kästner, Saake Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Folie 11-37 Alternativ: Annotativer Ansatz Schema wird mit Features annotiert (wie #ifdef) Sichten auf Varianten
Apel, Kästner, Saake Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Folie 11-38 Agenda Berkeley DB (extraktives Vorgehenmodell) FAME-DBMS (proaktives/reaktives Vorgehensm.) Maßgeschneidertes SQL Variabilität im Datenbankschema Vertikale Integration
Apel, Kästner, Saake Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Folie 11-39 Vertikale Komposition Erstellung des Gesamtsystems als Produktlinie über Produktlinien Produktlinien in Sensorsystem: Betriebssystem (OS) DBMS Anwendungssoftware Passende Konfiguration sehr komplex Vision: Wiederverwendung (Nutzerverwaltung, Pufferv.) Optimierung über Produktlinien hinweg
Apel, Kästner, Saake Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Folie 11-40 Vertikale Komposition Konfiguration Vorgabe von Constraints / Anforderungen an darunterliegende Schichten Anpassung der oberen Schichten an Konfiguration darunterliegender Schichten Automatisierung als Ziel Konfiguration der Hardware als Eingabe oder Ergebniss
Apel, Kästner, Saake Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Folie 11-41 Zusammenfassung Maßgeschneiderte Datenhaltung mit FOP + AOP Berkeley DB: verkleinert, beschleunigt FAME-DBMS: flexibles, kleines, erweiterbares DBMS FOP scheint prinzipiell geeignet Maßgeschneidertes SQL Variabilität in ER-Diagrammen Mehrere Produktlinien (vertikal) integrieren
Apel, Kästner, Saake Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Folie 11-42 Literatur Marko Rosenmüller, Norbert Siegmund, Horst Schirmeier, Julio Sincero, Sven Apel, Thomas Leich, Olaf Spinczyk, and Gunter Saake. FAME- DBMS: Tailor-made Data Management Solutions for Embedded Systems. In Workshop on Software Engineering for Tailor-made Data Management, 2008. Marko Rosenmüller, Christian Kästner, Norbert Siegmund, Sagar Sunkle, Sven Apel, Thomas Leich, and Gunter Saake. SQL à la Carte - Toward Tailor-made Data Management. In GI-Fachtagung Datenbanksysteme für Business, Technologie und Web (BTW). 2009. Norbert Siegmund, Christian Kästner, Marko Rosenmüller, Florian Heidenreich, Sven Apel, and Gunter Saake. Bridging the Gap Between Variability in Client Application and Database Schema. In GI- Fachtagung Datenbanksysteme für Business, Technologie und Web (BTW). 2009.
Apel, Kästner, Saake Erweiterte Programmierkonzepte für maßgeschneiderte Datenhaltung Folie 11-43 Literatur II Marko Rosenmüller, Sven Apel, Thomas Leich, and Gunter Saake. Tailor-Made Data Management for Embedded Systems: A Case Study on Berkeley DB. Data and Knowledge Engineering (DKE), 68(12):1493-1512, Dec. 2009. Martin Schäler, Thomas Leich, Norbert Siegmund, Christian Kästner, and Gunter Saake. Generierung maßgeschneiderter Relationenschemata in Softwareproduktlinien mittels Superimposition. In 14. GI- Fachtagung Datenbanksysteme für Business, Technologie und Web, 2011. Diverse Diplomarbeiten zu Berkeley DB, Speichernmanager, Transaktionsverwaltung, RobbyDBMS und Werkzeugen http://wwwiti.cs.uni-magdeburg.de/iti_db/publikationen/diplomarbeiten.html