Middleware/Was geschieht technisch bei einer Buchbestellung im Web?

Middleware vom Browser-Frontend bis zum Backend-Mainframe

16.06.2000
E-Commerce-Lösungen wie etwa ein Online-Buchladen werden erst bei hohen Besucherzahlen profitabel. Doch den Ansturm der Käufer können die dahinter liegenden Systeme nur mit Hilfe einer Softwarekategorie bewältigen, die immer mehr an Bedeutung gewinnt: Middleware. Von Volkhard Wolf*

Middleware wird horizontal und vertikal eingesetzt. Das heißt, sie dient zum einen als Klebstoff, der verteilte Anwendungen zusammenhält und weltweite Interaktionen und Transaktionen ermöglicht. Zum anderen werden damit auch die verschiedenen Ebenen einer Systemarchitektur miteinander verbunden. Die grundlegende Ebene einer solchen Architektur beherbergt die Backend-Systeme wie etwa eine Datenbank. Die oberste Ebene ist die Schnittstelle zum Benutzer. Zwischen Backend und dem Benutzer-Frontend werden mehrere Ebenen an vermittelnder Software eingefügt.

Ohne Middleware sind E-Commerce-Systeme weniger skalierbar und sicher. Zudem sorgt sie dafür, dass die strengen Transaktionsregeln eingehalten werden. Middleware-Komponenten kümmern sich letzten Endes darum, dass die entsprechenden Ressourcen für Lösungen bereitstehen: Speicher- und Übertragungskapazität, Netzwerkverbindungen, Transaktionsschutz, Sicherheitsprüfung und System-Management-Funktionen.

Anhand zweier E-Commerce-Beispiele lassen sich die typischen Middleware-Kategorien und ihre jeweilige Einsatzweise vorstellen.

Für den klassischen Internet-Handel soll ein Online-Buchladen als Beispiel dienen, um die Abläufe beginnend beim Browser des Konsumenten zu den Backend-Systemen des Lieferanten und über die beteiligten Banken zurück zum Konto des Konsumenten nachzuvollziehen.

Ein typisches Szenario könnte folgendermaßen aussehen: Der Kunde sucht auf der Website nach Büchern, CDs oder Videos. Dazu nutzt er die integrierte Suchmaschine, die den Online-Katalog und damit die Datenbank des Buchhändlers auf die eingegebenen Begriffe hin durchforstet. Die Anfrage wird über das HTTP-Protokoll (Hypertext Transfer Protocol) zum Web-Server transportiert und löst einen Befehl aus, der über das Common Gateway Interface (CGI) an eine Datenbankanwendung geschickt wird. Dabei soll in diesem Fall ein Gateway verwendet werden. Ein Gateway dient der Anbindung und Übersetzung von Befehlsformaten zwischen verschiedenen Anwendungen im Netzwerk. Maßgeschneiderte Verbindungen zwischen zwei Anwendungen gehören zu den am längsten existierenden Middleware-Techniken.

Je nach Komplexität der verwendeten E-Commerce-Applikation wird die Anfrage direkt oder über Programm-Schnittstellen an die Datenbank geschickt. Auf dieser Ebene der Datenbankanbindung sind Schnittstellen wie Open Database Connectivity (ODBC) und die Java Database Connectivity (JDBC) im Einsatz. ODBC ist eine Microsoft-Technik, die meist eine Verbindung von Windows-Anwendungen zu allen gängigen Datenbanksystemen herstellt. Es wurde von Hersteller durch OLE DB (Object Linking and Embedding Databases) ergänzt, mit dem sich unstrukturierte Datenformate wie Bilder oder Videosequenzen ansprechen lassen.

Applikations-Server zwischen Browser und Host

