Mis on veebiteenus? Mis on veebiteenus. Mis on veebiteenused

Veebiteenus on programm, millele pääsevad Interneti kaudu juurde teised programmid (http). Oletame näiteks, et teil on funktsioon, mis pakub teksti HTML-vormingus. Rakenduse eesmärk on, et veebibrauser näitaks tulemusi ja inimene saaks seda teksti lehel hõlpsalt lugeda.

Teisest küljest on veebiteenuse sihtrühmaks teised programmid või muud veebiteenused, mis tarbivad veebiteenuse pakutavaid andmeid. Tavaliselt on väljund standardkeeles, millest teised programmid aru saavad. Võtke ülaltoodud näide, kui veebiteenus väljastab teksti XML-vormingus, saavad seda väljundit kasutada ka teised veebiteenused, mis saavad XML-i lugeda või sellest aru saada.

Veebiteenuse peamine eelis on see, et rakendusi saab kirjutada mis tahes keeles, kuid nad saavad veebiteenuse kaudu suhelda ja omavahel suhelda. Erinevates programmeerimiskeeltes kirjutatud ja erinevatel platvormidel töötavad tarkvararakendused saavad kasutada veebiteenuseid Interneti kaudu suhtlemiseks (HTTP). See interaktsioon (näiteks Java ja Pythoni või Windowsi ja Linuxi rakenduste vahel) hõlmab avatud standardite (XML, SOAP, HTTP) kasutamist.

  • SOAP (Simple Object Access Protocol)
  • UDDI (universaalne kirjeldus, avastamine ja integreerimine)
  • WSDL (veebiteenuste kirjelduskeel)

Kui palju erinevat tüüpi veebiteenuseid on?

Peamiselt on kahte tüüpi veebiteenuseid, lihtsa objekti juurdepääsu protokoll (SOAP) ja esindusoleku edastus (REST).

  • SOAP veebiteenus aktsepteerib XML-vormingus päringu ja genereerib väljundi XML-vormingus.
  • Veebiteenus REST on mitmekülgsem ja võib päringuna aktsepteerida nii XML-i kui ka JSON-i ning genereerib väljundit nii XML-is kui ka JSON-is või isegi HTML-is

Seda küsimust saab meie lehel üksikasjalikumalt uurida.

Teema pealkiri on tõesti küsitav, sest... Ma ise ei tea, mis see on, ja proovin esimest korda selle artikli raames sellega töötada. Ainus, mida võin garanteerida, on see, et alltoodud kood töötab, kuid minu fraasid on ainult oletused ja oletused selle kohta, kuidas ma sellest kõigest aru saan. Niisiis, lähme...

Sissejuhatus

Peame alustama sellest, miks veebiteenuste kontseptsioon loodi. Selle kontseptsiooni maailmas ilmumise ajaks olid juba olemas tehnoloogiad, mis võimaldasid rakendustel distantsilt suhelda, kus üks programm võis välja kutsuda mõne meetodi teises programmis, mille sai käivitada teises linnas või isegi riigis asuvas arvutis. Kõik see on lühendatud kui RPC (Remote Procedure Calling). Näited hõlmavad CORBA tehnoloogiaid ja Java puhul RMI-d (Remote Method Invoking). Ja nendes tundub kõik hästi olevat, eriti CORBA puhul, sest... Sellega saab töötada mis tahes programmeerimiskeeles, kuid midagi jäi siiski puudu. Usun, et CORBA miinuseks on see, et see töötab läbi mõne oma võrguprotokolli lihtsa HTTP asemel, mis mahub läbi mis tahes tulemüüri. Veebiteenuse idee oli luua RPC, mis sisestatakse HTTP-pakettidesse. Nii algas standardi väljatöötamine. Millised on selle standardi põhimõisted:
  1. SEEP. Enne kaugprotseduuri kutsumist peate kirjeldama seda kõnet SOAP-vormingus XML-failis. SOAP on lihtsalt üks paljudest XML-märgistustest, mida veebiteenustes kasutatakse. Kõik, mida tahame HTTP kaudu kuhugi saata, teisendatakse esmalt XML SOAP kirjelduseks, seejärel pannakse HTTP paketti ja saadetakse TCP/IP kaudu võrgus teise arvutisse.
  2. WSDL. On olemas veebiteenus, st. programm, mille meetodeid saab eemalt kutsuda. Kuid standard nõuab, et sellele programmile tuleb lisada kirjeldus, mis ütleb, et "jah, sul on õigus – see on tõesti veebiteenus ja sealt saab kutsuda selliseid ja selliseid meetodeid." Seda kirjeldust esindab teine ​​XML-fail, millel on erinev vorming, nimelt WSDL. Need. WSDL on lihtsalt XML-fail, mis kirjeldab veebiteenust ja ei midagi muud.
