Lektion 7: Webservice / REST



Ähnliche Dokumente
Implementierung von Web Services: Teil I: Einleitung / SOAP

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

Web-Konzepte für das Internet der Dinge Ein Überblick

Wiederholung: Beginn

RESTful Web. Representational State Transfer

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

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

Autor: Peter Seemann Seminar: Softwarearchitekturen Betreuer: Benedikt Meurer

SOA. Prof. Dr. Eduard Heindl Hochschule Furtwangen Wirtschaftsinformatik

Workflow, Business Process Management, 4.Teil

Grundlagen der Web-Entwicklung INF3172

Architektur von SOAP basierten Web Services

SOA mit.net: Vom Geschäftsprozess zur Lösung

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

Webservices. Entwicklercamp Denny Sternberg

Verteilte Systeme: Übung 4

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

Web Sockets mit HTML5. Quelle:

Java und XML 2. Java und XML

<Insert Picture Here> Einführung in SOA

VVA Webservice Online Lieferbarkeits-Abfrage

arlanis Software AG SOA Architektonische und technische Grundlagen Andreas Holubek

Entwicklung eines interoperablen, multimedialen Teaching-File-Service: Web-Service unterstützter Wissenstransfer in der Radiologie

Enterprise Application Integration Erfahrungen aus der Praxis

XML und SOAP Einführung und Grundlagen

Securing SOAP e-services

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

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

Flash, Network und Facebook. Steven Mohr

Christoph Mathas. SOA intern. » Praxiswissen zu Service-orientierten IT-Systemen HANSER

Mobilkommunikation. REST-basierte Dienste für verteilte, mobile Anwendungen. A. Gillert, A. Grebe, M. Hüffmeyer, C. Vogt

Leichtgewichtige Web 2.0-Architektur für komplexe Business-Anwendungen Nicolas Moser PRODYNA AG

Alte Technik neu verpackt

Zustandsgebundene Webservices

Web Services Integration heterogener Systemlandschaften. Prof. Dr. Gregor Engels Fabian Christ 08. Juni 2010

b2boptic / SF7 Freiburg

SAP NetWeaver Gateway. 2013

Web Service Entwicklung mit Java. Sven Lindow

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

Online Kataloge. Wie binde ich einen SGVSB-Online-Katalog in eine Webseite ein. Versionsnummer: 1.0 Änderungsdatum:

SSO-Schnittstelle. Inhalt: Beschreibung der Single Sign-On (SSO) Schnittstelle. NetSlave GmbH Simon-Dach-Straße 12 D Berlin

SEQIS 10 things API Testing

Standards und Standardisierungsgremien

Web 2.0 (In) Security PHPUG Würzburg Björn Schotte

RSS Push Verfahren. Hongliang Jiang, Roland Höpfner Seminar Moderne Webtechnologien AG-NBI. 18. November 2009

Social Data Mining. Albert Weichselbraun. May 2009

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

Web Services. XML, WSDL, SOAP und UDDI Einblicke und Ausblicke J.M.Joller 1

Inhalt I. Blick zurück II. Was sind WebServices? III. Rahmenwerk für edienstleistungen IV. Verwendete WebServices

Webservices Ein Vortrag von:

Integration von UIS-Webdiensten

Web Services Einsatzmöglichkeiten für das Information Retrieval im WWW

E-Business Architekturen

Webservices REST vs. SOAP

Desktop Management Interface und andere Initiativen der DMTF

Android VPN. Am Beispiel eines Netzwerktunnels für das Domain Name System (DNS) 1 Andiodine - Android DNS-VPN

E-Services mit der Web-Service-Architektur

Ein Beispiel. Ein Unternehmen will Internettechnologien im Rahmen des E- Business nutzen Welche Geschäftsprozesse?

WSDL. Web Services Description Language. André Vorbach. André Vorbach

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick Parameterübergabe...

Kapitel WT:VI (Fortsetzung)

goalio Documentation Release goalio UG

Systembeschreibung. Masterplan Kommunikationsinterface. ASEKO GmbH. Version 1.0 Status: Final

GI-Services erstellen und bereitstellen

Übersicht. Angewandte Informatik 2 - Tutorium 6. Teile einer WSDL-Datei. Was ist WSDL. Besprechung: Übungsblatt 5

pr[sms] MMS-MM7/SOAP Schnittstelle Version: 1.1 Stand: Autor: Gollob Florian

Architektur von REST basierten Webservices

Entwicklung einer REST-API zur Erstellung und Konfiguration von Microsoft Teams. Jan Kruse, utilitas GmbH

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

