Poslužitelj aplikacija, web poslužitelj: Koja je razlika?

23. kolovoza 2002

P: Koja je razlika između aplikacijskog i web poslužitelja?

O:

Web poslužitelj obrađuje isključivo HTTP zahtjeve, dok aplikacijski poslužitelj poslužuje poslovnu logiku aplikacijskim programima putem bilo kojeg broja protokola.

Ispitajmo detaljnije svaku.

Web poslužitelj

Web poslužitelj obrađuje HTTP protokol. Kad web poslužitelj primi HTTP zahtjev, on odgovara HTTP odgovorom, poput slanja natrag HTML stranice. Za obradu zahtjeva, web poslužitelj može odgovoriti statičnom HTML stranicom ili slikom, poslati preusmjeravanje ili delegirati generiranje dinamičkog odgovora nekom drugom programu kao što su CGI skripte, JSP-ovi (JavaServer Pages), servleti, ASP-ovi (Active Server Pages) ), JavaScripts na strani poslužitelja ili neka druga tehnologija na strani poslužitelja. Bez obzira na svrhu, takvi programi na strani poslužitelja generiraju odgovor, najčešće u HTML-u, za gledanje u web pregledniku.

Shvatite da je model delegiranja web poslužitelja prilično jednostavan. Kada zahtjev dođe na web poslužitelj, web poslužitelj jednostavno prosljeđuje zahtjev programu koji je u stanju da ga riješi. Web poslužitelj ne pruža bilo kakvu funkciju osim jednostavnog pružanja okruženja u kojem program na strani poslužitelja može izvršavati i prosljeđivati ​​generirane odgovore. Program na strani poslužitelja obično sebi nudi takve funkcije kao što su obrada transakcija, povezivanje s bazom podataka i razmjena poruka.

Iako web poslužitelj sam po sebi možda ne podržava transakcije ili spremanje veza baze podataka, može koristiti različite strategije za toleranciju grešaka i skalabilnost, poput uravnoteženja opterećenja, predmemoriranja i klasterizacije - značajke koje su često pogrešno dodijeljene kao značajke rezervirane samo za aplikacijske poslužitelje.

Poslužitelj aplikacija

Što se tiče aplikacijskog poslužitelja, prema našoj definiciji, aplikacijski poslužitelj izlaže poslovnu logiku klijentskim aplikacijama putem različitih protokola, možda uključujući i HTTP. Iako se web poslužitelj uglavnom bavi slanjem HTML-a za prikaz u web pregledniku, aplikacijski poslužitelj omogućuje pristup poslovnoj logici za korištenje od strane klijentskih aplikacijskih programa. Aplikacijski program može koristiti ovu logiku baš kao što bi pozvao metodu na objektu (ili funkciji u proceduralnom svijetu).

Takvi klijenti aplikacijskog poslužitelja mogu uključivati ​​GUI-je (grafičko korisničko sučelje) koji se izvode na računalu, web-poslužitelju ili čak drugim aplikacijskim poslužiteljima. Informacije koje putuju naprijed-natrag između aplikacijskog poslužitelja i njegovog klijenta nisu ograničene na jednostavno označavanje prikaza. Umjesto toga, informacije su programska logika. Budući da logika ima oblik poziva podataka i metoda, a ne statički HTML, klijent može upotrijebiti izloženu poslovnu logiku kako god želi.

U većini slučajeva poslužitelj izlaže ovu poslovnu logiku putem API-ja komponente, kao što je EJB (Enterprise JavaBean) model komponente pronađen na aplikacijskim poslužiteljima J2EE (Java 2 Platform, Enterprise Edition). Štoviše, aplikacijski poslužitelj upravlja vlastitim resursima. Takve dužnosti čuvanja vrata uključuju sigurnost, obradu transakcija, udruživanje resursa i razmjenu poruka. Poput web poslužitelja, poslužitelj aplikacija također može koristiti različite tehnike skalabilnosti i tolerancije pogrešaka.

Primjer

Kao primjer uzmite internetsku trgovinu koja pruža informacije o cijenama i dostupnosti u stvarnom vremenu. Najvjerojatnije će web mjesto pružiti obrazac pomoću kojeg možete odabrati proizvod. Kada pošaljete upit, web mjesto vrši pretraživanje i vraća rezultate ugrađene u HTML stranicu. Web stranica može implementirati ovu funkcionalnost na brojne načine. Pokazat ću vam jedan scenarij koji ne koristi aplikacijski poslužitelj, a drugi koji koristi. Vidjevši kako se ovi scenariji razlikuju, pomoći će vam da vidite funkciju aplikacijskog poslužitelja.

Scenarij 1: Web poslužitelj bez poslužitelja aplikacija

