Webové služby XML. Přehled technologie

Název tématu je opravdu otázkou, protože Sám nevím, co to je a poprvé se s tím pokusím pracovat v rámci tohoto článku. Jediné, co mohu zaručit, je, že níže uvedený kód bude fungovat, nicméně mé fráze budou pouze domněnky a dohady o tom, jak tomu všemu sám rozumím. Tak pojďme...

Úvod

Musíme začít tím, k čemu byl koncept webových služeb vytvořen. V době, kdy se tento koncept objevil, již ve světě existovaly technologie, které umožňovaly interakci aplikací na dálku, kdy jeden program mohl zavolat nějakou metodu v jiném programu, kterou pak bylo možné spustit na počítači umístěném v jiném městě nebo dokonce zemi. To vše se označuje zkratkou RPC (Remote Procedure Calling - vzdálené volání procedury). Příklady zahrnují technologie CORBA a pro Javu - RMI (Remote Method Invoking - vzdálené vyvolání metody). A zdá se, že je v nich všechno dobré, zvláště v CORBA, protože můžete s ním pracovat v jakémkoli programovacím jazyce, ale stále tomu něco chybělo. Domnívám se, že nevýhodou CORBA je, že funguje přes některé její síťové protokoly namísto jednoduchého HTTP, který proleze jakýkoli firewall. Myšlenkou webové služby bylo vytvořit takové RPC, které by se vkládalo do HTTP paketů. Tak začal vývoj standardu. Jaké jsou základní pojmy tohoto standardu:
  1. MÝDLO. Před voláním vzdálené procedury musíte toto volání popsat v souboru XML ve formátu SOAP. SOAP je jen jedním z mnoha značek XML používaných ve webových službách. Vše, co chceme někam poslat přes HTTP, se nejprve převede do XML SOAP popisu, poté se vloží do HTTP paketu a přes TCP/IP se pošle na jiný počítač v síti.
  2. WSDL. Existuje webová služba, tzn. program, jehož metody lze volat na dálku. Norma ale vyžaduje, aby byl k tomuto programu připojen popis, který říká, že „ano, nemýlili jste se – toto je skutečně webová služba a můžete z ní volat takové a takové metody.“ Tento popis je reprezentován jiným souborem XML, který má jiný formát, a to WSDL. Tito. WSDL je pouze soubor XML popisující webovou službu a nic jiného.
Proč se ptáš tak krátce? Nemůžeš jít do podrobností? Pravděpodobně můžete, ale k tomu se budete muset obrátit na knihy, jako je Mashnin T. "Java Web Services". Tam je pro prvních 200 stránek podrobný popis každé značky standardů SOAP a WSDL. Stojí to za to? Podle mého názoru ne, protože to vše se v Javě vytváří automaticky a stačí napsat obsah metod, které mají být vzdáleně volány. Takže v Javě existuje takové API jako JAX-RPC. Pokud někdo neví, když se říká, že Java má takové a takové API, znamená to, že existuje balíček se sadou tříd, které zapouzdřují danou technologii. JAX-RPC se dlouhou dobu vyvíjel od verze k verzi a nakonec se vyvinul v JAX-WS. WS zjevně znamená WebService a možná si myslíte, že jde o jednoduché přejmenování RPC na populární módní slovo dnešní doby. Není tomu tak, protože nyní se webové služby vzdálily původní myšlence a umožňují nejen volání vzdálených metod, ale také jednoduché zasílání zpráv o dokumentech ve formátu SOAP. Proč je to potřeba, zatím nevím, je nepravděpodobné, že odpověď zde bude „pro případ, že je to náhle potřeba“. Sám bych se rád učil od zkušenějších soudruhů. A nakonec se objevil JAX-RS pro tzv. webové služby RESTful, ale to je téma na samostatný článek. Tento úvod lze dokončit, protože. dále se naučíme pracovat s JAX-WS.

Obecný přístup

