Ulrich Gabor, Christoph Borchert€¦ · Software ubiquitärer Systeme: 3. Übung 4...

41
Software ubiquitärer Systeme Übung 3: CiAO/IP http://ess.cs.tu-dortmund.de/DE/Teaching/SS2016/SuS/ Ulrich Gabor, Christoph Borchert http://ess.cs.tu-dortmund.de/~ug AG Eingebettete Systemsoftware Informatik 12, TU Dortmund

Transcript of Ulrich Gabor, Christoph Borchert€¦ · Software ubiquitärer Systeme: 3. Übung 4...

Page 1: Ulrich Gabor, Christoph Borchert€¦ · Software ubiquitärer Systeme: 3. Übung 4 Herausforderungen Verschiedenste Anforderung müssen erfüllt werden – Unterschiedliche Hardware

Software ubiquitärer Systeme

Übung 3: CiAO/IP

http://ess.cs.tu-dortmund.de/DE/Teaching/SS2016/SuS/

Ulrich Gabor, Christoph Borchert

http://ess.cs.tu-dortmund.de/~ug

AG Eingebettete SystemsoftwareInformatik 12, TU Dortmund

Page 2: Ulrich Gabor, Christoph Borchert€¦ · Software ubiquitärer Systeme: 3. Übung 4 Herausforderungen Verschiedenste Anforderung müssen erfüllt werden – Unterschiedliche Hardware

Software ubiquitärer Systeme: 3. Übung 2

Inhalt● Internet in ubiquitären Systemen

● CiAO/IP

Page 3: Ulrich Gabor, Christoph Borchert€¦ · Software ubiquitärer Systeme: 3. Übung 4 Herausforderungen Verschiedenste Anforderung müssen erfüllt werden – Unterschiedliche Hardware

Software ubiquitärer Systeme: 3. Übung 3

Internet in ubiquitären Systemen● TCP/IP ist de-facto Standard für Datenübertragung

– Geeignet für ubiquitäre (eingebettete) Systeme?

Page 4: Ulrich Gabor, Christoph Borchert€¦ · Software ubiquitärer Systeme: 3. Übung 4 Herausforderungen Verschiedenste Anforderung müssen erfüllt werden – Unterschiedliche Hardware

Software ubiquitärer Systeme: 3. Übung 4

Herausforderungen● Verschiedenste Anforderung müssen erfüllt werden

– Unterschiedliche Hardware (Microcontroller)● Unterschiedliche Netzwerke (Ethernet, WLAN, GSM, Bluetooth, LTE, …)● Wenig Speicher verfügbar (z.B. die 32 KiB unseres MSP430)

– Unterschiedliche Anwendungen● Voice-over-IP: Geringe Latenz, Quality-of-Service● Video Streaming: Hoher Durchsatz● E-Mail: Zuverlässiger Datentransfer● …

● Statische Konfigurierbarkeit (zur Compile-Zeit) erforderlich– TCP/IP als Software-Produktlinie

Page 5: Ulrich Gabor, Christoph Borchert€¦ · Software ubiquitärer Systeme: 3. Übung 4 Herausforderungen Verschiedenste Anforderung müssen erfüllt werden – Unterschiedliche Hardware

Software ubiquitärer Systeme: 3. Übung 5

TCP/IP in Linux● Geringe statische Konfigurierung des TCP/IP-Stacks

– Hoher Speicherbedarf: > 240 KiB

TCP/IP Networking (IPv4)The IPv6 Protocol

IPv6: IPSecIP: IPSec

IP: Multicast RoutingIP: Multicasting (IGMP)

0

50

100

150

200

250

300

”size arch/x86/boot/compressed/vmlinux.bin”

Page 6: Ulrich Gabor, Christoph Borchert€¦ · Software ubiquitärer Systeme: 3. Übung 4 Herausforderungen Verschiedenste Anforderung müssen erfüllt werden – Unterschiedliche Hardware

Software ubiquitärer Systeme: 3. Übung 6

uIP – Micro IP [1]● Minimale TCP/IP Implementierung

– Ethernet, ARP, IPv4, TCP (nicht konfigurierbar)● Kein Sliding Window, Keine Übertragungswiederholung