Die Schnittstelle JDBC ist in Java implementiert, auf allen von Java unterstützten Plattformen einsetzbar und unkompliziert zu programmieren. Sie dient wie ODBC der Anbindung von Websites an Datenbanken, sodass sich Abfragen starten lassen. Die Ausführung kann beispielsweise durch Miniprogramme, so genannte Java-Applets, erfolgen: Die gesamte Logik wird dabei über das Internet zunächst auf den PC des Kunden übertragen und dort ausgeführt. Bei einem umfangreicheren Programm ist es aus Geschwindigkeitsgründen sinnvoller, die Abfrageprogramme am Server laufen zu lassen, die dann als Servlets bezeichnet werden. Dann wird nur das gewünschte Resultat über das Internet zum Kunden übertragen. Die Technologie der Servlets entlastet mithin das Endkundengerät. Dieses wird zum Thin-Client - der ist nicht mehr zwingend ein PC, sondern kann auch ein Mobiltelefon, ein Organizer oder eine Settop-Box für das Fernsehgerät sein.

Damit rechenintensive Abläufe auf den Hochleistungscomputern des Electronic-Commerce-Anbieters ausgeführt werden können, ist dort eine entsprechende Laufzeitumgebung erforderlich. Sie wird beispielsweise als Bestandteil eines Web-Anwendungs-Servers - einer weiteren für das E-Business zentralen Middleware - bereitgestellt. Wieder geht es um die Anbindung eines beliebigen Clients an beliebige Backend-Systeme im Unternehmen.

Wurde die Kundenanfrage über den Applikations-Server und dessen Datenbank-Schnittstellen zur Datenbankanwendung am Host weitergeleitet, öffnet diese die entsprechenden Tabellen, um die gewünschten Daten zu liefern. Diese Tabellen können unterschiedliche Inhalte und Standorte haben, so werden Bilddaten häufig getrennt von Geschäftsinformationen aufbewahrt. Die Inhalte sind daher möglicherweise außerhalb der eigentlichen Datenbank-umgebung oder gar auf verschiedenen Servern zu finden. Werbebanner könnten in einer weiteren Datenbank vorgehalten werden, als Verbindungen könnten wieder ODBC- und JDBC-Programme dienen.

Auf der Web-Seite des Buchladens sollen alle diese Teilstücke zusammengeführt und in kürzester Zeit angezeigt werden. Aus diesem Grund ist es ratsam, ein modernes relationales Datenbank-Management-System einzusetzen, das heute in der Regel das Zusammenführen der einzelnen Datenquellen von der Textdatei bis hin zu Datenbanken verschiedener Anbieter beherrscht.

Datenbanksysteme lassen sich - auch wenn das unüblich ist - ebenfalls als Middleware bezeichnen. Schließlich schirmen sie den Anwender von den darunter liegenden Techniken, insbesondere von den verschiedenen Betriebssystem- und Hardwareplattformen ab.

Auch in einem heterogenen Umfeld lassen sich die vom Kunden gewünschten Informationen effizient bereitstellen: So bewältigen populäre Internet-Sites durchaus 90 Millionen Suchvorgänge. Auch unter derart extremen Bedingungen sollten die Antwortzeiten in jedem Fall unter einer halben Sekunde liegen. Leistet ein Datenbanksystem dies nicht, wird es unweigerlich zum Flaschenhals der E-Commerce-Anwendung.

Das Datenbank-Management-System sollte auch die Implementierung umfangreicher Geschäftslogik erlauben: Was hatte der Kunde früher schon einmal gekauft? Welche Artikel werden üblicherweise mit dem gewünschten Buch sonst noch bestellt? Können dem Kunden Rabatte eingeräumt werden? Die Beantwortung solcher Fragen hilft dabei ein individuelles Angebot zu machen, von dem Buchhändler und Kunde gleichermaßen profitieren. Noch wichtiger werden solche Informationen allerdings bei festen Geschäftsbeziehungen.

Käufer lösen systemweite Transaktionen aus

