Mitä verkkopalvelut ovat? Architecture, tyypit, esimerkki

⚡ Älykäs yhteenveto

Verkkopalvelut tarjoavat standardoidun välineen asiakas- ja palvelinsovelluksille kommunikointiin World Wide Webin kautta. Tässä resurssissa selitetään, miten verkkopalvelut toimivat, niiden SOAP- ja RESTful-tyypit, WSDL- ja UDDI-komponentit, arkkitehtuuriroolit ja tärkeimmät ominaisuudet.

  • 🌐 Ydinmääritelmä: Verkkopalvelu on itsenäinen ohjelmistomoduuli, joka suorittaa määritellyn tehtävän ja kommunikoi asiakkaan ja palvelimen välillä verkon kautta.
  • 📨 XML-viestit: Verkkopalvelut vaihtavat tietoja XML-muodossa, tyypillisesti SOAP-viesteihin käärittynä, jotka lähetetään tavallisen HTTP-protokollan kautta, joten mikä tahansa kieli voi käsitellä niitä.
  • 🧱 Tärkeimmät komponentit: Toimiva verkkopalvelu käyttää SOAP-protokollaa viestien välitykseen, WSDL:ää palvelun kuvaamiseen ja UDDI:tä sen julkaisemiseen ja löytämiseen.
  • 👥 ArchiRakenteen roolit: Arkkitehtuuri määrittelee kolme roolia – Palveluntarjoaja, Pyytäjä ja Välittäjä – jotka julkaisevat, etsivät ja sitovat palveluita rekisterin kautta.
  • ⚙️ Perusominaisuudet: Verkkopalvelut ovat XML-pohjaisia, löyhästi kytkettyjä, tukevat synkronisia tai asynkronisia kutsuja, mahdollistavat RPC:t ja monipuolisen dokumenttien vaihdon.

Web Services Archirakenne

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 verkkopalvelut toimivat?

Miten verkkopalvelut toimivat

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 sanottujen etäproseduurikutsujen kautta. Etäproseduurikutsuilla (RPC) tarkoitetaan kutsuja, jotka tehdään kyseisen verkkopalvelun isännöimille metodeille.

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 kummallakin ohjelmointikielellä olisi kyky kommunikoida verkkopalvelun kanssa.

Verkkopalvelusuunnittelun pääkomponentti on asiakkaan ja palvelimen välillä siirrettävä data eli XML. XML (laajennettava merkintäkieli) on HTML:n vastine ja helposti ymmärrettävä välivaiheen kieli, jota monet ohjelmointikielet ymmärtävät.

Joten kun sovellukset kommunikoivat keskenään, ne itse asiassa kommunikoivat XML:llä. Tämä tarjoaa yhteisen alustan eri ohjelmointikielillä kehitettyjen sovellusten kommunikoimiseksi 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?

Nykyaikaiset liiketoimintasovellukset käyttävät erilaisia ​​ohjelmointialustoja verkkopohjaisten sovellusten kehittämiseen. Jotkin sovellukset voidaan kehittää Java, toiset .Netissä, kun taas jotkut Angular JS:ssä, Node.js:ssä jne.

Useimmiten nämä heterogeeniset sovellukset tarvitsevat jonkinlaista kommunikaatiota toimiakseen keskenään. Koska ne on rakennettu eri kehityskielillä, sovellusten välisen tarkan kommunikaation varmistaminen on todella vaikeaa.

Verkkopalvelut tulevat esiin tässä. Verkkopalvelut tarjoavat yhteisen alustan, joka mahdollistaa useiden eri sovellusten pohjalta rakennetun sovelluksen ohjelmointikielet kyky kommunikoida toistensa kanssa.

Verkkopalveluiden tyypit

Verkkopalveluita on pääasiassa kahdenlaisia:

  1. SOAP-verkkopalvelut.
  2. RESTful verkkopalvelut.

Jotta verkkopalvelu olisi täysin toimiva, on olemassa tiettyjä komponentteja. Näiden komponenttien on oltava läsnä riippumatta siitä, mitä kehityskieltä verkkopalvelun ohjelmoinnissa käytetään. Tarkastellaan näitä komponentteja tarkemmin.

SOAP (yksinkertainen Object Access Protocol)

