Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme Verteilte Anwendungen: Einflußreiche Systeme Dr. Wolfgang Wörndl
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme © Dr. Wolfgang Wörndl, Überblick Letzten Montag –Überblick über verteilte Anwendungen –Vor-/Nachteile,... Heute einflußreiche Systeme als Abschluß der Einleitung –Kennenlernen konkrete Systeme –Motivation verteilter Anwendungen –Vorstellung einiger wichtiger Konzepte Nächster Montag –Java 2 Enterprise Edition (J2EE)
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme © Dr. Wolfgang Wörndl, Einflußreiche Systeme Amoeba –Objektbasiertes, verteiltes Betriebssystem Mach –Microkernel, Thread, Port... Distributed Computing Environment (DCE) der OSF –Entwicklungs- und Laufzeitumgebung Sun Network File System –Verteiltes Dateisystem
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme © Dr. Wolfgang Wörndl, Amoeba Entwickelt an der Uni Amsterdam (Tanenbaum) Eines der ersten objektbasierten, verteilen Betriebssysteme
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme © Dr. Wolfgang Wörndl, Amoeba Definition eines Microkernels –Erzeugen von Prozessen & Threads –Interprozesskommunikation Basiert auf Informationsobjekte –Abstrakter Datentyp (Bsp.: Verzeichnis) und Operationen –Objekte verwaltet von Server Subsystem –Erzeugung eines Prozesses beim Zugriff
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme © Dr. Wolfgang Wörndl, Amoeba Client und Server kommunizieren über Remote Procedure Calls (RPC) Zugriff auf Objekte mit Hilfe von capabilities: (service, object-id, access rights, checksum) Weitere Informationen:
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme © Dr. Wolfgang Wörndl, Mach Microkernel Betriebssystem der Carnegie Mellon University –Basis für diverse Implementierungen, z.B. MkLinux (Macintosh)
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme © Dr. Wolfgang Wörndl, Mach Ziele Emulation von UNIX Multiprozessor Betrieb (tasks, threads) (Transparente) Abbildung des Netzwerks (ports) Flexible Implementierung eines virtuellen Speichers (memory objects) Portabilität
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme © Dr. Wolfgang Wörndl, Mach Konzepte Threads –Kein eigener Adreßraum –Wenig Verwaltungsinformation –Schneller Threadwechsel –Zuordnung zu Prozessoren Memory objects –(virtuelle) Speichereinheiten –Gemeinsame Nutzung durch „Copy-on- Write“ Objekt wird vor dem Schreiben kopiert
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme © Dr. Wolfgang Wörndl, Mach Nachrichtenaustausch Prozesse kommunizieren durch Kanäle, genannt Ports Port: Message Queue –Mehrere Sender können senden –Ein Empfänger pro Queue –Zugriffsschutz über Capabilities
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme © Dr. Wolfgang Wörndl, Mach Nachrichtenaustausch Network server Ports Weitere Informationen project/mach/public/www/mach.html
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme © Dr. Wolfgang Wörndl, Open Software Foundation (OSF) OSF Mitglieder: HP, IBM, Siemens,... Spezifikation des Distributed Computing Environment (DCE) –Entwicklungsplattform (Komponenten) und Laufzeitumgebung Charakteristika –Mach as Basis –Client-Server Paradigma –RPC, information sharing
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme © Dr. Wolfgang Wörndl, OSF DCE
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme © Dr. Wolfgang Wörndl, Sun NFS Network File System (NFS) von Sun Verfügbar auf vielen Systemen, hauptsächlich UNIX Ziel: Orts- und Zugriffstransparenz beim Dateizugriff –Kein Unterschied zwischen lokalen und entfernten Dateizugriff Zustandsloser Dateidienst –Server merkt sich keine Info. über Clients –Server prüft Rechte bei jedem Zugriff
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme © Dr. Wolfgang Wörndl, NFS Mount Verzeichnisse werden vom Serber exportiert und vom Client gemounted
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme © Dr. Wolfgang Wörndl, NFS Implementierung (I)
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme © Dr. Wolfgang Wörndl, NFS Implementierung (II) Jede Datei im virtuellen Dateisystem hat file handle mit –file system ID –i-node –i-node creation number Zugriff (offener) Dateien über v-node –Falls lokal: v-node enthält Verweis auf i-node –Falls entfernt: v-node enthält file handle
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme © Dr. Wolfgang Wörndl, NFS Caching (I) Ein Cache pro Maschine, nicht pro Programm Cache wird in regelmäßigen Abständen in Dateisystem geschrieben Probleme bei Schreib-Operationen beim Zugriff mehrerer Anwendungen Ansatz zur Lösung –Für jeden Datenblock die Zeit der letzten Änderung pflegen
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme © Dr. Wolfgang Wörndl, NFS Caching (II) Programm 3 sieht Änderungen später
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme © Dr. Wolfgang Wörndl, read function read (file d, blockindex k): block; /* read data block k of file d */ if file d is local then return (k-th block); else /* file d is remotely located */ if t last read of k < (t now - w) /* If the last read was performed more than w seconds before, check the validity of the cache entry; t now be the actual time. */ then request latest modification time t mod/remote (k) if t mod/remote (k) == t mod/old (k) then return (k-th block); else fetch k from the remote system; return (k-th block);
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme © Dr. Wolfgang Wörndl, NFS Caching (III) NFS Parameter –Prüfung der M.-Zeit bei open oder beim Zugriff auf neue Datenblöcke –Annahme der Gültigkeit 3 Sek. (Dateien) bzw. 30 Sek. (Verzeichnisse) Was passiert mit „ungültigen“ Dateien? –Web Browser kümmert sich z.B. nicht Möglichkeiten Konsistenzerhaltung –write-invalidate –write-update
Technische Universität München, Informatik XI Angewandte Informatik / Kooperative Systeme © Dr. Wolfgang Wörndl, Zusammenfassung Überblick über einige einflußreiche verteilte Anwendungen Zugrunde liegende Konzepte sind Schwerpunkte der Vorlesung, u.a. –Client/Server –RPC –Verteilter Dateidienst Nächsten Montag –J2EE