Miks sa nii lühidalt küsid? Kas sa ei saa olla täpsem? Tõenäoliselt on see võimalik, kuid selleks peate kasutama selliseid raamatuid nagu T. Mashnin "Java veebiteenused". Seal on üle esimese 200 lehekülje iga SOAP- ja WSDL-standardi sildi üksikasjalik kirjeldus. Kas seda tasub teha? Minu arust ei, sest... kõik see luuakse Java-s automaatselt ja peate kirjutama ainult nende meetodite sisu, mida eeldatakse kaugkõnede kaudu. Niisiis ilmus Javas API, näiteks JAX-RPC. Kui keegi ei tea, siis kui öeldakse, et Java-l on selline ja selline API, siis see tähendab, et on olemas pakett klasside komplektiga, mis kõnealust tehnoloogiat kapseldavad. JAX-RPC arenes aja jooksul versioonist versioonini ja sai lõpuks JAX-WS-iks. WS tähistab ilmselgelt WebService'i ja võib arvata, et see on lihtsalt RPC ümbernimetamine tänapäeval populaarseks moesõnaks. See pole tõsi, sest Nüüd on veebiteenused algsest ideest eemaldunud ja võimaldavad mitte ainult kaugmeetoditele helistada, vaid ka lihtsalt SOAP-vormingus dokumendisõnumeid saata. Ma ei tea, miks seda veel vaja on, on ebatõenäoline, et siin on vastus "igaks juhuks, kui seda vaja on". Ma ise tahaksin õppida kogenumatelt seltsimeestelt. Ja lõpuks, siis ilmus JAX-RS nn RESTful veebiteenuste jaoks, kuid see on eraldi artikli teema. Sissejuhatus võib siinkohal lõppeda, sest... Järgmisena õpime töötama JAX-WS-iga.

Üldine lähenemine

Veebiteenustes on alati klient ja server. Server on meie veebiteenus ja seda nimetatakse mõnikord lõpp-punktiks (nagu lõpp-punktiks, kuhu kliendi SOAP-sõnumid jõuavad). Peame tegema järgmist.
  1. Kirjeldage meie veebiteenuse liidest
  2. Rakendage see liides
  3. Käivitage meie veebiteenus
  4. Kirjutage klient ja helistage eemalt soovitud veebiteenuse meetodile
Veebiteenust saab käivitada erineval viisil: kirjeldada klassi põhimeetodiga ja käivitada veebiteenus otse serverina või juurutada see serverisse nagu Tomcat või muusse serverisse. Teisel juhul me ise ei käivita uut serverit ja ei ava arvutis teist porti, vaid ütleme lihtsalt Tomcati servleti konteinerile, et “me oleme siia kirjutanud veebiteenuste klassid, palun avalda need, et kõik, kes sinuga ühendust võtavad, saaksid kasutage meie veebiteenust." Olenemata veebiteenuse käivitamise viisist on meil sama klient.

Server