SOAP tunnetaan siirrosta riippumattomana viestintäprotokollana. SOAP perustuu XML-datan siirtämiseen SOAP-viesteinä. Jokaisella viestillä on oma osansa, jota kutsutaan XML-dokumentiksi. Vain XML-dokumentin rakenne noudattaa tiettyä mallia, mutta ei sisältö. Verkkopalveluiden ja SOAPin paras puoli on, että kaikki lähetetään HTTP:n kautta, joka on verkkoprotokollan standardi.

Tässä on osia, joista 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 pohjimmiltaan kertovat XML-dokumentille, mille asiakkaalle se on lähetettävä.
  • Runko sisältää varsinaisen viestin.

Alla olevassa kaaviossa on yksinkertainen esimerkki SOAP-viestinnästä.

SOAP-protokolla

Keskustelemme SOAPista yksityiskohtaisesti tässä oppitunti.

WSDL (Web Services Descriptionikieli)

Verkkopalvelua ei voi käyttää, jos sitä ei löydy. Verkkopalvelua kutsuvan asiakkaan tulisi tietää, missä verkkopalvelu todellisuudessa sijaitsee.

Toiseksi, asiakassovelluksen on tiedettävä, mitä verkkopalvelu todellisuudessa tekee, jotta se voi kutsua oikean verkkopalvelun. Tämä tehdään WSDL:n, eli verkkopalveluiden, avulla. Description Language. WSDL-tiedosto on jälleen XML-pohjainen tiedosto, joka pohjimmiltaan kertoo asiakassovellukselle, mitä web-palvelu tekee. WSDL-dokumentin avulla asiakassovellus pystyy ymmärtämään, missä web-palvelu sijaitsee ja miten sitä voidaan käyttää.

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:

  1. – WSDL-määrityksen viestiparametria käytetään määrittelemään verkkopalvelun suorittamien toimintojen eri dataelementit. Yllä olevassa verkkopalveluesimerkissä on siis kaksi viestiä, jotka voidaan vaihtaa verkkopalvelun ja asiakassovelluksen välillä: toinen on ”TutorialRequest” ja toinen on ”TutorialResponse”-operaatio. TutorialRequest sisältää elementin nimeltä ”TutorialID”, joka on tyyppiä merkkijono. Vastaavasti TutorialResponse-operaatio sisältää elementin nimeltä ”TutorialName”, joka on myös tyyppiä merkkijono.
  2. – Tämä itse asiassa kuvaa verkkopalvelun suorittamaa toimintoa, jota tässä tapauksessa kutsutaan nimellä Tutorial. Tämä toiminto voi ottaa vastaan ​​kaksi viestiä: toinen on syöteviesti ja toinen on tulosteviesti.
  3. – Tämä elementti sisältää käytetyn protokollan. Tässä tapauksessa määrittelemme sen käyttämään HTTP:tä (http://schemas.xmlsoap.org/soap/http). Määrittelemme myös muita operaation rungon tietoja, kuten nimiavaruuden ja sen, pitäisikö viesti koodata.

Käsittelemme WSDL:ää yksityiskohtaisesti tässä artikkelissa. 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, samalla tavalla UDDI-rekisterissä on verkkopalvelun kannalta olennaiset tiedot., jotta asiakassovellus tietää, mistä se löytyy.

Verkkopalveluiden edut

Ymmärrämme jo, miksi verkkopalvelut alun perin syntyivät. Niiden tarkoituksena oli tarjota alusta, jonka avulla eri sovellukset voisivat kommunikoida keskenään. Mutta katsotaanpa luetteloa verkkopalveluiden eduista, jotka osoittavat, miksi verkkopalveluiden käyttö on tärkeää.

  1. Liiketoiminnan toiminnallisuuden paljastaminen verkossa – Verkkopalvelu on hallitun koodin yksikkö, joka tarjoaa jonkinlaista toiminnallisuutta asiakassovelluksille tai loppukäyttäjille. Tätä toiminnallisuutta voidaan kutsua HTTP-protokollan kautta, mikä tarkoittaa, että sitä 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 toiminnallisuudet tarpeen mukaan.
  2. Yhteentoimivuus sovellusten välillä – Verkkopalvelut mahdollistavat eri sovellusten kommunikoinnin keskenään ja datan ja palveluiden jakamisen keskenään. Kaikenlaiset sovellukset voivat kommunikoida keskenään. Joten sen sijaan, että kirjoitettaisiin tiettyä koodia, jota vain tietyt sovellukset ymmärtävät, voidaan nyt kirjoittaa yleistä koodia, jota kaikki sovellukset ymmärtävät.
  3. Standardoitu protokolla, jonka kaikki ymmärtävät – Verkkopalvelut käyttävät kommunikointiin standardoitua teollisuusprotokollaa. Kaikki neljä kerrosta (Service Transport, XML Messaging, Service Description- ja palvelun löytämiseen tarkoitetut kerrokset) käyttävät tarkoin määriteltyjä protokollia web-palveluiden protokollapinossa.
  4. 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 halutulla tavalla. Samoin verkkopalveluissa Web Services Archirakenne koostuu kolmesta erillisestä roolista, jotka on esitetty alla:

  1. Tarjoaja – Palveluntarjoaja luo verkkopalvelun ja asettaa sen saataville asiakassovelluksille, jotka haluavat käyttää sitä.
  2. 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 toiminnallisuutta verkkopalvelun kautta.
  3. Välittäjä – Välittäjä ei ole muuta kuin sovellus, joka tarjoaa pääsyn UDDI:hin. Kuten edellisessä aiheessa käsiteltiin, UDDI mahdollistaa asiakassovelluksen paikantaa web-palvelun.

Alla oleva kaavio havainnollistaa, miten palveluntarjoaja, palvelun pyytäjä ja palvelurekisteri ovat vuorovaikutuksessa keskenään.

Web Services Archirakenne

  1. julkaista – Palveluntarjoaja ilmoittaa välittäjälle (palvelurekisterille) verkkopalvelun olemassaolosta välittäjän julkaisurajapinnan kautta, jotta palvelu on asiakkaiden käytettävissä.
  2. Löytää – Pyytäjä konsultoi välittäjää löytääkseen julkaistun verkkopalvelun.
  3. Sitoa – Välittäjältä (palvelurekisteristä) saamiensa verkkopalvelua koskevien tietojen avulla pyytäjä voi sitoa eli kutsua verkkopalvelua.

Verkkopalvelun ominaisuudet

Verkkopalveluilla on seuraavat erityiset käyttäytymisominaisuudet:

  1. Ne ovat XML-pohjaisia – Verkkopalvelut käyttävät XML:ää datan esittämiseen esityksen ja tiedonsiirron tasoilla. XML:n käyttö poistaa kaikki verkosta, käyttöjärjestelmästä tai alustasta johtuvat riippuvuudet, koska XML on kaikkien ymmärtämä yhteinen kieli.
  2. 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ä.
  3. 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.
  4. 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.
  5. 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.

UKK

Tekoälymallit toimitetaan yleensä verkkopalveluina, joten sovellukset lähettävät dataa HTTP:n kautta ja vastaanottavat ennusteita XML- tai JSON-muodossa. Tekoäly voi myös valvoa verkkopalveluliikennettä, havaita poikkeavuuksia ja luoda automaattisesti asiakaskoodia, mikä tekee integraatiosta nopeampaa ja luotettavampaa.

Kyllä. Tekoälytyökalut voivat luoda WSDL-määritelmiä, ehdottaa päätepisterakenteita, luoda testitapauksia ja validoida SOAP- tai REST-vastauksia. Kehittäjien tulisi silti tarkistaa tuloste varmistaakseen yhteensopivuuden.tracKäyttöehdot ja turvallisuussäännöt ovat oikein ennen käyttöönottoa.

SOAP on tiukka, XML-pohjainen viestintäprotokolla, jossa on sisäänrakennetut turvallisuus- ja tapahtumastandardit. REST on arkkitehtuurityyli, joka käyttää yksinkertaisia ​​HTTP-metodeja ja usein JSON-kielellä. SOAP sopii muodollisiin yritysjärjestelmiin, kun taas REST on kevyempi ja suositumpi web-rajapintoihin.

WSDL (Web Services Description Language) on XML-tiedosto, joka kuvaa verkkopalvelun toiminnan, sijainnin ja kutsumisen. Asiakassovellukset lukevat WSDL:ää ymmärtääkseen käytettävissä olevat toiminnot ja viestimuodot.

Tiivistä tämä viesti seuraavasti: