XML-i veebiteenused. Tehnoloogia ülevaade

Teema pealkiri on tõesti küsimus, 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 allolev kood töötab, kuid minu fraasid on ainult oletused ja oletused selle kohta, kuidas ma ise sellest kõigest aru saan. Nii et lähme...

Sissejuhatus

Alustada tuleb sellest, milleks veebiteenuste kontseptsioon loodi. Selle kontseptsiooni ilmumise ajaks olid maailmas juba olemas tehnoloogiad, mis võimaldasid rakendustel distantsilt suhelda, kus üks programm võis mõnes teises programmis mõne meetodi välja kutsuda, mille sai seejärel käivitada teises linnas või isegi riigis asuvas arvutis. Kõik see on lühendatud kui RPC (Remote Procedure Calling – kaugprotseduurikõne). Näited hõlmavad CORBA tehnoloogiaid ja Java puhul RMI-d (Remote Method Invoking – kaugmeetodi kutsumine). Ja nendes tundub kõik hästi olevat, eriti CORBA-s, sest sellega saab töötada mis tahes programmeerimiskeeles, aga midagi jäi siiski puudu. Usun, et CORBA puuduseks on see, et see töötab mõne võrguprotokolli kaudu lihtsa HTTP asemel, mis roomab läbi mis tahes tulemüüri. Veebiteenuse idee oli luua selline RPC, mis lükataks HTTP-pakettidesse. Nii algas standardi väljatöötamine. Millised on selle standardi põhimõisted:
  1. SEEP. Enne kaugprotseduuri kutsumist peate seda kõnet kirjeldama SOAP-vormingus XML-failis. SOAP on vaid üks paljudest veebiteenustes kasutatavatest XML-märgistustest. Kõik, mida tahame HTTP kaudu kuhugi saata, muudetakse 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, te ei eksinud - see on tõesti veebiteenus ja sealt saate 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 te ei saa üksikasjalikumalt rääkida? Tõenäoliselt saate, kuid selleks peate pöörduma selliste raamatute poole nagu Mashnin T. "Java veebiteenused". Seal on esimesel 200 leheküljel iga SOAP- ja WSDL-standardi sildi üksikasjalik kirjeldus. Kas see on seda väärt? Minu arust ei, sest kõik see luuakse Java-s automaatselt ja peate kirjutama ainult nende meetodite sisu, mida peaks kaugkutsuma. Niisiis, Javas on selline API nagu JAX-RPC. Kui keegi ei tea, millal nad ütlevad, et Java-l on selline ja selline API, tähendab see, et on olemas pakett klasside komplektiga, mis kapseldavad kõnealust tehnoloogiat. JAX-RPC arenes pikka aega versioonist versioonini ja arenes lõpuks JAX-WS-iks. WS tähistab ilmselgelt WebService'i ja võite arvata, et see on lihtne RPC ümbernimetamine tänapäeval populaarseks moesõnaks. See pole nii, sest nüüd on veebiteenused algsest ideest eemaldunud ja võimaldavad mitte ainult kaugmeetoditele helistada, vaid ka lihtsalt SOAP-vormingus dokumendisõnumeid saata. Miks seda vaja on, ma veel ei tea, on ebatõenäoline, et siin tuleb vastus "igaks juhuks, äkki läheb vaja." Ma ise tahaksin õppida kogenumatelt seltsimeestelt. Ja lõpuks ilmus JAX-RS nn RESTful veebiteenuste jaoks, kuid see on eraldi artikli teema. Selle sissejuhatuse võib lõpetada, sest. järgmiseks õpime, kuidas töötada JAX-WS-iga.

Üldine lähenemine

Veebiteenustel on alati klient ja server. Server on meie veebiteenus ja seda nimetatakse mõnikord ka lõpp-punktiks (nt lõpp-punkt, kuhu jõuavad kliendi SOAP-sõnumid). 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 mitmel viisil: kirjeldada klassi põhimeetodiga ja käivitada veebiteenus otse serverina või juurutada see serverisse nagu Tomcat või mis tahes muus. Teisel juhul me ise ei käivita uut serverit ja ei ava arvutis teist porti, vaid lihtsalt ütleme Tomcati servleti konteinerile, et “me kirjutasime siia veebiteenuse klassid, palun avalda need, et kõik, kes sinuga ühendust võtavad, saaksid kasutada veebiteenust. Olenemata sellest, kuidas veebiteenus käivitatakse, on meil sama klient.