Webové služby mají vždy klienta a server. Server je naše webová služba a někdy se nazývá koncový bod (například koncový bod, kam dosáhnou zprávy SOAP od klienta). Musíme provést následující:
  1. Popište rozhraní naší webové služby
  2. Implementujte toto rozhraní
  3. Spusťte naši webovou službu
  4. Napište klienta a vzdáleně zavolejte požadovanou metodu webové služby
Webovou službu můžete spustit různými způsoby: buď popište třídu hlavní metodou a spusťte webovou službu přímo jako server, nebo ji nasaďte na server, jako je Tomcat nebo jakýkoli jiný. Ve druhém případě sami nespouštíme nový server a neotevíráme další port na počítači, ale jednoduše sdělíme kontejneru servletů Tomcat, že „napsali jsme sem třídy webových služeb, prosím, publikujte je, aby je mohl použít každý, kdo vás kontaktuje webová služba. Bez ohledu na to, jak bude webová služba spuštěna, budeme mít stejného klienta.

server

Spusťte IDEA a vytvořte nový projekt Vytvořit nový projekt. Zadejte název hellowebservice a stiskněte tlačítko další, poté tlačítko Dokončit. Ve složce src vytvořit balíček en.javarush.ws. V tomto balíčku vytvoříme rozhraní HelloWebService: package ru. javarush. ws; // jedná se o anotace, tzn. způsob, jak označit naše třídy a metody, // ve vztahu k technologii webových služeb import javax. jws. WebMethod; import javax. jws. webová služba; import javax. jws. mýdlo. SOAPBinding; // říkáme, že naše rozhraní bude fungovat jako webová služba@Webová služba // říká, že webová služba bude použita k volání metod@SOAPBinding(style = SOAPBinding.Style.RPC) veřejné rozhraní HelloWebService( // řekněme, že tato metoda může být volána vzdáleně@WebMethod public String getHelloString(Název řetězce) ; ) V tomto kódu jsou třídy WebService a WebMethod tzv. anotacemi a nedělají nic jiného, ​​než že označují naše rozhraní a jeho metodu jako webovou službu. Totéž platí pro třídu SOAPBinding. Jediný rozdíl je v tom, že SOAPBinding je anotace s parametry. V tomto případě je použit parametr style s hodnotou, která říká, že webová služba bude fungovat nikoli přes zprávy dokumentů, ale jako klasické RPC, tzn. zavolat metodu. Pojďme implementovat naši logiku rozhraní a vytvořit v našem balíčku třídu HelloWebServiceImpl. Mimochodem podotýkám, že třída končící na Impl je konvence v Javě, podle které se tak označuje implementace rozhraní (Impl - od slova implementace, tedy implementace). Toto není požadavek a můžete si třídu pojmenovat, jak chcete, ale dobré mravy to vyžadují: package ru. javarush. ws; // stejná anotace jako pro popis rozhraní, import javax. jws. webová služba; // ale zde se používá s parametrem endpointInterface, // označující úplný název třídy rozhraní naší webové služby@WebService(endpointInterface= "en.javarush.ws.HelloWebService") veřejná třída HelloWebServiceImpl implementuje službu HelloWebService ( @Override public String getHelloString (název řetězce) ( // stačí vrátit pozdrav return "Dobrý den, " + jméno + "!" ; ) ) Provozujme naši webovou službu jako samostatný server, tzn. bez účasti jakéhokoli Tomcatu a aplikačních serverů (toto je téma na samostatnou diskusi). Chcete-li to provést, ve struktuře projektu ve složce src vytvoříme balíček ru.javarush.endpoint a v něm vytvoříme třídu HelloWebServicePublisher s metodou main: package ru. javarush. koncový bod; // třída ke spuštění webového serveru s webovými službami import javax. xml. ws. koncový bod; // třída naší webové služby import en. javarush. ws. hellowebserviceimpl; public class HelloWebServicePublisher( public static void main(String. . . args)( // spuštění webového serveru na portu 1986 // a na adrese uvedené v prvním argumentu, // spuštění webové služby předané ve druhém argumentu koncový bod. publikovat( "http://localhost:1986/wss/hello", nový HelloWebServiceImpl () ); ) ) Nyní spusťte tuto třídu kliknutím Shift+F10. V konzole se nic nezobrazí, ale server běží. Můžete to ověřit zadáním http://localhost:1986/wss/hello?wsdl do prohlížeče. Otevřená stránka na jedné straně dokazuje, že na našem počítači (localhostu) máme webový server (http://) běžící na portu 1986, a na druhé straně zobrazuje WSDL popis naší webové služby. Pokud aplikaci zastavíte, popis se stane nepřístupným, stejně jako samotná webová služba, takže to neuděláme, ale přejdeme k psaní klienta.