Web Grundlagen zum Spidering

Auszug aus JAX-WS Folien

!"#$"%&'()*$+()',!-+.'/',

Social Media as Sensors. Nikolai Bock FOSSGIS 2014

Hauptseminar Internetdienste Prof. F. Schweiggert Sommersemester 2004 Universität Ulm. Web Services. Boto Bako

5. Übung zur Vorlesung Service-orientierte Architekturen

... Peter Woetzel Director Product Management Online Software AG

Etablierung serviceorientierter Architekturen mit Web Services

OSEK/VDX NM (Network Management)

WEB-Dienste in GIS Umgebung

AJAX Implementierung mit Joomla!

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

Automatisierungsarchitekturen für das Smart Grid Am Beispiel der OPC UA und der IEC Dr.-Ing. Mathias Uslar, Sebastian Rohjans

WS-Security. Thies Rubarth. Sicherheitskonzepte in global verteilten Anwendungen. 21. Sep 2007 ACM/GI Localgroup #216

The Developer's Guide to. Social Programming. Universität zu Köln Medien zwischen Technologie und Gesellschaft Prof. Dr. Manfred Thaller SS 12/13

SMS-API. Sloono Schnittstellenbeschreibung. Version 1.2 Stand

IMAP und POP. Internet Protokolle WS 12/13 Niklas Teich Seite 1

Web Service Discovery mit dem Gnutella Peer-to-Peer Netzwerk

Ursprung des Internets und WWW

Web Services and Semantic Web - Introduction to Web Services. von Andreas Weiler

SOAP Integrationstechnologie für verteilte Middlewarearchitekturen?

Anleitung Redmine. Inhalt. Seite 1 von 11. Anleitung Redmine

Wolkig bis heiter. Andreas Wismann WHEN OTHERS. APEX als Drehkreuz für Web Service-Anwendungen

SOAP und REST Ein Vergleich von service- und ressourcenorientierten Architekturen und deren Einsatz im VMA-Projekt

REST Services To-Go Einfacher Einstieg in die REST Programmierung

2. WWW-Protokolle und -Formate

Internettechnologien

<Insert Picture Here> Ohne Fenster-zur-Welt SSO mit ios-apps und Oracle Access Manager

Authentication im Web

Transkript:

Lektion 7: Webservice / REST Martin Guggisberg Informatik Universität Basel Martin.Guggisberg@... WT-7-1 Information zweiten Hälfte des Semester Lektion Datum WEBTECHNOLOGIEN Web Data Management L8 Dienstag, 8. November 11 Bearbeiten der Übungsaufgaben KH 119 Vorstellung der Projekte L9 Dienstag, 15. November 11 L10 Dienstag, 22. November 11 L11 Dienstag, 29. November 11 L12 Dienstag, 6. Dezember 11 L13 Dienstag, 13. Dezember 11 L14 Dienstag, 20. Dezember 11 Vorlesung, Schanzenstrasse 46, Seminarraum 408 (4.OG) Vorlesung, Schanzenstrasse 46, Seminarraum 408 (4.OG) Vorlesung, Schanzenstrasse 46, Seminarraum 408 (4.OG) Vorlesung, Schanzenstrasse 46, Seminarraum 408 (4.OG) Vorlesung, Schanzenstrasse 46, Seminarraum 408 (4.OG) Vorlesung, Schanzenstrasse 46, Seminarraum 408 (4.OG) Arbeiten an den Projekten Arbeiten an den Projekten Arbeiten an den Projekten Arbeiten an den Projekten Arbeiten an den Projekten Arbeiten an den Projekten WT-7-2 1

Lernziele und Inhalt Übersicht SOAP Webservice & REST Webservice Sie können externe Datenquellen in einem Programm nutzen 1. Webservice W3C 2. REST Webservice 3. Beispiele 1. Local.ch 2. TWITER 3. WIKI 4. Last.Fm WT-7-3 Paradigmawechsel Programmable Web WT-7-4 2

SOA: Service Oriented Architecture SOA ist ein Software Architektur Konzept Orchestrierung von Diensten (nicht hierarchisch) definiert Schnittstellen mit Protokollen und Funktionalität SOA Prinzipien Wiederverwendung Modularität Kombinierbarkeit Komponentisierung Interoperabilität WT-7-5 Webservice W3C WEB OF SERVICES http://www.w3.org/ Web of Services refers to message based design frequently found on the Web and in enterprise software. The Web of Services is based on technologies such as HTTP, XML, SOAP, WSDL, SPARQL, and others. WT-7-6 3

