Webové služby XML. Prehľad technológie

Názov témy je skutočne otázkou, pretože Sám neviem, čo to je a po prvý krát s tým skúsim pracovať v rámci tohto článku. Jediné, čo môžem zaručiť, je, že nižšie uvedený kód bude fungovať, ale moje frázy budú iba domnienky a dohady o tom, ako tomu všetkému rozumiem ja. Tak, poďme...

Úvod

Musíme začať tým, na čo bol koncept webových služieb vytvorený. V čase, keď sa tento koncept objavil, už vo svete existovali technológie, ktoré umožňovali aplikáciám interakciu na diaľku, kde jeden program mohol zavolať nejakú metódu v inom programe, ktorý sa potom mohol spustiť na počítači umiestnenom v inom meste alebo dokonca krajine. To všetko sa označuje skratkou RPC (Remote Procedure Calling - vzdialené volanie procedúry). Príklady zahŕňajú technológie CORBA a pre Java - RMI (Remote Method Invoking - vzdialené vyvolanie metódy). A zdá sa, že je v nich všetko dobré, najmä v CORBE, pretože dá sa s ním pracovať v akomkoľvek programovacom jazyku, no stále tomu niečo chýbalo. Domnievam sa, že nevýhodou CORBA je, že funguje cez niektoré jej sieťové protokoly namiesto jednoduchého HTTP, ktorý prelezie každý firewall. Myšlienkou webovej služby bolo vytvoriť také RPC, ktoré by bolo vložené do HTTP paketov. Tak sa začal vývoj štandardu. Aké sú základné pojmy tohto štandardu:
  1. SOAP. Pred volaním vzdialenej procedúry musíte opísať toto volanie v súbore XML vo formáte SOAP. SOAP je len jedným z mnohých značiek XML používaných vo webových službách. Všetko, čo chceme niekam poslať cez HTTP, sa najskôr zmení na XML SOAP popis, potom sa vloží do HTTP paketu a cez TCP/IP sa odošle na iný počítač v sieti.
  2. WSDL. Existuje webová služba, t.j. program, ktorého metódy možno volať na diaľku. Norma však vyžaduje, aby bol k tomuto programu pripojený popis, ktorý hovorí, že „áno, nepomýlili ste sa – toto je skutočne webová služba a môžete z nej volať také a také metódy.“ Tento popis je reprezentovaný iným súborom XML, ktorý má iný formát, a to WSDL. Tie. WSDL je len súbor XML popisujúci webovú službu a nič iné.
Prečo sa pýtaš tak krátko? Nemôžeš ísť do detailov? Pravdepodobne môžete, ale na to sa budete musieť obrátiť na knihy, ako je Mashnin T. "Java Web Services". Tam je na prvých 200 stranách podrobný popis každej značky štandardov SOAP a WSDL. Stojí to za to? Podľa mňa nie, pretože toto všetko sa v Jave vytvára automaticky a stačí napísať obsah metód, ktoré sa majú volať na diaľku. Takže v Jave existuje také API ako JAX-RPC. Ak niekto nevie, keď sa hovorí, že Java má také a také API, znamená to, že existuje balík so sadou tried, ktoré zapuzdrujú predmetnú technológiu. JAX-RPC sa dlho vyvíjal z verzie na verziu a nakoniec sa vyvinul do JAX-WS. WS očividne znamená WebService a možno si myslíte, že ide o jednoduché premenovanie RPC na populárny módny výraz súčasnosti. Nie je to tak, pretože teraz sa webové služby vzdialili od pôvodnej myšlienky a umožňujú nielen volanie vzdialených metód, ale aj jednoduché posielanie správ dokumentov vo formáte SOAP. Prečo je to potrebné, ešte neviem, je nepravdepodobné, že odpoveď tu bude „len pre prípad, že je to zrazu potrebné“. Sám by som sa rád učil od skúsenejších súdruhov. A nakoniec sa objavil JAX-RS pre takzvané webové služby RESTful, ale to je téma na samostatný článok. Tento úvod možno dokončiť, pretože. ďalej sa naučíme pracovať s JAX-WS.

Všeobecný prístup

