Serwer aplikacji dla Web

Oddzielny serwer aplikacji zapewnia dostateczną wydajność bazodanowych programów w Web.

Oddzielny serwer aplikacji zapewnia dostateczną wydajność bazodanowych programów w Web.

Aplikacje klient/serwer działające w ograniczonym środowisku sieci lokalnej w przedsiębiorstwie oparte są najczęściej na dwuwarstwowym modelu pracy: większość kodu aplikacji znajduje się na stacji klienta, sięgającej do danych obsługiwanych przez serwer bazy danych, działający na oddzielnym komputerze unixowym lub z Windows NT. Zasadniczą wadą takiego rozwiązania jest konieczność instalowania stacji klienta o dużej mocy obliczeniowej, gdyż to na niej dokonuje się obliczeń na danych pobranych z bazy. Powoduje to także duże obciążenie sieci lokalnej, przez którą przesyła się wielkie zbiory danych do wielu stacji klientów.

Z tego powodu większość komercyjnych baz danych oferuje możliwość lokalnego, wstępnego przetworzenia danych przez wywołanie z programu aplikacyjnego zapamiętanych procedur lub automatycznego uruchomienia tzw. trygerów po spełnieniu pewnych warunków przez zawartość pewnych pól tabel danych. Taki model działania odciąża nieco stacje robocze i zmniejsza ruch w sieci, nie zmienia jednak zasadniczo wydajności systemu w razie konieczności dokonywania intensywnych obliczeń na danych z bazy. Cierpi bowiem na tym wydajność serwera bazy danych, powodując zmniejszenie wydajności transakcyjnej systemu. Z tego powodu model dwuwarstwowy z rozbudowanym kodem przetwarzania zlokalizowanym w serwerze bazy danych rzadko jest stosowany w intensywnie eksploatowanych systemach przetwarzania transakcyjnego. Lepiej nadaje się do obsługi programów analitycznych, korzystających z danych w bazie do wykonywania np. obliczeń statystycznych.

Dopiero trójwarstwowy model działania, zawierający tzw. serwer aplikacji, pozwala na stosowanie oddzielnych, mocnych komputerów do prowadzenia obliczeń na danych z bazy bez znacznego obciążania sieci i bez konieczności używania silnych stacji klienckich. Serwer aplikacji działa na specjalnym szybkim komputerze "obliczeniowym", na którym można obecnie zlokalizować większość procedur przetwarzania danych. W systemie może istnieć wiele serwerów aplikacji, przeznaczonych do wykonywania określonych zdań. Najlepszym przykładem programu korzystającego w pełni z możliwości wielu serwerów aplikacji jest system SAP R/3.

Większość współczesnych narzędzi do tworzenia bazodanowych aplikacji klient/serwer pozwala na prawie dowolny podział kodu aplikacji na część uruchamianą na stacji klienta, część przeznaczoną do pracy na serwerze aplikacji oraz na tworzenie zapamiętanych procedur i trygerów do uruchamiania w serwerze bazy danych.

Aplikacje bazodanowe dla Web

Jeżeli aplikacja ma być uruchamiana w sieci WWW, to w zasadzie nie ma możliwości zlokalizowania kodu w komputerze klienta, korzystającego jedynie z przeglądarki WWW. Całość przetwarzania musi wykonywać serwer bazy danych lub oddzielny serwer aplikacji. Jeżeli przetwarzanie wykonuje się w serwerze bazy danych, a tylko wyniki przesyła do Web Serwera, tworzącego z nich dynamiczne strony HTML i obsługującego komunikację z klientami za pomocą protokołu HTTP, następuje zbyt duże obciążenie tego serwera, aby możliwe było obsługiwanie dużej liczby klientów jednocześnie. Tymczasem idea WWW zakłada praktycznie dowolny dostęp do danych przez nie limitowaną liczbę klientów.

Skutecznym rozwiązaniem problemu jest stosowanie architektury z oddzielnym serwerem aplikacji współpracującym z Web Serwerem, który tu może być ograniczony jedynie do obsługiwania protokołu HTTP.

Przetwarzanie transakcji w Web

Wymaga stosowania oddzielnej warstwy oprogramowania zapewniającej bezpieczną obsługę transakcji dokonywanych przez Internet. Protokół HTTP nie zawiera informacji o stanie sesji z klientem: każde żądanie strony HTML jest oddzielną sesją połączeniową, nie przenoszącą informacji z poprzedniej. Tymczasem dla poprawnego zakończenia lub odrzucenia nieudanej transakcji taka informacja jest niezbędna.

Informację o stanie sesji z klientem zapewnia się więc za pomocą oddzielnej warstwy oprogramowania; zwykle jest to monitor transakcji, taki jak Tuxedo (firmy BEA), Encina (Transarc) lub Top End (NCR).

Wbudowanie obsługi transakcji do serwera aplikacji dla Web ułatwia tworzenie aplikacji (nie ma potrzeby zajmować się skomplikowanymi API monitorów transakcji), obniża koszty przedsięwzięcia (monitory transakcji są stosunkowo kosztowne) oraz zwiększa wydajność systemu (nie występuje dodatkowa warstwa programowa aplikacji).


TOP 200