Hat der Kunde das gewünschte Produkt gefunden und entscheidet sich zu kaufen, löst er per Mausklick einen elektronischer Buchungsvorgang aus. Außerdem muss die Ware - wenn es kein Buch, sondern vielleicht ein PC ist - möglicherweise erst konfiguriert werden, bevor sie zur Auslieferung angewiesen werden kann. Diese Vorgänge werden in Unternehmen nicht selten von so genannten Warenwirtschaftssystemen unterstützt, die häufig aber noch durch weitere Anwendungen ergänzt werden müssen.

Wie im konventionellen Geschäft ist beim elektronischen Handel ein möglichst uneingeschränkter Informationsfluss zwischen den betroffenen Anwendungssystemen - und hier zusätzlich mit dem Internet - sehr wünschenswert. Medienbrüche und manuelle Eingaben sind auf ein Minimum zu beschränken: Sie kosten Geld, weil Mitarbeiter beschäftigt werden müssen, um etwa Informationen von einem Bildschirm auf einen anderen zu übertragen. Hier kommt eine andere Art von Middleware ins Spiel: Software für Message-Queueing (MQ).

Dabei handelt es sich um Nachrichten, mit denen der Arbeitsablauf zwischen Anwendungssystemen über die unterschiedlichsten Plattformen und Netzwerke hinweg organisiert wird.

Nach dem Prinzip "Store and forward" schickt die MQ-Software die Nachrichten an die Adressaten weiter, und zwar vollständig und zuverlässig - auch wenn beteiligte Systeme oder Netzwerke vorübergehend nicht verfügbar sind. Die erforderliche Interaktion mit Netzwerkverbindungen und Übertragungsprotokollen erfolgt über standardisierte Interfaces.

Mit dem Einkauf über das Internet ist natürlich auch der entsprechende Zahlungsverkehr verbunden. Hier kommen zunächst Standards wie Secure Electronic Transaction (SET) zum Tragen. Erreicht die Transaktion aber schließlich die Geldinstitute von Kunde und Anbieter, werden die erforderlichen Buchungen nicht selten auf der Basis von Transaktionsmonitoren (TM) wie "CICS" von IBM oder "Tuxedo" von Bea Systems abgewickelt. Diese Art der Middleware fungiert als eine Art logisches Rückgrat, an dem entlang die betroffenen Anwendungen wie Rippen angeordnet sind und jede ihre Aufgabe der Reihe nach erledigt, während die Nervenstränge im Rückgrat den korrekten Ablauf überwachen.

Das Transaktionssystem prüft mit "Two-Phase Commit", ob eine Transaktion vollständig abgewickelt wurde. Wurde sie unter- oder abgebrochen, findet ein Rollback statt. Ein Konto kann dadurch niemals eine Gutschrift erhalten, ohne dass beim Absender eine Belastung erfolgte. Transaktionsmonitore arbeiten heute auf den unterschiedlichsten Plattformen nahtlos zusammen und sind in der Lage, in Spitzenzeiten Lasten automatisch untereinander aufzuteilen.

Der Kunde erwartet von E-Commerce-Auftritten unbedingte Aktualität. Ändert sich eine Seite nicht oder erscheint sie nicht aktuell, wechselt er unweigerlich zu einem anderen Anbieter. Web-Anwendungs-Server dienen in erster Linie dazu, operative IT-Systeme, auf deren Basis Unternehmen ihre Geschäfte abwickeln, mit dem Internet zu verbinden. Ist eine solche Verbindung realisiert, können Inhalte, nachdem sie im Unternehmen erfasst wurden, automatisiert im Internet abgebildet werden. Beispiel Preisänderungen: Wird im Unternehmen ein neuer Preis für ein Produkt festgelegt, ist er zeitgleich für Endkunden im Internet verfügbar.