Webové služby majú vždy klienta a server. Server je naša webová služba a niekedy sa nazýva koncový bod (napríklad koncový bod, kam sa dostanú správy SOAP od klienta). Musíme urobiť nasledovné:
  1. Popíšte rozhranie našej webovej služby
  2. Implementujte toto rozhranie
  3. Spustite našu webovú službu
  4. Napíšte klienta a na diaľku zavolajte požadovanú metódu webovej služby
Webovú službu môžete spustiť rôznymi spôsobmi: buď opíšte triedu hlavnou metódou a spustite webovú službu priamo ako server, alebo ju nasaďte na server, ako je Tomcat alebo akýkoľvek iný. V druhom prípade sami nespustíme nový server a neotvoríme ďalší port na počítači, ale jednoducho povieme kontajneru servletov Tomcat, že „tu sme napísali triedy webových služieb, prosím, zverejnite ich, aby ich mohol použiť každý, kto vás kontaktuje webovú službu. Bez ohľadu na to, ako bude webová služba spustená, budeme mať rovnakého klienta.

Server

Spustite IDEA a vytvorte nový projekt Vytvoriť nový projekt. Zadajte názov hellowebservice a stlačte tlačidlo Ďalšie, potom tlačidlo Skončiť. V priečinku src vytvoriť balík en.javarush.ws. V tomto balíku vytvoríme rozhranie HelloWebService: package ru. javarush. ws; // ide o anotácie, t.j. spôsob, ako označiť naše triedy a metódy, // v súvislosti s technológiou webových služieb importovať javax. jws. WebMethod; importovať javax. jws. webová služba; importovať javax. jws. mydlo. SOAPBinding; // hovoríme, že naše rozhranie bude fungovať ako webová služba@Webová služba // povedzme, že webová služba bude použitá na volanie metód@SOAPBinding(style = SOAPBinding.Style.RPC) verejné rozhranie HelloWebService( // povedzme, že túto metódu možno volať na diaľku@WebMethod public String getHelloString(Názov reťazca) ; ) V tomto kóde sú triedy WebService a WebMethod takzvané anotácie a nerobia nič iné, len označujú naše rozhranie a jeho metódu za webovú službu. To isté platí pre triedu SOAPBinding. Jediný rozdiel je v tom, že SOAPBinding je anotácia s parametrami. V tomto prípade je použitý parameter style s hodnotou, ktorá hovorí, že webová služba bude fungovať nie cez správy dokumentov, ale ako klasické RPC, t.j. zavolať metódu. Implementujme našu logiku rozhrania a vytvorte v našom balíku triedu HelloWebServiceImpl. Mimochodom, podotýkam, že trieda končiaca na Impl je konvencia v Jave, podľa ktorej je implementácia rozhraní takto označená (Impl - od slova implementácia, t.j. implementácia). Toto nie je požiadavka a môžete triedu pomenovať ako chcete, ale dobré mravy si to vyžadujú: package ru. javarush. ws; // rovnaká anotácia ako pre popis rozhrania, importovať javax. jws. webová služba; // ale tu sa používa s parametrom endpointInterface, // označujúci úplný názov triedy rozhrania našej webovej služby@WebService(endpointInterface= "en.javarush.ws.HelloWebService") verejná trieda HelloWebServiceImpl implementuje službu HelloWebService ( @Override public String getHelloString (názov reťazca) ( // stačí vrátiť pozdrav return "Ahoj, " + meno + "!" ; ) ) Spúšťajme našu webovú službu ako samostatný server, t.j. bez účasti akéhokoľvek Tomcatu a aplikačných serverov (toto je téma na samostatnú diskusiu). Ak to chcete urobiť, v štruktúre projektu v priečinku src vytvoríme balíček ru.javarush.endpoint a v ňom vytvoríme triedu HelloWebServicePublisher s metódou main: package ru. javarush. koncový bod; // trieda na spustenie webového servera s webovými službami importovať javax. xml. ws. koncový bod; // trieda našej webovej služby import en. javarush. ws. hellowebserviceimpl; public class HelloWebServicePublisher( public static void main(String. . . args)( // spustenie webového servera na porte 1986 // a na adrese uvedenej v prvom argumente, // spustenie webovej služby odovzdanej v druhom argumente koncový bod. zverejniť ( "http://localhost:1986/wss/hello", nový HelloWebServiceImpl () ); ) ) Teraz spustite túto triedu kliknutím Shift+F10. V konzole sa nič nezobrazí, ale server beží. Môžete si to overiť zadaním adresy http://localhost:1986/wss/hello?wsdl do prehliadača. Otvorená stránka na jednej strane dokazuje, že na našom počítači (localhost) máme webový server (http://) spustený na porte 1986 a na druhej strane zobrazuje WSDL popis našej webovej služby. Ak aplikáciu zastavíte, popis sa stane nedostupným, ako aj samotná webová služba, takže to neurobíme, ale prejdeme k písaniu klienta.

Zákazník

V priečinku projektu src vytvorme si balíček ru.javarush.client a v ňom triedu HelloWebServiceClient s hlavnou metódou: package ru. javarush. zákazník; // potreboval získať popis wsdl a cez to // dostať sa k samotnej webovej službe importovať java. net. URL; // takáto výnimka nastane pri práci s objektom URL importovať java. net. MalformedURLException; // triedy na analýzu xml s popisom wsdl // a siahnite po servisnom štítku v ňom importovať javax. xml. menný priestor. Qname; importovať javax. xml. ws. služba; // rozhranie našej webovej služby (potrebujeme viac) import en. javarush. ws. hellowebservice; public class HelloWebServiceClient( public static void main(String args) vyvolá MalformedURLException( // vytvorte odkaz na popis wsdl URL URL = nová URL ( "http://localhost:1986/wss/hello?wsdl") ; // Pozeráme sa na parametre ďalšieho konštruktora v úplne prvom popisnom tagu WSDL - definície // pozrite sa na 1. argument v atribúte targetNamespace // 2. argument hľadajte v atribúte name QName qname = nový QName ("http://ws.site/" , "HelloWebServiceImplService" ) ; // Teraz sa môžeme dostať k servisnej značke v popise wsdl, Servisná služba = Služba. create (url, qname) ; // a potom na značku portu vnorenú v ňom, takže // získajte odkaz na objekt webovej služby vzdialený od nás HelloWebService ahoj = služba. getPort(HelloWebService.class) ; // Hurá! Teraz môžete zavolať vzdialenú metódu systém. von. println(ahoj. getHelloString("JavaRush" ) ); ) ) Vo výpise som dal maximálne komentárov ku kódu. Nemám čo dodať, tak bežte (Shift + F10). V konzole by sme mali vidieť text: Hello, JavaRush! Ak ste to nevideli, pravdepodobne ste zabudli spustiť webovú službu.

Záver

V tejto téme bol prezentovaný krátky exkurz do webových služieb. Ešte raz, veľa z toho, čo som napísal, je môj odhad o tom, ako to funguje, a preto by sa mi nemalo príliš dôverovať. Bol by som vďačný, keby ma znalí ľudia opravili, lebo potom sa niečo naučím. UPD.

Webová služba (služba) je program, ktorý organizuje interakciu medzi stránkami. Informácie z jedného portálu sa prenášajú do druhého.

Napríklad existuje letecká spoločnosť. Má veľa letov, respektíve veľa leteniek. Prenáša informácie prostredníctvom webovej služby na stránku agregátora zájazdov. Používateľ, ktorý vstúpi do agregátora, si bude môcť kúpiť letenky pre túto leteckú spoločnosť priamo tam.

Ďalším príkladom webových služieb je stránka na sledovanie počasia, ktorá poskytuje informácie o poveternostných podmienkach v konkrétnom meste alebo krajine ako celku. Tieto informácie často využívajú aj tretie strany.

Informácie na internete sú rôznorodé. Stránky sú spravované rôznymi systémami. používajú sa rôzne prenosové a šifrovacie protokoly. Webové služby zjednodušujú výmenu informácií medzi rôznymi stránkami.

Architektúra a protokoly webových služieb

Môžete definovať 3 inštancie, ktoré sa navzájom ovplyvňujú: katalóg, dodávateľ a zákazník. Po vytvorení služby si ju interpret zaregistruje do katalógu a zákazník tam službu nájde.

Mechanizmus výmeny údajov je vytvorený v popise webových služieb. Toto je špecifikácia, ktorá pokrýva formáty preposielania, typy obsahu, transportné protokoly, ktoré sa používajú pri výmene informácií medzi zákazníkom a prepravcom služby.

Na implementáciu rôznych webových služieb sa dnes najčastejšie používa niekoľko technológií:

  1. TCP/IP je protokol, ktorému rozumie takmer každé sieťové zariadenie, od sálových počítačov po prenosné zariadenia a PDA.
  2. HTML je univerzálny značkovací jazyk používaný na zobrazovanie obsahu na spotrebiteľských zariadeniach.
  3. XML je univerzálny nástroj na prácu so všetkými druhmi údajov. Na jeho základe môžu fungovať aj ďalšie protokoly výmeny informácií: SOAP a WSDL.
  4. UDDI je univerzálny zdroj rozpoznávania, integrácie a popisu. Funguje spravidla v súkromných sieťach a zatiaľ nenašiel dostatočnú distribúciu.

Všestrannosť prezentovaných technológií je základom pre pochopenie webových služieb. Pracujú na štandardných technológiách, ktoré sú nezávislé od dodávateľov aplikácií a iných sieťových zdrojov. Môže byť použitý v akýchkoľvek operačných systémoch, aplikačných serveroch, programovacích jazykoch atď.

Výhody

  • Vytvorenie nevyhnutných podmienok pre interakciu softvérových komponentov bez ohľadu na platformu.
  • Webové služby sú založené na otvorených štandardných protokoloch. Vďaka zavedeniu XML je jednoduché vytvárať a konfigurovať webové služby.
  • Použitie HTTP zaručuje interakciu systémov prostredníctvom medzisieťového prístupu.

Nedostatky

  • Nízky výkon a veľká návštevnosť v porovnaní so systémami RMI, CORBA, DCOM v dôsledku používania správ XML v kontexte textu.
  • Úroveň zabezpečenia. Všetky moderné webové služby musia implementovať kódovanie a vyžadujú autorizáciu používateľa. O tom, či tu stačí HTTPS, alebo sú potrebné spoľahlivejšie protokoly, ako XML Encryption, SAML atď., sa rozhoduje až pri vývoji.

Úlohy webovej služby

Webové služby možno využiť v mnohých oblastiach.

B2B transakcie

Integrácia procesov prebieha naraz, bez účasti ľudí. Napríklad aktualizácia katalógu internetového obchodu o nové produkty. Prinesú sa do skladu a skladník zaznačí príchod do databázy. Informácie sa automaticky prenášajú do internetového obchodu. A kupujúci namiesto označenia „Vypredané“ na karte produktu vidí jeho množstvo.

Integrácia podnikových služieb

Ak spoločnosť používa firemné programy, potom webová služba pomôže nastaviť ich spoločnú prácu.

Vytvorenie systému klient-server

Služby sa používajú na prispôsobenie prevádzky klienta a servera. Získate tak nasledujúce výhody:

  • nemôžete predávať samotný softvér, ale poskytovať platený prístup k webovej službe;
  • jednoduchšie riešenie problémov pomocou softvéru tretích strán;
  • je jednoduchšie organizovať prístup k obsahu a materiálom servera.

Webová služba je aplikácia, ktorá zjednodušuje technickú konfiguráciu interakcií so zdrojmi.

WEB služby sú dnes využívané takmer všade – poskytujú nám informácie o letoch lietadiel a vlakov, výmenných kurzoch a počasí. Nie je prekvapujúce, že 1C má tiež schopnosť vytvárať svoje vlastné WEB služby, čo vám umožňuje pôsobiť ako dodávateľ aj spotrebiteľ. Tento mechanizmus je zabudovaný do platformy 1C:Enterprise 8.3 a vývojári môžu dokonca do štandardnej konfigurácie pridať vlastné objekty typu WEB služieb. Ich architektúra je postavená na súbore služieb, ktoré vám umožňujú vymieňať si informácie s iným softvérom.

Vytvorenie webovej služby 1C

Jednou z hlavných výhod 1C WEB-služieb je absencia potreby priameho prístupu k údajom o bezpečnosti informácií. Správne nakonfigurovaná webová služba 1C umožňuje iným aplikáciám využívať funkcie zvonku. V takýchto prípadoch by mala samotná funkcia určiť právo na používanie údajov podľa špecifikovaných parametrov podľa pravidiel predpísaných vývojárom.

Ako vytvoriť webovú službu v 1C?