Server

Käivitage IDEA ja looge uus projekt Loo uus projekt. Määrake nimi tereteenus ja vajutage nuppu Edasi, seejärel nuppu Lõpetama. Kaustas src luua pakett et.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 // öelda, et meetodite kutsumiseks kasutatakse veebiteenust@SOAPBinding(style = SOAPBinding.Style.RPC) avalik liides HelloWebService( // ütleme, et seda meetodit saab kaugjuhtimisega 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 ütleb, et veebiteenus ei hakka tööle mitte dokumendisõnumite kaudu, vaid klassikalise RPC-na, s.t. meetodi kutsumiseks. Rakendame oma liidese loogikat ja loome oma paketis HelloWebServiceImpl klassi. Muide, märgin ära, et Impl-ga lõppev klass on Javas konventsioon, 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 kirjeldusel, importida javaxi. jws. veebiteenus; // kuid siin kasutatakse seda parameetriga endpointInterface, // mis näitab meie veebiteenuse liideseklassi täisnime@WebService(endpointInterface= "en.javarush.ws.HelloWebService") avalik klass HelloWebServiceImpl rakendab HelloWebService'i ( @Override public String getHelloString (stringi nimi) ( // lihtsalt tervitus tagasi return "Tere, " + nimi + "!" ; ) ) Käitame oma veebiteenust eraldiseisva serverina, st. ilma Tomcati ja rakendusserverite osaluseta (see on eraldi arutelu teema). Selleks kausta projekti struktuuris src loome paketi ru.javarush.endpoint ja loome selles klassi HelloWebServicePublisher meetodiga main: package ru. javarush. lõpp-punkt; // klass veebiteenustega veebiserveri käivitamiseks importida javaxi. xml. ws. lõpp-punkt; // meie veebiteenuse klass import en. javarush. ws. helloebserviceimpl; public class HelloWebServicePublisher( public static void main(String. . . args)( // käivitage veebiserver pordis 1986 // ja esimeses argumendis määratud aadressil, // käivitage teises argumendis edasi antud veebiteenus lõpp-punkt. avalda ( "http://localhost:1986/wss/hello", uus HelloWebServiceImpl () ); ) ) Nüüd käivitage see klass, klõpsates Tõstuklahv+F10. Konsoolis ei kuvata midagi, kuid server töötab. Saate seda kontrollida, tippides oma brauserisse http://localhost:1986/wss/hello?wsdl. Avatud leht ühelt poolt tõestab, et meie arvutis (localhost) töötab pordil 1986 veebiserver (http://), teisalt aga näitab meie veebiteenuse WSDL kirjeldust. Kui peatate rakenduse, muutub kirjeldus kättesaamatuks, nagu ka veebiteenus ise, seega me seda ei tee, vaid liigume edasi kliendi kirjutamise juurde.

Klient

Projekti kaustas src 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; // selline erand ilmneb URL-i objektiga töötamisel importida javat. net. ValformedURLException; // klassid, mida sõeluda xml koos wsdl kirjeldusega // ja sirutuge selles oleva teenusesildi poole importida javaxi. xml. nimeruum. Qname; importida javaxi. xml. ws. teenus; // meie veebiteenuse liides (me vajame rohkem) import en. javarush. ws. helloebteenus; 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") ; // Järgmise konstruktori parameetreid vaatame kõige esimeses WSDL-i kirjeldussildis – definitsioonid // vaadake atribuudi targetNamespace esimest argumenti // 2. argument look 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) ; // ja seejärel sellesse pesastatud pordisildile, nii et // saada viide meist kaugel asuvale veebiteenuse objektile HelloWebService tere = teenus. getPort(HelloWebService.class) ; // Hurraa! Nüüd saate helistada kaugmeetodile Süsteem. välja. println(tere. getHelloString("JavaRush" ) ) ; ) ) Andsin kirjes olevale koodile maksimaalselt kommentaare. Mul pole midagi lisada, nii et käivitage (Shift + F10). Peaksime nägema konsoolis teksti: Tere, JavaRush! Kui te seda ei näinud, unustasite tõenäoliselt veebiteenuse käivitada.

Järeldus

Selle teema raames tehti põgus ekskursioon veebiteenustesse. Jällegi, suur osa sellest, mida ma kirjutasin, on minu oletus selle toimimise kohta ja seetõttu ei tohiks mind liiga palju usaldada. Oleksin tänulik, kui teadjad inimesed mind parandaksid, sest siis õpin midagi. UPD.

Veebiteenus (teenus) on programm, mis korraldab saitide vahelist suhtlust. Teave ühest portaalist kantakse üle teise.

Näiteks on olemas lennufirma. Tal on vastavalt palju lende, palju pileteid. See edastab teavet veebiteenuse kaudu reisireiside koondamise saidile. Kasutaja, kes siseneb koondajasse, saab osta selle lennufirma pileteid just sealt.

Teine näide veebiteenustest on ilmajälgimise sait, mis pakub teavet konkreetse linna või riigi ilmastikutingimuste kohta tervikuna. Seda teavet kasutavad sageli ka kolmandad osapooled.

Internetis leiduv teave on mitmekülgne. Saite haldavad erinevad süsteemid. kasutatakse erinevaid edastus- ja krüpteerimisprotokolle. Veebiteenused lihtsustavad teabevahetust erinevate saitide vahel.

Veebiteenuste arhitektuur ja protokollid

Saate määratleda 3 eksemplari, mis omavahel suhtlevad: kataloog, töövõtja ja klient. Pärast teenuse loomist registreerib teostaja selle kataloogis ja klient leiab teenuse sealt.

Andmevahetusmehhanism on moodustatud veebiteenuste kirjelduses. See on spetsifikatsioon, mis hõlmab edastamise vorminguid, sisutüüpe ja transpordiprotokolle, mida kasutatakse kliendi ja teenuse transportija vahelises teabevahetuses.

Tänapäeval kasutatakse mitmesuguste veebiteenuste rakendamiseks kõige sagedamini mitmeid tehnoloogiaid:

  1. TCP/IP on protokoll, mida mõistavad peaaegu kõik võrguseadmed, alates suurarvutitest kuni kaasaskantavate seadmete ja pihuarvutiteni.
  2. HTML on universaalne märgistuskeel, mida kasutatakse sisu kuvamiseks tarbijaseadmetele.
  3. XML on universaalne tööriist igasuguste andmete haldamiseks. Selle alusel võivad töötada ka teised infovahetusprotokollid: SOAP ja WSDL.
  4. UDDI on universaalne äratundmise, integreerimise ja kirjeldamise allikas. See töötab reeglina eravõrkudes ja pole veel leidnud piisavat levikut.

Esitatud tehnoloogiate mitmekülgsus on veebiteenuste mõistmise aluseks. Nad töötavad standardtehnoloogiatel, mis on sõltumatud rakenduste tarnijatest ja muudest võrguressurssidest. Saab kasutada mis tahes operatsioonisüsteemides, rakendusserverites, programmeerimiskeeltes jne.

Eelised

  • Tarkvarakomponentide interaktsiooniks vajalike tingimuste loomine olenemata platvormist.
  • Veebiteenused põhinevad avatud standardprotokollidel. XML-i juurutamise kaudu on veebiteenuste loomine ja seadistamine lihtne.
  • HTTP kasutamine tagab süsteemide interaktsiooni võrkudevahelise juurdepääsu kaudu.

Puudused

  • Madal jõudlus ja suur liiklus, võrreldes RMI, CORBA, DCOM süsteemidega, tulenevalt XML-sõnumite kasutamisest teksti kontekstis.
  • Turvalisuse tase. Kõik kaasaegsed veebiteenused peavad rakendama kodeerimist ja nõudma kasutaja luba. Kas siin piisab HTTPS-ist või on vaja töökindlamaid protokolle, nagu XML Encryption, SAML jne, otsustatakse arenduse käigus.

Veebiteenuste ülesanded

Veebiteenuseid saab kasutada paljudes valdkondades.

B2B tehingud

Protsesside integreerimine toimub korraga, ilma inimeste osaluseta. Näiteks veebipoe kataloogi täiendamine uute toodetega. Need tuuakse lattu ning laopidaja märgib saabumise andmebaasi. Teave edastatakse automaatselt veebipoodi. Ja ostja, selle asemel, et märkida tootekaardile “Laost otsas”, näeb selle kogust.

Ettevõtte teenuste integreerimine

Kui ettevõte kasutab ettevõtte programme, siis veebiteenus aitab nende ühistööd paika panna.

Klient-server süsteemi loomine

Teeneid kasutatakse kliendi ja serveri töö kohandamiseks. See annab teile järgmised eelised:

  • saate müüa mitte tarkvara ennast, vaid teha tasulise juurdepääsu veebiteenusele;
  • lihtsam lahendada probleeme kolmanda osapoole tarkvara abil;
  • serveri sisule ja materjalidele juurdepääsu on lihtsam korraldada.

Veebiteenus on rakendus, mis lihtsustab ressursside interaktsioonide tehnilist konfigureerimist.

Tänapäeval kasutatakse WEB-teenuseid peaaegu kõikjal - need annavad meile teavet lennukite ja rongide lendude, valuutakursside ja ilma kohta. Pole üllatav, et 1C-l on ka võimalus luua oma veebiteenuseid, mis võimaldab teil tegutseda nii tarnija kui ka tarbijana. See mehhanism on sisse ehitatud 1C:Enterprise 8.3 platvormi ja arendajad saavad standardkonfiguratsioonile lisada isegi oma WEB-teenuste tüüpi objekte. Nende arhitektuur on üles ehitatud teenuste komplektile, mis võimaldab teil vahetada teavet muu tarkvaraga.

Veebiteenuse loomine 1C

1C veebiteenuste üks peamisi eeliseid on teabeturbe andmetele otsese juurdepääsu andmise vajaduse puudumine. Õigesti konfigureeritud 1C veebiteenus võimaldab teistel rakendustel kasutada funktsioone väljastpoolt. Sellistel juhtudel peaks funktsioon ise kindlaks määrama andmete kasutamise õiguse vastavalt määratud parameetritele vastavalt arendaja poolt ette nähtud reeglitele.

Kuidas 1C-s veebiteenust luua?

Selleks, et 1C süsteemi teatud funktsioon saaks välisele tarkvarale kättesaadavaks, peate tegema järgmise toimingute algoritmi:

  1. Minge konfiguratsiooni ja lisage teatud puu harusse WEB-teenuse objekt;
  2. Kirjeldage kõiki toiminguid, mida meie funktsionaalsus suudab teha. Funktsioonide kirjeldus tehakse moodulis sisseehitatud 1C keeles;
  3. Lisage veebiteenuse funktsioonide parameetrite kirjeldus. Pange tähele, et andmetüüpe kirjeldatakse, võttes arvesse XDTO mehhanismi olemasolevaid tüüpe, mis on kasutusele võetud versioonis 8.1;
  4. Avalda loodud veebiteenus serveris. 1C platvormi sisseehitatud mehhanism toetab järgmisi standardeid:
  • SSL/TLS
  • WS-I BP

Näide lihtsa veebiteenuse loomisest

Veebiteenuste mehhanismi toimimise kõige selgemaks demonstreerimiseks loome näite - funktsiooni, mis määrab sisestatud stringi pikkuse. Tarkvara edastab päringuparameetrina stringi ja punktis 1C kirjeldatud funktsioon tagastab märkide arvu. Loomisel peate meeles pidama, et selle mehhanismi avaldamine võimaldab sellele juurdepääsu erinevatele tarkvaradele. Kuna mitte iga tarkvara ei suuda kirillitsat tajuda, nimetame konfiguratsiooniobjekte ladina tähtedega.