Käivitame IDEA ja loome uue projekti Loo uus projekt. Märkame nime HelloWebService ja vajutage nuppu Edasi, seejärel nuppu Lõpeta. Kaustas src koostame paketi ru.javarush.ws. Selles paketis loome HelloWebService'i liidese: pakett ru. javarush. ws; // need on annotatsioonid, st. viis meie klasside ja meetodite märkimiseks, // mis on seotud veebiteenuste tehnoloogiaga importida javax. jws. WebMethod; importida javax. jws. Veebiteenus; importida javax. jws. seep. SOAPBinding; // me ütleme, et meie liides töötab veebiteenusena@WebService // me ütleme, et veebiteenust kasutatakse meetodite kutsumiseks@SOAPBinding (stiil = SOAPBinding. Style. RPC) avalik liides HelloWebService ( // me ütleme, et seda meetodit saab kaugjuhitavalt kutsuda@WebMethod public String getHelloString(Stringi nimi) ; ) Selles koodis on WebService ja WebMethod klassid nn annotatsioonid ega tee muud, kui märgivad meie liidese ja selle meetodi veebiteenuseks. Sama kehtib SOAPBinding klassi kohta. Ainus erinevus on see, et SOAPBinding on parameetritega märkus. Sel juhul kasutatakse stiiliparameetrit väärtusega, mis näitab, et veebiteenus ei tööta mitte dokumendisõnumite kaudu, vaid klassikalise RPC-na, s.t. kutsuda meetodit. Rakendame oma liidese loogikat ja loome oma paketis HelloWebServiceImpl klassi. Muide, märgin, et klassi lõpetamine Impliga on Javas tava, mille järgi liideste juurutamine on nii määratud (Impl - sõnast implementatsioon, st implementatsioon). See ei ole nõue ja võite vabalt nimetada klassi, mida soovite, kuid head kombed nõuavad seda: pakett ru. javarush. ws; // sama märkus, mis liidese kirjeldamisel, importida javax. jws. Veebiteenus; // kuid siin kasutatakse seda parameetriga endpointInterface,// mis näitab meie veebiteenuse liideseklassi täisnime @WebService(endpointInterface="ru.javarush.ws.HelloWebService" src) avalik klass HelloWebServiceImpl rakendab HelloWebService'i ( @Override public String getHelloString (Stringi nimi) ( // anna lihtsalt tervitus tagasi return "Tere, " + nimi + "!" ; ) ) Käivitame oma veebiteenuse iseseisva serverina, st. ilma Tomcati ja rakendusserverite osaluseta (see on eraldi arutelu teema). Selleks kausta projekti struktuuris import ru. javarush. ws. HelloWebServiceImpl; public class HelloWebServicePublisher ( public static void main (String... args) ( // käivitage veebiserver pordis 1986 // ja esimeses argumendis määratud aadressile,// käivitage teises argumendis edastatud veebiteenus Lõpp-punkt. avalda ("http://localhost:1986/wss/hello" , uus HelloWebServiceImpl () );) ) Nüüd käivitame selle klassi klõpsates

Tõstuklahv+F10

. Konsoolis ei kuvata midagi, kuid server töötab. Saate seda kontrollida, tippides oma brauserisse rea http://localhost:1986/wss/hello?wsdl. Avanev leht tõestab ühelt poolt, et meie arvutis (localhost) töötab pordil 1986 töötav veebiserver (http://) ja teisest küljest näitab meie veebiteenuse WSDL kirjeldust. Kui peatate rakenduse, muutub kirjeldus kättesaamatuks, nagu ka veebiteenus ise, seega me seda ei tee, vaid jätkame kliendi kirjutamisega. src Klient Projekti kaustas Loome paketi ru.javarush.client ja selles klassi HelloWebServiceClient põhimeetodiga: pakett ru. javarush. klient;// vaja wsdl kirjelduse saamiseks ja selle kaudu // jõuda veebiteenusesse ise importida javat. net. URL; // see erand ilmneb URL-i objektiga töötamisel importida javat. net. ValformedURLException;// klassid, mida sõeluda xml koos wsdl kirjeldusega // ja jõuda selles oleva teenusesildini importida javax. xml. nimeruum. QName; importida javax. xml. ws. Teenindus;// meie veebiteenuse liides (me vajame rohkem) import ru. javarush. ws. HelloWebService;) ; public class HelloWebServiceClient ( public static void main (String args) viskab MalformedURLException ( // looge link wsdl kirjeldusele URL url = uus URL ("http://localhost:1986/wss/hello?wsdl" // Vaatame järgmise konstruktori parameetreid WSDL kirjelduse kõige esimeses sildis – definitsioonid// vaadake atribuudi targetNamespace esimest argumenti // vaata 2. argumenti atribuudis name QName qname = uus QName ("http://ws.site/" , "HelloWebServiceImplService" ) ;// Nüüd jõuame teenuse märgendini wsdl-i kirjelduses, Teenindusteenus = teenindus. loo (url, qname) ; Süsteem. välja. println (tere. getHelloString ( "JavaRush" ) );

) ) Andsin nimekirjas olevale koodile maksimaalselt kommentaare. Mul pole midagi lisada, nii et käivitame (Shift+F10). Peaksime nägema konsoolis teksti: Tere, JavaRush! Kui te seda ei näinud, unustasite tõenäoliselt veebiteenuse käivitada.

Järeldus See teema andis lühikese ülevaate veebiteenustest. Ma ütlen veel kord, et suur osa sellest, mida ma kirjutasin, on minu oletus selle kohta, kuidas see toimib, ja seetõttu ei tohiks te mind liiga palju usaldada. Oleksin tänulik, kui teadlikud inimesed mind parandaksid, sest siis õpin midagi.

UPD.

Oleme välja valinud 10 parimat veebiteenust, mille ülevaated avaldati eelmisel aastal Lifehackeris. Need tööriistad aitavad meil tõhusalt aega organiseerida ja meeskonnatööd teha, äri juhtida, uusi teadmisi omandada ja võimeid arendada ning lõõgastumisest ja meelelahutusest rohkem naudingut saada. Proovige neid uuel aastal ja laske oma elul muutuda helgemaks ja mugavamaks! Geniaalne ifttt-mashup võimaldab teil luua põhjus-tagajärg seose sündmuste vahel erinevates veebiteenustes vastavalt „Kui See juhtus siis ühes teenistuses See

Bookmate on teie isiklik elektrooniline raamatukogu, millest saate raamatuid lugeda arvutis ja mobiilseadmetes (iPhone, iPad, Android, Symbian). Samal ajal sünkroonitakse andmed kasutatavate seadmete vahel – kui arvutis lugemist alustate, saate seda nutitelefonis või tahvelarvutis jätkata sealt, kus pooleli jäite. Bookmate fondis on mitu tuhat tasuta raamatut, paljud raamatud on saadaval tellimuse alusel, mille hind on vaid 99 rubla kuus. Kui te nende hulgast vajalikku raamatut ei leia, saate selle ise raamatukogusse üles laadida. Teenus võimaldab jagada soovitusi sõpradega, vaadata nende lugemisnimekirju ja laenutada raamatuid nende raamaturiiulitelt. Lugemissõpradele võin soovitada ka imelist raamatusõprade suhtlusvõrgustikku Goodreads (Lifehackeris koos huvitavate täiendustega Petr Didenkolt ja Viktor Zahharchenkolt), mida olen ise kasutanud pea aasta ja millest rääkisime 40. osas. podcast “42” koos Petr Didenko ja Viktor Zahharchenkoga.

Kaasaegsed ettevõtted peavad kasutama uusi tehnoloogiaid konkurentsivõime tõstmiseks ja oma arengu stimuleerimiseks. Paljusid raamatupidamise ja ärijuhtimise ülesandeid on võimalik sisse osta ning paljudel juhtudel on üksikettevõtjal või OÜ-l mugav kasutada pilveteenuseid nagu “Minu ettevõte”. See teenus on kasumlik asendus tavapärasele allhankele. Selle abiga saate poolautomaatselt pidada raamatupidamisarvestust, arvutada makse, esitada riigiasutustele elektrooniliselt aruandeid Interneti kaudu, saada ekspertnõuandeid ja koostada 15 minutiga üksikettevõtja registreerimiseks vajalike dokumentide pakett (ja peagi see dokumentide koostamine ja OÜ registreerimine). Pöörake tähelepanu ka ettevõtte SKB Kontur sarnasele teenusele - elektrooniline raamatupidaja "Elba". Kui teid huvitab ettevõtluse pilvetehnoloogiate teema, siis kuulake Peter Didenko ja Nina Gorbunova osalusel taskuhäälingusaate “42” 54. osa.

Teine oluline pilveteenuste kategooria on projektihaldussüsteemid. Üks parimaid (ja tasuta) on TeamLab, väärt konkurent Basecampile ja teistele populaarsetele süsteemidele. TeamLab on saadaval kolmes lahenduses – SaaS-ina kasutamiseks brauseris kohe pärast konto registreerimist; avatud lähtekoodi kujul, mida saate iseseisvalt oma vajaduste ja maitse järgi muuta ning seejärel süsteemi oma serveritesse juurutada; ja virtuaalmasinana koos eelinstallitud TeamLabi portaaliga Amazoni serveritesse. TeamLab sisaldab mooduleid projektijuhtimiseks, koostööks, dokumendihalduseks, kalendriks, CRM-süsteemiks (kliendisuhete haldussüsteem). TeamLabi turundusjuht Nina Gorbunova esitles seda süsteemi ettevõtluse jaoks mõeldud pilvetehnoloogiate taskuhäälingusaate “42” 54. osas.

Uus moekas teenus Pinterest võimaldab luua kauneid virtuaaltahvleid erinevate objektide, hoonete, kohtade, interjööride, roogade kujutistega – kõigest, mida armastad ja soovid teistele näidata. Uusi objekte lisatakse tahvlitele väga lihtsalt – kasutades brauseritele mõeldud järjehoidjat või käsitsi läbi veebiliidese. Pinterestis saad jälgida oma sõprade virtuaaltahvlite uuendusi, vaadates ideid, inspiratsiooni ja lihtsalt head tuju otsides huvitavaid pilte. Näiteks siin on minu tahvel "42 Podcasti külalist", millel on fotod kõigist toredatest külalistest, teave nende tegevuse kohta ja lingid nende osalusel olevate taskuhäälingusaadete episoodidele.

