32
14. November 2016 Systemarchitektur Veranstaltung im Rahmen des Kurses „Digitale Wirtschaft gestalten“ von business4school Göttingen Prof. Dr.-Ing. Bernd Stock

Veranstaltung im Rahmen des Kurses „Digitale Wirtschaft ......der Firma Microsoft auf der Entwicklerkonferenz Build 2016 präsentiert. Es handelt sich um einen intelligenten Spiegel

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Veranstaltung im Rahmen des Kurses „Digitale Wirtschaft ......der Firma Microsoft auf der Entwicklerkonferenz Build 2016 präsentiert. Es handelt sich um einen intelligenten Spiegel

14. November 2016

Systemarchitektur

Veranstaltung im Rahmen des Kurses „Digitale Wirtschaft gestalten“ von business4school Göttingen

Prof. Dr.-Ing. Bernd Stock

Page 2: Veranstaltung im Rahmen des Kurses „Digitale Wirtschaft ......der Firma Microsoft auf der Entwicklerkonferenz Build 2016 präsentiert. Es handelt sich um einen intelligenten Spiegel

Inhaltsangabe und Danksagung

Einführung SoftwareFallstudie Smart Mirror

Mein herzlicher Dank geht an die Masterstudierenden B.Eng. Christoph Brügge und B.Eng. Michael Schäfer von der Fakultät Naturwissenschaften und Technik sowie an Herrn Dipl.Phys. Gerhard Faubel von der gemeinnützigen my.worX Gmbh, die „die Arbeit gemacht“ haben und ohne deren kreative Ideen und tatkräftige Umsetzung dieses Projekt nicht gelungen wäre. Weiterhin bedanke ich mich bei Dipl.-Ing.(FH) Tobias Bürmann von der Fakultät Naturwissenschaften und Technik für die logistische Unterstützung bei der Durchführung des Projekts.

Page 3: Veranstaltung im Rahmen des Kurses „Digitale Wirtschaft ......der Firma Microsoft auf der Entwicklerkonferenz Build 2016 präsentiert. Es handelt sich um einen intelligenten Spiegel

EinführungKollege Roboter

Quelle: http://www.ard.de/home/themenwoche/ARD_Themenwoche_2016_Zukunft_der_Arbeit/3234726/index.html Zugriff: 31.10.2016

Page 4: Veranstaltung im Rahmen des Kurses „Digitale Wirtschaft ......der Firma Microsoft auf der Entwicklerkonferenz Build 2016 präsentiert. Es handelt sich um einen intelligenten Spiegel

EinführungCyberkriminalität

Quelle: Die Zeit No.11, 3.3.2016

Page 5: Veranstaltung im Rahmen des Kurses „Digitale Wirtschaft ......der Firma Microsoft auf der Entwicklerkonferenz Build 2016 präsentiert. Es handelt sich um einen intelligenten Spiegel

EinführungAutonomes Fahren

Quelle: Die Zeit No.9, 26.2.2015

Der Google Car ist in Kalifornien„on the road“.

BMW kann im Testbetrieb ohneFahrer einparken.

Audi Testfahrzeug fuhr 900 kmautonom quer durch Amerikanach Las Vegas

Page 6: Veranstaltung im Rahmen des Kurses „Digitale Wirtschaft ......der Firma Microsoft auf der Entwicklerkonferenz Build 2016 präsentiert. Es handelt sich um einen intelligenten Spiegel

EinführungIndustrie 4.0

Quelle: Die Zeit No.5, Januar 2014

Page 7: Veranstaltung im Rahmen des Kurses „Digitale Wirtschaft ......der Firma Microsoft auf der Entwicklerkonferenz Build 2016 präsentiert. Es handelt sich um einen intelligenten Spiegel

EinführungDie Zukunft der Arbeit

Das Internet der Dinge (IoT)führt zu einem Verschmelzen der realen mit der virtuellen

Welt, also der Verbindung von Cyberspace mit dem physischen System zu sogenannten Cyber-Physical-Systems.

bewirkt, dass Produkte ein Gedächtnis haben und wissen, wie sie hergestellt werden. Sie beobachten ihr Umfeld und werden so aktive Komponenten im Produktionsprozess.

