Webservices

53
Webservices Wouter Janssens & Tom Haegemans

description

 

Transcript of Webservices

Page 1: Webservices

WebservicesWouter Janssens & Tom Haegemans

Page 2: Webservices

Inhoud• Inleiding

• Webservices

• SOAP

• REST

• Implementatie

• SOAP of REST?

Page 3: Webservices

InleidingArchitecturen en probleemstelling

Page 4: Webservices

Architecturen (views)• Business architectuur

Bedrijfsprocessen en gegevens

• Applicatie architectuurApplicaties voor ondersteuning

• Technische architectuurBeschrijft de gebruikte technologie

Page 5: Webservices

ProbleemstellingProbleem Monolitische IT systemen zorgen voor lage

flexibiliteit

Doel Flexibiliteit voor snelle aanpassing aan business

behoeften

Middel Service Oriented Architecture (SOA)

Page 6: Webservices

Service Oriented Architecture (SOA)• Effect op alle architecturen of views

• Splits de organisatie op in los gekoppelde services

• Cloud

Page 7: Webservices

Services - Eigenschappen• Composeable

Andere services als bouwstenen

• DiscoverableMetadata voor post- en precondities

• GranularOndeelbaar

Gevolg: IT systeem niet omgooien bij een kleine aanpassing

Page 8: Webservices

Stateless vs StatefulVerschil: informatie over de staat van de client

• StatelessHou geen informatie bij over de staat Voordeel: beschikbaarheid verhoogt, schaalbaarheid neemt toe Nadeel: overhead

• StatefulHou wel informatie bij over de staat Voordeel: server werkt efficiënter Nadeel: lagere beschikbaarheid, minder schaalbaar

Page 9: Webservices

WebservicesImplementatie van een SOA op niveau van de technische architectuur

Page 10: Webservices

WebservicesFamilie van standaarden die verschillende faciliteiten aanbieden

• DiscoveryLijst of gids met index, zoekbaar

• DescriptionFormele beschrijving door metadata

• CommunicationSet van afspraken voor communicatie

Page 11: Webservices

Webservices - Soorten• Procedure-oriented

Berichten tussen end-points door remote procedure calls

• Navigational-orientedFocus op resources, navigeren met behulp van een klein aantal methodes

Page 12: Webservices

SOAPVroeger: Simple Object Access Protocol, Nu: gewoon SOAP

Page 13: Webservices

Wat is SOAP?• Specificatie voor gedistribueerde systemen

• Procedure-oriented

• Gebruik XML om structured en typed informatie uit te wisselen

• SOAP en WS-* Stack Communication: SOAP Description: WSDL Discovery: UDDI

Service

WSDL

UDDI

SOAP

Page 14: Webservices

Communication: SOAPZorgt voor:

• Berichtenstructuur: XML

• Berichten verwerken: Processingmodel

• Berichten langs verschillende transportprotocollen

Page 15: Webservices

Berichtenstructuur: XML

Header

Envelope

Header-block

Body

Body-block

Page 16: Webservices

Nodes

InitialSender

Inter-mediary

UltimateReceiver

Node

Processingmodel

Binding

Page 17: Webservices

ProcessingmodelTaken:

• Serialisatie

• Parsen van headersBijvoorbeeld voor quality of service specificaties

Page 18: Webservices

BindingTaak:

• Doorgeven naar onderliggende laagTransportprotocol (tunnel)

OSI: applicatie of transportlaag

Page 19: Webservices

Description: WSDLFormeel beschrijven van een service door middel van XML

• Gevolg: dynamische binding

• Twee delen: abstract en concreet Abstract: Vocabulary, Message, Interaction Concreet: Onderliggend protocol, netwerkadres, …

Page 20: Webservices

Discovery: UDDI• Universal Description, Discovery and Integration

• Helpt bij Dynamic Binding

De locatie van een service vinden om een dynamische koppeling te maken

Service CompositionDevelopers moeten weten welke services er beschikbaar zijn om ze nadien te kunnen gebruiken

Maar: wordt in de praktijk niet veel gebruikt

Page 21: Webservices

Business ProcessesStapje verder: hoe helpt dit nu voor meer flexibiliteit?

Als SOAP en WS-* deel uitmaakt van de infrastructuur:

1. Teken bedrijfsprocessen uit met BPMN

2. Automatiseer bedrijfsprocessen aan de hand van BPEL

BPEL: Business Process Execution LanguageZorgt voor interactie en samenwerking van services, aan de hand van hun WSDL omschrijving.

Gevolg: ontwerpen van workflows gaat veel sneller en flexibeler.

Page 22: Webservices

RESTRepresentational state transfer

Page 23: Webservices

Wat is REST?• Architecturale stijl voor gedistribueerde systemen

• Navigational-oriented architectuur

• Doctorale thesis Roy Fielding (2000)

• Nadruk op efficiënte communicatie van gegevens

Page 24: Webservices

Description en discovery• Description

Geen echte richtlijnen

Indien toch nodig: WADL

• DiscoveryOverbodig gebleken

Wildgroei aan UDDI registers

Indien toch nodig: DNS

Page 25: Webservices

Resource-based• Nadruk op resources

• Identificeren aan de hand van URI's

• Meerdere representaties mogelijk voor een resource (XML, JSON, ...)

Page 26: Webservices

Constraints• Starten met null-stijl

• 6 beperkingen toevoegen aan null-stijl

• Afbakenen architecturale stijl

Page 27: Webservices

Client-server• Onderscheid tussen client en server

• Client minder complex

• Mogelijk clients te maken voor verschillende platformen

• Componenten kunnen onafhankelijk van elkaar worden ontwikkeld

(Happy) Clients Server

Client-server

Page 28: Webservices

Stateless• Server mag geen statusinformatie client bijhouden

• Elke request van client moet status voldoende omschrijven

• Gevolgen voor transparantie, betrouwbaarheid en schaalbaarheid

• Negatieve gevolgen voor netwerkefficiëntie

• Consistentieproblemen tussen client en server

Client-server - Stateless

Page 29: Webservices

Cache• Alle responses kunnen worden opgeslagen in een cache

• Positieve invloed op netwerkefficiëntie

• Verminderde latency en betrouwbaarheid

Client-server - Stateless - Cache

Page 30: Webservices

Uniform interfaces• Interface is "toegangspoort" om systeem te benaderen

• Verwijzen naar bepaalde resource door gebruik te maken van zijn URI

• Ondernomen actie hangt af van gebruikte HTTP methode

• Server makkelijker en overzichtelijker benaderen

Client-server - Stateless - Cache - Uniform interfaces

Page 31: Webservices

Layered system• Client hoeft niet te weten of hij direct met server is

verbonden

• Mogelijk tussenpersonen (bv. HTTP-intermediaries)

• Verbeterde schaalbaarheid

Client-server - Stateless - Cache - Uniform interfaces - Layered system

Client Inter-mediary

Server

Waargenomen verkeer

Eigenlijk verkeer

Page 32: Webservices

Code on demand• Server geeft extra logica door aan client

• Bv. Javascript

• Client minder complex en eenvoudiger uit te breiden

• Transparantie van het systeem neemt af

• Enige beperking dat niet verplicht is

Client-server - Stateless - Cache - Uniform interfaces - Layered system - Code on demand

LogicaLogica

Client Server

Page 33: Webservices

RESTful webservices• Webservices gebouwd volgens beperkingen van REST

• Nadruk op resources en grote hoeveelheid requests

• Maken vaak gebruik van HTTP

• Facebook, Twitter, ...

• Beginnen ook in enterprise applicaties op te duiken

Page 34: Webservices

VoorbeeldSimpele blog applicatie in SOAP en REST

Page 35: Webservices

Voorbeeld SOAP

Page 36: Webservices

Initial Page Request

Page 37: Webservices

Data nog niet aanwezig

Initial Page Response

Page 38: Webservices

Posts ophalen 1/2

1

2

Page 39: Webservices

3

4

Posts ophalen 2/2

Page 40: Webservices

Resultaat

Page 41: Webservices

Toevoegen van een post 1/2

1

2

Page 42: Webservices

Toevoegen van een post 2/2

34

5

Page 43: Webservices

Resultaat

Page 44: Webservices

Voorbeeld REST

Page 45: Webservices

Initial Page Request

Page 46: Webservices

Data nog niet aanwezig

Initial Page Response

Page 47: Webservices

Posts ophalen

Page 48: Webservices

Resultaat

Page 49: Webservices

Toevoegen van een post

Page 50: Webservices

Resultaat

Page 51: Webservices

SOAP of REST?RESTafarians vs. WS-Death Star

Page 52: Webservices

Vergelijking• Complexiteit

REST is minder complex Maar: triviale keuzes kunnen grote gevolgen hebben (vb URI-

schema)

• Koppeling SOAP & WS-* op eerste zicht beter in description en discovery Maar: gevaar voor opsplitsing tussen interface en implementatie Dus: REST beter door generische methodes

• Security SOAP: WS-Security REST: HTTP dus application firewall

• Performantie SOAP: Tunnel over HTTP REST: Kan HTTP direct gebruiken (methodes)

Page 53: Webservices

WebservicesWouter Janssens & Tom Haegemans