2012-10-24 28 views
27

Czytam gdzieś, że aplikacja internetowa składa się z serwera WWW, serwera aplikacji i serwera bazy danych. Jaka jest różnica między tymi trzema?Różnica między serwerem WWW, serwerem aplikacji i serwerem bazy danych


Poprosiłem to pytanie, bo pamiętam, kiedy gospodarzem strony internetowej, wszystko miałam https logowanie do panelu sterowania na stronie internetowej, w której umieściłem wszystkie moje pliki w htdocs folderu. Nie było trzech oddzielnych rzeczy, takich jak serwer WWW, serwer aplikacji i serwer bazy danych.

Odpowiedz

26

Web Server -

serwera, na którym strona się znajduje. Ten serwer zainstalowano serwery internetowe, takie jak IIS, Apache, itp

Application Server -

serwera, na którym twoi tworzone aplikacje, które wykorzystują bazę danych, serwis internetowy, itp ten serwer aplikacji będzie gospodarzem warstwy biznesowej (zawinięte z usług internetowych), zaplanowane zadania, usługi okien itd

Database Server -

serwer bazy danych będzie mieć swój jeden lub m ruda bazie gospodarzem takich jak Oracle, SQL Server, MySQL, itp


Jeśli odnosimy się do htdocs to jest serwer WWW. Baza danych, której używasz, musi być zainstalowana na innym serwerze, którym jest serwer bazy danych. Serwer aplikacji może być również zainstalowany na tym samym serwerze internetowym.

enter image description here

Reference - Deployment Patterns

+0

Posiadała również bazę danych (MySQL). – OneMoreError

+0

'baza danych oraz MySQL'? MySQL to baza danych. Wierzę, że masz serwer sieci Web i bazę danych na tym samym komputerze. Możesz je również mieć na innym komputerze. –

+1

Przeczytaj następujący artykuł na temat usługi MSDN - http://msdn.microsoft.com/en-us/library/ee658120.aspx –

-4

Web Server: Serwer, na którym wszystkie żądania HTTP są obsługiwane jest znana jako serwer WWW gdzie jako Application Server: Łącznie z usług serwera WWW tj odpowiadać do żądań HTTP odpowiada również na logikę biznesową, a więc nie ogranicza się tylko do protokołu HTTP Np. serwery gier, pokoje rozmów itp.

17

To często wprowadza zamieszanie.

Po pierwsze - "serwer" może odnosić się do rzeczy fizycznych (komputer) lub do rzeczy logicznych (oprogramowania).

Oprogramowanie sieciowe, aplikacji i serwera bazy danych może działać na tym samym serwerze fizycznym lub być rozproszone na wielu fizycznych maszynach. Większość dużych witryn ma wiele maszyn; najbardziej "konsumenckie" pakiety hostingowe działają na jednym pudełku.

Logiczna separacja jest następująca.

Serwer internetowy obsługuje żądania HTTP (S) i przekazuje te żądania do "modułów obsługi". Posiadają wbudowane procedury obsługi żądań plików - strony HTML, obrazy, CSS, JavaScript itd. Możesz dodać dodatkowe procedury obsługi dla żądań, których nie mogą zarządzać - np. dynamiczne strony dostarczane przez serwer aplikacji. Serwery WWW implementują specyfikację HTTP i wiedzą, jak zarządzać nagłówkami żądań i odpowiedzi.

Serwer aplikacji obsługuje żądania tworzenia stron dynamicznych. Zamiast więc wyświetlać stronę HTML przechowywaną na twardym dysku, dynamicznie generują kod HTML wysyłany do użytkownika końcowego. Najczęstszymi językami/strukturami tego są Java/JSP, .Net (aspx), PHP, Ruby (na Railsach lub nie), Python itp. W większości przypadków to oprogramowanie serwera aplikacji działa na tym samym fizycznym serwerze, co Internet. serwer.

Oprogramowanie serwera bazy danych to miejsce, w którym aplikacja przechowuje uporządkowane informacje. Zwykle oznacza to niestandardowe oprogramowanie, które pozwala serwerowi aplikacji zadawać pytania typu "ile elementów ma użytkownik x w swoim koszyku?", Używając języka programowania. Przykładami są MySQL, SQL Server, Oracle (wszystkie "relacyjne bazy danych") oraz MongoDB, Redis i CouchDB (rozwiązania "NoSQL").

Oprogramowanie bazy danych może działać na tym samym komputerze fizycznym, co serwer WWW, ale zazwyczaj jest to pierwsza rzecz, która jest hostowana na oddzielnym fizycznym sprzęcie, gdy strona wymaga skalowania.