Informatik beeinflusst die Wettbewerbsfähigkeit nahezu aller Branchen; besonders die Nahtstelle zwischen den Ingenieurswissenschaften und der Software-Entwicklung wird immer wichtiger

Quelle: Auszug aus „Architekten der Arbeit. Positionen, Entwürfe, Kontroversen",Edition Körber-Stiftung, 2014

Quelle: Interview mit Henning Kagermann (Vorstandssprecher SAP), Die Zeit, 19.1.2006

Page 8: Veranstaltung im Rahmen des Kurses „Digitale Wirtschaft ......der Firma Microsoft auf der Entwicklerkonferenz Build 2016 präsentiert. Es handelt sich um einen intelligenten Spiegel

SoftwareDefinition und Besonderheiten

Software- Computer programs, procedures, and possibly associateddocumentation and data pertaining to the operation of a computer system.IEEE Std 610.12 (1990)

Was macht Software besonders?

Man kann Software nicht anfassen, sie ist immateriell.Software wird nur entwickelt, nicht gefertigt.Ein Programm nutzt sich durch häufige Verwendung nicht ab.Software kann sehr schnell geändert werden.

Page 9: Veranstaltung im Rahmen des Kurses „Digitale Wirtschaft ......der Firma Microsoft auf der Entwicklerkonferenz Build 2016 präsentiert. Es handelt sich um einen intelligenten Spiegel

SoftwareWie entsteht Software? – Die Theorie

Quelle: J. Ludewig, H. Lichter, Software Engineering, 2.aktualisierte und ergänzte Auflage, dpunkt.verlag, Heidelberg, 2010, S.39f.

Page 10: Veranstaltung im Rahmen des Kurses „Digitale Wirtschaft ......der Firma Microsoft auf der Entwicklerkonferenz Build 2016 präsentiert. Es handelt sich um einen intelligenten Spiegel

SoftwareWie entsteht Software? – Best Practice?

Page 11: Veranstaltung im Rahmen des Kurses „Digitale Wirtschaft ......der Firma Microsoft auf der Entwicklerkonferenz Build 2016 präsentiert. Es handelt sich um einen intelligenten Spiegel

SoftwareSystemspezifikation

Die Gesamtsystemspezifikation (Pflichtenheft) ist das Pendant zu dem Auftraggeberprodukt Anforderungen (Lastenheft) auf Auftragnehmerseite.

Sie wird vom Auftragnehmer in Zusammenarbeit mit dem Auftraggeber erstellt und stellt das zentrale Ausgangsdokument der Systemerstellung dar.

Wesentliche Inhalte der Gesamtsystemspezifikation sind die funktionalen und nicht-funktionalen Anforderungen an das zu entwickelnde Gesamtsystem.

Die Anforderungen werden aus dem Lastenheft übernommen und geeignet aufbereitet.

Eine erste Grobarchitektur des Systems wird entwickelt und in einer Schnittstellenübersicht beschrieben.

Quelle: http://download.gsb.bund.de/BIT/V-Modell_XT_Bund/V-Modell%20XT%20Bund%20HTML/f436f8cfc083ae.html#reff436f8cfc083ae Zugriff: 2.11.2016

Page 12: Veranstaltung im Rahmen des Kurses „Digitale Wirtschaft ......der Firma Microsoft auf der Entwicklerkonferenz Build 2016 präsentiert. Es handelt sich um einen intelligenten Spiegel

SoftwareSoftware-Architektur

The software architecture of a program or computing system is thestructure or structures of the system which comprise software elements, the externally visible properties of those elements, and the relationshipsamong them.Quelle: L.Bass, P.Clements, R.Kazman, Software Architecture in Practice, 2nd ed., The SEI Series in Software

Engineering, Addison-Wesley Pearson Education, Boston, 2003

Quelle: www.goest.de/kuqua.html Zugriff: 10.11.2016

Page 13: Veranstaltung im Rahmen des Kurses „Digitale Wirtschaft ......der Firma Microsoft auf der Entwicklerkonferenz Build 2016 präsentiert. Es handelt sich um einen intelligenten Spiegel

