Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
14. November 2016
Systemarchitektur
Veranstaltung im Rahmen des Kurses „Digitale Wirtschaft gestalten“ von business4school Göttingen
Prof. Dr.-Ing. Bernd Stock
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.
EinführungKollege Roboter
Quelle: http://www.ard.de/home/themenwoche/ARD_Themenwoche_2016_Zukunft_der_Arbeit/3234726/index.html Zugriff: 31.10.2016
EinführungCyberkriminalität
Quelle: Die Zeit No.11, 3.3.2016
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
EinführungIndustrie 4.0
Quelle: Die Zeit No.5, Januar 2014
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
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.
SoftwareWie entsteht Software? – Die Theorie
Quelle: J. Ludewig, H. Lichter, Software Engineering, 2.aktualisierte und ergänzte Auflage, dpunkt.verlag, Heidelberg, 2010, S.39f.
SoftwareWie entsteht Software? – Best Practice?
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
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
SoftwarePrinzipien des Architekturentwurfs
Quelle: J. Ludewig, H. Lichter, Software Engineering, 2.aktualisierte und ergänzte Auflage, dpunkt.verlag, Heidelberg, 2010, S.421.
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
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.
Fallstudie Smart MirrorSystemperspektive
Hardwarekomponenten und Kommunikationsverbindungen
Fallstudie Smart MirrorStatische Perspektive
Softwarekomponenten und Schnittstellen
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
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.
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.
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
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.
Fallstudie Smart MirrorDynamische Perspektive-Exkurs Web-Technologien
Aufgaben des Browsers Aufgaben des Servers
Fallstudie Smart MirrorDynamische Perspektive-Exkurs Web-Technologien
Architektur des Browsers
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 &
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.
Fallstudie Smart MirrorUser Interface
Fallstudie Smart MirrorUser Interface
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
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
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?
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.