PROC SOAP, PROC HTTP. Webservices und SAS. Agenda. I. Kurze Einführung zu Webservices II. Webservices und SAS 08.03.2012



Ähnliche Dokumente
PROC SOAP, PROC HTTP und der ganze REST Webservices und SAS

Wiederholung: Beginn

VVA Webservice Online Lieferbarkeits-Abfrage

Workflow, Business Process Management, 4.Teil

Anleitung über den Umgang mit Schildern

Verteilte Systeme: Übung 4

RESTful Web. Representational State Transfer

Version Deutsch In diesem HOWTO wird beschrieben wie Sie Ihren Gästen die Anmeldung über eine SMS ermöglichen.

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

S TAND N OVEMBE R 2012 HANDBUCH DUDLE.ELK-WUE.DE T E R M I N A B S P R A C H E N I N D E R L A N D E S K I R C H E

Schöne neue Welt. So können Sie fehlende SAS-Funktionalitäten mit PROC FCMP nachrüsten. SAS Treff 13. Juni 2013

Wie richten Sie Ihr Web Paket bei Netpage24 ein

Leichte-Sprache-Bilder

Installation der SAS Foundation Software auf Windows

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

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

Primzahlen und RSA-Verschlüsselung

arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Sich einen eigenen Blog anzulegen, ist gar nicht so schwer. Es gibt verschiedene Anbieter. ist einer davon.

Success! Bestellausgabe

Lizenzen auschecken. Was ist zu tun?

Eine Anwendung mit InstantRails 1.7

icloud nicht neu, aber doch irgendwie anders

HMS. Statistiken mit SAS ins Internet. HMS Analytical Software GmbH - Johannes Lang

Benutzerhandbuch. Leitfaden zur Benutzung der Anwendung für sicheren Dateitransfer.

Implementierung von Web Services: Teil I: Einleitung / SOAP

Professionelle Seminare im Bereich MS-Office

PHPNuke Quick & Dirty

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Umstieg auf Microsoft Exchange in der Fakultät 02

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar ZID Dezentrale Systeme

ACCOUNTINFO 1.01 VERWENDEN DER ACCOUNTINFO-SCHNITTSTELLE ABFARGE VON ACCOUNT-INFORMATIONEN IN ECHTZEIT 02. MÄRZ 2010

Manuelle Konfiguration einer VPN Verbindung. mit Microsoft Windows 7

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Alle gehören dazu. Vorwort

Verwenden von OnlineUebungen.ch nichts einfacher als das!

SAS Metadatenmanagement Reporting und Analyse

THEMA: "SAS STORED PROCESSES - SCHNELL GEZAUBERT" HELENE SCHMITZ

Den Durchblick haben. VOLKSBANK BAD MÜNDER eg. Online aber sicher: Unsere Produkt- und Sicherheitshotline hilft und informiert

Proxy. Krishna Tateneni Übersetzer: Stefan Winter

Guide DynDNS und Portforwarding

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

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

Allgemeiner Leitfaden zum Einfügen suchmaschinenoptimierter Texte

Kommunikationsübersicht XIMA FORMCYCLE Inhaltsverzeichnis

Version smarter mobile(zu finden unter Einstellungen, Siehe Bild) : Gerät/Typ(z.B. Panasonic Toughbook, Ipad Air, Handy Samsung S1):

1. Konfiguration Outlook 2007 MAPI (mit Autodiscover).

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Datenbank-Verschlüsselung mit DbDefence und Webanwendungen.

Mit dem Tool Stundenverwaltung von Hanno Kniebel erhalten Sie die Möglichkeit zur effizienten Verwaltung von Montagezeiten Ihrer Mitarbeiter.

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Statuten in leichter Sprache

Step by Step Webserver unter Windows Server von Christian Bartl

AutoTexte und AutoKorrektur unter Outlook verwenden

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Fehler und Probleme bei Auswahl und Installation eines Dokumentenmanagement Systems

IINFO Storyboard

Content Management System mit INTREXX 2002.

Eine eigene Seite auf Facebook-Fanseiten einbinden und mit einem Tab verbinden.

Artikel Schnittstelle über CSV

Outlook-Daten komplett sichern

Proxyeinstellungen für Agenda-Anwendungen

Einstiegshilfe für das Übersenden elektronischer Teilnahmebestätigungen an ÄrztInnen

Anforderungen an die HIS

Reporting Services und SharePoint 2010 Teil 1

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

TECHNISCHE INFORMATION LESSOR LOHN/GEHALT BEITRAGSNACHWEIS-AUSGLEICH BUCH.-BLATT MICROSOFT DYNAMICS NAV

Verwendung des Terminalservers der MUG

Geld Verdienen im Internet leicht gemacht

Was meinen die Leute eigentlich mit: Grexit?

ANYWHERE Zugriff von externen Arbeitsplätzen

Diese Anleitung enthält Anweisungen, die nur durch erfahrene Anwender durchgeführt werden sollten!

Die Online-Meetings bei den Anonymen Alkoholikern. zum Thema. Online - Meetings. Eine neue Form der Selbsthilfe?

Loggen Sie sich in Ihrem teamspace Team ein, wechseln Sie bitte zur Verwaltung und klicken Sie dort auf den Punkt Synchronisation.

Hilfedatei der Oden$-Börse Stand Juni 2014

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

optivo listexpress Die schlagkräftige Dienstleistung für absatzfördernde -Kampagnen

WORKSHOP für das Programm XnView

SEPA-Anleitung zum Release 3.09

Tutorial -

Informationen zum neuen Studmail häufige Fragen

Kleines Handbuch zur Fotogalerie der Pixel AG

Outlook Erstellen einer aus einer HTML - Vorlage INHALT

Daten-Synchronisation zwischen Mozilla Thunderbird (Lightning) / Mozilla Sunbird und dem ZDV Webmailer

Java und XML 2. Java und XML

3. Stored Procedures und PL/SQL

infach Geld FBV Ihr Weg zum finanzellen Erfolg Florian Mock

Lokale Installation von DotNetNuke 4 ohne IIS

Zustandsgebundene Webservices

RT Request Tracker. Benutzerhandbuch V2.0. Inhalte

Fotostammtisch-Schaumburg

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten

Schulung Marketing Engine Thema : Einrichtung der App

BEO-Sanktionsprüfung Eine Einführung zum Thema Sanktionsprüfung und eine Übersicht zur BEO-Lösung.

! " # $ " % & Nicki Wruck worldwidewruck

Anleitung zur Daten zur Datensicherung und Datenrücksicherung. Datensicherung

Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert

Transkript:

PROC SOAP, PROC HTTP und der ganze REST Webservices und SAS KSFE 08. März 2012 Agenda I. Kurze Einführung zu Webservices II. Webservices und SAS 1. Webservices mit SAS konsumieren 2. Webservices mit SAS anbieten 2 www.analytical-software.de 1

ist IT Dienstleister für Business Intelligence und Datenanalyse gibt es seit über 20 Jahren ist einer von vier in Deutschland hat 45 Mitarbeiter, davon 20 von SAS zertifizierte IT Spezialisten und sieben Mitglieder von bietet umfassende Services für SAS Software an, von der Beratung über die Programmierung bis hin zu Schulung und Support ist Mitglied im KSFE Verein 3 Kurze Einführung zu Webservices 4 www.analytical-software.de 2

Webservice: Mehrere Versuche einer Definition "There are many things that might be called Web services in the world at large" (W3C) "eine Software Anwendung, die mit einem Uniform Resource Identifier (URI) eindeutig identifizierbar ist und deren Schnittstelle als XML Artefakt definiert, beschrieben und gefunden werden kann" (Wikipedia) "a software system designed to support interoperable machine to machine interaction over a network" (W3C) "Da stellen wir uns mal ganz dumm und sagen: Ein Webservice, das ist ein großer, runder, schwarzer Raum also eine Blackbox, die hat zwei Löcher, also Schnittstellen. In das eine geben wir die Anfragen rein, und aus dem anderen das kommt später kommen die Ergebnisse wieder raus. Es steht alles bei Wikipedia was ich sage, nur nicht so schön!" (frei nach der Feuerzangenbowle) 5 Webservices: Das Grundprinzip Sendet Anfrage ( Request ) Verarbeitet Anfrage Client ( Konsument ) Empfängt Ergebnis (und verarbeitet es weiter) Internet / Intranet Transportprotokoll: HTTP + SOAP REST Server ( Anbieter ) Erzeugt Ergebnis ( Response ) 6 www.analytical-software.de 3