SoftwarePrinzipien des Architekturentwurfs

Quelle: J. Ludewig, H. Lichter, Software Engineering, 2.aktualisierte und ergänzte Auflage, dpunkt.verlag, Heidelberg, 2010, S.421.

Page 14: Veranstaltung im Rahmen des Kurses „Digitale Wirtschaft ......der Firma Microsoft auf der Entwicklerkonferenz Build 2016 präsentiert. Es handelt sich um einen intelligenten Spiegel

SoftwareSoftware-Architektur

Vier Perspektiven (Sichten) auf Architekturen

Systemperspektive− Wie ist das System in die es umgebende Umgebung eingebettet und wie

arbeitet es mit anderen Systemen zusammen?Statische Perspektive− Darstellung der zentralen Teile (Komponenten) der Architektur, ihre

Schnittstellen und Beziehungen.Dynamische Perspektive− Wie arbeiten die einzelnen Komponenten zur Laufzeit zusammen?Verteilungsperspektive− Wie werden die einzelnen Komponenten der statischen Perspektive auf die zur

Verfügung stehende Hardware und weitere Infrastruktur abgebildet?

Quelle: P.B.Kruchten, The 4+1 View Model of Architecture, IEEE Software, 12(6), 42-50, 1995, Addison-Wesley

Pearson Education, Boston, 2003

Page 15: Veranstaltung im Rahmen des Kurses „Digitale Wirtschaft ......der Firma Microsoft auf der Entwicklerkonferenz Build 2016 präsentiert. Es handelt sich um einen intelligenten Spiegel

Fallstudie Smart MirrorAnforderungen

Spieglein, Spieglein an der Wand….

Die Grundidee der Fallstudie findet sich auf diversen Internetseiten und wurde von der Firma Microsoft auf der Entwicklerkonferenz Build 2016 präsentiert. Es handelt sich um einen intelligenten Spiegel (smart mirror), der registriert, wenn jemand vor ihm steht und dann ausgewählte Informationen präsentiert. Die Idee kann beliebig verfeinert werden, aber wir wollen einfach beginnen und stellen daher die folgenden grundlegenden Anforderungen aus Benutzersicht an das System:

(1) Der intelligente Spiegel erkennt, wenn eine Benutzerin/ein Benutzer, in der Regel ein Mensch, vor ihn tritt.

(2) Steht die Benutzerin/der Benutzer vor dem Spiegel,so sollen ihr/ihm nützliche Informationen (aktuelle Wetterdaten, Kalender, News) in dem Spiegel angezeigt werden.(3) Entfernt sie/er sich von dem Spiegel, so sollen die angezeigten Informationen wieder verschwinden.

Page 16: Veranstaltung im Rahmen des Kurses „Digitale Wirtschaft ......der Firma Microsoft auf der Entwicklerkonferenz Build 2016 präsentiert. Es handelt sich um einen intelligenten Spiegel

Fallstudie Smart MirrorSystemperspektive

Hardwarekomponenten und Kommunikationsverbindungen

Page 17: Veranstaltung im Rahmen des Kurses „Digitale Wirtschaft ......der Firma Microsoft auf der Entwicklerkonferenz Build 2016 präsentiert. Es handelt sich um einen intelligenten Spiegel

Fallstudie Smart MirrorStatische Perspektive

Softwarekomponenten und Schnittstellen

Page 18: Veranstaltung im Rahmen des Kurses „Digitale Wirtschaft ......der Firma Microsoft auf der Entwicklerkonferenz Build 2016 präsentiert. Es handelt sich um einen intelligenten Spiegel

Fallstudie Smart MirrorStatische Perspektive

Hardware

RaspberryPi− Ein Einplatinencomputer, der von der RaspberryPi Foundation in Großbritannien

entwickelt wurde, um Jugendliche mit einem preisgünstigen Computer zum Experimentieren zu motivieren.

Quelle: https://de.wikipedia.org/wiki/Raspberry_Pi Zugriff 9.11.16

Bewegungsmelder PIR(passive infra-red)− Ändert sich die Infrarot- Abstrahlung der umgebenden Objekte, gibt das aktivierte

Gerät ein Signal aus, um die Bewegung zu detektieren.Quelle: https://www.reichelt.de/Fotodioden-etc-/PIR-555-28027/3/index.html?ACTION=3&GROUPID=3045&ARTICLE=154232 Zugriff 9.11.16

Ultraschall Sensor HC-SR04− Ist geeignet für Entfernungsmessungen im Bereich zwischen ca. 2 cm und 3 m.Quelle: http://www.mikrocontroller-elektronik.de/ultraschallsensor-hc-sr04/ Zugriff 9.11.16

Page 19: Veranstaltung im Rahmen des Kurses „Digitale Wirtschaft ......der Firma Microsoft auf der Entwicklerkonferenz Build 2016 präsentiert. Es handelt sich um einen intelligenten Spiegel

Fallstudie Smart MirrorStatische Perspektive

Erläuterung der Softwarekomponenten und ihrer AufgabenRaspbian OS− Betriebssystem des Raspberry Pi (ein Abkömmling der Linux-

Betriebssystemfamilie). Bildet die Basis für die Anwendungsprogramme.LAMP-ServerAbkürzung für die Kombination der Softwarepakete − Linux Betriebssystem: In unserem Falle handelt es sich um Raspbian OS.− Apache-Webserver: Seine Aufgabe ist es, seinem Clientprogramm, das in

unserem Falle auf demselben Rechner läuft, die von diesem angeforderten Informationen in der Form von HTML-Seiten auszuliefern. Um die von dem Client gewünschten Daten zu generieren, verwendet der Webserver sein PHP-Modul.

− MySQL: Datenbank, die in unserem Falle nicht benötigt wird.− PHP: Ein Erweiterungsmodul des Apache, welches es erlaubt mit der

Programmiersprache PHP (Personal Hypertext Preprocessor) dynamische Webseiten zu erzeugen.

Page 20: Veranstaltung im Rahmen des Kurses „Digitale Wirtschaft ......der Firma Microsoft auf der Entwicklerkonferenz Build 2016 präsentiert. Es handelt sich um einen intelligenten Spiegel

Fallstudie Smart MirrorStatische Perspektive

Erläuterung der Softwarekomponenten und ihrer AufgabenBrowser− Bei webbasierten Programmen ist der Browser der Client, der mit dem Server,

der sich in der Regel nicht auf demselben Rechner befindet, über das HTTP-Protokoll kommuniziert.

− Der Browser ist das Frontend, der sich bei dem Webserver die benötigten Informationen abholt und sie dann auf dem Monitor darstellt.

Python-Skript− Python ist eine Programmiersprache. Das Python-Skript wird als eigenständiger

Prozess des Betriebssystems ausgeführt. Seine Aufgabe ist es, die beiden Sensoren (den Infrarot- und Ultraschallsensor) zu überwachen und dadurch festzustellen, wenn sich ein Mensch dem Spiegel nähert. Tritt dieser Fall ein, so schaltet das Skript den Monitor an. Entfernt sich der Mensch, so schaltet das Skript den Monitor wieder aus.

Page 21: Veranstaltung im Rahmen des Kurses „Digitale Wirtschaft ......der Firma Microsoft auf der Entwicklerkonferenz Build 2016 präsentiert. Es handelt sich um einen intelligenten Spiegel

Fallstudie Smart MirrorStatische Perspektive

Schnittstellen

ETH − Ethernet legt Soft- (Protokolle) und Hardware (Netzwerkkarten, Kabel, …) für

kabelgebundene Datennetze fest. Quelle: https://de.wikipedia.org/wiki/Ethernet Zugriff 8.11.16

HDMI− High Definition Multimedia Interface ist eine Schnittstelle für die digitale Übetragung

von Bild- und Ton.Quelle: https://de.wikipedia.org/wiki/High_Definition_Multimedia_Interface Zugriff 8.11.16

GPIO− General Purpose Input/Output bezeichnet programmierbare Ein- und Ausgänge für

allgemeine Zwecke. Man führt GPIOs als Lötpunkt oder Pin in Form einer Stiftleiste nach außen hat damit eine Schnittstelle zu anderen Systemen.