Avage konfiguraator, leidke puust haru "WEB services" ja lisage uus teenus "wa_LengthString". Samuti peate vahekaardil "Toimingud" lisama uue toimingu. Nimetagem seda "CalcLengthString", atribuutides määrame tagastatava väärtuse tüübi - int või integer ning loome selle sisse parameetri "InputString". Jätke väärtuse tüüp stringiks.


Nüüd on vaja veebiteenuse moodulis registreerida funktsiooni CalcLengthString toiming. Selleks tuleb avada loodud funktsiooni atribuudid ja vajutada sisestusvälja "Protseduuri nimi" kõrval paremal asuvat luubi kujul olevat nuppu. 1C loob meie veebiteenuse moodulis automaatselt funktsiooni ja avab selle, et saaksime kirjeldada toimingut CalcLengthString. Kasutame seda ära ja kirjutame üles funktsiooni tegevuse – sisendstringi pikkuse määramise.


Tegelikult lõpetab see lihtsaima veebiteenuse loomise. Nüüd peate selle teenuse avalikku omandisse andma, et kolmanda osapoole tarkvara või muud 1C süsteemid saaksid seda funktsiooni kasutada.

Selleks, et saaksime loodud veebiteenust koos selle funktsionaalsusega avaldada, peab meil olema juurdepääs saidile. Enne teenuse avaldamise alustamist peame kontrollima failinime loodud mooduli wa_LengthString atribuutides. See peaks olema selge, lihtne ja laiendiga "1cws".


Nüüd on aeg avaldada serveris loodud veebiteenus. See funktsioon ilmus platvormi versioonis 8.3 ja paljud ettevõtted on sellest funktsioonist täielikult aru saanud. Avaldamise alustamiseks tuleb avada konfiguraatoris vorm “Haldamine/Avaldamine veebiserveris…”.


Avanevas aknas peame seadistama 1C veebiteenused ja täitma teatud väljad:

  • Nimi. Näitab veebiserveris kausta, kuhu salvestatakse meie veebiteenuse kirjeldus. Olge suur- ja suurtähtede suhtes ettevaatlik, sest mõnikord eristavad serverid suur- ja väiketähti;
  • Veebiserver. Peate valima arvutisse installitud serverite hulgast;
  • Kataloog. Peate valima tee kausta, kuhu salvestatakse ühenduse seadistamise veebiserveri andmed. Kasutatakse ainult ladina tähti;
  • Kaks "Boole'i" tüüpi tunnust. Esimene on meile kasulik, kui peame konfigureerima juurdepääsu konfiguratsioonile veebikliendi kaudu. 1C teenuse avaldamiseks peate panema teise märgi.

Jääb vaid kontrollida, kas soovitud veebiteenuse esimeses veerus on märkeruut, ja klõpsake nuppu "Avalda".


Kuna see mehhanism on veel üsna uus, võib teil tekkida tõrge nagu "Viga failitoimingu tegemisel ...". Sel juhul peate lihtsalt korrama nuppu "Avalda". Enamasti see aitab ja näete teadet, et veebiteenuse avaldamine on valmis.

et//ws/.1cws?wsdl

Vastuseks sellisele aadressipäringule peab brauser kuvama XML-faili struktuuri. Kui näete tühja lehte, viga või veidraid märke (kodeerimisprobleemid), peate kõiki samme uuesti kontrollima. Samuti on hea mõte veenduda, et server on õigesti seadistatud ja teil on sellele juurdepääs. Pärast 1C WEB-teenuse edukat avaldamist saavad kolmandate osapoolte rakendused seda kasutada.

WEB-teenus - (inglisekeelsest veebiteenusest, sünonüüm - võrguteenus). Veebiteenused on teenused, mida pakutakse Internetis spetsiaalsete programmide abil. Levinud on näiteks sellised teenused nagu: hostimine, e-post, mitmesuguse info salvestamine internetis (failid, järjehoidjad), kalender jne. Veebiteenuse oluline omadus on see, et see ei sõltu teie pakkujast, arvutist ega brauserist – saate oma andmetega töötada kõikjal maailmas, kus teil on juurdepääs .