Yast ajajälgimise teenust kasutades saate jälgida erinevatele projektidele ja üksikutele ülesannetele kuluvat aega, leida oma töögraafikust nõrgad kohad ja neid optimeerida. Teenus on mõeldud nii üksikkasutajatele kui ka väikestele meeskondadele. Ülesande taimer käivitub ja peatub ühe klõpsuga ning hiljem saate erinevatest jaotistest üksikasjalikud aruanded. Ajajälgijad on väga kasulikud ajahaldustööriistad – sama olulised kui tegumihaldurid ja kalendrid. Omast kogemusest tean, et isiklikku efektiivsust saab radikaalselt parandada, kui uurida põhjalikult oma töögraafikut ja pühendada veidi aega selle optimeerimisele.

Moredays on veebipõhine korraldaja, mis on stiliseeritud paberplaneerijateks ja meenutab mõneti legendaarseid Moleskinesi. Selle peamine eelis on hämmastav ilu. Disainerid andsid endast parima ja tegid ühe maailma kaunima korraldaja. Samas on Moredays üsna rikkalik funktsionaalsus: saate hallata ülesandeid, planeerida kalendris aega, salvestada märkmeid, kontakte, jagada Twitteri, Facebooki ja Google+ kaudu teiste inimestega individuaalseid korraldajalehti, sünkroonida andmeid Evernote'i ja Google Appsiga ning varsti on mobiilseadmete jaoks kliente.

Kui olete üks Facebooki asutajatest, saab mõni teie projekt kohe kuulsaks. Nii juhtus maailma suurima sotsiaalvõrgustiku kaasasutaja Dustin Moskowitzi Asana projektijuhtimissüsteemiga. Kuid Asana väärib tähelepanu mitte ainult Dustini isiksuse tõttu - arendajad on loonud lihtsa ja mugava teenuse meeldiva, kuid range liidesega. Asana sobib individuaalseks kasutamiseks ja väikeses meeskonnas töötamiseks. Vaevalt saab süsteemi funktsionaalsust rikkalikuks nimetada, kuid võib-olla on see just selle üks peamisi eeliseid neile, kes ei vaja funktsioonidega ülekoormatud projektihaldustööriistu. Asana sünkroonib Google'i kalendri, Apple iCali ja Microsoft Outlookiga, integreerub meiliga ning sellel on nutitelefonide ja tahvelarvutite jaoks kliendid.

BO.LT pakub lihtsat, kuid hämmastavat võimalust muuta mis tahes veebilehte oma maitse järgi. Piisab selle aadressi märkimisest ja saate väga lihtsalt, ilma HTML-i ja muid veebiarendustehnoloogiaid tundmata, teha selle veebilehe koopia tekstis ja kujunduses muudatusi ning seejärel saata teistele inimestele lühendatud link tulemusele. . Sõbrad või kolleegid, keda kutsute vaatama, saavad ka seda veebilehte muuta. Teenus on asendamatu, kui teil on vaja selgelt visualiseerida saidi välimust pärast erinevaid muudatusi, luua uusi disainiideid või näidata oma sõpradele selgitavate kommentaaridega veebilehte. Veelgi suurema tegevusvabaduse saamiseks võite lülituda HTML-koodi redigeerimisrežiimile.

Head lugejad, millised veebiteenused teile 2011. aastal meeldisid? Milliseid võite meile Lifehackeri arvustuste jaoks soovitada?

Veebiteenus on tarkvara, mis pakub platvormist sõltumatut juurdepääsu oma andmetele Interneti kaudu teistele tarkvaratoodetele, kasutades XML-i ja standardeid, nagu SOAP, WSDL ja UDDI.

Milleks saab veebiteenuseid praktikas kasutada? Kujutage ette börsi, mille serveritel on täielik teave kõigi sellel börsil kaubeldavate väärtpaberite praeguste noteeringute kohta. See on väga oluline teave, millele veebipõhine juurdepääs võib olla kaugtarkvarasüsteemide jaoks väga väärtuslik ja kasulik. Või veel üks tavainimesele lähemal olev näide: ilmabüroo server võib sisaldada teavet ilmastikutingimuste kohta teatud piirkonnas või kogu planeedil. Seda teavet võivad kasutada ka kolmanda osapoole rakendused.

Paljud inimesed on sageli näinud ilmasaitide informaatoreid, kuid see pole kõige mugavam viis ettevõtte rakenduste jaoks tõelise teabe hankimiseks, kuna see piirab saadud teabega töötamist. Sellise informaatoriga saate teha ainult kahte asja: selle oma veebisaidile riputada või veebisaidilt eemaldada, kui see on sinna juba postitatud. Aga kuidas on lood rakendustega, mis peavad Met Office'i serverist toorandmeid vastu võtma ja neid keeruliste toimingute tegemiseks töötlema (näiteks graafiliselt modelleerima kaarte ja joonistama vastava temperatuuri piirkondadele)?

