Uli Raffel Mobile Middleware 1/22 Mobile Middleware Context Awareness vs. Transparenz Vortrag im Seminar „Informationsverwaltung in Netzen“ Uli Raffel 19.06.2003
Apr 06, 2016
Mobile MiddlewareContext Awareness vs. Transparenz Vortrag im SeminarInformationsverwaltung in NetzenUli Raffel19.06.2003
GliederungMobile SystemeAnwendungen fr Mobile SystemeZum Vergleich: Middleware f. Verteilte SystemeBei Middleware f. Mobile Systeme: Entscheidung: Transparenz vs. Context Awareness Context Awareness bei Mobilen Systemen:Anwendungsspezifische Strategien zum Datenabgleich replizierter Daten (data reconciliation)Beispiel: verteilter EinkaufswagenMetadatenReflectionBeispiel: Route Aggegation
Mobile GerteLaptopHandyPDAChips (ohne GUI)...
Mobile Ad-hoc-NetzeMobile Gerte...haben begrenzte Reichweitebilden Ad-Hoc-Netzesind hochgradig mobilbetreten und verlassen das Netz hufighaben knappe Ressourcen: Batterie, CPU, Speicher, BandbreiteJeder Knoten ist zugleich Endpunkt und RouterKeine Infrastruktur, die Routing untersttzi.a. Broadcast ntig
=> hnlichkeiten zu Peer-to-Peer-Netzen
Anwendungen fr Mobile SystemeVerkehrswarnsystemSpieleMilitrTauschbrsenTierbeobachtungKatastrophenschutzTouristeninformationssystem:mobile Teilnehmer in begrenzter Umgebung (Stadt, Museum, Messe)Informationsanfrage zu Gegenstnden (Gebude, etc.) bei Nherung Direkte oder indirekte Antwort(en) von Teilnehmer(n) im rumlichen Umfeld
Middleware fr Mobile Systeme
soll helfen, mobile Anwendungen zu entwickelnmuss leichtgewichtig seinsoll asynchrone Kommunikation untersttzensoll technische Aspekte fr die Anwendung transparent machen (?)
Middleware fr Verteilte SystemeZum Vergleich:
Middleware fr Verteilte Systemesoll helfen, verteilte Anwendungen zu entwickelnversteckt technische Aspekte vor der AnwendungHeterogenittFehlertoleranzRessourcenverteilungbietet dem Anwendungsentwickler das Bild eines groen zentralen Systems (-> Verteilungstransparenz)
Verteilungstransparenz fr Mobile Systeme (?)Middleware wre dann schwergewichtigMiddleware msste stabile Verbindung voraussetzenMiddleware msste dann Verteilungsentscheidungen fr die Anwendung treffenhat aber keine applikationsspezifischen Informationen, wann wo welche Daten bentigt werdenAnwendung knnte aber entscheidende Informationen haben
Lsung: Context Awareness
Context Awareness
Es gibt keine sinnvolle statische Strategie, die eine Anwendung der Middleware mitteilen kannAnwendung muss also mit Middleware kommunizierenz.B. kann die Anwendung besser wissen, auf welchem Host Daten zu replizieren sind, damit sie nicht verloren gehenAnwendung kann wissen, wie mit Inkonsistenzen bei replizierten Daten umzugehen ist (siehe nachfolgendes Beispiel)
Verteilter Einkaufswagen
3-Personen-Familie mit 1 PC und 3 PDAs PC enthlt Produktpalette eines Shops und einen Einkaufswagen (Datenaustausch bers Internet)Daten werden auf PDAs repliziertBei Verbindung PC PDA oder PDA PDA werden Daten abgeglichen (data reconciliation)
Verteilter Einkaufswagen (2)
Daten auf PDA A Daten auf PDA C
Daten auf PDA A nach lokalem Update des Einkaufswagens
Verteilter Einkaufswagen (3)Bspl. 1:Auf PC wird durchs Internet Preis fr Kse aktualisiert (nur noch 3,25)PDA B bernimmt neuen PreisPDA A hat noch alten Preis (3,50)PDA A und PDA B begegnen sichSinnvolles Verhalten beim Abgleich: Preis 3,25
Bspl. 2:Auf PDA A wird 1 Milch in den Einkaufswagen gelegtAuf PDA C werden 2 Milch in den Einkaufswagen gelegtPDA A und PDA C begegnen sichSinnvolles Verhalten beim Abgleich: 3 Milch im Einkaufswagen
=> Abgleich von Daten vom Kontext abhngig
Abgleich von replizierten Daten... am Beispiel XMIDDLE
bei Begegnung zweier Gerte:gemeinsam genutzte Daten werden ermitteltletzte gemeinsame Version dieser Daten wird ermitteltnderungen seit dieser Version werden ermitteltnderungen, die keinen Konflikt erzeugen, werden jeweils bernommenbei nderungen, die Konflikt erzeugen (nderung der gleichen Elemente/Attribute) wird Konflikt aufgelst
Abgleich von replizierten Daten (2)Konfliktauflsung
Anwendung kann Auflsungsstrategien vorgeben: add, last, random, first, greatest beide Anwendungen haben gleiche Strategie vorgegeben: sie wird verwendetbeide Anwendungen haben unterschiedliche Strategien vorgegeben: dominante Strategie wird verwendetAnwendungen haben keine Strategie vorgegeben: Default-Strategie: last
MetadatenAnwendung gibt der Middleware Informationen, wie sie sich zu verhalten hatPassive InformationMiddleware soll auf Vernderungen im Ausfhrungskontext reagierenz.B. Verbindung trennen bei niedrigem Batteriestand
Aktive InformationMiddleware soll fr jeden Dienst, den sie erbringt, bestimmte Policy verfolgen.z.B. bei viel verfgbarem Speicherplatz eine lokale Kopie von Daten anlegen, bei wenig Speicherplatz und guter Verbindung nicht.
ReflectionReflection erlaubt es einem Programm, auf seine eigene Interpretation zuzugreifen, ber sie nachzudenken und sie zu verndern.
Reflection hier: Verbreitung von Umweltinformationen an Applikationsschichterreichbare Hosts/DiensteBatteriestandSpeicherplatzCPU-AuslastungOrtRelativer Ort zu Diensterbringern (z.B. Drucker)Bandbreite
Route Aggregation
Netzwerk wird in Gruppen organisiert Gruppen werden von Aggregation Point (AP) verwaltet Anfragen gehen an AP AP kann cachen
Route Aggregation (2)
Voraussetzung: Jeder Peer kann jeden (ber mehrere Hops) erreichen (Multihop-Konnektivitt) bei mehr als N Nachbarn: Wahl eines AP Knoten neu im Netz: Auswahl eines geeigneten AP -> hier kann Reflection verwendet werden
Route Aggregation (3)
Anfrage an AP, AP liefert Adresse des Zielknotens Content direkt vom Zielknoten regulre Abmeldung an AP Ausschluss bei Ausfall durch Heartbeat-NachrichtenRcktritt eines AP bei zu vielen Knoten(-> Group Splitting) zu wenigen Knoten(-> Group Merging) persnlichen Grnden(z.B. Batterie knapp, CPU-berlastung)
Route Aggregation - KritikMultihop-Konnektivitt unrealistischRcktritt des AP bei Group Splitting unintuitivproblematisch bei homogenen Netzenbei hoher Dynamik/Mobilitt ungeeignetAP selbst sollte nicht mobil sein
ZusammenfassungMiddleware fr Mobile SystemeEntscheidung: Transparenz vs. Context AwarenessBei Verteilten Systemen: TransparenzBei Mobilen Systemen: Context AwarenessContext Awareness:Anwendungsspezifische Strategien zum Datenabgleich replizierter Daten (data reconciliation)Beispiel: verteilter EinkaufswagenMetadatenReflectionBeispiel: Route Aggegation