lars helmuth probst · 2018-04-03 · 2.1. bluemix ibm bluemix ist eine von ibm entwickelte...

29
Fakultät Informationstechnik Praktikumsbericht Lars Helmuth Probst Sommersemester 2016 Firma: IBM Deutschland GmbH Zeitraum: 08.02.2016 - 07.08.2016 Betreuer: Armin Günter Prüfer: Prof. Dr. rer. nat. Manfred Dausmann

Upload: others

Post on 06-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Lars Helmuth Probst · 2018-04-03 · 2.1. Bluemix IBM Bluemix ist eine von IBM entwickelte Cloud-Plattform als Service (PaaS). Über Bluemix greifen Entwickler auf mehr als 160 Cloud-Services

Fakultät Informationstechnik

Praktikumsbericht

Lars Helmuth Probst

Sommersemester 2016

Firma: IBM Deutschland GmbH

Zeitraum: 08.02.2016 - 07.08.2016

Betreuer: Armin Günter

Prüfer: Prof. Dr. rer. nat. Manfred Dausmann

Page 2: Lars Helmuth Probst · 2018-04-03 · 2.1. Bluemix IBM Bluemix ist eine von IBM entwickelte Cloud-Plattform als Service (PaaS). Über Bluemix greifen Entwickler auf mehr als 160 Cloud-Services

„Scientists investigate that which already is;engineers create that which has never been.“

Albert Einstein

Page 3: Lars Helmuth Probst · 2018-04-03 · 2.1. Bluemix IBM Bluemix ist eine von IBM entwickelte Cloud-Plattform als Service (PaaS). Über Bluemix greifen Entwickler auf mehr als 160 Cloud-Services

INHALTSVERZEICHNIS

Inhaltsverzeichnis

1. Einleitung 11.1. Vorstellung IBM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2. Cloud Business Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3. Herausforderung innerhalb der Cloud Business Unit . . . . . . . . . . 21.4. Tätigkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.5. Arbeitsumgebung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.5.1. Büro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.5.2. Kunden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2. Grundlagen 42.1. Bluemix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2.1.1. Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.2. Android . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

2.2.1. Chromecast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.3. Frontend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.3.1. AngularJS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.3.2. Bootstrap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.3.3. Node-RED . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3. Durchgeführte Projekte 83.1. Hackathons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

3.1.1. SVLFG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83.1.2. LVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

3.2. CeBIT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.3. App Programmierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3.3.1. LaMa Portfolio App . . . . . . . . . . . . . . . . . . . . . . . . . 133.3.2. Bragi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.3.3. Lufthansa Technik . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.4. Bluemix Enablement Session . . . . . . . . . . . . . . . . . . . . . . . . 19

4. Schluss 204.1. Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204.2. Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204.3. Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

Literaturverzeichnis 22

i

Page 4: Lars Helmuth Probst · 2018-04-03 · 2.1. Bluemix IBM Bluemix ist eine von IBM entwickelte Cloud-Plattform als Service (PaaS). Über Bluemix greifen Entwickler auf mehr als 160 Cloud-Services

INHALTSVERZEICHNIS

Abbildungsverzeichnis 23

A. Anhang 24

ii

Page 5: Lars Helmuth Probst · 2018-04-03 · 2.1. Bluemix IBM Bluemix ist eine von IBM entwickelte Cloud-Plattform als Service (PaaS). Über Bluemix greifen Entwickler auf mehr als 160 Cloud-Services

1. EINLEITUNG

1. Einleitung

1.1. Vorstellung IBM

IBM ist ein Unternehmen, welches mit Hauptsitz in Armonk (New York) und in mehrals 170 Ländern Weltweit vertreten ist. Es ist in den Bereichen Technologie und Bera-tung tätig und gemeinsam mit Unternehmen, öffentlichen Aufraggebern und Non-Profit-Organisationen will die IBM als Technologie- und Transformationspartner IT-Lösungen für ihre Herausforderungen entwickeln. Damit Unternehmen, öffentlicheAuftraggeber wie auch Städte und ganze Volkswirtschaften dynamischer und effi-zienter agieren können, arbeiten Mitarbeiterinnen und Mitarbeiter der IBM und derKunden eng zusammen, um ihre Expertise in den Berreichen Forschung und Ent-wicklung, Technologie sowie Beratung zu kombinieren.

Strukturiert sind die Teams sowie die Geschäftsbereiche in der IBM regional und nachBranchen strukturiert, somit kann auf den Kunden und deren Wertschöpfung zuge-schnittenen Vertrieb gebündelt mit Industrie- und Lösungsexpertise geliefert wer-den. IBM ist zu einer der stärksten Marken der Welt duch weit über Technologienhinausgehende Innovationen aufgestiegen und dass mit einem Jahresumsatz in 2015von 81,7 Milliarden US-Dollar. Zudem werden jährlich sechs Milliarden US-Dollar inForschung und Entwicklung investiert.

Im Jahre 2015 hatte IBM fast 400.000 Mitarbeiter und Mitarbeiterinnen.

1.2. Cloud Business Unit

Die IBM Cloud Business Unit vereint Infrastructure as a Service (SaaS) mit Softlayerund Platform as a Service (Paas) mit Bluemix. Beide Ansätze werden beim Kundenals off and on-premis Lösung verkauft. Obwohl Softlyer ein Zukauf seitens IBM war,wurde Bluemix von Grund auf entwickelt.

1

Page 6: Lars Helmuth Probst · 2018-04-03 · 2.1. Bluemix IBM Bluemix ist eine von IBM entwickelte Cloud-Plattform als Service (PaaS). Über Bluemix greifen Entwickler auf mehr als 160 Cloud-Services

1.3. HERAUSFORDERUNG INNERHALB DER CLOUD BUSINESS UNIT

1.3. Herausforderung innerhalb der Cloud Business Unit

Bluemix startete am 14. Februar 2014 als Beta und ist seit Ende des Jahres 2014 für alleKunden der IBM nutzbar. Es handelt sich um ein relativ neues Produkt der IBM. Umeine Entwicklungsplatform dem Kunden verkaufen zu können, muss der Mehrwertaufgezeigt werden. Dies ist zum Beispiel durch Demos oder angepassten Applikatio-nen möglich.

Auf Grund der kurzen Laufzeit von Bluemix waren Demos oder Applikation nichtvorhanden. Es gab zwei Möglichkeiten dies zu ändern:

• Bluemix-GarageWährend eines Workshops, bei dem IBM Entwickler zusammen mit Entwick-lern vom Kunden arbeiten, werden personalisierte Demos erarbeitet. Ein sol-cher Workshop kostet mehr als 100.000 e und ist somit vor allem für kleinereKunden keine Alternative.

• PräsentationenMit Hilfe von Präsentationen zeigen Seller Use-Cases für die Kunden auf. Dahier keine Kosten entstehen, ist dies die meistgenutzte Möglichkeit.

Der Nachteil an Präsentationen ist, dass sie nur begrenzt das Potential und die Mög-lichkeiten von Bluemix zeigen. Um das zu ändern und dem Kunden kostengünstigDemoapplikationen erstellen zu können, entstand die Tätigkeit im Rahmen des Prak-tikums.

1.4. Tätigkeit

Die Hauptaufgabe während des Praktikums bestand darin, Demos und Applikatio-nen für Kunden zu entwickeln. Zu Beginn wurden kundenspezifische Demos ge-schrieben, welche lediglich nur einem Kunden präsentiert werden konnten. Im Lau-fe des Praktikums wurden die Demos für Kundenbereiche geschrieben. Das hat denVorteil, dass die Anwendungen schnell auf die einzelnen Kunden und die jeweiligeBranche angepasst werden kann.

Alle Demos bestanden aus einer Runtime (Cloud Foundry oder Docker) und ver-schiedenen Watson-Services, die in Verbindung den Mehrwert bieten konnten.

2

Page 7: Lars Helmuth Probst · 2018-04-03 · 2.1. Bluemix IBM Bluemix ist eine von IBM entwickelte Cloud-Plattform als Service (PaaS). Über Bluemix greifen Entwickler auf mehr als 160 Cloud-Services

1.5. ARBEITSUMGEBUNG

1.5. Arbeitsumgebung

Mitarbeiter in der Cloud Business Unit arbeiten nicht in einem festen Büro, sondernwechseln je nach Projekt und Kundengruppe die Räumlichkeiten, arbeiten von zuHause oder direkt beim Kunden vor Ort.

1.5.1. Büro

In den Räumlichkeiten des Büros gilt die „Mobile Office“ Mentalität. Das heißt, dasssich jeder Mitarbeiter seinen Arbeitsplatz aussuchen kann. Um dies zu ermöglichenbekommt jeder einen Laptop, WLAN-Zugriff und einen VPN-Zugang.

Das hat den Vorteil, dass sich Gruppen die an einem Projekt zusammen arbeiten,schnell finden und zusammensetzen können.

1.5.2. Kunden

Viel Zeit verbringt der Mitarbeiter in der Cloud Business Unit direkt beim Kunden.Sei es ein Hackathon, Workshop oder die Einführung in Bluemix.

3

Page 8: Lars Helmuth Probst · 2018-04-03 · 2.1. Bluemix IBM Bluemix ist eine von IBM entwickelte Cloud-Plattform als Service (PaaS). Über Bluemix greifen Entwickler auf mehr als 160 Cloud-Services

2. GRUNDLAGEN

2. Grundlagen

2.1. Bluemix

IBM Bluemix ist eine von IBM entwickelte Cloud-Plattform als Service (PaaS). ÜberBluemix greifen Entwickler auf mehr als 160 Cloud-Services zu, um mobile Appsund Webanwendungen zu entwickeln. Es gibt zahlreiche Analysewerkzeuge sowieServices von Drittanbietern. Mit Watson Analytics1 lassen sich beispielsweise intelli-gente Systeme realisieren, die Daten kognitiv auswerten und für die Entscheidungs-findung aufbereiten.

Bluemix unterstützt diverse Dienstleistungen, sowie integrierte DevOps-Dienste, umCloud-Anwendungen zu erstellen, auszuführen, bereitzustellen und zu verwalten.Die Entwicklerplattform basiert auf der offenen Technologie von Cloud Foundry undläuft auf IBMs Softlayer-Cloud-Infrastruktur. Sie unterstützt mehrere Programmier-sprachen, einschließlich Java, Node.js, Go, PHP, Python, Ruby Sinatra, Ruby on Railsund kann auch andere Sprachen wie Scala durch den Einsatz von Buildpacks unter-stützen.

