43
Denny Sternberg Webservices Entwicklercamp 2015

Entwicklercamp 2015FILE/T1S2-Webservices.pdf · • 2002: Google und Amazon veröffentlichen Web-Service-Schnittstellen • 2005: Yahoo! veröffentlicht Web-Service-Schnittstelle

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Entwicklercamp 2015FILE/T1S2-Webservices.pdf · • 2002: Google und Amazon veröffentlichen Web-Service-Schnittstellen • 2005: Yahoo! veröffentlicht Web-Service-Schnittstelle

Denny Sternberg

Webservices

Entwicklercamp 2015

Page 2: Entwicklercamp 2015FILE/T1S2-Webservices.pdf · • 2002: Google und Amazon veröffentlichen Web-Service-Schnittstellen • 2005: Yahoo! veröffentlicht Web-Service-Schnittstelle

>> Bei Fragen, einfach fragen!

2

Denny Sternberg

• Seit 2001 entwickeln und admininstrieren von Lotus Domino

• IBM Certified Application Developer, System Administrator

• Instructor seit 2003

[email protected]

06182 - 7869432

Page 3: Entwicklercamp 2015FILE/T1S2-Webservices.pdf · • 2002: Google und Amazon veröffentlichen Web-Service-Schnittstellen • 2005: Yahoo! veröffentlicht Web-Service-Schnittstelle

W e b s e r v i c e

Web Serv ices – worum geht es?

3

Page 4: Entwicklercamp 2015FILE/T1S2-Webservices.pdf · • 2002: Google und Amazon veröffentlichen Web-Service-Schnittstellen • 2005: Yahoo! veröffentlicht Web-Service-Schnittstelle

>>

„Ein Web Service ist eigentlich nicht viel mehr als eine dynamische Webseite. Der Unterschied

besteht darin, dass normale Webseiten die Sprache HTML verwenden und sie normalerweise ein

Browser dem Anwender präsentiert. Im Unterschied dazu liefert ein Web Service XML-Daten, die

nicht für die unmittelbare Anzeige gedacht sind, sondern von einem speziellen Client-Programm

weiterverarbeitet werden ...“ (c‘t)

W e b s e r v i c e

Web Services – worum geht es?

4

Page 5: Entwicklercamp 2015FILE/T1S2-Webservices.pdf · • 2002: Google und Amazon veröffentlichen Web-Service-Schnittstellen • 2005: Yahoo! veröffentlicht Web-Service-Schnittstelle

>>

• 2000: W3C-Konsortium (Microsoft, IBM, Sun ...) verabschieden SOAP-Spezifikation (Simple

Object Access Protocol)

• 2000: REST (Representational State Transfer) wird von Roy Fielding in seiner Dissertation

beschrieben

• 2001: WSDL (Web Services Description Language)

• 2002: Google und Amazon veröffentlichen Web-Service-Schnittstellen

• 2005: Yahoo! veröffentlicht Web-Service-Schnittstelle

W e b s e r v i c e

Web Services - Entwicklung

5

Page 6: Entwicklercamp 2015FILE/T1S2-Webservices.pdf · • 2002: Google und Amazon veröffentlichen Web-Service-Schnittstellen • 2005: Yahoo! veröffentlicht Web-Service-Schnittstelle

>>

Alle Vorteile komponentenbasierter Architekturen wie CORBA, J2EE oder .NET

• Unabhängigkeit von Plattformen, Systemen, Sprachen

• Flexibilität, evolutionäres Vorgehen der Entwicklung

• Skalierbarkeit, Wiederverwendbarkeit, Integration, ...

• Verwendung der bestehenden Business Logik und Datenspeichers

Hohe Akzeptanz und Verbreitung

• basiert auf im Internet etablierten Standards (HTTP,XML)

• einfach (leichtgewichtige Kommunikation), relative niedrige Einstiegshürde

Vorteile von Web Services

6

Page 7: Entwicklercamp 2015FILE/T1S2-Webservices.pdf · • 2002: Google und Amazon veröffentlichen Web-Service-Schnittstellen • 2005: Yahoo! veröffentlicht Web-Service-Schnittstelle

>>

Offene Punkte/Fehlende Funktionalität

• Sicherheit von Diensten

