PL/SQL-Web-Services (Teil I)

Ähnliche Dokumente
PL/SQL Web-Services mit Oracle 11g

Die Nutzung von Webservices in der Oracle Datenbank. 11 März 2010

DOAG SIG Day. E-Business Suite und SOA: Was ist heute schon möglich? Thomas Karle PROMATIS software GmbH. Frankfurt 26. April 2007

Grundlagen der Web-Entwicklung INF3172

20. DOAG-Konferenz. Wohlstrukturierte Prozesse auf SOA-Basis. mit der Oracle E-Business Suite. Thomas Karle PROMATIS software GmbH

<Insert Picture Here> Einführung in SOA

Evgenia Rosa ORACLE Deutschland GmbH BU Application Server

Unternehmensdokumente mit dem XML Publisher erzeugen

Autor: Peter Seemann Seminar: Softwarearchitekturen Betreuer: Benedikt Meurer

FWP Aktuelle Technologien zur Entwicklung verteilter Java-Anwendungen. Sommersemester Michael Theis, Lehrbeauftragter 1

XML Publisher die universelle Lösung für Geschäftsdokumente

Softwareentwicklung in verteilten Umgebungen Middleware Case Studies (Coulouris et al., Kapitel 5 und 19) Dieter Schmalstieg Jens Grubert

SOAP Simple Object Access Protocol. Dr. Reinhard Riedl Universität Zürich/Universität Rostock

Web Services. Web Services in the News. Vision: Web of Services. Learning for Results. DECUS Symposium 2002, Vortrag 1K07,

Verlagerung von Java- Anwendungen in die Datenbank (Teil II)

Web Services Die Definition von Web Services in der Theorie und FNT-Command als Web Service in der Praxis

Etablierung serviceorientierter Architekturen mit Web Services

Web Services und SOA

Wiederholung: Beginn

Projektgruppe. Thomas Kühne. Komponentenbasiertes Software Engineering mit OSGi

100% PL/SQL Web Content Management

Microsoft.NET und SunONE

Seminar Internet Dienste. Webservices

2 Anlegen und Konfigurieren von Datenbanken 35

Enterprise Application Integration Erfahrungen aus der Praxis

Java, XML und Oracle10g What's new?

Workflow, Business Process Management, 4.Teil

<Insert Picture Here> BI Publisher Berichte in eigene Anwendungen integrieren

Enterprise Applikation Integration und Service-orientierte Architekturen. 09 Simple Object Access Protocol (SOAP)

Webservices. 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung. Hauptseminar Internet Dienste

Web Services Grundlagen und praktisches Beispiel

Kapitel WT:VI (Fortsetzung)

Prozedurale Datenbank- Anwendungsprogrammierung

Inhaltsverzeichnis. Enterprise Java im Überblick. Technologien der Java2 Enterprise Edition

REST Services in APEX Anwendungen nutzen

Eine Untersuchung der Funktionen des Apache Wicket Webframeworks

Webservices. Entwicklercamp Denny Sternberg

Organisation und Systeme SOA: Erstellung von Templates für WebService Consumer und Provider in Java

Microsoft.NET XML-Webdienste Schritt für Schritt

Praktikum aus Softwareentwicklung 2. Web Services. Java Praktikum SS 2010

SOA. Prof. Dr. Eduard Heindl Hochschule Furtwangen Wirtschaftsinformatik

<Insert Picture Here> Oracle Forms 11g. Gert Schüßler Leitender Systemberater Oracle Deutschland GmbH

Web Services. Standards und Realisierung in Java

Zukunft der Oracle Applikationsentwicklung: BC4J & XML

VISkompakt V2. Internals. Referent. 1M05 Internals von VISkompakt 15:00 Uhr 16:00 Uhr. Entwicklungsleiter von VISkompakt. PDV-Systeme Erfurt

APEX Office Print - Einfach Druck machen! Daniel Hochleitner Freelance APEX Developer, FOEX GmbH

Gliederung. 1. Einleitung (1) 1. Einleitung (3) 1. Einleitung (2)

Web Services and Semantic Web

Java und XML 2. Java und XML

WebForms ohne Oracle Application Server

Serviceorientierte Architektur / Web Service

Themen. Web Services und SOA. Stefan Szalowski Daten- und Online-Kommunikation Web Services

Lernziele. ohne Browser. Beispiel: Beispiel: ohne Browser. Definition

Inhalt I. Blick in die Geschichte. .NET für kleine und grosse Applikationen

Ein Reporting Service mit APEX und BI Publisher

Forms auf Tablets. Vision oder Realität?