2.1.1. Services

In Bluemix gibt es mehr als 160 Funktionen und Services, welche sich in die Katego-rien Runtime und Services unterteilen. Mittels Runtimes kann ein Entwickler seineApplikation ausführen und mit den Services können Entwicklungen durch vorge-fertigte Funktionen erweitert werden. Eine Bilderkennung oder Text in Sprache oderumgekehrt umwandeln zu können sind nur zwei Beispiele.

Im Wesentlichen gibt es drei Möglichkeiten Programme auszuführen:

1Beschreibung von Watson Analytics

4

Page 9: Lars Helmuth Probst · 2018-04-03 · 2.1. Bluemix IBM Bluemix ist eine von IBM entwickelte Cloud-Plattform als Service (PaaS). Über Bluemix greifen Entwickler auf mehr als 160 Cloud-Services

2.2. ANDROID

Cloud Foundry

Cloud Foundry ist eine Open Source Cloud Platform as a service (PaaS) Lösung. MitHilfe von Cloud Foundry können Entwickler ihre Anwendungen bauen, hochladenund ausführen. Ein großer Vorteil von Cloud Foundry ist die nahezu grenzenloseSkalierung.

Jede Cloud Foundry Instanz hat ihre eigene IP-Adresse wodurch es mittels A-Recordmöglich ist, seine eigene Domain mit der Anwendung verknüpfen zu können.

Docker

Mittels Docker hat ein Entwickler die Möglichkeit Anwendungen in sogenanntenContainern auszuführen. Diese Container beinhalten lediglich die nötige Software,um das entwickelte Programm auszuführen und haben im Gegensatz zu virtuellenMaschinen kein komplettes Betriebssystem. Container können miteinander kommu-nizieren.

Virtuelle Maschinen

Mit virtuellen Maschinen hat der Kunde die Möglichkeit, einen kompletten Server zuverwalten und die Software, welche installiert ist, zu bestimmen.

Der Kunde hat die Möglichkeit sein eigenes Betriebssystem hochzuladen und denServer mit diesem zu betreiben. Standardmäßig gibt es Debian, Open Suse und Ubun-tu als Image.

2.2. Android

Die Entwicklung für Android beschränkte sich nach offiziellen Angaben bis vor kur-zem auf die Programmiersprache Java. Seit kurzem ist es möglich Android Anwen-dungen (Apps) mittels C++ zu schreiben. Für die Entwicklung wird das AndroidSDK benötigt und Android Studio2 als IDE empfohlen.

Geschriebene Anwendungen können in einem Emulator getestet oder direkt auf ei-nem physikalischen Gerät installiert werden.

2https://developer.android.com/studio/index.htmlAndroid-Studio

5

Page 10: Lars Helmuth Probst · 2018-04-03 · 2.1. Bluemix IBM Bluemix ist eine von IBM entwickelte Cloud-Plattform als Service (PaaS). Über Bluemix greifen Entwickler auf mehr als 160 Cloud-Services

2.3. FRONTEND

2.2.1. Chromecast

Damit eine App um die Chromecast-Funktion erweitert werden kann, muss eine kos-tenpflichtige Erweiterung des Android-Entwickler-Accounts beantragt werden3. An-schließend muss der eigene Chromecast als Testgerät hinzugefügt werden.

Ab dann ist es möglich in seiner Anwendung das Chromecast-SDK hinzuzufügenund die App mit dem Chromecast zu verbinden.

2.3. Frontend

2.3.1. AngularJS

AngularJS ist ein Framework zum Erstellen von Single-Page-Anwendungen (kurzSPA). Dabei wird ein MVC (Model-View-Controller) Architektur verwendet und inJavaScript eingebettet. Der Inhalt der Webseite kann mit Platzhaltern angepasst wer-den. Entwickelt wurde AngularJS von Google und wurde vor kurzem als Version 2.0released. (vgl. [1])

2.3.2. Bootstrap

Bootstrap ist ein CSS-Framework, welches von Twitter entwickelt wurde. Das Fra-mework arbeitet mit CSS und LESS Dateien sowie JQuery, um dynamische Inhaltebieten zu können. Mittels Bottstrap wird die Formatierung von gängigen Webdesign-Elementen (Table, Button, uvm.) angepasst. Der Entwickler muss keine neuen Ele-mente lernen. (vgl. [2])

2.3.3. Node-RED

Mit Node-RED ist es möglich, eigene Anwendungsfälle in kurzer Zeit umzusetzen.Das geschieht mit Hilfe des grafischen Designers. Der Benutzer kann sich mit demBaukasten seine Anwendung zusamenschieben und so zum Beispiel in kürzester Zeiteine RESTFul-API basteln. Einzelne Elemente werden durch ziehen von Verbindun-gen miteinander verknüpft.

3https://cast.google.com/publish/Einschreibung für Chromecast-Entwicklung

6

Page 11: Lars Helmuth Probst · 2018-04-03 · 2.1. Bluemix IBM Bluemix ist eine von IBM entwickelte Cloud-Plattform als Service (PaaS). Über Bluemix greifen Entwickler auf mehr als 160 Cloud-Services

2.3. FRONTEND

Den bestehenden Baukasten kann man durch viele weitere Bausteine erweitern. Dazumüssen die entsprechenden Erweiterungen nur als Abhängigkeit hinzugefügt wer-den. Mittels des „Deploy“-Buttons wird das grafische in JavaScript-Code übersetztund in einer Cloud Foundry-Anwendung gestartet. (vgl. [3])

7

Page 12: Lars Helmuth Probst · 2018-04-03 · 2.1. Bluemix IBM Bluemix ist eine von IBM entwickelte Cloud-Plattform als Service (PaaS). Über Bluemix greifen Entwickler auf mehr als 160 Cloud-Services

3. DURCHGEFÜHRTE PROJEKTE

3. Durchgeführte Projekte

3.1. Hackathons

Nach kurzer Einlernphase in Bluemix und den Services standen zwei Hackathonsauf dem Plan. In diesen sollte jeweils in einer Woche mittels Bluemix eine App bzw.Webseite aufgebaut werden. Ziel war dabei nicht die Webseite als solche, sondern derInformationsaustausch zwischen IBM und dem Kunden, bezüglich Bluemix und denServices.

3.1.1. SVLFG

Der erste Hackathon startete bei der Sozialversicherung für Landwirtschaft, Forstenund Gartenbau (kurz SVLFG) in Kassel. Am ersten Tag wurden Umsetzungsideen ge-sammelt. Schnell einigte sich die Gruppe auf die Umsetzung eines Studiplaners. Die-ser sollte den Auszubildenden oder Studierenden der SVLFG bei ihrer Ogranisationhelfen. Idee war ein Kalender in den jeder seine Termine, Schulungs- und Fehltageeintragen konnte. Mit dem Ziel, dass jeder eine Gesamtübersicht erhält.

Am Ende des Tages wurde die Gruppe in zwei Teams aufgeteilt. Das Eine kümmertesich um die grafische Oberfläche. Das andere Team um das Backend mit Datenbankund den Bluemix-Services.

Da die Entwicklung schnell voranschritt entschied sich die Gruppe noch eine Android-App zu bauen. Diese war allerdings lediglich ein Wrapper1, welcher die Webseitebeim Start der App lud. Da Bootstrap ein Responsive-Design unterstützt, waren kei-ne weiteren Anpassungen nötig.

1Es handelte sich dabei um ein WebViewer.

8

Page 13: Lars Helmuth Probst · 2018-04-03 · 2.1. Bluemix IBM Bluemix ist eine von IBM entwickelte Cloud-Plattform als Service (PaaS). Über Bluemix greifen Entwickler auf mehr als 160 Cloud-Services

3.1. HACKATHONS

Architektur

Die grundlegende Architektur der Anwendung bestand aus einem Backend und ei-nem Frontend. Das Backend war in PHP mit der Library Laravel geschrieben undübernahm die Kommunitaktion mit den Services in Bluemix.

Auch stellte das Backend eine RESTFul-API zur Verfügung über die ein User au-thentifiziert wird, sowie Termine eingetragen, bearbeitet oder gelöscht werden konn-ten.

Das Frontend war in AngularJS (Version 1) und Bootstrap (Version 3) geschrieben. Jenach Funktion rief es die verschiedenen API-Endpunkte des Backends auf.

In Abbildung 3.1 ist die Architektur der Anwendung zu sehen.

Abbildung 3.1.: Architektur der SVLFG Anwendung

9

Page 14: Lars Helmuth Probst · 2018-04-03 · 2.1. Bluemix IBM Bluemix ist eine von IBM entwickelte Cloud-Plattform als Service (PaaS). Über Bluemix greifen Entwickler auf mehr als 160 Cloud-Services

3.1. HACKATHONS

3.1.2. LVM

Der zweite Hackathon wurde beim Landwirtschaftlicher Versicherungsverein Müns-ter (kurz LVM) durchgeführt. Der zu entwickelnde Prototyp war von der LVM schonWochen vorher vorgegeben. Eine Moped-App.

Funktionen dieser Moped-App waren, dass ein Benutzer sich mit seinem Facebook-Account einloggen und ein Kennzeichen für sein Moped bestellen konnte. Dabeikonnte der Benutzer wählen, ob er sich das Kennzeichen nach Hause schicken lässtoder bei einem Berater abholt. Welche Lokation und welcher Berater am besten zumBenutzer passt, wurde mit dem Watson Service „Personal Insights“erechnet. Dabeiwurde das Facebook-Profil des Benutzers mit den verschiedenen Beratern vergli-chen.

Auch hier wurden zwei Teams definiert, die nach der Halbzeit die Seiten tauschten.Das Eine kümmerte sich um die grafische Oberfläche. Das Andere um die RESTFul-Api, welche die Verbindung zu den Bluemix-Services und der Datenbank herstell-te.

Architektur

In der oben beschriebenen Anwendung gab es ein Backend, welches in JavaScript(NodeJS) und ein Frontend welches in Angular (Version 1) und Bootstrap (Version 3)geschrieben wurde.