Aby bola určitá funkcia systému 1C dostupná pre externý softvér, musíte vykonať nasledujúci algoritmus akcií:

  1. Prejdite do konfigurácie a pridajte objekt webovej služby do určitej vetvy stromu;
  2. Popíšte všetky operácie, ktoré môže naša funkcionalita vykonávať. Popis funkcií je vytvorený v module v zabudovanom jazyku 1C;
  3. Pridajte popis parametrov funkcií webovej služby. Upozorňujeme, že typy údajov sú opísané s prihliadnutím na existujúce typy mechanizmu XDTO zavedené v platforme verzie 8.1;
  4. Zverejnite vytvorenú webovú službu na serveri. Mechanizmus zabudovaný do platformy 1C podporuje nasledujúce štandardy:
  • SSL/TLS
  • WS-I BP

Príklad vytvorenia jednoduchej WEB služby

Aby sme čo najjasnejšie demonštrovali fungovanie mechanizmu WEB služieb, vytvorte si príklad – funkcionalitu, ktorá určuje dĺžku zadávaného reťazca. Softvér odovzdá reťazec ako parameter dotazu a funkcia opísaná v 1C vráti počet znakov. Pri vytváraní je potrebné pamätať na to, že zverejnenie tohto mechanizmu umožní prístup rôznym softvérom. Keďže nie každý softvér je schopný vnímať azbuku, budeme konfiguračné objekty pomenovávať pomocou latinských znakov.

Otvorte konfigurátor, nájdite v strome vetvu „WEB services“ a pridajte novú službu „wa_LengthString“. Musíte tiež pridať novú operáciu na karte „Operácie“. Nazvime to "CalcLengthString", vo vlastnostiach určíme typ vrátenej hodnoty - int alebo integer a vytvoríme v nej parameter "InputString". Typ hodnoty ponechajte ako reťazec.


Teraz je potrebné zaregistrovať akciu funkcie CalcLengthString v module WEB služby. Ak to chcete urobiť, otvorte vlastnosti vytvorenej funkcie a stlačte tlačidlo vo forme lupy vpravo vedľa vstupného poľa „Názov postupu“. 1C automaticky vytvorí funkciu v našom module webovej služby a otvorí ju, aby sme mohli opísať akciu CalcLengthString. Využime to a napíšme akciu funkcie – určenie dĺžky vstupného reťazca.


V skutočnosti je týmto dokončená tvorba najjednoduchšej webovej služby. Teraz musíte túto službu „umiestniť“ do verejnej domény, aby softvér tretích strán alebo iné systémy 1C mohli používať túto funkciu.

Aby sme mohli vytvorenú webovú službu s jej funkcionalitou zverejniť, potrebujeme mať na stránku prístup. Predtým, než začneme službu zverejňovať, musíme skontrolovať názov súboru vo vlastnostiach vygenerovaného modulu wa_LengthString. Mal by byť prehľadný, jednoduchý a mal by mať príponu „1cws“.


Teraz je čas zverejniť webovú službu, ktorú sme vytvorili na serveri. Táto funkcia sa objavila vo verzii 8.3 platformy a mnohé spoločnosti si už naplno uvedomili výhody tejto funkcionality. Pre spustenie publikovania je potrebné v konfigurátore otvoriť formulár „Správa/Publikovanie na webovom serveri...“.


V okne, ktoré sa otvorí, musíme nastaviť webové služby 1C a vyplniť určité polia:

  • Názov. Označuje priečinok na webovom serveri, kde bude uložený popis našej webovej služby. Dávajte pozor na veľké a malé písmená, pretože servery niekedy rozlišujú medzi veľkými a malými písmenami;
  • Webový server. Musíte vybrať server z tých, ktoré sú nainštalované v počítači;
  • Katalóg. Musíte vybrať cestu k priečinku, kde sú uložené údaje webového servera na nastavenie pripojenia. Používajú sa iba latinské písmená;
  • Dve funkcie typu "Boolean". Prvý sa nám hodí, ak potrebujeme nakonfigurovať prístup cez webového klienta ku konfigurácii. Ak chcete zverejniť službu 1C, musíte zadať druhú značku.

Zostáva len skontrolovať, či má požadovaná webová služba v prvom stĺpci začiarkavacie políčko a kliknúť na „Publikovať“.


