Melden Sie sich hier an, um auf Kommentare und die Whitepaper-Datenbank zugreifen zu können.

Kein Log-In? Dann jetzt kostenlos registrieren.

Falls Sie Ihr Passwort vergessen haben, können Sie es hier per E-Mail anfordern.

Der Zugang zur Reseller Only!-Community ist registrierten Fachhändlern, Systemhäusern und Dienstleistern vorbehalten.

Registrieren Sie sich hier, um Zugang zu diesem Bereich zu beantragen. Die Freigabe Ihres Zugangs erfolgt nach Prüfung Ihrer Anmeldung durch die Redaktion.

22.10.1993 - 

Die Komplexitaet in den Griff bekommen

Integriertes Repository als gute Basis fuer die Entwicklung

Client-Server-Umgebungen stellen die Programmierabteilungen auf den Pruefstand: Datenintegritaet, Wiederverwendbarkeit und Plattform-unabhaengigkeit sind nur drei der vielen Punkte, die bei der Anwendungsentwicklung zu beachten sind, von der Komplexitaet ganz zu schweigen. Eine integrierte Entwicklungs-umgebung mit Repository bietet sich als gutes Hilfsmittel an.

Ohne die zahlreichen Herausforderungen der Anwendungsentwicklung in der Gegenwart gemeistert zu haben, wagen sich viele Unternehmen in neue IV-Abenteuer, das meist Client-Server-Computing heisst. Zwei Dinge werden dabei in der Anfangseuphorie leicht vergessen: Heterogene Ziel- und Entwicklungsplattformen bringen zusaetzliche Komplexitaet in den Prozess der Anwendungsentwicklung. Ausserdem benoetigt man fuer die Umsetzung dieser neuen Technologie die lange gepredigten und zu selten angewandten Verfahren und Methodiken des Software-Engineerings. Diese werden durch die Zunahme der Designvarianten bei einer Client-Server-Entwicklung sogar noch an Bedeutung gewinnen. Es geht deshalb heute und in Zukunft darum, die Software-Entwicklung im Licht der Client-Server-Welt neu zu betrachten und die Loesungen fuer die neuen Anforderungen in die bestehenden Entwicklungskonzepte zu integrieren.

Im Design von Client-Server-Anwendungen muessen viele Entscheidungen getroffen werden, die die Effektivitaet, die Qualitaet, die Wartbarkeit und auch die Kosten des zukuenftigen Systems nachhaltig beeinflussen. Eine dieser Entscheidungen betrifft die funktionale Aufteilung zwischen Server und Clients. Auch wenn es offensichtliche Kandidaten fuer bestimmte Plattformen gibt, etwa das Management der Benutzer-Schnittstelle durch Clients oder die Kontrolle der Datenintegritaet durch den Server in einem zentralen Repository, kann die Mehrzahl der Funktionen nicht zugeordnet werden, ohne die Spezifika des jeweiligen Anwendungssystems zu beruecksichtigen.

In einem optimalen Anwendungssystem wuerde jede Funk- tion auf der Plattform laufen, auf der sie den groessten Nutzen bringt und die wenigsten Kosten verursacht. Andererseits ist aber Flexibilitaet verlangt. Eine Funk- tion muss auf allen Plattformen ablaufen und, falls sich die Anforderungen geaendert haben, bei Bedarf problemlos zu portieren sein. Die Aufgabe fuer die Entwicklungswerkzeuge lautet somit: Unterstuetzung eines plattform-unabhaengigen Designs mit der Moeglichkeit einer Zuordnung der Funktionalitaet auf verschiedene Plattformen.

Die Sicherstellung der Datenintegritaet bei Multiuser-Zugriff zaehlt zu den zentralen Auf- gaben des Daten-Managements schlechthin. In Client-Server-Anwendungen erstreckt sich die Online-Nutzung der Daten auf mehrere Systemplattformen. Die Konzeption des Datenzugriffs ist deshalb ein weiterer Schwerpunkt im Design einer Client-Server-Anwendung. Die folgenden Beispiele zeigen einige Designentscheidungen, die auch im einfachsten Fall, also bei der zentralen Speicherung der Daten auf dem Server (single point of control) und Update durch die Clients, getroffen werden muessen:

- Werden die Daten bereits beim Start der Anwendung uebergeben und dementsprechend zentral fuer den weiteren Zugriff gesperrt oder erst beim Aufruf einzelner Funktionen?

- Werden die Daten bereits beim Lesen gesperrt, auch wenn ein Update nur der Ausnahmefall ist?

- In welchem Umfang greifen Sperrmechanismen? Zu breit angelegte Sperren wuerden vielleicht andere Benutzer behindern, zu enge Sperren koennten die Datenintegritaet gefaehrden.

- Welche Backup-Recovery-Verfahren stehen zur Verfuegung (eventuell in Abhaengigkeit von den beteiligten Plattformen), und wie werden sie integriert?

Die Datenintegritaet in der spaeteren Anwendung kann nur dann gewaehrleistet werden, wenn die gueltige Definition von Zugriffskonzepten, Integritaetsregeln und Bearbeitungsmechanismen fuer alle Plattformen moeglich ist.

