Loesungsansatz fuer komplexe verteilte Anwendungen Messaging dient als Schluessel zu der objektorientierten Welt

21.10.1994

Von Eckhard Bellinghausen*

Als Middleware prophezeien die DV-Protagonisten dem Message- Passing einen rasanten Aufschwung. Diese Form der Nachrichtenuebermittlung gilt als Grundvoraussetzung fuer echtes Client-Server-Computing der juengsten Generation, da sie die Entwicklung plattformuebergreifender verteilter Anwendungen auf objektorientierter Basis unterstuetzt.

Offene Systeme und Client-Server-Architekturen bilden bei fast allen Loesungsansaetzen zur verteilten Verarbeitung die technologische Grundlage. Allerdings sind die Anforderungen an diese Architekturen mehr als vielfaeltig und in den meisten Faellen nicht komplett erfuellt.

Neben der Unterstuetzung der Geschaeftsprozesse sowie der Orientierung auf die Endanwender muss eine verteilte Datenverarbeitung den unternehmensweiten Rahmen abdecken, evolutionaer veraenderbar, offen und skalierbar sein.

Loesungen sollten aus Schichten bestehen

Folgende Bedingungen sind deshalb fuer eine durchgaengig strukturierte, verteilte Anwendung zu schaffen:

- ein konsistenter Rahmen fuer die Anwendungsentwicklung,

- Abstraktion durch Isolierung der Systemarchitektur,

- Offenheit fuer die schrittweise Migration von Host-Anwendungen sowie

- Offenheit fuer die Integration unterschiedlicher Technologien und sich entwickelnder Standards.

Wirtschaftlichkeit, Flexibilitaet, ein minimales Entwicklungsrisiko, Schnittstellen-konforme Anwendungsmodule, Mehrschichtigkeit und Wiederverwendbarkeit sowie eine unternehmensweite Gesamtsicht stehen bei der Entwicklung im Vordergrund.

Beispiele fuer die Komponenten einer Client-Server-Architektur sind

- die technische Kommunikation zwischen Client und Server,

- Offline-Faehigkeit bei einem Verbindungsausfall zum Host,

- Verschluesselung der Client-Server-Kommunikation,

- elektronische Journalfuehrung,

- Security- sowie Workflow-Management,

- Office-Automation und Groupware sowie

- die transparente Einbindung von Peripherie.

Erforderlich sind ein gutes Antwortzeitverhalten, ein hoher Datendurchsatz, Verfuegbarkeit, Skalierbarkeit sowie Offenheit fuer zukuenftige Weiterentwicklungen. Ferner sollten Client-Server- Architekturen alle Moeglichkeiten der Verteilung, plattformuebergreifend einheitliche Schnittstellen und die Einbindung bestehender Strukturen, etwa nicht-relationaler Datenbestaende, unterstuetzen. Die Loesungen sollten in Schichten aufgebaut, das heisst vertikal gekapselt sein. Damit werden die Anwendung und die Realisierung einer Schicht voneinander unabhaengig, was Portabilitaet, Abstraktion, Transparenz und Offenheit wesentlich erhoeht.

Den meisten verteilten Architekturen liegen heute noch Remote SQL oder Remote Procedures Calls (RPCs) zugrunde. Remote SQL stellt eine elegante Loesung dar, wenn es um kleine, einfache Anwendungen geht, die in der Regel mit nur einem DBMS arbeiten. Handelt es sich jedoch um anspruchsvollere Anwendungen, zum Beispiel mit heterogenen Datenbestaenden, WAN-Verbindungen, Einbindung anderer Anwendungen und Technologien sowie vielen Benutzern bei gleichzeitig hohen Anforderungen an Durchsatz, Antwortzeit und Skalierbarkeit, stoesst diese Loesung schnell an ihre Grenzen.

RPC ist zwar wesentlich flexibler und performanter, erschwert mit seiner prozeduralen Philosophie allerdings die Ausnutzung der Moeglichkeiten grafischer Benutzeroberflaechen erheblich, etwa eine ereignisgesteuerte, parallele Verarbeitung durch asynchrone Client-Server-Kommunikation.

Im Gegensatz dazu erlaubt das Message-Passing die direkte und strukturierte Verbindung zwischen den Softwaremodulen, wobei mehrere Message-Sessions parallel ablaufen koennen, ohne sich gegenseitig zu blockieren. Dahinter steht die logische Entkoppelung der Anwendungsmodule und die Kapselung applikativer Funktionen und Daten. Message-Passing mag zwar einfache Applikationen verkomplizieren, doch es vereinfacht komplexe Applikationen mit vielen Programmen, verschiedenen Datenquellen und hohem Datenvolumen.

Laut Gartner Group liegen die Vorteile des Message Passing neben erheblich kuerzeren Antwortzeiten in einem reduzierten Netzwerk- Overhead und in der Moeglichkeit, Applikationsroutinen oder abgelegte Prozeduren wiederzuverwenden. Fuer echtes Client-Server- Computing bildet Message-Passing damit die ideale Basis.

Eine solche Messaging-Architektur liegt der Software- Entwicklungsumgebung "Foundation for Cooperative Processing", Version 2 (FCP V2) zugrunde, die Andersen Consulting zur Erstellung verteilter Anwendungen realisiert hat. Sie unterstuetzt mit ihrer objektbasierten Client-Server-Konzeption eine gaenzlich neue Art von Anwendungsarchitektur.

FCP ermoeglicht durch Verwendung der Laufzeitarchitektur vertikal die Entflechtung von fachlicher Logik und technischer Funktionalitaet, wie bei der Netzkommunikation, und entkoppelt im Sinne eines objektorientierten Konzeptes horizontal Clients und Server. Objektbasierte GUI-Applikationen werden dabei durch Events gesteuert. Diese entstehen bei der Kommunikation des Benutzers mit dem System ad hoc ueber ereignisgesteuerte Benutzeroberflaechen. Ereignisse und das folgende Ausloesen eines Callbacks finden ihre natuerliche Entsprechung in der asynchronen Message-Kommunikation zwischen den verteilten Anwendungsmodulen.

OO isoliert Anwendungen von der Systemarchitektur

Flexibilitaet, Maechtigkeit und Robustheit des Message-Brokers sind somit von entscheidender Bedeutung bei der Realisierung unternehmensweiter, objektbasierter Client-Server-Architekturen. Das objektbasierte Paradigma sollte von der Plattform konsistent und durchgaengig implementierbar sein. Auf einem hohen Abstraktionsniveau laesst sich so die Anwendungskonstruktion plattformuebergreifend vereinheitlichen.

Die Hauptvorteile der objektbasierten Architektur sind:

- Verbesserung der Portabilitaet und des Abstraktionsniveaus, in dem die Anwendung von der Systemarchitektur isoliert wird,

- eine hoehere Entwicklungsproduktivitaet durch in sich geschlossene, wiederverwendbare Module (Information-Hiding)

- Erhoehung der Wartungsproduktivitaet durch Entkoppelung der logischen Abhaengigkeiten innerhalb der Anwendungen sowie

- Erleichterung des Uebergangs zur Objektorientierung.