20. Deutsche Anwenderkonferenz 2007 Software Entwicklung 2.0

Web-Applications mit SOAP und RSS. Vortrag 8, Jonas Mitschang,

Webservices in der IBM Welt eine neue Herausforderung für DB2 Spezialisten

Reporting mit Application Express jenseits von BI Publisher

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

Baut man eine SOA in der Datenbank?

Oracle BI Publisher Webservice API in Action

5.2 Workshop EJB. Entwicklung von EJB-Anwendungen. Das JOnAS-System

Wissenschaftliche Vertiefung Web Services. Esslingen, 22. Januar 2016 Simon Schneider

Methoden komfortabler Datenbankanbindung für Mobile Devices

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Maintenance von Formsmodulen mit dem Entwicklungswerkzeug UniForms Überblick über UniForms Live Demo

Rapid Java wie mit Forms

WildFly Application Server Administration

Web- und Gridservices zur Überwindung von Heterogenität. Bearbeiter: Lei Xia

Automatisierung von Schritten in Geschäftsprozessen als Einstieg in SOA

Ora Education GmbH. Lehrgang: Oracle Application Server 10g R2: Administration I

Summer School. Offene Gebäudeautomation. WebServices, Application Server und weitere Konzepte EMR. aus: Distributed Systems, A. Schill, TU Dresden

Janeva:.NET meets J2EE

Software Engineering II (IB) Serviceorientierte Architektur

Graphen in Apex von Thomas Hernando.

J2EE mit Eclipse 3 und JBoss

Microsoft.NET. InfoPoint 8. Juni 2005 Stefan Bühler

SOAP Integrationstechnologie für verteilte Middlewarearchitekturen?

Web-Services aus der Datenbank

Architektur von REST basierten Webservices

Inhalt. Einführung RFC-Funktionsbausteine in ABAP Funktionsbausteine zum Lesen Aufruf per srfc 108

OO Programmiersprache vs relationales Model. DBIS/Dr. Karsten Tolle

PHP- Umgang mit Datenbanken (1)

Oracle9i Reports. Rainer Willems. Page 1. Leitender Systemberater Server Technology Competence Center Frankfurt Oracle Deutschland GmbH

Annegret Warnecke Senior Systemberaterin

.NET-Objekte einfach speichern Michael Braam, Senior Sales Engineer InterSystems GmbH

Immer in Bewegung bleiben Oracle Managed File Transfer

JUG Saxony Day, Es muss nicht immer gleich Docker sein IT Automation, die zu einem passt

Spezifikation DPD und primetime WebService Routenberechnung Gültig für Paketversender in Österreich. Version 3.3.0

Erläuterungen zu Darstellung des DLQ-Datenportals

Enterprise JavaBeans Überblick

IUG DRESDEN ERSTELLUNG VON ROBUSTEN NATURAL SERVICES Software AG. All rights reserved. For internal use only

Sun ONE. Sun Open Net Environment. Architektur für Web-Services on Demand. Dr. Rainer Eschrich

E-Services mit der Web-Service-Architektur

Objektorientierte PL/SQL-Entwicklung Ein Erfahrungsbericht aus Sicht von JAVA-Entwicklern

Oracle Forms und APEX

Transkript:

Best Practise Integrationstools PL/SQL-Web-Services (Teil I) Autor: Markus Fiegler, ORDIX AG, Paderborn Web-Services spielen in der heutigen Software- Architektur eine immer wichtigere Rolle. Ihr großer Vorteil ist eine vollständige Unabhängigkeit von Plattform und Programmiersprache. Greifen Web-Services auf bestehende PL/SQL-Programme zu, so spricht man von PL/SQL-Web-Services. In diesem Beitrag wird anhand von Beispielen aufgezeigt, wie existierende PL/SQL-Programme als Web-Services zur Verfügung gestellt werden. Web-Services sind Internet-Dienste, die über das Web angefordert und im Web ausgeführt werden können. Im Gegensatz zu Web-Anwendungen mit einem HTML- Formular ist der Zugriff auf Web-Services ohne Browser möglich. Dadurch ist eine automatische Übertragung von Informationen zwischen Anwendungen gewährleistet. Service-orientierte Architektur Web-Services orientieren sich an der Service-orientierten Architektur (SOA) und vereinen daher verteilte und objektorientierte Programmierstandards. Mit ihrer Hilfe können betriebswirtschaftliche Anwendungen im Internet erstellt werden. Die Zerlegung eines Software-Systems in Services erleichtert die mehrfache Verwendung einer einmal implementierten Geschäftsfunktionalität (Business-Logik). Damit können die Wiederverwendbarkeit eines Software- Systems verbessert sowie die Kosten und die Entwick- 66