– Wenig Konfigurierungsmöglichkeiten– Ausgelegt auf minimale Codegröße

● ca. 2800 LOC● ca. 5-10 KiB Codegröße

Page 7: Ulrich Gabor, Christoph Borchert€¦ · Software ubiquitärer Systeme: 3. Übung 4 Herausforderungen Verschiedenste Anforderung müssen erfüllt werden – Unterschiedliche Hardware

Software ubiquitärer Systeme: 3. Übung 7

lwIP – lightweight IP [1]● Teilweise konfigurierbar (und mehr Funktionalität als uIP)

– Codegröße: 7-40 KiB

● Parallel zu uIP entwickelt (vom selben Autor)

TCP

Page 8: Ulrich Gabor, Christoph Borchert€¦ · Software ubiquitärer Systeme: 3. Übung 4 Herausforderungen Verschiedenste Anforderung müssen erfüllt werden – Unterschiedliche Hardware

Software ubiquitärer Systeme: 3. Übung 9

State-of-the-Art TCP/IP Stacks● Linux

– Geringe statische Konfigurierung des TCP/IP-Stacks ● Hoher Speicherbedarf: > 240 KiB

● micro-IP (uIP)– Wenig Konfigurierungsmöglichkeiten

● Codegröße: 5-10 KiB

● lightweight IP (lwIP)– Teilweise konfigurierbar

● Codegröße: 7-40 KiBWarum nicht feingranular konfigurierbar?Warum nicht feingranular konfigurierbar?

Page 9: Ulrich Gabor, Christoph Borchert€¦ · Software ubiquitärer Systeme: 3. Übung 4 Herausforderungen Verschiedenste Anforderung müssen erfüllt werden – Unterschiedliche Hardware

Software ubiquitärer Systeme: 3. Übung 10

switch (IPH_PROTO(iphdr)) {#if LWIP_UDP case IP_PROTO_UDP:#if LWIP_UDPLITE case IP_PROTO_UDPLITE:#endif /* LWIP_UDPLITE */ snmp_inc_ipindelivers(); udp_input(p, inp); break;#endif /* LWIP_UDP */#if LWIP_TCP case IP_PROTO_TCP: snmp_inc_ipindelivers(); tcp_input(p, inp); break;#endif /* LWIP_TCP */#if LWIP_ICMP case IP_PROTO_ICMP: snmp_inc_ipindelivers(); icmp_input(p, inp); break;#endif /* LWIP_ICMP */#if LWIP_IGMP

lwip-1.3.2/src/core/ip.c

Konfigurierbarkeit in lwIP● Etwa 50 Präprozessor-

Anweisungen pro

Merkmal

Page 10: Ulrich Gabor, Christoph Borchert€¦ · Software ubiquitärer Systeme: 3. Übung 4 Herausforderungen Verschiedenste Anforderung müssen erfüllt werden – Unterschiedliche Hardware

Software ubiquitärer Systeme: 3. Übung 11

Konfigurierbarkeit in lwIP● Etwa 50 Präprozessor-

Anweisungen pro

Merkmal

switch (IPH_PROTO(iphdr)) {#if LWIP_UDP case IP_PROTO_UDP:#if LWIP_UDPLITE case IP_PROTO_UDPLITE:#endif /* LWIP_UDPLITE */ snmp_inc_ipindelivers(); udp_input(p, inp); break;#endif /* LWIP_UDP */#if LWIP_TCP case IP_PROTO_TCP: snmp_inc_ipindelivers(); tcp_input(p, inp); break;#endif /* LWIP_TCP */#if LWIP_ICMP case IP_PROTO_ICMP: snmp_inc_ipindelivers(); icmp_input(p, inp); break;#endif /* LWIP_ICMP */#if LWIP_IGMP

lwip-1.3.2/src/core/ip.c

UDP

Page 11: Ulrich Gabor, Christoph Borchert€¦ · Software ubiquitärer Systeme: 3. Übung 4 Herausforderungen Verschiedenste Anforderung müssen erfüllt werden – Unterschiedliche Hardware

Software ubiquitärer Systeme: 3. Übung 12

Konfigurierbarkeit in lwIP● Etwa 50 Präprozessor-

Anweisungen pro

Merkmal

switch (IPH_PROTO(iphdr)) {#if LWIP_UDP case IP_PROTO_UDP:#if LWIP_UDPLITE case IP_PROTO_UDPLITE:#endif /* LWIP_UDPLITE */ snmp_inc_ipindelivers(); udp_input(p, inp); break;#endif /* LWIP_UDP */#if LWIP_TCP case IP_PROTO_TCP: snmp_inc_ipindelivers(); tcp_input(p, inp); break;#endif /* LWIP_TCP */#if LWIP_ICMP case IP_PROTO_ICMP: snmp_inc_ipindelivers(); icmp_input(p, inp); break;#endif /* LWIP_ICMP */#if LWIP_IGMP

lwip-1.3.2/src/core/ip.c

UDP

UDP

Lite

Page 12: Ulrich Gabor, Christoph Borchert€¦ · Software ubiquitärer Systeme: 3. Übung 4 Herausforderungen Verschiedenste Anforderung müssen erfüllt werden – Unterschiedliche Hardware

Software ubiquitärer Systeme: 3. Übung 13

Konfigurierbarkeit in lwIP● Etwa 50 Präprozessor-

Anweisungen pro

Merkmal

switch (IPH_PROTO(iphdr)) {#if LWIP_UDP case IP_PROTO_UDP:#if LWIP_UDPLITE case IP_PROTO_UDPLITE:#endif /* LWIP_UDPLITE */ snmp_inc_ipindelivers(); udp_input(p, inp); break;#endif /* LWIP_UDP */#if LWIP_TCP case IP_PROTO_TCP: snmp_inc_ipindelivers(); tcp_input(p, inp); break;#endif /* LWIP_TCP */#if LWIP_ICMP case IP_PROTO_ICMP: snmp_inc_ipindelivers(); icmp_input(p, inp); break;#endif /* LWIP_ICMP */#if LWIP_IGMP

lwip-1.3.2/src/core/ip.c

UDP

UDP

UDP

Lite

Page 13: Ulrich Gabor, Christoph Borchert€¦ · Software ubiquitärer Systeme: 3. Übung 4 Herausforderungen Verschiedenste Anforderung müssen erfüllt werden – Unterschiedliche Hardware

Software ubiquitärer Systeme: 3. Übung 14

Konfigurierbarkeit in lwIP● Etwa 50 Präprozessor-

Anweisungen pro

Merkmal

switch (IPH_PROTO(iphdr)) {#if LWIP_UDP case IP_PROTO_UDP:#if LWIP_UDPLITE case IP_PROTO_UDPLITE:#endif /* LWIP_UDPLITE */ snmp_inc_ipindelivers(); udp_input(p, inp); break;#endif /* LWIP_UDP */#if LWIP_TCP case IP_PROTO_TCP: snmp_inc_ipindelivers(); tcp_input(p, inp); break;#endif /* LWIP_TCP */#if LWIP_ICMP case IP_PROTO_ICMP: snmp_inc_ipindelivers(); icmp_input(p, inp); break;#endif /* LWIP_ICMP */#if LWIP_IGMP

lwip-1.3.2/src/core/ip.c

TCP

UDP

UDP

UDP

Lite

Page 14: Ulrich Gabor, Christoph Borchert€¦ · Software ubiquitärer Systeme: 3. Übung 4 Herausforderungen Verschiedenste Anforderung müssen erfüllt werden – Unterschiedliche Hardware

Software ubiquitärer Systeme: 3. Übung 15

Konfigurierbarkeit in lwIP● Etwa 50 Präprozessor-

Anweisungen pro

Merkmal

switch (IPH_PROTO(iphdr)) {#if LWIP_UDP case IP_PROTO_UDP:#if LWIP_UDPLITE case IP_PROTO_UDPLITE:#endif /* LWIP_UDPLITE */ snmp_inc_ipindelivers(); udp_input(p, inp); break;#endif /* LWIP_UDP */#if LWIP_TCP case IP_PROTO_TCP: snmp_inc_ipindelivers(); tcp_input(p, inp); break;#endif /* LWIP_TCP */#if LWIP_ICMP case IP_PROTO_ICMP: snmp_inc_ipindelivers(); icmp_input(p, inp); break;#endif /* LWIP_ICMP */#if LWIP_IGMP

lwip-1.3.2/src/core/ip.c

TCP

UDP

ICMP

UDP

UDP

Lite

Page 15: Ulrich Gabor, Christoph Borchert€¦ · Software ubiquitärer Systeme: 3. Übung 4 Herausforderungen Verschiedenste Anforderung müssen erfüllt werden – Unterschiedliche Hardware

Software ubiquitärer Systeme: 3. Übung 16

switch (IPH_PROTO(iphdr)) {#if LWIP_UDP case IP_PROTO_UDP:#if LWIP_UDPLITE case IP_PROTO_UDPLITE:#endif /* LWIP_UDPLITE */ snmp_inc_ipindelivers(); udp_input(p, inp); break;#endif /* LWIP_UDP */#if LWIP_TCP case IP_PROTO_TCP: snmp_inc_ipindelivers(); tcp_input(p, inp); break;#endif /* LWIP_TCP */#if LWIP_ICMP case IP_PROTO_ICMP: snmp_inc_ipindelivers(); icmp_input(p, inp); break;#endif /* LWIP_ICMP */#if LWIP_IGMP

lwip-1.3.2/src/core/ip.c

Konfigurierbarkeit in lwIP● Etwa 50 Präprozessor-

Anweisungen pro

Merkmal

→ “#ifdef Hölle”

TCP

UDP

ICMP

UDP

UDP

Lite

MP

Page 16: Ulrich Gabor, Christoph Borchert€¦ · Software ubiquitärer Systeme: 3. Übung 4 Herausforderungen Verschiedenste Anforderung müssen erfüllt werden – Unterschiedliche Hardware

Software ubiquitärer Systeme: 3. Übung 17

tcp_in.c

etharp.c

etharp.h

icmp.cinet.c

inet_chksum.c

inet.hip_addr.h

ip.c

ip_frag.c

ip.h

tcp.c

tcp.h

tcp_out.c

udp.c

Feature-Implementierung in lwIP● Konvertierung der Paket-Header zur Network Byte Order

– Konfigurierbar durch #define (htons, ntohs, htonl, ntohl)

Files of lwIP

Page 17: Ulrich Gabor, Christoph Borchert€¦ · Software ubiquitärer Systeme: 3. Übung 4 Herausforderungen Verschiedenste Anforderung müssen erfüllt werden – Unterschiedliche Hardware

Software ubiquitärer Systeme: 3. Übung 18

tcp_in.c

etharp.c

etharp.h

icmp.cinet.c

inet_chksum.c

inet.hip_addr.h

ip.c

ip_frag.c

ip.h

tcp.c

tcp.h

tcp_out.c

udp.c

Feature-Implementierung in lwIP● Konvertierung der Paket-Header zur Network Byte Order

– Konfigurierbar durch #define (htons, ntohs, htonl, ntohl)– 210 Code-Einfügungen, verteilt über 15 DateienFiles of lwIP

Page 18: Ulrich Gabor, Christoph Borchert€¦ · Software ubiquitärer Systeme: 3. Übung 4 Herausforderungen Verschiedenste Anforderung müssen erfüllt werden – Unterschiedliche Hardware

Software ubiquitärer Systeme: 3. Übung 19

State-of-the-Art TCP/IP Stacks (2)● #ifdef-basierte Konfigurierung skaliert nicht

– Hunderte von #ifdef-basierten Bugs in Linux [2]– “problems induced by “#ifdef-hell” grow more than linearly” [2]

● TCP/IP Stacks vermeiden feingranulare Konfigurierbarkeit– Quellcode soll wartbar/verstehbar sein– „Zufällige“ Auswahl von Protokollfeatures wird implementiert

● Häufig suboptimale Auswahl

Page 19: Ulrich Gabor, Christoph Borchert€¦ · Software ubiquitärer Systeme: 3. Übung 4 Herausforderungen Verschiedenste Anforderung müssen erfüllt werden – Unterschiedliche Hardware

Software ubiquitärer Systeme: 3. Übung 20

Inhalt● Internet in ubiquitären Systemen

● CiAO/IP

Page 20: Ulrich Gabor, Christoph Borchert€¦ · Software ubiquitärer Systeme: 3. Übung 4 Herausforderungen Verschiedenste Anforderung müssen erfüllt werden – Unterschiedliche Hardware

Software ubiquitärer Systeme: 3. Übung 21

Der CiAO/IP Ansatz● Jedes Merkmal ist optional

– Keine festgelegten Merkmale

Page 21: Ulrich Gabor, Christoph Borchert€¦ · Software ubiquitärer Systeme: 3. Übung 4 Herausforderungen Verschiedenste Anforderung müssen erfüllt werden – Unterschiedliche Hardware

Software ubiquitärer Systeme: 3. Übung 22

Concern Impact Analysis (Iterativ) Merkmale und Abhängigkeiten identifizieren

Analyse der Interaktionen zwischen diesen Merkmalen

Entwurf der Software-Architektur

Specification(RFCs)

ExpertKnowledge

ConcernHierarchy

DesignPrinciples

FeatureModelling

ImpactAnalysis

Design

Explicit Features

Internal Features

1 2 3

1

2

3

Page 22: Ulrich Gabor, Christoph Borchert€¦ · Software ubiquitärer Systeme: 3. Übung 4 Herausforderungen Verschiedenste Anforderung müssen erfüllt werden – Unterschiedliche Hardware

Software ubiquitärer Systeme: 3. Übung 23

Concern Impact Analysis (Iterativ) Merkmale und Abhängigkeiten identifizieren

Analyse der Interaktionen zwischen diesen Merkmalen

Entwurf der Software-Architektur

Specification(RFCs)

ExpertKnowledge

ConcernHierarchy

DesignPrinciples

FeatureModelling

ImpactAnalysis

Design

Explicit Features

Internal Features

1 2 3

1

2

3

Page 23: Ulrich Gabor, Christoph Borchert€¦ · Software ubiquitärer Systeme: 3. Übung 4 Herausforderungen Verschiedenste Anforderung müssen erfüllt werden – Unterschiedliche Hardware

Software ubiquitärer Systeme: 3. Übung 24

Merkmalmodellierung● Beispiel: Das Internet Protocol (IP)

– Ausgangspunkt: Spezifikation (z.B. RFC1122)● MUST, SHOULD, MAY

Page 24: Ulrich Gabor, Christoph Borchert€¦ · Software ubiquitärer Systeme: 3. Übung 4 Herausforderungen Verschiedenste Anforderung müssen erfüllt werden – Unterschiedliche Hardware

Software ubiquitärer Systeme: 3. Übung 25

Concern Impact Analysis (Iterativ) Merkmale und Abhängigkeiten identifizieren

Analyse der Interaktionen zwischen diesen Merkmalen

Entwurf der Software-Architektur

Specification(RFCs)

ExpertKnowledge

ConcernHierarchy

DesignPrinciples

FeatureModelling

ImpactAnalysis Design

Explicit Features

Internal Features

1 2 3

1

2

3

Page 25: Ulrich Gabor, Christoph Borchert€¦ · Software ubiquitärer Systeme: 3. Übung 4 Herausforderungen Verschiedenste Anforderung müssen erfüllt werden – Unterschiedliche Hardware

Software ubiquitärer Systeme: 3. Übung 26

Concern Impact AnalysisEinfügung:

Erweiterung:

Modifikation:

● Basis: min. eine

Einfügung

● Benutzt: min. eine

Erweiterung

● Querschneidend:

viele Modifikationen

AP

IS

tate

Eve

nts

Page 26: Ulrich Gabor, Christoph Borchert€¦ · Software ubiquitärer Systeme: 3. Übung 4 Herausforderungen Verschiedenste Anforderung müssen erfüllt werden – Unterschiedliche Hardware

Software ubiquitärer Systeme: 3. Übung 27

Concern Hierarchy● Basismerkmale → Klassen (hier Rechtecke)● Benutzt-Hierarchie → Abgeleitete Klassen● Querschneidende Merkmale → Aspekte (hier abgerundet)

Page 27: Ulrich Gabor, Christoph Borchert€¦ · Software ubiquitärer Systeme: 3. Übung 4 Herausforderungen Verschiedenste Anforderung müssen erfüllt werden – Unterschiedliche Hardware

Software ubiquitärer Systeme: 3. Übung 28

Concern Impact Analysis (Iterativ) Merkmale und Abhängigkeiten identifizieren

Analyse der Interaktionen zwischen diesen Merkmalen

Entwurf der Software-Architektur

Specification(RFCs)

ExpertKnowledge

ConcernHierarchy

DesignPrinciples

FeatureModelling

ImpactAnalysis

Design

Explicit Features

Internal Features

1 2 3

1

2

3

Page 28: Ulrich Gabor, Christoph Borchert€¦ · Software ubiquitärer Systeme: 3. Übung 4 Herausforderungen Verschiedenste Anforderung müssen erfüllt werden – Unterschiedliche Hardware

Software ubiquitärer Systeme: 3. Übung 30

① Minimale Erweiterungen● Inkrementeller Systementwurf

– Beginnend mit minimaler Merkmal-Teilmenge

Page 29: Ulrich Gabor, Christoph Borchert€¦ · Software ubiquitärer Systeme: 3. Übung 4 Herausforderungen Verschiedenste Anforderung müssen erfüllt werden – Unterschiedliche Hardware

Software ubiquitärer Systeme: 3. Übung 31

① Minimale Erweiterungen● Inkrementeller Systementwurf

– Beginnend mit minimaler Merkmal-Teilmenge

● Querschneidende Merkmale werden Aspekte

Page 30: Ulrich Gabor, Christoph Borchert€¦ · Software ubiquitärer Systeme: 3. Übung 4 Herausforderungen Verschiedenste Anforderung müssen erfüllt werden – Unterschiedliche Hardware

Software ubiquitärer Systeme: 3. Übung 32

① Minimale Erweiterungen● Inkrementeller Systementwurf

– Beginnend mit minimaler Merkmal-Teilmenge

● Querschneidende Merkmale werden Aspekte– Ermöglicht feingranulare Konfigurierbarkeit

Page 31: Ulrich Gabor, Christoph Borchert€¦ · Software ubiquitärer Systeme: 3. Übung 4 Herausforderungen Verschiedenste Anforderung müssen erfüllt werden – Unterschiedliche Hardware

Software ubiquitärer Systeme: 3. Übung 33

② Upcall Dispatcher Hierarchy● Modulares Demultiplexing von empfangenen Paketen

Page 32: Ulrich Gabor, Christoph Borchert€¦ · Software ubiquitärer Systeme: 3. Übung 4 Herausforderungen Verschiedenste Anforderung müssen erfüllt werden – Unterschiedliche Hardware

Software ubiquitärer Systeme: 3. Übung 34

② Upcall Dispatcher Hierarchy● Modulares Demultiplexing von empfangenen Paketen

– Jeder Protokol-Handler zapft upcall()-Funktionen an● Und fügt upcall()-Funktionen für höhere Schichten hinzu

Page 33: Ulrich Gabor, Christoph Borchert€¦ · Software ubiquitärer Systeme: 3. Übung 4 Herausforderungen Verschiedenste Anforderung müssen erfüllt werden – Unterschiedliche Hardware

Software ubiquitärer Systeme: 3. Übung 35

② Upcall Dispatcher Hierarchy● Modulares Demultiplexing von empfangenen Paketen

– Jeder Protokol-Handler zapft upcall()-Funktionen an● Und fügt upcall()-Funktionen für höhere Schichten hinzu

Page 34: Ulrich Gabor, Christoph Borchert€¦ · Software ubiquitärer Systeme: 3. Übung 4 Herausforderungen Verschiedenste Anforderung müssen erfüllt werden – Unterschiedliche Hardware

Software ubiquitärer Systeme: 3. Übung 36

③ Sichtbare Übergänge● Systemstrategien explizit machen

– Durch eindeutige Benennung von C++ Klassen und Funktionen– Erleichtert spätere Anwendung von AOP

Page 35: Ulrich Gabor, Christoph Borchert€¦ · Software ubiquitärer Systeme: 3. Übung 4 Herausforderungen Verschiedenste Anforderung müssen erfüllt werden – Unterschiedliche Hardware

Software ubiquitärer Systeme: 3. Übung 37

③ Sichtbare Übergänge● Systemstrategien explizit machen

– Durch eindeutige Benennung von C++ Klassen und Funktionen– Erleichtert spätere Anwendung von AOP

Page 36: Ulrich Gabor, Christoph Borchert€¦ · Software ubiquitärer Systeme: 3. Übung 4 Herausforderungen Verschiedenste Anforderung müssen erfüllt werden – Unterschiedliche Hardware

Software ubiquitärer Systeme: 3. Übung 38

③ Sichtbare Übergänge● Aspekt zur Konvertierung zur Network Byte Order

Page 37: Ulrich Gabor, Christoph Borchert€¦ · Software ubiquitärer Systeme: 3. Übung 4 Herausforderungen Verschiedenste Anforderung müssen erfüllt werden – Unterschiedliche Hardware

Software ubiquitärer Systeme: 3. Übung 39

➃ Lose Kopplung● Durch Selbstintegration von Komponenten

– CiAO/IP-Stack kennt die Gerätetreiber nicht● Stattdessen rufen diese einen expliziten JoinPoint auf (ready())

– Aspekt meldet die Gerätetreiber am CiAO/IP-Stack an● Gerätetreiber können leicht weggelassen werden

Page 38: Ulrich Gabor, Christoph Borchert€¦ · Software ubiquitärer Systeme: 3. Übung 4 Herausforderungen Verschiedenste Anforderung müssen erfüllt werden – Unterschiedliche Hardware

Software ubiquitärer Systeme: 3. Übung 40

Was bringt die Konfigurierbarkeit?● Auf verschiedenen Systemen?

8-bit AVR128 KiB ROMSub GHz Radio

16-bit MSP43032 KiB ROMSub GHz Radio

32/64-bit Intel/AMD4 GiB RAMGbit Ethernet

Page 39: Ulrich Gabor, Christoph Borchert€¦ · Software ubiquitärer Systeme: 3. Übung 4 Herausforderungen Verschiedenste Anforderung müssen erfüllt werden – Unterschiedliche Hardware

Software ubiquitärer Systeme: 3. Übung 42

Energieverbrauch (8-bit AVR)● 32 kB Firmware-Update über TCP

– B-MAC link layer (25 ms LPL)

● Erklärung– uIP: RTT-Estimation ist Vielfaches von 500 ms (Relikt aus 4.3 BSD)

Page 40: Ulrich Gabor, Christoph Borchert€¦ · Software ubiquitärer Systeme: 3. Übung 4 Herausforderungen Verschiedenste Anforderung müssen erfüllt werden – Unterschiedliche Hardware

Software ubiquitärer Systeme: 3. Übung 44

Zusammenfassung● Internet & ubiquitäre Systeme

– Herausforderung: verschiedenste Anforderungen

● Ansätze– uIP/lwIP: Effizienzprobleme durch mangelnde Flexibilität

● Mögliche Lösung– Software-Produktlinie, wie z.B. CiAO/IP

Page 41: Ulrich Gabor, Christoph Borchert€¦ · Software ubiquitärer Systeme: 3. Übung 4 Herausforderungen Verschiedenste Anforderung müssen erfüllt werden – Unterschiedliche Hardware

Software ubiquitärer Systeme: 3. Übung 45

Referenzen1. Adam Dunkels: „Full TCP/IP for 8-Bit Architectures“

In Proceedings of the first international conference on mobile applications, systems and services (MOBISYS 2003), San Francisco, May 2003

2. R. Tartler et al. Feature Consistency in Compile-Time-Configurable System Software: Facing the Linux 10,000 Feature Problem. In EuroSys '11, pages 47–60, April 2011.