ebook img

Grundkurs Verteilte Systeme: Grundlagen und Praxis des Client-Server-Computing — Inklusive aktueller Technologien wie Web-Services u. a. — Für Studenten und Praktiker PDF

457 Pages·2004·33.77 MB·German
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Grundkurs Verteilte Systeme: Grundlagen und Praxis des Client-Server-Computing — Inklusive aktueller Technologien wie Web-Services u. a. — Für Studenten und Praktiker

Stimmen zur 2. Auflage: "Guter, breiter Uberblick Gber die wichtigsten PC-gestGtzten verteilten Systeme, klassisch bis webbasiert ... Ein sachlich klares und wissenschaftlich korrektes Lehrbuch mit zahlrei- chen Beispielen." Prof. Dr. Langmann, FH Dusseldorf "Dieses Buch werde ich meinen Studenten empfehlen weil es gut verstandlich ist und praktische Hinweise liefert." Prof. E. Albers, HS Magdeburg "Das Buch behandelt einige der wichtigsten Konzepte paralle ler jverteilter Systeme (Client-Server, Kommunikation, Kon kurrenz, Sicherheit etc.) Der Schwerpunkt liegt auf den prakti schen, anwendungsnahen Aspekten". Prof. Dr. Christel Baier, Universitiit Bonn "Sehr gute Stoffauswahl, aile wesentlichen Aspekte werden behandelt ... Dieses Buch werde ich meinen Studenten emp fehlen, weil es verstandlich und aktuell ist." Prof. Dr. B. Schnor, Universitiit Postdam Grundkurs Software-Entwlcklung Objektorientierte mit C++ Programmierung in JAVA von Dietrich May von Otto Rauh Grundkurs Datenbankentwurf Anwendungsorientierte von Helmut Jarosch Wirtschaftsinformatik Web-Programmierung von Paul Alpar, Heinz Lothar Grab, Peter von Oral AVCI, Ralph Trittmann und Werner Mellis Weimann und Robert Winter OhneCzuC++ Rechnerarchitektur von Peter P. Bothner und Michael Kahler von Paul Herrmann Grundkurs JAVA Grundkurs Relationale Datenbanken von Dietmar Abts von Rene Steiner Aufbaukurs Wirtschaftsinformatik Grundkurs UNIX/Linux von Dietmar Abts und Wilhelm MUlder von Wilhelm Schaffrath Kompaktkurs Mikrocontroller Grundkurs MySOl und PHP von Silvia Limbach von Martin Pollakowski Von Pascal zu Assembler Pascal von Peter Kammerer von Doug Cooper und Michael Clancy Das PC Wissen fur IT-Berufe: Aufbaukurs JAVA Hardware, Betriebssysteme, Netzwerktechnik von Dietmar Abts von Rainer Egewardt Grundkurs Informatik Datenbank-Engineering von Hartmut Ernst von Alfred Moos Kostentrigerrechnung mit SAP R/3® Online-Publishing fur Studenten und von Franz Klenger und Ellen Falk-Kalms Wissenschaftler Netze - Protokolle - Spezifikationen von Michael BeiBwenger von Alfred Olbrich Sal mit Oracle Grundlegende Algorithmen von Wolf-Michael Kahler von Volker Heun Module, Klassen, Vertrige Softwaretechnik mit Ada 95 von Karlheinz Hug von Manfred Nagl Grundkurs Betriebswirtschaftslehre Visual Basic fur technlsche von Notger Carl, Rudolf Fiedler, William J6rasz Anwendungen und Manfred Kiesel von Jurgen Radel Relationales und objektrelationales SOL Controlling mit SAP R/3® von Wolf-Michael Kahler von Gunther Friedl, Christian Hilz Lern-und Arbeitsbuch SAP R/3® und Burkhard Pedell von Andre Maassen und Markus Schoenen Grundkurs Kostenstellenrechnung mit SAP R/3® Geschiftsprozess - Management von Franz Klenger und Ellen Falk-Kalms von Andreas Gadatsch Grundkurs Algorithmen und Grundkurs IT-Controlling Datenstrukturen in JAVA von Andreas Gadatsch und Elmar Mayer von Andreas Solymosi und Ulrich Grude Grundkurs Verteilte Systeme Grundkurs Wirtschaftsinformatik von Gunther Bengel von Dietmar Abts und Wilhelm Mulder Prozessmodellierung mit ARIS ® von Heinrich Seidl meier Gunther Bengel Grundkurs Verteilte Systeme Grundlagen und Praxis des Client-Server-Computing - Inklusive aktueller Technologien wie Web-Services u. a. - Fur Studenten und Praktiker 3., verbesserte und erweiterte Auflage I I vleweg Bibliografische Information Der Deutschen Bibliothek Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet uber <http://dnb.ddb.de> abrufbar. Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne von Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten waren und daher von jedermann benutzt werden durfen. Hochste inhaltliche und technische Qualitat unserer Produkte ist unser Ziel. Bei der Produktion und Auslieferung unserer Bucher wollen wir die Umwelt schonen: Dieses Buch ist auf saurefreiem und chlorfrei gebleichtem Papier gedruckt. Die EinschweiBfolie besteht aus Polyathylen und damit aus organischen Grundstoffen, die weder bei der Herstellung noch bei der Verbrennung Schadstoffe freisetzen. 1. Auflage 2000 2. Auflage 2002 Diese Auflagen erschienen unter dem Titel "Verteilte Systeme". 3., verbesserte und erweiterte Auflage Februar 2004 Aile Rechte vorbehalten © Friedr. Vieweg & Sohn Verlag/GWV Fachverlage GmbH, Wiesbaden 2004 Der Vieweg Verlag ist ein Unternehmen von Springer Science+Business Media. www.vieweg-it.de Das Werk einschlieBlich aller seiner Teile ist urheberrechtlich geschutzt. Jede Verwertung auBerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlags unzulassig und strafbar. Das gilt insbesondere fUr Vervielfaltigungen, Obersetzungen, Mikroverfilmungen und die Ein speicherung und Verarbeitung in elektronischen Systemen. Umschlaggestaltung: Ulrike Weigel, www.CorporateDesignGroup.de Gedruckt auf saurefreiem und chlorfrei gebleichtem Papier. ISBN-13: 978-3-528-25738-5 e-ISBN-13: 978-3-322-80339-9 DOl: 10.1007/978-3-322-80339-9 Vorwort Der bedeutendste Trend bei Informationssystemen in den letzten Jahren ist das Aufkommen yom Client-Server-Computing. Dieser Rechnerbetrieb ersetzt einerseits groBrechnerdominierte oder zentralisierte Ansatze, andererseits bindet er lokale und isolierte Rechner zusammen und fbrdert ihre Zusammenarbeit. Die dazu gehorende Strukturierungsmethode del' Software in Clients und Server ist heute weit verbreitet und findet immer mehr Zugang und Einsatz bei del' vel'teilten Verarbeitung. Die Untergliederung del' Software in Clients und Server ist eine Strukturierungsmoglichkeit bei verteilter Informationsverarbei tung. Um dieses Modell fur Verteilte Systeme zu erschlieBen, wurden in Abschnitt 2 die moglichen Client-Server-Systeme klas sifiziert. Die Klassifikation enthalt neben Clients und Server eine weitere Klasse, namlich den verteilten Prozess. Dies fuhrt zu einem vertieften allgemeinen Verstandnis fur das Client-Server Computing und der entstehenden Client-Server-Strukturen, wei terhin ermoglicht es eine nachfolgende einheitliche Betrachtung der verteilten Systeme unter dem Client-Server-Gesichtspunkt. In die Programmierkonzepte und -metll0den zur Gestaltung der Client-Server-Beziehungen fuhrt Abschnitt 3 ein. Die einzelnen Programmiermethoden und -verfahren bauen in dem Sinne auf einander auf, dass die hoheren abstrakteren Programmierverfah ren mit den Verfahren in einer darunter liegenden Schicht imp lementiert sind. Wir starten mit den Verfahren der untersten Ebene, den Sockets, und gehen liber entfernte Prozeduraufrufe hin zu entfernten Methodenaufrufe und enden bei den Kommu nikationsverfahren fur das World Wide Web, dem heute aktu ellsten und in1mer mehr eingesetzten Verfahren der Client Server-Programmierung. Bei den vorgestellten und ausgewahlten Programmierkonzepten habe ich mich an den Konzepten, die den Standard gesetzt haben oder die schon standardisiert sind, orientiert. Abschnitt 4 fuhrt in die fundamentalen und haufig benotigten verteilten Algorithmen ein. Es bildet mit der Klassifikation der Client-Server-Strukturen in Abschnitt 2 die Basis fur die in Ab schnitt 5 vorgestellten wichtigsten Server. Die vorgestellten Ser ver starten bei einfachen Namens-Server und gehen dann liber File-Server hin zu Transaktions-Server. Eng verknlipft mit den v atomaren Aktionen bei Transaktionen sind dann die nachfolgend beschriebenen Konkurrenzdienste zur Erreichung eines wechsel seitigen Ausschlusses bei verteilten Prozessen. Neben der in Abschnitt 4 beschriebenen logischen Zeitordnung von Ereignis sen werden anschlieBend Synchronisationsverfahren fur physika lische Uhren beschrieben. Abschluss bilden schlieBlich die bei Verteilten Systemen eingesetzten Kryptosysteme und Authentifi kationsprotokolle. Der Inhalt des Buches entwickelte sich aus einer Vorlesung tiber Verteilte Systeme, die ich an der Fachhochschule Mannheim, Hochschule fur Technik und Gestaltung, im Fachbereich Infor matik seit 1993 halte. Diese Vorlesung liegt im zweiten Drittel des Informatikstudiums und setzt deshalb fundamentale Pro grammier-, Betriebssystem- und Kommunikationssoftware-Kennt nisse voraus. Mit der Vorlesung einher gehen Dbungen, die als Projekt ausge legt sind. Das Projekt umfasst den Entwurf und die Programmie rung eines Spieles als Verteiltes System, z. B. des Spieles "Mensch argere dich nicht". Dabei soIl eines der in Abschnitt 3 beschriebenen Kommunikationsverfahren zum Einsatz kommen. Beim Entwurf des Client-Server-Systems und den damit einher gehenden Kommunikationsprotokollen sol1en die fundamentalen verteilten Algorithmen von Abschnitt 4 und die in Abschnitt 5 vorgestellten Dienste mit beriicksichtigt werden und einflieBen. In dieser Form am Zustandekommen des Werkes beigetragen haben die Studenten mit konstruktiven Diskussionen tiber den Stoffinhalt und die Gliederung des Stoffes sowie mit ihren Hin weisen auf Fehler und didaktisch bessere Darstellungen. Mein Dank gilt weiterhin dem Kollegen aus dem Fachbereich Nach richtentechnik Herrn prof. Dr. Erich Eich und meinem alten Freund aus Schul- und Studienzeiten Herrn Dipl.-Math. Wolfgang Knierim. Herr Eich hat die Client-Server-Klassifikation kritisch durchleuchtet und hat bei den Client-Server-Programmierver fahren viele Verbesserungsvorschlage genannt. Herr Knierim, ein Vertreter aus der Praxis und der Industrie, hat durch seine Hin weise und Bemerkungen den praktischen Bezug des Werkes sichergestellt. Nicht vergessen und in meinen Dank mit ein schlieBen mochte ich meinen Sohn Ralf Bengel und den Infor matikstudenten Martin Hawlisch. Beide haben mich bei der For matierung des Textes untersrutzt und gaben viele Tipps im Um gang mit dem Textverarbeitungsprogramm. Angesichts des sich dynamisch und stiirmisch entwickelnden Gebiets der Verteilten Systeme, besonders im Bereich des World Wide Web, ist dieses Buch durch seine einfuhrende Klassifikati on von Client-Server-Strukturen eine Hilfe, sich besser in dem Dschungel der Techniken des Client-Server-Computing und der Client-Server-Programmierung zurechtzufinden. Beim Gang durch den Client-Server-Dschungel wtinsche ich Ihnen nun viel SpaJS und einen erfolgreichen Einsatz der Client-Server Techniken bei Ihrer verteilten Anwendung. Altrip, im Januar 2000 Gtinther Bengel Vorwort zur 2. Auflage Das rasche Voranschreiten der Programmierkonzepte und -me thoden des Client-Server-Computing und deren heutiges schnel les EinflieJSen in die Praxis bedingten in der 2. Auflage Erweite rungen. Sie betreffen die Kommunikation und Koordination bei verteilter Verarbeitung und somit Abschnitt 3. Neu in diesem Abschnitt sind die Themen Remote Method Invocation (RMI), Extensible Markup Language (XML) und Enterprise JavaBeans (EJB). Abschnitt 3 startet nun mit der Nachrichten-basierten Kommuni kation, den TCP lIP-Sockets, und fuhrt tiber Remote Procedure Calls hin zu den Objekt-basierten Kommunikationsmethoden, dem Remote Method Invocation (RMI) und CORBA. Die Web basielten Programmierkonzepte gehen tiber HTML, Common Gateway Interface (CGI), Servlets, Extensible Markup Language (XML) und den XML-Parsern, hin zu den Applets. Den Abschluss von Abschnitt 3 bildet die komponenten-basierte Methode der Enterprise JavaBeans, einem Rahmenwerk fur die Client-Server Programmierung. Mit der 2. Auflage steht ein kostenloser Online-Service zur Ver fugung. Die Internet-Adresse der Web-Seiten ist http://www.vts.fh-mannheim.de VII Die folgenden Informationen kbnnen auf den Web-Seiten gefun den werden: • Informationen tiber den Autor mit der Email-Adresse, die zum Senden von Anmerkungen, Kommentaren und Berichti gungen verwendet werden kann. • Aile Abbildungen des Buches zum Herunterladen; sie lassen sich in der Lehre einsetzen und wiederverwenden. • Aile Programmbeispiele des Buches zum Herunterladen. Sie soHen den Leser ermuntern die Programme auszuprobieren und dienen zur Gewinnung von praktischer Erfahrung mit den Techniken der verteilten Programmierung. • Ein Errata, d.h. Korrekturen zu Fehlern, die erst nach der Drucklegung des Buches gefunden wurden. • AktueHe Informationen zu Weiter- und Neuentwicklungen bzgl. der im Buch beschriebenen Technologien. Die Web-Seiten werden kontinuierlich weiterentwickelt und ausgebaut. Zuktinftige Erweiterungen sehen vor, zu jedem Kapi tel Dbungsaufgaben mit Musterlbsungen anzubieten. AuBerdem soHen grbBere Anwendungsbeispiele mit aufgenommen werden, die das in der Dbung programmierte verteilte Spiel behandeln. AItrip, im Dezember 2001 Gtinther Bengel Vorwort zur 3. Auflage In den letzten beiden Jahren ist Service-Oriented Computing (SOC) zum Hype in der Computing-Szene geworden. Besonders im Bereich der Enterprise Applications und deren Integration (EAI) spricht und diskutiert man nur noch tiber SOC. Die zu SOC gehbrenden Basis-Services sind die Web Services. Der neu hin zugefugte Abschnitt 3.4.4 widmet sich den Web Services und erlautert das dazugehbrige Simple Object Access protocol (SO AP), die Beschreibungssprache fur Web Services - die Web Ser vice Description Language (WSDL), und zeigt, wie ein Client die Web Services findet tiber die Universal Description Discovery VIII and Integration (UDDI). SOAP, WSDL und UDDI basieren auf der Exentsible Markup Language (XML) und bedingten, dass irn Abschnitt 3.4.2.4 liber XML die Punkte Namespaces und Schema mit aufgenommen werden mussten. Vorlage und Basis fur die Web Servives waren die Arbeiten von Herrn Kebrich S., Ent wicklung von Web Services fur mobile Endgerate mit J2ME, Diplomarbeit an der Fachhochschule Mannheim 2003 und von Herrn Mostowoj D., Web Services, Diplomarbeit an der Fach hochschule Mannheim 2003. Vielen Dank den beiden Diplo mand en fur die geleistete Arbeit. Die Enterprise JavaBeans (EJBs) Spezifikation liegt zwischenzeit lich in der Version 2.0 vor. Neu hinzugekommen bei der Version 2.0 sind die Message Driven Beans. Der neue Abschnitt 3.5.3.3.3 beschreibt die Message Driven Beans. Diese Beans sind ohne das Verstandnis fur asynchronen Nachrichtenaustausch nur schwer zu verstehen. Aus diesem Gmnd wurde in Abschnitt 3.1.2 ein weiteres asynchrones Nachrichtenaustauschverfahren der Java Message Service OMS) mit aufgenommen. JMS ist ein Bei spiel fur einen zentralen Nachrichten-Server und bildet einen Gegenpol zu den bisher und jetzt in Abschnitt 3.1.3 beschriebe nen Communicating Processes (ComPro), die dezentral asyn chron Nachricht versenden. Durch die Gegenliberstel1ung von JMS und ComPro ist der Unterschied zwischen einem Client Server-System und einem Verteilten System direkt und unrnittel bar ersichtlich. Weitere Hinzufugungen sind Verbessemngen und sie wurden hauptsachlich in der Einfuhmng im Abschnitt 1.3.1 und bei DNS in Abschnitt 5.1.1 durchgefuhrt. Das Hauptaugenmerk bei dieser 3. Auflage lag darauf, die neus ten aktuellen Entwicklungen auf dem Gebiet der Verteilten Sys teme aufzugreifen und sie dem Leser verstandlich zu erlautern und darzulegen. Mit dieser Kenntnis ist der Leser in der Lage, die neusten Technologien abzuschatzen und sie erfolgreich in der Praxis einzusetzen. Altrip, im Dezember 2003 Glinther Bengel IX Inhaltsverzeichnis 1 Einfuhrung und Grundlagen ................................................................................... 1 1.1 Netzwerkbetriebssysteme ................................................................................ 7 1.2 Verteilte Betriebssystenle ............................................................................... 14 1.3 Verteilte Systetne ............................................................................................ 17 1.3.1 Schichtenmodelle ................................................................................... 17 1.3.2 Middleware ............................................................................................. 21 1.3.2.1 Distributed Computing Environment (DCE) ...................................... 23 2 Klassifikation von Client-Server-Architekturen ..................................................... 27 2.1 Client-Server ................................................................................................... 29 2.1.1 Interaktionssemantik .............................................................................. 30 2.1.2 Parallele Server ....................................................................................... 37 2.1.2.1 Threads ............................................................................................... 38 2.1.2.2 Implementierung von Threads ........................................................... 40 2.1.2.3 Pthreads .............................................................................................. 45 2.1.3 Serveraktivierungen ................................................................................ 57 2.1.4 Serverzustande ....................................................................................... 58 2.1.5 Client Caching ........................................................................................ 61 2.2 Verteilte Prozesse ........................................................................................... 67 2.3 Client-Server-Server ....................................................................................... 68 2.3.1 Proxy ...................................................................................................... 69 2.3.2 Broker ..................................................................................................... 70 2.3.3 Trader ..................................................................................................... 74 2.3.4 Filter ........................................................................................................ 74 2.3.5 Balancer .................................................................................................. 75 2.3.6 Koordinator ............................................................................................ 76 2.3.7 Agent ...................................................................................................... 78 2.4 Client-Server-Ketten ....................................................................................... 81 2.5 Client-Server-Bautne ...................................................................................... 83 XI

Description:
Das Buch greift die aktuellen Entwicklungen auf dem Gebiet der Verteilten Systeme auf und erl?utert die Grundlagen und den Weg bis in die Anwendung. Dabei profitiert der Leser von der klaren Systematik und verst?ndlichen Darstellung aller Themen. Mit dieser Kenntnis ist der Leser in der Lage, die ne
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.