43
Software ubiquitärer Systeme (SuS) Middleware https://ess.cs.tu-dortmund.de/DE/Teaching/SS2016/SuS/ Horst Schirmeier, Olaf Spinczyk [email protected] https://ess.cs.tu-dortmund.de/~hsc AG Eingebettete Systemsoftware Informatik 12, TU Dortmund

Software ubiquitärer Systeme (SuS) · Die Datentypen sehen nur aus wie die von C++/Java! ... – Flusskontrolle

  • Upload
    ngobao

  • View
    213

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Software ubiquitärer Systeme (SuS) · Die Datentypen sehen nur aus wie die von C++/Java! ... – Flusskontrolle

Software ubiquitärer Systeme (SuS)

Middleware

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

Horst Schirmeier, Olaf Spinczyk

[email protected]://ess.cs.tu-dortmund.de/~hsc

AG Eingebettete SystemsoftwareInformatik 12, TU Dortmund

Page 2: Software ubiquitärer Systeme (SuS) · Die Datentypen sehen nur aus wie die von C++/Java! ... – Flusskontrolle

07.06.2016 SuS: 04.2 Middleware 2

Inhalt● Middleware

– Ziele und Eigenschaften– Beispiel CORBA

● Middleware für ubiquitäre Systeme– Unterschiede zu „klassischer“ Middleware

● „Einfache Middleware“– OSEK/COM– OSEK/NM

● Zusammenfassung

HardwareHardware

BetriebssystemBetriebssystem

MiddlewareMiddleware

DatenhaltungDatenhaltung

Anwendung/ProgrammierungAnwendung/Programmierung

Page 3: Software ubiquitärer Systeme (SuS) · Die Datentypen sehen nur aus wie die von C++/Java! ... – Flusskontrolle

07.06.2016 SuS: 04.2 Middleware 3

Inhalt● Middleware

– Ziele und Eigenschaften– Beispiel CORBA

● Middleware für ubiquitäre Systeme– Unterschiede zu „klassischer“ Middleware

● „Einfache Middleware“– OSEK/COM– OSEK/NM

● Zusammenfassung

Page 4: Software ubiquitärer Systeme (SuS) · Die Datentypen sehen nur aus wie die von C++/Java! ... – Flusskontrolle

07.06.2016 SuS: 04.2 Middleware 4

Middleware: Rolle im HW/SW-Stapel● Vermittler zwischen verteilten Anwendungskomponenten

Netz

Station

lokalesBS

Station

lokalesBS

Middleware-Komponente

Middleware-KomponenteMiddleware

Client-Komponente

Server-KomponenteAnwendung

TCP/IP …

TCP/IP…

NetzfähigeStationen,Netz-BS

Que

lle: H

eiko

Kru

mm

, VL

RvS

, TU

Dor

tmun

d

Page 5: Software ubiquitärer Systeme (SuS) · Die Datentypen sehen nur aus wie die von C++/Java! ... – Flusskontrolle

07.06.2016 SuS: 04.2 Middleware 5

Middleware: Aufgaben● Verbergen der Verteilung

– Den Entwickler sollten technische Details der Kommunikation und die Platzierung der Softwarekomponenten auf verschiedene Rechner nicht berühren.

● Verbergen von Heterogenität– Die Unterschiede von Hardware, Betriebssystem und

Kommunikationsprotokollen sollen den Programmierer nicht belasten.

● Standard-Schnittstellen für Entwickler und Integratoren– Dient der einfachen Portierbarkeit, Komposition und

Interoperabilität von Softwarekomponenten.

● Dienste bereitstellen– Zur Vereinfachung der Anwendungsentwicklung und

Verbesserung der Interoperabilität.

Page 6: Software ubiquitärer Systeme (SuS) · Die Datentypen sehen nur aus wie die von C++/Java! ... – Flusskontrolle

07.06.2016 SuS: 04.2 Middleware 6

Middleware: Klassen● Procedure-Oriented Middleware

– Unterstützt entfernte Prozeduraufrufe, z.B. ONC/RPC● Object-Oriented Middleware

– Erlaubt entfernte Objektkommunikation, z.B. Java RMI, CORBA● Message-Oriented Middleware

– Kommunikation über puffernde Nachrichtenkanäle (entkoppelt),z.B. IBM WebSphere MQ

● Database-Oriented Middleware– Zugriff mehrerer Klienten auf eine zentrale Datenbank,

z.B. alle Implementierungen von ODBC● Transaction-Oriented Middleware

– Unterstützung für sichere verteilte Transaktionen,z.B. Oracle Tuxedo

Page 7: Software ubiquitärer Systeme (SuS) · Die Datentypen sehen nur aus wie die von C++/Java! ... – Flusskontrolle

07.06.2016 SuS: 04.2 Middleware 7

Beispiel CORBA● Common Object Request Broker Architecture

– OMG-Standard, V1 1991, ..., V3.3 2012 (www.omg.org)– Objektorientierte Middleware

● Logische Struktur von CORBA-Systemen:

Object Request Broker (ORB)

CORBAservices

Naming

Trader

Life Cycle Transaction

Concurrency

Licensing

ApplicationObjects

CORBAfacilitiesTelecom. User Interface

Page 8: Software ubiquitärer Systeme (SuS) · Die Datentypen sehen nur aus wie die von C++/Java! ... – Flusskontrolle

07.06.2016 SuS: 04.2 Middleware 8

Beispiel CORBA: IDL (1)● Interface Definition Language

– Die Schnittstelle von CORBA-Objekten wird sprachunabhängig in CORBA IDL definiert.

module Bank {// Deklaration einer eigenen Exceptionexception BankFehler { string info; };interface IKonto {

readonly attribute long nummer; double einzahlen(in double betrag) raises (BankFehler);

};// IGiroKonto erbt von IKontointerface IGiroKonto : IKonto {

double leseKreditLimit();};interface ISparKonto : IKonto {

double leseZinssatz();};

};

Page 9: Software ubiquitärer Systeme (SuS) · Die Datentypen sehen nur aus wie die von C++/Java! ... – Flusskontrolle

07.06.2016 SuS: 04.2 Middleware 9

Beispiel CORBA: IDL (2)● Die Datentypen sehen nur aus wie die von C++/Java!

– Die Abbildung findet sich in der CORBA-Spezifikation

Page 10: Software ubiquitärer Systeme (SuS) · Die Datentypen sehen nur aus wie die von C++/Java! ... – Flusskontrolle

07.06.2016 SuS: 04.2 Middleware 10

Beispiel CORBA: Laufzeitsystem● Der Client Stub und die Static Skeletons werden

sprachabhängig aus der IDL-Beschreibung generiert– Fernaufrufe sehen dadurch aus wie normale Funktionsaufrufe– Standard-Semantik: Synchroner Aufruf, Request/Reply-Protokoll

● Objektreferenzen sind rechnerübergreifend gültig

DynamicInvocation

ClientIDL

Stub

ORBInterface

StaticSkeletons

DynamicSkeletonInterface

ObjectAdapter

InterfaceRepository

ImplementationRepository

Client ObjectImplementation

Object Request Broker (ORB) Core

Page 11: Software ubiquitärer Systeme (SuS) · Die Datentypen sehen nur aus wie die von C++/Java! ... – Flusskontrolle

07.06.2016 SuS: 04.2 Middleware 11

Inhalt● Middleware

– Ziele und Eigenschaften– Beispiel CORBA

● Middleware für ubiquitäre Systeme– Unterschiede zu „klassischer“ Middleware

● „Einfache Middleware“– OSEK/COM– OSEK/NM

● Zusammenfassung

Page 12: Software ubiquitärer Systeme (SuS) · Die Datentypen sehen nur aus wie die von C++/Java! ... – Flusskontrolle

07.06.2016 SuS: 04.2 Middleware 12

Verteilte Systeme

NetzNetz

GerätGerät 1HardwareBetriebss.

MiddlewareAnwendung

Gerät 2HardwareBetriebss.

MiddlewareAnwendung

Gerät 3HardwareBetriebss.

MiddlewareAnwendung

Gerät NHardwareBetriebss.

MiddlewareAnwendung

Netzwerk-Netzwerk-verbindungenverbindungen

KontextKontext 1

Kontext2 Kontext 3

Kontext N

logischeVerbindungen

Page 13: Software ubiquitärer Systeme (SuS) · Die Datentypen sehen nur aus wie die von C++/Java! ... – Flusskontrolle

07.06.2016 SuS: 04.2 Middleware 13

Verteilte Systeme: Varianten [1]

Verteiltes System

Art derGeräte

Art der Netzwerk-verbindungen

Art desKontexts

stationär mobil permanent lückenhaft statisch dynamischv

Page 14: Software ubiquitärer Systeme (SuS) · Die Datentypen sehen nur aus wie die von C++/Java! ... – Flusskontrolle

07.06.2016 SuS: 04.2 Middleware 14

„Klassische“ Verteilte Systeme● Stationäre Geräte

– Hohe Rechenleistung, viel Speicher

● Permanente Netzwerkverbindung– Kaum Ausfälle, hohe Bandbreite

● Statischer Kontext– Immer dieselben Nutzer(rollen),

unveränderter Ort

Page 15: Software ubiquitärer Systeme (SuS) · Die Datentypen sehen nur aus wie die von C++/Java! ... – Flusskontrolle

07.06.2016 SuS: 04.2 Middleware 15

Mobile ubiquitäre Systeme● Mobile Geräte

– Wenig Rechenleistung und Speicher– Mangel an Energie

● Lückenhafte Netzwerkverbindung– Abgeschaltete Geräte normal (Kosten),

unzuverlässige Netze, evtl. variableBandbreite

● Dynamischer Kontext– Ort, umgebende Netzwerkstruktur usw. ändern sich

Page 16: Software ubiquitärer Systeme (SuS) · Die Datentypen sehen nur aus wie die von C++/Java! ... – Flusskontrolle

07.06.2016 SuS: 04.2 Middleware 16

Klassische vs. mobile Middleware (1)● Gewicht (=Ressourcenverbrauch)

– Klassisch: schwer● Stationäre Geräte● Um viele Fähigkeiten wie Fehlertoleranz oder Security zu integrieren, muss

man entsprechend viele Ressourcen „spendieren“.– Mobil: leicht

● Mobile Geräte● Ein großes Middleware-System wäre auf kleinen ubiquitären Rechnern

nicht einsetzbar. Viele Fähigkeiten klassischer Middleware sind zum Glück bei Spezialzwecksystemen auch verzichtbar.

Page 17: Software ubiquitärer Systeme (SuS) · Die Datentypen sehen nur aus wie die von C++/Java! ... – Flusskontrolle

07.06.2016 SuS: 04.2 Middleware 17

Klassische vs. mobile Middleware (2)● Typisches Kommunikationsparadigma

– Klassisch: synchron● Permanente Netzwerkverbindung● Client und Server sind gleichzeitig online. Ersterer erwartet die Antwort

des Servers. Das entspricht dem Programmiermodell von Funktionsaufrufen.

– Mobil: asynchron● Lückenhafte Netzwerkverbindung● Client und Server sind nicht notwendigerweise gleichzeitig online.

Page 18: Software ubiquitärer Systeme (SuS) · Die Datentypen sehen nur aus wie die von C++/Java! ... – Flusskontrolle

07.06.2016 SuS: 04.2 Middleware 18

Klassische vs. mobile Middleware (3)● Repräsentation von Kontext

– Klassisch: transparent● Statischer Kontext● Die Middleware kann den Kontext einmalig (oder zumindest selten)

ermitteln. Sie ist ohne Anwendungshilfe in der Lage, effizient in jedem denkbaren Kontext zu arbeiten, und verbirgt diesen daher vor der Anwendung und dem Benutzer.

– Mobil: gewahr● Dynamischer Kontext● Die Anwendung bzw. der Benutzer interessieren sich ausdrücklich für den

Kontext, z.B. „Welches Netz ist hier verfügbar?“ (Preis!), „Welche Dienste kann man hier nutzen?“

● Eine wichtige Forschungsfrage ist daher, wie man Kontext repräsentiert und auf Kontextänderungen reagiert.

Page 19: Software ubiquitärer Systeme (SuS) · Die Datentypen sehen nur aus wie die von C++/Java! ... – Flusskontrolle

07.06.2016 SuS: 04.2 Middleware 19

Inhalt● Middleware

– Ziele und Eigenschaften– Beispiel CORBA

● Middleware für ubiquitäre Systeme– Unterschiede zu „klassischer“ Middleware

● „Einfache Middleware“– OSEK/COM– OSEK/NM

● Zusammenfassung

Page 20: Software ubiquitärer Systeme (SuS) · Die Datentypen sehen nur aus wie die von C++/Java! ... – Flusskontrolle

07.06.2016 SuS: 04.2 Middleware 20

„Einfache Middleware“● Kein feststehender Begriff!● Meint: Middleware für kleine Microcontroller-basierte

verteilte eingebettete Systeme.

● Schönstes Beispiel: Das Auto– OSEK/COM [2]

● Einheitliche Kommunikations-infrastruktur für KFZ-Steuergeräte

● Protokollunabhängige Schnittstellen

– OSEK/NM [3]● Ergänzt OSEK/COM um

„Netzwerkmanagement“

Page 21: Software ubiquitärer Systeme (SuS) · Die Datentypen sehen nur aus wie die von C++/Java! ... – Flusskontrolle

07.06.2016 SuS: 04.2 Middleware 21

Aufgaben der Schichten (bottom up)● Data Link Layer

– unbestätigter Versand einzelner Pakete

● Network Layer– Segmentierung und Zusammensetzung– Flusskontrolle– Empfangsbestätigtes Senden

● Interaction Layer– API zum lokalen und rechnerübergreifenden

Nachrichtenaustausch zwischen OSEK-Tasksund Unterbrechungsbehandlungsroutinen

– m:n-Kommunikation– unbeschränkte Nachrichtengröße– Nachrichtenfilterung– Pufferung

Hier definiertCOM lediglichAnforderungen

Hier definiertCOM lediglichAnforderungen

Hier stecktdie eigentlicheFunktionalität

Hier stecktdie eigentlicheFunktionalität

Page 22: Software ubiquitärer Systeme (SuS) · Die Datentypen sehen nur aus wie die von C++/Java! ... – Flusskontrolle

07.06.2016 SuS: 04.2 Middleware 22

Interaction Layer: Überblick

Page 23: Software ubiquitärer Systeme (SuS) · Die Datentypen sehen nur aus wie die von C++/Java! ... – Flusskontrolle

07.06.2016 SuS: 04.2 Middleware 23

EmpfangsschnittstelleFür jeden Empfänger legtOSEK/COM intern einMessage Object an.– Es gibt 2 Arten …

● Queued Message Object– FIFO-Warteschlange– Neue Pakete werden verworfen,

wenn die Warteschlange voll ist.● Unqueued Message Object

– Neue Nachrichten überschreiben jeweils die vorherige Nachricht– Anwendungen können diese Nachricht beliebig oft (atomar) lesen– Sender und Empfänger können komplett asynchron arbeiten

Page 24: Software ubiquitärer Systeme (SuS) · Die Datentypen sehen nur aus wie die von C++/Java! ... – Flusskontrolle

07.06.2016 SuS: 04.2 Middleware 24

SendeschnittstelleEs gibt drei Übertragungsmodi …

● Direct Transmission Mode– Die Nachricht wird direkt übertragen

● Periodic Transmission Mode– Es wird eine I-PDU erstellt und in

regelmäßigen Abständen verschickt– Die SendMessage-Operation aktualisiert lediglich die I-PDU– Sender und Empfänger werden komplett entkoppelt

● Mixed Transmission Mode– Kombination aus Direct und Periodic– Die „Transfer Property“ der Nachricht entscheidet, ob

nur die periodisch verschickte I-PDU aktualisiert wird, oderzusätzlich sofort übertragen werden soll.

Page 25: Software ubiquitärer Systeme (SuS) · Die Datentypen sehen nur aus wie die von C++/Java! ... – Flusskontrolle

07.06.2016 SuS: 04.2 Middleware 25

Weitere Fähigkeiten von OSEK/COM

Page 26: Software ubiquitärer Systeme (SuS) · Die Datentypen sehen nur aus wie die von C++/Java! ... – Flusskontrolle

07.06.2016 SuS: 04.2 Middleware 26

Notification-Mechanismus● Erlaubt die Synchronisation der Anwendung mit dem

Kommunikationssystem.● 4 Arten von Ereignissen

– Erfolgreiches/fehlgeschlagenes Empfangen/Senden

● 4 Möglichkeiten Ereignisse anzuzeigen– Aufruf einer Callback-Funktion– Setzen eines Flags– Setzen eines OSEK-Events– Aktivieren eines Tasks

● Nur der Notification-Mechanismus kann Kontextwechsel auslösen– Dies sollte nicht zu häufig stattfinden➔ Daher die Filterfähigkeit

Page 27: Software ubiquitärer Systeme (SuS) · Die Datentypen sehen nur aus wie die von C++/Java! ... – Flusskontrolle

07.06.2016 SuS: 04.2 Middleware 27

Filtermechanismus● Flexible Inhaltsfilter pro Message Object– new_value

● akt. Wert– old_value

● vorherigerWert

– mask, x,min, max,period,offset

● Konstanten– occurrence

● Häufigkeitdes Vor-kommenseinerNachricht

Page 28: Software ubiquitärer Systeme (SuS) · Die Datentypen sehen nur aus wie die von C++/Java! ... – Flusskontrolle

07.06.2016 SuS: 04.2 Middleware 28

Deadline Monitoring● Empfangen

– Schlägt Alarm, wenn z.B. eine periodische Nachrichtnicht rechtzeitig eintrifft

– Sonderbehandlung für die erste Nachricht

● Senden– Überprüft ob eine Nachricht schnell genug

vom Network/Data Link Layer verschickt wurden.

● Kopplung an OSEK/NM möglich

Page 29: Software ubiquitärer Systeme (SuS) · Die Datentypen sehen nur aus wie die von C++/Java! ... – Flusskontrolle

07.06.2016 SuS: 04.2 Middleware 29

(Wieder) Conformance Classes● CCCA

– Minimale Funktionalität, nur interneKommunikation

– Nur Unqueued Messages

● CCCB– Nur interne Kommunikation– Queued Messages– Statusinformationen von Nachrichten

● CCC0– Minimale Funktionalität für interne und

externe Kommunikation

● CCC1– Unterstützt alle Features von

OSEK/COM

Page 30: Software ubiquitärer Systeme (SuS) · Die Datentypen sehen nur aus wie die von C++/Java! ... – Flusskontrolle

07.06.2016 SuS: 04.2 Middleware 30

OSEK/NM: Motivation● Problem:

– Vernetzung von ECUs verschiedenster Zulieferer– Verhalten eines Knotens beeinflusst das Verhalten des gesamten Systems

(und umgekehrt)– Fehlfunktionen durch Beeinflussungen müssen vermieden werden

● Lösung:– Auslagerung dieser Aufgaben in eine dedizierte

Netzwerk-Management-Komponente● Status des Netzwerks wird kontinuierlich kontrolliert

– Standardisierte Schnittstellen und Protokolle sollen Funktionsfähigkeit zusichern

● Knoten müssen „Verhandlungen“ führen, z.B. vor Eintritt in Schlafmodus

● Ergebnis:– Zuverlässigere Systeme– Ersparnis von Kosten und Entwicklungszeit

Page 31: Software ubiquitärer Systeme (SuS) · Die Datentypen sehen nur aus wie die von C++/Java! ... – Flusskontrolle

07.06.2016 SuS: 04.2 Middleware 31

OSEK/NM: ArchitekturNM hat Schnittstellen zur:

● Anwendung– API bietet Zugang zu

NM-Funktionen

● Interaktionsschicht– wird zur Überwachung der

Nachrichten der Anwendungbenutzt

● Datensicherungsschicht– bietet Zugang zur

Kommunikationshardware

Page 32: Software ubiquitärer Systeme (SuS) · Die Datentypen sehen nur aus wie die von C++/Java! ... – Flusskontrolle

07.06.2016 SuS: 04.2 Middleware 32

OSEK/NM: Konzept und Verhalten● NM basiert auf dem Überwachen von Knoten.● zwei Methoden:

– Indirekte Knotenüberwachung– Direkte Knotenüberwachung

● Konfigurationsmanagement nutzt Knotenüberwachung zur Ermittlung/Steuerung der aktuellen Konfiguration– Ausgefallene Knoten– Übergänge zwischen

● Betriebsmodus● Schlafmodus● „limp-home“-Modus

Page 33: Software ubiquitärer Systeme (SuS) · Die Datentypen sehen nur aus wie die von C++/Java! ... – Flusskontrolle

07.06.2016 SuS: 04.2 Middleware 33

OSEK/NM: Indirekte Überwachung● Idee:

– Anwendungen tauschen i.d.R. periodisch Nachrichten aus– indirektes NM überwacht diesen normalen Nachrichtenaustausch– Empfang und Senden von Nachrichten wird als Lebenszeichen

interpretiert– Wird über einen bestimmten Zeitraum keine Nachricht empfangen

→ Fehlfunktion des Knotens

● Vorteil:– Ideal bei sehr einfachen oder zeitkritischen Anwendungen, da keine

zusätzliche Netzlast erzeugt wird.

● Nachteil:– Passiv → Nicht alle Aufgaben sind erfüllbar!

Page 34: Software ubiquitärer Systeme (SuS) · Die Datentypen sehen nur aus wie die von C++/Java! ... – Flusskontrolle

07.06.2016 SuS: 04.2 Middleware 34

OSEK/NM: Direkte Überwachung (1)● Idee:

– Knoten überwachen sich gegenseitig– Knoten senden und empfangen spezielle NM-Nachrichten– Jeder Knoten sendet ein „Ich lebe“ („I am alive“)-Signal und empfängt

die „Lebenssignale“ aller anderen Knoten.– Die „Lebenssignale“ werden „aufsummiert“

→ gegenwärtige Konfiguration

● Vorteil:– Knoten können zusätzlich über die Ringnachrichten kommunizieren

und z.B. netzwerkweite Moduswechsel auslösen.

● Nachteil:– Kontinuierliche erhöhte Buslast

Page 35: Software ubiquitärer Systeme (SuS) · Die Datentypen sehen nur aus wie die von C++/Java! ... – Flusskontrolle

07.06.2016 SuS: 04.2 Middleware 35

OSEK/NM: Direkte Überwachung (2)● Logischer Ring

– Jeder Knoten hat eine eindeutige Nummer, die auch die Reihenfolge im Ring repräsentiert.

● Es gibt zwei Aktivitäten:– Integration von Knoten in den logischen Ring– Bestimmen von fehlerhaften Knoten und

Neukonfigurierung des logischen Rings

Page 36: Software ubiquitärer Systeme (SuS) · Die Datentypen sehen nur aus wie die von C++/Java! ... – Flusskontrolle

07.06.2016 SuS: 04.2 Middleware 36

OSEK/NM: Direkte Überwachung (3)● Erkennung neuer Knoten

36

Page 37: Software ubiquitärer Systeme (SuS) · Die Datentypen sehen nur aus wie die von C++/Java! ... – Flusskontrolle

07.06.2016 SuS: 04.2 Middleware 37

OSEK/NM: Direkte Überwachung (4)● Ausfall eines Knotens

37

Page 38: Software ubiquitärer Systeme (SuS) · Die Datentypen sehen nur aus wie die von C++/Java! ... – Flusskontrolle

07.06.2016 SuS: 04.2 Middleware 38

OSEK/NM: Direkte Überwachung (5)● NM unterstützt die Interoperabilität von Knoten verschiedener

Zulieferer● Repräsentation von NM-Daten hat ein festgelegtes Format

→ NM-PDU

38

Page 39: Software ubiquitärer Systeme (SuS) · Die Datentypen sehen nur aus wie die von C++/Java! ... – Flusskontrolle

07.06.2016 SuS: 04.2 Middleware 39

OSEK/NM: SchlafmodusMit Hilfe der NM-PDUs kann zum Beispiel ein netzwerkweiter Wechsel in den Schlafmodus erfolgen.

● Jeder Knoten kann globalen Ruhezustand anstoßen

● Sende Ringnachricht mit Bussleep.ind = 1● Andere Knoten im Netz:

– reichen Bussleep.ind unverändert weiter oder

– setzen Bussleep.ind zurück

● kommt Bussleep.ind beim Initiator unverändert (= 1) an→ sende Ringnachricht mit Bussleep.ack = 1

● alle Knoten empfangen diese Nachricht→ wechseln (nach einer Wartezeit) in Ruhezustand

Page 40: Software ubiquitärer Systeme (SuS) · Die Datentypen sehen nur aus wie die von C++/Java! ... – Flusskontrolle

07.06.2016 SuS: 04.2 Middleware 40

OSEK/NM: Konfigurierbarkeit● Spezifikation wurde in Kern-Dienste und

optionale Dienste unterteilt● Resultat:

– modulares NM, anpassbar an Speicherausstattung und Rechenleistung eines Knotens

● Beispiele:– Renault setzt indirektes NM ein

● 1 – 2 KB ROM, inklusive Fehlerspeicher● 0% Buslast (keine NM-spezifischen Nachrichten)

– Mercedes-Benz setzt direktes NM ein● 1,5 – 1,7 KB ROM● 4 – 8 KB RAM● 1% Buslast

Page 41: Software ubiquitärer Systeme (SuS) · Die Datentypen sehen nur aus wie die von C++/Java! ... – Flusskontrolle

07.06.2016 SuS: 04.2 Middleware 41

Inhalt● Middleware

– Ziele und Eigenschaften– Beispiel CORBA

● Middleware für ubiquitäre Systeme– Unterschiede zu „klassischer“ Middleware

● „Einfache Middleware“– OSEK/COM– OSEK/NM

● Zusammenfassung

Page 42: Software ubiquitärer Systeme (SuS) · Die Datentypen sehen nur aus wie die von C++/Java! ... – Flusskontrolle

07.06.2016 SuS: 04.2 Middleware 42

Zusammenfassung● OSEK/COM und OSEK/NM können zusammen als typisches

Beispiel für eine Middleware für ubiquitäre Systeme angesehen werden.

● Gewicht (=Ressourcenverbrauch): leicht– Beide Komponenten sind statisch konfigurierbar– Einfache Abstraktionen und Protokolle erfordern wenig Aufwand

● Kommunikationsparadigma: asynchron– Mittels Unqueued Message Objects und Periodic Transmission können

Sender und Empfänger komplett entkoppelt werden.– Ausfälle von Knoten oder Nachrichten können toleriert werden.

● Kontext: gewahr– OSEK/NM beobachtet das Netz und stellt den Anwendungen die

entsprechenden Informationen zur Verfügung. Sie können damit kontextgewahr realisiert werden.

Page 43: Software ubiquitärer Systeme (SuS) · Die Datentypen sehen nur aus wie die von C++/Java! ... – Flusskontrolle

07.06.2016 SuS: 04.2 Middleware 43

Literatur[1] L. Capra, W. Emmerich, and C. Mascolo, Middleware for Mobile

Computing: Awareness vs. Transparency. In Proceedings of the Eighth Workshop on Hot Topics in Operating Systems (May 20 - 22, 2001). HOTOS. IEEE Computer Society, Washington, DC, p. 164, 2001.

[2] OSEK/VDX Communication Specification 3.0.3, Juli 2004, www.osek-vdx.org

[3] OSEK/VDX Network Management: Concept and Application Programming Interface, Version 2.5.3, Juli 2004, www.osek-vdx.org