Zákazník

Ve složce projektu src vytvoříme balíček ru.javarush.client a v něm třídu HelloWebServiceClient s hlavní metodou: package ru. javarush. klient; // potřeboval získat popis wsdl a přes něj // dosažení samotné webové služby importovat java. síť. URL; // taková výjimka nastane při práci s objektem URL importovat java. síť. MalformedURLException; // třídy pro analýzu xml s popisem wsdl // a sáhněte po servisním štítku v něm import javax. xml. jmenný prostor. Qname; import javax. xml. ws. servis; // rozhraní naší webové služby (potřebujeme další) import en. javarush. ws. hellowebservice; public class HelloWebServiceClient( public static void main(String args) vyvolá MalformedURLException( // vytvořte odkaz na popis wsdl URL url = nová URL( "http://localhost:1986/wss/hello?wsdl") ; // Podíváme se na parametry dalšího konstruktoru v úplně první WSDL popisné značce - definice // podívejte se na 1. argument v atributu targetNamespace // 2. argument hledá v atributu name QName qname = nový QName ("http://ws.site/" , "HelloWebServiceImplService" ) ; // Nyní můžeme dosáhnout servisní značky v popisu wsdl, Servisní služba = služba. vytvořit (url, qname) ; // a pak na značku port v ní vnořenou, takže // získat odkaz na objekt webové služby vzdálený od nás HelloWebService hello = služba. getPort(HelloWebService.class) ; // Hurá! Nyní můžete zavolat vzdálenou metodu Systém. ven. println(ahoj. getHelloString("JavaRush" ) ); ) ) Ke kódu jsem dal maximálně komentáře ve výpisu. Nemám co dodat, tak spusťte (Shift + F10). V konzoli bychom měli vidět text: Hello, JavaRush! Pokud jste to neviděli, pravděpodobně jste zapomněli spustit webovou službu.

Závěr

V tomto tématu byl představen krátký exkurz do webových služeb. Ještě jednou, mnoho z toho, co jsem napsal, je můj odhad, jak to funguje, a proto by se mi nemělo příliš věřit. Byl bych vděčný, kdyby mě znalí lidé opravili, protože pak se něco naučím. UPD.

Webová služba (služba) je program, který organizuje interakci mezi stránkami. Informace z jednoho portálu se přenášejí do druhého.

Existuje například letecká společnost. Má mnoho letů, respektive hodně letenek. Přenáší informace prostřednictvím webové služby na stránku agregátoru zájezdů. Uživatel, který vstoupí do agregátoru, si bude moci zakoupit letenky této letecké společnosti přímo tam.

Dalším příkladem webových služeb je web pro sledování počasí, který poskytuje informace o počasí v konkrétním městě nebo zemi jako celku. Tyto informace také často využívají třetí strany.

Informace na internetu jsou rozmanité. Stránky jsou spravovány různými systémy. používají se různé přenosové a šifrovací protokoly. Webové služby zjednodušují výměnu informací mezi různými stránkami.

Architektura a protokoly webových služeb

Můžete definovat 3 instance, které se vzájemně ovlivňují: katalog, dodavatel a zákazník. Po vytvoření služby ji interpret zaregistruje do katalogu a zákazník tam službu najde.

