Verteilte Systeme / Ubiquitous Computing
Total Page:16
File Type:pdf, Size:1020Kb
Ludwig-Maximilians-Universität München Institut für Informatik Lehrstuhl für Mobile und Verteilte Systeme Verteilte Systeme / Ubiquitous Computing Skript zur Vorlesung im Sommersemester 2009 Prof. Dr. Claudia Linnhoff-Popien Unter Mitarbeit von: Michael Dürr, Tim Furche, Carmen Jaron, Matthias Roeckl und Diana Weiß © Prof. Dr. Claudia Linnhoff-Popien – alle Rechte vorbehalten Inhaltsverzeichnis 1 Motivation 1 1.1 Historische Entwicklungstendenzen . .2 1.2 Probleme der Verteilten Systemen . .4 1.3 Marktanalyse . .5 1.4 Betriebswirtschaftliche Betrachtung des Mobile Commerce . .7 1.5 Visionen des Ubiquitous Computing . .8 1.6 Pervasive vs. Ubiquitous Computing . 11 2 Endgeräte und Betriebssysteme 13 2.1 Information Access Devices . 15 2.1.1 Handheld Computers / PDA . 16 2.1.2 Subnotebooks . 18 2.1.3 Handys . 19 2.1.4 Betriebssysteme für Information Access Devices . 21 2.2 Smart Identification . 27 2.2.1 Klassifikation von Speicherbausteinen . 27 2.2.2 Smart Card . 32 2.2.3 Smart Labels / RFID-Tags . 34 2.2.4 Betriebssysteme für die Smart Identification . 38 2.3 Embedded Systems . 39 2.3.1 Intelligentes Haus . 39 2.3.2 Elektronik im Auto . 40 2.4 Entertainment Systems . 40 2.4.1 Digital Video Broadcasting . 41 2.4.2 Multimedia Home Platform . 42 2.5 Connectivity . 42 3 Kommunikation in Verteilten Systemen 45 3.1 Beispielszenarien . 46 3.2 Das Client/Server-Prinzip . 49 3.3 Architekturmodell Verteilter Systeme . 54 3.4 Netzwerkgrundlagen . 61 3.5 Das request/reply-Protokoll . 62 3.6 Remote Procedure Call . 75 i ii INHALTSVERZEICHNIS 4 Naming-, Directory und Lokalisierungsdienste 83 4.1 Motivation . 84 4.2 Namen, Adressen und Identifikatoren . 85 4.3 Namensräume und Namensauflösung . 87 4.4 Namens- und Verzeichnisdienste . 91 4.5 Lokalisierungsdienste . 94 4.6 Verteilte Speicherbereinigung . 102 4.7 Session Initiation Protocol . 107 5 Dienste und Dienstvermittlung 113 5.1 Beschreibung von Diensten . 114 5.2 Dienstvermittlung . 116 5.3 Praktische Systeme . 122 5.3.1 Jini . 122 5.3.2 Universal Plug and Play (UPnP) . 124 5.3.3 Service Location Protocol (SLP) . 124 6 Kontextsensitive Dienstnutzung 127 6.1 Kontextadaptivität . 128 6.2 Prinzip der kontextadaptiven Dienstnutzung . 130 6.3 Das Kontextmodell . 135 7 Synchronisation 139 7.1 Uhrensynchronisation . 142 7.1.1 Physikalische Uhren . 143 7.1.2 Algorithmen zur Uhrensynchronisation . 144 7.1.3 Logische Uhren . 148 7.2 Wechselseitiger Ausschluss . 150 7.2.1 Der zentrale Algorithmus . 150 7.2.2 Der verteilte Algorithmus von Ricart und Agrawala . 152 7.2.3 Ein Token-Ring-Algorithmus . 154 7.3 Wahlalgorithmen (Election Algorithm) . 154 7.3.1 Der Bully-Algorithmus . 155 7.3.2 Ein Ring-Algorithmus . 156 7.4 Deadlocks in Verteilten Systemen . 157 7.4.1 Zentrale Deadlock-Erkennung . 157 7.4.2 Verteilte Deadlock-Erkennung . 159 7.5 At-most-once-Nachrichtenzustellung . 160 7.5.1 Ursachen für Mehrfachzustellung . 160 7.5.2 Lösung basierend auf synchronen Uhren . 162 7.6 Atomare Transaktionen . 162 8 Sicherheit in Verteilten Systemen 165 8.1 Secure Channels . 168 8.1.1 Authentifizierung (Authentication) . 168 8.1.2 Nachrichtenintegrität und Vertraulichkeit . 175 8.2 Zugriffskontrolle . 177 INHALTSVERZEICHNIS iii 9 Skalierbarkeit mittels Replikation, Caching und Verteilung 181 9.1 Vorteile der Replikation . 182 9.2 Eine Systemarchitektur für Replikationen . 184 9.3 Anfragebearbeitung bei Replikaten . 186 9.3.1 Die Anfrage . 186 9.3.2 Koordination und Replikationskonsistenz . 187 9.3.3 Vorläufige Ausführung . 190 9.3.4 Zustimmung . 190 9.3.5 Response . 190 9.4 Implementierung von Replikationstechniken . 190 iv INHALTSVERZEICHNIS Abbildungsverzeichnis 1.1 Modern Computer Ära . .3 1.2 Positionsbestimmung mittels GPS . .5 1.3 Wachstum der deutschen ITK in % des Vorjahres . .6 1.4 Wertschöpfungskette . .7 2.1 Komponenten des Ubiquitous Computing . 14 2.2 Einordnung von ubiquitären Endgeräten . 16 2.3 Beispiel für verschiedenen Endgeräte. 18 2.4 Vergleich von Java und Windows CE . 22 2.5 Aufteilung des virtuellen Adressraumes von Windows CE . 23 2.6 Priorität der Prozesse bei Windows CE . 24 2.7 Marktanteil (in %) der Betriebssysteme mobiler Endgeräte (Analyse der US- Marktforscher der Fa- Canalys) . 26 2.8 Komponenten von EPOC . 27 2.9 Klassifizierung von RAM- und ROM-Typen . 31 2.10 Vorteil Smart Card . 32 2.11 Aufbau des Chips einer Smart Card . 33 2.12 Eigenschaften unterschiedlicher RFID-Frequenzbänder . 37 2.13 Aufbau des Chips einer Smart Card . 38 2.14 Aufbau eines Sensor-/ Aktor-Netzwerkes . 39 2.15 Aufbau der Steuereinheit im Auto . 41 2.16 Schematische Darstellung von DVB . 43 3.1 Beispiel für einen Bereich des Internets . 49 3.2 Beispiel für ein Intranet . 50 3.3 Beispiel eines einfachen ubiquitären Systems . 50 3.4 Schichtenmodell eines Verteilten Systems . 54 3.5 Beispiel für den Einsatz einer Middleware . 55 3.6 Client/Server-Modell . 56 3.7 Peer-to-Peer-Modell . 56 3.8 Rekursive Serveraufrufe . 57 3.9 Multiple Server . 57 3.10 Proxy Server . 58 3.11 Webapplet . 59 v vi ABBILDUNGSVERZEICHNIS 3.12 Mobiler Agent . 60 3.13 Request/Reply durch den OSI-Stack hindurch . 62 3.14 Interprozesskommunikation . 63 3.15 Sockets . 64 3.16 Kommunikationsprimitive bei TCP/IP . ..