U prvom scenariju, samo web poslužitelj pruža funkcionalnost internetske trgovine. Web poslužitelj uzima vaš zahtjev, a zatim ga prosljeđuje programu na strani poslužitelja koji je sposoban obraditi zahtjev. Program na strani poslužitelja informacije o cijenama traži iz baze podataka ili datoteke. Jednom dohvaćen, program na strani poslužitelja koristi podatke za formuliranje HTML odgovora, a zatim ih web poslužitelj vraća natrag u vaš web preglednik.

Da rezimiramo, web poslužitelj jednostavno obrađuje HTTP zahtjeve reagirajući HTML stranicama.

Scenarij 2: Web poslužitelj s poslužiteljem aplikacija

Scenarij 2 sliči scenariju 1 jer web poslužitelj i dalje delegira generiranje odgovora na skriptu. Međutim, sada možete staviti poslovnu logiku pretraživanja cijena na aplikacijski poslužitelj. S tom promjenom, umjesto da skripta zna kako potražiti podatke i formulirati odgovor, skripta može jednostavno nazvati uslugu pretraživanja aplikacijskog poslužitelja. Skripta tada može koristiti rezultat usluge kada skripta generira svoj HTML odgovor.

U ovom scenariju aplikacijski poslužitelj služi poslovnoj logici za traženje podataka o cijenama proizvoda. Ta funkcionalnost ne govori ništa o prikazu ili načinu na koji klijent mora koristiti informacije. Umjesto toga, klijent i poslužitelj aplikacija šalju podatke naprijed-natrag. Kad klijent nazove uslugu pretraživanja aplikacijskog poslužitelja, usluga jednostavno traži informacije i vraća ih klijentu.

Odvajanjem logike određivanja cijena od HTML koda koji generira odgovor, logika određivanja cijena postaje mnogo višekratna za korištenje među aplikacijama. Drugi klijent, poput blagajne, također bi mogao nazvati istu službu dok službenik odjavljuje kupca. Suprotno tome, u Scenariju 1 usluga pretraživanja cijena nije višekratna, jer su podaci ugrađeni u HTML stranicu. Da rezimiramo, u modelu Scenarija 2, web poslužitelj obrađuje HTTP zahtjeve tako što odgovara HTML stranicom, dok aplikacijski poslužitelj služi aplikacijskoj logici obrađujući zahtjeve za cijenu i dostupnost.

Upozorenja

Nedavno su XML web usluge zamaglile granicu između aplikacijskih poslužitelja i web poslužitelja. Prosljeđujući XML korisni teret web-poslužitelju, web-poslužitelj sada može obrađivati ​​podatke i reagirati kao i poslužitelji aplikacija u prošlosti.

Uz to, većina aplikacijskih poslužitelja sadrži i web poslužitelj, što znači da web poslužitelj možete smatrati podskupom poslužitelja aplikacija. Iako poslužitelji aplikacija sadrže funkcionalnost web poslužitelja, programeri rijetko postavljaju poslužitelje aplikacija u tom svojstvu. Umjesto toga, kad je potrebno, često postavljaju samostalne web poslužitelje u tandemu s poslužiteljima aplikacija. Takvo razdvajanje funkcionalnosti pomaže izvedbi (jednostavni web zahtjevi neće utjecati na performanse poslužitelja aplikacija), konfiguraciji postavljanja (namjenski web poslužitelji, klasteriranje i tako dalje) i omogućuje odabir proizvoda najbolje vrste.

Tony Sintes neovisni je savjetnik i osnivač First Class Consultinga, konzultantske tvrtke koja je specijalizirana za premošćivanje različitih poslovnih sustava i obuke. Izvan prve klase savjetovanja, Tony je aktivni slobodnjak, kao i autor knjige Sams Teach Yourself Objekt-Oriented Programming za 21 dan (Sams, 2001; ISBN: 0672321092).

Saznajte više o ovoj temi

  • Za više članaka o aplikacijskim poslužiteljima, pregledavati Java aplikacijski poslužitelji dio JavaWorld” s Aktuelno Indeks

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

  • Želite više? Potpuni katalog Pitanja potražite na stranici s pitanjima i odgovorima Java

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

  • Za više od 100 uvida Java savjete iz neke od najboljih umova u poslovanju, posjet JavaWorld” s Java Savjet indeks stranica

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

  • Saznajte više o distributerima aplikacija i web poslužiteljima u našoj raspravi o Enterprise Javau

    //forums.idg.net/[email protected]@.ee6b80a

  • Prijavite se za besplatni tjedni bilten Enterprise Java za e-poštu tvrtke JavaWorld

    //www.javaworld.com/subscribe

  • Mnoštvo članaka vezanih uz IT iz naših sestrinskih publikacija pronaći ćete na .net

Ova priča "Poslužitelj aplikacija, Web poslužitelj: u čemu je razlika?" izvorno je objavio JavaWorld.