Mikä on WSDL?
Web Services Description Language (WSDL) on XML-pohjainen tiedosto, joka kertoo pohjimmiltaan asiakassovellukselle, mitä verkkopalvelu tekee. WSDL-tiedostoa käytetään kuvaamaan pähkinänkuoressa, mitä verkkopalvelu tekee, ja antaa asiakkaalle kaikki tarvittavat tiedot, jotta hän voi muodostaa yhteyden verkkopalveluun ja käyttää kaikkia verkkopalvelun tarjoamia toimintoja.
Tässä opetusohjelmassa keskitymme viimeiseen kohtaan, joka on verkkopalveluiden tärkein osa, eli WSDL: lle tai verkkopalvelujen kuvauskielelle.
WSDL-tiedostoa käytetään kuvaamaan pähkinänkuoressa, mitä verkkopalvelu tekee, ja antaa asiakkaalle kaikki tarvittavat tiedot, jotta hän voi muodostaa yhteyden verkkopalveluun ja käyttää kaikkia verkkopalvelun tarjoamia toimintoja.
Tässä opetusohjelmassa opit-
- WSDL-asiakirjan rakenne
- WSDL-elementit
- Miksi WSDL
- WSDL-viestin osa
- Porttityypin sidonta
- WSDL-tiedoston luominen
- Verkkopalveluesimerkin julkaiseminen
WSDL-asiakirjan rakenne
WSDL-asiakirjaa käytetään kuvaamaan verkkopalvelua. Tämä kuvaus vaaditaan, jotta asiakasohjelmat pystyvät ymmärtämään, mitä verkkopalvelu todella tekee.
- WSDL-tiedosto sisältää verkkopalvelun sijainnin ja
- Menetelmät, jotka verkkopalvelu paljastaa.
Itse WSDL-tiedosto voi näyttää erittäin monimutkaiselta kenellekään käyttäjälle, mutta se sisältää kaikki tarvittavat tiedot, joita kaikki asiakassovellukset vaativat käyttämään kyseistä verkkopalvelua.
Alla on WSDL-tiedoston yleinen rakenne
- Määritelmä
- TargetNamespace
- DataTypes
- Viestit
- Porttityyppi
- Sidokset
- palvelu
Yksi keskeinen asia, joka on huomioitava tässä, on se, että sanomien määritelmä on se, mikä SOAP-protokolla välittää, on itse asiassa määritelty WSDL-asiakirjassa.
WSDL-asiakirja itse kertoo asiakassovellukselle, minkä tyyppisiä SOAP-viestejä verkkopalvelu lähettää ja hyväksyy.
Toisin sanoen, WSDL on aivan kuin postikortti, jolla on tietyn sijainnin osoite. Osoite antaa postikortin toimittaneen henkilön tiedot. Näin ollen samalla tavalla WSDL-tiedosto on postikortti, jolla on verkkopalvelun osoite, joka voi toimittaa kaikki asiakkaan haluamat toiminnot.
… … … … …
Alla on kaavio WSDL-tiedoston rakenteesta

