lars helmuth probst · 2018-04-03 · 2.1. bluemix ibm bluemix ist eine von ibm entwickelte...
TRANSCRIPT
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
„Scientists investigate that which already is;engineers create that which has never been.“
Albert Einstein
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
INHALTSVERZEICHNIS
Abbildungsverzeichnis 23
A. Anhang 24
ii
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
4.3. FAZIT
4.3. Fazit
Ich kann jedem ein Praktikum bei der IBM Deutschland GmbH empfehlen.
21
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
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
A. ANHANG
A. Anhang
24
A. ANHANG
Abbildung A.1.: Bragi: Programmablaufplan25