220 likes | 362 Views
Mobile Middleware Context Awareness vs. Transparenz. Vortrag im Seminar „Informationsverwaltung in Netzen“ Uli Raffel 19.06.2003. Gliederung. Mobile Systeme Anwendungen für Mobile Systeme Zum Vergleich: Middleware f. Verteilte Systeme
E N D
Mobile MiddlewareContext Awareness vs. Transparenz Vortrag im Seminar „Informationsverwaltung in Netzen“ Uli Raffel 19.06.2003 Uli Raffel Mobile Middleware 1/22
Gliederung • Mobile Systeme • Anwendungen für Mobile Systeme • Zum Vergleich: Middleware f. Verteilte Systeme • Bei Middleware f. Mobile Systeme: Entscheidung: Transparenz vs. Context Awareness • Context Awareness bei Mobilen Systemen: • Anwendungsspezifische Strategien zum Datenabgleich replizierter Daten (data reconciliation) • Beispiel: verteilter Einkaufswagen • Metadaten • Reflection • Beispiel: Route Aggegation Uli Raffel Mobile Middleware 2/22
Mobile Geräte • Laptop • Handy • PDA • Chips (ohne GUI) • ... Uli Raffel Mobile Middleware 3/22
Mobile Ad-hoc-Netze • Mobile Geräte... • haben begrenzte Reichweite • bilden Ad-Hoc-Netze • sind hochgradig mobil • betreten und verlassen das Netz häufig • haben knappe Ressourcen: Batterie, CPU, Speicher, Bandbreite • Jeder Knoten ist zugleich Endpunkt und Router • Keine Infrastruktur, die Routing unterstütz • i.a. Broadcast nötig => Ähnlichkeiten zu Peer-to-Peer-Netzen Uli Raffel Mobile Middleware 4/22
Anwendungen für Mobile Systeme • Verkehrswarnsystem • Spiele • Militär • Tauschbörsen • Tierbeobachtung • Katastrophenschutz • Touristeninformationssystem: • mobile Teilnehmer in begrenzter Umgebung (Stadt, Museum, Messe) • Informationsanfrage zu Gegenständen (Gebäude, etc.) bei Näherung • Direkte oder indirekte Antwort(en) von Teilnehmer(n) im räumlichen Umfeld Uli Raffel Mobile Middleware 5/22
Uli Raffel Mobile Middleware 6/22
Middleware für Mobile Systeme • soll helfen, mobile Anwendungen zu entwickeln • muss leichtgewichtig sein • soll asynchrone Kommunikation unterstützen • soll technische Aspekte für die Anwendung transparent machen (?) Uli Raffel Mobile Middleware 7/22
Middleware für Verteilte Systeme • Zum Vergleich: • Middleware für Verteilte Systeme • soll helfen, verteilte Anwendungen zu entwickeln • versteckt technische Aspekte vor der Anwendung • Heterogenität • Fehlertoleranz • Ressourcenverteilung • bietet dem Anwendungsentwickler das Bild eines großen zentralen Systems(-> Verteilungstransparenz) Uli Raffel Mobile Middleware 8/22
Verteilungstransparenz für Mobile Systeme (?) • Middleware wäre dann schwergewichtig • Middleware müsste stabile Verbindung voraussetzen • Middleware müsste dann Verteilungsentscheidungen für die Anwendung treffen • hat aber keine applikationsspezifischen Informationen, wann wo welche Daten benötigt werden • Anwendung könnte aber entscheidende Informationen haben • Lösung: Context Awareness Uli Raffel Mobile Middleware 9/22
Context Awareness • Es gibt keine sinnvolle statische Strategie, die eine Anwendung der Middleware mitteilen kann • Anwendung muss also mit Middleware kommunizieren • z.B. kann die Anwendung besser wissen, auf welchem Host Daten zu replizieren sind, damit sie nicht verloren gehen • Anwendung kann wissen, wie mit Inkonsistenzen bei replizierten Daten umzugehen ist(siehe nachfolgendes Beispiel) Uli Raffel Mobile Middleware 10/22
Verteilter Einkaufswagen • 3-Personen-Familie mit 1 PC und 3 PDAs • PC enthält Produktpalette eines Shops und einen Einkaufswagen (Datenaustausch übers Internet) • Daten werden auf PDAs repliziert • Bei Verbindung PC <-> PDA oder PDA <-> PDA werden Daten abgeglichen (data reconciliation) Uli Raffel Mobile Middleware 11/22
Verteilter Einkaufswagen (2) • Daten auf PDA A Daten auf PDA C • Daten auf PDA A nach lokalem • Update des Einkaufswagens Uli Raffel Mobile Middleware 12/22
Verteilter Einkaufswagen (3) • Bspl. 1: • Auf PC wird durchs Internet Preis für Käse aktualisiert(nur noch 3,25) • PDA B übernimmt neuen Preis • PDA A hat noch alten Preis (3,50) • PDA A und PDA B begegnen sich • Sinnvolles Verhalten beim Abgleich: Preis 3,25 • Bspl. 2: • Auf PDA A wird 1 Milch in den Einkaufswagen gelegt • Auf PDA C werden 2 Milch in den Einkaufswagen gelegt • PDA A und PDA C begegnen sich • Sinnvolles Verhalten beim Abgleich: 3 Milch im Einkaufswagen • => Abgleich von Daten vom Kontext abhängig Uli Raffel Mobile Middleware 13/22
Abgleich von replizierten Daten • ... am Beispiel XMIDDLE • bei Begegnung zweier Geräte: • gemeinsam genutzte Daten werden ermittelt • letzte gemeinsame Version dieser Daten wird ermittelt • Änderungen seit dieser Version werden ermittelt • Änderungen, die keinen Konflikt erzeugen, werden jeweils übernommen • bei Änderungen, die Konflikt erzeugen (Änderung der gleichen Elemente/Attribute) wird Konflikt aufgelöst Uli Raffel Mobile Middleware 14/22
Abgleich von replizierten Daten (2) • Konfliktauflösung • Anwendung kann Auflösungsstrategien vorgeben: add, last, random, first, greatest • beide Anwendungen haben gleiche Strategie vorgegeben:sie wird verwendet • beide Anwendungen haben unterschiedliche Strategien vorgegeben:dominante Strategie wird verwendet • Anwendungen haben keine Strategie vorgegeben:Default-Strategie: last Uli Raffel Mobile Middleware 15/22
Metadaten • Anwendung gibt der Middleware Informationen, wie sie sich zu verhalten hat • Passive Information • Middleware soll auf Veränderungen im Ausführungskontext reagieren • z.B. Verbindung trennen bei niedrigem Batteriestand • Aktive Information • Middleware soll für jeden Dienst, den sie erbringt, bestimmte Policy verfolgen. • z.B. bei viel verfügbarem Speicherplatz eine lokale Kopie von Daten anlegen, bei wenig Speicherplatz und guter Verbindung nicht. Uli Raffel Mobile Middleware 16/22
Reflection • Reflection erlaubt es einem Programm, auf seine eigene Interpretation zuzugreifen, über sie nachzudenken und sie zu verändern. • Reflection hier: Verbreitung von Umweltinformationen an Applikationsschicht • erreichbare Hosts/Dienste • Batteriestand • Speicherplatz • CPU-Auslastung • Ort • Relativer Ort zu Diensterbringern (z.B. Drucker) • Bandbreite Uli Raffel Mobile Middleware 17/22
Route Aggregation • Netzwerk wird in Gruppen organisiert • Gruppen werden von Aggregation Point (AP) verwaltet • Anfragen gehen an AP • AP kann cachen Uli Raffel Mobile Middleware 18/22
Route Aggregation (2) • Voraussetzung: Jeder Peer kann jeden (über mehrere Hops) erreichen (Multihop-Konnektivität) • bei mehr als N Nachbarn: Wahl eines AP • Knoten neu im Netz: Auswahl eines geeigneten AP-> hier kann Reflection verwendet werden Uli Raffel Mobile Middleware 19/22
Route Aggregation (3) • Anfrage an AP, AP liefert Adresse des Zielknotens • Content direkt vom Zielknoten • reguläre Abmeldung an AP • Ausschluss bei Ausfall durch Heartbeat-Nachrichten • Rücktritt eines AP bei • zu vielen Knoten • (-> Group Splitting) • zu wenigen Knoten • (-> Group Merging) • „persönlichen Gründen“ • (z.B. Batterie knapp, CPU-Überlastung) Uli Raffel Mobile Middleware 20/22
Route Aggregation - Kritik • Multihop-Konnektivität unrealistisch • Rücktritt des AP bei Group Splitting unintuitiv • problematisch bei homogenen Netzen • bei hoher Dynamik/Mobilität ungeeignet • AP selbst sollte nicht mobil sein Uli Raffel Mobile Middleware 21/22
Zusammenfassung • Middleware für Mobile Systeme • Entscheidung: Transparenz vs. Context Awareness • Bei Verteilten Systemen: Transparenz • Bei Mobilen Systemen: Context Awareness • Context Awareness: • Anwendungsspezifische Strategien zum Datenabgleich replizierter Daten (data reconciliation) • Beispiel: verteilter Einkaufswagen • Metadaten • Reflection • Beispiel: Route Aggegation Uli Raffel Mobile Middleware 22/22