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. 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
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
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
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. 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. 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.
23. Wat is REST?
•
Architecturale stijl voor gedistribueerde systemen
•
Navigational-oriented architectuur
•
Doctorale thesis Roy Fielding (2000)
•
Nadruk op efficiënte communicatie van gegevens
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. 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. Cache
•
Alle responses kunnen worden opgeslagen in een cache
•
Positieve invloed op netwerkefficiëntie
•
Verminderde latency en betrouwbaarheid
Client-server - Stateless - Cache
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. 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. 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. 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
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)