Programování

Aplikační server, webový server: Jaký je rozdíl?

23. srpna 2002

Otázka: Jaký je rozdíl mezi aplikačním serverem a webovým serverem?

A:

Webový server zpracovává výhradně požadavky HTTP, zatímco aplikační server obsluhuje obchodní logiku aplikačních programů prostřednictvím libovolného počtu protokolů.

Podívejme se na každý podrobněji.

Webový server

Webový server zpracovává protokol HTTP. Když webový server obdrží požadavek HTTP, odpoví odpovědí HTTP, například odesláním zpět stránku HTML. Ke zpracování požadavku může webový server odpovědět statickou stránkou nebo obrázkem HTML, odeslat přesměrování nebo delegovat generování dynamické odpovědi na nějaký jiný program, jako jsou skripty CGI, JSP (stránky JavaServer), servlety, ASP (stránky aktivního serveru). ), JavaScripty na straně serveru nebo jiná technologie na straně serveru. Bez ohledu na jejich účel takové programy na straně serveru generují odezvu, nejčastěji v HTML, pro prohlížení ve webovém prohlížeči.

Pochopte, že model delegování webového serveru je poměrně jednoduchý. Když požadavek přijde na webový server, webový server jednoduše předá požadavek programu, který jej nejlépe zvládne. Webový server neposkytuje žádné funkce nad rámec prostého poskytnutí prostředí, ve kterém může program na straně serveru provádět a předávat generované odpovědi zpět. Program na straně serveru si obvykle zajišťuje takové funkce, jako je zpracování transakcí, připojení k databázi a zasílání zpráv.

Zatímco webový server sám o sobě nemusí podporovat transakce nebo sdružování databázových připojení, může využívat různé strategie pro odolnost proti chybám a škálovatelnost, jako je vyrovnávání zatížení, ukládání do mezipaměti a shlukování - funkce často chybně přiřazené jako funkce vyhrazené pouze pro aplikační servery.

Aplikační server

Pokud jde o aplikační server, podle naší definice aplikační server vystavuje obchodní logiku klientským aplikacím prostřednictvím různých protokolů, případně včetně HTTP. Zatímco webový server se zabývá hlavně zasíláním HTML pro zobrazení ve webovém prohlížeči, aplikační server poskytuje přístup k obchodní logice pro použití klientskými aplikačními programy. Aplikační program může tuto logiku použít stejně, jako by nazýval metodu na objektu (nebo funkci v procedurálním světě).

Mezi takové klienty aplikačních serverů mohou patřit grafická uživatelská rozhraní (grafické uživatelské rozhraní) spuštěná na PC, webovém serveru nebo dokonce na jiných aplikačních serverech. Informace putující tam a zpět mezi aplikačním serverem a jeho klientem se neomezují pouze na jednoduché zobrazení značek. Místo toho je informací logika programu. Vzhledem k tomu, že logika má formu volání dat a metod a nikoli statického kódu HTML, může klient použít exponovanou obchodní logiku, jakkoli chce.

Ve většině případů server vystavuje tuto obchodní logiku prostřednictvím API komponent, jako je například model komponenty EJB (Enterprise JavaBean) na aplikačních serverech J2EE (Java 2 Platform, Enterprise Edition). Aplikační server navíc spravuje své vlastní zdroje. Mezi tyto povinnosti týkající se správy brány patří zabezpečení, zpracování transakcí, sdružování zdrojů a zasílání zpráv. Podobně jako webový server může i aplikační server využívat různé techniky škálovatelnosti a odolnosti proti chybám.

Příklad

Jako příklad zvažte online obchod, který poskytuje informace o cenách a dostupnosti v reálném čase. Web s největší pravděpodobností poskytne formulář, pomocí kterého si můžete vybrat produkt. Když zadáte dotaz, web provede vyhledávání a vrátí výsledky vložené do stránky HTML. Web může tuto funkci implementovat mnoha způsoby. Ukážu vám jeden scénář, který nepoužívá aplikační server, a druhý, který ho používá. Vidět, jak se tyto scénáře liší, vám pomůže vidět funkci aplikačního serveru.

Scénář 1: Webový server bez aplikačního serveru