WS Prinzip SOAP Simple Object Access Protocol (remote invocation) WSDL: Web Service Definition Language (service characteristics) UDDI: Universal Description, Discovery, and Integration (directory) WT-7-7 SOAP UDDI Definiert das Protokoll für Client-Server-Interaktion Service User SOAP Service Provider RPC-Stil (request response) Benutzt XML Nutzt HTTP als Transport- Layer-Protokoll Fehler- und Ausnahmebehandlung WT-7-8 4

SOAP http://www.w3.org/tr/soap/ Envelope, Header (optional), Body <soap:envelope xmlns:soap= http://sche.../"> <soap:header> <wig:credentials soap:mustunderstand="1"> <username>wig</username> <password>giw03</password> </wig:credentials> </soap:header> <soap:body> <wig:opendoor xmlns:x="urn:unibas:fgb"> <position x= 34 y= 356 /> <door>seminar-room</door> </wig:opendoor> </soap:body> </soap:envelope> WT-7-9 Beispiel WS für das Ei ausbrüten WT-7-10 5

SOAP Client Java, C#, VB SOAP envelope SOAP header (optional) Header block Header block SOAP over HTTP Web server SOAP server AXIS Web service Web service Web service SOAP body (required) Message body WT-7-11 Webdienste suchen http://webservices.seekda.com/ WT-7-12 6

REST Representational State Transfer Der Begriff stammt aus der Dissertation von Roy Fielding aus dem Jahr 2000. Ziel von REST ist es, durch eine Rückbesinnung auf grundlegende Web Technologien die Implementierung verteilter, web basierter Systeme zu vereinfachen. REST ist kein W3C Standard HTTP (Transport Mechanismus) URL (Eindeutige Adressierung) XML/HTML/GIF/ JPEG (Daten Repräsentation) text/xml, text/html, image/gif, image/jpeg (MIME Types) WT-7-13 REST Prinzipien Alle Dinge bekommen eine ID Verbindet Dinge miteinander Benutzt Standardmethoden und Protokolle Zustandslose Kommunikation WT-7-14 7

REST Dienst von local.ch http://developer.local.ch/en/api/city Suche nach Städten, die mit B beginnen http://extapi.local.ch/0/cities.xml?q=b&limit=3 <?xml version="1.0"?> <response status="ok"> <cities> <city name="basel" size="89949" x1="7.531579" y1="47.5231" x2="7.632765" y2="47.599422"/> <city name="bern" size="76106" x1="7.309984" y1="46.917727" x2="7.485952" y2="46.979856"/> <city name="biel/bienne" size="26542" x1="7.211981" y1="47.120864" x2="7.298841" y2="47.164178"/> </cities> </response> WT-7-15 REST Dienst > RSS Wetter für Basel http://weather.yahooapis.com/forecastrss?w=781739&u=c <?xml version="1.0" encoding="utf-8" standalone="yes"?> <rss version="2.0" xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"> <channel>... <description>yahoo! Weather for Basel-City, CH</description> <pubdate>tue, 16 Mar 2010 9:00 am CET</pubDate>... </channel> </rss> WT-7-16 8

Unterschiede zweische REST und WS WS * kommt aus Enterprise Bereich und setzt auf skalierbare Dienste (ursprünglich CORBA) REST entstand als Web Technologien, wird jedoch von grossen Unternehmen eingesetzt WT-7-17 Beispiel: Twitter / User Time GET statuses/user_timeline Resource URL http://api.twitter.com/1/statuses/user_timeline.format Response Formats Json, xml, rss, atom WT-7-18 9

Beispiel: Twitter https://api.twitter.com/1/statuses/user_timeline.xml?scr een_name=mgje&count=1 <statuses type="array"> <status> <created_at>thu Oct 27 07:26:14 +0000 2011</created_at> <id>129458869654126592</id> <text> Searching last teaser for the poster Session @ismarconf @ismar #Isar </text> <georss:point>47.56299022 7.58533962</georss:point> </coordinates> </status> </statuses> WT-7-19 Beispiel: Python / Twitter http://code.google.com/p/python twitter/ >>> import twitter >>> client = twitter.api() >>> latest_posts = client.getusertimeline("yourusername") >>> print [s.text for s in latest_posts] WT-7-20 10

Verzeichnis für API s http://www.programmableweb.com/apis WT-7-21 Popular Web Services API Amazon AWS S3 bing search API bit.ly shorten API Delicious update API Digg API ebay shopping API Facebook API login Flickr API foursquare API GeoNames API Google App Engine API Google maps API Google search API last.fm API Live Spaces API MySpace Open Search API PayPal API Posterous Twitter API Rackspace Cloud API Salesforce Soap API Twitter friend timeline API vimeo Simple API WatchMouse API Wikipedia API Yahoo Maps API Yammer oauth API YouTube feeds API WT-7-22 11

