Serwery aplikacji to specjalne programy umożliwiające korzystanie z programów zainstalowanych na jednym komputerze (serwerze) innym komputerom (klientom). Komputery-klienci nie muszą mieć zainstalowanej apliakcji, z której chcą skorzystać. Wystarczy, że połączą się z serwerem i uruchomią program na nim. Klient wykorzystywany jest jako dodatkowa klawiatura i monitor do serwera.
Komputery-klienci nie muszą być typowymi komputerami PC. Mogą to byc także terminale (tzw. cienkie klienty) wyposażone w wolniejszy procesor, niedużą ilość pamięci RAM i nie muszą posiadac twardych dysków. Koszt zakupu i utrzymania terminala jest znacznie mniejszy niż typowego komputera PC (terminal nie potrzebuje nawet systemu operacyjnego Windows®, może być uruchomiony na znacznie tańszym lub bezpłatnym systemie Linux).
Trójwarstwowa architektura w aplikacjach internetowych
Powszechnie stosowaną architekturą w aplikacjach internetowych jest architektura trójwarstwowa (rys1, załącznik), która wprowadza logiczny; funkcjonalny podział aplikacji na trzy warstwy: warstwę podstawową - System zarządzania bazą danych SZBD, warstwę pośrednią - serwer WWW oraz warstwę końcową - klienta (komputer lub inne urządzenie obsługujące przeglądarkę internetową). Taki podział podyktowany jest wymogami poszczególnych aplikacji, które łączą ze sobą różne protokoły sieciowe i programy. W aplikacjach sieciowych dąży się zwykle do przeniesienia możliwie największego ciężaru aplikacji na stronę serwera, pozostawiając klientowi zazwyczaj jedynie funkcje interfejsu z użytkownikiem. W takiej sytuacji aplikacja jest łatwiejsza w utrzymaniu - większość lub całość kodu ulegającego modyfikacji związanej ze zmianami w bazie, rozbudową lub poprawkami skupiona jest tylko w części serwerowej aplikacji.
Zadania wykonywane przez poszczególne człony architektury są następujące:
System zarządzania bazą danych - SZBD przechowuje dane używane przez system, obsługuje bazę z danymi tworzonymi, usuwanymi, modyfikowanymi i wyszukiwanymi przez użytkowników.
serwer aplikacji - serwer WWW odpowiedzialny za odbieranie żądań od klienta, łączenie się z serwerem baz danych, generowanie stron WWW na podstawie danych pobranych z bazy oraz zwracanie wyniku do klienta.
klient - komputer (lub inne urządzenie obsługujące protokół TCP/IP) wyposażone w przeglądarkę WWW. TCP/IP to efektywny protokół sieciowy, który przekazuje dane między aplikacjami przez Internet i ma mały wpływ na projektowanie bazodanowych aplikacji WWW.
Najczęściej wszystkie człony architektury działają na tej samej maszynie. Jednakże nie ma żadnych przeszkód ku temu, by uruchomić system zarządzania bazą danych na innym komputerze. Tego typu rozwiązanie stosuje się ze względów bezpieczeństwa, z uwagi na możliwość dysponowania pojemnościami dodatkowych dysków oraz z powodu większej wydajności. Jednakże z punktu widzenia programisty pierwsze rozwiązanie nie różni się niczym od drugiego.
Protokoły sieciowe (TCP, IP, HTTP, NNTP, IMAP, POP, SMTP).
TCP (ang. Transmission Control Protocol) - strumieniowy protokół komunikacji między dwoma komputerami. Został stworzony przez Vintona Cerfa i Roberta Kahna. Jest on częścią większej całości określanej jako stos TCP/IP.
IP (ang. Internet Protocol) to protokół komunikacyjny warstwy sieciowej modelu OSI (warstwy internet w modelu TCP/IP). Używany powszechnie w Internecie i sieciach lokalnych. Dane w sieciach IP są wysyłane w formie bloków określanych mianem pakietów.
HTTP (ang. Hypertext Transfer Protocol - protokół przesyłania dokumentów hipertekstowych) to protokół sieci WWW (ang. World Wide Web). Zadaniem stron WWW jest publikowanie informacji - natomiast protokół HTTP właśnie to umożliwia.
NNTP, czyli Network News Tranport Protocol, jak nazwa wskazuje jest protokołem "na którym" działają niusy. Niusy ("news", "Usenet") to ogólnoświatowy system dyskutowania. Z tego protokołu korzysta m.in. Outlook Express.
IMAP (Internet Message Access Protocol) to internetowy protokół pocztowy zaprojektowany jako następca POP3.W przeciwieństwie do POP3, który umożliwia jedynie pobieranie i kasowanie poczty.
POP3 (Post Office Protocol version 3) to protokół internetowy z warstwy aplikacji pozwalający na odbiór poczty elektronicznej ze zdalnego serwera do lokalnego komputera poprzez połączenie TCP/IP.
SMTP (ang. Simple Mail Transfer Protocol) to względnie prosty, tekstowy protokół, w którym określa się co najmniej jednego odbiorcę wiadomości (w większości przypadków weryfikowane jest jego istnienie), a następnie przekazuje treść wiadomości.