Mechanismus výměny dat je vytvořen v popisu webových služeb. Toto je specifikace, která pokrývá formáty předávání, typy obsahu, přenosové protokoly, které se používají při výměně informací mezi zákazníkem a přepravcem služeb.

K implementaci různých webových služeb se dnes nejčastěji používá několik technologií:

  1. TCP/IP je protokol, kterému rozumí téměř každé síťové zařízení, od sálových počítačů po přenosná zařízení a PDA.
  2. HTML je univerzální značkovací jazyk používaný k zobrazování obsahu na spotřebitelských zařízeních.
  3. XML je univerzální nástroj pro práci se všemi druhy dat. Na jeho základě mohou fungovat i další protokoly výměny informací: SOAP a WSDL.
  4. UDDI je univerzálním zdrojem rozpoznávání, integrace a popisu. Funguje zpravidla v privátních sítích a zatím nenašel dostatečnou distribuci.

Všestrannost prezentovaných technologií je základem pro pochopení webových služeb. Pracují na standardních technologiích, které jsou nezávislé na dodavatelích aplikací a dalších síťových zdrojích. Může být použit v libovolných operačních systémech, aplikačních serverech, programovacích jazycích atd.

Výhody

  • Vytvoření nezbytných podmínek pro interakci softwarových komponent bez ohledu na platformu.
  • Webové služby jsou založeny na otevřených standardních protokolech. Díky zavedení XML je snadné vytvářet a konfigurovat webové služby.
  • Použití HTTP zaručuje interakci systémů prostřednictvím mezisíťového přístupu.

Nedostatky

  • Nízký výkon a velký provoz ve srovnání se systémy RMI, CORBA, DCOM kvůli použití zpráv XML v kontextu textu.
  • Úroveň zabezpečení. Všechny moderní webové služby musí implementovat kódování a vyžadovat autorizaci uživatele. Zda zde stačí HTTPS nebo jsou potřeba spolehlivější protokoly, jako je XML Encryption, SAML atd., se řeší až při vývoji.

Úkoly webové služby

Webové služby lze využít v mnoha oblastech.

B2B transakce

Integrace procesů probíhá najednou, bez účasti lidí. Například aktualizace katalogu internetového obchodu o nové produkty. Jsou přivezeny do skladu a skladník příchod zaznačí do databáze. Informace se automaticky přenášejí do internetového obchodu. A kupující místo označení „Není skladem“ na kartě produktu vidí jeho množství.

Integrace podnikových služeb

Pokud firma využívá firemní programy, pak jim webová služba pomůže nastavit jejich společnou práci.

Vytvoření systému klient-server

Služby se používají k přizpůsobení provozu klienta a serveru. Získáte tak následující výhody:

  • nemůžete prodávat samotný software, ale poskytovat placený přístup k webové službě;
  • snadnější řešení problémů pomocí softwaru třetích stran;
  • je snazší organizovat přístup k obsahu a materiálům serveru.

Webová služba je aplikace, která zjednodušuje technickou konfiguraci interakcí se zdroji.

WEB služby jsou dnes využívány téměř všude – poskytují nám informace o letech letadel a vlaků, směnných kurzech a počasí. Není divu, že 1C má také schopnost vytvářet své vlastní WEB služby, což vám umožňuje jednat jako dodavatel i spotřebitel. Tento mechanismus je zabudován do platformy 1C:Enterprise 8.3 a vývojáři mohou dokonce do standardní konfigurace přidat vlastní objekty typu WEB služeb. Jejich architektura je postavena na sadě služeb, které umožňují výměnu informací s jiným softwarem.

Vytvoření webové služby 1C

Jednou z hlavních výhod 1C WEB-služeb je absence nutnosti přímého přístupu k datům o bezpečnosti informací. Správně nakonfigurovaná webová služba 1C umožňuje dalším aplikacím používat funkce zvenčí. V takových případech by měla funkce sama určovat právo používat data podle zadaných parametrů podle pravidel předepsaných vývojářem.

