Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Webservices
Wouter Janssens & Tom Haegemans
Inhoud
•

Inleiding

•

Webservices

•

SOAP

•

REST

•

Implementatie

•

SOAP of REST?
Inleiding
Architecturen en probleemstelling
Architecturen (views)
•

Business architectuur
Bedrijfsprocessen en gegevens

•

Applicatie architectuur
Applicaties voor ...
Probleemstelling
Probleem
Monolitische IT systemen zorgen voor lage
flexibiliteit
Doel

Flexibiliteit voor snelle aanpassi...
Service Oriented Architecture
(SOA)
•

Effect op alle architecturen of views

•

Splits de organisatie op in los gekoppeld...
Services - Eigenschappen
•

Composeable
Andere services als bouwstenen

•

Discoverable
Metadata voor post- en preconditie...
Stateless vs Stateful
Verschil: informatie over de staat van de client
•

Stateless
Hou geen informatie bij over de staat
...
Webservices
Implementatie van een SOA op niveau van de technische
architectuur
Webservices
Familie van standaarden die verschillende faciliteiten aanbieden
•

Discovery
Lijst of gids met index, zoekbaa...
Webservices - Soorten
•

Procedure-oriented
Berichten tussen end-points door remote procedure calls

•

Navigational-orien...
SOAP
Vroeger: Simple Object Access Protocol, Nu: gewoon SOAP
Wat is SOAP?
•

Specificatie voor gedistribueerde systemen

•

Procedure-oriented

•

Gebruik XML om structured en typed i...
Communication: SOAP
Zorgt voor:
•

Berichtenstructuur: XML

•

Berichten verwerken: Processingmodel

•

Berichten langs ve...
Berichtenstructuur: XML
Envelope
Header

Headerblock

Body
Bodyblock
Nodes
Node
Initial
Sender

Intermediary

Ultimate
Receiver

Processingmodel

Binding
Processingmodel
Taken:
•

Serialisatie

•

Parsen van headers
Bijvoorbeeld voor quality of service specificaties
Binding
Taak:
•

Doorgeven naar onderliggende laag
Transportprotocol (tunnel)
OSI: applicatie of transportlaag
Description: WSDL
Formeel beschrijven van een service door middel van XML
•

Gevolg: dynamische binding

•

Twee delen: ab...
Discovery: UDDI
•

Universal Description, Discovery and Integration

•

Helpt bij
 Dynamic Binding
De locatie van een ser...
Business Processes
Stapje verder: hoe helpt dit nu voor meer flexibiliteit?

Als SOAP en WS-* deel uitmaakt van de infrast...
REST
Representational state transfer
Wat is REST?
•

Architecturale stijl voor gedistribueerde systemen

•

Navigational-oriented architectuur

•

Doctorale th...
Description en discovery
•

Description
Geen echte richtlijnen
Indien toch nodig: WADL

•

Discovery
Overbodig gebleken
Wi...
Resource-based
•

Nadruk op resources

•

Identificeren aan de hand van URI's

•

Meerdere representaties mogelijk voor ee...
Constraints
•

Starten met null-stijl

•

6 beperkingen toevoegen aan null-stijl

•

Afbakenen architecturale stijl
Client-server
•

Onderscheid tussen client en server

•

Client minder complex

•

Mogelijk clients te maken voor verschil...
Stateless
•

Server mag geen statusinformatie client bijhouden

•

Elke request van client moet status voldoende omschrijv...
Cache
•

Alle responses kunnen worden opgeslagen in een cache

•

Positieve invloed op netwerkefficiëntie

•

Verminderde ...
Uniform interfaces
•

Interface is "toegangspoort" om systeem te benaderen

•

Verwijzen naar bepaalde resource door gebru...
Layered system
•

Client hoeft niet te weten of hij direct met server is verbonden

•

Mogelijk tussenpersonen (bv. HTTP-i...
Code on demand
•

Server geeft extra logica door aan client

•

Bv. Javascript

•

Client minder complex en eenvoudiger ui...
RESTful webservices
•

Webservices gebouwd volgens beperkingen van REST

•

Nadruk op resources en grote hoeveelheid reque...
Voorbeeld
Simpele blog applicatie in SOAP en REST
Voorbeeld SOAP
Initial Page Request
Initial Page Response

Data nog niet aanwezig
Posts ophalen 1/2
1

2
Posts ophalen 2/2

3

4
Resultaat
Toevoegen van een post 1/2
1

2
Toevoegen van een post 2/2
3

4

5
Resultaat
Voorbeeld REST
Initial Page Request
Initial Page Response

Data nog niet aanwezig
Posts ophalen
Resultaat
Toevoegen van een post
Resultaat
SOAP of REST?
RESTafarians vs. WS-Death Star
Vergelijking
•

Complexiteit
 REST is minder complex
 Maar: triviale keuzes kunnen grote gevolgen hebben (vb URI-schema)...
Webservices
Wouter Janssens & Tom Haegemans
Upcoming SlideShare
Loading in …5
×

Webservices

474 views

Published on

  • Be the first to comment

  • Be the first to like this

Webservices

  1. 1. Webservices Wouter Janssens & Tom Haegemans
  2. 2. Inhoud • Inleiding • Webservices • SOAP • REST • Implementatie • SOAP of REST?
  3. 3. Inleiding Architecturen en probleemstelling
  4. 4. Architecturen (views) • Business architectuur Bedrijfsprocessen en gegevens • Applicatie architectuur Applicaties voor ondersteuning • Technische architectuur Beschrijft de gebruikte technologie
  5. 5. Probleemstelling Probleem Monolitische IT systemen zorgen voor lage flexibiliteit Doel Flexibiliteit voor snelle aanpassing aan business behoeften Middel Service Oriented Architecture (SOA)
  6. 6. Service Oriented Architecture (SOA) • Effect op alle architecturen of views • Splits de organisatie op in los gekoppelde services • Cloud
  7. 7. Services - Eigenschappen • Composeable Andere services als bouwstenen • Discoverable Metadata voor post- en precondities • Granular Ondeelbaar Gevolg: IT systeem niet omgooien bij een kleine aanpassing
  8. 8. Stateless vs Stateful Verschil: informatie over de staat van de client • Stateless Hou geen informatie bij over de staat  Voordeel: beschikbaarheid verhoogt, schaalbaarheid neemt toe  Nadeel: overhead • Stateful Hou wel informatie bij over de staat  Voordeel: server werkt efficiënter  Nadeel: lagere beschikbaarheid, minder schaalbaar
  9. 9. Webservices Implementatie van een SOA op niveau van de technische architectuur
  10. 10. Webservices Familie van standaarden die verschillende faciliteiten aanbieden • Discovery Lijst of gids met index, zoekbaar • Description Formele beschrijving door metadata • Communication Set van afspraken voor communicatie
  11. 11. Webservices - Soorten • Procedure-oriented Berichten tussen end-points door remote procedure calls • Navigational-oriented Focus op resources, navigeren met behulp van een klein aantal methodes
  12. 12. SOAP Vroeger: Simple Object Access Protocol, Nu: gewoon SOAP
  13. 13. 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 WSDL SOAP UDDI Service
  14. 14. Communication: SOAP Zorgt voor: • Berichtenstructuur: XML • Berichten verwerken: Processingmodel • Berichten langs verschillende transportprotocollen
  15. 15. Berichtenstructuur: XML Envelope Header Headerblock Body Bodyblock
  16. 16. Nodes Node Initial Sender Intermediary Ultimate Receiver Processingmodel Binding
  17. 17. Processingmodel Taken: • Serialisatie • Parsen van headers Bijvoorbeeld voor quality of service specificaties
  18. 18. Binding Taak: • Doorgeven naar onderliggende laag Transportprotocol (tunnel) OSI: applicatie of transportlaag
  19. 19. Description: WSDL Formeel beschrijven van een service door middel van XML • Gevolg: dynamische binding • Twee delen: abstract en concreet  Abstract: Vocabulary, Message, Interaction  Concreet: Onderliggend protocol, netwerkadres, …
  20. 20. Discovery: UDDI • Universal Description, Discovery and Integration • Helpt bij  Dynamic Binding De locatie van een service vinden om een dynamische koppeling te maken  Service Composition Developers moeten weten welke services er beschikbaar zijn om ze nadien te kunnen gebruiken Maar: wordt in de praktijk niet veel gebruikt
  21. 21. Business Processes Stapje 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 Language Zorgt voor interactie en samenwerking van services, aan de hand van hun WSDL omschrijving. Gevolg: ontwerpen van workflows gaat veel sneller en flexibeler.
  22. 22. REST Representational state transfer
  23. 23. Wat is REST? • Architecturale stijl voor gedistribueerde systemen • Navigational-oriented architectuur • Doctorale thesis Roy Fielding (2000) • Nadruk op efficiënte communicatie van gegevens
  24. 24. Description en discovery • Description Geen echte richtlijnen Indien toch nodig: WADL • Discovery Overbodig gebleken Wildgroei aan UDDI registers Indien toch nodig: DNS
  25. 25. Resource-based • Nadruk op resources • Identificeren aan de hand van URI's • Meerdere representaties mogelijk voor een resource (XML, JSON, ...)
  26. 26. Constraints • Starten met null-stijl • 6 beperkingen toevoegen aan null-stijl • Afbakenen architecturale stijl
  27. 27. 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 Client-server Server
  28. 28. 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
  29. 29. Cache • Alle responses kunnen worden opgeslagen in een cache • Positieve invloed op netwerkefficiëntie • Verminderde latency en betrouwbaarheid Client-server - Stateless - Cache
  30. 30. 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
  31. 31. Layered system • Client hoeft niet te weten of hij direct met server is verbonden • Mogelijk tussenpersonen (bv. HTTP-intermediaries) • Verbeterde schaalbaarheid Waargenomen verkeer Client Eigenlijk verkeer Client-server - Stateless - Cache - Uniform interfaces - Layered system Intermediary Server
  32. 32. 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 Logica Logica Client-server - Stateless - Cache - Uniform interfaces - Layered system - Code on demand
  33. 33. 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
  34. 34. Voorbeeld Simpele blog applicatie in SOAP en REST
  35. 35. Voorbeeld SOAP
  36. 36. Initial Page Request
  37. 37. Initial Page Response Data nog niet aanwezig
  38. 38. Posts ophalen 1/2 1 2
  39. 39. Posts ophalen 2/2 3 4
  40. 40. Resultaat
  41. 41. Toevoegen van een post 1/2 1 2
  42. 42. Toevoegen van een post 2/2 3 4 5
  43. 43. Resultaat
  44. 44. Voorbeeld REST
  45. 45. Initial Page Request
  46. 46. Initial Page Response Data nog niet aanwezig
  47. 47. Posts ophalen
  48. 48. Resultaat
  49. 49. Toevoegen van een post
  50. 50. Resultaat
  51. 51. SOAP of REST? RESTafarians vs. WS-Death Star
  52. 52. 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)
  53. 53. Webservices Wouter Janssens & Tom Haegemans

×