Wie Grossmann in die Client-Server-Aera einsteigt Komponentenloesungen helfen bei der Anwendungsentwicklung

21.10.1994

Neben integrierten Entwurfs-, Programmier- und Spezialwerkzeugen werden heute verstaerkt Entwicklungs-Tools angeboten, die Informationen mit Hilfe spezieller Module austauschen. Anhand eines fiktiven Anwenders beschreibt Christiane Reuter* die Anforderungen an diese Komponentenloesungen.

Komponentenloesungen werden von verschiedenen Herstellern vertrieben. Sie arbeiten ueber Spezialmodule zusammen, wobei die Informationen entweder ueber Dateien oder ueber eine direkte Zusammenarbeit der Werkzeugkataloge ausgetauscht werden. Die Programm-zu-Programm-Kommunikation ueber objektorientierte Schnittstellen-Protokolle wird allmaehlich ueblicher.

Was eine Entwicklungsumgebung heute leisten muss, soll anhand eines fiktiven Tandem-Kunden dargestellt werden, nennen wir ihn Grossmann GmbH. Grossmann ist Lebensmittelfilialist und versorgt ueber ein Zentrallager mehr als einhundert Supermaerkte in Deutschland. Ein Mitbewerber wurde kuerzlich erworben und soll mit weiteren achtzig Filialen integriert werden.

Requestor-Server-Modell als Anwendungskonzept

In der Grossmann-Zentrale ist ein Tandem-Rechner "K10000" mit vier RISC-Prozessoren und Zugriff auf 24 GB Plattenspeicherkapazitaet installiert. In den Filialen laufen "K1000"-Systeme mit jeweils zwei RISC-Prozessoren und 12 GB Plattenkapazitaet. Alle Rechner und die angeschlossenen PCs sind ueber TCP/IP und Netbios verbunden.

Saemtlich heute bei Grossmann eingesetzten Anwendungen sind in dem fuer Tandem ueblichen Requestor-Server-Modell erstellt: Die Teile der Verarbeitungslogik, die sich mit der Benutzerfuehrung befassen, sind im Requestor zusammengefasst. Die Datenverwaltung befindet sich in einer Server-Klasse. Beide Teile tauschen Informationen in Form von Meldungen aus. Es gibt keinen Hauptspeicher, auf den der Requestor und ein Prozess der Server-Klasse gemeinsam zugreifen. Ein Transaktionsmonitor kontrolliert das Gesamtsystem. Zur Datenhaltung verwendet Grossmann schon seit mehreren Jahren das parallele, relationale Datenbanksystem "Nonstop SQL".

Nach Absprache mit Grossmanns Fachabteilungen sollen die meisten Requestoren automatisch in Client-Anwendungen umgesetzt werden. In diesem Fall bleibt die bisherige Art der Benutzerfuehrung weitgehend erhalten. Die Darstellung auf dem Bildschirm erfolgt jedoch ueber grafische Objekte wie Knoepfe, Listen und Tabellen. Neue Client-Applikationen will man aber nach den aktuellsten Erkenntnissen und mit modernen Entwicklungs-Tools erstellen.

Die Informatikabteilung will fuer neue Anwendungen weitgehend wiederverwendbare Server-Klassen erstellen. Es ist eine objektbasierte Vorgehensweise geplant, die sich aus einem traditionellen datenorientierten Verfahren ableiten laesst. Geht man bei dem Entwurf einer Anwendung von logisch zusammengehoerenden Entitaeten-Gruppen aus und fasst alle Verarbeitungsfunktionen fuer eine Gruppe in einem Anwendungsmodul zusammen, hat man den ersten wesentlichen Schritt zur objektbasierten Datenkapselung getan. Alle Datenattribute dieser Entitaeten stehen anderen Modulen nur ueber externe Schnittstellen zur Verfuegung. Die Attribute werden entweder in einem Datenbanksystem gespeichert oder aus dort gespeicherten Daten aktuell ermittelt. Implementiert man diese Module als Server-Klassen, entstehen objektbasierte Verarbeitungseinheiten, die ueber Meldungen miteinander und mit anderen Modulen kommunizieren.

Grossmanns Programmierer fuehlen sich in Cobol zu Hause, einige juengere Kollegen bringen C-Kenntnisse mit. Eine kleine Gruppe experimentiert mit objektorientierter Programmierung. Bisher sind bei Grossmann keine Analyse- und Entwurfswerkzeuge im Einsatz.

Das Management von Grossmann hat die wachsende Bedeutung von Entscheidungsunterstuetzungs-Systemen erkannt. In einem Pilotprojekt soll eine Spezialanwendung fuer Abteilungsleitersitzungen entwickelt werden. Die Dispositionsabteilung hat bereits begonnen, Informationen ueber das unterschiedliche Kaufverhalten in den Filialen zu sammeln. Diese Daten sollen kuenftig bei der Preisfindung und Sortimentsdisposition verstaerkt beruecksichtigt werden. Auch die Fachabteilungen wuenschen einen eigenstaendigen Zugriff auf ihre Daten, besonders fuer Ad-hoc-Anfragen.

Anwendungen fuer spontane Anfragen und Systeme zur Entscheidungsunterstuetzung sind typischerweise so aufgebaut, dass ein Client-Programm die gesamte Verarbeitung durchfuehrt und die Befehle fuer den Datenbankzugriff an ein Server-basiertes Datenbanksystem weitergibt. Diese Art der Verarbeitung setzt eine Standardisierung der Befehle voraus. Tandem arbeitete massgeblich in einem Gremium mit, in dem sich Hersteller auf eine Standardzugriffsmethode fuer SQL-Datenbanken geeinigt haben. Das Ergebnis dieser Kooperation ist der SQL/Access-Standard, der heute in vielen Werkzeugen und Datenbanken zur Verfuegung steht.