Jak vytvořit webovou službu v 1C?

Aby byla určitá funkce systému 1C dostupná externímu softwaru, musíte provést následující algoritmus akcí:

  1. Přejděte do konfigurace a přidejte objekt WEB služby do určité větve stromu;
  2. Popište všechny operace, které může naše funkce provádět. Popis funkcí je proveden v modulu ve vestavěném jazyce 1C;
  3. Přidejte popis parametrů funkcí webové služby. Vezměte prosím na vědomí, že datové typy jsou popsány s ohledem na existující typy mechanismu XDTO, které se objevily na platformě verze 8.1;
  4. Publikovat vytvořenou webovou službu na serveru. Mechanismus zabudovaný do platformy 1C podporuje následující standardy:
  • SSL/TLS
  • WS-I BP

Příklad vytvoření jednoduché WEB služby

Abychom co nejnázorněji demonstrovali fungování mechanismu WEBových služeb, vytvořte si příklad – funkcional, který určuje délku zadávaného řetězce. Software předá řetězec jako parametr dotazu a funkce popsaná v 1C vrátí počet znaků. Při jeho vytváření je třeba pamatovat na to, že zveřejnění tohoto mechanismu umožní přístup k němu různému softwaru. Protože ne každý software je schopen vnímat azbuku, budeme konfigurační objekty pojmenovávat pomocí latinských znaků.

Otevřete konfigurátor, najděte ve stromu větev „WEB services“ a přidejte novou službu „wa_LengthString“. Také je potřeba přidat novou operaci na kartě „Operace“. Nazvěme to "CalcLengthString", ve vlastnostech určíme typ vrácené hodnoty - int nebo integer a v ní vytvoříme parametr "InputString". Typ hodnoty ponechte jako řetězec.


Nyní je nutné zaregistrovat akci funkce CalcLengthString v modulu WEB služby. Chcete-li to provést, otevřete vlastnosti vytvořené funkce a stiskněte tlačítko v podobě lupy vpravo vedle vstupního pole "Název procedury". 1C automaticky vytvoří funkci v našem modulu WEB služeb a otevře ji, abychom mohli popsat akci CalcLengthString. Využijme toho a napišme akci funkce – určení délky vstupního řetězce.


Tím je vlastně tvorba nejjednodušší webové služby dokončena. Nyní musíte tuto službu „umístit“ do veřejné domény, aby software třetích stran nebo jiné systémy 1C mohly tuto funkci používat.

Abychom mohli vytvořenou webovou službu s její funkčností publikovat, potřebujeme mít na stránky přístup. Než začneme službu publikovat, musíme zkontrolovat název souboru ve vlastnostech vygenerovaného modulu wa_LengthString. Měl by být přehledný, jednoduchý a měl by mít příponu „1cws“.


Nyní je čas publikovat webovou službu, kterou jsme vytvořili na serveru. Tato funkce se objevila ve verzi 8.3 platformy a mnoho společností si již plně uvědomilo výhody této funkce. Pro zahájení publikování je třeba v konfigurátoru otevřít formulář „Správa/Publikování na webovém serveru…“.


V okně, které se otevře, musíme nastavit webové služby 1C a vyplnit určitá pole:

  • Název. Označuje složku na webovém serveru, kde bude uložen popis naší webové služby. Dávejte pozor na velká a malá písmena, protože servery někdy rozlišují mezi velkými a malými písmeny;
  • Webový server. Musíte vybrat server z těch nainstalovaných v počítači;
  • Katalog. Musíte vybrat cestu ke složce, kde jsou uložena data webového serveru pro nastavení připojení. Používají se pouze latinská písmena;
  • Dvě funkce typu "Boolean". První se nám hodí, pokud potřebujeme nakonfigurovat přístup přes webového klienta do konfigurace. Chcete-li publikovat službu 1C, musíte zadat druhou značku.