Die Wiederverwendbarkeit von Ergebnissen ist in der Anwendungsentwicklung (und nicht nur dort) ein Synonym fuer die Minimierung von Entwicklungszeit und -kosten. Will man Module auf verschiedenen Plattformen verfuegbar machen, und das ist das Ziel einer heterogenen Client-Server-Architektur, dann ist Wiederverwendbarkeit die Voraussetzung dazu. Mit der Moeglichkeit, Entwicklungsobjekte plattform-unabhaengig und fachlich orientiert zu definieren und wiederverwendbare Bausteine effizient zu verwalten, das heisst, sie identifizieren, lokalisieren und zuordnen zu koennen, wird bei der Entwicklung die Grundlage hierfuer geschaffen. Wenn sich die betreffenden Qualitaetskriterien zudem noch auf ihre Einhaltung ueberpruefen lassen, dann ist ein hohes Mass an Wiederverwendbarkeit fuer die Anwendung beziehungsweise deren Module sichergestellt.

Die zentrale Stelle einer Client-Server-Anwendung ist die Systemkommunikation. Im Unterschied zu den bisher betrachteten Aspekten spielen fuer diesen Teil einer Anwendung die Spezifika der betreffenden Plattformen eine grosse Rolle. Die Kommunikation zwischen Server und Clients wird ueber Kommunikationsprotokolle wie TCP/IP oder APPC abgewickelt. Mit der Auswahl eines derartigen Protokolles ist das Design der Kommunikation aber noch nicht abgeschlossen. Spezifische Faktoren wie die optimale Datenmenge pro Kommunikationseinheit, Rechnerkapazitaeten oder Antwortzeitverhalten muessen fuer jede Plattform, unter Umstaenden sogar abhaengig von der eingesetzten Hardware, beruecksichtigt werden. Das Verhalten bei Interrupts gehoert ebenfalls zu den Festlegungen, die im Design einer Anwendung zu treffen sind.

Alles in allem bedeutet das Design der Rechnerkommunikation eine zusaetzliche Verwaltung von Informationen ueber die betreffenden Betriebssystem-Komponenten. Im Informationsmodell fuer die Software-Entwicklung ist die Definition der betreffenden Objekte und Attribute erforderlich.

Probleme mit CASE-Tools noch in Erinnerung

Das Ziel ist eine ingenieur-maessige Softwareproduktion mit effizienten Werkzeugen und adaequaten Entwicklungsmethoden. Dass das nur mit einem integrierten Entwicklungskonzept zu erreichen ist, hat manches Unternehmen durch leidvolle Erfahrungen beim Einsatz isolierter CASE-Tools erkennen muessen. Kernpunkt eines solchen Konzeptes ist die integrierte Software-Entwicklungs-Umgebung (SEU), wie sie auch in den Ent- wicklungsstrategien von IBM (AD/Cycle) und DEC (Cohesion) beschrieben ist. Eine solche SEU basiert auf einem Repository, das alle Informationen aus dem Entwicklungsprozess beinhaltet und verwaltet. Ueber das gemeinsame Repository-Informationsmodell werden alle fuer den Entwicklungs- Lifecycle benoetigten Werkzeuge in einem Framework integriert. Work-Management-Funktionen und werkzeuggestuetzte Entwicklungsmethoden sorgen dafuer, dass im Rahmen einer offenen Architektur eine effektive Steuerung der Software-Entwicklung moeglich ist.

Aus den vorangegangenen Betrachtungen geht hervor, dass die Merkmale einer SEU auch fuer die Entwicklung von Client-Server- Anwendungen eine wichtige Rolle spielen.

In der Vergangenheit, als sich durch die Einfuehrung von CASE-Tools wesentliche Teile der Anwendungsentwicklung vom Mainframe auf Workstations verlagerte, entstanden grosse Probleme. Dezentrale Entwicklungsergebnisse mussten ueber Schnittstellen zum Host-Rechner transferiert und dort konsolidiert werden. Neben einem immensen Aufwand waren der Verlust oder die Verfaelschung von Informationen oder unnoetige Datenredundanz keine Seltenheit. Die Datenintegritaet liess sich nur sehr schwer gewaehrleisten. Mit einer Repository- basierten SEU in einer Client-Server-Architektur stehen Funktionalitaet und Daten plattformuebergreifend zur Verfuegung. Der Anwender hat jederzeit aktuelle und korrekte Daten.

Das Repository hat in einer integrierten SEU die tragende Rolle des uebergeordneten Informationsspeichers. Ausserdem ist es Integrationsbasis fuer alle am Entwicklungsprozess beteiligten Werkzeuge und Traeger zentral verfuegbarer Basisfunktionalitaet (Prozess-Management, Auswertungen, etc.). Es erfuellt die zentrale, plattformunabhaengige Speicherung aller Entwicklungsinformationen (single point of control), die Sicherstellung der Datenintegritaet im gesamten Entwicklungs-Lifecycle fuer alle Entwicklungsplattformen (Owner-Konzepte, Zugriffsschutz- Mechanismen, Integritaetsregelungen fuer die Datenhaltung und - benutzung), die Kontrolle und Qualitaetssicherung der spezifischen Designanforderungen wie Wiederverwendbarkeit ueber das Informationsmodell sowie eine konsistente Steuerung und Kontrolle der Entwicklungswerkzeuge auf allen Plattformen.

Der Beweis, dass die Client-Server-Technologie den erhofften Nutzen bringt, kann nur mit der Erstellung von qualitativ hochwertigen Anwendungssystemen gefuehrt werden. Eine integrierte Software- Entwicklungs-Umgebung auf Client-Server-Basis mit einem leistungsfaehigen Repository eroeffnet die Chance, den komplexen Prozess der Software-Entwicklung in den Griff zu bekommen und damit die Herausforderungen der Zukunft zu meistern.

*Norbert Zandt war ueber zehn Jahre als Berater fuer Software- Engineering taetig. Er ist bei der R&O Software-Technik GmbH, Germering, fuer das Marketing zustaendig.