Quelle: https://de.wikipedia.org/wiki/Allzweckeingabe/-ausgabe Zugriff 8.11.16

Page 22: Veranstaltung im Rahmen des Kurses „Digitale Wirtschaft ......der Firma Microsoft auf der Entwicklerkonferenz Build 2016 präsentiert. Es handelt sich um einen intelligenten Spiegel

Fallstudie Smart MirrorDynamische Perspektive-Exkurs Web-Technologien

Grundlegend ist das Client/Server-ParadigmaDer Client fragt durch Eingabe einer URL (Uniform Resource Locator) über einer

HTTP (Hyper Text Transfer Protocol)-Verbindung bei dem HTTP-Server-Programm nach einem Hypermedia- oder Hypertext-Dokument.

Der Server liefert das angefragte Dokument an den Client aus.Das universellste Clientprogramm ist der Webbrowser (Firefox, Internet Explorer,

Chrome, Safari, …)Client und Server laufen in der Regel nicht auf demselben Rechner; in unserer

Anwendung sind beide auf demselben Rechner.

Page 23: Veranstaltung im Rahmen des Kurses „Digitale Wirtschaft ......der Firma Microsoft auf der Entwicklerkonferenz Build 2016 präsentiert. Es handelt sich um einen intelligenten Spiegel

Fallstudie Smart MirrorDynamische Perspektive-Exkurs Web-Technologien

Aufgaben des Browsers Aufgaben des Servers

Page 24: Veranstaltung im Rahmen des Kurses „Digitale Wirtschaft ......der Firma Microsoft auf der Entwicklerkonferenz Build 2016 präsentiert. Es handelt sich um einen intelligenten Spiegel

Fallstudie Smart MirrorDynamische Perspektive-Exkurs Web-Technologien

Architektur des Browsers

Page 25: Veranstaltung im Rahmen des Kurses „Digitale Wirtschaft ......der Firma Microsoft auf der Entwicklerkonferenz Build 2016 präsentiert. Es handelt sich um einen intelligenten Spiegel

Fallstudie Smart MirrorDynamische Perspektive – System-Startup

Der RaspberryPi wird eingeschaltet, das Betriebssystem bootet, führt einen Dienst (Service) aus, der den Apache-Server hochfährt. Dann wird das folgende Shellskriptgestartet: #!/bin/sh# verbirg die Maus unclutter & # deaktiviere Bildschirmschonerxset s offxset –dpmsxset s noblank# verhindere, dass der chromium-Browser nach einem Absturz eine Meldung ausgibt@sed -i 's/"exited_cleanly":false/"exited_cleanly":true/‘ ~/.config/chromium/Default/Preferences# starte chromium im Vollbildmodus und lade die Seite Wetter.phpchromium-browser --noerrdialogs --kiosk http://localhost/Wetter.php # führe Python-Skript move_on_off_full.py im Python-Interpreter py auspy move_on_off_full.py &

Page 26: Veranstaltung im Rahmen des Kurses „Digitale Wirtschaft ......der Firma Microsoft auf der Entwicklerkonferenz Build 2016 präsentiert. Es handelt sich um einen intelligenten Spiegel

Fallstudie Smart MirrorDynamische Perspektive

Struktur des Serverskriptes Wetter.php

PHP-Klasse Calendar zur Darstellung des KalendersPHP-Code zum Lesen der Wetterdaten über eine HTTP-Verbindung, zur

Bestimmung des Wettertextes und zum Festlegen des anzuzeigenden Wettericons HTML-Code− JS-Skript, welches eine JS-Funktion aus dem Netz liest, die einen RSS-Feed

abonnieren und darstellen kann.− Style-Element, das CSS-Anweisungen zur Darstellung der HTML-Elemente auf

dem Bildschirm enthält.− div –Container in dem der RSS-Feed durch obige JS-Funktion dargestellt wird− div –Container in dem der Kalender durch die PHP-Klasse Calendar dargestellt

wird.− div –Container, der eine Tabelle enthält, in der die aktuellen Wetterdaten, die

durch den PHP-Code gelesen wurden, dargestellt werden.