Selliste probleemide lahendamiseks võib veebiteenuste pakkujaks saada börsi- või ilmakontori server ning nende andmete tarbijateks rakendused, mis neilt interneti kaudu andmeid saavad. Nii moodustub klient-server arhitektuur, kus andmepakkujaks on server ja tarbijaks klient, kusjuures serveri ja kliendi tarkvara ei pea ühilduma, põhitingimuseks on veebiteenuste tugi.

Serveri ja kliendi vaheline vahetus toimub standardsete Interneti-protokollide, näiteks HTTP abil. Veebiteenus kirjeldab ennast ja määratleb sellega suhtlemiseks API. sel juhul teisendatakse selle API elemendid automaatselt selle programmeerimiskeele keelekonstruktsioonideks, mida klientrakendus kasutab. Veebiteenuseid kirjeldatakse vastavalt WSDL (Web Services Description Language) spetsifikatsioonile. Andmed ise edastatakse serverist kliendile SOAP-vormingus (Simple Object Access Protocol).

Teisisõnu, klientrakendus pääseb WSDL-failile ligi oma URL-i kaudu, st. kasutades tavalist GET-meetodit. Samal ajal saab see veebiteenuse meetodite kirjelduse ja saab neid seejärel kasutada omana (st ilma kliendi poolele lisakoodi kirjutamata - veebiteenusest saab justkui kliendi kaugjätk programm).

Aleksander Kachanov

Veebiteenuste idee töötasid välja arvutitööstuse hiiglased nagu Sun, Oracle, HP, Microsoft ja IBM. See idee pole midagi uut, kuid see on suur samm edasi programmidele veebi kaudu hõlpsama juurdepääsu suunas. Põhinedes standardsetele suhtlusvormingutele, võivad veebiteenused täielikult muuta meie suhtumist sellesse, kuidas veebisaite teha.

Mis on veebiteenus?

Tänu veebiteenustele saab mis tahes programmi funktsioone Interneti kaudu kättesaadavaks teha. Seega saavad sellised programmid nagu PHP, ASP, JSP skriptid, JavaBeans, COM-objektid ja kõik muud meie lemmikprogrammeerimistööriistad nüüd juurde pääseda mõnele teises serveris töötavale programmile (st veebiteenusele) ja kasutada temalt saadud vastust tema veebisaidil või rakendus.

Oletame, et kui mul on vaja mõnda programmeerimisülesannet täita ja ma olen liiga hõivatud (või ei suuda ise jalgratast uuesti leiutada), saan kasutada veebiteenuse teenuseid, millele mu sait Interneti kaudu juurde pääseb. Edastades veebiteenusele päringu koos parameetritega, loodan saada vastuse, mis sisaldab minu päringu tulemust.

Kõik, kes on kunagi hiljuti koos töötanud Hotmail, on veebiteenustega juba osaliselt kokku puutunud: kasutajate autentimissüsteem Passport on üks Microsofti .NET-i algatusse kaasatud teenustest. See on praegu tasuta saadaval, nii et veebisaitide loojad saavad hõlpsasti oma saidil kasutaja autentimist rakendada.

Põhitõed

Veebiteenuste põhimõtted on üllatavalt lihtsad. Ja nad ei lisa hajutatud andmetöötluse ja Interneti maailmale midagi uut:

  • veebiteenuse eest vastutav isik määrab oma veebiteenusele esitatavate päringute vormingu ja vastused
  • iga võrgus olev arvuti esitab päringu veebiteenusele
  • veebiteenus töötleb päringu, teeb mõne toimingu ja saadab seejärel vastuse

See toiming võib olla näiteks börsihinna kuvamine, konkreetse toote hinna kuvamine, kirje salvestamine kohtumiste kalendrisse, teksti tõlkimine ühest keelest teise või krediitkaardi numbri kontrollimine.

Standardid keskmes

Põhjus, miks me kõik äkki veebiteenuste vastu huvi tunneme, on see, et need põhinevad standarditel, avatud andmevahetuse ja -edastuse protokollidel.

Enne seda töötasid paljud ettevõtted välja oma patenteeritud standardid ja vormingud. Ja nüüd on meil vaja vaid teada lihtsat XML-i (eXtensible Markup Language), mida edastatakse vana tuttava HTTP-protokolli kaudu. See tähendab, et teave veebiteenuste toimimise kohta on kõigile kättesaadav ja veebiarendajad, kes on nende tehnoloogiatega erialalt tuttavad, saavad veebiteenustega mängima hakata juba täna.