V prvním scénáři poskytuje funkce online obchodu samotný webový server. Webový server převezme váš požadavek a poté jej předá programu na straně serveru, který je schopen tento požadavek zpracovat. Program na straně serveru vyhledá informace o cenách z databáze nebo plochého souboru. Po načtení program na straně serveru použije informace k formulaci odpovědi HTML a pak ji webový server odešle zpět do vašeho webového prohlížeče.

Stručně řečeno, webový server jednoduše zpracovává požadavky HTTP pomocí odpovědí na stránky HTML.

Scénář 2: Webový server s aplikačním serverem

Scénář 2 se podobá scénáři 1 v tom, že webový server stále deleguje generování odpovědí na skript. Nyní však můžete obchodní logiku pro vyhledávání cen umístit na aplikační server. Díky této změně může skript místo toho, aby věděl, jak vyhledat data a formulovat odpověď, skript jednoduše zavolat vyhledávací službu aplikačního serveru. Skript pak může použít výsledek služby, když skript generuje svou odpověď HTML.

V tomto scénáři slouží aplikační server obchodní logice pro vyhledávání informací o cenách produktu. Tato funkce neříká nic o zobrazení ani o tom, jak musí klient tyto informace použít. Místo toho klient a aplikační server odesílají data tam a zpět. Když klient zavolá vyhledávací službu aplikačního serveru, služba jednoduše vyhledá informace a vrátí je klientovi.

Oddělením cenové logiky od kódu generujícího odpověď HTML se cenová logika mezi aplikacemi stane mnohem více použitelnou. Druhý klient, například pokladna, by také mohl zavolat na stejnou službu jako úředník, který zkontroluje zákazníka. Naproti tomu ve scénáři 1 není služba vyhledávání cen opakovaně použitelná, protože informace jsou vloženy do stránky HTML. Abychom to shrnuli, v modelu scénáře 2 webový server zpracovává požadavky HTTP tak, že odpoví na stránku HTML, zatímco aplikační server obsluhuje logiku aplikace zpracováním požadavků na ceny a dostupnost.

Upozornění

V poslední době webové služby XML stírají hranici mezi aplikačními servery a webovými servery. Předáním užitečného zatížení XML na webový server může webový server nyní zpracovávat data a reagovat stejně jako aplikační servery v minulosti.

Většina aplikačních serverů také obsahuje webový server, což znamená, že můžete považovat webový server za podmnožinu aplikačního serveru. Zatímco aplikační servery obsahují funkce webového serveru, vývojáři zřídka nasazují aplikační servery v této kapacitě. Místo toho v případě potřeby často nasazují samostatné webové servery v tandemu s aplikačními servery. Takové oddělení funkcí pomáhá výkonu (jednoduché webové požadavky nebudou mít vliv na výkon aplikačního serveru), konfiguraci nasazení (vyhrazené webové servery, klastrování atd.) A umožňuje výběr toho nejlepšího produktu.

Tony Sintes je nezávislý konzultant a zakladatel poradenské firmy First Class Consulting, která se specializuje na přemostění různorodých podnikových systémů a školení. Mimo First Class Consulting je Tony aktivním spisovatelem na volné noze a autorem Sams Teach Yourself Object-Oriented Programming in 21 Days (Sams, 2001; ISBN: 0672321092).

Další informace o tomto tématu

  • Další články o aplikačních serverech najdete na webu Aplikační servery Java část JavaWorld 's Aktuální rejstřík

    //www.javaworld.com/channel_content/jw-appserv-index.shtml

  • Chcete více? Viz Java Q&A indexová stránka pro úplný katalog otázek a odpovědí

    //www.javaworld.com/columns/jw-qna-index.shtml

  • Více než 100 užitečných tipů pro prostředí Java od nejlepších odborníků v oboru najdete na webu JavaWorld 's Tipy pro Java indexová stránka

    //www.javaworld.com/columns/jw-tips-index.shtml

  • Další informace o aplikačních serverech a webových serverech najdete v našem Enterprise Java diskuse

    //forums.idg.net/webx?50@@.ee6b80a

  • Přihlásit se JavaWorldje týdně zdarma Enterprise Java e-mailový zpravodaj

    //www.javaworld.com/subscribe

  • Spoustu článků o IT z našich sesterských publikací najdete na .net

Tento příběh: „Aplikační server, webový server: Jaký je rozdíl?“ byl původně publikován společností JavaWorld.

$config[zx-auto] not found$config[zx-overlay] not found