Knyazev A.A. Entsüklopeediline massimeedia sõnaraamat. - Biškek: KRSU kirjastus. A. A. Knjazev. 2002 .

Vaadake, mis on "veebiteenus" teistes sõnaraamatutes:

    veebiteenus

    veebiteenus- Veebiteenus. Veebiteenus, veebiteenus (inglise veebiteenus) on tarkvarasüsteem, mis on identifitseeritud XML-vormingus määratletud liideste jada abil ja mida edastatakse Interneti-protokolle. Veebiteenus on ... ... Wikipedia kasutamisel modulaarsuse ühik

    Veebi vahemälu suhtlusprotokoll- (WCCP) sisu ümbersuunamisprotokoll, mille on välja töötanud Cisco. Pakub mehhanismi liiklusvoogude reaalajas ümbersuunamiseks. Sellel on sisseehitatud skaleerimine, koormuse tasakaalustamine, tõrketaluvus. Cisco IOS ... ... Wikipedia

    Veebikaarditeenus- (WMS Venemaa veebikaarditeenus) standardprotokoll geograafiliselt viidatud piltide serveerimiseks Interneti kaudu, mis on genereeritud kaardistamisserveri poolt GIS-andmebaasist pärit andmete põhjal. See standard töötati välja ja esmakordselt ... ... Wikipedia

    Veebihotell Salvador- (Salvador, Brasiilia) Hotelli kategooria: 2 tärni hotell Aadress: Rua das Alfazemas … Hotellide kataloog

    Veebihotell Aparecida- (Aparecida, Brasiilia) Hotelli kategooria: 3 tärni hotell Aadress: Av. Isaac Ferrei … Hotellide kataloog

    teenustele orienteeritud arhitektuur- Organisatsiooni äriprotsesse rakendatakse Kliendi olemasolevate rakenduste pakutavate teenuste alusel. Kui rakendused ei toeta teenuste osutamise võimalust (veebiteenused), arendatakse toote juurutamist ... ... Tehnilise tõlkija käsiraamat

    veeb 2

    Veeb 2.0- Veeb 2.0-ga seotud põhikontseptsioonid Web 2.0 (defineerinud Tim O'Reilly) on süsteemide kujundamise tehnika, mis võrgu interaktsiooni arvesse võttes muutuvad paremaks, mida rohkem inimesi neid kasutab. Web 2.0 funktsioon. on põhimõte ... ... Wikipedia

    veebisait- Päring "veebisait" suunatakse siia. Vaata ka muid tähendusi. Veebisait (inglise keelest Veebisait: veebiveeb ja sait "koht") arvutivõrgus, mis on ühendatud ühe domeeninime või IP-aadressi alla) eraisiku dokumentide kogum või ... ... Vikipeedia

Raamatud

  • Infotehnoloogiad turismitööstuses, VN Shitov. Käsiraamatus käsitletakse üksikasjalikult üldotstarbelisi arvutitehnoloogiaid, mis kasutavad populaarseid Microsoft Office 2010 pakette ja alternatiivseid komplekse, kasutades ... Osta 546 rubla eest
  • 75 valmislahendust teie veebisaidi jaoks PHP-s , Steinmetz W., Ward B.. Igaüks, kes teeb või kavatseb oma veebisaiti teha, seisab paratamatult silmitsi mitmete ülesannete ja raskustega: kuidas saidil ajaveebi teha.... "kiirendada" hääletamist, sulgeda teatud ...

Veebiteenuste arhitektuurist lähtuvalt loome veebiteenuste juurutamise osana järgmised kaks komponenti:

Teenusepakkuja või kirjastaja

See on veebiteenuse pakkuja. Teenusepakkuja rakendab seda teenust ja teeb selle Internetis või sisevõrgus kättesaadavaks. Kirjutame ja avaldame lihtsa veebiteenuse, kasutades .NET SDK-d.