Zbývá pouze zkontrolovat, zda má požadovaná webová služba v prvním sloupci zaškrtávací políčko, a kliknout na „Publikovat“.


Protože je tento mechanismus stále zcela nový, můžete se setkat s chybou jako „Chyba při provádění operace se souborem...“. V tomto případě stačí zopakovat tlačítko „Publikovat“. Ve většině případů to pomůže a zobrazí se zpráva, že publikace webové služby je dokončena.

cs//ws/.1cws?wsdl

V reakci na takovou žádost o adresu musí prohlížeč zobrazit strukturu souboru XML. Pokud uvidíte prázdnou stránku, chybu nebo podivné znaky (problémy s kódováním), musíte znovu zkontrolovat všechny kroky. Je také dobré se ujistit, že je server správně nastaven a máte k němu přístup. Po úspěšném zveřejnění WEB služby 1C ji budou moci používat aplikace třetích stran.

WEB-service - (z anglického web-service, synonymum - online služba). Webové služby jsou služby, které jsou poskytovány na internetu pomocí speciálních programů. Běžné jsou například takové služby jako: hosting, e-mail, ukládání různých informací na internetu (soubory, záložky), kalendář atd. Důležitou vlastností webové služby je, že není závislá na vašem poskytovateli, počítači nebo prohlížeči – se svými daty můžete pracovat kdekoli na světě, kde máte přístup k .

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

Podívejte se, co je "WEB-service" v jiných slovnících:

    webová služba

    webová služba- Webová služba. Webová služba, webová služba (anglicky webová služba) je softwarový systém identifikovaný řetězcem rozhraní definovaných v XML a přenášený pomocí internetových protokolů. Webová služba je při používání ... ... Wikipedie jednotkou modularity

    Komunikační protokol webové mezipaměti- (WCCP) Content Redirection Protocol vyvinutý společností Cisco. Poskytuje mechanismus pro přesměrování toků provozu v reálném čase. Má vestavěné škálování, vyvažování zátěže, odolnost proti chybám. Cisco IOS ... ... Wikipedie

    Webová mapová služba- (WMS Russian web map service) standardní protokol pro poskytování přes internet geograficky odkazovaných obrázků generovaných mapovacím serverem na základě dat z databáze GIS. Tento standard byl vyvinut a poprvé ... ... Wikipedie

    Web Hotel Salvador- (Salvador, Brazílie) Kategorie hotelu: 2hvězdičkový hotel Adresa: Rua das Alfazemas … Katalog hotelů

    Web Hotel Aparecida- (Aparecida, Brazílie) Kategorie hotelu: 3hvězdičkový hotel Adresa: Av. Isaac Ferrei … Adresář hotelů

    architektura orientovaná na služby- Obchodní procesy organizace jsou implementovány na základě služeb poskytovaných stávajícími aplikacemi Zákazníka. Pokud aplikace nepodporují schopnost poskytovat služby (Web Services), implementace produktu se vyvíjí ... ... Technická příručka překladatele

    web 2

    Web 2.0- Klíčové koncepty spojené s Web 2.0 Web 2.0 (definovaný Timem O'Reillym) je technika pro navrhování systémů, které se tím, že vezmou v úvahu síťové interakce, zlepšují, čím více lidí je používá. Funkce Web 2.0. je princip ... ... Wikipedie

    webová stránka- Dotaz "web" je přesměrován sem. Vidět i jiné významy. Web (z angličtiny Website: web web a web "místo") v počítačové síti sdružené pod jedním doménovým jménem nebo IP adresou) sbírka dokumentů soukromé osoby nebo ... ... Wikipedie