Veebiteenuste ja muude arendajate kohatud tehnoloogiate (näiteks DCOM, named pipes, RMI) erinevus seisneb selles, et veebiteenused põhinevad avatud standarditel, neid on lihtne õppida ja neid standardeid toetatakse laialdaselt kogu maailmas ja Windowsi platvormid.

Simple Object Access Protocol (SOAP) on standardprotokoll, mille on välja töötanud W3C. See määrab veebiteenuste päringute vormingu.

Veebiteenuse ja selle kasutaja vahelised sõnumid pakitakse SOAP-ümbrikutesse. Sõnumid sisaldavad kas taotlust mõne toimingu sooritamiseks või vastust – selle toimingu tulemust. Ümbrik ja selle sisu on kodeeritud XML-vormingus ja neid on üsna lihtne mõista. Lihtne SOAP-i päring näeb välja selline, kui see saadetakse HTPP kaudu veebiteenusele:

xmlns:env="http://www.w3.org/2001/06/soap-envelope">


xmlns:m="http://www.somesite.com/Postcode">
WC1A8GH
Ühendkuningriik


SOAP-ümbriku põhielemente on üsna lihtne teada saada: need on kaks parameetrit ( ("postiindeks") ja ("riik")), mis sisalduvad elemendis nimega . See element on selle veebiteenuse nimi, millele me päringu esitame. Muud ümbrikus olevad andmed, nagu teksti kodeering ja SOAP-versioon, aitavad veebiteenusel päringut õigesti töödelda.

Ja vastus näeb välja selline:

xmlns:env="http://www.w3.org/2001/06/soap-envelope" >

env:encodingStyle="http://www.w3.org/2001/06/soap-encoding"
xmlns:m="http://www.somesite.com/Postcode">
Jah


Seda sõnumit on veelgi lihtsam dešifreerida. Element meie taotluses muudeti elemendiks vastuseks palvele. See element sisaldab ainult ühte elementi , mille väärtus näitab, kas meie sihtnumber on õige või mitte. Seega oleme SOAPi võlu abil loonud päringu, mis teeb meie jaoks kasulikku tööd. Vastuseks võrgu kaudu saame teatud tüüpi vastuse XML-vormingus.

Nüüd UDDI kohta

Kuigi SOAP-protokoll on lihtne, oleks veebiteenustest vähe kasu, kui meil poleks võimalust neid leida. Õnneks astusid IBM, Microsoft ja Ariba hoogu ja lõid universaalse kirjelduse, avastamise ja integratsiooni (UDDI) projekti, millest nad loodavad saada kõigi veebiteenuste ühiseks kataloogiks.

UDDI süsteem võimaldab ettevõtetel oma veebiteenust avalikkusele tutvustada. See kataloog töötab kõigi veebiteenuste telefoniraamatuna. Registreerimine UDDI kataloogis on tasuta ja projekti asutajad loodavad, et see kataloog sisaldab kõigi, kõigi ja kõigi veebiteenuste kirjeldusi, nii et soovitud veebiteenuse leidmiseks peate pöörduma ainult ühe UDDI poole. kataloog.

Kuidas see kõik töötab

Kuidas siis õiget veebiteenust leida?

Kujutagem ette, et olen veebisaidi arendaja ja mu klient palus mul saidile uue funktsiooni lisada: pean registreerimisvormile lisama sihtnumbri kontrolli.

Selle kontrolli teostamiseks peaksin looma kõigi 30 riigi sihtnumbrite andmebaasi, kus meie ettevõte tegutseb, ning seejärel kontrollima, kas sihtnumber vastab registreerimisel märgitud linnale. Kuid mul pole neid andmeid ja arvan, et selliste andmete kogumine peab kulutama märkimisväärse summa raha.

Selle asemel, et koguda raha andmebaasi ostmiseks, ise koodi kirjutamiseks, kõigi andmete terviklikkuse ja õigsuse tagamiseks ning skriptide silumiseks, lähen lihtsalt UDDI kataloogi ja vaatan, kas on olemas veebiteenus, mis saaks selle töö ära teha. mina . Saabudes saidile http://www.uddi.org/, käivitan otsingu ja leian suurepärase teenuse XYZ Corp.

