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