Keďže tento mechanizmus je stále celkom nový, môžete sa stretnúť s chybou ako „Chyba pri vykonávaní operácie so súborom ...“. V tomto prípade stačí zopakovať tlačidlo „Publikovať“. Vo väčšine prípadov to pomôže a zobrazí sa správa, že publikácia webovej služby je dokončená.

sk//ws/.1cws?wsdl

V reakcii na takúto požiadavku na adresu musí prehliadač zobraziť štruktúru súboru XML. Ak uvidíte prázdnu stranu, chybu alebo zvláštne znaky (problémy s kódovaním), musíte znova skontrolovať všetky kroky. Je tiež dobré sa uistiť, že server je správne nastavený a máte k nemu prístup. Po úspešnom zverejnení služby 1C WEB ju budú môcť používať aplikácie tretích strán.

WEB-service - (z anglického web-service, synonymum - online služba). Webové služby sú služby, ktoré sú poskytované na internete pomocou špeciálnych programov. Bežné sú napríklad také služby ako: hosting, e-mail, ukladanie rôznych informácií na internete (súbory, záložky), kalendár a pod. Dôležitou vlastnosťou webovej služby je, že nezávisí od vášho poskytovateľa, počítača alebo prehliadača – so svojimi údajmi môžete pracovať kdekoľvek na svete, kde máte prístup k .

Knyazev A.A. Encyklopedický slovník masmédií. - Biškek: Vydavateľstvo KRSU. A. A. Knyazev. 2002.

Pozrite si, čo je „WEB-služba“ v iných slovníkoch:

    webová služba

    webová služba- Webová služba. Webová služba, webová služba (anglicky webová služba) je softvérový systém identifikovaný reťazcom rozhraní definovaných v XML a prenášaný pomocou internetových protokolov. Webová služba je pri používaní ... ... Wikipedia jednotkou modularity

    Komunikačný protokol webovej vyrovnávacej pamäte- (WCCP) Content Redirection Protocol vyvinutý spoločnosťou Cisco. Poskytuje mechanizmus na presmerovanie dopravných tokov v reálnom čase. Má vstavané škálovanie, vyrovnávanie záťaže, odolnosť voči chybám. Cisco IOS ... ... Wikipedia

    Webová mapová služba- (WMS ruská webová mapová služba) štandardný protokol na poskytovanie cez internet geograficky odkazovaných obrázkov generovaných mapovacím serverom na základe údajov z databázy GIS. Tento štandard bol vyvinutý a po prvýkrát ... ... Wikipedia

    Web Hotel Salvador- (Salvador, Brazília) Kategória hotela: 2-hviezdičkový hotel Adresa: Rua das Alfazemas … Katalóg hotelov

    Web Hotel Aparecida- (Aparecida, Brazília) Kategória hotela: 3-hviezdičkový hotel Adresa: Av. Isaac Ferrei… Adresár hotelov

    architektúra orientovaná na služby- Obchodné procesy organizácie sú implementované na základe služieb poskytovaných existujúcimi aplikáciami Zákazníka. Ak aplikácie nepodporujú schopnosť poskytovať služby (Web Services), implementácia produktu sa vyvíja ... ... Technická príručka prekladateľa

    web 2

    Web 2.0- Kľúčové koncepty spojené s Web 2.0 Web 2.0 (definovaný Timom O'Reillym) je technika navrhovania systémov, ktoré sa tým, že zohľadňujú sieťové interakcie, zlepšujú, čím viac ľudí ich používa. Funkcia Web 2.0. je princíp ... ... Wikipedia

    webovej stránky- Dopyt "webová stránka" je presmerovaný sem. Pozri aj iné významy. Web (z angl. Website: web web a lokalita "miesto") v počítačovej sieti združenej pod jedným doménovým menom alebo IP adresou) zbierka listín súkromnej osoby alebo ... ... Wikipedia

knihy

  • Informačné technológie v cestovnom ruchu, VN Shitov. Príručka podrobne rozoberá univerzálne počítačové technológie využívajúce obľúbené balíky Microsoft Office 2010 a alternatívne komplexy pomocou ... Kúpiť za 546 rubľov
  • 75 pripravených riešení pre vašu webovú stránku v PHP , Steinmetz W., Ward B.. Každý, kto vytvára alebo sa chystá vytvoriť vlastnú webovú stránku, nevyhnutne čelí množstvu úloh a ťažkostí: ako vytvoriť blog na stránke…. "upevniť" hlasovanie, uzavrieť isté...

