Beschreibung
Gegenstand dieses Buches ist die Entwicklung komplexer verteilter Anwendungsprogramme. Thema ist nicht, wie in den traditionellen B}chern }berverteilte DV-Systeme, die Entwicklung oder der Betrieb von Rechnernetzen, sondern deren Einsatz bei der Entwicklung verteilter Anwendungen. In Bereichen wie B}roautomatisierung und Produktionsautomation oder bei Firmen, deren Abl{ufe stark auf internationale Weitverkehrsnetze abgest}tzt sind (Fluggesellschaften, internationale Broker-Firmen), spiegeln die im Buch behandelten Fragestellungen schon heute die Probleme der Anwendungsentwickler wider; in vielen anderen Industriezweigen zeichnet sich die Notwendigkeit komplexer verteilter Anwendungen durch den zunehmenden Zwang zur Verflechtung und zur Automatisierung bereits ab. Ein Blick auf die in der Industrie eingesetzten Hilfsmittel zeigt jedoch, da~ diese f}r die erw{hnten komplexen Anwendungen nicht mehr ad{quat sind. Das Buch richtet sich in erster Linie an Dozenten, Studenten und Wissenschaftler im Bereich des Software Engineering, sowie an Softwareentwickler in der Praxis.
Schlagzeile
Inhaltsangabe1 Einführung und Grundlagen.- 1.1 Einsatz verteilter DV-Systeme: Motivation und Entwicklungstendenzen.- 1.1.1 Generationswechsel von Rechnersystemen.- 1.1.2 Divergierende Wachstumsprofile.- 1.1.3 Wichtigste Folgen dieser Entwicklung.- 1.2 Verteilte Systeme und verteilte Anwendungen.- 1.2.1 Übersicht.- 1.2.2 Gegenstand der Verteilung.- 1.2.3 Zielsetzungen.- 1.2.4 Eigenschaften und Probleme.- 1.3 Beispiel einer verteilten Anwendung.- 2 Existierende Ansätze zur verteilten Programmierung.- 2.1 Betriebssystem-Ansatz.- 2.2 Datenbank-Ansatz.- 2.3 Sprachintegrierter Ansatz: Verteilte Programme.- 2.3.1 Verteilte Programmiersprachen.- 2.3.2 Softwareproduktionsumgebungen.- 2.4 Funktionaler Ansatz.- 2.5 Vergleichende Bewertung.- 3 Betriebssystemansatz.- 3.1 Netzbetriebssysteme und verteilte Betriebssysteme.- 3.2 Klienten-Server-Modell.- 3.3 Nameserver.- 3.4 Dateiserver.- 3.5 Entfernte Programmausführung.- 3.6 Prozeßmigration.- 3.7 Systembeispiel: Das Netzbetriebssystem DACNOS.- 3.7.1 Systemarchitektur.- 3.7.2 Das Kernsystem RSC.- 3.7.3 Der Task Setup Service.- 4 Sprachintegrierter Ansatz.- 4.1 Nachrichtenaustausch mit Sprachintegration.- 4.2 Remote Procedure Call: Überblick.- 4.3 Verteilte objektorientierte Ansätze: Überblick.- 4.4 Verteilte Konfigurationsverwaltung: Überblick.- 4.5 Verteilte Programmiersprachen.- 5 Remote Procedure Call.- 5.1 Grundlagen des RPC.- 5.1.1 Begriffsdefinition.- 5.1.2 Grundlegender Ablauf eines RPC.- 5.1.3 Abgrenzung zum einfachen Nachrichtenaustausch.- 5.2 Der Bindevorgang beim RPC.- 5.2.1 Beschreibung von RPC-Schnittstellen.- 5.2.2 Lokalisierung.- 5.2.3 Optimierung des Bindevorgangs.- 5.3 Abwicklung von RPCs zur Laufzeit.- 5.3.1 Kodierung von Übertragungsdaten.- 5.3.2 Zugrundeliegende Transportmechanismen.- 5.3.3 Prozeßverwaltung bei Klient und Server.- 5.4 Fehlersemantik des RPC.- 5.4.1 Fehlerursachen beim RPC.- 5.4.2 Fehlersemantik-Klassen.- 5.5 Beispiele für existierende RPC-Systeme.- 5.6 Probleme mit herkömmlichen RPC-Protokollen.- 5.7 Fehlerbehandlung in RPC-Systemen.- 5.7.1 Fehlerbenachrichtigung.- 5.7.2 Behandlung verwaister Aufrufe.- 5.7.3 Fehlertoleranz durch replizierte Aufrufe.- 5.7.4 Atomarität.- 5.8 Asynchrone RPCs und Massendatentransfer.- 5.8.1 RPC und Massendatentransfer: Vergleich.- 5.8.2 Integration der beiden Mechanismen.- 5.8.3 Asynchrone RPCs mit Ergebnisrückgabe.- 5.9 Sicherheitsaspekte des RPC.- 5.9.1 Mögliche Beeinträchtigungen der Sicherheit.- 5.9.2 Verschlüsselung.- 5.9.3 Identifizierung und Authentisierung.- 5.9.4 Mögliche Garantien und Kosten.- 5.10 RPC in offenen verteilten Systemen.- 5.10.1 RPC über Weitverkehrsnetze.- 5.10.2 Heterogene RPC-Systeme und Implementierungen.- 5.11 Standardisierungsbestrebungen im Bereich des RPC.- 5.11.1 Der RPC der Open Software Foundation.- 5.11.2 Der RPC der ECMA und der ISO.- 6 Verteilte objektorientierte Ansätze.- 6.1 Grundlagen des objektorientierten Ansatzes.- 6.2 Zentrale Begriffsdefinitionen.- 6.3 Spezielle Eigenschaften.- 6.4 Existierende Sprachen und Systeme.- 6.5 Verteilte Erweiterungen.- 6.5.1 Zentrale Eigenschaften.- 6.5.2 Resultierende Vorteile.- 6.5.3 Anwendungsbeispiel.- 6.5.4 Existierende Systeme.- 6.6 Objektmobilität.- 6.6.1 Grundbegriffe.- 6.6.2 Realisierung von Objektmigrationen.- 6.7 Beispiel eines verteilten objektorientierten Systems.- 6.7.1 Prozesse in Emerald.- 6.7.2 Objektmobilität.- 6.7.3 Objektlokalisierung.- 6.7.4 Implementierung von Objektmigrationen.- 6.8 Programmiersprachliche Anwendung.- 6.9 Weitere Aspekte verteilter objektorientierter Ansätze.- 7 Konfigurationsverwaltung in verteilten Systemen.- 7.1 Motivation.- 7.2 Vorteile einer Konfigurationsverwaltung.- 7.3 Modell einer Konfigurationsverwaltung.- 7.4 Beispiele existierender Konfigurationsverwaltungen.- 7.5 Erforderliche Systemeigenschaften.- 7.5.1 Eigenschaften des zugrundeliegenden Systems.- 7.5.2 Eigenschaften der Konfigurationsverwaltung.- 8 Softwareproduktionsumgebungen.- 8.1 Einführung.- 8.1.1 Terminologie.- 8.1.2 Motivation.- 8.1.3 Bedeutung des Projektm