Mitä verkkopalvelut ovat? Architecture, tyypit, esimerkki
Mikä on verkkopalvelu?
Web-palvelu on standardoitu tietoväline asiakas- ja palvelinsovellusten välisen tiedonsiirron edistämiseen WWW:ssä (World Wide Web). Verkkopalvelu on ohjelmistomoduuli, joka on suunniteltu suorittamaan tiettyjä tehtäviä.
- Pilvipalveluiden verkkopalveluita voidaan etsiä verkon yli ja niitä voidaan myös kutsua vastaavasti.
- Käytettäessä verkkopalvelu pystyy tarjoamaan toiminnallisuuden asiakkaalle, joka kutsuu kyseisen verkkopalvelun.
Miten WebServices toimii?

Yllä oleva kaavio näyttää hyvin yksinkertaisen kuvan siitä, kuinka verkkopalvelu todella toimisi. Asiakas kutsuisi sarjan verkkopalvelukutsuja pyyntöjen kautta palvelimelle, joka isännöi varsinaista verkkopalvelua.
Nämä pyynnöt tehdään niin kutsuttujen etäproseduurikutsujen kautta. Remote Procedure Calls (RPC) ovat kutsuja menetelmiin, joita isännöi asianomainen verkkopalvelu.
Esimerkiksi, Amazon tarjoaa verkkopalvelun, joka tarjoaa hinnat tuotteille, joita myydään verkossa osoitteessa amazon.com. Etupää tai esitystaso voi olla .Net- tai -muodossa Java mutta kummalla tahansa ohjelmointikielellä olisi mahdollisuus kommunikoida verkkopalvelun kanssa.
Verkkopalvelusuunnittelun pääkomponentti on asiakkaan ja palvelimen välillä siirrettävä data eli XML. XML (Extensible Markup Language) on vastine HTML:lle ja helposti ymmärrettävä välikieli, jota monet ohjelmointikielet ymmärtävät.
Joten kun sovellukset puhuvat keskenään, ne itse asiassa puhuvat XML-muodossa. Tämä tarjoaa yhteisen alustan eri ohjelmointikielillä kehitetyille sovelluksille keskustellakseen keskenään.
Web-palvelut käyttävät SOAP-protokollaa (Simple Object Access Protocol) XML-tietojen lähettämiseen sovellusten välillä. Tiedot lähetetään normaalin HTTP:n kautta. Tietoa, joka lähetetään verkkopalvelusta sovellukseen, kutsutaan SOAP-viestiksi. SOAP-viesti ei ole muuta kuin XML-dokumentti. Koska dokumentti on kirjoitettu XML-kielellä, verkkopalvelua kutsuva asiakassovellus voidaan kirjoittaa millä tahansa ohjelmointikielellä.
Miksi tarvitset verkkopalvelua?
Nykypäivän yrityssovellukset käyttävät erilaisia ohjelmointialustoja verkkopohjaisten sovellusten kehittämiseen. Joitakin sovelluksia voidaan kehittää Java, toiset .Netissä, kun taas toiset Angular JS:ssä, Node.js:ssä jne.
Useimmiten nämä heterogeeniset sovellukset tarvitsevat jonkinlaista viestintää tapahtuakseen niiden välillä. Koska ne on rakennettu käyttämällä eri kehityskieliä, on todella vaikea varmistaa tarkkaa kommunikaatiota sovellusten välillä.
Verkkopalvelut tulevat esiin tässä. Verkkopalvelut tarjoavat yhteisen alustan, joka mahdollistaa useiden eri sovellusten pohjalta rakennetun sovelluksen ohjelmointikielet kyky kommunikoida toistensa kanssa.
Verkkopalvelun tyyppi
Verkkopalveluita on pääasiassa kahdenlaisia.
- SOAP-verkkopalvelut.
- RESTful verkkopalvelut.
Jotta verkkopalvelu olisi täysin toimiva, tiettyjen komponenttien on oltava paikallaan. Näiden komponenttien on oltava läsnä riippumatta siitä, mitä kehityskieltä verkkopalvelun ohjelmointiin käytetään.
Katsotaanpa näitä komponentteja tarkemmin.
SOAP (yksinkertainen Object Access Protocol)
SOAP tunnetaan kuljetuksesta riippumattomana viestintäprotokollana. SOAP perustuu XML-tietojen siirtämiseen SOAP-viesteinä. Jokaisessa viestissä on jotain, joka tunnetaan nimellä XML-dokumentti. Vain XML-dokumentin rakenne noudattaa tiettyä kaavaa, mutta ei sisältö. Parasta verkkopalveluissa ja SOAPissa on, että ne lähetetään HTTP:n kautta, joka on tavallinen verkkoprotokolla.
Tässä on mitä SOAP-viesti koostuu
- Jokaisella SOAP-asiakirjalla on oltava juurielementti, joka tunnetaan nimellä elementti. Juurielementti on XML-dokumentin ensimmäinen elementti.
- "Kirjekuori" on puolestaan jaettu kahteen osaan. Ensimmäinen on otsikko ja seuraava on runko.
- Otsikko sisältää reititystiedot, jotka ovat pohjimmiltaan tietoja, jotka kertovat XML-dokumentille, mille asiakkaalle se on lähetettävä.
- Runko sisältää varsinaisen viestin.
Alla olevassa kaaviossa on yksinkertainen esimerkki SOAP-viestinnästä.
Keskustelemme SOAPista yksityiskohtaisesti tässä oppitunti.
WSDL (verkkopalveluiden kuvauskieli)
Verkkopalvelua ei voi käyttää, jos sitä ei löydy. Verkkopalvelua käyttävän asiakkaan tulee tietää, missä verkkopalvelu todella sijaitsee.
Toiseksi asiakassovelluksen on tiedettävä, mitä verkkopalvelu todella tekee, jotta se voi kutsua oikean verkkopalvelun. Tämä tehdään WSDL:n avulla, joka tunnetaan Web-palvelujen kuvauskielenä. WSDL-tiedosto on jälleen XML-pohjainen tiedosto, joka pohjimmiltaan kertoo asiakassovellukselle, mitä verkkopalvelu tekee. WSDL-dokumenttia käyttämällä asiakassovellus pystyisi ymmärtämään, missä verkkopalvelu sijaitsee ja miten sitä voidaan hyödyntää.
Esimerkki verkkopalvelusta
Alla on esimerkki WSDL-tiedostosta verkkopalveluista.
<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>
Tärkeitä huomioitavia seikkoja yllä olevista WSDL-ilmoitusesimerkeistä verkkopalveluista ovat seuraavat:
- – WSDL-määritelmän sanomaparametria käytetään määrittämään eri tietoelementit kullekin verkkopalvelun suorittamalle toiminnolle. Joten yllä olevissa verkkopalveluesimerkeissä meillä on 2 viestiä, jotka voidaan vaihtaa verkkopalvelun ja asiakassovelluksen välillä, joista toinen on "TutorialRequest" ja toinen on "TutorialResponse" -toiminto. TutorialRequest sisältää elementin nimeltä "TutorialID", joka on tyyppiä merkkijono. Vastaavasti TutorialResponse-toiminto sisältää elementin nimeltä "TutorialName", joka on myös tyyppimerkkijono.
- – Tämä itse asiassa kuvaa toimintoa, jonka verkkopalvelu voi suorittaa, jota meidän tapauksessamme kutsutaan nimellä Tutorial. Tämä toiminto voi kestää 2 viestiä; yksi on syöttöviesti ja toinen on lähtöviesti.
- – Tämä elementti sisältää käytetyn protokollan. Joten meidän tapauksessamme määrittelemme sen käyttämään http (http://schemas.xmlsoap.org/soap/http). Määrittelemme myös muita operaation runko-osia koskevia tietoja, kuten nimiavaruuden ja sen, pitäisikö viesti koodata.
Keskustelemme "WDSL:stä" yksityiskohtaisesti tässä oppitunti.
Yleismaailmallinen Descriptioni, löytö ja integrointi (UDDI)
UDDI on standardi tietyn palveluntarjoajan tarjoamien verkkopalvelujen kuvaamiseen, julkaisemiseen ja löytämiseen. Se tarjoaa määrittelyn, joka auttaa isännöimään tietoja verkkopalveluista.
Nyt keskustelimme edellisessä aiheessa WSDL:stä ja siitä, kuinka se sisältää tietoa siitä, mitä verkkopalvelu todella tekee. Mutta kuinka asiakassovellus voi paikantaa WSDL-tiedoston ymmärtääkseen verkkopalvelun tarjoamia erilaisia toimintoja? Joten UDDI on vastaus tähän ja tarjoaa arkiston, jossa WSDL-tiedostoja voidaan isännöidä. Joten asiakassovelluksella on täydellinen pääsy UDDI:hen, joka toimii tietokantana, joka sisältää kaikki WSDL-tiedostot.
Aivan kuten puhelinluettelossa on tietyn henkilön nimi, osoite ja puhelinnumero, samoin UDDI-rekisterissä on verkkopalvelua koskevat tiedot.. Jotta asiakassovellus tietää, mistä se löytyy.
Verkkopalveluiden edut
Ymmärrämme jo, miksi verkkopalvelut alun perin syntyivät, eli tarjota alusta, jonka avulla eri sovellukset voivat keskustella toistensa kanssa.
Mutta katsotaanpa luettelosta verkkopalvelujen eduista, miksi verkkopalveluiden käyttö on tärkeää.
- Liiketoiminnan toiminnallisuuden paljastaminen verkossa – Verkkopalvelu on hallitun koodin yksikkö, joka tarjoaa jonkinlaisia toimintoja asiakassovelluksille tai loppukäyttäjille. Tämä toiminto voidaan kutsua HTTP-protokollan kautta, mikä tarkoittaa, että se voidaan kutsua myös Internetin kautta. Nykyään kaikki sovellukset ovat Internetissä, mikä tekee verkkopalveluiden tarkoituksesta hyödyllisemmän. Tämä tarkoittaa, että verkkopalvelu voi olla missä tahansa Internetissä ja tarjota tarvittavat toiminnot tarpeen mukaan.
- Yhteentoimivuus sovellusten välillä – Verkkopalveluiden avulla eri sovellukset voivat keskustella keskenään ja jakaa tietoja ja palveluita keskenään. Kaiken tyyppiset sovellukset voivat puhua keskenään. Joten sen sijaan että kirjoittaisit tietyn koodin, jota vain tietyt sovellukset voivat ymmärtää, voit nyt kirjoittaa yleistä koodia, jota kaikki sovellukset ymmärtävät
- Standardoitu protokolla, jonka kaikki ymmärtävät – Verkkopalvelut käyttävät kommunikaatioon standardoitua alan protokollaa. Kaikki neljä kerrosta (palvelukuljetus, XML-viestintä, palvelu Description- ja Service Discovery -kerrokset) käyttää hyvin määriteltyjä protokollia verkkopalveluiden protokollapinossa.
- Viestintäkulujen aleneminen – Verkkopalvelut käyttävät SOAP over HTTP -protokollaa, joten voit käyttää olemassa olevaa edullista internetiäsi verkkopalveluiden toteuttamiseen.
Web Services Archirakenne
Jokainen kehys tarvitsee jonkinlaisen arkkitehtuurin varmistaakseen, että koko kehys toimii toivotulla tavalla, samoin verkkopalveluissa. The Web Services Archirakenne koostuu kolmesta erillisestä roolista, kuten alla on kuvattu:
- Tarjoaja – Palveluntarjoaja luo verkkopalvelun ja asettaa sen asiakassovelluksen saataville, joka haluaa käyttää sitä.
- Pyytäjä – Pyytäjä ei ole muuta kuin asiakassovellus, jonka on otettava yhteyttä verkkopalveluun. Asiakassovellus voi olla .Net, Javatai mikä tahansa muu kielipohjainen sovellus, joka etsii jonkinlaista toimivuutta verkkopalvelun kautta.
- Välittäjä – Välittäjä ei ole muuta kuin sovellus, joka tarjoaa pääsyn UDDI:hen. UDDI, kuten edellisessä aiheessa käsiteltiin, mahdollistaa asiakassovelluksen paikantamisen verkkopalvelun.
Alla oleva kaavio näyttää, kuinka Palveluntarjoaja, Palvelun pyytäjä ja Palvelurekisteri ovat vuorovaikutuksessa keskenään.
- julkaista – Palveluntarjoaja ilmoittaa välittäjälle (palvelurekisterille) verkkopalvelun olemassaolosta välittäjän julkaisurajapinnan avulla, jotta palvelu on asiakkaiden käytettävissä
- Löytää – Pyynnön esittäjä ottaa yhteyttä välittäjään paikantaakseen julkaistun verkkopalvelun
- Sitoa – Välittäjältä (palvelurekisteriltä) verkkopalvelusta saamillaan tiedoilla pyytäjä voi sitoa tai kutsua verkkopalvelun.
Verkkopalvelun ominaisuudet
Verkkopalveluilla on seuraavat erityiset käyttäytymisominaisuudet:
- Ne ovat XML-pohjaisia – Web Services käyttää XML:ää edustamaan tietoja esitys- ja tiedonsiirtokerroksissa. XML:n käyttö eliminoi kaikenlaisen verkko-, käyttöjärjestelmä- tai alustariippuvuuden, koska XML on yhteinen kieli, jota kaikki ymmärtävät.
- Löysästi kytketty – Löyhästi kytketty tarkoittaa, että asiakas ja verkkopalvelu eivät ole sidottu toisiinsa, mikä tarkoittaa, että vaikka verkkopalvelu muuttuu ajan myötä, sen ei pitäisi muuttaa tapaa, jolla asiakas soittaa verkkopalveluun. Löyhästi kytketyn arkkitehtuurin ottaminen käyttöön tekee ohjelmistojärjestelmistä helpommin hallittavia ja mahdollistaa yksinkertaisemman integroinnin eri järjestelmien välillä.
- Synchronous tai asynchronous toiminnallisuus - Synchronicity tarkoittaa asiakkaan sitoutumista palvelun suorittamiseen. Synkronisissa toimissa asiakas itse asiassa odottaa, että verkkopalvelu suorittaa toiminnon. Esimerkki tästä on luultavasti skenaario, jossa tietokannan luku- ja kirjoitustoiminto suoritetaan. Jos dataa luetaan yhdestä tietokannasta ja sen jälkeen kirjoitetaan toiseen, toiminnot on suoritettava peräkkäin. Asynkronisten toimintojen avulla asiakas voi kutsua palvelua ja suorittaa sitten muita toimintoja rinnakkain. Tämä on yksi yleisimmistä ja luultavasti suosituimmista tekniikoista sen varmistamiseksi, että muita palveluita ei pysäytetä, kun tiettyä toimintoa suoritetaan.
- Mahdollisuus tukea Remote Procedure Calls (RPC) -puheluita – Web-palvelujen avulla asiakkaat voivat kutsua proseduureja, toimintoja ja menetelmiä etäobjekteissa käyttämällä XML-pohjaista protokollaa. Etätoimenpiteet paljastavat syöttö- ja tulostusparametrit, joita verkkopalvelun on tuettava.
- Tukee asiakirjojen vaihtoa – Yksi XML:n tärkeimmistä eduista on sen yleinen tapa esittää datan lisäksi myös monimutkaisia asiakirjoja. Nämä asiakirjat voivat olla yhtä yksinkertaisia kuin edustavat nykyistä osoitetta, tai ne voivat olla yhtä monimutkaisia kuin edustavat koko kirjaa.