Na základe architektúry webových služieb vytvárame v rámci implementácie webových služieb tieto dva komponenty:

Poskytovateľ služieb alebo vydavateľ

Toto je poskytovateľ webových služieb. Poskytovateľ služby implementuje túto službu a sprístupní ju na internete alebo intranete. Budeme písať a publikovať jednoduchú webovú službu pomocou .NET SDK.

Poskytovateľ služieb alebo spotrebiteľ

Toto je každý spotrebiteľ webovej služby. Žiadateľ využíva existujúcu webovú službu otvorením sieťového pripojenia a odoslaním požiadavky XML. Napíšeme tiež dve požiadavky na webové služby: jedného webového spotrebiteľa (aplikácia ASP.NET) a ďalšieho spotrebiteľa založeného na aplikáciách Windows.

Nižšie je náš prvý príklad webovej služby, ktorá beží ako poskytovateľ služieb a odhaľuje dve metódy (add a SayHello) ako webové služby, ktoré majú aplikácie používať. Toto je štandardná šablóna pre webovú službu. Služby .NET používajú rozšírenie .asmx. Všimnite si, že metóda vystavená ako webová služba má atribút WebMethod. Uložte tento súbor ako FirstService.asmx do virtuálneho adresára IIS (ako je popísané v nastavení IIS, napr. c:\MyWebSerces).

FirstService.asmx

<%@ WebService language = "C" class = "FirstService" %>pomocou systému; pomocou System.Web.Services; pomocou System.Xml.Serialization; public class FirstService: WebService ( public int Add(int a, int b) ( return a + b; ) public String SayHello() ( return "Ahoj svet"; ) )

Ak chcete otestovať webovú službu, musí byť zverejnená. Webová služba môže byť zverejnená buď na intranete alebo na internete. Túto webovú službu zverejníme na IIS spustenej na lokálnom počítači. Začnime nastavením IIS.

  • Otvorte Štart → Nastavenia → Ovládací panel → Nástroje na správu → Správca internetových služieb.
  • Rozbaľte a kliknite pravým tlačidlom myši na Predvolenú webovú lokalitu; vyberte Nový → Virtuálny adresár. Otvorí sa Sprievodca vytvorením virtuálneho adresára. Kliknite na „Ďalej.
  • Zobrazí sa obrazovka Virtuálny adresár. Zadajte názov virtuálneho adresára. Napríklad MyWebServices. a kliknite na tlačidlo Ďalej.
  • Otvorí sa obrazovka „Web Content Directory“.
  • Zadajte názov adresára pre virtuálny adresár. Napríklad c:\MyWebServices Kliknite na Ďalej.
  • Zobrazí sa obrazovka Access Permission. Zmeňte nastavenia podľa svojich požiadaviek. Ponechajme predvolené nastavenia tohto cvičenia.
  • Kliknite na „Ďalej“. Dokončí nastavenie IIS.
  • Kliknutím na „Dokončiť“ dokončite nastavenie.

Ak chcete skontrolovať, či je služba IIS nakonfigurovaná správne, skopírujte súbor HTML (napríklad x.html) do virtuálneho adresára (C:\MyWebServices) vytvoreného vyššie. Teraz otvorte Internet Explorer a zadajte http://localhost/MyWebServices/x.html. Mal by sa otvoriť súbor x.html.

Poznámka. Ak to nefunguje, skúste nahradiť localhost adresou IP vášho zariadenia. Ak to stále nefunguje, skontrolujte, či je spustená služba IIS; možno budete musieť prekonfigurovať IIS a virtuálny adresár.