knihy

  • Informační technologie v cestovním ruchu, VN Shitov. Příručka podrobně pojednává o univerzálních počítačových technologiích využívajících oblíbené balíčky Microsoft Office 2010 a alternativních komplexů, pomocí ... Koupit za 546 rublů
  • 75 hotových řešení pro váš web v PHP , Steinmetz W., Ward B.. Každý, kdo vytváří nebo se chystá vytvořit vlastní webovou stránku, se nevyhnutelně potýká s řadou úkolů a obtíží: jak vytvořit blog na webu…. "upevnit" hlasování, uzavřít jisté...

Na základě architektury webových služeb vytváříme v rámci implementace webových služeb následující dvě komponenty:

Poskytovatel služeb nebo vydavatel

Toto je poskytovatel webových služeb. Poskytovatel služby implementuje tuto službu a zpřístupní ji na internetu nebo intranetu. Budeme psát a publikovat jednoduchou webovou službu využívající .NET SDK.

Poskytovatel služeb nebo spotřebitel

Jedná se o jakéhokoli spotřebitele webové služby. Žadatel spotřebovává existující webovou službu otevřením síťového připojení a odesláním požadavku XML. Napíšeme také dva požadavky na webové služby: jeden webový spotřebitel (aplikace ASP.NET) a druhý spotřebitel založený na aplikacích Windows.

Níže je náš první příklad webové služby, která běží jako poskytovatel služeb a odhaluje dvě metody (add a SayHello) jako webové služby, které mají aplikace používat. Toto je standardní šablona pro webovou službu. Služby .NET používají příponu .asmx. Všimněte si, že metoda vystavená jako webová služba má atribut WebMethod. Uložte tento soubor jako FirstService.asmx do virtuálního adresáře IIS (jak je popsáno v nastavení IIS, např. c:\MyWebSerces).

FirstService.asmx

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

Chcete-li otestovat webovou službu, musí být publikována. Webová služba může být publikována buď na intranetu nebo na internetu. Tuto webovou službu publikujeme na IIS běžící na místním počítači. Začněme nastavením IIS.

  • Otevřete Start → Nastavení → Ovládací panely → Nástroje pro správu → Správce internetových služeb.
  • Rozbalte a klepněte pravým tlačítkem myši na Výchozí web; vyberte Nový → Virtuální adresář. Otevře se Průvodce vytvořením virtuálního adresáře. Klikněte na „Další.
  • Zobrazí se obrazovka Virtuální adresář. Zadejte název virtuálního adresáře. Například MyWebServices. a klepněte na tlačítko Další.
  • Otevře se obrazovka "Web Content Directory".
  • Zadejte název adresáře pro virtuální adresář. Například c:\MyWebServices Klepněte na tlačítko Další.
  • Zobrazí se obrazovka Přístupové oprávnění. Změňte nastavení podle svých požadavků. Ponechme výchozí nastavení pro toto cvičení.
  • Klikněte na "Další". Dokončí nastavení IIS.
  • Klikněte na "Dokončit" pro dokončení nastavení.

Chcete-li zkontrolovat, zda je služba IIS správně nakonfigurována, zkopírujte soubor HTML (například x.html) do virtuálního adresáře (C:\MyWebServices) vytvořeného výše. Nyní otevřete Internet Explorer a zadejte http://localhost/MyWebServices/x.html. Měl by otevřít soubor x.html.

Poznámka. Pokud to nefunguje, zkuste nahradit localhost IP adresou vašeho zařízení. Pokud to stále nefunguje, zkontrolujte, zda je spuštěna služba IIS; možná budete muset překonfigurovat službu IIS a virtuální adresář.

