Vad är webbtjänster? Arkitektur, typer, exempel

Innehållsförteckning:

Anonim

Vad är webbtjänst?

Webbtjänst är ett standardiserat medium för att sprida kommunikation mellan klient- och serverapplikationer på Internet. En webbtjänst är en mjukvarumodul som är utformad för att utföra en viss uppsättning uppgifter.

  • Webbtjänster inom molntjänster kan sökas över nätverket och kan också åberopas därefter.
  • När webbtjänsten anropas kan den tillhandahålla funktionaliteten till klienten, som åberopar den webbtjänsten.

I denna webbtjänsthandledning lär du dig grundläggande webbtjänster-

  • Hur fungerar WebServices?
  • Varför behöver du en webbtjänst?
  • Typ av webbtjänst
  • Fördelar med webbtjänster
  • Webbtjänstarkitektur
  • Webbtjänstegenskaper
  • Hur fungerar WebServices?

    Hur fungerar webbtjänster?

    Ovanstående diagram visar en mycket förenklad bild av hur en webbtjänst faktiskt skulle fungera. Klienten skulle åberopa en serie webbtjänstsamtal via förfrågningar till en server som skulle vara värd för den faktiska webbtjänsten.

    Dessa förfrågningar görs genom så kallade fjärrprocedursamtal. Remote Procedure Calls (RPC) är samtal som görs till metoder som är värd för relevant webbtjänst.

    Som ett exempel tillhandahåller Amazon en webbtjänst som ger priser för produkter som säljs online via amazon.com. Frontend- eller presentationslagret kan vara i .Net eller Java, men programmeringsspråket kan ha kommunikationsförmåga med webbtjänsten.

    Huvudkomponenten i en webbtjänstdesign är data som överförs mellan klienten och servern, och det är XML. XML (Extensible markup language) är en motsvarighet till HTML och lätt att förstå det mellanliggande språket som förstås av många programmeringsspråk.

    Så när applikationer pratar med varandra pratar de faktiskt i XML. Detta ger en gemensam plattform för applikationer som utvecklats på olika programmeringsspråk för att prata med varandra.

    Webbtjänster använder något som kallas SOAP (Simple Object Access Protocol) för att skicka XML-data mellan applikationer. Uppgifterna skickas via normal HTTP. Data som skickas från webbtjänsten till applikationen kallas ett SOAP-meddelande. SOAP-meddelandet är inget annat än ett XML-dokument. Eftersom dokumentet är skrivet i XML kan klientapplikationen som ringer webbtjänsten skrivas på vilket programmeringsspråk som helst.

    Varför behöver du en webbtjänst?

    Moderna affärsapplikationer använder olika programmeringsplattformar för att utveckla webbaserade applikationer. Vissa applikationer kan utvecklas i Java, andra i .Net, medan andra i Angular JS, Node.js, etc.

    Oftast behöver inte dessa heterogena applikationer någon form av kommunikation för att ske mellan dem. Eftersom de är byggda med olika utvecklingsspråk blir det verkligen svårt att säkerställa korrekt kommunikation mellan applikationer.

    Här kommer webbtjänster in. Webbtjänster ger en gemensam plattform som gör det möjligt för flera applikationer byggda på olika programmeringsspråk att ha förmågan att kommunicera med varandra.

    Typ av webbtjänst

    Det finns huvudsakligen två typer av webbtjänster.

    1. SOAP-webbtjänster.
    2. RESTful webbtjänster.

    För att en webbtjänst ska kunna fungera fullt ut, finns det vissa komponenter som måste vara på plats. Dessa komponenter måste vara närvarande oavsett vilket språk som används för programmering av webbtjänsten.

    Låt oss titta på dessa komponenter mer detaljerat.

    SOAP (Simple Object Access Protocol)

    SOAP är känt som ett transportoberoende meddelandeprotokoll. SOAP är baserat på överföring av XML-data som SOAP-meddelanden. Varje meddelande har något som kallas ett XML-dokument. Endast XML-dokumentets struktur följer ett specifikt mönster, men inte innehållet. Den bästa delen av webbtjänster och SOAP är att allt skickas via HTTP, vilket är standardprotokollet.

    Här är vad ett SOAP-meddelande består av

    • Varje SOAP-dokument måste ha ett rotelement som kallas -elementet. Rotelementet är det första elementet i ett XML-dokument.
    • "Kuvertet" är i sin tur uppdelat i två delar. Den första är rubriken, och nästa är kroppen.
    • Rubriken innehåller routningsdata som i grunden är den information som berättar XML-dokumentet till vilken klient det behöver skickas till.
    • Kroppen innehåller det faktiska meddelandet.

    Diagrammet nedan visar ett enkelt exempel på kommunikation via SOAP.

    SOAP-protokoll

    Vi kommer att diskutera SOAP i detalj i denna handledning.

    WSDL (beskrivningsspråk för webbtjänster)

    En webbtjänst kan inte användas om den inte kan hittas . Klienten som anropar webbtjänsten ska veta var webbtjänsten faktiskt finns.

    För det andra måste klientapplikationen veta vad webbtjänsten faktiskt gör så att den kan åberopa rätt webbtjänst. Detta görs med hjälp av WSDL, känd som beskrivningsspråket för webbtjänster. WSDL-filen är återigen en XML-baserad fil som i princip berättar för klientapplikationen vad webbtjänsten gör. Genom att använda WSDL-dokumentet skulle klientapplikationen kunna förstå var webbtjänsten finns och hur den kan användas.

    Exempel på webbtjänster

    Ett exempel på webbtjänster för en WSDL-fil ges nedan.

    
    
    
    

    De viktiga aspekterna att notera om ovanstående WSDL-deklarationsexempel på webbtjänster är följande:

    1. - Meddelandeparametern i WSDL-definitionen används för att definiera de olika dataelementen för varje operation som utförs av webbtjänsten. Så i webbtjänstexemplen ovan har vi två meddelanden som kan utbytas mellan webbtjänsten och klientapplikationen, det ena är "TutorialRequest" och det andra är "TutorialResponse" -operationen. TutorialRequest innehåller ett element som heter "TutorialID" som är av typsträngen. På samma sätt innehåller TutorialResponse ett element som heter "TutorialName" som också är en typsträng.
    2. - Detta beskriver faktiskt den operation som kan utföras av webbtjänsten, som i vårt fall kallas självstudier. Denna åtgärd kan ta två meddelanden; det ena är ett inmatningsmeddelande och det andra är det utgående meddelandet.
    3. - Detta element innehåller det protokoll som används. Så i vårt fall definierar vi det för att använda http ( http://schemas.xmlsoap.org/soap/http ). Vi anger också andra detaljer för operationens kropp, som namnområdet och om meddelandet ska kodas.

    Vi kommer att diskutera "WDSL" i detalj i denna handledning.

    Universal Description, Discovery, and Integration (UDDI)

    UDDI är en standard för att beskriva, publicera och upptäcka de webbtjänster som tillhandahålls av en viss tjänsteleverantör. Det ger en specifikation som hjälper till att vara värd för informationen på webbtjänster.

    Nu diskuterade vi i föregående ämne om WSDL och hur den innehåller information om vad webbtjänsten faktiskt gör. Men hur kan en klientapplikation hitta en WSDL-fil för att förstå de olika operationerna som en webbtjänst erbjuder? Så UDDI är svaret på detta och ger ett förråd där WSDL-filer kan vara värd. Så klientapplikationen kommer att ha fullständig åtkomst till UDDI, som fungerar som en databas som innehåller alla WSDL-filer.

    Precis som en telefonkatalog har en viss persons namn, adress och telefonnummer, på samma sätt som UDDI-registret har relevant information för webbtjänsten . Så att en klientapplikation vet var den kan hittas.

    Fördelar med webbtjänster

    Vi förstår redan varför webbtjänster i första hand uppstod, vilket var att tillhandahålla en plattform som skulle göra det möjligt för olika applikationer att prata med varandra.

    Men låt oss titta på listan över fördelar med webbtjänster för varför det är viktigt att använda webbtjänster.

    1. Exponera affärsfunktionalitet i nätverket - En webbtjänst är en enhet med hanterad kod som ger någon form av funktionalitet till klientapplikationer eller slutanvändare. Denna funktionalitet kan åberopas via HTTP-protokollet, vilket innebär att den också kan åberopas via internet. Numera finns alla applikationer på internet vilket gör syftet med webbtjänster mer användbart. Det betyder att webbtjänsten kan vara var som helst på internet och tillhandahålla nödvändig funktionalitet efter behov.

    2. Interoperabilitet mellan applikationer - Webbtjänster gör det möjligt för olika applikationer att prata med varandra och dela data och tjänster med varandra. Alla typer av applikationer kan prata med varandra. Så istället för att skriva specifik kod som bara kan förstås av specifika applikationer kan du nu skriva generisk kod som kan förstås av alla applikationer

    3. Ett standardiserat protokoll som alla förstår - webbtjänster använder standardiserat industriprotokoll för kommunikationen. Alla fyra lager (Service Transport, XML Messaging, Service Description och Service Discovery-lager) använder väldefinierade protokoll i webbtjänstens protokollstack.

    4. Minskad kommunikationskostnad - Webbtjänster använder SOAP via HTTP-protokoll, så att du kan använda ditt befintliga billiga internet för att implementera webbtjänster.

    Web Services Architecture

    Varje ram behöver någon form av arkitektur för att se till att hela ramverket fungerar som önskat, på samma sätt i webbtjänster. Den Web Services Architecture består av tre olika roller som anges nedan:

    1. Leverantör - Leverantören skapar webbtjänsten och gör den tillgänglig för klientapplikationer som vill använda den.
    2. Begärare - En begärare är inget annat än klientapplikationen som behöver kontakta en webbtjänst. Klientapplikationen kan vara ett .Net, Java eller något annat språkbaserat program som letar efter någon form av funktionalitet via en webbtjänst.
    3. Mäklare - Mäklaren är inget annat än applikationen som ger tillgång till UDDI. UDDI, som diskuterades i det tidigare ämnet, gör det möjligt för klientapplikationen att hitta webbtjänsten.

    Diagrammet nedan visar hur tjänsteleverantören, serviceförfrågan och serviceregistret interagerar med varandra.

    Web Services Architecture
    1. Publicera - En leverantör informerar mäklaren (tjänstregistret) om webbtjänstens existens genom att använda mäklarens publiceringsgränssnitt för att göra tjänsten tillgänglig för kunder
    2. Sök - Begäraren konsulterar mäklaren för att hitta en publicerad webbtjänst
    3. Bindning - Med informationen som den fick från mäklaren (tjänstregistret) om webbtjänsten, kan begäraren binda eller åberopa webbtjänsten.

    Webbtjänstegenskaper

    Webbtjänster har följande speciella beteendeegenskaper:

    1. De är XML-baserade - Web Services använder XML för att representera data i representations- och datatransportlagren. Användning av XML eliminerar alla nätverk, operativsystem eller plattformsberoende eftersom XML är det vanliga språket som alla förstår.

    2. Löst kopplat - Löst kopplat betyder att klienten och webbtjänsten inte är bundna till varandra, vilket innebär att även om webbtjänsten förändras över tiden, bör det inte ändra sättet som klienten ringer till webbtjänsten. Att anta en löst kopplad arkitektur tenderar att göra programvarusystem mer hanterbara och möjliggör enklare integration mellan olika system.

    3. Synkron eller asynkron funktionalitet - Synkronitet avser bindning av klienten till utförandet av tjänsten. I synkrona operationer väntar klienten faktiskt på att webbtjänsten ska slutföra en operation. Ett exempel på detta är förmodligen ett scenario där en databas läs- och skrivoperation utförs. Om data läses från en databas och därefter skrivs till en annan måste operationerna göras på ett sekventiellt sätt. Asynkrona operationer tillåter en klient att anropa en tjänst och sedan utföra andra funktioner parallellt. Detta är en av de vanligaste och förmodligen de mest föredragna teknikerna för att säkerställa att andra tjänster inte stoppas när en viss operation utförs.

    4. Möjlighet att stödja Remote Procedure Calls (RPCs) - Webbtjänster gör det möjligt för klienter att åberopa procedurer, funktioner och metoder på fjärrobjekt med hjälp av ett XML-baserat protokoll. Fjärrprocedurer exponerar in- och utmatningsparametrar som en webbtjänst måste stödja.

    5. Stöder dokumentutbyte - En av de viktigaste fördelarna med XML är dess generiska sätt att representera inte bara data utan också komplexa dokument. Dessa dokument kan vara lika enkla som att representera en aktuell adress, eller så kan de vara lika komplexa som att representera en hel bok.