Ak chcete otestovať túto webovú službu, skopírujte FirstService.asmx do virtuálneho adresára IIS vytvoreného vyššie (C:\MyWebServices). Otvorte webovú službu v programe Internet Explorer (http://localhost/MyWebServices/FirstService.asmx). Mala by otvoriť stránku webovej služby. Stránka by mala obsahovať odkazy na dve metódy, ktoré poskytujeme ako webové služby našej aplikácii. Gratulujem! Napísali ste svoju prvú webovú službu!

Testovanie webových služieb

Ako sme práve videli, je ľahké písať webové služby v .NET Framework. V prostredí .NET je jednoduché aj písanie webových služieb; je však o niečo aktívnejší. Ako už bolo spomenuté vyššie, budeme písať dva typy spotrebiteľov služieb: jedným je webová lokalita a druhým je používateľská aplikácia Windows. Napíšeme nášho prvého spotrebiteľa webovej služby.

Webové služby

Napíšte webový spotrebiteľ, ako je uvedené nižšie. Pomenujte ho WebApp.aspx. Všimnite si, že toto je aplikácia ASP.NET. Uložte to do virtuálneho adresára webovej služby (c:\MyWebServices\WebApp.axpx). Táto aplikácia má dve textové polia, ktoré sa používajú na získanie čísel od používateľa na pridanie. Má jedno tlačidlo Spustiť, na ktoré po kliknutí získate webové služby Add a SayHello.

WebApp.axpx

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

Prvé číslo na pridanie: 4< /asp:TextBox>

Druhé číslo na pridanie: 5

Výsledok webovej služby -

ahoj svetová služba : štítok< /asp:Label>

Pridať službu : & štítok

Po vytvorení spotrebiteľa musíme vytvoriť proxy na používanie webovej služby. Túto prácu za nás robí Visual Studio .NET automaticky, keď sa odvolávame na pridanú webovú službu. Tu sú kroky, ktoré treba dodržať:

  • Vytvorte proxy na používanie webovej služby. Proxy sa vytvára pomocou pomôcky WSDL, ktorá je súčasťou súpravy .NET SDK. Tento nástroj získava informácie z webovej služby a vytvára server proxy. Proxy server je platný len pre konkrétnu webovú službu. Ak potrebujete používať iné webové služby, musíte pre túto službu vytvoriť aj proxy. Visual Studio .NET automaticky vytvorí proxy, keď sa pridá odkaz na webovú službu. Vytvorte proxy pre webovú službu pomocou pomôcky WSDL, ktorá je súčasťou súpravy .NET SDK. V aktuálnom adresári vytvorí súbor FirstSevice.cs. Musíme ho skompilovať, aby sme vygenerovali FirstService.dll (proxy) pre webovú službu.
  • c:>WSDL http://localhost/MyWebServices/FirstService.asmx?WSDL
  • c:> csc /t:library FirstService.cs
  • Umiestnite skompilovaný server proxy do adresára bin virtuálneho adresára webovej služby (c:\MyWebServices\bin). Internetová informačná služba (IIS) hľadá proxy server v tomto adresári.
  • Vytvorte spotrebiteľa služieb rovnako ako my. Všimnite si, že objekt proxy webovej služby je vytvorený na spotrebiteľovi. Tento proxy sa stará o interakciu so službou.
  • Zadajte spotrebiteľskú adresu URL v IE, aby ste ju otestovali (napríklad http://localhost/MyWebServices/WebApp.aspx).

Spotrebiteľ webových služieb založený na aplikáciách Windows

Písanie aplikácie webovej služby založenej na aplikáciách Windows je podobné ako písanie akejkoľvek inej aplikácie Windows. Stačí si vytvoriť proxy (čo sme už urobili) a pri kompilácii aplikácie použiť tento proxy. Nižšie je naša aplikácia pre Windows, ktorá používa webovú službu. Táto aplikácia vytvorí objekt webovej služby (samozrejme proxy) a zavolá naň metódy SayHello a Add.

WinApp.cs

pomocou systému; pomocou System.IO; menný priestor SvcConsumer ( trieda SvcEater ( public static void Main(String args) ( FirstService mySvc = new FirstService(); Console.WriteLine("Calling Hello World Service: " + mySvc.SayHello()); Console.WriteLine("Calling Add( 2, 3) Služba: " + mySvc.Add(2, 3).ToString()); ) ) )

Kompilujte ho pomocou c: \> csc /r:FirstService.dll WinApp.cs . Vytvorí súbor WinApp.exe. Spustite ho a otestujte aplikáciu a webovú službu.

Otázka teraz znie: ako si môžete byť istý, že táto aplikácia skutočne volá webovú službu?

Dá sa to ľahko skontrolovať. Zastavte svoj webový server, aby nebolo možné kontaktovať webovú službu. Teraz spustite aplikáciu WinApp. Za behu vyvolá výnimku. Teraz znova spustite webový server. Musí pracovať.