Jekyll2018-03-29T18:04:36+02:00/Bachelor- & Masterarbeiten DBIS + BaqendContent Management for Serverless Architectures2017-06-08T00:00:00+02:002017-06-08T00:00:00+02:00/content-management-in-backend-as-a-service-systems<p><strong>Geeignet für: </strong> Bachelorarbeit oder Masterarbeit</p>
<p>In dieser Arbeit soll untersucht werden, wie Content-Management Funktionen in Backend-as-a-Service (BaaS) Systemen implementiert werden können. Bisher treten beide Paradigmen getrennt auf: BaaS als wichtiger Ansatz für <em>Serverless Architectures</em> verspricht durch potente Standard-APIs für Daten und Anwendungslogik die Entwicklung von Webseiten und Apps zu vereinfachen, während Content Management Systeme (CMS) integraler Bestandteil vieler Webplattformen sind, um Autoren und Redakteruren eine möglichste einfache Gestaltung von Inhalten zu ermöglichen. Diese Arbeit soll untersuchen, wie sich Content Mangement in der BaaS-Plattform Orestes umsetzen lässt, um die Vorteile beider Ansätze zu vereinen.</p>
<h2 id="ziele">Ziele:</h2>
<ul>
<li><strong>Recherche: </strong> Welche Funktionen benötigt ein modernes CMS: Autoren-UI, Audit-Trail mit Versionshistorie, verschiedene Zustände von Artikeln (Draft, Public)? Wie funktioniert die Datenmodellierung in Orestes/Baqend? Kann ein bestehendes Headless CMS (z.B. Netlify CMS) oder ein Static Site Generator (Jekyll) sinnvoll adaptiert werden?</li>
<li><strong>Entwurf und Implementierung </strong> von Content Management in Orestes: neue Autoren-Dashboard-Oberfläche zum Editieren und Prüfen von Content. Erweiterung der Datenmodellierung um Abstraktionen für Content-Management (welche Felder können geändert werden, wie werden sie dargestellt, Constraints, etc.).</li>
<li><strong>Evaluation </strong> der Implementation durch die Realisierung eines Blogs oder einer News-Webseite als Case Study. Vergleich der Funktionalität mit verbreiteten CMS. Performance-Analyse z.B. gegenüber Wordpress oder Drupal.</li>
</ul>
<h2 id="literatur">Literatur:</h2>
<ul>
<li>Übersicht <a href="https://headlesscms.org/">Headless CMS Systeme</a></li>
<li>Übersicht <a href="https://www.staticgen.com/"> Static Site Generators</a></li>
<li><a href="https://martinfowler.com/articles/serverless.html">Serverless Paradigma </a></li>
<li><a href="http://www.baqend.com/">Baqend als Backend-as-a-Service System (Orestes-basiert) </a></li>
<li><a href="https://www.contentful.com/">Contenful als Beispiel für ein modernes CMS</a></li>
<li>Literatur zu Orestes (siehe Einführung)</li>
</ul>Felix Gessertgessert@informatik.uni-hamburg.dehttps://vsis-www.informatik.uni-hamburg.de/vsis/members/look/1264Geeignet für: Bachelorarbeit oder MasterarbeitBringing Object-Oriented Databases to the Web2017-06-08T00:00:00+02:002017-06-08T00:00:00+02:00/bringing-object-oriented-databases-to-the-web<p><strong>Geeignet für:</strong> Bachelorarbeit</p>
<p>In dieser Arbeit soll eine der führenden objektorientierten Datenbanken Actian NoSQL (ehemals Versant) über Orestes für Uses-Cases im Web erweitert werden. Orestes bietet Interfaces für verschiedene Datenbankoperationen, die implementiert werden können (siehe Graphik). Orestes reichert das System auf diese Weise automatisch mit Caching, Transaktionen, Schema-Management, server-seitigem Business Code, User-Management etc. an. Actian NoSQL wird hiermit durch die Baqend REST/HTTP Schnittstelle und das JavaScript API aus beliebigen Umgebungen, u.a. Webseiten und Apps ansprechbar. Eine Implementation von 2012 auf einer früheren Version von Orestes kann für die Arbeit weitergenutzt werden.</p>
<p><img src="/assets/images/versant1.png" alt="" /></p>
<p>Eigenschaften der ursprünglichen Implementierung (2012):</p>
<ul>
<li>Uses the Versant’s Java JDO client API</li>
<li>Based on the StorageManager interface in the VDS layer</li>
<li>All CRUD and query operations available via the REST API</li>
<li>Schemas/metadata are transferred in binary, updates were not supported through the API</li>
<li>Optimistic transactions based on VOD transactions
<ul>
<li>Replaced by a more scalable implementation later on</li>
<li>Could also be used for VOD</li>
</ul>
</li>
</ul>
<p>Ziele:</p>
<ul>
<li>Universal REST API for Actian NoSQL users</li>
<li>Versant queries can easily be plugged into Orestes</li>
<li>New optimistic transaction API, which should work very well with the Versant API (Bulk updates at commit time), not public yet</li>
<li>All CRUD operations can be executed within a transaction or executed alone</li>
<li>Baqend schema API now supports many update operations (rename, indexes, add/drop schema and fields, type up/downcast, inheritance) -> schema migrations can be mapped</li>
</ul>
<p>Für die Bearbeitung werden alle benötigten Lizenzen, Umgebungen und Tools zur Verfügung gestellt.</p>
<h3 id="literatur">Literatur:</h3>
<ul>
<li><a href="https://vsis-www.informatik.uni-hamburg.de/getDoc.php/thesis/605/bachelor.pdf">Bachelorarbeit</a> und <a href="https://vsis-www.informatik.uni-hamburg.de/getDoc.php/thesis/695/MasterarbeitOpt.pdf">Masterarbeit</a> zu der ursprünglichen Integration von Versant in Orestes</li>
<li><a href="/paper/">Paper & Literatur</a></li>
<li><a href="https://www.actian.com/data-management/versant-nosql-object-database/">Actian Versant NoSQL</a></li>
</ul>Felix Gessertgessert@informatik.uni-hamburg.dehttps://vsis-www.informatik.uni-hamburg.de/vsis/members/look/1264Geeignet für: BachelorarbeitThemen und Modelle für Doktorarbeiten2017-06-07T00:00:00+02:002017-06-07T00:00:00+02:00/themen-und-modelle-fur-doktorarbeiten<p>Wir suchen aktuell nach engagierten Promovenden, die an Datenbanken-, Web- und Big Data-Themen im Bereich von Orestes und Baqend forschen möchten. Die Promotion findet an Datenbankgruppe der Uni Hamburg unter der Betreuung von Prof. Dr. Norbert Ritter statt.</p>
<p>Die primären Forschungsgebiete betreffen:</p>
<ul>
<li>Cloud Computing, Database/Backend-as-a-Service</li>
<li>Web Caching and Replication</li>
<li>NoSQL, Scalable Databases, Distributed Systems</li>
<li>Web Protocols, REST, Microservices</li>
<li>Application Architectures, Mobile Computing</li>
<li>Data Management for Mobile and Web Apps</li>
<li>Big Data Processing</li>
<li>Probabilistic Data Structures, Stream Processing</li>
<li>Polyglot Persistence</li>
</ul>
<p>Einen guten Überblick über relvante Themengebiete gibt auch der von uns jedes Jahr veranstaltete <a href="http://scdm.cloud">Scalable Cloud Data Management Workshop</a>.</p>
<h3 id="halbzeit-promotion-forschung-an-uni-mit-arbeit-bei-baqend-kombiniert">Halbzeit-Promotion: Forschung an Uni mit Arbeit bei Baqend kombiniert</h3>
<p>Das erste Modell ist eine Halbzeit-Promotion, mit einer halben Stelle an der Universität Hamburg und einer halben Stelle bei Baqend. Der große Vorteil dieses Modells ist, dass sehr anwendungsnahe aber dennoch anspruchsvolle Gebiete beforscht und praktisch bearbeitet werden können. D.h., für alle die gerne echte Probleme lösen, aber dennoch neue Ansätze erforschen möchten, ist dieses Modell eine ungewöhnlich vielseitige Lösung.</p>
<h3 id="vollzeit-promotion">Vollzeit-Promotion</h3>
<p>Als Nachfolger von Felix Gessert und Wolfram Wingerath sind derzeit auch Vollzeit-Promotionen möglich. Auch bei dieser Variante besteht die spannende Möglichkeit, Forschungsinhalte an echten Use-Cases und Requirements im Umfeld von Baqend auszurichten. Die damit einhergehende Betreuung und der bestehende Katalog an Forschungsfragen erlaubt einen extrem schnellen Einstieg in eine Promotionsthema.</p>
<h3 id="abschlussarbeit-mit-anschließender-promotion">Abschlussarbeit mit anschließender Promotion</h3>
<p>Ein bewährtes Vorgehen ist, im Kontext einer von uns betreuten Abschlussarbeit mit einem Thema zu beginnen. Bei erfolgreicher Bearbeitung ist es anschließend besonders gut möglich, im Kontext des Themas ein Promotionsthema aufzustellen.</p>
<h3 id="interesse-an-details">Interesse an Details?</h3>
<p>Bitte eine Email an Felix Gessert schicken (siehe links). Bei einem Treffen können dann alle Details und Fragen besprochen werden.</p>Felix Gessertgessert@informatik.uni-hamburg.dehttps://vsis-www.informatik.uni-hamburg.de/vsis/members/look/1264Wir suchen aktuell nach engagierten Promovenden, die an Datenbanken-, Web- und Big Data-Themen im Bereich von Orestes und Baqend forschen möchten. Die Promotion findet an Datenbankgruppe der Uni Hamburg unter der Betreuung von Prof. Dr. Norbert Ritter statt.The NoSQL Toolbox: an Interactive Database Selection Tool2017-06-07T00:00:00+02:002017-06-07T00:00:00+02:00/the-nosql-toolbox-an-interactive-database-selection-tool<p><strong>Geeignet für:</strong> Bachelorarbeit oder Masterarbeit</p>
<p>In dieser Arbeit soll die Idee des “NoSQL Entscheidungsbaums” weiterentwickelt werden zu einem interaktiven Web-Tool. Ziel: Anwender geben ihre Anforderungen ein (z.B. geringe Latenz bei Reads, Joins, hohe Verfügbarkeit) und das Tool wählt darauf in Frage kommende NoSQL Systeme aus. Das existierende Klassifikationsschema kann dabei erweitert und um neue Dimensionen vertieft werden. Ferner ist eine “User-generated Recommendations” Funktion interessant, bei der Anwender ihre Erfahrungen mit den jeweiligen Systemen angeben, die daraufhin mit in den Bewertungsschlüssel einfließen.\
Die Arbeit basiert auf:</p>
<ul>
<li><a href="http://de.slideshare.net/felixgessert/nosql-data-stores-in-research-and-practice-icde-2016-tutorial-extended-version">NoSQL Data Stores in Research and Practice - ICDE 2016 Tutorial (Folien)</a></li>
<li><a href="http://www.baqend.com/files/nosql-survey.pdf">NoSQL Database Systems: A Survey and Decision Guidance (Paper)</a></li>
</ul>
<h3 id="ziele">Ziele:</h3>
<ul>
<li><strong>Analyse</strong> des NoSQL Toolbox Ansatzes (siehe Paper und Präsentation)</li>
<li><strong>Entwurf und Implementierung</strong> einer Webanwendung zu Filterung passender Systeme, mit Bewertungsoption durch Nutzer.</li>
<li><strong>Erweiterung</strong> des NoSQL Toolbox Ansatzes um weitere Systeme, z.B. anhand von <a href="http://db-engines.com/de/ranking">DB Engines</a>.</li>
</ul>
<h3 id="einführungsliteratur">Einführungsliteratur:</h3>
<ul>
<li><a href="http://www.baqend.com/files/nosql-survey.pdf">NoSQL Database Systems: A Survey and Decision Guidance (Paper)</a></li>
</ul>
<h3 id="vertiefungsliteratur">Vertiefungsliteratur:</h3>
<ul>
<li>NoSQL Literatur aus dem allgemeinen Teil oben</li>
<li>Vorschlag zur Umsetzung als Web-Anwendung: <a href="https://angularjs.org/">Angular.js</a> mit <a href="http://www.baqend.com/">Baqend</a></li>
</ul>Felix Gessertgessert@informatik.uni-hamburg.dehttps://vsis-www.informatik.uni-hamburg.de/vsis/members/look/1264Geeignet für: Bachelorarbeit oder MasterarbeitState Management in Distributed Low-Latency Stream Processors2017-06-07T00:00:00+02:002017-06-07T00:00:00+02:00/state-management-in-distributed-low-latency-stream-processors<p><strong>Geeignet für:</strong> Masterarbeit</p>
<p><a href="http://storm.apache.org/">Apache Storm</a> ist ein System zur Verarbeitung kontinuierlicher Datenströme (Distributed Stream Processor, DSP) mit besonders geringer Ende-zu-Ende-Latenz. Es verteilt nicht nur einzelne Prozesse einer verteilten Anwendung auf mehrere Maschinen in einem Clusterverbund, sondern startet abgestürzte Prozesse auch auf anderen Maschinen neu; um dieses Feature auch für zustandsbehaftete Anwendungen nutzbar zu machen, bietet Storm ein Checkpoint-basiertes State Management, welches den Zustand der einzelnen Prozesse periodisch festschreibt. Die Erstellung eines Checkpoint liegt jedoch auf dem kritischen Verarbeitungspfad eines Prozesses und verläuft obendrein synchron, sodass sie unter Umständen starke Auswirkungen auf die Latenz in der Verarbeitungspipeline hat.\
Ziel der Arbeit ist die Implementation und Evaluierung eines komplett asynchronen State Management in Storm.</p>
<h3 id="ziele">Ziele:</h3>
<ul>
<li><strong>Recherche</strong> geeigneter Algorithmen zur Bestimmung des globalen Systemzustands in einem verteilten System (siehe auch Vertiefungsliteratur unten) und insbesondere eine Analyse der Ansätze zum State Management der populärsten DSPs (etwa <a href="http://storm.apache.org/">Storm</a>, <a href="http://flink.apache.org/">Flink</a>, <a href="http://apex.apache.org/">Apex</a>, <a href="http://samza.apache.org/">Samza</a> oder <a href="http://spark.apache.org/streaming/">Spark Streaming</a>)</li>
<li><strong>Entwurf und Implementierung</strong> einer latenzoptimierten State-Implementation in Storm, die möglichst wenige Einschränkungen bezüglich der Änderungsrate und Größe des Anwendungszustandes bietet und gleichzeitig bestehende Konsistenzgarantien erhält</li>
<li><strong>Evaluation</strong> der Implementation und (quantitativer) Vergleich mit der Standardimplementation in Storm sowie dem State Management in und Flink oder Apex.</li>
</ul>
<h3 id="einführungsliteratur">Einführungsliteratur:</h3>
<ul>
<li><a href="http://storm.apache.org/releases/1.0.1/Concepts.html">Storm: Grundkonzepte</a></li>
<li><a href="https://community.hortonworks.com/articles/14171/windowing-and-state-checkpointing-in-apache-storm.html">Blog-Beitrag über State Management in Storm (ab Abschnitt „State Management”)</a></li>
</ul>
<h3 id="vertiefungsliteratur">Vertiefungsliteratur:</h3>
<ul>
<li><a href="http://research.microsoft.com/en-us/um/people/lamport/pubs/chandy.pdf">Paper zum Chandy-Lamport-Algorithmus</a>: beschreibt einen Algorithmus zur Erstellung verteilter Snapshots; beschreibt auch anschaulich die Schwierigkeit dabei, den globalen Zustand in einem verteilten System festzuhalten</li>
<li><a href="https://github.com/apache/storm">Storm auf GitHub</a>, insbesondere:
<ul>
<li><a href="https://github.com/apache/storm/blob/master/storm-core/src/jvm/org/apache/storm/topology/StatefulBoltExecutor.java">StatefulBoltExecutor.java</a></li>
<li><a href="https://github.com/apache/storm/blob/master/external/storm-redis/src/main/java/org/apache/storm/redis/state/RedisKeyValueState.java">RedisKeyValueState.java</a></li>
</ul>
</li>
</ul>Wolfram Wingerathwingerath@informatik.uni-hamburg.dehttps://vsis-www.informatik.uni-hamburg.de/vsis/members/look/1316Geeignet für: MasterarbeitStartup Survey für Reifegrad-Bestimmung2017-06-07T00:00:00+02:002017-06-07T00:00:00+02:00/startup-survey-fur-reifegrad-bestimmung-vergeben<p><strong>Geeignet für: </strong> Bachelorarbeit, Masterarbeit</p>
<p>Es handelt sich um ein reales Projekt in Zusammenarbeit mit einem Startup: Es soll ein Online-Fragebogen- und Auswertungs-Tool entwickelt (bzw. vohandene Systeme modifiziert/kombiniert werden), das möglichst automatisiert auswerten und anhand eines Reifegradmodells den Befragten benchmarken kann. Dabei soll der deut. Datenschutz beachtet werden.</p>
<h3 id="ziele">Ziele:</h3>
<ul>
<li>Entwurf der Systemarchitektur (Komponenten: Benutzer-Bereich/DB, Fragebogen Front-End, Auswertungs-Backend, Visualisierungs-Komponente, ..)</li>
<li>Recherche und Auswahl eines Fragebogen-Tools füs das Front-End</li>
<li>Entwicklung und Anbindung des Auswertungs-Backend</li>
<li>Implementierung des Gesamtsystems</li>
</ul>
<h3 id="literatur-und-betreeung">Literatur und Betreeung:</h3>
<ul>
<li>Die Arbeit wird u.a. von Alois Krtil von der Innovations Kontakt Stelle (IKS) Hamburg unterstützt</li>
<li><a href="http://thesis.app.baqend.com/files/survey.xlsx">Vorläufige Liste mit potentiellen Survey Tools</a></li>
</ul>Felix Gessertgessert@informatik.uni-hamburg.dehttps://vsis-www.informatik.uni-hamburg.de/vsis/members/look/1264Geeignet für: Bachelorarbeit, MasterarbeitScalable Cache-Aware Optimistic Transactions (SCOT): Distributed Transaction Validation2017-06-07T00:00:00+02:002017-06-07T00:00:00+02:00/scalable-cache-aware-optimistic-transactions-scot-distributed-transaction-validation<p><strong>Geeignet für:</strong> Masterarbeit; hoher Anspruch; Publikation wahrscheinlich</p>
<p>Das SCOT Konzept (siehe Orestes Paper) ist ein Algorithmus, um ACID Transaktionen über beliebige Datenbanken auszuführen und gleichzeitig Leseoperationen aus (potentiell veralteten) Caches zuzulassen. Die neue Kombination aus Caching und optimistischen Transaktionen mit BOCC+ eröffnet die Möglichkeit eines der ältesten Probleme von transaktionalen Systemen zu lösen: hohe Abbruchraten von optimistischen Transaktionen. Der Grund dafür sind schnellere Leseoperationen aus Caches, die die Gesamtausführungszeit von Transaktionen minimieren. Da die Abbruchraten polynomiell von der Transaktionsdauer abhängen, können sie auf diesem Wege drastisch reduziert werden. In der Arbeit soll ein verteilter Transaktions-Validator für SCOT implementiert werden. Dieser erhält als Eingabe die Read- und Write-Sets von committenden Transaktionen, um sie korrekt, performant und ausfallsicher zu validieren.</p>
<h3 id="ziele">Ziele:</h3>
<ul>
<li>Formale Beschreibung von SCOT durch seine Algorithmen <em>Read, Write und Commit</em>. Vergleich mit BOCC+ (zwei Unterschiede: Caching und nebenläufige Validierung nicht-konfliktierender Transaktionen).</li>
<li><strong>Übersicht über Realisierungsalternativen geben</strong>: auf Koordinationsdienst wie Redis, ZooKeeper oder etcd aufsetzen, oder Java In-Memory-Implementierung (siehe Omid).</li>
<li><strong>Implementierung</strong>: SCOT-Validator-Service in Orestes und transactional read + transactional write CRUD Operationen. Architektur: Validator-Interface & Klasse für wechselseitigen Ausschluss überlappender Write-Sets <em>acquireLock(tid, writeset)</em>, Validierung des Read-Sets <em>validate(tid, readset, currentDbStateReadSet) -> {commit, abort}</em>. Orestes Coordinator Projekt (basiert auf Redis) erweitern um acquireLock zu implementieren. Resultat: Validierung über lokalen Koordinator möglich (SCOT-embedded) und über verteilten Koordinator (SCOT-distributed).</li>
<li><strong>Diskussion</strong>: Fehlerszenarien (Netzwerkpartitionen und Crashes) und daraus resultierende Garantien des Validators –> Wann muss geloggt werden? Wann können Validierungslocks freigegeben werden? Wie sieht die Restart-Prozedur pro Server aus?</li>
<li><strong>Vertiefung</strong>: Behandlung nicht-transaktionaler Operationen in Kombination mit SCOT-Transaktionen.</li>
<li><strong>SCOT Analyse</strong>: Monte-Carlo Simulation zur empirischen Ermittlung der Abbruchrate von SCOT vs BOCC. Vorbild: <a href="http://pbs.cs.berkeley.edu/#demo">PBS Rechner</a>.
<ul>
<li><strong>Gegeben</strong>: Workload mit object count (n), popularity distribution, workload mix (read/write) (siehe YCSB) + cache-TTL (ttl), Bloom filter false positive rate (f), Transaction Parallelism (p).</li>
<li><strong>Annahme</strong>: ein shared cache (einfachster Fall) und Abruf des Bloom filter zu Beginn einer Transaktion.</li>
<li><strong>Latenzen</strong>: Client-Cache, Cache-Server, Server-DB einstellbar. Standard-Werte: siehe Cache Sketch Paper.</li>
<li><strong>Finde</strong>: Abbruchrate mit Caching + BF vs Abbruchrate ohne Caching + BF durch Monte-Carlo-Simulation (siehe PBS), d.h. ziehen von Latenzen, virtuelles Ausführen der parallelen Transaktionen, Validierung (Commit vs Abort?), Sammeln der Metriken Commits, Aborts, Hits, Misses.</li>
</ul>
</li>
<li><strong>Praktische Evaluation</strong>: verteilte Validierung in Orestes mit MongoDB auf Performance und Korrektheit testen. Vergleich: Kein Caching vs Caching -> Abbruchraten.</li>
</ul>
<h3 id="einführungsliteratur">Einführungsliteratur:</h3>
<ul>
<li><a href="http://pbs.cs.berkeley.edu/">Probabilistically Bounded Staleness (Simulationsidee)</a></li>
<li><a href="http://www.baqend.com/paper/clouddb.pdf">Orestes Paper, Kapitel IV</a></li>
<li><a href="http://www.baqend.com/paper/btw-cache.pdf">Cache Sketch Paper, Kapitel 1 und 2.1</a></li>
<li><a href="http://www.btw-2015.de/res/slides/Gessert-The_Cache_Sketch-165_slides.pdf">Cache Sketch Präsentation</a></li>
<li><a href="http://link.springer.com/book/10.1007/978-3-642-45242-0">Verteiltes und Paralleles Datenmanagement, Kapitel 12.4, Optimistische Transaktionen</a></li>
</ul>
<h3 id="vertiefungsliteratur">Vertiefungsliteratur:</h3>
<ul>
<li><a href="http://books.google.de/books?id=aHrXH_aYm8YC&pg=PA345&lpg=PA345&dq=optimistic+transactions+conflict+probability&source=bl&ots=j_JW5NPlxO&sig=YrtIoFHuucUaGBSGzIq3n3l_rXY&hl=de&sa=X&ei=9BonU6bSG8bRtQb1moC4Ag&ved=0CDsQ6AEwAQ#v=onepage&q=optimistic%20transactions%20conflict%20probability&f=false">Performance Evaluation: Origins and Directions, Kapitel 5.2</a></li>
<li><a href="http://ipij.aei.polsl.pl/django-media/lecture_file/ycsb.pdf">Benchmarking cloud serving systems with YCSB</a></li>
<li><a href="http://nosqlmark.informatik.uni-hamburg.de/sdb2014/res/paper/Omid.pdf">Omid: Lock-free transactional support for distributed data stores</a></li>
<li><a href="http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=7113278">Scalable distributed transactions across heterogeneous stores</a></li>
<li><a href="https://www.dropbox.com/s/x3knzlk0kehalr3/Paper.pdf?dl=0">Orestes Paper Entwurf, Kapitel III c</a></li>
<li><a href="http://redis.io/topics/transactions">Redis Optimistic Transactions (Basis des Orestes Coordinators)</a></li>
</ul>Felix Gessertgessert@informatik.uni-hamburg.dehttps://vsis-www.informatik.uni-hamburg.de/vsis/members/look/1264Geeignet für: Masterarbeit; hoher Anspruch; Publikation wahrscheinlichSandboxing Node.js for Dockerized Cloud Environments2017-06-07T00:00:00+02:002017-06-07T00:00:00+02:00/sandboxing-nodejs-for-dockerized-cloud-environments<p><strong>Geeignet für:</strong> Masterarbeit</p>
<p>In dieser Arbeit soll untersucht werden, wie ein Node.js Server, auf dem “untrusted” Application Code von Usern ausführt wird, effektiv einem Sandboxing unterzogen werden kann. Dabei wird davon ausgegangen, dass der Node.js Server in einer Cloud Umgebung beliebigen Code von Usern ausführt und einem Docker-Container isoliert ist. Das Saandboxing soll - soweit technisch umsetzbar - folgendes gewährleisten:</p>
<ul>
<li>Limitierung der CPU-Ressourcen, kein Filesystem-Zugriff (durch Docker weitestgehend gegeben)</li>
<li>Limitierung von Netzwerk I/O (z.B. Aufrufe von REST-APIs)</li>
<li>Messung des erzeugten I/O Traffics (z.B. für Statistiken)</li>
<li>Limitierung der Ausführungzeit aufgerufener Funktionen, inklusive der dadurch aufgerfuenen Funktionen, auch asnychron (z.B. Durch Netzwerkommunikation, oder setTimeout)</li>
</ul>
<h3 id="ziele">Ziele:</h3>
<ul>
<li><strong>Recherche</strong> zu existrierenden Sanboxing Ansätzen für <a href="https://nodejs.org/en/">Node</a>( <a href="https://nodejs.org/api/vm.html">Node VM</a>) und den Sandboxing Möglichkeiten von <a href="https://www.docker.com/">Docker</a></li>
<li><strong>Entwurf und Implementierung</strong> einer Sandboxing-Lösung für obige Anforderungen</li>
<li><strong>Evaluation</strong> der Implementation und (quantitativer) Vergleich mit der Ausführung ohne Sandboxing/Node.js.</li>
</ul>
<h3 id="einführungsliteratur">Einführungsliteratur:</h3>
<ul>
<li><a href="http://prakhar.me/docker-curriculum/">Docker for Beginners</a></li>
<li><a href="https://www.airpair.com/javascript/node-js-tutorial">Node.js: Tutorial</a></li>
</ul>
<h3 id="vertiefungsliteratur">Vertiefungsliteratur:</h3>
<ul>
<li><a href="https://docs.docker.com/">Docker Doku</a>
<a href="https://docs.docker.com/"></a></li>
<li><a href="https://docs.docker.com/"></a><a href="https://nodejs.org/api/">Node.js Doku</a></li>
<li><a href="http://www.amazon.com/Docker-Action-Jeff-Nickoloff/dp/1633430235/ref=sr_1_1?s=books&ie=UTF8&qid=1464959732&sr=1-1&keywords=Docker">Docker in Action</a></li>
<li><a href="http://link.springer.com/book/10.1007/978-1-4302-6596-2">Practical Node.js</a></li>
<li><a href="https://www.coursera.org/learn/server-side-development">Course on Node.js</a></li>
</ul>Felix Gessertgessert@informatik.uni-hamburg.dehttps://vsis-www.informatik.uni-hamburg.de/vsis/members/look/1264Geeignet für: MasterarbeitPolyglot Persistence Mediator: Annotation-based Scoring2017-06-07T00:00:00+02:002017-06-07T00:00:00+02:00/polyglot-persistence-mediator-annotation-based-scoring<p><strong>Geeignet für:</strong> Masterarbeit</p>
<p>Der Polyglot Persistence Mediator (PPM) ist die Vision einer automatisierten Verwendung verschiedener Datenbanksysteme (Polyglot Persistence) durch die deklarative Angabe von Anforderungen. Diese werden in Form von Service Level Agreements (z.B. Latenz < 30ms, Top-K-Queries) am Schema annotiert. Ein Scoring ermittelt anhand dieser Annotationen die ideale Datenbank für jedes Element des Schemas (Routing Model). Der PPM routet zur Laufzeit gemäß des Routing-Models die Anfragen und CRUD Operationen zur passenden Datenbank. Ziel dieser Arbeit ist das Anlegen eines Katalogs einiger umsetzbarer Annotationen/SLAs, die Implementierung des Scoring Algorithmus für diese SLAs (siehe <a href="http://www.baqend.com/paper/btw-polyglot.pdf">Paper</a>), sowie die Umsetzung des Routings für die Kombination aus Redis und MongoDB.</p>
<h3 id="ziele">Ziele:</h3>
<ul>
<li><strong>Katalog von SLAs anlegen</strong>: kategorisieren nach functional, non-functional und continuous non-functional, Annotationslevel (DB, Table, Feld). Jeweils “Patterns” zu einer möglichen naiven Implementierung ohne PPM sammeln, zu messende Metriken und Arten der Erfassung pro SLA diskutieren, bei binären Eigenschaften: Literatur-Recherche, wie/ob sie in Redis und MongoDB sicherzustellen sind.</li>
<li><strong>Routing-Strategien</strong>: Katalog für die notwendigen Aktionen des PPMs zur Sicherstellung der jeweiligen SLAs diskutieren, sowie Metrik-Erfassung. Vier Modelle erötern:
<ul>
<li><strong>PPM-mixed</strong>: unterschiedliche Zieldatenbanken für jedes Schemaelement (Feld, Table, DB) zulassen -> maximale Heterogenität, maximaler Koordinationsaufwand, potentiell ideale Performance</li>
<li><strong>PPM-microbatched</strong>: wie PPM-mixed, aber ein System wird als “primary database” designiert und erhält in Microbatches (z.B. alle 5 Sekunden), alle (verdichteten) Updates -> beliebige Queries auf allen Daten mit Staleness-Bound des Microbatch-Intervalls</li>
<li><strong>PPM-entity</strong>: Es wird garantiert, dass Objekte jeweils vollständig (ohne Zerlegung) in einer Datenbank angespeichert werden -> einfaches Routing, ponteziell konfliktierende Anforderungen zwischen Feldern</li>
<li><strong>PPM-advisory</strong>: Es wird lediglich ermittelt, welche Datenbank für das Gesamtschema den besten Score erzielen kann -> effektiv kein Routing und keine polyglotte Persistenz, sondern nur ein Hint welches System insgesamt den besten Trade-off liefert.</li>
</ul>
</li>
<li><strong>Implementierung:</strong> SLAs modellieren und Schema erweitern um Annotationen zu tragen. Scoring Algorithmus aus Paper implementieren und Routing Modell generieren. Laufzeit-Routing für ausgewählte SLAs in Orestes implementieren, d.h. korrekte Weiterleitungen an die Redis und MongoDB Schnittstellen und Ergänzungen von Metadaten, um spätere Auflösung bei Reads und Queries vorzunehmen.</li>
<li><strong>Evaluation:</strong> Performance verschiedener SLA-Kombinationen messen und mit nicht-polyglotter Umsetzung auf jeweils MongoDb und Redis vergleichen (mit und ohne Orestes).</li>
</ul>
<h3 id="einführungsliteratur">Einführungsliteratur:</h3>
<ul>
<li><a href="http://www.baqend.com/paper/btw-polyglot.pdf">BTW Polyglot Persistence Paper: Idee des Polyglot Persistence Mediators</a></li>
<li><a href="http://www.btw-2015.de/res/slides/Schaarschmidt-Towards_Automated_Pol_slides.pdf">Zugehörige Präsentation</a></li>
<li><a href="http://www.baqend.com/guide/">Orestes Schnittstellendokumentation</a></li>
</ul>
<h3 id="vertiefungsliteratur">Vertiefungsliteratur:</h3>
<ul>
<li><a href="https://www.dropbox.com/s/q2gwtl4p0063qxq/Bachelorarbeit.pdf?dl=0">PPM Masterarbeit (Use-Case mit News-Artikeln)</a></li>
<li><a href="http://docs.mongodb.org/manual/">MongoDB</a></li>
<li><a href="http://redis.io/">Redis</a></li>
<li><a href="http://shop.oreilly.com/product/0636920032175.do">Martin Kleppmann - Designing Data-Intensive Applications</a></li>
<li><a href="http://orestes.info/assets/files/Masterarbeit.pdf">Erhard Rahm, Gunter Saake, Kai-Uwe Sattler - Verteiltes und Paralleles Datenmanagement</a></li>
</ul>Felix Gessertgessert@informatik.uni-hamburg.dehttps://vsis-www.informatik.uni-hamburg.de/vsis/members/look/1264Geeignet für: MasterarbeitProviding Low Latency for DynamoDB, Cassandra, PostgreSQL, Azure DocumentsDB, RethinkDB, Cassandra through the Orestes Caching Middleware (4 Themen)2017-06-07T00:00:00+02:002017-06-07T00:00:00+02:00/integrating-backend-as-a-service-apis-into-android-ios-zwei-themen<p><strong>Geeignet für:</strong> Masterarbeit oder Bachelorarbeit</p>
<p><strong>Offen:</strong> Azure DocumentsDB, RethinkDB, PostgreSQL</p>
<p>Orestes ist eine datenbankunabhängige Cloud-Middleware für (NoSQL) Datenbanken, die durch Caching extrem geringe Latenz erzielt. Orestes ist so konzipiert, dass durch die Implementierung bestimmter Schnittstellen (z.B. CRUD, Queries, Schemaänderungen) beliebige Datenbanken angebunden und durch eine <em>Unified REST API</em>einheitlich angesprochen werden können. Die Datenbank wird dabei automatisch angereichert um Fähigkeiten, die ihr sonst fehlen, u.a. gloabl verteiltes Web-Caching, semi-strukturierte Schemata, Zugriffskontrolle durch ACLs, etc. Ziel der Arbeit ist die Anbindung eines der Systeme DynamoDB, Cassandra, HBase oder PostgreSQL mit einer Studie darüber, welche Eigenschaften sich erzielen lassen und welche aufgrund der Datenbankarchitektur und seiner Schnittstellen nicht erreichbar sind.</p>
<h3 id="ziele">Ziele:</h3>
<ul>
<li>Analyse der Datenbankeigenschaften aus Sicht der verschiedenen Orestes-Schnittstellen für CRUD, Queries, Partial Updates etc.</li>
<li>Problembeschreibung: Identifikation der fehlenden Fähigkeiten der Datenbank und Studie, welche sich durch Orestes automatisch erzielen lassen.</li>
<li><strong>Konsistenzmodell</strong>: Welche Auswirkung haben die Konistenzgarantien der Datenbank für Clients und wie spielen sie mit Caching zusammen?</li>
<li><strong>Optionale Vertiefung</strong>: welche Skalierbarkeitseigenschaften weist die Datenbank auf und wie können diese durch Orestes in Form von Auto-Scaling genutzt werden?</li>
<li><strong>Implementierung</strong>: Anbindung der Datenbank an Orestes für die umsetzbaren Schnittstellen.</li>
<li><strong>Evaluation</strong>:</li>
</ul>
<h3 id="einführungsliteratur">Einführungsliteratur:</h3>
<ul>
<li><a href="http://www.baqend.com/guide/">Orestes API</a></li>
<li><a href="http://www.baqend.com/paper/clouddb.pdf">CloudDB Paper (Orestes Architektur)</a></li>
<li><a href="http://orestes.info/assets/files/Masterarbeit.pdf">Kapitel 5 u. 5.1.: Beispiel für Redis-Anbindung in Orestes</a></li>
</ul>
<h3 id="vertiefungsliteratur">Vertiefungsliteratur:</h3>
<ul>
<li><a href="/paper/">Übrige Orestes Paper</a></li>
<li><a href="http://cassandra.apache.org/">Cassandra</a></li>
<li><a href="http://hbase.apache.org/">HBase</a></li>
<li><a href="http://www.amazon.de/Mastering-DynamoDB-Tanmay-Deshpande-ebook/dp/B00N1X691W/ref=sr_1_3?ie=UTF8&qid=1436351157&sr=8-3&keywords=dynamodb">Mastering DynamoDB</a></li>
<li><a href="http://www.postgresql.org/">PostgreSQL</a></li>
</ul>Felix Gessertgessert@informatik.uni-hamburg.dehttps://vsis-www.informatik.uni-hamburg.de/vsis/members/look/1264Geeignet für: Masterarbeit oder Bachelorarbeit