Middleware:Schlüsseltechnologie zur

Werbung
Informatik-Spektrum 19: 249–256 (1996)
© Springer-Verlag 1996
Hauptbeitrag
Middleware: Schlüsseltechnologie
zur Entwicklung verteilter Informationssysteme
Markus Tresch
Zusammenfassung Dem Begriff „Middleware“ liegt
kein allgemein gültiges Verständnis zugrunde. In verteilten Informationssystemen bezeichnet Middleware weit mehr als nur
den Schrägstrich „/“ in Client/Server.Während dieser Zwischenschicht ursprünglich hauptsächlich Kommunikationsaufgaben zugedacht waren, sieht sich ein Software-Entwickler heute einer unüberschaubaren Vielfalt von Middleware-Systemen
mit unterschiedlichsten Funktionalitäten gegenüber. Dieser Artikel gibt einen umfassenden Überblick über aktuelle Entwicklungen der Middleware-Technologie und stellt diese in einem
einheitlichen Rahmen dar.
nem Hostrechner implementiert sind, und die Benutzer mit
recht einfachen Terminals arbeiten, sind dezentrale Anwendungen auf spezialisierte Server und leistungsfähige Clients verteilt,
und sogenannte Middleware – das Bindeglied zwischen Clients
und Servern – übernimmt selbst umfassende Aufgaben im verteilten Informationssystem (Abb. 1).
Schlüsselwörter Verteilte Informationssysteme, Client/Server, SQL-Server, CORBA, Multimedia-Schnittstelle, Data
Warehousing, Transaktions-Monitore, Three-Tier-Architecture.
Summary There is no widely accepted understanding of the term „Middleware“. In distributed systems, middleware denotes much more than just the slash „/“ in client/server.
While originally this intermediate layer was supposed to provide mainly communication services, today’s software developers
are faced with a huge variety of middleware systems, implemen- Abb. 1 Clients, Server und Middleware
ting divers functionality. In this paper, we present a comprehenAls Vorteile verteilter Anwendungssysteme sind zu
sive overview of actual developments in middleware technology
nennen:
and discuss them in a common framework.
• die gute Effizienz durch problemgerechte Arbeitsteilung
Key words Distributed information systems, clizwischen Client und Server,
ent/server, SQL server, CORBA, multimedia interface, data wa• die hohe Flexibilität und gute Skalierbarkeit,
rehousing, transaction monitors, three-tier architecture.
• der Einsatz zusätzlicher Ressourcen,
• die ökonomische, gemeinsame Nutzung von Ressourcen
Computing Reviews Classification H.1, H.2, H.2.5,
(z.B. Peripheriegeräte),
C.2.4
• die Verhinderung eines zentralen Fehlerortes durch Replikation und Shadowing von Servern (no single point of failure),
• die Verwendung bekannter Werkzeuge auf der Client-Seite,
z.B. für die Realisierung von Benutzerschnittstellen,
a0000005222
das gute Preis/Leistungsverhältnis von Hardware und Stan•
1.Einleitung
dardsoftware.
Seit mehreren Jahren läßt sich eine klare Tendenz weg von zentralen Mainframe-basierten Anwendungssystemen hin zur Entwicklung dezentraler Applikationen auf Client/Server-Systemen erkennen. Während zentrale Anwendungssysteme auf eiMarkus Tresch,
Institut für Informationssysteme – Datenbanken, ETH Zürich,
CH-8092 Zürich, Tel.: 0041 1 632 7245, e-mail: [email protected]
Dem gegenüber stehen als bekannte Nachteile verteilter Anwendungssysteme:
• die inhärente Komplexität der Entwicklung verteilter Anwendungen, und damit die hohen Entwicklungskosten,
• die gegenüber Mainframes kleinere Leistung von Servern,
die damit einen Leistungsengpaß darstellen können,
• die verschärften Sicherheitsprobleme durch erhöhte ClientServer- und Server-Server-Kommunikation,
M. Tresch: Middleware
249
•
•
die oft unzureichende Verfügbarkeit von Entwicklungs- und
Wartungswerkzeugen,
der größere Administrationsaufwand.
In der Praxis hat sich als besonders schwerwiegendes Problem
verteilter Client/Server-Anwendungssysteme die unterschätzte
Entwicklungskomplexität herausgestellt. Einer der Gründe
dafür ist die große Anzahl von Entwurfsalternativen, denen sich
ein Entwickler solcher Systeme gegenüber sieht. Neben der Frage der Entwurfsmethodik, stellt sich also die Frage, welches die
dazu notwendigen Technologien sind.
In diesem Artikel gehen wir auf eine zentrale Schlüsseltechnologie ein, die wesentlich zur erfolgreichen Entwicklung verteilter Client/Server-Informationssysteme beiträgt und
deren Stellenwert zunehmend an Bedeutung gewinnt: Middleware. Kapitel 2 gibt einen Überblick über den Stand der Technik
klassischer Middleware-Systeme. Darauf aufbauend werden in
Kapitel 3 aktuelle und neuere Entwicklungen dargestellt.Abschließend vergleichen wir in Kapitel 4 nochmals die Dienste unterschiedlicher Middleware.
nikation zwischen Client und Server sowie der Zugriff auf verteilte Datenbanken bezeichnet werden. Zuerst werden die zwei
grundsätzlichen Mechanismen der Client-Server-Kommunikation, Remote Procedure Call und Message Queuing, diskutiert.
Danach wird auf SQL-Middleware, als die verbreitetste Form
des Zugriffs auf verteilte Datenbanken, eingegangen, die meistens auf einem dieser zwei Mechanismen aufbaut.
2.1.Kommunikations-Middleware
Remote Procedure Call (RPC) ermöglicht das Ausführen einer
Prozedur durch einen anderen Prozeß, der auf einem entfernten
Server laufen kann. Dieser einfache Basismechanismus erlaubt
durch eine geringe Erweiterung des gewohnten lokalen Prozedurenaufrufs die Entwicklung verteilter Programme. So ist RPC
z.B. seit Mitte der 80er Jahre die Grundlage der meisten
Client/Server-Datenbanksysteme.
Durch seine Einfachheit ist RPC schnell und effizient. Obwohl es auch auf Threads basierende asynchrone RPCMechanismen gibt, sind diese in der Regel auf synchrone Kommunikation begrenzt, die den Client während des Wartens auf
eine Antwort des Servers blockiert. Dies setzt voraus, daß eine
Netzwerkverbindung existiert und der Server zu jedem
a0000005222 direkte
Zeitpunkt verfügbar ist, um die Anfrage zu bearbeiten. Daß dies
2.Klassische Aufgaben von Middleware
insbesondere in fortgeschrittenen Anwendungen, man denke
z.B. an Mobile Computing, oft nicht gewährleistet werden kann,
Die Grundbausteine verteilter Informationssysteme sind Client, liegt nahe.
Server und Middleware [9, 10]. Bei Clients denkt man unmittelDes weiteren wird RPC oft als zu „low level“, d.h. zu
bar an eine Fülle konkreter Systeme, z.B. an PCs,Workstations,
netzwerknahe bezeichnet, und man wünscht sich mit Recht eine
Laptops, Mobil-Telefone etc.Auch Server sollen hier durchaus
semantisch höhere Abstraktionsebene verteilter Programmieim weiteren Sinne verstanden werden. Zu nennen wären etwa
rung mit reicheren Verteilungsdiensten.An dieser Stelle setzt
Workstations, Satelliten oder Informationsdienste (BörsenOSF’s Distributed Computing Environment (DCE-Standard)
ticker, Newsnet etc.).
an, welches nicht nur einen Konsens verschiedener Hersteller
Demgegenüber sind die Vorstellungen über Middle- für RPC-Implementierungen anstrebt, sondern darauf aufbauware i.d.R. wesentlich weniger konkret. Sie beinhaltet fast imend auch erweiterte Konzepte wie verteilte Katalogs-, Sichermer eine mehr oder weniger hoch entwickelte Kommunikatiheits-, Zeit- und File System-Dienste standardisiert.
Message Queuing beschreibt, im Vergleich zu RPC,
onskomponente, die Clients mit Servern verbindet. Middleware
die asynchrone, Mailbox-ähnliche Kommunikation. Message
kann aber weit darüber hinausgehen und durch unterschiedlichste Dienste und Funktionalitäten weitere Transparenz-ebe- Queuing benötigt nicht nur einen automatisierten Mechanismus in Form eines Queue Managers, vergleichbar etwa mit einen realisieren. Typische Middleware-Dienste sind [2]:
• Kommunikations-Dienste: Peer-to-peer Messaging, Remote nem mailer daemon, der Meldungen verwaltet, sondern auch
Procedure Call, Message Queuing, elektronische Post, elekeine Form von Persistenz zum Zwischenspeichern der Meltronischer Datenaustausch,
dungen. Da Message Queuing eine Ein-Weg-Kommunikation
ist, hat der Sender, nachdem er die Meldung abgeliefert hat,
• System-Dienste: Event Notification, Konfigurationsmanagement, Software-Installation, Fehlererkennung, Recovery-Koor- keine Kontrolle mehr über deren Weiterleitung an den Empdination,Authentifizierung,Verschlüsselung, Zugriffskontrolle, fänger.
Obwohl Message Queuing daher für Echtzeit-An• Informations-Dienste: Directory Server, Log Manager, File
und Record Manager, relationales Datenbanksystem, objek- wendungen ungeeignet ist, hat es seine Berechtigung, wenn Clitorientiertes Datenbanksystem, Repository Manager,
ents und Server nur zeitweise verfügbar sind, weil sie z.B. mobil
• Ablaufkontroll-Dienste: Thread Manager, Transaktionsver- über ein Modem kommunizieren, oder wenn der Server für Anarbeitung, Resource Broker, Request Broker, Job Scheduler,
fragen lediglich Stapelverarbeitung kennt.
Diese Form der asynchronen Kommunikations• Präsentations-Dienste: Masken- und Graphikverarbeitung,
Drucker-Verwaltung, Hypermedia-Verbindungen, Multime- Middleware gewinnt zunehmend an Bedeutung für verteilte India-Aufbereitung,
formationssysteme. Sie ist einerseits wesentlich flexibler als
• Berechnungs-Dienste: Sortieren, mathematische Berechnun- RPC und erlaubt diverse Variationen, wie z.B. das Senden einer
gen, Internationalisierung, Datenkonversion, Zeit-Manage- Meldung an mehrere Empfänger (Broadcasting) oder das Umment.
und Weiterleiten von Meldungen an andere Empfänger. Darüber hinaus, bieten aktuelle Entwicklungen, wie z.B. MQSeries,
Als die klassischen Aufgaben von Middleware, auf die im Rest
persistente, zuverlässige Queues, mit transaktionellen Recodieses Kapitels genauer eingegangen wird, können die Kommu- very-Mechanismen.
250
M. Tresch: Middleware
2.2.SQL-Middleware für den
Zugriff auf verteilte Daten
diese ausgeführt, bevor die SQL-Anfrage weitergeleitet wird
(Abb. 2c). Die Verwendung von erweiterbaren Servern eröffnet
wichtige Möglichkeiten, den Zugriff auf Datenbanksysteme
Obwohl SQL zu den verbreiteten Standards für Informationssy- durch das Dazwischenschalten eigener Software auf eine für
steme gehört, ist man weit davon entfernt, damit transparent
Clients transparente Art und Weise zu beobachten. Mit dieser
auf relationale Datenbanksysteme unterschiedlicher Hersteller Open Server-Technologie können beispielsweise Änderungsozugreifen zu können. Große zusätzliche Anstrengungen sind
perationen auf eine Datenbank protokolliert oder globale
notwendig, um die Unterschiede der SQL-Dialekte, Datenbank- Transaktionen koordiniert werden[12].
hersteller, Netzwerkprotokolle, Hardware-Plattformen und ProIm Gegensatz zu SQL-Treibern, die Bestandteil des
grammierschnittstellen zu überbrücken. Drei Formen von SQL- Client-Programmes sind und damit im selben Prozeß ausgeMiddleware sollen genauer betrachtet werden, welche obige Un- führt werden, sind (offene) SQL-Gateway Server selbständige,
terschiede für Clients transparent machen: SQL-Treiber, SQLim Netz verteilte Systeme. Dies garantiert nicht nur bessere AusGateway Server und offene SQL-Server.
führungssicherheit, sondern auch höhere Flexibilität, da darunSQL-Treiber sind die einfachste Form von SQLterliegende Datenbankserver transparent ausgewechselt werMiddleware zum herstellerunabhängigen Zugriff auf relationa- den können.
le Datenbanken (vgl. z.B. Microsoft ODBC). Sie bieten eine Programmierschnittstelle für Datenbankzugriffe an, deren Aufrufe
je nach darunterliegendem Datenbanksystem von einem enta0000005222
sprechenden Treiber übersetzt und ausgeführt werden (Abb.
3.Aktuelle und neue
2a). SQL-Treiber sind auf der Client-Seite zu finden, d.h. werden
Middleware-Entwicklungen
entweder statisch zum Client-Programm gebunden oder vom
Client über eine dynamische Schnittstelle (Dynamic Invokation
Aufbauend auf diesen Grundfunktionalitäten von Middleware
Interface) aufgerufen.
haben sich nun seit einiger Zeit neue Formen von Middleware
SQL-Gateway Server laufen im Gegensatz zu SQLTreibern in einem eigenen Prozeß und kommunizieren mit dem entwickelt [8], die Kommunikationsdienste auf einer höheren
Client über eine unveränderte SQL-Schnittstelle (vgl. z.B. Infor- semantischen (objektorientierten) Ebene realisieren, selbst
große Datenmengen verwalten oder aufwendige Ablaufkonmation Builders EDA/SQL oder Sybase OmniCONNECT). Die
trollaufgaben übernehmen.
Grundidee besteht darin, daß der SQL-Gateway Server für den
Client als normaler Datenbank-Server erscheint. Im Gegensatz
zu einem normalen SQL-Server verwaltet der Gateway Server
3.1.Kommunikations-Middleware
jedoch keine eigenen Daten, sondern übersetzt die SQL-Anfrafür verteilte Objekte (CORBA)
ge in ein Datenbanksystem eines bestimmten Herstellers. Diese
Aus dem Notstand, daß es kein einheitliches, kommerziell verGateway-Funktion des Servers ist für den Client vollständig
fügbares und weit verbreitetes Rahmensystem für die Entwicktransparent (Abb. 2b).
lung verteilter Informationssysteme gibt, ist 1989 die Object
Offene SQL-Server gehen noch einen Schritt weiter
Management Group (OMG) entstanden.
und erlauben darüber hinaus eine für den Client transparente
Die OMG geht davon aus, daß bestehende RahmenErweiterung des Servers durch benutzerspezifische Programme
(z.B. Sybase OpenClient/Server). Für den Client präsentiert sich systeme zur Entwicklung verteilter Anwendungen, wie z.B.
DCE, zu „low-level“ und damit ungeeignet sind. Statt dessen
ein Open Server mit einer normalen SQL-Schnittstelle, da für
verfolgt sie einen Ansatz basierend auf Obiekttechnologien,
ihn die Erweiterbarkeit nicht sichtbar sein soll.Wird der Open
Server durch benutzerspezifische Programme erweitert, werden welche mindestens drei Schlüsseleigenschaften aufweisen um
eine einheitliche Sicht auf verteilte und heterogene Systeme zu
Abb.2 SQL-Middleware
realisieren, nämlich Datenkapselung, Polymorphismus und
Vererbung.
Daraus entstanden ist der CORBA-Standard, der Interoperabilität und Portabilität auf der Basis einer objekt-orientierten Spezifikation ermöglicht. Die Bestandteile von CORBA
sind eine einheitliche Terminologie der Objektorientierung, ein
abstraktes Objektmodell, eine Referenzarchitektur und ein gemeinsames Protokoll.
Das Kernstück von CORBA ist die Object Management Architecture (OMA) [7, 11], eine Referenzarchitektur bestehend aus Standards für die folgenden Komponenten:
• ein Object Request Broker (ORB) definiert den Kommunikationskern von CORBA,
• Common Object Services definieren die allgemeinen und
anwendungsunabhängigen System-Grundoperationen zur
Verwaltung (Modellierung und Speicherung) von Objekten,
wie z.B. Naming, Relationships, Persistence oder Transactions.
M. Tresch: Middleware
251
•
•
Common Facilities definieren spezialisierte und anwendungsspezifische Funktionalitäten, die in vielen Applikationen nützlich sind, z.B. User Interface (browsing, querying,
printing) oder Compound Documents,
Application Objects definieren die Implementierung der
Anwendungsobjekte.
Der Object Request Broker (Abb. 3) ist der zentrale Mechanismus, der es Objekten erlaubt, über Netzwerk- und Betriebssystemgrenzen hinweg miteinander zu kommunizieren („Object
Bus“). Die OMA-Grundannahme besteht darin, daß die Clients
nur OIDs enthalten und weder Ort noch Sprache der Objektimplementierung kennen. Die physische Implementierung der
Objekte (Daten und Methodencode) erfolgt auf den Servern.
Bei der Kommunikation zwischen Objekten formuliert der Client ein Request, der vom Object Request Broker an
den Server mit der entsprechenden Methodenimplementierung
vermittelt wird. Dazu lokalisiert der ORB die Implementierung,
übergibt Daten und Kontrolle an den Server, und transferiert
Resultat und Kontrolle nach Abschluß der Berechnung wieder
zurück an den Client.
Die Sprache IDL (Interface Definition Language)
wird zur programmiersprachen- und betriebssystemunabhängigen Definition der Objektschnittstelle verwendet (Syntax
ähnlich C++ Headers), die anschließend in die Programmiersprache der Implementierung compiliert wird.
Der CORBA-Standard ist relativ frei von Implementierungsvorgaben. Ein ORB kann z.B. eine Menge von Routinen
von run-time Bibliotheken (DLL), eine Server-Maschine (separater Prozeß, der Anfragen vermittelt) oder ein Teil des Betriebssystems sein. Beispiele kommerzieller ORBs sind Iona’s
Orbix, DEC’s ObjectBroker, IBM’s Distributed System Object
Model (DSOM), Sun’s NEO oder HP’s ORB Plus (ORB+).
CORBA ist eine semantisch höhere Kommunikationsplattform auf der Basis objektorientierter Technologien
[10]. Ein erfolgreicher und akzeptierter Standard fehlt hier zur
Zeit und CORBA könnte diese Lücke schließen.Als Hauptprobleme von CORBA werden vor allem die ungenügende Geschwindigkeit (die meisten ORB’s sind auf der Grundlage von
RPC implementiert), die mangelnde Skalierbarkeit (welche für
Abb.3 CORBA Object Request Broker
252
M. Tresch: Middleware
Abb. 4 Multimediale Anfrageschnittstelle
unternehmensweite Lösungen unabdingbar ist) und die geringe
Stabilität und Sicherheit genannt.
3.2.Multimedia-Anfrageschnittstellen
Heterogene Multimedia-Informationen sind meistens in verteilten Datenservern (Repositories) gespeichert, die für die Verarbeitung genau eines Multimedia-Datentyps spezialisiert sind,
z.B. relationale und objektorientierte Datenbanksysteme, TextRetrieval-Systeme, Bilddatenbanken oder Audio- und VideoServer. Es entsteht die Notwendigkeit, diese verteilten Daten zu
integrieren und als komplexe, miteinander in Beziehung stehende Objekte darzustellen, gleichzeitig aber die Daten selbst in
den Repositories zu belassen, um die spezialisierte Funktionalität dieser multimedialen Datenserver zu nutzen.
Abbildung 4 illustriert eine solche Middleware am
Beispiel des Garlic Projektes [3, 4], welches die Integration heterogener, verteilter Multimedia-Informationssysteme in den Vordergrund stellt. Die existierenden Datenserver können in ein erweiterbares Informationssystem integriert werden, das ein globales (objektorientiertes) Schema von der Gesamtinformation mit
globalen Werkzeugen (Query Browsers, etc.) verfügbar macht.
Wrapper „wickeln“ Datenserver ein und verleihen
ihnen damit nach außen eine einheitliche Schnittstelle. Sie haben zwei Hauptaufgaben. Sie exportieren an die Middleware eine Beschreibung der Datentypen, der aktuellen Daten und der
bekannten Suchfunktionen des jeweiligen Repositories, z.B.
welche Prädikate unterstützt werden oder welche Zugriffsstrukturen vorhanden sind. Diese Beschreibung wird von den Wrappern zuvor in das Datenmodell der Middleware übersetzt (im
Falle von Garlic eine Variation des ODMG-93 Datenmodells).
Zum andern übersetzen Wrapper Anfragen zwischen dem internen Protokoll der Middleware und dem des Datenservers. Eine offene Frage ist, ob und in wieweit Wrapper aufgrund einer
deklarativen Beschreibung des Repositories automatisch generiert werden können.
Die Middleware hat selbst einen eigenen Sekundärspeicher, das Metadata Repository, das dazu verwendet wird, Informationen über das integrierte Schema und über die Transformation der Daten abzulegen. Ein weiteres Repository erlaubt
das Speichern eigener komplexer Objekte, die von der Middleware erzeugt und aus bestehenden Objekten zusammengesetzt
wurden. Damit lassen sich neue komplexe Objekte bilden, ohne
die bestehenden Systeme zu verändern.
Das Laufzeitsystem der Middleware verarbeitet globaDieser Vorteil von Data Warehousing kommt insbele Anfragen an Daten, die in mehreren Repositories verteilt sind. sondere in folgenden Fällen zum Tragen:
Clients sehen über dieses Laufzeitsystem eine einheitliche, objek- • Datenquellen nicht ständig verfügbar:Viele Informationen
sind aus organisatorischen Gründen nicht ständig online
torientierte Sicht auf alle Daten. Diese Sicht kann eine einfache
verfügbar (z.B. historische Unternehmensdaten) oder die
Vereinigung der Daten der Repositories sein, oder sie kann Reentsprechenden Informationsserver stehen nicht ununterstrukturierungen (Selektionen, Projektionen, Joins) enthalten.
brochen und zuverlässig zur Verfügung (z.B. mobile, über
Anfragen an die Middleware werden vom Laufzeitsystem in Teile
Modem angeschlossene Server). Data Warehouses garantiezerlegt, die von einem einzelnen Repository verarbeitet werden
ren in diesen Fällen, daß Anfragen in einem bestimmten
können. Man betrachte folgendes Beispiel einer globalen Anfrage:
Zeitlimit beantwortet werden.
select artist, painting
• Sehr große und rasch wachsende Datenquellen:Viele Inforfrom GalleryDB
mationen, insbesondere solche, die automatisch gesammelt
where artist = „Monet“ and reddish(Painting)
werden (z.B. Satellitendaten,Aktienkursentwicklungen),
wachsen derart schnell, daß real-time Anfragen nicht mehr
Nimmt man an, daß die Künstlernamen in einer relationalen
möglich sind. In diesen Fällen kann mittels Data WarehouDatenbank und die Bilder in einem speziellen Bilder-Repository
sing ein Datenausschnitt extrahiert werden, auf dem dann
(z.B. QBIC [4]) gespeichert sind, dann zerlegt die Middleware
die konkreten Auswertungen ausgeführt werden.
diese Anfrage in zwei Teile ‘artist = „Monet“’ und ‘reddish(Painting)’, die von der relationalen bzw. der Bilddatenbank ausgeDa Daten physisch in das Data Warehouse kopiert werden, muß
wertet werden können. Die Aufgabe der Middleware ist es, den
diese Art von Middleware selbst über eine möglicherweise beJoin zwischen den Resultaten zu bilden.
trächtliche Sekundärspeicherkapazität verfügen. Darüber hinaus kann es durch das Kopieren von Daten in die Middleware zu
Inkonsistenzen mit den Informationsquellen kommen. Eine
3.3.Data Warehousing
zentrale Fragestellung ist somit, wie die Daten im Data WareData Warehousing-Middleware stellt für Anfrage- und Analyse- house als Folge von Änderungen in den Informationsquellen
zwecke den Clients ausgewählte und integrierte Informationen nachgeführt werden können.
bereit. Dazu werden Daten aus unterschiedlichen InformationsData Warehousing zeigt also eine starke Verwandtquellen in einer vorverarbeiteten Form physisch in das Data
schaft mit materialisierten Sichten und den damit verbundenen
Warehouse kopiert (Snapshot).
Problemen des View-Updates, so daß viele bekannte View-UpClients stellen ihre Anfragen dann nicht mehr direkt date-Verfahren auch hier zur Anwendung kommen. Trotzdem
an die Informationsquellen, sondern benutzen diese Middlewa- ist als wesentlicher Unterschied zu nennen, daß die Informatire (Abb. 5). Das Data Warehouse kann i.d.R. von den Clients
onsquellen heterogen und autonom sind.
nicht geändert werden (read only), sondern wird nur dann auf
Monitore beobachten die Veränderung des Datenbeden neuesten Stand gebracht, wenn sich die Daten der zugrunde standes in den Informationsquellen und leiten diese falls notliegenden Informationsquellen ändern.
wendig in das Data Warehouse bzw. an den Integrator weiter.
Mit Hilfe eines Data Warehouses können Anfragen
Die Implementierung solcher Monitore hängt wesentlich von
und Analysen schneller verarbeitet werden, da Informationen
den Möglichkeiten ab, die die Informationsquellen bieten, um
komprimiert zur Verfügung stehen und semantische Heteroge- Updates festzustellen [6]:
nitäten eliminiert wurden. Data Warehousing kann als aktive,
• Handelt es sich z.B. um ein Datenbanksystem, so können auf
diesem Update-Triggers definiert werden, die dem Monitor
vorausschauende Datenintegration betrachtet werden, da AnVeränderungen melden (saubere aber ineffiziente Lösung).
fragen nicht in Realzeit transformiert und an die Datenquellen
weitergeleitet werden müssen.
• Fehlt ein solcher Trigger-Mechanismus, kann der Monitor
z.B. das Update Log File des Datenbanksystems inspizieren.
Abb.5 Data Warehousing
• Bei einer Informationsquelle, die keine solchen Datenbankfunktionalitäten hat, müssen alle Applikationen, die Daten
dieser Informationsquelle verändern, so erweitert werden,
daß sie bei Updates Meldungen an den Monitor senden.
• Solche Veränderungen der Anwendungen sind oft unerwünscht oder nicht machbar, so daß nur noch die Möglichkeit eines Hilfsprogrammes bleibt, das in bestimmten Abständen einen Snapshot der gesamten Daten erstellt und mit
früheren Snapshots vergleicht.
Die Entwicklung effizienter Algorithmen zur Beobachtung von
Updates in Informationsquellen ist Gegenstand aktueller Forschung. Das WHIPS-Projekt [6] untersucht beispielsweise den
Ansatz, aus zwei Snapshots eine Sequenz von change-, deleteund insert-Meldungen zu generieren.
Im Gegensatz zu klassischen materialisierten Sichten, ist das Data Warehouse von den Datenquellen losgekoppelt,
M. Tresch: Middleware
253
was zu folgenden Warehouse-Update Anomalien führen kann:
ordinator verlangt werden, auf den Subsystemen aus.Wie im
Der Integrator wird von den Monitoren über Änderungen in
CIM/Z Projekt vorgeschlagen, besteht ein Agent aus vier Moduden Datenquellen informiert. Stellt der Integrator in diesem
len [13]:
Moment fest, daß zur Modifikation des Warehouses weitere In- • Das Kommunikationsmodul verbindet den Agenten mit dem
Monitor. Dies kann ein eigener Prozeß sein, der mit den Moformationen von eventuell mehreren Datenquellen erforderlich
nitor und dem Kontrollmodul des Agenten z.B. über asynsind, muß er an diese Datenquellen eine Anfrage absetzen. Diechrones Message Queuing kommuniziert.
se Anfrage wird auf den Datenquellen später ausgewertet, als
die dazugehörende Änderung, wodurch inkorrekte Ergebnisse
• Das Kontrollmodul übernimmt Protokollierung (Logging)
und Recovery der eigenen Aktivitäten und stellt die korrekte
im Warehouse entstehen können.
gleichzeitige Ausführung mehrerer lokaler SubsystemIntegratoren nehmen die Daten von den Monitoren
Transaktionen mit globalen Transaktionen ausgelöst durch
entgegen und speichern diese im Warehouse. Die Datenintegraden Koordinator sicher. Die Aufgaben des Kontrollmoduls
tion umfaßt die Selektion relevanter Informationen, die Transhängen davon ab, wieviel Transaktionsfunktionalität das
formation dieser Informationen in das gemeinsame DatenmoSubsystem selbst anbietet.
dell (z.B. Relationen), und schließlich die Integration dieser Daten. Dieser letzte Schritt ist wiedetum eine komplexe Aufgabe,
• Das Beobachtungsmodul beobachtet lokale Aktivitäten des
Subsystems, die für die globale Koordination relevant sind.
da natürlich jeweils nicht das ganze Data Warehouse neu erstellt
Wie bei Data Warehouses gilt auch hier, daß dies nur mögwerden soll, sondern die vom Monitor mitgeteilten Änderungen
lich ist, falls das Subsystem eine gewisse Beobachtung
inkrementell einzuarbeiten sind.
zuläßt, d.h. dem Agenten alle notwendigen Informationen
zugänglich macht.
3.4. Agenten und Koordinatoren
• Das Ausführungsmodul führt die Operationen auf dem SubWährend bislang vor allem Middleware für die Verarbeitung von
system aus. Dies bedarf der Transformation von Daten und
Anfragen und für den Zugriff auf verteilte Informationssysteme
Operationen zwischen dem Datenmodell des Subsystems
betrachtet wurde, wenden wir uns nun Agenten und Koordinatound dem globalen Koordinationsmodell.
ren zu, einer Middleware zur Kontrolle verteilter Abläufe.
Agenten- und Koordinator-Middleware ist selbstverständlich
Zur Illustration der Verwendung von Agenten und
Koordinatoren betrachten wir eine Computer Integrated Manu- nicht auf CIM-Umgebungen begrenzt, sondern gelangt überall
zum Einsatz, wo autonome, heterogene Subsysteme koordiniert
facturing (CIM) Umgebung, bestehend aus mehreren autonowerden müssen.Abhängig vom Funktionalitätsumfang dieser
men Teilsystemen, z.B. einem Produktionsplanungssystem
Subsysteme wird der Aufbau und die Aufgabe der Agenten stark
(PPS) und einem Computer Aided Design (CAD) System. Das
variieren, so daß generische Agenten nur begrenzt entwickelt
PPS enthält Informationen über den Produktionsablauf von
Teilen. Das CAD System unterstützt den Entwurf von Teilen und werden können.
CIM Subsysteme können z.B. mit Hilfe eines Klassifienthält die Konstruktionspläne. Damit gibt es eine offensichtliche Abhängigkeit zwischen diesen Systemen, die bei der Fabri- kationsschemas nach der Stufe der Erweiterungen eingeteilt
werden, die der Agent zu bewerkstelligen hat [13]. Die drei orkation von Teilen ausgenützt werden muß.
Zur Koordination der Operationen dieser zwei
thogonalen Kriterien für die Klassifikation sind die mögliche
Subsysteme wird ein Koordinator eingesetzt (Abb. 6). Die
Form der Kommunikation zwischen dem Agenten und dem
Hauptaufgabe des Koordinators besteht darin, mit Hilfe von
Subsystem, die Möglichkeiten, Operationen auf den Daten des
Agenten den konsistenten Zustand des CIM Systems zu gaSubsystems auszuführen und die Unterstützung von Atomarität
rantieren. Ein Koordinations-Repository speichert lokal syund Dauerhaftigkeit von Subsystemoperationen.
stemübergreifende Abhängigkeiten und protokolliert die eigenen Aktivitäten.
3.5.Transaktions-Monitore (TP-Monitore)
Agenten beobachten (vergleichbar mit Monitoren eines Data Warehouses) die Aktivitäten eines Subsystems, die für TP-Monitore [5] kennt man bereits von Mainframe-Systemen
(z.B. IBM’s CICS), wo sie eine robuste und effiziente Laufzeitdie globale Koordination wichtig sind und melden diese dem
umgebung für transaktionsintensive On-line-Applikationen
Koordinator. Gleichzeitig führen sie Operationen, die vom Ko(OLTP), wie z.B. Buchungssysteme, schaffen. Seither haben sich
Abb.6 Agenten und Koordinatoren
TP-Monitore stark verbreitet und werden inzwischen für fast alle Arten von Applikationen eingesetzt. Insbesondere haben sie
sich von der Mainframe-Welt wegentwickelt und bilden heute
eine Kerntechnologie für Client/Server-Systeme.
Heutige TP-Monitore, wie z.B. Tuxedo [1] oder Encina, werden oft auch als „Betriebssystem für Transaktionen“ bezeichnet. Diese Art von Middleware verwaltet, koordiniert und
überwacht Transaktionen von Clients an mehrere Server. Sie hat
die Aufgabe, die ACID-Eigenschaften zu garantieren und gleichzeitig den Transaktionsdurchsatz zu optimieren. Damit ist bereits angedeutet, daß TP-Monitore vor allem zwei Aufgaben besonders gut beherrschen: Transaktionsverwaltung und Prozeßverwaltung.
254
M. Tresch: Middleware
Abb.7 Transaktionsmonitore
TP-Monitore sind von Grund auf für die effiziente
Transaktionsverarbeitung konstruiert. Die Hauptaufgabe
von TP-Monitoren ist es, die ACID-Eigenschaften von Transaktionen für alle Programme, die unter der Kontrolle des TPMonitors laufen, zu garantieren, indem TP-Monitore deren
Ausführung, Verteilung und Synchronisation übernehmen.
Durch die Verwendung von TP-Monitoren müssen sich die
Anwendungsprogrammierer nicht um Eigenschaften wie
Gleichzeitigkeit von Zugriffen, Fehlerbehandlung oder Lastbalancierung kümmern. Eigenschaften wie z. B. 2-PhaseCommit-Koordination werden durch TP-Monitore transparent gemacht.
Die Prozeßverwaltung dient in erster Linie der Entlastung des Betriebssystems.Wenn viele Clients vom Betriebssystem Ressourcen (Prozesse, Kommunikationskanäle, Hauptspeicher etc.) auf den Servern anfordern, ist damit das Betriebssystem jedes noch so leistungsfähigen Servers überlastet. Da
nun glücklicherweise nicht alle Clients gleichzeitig diese Ressourcen brauchen – aber wenn sie sie brauchen, dann ohne
große Verzögerung – können TP-Monitore hier die notwendige
Entlastung bieten. Sie unterhalten eine geringere Anzahl von gemeinsam genutzten Verbindungen mit den Servern, auf die eintreffende Transaktionen von einem Scheduler verteilt werden
(Abb. 7). TP-Monitore starten solche Server-Prozesse, leiten
Aufträge an die Server weiter, überwachen deren Ausführung
und balancieren die Last der Aufträge.
Da die Wiederherstellbarkeit eines konsistenten Zustandes nach dem Auftreten eines Fehlers eine Hauptaufgabe
von TP-Monitoren ist, können diese i.d.R. nicht auf den traditionellen Kommunikationsmechanismen wie RPC oder Message
Queueing basieren. Statt dessen implementieren TP-Monitore
eigene, transaktionelle Client-Server-Kommunikations-Mechanismen, wie z.B. transactional RPC (TxRPC) oder persistente,
zuverlässige und wiederherstellbare Queueing Systeme (vgl.
MQSeries).
Es entstehen damit Informationssysteme, die nicht
nur horizontal über Client- und Server-Subsysteme verteilt
sind, sondern auch vertikal auf drei Ebenen implementiert sind
(Abb. 8).Auf der obersten Ebene (den Clients) findet in erster
Linie die Präsentation der Information und die Interaktion mit
dem Benutzer statt.Auf der mittleren Ebene (den Applikationsservern) ist die Anwendungslogik (Business Objects) implementiert.Auf der untersten Ebene befinden sich die Datenbankserver.
Diese „3-Tier-Architecture“ (3-Ebenen-Architektur)
trennt die Anwendungslogik von der Benutzerschnittstelle und
der Datenverwaltung. Die Middleware implementiert anwendungsspezifische Applikationsserver. Das wohl bekannteste
kommerzielle Anwendungssystem, das weitgehend dieser Architektur folgt, ist SAP R/3, bei dem es sich um eine umfassende
Standard-Software mit modularer Middleware handelt, die z.B.
Applikationsserver für Logistik, Personalwirtschaft, Rechnungswesen oder Produktionsplanung enthält.
Da diese Applikationsserver je nach Anwendung
z.B. den Charakter eines Warehouses oder eines Transaktionsmonitors haben können, liegt es nahe, daß diese auf der Basis
früher beschriebener Middleware-Technologie implementiert
sind.
a0000005222
4.Zusammenfassung
In Anbetracht der Komplexität verteilter Client/Server-Systeme
ist die Verwendung von Middleware-Software der Schlüssel zur
Entwicklung verteilter Informationssysteme. Middleware spielt
insbesondere eine zentrale Rolle bei der Integration von Legacy-Anwendungssystemen mit Neuentwicklungen, denn Erfahrungen der letzten Jahre haben gezeigt, daß die alten Systeme nicht verschwinden und die neuen diese nicht vollständig
übernehmen werden [14].
Middleware realisiert dabei, zusätzlich zu grundlegenden Kommunikationsaufgaben, vor allem drei unterschiedliche Arten von Transparenz:
1. Zugriff auf verteilte Daten,
2. Kontrolle verteilter Abläufe und
3. verteilte Applikationslogik.
Abb. 8 Three-Tier-Architecture
3.6. Middleware mit Anwendungslogik (Three-Tier-Architecture)
Nachdem nun gezeigt wurde, daß Middleware aufwendige Berechnungs- und Ablaufsteuerungsaufgaben übernehmen kann,
besteht der nächste Schritt darin, diese Aufgaben soweit zu verallgemeinern, daß Middleware selbst einen Teil der Anwendungslogik implementiert.
M. Tresch: Middleware
255
Abb.9 Einordnung von Middleware
Erachtet man diese drei Dienstarten als Achsen eines Würfels
mit dem fundamentalen Dienst der Kommunikation als Zentrum, läßt sich die in diesem Artikel diskutierte MiddlewareSoftware wie in Abb. 9 illustriert einordnen.
Viele der in diesem Papier angesprochenen Bereiche
der Middleware-Technologie verlangen nach weiterer Forschung. Grundsätzlich würde man sich wünschen, daß die
Middleware der Zukunft umfassende Datenbank-Funktionalität, d.h. Datenmodell, Zugriffsstrukturen wie Indexe,Anfragesprache, Transaktionen etc. für Daten in Informationssystemen exportiert, die selbst solche Möglichkeiten nicht oder nur
begrenzt haben.
Der aktuelle Middleware-Markt ist ein Flickwerk
verschiedenster Software. Unterschiedliche Arten von Middleware werden benötigt, um unterschiedliche Arten von Probleme zu lösen.Verteilte Informationssysteme müssen durch Einsatz verschiedenster Middleware-Software gleichzeitig entwickelt werden. Damit ist in absehbarer Zeit zu leben, denn
Middleware wird kaum jemals ein einziges monolithisches
„Supertool“ sein.
Dr. Markus Tresch studierte Informatik an der
ETH Zürich und war wissenschaftlicher Mitarbeiter in der Datenbankforschungsgruppe. Er
promovierte 1994 an der Universität Ulm auf
dem Gebiet der objektorientierten Datenbanksysteme.Von 1994 bis 1995 arbeitete er am IBM
Almaden Research Center, Kalifornien. Er leitet heute in der DB-Forschungsgruppe der
ETH Zürich den Forschungsbereich Verteilte
und Multimediale Objekt-Datenbanken.
a0000005222
Literatur
1. Andrade,J.M, M.T. Carges, M.R. MacBlane: The TUXEDO System:
An Open On-line Transaction Processing Environment. Bulletin
of the TC on Data Engineering, Special Issue on TP Monitors,Vol.
17, No. 1, March 1994
256
M. Tresch: Middleware
2. Bernstein, P.A.: Middleware: A Model for Distributed System
Services. Communications of the ACM, Vol. 39, No. 2, February
1996
3. Carey, M.J., L.M. Haas, P.M. Schwarz, et al: Towards Heterogeneous
Multimedia Information Systems: The Garlic Approach. Proc. 5th
Int'l Workshop on RIDE-DOM, Taipei, Taiwan, March, 1995
4. Cody, W.F., L.M. Haas, W. Niblack, et al: Querying Multimedia Data
from Multiple Repositories by Content: The Garlic Project. Proc.
3rd Working Conf. On Visual Databases (VDB-3), Lausanne, Switzerland, March, 1995
5. Gray, J., A. Reuter: Transaction Processing: Concepts and Techniques. Chapter 16, Morgan Kaufmann, San Mateo, 1993
6. Hammer, J., H. Garcia-Molina, J. Widom, W. Libio,Y. Zhuge: The Stanford Data Warehousing Project. Bulletin of the TC on Data Engineering, Special Issue on Materialized Views and Data Warehousing,Vol. 18, No. 2, Juli 1995
7. Mowbray, T.J., R. Zahavi: The CORBA Standard: Systems Integration Using Distributed Objects. John Wiley & Sons, New York, 1995
8. Özsu, M.T., U. Dayal, P.Valduriez (Hrsg.): Distributed Object Management. Morgan Kaufinann, San Mateo, 1994
9. Orfali, R., D. Harkey, J. Edwards: Essential Client/Server Survival
Guide.Van Nostrand Reinhold, New York, 1994
10. Orfali, R., D. Harkey, J. Edwards: The Essential Distributed Objects
Survival Guide. John Wiley & Sons, New York, 1996
11. Object Management Group: CORBA: The Common Object Request Broker Architecture. Revision 2.0, July 1995
2. Schaad, W., H.-J. Schek, G. Weikum: Implementation and Performance of Multi-level Transaction Management in a Multidatabase
Environment. Proc. 5th Int'l Workshop on RIDE: Distributed Object Management, Taipei, March 1995
13. Wunderli, M., M.C. Norrie, W. Schaad: Multidatabase Agents for
CIM Systems. Proc. 3rd Int'l Conf. On Computer Integrated Manufacturing (ICCM'95), Singapore, July 1995
14. MiddlewareSPECTRA. Spectrum Reports Ltd., United Kingdom,
1995. http ://www. aladdin.co.uk/mw_spectra/
Eingegangen am 30.04.1996, in überarbeiteter Form am 15.08.1996
Folgende Middleware Systeme wurden in diesem Artikel erwähnt.Diese Liste ist
in keiner Art und Weise vollständig,sondern beschreibt eine Auswahl wichtiger
Vertreter der einzelnen Kategorien.
CORBA Standard
DCE Standard
DSOM
EDA/SQL
Encina
Garlic
MQSeries
Orbix
SAP R/3
Sybase OpenServer
TSIMMIS
Tuxedo
WHIPS
CICS
Object Broker
NEO
ORB+
Object Management Group
Open Software Foundation
IBM Corp.
Information Builders Inc.
IBM Corp.
IBM Almaden Research Center
IBM Corp.
Iona Technology Inc
SAP AG
Sybase Inc.
Stanford University
Novell Inc.
Stanford Universit
IBM Corp.
DEC
Sun
HP
www.omg.org
www.osf.org
www.software.ibm.com
www.ibi.com
www.software.ibm.com
www.almaden.ibm.com
www.software.ibm.com
www.iona.com
www.sap-ag.de
www.sybase.com
www-db.stanford.edu
tuxedo.novell.com
www-db.stanford.edu
www.software.ibm.com
www.dec.com
www.sun.com
www.hp.com
Herunterladen