Das Backend stellte ein RESTFul-Interface zur Verfügung, mit welchem das Frontendkommunizieren konnte. So konnte eine Benutzerautentifizierung durchgeführt, so-wie die Watson-Services „Personal Insights“angesprochen werden.

Als Zahlungsprovider, während des Bestellprozesses, wurde die PayPal Sandbox ein-gebaut. Dies geschah durch eine einfache Weiterleitung auf die PayPal-Seite, welcheden Zahlungsvorgang durchführte und anschließend, je nachdem ob die Zahlungerfolgreich oder abgebrochen wurde, auf eine definierte Seite weiterleitete.

In Abbildung 3.2 ist die genutzte Architektur der Anwendung zu sehen.

10

Page 15: Lars Helmuth Probst · 2018-04-03 · 2.1. Bluemix IBM Bluemix ist eine von IBM entwickelte Cloud-Plattform als Service (PaaS). Über Bluemix greifen Entwickler auf mehr als 160 Cloud-Services

3.2. CEBIT

Abbildung 3.2.: Architektur der LVM Anwendung

3.2. CeBIT

Im März jedoch stand die CeBIT in Hannover vor der Tür und es galt eine Demo fürden Bluemix-Stand zu erstellen. Der Zeitplan war eng und die Ideen zahlreich.

Das Team, bestehend aus Ansgar Schmidt, Harald Übele, Lars Probst, Marvin Wie-gand und Olaf Hahn, entschied sich für einen IoT-Showcase. Dabei sollte ein Furby,ausgestattet mit zahlreichen Sensoren und Aktoren, mittels eines Dashbaords gesteu-ert und ausgewertet werden.

Ein Demonstrationsvideo gibt es in der Mediathek von 3Sat ab Minute 32.

2http://www.3sat.de/mediathek/?mode=play&obj=577923Sat Beitrag zur CeBIT

11

Page 16: Lars Helmuth Probst · 2018-04-03 · 2.1. Bluemix IBM Bluemix ist eine von IBM entwickelte Cloud-Plattform als Service (PaaS). Über Bluemix greifen Entwickler auf mehr als 160 Cloud-Services

3.3. APP PROGRAMMIERUNG

Architektur

Da der Furby auf dem IBM-Stand im Bereich „Garage“ stand, musste die Architekturso aufgebaut werden, dass sie den Kunden gut visualisiert werden konnte. Außer-dem war es nicht von Vorteil, zahlreiche Zeilen Quellcode zu zeigen. Darum ent-schied sich das Team Node-RED zu benutzen.

Damit der Furby gesteuert werden konnte, wurden verschiedene Sensoren und Akto-ren in ihm verbaut. Diese wurden mittels GrovePi an einen RaspberryPi angeschlos-sen. Die Kommunikation zwischen Sensoren und RaspberryPi übernahm eine Node-RED Installation. Mit dieser konnten die Daten der Sensoren in bestimmten Inter-vallen in die Watson IoT-Platform (ein weiterer Bluemix-Service) über einen MQTT-Socket geladen werden. Dort wurden sie gespeichert und an eine Cloud-Node-RED-Instanz weitergegeben. In dieser wurden die Daten aufbereitet und mittels Web-Socket an ein Frontend geschickt.

Im Frontend wurden für jeden Sensor ein Widget erstellt, welches den Wert in einemBalken-, Linien- oder Gaug-Diagramm darstellte.

In Abbildung 3.3 die Architektur für Furby zu sehen. In Abbildung 3.4 ist ein Screens-hot des Dashboards zu sehen.

Mittels der Architektur mit Node-RED war es möglich den vorbeilaufenden Kundenund Interessenten schnell zu zeigen, wie der Watson-IoT-Service funktioniert und wiedie einzelnen Sensoren und Aktoren angesprochen wurden. Auch war es möglichviele zu ermutigen selbst was mit der Plattform Bluemix zu versuchen.

Der Furby wurde später in Zürich in einer InHouse-Messe gezeigt und wird nun imClientCenter ausgestellt.

3.3. App Programmierung

Während des Praktikums wurden mehr als 20 Webseiten und App-Demos entwi-ckelt. Diese unterteilten sich wesentlich in drei Kategorien: Projekte für Hackathons,Kundenprojekte und allgemeine Projekte. Ein Überblick über alle Projekte gibt es imLaMa-Portfolio3.

Im folgenden wird auf drei Entwicklungen näher eingegangen.

3https://lama.mybluemix.netDas LaMa-Portfolio mit allen Bluemix-Demos

12

Page 17: Lars Helmuth Probst · 2018-04-03 · 2.1. Bluemix IBM Bluemix ist eine von IBM entwickelte Cloud-Plattform als Service (PaaS). Über Bluemix greifen Entwickler auf mehr als 160 Cloud-Services

3.3. APP PROGRAMMIERUNG

Abbildung 3.3.: Architektur des Furbys

3.3.1. LaMa Portfolio App

Idee

Im Laufe des Praktikums entstanden sehr viele Demos, deshalb entschieden sich LarsProbst und Marvin Wiegand eine Übersicht zu erstellen, in welcher der Seller alle De-mos anschauen und herunterladen kann. Das Herunterladen der Demos beschränktsich auf eine Anleitung, wie die gewünschte Demo im eigenen Bluemix-Accounteingerichtet und auf die Kundensituation angepasst werden kann. Es entstand dasLa(rs)Ma(rvin)-Portfilio.

