Wat is webservice?
Webservice is een gestandaardiseerd medium om de communicatie tussen de client- en servertoepassingen op het World Wide Web te verspreiden. Een webservice is een softwaremodule die is ontworpen om een bepaalde reeks taken uit te voeren.
- Webservices in cloud computing kunnen via het netwerk worden gezocht en kunnen ook dienovereenkomstig worden opgeroepen.
- Wanneer deze wordt aangeroepen, kan de webservice de functionaliteit aan de client leveren, die die webservice oproept.
In deze zelfstudie over webservices leert u de basisprincipes van webservices:
- Hoe WebServices werken?
- Waarom heb je een webservice nodig?
- Type webservice
- Voordelen van webservices
- Webservice-architectuur
- Kenmerken van webservices
- SOAP-webservices.
- RESTful webservices.
- Elk SOAP-document moet een root-element hebben dat bekend staat als het
-element. Het root-element is het eerste element in een XML-document. - De "envelop" is op zijn beurt verdeeld in 2 delen. De eerste is de koptekst en de volgende is de body.
- De header bevat de routeringsgegevens die in feite de informatie zijn die het XML-document vertelt naar welke client het moet worden verzonden.
- De body bevat het daadwerkelijke bericht.
Hoe WebServices werken?
Het bovenstaande diagram toont een zeer simplistisch beeld van hoe een webservice eigenlijk zou werken. De client zou een reeks webservice-oproepen aanroepen via verzoeken naar een server die de eigenlijke webservice zou hosten.
Deze verzoeken worden gedaan via zogenaamde externe procedureaanroepen. Remote Procedure Calls (RPC) zijn aanroepen naar methoden die worden gehost door de relevante webservice.
Amazon biedt bijvoorbeeld een webservice die prijzen biedt voor producten die online worden verkocht via amazon.com. De front-end- of presentatielaag kan in .Net of Java zijn, maar beide programmeertalen kunnen communiceren met de webservice.
Het belangrijkste onderdeel van een webservice-ontwerp zijn de gegevens die worden overgedragen tussen de client en de server, en dat is XML. XML (Extensible Markup Language) is een tegenhanger van HTML en gemakkelijk te begrijpen de tussentaal die door veel programmeertalen wordt begrepen.
Dus als applicaties met elkaar praten, praten ze in feite in XML. Dit biedt een gemeenschappelijk platform voor applicaties die zijn ontwikkeld in verschillende programmeertalen om met elkaar te praten.
Webservices gebruiken zoiets als SOAP (Simple Object Access Protocol) voor het verzenden van XML-gegevens tussen applicaties. De gegevens worden via normale HTTP verzonden. De gegevens die van de webservice naar de applicatie worden verzonden, worden een SOAP-bericht genoemd. Het SOAP-bericht is niets anders dan een XML-document. Omdat het document in XML is geschreven, kan de clienttoepassing die de webservice oproept, in elke programmeertaal worden geschreven.
Waarom heb je een webservice nodig?
Moderne zakelijke applicaties gebruiken verschillende programmeerplatforms om webgebaseerde applicaties te ontwikkelen. Sommige applicaties zijn mogelijk ontwikkeld in Java, andere in .Net, terwijl andere in Angular JS, Node.js, enz.
Meestal hebben deze heterogene applicaties een soort van communicatie tussen hen nodig. Omdat ze zijn gebouwd met verschillende ontwikkeltalen, wordt het erg moeilijk om nauwkeurige communicatie tussen applicaties te garanderen.
Hier komen webservices om de hoek kijken. Webservices bieden een gemeenschappelijk platform waarmee meerdere applicaties die op verschillende programmeertalen zijn gebouwd, met elkaar kunnen communiceren.
Type webservice
Er zijn hoofdzakelijk twee soorten webservices.
Om een webservice volledig functioneel te maken, zijn er bepaalde componenten die aanwezig moeten zijn. Deze componenten moeten aanwezig zijn, ongeacht de ontwikkeltaal die wordt gebruikt voor het programmeren van de webservice.
Laten we deze componenten in meer detail bekijken.
SOAP (Simple Object Access Protocol)
SOAP staat bekend als een transportonafhankelijk berichtenprotocol. SOAP is gebaseerd op de overdracht van XML-gegevens als SOAP-berichten. Elk bericht heeft iets dat bekend staat als een XML-document. Alleen de structuur van het XML-document volgt een bepaald patroon, maar niet de inhoud. Het beste van webservices en SOAP is dat het allemaal wordt verzonden via HTTP, het standaard webprotocol.
Hier is waar een SOAP-bericht uit bestaat
Het onderstaande schema toont een eenvoudig voorbeeld van de communicatie via SOAP.
In deze tutorial zullen we SOAP in detail bespreken.
WSDL (beschrijvingstaal van webservices)
Een webservice kan niet worden gebruikt als deze niet kan worden gevonden . De klant die de webservice aanroept, moet weten waar de webservice zich daadwerkelijk bevindt.
Ten tweede moet de clienttoepassing weten wat de webservice werkelijk doet, zodat deze de juiste webservice kan aanroepen. Dit wordt gedaan met behulp van de WSDL, ook wel de beschrijvingstaal van webservices genoemd. Het WSDL-bestand is weer een XML-bestand dat in feite de clienttoepassing vertelt wat de webservice doet. Door het WSDL-document te gebruiken, zou de clienttoepassing kunnen begrijpen waar de webservice zich bevindt en hoe deze kan worden gebruikt.
Voorbeeld van webservice
Een voorbeeld van een webservices van een WSDL-bestand wordt hieronder gegeven.
De belangrijke aspecten om op te merken over de bovenstaande voorbeelden van WSDL-declaraties van webservices zijn als volgt:
- De berichtparameter in de WSDL-definitie wordt gebruikt om de verschillende gegevenselementen te definiëren voor elke bewerking die door de webservice wordt uitgevoerd. Dus in de bovenstaande voorbeelden van webservices hebben we 2 berichten die kunnen worden uitgewisseld tussen de webservice en de clienttoepassing, de ene is de "TutorialRequest" en de andere is de "TutorialResponse" -bewerking. De TutorialRequest bevat een element genaamd "TutorialID" dat van het type string is. Op dezelfde manier bevat de bewerking TutorialResponse een element met de naam "TutorialName", dat ook een typetekenreeks is. -
- Dit beschrijft eigenlijk de bewerking die kan worden uitgevoerd door de webservice, die in ons geval Tutorial wordt genoemd. Deze bewerking kan 2 berichten duren; het ene is een invoerbericht en het andere is het uitvoerbericht. - Dit element bevat het protocol dat wordt gebruikt. Dus in ons geval definiëren we het om http ( http://schemas.xmlsoap.org/soap/http ) te gebruiken. We specificeren ook andere details voor de body van de operatie, zoals de naamruimte en of het bericht moet worden gecodeerd.
In deze tutorial zullen we "WDSL" in detail bespreken.
Universele beschrijving, detectie en integratie (UDDI)
UDDI is een standaard voor het beschrijven, publiceren en ontdekken van de webservices die door een bepaalde serviceprovider worden geleverd. Het biedt een specificatie die helpt bij het hosten van de informatie op webservices.
Nu bespraken we in het vorige onderwerp over WSDL en hoe het informatie bevat over wat de webservice werkelijk doet. Maar hoe kan een clienttoepassing een WSDL-bestand lokaliseren om de verschillende bewerkingen van een webservice te begrijpen? UDDI is hier dus het antwoord op en biedt een repository waarop WSDL-bestanden kunnen worden gehost. De clienttoepassing heeft dus volledige toegang tot de UDDI, die fungeert als een database met alle WSDL-bestanden.
Net zoals een telefoongids de naam, het adres en het telefoonnummer van een bepaalde persoon heeft, zo heeft het UDDI-register de relevante informatie voor de webservice . Zodat een klanttoepassing weet, waar deze te vinden is.
Voordelen van webservices
We begrijpen al waarom webservices in de eerste plaats tot stand kwamen, namelijk om een platform te bieden waarop verschillende applicaties met elkaar konden communiceren.
Maar laten we eens kijken naar de lijst met voordelen van webservices om te zien waarom het belangrijk is om webservices te gebruiken.
-
Bedrijfsfunctionaliteit blootleggen op het netwerk - Een webservice is een eenheid van beheerde code die een of andere functionaliteit biedt aan clienttoepassingen of eindgebruikers. Deze functionaliteit kan worden aangeroepen via het HTTP-protocol, wat betekent dat deze ook via internet kan worden aangeroepen. Tegenwoordig staan alle applicaties op internet wat het doel van webservices nuttiger maakt. Dat betekent dat de webservice overal op internet kan zijn en de nodige functionaliteit kan bieden.
-
Interoperabiliteit tussen applicaties - Met webservices kunnen verschillende applicaties met elkaar praten en onderling gegevens en services delen. Alle soorten applicaties kunnen met elkaar praten. Dus in plaats van specifieke code te schrijven die alleen door specifieke applicaties kan worden begrepen, kunt u nu generieke code schrijven die door alle applicaties kan worden begrepen
-
Een gestandaardiseerd protocol dat iedereen begrijpt - Webservices gebruiken een gestandaardiseerd industrieprotocol voor de communicatie. Alle vier de lagen (servicetransport, XML-berichten, servicebeschrijving en servicedetectie) gebruiken goed gedefinieerde protocollen in de protocolstapel van webservices.
-
Verlaging van de communicatiekosten - Webservices gebruiken SOAP via HTTP-protocol, zodat u uw bestaande goedkope internet kunt gebruiken voor het implementeren van webservices.
Webservices-architectuur
Elk framework heeft een soort architectuur nodig om ervoor te zorgen dat het volledige framework naar wens werkt, op dezelfde manier in webservices. De Web Services-architectuur bestaat uit drie verschillende rollen, zoals hieronder weergegeven:
- Provider - De provider maakt de webservice en stelt deze beschikbaar aan de clienttoepassing die deze wil gebruiken.
- Aanvrager - Een aanvrager is niets anders dan de clienttoepassing die contact moet opnemen met een webservice. De clienttoepassing kan een .Net-, Java- of een andere taaltoepassing zijn die via een webservice naar een soort functionaliteit zoekt.
- Makelaar - De makelaar is niets anders dan de applicatie die toegang geeft tot de UDDI. De UDDI, zoals besproken in het eerdere onderwerp, stelt de clienttoepassing in staat de webservice te lokaliseren.
Het onderstaande diagram laat zien hoe de serviceprovider, de serviceaanvrager en het serviceregister met elkaar omgaan.
- Publiceren - Een provider informeert de makelaar (serviceregister) over het bestaan van de webservice door de publicatie-interface van de makelaar te gebruiken om de service toegankelijk te maken voor klanten
- Zoeken - De aanvrager raadpleegt de makelaar om een gepubliceerde webservice te vinden
- Binden - Met de informatie die het van de makelaar (serviceregister) heeft gekregen over de webservice, kan de aanvrager de webservice binden of aanroepen.
Kenmerken van webservices
Webservices hebben de volgende bijzondere gedragskenmerken:
-
Ze zijn op XML gebaseerd - Web Services gebruikt XML om de gegevens op de representatie- en datatransportlagen weer te geven. Door XML te gebruiken, wordt elke vorm van netwerk-, besturingssysteem- of platformafhankelijkheid geëlimineerd, aangezien XML de gemeenschappelijke taal is die door iedereen wordt begrepen.
-
Losjes gekoppeld - Losjes gekoppeld betekent dat de client en de webservice niet aan elkaar zijn gebonden, wat betekent dat zelfs als de webservice in de loop van de tijd verandert, dit de manier waarop de client de webservice aanroept niet mag veranderen. Het aannemen van een losjes gekoppelde architectuur maakt softwaresystemen beter beheersbaar en maakt een eenvoudigere integratie tussen verschillende systemen mogelijk.
-
Synchrone of asynchrone functionaliteit - Synchroniciteit verwijst naar de binding van de client aan de uitvoering van de service. Bij synchrone bewerkingen wacht de client in feite tot de webservice een bewerking heeft voltooid. Een voorbeeld hiervan is waarschijnlijk een scenario waarin een lees- en schrijfbewerking voor de database wordt uitgevoerd. Als gegevens uit de ene database worden gelezen en vervolgens naar een andere worden geschreven, moeten de bewerkingen op een sequentiële manier worden uitgevoerd. Met asynchrone bewerkingen kan een client een service aanroepen en vervolgens andere functies parallel uitvoeren. Dit is een van de meest voorkomende en waarschijnlijk de meest geprefereerde technieken om ervoor te zorgen dat andere services niet worden gestopt wanneer een bepaalde bewerking wordt uitgevoerd.
-
Mogelijkheid om Remote Procedure Calls (RPC's) te ondersteunen - Webservices stellen clients in staat procedures, functies en methoden op externe objecten aan te roepen met behulp van een op XML gebaseerd protocol. Externe procedures leggen invoer- en uitvoerparameters bloot die een webservice moet ondersteunen.
-
Ondersteunt documentuitwisseling - Een van de belangrijkste voordelen van XML is de generieke manier om niet alleen gegevens weer te geven, maar ook complexe documenten. Deze documenten kunnen zo simpel zijn als het vertegenwoordigen van een huidig adres, of ze kunnen zo complex zijn als het vertegenwoordigen van een heel boek.