Chcete-li tuto webovou službu otestovat, zkopírujte FirstService.asmx do výše vytvořeného virtuálního adresáře služby IIS (C:\MyWebServices). Otevřete webovou službu v aplikaci Internet Explorer (http://localhost/MyWebServices/FirstService.asmx). Měla by otevřít stránku webové služby. Stránka by měla obsahovat odkazy na dvě metody, které poskytujeme jako webové služby naší aplikaci. Gratulujeme! Napsali jste svou první webovou službu!

Testování webových služeb

Jak jsme právě viděli, je snadné psát webové služby v .NET Framework. Psaní webových služeb je také snadné v prostředí .NET; je však o něco aktivnější. Jak již bylo zmíněno dříve, budeme psát dva typy spotřebitelů služeb: jedním je webová stránka a druhým je uživatelská aplikace Windows. Pojďme napsat našeho prvního spotřebitele webových služeb.

Webové služby

Napište spotřebitele webu, jak je uvedeno níže. Pojmenujte jej WebApp.aspx. Všimněte si, že se jedná o aplikaci ASP.NET. Uložte to do virtuálního adresáře webové služby (c:\MyWebServices\WebApp.axpx). Tato aplikace má dvě textová pole, která se používají k získání čísel od uživatele k přidání. Má jedno tlačítko Spustit, na které po kliknutí získáte webové služby Přidat a SayHello.

WebApp.axpx

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

První číslo k přidání: 4< /asp:TextBox>

Druhé číslo k přidání: 5

Výsledek webové služby -

ahoj světová služba : označení< /asp:Label>

Přidat službu : & označení

Po vytvoření spotřebitele musíme vytvořit proxy ke konzumaci webové služby. Tuto práci za nás provádí automaticky Visual Studio .NET, když odkazujeme na přidanou webovou službu. Zde jsou následující kroky:

  • Vytvořte proxy pro používání webové služby. Proxy se vytváří pomocí nástroje WSDL dodávaného se sadou .NET SDK. Tento nástroj získává informace z webové služby a vytváří proxy. Proxy server je platný pouze pro konkrétní webovou službu. Pokud potřebujete používat jiné webové služby, musíte pro tuto službu také vytvořit proxy. Visual Studio .NET automaticky vytvoří proxy, když je přidán odkaz na webovou službu. Vytvořte proxy pro webovou službu pomocí nástroje WSDL dodávaného se sadou .NET SDK. V aktuálním adresáři vytvoří soubor FirstSevice.cs. Musíme jej zkompilovat, abychom vygenerovali FirstService.dll (proxy) pro webovou službu.
  • c:>WSDL http://localhost/MyWebServices/FirstService.asmx?WSDL
  • c:> csc /t:library FirstService.cs
  • Umístěte zkompilovaný proxy do adresáře bin virtuálního adresáře webové služby (c:\MyWebServices\bin). Internetová informační služba (IIS) hledá proxy server v tomto adresáři.
  • Vytvořte spotřebitele služeb stejně jako my. Všimněte si, že objekt proxy webové služby je vytvořen na spotřebiteli. Tento proxy se stará o interakci se službou.
  • Chcete-li ji otestovat, zadejte v IE spotřebitelskou adresu URL (například http://localhost/MyWebServices/WebApp.aspx).

Zákazník webových služeb založený na aplikacích Windows

Psaní aplikace webové služby založené na aplikacích Windows je podobné psaní jakékoli jiné aplikace Windows. Musíte pouze vytvořit proxy (což jsme již udělali) a odkazovat na tuto proxy při kompilaci aplikace. Níže je naše aplikace pro Windows, která využívá webovou službu. Tato aplikace vytvoří objekt webové služby (samozřejmě proxy) a zavolá na něj metody SayHello a Add.

WinApp.cs

pomocí systému; pomocí System.IO; jmenný prostor SvcConsumer ( třída 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()); ) ) )

Zkompilujte jej pomocí c: \> csc /r:FirstService.dll WinApp.cs . Vytvoří soubor WinApp.exe. Spusťte jej a otestujte aplikaci a webovou službu.

Nyní je otázkou: jak si můžete být jisti, že tato aplikace skutečně volá webovou službu?

Je snadné to zkontrolovat. Zastavte svůj webový server, aby nebylo možné webovou službu kontaktovat. Nyní spusťte aplikaci WinApp. Za běhu vyvolá výjimku. Nyní znovu spusťte webový server. Musí pracovat.