WSDL-elementit
WSDL-tiedosto sisältää seuraavat pääosat
-
Tunnistetta
käytetään määrittelemään kaikki monimutkaiset tietotyypit, joita käytetään asiakassovelluksen ja verkkopalvelun välisessä viestissä. Tämä on tärkeä asia asiakassovelluksessa, koska jos verkkopalvelu toimii monimutkaisen tietotyypin kanssa, niin asiakasohjelman tulisi osata käsitellä monimutkaista tietotyyppiä. Tietotyypit, kuten kelluva, numerot ja merkkijonot, ovat kaikki yksinkertaisia tietotyyppejä, mutta verkkopalvelu voi tarjota strukturoituja tietotyyppejä. Esimerkiksi voi olla tietotyyppi nimeltä EmployeeDataType, jolla voi olla 2 elementtiä nimeltä "EmployeeName" tyypin merkkijono ja "EmployeeID" tyypin numero tai kokonaisluku. Yhdessä ne muodostavat tietorakenteen, josta tulee monimutkainen tietotyyppi.
-
Tunnistetta
käytetään määrittelemään viesti, joka vaihdetaan asiakassovelluksen ja verkkopalvelimen välillä. Nämä viestit selittävät syöttö- ja tulostustoiminnot, jotka verkkopalvelu voi suorittaa. Esimerkki sanomasta voi olla viesti, joka hyväksyy työntekijän työntekijän tunnuksen, ja lähtösanoma voi olla työntekijän nimi annettujen EmpoyeeID-tunnusten perusteella. -
Tunnistetta
käytetään kapseloimaan jokainen tulo- ja lähtöviesti yhdeksi loogiseksi toiminnoksi. Joten voisi olla toiminto nimeltä "GetEmployee", joka yhdistää syötesanoman, jossa hyväksytään EmployeeID asiakassovelluksesta ja lähetetään sitten EmployeeName lähtösanomana. -
Tagia
käytetään sitomaan operaatio tietylle porttityypille. Tämä johtuu siitä, että kun asiakassovellus kutsuu asianmukaista porttityyppiä, se voi sitten käyttää tähän porttityyppiin sidottuja toimintoja. Porttityypit ovat kuin käyttöliittymät. Joten jos asiakassovelluksen on käytettävä verkkopalvelua, heidän on käytettävä sitovia tietoja varmistaakseen, että he voivat muodostaa yhteyden kyseisen verkkopalvelun tarjoamaan rajapintaan. -
tag on annettu nimi verkkopalveluun itse. Aluksi, kun asiakassovellus soittaa verkkopalveluun, se tekee kutsumalla verkkopalvelun nimen. Esimerkiksi verkkopalvelu voi sijaita osoitteessa, kuten http: //localhost/Guru99/Tutorial.asmx . Palvelutunnisteen URL-osoite on todellakin määritelty nimellä http: //localhost/Guru99/Tutorial.asmx , mikä kertoo asiakassovellukselle, että tässä paikassa on käytettävissä verkkopalvelu.
Miksi WSDL
Verkkopalvelu on tärkeä osa nykypäivän verkkosovellusten rakentamista. Niiden päätarkoitus on antaa useiden eri ohjelmointikielille rakennettujen sovellusten puhua keskenään. Esimerkiksi voimme saada .Net-verkkosovelluksen keskustelemaan Java-sovelluksen kanssa verkkopalvelun kautta.
Verkkopalvelulla on seuraavat keskeiset ominaisuudet
- Se on rakennettu XML-ohjelmointikielellä. Lähes kaikilla nykypäivän tekniikoilla, kuten .Net ja Java, on vastaavat komennot, joilla on kyky työskennellä XML: n kanssa. Siksi XML: ää pidettiin sopivimpana kielenä verkkopalvelujen rakentamiseen.
- Verkkopalvelut kommunikoivat HTTP: n kautta. HTTP on protokolla, jota kaikki verkkopohjaiset sovellukset käyttävät. Siksi oli järkevää varmistaa, että verkkopalveluilla oli myös kyky työskennellä HTTP-protokollan yli.
- Verkkopalvelut ovat tietyn kielimäärityksen mukaisia. Tämän eritelmän on asettanut W3C, joka on kaikkien verkkostandardien hallintoelin.
- Verkkopalveluilla on kuvauskieli, joka tunnetaan nimellä WSDL, jota käytetään verkkopalvelun kuvaamiseen.
WSDL-tiedosto on kirjoitettu tavallisella vanhalla XML-tiedostolla. Syy, että se on XML-muodossa, on, että tiedosto voidaan lukea millä tahansa ohjelmointikielellä.
Joten jos asiakassovellus on kirjoitettu .Netissä, se ymmärtää XML-tiedoston. Vastaavasti, jos asiakassovellus on kirjoitettu Java-ohjelmointikielellä, se pystyy myös tulkitsemaan WSDL-tiedoston.
WSDL-tiedosto sitoo kaiken yhteen. Yllä olevasta kaaviosta näet, että voit luoda verkkopalvelun .Net-kielellä.
Joten tässä palvelu otetaan käyttöön. Jos sinulla ei ole WSDL-tiedostoa ja haluat Java-luokan kuluttavan verkkopalvelua, tarvitset paljon koodausta tämän saavuttamiseksi.
Mutta nyt WML-tiedostolla, joka on XML-muodossa ja joka ymmärretään mille tahansa ohjelmointikielelle, voit nyt saada helposti Java-luokan käyttämään .Net-verkkopalvelua. Siksi koodauksen määrä vähenee huomattavasti.
WSDL-viestin osa
WSDL koostuu osiosta, jota kutsutaan "viesteiksi" ja jota merkitään elementillä
Tätä elementtiä käytetään periaatteessa kuvaamaan tietoja, joita vaihdetaan verkkopalvelun ja asiakassovelluksen välillä.
Jokaisella verkkopalvelulla on aina 2 tyyppisiä viestejä,
- Yksi on verkkopalvelun syötettä varten ja toinen verkkopalvelun ulostuloa varten.
- Syötettä käytetään kuvaamaan parametreja, jotka verkkopalvelu hyväksyy. Tämä on tärkeä osa asiakassovellusta, jotta se tietää arvot, jotka lähetetään parametreina verkkopalvelulle.
- Toinen sanomatyyppi on lähtösanoma, joka kertoo, mitä tuloksia verkkopalvelu tarjoaa.
Jokaisella viestillä puolestaan on
Alla on yksinkertainen esimerkki siitä, miltä verkkopalvelun viesti näyttää. Verkkopalvelun tehtävänä on antaa "opetusohjelman" nimi, kun "opetusohjelman tunnus" on lähetetty parametrina verkkopalvelulle.
- Kuten voimme nähdä, verkkopalvelussa on 2 viestiä, yksi tuloa ja toinen lähtöä varten.
- Syöttösanoma tunnetaan nimellä TutorialNameRequest, jolla on yksi parametri nimeltä TutorialID. Tämä parametri on tyypin numero, joka määritetään xsd: numerotyypillä
- Lähtösanoma tunnetaan nimellä TutorialNameResponse, jolla on yksi parametri nimeltä TutorialName. Tämä parametri on tyypin merkkijono, jonka xsd: string-tyyppi määrittelee
Porttityypin sidonta
Portteja käytetään WSDL: ssä määrittämään yksi täydellinen toiminto, jonka verkkopalvelu tarjoaa.
Edellisessä aiheessa huomasimme, että verkkopalvelumme toimitti 2 viestiä, yhden syötteelle nimeltä "TutorialNameRequest" ja toisen "TutorialNameResponse" -tulokselle. Tulo- ja lähtöviestilomake tunnetaan yhdessä yhtenä kokonaisuutena.
WSDL tarjoaa elementin nimeltä
Joten yllä olevassa esimerkissä voimme huomata seuraavat:
- Operaation kapseloivan porttityypin nimi on "Tutorial_PortType".
- Itse operaatiolle annetaan nimi "Tutorial". Joten toiminnassamme on periaatteessa TutorialName, jos TutorialID annetaan syöttöparametrina.
- Seuraavaksi on 2 viestiä, yksi tulolle ja toinen lähtökohdalle, joka muodostaa toimintamme
Lisäksi
- Yllä oleva esimerkki osoittaa, että sidonta koostuu sitovasta nimestä, joka meidän tapauksessamme annetaan nimellä "TutorialSoapBinding". Sitominen yksinkertaisella tavalla on tieto, jota asiakasohjelma käyttää itse sitoutuakseen verkkopalveluun. Kun se on todella sidottu verkkopalveluun, sillä on kyky soittaa eri toimintoihin, jotka verkkopalvelu paljastaa.
- Siirtokerros annetaan nimellä http: //, mikä tarkoittaa, että viestit siirtyvät HTTP-protokollan kautta.
WSDL-tiedoston luominen
WSDL-tiedosto luodaan aina, kun verkkopalvelu rakennetaan millä tahansa ohjelmointikielellä.
Koska WSDL-tiedosto on melko monimutkainen luoda tyhjästä, kaikki editorit, kuten Visual Studio for .Net ja Eclipse for Java, luovat WSDL-tiedoston automaattisesti.
Alla on esimerkki Visual Studiossa luotusta WSDL-tiedostosta.
TutorialService
Yllä oleva WSDL-tiedosto näyttää erittäin pelottavalta kenellekään käyttäjälle, käsittelemme eri osat yksityiskohtaisesti seuraavissa opetusohjelmissa, mutta nyt katsotaanpa yhteenveto siitä, mitä WSDL-tiedoston kukin osa todella tekee
Verkkopalveluesimerkin julkaiseminen
Katsotaan nyt esimerkkiä siitä, miten voimme julkaista verkkopalvelun ja käyttää sitä Visual Studion avulla.
Tässä esimerkissä luomme verkkopalvelun yhdellä WebMethodilla. Tämä menetelmä hyväksyy Integer-parametrin nimeltä "TutorialID". Web-menetelmä palauttaa sitten merkkijonon nimeltä "Web Services".
Luomme sitten konsolipohjaisen sovelluksen, joka kuluttaa tätä verkkopalvelua ja kutsuu verkkomenetelmäämme vastaavasti.
Katsotaanpa tämän esimerkin suorittamiseen tarvittavat vaiheet.
Vaihe 1) Ensimmäinen vaihe on luoda verkkopalvelu. Asp.Net-verkkoprojektin ja verkkopalvelun luomisen yksityiskohtaiset vaiheet on selitetty tässä; Noudata samoja ohjeita luodaksesi projektin ja verkkopalvelun vastaavasti. Tärkeintä on syöttää alla oleva koodi verkkopalvelutiedostoon.
namespace webservic asmx{[WebService(Name = "Guru99 Web service")]public class TutorialService : System.Web.Services.WebService{[WebMethod]public string GetTutorialService(int TutoriallD){string TutorialName = "Web Services";return TutorialName;}}}
Koodin selitys:
- Tässä luomme WebMethod-nimisen "Guru99WebService". Tähän verkkomenetelmään sisällytetään kokonaislukuparametri, joka on välitettävä aina, kun tätä verkkomenetelmää kutsutaan.
- Seuraavaksi määritellään muuttuja nimeltä "TutorialName", joka pitää sisällään "Web Services" -merkkijonon arvon. Tämä on arvo, joka palautetaan, kun verkkopalvelua kutsutaan.
Vaihe 2) Kun olemme määrittäneet verkkopalvelutiedoston, seuraava vaihe on luoda asiakasprojekti, joka kuluttaa tätä verkkopalvelua.
Luodaan yksinkertainen konsolisovellus, joka kutsuu tätä verkkopalvelua, käynnistää "Guru99WebService" ja näyttää sitten verkkomenetelmän tuotoksen konsolin lokinäytössä. Luo konsolisovellus noudattamalla seuraavia ohjeita.
Napsauta hiiren kakkospainikkeella Visual Studio -ratkaisutiedostoa ja valitse vaihtoehto Lisää-> Uusi projekti
Vaihe 3) Tässä vaiheessa
- Varmista ensin, että valitset Visual C # Windows -vaihtoehdon. Valitse sitten vaihtoehto luoda konsolisovellus.
- Anna projektillesi nimi, joka meidän tapauksessamme on annettu nimellä "DemoApplication".
Kun olet napsauttanut OK-painiketta yllä olevassa näytössä, näet projektin Visual Studion Solution Explorerissa.
Vaihe 4) Tässä vaiheessa asetat DemoApplication Console -sovelluksen käynnistysprojektiksi. Tämä tehdään sen varmistamiseksi, että tämä sovellus käynnistyy ensin, kun koko Visual Studio -projekti suoritetaan. Tämä konsolisovellus puolestaan soittaa verkkopalveluun, jonka Visual Studio käynnistää automaattisesti.
Suorita tämä vaihe napsauttamalla hiiren kakkospainikkeella DemoApplication-projektia ja valitsemalla vaihtoehto "Aseta käynnistysprojektiksi".
Vaihe 5) Seuraava vaihe on lisätä "Guru99Webservice" -palvelun viite konsolisovelluksemme. Tämä tehdään niin, että DemoApplication voi viitata verkkopalveluun ja kaikkiin verkkopalvelun verkkomenetelmiin.
Voit tehdä tämän napsauttamalla DemoApplication-projektitiedostoa hiiren kakkospainikkeella ja valitsemalla valikkovaihtoehdon Lisää-> Palveluviite.
Vaihe 6) Tässä vaiheessa annamme eri arvot, joita tarvitaan palveluviitteemme lisäämiseen
- Ensinnäkin meidän on valittava löydettävä vaihtoehto. Tämä vaihtoehto hakee WSDL-tiedoston automaattisesti TutorialService-verkkopalvelumme varten.
- Seuraavaksi meidän pitäisi antaa nimi palveluviitteellemme. Meidän tapauksessamme annamme sille nimen Guru99Webservice.
- Sitten meidän on laajennettava TutorialService.asmx-vaihtoehtoa, jotta voimme nähdä 'GetTutorialService' -menetelmän oikealla puolella. Tässä TutorialService.asmx on Visual Studio .Net -tiedostomme nimi, joka sisältää verkkopalvelumme koodin.
- Näemme sitten verkkomenetelmämme, joka meillä oli "GetTutorialService" -palvelussa.
Kun napsautamme OK-painiketta, kaikki tarvittavat koodit tämän verkkopalvelun käyttämiseksi lisätään DemoApplication Console -sovelluksemme alla esitetyllä tavalla.
Kuvakaappaus osoittaa, että "Guru99Webservice" lisättiin onnistuneesti konsolisovellukseemme.
Vaihe 7) Seuraava vaihe on lisätä koodi konsolisovellukseemme päästäksesi verkkopalvelumme verkkomenetelmään. Avaa konsolisovelluksen mukana tuleva Program.cs-kooditiedosto ja lisää alla oleva koodi
namespace DemoApplication{class Program{static void Main(string[ ] args){var client = new Guru99Webservice.Guru99WebserviceSoapClient();Console.WriteLine(client.GetTutorialService(l));Console.ReadKey();}}}
Koodin selitys: -
- Ensimmäinen osa on valita Program.cs-tiedosto. Tämä on päätiedosto, jonka Visual Studio luo, kun konsolisovellus luodaan. Tämä tiedosto suoritetaan, kun konsolisovellus (meidän tapauksessamme esittelysovellus) suoritetaan.
- Sitten luomme muuttujan nimeltä asiakas, joka asetetaan palveluviittauksemme ilmentymään, joka luotiin aikaisemmassa vaiheessa. Meidän tapauksessamme palveluviite on 'Guru99Webservice.Guru99WebserviveSoapClient ()'
- Soitamme sitten Webmethodia "GetTutorialService" TutorialService-verkkopalvelussa. Muista, että GetTutorialService-menetelmä hyväksyy kokonaislukuparametrin, joten välitämme vain kokonaislukuparametrin verkkomenetelmälle.
- Tämän viimeisen rivin tarkoituksena on vain varmistaa, että konsolin lokinäyttö pysyy aktiivisena, jotta voimme tarkastella lähtöä. Tämä komento odottaa vain käyttäjän syötettä.
Tuotos
Kun kaikki yllä olevat vaiheet on suoritettu ja DemoApplication on suoritettu, alla oleva tulos näkyy.
Tuloksesta voimme selvästi nähdä, että DemoApplication kutsuu verkkopalvelumme ja että verkkopalvelun palauttama merkkijono näkyy konsolilokissamme.
Yhteenveto
- WSDL: n koko muoto on Web Services Description Language
- WSDL-asiakirja on asiakirja, jota käytetään kuvaamaan verkkopalvelua. Tämä on avain jokaiselle asiakassovellukselle tietääksesi, missä verkkopalvelu sijaitsee. Sen avulla asiakassovellus ymmärtää myös verkkopalvelussa käytettävissä olevat menetelmät.
- WSDL-tiedosto helpottaa verkkopalvelun toteuttamista yhdellä ohjelmointikielellä ja soittamista eri ohjelmointikielellä.
- WSDL-asiakirja koostuu yleensä sanomasta. Kutakin verkkomenetelmää varten on 2 viestiä, yksi on tuloa varten ja toinen lähtöä varten. Yhdessä ne muodostavat operaation.
- Web Services Description Language (lyhenne sanoista WSDL) -tiedostot luodaan yleensä editorissa, jota käytetään vastaavalle ohjelmointikielelle.
- Olemme nähneet, kuinka voimme käyttää verkkopalvelua Visual Studiossa. Tämä voidaan tehdä luomalla toinen projekti, joka on konsolisovellus. Sitten lisäämällä palveluviite, voimme sitten käyttää verkkopalvelumme verkkomenetelmiä.