Request unter der Lupe Beispiel: Webservice geonames.org: Ermittle den Ort, der möglichst nahe an einer bestimmten geographischen Position (42 N, 42 E) liegt.* HTTP- Methode URL SOAP- Envelope und optionaler Header SOAP- Message (XML) SOAP POST http://api.geonames.org/ findnearbyplacename <soapenv:envelope> <soapenv:header /> <soapenv:body> <Coordinates> <Lat>42</Lat> <Lng>42</Lng> <Username>Demo </Username> </Coordinates> </soapenv:body> </soapenv:envelope> REST GET http://api.geonames.org/ findnearbyplacename?username=demo&lat=42&lng= 42 Parameter HTTP- Methode * Hinweis: geonames.org bietet diesen Service nur auf Basis von REST an. Das Beispiel für SOAP ist eine fiktive Übertragung dieses Webservices in ein SOAP-Szenario. URL 7 Response unter der Lupe Beispiel: Webservice geonames.org: Ermittle den Ort, der möglichst nahe an einer bestimmten geographischen Position (42 N, 42 E) liegt.* HTTP- Header SOAP- Envelope und optionaler Header SOAP- Response (XML) SOAP Content-Type: text/xml <soapenv:envelope> <soapenv:header /> <soapenv:body> <geonames> <geoname> <name> Silauri </name> <countryname> Georgia </countryname> </geoname> </geonames> </soapenv:body> </soapenv:envelope> REST Content-Type: text/json oder Content-Type: text/xml { "geonames" : [ "geoname" : { "name" : "Silauri", "countryname" : "Georgia" } ] } * Hinweis: geonames.org bietet diesen Service nur auf Basis von REST an. Das Beispiel für SOAP ist eine fiktive Übertragung dieses Webservices in ein SOAP-Szenario. HTTP- Header Response: XML oder JSON 8 www.analytical-software.de 4

Woher kennt man den Aufbau von Request und Response? SOAP Jeder SOAP-Webservice stellt eine Beschreibung seiner angebotenen Services in Form einer WSDL-Datei (XML) bereit Es gibt Tools, die WSDL-Dateien parsen und daraus beispielhafte Requests und Responses erzeugen, die man als Vorlage nehmen kann (z.b. soapui: http://www.soapui.org/) REST Ansätze zur standardisierten Beschreibung mit WADL sind vorhanden, aber nicht durchgängig verbreitet In der Regel muss man sich auf die Dokumentation verlassen, die der Anbieter des Webservices bereitstellt 9 Webservices: Die "Lingua Franca" (oder der "Babelfisch") der IT Universelle Einsetzbarkeit: Jedes System, das HTTP beherrscht, kann Webservices nutzen oder anbieten Entkopplung: Weder Client noch Server müssen Details (Betriebssystem, Datenbank, Middleware ) ihres Kommunikationspartners kennen Solange die Schnittstelle gleich bleibt, kann die Implementierung des Webservice jederzeit geändert werden, ohne dass der Konsument davon etwas merkt Für SAS: Universelle Zugriffsmöglichkeit auf jede andere Art von System, auch wenn SAS dafür noch keine eigene Schnittstelle anbietet 10 www.analytical-software.de 5

Webservices und SAS 11 Was haben Webservices mit SAS zu tun? Ein kleiner Vorgriff. SAS als Webservice Konsument: wenn im Rahmen eines SAS Programms Informationen benötigt werden, die woanders als Webservice angeboten werden. SOAP Schnittstellen: PROC SOAP, Data Step Funktionen, WSDL Libname REST Schnittstelle: PROC HTTP SAS als Webservice Anbieter: Wenn ein eigenes SAS Programm im Intranet (oder Internet) zur Verfügung gestellt werden soll Schnittstelle (SOAP/REST): Stored Processes 12 www.analytical-software.de 6

PROC SOAP Funktionsweise Ausgangspunkt: SAS-Daten Request- Body (XML) XML Vorverarbeitung Request mit SOAP-Envelope Webservice- Anbieter (SOAP) PROC SOAP Ziel: SAS-Daten Response- Body (XML) XML Nachverarbeitung Response mit SOAP-Envelope 13 PROC SOAP Aufruf Beispiel: Webservice zum Zuordnen von IP-Adressen zu einem geographischen Ort FILENAME Request "C:\KSFE12\Request1.xml"; FILENAME Response "C:\KSFE12\Response1.xml"; PROC SOAP IN = Request OUT = Response URL = "http://ws.cdyne.com/ip2geo/ip2geo.asmx?wsdl" SOAPACTION = "http://ws.cdyne.com/resolveip" ; RUN; Zusätzlich können Benutzername und Passwort übergeben werden (auch aus Metadaten-Server) PROC SOAP basiert auf Java-Frameworks für Webservices (SAS 9.2: Apache Axis2; SAS 9.3: Spring); in SAS 9.3 deutlicher Performance-Gewinn 14 www.analytical-software.de 7

PROC SOAP XML Verarbeitung Wie kommt man von seinen Daten zum XML Request, und wie zieht man aus der XML Response Ergebnisse? SAS bietet eine Vielzahl von Tools für den XML Zugriff XML Libname Engine XML Maps PROC XSL Siehe Tutorial "XML mit SAS leicht gemacht" von Andreas Adlichhammer, KSFE 2011 http://www.analyticalsoftware.de/de/wissensbibliothek/tutorials/xml sas/ Welches dieser Tools ist nun gerade für Webservices zu empfehlen? 15 Empfehlungen zum Verarbeiten von XML Responses Klare Antwort: Es kommt drauf an Mit einer XML Map kommt man eigentlich fast immer ans Ziel. Bei einfachen XML Strukturen genügt evtl. auch ein XML Libname ohne Angabe einer Map. Hier gilt: einfach probieren! Wenn einem tatsächlich eine XML Struktur über den Weg läuft, die man mit einer Map nicht abdecken kann, kann man immer noch XSL verwenden Bei Webservice Ergebnissen aber eher unwahrscheinlich Man kann natürlich auch immer noch die XML Response im Data Step parsen. Damit kann man garantiert jede XML Response verarbeiten Viel Spaß 16 www.analytical-software.de 8

Empfehlung zum Erzeugen von XML Requests: XML "Vorlagen" mit Macrovariablen und resolve Funktion <ws:resolveip xmlns:ws='http://ws.cdyne.com/'> <ws:ipaddress>&ip</ws:ipaddress> </ws:resolveip> XML- Vorlage %LET IP = 15.179.0.138; FILENAME Template "..." FILENAME Request "..." DATA _null_; INFILE Template; FILE Request; INPUT; Zeile = resolve( _Infile_ ); PUT Zeile; RUN; Data Step Alternative: XML- Map; bei komplexen Requests manchmal sinnvoller <ws:resolveip xmlns:ws='http://ws.cdyne.com/'> <ws:ipaddress>15.179.0.138</ws:ipaddress> </ws:resolveip> XML- Request 17 Was gibt's noch außer PROC SOAP: Data Step Funktionen (SAS 9.3) FILENAME Request1 "C:\KSFE12\Request1.xml"; FILENAME Response1 "C:\KSFE12\Response1.xml"; DATA _NULL_; InFileRef = "Request1"; OutFileRef = "Response1"; URL = "http://ws.cdyne.com/ip2geo/ip2geo.asmx?wsdl"; SOAPAction = "http://ws.cdyne.com/resolveip"; /* Aufruf */ rc = SOAPWeb( InfileRef, URL, OutFileRef, SOAPAction ); RUN; Vor und Nachverarbeitung der XML Dateien wie bei PROC SOAP 18 www.analytical-software.de 9

Was gibt's noch außer PROC SOAP: WSDL Libnames "Preproduction" in SAS 9.2 aber nicht wirklich brauchbar, da alles andere als stabil In SAS 9.3 nicht mehr unterstützt (laut SAS Online Doku) 19 PROC HTTP Funktionsweise Ausgangspunkt: SAS-Daten Aufbereitung Parameter URL (Macro-Variable(n)) Webservice- Anbieter (REST) PROC HTTP HTTP-Request HTTP-Response Ziel: SAS-Daten Response (XML) * XML Nachverarbeitung * Anmerkung: Response kann theoretisch auch andere Formate haben (HTML, JSON) die Weiterverarbeitung von XML ist aber am besten in Base SAS integriert. 20 www.analytical-software.de 10

PROC HTTP Aufruf FILENAME Response "C:\KSFE12\Response1.xml"; PROC HTTP URL = 'http://api.geonames.org/findnearbyplacename?lat=42&lng=42&username=demo' OUT = Response METHOD = 'GET' ; RUN; Zusätzlich können Benutzername und Passwort übergeben werden (auch aus Metadaten-Server) Für POST-Anfragen kann mit dem Request auch eine komplette Datei mitgeschickt werden (über einen zweiten Fileref). Wichtig: In diesem Fall Content-Type über Option CT= angeben! 21 Performance PROC SOAP, PROC HTTP, Data Step Performance hängt von sehr vielen Faktoren ab: Netzwerk Geschwindigkeit, Performance des aufgerufenen Webservice und der von ihm angesprochenen Komponenten (Datenbank ) Einige Tendenzen sind aber dennoch feststellbar: PROC SOAP ist in SAS 9.3 deutlich schneller als in SAS 9.2 (nach unseren Messergebnissen bis zu ca. 30 Prozent) PROC SOAP oder Data Step Funktionen machen keinen großen Unterschied Ein Aufruf eines REST Webservice ist wegen des schlankeren Protokolls in der Regel performanter als der Aufruf eines gleichwertigen SOAP Service. 22 www.analytical-software.de 11

Webservices mit SAS 9.3 anbieten: SOAP SAS Metadaten Server http://<host>:<port>/sasbiws/ services/<meta-pfad> SAS- Programm Deployment Stored Process mit Parametern Deployment (Management SOAP- Console) Webservice mit Parametern (/System/Services) Client Der Webservice hat die gleichen Eingabe Parameter wie der Stored Process Die Response des Webservice enthält die für den Stored Process definierten Ausgabeparameter und nicht das, was der Stored Process ggf. nach _WEBOUT schreibt! Das Umsetzen der Stored Process Parameter von oder nach XML übernimmt SAS es muss nicht selbst programmiert werden 23 Webservices mit SAS 9.3 anbieten: REST SAS Metadaten Server http://<host>:<port>/sasbiws/ /rest/storedprocesses/<meta-pfad> Client 1: Benötigt XML SAS- Programm Deployment Es ist nicht notwendig, den Stored Process explizit als Webservice zu deployen! Ein einziger Stored Process unterstützt automatisch beide Schnittstellenformate, XML und JSON Wie bei SOAP enthält die Response des Webservice die für den Stored Process definierten Ausgabeparameter und nicht das, was der Stored Process ggf. nach _WEBOUT schreibt! Die Umsetzung der Parameter nach XML oder JSON erledigt SAS automatisch Stored Process mit Parametern Achtung: Meta-Pfad darf keine Leerzeichen enthalten! http://<host>:<port>/sasbiws/ /json/storedprocesses/<meta-pfad> Client 2: Benötigt JSON 24 www.analytical-software.de 12

Fazit: Unendliche Weiten Mit den SAS Prozeduren PROC SOAP und PROC HTTP (bzw. den entsprechenden Data Step Funktionen) ist es möglich, auf jeden SOAP oder REST basierten Webservice zuzugreifen. Der Webservice muss nichts davon wissen, dass er gerade mit SAS kommuniziert. Somit sind Datenaustausch, Aufruf von Funktionen, ganz allgemein die Kommunikation mit jedem System, das Webservices unterstützt, möglich, ohne dass erst aufwändige Schnittstellen programmiert werden müssen Über die Webservice Anbindung des Stored Process Server kann auch umgekehrt jedes SAS Programm als Webservice bereitgestellt werden. So kann SAS Funktionalität in andere Systeme eingebunden werden, ohne erst neue Schnittstellen entwerfen zu müssen. Gerade die neue JSON/REST Schnittstelle zu StoredProcesses eröffnet auch sehr komfortable Möglichkeiten des Datenaustausch zwischen SAS und Webfrontends 25 Wenn Sie mehr wissen wollen Word Wide Web Consortium: Web Services Architecture SAS Institute Inc.: SAS(R) 9.3 Functions and CALL Routines: Reference SOAPWEB Function SAS Institute Inc.: Base SAS(R) 9.3 Procedures Guide SOAP Procedure SAS Institute Inc.: Base SAS(R) 9.3 Procedures Guide HTTP Procedure SAS Institute Inc.: SAS 9.3 BI Web Services Developer's Guide Andreas Adlichhammer: Vortrag auf der KSFE 2011 in Heidelberg XML mit SAS leicht gemacht 26 www.analytical-software.de 13

Vielen Dank! Haben Sie Fragen? Martin Haffner Andreas Mangold Bernhard Braun Software Architekt Gründer und Student Geschäftsführer (Duale Hochschule) Rohrbacher Str. 26 69115 Heidelberg Telefon +49 6221 6051 0 Martin.Haffner@analytical software.de www.analytical software.de Besuchen Sie uns auch auf unserem Messestand! Dort können Sie im Anschluss mit dem Referenten diskutieren finden Sie Demos zu diesem Vortrag können Sie sich über das Angebot von HMS informieren gibt es Jobangebote gibt es Informationen für Studenten zu Praktika und Abschlussarbeiten bei HMS 27 www.analytical-software.de 14