Mit so genannten Java Server Pages lassen sich Web-Inhalte dynamisch gestalten. Auf der Basis aktueller Unternehmensdaten werden Inhalte mit dieser Technologie erst in dem Moment erzeugt, in dem die entsprechende Web-Seite aufgerufen wird. Ihre Gestaltung kann für den Endbenutzer auf der Basis seines Kundenprofils erfolgen. Ein Web-Auftritt ist somit nicht nur ständig aktuell, sondern passt sich auch jedem Kunden individuell an. Java Server Pages werden von den bereits erwähnten Java-Servlets erzeugt. Neben der erforderlichen Laufzeitumgebung stellt der Web-Anwendungs-Server auch alle erforderlichen Interfaces und Gateways bereit, über die sich auf vorhandene Daten und Systeme im Unternehmen zugreifen lässt.

Web-Anwendungs-Server bieten als zentrale Komponente der Middleware-Ebene aber nicht nur Infrastruktur, sondern dienen auch als Behälter (Container) von Anwendungskomponenten. Mit EJBs (Enterprise Javabeans) beispielsweise lassen sich Warenkörbe im Electronic Commerce realisieren. EJBs können persistent sein, das heißt der Kunde findet seinen Warenkorb unverändert vor, auch wenn er die Internet-Sitzung zwischendurch unterbrechen musste. Dazu hätte mit konventioneller Technologie ein Cookie auf die lokale Festplatte gespielt werden müssen, eine Technik, die bei vielen Kunden mittlerweile in Verruf geraten ist.

Mit Komponenten wie EJBs kann das Unternehmen aber auch Geschäftsregeln implementieren. Solche Objekte werden häufig als Business Objects bezeichnet. Sie sind zuweilen über Datenhaltungssysteme verbunden, wodurch die Integration einer heterogen gewachsenen Umgebung realisiert ist. Business Objects in Form von Komponenten erlauben die schnelle und flexible Reaktion auf jedwede äußere Veränderung - Stichwort Wettbewerbsvorteil durch kurzes Time to Market.

Vorteile von Middleware

Middleware ist für die Integration heterogener Plattformen und Anwendungen, wie sie gerade im E-Commerce zum Einsatz kommen, unerlässlich: Sie hält entsprechende Schnittstellen für die Programmierung und für die Interaktion der Anwendungskomponenten bereit, zum Beispiel bei Enterprise Javabeans und COM-Komponenten. Investitionen in Altsysteme auf Mainframes und Minis lassen sich wieder verwenden und weiterverwenden, indem man sie als Komponenten mit geeigneten Schnittstellen kapselt und in einer objektorientierten Architektur einsetzt.

Die IT-Leitung braucht sich weniger um Wartung und Software-Release-Wechsel zu kümmern, denn beim Austausch der entsprechenden Komponenten sind die angrenzenden Programmteile kaum davon betroffen. Dies gilt auch für Middleware-Typen wie ORBs. Die Verteilung von Software-Upgrades ist so ebenfalls einfacher; sie wird zentral von einem Server gesteuert und auf die jeweiligen Clients verteilt. Das hält die laufenden Unterhaltskosten für die Software niedrig.

Die Integration der verschiedenen Middleware-Typen ist aufwändig. Um diesen Faktor von vornherein zu reduzieren, integrieren die Hersteller ihre Middleware selbst zu umfangreichen und vielseitigen Lösungen, zum Beispiel als Web-Anwendungs-Server. Ein zweiter Trend besteht darin, Middleware-Funktionen in Datenbanken aufzunehmen - ebenfalls ein Weg, um den Integrationsaufwand zu verringern. In neuen E-Business-Unternehmen wächst daher die Bereitschaft, zu Middleware zu greifen: die Dotcoms als Wegbereiter für innovative Lösungen.

*Volkhard Wolf ist Marketing-Manager E-Business bei IBM Deutschland.

MIDDLEWARE-KOMPONENTEN

