Veröffentlicht: von

Problem Description

Blockchain has gained a (sometimes somewhat infamous) reputation as basis for crypto-currencies like BitCoin. But actually, the potential of blockchain reaches far beyond ersatz currencies.

Basically, a blockchain is a secure, distributed ledger (i.e. master record) of transactions. All transactions can be verified by all participants at any given time. No transaction can be altered without being noticed. This makes blockchain a great base for so-called “smart contracts”.

Blockchain-based smart contracts have the potential to disrupt all “trust platform” businesses – as the trust is kind of built into the technology, there is no need for a centralized platform-in-the-middle approach anymore. This is a challenge for the Ubers, AirBnbs, insurances, and banks of this world. Blockchain-based smart contracts offer a reliable, light-weight, and therefore cheap way of creating small-footprint transactions between market participants.

A great introduction to get started on the subject is this reference architecture document: http://www.cloud-council.org/deliverables/CSCC-Cloud-Customer-Architecture-for-Blockchain.pdf.

Project Definition

In this project, we will design a showcase for a smart contract based on blockchain technology. For the purpose, the team will conduct the following steps:

  • Selection of a proper showcase application
    • In collaboration with our project partner, Viadee consulting, the team will pick a showcase, for instance an ad-hoc insurance contract like
      • insuring passengers and material during the test drive of a car
      • insuring open air parties or festivals (i.e. marriages, birthdays, concerts, …) against cancellation or damages due to bad weather
      • insuring medium-priced goods like smart phones, tablets, ski, bikes,… against risk of damage, loss, or theft during a period of increased risk (travel, sports competition, relocation, …)
    • As of planned today, there will be another additional project partner, most likely an international insurance company, helping us with picking a realistic showcase.
  • The subsequent steps will be conducted in two parallel, coupled subprojects:
    • Technology & Implementation (this project)
      • Implementation of the smart contract using Hyperledger Fabric (https://www.hyperledger.org/projects/fabric)
      • Evaluation of technical obstacles and pitfalls
      • Identification of good practices and architectural patterns for building blockchain-based smart contracts
    • Business Case (the other project, supervised by Prof. Eckstein) – please see other description
  • Assessment of blockchain-based smart contracts with regard to the showcase at hand
  • Documentation and presentation

Learning Outcomes

  • Gaining familiarity with a state of the art technology
  • Out-of-the-box thinking, practically applied to some everyday business application
  • Designing and implementing a realistic business case
  • Working together in mixed team (business & technology)

Requirements

  • Willingness to delve into an hitherto unknown technological concept
  • Interest in business model and large-scale implications of technologies
  • Programming skills
  • Willingness and ability to adopt a new technology and programming model (Hyperledger Fabric)

External Project Partner

 

Veröffentlicht: von

Die Klausurergebnisse für ST1 liegen nun vor:
https://ilias.th-koeln.de/goto.php?target=file_973540_download&client_id=ILIAS_FH_Koeln

Die Grenze für das Bestehen der Klausur ist auf 35 Punkte herabgesetzt.

Die Gesamtnote steht noch nicht fest, da noch eine letzte Abstimmung bezüglich der Benotung der Ausarbeitungen fehlt. Dies wird jetzt aber zeitnah erfolgen. Daher habe ich bis jetzt auch nur die mit 5.0 bewerteten Studierenden in PSSO eingetragen. Sie können sich damit ab morgen für Wiederholungsklausur anmelden.

Am kommenden Freitag, 30.6. findet zwischen 10:30 und 13:00 die Klausureinsicht in Raum 1522 statt. Sie brauchen sich dafür nicht anzumelden.

Veröffentlicht: von

Hier finden Sie die Anleitung, wie Sie das erweiterte Beispiel für Spring Data JPA + Spring MVC aufsetzen, das Sie in Softwaretechnik 2 für den Meilenstein „REST-API“ brauchen.

Die Spring IDE setzen Sie bitte so auf wie in der Spring-Data-JPA-Anleitung für Meilenstein 1 beschrieben.

  1. Laden Sie das um den REST-Controller erweiterte und leicht angepasste Beispielprojekt herunter: https://th-koeln.sciebo.de/s/vfhfCwz3bcxXmPu
  2. In Spring: Rechtsklick im Package Explorer
  3. Klicken Sie auf „Import“
  4. Wählen Sie den Reiter „General“ aus und klicken Sie auf: „Existing Project into Workspace“, dann den Button „Next“
  5. Hier „Select archive file“ auswählen und zum Beispielprojekt navigieren
  6. Das Beispielprojekt enthält bereits einen REST-Controller mit ausführlichen Beispielen für verschiedene REST-Aufrufe. Kopieren Sie Ihren Code aus dem „JPA-Meilenstein“ von ST 2 hierhin und ersetzen Sie die Beispiel-Entities.
  7. Zum Ausführen und testen der REST-Schnittstelle empfehlen wir Postman. Damit können Sie sehr einfach REST-Calls simulieren (HTTP-Verb angeben, Query-String-Parameter setzen, Request-Body definieren, Response-Status-Code und Response-Body kontrollieren, etc.)
    • Ein sehr starkes Feature von Postman ist die Möglichkeit, die Aufruf-Historie in „Collections“ zu speichern und daraus mit wenig Aufwand eine Test-Suite zu erzeugen.
    • In dieser Testsuite können Sie dann mit einfachen, intuitiven JavaScript-Befehlen einen JUnit-ähnlich Testverlauf konfigurieren, indem Sie Elemente des Bodies, Status-Codes etc. auf erwartete Werte testen. So können Sie die Szenarien aus dem Meilenstein als Batch-Lauf umsetzen.
  8. Ein Video zu der Benutzung von Postman finden Sie hier (Dank an Tim Müller für die Erstellung des Videos): https://th-koeln.sciebo.de/s/G5JugE7c4WSsu4U

 

 

Veröffentlicht: von

Diese Guided Projects sind Teil des Lehr-/Forschungsprojekts DripInsure.

Rahmen dieses GP-Verbundprojekts

Dieses Verbundprojekts haben Professor Dr. Matthias Böhmer und ich in Zusammenarbeit angeboten. Beide Projekte konnten unabhängig voneinander absolviert werden. Allerdings empfahlen wir, beide Projekte gemeinsam zu belegen, weil sich dadurch die Einarbeitungszeit verringert und ein effektiveres Arbeiten ermöglicht wird.

Die Projekte sind als aufeinanderfolgende Blöcke konzipiert:

  • Projekt 1 (dieses Projekt): März – Mai 2017
  • Projekt 2 (Proof-of-Concept eines IoT-basierten präventiven Versicherungsprozesses):
    Ende Mai – August 2017

Problembeschreibung

Im Internet der Dinge (IoT – Internet of Things) werden elektronische Kleingeräte in der Lage sein, über Funknetzwerke miteinander zu kommunizieren und in großem Umfang Daten austauschen. Die Anwendungsfelder erstrecken sich über viele Bereiche wie z.B. Smart Home, aber auch den landwirtschaftlichen und industriellen Bereich (z.B. Sensornetzwerke).

Für die Versicherungswirtschaft beispielsweise ermöglichen Sensoren im häuslichen Bereich, traditionelle Produkte wie etwa eine Hausratsversicherung kosten- und nutzeneffizienter anzubieten. So verursachen etwa Leitungswasserschäden bei Versicherungen hohe Kosten und stellen Betroffene vor große Herausforderungen. Mit einer Sensorik, die an einen präventiven Versicherungsprozess gekoppelt wäre, ließen sich viele Schäden schon im Ansatz erkennen, Schäden minimieren und damit die Versicherung kostengünstiger anbieten.

Gegenstand des Verbundprojekts

Gegenstand des Verbundprojekts ist ein Proof-of-Concept (PoC) eines gekoppelten Sensor-Netzes im häuslichen Bereich mit Fokus auf Erkennung von Leitungswasserschäden. Dieses Netz wird an einen präventiven Prozess und passende Kernsysteme auf Seiten der Versicherung angeschlossen, um zeitnah schadensmindernde Maßnahmen anzustoßen.

Beide Projekte haben dabei jeweils eigene und voneinander unabhängige Ziele:

  1. IoT 1: Proof-of-Concept einer IoT-Sensorlandschaft
    • Entwicklung einer IoT-Sensorlandschaft (als Modell), die zur Illustration des Falls „Wasserschaden-Prävention“ dienen kann
    • Evaluierung eines Toolings des Projektpartners ThingForward zur erleichterten Anbindung von IoT-Devices
  1. IoT 2: IoT-basierte präventiven Versicherungsprozesses
    • Entwicklung eines präventiven Geschäftsprozesses und Anbindung einer (vereinfachten, gemockten) Versicherungs-Kernsystemlandschaft
    • Anbindung des Modells aus Projekt 1 an den Prozess, so dass ein IoT-Showcase für Führungskräfte der Sachversicherungssparte des Projektpartners Gothaer Versicherungen entsteht

Externe Projektpartner

ThingForward

Gothaer Systems (IT-Dienstleister der Gothaer Versicherungsgruppe)

Erste Ergebnisse

Die Endberichte werden hier noch veröffentlicht, sobald sie vorliegen. Hier als erster Eindruck ein Bild des Prototyps aus der Endpräsentation von IoT 1:

IoT 1: Proof-of-Concept einer IoT-Sensorlandschaft

Aus dem Bereich der Internet- und Webentwicklung hat sich der REST-Architekturstil zum Aufbau verteilter Anwendungen etabliert. Die Ansätze lassen sich auf den Bereich IoT ausweiten, allerdings stehen hier effiziente und platzsparende Implementierungen im Vordergrund.

Das Start-up ThingForward hat mit Slyft (www.slyft.io) ein Produkt und Open-Source-Projekt vorgestellt, welches ermöglicht, APIs für Embedded Devices einfach zu implementieren. Dieses Projekt soll in Zusammenarbeit mit ThingForward auf verschiedenen Device-Klassen zeigen, dass Slyft den Anforderungen des REST-Architekturstils anhand exemplarischer Anwendungsfälle wie Device Discovery, Device Registry und API-Kommunikation genügt.

In Scrumteams von 4-5 Studierenden wird ein Proof-of-Concept-Projekt realisiert.

  • Aufbau eines Netzwerks von miteinander kommunizierenden Embedded Devices
  • Entwurf und Spezifikation geeigneter Schnittstellen und Datenstrukturen zur Device to Device Kommunikation
  • Umsetzung von Anwendungsfällen wie Discovery- und/oder Registry Mechanismen, d.h. Erkennung von neu hinzukommenden Geräten zum Netzwerk
  • Vernetzung und Kommunikation der Geräte über RESTful APIs
  • Aufbau einer Device Registry
  • Implementierung von „Smart Pairing“ Mechanismen anhand Parameter in der Device Registry
  • Nutzung von modellgetriebenen Ansätzen zur Umsetzung der REST APIs
  • Evaluierung des Slyft-Ansatzes für die gewählte Problemstellung

Hardware zur Umsetzung prototypischer Geräte wird gestellt.

Die Umsetzung des Projekts sowie die Erstellung des Evaluationsberichts werden nach agiler Methodik erfolgen. Die agilen Teamprozesse werden durch die Betreuer methodisch begleitet. Die agilen Teams wählen jeweils einen Scrum Master und einen Product Owner.

Das Projekt wird in Sprints gegliedert. Ein Vertreter von ThingForward (Andreas Schmidt) wird bei den Entwicklungs-Demos an jedem Sprint als Kunde zugegen sein. Bei Erreichung größerer Meilensteinen wird ebenfalls ein Vertreter des Gothaer Konzerns anwesend sein. Weiterhin wird ThingForward in einem Workshop-Block die modellgetriebenen Ansätze und die Nutzung von Embedded Devices vorstellen.

Betreuung

Die Scrumteams erhalten jeweils einen festen Ansprechpartner aus dem Kreis der Projektbetreuer. Prof. Böhmer (federführend) und Prof. Bente verantworten das Projekt gemeinsam als Professoren.

Learning Outcomes

  • Kenntnisse der Grundlagen von IoT
  • Erfahrung im Umgang mit und der Programmierung von Embedded Devices
  • Anwendbarkeit von RESTful-Prinzipien auf vernetze Kleingeräte
  • Aufbau von Architekturparadigmen im Bereich Internet der Dinge (IoT)
  • Erfahrung mit agiler Entwicklungsmethodik in einem realistischen Softwareprojekt
  • Expertise in Kommunikation und Dokumentation
  • Teamwork- und Projektmanagement-Erfahrung

IoT 2: IoT-basierter präventiver Versicherungsprozesses

Aufbauend auf dem in Projekt 1 aufgebauten Modell wird in diesem Projekt eine Anbindung an einen präventiven Prozess in der IT-Landschaft der Versicherung simuliert. Dieser Prozess kann dann Funktionalitäten in der Art der nachfolgenden Liste realisieren:

  • Schaden wird entdeckt, insbesondere bei schleichenden Schäden (d.h. langsamer Wasseraustritt)
  • Process Engine informiert automatisch den Kunden per E-Mail / SMS oder Whatsapp-Nachricht
  • Aus einer zentralen Datenbank wird der richtige Dienstleister zum vorliegenden Schaden gesucht Dabei werden u.a. Kriterien wie Ort des Kunden, Art des Schadens und Verfügbarkeit ausgewertet.
  • Auf Grundlage der gespeicherten Kundendaten und des ausgewählten Dienstleisters wird der Dienstleister elektronisch beauftragt

In Scrumteams von mehreren Studierenden wird ein Proof-of-Concept-Projekt realisiert.

  • Vereinfachte Schnittstellen der gemockten Kernsystem-Umgebung erheben / entwickeln
  • Mock-Umgebung implementieren
  • Camunda Process Engine aufbauen und Prozessmodell implementieren
  • Anbindung des Sensor-Modells
  • System- und Integrationstest
  • Abschlussbericht und -präsentation mit Ergebnissen und Erkenntnissen

Die Umsetzung des Projekts sowie die Erstellung des Evaluationsberichts werden nach agiler Methodik erfolgen. Die agilen Teamprozesse werden durch die Betreuer methodisch begleitet. Die agilen Teams wählen jeweils einen Scrum Master und einen Product Owner.

Das Projekt wird in Sprints gegliedert. Ein Vertreter von Gothaer Systems (Dr. Eggert) wird bei den Entwicklungs-Demos an jedem Sprint als Kunde zugegen sein.

Learning Outcomes

  • Kenntnisse der Grundlagen von IoT
  • Anbindung von IoT mittels RESTful-Prinzipien an eine Prozess-Engine
  • Erfahrungen mit den Geschäftsvorgängen bei Versicherungen
  • Prozessautomation an einem praktischen, einfachen Beispiel
  • Erfahrung mit agiler Entwicklungsmethodik in einem realistischen Softwareprojekt
  • Expertise in Kommunikation und Dokumentation
  • Teamwork- und Projektmanagement-Erfahrung

 

Veröffentlicht: von

Nachfolgend ist beschrieben, wie Sie Spring Data JPA bei sich installieren können. Anhand eines Beispielprojekts können Sie starten, und dieses auch für das ST2-Praktikum verwenden. Vielen Dank an Tim Müller und Fabian Krampe für das Erstellen dieser Anleitung.

Spring Data JPA

  1. Folgen Sie dem Link https://spring.io/tools/sts und laden Sie sich die Spring Tool Suite herunter.
  2. Entpacken Sie den Ordner
  3. Öffnen Sie den Unterordner „sts-3.8.4.RELEASE“
  4. Führen Sie die Anwendung STS.exe aus
  5. Es öffnet sich die gewohnte Eclipse-Ansicht
  6. Wählen Sie Import -> General -> Existing Project into Workspace -> „Select Archive File“ und wählen Sie das ZIP-Archiv mit der Beispielanwendung (hier zum Download) aus
   

Die ZIP-Datei enthält bereits alle relevanten JARs und Projekteinstellungen, man kann also direkt loslegen. Man sollte Spring aber noch die Zeit geben, den Workspace zu aktualisieren, dann verschwinden auch nach kurzer Zeit alle Fehlermeldungen (Indikator unten rechts „Building Workspace“).

Boot Dashboard

Standardmäßig befindet sich das Boot-Dashboard unten links. Alternativ lässt sich das Boot-Dashboard über die grüne, sechseckige Schaltfläche in der Toolbar öffnen. Dort befindet sich der Server „example“, welchen ihr über das Kontextmenü (oder den entsprechenden Button im Dashboard) startet.

Sobald in der Konsole die Meldung „Started Demo2Application in 21.426 seconds (JVM running for 25.534)“ erscheint, wurde der Server erfolgreich gestartet. Die einfachste Form der Kontrolle Ihres Codes ist per System.out.println(…) auf die Eclipse-Console. Sie sollten, wenn Sie das Beispielprojekt in der Form ohne Änderungen gestartet haben, folgendes sehen:

PS: Den geschwätzigen Consolen-Output der Defaulteinstellung werden Sie los, wenn Sie in src/main/resources/application.properties die folgenden Zeilen einfügen:

logging.level.root=WARN
logging.level.org.springframework.web=WARN
logging.level.org.hibernate=WARN
logging.level.org.hibernate.SQL=WARN

H2 Console

Mit der H2 Console kann man im Browser seine Tabellen anschauen und Queries ausführen. Dies ist besonders hilfreich, wenn man überprüfen möchte, ob die Tabellen und Referenzen wie gewünscht erstellt wurden.

Die H2 Console erreicht man über die Adresse localhost:8080/h2-console/. Dort müssen nur noch die Einstellungen wie folgt angepasst werden:

  • Saved Settings: GenericH2 (Embedded)
  • Driver Class: org.h2.Driver
  • JDBC URL: jdbc:h2:mem:testdb
  • User Name: sa
  • Password: <bleibt leer>

Dann können Sie leicht Queries ausführen:

Veröffentlicht: von

Für die Softwaretechnik-1-Klausur am 7.4.2017 habe ich (wie in der Vorlesung versprochen) eine Sammlung von Probeaufgaben für die Klausur bereitgestellt. Hier ist der Link: ST1 WS16-17, Sammlung Klausur-Probeaufgaben (Bente), 2017-03-29

Achtung: Diese Sammlung ist nur Hilfestellung, keine Referenz – also keine Garantie, dass die tatsächlichen Klausuraufgaben 100% die gleichen wie in dieser Sammlung sind!

Wenn Sie eine Referenz für die von Ihnen zu beherrschenden Kompetenzen suchen: für die Plattform ArchiLab, die in diversen studentischen Projekten in unserer Fachgruppe entwickelt wird, habe ich eine detaillierte Liste der sogenannten Learning Outcomes spezifiziert. Wenn Ihnen das etwas zu abstrakt ist: Schauen Sie in ILIAS in den Foliensatz 6.1, da ist auf der vorletzten Folie auch nochmal ein zusammenfassender Hinweis.

Außerdem biete ich noch eine Sprechstunde zur Klausur an, zu der Sie ohne Anmeldung kommen können: am Do, 30.03., von 14:00 – 16:00 in Raum 1506.