Inmon· Client/Server-Anwendungen William H. Inmon Client/Server Anwendungen Planung und Entwicklung Mit 96 Abbildungen Springer-Verlag Berlin Heidelberg New York London Paris Tokyo Hong Kong Barcelona Budapest William H. Inmon 64 N orth Ranch Road Littleton, CO 80127, USA Übersetzer: Peter Dobrowolski Ebersheimer Weg 27 W -6500 Mainz, Deutschland Autorisierte Übersetzung der englischen Originalausgabe von 1991 Developing Client/Server Applications herausgegeben von QED Information Sciences, Ine., Wellesley, Mass., USA. Alle Rechte vorbehalten. ISBN -13 :978 -3-540-55691-6 e-ISBN -13: 978-3 -642-77651-9 DOI: 10.1007/978-3-642-77651-9 Die beutsche Bibliothek - CIP Einheitsaufnahme Inmon, William H.: Client-Server-Anwendungen: Planung und Entwicklung/ William H. Inrnon. [Übers.: Peter Dobrowolskil. - Berlin; Heidelberg; New York; London; Paris; Tokyo; Hong Kong; Barcelona; Budapest: Springer, 1993 Einheitssacht.: Developing dient server applications <dt.> ISBN -13: 978 -3-540-55691-6 Dieses Werk ist urheberrechtlieh geschützt. Die dadurch begründeten Rechte, insbesondere die der Übersetzung, des Nachdrucks, des Vortrags, der Entnahme von Abbildungen und Tabellen, der Funk sendung, der Mikroverfilmung oder der Vervielfältigung auf anderen Wegen und der Speicherung in Datenverarbeitungsanlagen, bleiben, auch bei nur auszugsweiser Verwertung, vorbehalten. Eine Vervielfältigung dieses Werkes oder von Teilen dieses Werkes ist auch im Einzelfall nur in den Grenzen der gesetzlichen Bestimmungen des Urheberrechtsgesetzes der Bundesrepublik Deutschland vorn 9. September 1965 in der jeweils geltenden Fassung zulässig. Sie ist grundsätzlich vergütungspflichtig. Zuwiderhandlungen unterliegen den Strafbestirnmungen des Urheberrechtsgesetzes. © Springer-Verlag Berlin Heidelberg 1993 Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, daß solche Namen im Sinne der Warenzeichen-und Markenschutz-Gesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften. Umschlaggestaltung: Konzept & Design, Ilvesheim Satz: Reproduktionsfertige Vorlage von Peter Dobrowolski, Mainz Gedruckt auf säurefreiem Papier - 33/3140-5 4 3 2 1 0 Inhal tsverzeichnis Vorwort ........................................................................................................... ix 1 Architektur in der Client/Server-Umgebung ...................................... 1 Client/ Server-Verarbeitung - Die Grundlagen " .................................. 2 Kosten ......................................................................................................... 9 Einsatz der Anwendung ........................................................................... 9 Betriebsdatenverarbeitung ..................................................................... 10 DSS-Verarbeitung ................................................................................... .10 Unterschiede in der Client/Server-Umgebung zwischen DSS- und Betriebsdatenverarbeitung ......................................................... 12 Autonomie oder Integration? ................................................................ 13 Eine Matrix zur Anwendungsklassifizierung ..................................... 14 Zusammenfassung .................................................................................. 14 2 Die Client/Server-Umgebung - einige Kernpunkte ....................... 17 Kosten ....................................................................................................... 17 Kontrol1e ................................................................................................... 17 Leistung .................................................................................................... 18 Globale Koordination der Untemehmensverarbeitung .................... 18 Eignerschaft von Daten ........................................................................... 19 Disziplin ................................................................................................... .19 Äußere Grenzen der Zweckmäßigkeit ................................................. 20 Globales Ablagesystem .......................................................................... .21 Aktuel1e oder archivierte Daten ............................................................ 22 Knotenresidenz (Zuordnung von Daten zu Knoten) ......................... 25 Systementwicklungsablauf ("SDLC") .................................................. 31 Zusammenfassung ..................................................................................3 2 3 Das Ablagesystem und die Betriebsdaten-IDSS-Verarbeitung ... 35 Das Betriebs-Ablagesystem für Client/Server-Verarbeitung ........... 35 Ablagesystem - DSS-Verarbeitung ...................................................... .43 Das DSS-Ablagesystem .......................................................................... .51 Zusammenfassung ................................................................................. .54 v Inhaltsverzeichnis 4 Konfigurationen ..................................................................................... .57 Bewertung der Alternativen ................................................................. .57 Ein Beispiel ................................................................................................6 0 Zusammenfassung .................................................................................. 65 5 Leistung in der Client/Server-Umgebung ......................................... 67 Symptome für Leistungsprobleme ....................................................... 68 Entwicklungsverfahren zur Leistungssteigerung .............................. 71 Programmentwurf ................................................................................... 71 Knotenresidenz ................................................................. ,. .....................7 2 Datenentwurf ...........................................................................................7 2 Andere Leistungssteigerungsverfahren ............................................... 82 Zusammenfassung ................................................................................. .83 6 Metadaten und die Client/Server-Umgebung .................................. 85 Metadaten ................................................................................................ .85 Zentrale Ablage ........................................................................................8 8 Zusammenfassung ..................................................................................9 3 7 Eine Client/Server-Entwicklungsmethode ........................................ 95 Eine philosophische Bemerkung ........................................................... 96 Methode für betriebliche Systeme und Verarbeitung ........................ 97 DEF1 - Anfangsaktivitäten eines Projekts ..................................... 97 DEF2 - Ordnen, Phaseneinteilung .................................................. 98 DEF3 - Anforderungsformalisierung ........................................... 100 VOR1 - Technische Umgebungsdefinition .................................. 100 01 - ERD (Entity Relationship Diagram = Diagramm der Entitätenbeziehungen) .............................................................. 101 02 - DIS (Data Item Sets = Datenelementmengen) .................... 101 03 - Leistungsanalyse ..................................................................... 102 04 - Physischer Datenbankentwurf ............................................. 102 P1-Funktionelle Zerlegung .......................................................... 103 P2 - Kontextebene 0 ......................................................................... 103 P3 - Kontextebenen 1-n .................................................................. 103 P4 - DFD (Data-Flow Diagram = Datenflußdiagramm) ........... 103 P5 - Algorithmische Spezifikation; Leistungsanalyse ............... 104 P6 - Pseudocode ...............................................................................1 04 P7 - Codieren ................................................................................... .105 vi Inhaltsverzeichnis P8 - Interaktive Codebeschreibung und -analyse ("Walk-through") ....................................................................... 105 P9 - Compilieren .............................................................................. 105 P10 - Testen ...................................................................................... .105 P11-Implementierung ................................................................... 106 GA1-Datenspeicherdefinition ..................................................... 106 AAl - Überprüfung auf höchster Ebene ...................................... 107 AA2 - Entwurfsüberprüfung ......................................................... 107 Methode für das DSS-Ablagesystem .................................................. 108 DSS1 - Datenmodellanalyse (Einmalaktivität) ........................... 108 DSS2 - Analyse des Datenvolumens (Einmalaktivität) ............. 110 DSS3 - Technische Bewertung (Einmalaktivität) ........................ 110 DSS4 - Technische Umgebungsvorbereitung (Einmalaktivität) ......................................................................... 111 DSS5 - Sachgebietsanalyse ............................................................. 111 DSS6 - Entwurf des DSS-Ablagesystems (Einmalaktivität) ..... 111 DSS7 - Analyse des Ursprungssystems ....................................... 112 DSS8 - Spezifikationen .................................................................... 113 DSS9 - Programmierung ................................................................ 114 DSSlO - Auffüllen mit Daten ......................................................... 114 DEPTl - Wiederholung der Standardentwicklung .................... 116 IND1 - Bestimmen der benötigten Daten .................................... 117 IND2 - Programm zum Extrahieren von Daten ......................... 117 IND3 - Verbinden, Kombinieren, Analysieren ........................... 117 IND4 - Datenanalyse ....................................................................... 118 IND5 - Abschlußbericht ................................................................. 118 IND6 - Institutionalisierung .......................................................... 118 Zusammenfassung ................................................................................ 118 8 Datenbankentwurfsfragen in der Client/Server-Umgebung ...... 119 Verwaltung von Basis-und abgeleiteten Daten ............................... 119 Beziehungen in der Client/Server-Umgebung ................................. 122 Indizierung ............................................................................................. .127 Datenpartitionierung ............................................................................. 131 Kodieren/Dekodieren von Daten ....................................................... 132 Daten variabler Länge ........................................................................... 134 Eingebettete Schlüsselinformation ...................................................... 135 Rekursion ............................................................................................... .136 Zusammenfassung ............................................................................... .136 vii Inhaltsverzeichnis 9 Programmentwurf in der Client/Server-Umgebung ..................... 137 Programmtrennung nach Umgebung ................................................ 137 Verständnis der einzehlen Alternativen ............................................ 139 Beachtung der Zuordnung zu Knoten ............................................... 140 Knotenabhängigkeitl -unabhängigkeit .............................................. 140 Leistung .................................................................................................. .142 Standardisierung ................................................................................... .142 Zusammenfassung ............................................................................... .143 10 Verwaltung der Client/Server-Umgebung ...................................... 145 Netzverwaltung .................................................................................... .145 "Unternehmens"-Metadaten, Verwaltung gemeinsamen Codes .. 146 Zusammenfassung ............................................................................... .150 Anhang ClientlServer-Großrechner-Verarbeitung ........................... 151 Client/Server-Glossar ................................................................................ 153 Literatur ....................................................................................................... 175 Index ............................................................................................................. 179 viii Vorwort Ein Arzt kann seine Fehler begraben, aber ein Architekt kann seinen Kunden nur empfehlen, Weinranken zu pflanzen. Frank Lloyd Wright Die Client/Server-Umgebung ist verlockend. Anders als in der Groß rechner-Umgebung hat der Entwickler vollständige Kontrolle über die Entwicklung und die betrieblichen Aktivitäten, die in der Client/Serv er-Umgebung vor sich gehen. Außerdem sind die Kosten für Hardwa re, Software und Netzwerk relativ niedrig (im Vergleich mit anderen Formen der Verarbeitung), so daß sich eine leichtfertige Einstellung in der Client/Server-Umgebung breit macht. Da der Entwickler völlige Kontrolle über den Prozessor und die Kosten der Entwicklung und des Betriebes hat, ist es einfach, die Entwicklung völlig frei anzugehen. Sy steme für die Client/Server-Umgebung werden häufig planlos aufge baut. Eine derartige Einstellung gegenüber der Entwicklung ist offen sichtlich gefährlich. Die Größe und der Umfang der Umgebung und die Gelegenheit, alle Aspekte des Betriebes zu kontrollieren, täuschen über das Durcheinander hinweg, das angerichtet werden kann. Einfach ge sagt, erzeugen Entwickler, wenn sie sich nicht an einer sauberen Archi tektur orientieren, in einer autonomen Umgebung wie die Client/ Server-Welt nichts als Chaos. Je weiter die Umgebung wächst, desto chaotischer wird sie. Genauso, wie die Entwicklung in der Großrech ner-Umgebung durch eine Reihe von Richtlinien und Prinzipien struk turiert wird, unterliegt auch die Client/Server-Umgebung bestimmten Regeln. Zumindest sollte die Client/Server-Umgebung entsprechend zugrundeliegender Konzepte gesteuert werden. Dieses Buch befaßt sich mit den Grundlagen, welche die Client/ Server-Umgebung formen - welche es sind, wie sie implementiert wer den und was passiert, wenn sie mißachtet werden. Zusammenge nommen bilden diese Prinzipien eine Architektur, die sich auf sämtliche Client/Server-Umgebungen anwenden läßt. Es wird kein spezielles Verfahren beschrieben; stattdessen werden die Prinzipien be handelt sowie die sich daraus ergebende Architektur, die auf alle Ver fahren zutrifft, welche die Client/Server-Verarbeitung unterstützen. Zweck dieses Buches ist es, den Leser mit anwendbaren Lösungen auszurüsten. Es wird sehr wenig Theorie dargestellt. Am Ende dieses ix Vorwort Buches ist der Leser bzw. die Leserin in der Lage, sehr solide, äußerst stabile Client/Server-Anwendungen aufzubauen. Folgende Themen werden u.a. behandelt: • Leistung in der Client/Server-Umgebung, • Kontrolle der Aktualisierung / "Eignerschaft" - "Verwaltung" von Client/Server-Daten, • Untetschied zwischen Betriebs- und DSS-Verarbeitung in der Client/Server-Umgebung. • einzelanwendungsbezogene Entwicklung oder Integration, • Metadaten innerhalb der Client/Server-Umgebung, • "anforderungsgesteuerte Entwicklung" oder "datengesteuerte Ent wicklung" in der Client/Server-Umgebung, • Datenspeicher und DSS-Verarbeitung in der Client/Server-Umge bung. Dieses Buch ist für Entwickler, Programmierer, Manager, Datenbankverwalter und Datenadministratoren bestimmt. Für Informa tikstudenten sollte das Buch ebenfalls von Interesse sein. Der Autor möchte folgenden Personen seinen Dank für die Unter stützung dieses Projektes aussprechen: Mark Gordon, Knowledgeware Cheryl Estep, Chevron Gary Noble, EPNG Bill Pomeroy, AMS Patti Mann, AMS Claudia Imhoff, GE Consulting John Zachman, IBM Sue Osterfelt, Storagetek Außerdem danke ich Melba Novak für ihre Arbeit hinter den Kulis sen. WHI x 1 Architektur in der Client/Server-Umgebung Plane alles so, daß es zu seinem nächst größeren Um feld paßt - ein Stuhl zu einem Zimmer, ein Zimmer zu ei nem Haus, ein Haus zu einem Vorort, ein Vorort zur Stadtplanung. Eero Saarinen Ein Arbeiter versteht unter Architektur, daß er die Straße nicht wieder aufreißen muß, wenn die Stromkabel verlegt werden. Bei richtiger Pla nung werden erst die Stromkabel verlegt, und dann wird die Straße ge baut. Für alle größeren Anforderungen gerüstet zu sein und dann die Struktur in einer solchen Reihenfolge aufzubauen, daß die Teile rei bungslos zusammenpassen, ist eine brauchbare Arbeitsdefinition der Architektur. Architektur in der Client/Server-Welt versteht man am besten an hand eines negativen Beispiels, bei dem die Dinge nicht störungsfrei aufgebaut werden. Stellen Sie sich folgenden Ereignisablauf vor, der in der Client/Server-Umgebung durchaus möglich ist: 1. Es wird ein kleines Programm geschrieben, das eine "Vor-Ort"-Auto teile-Datenbank in einem Knoten der Client/Server-Umgebung war ten soll. 2. Die Datenbank wird so überarbeitet, daß sie neben den inländischen auch ausländische Autoteile aufnehmen kann. 3. Der Code wird überarbeitet, so daß Aktualisieren und Laden der Da tenbank sowie Zugriff auf die Datenbank möglich wird. 4. Die Daten werden erweitert, um den Fluß von Teilen - Transaktio nen - zu veranschaulichen und lokal vorhandene Teile anzuzeigen. 5. Code und Daten werden erneut geändert, um über den Server ein treffende Anforderungen eines Clients bedienen zu können. 1
Description: