SlideShare una empresa de Scribd logo
1 de 53
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 ondersteuning

•

Technische architectuur
Beschrijft de gebruikte technologie
Probleemstelling
Probleem
Monolitische IT systemen zorgen voor lage
flexibiliteit
Doel

Flexibiliteit voor snelle aanpassing aan
business behoeften

Middel

Service Oriented Architecture (SOA)
Service Oriented Architecture
(SOA)
•

Effect op alle architecturen of views

•

Splits de organisatie op in los gekoppelde services

•

Cloud
Services - Eigenschappen
•

Composeable
Andere services als bouwstenen

•

Discoverable
Metadata voor post- en precondities

•

Granular
Ondeelbaar

Gevolg: IT systeem niet omgooien bij een kleine aanpassing
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
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, zoekbaar

•

Description
Formele beschrijving door metadata

•

Communication
Set van afspraken voor communicatie
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
SOAP
Vroeger: Simple Object Access Protocol, Nu: gewoon SOAP
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
Communication: SOAP
Zorgt voor:
•

Berichtenstructuur: XML

•

Berichten verwerken: Processingmodel

•

Berichten langs verschillende transportprotocollen
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: abstract en concreet
 Abstract: Vocabulary, Message, Interaction
 Concreet: Onderliggend protocol, netwerkadres, …
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
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.
REST
Representational state transfer
Wat is REST?
•

Architecturale stijl voor gedistribueerde systemen

•

Navigational-oriented architectuur

•

Doctorale thesis Roy Fielding (2000)

•

Nadruk op efficiënte communicatie van gegevens
Description en discovery
•

Description
Geen echte richtlijnen
Indien toch nodig: WADL

•

Discovery
Overbodig gebleken
Wildgroei aan UDDI registers
Indien toch nodig: DNS
Resource-based
•

Nadruk op resources

•

Identificeren aan de hand van URI's

•

Meerdere representaties mogelijk voor een resource
(XML, JSON, ...)
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 verschillende platformen

•

Componenten kunnen onafhankelijk van elkaar worden ontwikkeld

(Happy) Clients

Client-server

Server
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
Cache
•

Alle responses kunnen worden opgeslagen in een cache

•

Positieve invloed op netwerkefficiëntie

•

Verminderde latency en betrouwbaarheid

Client-server - Stateless - Cache
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
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
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
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
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)

•

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)
Webservices
Wouter Janssens & Tom Haegemans

Más contenido relacionado

Similar a Webservices

Integratie met de Cloud
Integratie met de CloudIntegratie met de Cloud
Integratie met de CloudArno Flapper
 
Tivoli Directory Integrator door Marcel de Hoog
Tivoli Directory Integrator door Marcel de HoogTivoli Directory Integrator door Marcel de Hoog
Tivoli Directory Integrator door Marcel de HoogRoland Driesen
 
Informatiesessie to cloud or not to cloud
Informatiesessie to cloud or not to cloudInformatiesessie to cloud or not to cloud
Informatiesessie to cloud or not to cloudVanveen informatica
 
DSD-NL 2019 Cloud services in onze waterwereld - Schotmeijer
DSD-NL 2019 Cloud services in onze waterwereld - SchotmeijerDSD-NL 2019 Cloud services in onze waterwereld - Schotmeijer
DSD-NL 2019 Cloud services in onze waterwereld - SchotmeijerDeltares
 
Platform Business Informatieplanning - What about the cloud
Platform Business Informatieplanning - What about the cloudPlatform Business Informatieplanning - What about the cloud
Platform Business Informatieplanning - What about the cloudBart Zuidgeest
 
Building a Service Oriented System: An Introduction
Building a Service Oriented System: An IntroductionBuilding a Service Oriented System: An Introduction
Building a Service Oriented System: An IntroductionDennis Doomen
 
Hybride implementaties voor Office 365
Hybride implementaties voor Office 365Hybride implementaties voor Office 365
Hybride implementaties voor Office 365Delta-N
 
20111013 view point interactief - soap calls
20111013   view point interactief - soap calls20111013   view point interactief - soap calls
20111013 view point interactief - soap callsjwlogemann
 
Technische sessie: Intro to CQRS
Technische sessie: Intro to CQRSTechnische sessie: Intro to CQRS
Technische sessie: Intro to CQRSABC-GROEP.BE
 
Saa s4channel 24 november 2010l waarom nu
Saa s4channel 24 november 2010l waarom nuSaa s4channel 24 november 2010l waarom nu
Saa s4channel 24 november 2010l waarom nuRuud Ramakers
 
Meer Over Management Informatie
Meer Over Management InformatieMeer Over Management Informatie
Meer Over Management InformatieAlbert_Akkermans
 
Crowd Designing Microservices Architecture
Crowd Designing Microservices ArchitectureCrowd Designing Microservices Architecture
Crowd Designing Microservices ArchitectureRubiX BV
 
Overheid360 standaard documentcreatie
Overheid360 standaard documentcreatieOverheid360 standaard documentcreatie
Overheid360 standaard documentcreatieKING
 
Presentatie Shift16 Organiseer IT voor de Cloud
Presentatie Shift16 Organiseer IT voor de CloudPresentatie Shift16 Organiseer IT voor de Cloud
Presentatie Shift16 Organiseer IT voor de CloudMarcel Van der Linden
 
Migration Van Asp Naar Saa S Cloud En Waarom Versie 1
Migration Van Asp Naar Saa S  Cloud En Waarom Versie 1Migration Van Asp Naar Saa S  Cloud En Waarom Versie 1
Migration Van Asp Naar Saa S Cloud En Waarom Versie 1Ruud Ramakers
 

Similar a Webservices (20)

Integratie met de Cloud
Integratie met de CloudIntegratie met de Cloud
Integratie met de Cloud
 
Tivoli Directory Integrator door Marcel de Hoog
Tivoli Directory Integrator door Marcel de HoogTivoli Directory Integrator door Marcel de Hoog
Tivoli Directory Integrator door Marcel de Hoog
 
Informatiesessie to cloud or not to cloud
Informatiesessie to cloud or not to cloudInformatiesessie to cloud or not to cloud
Informatiesessie to cloud or not to cloud
 
DSD-NL 2019 Cloud services in onze waterwereld - Schotmeijer
DSD-NL 2019 Cloud services in onze waterwereld - SchotmeijerDSD-NL 2019 Cloud services in onze waterwereld - Schotmeijer
DSD-NL 2019 Cloud services in onze waterwereld - Schotmeijer
 
Platform Business Informatieplanning - What about the cloud
Platform Business Informatieplanning - What about the cloudPlatform Business Informatieplanning - What about the cloud
Platform Business Informatieplanning - What about the cloud
 
Cloud computing lunchsessie (v2)
Cloud computing lunchsessie (v2)Cloud computing lunchsessie (v2)
Cloud computing lunchsessie (v2)
 
Building a Service Oriented System: An Introduction
Building a Service Oriented System: An IntroductionBuilding a Service Oriented System: An Introduction
Building a Service Oriented System: An Introduction
 
Hybride implementaties voor Office 365
Hybride implementaties voor Office 365Hybride implementaties voor Office 365
Hybride implementaties voor Office 365
 
Webinar - Wat is SCSN? - smart connected supplier network
Webinar - Wat is SCSN? - smart connected supplier networkWebinar - Wat is SCSN? - smart connected supplier network
Webinar - Wat is SCSN? - smart connected supplier network
 
Api kooien les 1
Api kooien les 1Api kooien les 1
Api kooien les 1
 
20111013 view point interactief - soap calls
20111013   view point interactief - soap calls20111013   view point interactief - soap calls
20111013 view point interactief - soap calls
 
Cloud computing overzicht
Cloud computing overzichtCloud computing overzicht
Cloud computing overzicht
 
Technische sessie: Intro to CQRS
Technische sessie: Intro to CQRSTechnische sessie: Intro to CQRS
Technische sessie: Intro to CQRS
 
Saa s4channel 24 november 2010l waarom nu
Saa s4channel 24 november 2010l waarom nuSaa s4channel 24 november 2010l waarom nu
Saa s4channel 24 november 2010l waarom nu
 
Tiende Meetup: Microservices
Tiende Meetup: MicroservicesTiende Meetup: Microservices
Tiende Meetup: Microservices
 
Meer Over Management Informatie
Meer Over Management InformatieMeer Over Management Informatie
Meer Over Management Informatie
 
Crowd Designing Microservices Architecture
Crowd Designing Microservices ArchitectureCrowd Designing Microservices Architecture
Crowd Designing Microservices Architecture
 
Overheid360 standaard documentcreatie
Overheid360 standaard documentcreatieOverheid360 standaard documentcreatie
Overheid360 standaard documentcreatie
 
Presentatie Shift16 Organiseer IT voor de Cloud
Presentatie Shift16 Organiseer IT voor de CloudPresentatie Shift16 Organiseer IT voor de Cloud
Presentatie Shift16 Organiseer IT voor de Cloud
 
Migration Van Asp Naar Saa S Cloud En Waarom Versie 1
Migration Van Asp Naar Saa S  Cloud En Waarom Versie 1Migration Van Asp Naar Saa S  Cloud En Waarom Versie 1
Migration Van Asp Naar Saa S Cloud En Waarom Versie 1
 

Webservices