Page 27: Veranstaltung im Rahmen des Kurses „Digitale Wirtschaft ......der Firma Microsoft auf der Entwicklerkonferenz Build 2016 präsentiert. Es handelt sich um einen intelligenten Spiegel

Fallstudie Smart MirrorUser Interface

Page 28: Veranstaltung im Rahmen des Kurses „Digitale Wirtschaft ......der Firma Microsoft auf der Entwicklerkonferenz Build 2016 präsentiert. Es handelt sich um einen intelligenten Spiegel

Fallstudie Smart MirrorUser Interface

Page 29: Veranstaltung im Rahmen des Kurses „Digitale Wirtschaft ......der Firma Microsoft auf der Entwicklerkonferenz Build 2016 präsentiert. Es handelt sich um einen intelligenten Spiegel

Fallstudie Smart MirrorDynamische Perspektive – Bildschirm an/abschalten

# Python-Skript zum Ein- und Abschalten des Bildschirms Teil 1# GPIO als "Input" festlegenGPIO.setup(GPIO_PIR,GPIO.IN)GPIO.setup(GPIO_TRIGGER, GPIO.OUT)GPIO.setup(GPIO_ECHO, GPIO.IN)

# Funktion, die die Entfernung berechnetdef distanz():

GPIO.output(GPIO_TRIGGER, True) time.sleep(0.00001)GPIO.output(GPIO_TRIGGER, False)while GPIO.input(GPIO_ECHO) == 0:

StartZeit = time.time()while GPIO.input(GPIO_ECHO) == 1:

StopZeit = time.time()TimeElapsed = StopZeit - StartZeitdistanz = (TimeElapsed * 34300) / 2return distanz

Page 30: Veranstaltung im Rahmen des Kurses „Digitale Wirtschaft ......der Firma Microsoft auf der Entwicklerkonferenz Build 2016 präsentiert. Es handelt sich um einen intelligenten Spiegel

Fallstudie Smart MirrorDynamische Perspektive – Bildschirm an/abschalten

# Python-Skript zum Ein- und Abschalten des Bildschirms Teil 2current_state = 0wait_seconds = 0# Warten bis Sensor sich meldetwhile GPIO.input(GPIO_PIR)==1:

current_state = 0while True :

time.sleep(1.0)#Status von Sensor auslesencurrent_state = GPIO.input(GPIO_PIR)abstand = distanz()if current_State==1 and abstand < 100.00 :

subprocess.Popen('vcgencmd display_power 1',shell=True) wait_seconds = 0

elif current_State==0 and abstand > 100.00 :wait_seconds = wait_seconds + 1if wait_seconds == 20:

subprocess.Popen('vcgencmd display_power 0',shell=True)wait_seconds = 0

Page 31: Veranstaltung im Rahmen des Kurses „Digitale Wirtschaft ......der Firma Microsoft auf der Entwicklerkonferenz Build 2016 präsentiert. Es handelt sich um einen intelligenten Spiegel

In der Softwareentwicklung gibt es fast nie nur einen Weg, der zum Ziel führt.

Daher zum Ende noch einige Denkanstöße und Anmerkungen zu der von uns gewählten Lösung

WiederverwendbarkeitErweiterbarkeitKann man Architekturprinzipien erkennen?SicherheitPflege und WartungAlternative Architekturvorschläge?

Quelle: http://www.tagesschau.de/multimedia/bilder/bobdylan-109.html Zugriff: 11.11.2016

DiskussionWas haben wir gelernt?

Page 32: Veranstaltung im Rahmen des Kurses „Digitale Wirtschaft ......der Firma Microsoft auf der Entwicklerkonferenz Build 2016 präsentiert. Es handelt sich um einen intelligenten Spiegel

Kontakt:Prof. Dr.-Ing. Bernd StockHAWKHochschule für angewandte Wissenschaft und Kunst Hildesheim/Holzminden/GöttingenUniversity of Applied Sciences and ArtsFakultät Naturwissenschaften und TechnikVon-Ossietzkystr. 99

37085 Göttingen

Telefon: 0 551/3705-323Telefax: 0 551/3705-100E-Mail: [email protected]: www.hawk-hhg.de/naturwissenschaften

Vielen Dank fürIhre Aufmerksamkeit.