Webservices

Werbung
Betrifft
Webservices in der IBM Welt – eine neue Herausforderung für
DB2 Spezialisten
Autor
Andreas Börlin ([email protected])
Erstellungsdatum
Januar 2004
Informationen innerhalb einer Unternehmung sind ein sehr wertvolles Gut und von
existenzieller Bedeutung. Damit Informationen optimal genutzt werden können,
müssen sie gepflegt werden, ihre Konsistenz muss gewährleistet sein und Zugriffe auf
sie müssen auf einfache Art und Weise möglich sein. In vielen Unternehmungen
werden heute die Unternehmensinformationen in verschiedenen Computersystemen
abgelegt und mit verschiedensten Anwendungs-Paketen bearbeitet und gepflegt. Um
eine konsolidierte Sicht der Daten zu erhalten, kann Datenintegrations-Technologie
eingesetzt werden. Es ist heute aber auch durch die Einführung einer AnwendungsIntegrations-Architektur möglich diese firmenweite oder firmenübergreifende,
konsolidierte Sicht der Daten zu erhalten.
In den Bereich von Datenintegrations-Technologie gehören Lösungen und Produkte
wie
- Daten Replikationslösungen; z.B. mit den IBM Datapropagator Produkten
- Messaging Implementationen; z.B. mit den IBM WebSphere MQ Produkten
- Information Integration Software; z.B. mit dem IBM DB2 Information Integrator
resp. dem IBM Information Integrator for Content
- etc.
Im Bereich der Anwendungs-Integrations-Architekturen wird der Einsatz von
Webservices mehr und mehr zur Wirklichkeit. Die Entwicklung und Implementation
einer Applikation auf der Basis einer Service Oriented Architecture (SOA) resp. von
Webservices macht es möglich, auf eine elegante Weise auf Daten innerhalb einer
Firma oder Daten anderer Firmen zugreifen zu können. Dieser Artikel möchte dem
Leser eine Übersicht geben, welche Rolle in einer modernen Anwendungsarchitektur
Webservices spielen können und welche Funktionen aus der Welt der DB2 Datenbank
Produkte primär genutzt werden.
Webservices – von der Vision zur Wirklichkeit
Webservices Applikationen sind eine neue Art von Web Applikationen. Die Vision
solcher Lösungen ist bereits mehrere Jahre alt. In den letzten Jahren ist aber diese
Technologie stark gereift und es sind Produkte auf dem Markt erschienen, die die
Entwicklung von Webservices Applikationen stark vereinfachen. Key players dabei sind
IBM WebSphere Studio und Microsoft Visual Studio .NET.
Mit Webservices lassen sich verschiedene Anwendungen leichter miteinander
verbinden. Auf diese Art und Weise können Applikationen einfach und effizient
zusammenarbeiten. Webservices können beispielsweise die Aufgabe übernehmen,
dass sich die Geschäftspartner einer Unternehmung im Internet sofort finden und
Transaktionen selbständig ablaufen können. IT-Abteilungen werden Applikationen über
eine auf Webservices basierenden Anwendungsarchitektur auf sehr einfache Art und
Weise miteinander verknüpfen können.
Beispiel: Über eine auf Webservices - Technologie basierenden
Anwendungsarchitektur kann den Filialen oder Schwesterfirmen einer Firma
standardisierter Zugriff auf eine Palette in der Zentrale laufenden WebservicesBackend-Applikationen zur Verfügung gestellt werden. Solche Applikationen liegen
heute zum grossen Teil in Cobol oder PL/1 vor und laufen in vielen Fällen auf IBM
Mainframe Systemen mit Datenbanksystemen wie DB2 oder IMS und verwenden den
Transaktionsmonitor CICS. Die Entwickler der einzelnen IT- oder OrganisationsAbteilungen bedienen sich standardisierter, einfacher Webservice Schnittstellen um
sich Zugang zu den zentralen Backend-Webservices-Applikationen zu erhalten. Dabei
ist zu beachten, dass es beispielsweise möglich ist, existierende Cobol-Programme über
zu entwickelnden Java-Code so zu verpacken, dass die Standards für Webservices
erfüllt werden.
Was sind Webservices?
Webservices sind Programme auf einem Server im Internet, die von anderen
Programmen dieser Art aufgerufen werden können. Diese Programme sind unabhängig
von Betriebssystemen und teilweise von Programmiersprachen. Die Standards, die für
das Funktionieren von Webservices entscheidend sind, werden heute von allen
wichtigen Software-Herstellern unterstützt.
Die Webservices – Technologie ermöglicht die Entwicklung, die Verteilung und die
Nutzung einer neuen Art von loosly coupled Application.
In diesem neuen Konzept werden Daten mit Hilfe der Datenbeschreibungssprache
XML (Extensible Markup Language) dargestellt und über das Protokoll SOAP (Simple
Object Access Protocol) zwischen verschiedenen Anwendungen transportiert.
Aufgefunden und aufgerufen werden Webservices über zentrale UDDI -Verzeichnisse
(Universal Description, Discovery and Integration). Die Aufrufschnittstellen werden in
der Sprache WSDL (Web Service Description Language) beschrieben.
Beispiel einer möglichen Webservice – Anwendung:
- Ein Automobilhersteller will eine Anwendung aufbauen, die weltweit alle
Zulieferer direkt in den vollautomatisierten Komponentenbestellablauf integriert.
- Die neue Applikation muss drei Schlüsselfunktionen enthalten:
o Funktion zur Preisanfrage für zu bestellende Komponenten
o Funktion zur Bestellung von Komponenten
-
-
o Funktion zur Überwachung bestellter Komponenten
Durch die Implementierung dieser neuen Applikation in einer Webservice
basierenden Architektur können sämtliche Benutzer des Automobilherstellers
diese Applikations-Funktion von einer sehr breiten Palette von Plattformen und
Applikationen nutzen. Auf Lieferantenseite werden die benötigten Webservices
(als Webservices Providers) mit frei wählbaren Tools auf einer frei wählbaren
Plattform implementiert.
Die internen Einkaufsapplikationen des Automobilherstellers können diese auf
der Lieferantenseite implementierten Bausteine nutzen.
Ablauf:
o Eine Einkaufsanwendung findet über ein privates Webservices Verzeichnis einen Lieferanten in einer bestimmten Stadt, um eine
Preisanfrage beim ausgewählten Lieferanten durchführen zu können.
o Der Suchvorgang auf dem Webservices - Verzeichnis liefert der
Einkaufsanwendung resp. der mit dem Webservice kommunizierenden
Komponente der Einkaufsanwendung den oder die Lieferanten in Form
eines Links.
o Die Einkaufsanwendung einer Abteilung des Automobilherstellers
ƒ fordert nun über gefundenen Webservice auf der Seite des
ausgewählten Lieferanten einen Preis an und liefert diesen an den
Auftragsteller ab.
ƒ Der Auftraggeber hat nun die Möglichkeit des Platzierens einer
Bestellung und die Möglichkeit die Erfüllung des Bestellauftrages
zu überwachen.
ƒ Durch SQL Queries auf der zentralen relationalen Datenbank des
Automobilherstellers kann Information über offene Bestellungen
abgerufen werden.
Webservices – die Komponenten
Webservices sind eine Variante der Idee der komponentenorientierten Entwicklung von
Applikationen. In der Konzeption der ‚Webservices soll eine Reihe von Standards
Anwendungsprogramme verschiedenster Art kompatibel oder integrierbar machen.
XML
Grundlage aller Webservices-Standards bildet XML (Extended Markup Language). XML
ist eine Metasprache, mit der sich Sprachen beschreiben lassen, in denen ihrerseits
Daten definiert werden können. Alle anderen Standards für Webservices beziehen sich
auf solche Datendefinitionen.
SOAP
Das Simple Object Access Protocol legt fest, wie ein Funktionsaufruf mit XML-Daten
über Rechner hinweg (RPC, Remote Procedure Call) erfolgen muss. Als
Transportprotokoll ist in erster Linie HTTP vorgesehen. Die Sicherheit verbessert die
Variante HTTPS. Sehr viele der heute implementierten Webservices werden über das
HTTP-Protokoll in TCP/IP Netzwerken transportiert. Andere Technologien wie
Messaging z.B. mit IBM Websphere MQ, können ebenfalls benutzt werden. SOAP wird
von allen wichtigen Softwareherstellern unterstützt. SOAP Meldungen können in
irgendeiner Programmiersprache erstellt werden.
WSDL
Die Web Services Description Language ist ein auf XML basierender Rahmen, in dem
ein Webservice beschrieben wird, welche Funktionen er bietet, wie diese aufzurufen
sind und welche Parameter dabei zu übergeben sind. Für die Aufrufe aus
Applikationen unterschiedlicher Hersteller ist natürlich sicherzustellen, dass die
Schnittstellen standardisiert sind und eine Übereinkunft über die Bedeutung der
Parameter existiert. Erst unter dieser Voraussetzung sind Geschäftsprozesse mit
Webservices - Technologie automatisierbar.
UDDI
Der Standard Universal Description, Discovery and Integration spezifiziert, wie
Verzeichnisse aufzubauen sind, in denen Webservices registriert sind, und wie die
Webservices von anderen Programmen gefunden und aufgerufen werden können. Die
so genannten Weissen Seiten enthalten Namen und Adressen der Unternehmen, die
Gelben Seiten ergänzen Branchen-, Produkt-Informationen und Kontaktmöglichkeiten.
Die Grünen Seiten enthalten, dargestellt in WSDL, Informationen über Webservices,
die ein Unternehmen anbietet.
Webservices – Entwicklungswerkzeuge
Als Grundlage für die Entwicklung und den Betrieb von Webservices kann sowohl Java
2 Enterprise Edition der Java-Welt als auch .Net-Software von Microsoft dienen.
SOA resp. die Webservices - Idee wird von allen grossen InfrastruktursoftwareAnbietern mitgetragen. IBM und Microsoft sind vorangegangen und mittlerweile
arbeiten auch BEA Systems, Oracle, Sun etc. an den neuen Technologien.
In der IBM-Welt sind folgende Produkte für die Erstellung von Webservices –
Applikationen aktuell:
- IBM WebSphere Studio Application Developer Version 5 oder IBM WebSphere
Studio Site Developer Version 5 als Anwendungsentwicklungsplattform. Diese
beiden Produkte beinhalten sämtliche Funktionen für die Erstellung und den
Unterhalt von Applikationen auf der Basis von Webservices. Das Toolset
beinhaltet für das Erstellen von WSDL Schnittstellen für Java Anwendungen und
für die Zugriffe auf DB2 Daten sowie XML Dokumente. Ein UDDI Browser ist
ebenfalls in den Produkten enthalten. Die Tools beinhalten auch die Werkzeuge
um DB2-UDF’s und Stored Procedures zu erstellen und zu testen.
- IBM WebSphere Application Server als Applikationsserver-Plattform für
Webservices.
-
DB2 UDB for LUW Version 8 resp. DB2 UDB for z/OS Version 7 als
Datenbankserver.
Der Vorteil der Verwendung oben erwähnter Produkte liegt darin, dass diese Versionen
Funktionen enthalten, die teilweise in den Vorversionen nicht oder nur teilweise
integriert gewesen sind.
DB2 als Webservice Provider und als Webservice Consumer
DB2 spielt in einer Applikations-Architektur mit Webservices zwei mögliche Rollen:
- als Webservices provider oder
- als Webservices consumer.
DB2 UDB for LUW Version 8 enthält wesentliche Verbesserungen für den Bereich der
DB2 Webservices Infrastruktur. Dem Webservices–Anwendungsentwickler stehen in
dieser Version eine ganze Reihe von neuen DB2 User Defined Functions zur
Verfügung.
DB2 als Webservices provider
SOAP
- XML/HTTP
DB2
- JDBC/SQL
Webbrowser –
Client
Apache/SOAP
-WebSphere AS
- DADx/WORF
DB2
- Stored Procs
- SQL
Der Zugriff auf DB2 Daten aus Webservices - Applikationen wird durch das WSDL
Interface sichergestellt. Die WSDL Interfaces für die Zugriffe auf DB2 Daten können
mit Hilfe der Funktionalität von WORF – Webservices Object Runtime Framework
erstellt werden. WORF ist auch bekannt unter der Bezeichnung DADx – Document
Access Definition Extension. Einfach ausgedrückt heisst dies, dass Zugriffe auf DB2
Daten mittels XML Dokumenten beschrieben werden.
Mit Hilfe solcher XML Dokumente können
- DB2 Stored Procedures
- DDL Statements
- SQL Statements (Select, Update, etc. )
ausgeführt werden.
Das DB2 Webservices Umfeld von WORF liefert dem Anwendungsentwickler die
Infrastruktur und die Werkzeuge um WSDL Interfaces für die benötigten DB2
Operationen zu generieren. WORF generiert automatisch zusätzlich einen
‚Webservice test client’ als Web-Applikation auf der Basis von Java Servlets und JSP’s.
Der Test client kann entweder HTTP- oder SOAP-Anbindung verwenden. Die HTTPAnbindung kann verwendet werden, um einen Webservice direkt mit einem
Webbrowser zu testen. Die SOAP-Anbindung wird verwendet, wenn Webservices
Applikationen in einer verteilten Anwendung integriert werden müssen. Die vom
Webservice zurückgegebenen Daten stehen entweder in der Form von XML
Dokumenten oder als Java Objekte zur Verfügung.
Erstellte DADx (WORF) Dateien und das dazugehörende Laufzeitumfeld müssen nun
in ein Applikations Server Umfeld gebracht werden. Heute stehen verschiedene solche
Laufzeitumfelder zur Verfügung z.B.:
- IBM WebSphere Application Server
- Apache/Jakarta
- Tomcat
- etc.
Nachdem die Webservices erfolgreich auf dem Applikations-Server installiert sind,
kann der Webservice aus verteilten Anwendungen genutzt werden.
DB2 als Webservices consumer
DB2
- JDBC/SQL
SOAP
- XML/HTTP
DB2 - Client
DB2
- Stored Procs
- UDFs
- Data
Internet
DB2 kann ebenfalls als Webservices - Consumer auftreten. DB2 als Webservices Consumer tritt für irgendeinen Webservices - Provider als Datenlieferant auf. Die
Integration von SQL Funktionalität in Webservices erhöht die Effizienz bei der
Anwendungsentwicklung ganz wesentlich. Durch neue Plug-Ins im ‚WebSphere Studio
Version 5’ wird die Einbindung von DB2 stark vereinfacht.
Der Zugriff auf von Webservices benötigten Daten kann direkt über ‚DB2 SQL
Statements’ implementiert werden. Eine Applikations Server Umgebung ist dabei nicht
notwendig.
Webservices – Integration von Nicht-DB2 Daten
Integration von nicht-DB2 Datenquellen mit dem DB2 Information Integrator
Der DB2 Information Integrator kann auf sehr einfache Weise in eine Webservices Abwendungs-Architektur eingebunden werden. Der DB2 Information Integrator
beinhaltet einerseits die Funktionalität von DB2 UDB for LUW Version 8 und
andererseits erlaubt er die transparente Einbindung von Nicht DB2 Datenquelle wie
z.B. Oracle, Sybase, SQL Server etc.. Sämtliche Tools und Funktionen, die für die
Erstellung, den Betrieb und den Unterhalt einer Webservices Anwendung notwendig
sind, funktionieren ebenfalls für den DB2 Information Integrator als Datenquelle.
Integration in eine Messaging – Infrastruktur
Seit DB2 UDB Version 7 (LUW und z/OS) enthält DB2 UDF’s (User Defined
Functions), die einer DB2 Anwendung direkt den Zugang auf eine IBM WebSphere
MQ – Infrastruktur geben. Die in den UDF’s implementierten Funktionen erlauben es
u.a. direkt aus einem SQL Statement auf eine Queue zu schreiben resp. von einer
Queue zu lesen.
Fazit
Die Integration von Webservices Technologie und DB2 Datenbanken stellt dem
Architekten und Entwickler von verteilten Anwendungen neue Möglichkeiten zur
Verfügung.
DB2 kann als Webservices provider und als Webservices consumer eingesetzt werden.
Die Erstellung der gesamten Zugriffslogik Datenbanken kann mit
Entwicklungswerkzeugen schnell und, wenn gewünscht, geführt erledigt werden.
Die Integration von Nicht-DB2 Datenquellen in eine lose gekoppelte, verteilte
Applikations-Architektur kann über Webservices durch die Verwendung des DB2
Information Integrator und/oder DB2 UDF’s ebenfalls auf sehr einfache Art erreicht
werden.
Die in diesem Technologiebereich engagierten Softwarehersteller sind sich bewusst,
dass in Zukunft vor allem noch zusätzliche Funktionalitäten aus dem Bereich Sicherheit
und Transaktionsverarbeitung in die heute verfügbaren Produkte integriert werden
müssen.
Die Webservices Technologie hat sich von der reinen Vision in eine Wirklichkeit von
heute verwandelt. Die Technologie wird sich in naher Zukunft unweigerlich weiter
entwickeln.
Trivadis AG
Andreas Börlin
Europa-Strasse 5
8152 Glattbrugg
Mail:
[email protected]
Tel:
+41 1 808 70 20
Fax:
+41 1 808 70 21
Internet: http://www.trivadis.com
Herunterladen