Teenusepakkuja või tarbija

See on iga veebiteenuse tarbija. Taotleja kasutab olemasolevat veebiteenust, avades võrguühenduse ja saates XML-päringu. Kirjutame ka kaks veebiteenuste päringut: ühe veebitarbija (ASP.NET rakendus) ja teise Windowsi rakenduste baasil tarbija.

Allpool on meie esimene näide veebiteenusest, mis töötab teenusepakkujana ja paljastab kaks meetodit (add ja SayHello) veebiteenustena, mida rakendused kasutavad. See on veebiteenuse standardmall. .NET-teenused kasutavad laiendust .asmx. Pange tähele, et veebiteenusena avaldatud meetodil on atribuut WebMethod. Salvestage see fail nimega FirstService.asmx IIS-i virtuaalkataloogi (nagu on kirjeldatud IIS-i seadistuses, nt c:\MyWebSerces).

FirstService.asmx

<%@ WebService language = "C" class = "FirstService" %>süsteemi kasutamine; kasutades System.Web.Services; kasutades System.Xml.Serialization; avalik klass FirstService: WebService ( public int Add(int a, int b) ( tagastab a + b; ) public String SayHello() ( tagastab "Tere maailm"; ) )

Veebiteenuse testimiseks tuleb see avaldada. Veebiteenust saab avaldada kas sisevõrgus või Internetis. Avaldame selle veebiteenuse kohalikus masinas töötavas IIS-is. Alustame IIS-i seadistamisega.

  • Avage Start → Seaded → Juhtpaneel → Haldustööriistad → Interneti-teenuste haldur.
  • Laiendage ja paremklõpsake valikut Vaikeveebisait; valige Uus → Virtuaalne kataloog. Avaneb virtuaalse kataloogi loomise viisard. Klõpsake nuppu "Järgmine".
  • Ilmub virtuaalse kataloogi ekraan. Sisestage virtuaalsele kataloogile nimi. Näiteks MyWebServices. ja klõpsake nuppu Edasi.
  • Avaneb ekraan "Web Content Directory".
  • Sisestage virtuaalsele kataloogile kataloogi nimi. Näiteks c:\MyWebServices Klõpsake nuppu Edasi.
  • Ilmub Access Permission ekraan. Muutke seadeid vastavalt oma vajadustele. Jätame selle harjutuse vaikesätted alles.
  • Klõpsake nuppu "Järgmine". See viib IIS-i seadistamise lõpule.
  • Seadistamise lõpetamiseks klõpsake nuppu "Lõpeta".

Kontrollimaks, kas IIS on õigesti konfigureeritud, kopeerige HTML-fail (näiteks x.html) ülal loodud virtuaalkataloogi (C:\MyWebServices). Nüüd avage Internet Explorer ja sisestage http://localhost/MyWebServices/x.html. See peaks avama faili x.html.

Märge. Kui see ei tööta, proovige localhost asendada oma seadme IP-aadressiga. Kui see ikka ei tööta, kontrollige, kas IIS töötab; peate võib-olla IIS-i ja virtuaalse kataloogi ümber konfigureerima.