• Transaktionskontrolle

• Prozess-Steuerung

Diese Punkte muss die Applikation selber beinhalten oder der Entwickler selber implementieren

Nachteile von Webservices

7

Page 8: Entwicklercamp 2015FILE/T1S2-Webservices.pdf · • 2002: Google und Amazon veröffentlichen Web-Service-Schnittstellen • 2005: Yahoo! veröffentlicht Web-Service-Schnittstelle

>>

Alles mögliche kann ein „Service“ sein

• Client/Server Architekturen

• „SOA“ (Service Oriented Architecture)

ABER, zwei Arten sind stark verbreitet:

• SOAP (Simple Object Access Protokoll)

• REST ( Representational State Transformation)

Gibt es andere Arten von „Service“ ?

8

Page 9: Entwicklercamp 2015FILE/T1S2-Webservices.pdf · • 2002: Google und Amazon veröffentlichen Web-Service-Schnittstellen • 2005: Yahoo! veröffentlicht Web-Service-Schnittstelle

>>

Es dreht sich in einer REST-Architektur alles um Ressourcen

• Adressierbarkeit: Jede Ressource muss über einen eindeutigen Unique Resource

Identifier (kurz URI) identifiziert werden können.

• Zustandslosigkeit: Die Kommunikation der Teilnehmer untereinander ist zustandslos. Dies

bedeutet, dass keine Benutzersitzungen (etwa in Form von Sessions und Cookies) existieren,

sondern bei jeder Anfrage alle notwendigen Informationen wieder neu mitgeschickt werden

müssen.

• Einheitliche Schnittstelle: Jede Ressource muss über einen einheitlichen Satz von

Standardmethoden zugegriffen werden können. Beispiele für solche Methoden sind die

Standard-HTTP-Methoden wie GET, POST, PUT, und mehr.

• Entkopplung von Ressourcen und Repräsentation: Das bedeutet, dass verschiedene

Repräsentationen einer Ressource existieren können. Ein Client kann somit etwa eine

Ressource explizit beispielsweise im XML- oder JSON-Format anfordern.

• Domino: URL Command: ?readviewentries&outputformat=json

Kurze Beschreibung von REST

9

Page 10: Entwicklercamp 2015FILE/T1S2-Webservices.pdf · • 2002: Google und Amazon veröffentlichen Web-Service-Schnittstellen • 2005: Yahoo! veröffentlicht Web-Service-Schnittstelle

Webserv ices

10

Page 11: Entwicklercamp 2015FILE/T1S2-Webservices.pdf · • 2002: Google und Amazon veröffentlichen Web-Service-Schnittstellen • 2005: Yahoo! veröffentlicht Web-Service-Schnittstelle

>>

Komponente, die ihre Funktionalität über eine veröffentlichte Schnittstelle anbietet und über ein

offenes Protokoll im Internet zugreifbar sind

• Verwendet ausschließlich die Internetstandards XML und HTTP

Bausteine:

• WSDL (Web Service Definition Language)

• UDDI (Universal Service Description, Discovery, and Integration)

• SOAP (Simple Object Access Protocol) ist kompliziertet wie REST

– Erfordert Technologie Designen und in der Laufzeit

Was sind Webservices?

11

Page 12: Entwicklercamp 2015FILE/T1S2-Webservices.pdf · • 2002: Google und Amazon veröffentlichen Web-Service-Schnittstellen • 2005: Yahoo! veröffentlicht Web-Service-Schnittstelle

SOAP, WSDL, UDDI

12

Page 13: Entwicklercamp 2015FILE/T1S2-Webservices.pdf · • 2002: Google und Amazon veröffentlichen Web-Service-Schnittstellen • 2005: Yahoo! veröffentlicht Web-Service-Schnittstelle

>>

Die drei Technologien ergänzen sich, sind aber unabhängig voneinander!

SOAP (Simple Object Access Protocol):

• Übernimmt die Aufgabe des Protokolls

• Nachrichtenübertragung vom Server zum Client und umgekehrt

• Unterliegt den W3C-Standards

WSDL (Web Services Description Language):

• Beschreibungssprache für den Webservice

• Beschreibung von Operationen und Nachrichten unabhängig von den Netzwerkprotokollen