54_73_213649_DOAG 01.02.2006 14:25 Uhr Seite 67 Web Services Entwicklung lungszeit minimiert werden. Durch die Kapselung der anwendungsspezifischen Geschäftsobjekt-Sichten in Services findet außerdem eine Entkopplung der Software-Systeme statt. Dadurch werden Abhängigkeiten reduziert. Im Umfeld von Web-Services lassen sich folgende Teilnehmer/Instanzen identifizieren: Konsument Anbieter Verzeichnis Der Anbieter veröffentlicht die Beschreibungen seiner Dienste in einem Verzeichnis. Ein Konsument durchsucht das Verzeichnis des Anbieters und wählt einen gewünschten Dienst aus. Danach findet eine dynamische Anbindung des Konsumenten an den Anbieter statt. Schließlich greift der Konsument auf die Methoden des Anbieters zu (siehe Abbildung 1). Grundlage für Web-Services sind folgende Standards: Universal Description, Discovery and Integration (UDDI) ist ein Verzeichnisdienst zur Registrierung von Web-Services. Ein Verzeichnisdienst ermöglicht das dynamische Finden des Web-Services durch den Konsumenten. Abbildung 1: Funktionsweise von Web-Services. Web Services Description Language (WSDL) definiert einen Plattform-, Programmiersprachen- und Protokollunabhängigen XML-Standard zur Beschreibung von Web-Services, die einen Austausch von Nachrichten ermöglichen. Simple Object Access Protocol (SOAP) ist ein Protokoll, mit dessen Hilfe Daten zwischen Systemen ausgetauscht und Remote Procedure Calls durchgeführt werden können. 67

Entwicklung Web-Services Integration und Datenaustausch Unternehmenslösungen werden oft mit verschiedenen Programmiersprachen wie Java, Visual Basic (VB) oder C++ entwickelt. Meistens ist eine Integration der einzelnen Systeme und ein Datenaustausch zwischen den Systemen notwendig, wobei ein sehr hoher Aufwand erforderlich ist. Abhilfe verschaffen hier die Web-Services. Mit deren Hilfe können Clients und Server unabhängig von der Plattform und der Programmiersprache über Internet-Standardprotokolle wie HTTP, HTTPS, SMTP oder FTP kommunizieren. Abbildung 2: Datenbank als Web-Services Provider (Web-Services Call-in). Die entwickelten Anwendungen müssen lediglich einigen Standards entsprechen, damit diese als Web-Services zur Verfügung gestellt und genutzt werden können. Durch die Nutzung der Internet-Standardprotokolle treten außerdem nur selten Probleme mit Firewalls auf, da unter anderem das HTTP-Standardprotokoll eingesetzt werden kann. Wiederverwendung von vorhandenen PL/SQL-Programmen Mit Oracle10g ist es möglich, die Funktionalität für Web- Services mit der Programmiersprache PL/SQL zu erstellen. Damit können vorhandene PL/SQL-Programme mit der neuen Web-Services-Architektur wiederverwendet werden. CREATE OR REPLACE PACKAGE pck_seminar IS FUNCTION hole_preis(p_name IN VARCHAR2) RETURN NUMBER; END pck_seminar; / CREATE OR REPLACE PACKAGE BODY pck_seminar IS FUNCTION hole_preis(p_name IN VARCHAR2) RETURN NUMBER IS v_preis seminar.preis%ty- PE; CURSOR c_seminar IS SELECT preis FROM seminar WHERE name = p_name; BEGIN OPEN c_seminar; FETCH c_seminar INTO v_preis; CLOSE c_seminar; RETURN v_preis; END hole_preis; END pck_seminar; / Abbildung 3: PL/SQL-Package pck_seminar. <data-source class="com.evermind.sql.drivermanagerdatasource" name="oracleds" location="jdbc/oraclecoreds" xa-location="jdbc/xa/oraclexads" ejb-location="jdbc/oracleds" connection-driver="oracle.jdbc.driver.oracledriver" username="mf" password="mf" url="jdbc:oracle:thin:@localhost:1521:orcl10" inactivity-timeout="30" /> Abbildung 4: Ein Auszug aus der Datei data-sources.xml zur Einrichtung von Datenquellen in der OC4J-Umgebung. 68

Web Services Entwicklung Web-Services können unter anderem auf PL/SQL-Packages, Stored Procedures, Stored Functions, Triggers, SQL-Abfragen und Java-Stored- Procedures zugreifen (siehe Abbildung 2). Die notwendigen Schritte, um beispielsweise ein PL/SQL- Package (siehe Abbildung 3) als Web-Service zu veröffentlichen, werden im Folgenden beschrieben. Abbildung 5: Mit JPublisher lassen sich Java-Wrapper-Klassen für PL/SQL generieren. Datenquellen in OC4J einrichten Um ein PL/SQL-Package als Web-Service zur Verfügung zu stellen, muss zunächst im OC4J eine Datenquelle eingerichtet werden. Eine Datenquelle im OC4J kann in der Datei data-sources.xml im Verzeichnis ORACLE_HO- ME\j2ee\home\config eingerichtet werden. Die Abbildung 4 stellt einen Auszug aus der Datei data-sources.xml dar. Java-Wrapper-Klassen generieren Im nächsten Schritt werden für die Prozeduren des PL/SQL- Packages die so genannten Wrapper-Klassen benötigt. Diese Wrapper-Klassen werden mithilfe des Programms JPublisher in der Programmiersprache Java generiert (siehe Abbildung 5). Der Vorteil der Wrapper-Klassen ist, dass die vorhandenen PL/SQL-Prozeduren nicht in einer anderen Programmiersprache codiert werden müssen und so in PL/SQL wiederverwendet werden können. Um die Wiederverwendbarkeit der PL/SQL-Prozeduren in der Serviceorientierten Architektur zu ermöglichen, verfügen die Wrapper-Klassen über so genannte Wrapper-Methoden, die zum Aufrufen der eigentlichen PL/SQL-Prozeduren dienen. WebServicesAssembler Zur Erstellung der Wrapper-Klassen mithilfe des Programms JPublisher kann das Programm WebServicesAssembler verwendet werden. Das Programm WebServices- Assembler ruft implizit das Programm JPublisher auf und fasst die mit JPublisher erzeugten Wrapper-Klassen in einem EAR-Archiv zusammen. Bei dem EAR-Archiv handelt es sich um ein spezialisiertes Archiv, mit dem J2EE-konforme Unternehmensanwendungen für das Deployment auf einen Application Server verpackt werden. 69

Entwicklung Web-Services <web-service> <display-name>plsql Web Service</display-name> <description>plsql Beispiel ORDIX Seminarpreise</description> <destination-path>./seminarpreiseservice.ear</destination-path> <temporary-directory>/tmp4</temporary-directory> <context>/seminarpreisews</context> <stateless-stored-procedure-java-service> <jar-generation> <schema>mf/mf</schema> <db-url>jdbc:oracle:thin:@localhost:1521:orcl10</db-url> <db-pkg-name>pck_seminar</db-pkg-name> </jar-generation> <uri>/seminarpreiseservice</uri> <database-jndi-name>jdbc/oracleds</database-jndi-name> </stateless-stored-procedure-java-service> <wsdl-gen> <wsdl-dir>wsdl</wsdl-dir> <option name="force">true</option> <option name="httpserverurl">http://localhost:8891</option> </wsdl-gen> <proxy-gen> <proxy-dir>proxy</proxy-dir> <option name="include-source">true</option> </proxy-gen> </web-service> Abbildung 6: Auszug aus einer Konfigurationsdatei config.xml für das Programm WebServicesAssembler. java -jar %ORACLE_HOME%\webservices\lib\WebServicesAssembler.jar -config config.xml Abbildung 7: Aufruf von WebServicesAssembler. java -jar %ORACLE_HOME%\j2ee\home\admin.jar ormi://localhost admin welcome -deploy -file./seminarpreiseservice.ear -deploymentname seminarpreiseservice java -jar %ORACLE_HOME%\j2ee\home\admin.jar ormi://localhost admin welcome -bindwebapp seminarpreiseservice seminarpreiseservice_web default-web-site /seminarpreisews Abbildung 8: Aufruf von admin.jar, um in einer OC4J-Umgebung einen Web-Service bereitzustellen. Syntax => http://host:port/context/uri Beispiel => http://localhost:8891/seminarpreisews/seminarpreiseservice Abbildung 9: URL-Syntax zum Testen von Web-Services. 70

54_73_213649_DOAG 01.02.2006 14:29 Uhr Seite 71 Web Services Entwicklung Das EAR-Archiv beinhaltet neben den Wrapper-Klassen noch weitere Dateien wie application.xml oder ein WSDLDokument. Die Datei application.xml gibt an, über welche Komponenten das EAR-Archiv verfügt. Das WSDL-Dokument enthält dagegen unter anderem Informationen über die Parameter, Datentypen und Rückgabewerte der Methode, die als Web-Service aufgerufen werden können. Aufruf von WebServicesAssembler Für den Aufruf von WebServicesAssembler wird eine XMLKonfigurationsdatei benötigt. Diese enthält Informationen über den zu veröffentlichenden PL/SQL-Web-Service. In dieser Datei werden unter anderem die Datenbank-Verbindungsinformationen und der Prozedurname des PL/SQLPackages hinterlegt. Die Abbildung 6 stellt eine XMLBeispielkonfigurationsdatei dar, und Abbildung 7 zeigt den Aufruf von WebServicesAssembler. Web-Services auf den Oracle Application Server übertragen Das mithilfe des Programms WebServicesAssembler erzeugte EAR-Archiv wird anschließend auf dem Application Server bereitgestellt. Ein Web-Service kann auf einen Application Server unter anderem mit den Programmen Enterprise Manager oder DCMCTL übertragen werden. In einer Standalone OC4J-Umgebung kann zusätzlich noch das Programm admin.jar verwendet werden (siehe Abbildung 8). Bereitgestellte Web-Services testen Zur Überprüfung des bereitgestellten Web-Services kann die in der Abbildung 9 dargestellte URL-Syntax verwendet Abbildung 10: Web-Services Testseite des pck_seminar Services. werden. Durch die Eingabe der URL in den Web-Browser erscheint eine Testseite mit allen Operationen des Web-Services (siehe Abbildung 10). Diese Operationen können einzeln aufgerufen und getestet werden (siehe Abbildung 11). Das Ergebnis wird in Form einer Simple Object Access Protocol (SOAP) Response geliefert (siehe Abbildung 12). Im nächsten Teil werden wir erläutern, wie Web-Services mit der Datenbank-Programmiersprache PL/SQL aufgerufen werden können. 71

Entwicklung Web-Services Glossar AS DCMCTL Application Server. AS sind Middleware-Komponenten, in denen die Geschäftslogik implementiert wird. DCMCTL ist ein Werkzeug zur Administration von Oracle Application Servern. Mit diesem Werkzeug ist unter anderem eine Automatisierung von administrativen Aufgaben wie dem Starten und Beenden eines Application Servers oder auch das Deployment von Anwendungen möglich. Deployment Installation einer Application Server-Anwendung auf einem AS. EAR Firewall OC4J SOAP UDDI WSDL XML Enterprise Application Archive. EAR ist ein spezialisiertes Archiv, mit dem J2EE-konforme Unternehmensanwendungen für das Deployment auf einen AS verpackt werden. Eine Firewall ist eine Software oder auch Hardwarelösung, die ein Computernetzwerk oder einen einzelnen Computer vor unerwünschten Zugriffen aus dem Internet schützen soll. Oracle Application Server Containers for J2EE. OC4J ist die Java-Komponente eines Application Servers, in der Java-Anwendungen ausgeführt werden. Simple Object Access Protocol. SOAP ist ein Protokoll, mit dessen Hilfe Daten zwischen Systemen ausgetauscht und Remote Procedure Calls durchgeführt werden können. Universal Description, Discovery and Integration. UDDI ist ein Verzeichnisdienst zur Registrierung von Web-Services, der das dynamische Finden des Web-Services durch den Konsumenten ermöglicht. Web Services Description Language. WSDL definiert einen Plattform-, Programmiersprachen- und Protokoll-unabhängigen XML-Standard zur Beschreibung von Web-Services, die einen Austausch von Nachrichten ermöglichen. Extensible Markup Language. XML ist eine so genannte META-Sprache zur Beschreibung von Dokumenten. Ein Vorteil von XML ist der vereinfachte Austausch von Daten, da XML-Formate in einer strengen Syntax definiert werden können und so die Implementierung von zuverlässigen Schnittstellen erlauben. 72

Web-Services Entwicklung Um die in diesem Beitrag aufgeführten Beispiele zu testen, muss der Oracle Application Server Containers for J2EE 10g (OC4J) installiert sein. Alternativ kann auch der von Oracle zur Verfügung gestellte OC4J Standalone Distributions verwendet werden (s. http://technet.oracle.com). Dieser zeichnet sich durch eine einfache und mit wenig Aufwand verbundene Installation aus. Außerdem wird eine Oracle 10g Datenbank benötigt. Abbildung 11: Web-Services Testseite zum Testen der holepreis Operation. Kontakt: Markus Fiegler info@ordix.de Abbildung 12: Beispiel einer SOAP-Response. 73