IOT - design & development Flashcards
Teilbereiche
- Anforderungsermittelung
- Entwurf
- Implementierung
- Test
- Wartung & Support
- Konfigurations-Management
- —- - PM & QM
- Vorgehensmodelle
- Tools
- Qualitätssicherung
Defintion Software-Architektur
Die grundlegende Organisation eines Systems, dargestellt durch dessen Komponenten, deren Beziehungen zueinander und zur Umgebung sowie den Prinzipien, die den Entwurf und die Evolution des Systems bestimmen
Client- /Server-Modell
System-Architektur
Server = bietet Dienste an
Client = bezieht Dienst
Request/Response (Anfrage/Antwort)
e.g.
Cache-Server (Zwischenspeicher)
Proxy-Server (Filterung, Firewall, Authentifizierung)
Peer to peer-Modell
System-Architektur, keine zentrale Koordinierung
Servants = server + clients
2-Schichten Architektur
Repräsentiert Client/ Server Modell
Fat Client
Dreischichten Architektur
Organisation der Software-Komponente in 3 Ebenen:
GUI (Frontend) -> Fachkonzept (Backend) -> Datenhaltungsschicht
+ Wartbarkeit & Portabilität
Micro-Service
Software-Architektur, bei dem komplexe Anwendungssoftware aus unabhängigen Prozessen komponiert wird
Verteilte Prozesse
Verteilte Prozesse = Nutzung räumlich verteilter Ressourcen
Parallele Prozesse = zur gleichen Zeit
Bei den verteilten Prozessen unterteilt man noch in
Nebenläufig = concurrent
Kooperierend = Zu dem gleichen Programm zugehörig &| Stark gekoppelte Programme
Verteilte Betriebssysteme
Homogene Umgebung
Diensterbringung für Nutzer transparent
Dienste für das gesamte System (e.g. Dateispeicher)
Virtualisierung von verteilten Hardware-Ressourcen
d.h. weitgehende Abstraktion von der Verteilung
Verteilungsabstraktion (distribution transparency)
Netzwerkbetriebssysteme
Für Client-Server (e.g. Web-Server)
Heterogene Umgebungen
Diensterbringung für Nutzer intransparent
Skalierbarkeit & Offenheut
Middleware
Anwendungsneutrale Software
zwischen Betriebssystem & Applikation
Vorteile von verteilten Betriebssystemen (Transparenz, einfache Nutzung) und Netzwerkbetriebssystemen (Skalierbarkeit, Offenheit) miteinander kombiniert
IOT-Plattformen
Kommunikation über Sensoren & Aktoren
Übertragungstechnologie (ZigBee & bluetooth)
Zentralsystem & Messaging Infrastructure
Datenspeicher & APIs
Intelligence Anwendungen zur Datenanalyse & -visualisierung
Verteilt eingebetteten Systeme:
Definition
- Autonome Komponente
- Für Nutzer als einziges zusammengehöriges System
Herausforderung
- Echtzeitverarbeitung
- Zuverlässigkeit des Gesamtsystem
- Fernwartung = Softwarekomponente aus der Ferne installiert, gestartet , gestoppt und deinstalliert werden ohne Gerät Neustart => Wartungs- und Aktualisierungsarbeiten vereinfachen
- Mögliche Einschränkungen durch Kommunikation
- Verschiedene Übertragungsmedien & -protokolle => diverse Fehlerzustände (e.g. Paketverlust)
Enwicklung
=> hardware-nahe Programmierung (C/C++; Java) #?
Einplatinenrechner
= Alle benötigten Module auf einer Platine
Erweiterung über Steckmodule
+ geringe Leistungsaufnahme, Abmaße, niedrige Kosten
e.g. Raspberry Pi
Mikrocontroller
= Mikroprozessor, Arbeitsspeicher & Schnittstelle für Peripherie auf einer Platine