• Gibt die URLs/Endpunkte an

Beide basieren auf XML

SOAP, WSDL, UDDI

13

Page 14: Entwicklercamp 2015FILE/T1S2-Webservices.pdf · • 2002: Google und Amazon veröffentlichen Web-Service-Schnittstellen • 2005: Yahoo! veröffentlicht Web-Service-Schnittstelle

>>

Der Service Provider veröffentlich seine Services bei einem Server Broker

• Ablage der WSDL- Datei bei einem UDDI Register

• Weitere Informationen zum Web Service Anbieter und technische Beschreibung

• Hat sich bis heute nicht wirklich durchgesetzt

UDDI

14

Page 15: Entwicklercamp 2015FILE/T1S2-Webservices.pdf · • 2002: Google und Amazon veröffentlichen Web-Service-Schnittstellen • 2005: Yahoo! veröffentlicht Web-Service-Schnittstelle

SOAP Serv ice Imp lementa t ion Process

L ive Demo Be isp ie l : Password Reset Domino

15

Page 16: Entwicklercamp 2015FILE/T1S2-Webservices.pdf · • 2002: Google und Amazon veröffentlichen Web-Service-Schnittstellen • 2005: Yahoo! veröffentlicht Web-Service-Schnittstelle

>> Password Reset

16

Page 17: Entwicklercamp 2015FILE/T1S2-Webservices.pdf · • 2002: Google und Amazon veröffentlichen Web-Service-Schnittstellen • 2005: Yahoo! veröffentlicht Web-Service-Schnittstelle

>>

<types>:

• Definiert die einfachen und komplexen Datentypen die verwendet werden. Komplexe Datentypen

bestehen aus einer Zusammenstellung von mehreren einfachen Datentypen

<message>:

• Definiert Ein- und Ausgabeparameter

<portType>:

• Definiert die aufrufbaren Funktionen

<binding>:

• Definiert Nachrichtenformat und das zu verwendende Protokoll

<service>:

• Definiert den Endpunkt, also die Adresse über die der Webservice Provider erreichbar ist

WSDL

17

Page 18: Entwicklercamp 2015FILE/T1S2-Webservices.pdf · • 2002: Google und Amazon veröffentlichen Web-Service-Schnittstellen • 2005: Yahoo! veröffentlicht Web-Service-Schnittstelle

>>

Zwei Möglichkeiten:

• Das WSDL generieren von einer selbst geschriebenen Klasse

– Code/Interface Programmieren und daraus WSDL erzeugen

• Generierung des „Skelets“ aus Bestehenden WSDL

– Erstellung des Codes auf der Basis des Skelets

– Ähnlich bei der Erstellung des Consumers

Welche Tools kann ich verwenden!