Grossmanns Informatikabteilung hat sich fuer die Server-Klassen auf eine PC-basierte Cobol-Programmierumgebung festgelegt. Sie ermoeglicht es den Server-Klassen, direkt auf dem Tandem-Rechner liegende Daten zuzugreifen. Fuer die Erstellung von C++- Applikationen koennten C++-Entwicklungs-Tools eingesetzt werden. Die ersten Erfahrungen mit objektorientierten Methoden sammelt Grossmann jedoch bei Client-Anwendungen. Deshalb spielt C++ als Server-Klassen-Programmiersprache noch keine grosse Rolle.

Point-and-click-Technik fuer schnelle Ergebnisse

Fuer die Client-Programmierung steht eine Reihe von Werkzeugen zur Auswahl. Davon sind viele in der Lage, dynamisch auf Funktionsbibliotheken und statisch auf C-Funktionen zuzugreifen. Die meisten dieser Tools arbeiten auch direkt mit einer Reihe von Datenbanksystemen zusammen. In der Regel unterstuetzen sie den SQL/Access-Standard. Sie bieten dem Programmierer ueber eine grafische Benutzerfuehrung direkten Zugriff auf die Kataloginformationen der SQL-Datenbank. Grafische Objekte und Datenbankabfragen koennen eng miteinander verbunden werden.

Diese Werkzeuge verfuegen oft ueber eine eigene strukturierte Programmiersprache. Die Unterstuetzung fuer Objektorientierung variiert von "nicht vorhanden" ueber Bibliotheken grafischer Objekte (inklusive der zugehoerigen Verarbeitungslogik) und Vererbungsmoeglichkeiten fuer grafische Objekte bis zu objektorientierten Programmiersprachen. Die Fachabteilungen sind von einer Produktvariante begeistert, die mit der Point-and-click- Technik arbeitet. Ein Programmieren im herkoemmlichen Sinne entfaellt. Diese Tools bieten Vorteile, wenn die Datenkomplexitaet ueberschaubar ist und die Applikation schnell erstellt werden soll.

Die meisten Cobol-Programmierer des Unternehmens bevorzugen die werkzeugspezifischen Sprachen der Client-Programmierumgebungen. Doch werden bereits Bedenken laut, dass nur der Einsatz einer Standardsprache wie Cobol oder C laengerfristige Unabhaengigkeit von einem Tool-Hersteller garantiert. Die Informatikabteilung loest dieses Problem durch eine pragmatische Vorgabe: Client-Anwendungen sollen sich nur auf die Benutzerfuehrung konzentrieren. Die gesamte uebrige Verarbeitung findet in der in Cobol geschriebenen Server- Klasse statt. Diese Entscheidung soll neu ueberdacht werden, wenn sich das Angebot an Werkzeugen vergroessert, die eine freiere Verteilung von Verarbeitungsbloecken zwischen Client und Server unterstuetzen.

Unterstuetzung verteilter Funktionen gefordert

In einem ersten Schritt will man die Cobol-Programmierumgebung fuer Server-Klassen und ein Entwurfswerkzeug integrieren. Die Einbindung der Client-Programmierumgebung soll spaeter erfolgen. Eine neue Klasse von Werkzeugen scheint hier besonders interessant. Sie ermoeglichen es einem geschulten Benutzer, Programm- oder Programmrahmen-Generatoren selbst zu schreiben. Diese Generatoren greifen auf den vollen Katalog des Entwurfswerkzeugs zu. Tools dieser Art stehen sowohl fuer eine objektorientierte Vorgehensweise, mit C++ als Zielsprache, als auch fuer eine traditionelle Methode, etwa mit C oder Cobol, zur Verfuegung.

Entwurfswerkzeuge, die das von Grossmann favorisierte verteilte Funktionenmodell unterstuetzen, sind weniger verbreitet als solche fuer den direkten Datenbankzugriff. Neben der Bedienerfreundlichkeit ist die Unterstuetzung der objektorientierten Programmierung (OOP) bei Grossmann ein wichtiges Entscheidungskriterium. Es ist geplant, die Schnittstellen der Server-Klassen, die mit den Client-Anwendungen zusammenarbeiten sollen, in dem Entwurfswerkzeug zu dokumentieren. Heute sind alle Schnittstellen in eigenen Datenkatalogen erfasst.

Tools fuer mehrdimensionale Analyse am Markt

Bei Grossmann stellt die Informatikabteilung die Datenbanken bereit, der Fachbereich kuemmert sich um die Erstellung der Datenmodelle und die Auswahl der Datenzugriffs-Tools. Zur Zeit testet die Informatikabteilung ein Werkzeug, mit dessen Hilfe Auszuege aus dem aktuellen Datenbestand erstellt werden koennen. Dabei werden die Daten in ein neues Format umgesetzt und in einer relationalen Datenbank gespeichert. Im Rahmen des Pilotprojekts zur Erprobung von Entscheidungsunterstuetzungs-Systemen prueft man Werkzeuge, die sich fuer eine mehrdimensionale Analyse eignen. Sie ergaenzen das vielfaeltige Angebot von Tabellenkalkulations- und Abfragewerkzeugen sowie von Listengeneratoren.

Die gedachte Firma Grossmann hat sich auf das Client-Server- Verarbeitungsmodell der verteilten Funktionen und auf eine spezielle Entwurfsmethode fuer Server-Klassen festgelegt. Ausserdem sucht man nach einer Loesung, die einen evolutionaeren Uebergang aus der alten in eine Entwicklungsumgebung mit modernen Werkzeugen unterstuetzt. In diesem Fall ist eine Komponentenloesung eine naheliegende Alternative.