Gateways (dt.: Übergang, Eingang) dienen der Anbindung von Anwendungen in Netzwerken und der Übersetzung von Befehlsformaten zwischen Anwendungen. Ein Gateway bezeichnet stets genau eine Schnittstelle zwischen zwei hinsichtlich Protokoll oder Adressierung verschiedenen Netzwerksystemen. Meist wird ein PC oder Server als Gateway eingesetzt. Der Vorteil, dass Gateways auf die beiden kommunizierenden Anwendungen zugeschnitten und von der Geschwindigkeit her optimiert sind, wird dadurch erkauft, dass bei Änderungen in der Anwendung häufig das Gateway angepasst werden muss.

Open Database Connectivity (ODBC) dient dem abfragenden Zugriff auf Datenbestände, wobei die Client-Software in der Regel auf Windows-PCs installiert ist. Von dort kann man jedoch auf nahezu beliebige Datenhaltungssysteme am Backend zugreifen, sofern dort ein entsprechender ODBC-Treiber installiert ist. Der Vorteil gegenüber Gateways liegt darin, dass bei einer Softwareänderung auf Client- oder Server-Seite nicht auch die Middleware angepasst zu werden braucht.

Java Database Connectivity (JDBC) erfüllt den gleichen Zweck auf Java-unterstützten Plattformen, also überall, wo eine Java Virtual Machine (JVM) verfügbar ist. Das gilt etwa für alle gängigen Browser. JDBC-Code lässt sich in nahezu jede Web-Seite einfügen, um Datenbestände abzufragen. Die Ausführung erfolgt wahlweise auf dem Server oder dem Client.

Object Linking and Embedding (for) Databases (OLE DB). Diese Microsoft-Technik hat eine ähnliche Funktion wie ODBC, doch lassen sich damit multimediale Inhalte wie Texte, Bilder und Videosequenzen einbinden. OLE DB for Olap (Online Analytical Processing) ist eine Variante für den Zugriff auf multidimensionale Datenbankbestände.

Message-Queueing-Software dient der Verwaltung, Steuerung, Verteilung und Überwachung von Nachrichten zwischen Anwendungsobjekten. Durch eine Schnittstelle zu Netzwerken kann sie auf Betriebsstörungen so reagieren, dass Messages sicher verschickt werden. Im Gegensatz zu synchronen Techniken wie Remote Procedure Calls (RPCs) arbeitet Message-Queueing nicht synchron, sondern asynchron. Das heißt, dass die Gegenstelle nicht ständig antwortbereit sein muss, sondern die Nachricht dort bis zur Verarbeitung gespeichert werden kann.

Transaktionssysteme starten, steuern und überwachen die Ausführung von Transaktionen. Der Transaktionsmonitor prüft mit der Technik Two-Phase Commit, ob eine Transaktion vollständig abgewickelt wurde. Ist sie fehlgeschlagen, wird ihr Status auf null gesetzt (Rollback) und die Transaktion erneut gestartet.

Object Request Broker (ORB) ist eine objektorientierte Middleware-Technik, die der Verwaltung verteilter Softwareobjekte oder -komponenten dient. Sie verwaltet Namen, Standorte, Nachrichten, Sicherheitsfunktionen, Aktionen und Transaktionen.

Applikations-Server stellen eine Ablaufumgebung für Middleware-Komponenten wie etwa Enterprise Javabeans oder ORB-Komponenten (ORB-basiert) bereit.

Appserver sind nahezu unentbehrliche Komponenten in E-Business- und E-Commerce-Anwendungen, da sie sowohl für Sicherheit und Skalierbarkeit sorgen, als auch eine Ebene für die flexible Installation von Objekten für Geschäftsabläufe integrieren. Dadurch kann etwa ein Dotcom-Unternehmen sehr rasch auf Marktveränderungen reagieren. Beispiele: IBM Websphere, Bea Weblogic.

Abb: Die typische Architektur einer Web-basierten Anwendung für E-Commerce und E-Business. Quelle: IBM