• Java: Apache AXIS (http://ws.apache.org/axis2)

• Sun JAXB (Java Architecture for XML Binding)

• .NET: Visual Studio

• LotusScript: Domino Designer

Erstellen des WSDL

18

Page 19: Entwicklercamp 2015FILE/T1S2-Webservices.pdf · • 2002: Google und Amazon veröffentlichen Web-Service-Schnittstellen • 2005: Yahoo! veröffentlicht Web-Service-Schnittstelle

Demo WSDL F i le

19

Page 20: Entwicklercamp 2015FILE/T1S2-Webservices.pdf · • 2002: Google und Amazon veröffentlichen Web-Service-Schnittstellen • 2005: Yahoo! veröffentlicht Web-Service-Schnittstelle

>>

• Classen und Objekte(Komplexe Datentype) erstellen

– Typ Definition

Code Erstellprozess

20

Page 21: Entwicklercamp 2015FILE/T1S2-Webservices.pdf · • 2002: Google und Amazon veröffentlichen Web-Service-Schnittstellen • 2005: Yahoo! veröffentlicht Web-Service-Schnittstelle

>>

• Code erstellen der die eingehenden XML „Objekte“ kontrolliert/validiert und in die Ziel Objekte

umsetzt(LS, Java,….)

Code Erstellprozess

21

Page 22: Entwicklercamp 2015FILE/T1S2-Webservices.pdf · • 2002: Google und Amazon veröffentlichen Web-Service-Schnittstellen • 2005: Yahoo! veröffentlicht Web-Service-Schnittstelle

>>

• Den eigentlichen Code aufrufen und ausführen, dabei den „Response code“ mit Werten und

Objekten erzeugen und als XML ausgeben

Code Erstellprozess

22

Page 23: Entwicklercamp 2015FILE/T1S2-Webservices.pdf · • 2002: Google und Amazon veröffentlichen Web-Service-Schnittstellen • 2005: Yahoo! veröffentlicht Web-Service-Schnittstelle

Demo

23

Page 24: Entwicklercamp 2015FILE/T1S2-Webservices.pdf · • 2002: Google und Amazon veröffentlichen Web-Service-Schnittstellen • 2005: Yahoo! veröffentlicht Web-Service-Schnittstelle

Webserv ice Verwenden

24

Page 25: Entwicklercamp 2015FILE/T1S2-Webservices.pdf · • 2002: Google und Amazon veröffentlichen Web-Service-Schnittstellen • 2005: Yahoo! veröffentlicht Web-Service-Schnittstelle

>> Password Reset

25

Page 26: Entwicklercamp 2015FILE/T1S2-Webservices.pdf · • 2002: Google und Amazon veröffentlichen Web-Service-Schnittstellen • 2005: Yahoo! veröffentlicht Web-Service-Schnittstelle

>>

Importieren des WSDL

• Achtung: Datentypen sind nicht immer

alle kompatibel

• Nicht alle Tools arbeiten auf die gleiche

Weise

Konsumieren

26

Page 27: Entwicklercamp 2015FILE/T1S2-Webservices.pdf · • 2002: Google und Amazon veröffentlichen Web-Service-Schnittstellen • 2005: Yahoo! veröffentlicht Web-Service-Schnittstelle

>>

• Erstellung einer Instance des

Services

• Rufe die Methode auf

• Erhalte eine Antwort

• Mögliche Exceptions:

– Client beim lesen der

Response

– Service Provider (SOAP

Response: „FAULT“)

Aus der Developer Sicht

27

Page 28: Entwicklercamp 2015FILE/T1S2-Webservices.pdf · • 2002: Google und Amazon veröffentlichen Web-Service-Schnittstellen • 2005: Yahoo! veröffentlicht Web-Service-Schnittstelle

Demo

28

Page 29: Entwicklercamp 2015FILE/T1S2-Webservices.pdf · • 2002: Google und Amazon veröffentlichen Web-Service-Schnittstellen • 2005: Yahoo! veröffentlicht Web-Service-Schnittstelle

>> Password Reset

29

Page 30: Entwicklercamp 2015FILE/T1S2-Webservices.pdf · • 2002: Google und Amazon veröffentlichen Web-Service-Schnittstellen • 2005: Yahoo! veröffentlicht Web-Service-Schnittstelle

>>

• Herstellerneutral

• Framework neutral

• Standard basiert auf HTTP und XML

• Kann einfache und komplexe Datentypen verwenden

• Einfach zu implementieren

Zusammenfassung von SOAP

30

Page 31: Entwicklercamp 2015FILE/T1S2-Webservices.pdf · • 2002: Google und Amazon veröffentlichen Web-Service-Schnittstellen • 2005: Yahoo! veröffentlicht Web-Service-Schnittstelle

Was kann sch ie f gehen?

31

Page 32: Entwicklercamp 2015FILE/T1S2-Webservices.pdf · • 2002: Google und Amazon veröffentlichen Web-Service-Schnittstellen • 2005: Yahoo! veröffentlicht Web-Service-Schnittstelle

>>

Man versucht es nicht…

Standard != Standard

Spezifikations Anwälte

– Beispiel Amazon/Google Webservices:

• Nimm eine WSDL importiere sie in Notes oder RAD

• Schreibe eine PMR und frag „Warum du 100 oder mehr Fehler bekommst“

– Array von Objekten

– RAD(J2EE), Amazon .NET

– IBM und Microsoft haben unterschiedlicher Meinung zu den „Standards“

Was kann schief gehen? (Spezifikation)

32

Page 33: Entwicklercamp 2015FILE/T1S2-Webservices.pdf · • 2002: Google und Amazon veröffentlichen Web-Service-Schnittstellen • 2005: Yahoo! veröffentlicht Web-Service-Schnittstelle

>>

Welche Security?

Was brauchen wir für eine Security?

• Erreichbarkeit ( Kann ich den Webservice erreichen oder nicht?)

– Netzwerk

– Intern/extern

• XML unlesbar machen (Verschlüsseln?)

– SSL (einfach)

– Oder Key basierend

• Authentifizieren beim aufrufen auf dem Server

– Digitale Signaturen

– Gemeinsame Zertifikate

– Vertrauenswürdige Directories

Was kann schief gehen? (Security)

33

Page 34: Entwicklercamp 2015FILE/T1S2-Webservices.pdf · • 2002: Google und Amazon veröffentlichen Web-Service-Schnittstellen • 2005: Yahoo! veröffentlicht Web-Service-Schnittstelle

>>

• Authentifizieren bei der Antwort an dem Client

• Zugriff auf den Server

– Authentifizierter User

• SOAP über Mehrere Server

– Client -> Server -> Server ….

– Signaturen

• Reihenfolge der Umsetzung

– Anmelden und verschlüsseln? Oder Verschlüsseln und Anmelden

• ACL

• XML Verschlüsslung oder Signaturen verwenden

Was kann schief gehen? (Security)

34

Page 35: Entwicklercamp 2015FILE/T1S2-Webservices.pdf · • 2002: Google und Amazon veröffentlichen Web-Service-Schnittstellen • 2005: Yahoo! veröffentlicht Web-Service-Schnittstelle

>>

• Verwenden alle UTF-8 haben wir wenig Probleme

• ABER:

– Nicht jeder macht es

– ISO

– Chinesisch

– UTF-16

– SHF-JIS

Was kann schief gehen? (Character Sets)

35

Page 36: Entwicklercamp 2015FILE/T1S2-Webservices.pdf · • 2002: Google und Amazon veröffentlichen Web-Service-Schnittstellen • 2005: Yahoo! veröffentlicht Web-Service-Schnittstelle

Demo: Domino Usermanagement

Prov ider

36

Page 37: Entwicklercamp 2015FILE/T1S2-Webservices.pdf · • 2002: Google und Amazon veröffentlichen Web-Service-Schnittstellen • 2005: Yahoo! veröffentlicht Web-Service-Schnittstelle

37

Page 38: Entwicklercamp 2015FILE/T1S2-Webservices.pdf · • 2002: Google und Amazon veröffentlichen Web-Service-Schnittstellen • 2005: Yahoo! veröffentlicht Web-Service-Schnittstelle

>> Konzept

38

Page 39: Entwicklercamp 2015FILE/T1S2-Webservices.pdf · • 2002: Google und Amazon veröffentlichen Web-Service-Schnittstellen • 2005: Yahoo! veröffentlicht Web-Service-Schnittstelle

>>

39

Page 40: Entwicklercamp 2015FILE/T1S2-Webservices.pdf · • 2002: Google und Amazon veröffentlichen Web-Service-Schnittstellen • 2005: Yahoo! veröffentlicht Web-Service-Schnittstelle

Demo: Teamca lendar

Consumer

40

Page 41: Entwicklercamp 2015FILE/T1S2-Webservices.pdf · • 2002: Google und Amazon veröffentlichen Web-Service-Schnittstellen • 2005: Yahoo! veröffentlicht Web-Service-Schnittstelle

41

Page 42: Entwicklercamp 2015FILE/T1S2-Webservices.pdf · • 2002: Google und Amazon veröffentlichen Web-Service-Schnittstellen • 2005: Yahoo! veröffentlicht Web-Service-Schnittstelle

>>

• ws.Setcredentials("User", "Password")

– Run as Web User

• Ws.Setendpoint( „url“ )

– Lenkt den Webservice auf diese URL

– Zur Laufzeit (nicht im Consumer Hardcodieren)

Kleines Extra

42

Page 43: Entwicklercamp 2015FILE/T1S2-Webservices.pdf · • 2002: Google und Amazon veröffentlichen Web-Service-Schnittstellen • 2005: Yahoo! veröffentlicht Web-Service-Schnittstelle

>> Das wars, Fragen?

43