Hva er webtjenester? Architecture, Typer, Eksempel
โก Smart oppsummering
Webtjenester tilbyr et standardisert medium for klient- og serverapplikasjoner for kommunikasjon over World Wide Web. Denne ressursen forklarer hvordan webtjenester fungerer, deres SOAP- og RESTful-typer, WSDL- og UDDI-komponentene, arkitekturroller og viktige egenskaper.
Hva er webtjeneste?
webtjeneste er et standardisert medium for รฅ spre kommunikasjon mellom klient- og serverapplikasjonene pรฅ WWW (World Wide Web). En webtjeneste er en programvaremodul som er designet for รฅ utfรธre et bestemt sett med oppgaver.
- Webtjenester i cloud computing kan sรธkes etter over nettverket og kan ogsรฅ pรฅkalles tilsvarende.
- Nรฅr den pรฅkalles, vil webtjenesten kunne tilby funksjonaliteten til klienten, som pรฅkaller den nettjenesten.
Hvordan fungerer webtjenester?
Diagrammet ovenfor viser et veldig forenklet syn pรฅ hvordan en webtjeneste faktisk vil fungere. Klienten vil pรฅkalle en serie webtjenesteanrop via forespรธrsler til en server som vil vรฆre vert for den faktiske webtjenesten.
Disse forespรธrslene gjรธres gjennom det som kalles eksterne prosedyrekall. Eksterne prosedyrekall (RPC) er kall som gjรธres til metoder som driftes av den relevante webtjenesten.
Som et eksempel, Amazon tilbyr en webtjeneste som gir priser for produkter som selges online via amazon.com. Frontend- eller presentasjonslaget kan vรฆre i .Net eller Java, men begge programmeringssprรฅkene ville ha muligheten til รฅ kommunisere med webtjenesten.
Hovedkomponenten i en webtjenestedesign er dataene som overfรธres mellom klienten og serveren, og det er XML. XML (Extensible Markup Language) er et motstykke til HTML og et lettforstรฅelig mellomsprรฅk som forstรฅs av mange programmeringssprรฅk.
Sรฅ nรฅr applikasjoner kommuniserer med hverandre, kommuniserer de faktisk i XML. Dette gir en felles plattform for applikasjoner utviklet i ulike programmeringssprรฅk, slik at de kan kommunisere med hverandre.
Webtjenester bruker noe kjent som SOAP (Simple Object Access Protocol) for รฅ sende XML-data mellom applikasjoner. Dataene sendes over vanlig HTTP. Dataene som sendes fra nettjenesten til applikasjonen kalles en SOAP-melding. SOAP-meldingen er ikke annet enn et XML-dokument. Siden dokumentet er skrevet i XML, kan klientapplikasjonen som kaller nettjenesten skrives i et hvilket som helst programmeringssprรฅk.
Hvorfor trenger du en webtjeneste?
Moderne forretningsapplikasjoner bruker en rekke programmeringsplattformer for รฅ utvikle nettbaserte applikasjoner. Noen applikasjoner kan vรฆre utviklet i Java, andre i .Net, mens noen andre i Angular JS, Node.js, osv.
Som oftest trenger disse heterogene applikasjonene en eller annen form for kommunikasjon mellom seg. Siden de er bygget med forskjellige utviklingssprรฅk, blir det veldig vanskelig รฅ sikre nรธyaktig kommunikasjon mellom applikasjoner.
Det er her webtjenester kommer inn. Webtjenester gir en felles plattform som tillater flere applikasjoner bygget pรฅ forskjellige programmerings sprรฅk รฅ ha evnen til รฅ kommunisere med hverandre.
Typer av webtjenester
Det finnes hovedsakelig to typer webtjenester:
- SOAP webtjenester.
- RESTful webtjenester.
For at en webtjeneste skal vรฆre fullt funksjonell, er det visse komponenter som mรฅ vรฆre pรฅ plass. Disse komponentene mรฅ vรฆre til stede uavhengig av hvilket utviklingssprรฅk som brukes til programmering av webtjenesten. La oss se nรฆrmere pรฅ disse komponentene.
SOAP (Simple Object Access Protocol)
SOAP er kjent som en transportuavhengig meldingsprotokoll. SOAP er basert pรฅ overfรธring av XML-data som SOAP-meldinger. Hver melding har noe som er kjent som et XML-dokument. Bare strukturen til XML-dokumentet fรธlger et bestemt mรธnster, men ikke innholdet. Det beste med webtjenester og SOAP er at alt sendes via HTTP, som er standard webprotokoll.
Her er hva en SOAP-melding bestรฅr av:
- Hvert SOAP-dokument mรฅ ha et rotelement kjent som element. Rotelementet er det fรธrste elementet i et XML-dokument.
- "Konvolutten" er igjen delt i 2 deler. Den fรธrste er overskriften, og den neste er kroppen.
- Overskriften inneholder rutingsdataene, som i utgangspunktet er informasjonen som forteller XML-dokumentet hvilken klient det mรฅ sendes til.
- Brรธdteksten vil inneholde selve meldingen.
Diagrammet nedenfor viser et enkelt eksempel pรฅ kommunikasjon via SOAP.
Vi vil diskutere SOAP i detalj i dette tutorial.
WSDL (webtjenester Descriptionsprรฅk)
En webtjeneste kan ikke brukes hvis den ikke finnes. Klienten som starter webtjenesten bรธr vite hvor webtjenesten faktisk befinner seg.
For det andre mรฅ klientapplikasjonen vite hva webtjenesten faktisk gjรธr, slik at den kan kalle riktig webtjeneste. Dette gjรธres ved hjelp av WSDL, kjent som webtjenester. Description-sprรฅk. WSDL-filen er igjen en XML-basert fil som i utgangspunktet forteller klientapplikasjonen hva webtjenesten gjรธr. Ved รฅ bruke WSDL-dokumentet vil klientapplikasjonen kunne forstรฅ hvor webtjenesten befinner seg og hvordan den kan brukes.
Eksempel pรฅ netttjeneste
Et netttjenesteeksempel pรฅ en WSDL-fil er gitt nedenfor.
<definitions> <message name="TutorialRequest"> <part name="TutorialID" type="xsd:string"/> </message> <message name="TutorialResponse"> <part name="TutorialName" type="xsd:string"/> </message> <portType name="Tutorial_PortType"> <operation name="Tutorial"> <input message="tns:TutorialRequest"/> <output message="tns:TutorialResponse"/> </operation> </portType> <binding name="Tutorial_Binding" type="tns:Tutorial_PortType"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="Tutorial"> <soap:operation soapAction="Tutorial"/> <input> <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:examples:Tutorialservice" use="encoded"/> </input> <output> <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:examples:Tutorialservice" use="encoded"/> </output> </operation> </binding> </definitions>
De viktige aspektene รฅ merke seg om de ovennevnte WSDL-erklรฆringseksemplene pรฅ webtjenester er som fรธlger:
- โ Meldingsparameteren i WSDL-definisjonen brukes til รฅ definere de ulike dataelementene for hver operasjon utfรธrt av webtjenesten. Sรฅ i webtjenesteeksemplet ovenfor har vi to meldinger som kan utveksles mellom webtjenesten og klientapplikasjonen: den ene er ยซTutorialRequestยป, og den andre er ยซTutorialResponseยป-operasjonen. TutorialRequest inneholder et element kalt ยซTutorialIDยป som er av typen streng. Pรฅ samme mรฅte inneholder TutorialResponse-operasjonen et element kalt ยซTutorialNameยป som ogsรฅ er en type streng.
- โ Dette beskriver faktisk operasjonen som kan utfรธres av webtjenesten, som i vรฅrt tilfelle kalles veiledning. Denne operasjonen kan ta to meldinger: den ene er en inndatamelding og den andre er utdatameldingen.
- โ Dette elementet inneholder protokollen som brukes. Sรฅ i vรฅrt tilfelle definerer vi den til รฅ bruke HTTP (http://schemas.xmlsoap.org/soap/http). Vi spesifiserer ogsรฅ andre detaljer for operasjonens brรธdtekst, som navnerommet og om meldingen skal kodes.
Vi vil diskutere ยซWSDLยป i detalj i denne tutorial.
Universell Description, oppdagelse og integrasjon (UDDI)
UDDI er en standard for รฅ beskrive, publisere og oppdage nettjenestene som tilbys av en bestemt tjenesteleverandรธr. Den gir en spesifikasjon som hjelper til med รฅ vรฆre vert for informasjonen pรฅ webtjenester.
Nรฅ diskuterte vi i forrige emne om WSDL og hvordan den inneholder informasjon om hva webtjenesten faktisk gjรธr. Men hvordan kan en klientapplikasjon finne en WSDL-fil for รฅ forstรฅ de ulike operasjonene som tilbys av en webtjeneste? Sรฅ UDDI er svaret pรฅ dette og gir et depot som WSDL-filer kan vรฆre vert for. Sรฅ klientapplikasjonen vil ha full tilgang til UDDI, som fungerer som en database som inneholder alle WSDL-filene.
Akkurat som en telefonkatalog har navn, adresse og telefonnummer til en bestemt person, vil UDDI-registeret ha relevant informasjon for webtjenesten., slik at en klientapplikasjon vet hvor den kan finnes.
Fordeler med webtjenester
Vi forstรฅr allerede hvorfor webtjenester oppsto i utgangspunktet, som var for รฅ tilby en plattform som kunne tillate ulike applikasjoner รฅ kommunisere med hverandre. Men la oss se pรฅ listen over fordeler med webtjenester for รฅ forstรฅ hvorfor det er viktig รฅ bruke webtjenester.
- Eksponering av forretningsfunksjonalitet pรฅ nettverket โ En webtjeneste er en enhet med administrert kode som gir en slags funksjonalitet til klientapplikasjoner eller sluttbrukere. Denne funksjonaliteten kan kalles over HTTP-protokollen, noe som betyr at den ogsรฅ kan kalles over internett. I dag er alle applikasjoner pรฅ internett, noe som gjรธr formรฅlet med webtjenester mer nyttig. Det betyr at webtjenesten kan vรฆre hvor som helst pรฅ internett og tilby den nรธdvendige funksjonaliteten etter behov.
- Interoperabilitet mellom applikasjoner โ Nettjenester lar ulike applikasjoner kommunisere med hverandre og dele data og tjenester seg imellom. Alle typer applikasjoner kan kommunisere med hverandre. Sรฅ i stedet for รฅ skrive spesifikk kode som bare kan forstรฅs av spesifikke applikasjoner, kan du nรฅ skrive generisk kode som kan forstรฅs av alle applikasjoner.
- En standardisert protokoll som alle forstรฅr โ Nettjenester bruker en standardisert bransjeprotokoll for kommunikasjonen. Alle de fire lagene (tjenestetransport, XML-meldinger, tjeneste Description og Service Discovery-lag) bruker veldefinerte protokoller i protokollstakken for webtjenester.
- Reduksjon i kommunikasjonskostnader โ Webtjenester bruker SOAP over HTTP-protokoll, slik at du kan bruke ditt eksisterende lavkostinternett for รฅ implementere webtjenester.
Web Services Architecture
Ethvert rammeverk trenger en eller annen form for arkitektur for รฅ sikre at hele rammeverket fungerer som รธnsket. Pรฅ samme mรฅte, i webtjenester, Web Services Architecture bestรฅr av tre forskjellige roller som angitt nedenfor:
- Provider โ Leverandรธren oppretter webtjenesten og gjรธr den tilgjengelig for klientapplikasjoner som รธnsker รฅ bruke den.
- Anmoder โ En forespรธrsel er ikke annet enn klientapplikasjonen som mรฅ kontakte en webtjeneste. Klientapplikasjonen kan vรฆre en .Net, Java, eller et hvilket som helst annet sprรฅkbasert program som ser etter en slags funksjonalitet via en webtjeneste.
- Megler โ Megleren er ikke annet enn applikasjonen som gir tilgang til UDDI. UDDI, som omtalt i det tidligere emnet, gjรธr det mulig for klientapplikasjonen รฅ finne webtjenesten.
Diagrammet nedenfor viser hvordan tjenesteleverandรธren, tjenesteforespรธreren og tjenesteregisteret samhandler med hverandre.
- Publiser โ En leverandรธr informerer megleren (tjenesteregisteret) om eksistensen av webtjenesten ved รฅ bruke meglerens publiseringsgrensesnitt for รฅ gjรธre tjenesten tilgjengelig for klienter.
- Finn โ Anmoderen konsulterer megleren for รฅ finne en publisert nettjeneste.
- Binde โ Med informasjonen den har fรฅtt fra megleren (tjenesteregisteret) om webtjenesten, kan forespรธrselen binde eller pรฅkalle webtjenesten.
Kjennetegn pรฅ webtjenesten
Nettjenester har fรธlgende spesielle atferdsegenskaper:
- De er XML-baserte โ Webtjenester bruker XML til รฅ representere dataene pรฅ representasjons- og datatransportlagene. Bruk av XML eliminerer enhver avhengighet av nettverk, operativsystem eller plattform, siden XML er det vanlige sprรฅket som forstรฅs av alle.
- Lรธst koblet โ Lรธst koblet betyr at klienten og nettjenesten ikke er bundet til hverandre, noe som betyr at selv om nettjenesten endrer seg over tid, skal den ikke endre mรฅten klienten ringer nettjenesten pรฅ. ร ta i bruk en lรธst koblet arkitektur har en tendens til รฅ gjรธre programvaresystemer mer hรฅndterbare og tillater enklere integrasjon mellom ulike systemer.
- Synchronous eller asynkron funksjonalitet - Synchronicity refererer til klientens binding til utfรธrelsen av tjenesten. Ved synkrone operasjoner vil klienten faktisk vente pรฅ at webtjenesten skal fullfรธre en operasjon. Et eksempel pรฅ dette er sannsynligvis et scenario der en databaselese- og skriveoperasjon blir utfรธrt. Hvis data leses fra en database og deretter skrives til en annen, mรฅ operasjonene gjรธres pรฅ en sekvensiell mรฅte. Asynkrone operasjoner lar en klient pรฅkalle en tjeneste og deretter utfรธre andre funksjoner parallelt. Dette er en av de vanlige og sannsynligvis mest foretrukne teknikkene for รฅ sikre at andre tjenester ikke stoppes nรฅr en bestemt operasjon utfรธres.
- Evne til รฅ stรธtte Remote Procedure Calls (RPCer) โ Webtjenester gjรธr det mulig for klienter รฅ pรฅkalle prosedyrer, funksjoner og metoder pรฅ eksterne objekter ved hjelp av en XML-basert protokoll. Eksterne prosedyrer avslรธrer inngangs- og utdataparametere som en webtjeneste mรฅ stรธtte.
- Stรธtter dokumentutveksling โ En av hovedfordelene med XML er dens generiske mรฅte รฅ representere ikke bare data pรฅ, men ogsรฅ komplekse dokumenter. Disse dokumentene kan vรฆre sรฅ enkle som รฅ representere en gjeldende adresse, eller de kan vรฆre like komplekse som รฅ representere en hel bok.




