Verteilte Systeme - Überblick... alois.schuette@h-da.de Alois Schütte 15. Oktober 2014 1 / 11
Inhaltsverzeichnis Hier wird ein Überblick über die Veranstaltung gegeben. 1 Überblick 2 Inhalt 3 4 Praktikum 5 Literatur 2 / 11
Überblick Überblick Ein Verteiltes System ist im Prinzip der Zusammenschluss mehrerer Rechner zur Lösung einer gemeinsamen Aufgabe. Die Veranstaltung soll die verschiedenen Aspekte eines Verteilten Systems beleuchten. 1 Nach der Erörterung grundlegender Begriffe und Konzepte ist ein Schwerpunkt die verschiedenen Kommunikationsmöglichkeiten, die zum Aufbau eines Verteilten Systems notwendig sind. Beispiele sind Sockets, Named-Pipe, Remote-Procedure-Calls. Zunehmend wichtig werden die verteilten Objektdienste, z.b. Corba. 2 Ein weiteres wichtiges Thema sind neuere Techniken zur Implementierung von Web-Services (SOAP, WSDL, UDDI) sowie Cloud- und Grid- und P2P-Computing. 3 / 11
Inhalt Inhalt 1 Grundlagen (Systemaufrufe, Netzwerke, Internetprotokollfamilie) 2 Verteilte Kommunikationsdienste (Named-Pipe, Sockets, RPC) 3 Verteilte Objektdienste (Corba, XML-RPC) 4 Synchronisation (Zeitproblem) 5 Verteilte Dateisysteme 6 P2P Computing 7 Cloud-Computing 4 / 11
Den größten Teil der Veranstaltung werden wir uns mit Kommunikation in Verteilten Systemen befassen. Dabei wird schrittweise (von elementarer Rechnerkommunikation) mit immer abstrakteren Methoden (bis hin zu Service-Kommunikation auf Anwendungsebene) in die jeweiligen Techniken eingeführt. 5 / 11
Socket Kommunikation Der Server implementiert eine Funktionalität, die vom Client verwendet wird. Das Protokoll muss beiden bekannt sein. 6 / 11
Remote Procedure Call Der Server implementiert eine Funktion, die vom Client aufgerufen wird. Client und Server sind in der selben Programmiersprache implementiert (bei uns in C). 7 / 11
Remote Method Invocation Der Server implementiert und instanziiert ein Objekt, deren Methoden vom Client verwendet werden. Client und Server sind in der selben Programmiersprache implementiert (bei uns in Java). 8 / 11
CORBA Der Server implementiert und instanziiert Objekt, deren Methoden vom Client verwendet werden. Verwendung von Midddleware, die Aufrufe standardisiert, daher Client und Server in beliebiger Sprache auch auf unterschiedlichen Betriebssystemen möglich. 9 / 11
Praktikum Praktikum Das Praktikum ist in 4 Übungen mit jeweils 1 Block und einem Praktikum mit 2 Blöcken organisiert. Es findet auf Mac-Rechnern statt in D14/310. Schwerpunkte der Übungen sind Kommunikationsdienste 1 elementare Kommunikation mit Berkley Sockets 2 Remote Procedure Calls am Beispiel Sun RPC oder JSON RPC 3 Objektdienste am Beispiel der Java IDL 4 Cloud- oder P2P Computing Die Praktikumsaufgaben können in C, C++ oder (teilweise) in Java gelöst werden. 10 / 11
Literatur Literatur Folgende Literatur wir empfohlen: Andrew Tannenbaum; Moderne Betriebssysteme, Hanser Andrew Tannenbaum, Marten van Steen; Verteilte Systeme, Pearson Alois Schütte, Programmieren in Occam, Addison-Wesley W.R. Stevens, Unix Network Programming, Prentice Hall 11 / 11