en

Willkommen Gast


  • Login
Full load

Wintersemester 2017/2018
Projekt Einführung in die Entwicklung verteilter kontextbasierter Anwendungen
Allgemeine Information
Veranstaltungs-Nr. 64-182
Veranstaltungs-Type Projekt
Veranstalter Dr. Kai Jander, Julian Kalinowski, Gabriel Orsini
Ort F-534
Zeit Do 14-18
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.

Aktuelle Informationen und die Terminplanung finden sich auf der zugehörigen Homepage:
https://vsis-www.informatik.uni-hamburg.de/vsis/teaching/sl/ws17_evka
Vorgehen
In dem Projekt werden eigene Ideen im Kontext der Aufgabenstellung mittels aktueller Technologien praktisch umgesetzt. 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 die ersten Phasen des Lebenszyklus der Softwareentwicklung bis hin zur Implementierung.
  • Die Studierenden praktizieren agiles Projektmanagement in der Softwareentwicklung.
  • Die Studierenden sind in der Lage dezentrale, Peer-to-Peer-basierte Anwendungen mit besonderem Fokus auf Kontextdaten zu konstruieren.
Literatur
Wird zu Beginn der Veranstaltung bekannt gegeben.