Vytváříme webovou službu v .NET

14. března 2002

V tomto článku se seznámíte s pojmem „webová služba“ (web service) a dozvíte se, jak takovou webovou službu vytvořit.

Webová služba je hlavním pilířem budoucích internetových distribuovaných aplikací. Umožňuje distribuovaným aplikacím sdílet obchodní logiku po síti. Tato myšlenka není nová. Dříve však narážela na dva problémy. Jednak se pro přenos informací využívalo převážně proprietárních protokolů, které byly vlastnictvím jednotlivých firem. To bránilo jejich volnému a masovému rozšíření. A jednak komunikace probíhala přes speciální porty, které však byly blokovány firewally.

Naproti tomu webová služba využívá všudypřítomný protokol HTTP a pro výměnu dat široce rozšířený formát XML. Prakticky všechny firewally mají povolené porty 80 (HTTP) a 443 (HTTPS), takže aplikace mezi sebou mohou nerušeně kominkovat. Pro nasazení webových služeb tedy není potřeba zasahovat do stávající infrastruktury internetu.

Jak už jsem řekl, webovou službu můžete chápat jako programovatelnou aplikační logiku, která je přístupná přes standardní webové protokoly. Zavedení aplikační logiky je přitom libovolné. Může se jednat například o volání COM komponent. Standardní webové protokoly představují např. HTTP nebo SMTP. Avšak široké možnosti nabízí spojení protokolů HTTP a XML do nového protokolu SOAP (Simple Object Access Protokol). Ten totiž umožňuje jak vzdálené volání procedur (RPC), tak předávání strukturovaných dat.

A co to tedy vlastně ta webová služba je? Představte si, že vaše firma např. obchoduje s akciemi na burze nebo se zabývá prodejem letenek. Vytvoříte webovou službu, která bude umět přijímat pokyny k burzovním obchodům nebo bude umět rezervovat letenky u různých leteckých společností. Potom obecně kdokoli bude moci tuto vaši službu volat a využívat. Webová služba se dá používat jak z jiné internetové aplikace, tak i z desktopové aplikace.

Jak vytvořit webovou službu

Pro vytvoření webové služby postačí textový editor, např. Notepad a nainstalovaný .NET Framework. Skutečný komfort však získáte v novém Visual Studio .NET.

Vytvoření jednoduché webové služby je snadné. ASP.NET ukládá všechny webové služby do textových souborů s příponou .asmx. Proto vytvoříte prázdný textový soubor a nazvete ho třeba aritmetika.asmx. Do tohoto souboru zapíšete aplikační logiku vaší webové služby. Webová služba bude představovat banální součet a rozdíl dvou celých čísel. Kód aplikace budu zapisovat např. v novém jazyce C#. Službu si můžete sami doplnit o další aritmetické operace.

public class Aritmetika { public int Soucet (int a, int b) { return a + b; } public int Rozdil (int a, int b) { return a – b; } }

Aplikační logiku, v našem případě metody Soucet a Rozdil, zpřístupníte přes web pouhým přidáním atributu [WebMethod]. Atributy jsou deklarativním kódem, které přidávají kódu nové chování. Metody a vlastnosti označené atributem [WebMethod] jsou přístupné jako webová služba. Mohou přijímat, zpracovávat a odesílat XML zprávy, přičemž serializace a deserializace (převod dat do a z XML) probíhá vnitřně, nemusíte se jí tedy vůbec zabývat. Protože se třída atributu [WebMethod] nachází ve jmenném prostoru System.Web.Services, musíte ho naimportovat příkazem:

using System.Web.Services;

Na začátek kódu umístíte ještě direktivu, která ASP.NET informuje, že se jedná o webovou službu, jaký jazyk je použit pro kódování aplikační logiky a která třída má označeny metody atributem [WebMethod]. Úplný kód webové služby tedy vypadá takto:

<%@ WebService Language=“C#“ Class=“Aritmetika“%> using System.Web.Services; public class Aritmetika { [WebMethod] public int Soucet (int a, int b) { return a + b; } [WebMethod] public int Rozdil (int a, int b) { return a – b; } }

Zkoušíme webovou službu

Abyste vyzkoušeli fungování webové služby, stačí jen umístit soubor aritmetika.asmx na webový server, který podporuje technologii ASP.NET. Pro testování funkčnosti postačí webový prohlížeč. Není třeba nic kompilovat, kompilace proběhne při prvním požadavku na webovou službu. Přejděte na tuto adresu. Uvidíte následující obrazovku:

Pod zvýrazněným titulem Aritmetika, což je název webové služby, naleznete dva odkazy. Jsou to ony dvě metody Soucet a Rozdil, které jste atributem [WebMethod] zpřístupnili pro webové rozhraní. Klepněte třeba na odkaz Soucet a dostanete se na následující obrazovku.

Zde můžete zadat hodnoty pro vstupní parametry a, b a stiknutím tlačítka Invoke vyvoláte metodu Soucet.

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Předchozí článek Chapadlo, které chytne

Mohlo by vás také zajímat

Nejnovější

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *