en

Willkommen Gast


  • Login
Full load

Wintersemester 2017/2018
Masterprojekt Entwicklung verteilter kontextbasierter Anwendungen
Allgemeine Information
Veranstaltungs-Nr. 64-866-P
Veranstaltungs-Type Masterprojekt
Veranstalter Prof. Dr. Winfried Lamersdorf, Dr. Dirk Bade, Julian Kalinowski, Wolf Posdorfer
Ort F-534
Zeit Do 14-18
Periodizität Wintersemester
Eignung Master
Voraussetzungen Gute bis Sehr Gute Kentnisse in einer Programmiersprache sowie der Umgang mit Datenbanken sind für die erfolgreiche Teilnahme an dieser Veranstaltung verpflichtend!. Weiterführende Kentnisse aus VIS und DIS sind erwünscht.
Inhalt

Im Projekt soll ein Marktplatz für Kontextdaten auf Blockchain-Basis entwickelt werden. Um größtmögliche Flexibilität bei der Umsetzung zu haben, wird überwiegend nicht auf bestehenden Umsetzungen aufgesetzt. Daher soll zunächst ein verteiltes System zur Vernetzung der Teilnehmer entwickelt sowie ein geeignetes Konsensusprotokoll ausgewählt und umgesetzt werden. Für die Anbindung von Anwendungen wird zudem ein Verhandlungsprotokoll sowie ein Konzept für den Datenaustausch benötigt. Wichtige Herausforderungen sind dabei die Entwicklung generischer Schnittstellen zur Nutzung des Marktplatzes für unterschiedliche Zwecke, der Aufbau eines geeigneten dezentralen Netzwerkes (Peer-to-Peer/Super-Peer), Evaluation von unterschiedlichen Protokollen zur Vermeidung von byzantinischen Knoten (Byzantine Fault Tolerance), sowie die geeignete Anbindung von Seitenkanälen zur Datenübertragung. Für die vier Teilaspekte (P2P und Datenverteilung, Blockbildung und Konsens, Transaktionen und Verhandlungsprotokoll, Handel von Kontextdaten) sollen im Projekt Anwendungen entwickelt werden, die dem Anwendungsszenario entsprechend verteilt über mehrere Geräte (mobil sowie stationär) arbeiten. Dazu werden, in Kleingruppen aufgeteilt, Teilkomponenten entworfen und umgesetzt. Das Projekt wird als agiles Softwareentwicklungsprojekt organisiert und bietet viel Raum für Mitgestaltung seitens der Teilnehmer.


Hintergrund:

Blockchains ermöglichen dezentralen Handel, das Anlegen und Transferieren von digitalen Assets, das Bereitstellen von Tokens (vgl. Bitcoin) oder die Ausführung von verteiltem Code (sog. Smart Contracts z.B. in Ethereum). Blockchains vereinen dazu klassisches Peer-to-Peer-Filesharing mit asymmetrischer Kryptografie, um Daten auszutauschen und deren Integrität sicherzustellen. Die Gültigkeit der von allen Knoten gespeicherten Daten wird dabei durch einen verteilten Konsens sichergestellt. Dazu müssen Beweise für die Korrektheit der Daten erbracht werden, z.B. durch Rechenleistung (Proof-of-Work) oder Zugehörigkeit (Proof-of-Stake).



Klassische Anwendungsbeispiele für Blockchains finden sich z.B. im Finanzsektor und der Industrie. Bestimmte, branchenspezifische Anforderungen, z.B. im Energiehandel, bei dem in hohem Takt zwischen verschiedenen, konkurrierenden Parteien vermittelt werden muss, erfordern jedoch neuartige Lösungsansätze. Ähnliches gilt auch für den Handel mit persönlichen Informationen und Kontextdaten. Während Konsumenten ihre Daten heutzutage meist implizit durch Nutzung bestimmter Dienste an die Hersteller abtreten, wächst zunehmend der Wunsch nach Souveränität, d.h. der Herausgabe von Daten nur an bestimmte Parteien oder gegen ein entsprechendes Entgeld.

Um zwischen Anbietern und Nutzern von Daten und Dienstleistungen zu vermitteln und letztlich eine breitere Nutzbarkeit der Daten bzw. einen neutralen Handel zu ermöglichen, bedarf es einer vermittelnden, neutralen Instanz: dem Marktplatz. Dezentrale, offene Marktplätze haben dabei vielerlei Vorteile: Uneingeschränkter Zugang für alle Parteien, Auffindbarkeit von Daten, Transparenz bezüglich des Angebots von Dienstleistungen sowie Souveränität über die angebotenen Daten.
Vorgehen
Das Projektmodul besteht aus einem integrierten Seminar zu aktuellen Forschungsfragen im Bereich verteilter Anwendungen und einem Projekt, in welchem eigene Ideen mittels aktueller Technologien praktisch umgesetzt werden. Nach einer Einführung durch die Veranstalter wird das praktische Verständnis der verwendeten Technologien zunächst durch kleine Tutorials erworben bzw. vertieft. Im weiteren Verlauf werden dann einzelne Aspekte des Gesamtsystems in kleineren Team softwaretechnisch entworfen und realisiert. Grundsätzlich wird die Teilnahme nur bei Vorhandensein praktischer Erfahrung mit Java empfohlen.
Lernziel
  • Die Studierenden erproben den gesamten Lebenszyklus der Softwareentwicklung.
  • Die Studierenden können ein agiles Softwareprojekt organisieren.
  • Die Studierenden sind in der Lage, dezentrale, Peer-to-Peer-basierte Anwendungen mit besonderem Fokus auf Blockchain-basierten Marktplätze für Kontextdaten zu konstruieren.
  • Die Studierenden entwickeln unterschiedliche Strategien zur Realisierung spezifischer Systemaspekte.
  • Die Studierenden können alternative Entwurfsentscheidungen bewerten.
Literatur

Paper

  • Bitcoin: A peer-to-peer electronic cash system, Satoshi Nakamoto, 2008

Bücher

  • Mastering Bitcoin: Programming the Open Blockchain, Andreas Antonopoulos, 2017