Dieses Portfolio hatte zwar eine mobile Ansicht, allerdings war sie für Kundende-monstrationen auf dem Handy oder Tablet nicht geeignet. Deshalb entschied sichLars Probst eine Android-App zu erstellen, welche im internen IBM Play-Store ver-teilt wurde.

In dieser App hatte man eine Übersicht über alle Demos und konnte diese mit einemKlick öffnen. Sofern ein Chromecast in der Nähe war (der zum Beispiel im Beamer

13

Page 18: Lars Helmuth Probst · 2018-04-03 · 2.1. Bluemix IBM Bluemix ist eine von IBM entwickelte Cloud-Plattform als Service (PaaS). Über Bluemix greifen Entwickler auf mehr als 160 Cloud-Services

3.3. APP PROGRAMMIERUNG

Abbildung 3.4.: Screenshot Furby-Dashboard

steckte), konnte in der App eine Demo-Seite gestartet werden. Die Anwendung wur-de dann auf dem Beamer gezeigt. Steuern konnte der Benutzer die Webseite dannüber die Android-App.

Architektur

Das LaMa-Portfolio wurde in einer Cloud Foundry-Instanz gehostet. In erster Versionwurden die Informationen, Bilder und Links (Demo und Download) direkt in derHTML-Seite eingebaut. Da nun auch eine Android-App die Informationen gebrauchthat und doppelter Pflegeaufwand nicht in Frage kam, wurden die Informationen inein JSON-File ausgelagert.

In diesem JSON-File wurde Reihenfolge, Kategorie, Name, Beschreibung, Version,Services, Funktionen und Screenshot-Links gespeichert. Diese Informationen konn-ten dann von der umgebauten Webseite und der Android-App gelesen werden.

Nach dem Start der Android-App wird das JSON-File geladen, interpretiert und alleInformationen angezeigt. Der Nutzer sieht dann eine Liste aller Demos (siehe Abbil-dung 3.5).

Nach einem Klick auf einen Eintrag, wird die Demo in einem „Chrome-Custom-Tab“ geöffnet und der Benutzer kann sich diese anschauen.

Des Weiteren gibt es den Reiter „Team“, in dem Informationen zu den Autoren derDemos zu finden sind. (siehe Abbildung 3.6)

14

Page 19: Lars Helmuth Probst · 2018-04-03 · 2.1. Bluemix IBM Bluemix ist eine von IBM entwickelte Cloud-Plattform als Service (PaaS). Über Bluemix greifen Entwickler auf mehr als 160 Cloud-Services

3.3. APP PROGRAMMIERUNG

Abbildung 3.5.: Screenshot LaMa-Portfolio Android-App

Ein Klick auf einen Eintrag initiiert den Start des E-Mail-Clients mit dem Empfängerdes Eintrages.

Sofern ein Chromecast in der Nähe oder im gleichen WLAN zur Verfügung steht, er-scheint am oberen rechten Rand das Cast- Symbol. Ein Klick auf dieses öffnet sich einAuswahlmenü mit allen verfügbaren Chromecasts. Wird einer ausgewählt, verbindetsich das Smartphone mit diesem und zeigt eine Informationsseite an. Wenn der Nut-zer nun einen Eintrag auswählt, wird dieser nicht im Browser auf dem Smartphonegeöffnet, sondern es erscheinen weitere Informationen zur Demo auf dem Display.

15

Page 20: Lars Helmuth Probst · 2018-04-03 · 2.1. Bluemix IBM Bluemix ist eine von IBM entwickelte Cloud-Plattform als Service (PaaS). Über Bluemix greifen Entwickler auf mehr als 160 Cloud-Services

3.3. APP PROGRAMMIERUNG

Abbildung 3.6.: Screenshot LaMa-Portfolio Team

3.3.2. Bragi

Bragi ist ein kleines deutsches Startup, welches über Kickstarter ein Projekt namensDash erfolgreich finanzierte. 4

Idee

Idee dieser Anwendung war es, Käufern eines Artikels eine interaktive Bedienungs-anleitung an die Hand zu geben. Dazu wird mit der App der Barcode des neu gekauf-ten Artikels fotografiert und nachdem die App den Artikel erkannt hat, die Schritt-

4www.kickstarter.com/projects/hellobragi/the-dash-wireless-smart-in-ear-headphonesBragi Kickstarter Kampagne

16

Page 21: Lars Helmuth Probst · 2018-04-03 · 2.1. Bluemix IBM Bluemix ist eine von IBM entwickelte Cloud-Plattform als Service (PaaS). Über Bluemix greifen Entwickler auf mehr als 160 Cloud-Services

3.3. APP PROGRAMMIERUNG

für-Schritt Anleitung gestartet. Exemplarisch wurde dies an einem Fahrrad auspro-biert. Der Programmablaufplan der Anwendung ist im Abbildung A.1 zu sehen.

Der Benutzer, ausgerüstet mit dem Dash und seinem Smartphone, tritt an das Fahr-rad heran und bekommt eine Schritt-für-Schritt Anweisung, wie er das Fahrrad zubedienen hat. Nach jedem Schritt wird ein Nicken des Anwenders (auf die Frage ober den Schritt verstanden hat) erwartet. Findet dies nicht statt, wird der Schritt wie-derholt und in einer anderen Form erklärt.

Architektur

Der Dash von Bragi verfügt über ein Bluetooth Low-Energy (kurz BLE) Interface.Nach dem Start der Android-App, wird nach allen verfügbaren BLE-Devices gesuchtund diese werden angezeigt. Nach dem auswählen des richtigen Gerätes, startet dieAnwendung die Anleitung. Im ersten Schritt gibt es eine kleine Einführung, was nunpassieren wird.

Die Anwendung hat keine vorgefertigten Voice-Samples vorliegen und spricht denBenutzer „Persöhnlich“ an. Dazu wird der Watson Text2Speech Service genutzt. Die-ser verfügt über ein REST-Interface an das der Text geschickt wird. Als Antwort be-kommt die Android-App einen Bitstream des gesprochenen zurück. Dieser wird ineine temporäre Datei gespeichert und anschließend ausgegeben. Dies hat einen deut-lich bessern Klang zur Folge, als wenn der Stream direkt ausgegeben wird.

Nach jedem Schritt, wird ein nicken des Benutzers gefordert. Sollte dies nicht inner-halb von 10 Sekunden geschehen, wird der Schritt wiederholt. Wenn der Benutzernickt, wird der nächste Schritt gestartet.

3.3.3. Lufthansa Technik

Problemstellung

Die Lufthansa Technik hat im Hamburg ca. 1800 Mitarbeiter und verwaltet eine Flä-che von ca. 570 ha. Täglich kommen größere und kleinere Flugzeuge in die Hallender Lufthansa Technik um gewartet, repariert oder ausgebaut zu werden.

Um optimal an einem Flugzeug arbeiten zu können, braucht es verschiedenste Werk-zeuge. Vom kleinen Hammer bis zur selbstfahrenden, fünf Meter hohen Leiter. Oft

17

Page 22: Lars Helmuth Probst · 2018-04-03 · 2.1. Bluemix IBM Bluemix ist eine von IBM entwickelte Cloud-Plattform als Service (PaaS). Über Bluemix greifen Entwickler auf mehr als 160 Cloud-Services

3.3. APP PROGRAMMIERUNG

gibt es von größeren Werkzeugen nur sehr wenige. Darum ist eine optimale Ausnut-zung der einzelnen Gerätschaften erforderlich.

Idee des Projektes war es, jedes größere Werkzeug mit einem Beacon/GPS-Empfängerauszustatten und in den Hallen Beacons zu verteilen. So konnte jedes größere Werk-zeug innherlab einer Halle mittels Beacons positioniert werden. Außerhalb via GPS.

Architektur

Die Anwendung musste auf einem Computer laufen, da Projektmanager üblicher-weise an einem solchen arbeiten. Aus diesem Grund entschied sich das Team eineresponsive Webseite zu bauen, die auf dem Computer sowie auf einem Smartphonealle Informationen anzeigen konnte.

Das wichtigste Element der Seite war die Karte. Diese nahm ca. 95% des gesammtenInhaltes ein. Damit die Karte nicht voller kleiner Pinns ist, gibt es eine Filtermög-lichkeit. Dies war ein aufklappbares Menü, das von unten über die Karte geschobenwurde. Die Abbildungen 3.7 und 3.8 demonstieren dies.

Abbildung 3.7.: Screenshot Lufthansa Übersicht

Jedes Werkzeug schickte seine Informationen an die Watson IoT-Plattform. Von daaus wurden sie über ein MQTT-Socket an Node-RED weitergeleitet. Dort wurden dieInformationen gespeichert und via Websocket an die Webseite geschickt.

Außerdem war es in der App möglich ein Werkzeug zu bestellen. Dadurch wurde dasWerkzeug innerhalb des gebuchten Zeitraumes an eine Person und ein Projekt gebun-den. Die Informationen wurden in einer No-SQL Datenbank (Cloudant) gespeichert.Die Verbindung zwischen Webseite und Datenbank übernahm ein REST-Interface in

18

Page 23: Lars Helmuth Probst · 2018-04-03 · 2.1. Bluemix IBM Bluemix ist eine von IBM entwickelte Cloud-Plattform als Service (PaaS). Über Bluemix greifen Entwickler auf mehr als 160 Cloud-Services

3.4. BLUEMIX ENABLEMENT SESSION

Abbildung 3.8.: Screenshot Lufthansa mit Filter

Node-RED.

Auch in diesem Projekt wurde Node-RED genutzt um dem Kunden später die Archi-tektur besser erklären zu können.

3.4. Bluemix Enablement Session

Da Bluemix relativ neu war und der Funktionsumfang von Monat zu Monat stieg,entschieden Lars Probst und Marvin Wiegand, in Absprache mit dem Betreuer ArminGünter, regelmäßige Informationsveranstaltungen zum Thema Bluemix und Serviceszu geben.

Dem Publikum gehörten diejenigen an, welche mit ihrem Wissen Kunden überzeu-gen sollten. Also Seller und technische Seller.

Das Einrichten von Organisation und Bereichen (Spaces) in denen der Entwicklerseine Anwendung installieren kann, lernte man während der Veranstaltung. Ebensowurde die Funktionalität von Cloud Foundry und Docker erklärt, welche im engenZusammenhang mit DevOps und der Continuous Integration Pipeline steht.

Weiterführende Themen beschäftigten sich mit der Entwicklung von kleinen Anwen-dungen mittels Node-RED und nutzen der zahlreichen Services von Bluemix.

19

Page 24: Lars Helmuth Probst · 2018-04-03 · 2.1. Bluemix IBM Bluemix ist eine von IBM entwickelte Cloud-Plattform als Service (PaaS). Über Bluemix greifen Entwickler auf mehr als 160 Cloud-Services

4. SCHLUSS

4. Schluss

4.1. Zusammenfassung

Das Praxissemester bei der IBM Deutschland GmbH war durch die Aufteilung inEntwicklung, Büro, Kundentermine und Hackathons sehr abwechslungsreich. Da dieArbeit stets sehr Kundennah war, konnte man Erfolge oder Misserfolge direkt se-hen.

Außerdem war es sehr spannend den Verlauf einer Anwendung durch das kontinuir-liche Feedback vom Kunden eines Projektes zu sehen. Durch genügend Freiraum wares immer möglich eigene Ideen mit einzubringen und zur Verbesserung beizutragen.Auch die Kollegen waren immer sehr freundlich und hilfsbereit.

Das Thema Bluemix war für mich ein völlig neues Thema und es war sehr spannendmein Wissen zu diesem IBM-Produkt zu erweitern. Besonders die Interaktivität fandich sehr gut und durch die verschiedensten Einsatzmöglichkeiten auch zukunftssi-cher.

4.2. Ausblick

Da ich im Wintersemester 2016/2017 weiterhin als Werkstudent beschäftigt werde,muss ich mich nicht vollends verabschieden. Außerdem kann ich mich weiterhinmeinen Projekten widmen und vergangene Projekte erweitern.

Auch das Team, welches Anfangs aus zwei Studenten bestand soll nun auf zehn Stu-denten erweitert werden. Dies ermöglicht mir einen größeren Informationsautauschund neue Kollegen kennen zu lernen.

20

Page 25: Lars Helmuth Probst · 2018-04-03 · 2.1. Bluemix IBM Bluemix ist eine von IBM entwickelte Cloud-Plattform als Service (PaaS). Über Bluemix greifen Entwickler auf mehr als 160 Cloud-Services

4.3. FAZIT

4.3. Fazit

Ich kann jedem ein Praktikum bei der IBM Deutschland GmbH empfehlen.

21

Page 26: Lars Helmuth Probst · 2018-04-03 · 2.1. Bluemix IBM Bluemix ist eine von IBM entwickelte Cloud-Plattform als Service (PaaS). Über Bluemix greifen Entwickler auf mehr als 160 Cloud-Services

LITERATURVERZEICHNIS

Literaturverzeichnis

[1] Angularjs. https://de.wikipedia.org/wiki/AngularJS. Zuletzt aufge-rufen: 01.10.2016.

[2] Bootstrap (framework). https://de.wikipedia.org/wiki/Bootstrap_(Framework). Zuletzt aufgerufen: 01.10.2016.

[3] Node-red: Ein baukasten für das internet der dinge. https://jaxenter.de/baukasten-fuer-das-internet-dinge-13532. Zuletzt aufgerufen:01.10.2016.

22

Page 27: Lars Helmuth Probst · 2018-04-03 · 2.1. Bluemix IBM Bluemix ist eine von IBM entwickelte Cloud-Plattform als Service (PaaS). Über Bluemix greifen Entwickler auf mehr als 160 Cloud-Services

ABBILDUNGSVERZEICHNIS

Abbildungsverzeichnis

3.1. Architektur der SVLFG Anwendung . . . . . . . . . . . . . . . . . . . . 93.2. Architektur der LVM Anwendung . . . . . . . . . . . . . . . . . . . . . 113.3. Architektur des Furbys . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.4. Screenshot Furby-Dashboard . . . . . . . . . . . . . . . . . . . . . . . . 143.5. Screenshot LaMa-Portfolio Android-App . . . . . . . . . . . . . . . . . 153.6. Screenshot LaMa-Portfolio Team . . . . . . . . . . . . . . . . . . . . . . 163.7. Screenshot Lufthansa Übersicht . . . . . . . . . . . . . . . . . . . . . . . 183.8. Screenshot Lufthansa mit Filter . . . . . . . . . . . . . . . . . . . . . . . 19

A.1. Bragi: Programmablaufplan . . . . . . . . . . . . . . . . . . . . . . . . . 25

23

Page 28: Lars Helmuth Probst · 2018-04-03 · 2.1. Bluemix IBM Bluemix ist eine von IBM entwickelte Cloud-Plattform als Service (PaaS). Über Bluemix greifen Entwickler auf mehr als 160 Cloud-Services

A. ANHANG

A. Anhang

24

Page 29: Lars Helmuth Probst · 2018-04-03 · 2.1. Bluemix IBM Bluemix ist eine von IBM entwickelte Cloud-Plattform als Service (PaaS). Über Bluemix greifen Entwickler auf mehr als 160 Cloud-Services

A. ANHANG

Abbildung A.1.: Bragi: Programmablaufplan25