Beispielanwendung und Flußanalyse

(Auszug aus "Python & XML" von Christopher A. Jones & Fred L. Drake, Jr.)

Wir werden eine große Beispielanwendung erstellen, um darin viele verschiedene Konzepte zu illustrieren und zu zeigen, wie diese gemeinsam benutzt werden können. Ein intelligenter XML-Switch, der weiß, wie XML-Code an die richtige Stelle weiterzuleiten ist, steht im Zentrum der verteilten Anwendung. Wir erläutern auch, wie diese Switches zu einem Daisy-Chain-Netzwerk verbunden werden können, um skalierbare Netzwerke von XML-Daten zu bilden. Zu den Komponenten, die mit dem Switch verbunden sind, gehört eine Anwendung für die Benutzereingabe, eine SQL-Datenbank mit Kundenprofilen und ein XML-Informationslager. Die folgende Abbildung zeigt ein Diagramm der Anwendung.

Die verteilte Beispielanwendung

Abbildung: Die verteilte Beispielanwendung

Die Anwendung soll veranschaulichen, wie mehrere verschiedene Anwendungen mit eventuell unterschiedlichem Zweck den gleichen XML-Verkehr im Netzwerk verwenden können. Der Schlüssel zum Erfolg der Anwendung liegt darin, wie der XML-Code entkoppelt von den Anwendungen dazwischen bewegt wird. Von höherer Warte aus gesehen, erscheint die Anwendung ihren Endbenutzern als Portal-Website. Backend-Systeme verschiedener Arten werden dadurch integriert, daß XML-Nachrichten-APIs offengelegt werden, was das Funktionieren des Portals ermöglicht. Andere Anwendungen verbinden sich entlang der Peripherie der Hauptdatenverarbeitung, um am Fluß der XML-Information teilzunehmen.

Entkoppeln von Anwendungssystemen

Betrachten Sie z. B. die Web/CGI-Anwendung auf der rechten Seite der obigen Abbildung. Normalerweise ist sie direkt mit einer Datenbank verbunden, die die Information enthält, die sie braucht. In diesem Szenario ist die Datenbank jedoch von der Web/CGI-Anwendung durch den XML-Switch entkoppelt. Die Web/CGI-Anwendung schickt lediglich ein XML-Paket (in diesem Abschnitt ein SOAP-ähnliches Paket), mit dem sie nach relevanten Daten fragt. Der Switch interpretiert dieses Paket und leitet es an die richtige Stelle weiter (in diesem speziellen Fall an ein Python-Objekt, das die entsprechende Arbeit verrichten kann). Wenn die Datenbank antwortet, wird die Information zum ursprünglichen Aufrufer zurückgeleitet. Das ermöglicht Flexibilität hinsichtlich der Plazierung oder des Entwurfs der Datenbank. Tatsächlich können sich verteilte Systeme so auf XML-Schnittstellen verlassen, wenn sie ihre Funktionalität offenlegen, statt sich mit den Problemen beim Entwurf von Tabellen oder den Namen spezieller gespeicherter Prozeduren (»stored procedures«) befassen zu müssen.

Routing bringt Flexibilität

Dieser Entwurf ist in seiner Architektur ähnlich zu Message-Queuing-Systemen, wenn auch mit einigen subtilen und wichtigen Unterschieden. Durch die Entkopplung verschiedener Teile eines Unternehmens können Sie deren Funktionalität auf einer breiteren Basis gemeinsam benutzen und die Unabhängigkeit von einer bestimmten Anwendung genießen, die die Daten verarbeitet. Außerdem ermöglichen Sie durch den Einsatz eines Vermittlers zwischen Datenquellen und Datenverbrauchern, daß die Geschäftslogik auf einer Ebene über und zwischen den Anwendungen existieren kann und nicht direkt in ihnen programmiert sein muß. In der obigen Abbildung könnten Sie sich z. B. vorstellen, die Profildatenbank auszulagern und statt dessen die Dienstleistung einer dritten Seite im Internet zu benutzen, die Kundendaten enthält. Das heißt, wenn Sie herausfinden, daß ein Webdienst eine bessere Personalisierung und Kundendaten als Sie selbst anbietet, können Sie sich mit dem Dienst verbinden, eine XML-Schnittstelle entwickeln, die zu Ihrem Netzwerk paßt, und die alte Datenbank gegen den neuen Dienstleistungspartner austauschen. Die lokalen Anwendungen als Verbraucher der Information wären keinen Deut schlauer, da der XML-Switch nach wie vor ihre XML-Anfragen entgegennimmt und die Resultate weiterhin zu den Anwendungen zurückgeleitet würden.

Routing bringt Skalierbarkeit

Zusätzlich zur Flexibilität von Systemkomponenten führt dieses Routing auch zu einem höheren Maß an Skalierbarkeit eines Systems. Durch die Weiterleitung von XML-Anfragen nach Informationen in Ihrem Netzwerk entwickeln Sie die Fähigkeit, sie so zu verwalten, wie Sie es bei anderen Arten von Netzwerkverkehr tun würden. Sie können z. B. individuelle Systeme durch Pools ersetzen, die aus mehreren Servern bestehen, und die Last verteilen, die von den zwischen ihnen gesendeten XML-Paketen verursacht wird. In einem anderen Fall könnten XML-Switches über ein Daisy-Chain-Netz verbunden werden, ganz ähnlich wie Router und Hubs beim TCP/IP-Verkehr miteinander verkettet sind. Dieses Konzept ermöglicht Ihnen, Dinge wie Broadcasting und Verdopplung von nur lesbaren Signalen einzusetzen. Es ermöglicht auch Redundanz und mehrere Netzwerkpfade zum gleichen Ziel.

  

<< zurück vor >>

 

 

 

Tipp der data2type-Redaktion:
Zum Thema Python & XML bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

Copyright © 2002 O'Reilly Verlag GmbH & Co. KG
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "Python & XML" denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

O’Reilly Verlag GmbH & Co. KG, Balthasarstraße 81, 50670 Köln, kommentar(at)oreilly.de