Vaatan hoolikalt üle veebiteenuse vormingu määratlus (definitsioon on kirjutatud WSDL-s (Web Services Description Language)), veendudes, et teenus teeb täpselt seda, mida vajan. Seejärel uurin kolleegidega XYZ Corp. mainet ja uurin et see on kindel , ja võtke seejärel hinnaküsimusega ühendust XYZ Corpiga. Kui teenusele juurdepääsu hind jääb minu eelarve piiresse, kirjutan oma saidi jaoks lihtsa JSP-lehe, mis kutsub XYZ Corpi veebiteenust, ja ennäe, kohene kinnitus. kuvatakse saidil.

See on teie aega väärt

Isegi kui teil pole programmeerimise või veebisaidi arendamise tehnoloogiatega midagi pistmist, tasub veebiteenuste kohta rohkem teada saada. Kujutage ette pilti, kuidas arutate kliendiga uut veebisaiti, arutades kõiki uue projekti funktsioone. Kõik läheb suurepäraselt: eelarve vastab kliendi ootustele, talle meeldis kohaplaani eskiis ja meeldisid liidese näited. Tundub, et kõik töötab.

Ja järsku meenuvad nad mõne väga keerulise funktsiooniga. Ainuüksi selle mainimisel muutub teie veebiarendaja nägu roheliseks ning ta hakkab lämbuma ja köhima. See on arendaja, kes annab teile signaali, et selle funktsiooni arendamine nõuab palju raha ja aega või pole lihtsalt sellise eelarvega teostatav.

Loobu oma hirmust! Võin garanteerida, et Internetis on juba olemas veebiteenus, mis on valmis teile vajaliku funktsiooni pakkuma ja selle veebiteenuse kasutamise maksumus on palju madalam kui selle analoogi iseseisva arendamise maksumus. Nii säästate oma arendajat tarbetute peavalude eest ja klienti raha raiskamisest, kulutades vaid paar minutit UDDI kataloogi sirvides.

Teenuse arendamine

Loomulikult ei pea arendajad rahulduma ainult teiste loodud veebiteenustega. Kasutades ühte järgmistest tööriistakomplektidest, saate luua oma veebiteenuse ja pakkuda selle teenuseid teistele Interneti-kasutajatele.

Tööriistade valik veebiteenuste arendamiseks on lai. See sisaldab tööriistu sellistelt ettevõtetelt nagu Sun (Open Net), Microsoft (.NET), (e-teenused) ja IBM (veebiteenused). Samuti on avatud lähtekoodiga raamistikud. Näiteks on Mono projekti eesmärk asendada Microsofti .NET-i tööriistakomplekt, pakkudes kompilaatoreid, käituskeskkonda ja teeke, et käitada samu veebiteenuseid kõigil platvormidel, sealhulgas Unixis.

Vaatamata mitmesugustele serveritele ja veebiteenuste arendustööriistadele toetavad need kõik sama SOAP-protokolli, XML-keelt ja UDDI-süsteemi.

Miinused

Enne kui loobun täielikult oma programmeerijakarjäärist ja pühendun veebiteenuste kasutamisele, pean endalt küsima: "See on liiga roosiline pilt, mis sellel viga on?" Kahjuks on veebiteenuste suurel potentsiaalil oma hind:

  • XML-i kasutamine andmeedastusvorminguna tähendab, et teie sõnumid on väga suured: XML-sildid ise võtavad palju ruumi ja see paneb meile teatud koormuse sõnumite loomisel, edastamisel ja tõlgendamisel.
  • Kuna me kasutame teatud funktsioonide täitmiseks kaugarvuteid, siis tugineme täielikult Internetile, mis loob meie veebiserveri ja veebiteenuse ahelasse liiga palju ebausaldusväärseid linke.
  • Tänapäeval loovad veebiteenuseid vähesed ettevõtted ja vähesed ettevõtted kasutavad neid. Veebiteenuste süsteemi silumine ja täiustamine nõuab veel palju aega.
  • Veebiteenuste kasutamise litsentsimise ja tasustamise süsteemi peavad arendajad veel aktsepteerima. Kuna veebiteenuseid on endiselt liiga vähe, püüab enamik ettevõtteid jätta potentsiaalsetele klientidele hea mulje, vähendades teadlikult teenuste maksumust ja pakkudes soodsaid litsentsimistingimusi. Läheb veel aega, enne kui veebiteenuste tegelik hind selgub.

Kui veebiteenused võtavad oma koha ja muutuvad kõigile kättesaadavaks, saavad neist veebiarendajatele hindamatu abi. Need annavad meile paindliku juurdepääsu kõigi võrgus olevate arvutite täisvõimsusele. Veebisaitide koostajatel on aeg hakata veebiteenuste vastu huvi tundma ja rohkem teada saada, mida neilt saada on.