Wiki API http://de.wikipedia.org/w/api.php http://de.wikipedia.org/w/api.php?action=query&prop=categories&titles=konrad_zuse <cl ns="14" title="kategorie:bauingenieur" /> <cl ns="14" title="kategorie:deutscher" /> <cl ns="14" title="kategorie:ehrenbürger von Hoyerswerda" /> <cl ns="14" title="kategorie:entwickler eines Computersystems" /> <cl ns="14" title="kategorie:erfinder" /> <cl ns="14" title="kategorie:geboren 1910" /> <cl ns="14" title="kategorie:geschichte der Informatik" /> <cl ns="14" title="kategorie:gestorben 1995" /> <cl ns="14" title="kategorie:hünfeld" /> <cl ns="14" title="kategorie:informatiker" /> WT-7-23 Musik Informationen last.fm WT-7-24 12

API last.fm http://www.lastfm.de/api/show?service=267 WT-7-25 Datenquelle Last.fm Inhalt HTML Last.fm Server Steuerung JavaScript Darstellung CSS WT-7-26 13

Last AFM REST Anfrage http://ws.audioscrobbler.com/2.0/?method=artist.getinfo& artist=clash&api_key=xxxxxxx WT-7-27 Beispiel last.fm HTML <body onload="initialize()"> <p>ich suche bei Last.fm nach 'The Clash'...</p> <h2><div id="artist" ></div></h2> <div><img id="fm_img" src="" alt="lastfm_bild"> </div> <div id="biographie" ></div> </body> WT-7-28 14

Beispiel I, last.fm API Last_fm_ex1.html WT-7-29 Beispiel I, last.fm Initialisierung <script type="text/javascript" src="lastfm.api.md5.js"> </script> <script type="text/javascript" src="lastfm.api.js"> </script> <script type="text/javascript"> function initialize() { /* Create a LastFM object */ var lastfm = new LastFM({ apikey : '********************************', apisecret : '********************************' }); WT-7-30 15

Beispiel I, last.fm Anfrage Last_fm_ex1.html lastfm.artist.getinfo({artist: 'The Clash'},{ success: function(data){ artist=document.getelementbyid("artist"); artist.innerhtml=data.artist.name; biographie=document.getelementbyid("biographie"); biographie.innerhtml=data.artist.bio.content fm_img=document.getelementbyid("fm_img"); fm_img.setattribute("src", data.artist.image[4]['#text']); }, error: function(code, message){ alert('error'+code+message); } }); WT-7-31 Weiteres Beispiel zu last.fm API Last_fm_ex3.html WT-7-32 16

HTML Last_fm_ex3.html <body onload="initialize();"> <p>events</p> <form name="myform" action="#" > <input type="text" name="artlocation" value="basel" onkeypress="return submitenter(this,event)"/> <input type="button" name="absenden" value="absenden" onclick="search_fm();" /> </form> <h2><div id="m_location" ></div></h2> <div id="fm_events"></div> </body> WT-7-33 Search_fm() I Last_fm_ex3.html function search_fm() { lastfm.geo.getevents({location: document.myform.artlocation.value,limit: "25"}, {success: function(data){ m_location=document.getelementbyid("m_location"); m_location.innerhtml= document.myform.artlocation.value; fm_events=document.getelementbyid("fm_events"); fm_events.innerhtml=""; var len= data.events.event.length; WT-7-34 17

Search_fm() II Last_fm_ex3.html for(var i=0;i<len;i++){ var s_artists = data.events.event[i].artists["artist"] var s_headliner = data.events.event[i].artists["headliner"] var s_datum = data.events.event[i].startdate var s_ort = data.events.event[i].venue["name"] for(var j=0;j<2;j++){ var newimg=document.createelement("img"); newimg.setattribute("src", data.events.event[i].image[j]['#text']); fm_events.appendchild(newimg); } WT-7-35 Search_fm() III Last_fm_ex3.html var newd1=document.createelement("div"); var newd2=document.createelement("div"); var newbr=document.createelement("br"); } newd1.innerhtml="artist: "+s_artists; fm_events.appendchild(newd1); newd2.innerhtml="datum: "+s_datum+" Ort: "+s_ort; fm_events.appendchild(newd2); fm_events.appendchild(newbr); } }, error: function(code, message){ alert('error'+code+message);} }); WT-7-36 18