Selle veebiteenuse testimiseks kopeerige FirstService.asmx ülal loodud IIS-i virtuaalkataloogi (C:\MyWebServices). Avage veebiteenus Internet Exploreris (http://localhost/MyWebServices/FirstService.asmx). See peaks avama veebiteenuse lehe. Lehel peaksid olema lingid kahele meetodile, mida pakume oma rakendusele veebiteenustena. Palju õnne! Olete kirjutanud oma esimese veebiteenuse!

Veebiteenuste testimine

Nagu just nägime, on veebiteenuste kirjutamine .NET Frameworkis lihtne. Veebiteenuste kirjutamine on lihtne ka .NET keskkonnas; see on siiski veidi aktiivsem. Nagu varem mainitud, kirjutame kahte tüüpi teenusetarbijaid: üks on veebisait ja teine ​​​​kasutajapõhine Windowsi rakendus. Kirjutame oma esimese veebiteenuse tarbija.

Veebiteenused

Kirjutage veebitarbija, nagu allpool kirjeldatud. Nimetage see WebApp.aspx. Pange tähele, et see on ASP.NET-i rakendus. Salvestage see veebiteenuse virtuaalsesse kataloogi (c:\MyWebServices\WebApp.axpx). Sellel rakendusel on kaks tekstivälja, mida kasutatakse kasutajalt numbrite lisamiseks. Sellel on üks nupp Käivita, millel klõpsamisel avaneb veebiteenused Add ja SayHello.

WebApp.axpx

<%@ Page Language="C#" %>

Esimene lisatav number: 4< /asp:TextBox>

Teine number lisamiseks: 5

Veebiteenuse tulemus –

tere maailmateenistus : silt< /asp:Label>

Lisa teenus : & silt

Pärast tarbija loomist peame veebiteenuse tarbimiseks looma puhverserveri. Visual Studio .NET teeb selle töö meie eest automaatselt ära, kui viitame lisatud veebiteenusele. Siin on järgmised sammud.

  • Looge veebiteenuse kasutamiseks puhverserver. Puhverserver luuakse .NET SDK-ga kaasas oleva WSDL-i utiliidi abil. See utiliit hangib teavet veebiteenusest ja loob puhverserveri. Puhverserver kehtib ainult konkreetse veebiteenuse jaoks. Kui teil on vaja kasutada muid veebiteenuseid, peate looma ka selle teenuse puhverserveri. Visual Studio .NET loob veebiteenuse viite lisamisel automaatselt puhverserveri. Looge veebiteenuse jaoks puhverserver, kasutades .NET SDK-ga kaasas olevat WSDL-i utiliiti. See loob praeguses kataloogis faili FirstSevice.cs. Peame selle kompileerima, et luua veebiteenuse jaoks FirstService.dll (puhverserver).
  • c:>WSDL http://localhost/MyWebServices/FirstService.asmx?WSDL
  • c:> csc /t:library FirstService.cs
  • Asetage kompileeritud puhverserver veebiteenuse virtuaalkataloogi bin kataloogi (c:\MyWebServices\bin). Internet Information Services (IIS) otsib sellest kataloogist puhverserverit.
  • Looge teenusetarbija, nagu me tegime. Pange tähele, et veebiteenuse puhverserveri objekt luuakse tarbijal. See puhverserver hoolitseb teenusega suhtlemise eest.
  • Testimiseks sisestage IE-s tarbija URL (nt http://localhost/MyWebServices/WebApp.aspx).

Veebiteenuse tarbija, mis põhineb Windowsi rakendustel

Windowsi rakendustel põhineva veebiteenuse rakenduse kirjutamine sarnaneb mis tahes muu Windowsi rakenduse kirjutamisega. Peate looma ainult puhverserveri (mida me juba tegime) ja rakenduse koostamisel sellele puhverserverile viitama. Allpool on meie Windowsi rakendus, mis kasutab veebiteenust. See rakendus loob veebiteenuse objekti (muidugi puhverserveri) ja kutsub sellel olevaid meetodeid SayHello ja Add.

WinApp.cs

süsteemi kasutamine; kasutades System.IO; nimeruum SvcConsumer ( klass SvcEater ( public static void Main(String args) ( FirstService mySvc = new FirstService();); Console.WriteLine("Teenuse Hello World helistamine: " + mySvc.SayHello()); Console.WriteLine("Kutsumine Add( 2, 3) Teenus: " + mySvc.Add(2, 3).ToString()); ) ) )

Kompileerige see failiga c: \> csc /r:FirstService.dll WinApp.cs . See loob faili WinApp.exe. Käivitage see rakenduse ja veebiteenuse testimiseks.

Nüüd on küsimus: kuidas saate olla kindel, et see rakendus helistab tegelikult veebiteenusele?

Seda on lihtne kontrollida. Peatage oma veebiserver, et veebiteenusega ühendust ei saaks. Nüüd käivitage rakendus WinApp. See teeb käitusajal erandi. Nüüd käivitage veebiserver uuesti. Ta peab töötama.