Serwery aplikacji - Wydział Matematyki i Informatyki UŁ

Transkrypt

Serwery aplikacji - Wydział Matematyki i Informatyki UŁ
Serwery aplikacji
mgr Radosław Matusik
Wydział Matematyki i Informatyki Uniwersytetu Łódzkiego
www.math.uni.lodz.pl/˜radmat
[email protected]
mgr Radosław Matusik
Serwery aplikacji
Serwer aplikacji
Serwer aplikacji to:
Serwer wchodzący w skład sieci komputerowej, przeznaczony
do zdalnego uruchamiania i użytkowania aplikacji.
Zestaw oprogramowania (platforma) wspierająca programistę
/ developera przy tworzeniu aplikacji. Umożliwia oddzielenie
logiki biznesowej od usług dostarczanych przez producenta
platformy (bezpieczeństwo, zarządzanie transakcjami,
skalowalność, czy też dostęp do baz danych). Do serwerów
aplikacji należą m.in.: JBoss, BEA WebLogic, IBM WebSphere
oraz platforma .NET Microsoftu.
Program działający na zdalnej maszynie obsługujący żądania
kierowane do aplikacji, do której dostęp zapewnia. Użytkownik
łączy się za pośrednictwem przeglądarki internetowej, kieruje
żądanie do wybranej aplikacji, a całość operacji odbywa się po
stronie usługodawcy serwera.
mgr Radosław Matusik
Serwery aplikacji
Architektura WWW
Rysunek: Architektura
mgr Radosław Matusik
Serwery aplikacji
Realizacja aplikacji WWW wymaga zastosowania rozszerzonej
architektury WWW, w skład której wchodzą trzy programowe
warstwy funkcjonalne:
warstwa klienta
warstwa aplikacji
warstwa danych
mgr Radosław Matusik
Serwery aplikacji
Architektura serwerów aplikacji
Kluczowym składnikiem rozszerzonej architektury WWW,
umożliwiającym wykonywanie aplikacji WWW, jest serwer
aplikacji. Serwer aplikacji jest oprogramowaniem o charakterze
systemowym, które odpowiada m.in. za obsługę komunikacji z
warstwą klienta i warstwą danych. Dzięki temu programista
tworzący aplikacje WWW nie musi samodzielnie implementować
kodu obsługi protokołu HTTP (z klientem HTTP) ani kodu
obsługi komunikacji SQL (z serwerem bazy danych).
mgr Radosław Matusik
Serwery aplikacji
1
Warstwa kliencka
aplikacje klienckie
aplety
2
Warstwa webowa
Java Servlet
Java Server Pages
Java Server Faces
3
Warstwa serwerowa
Enterprise Java Beans
4
Wymiana danych pomiędzy warstwami
mgr Radosław Matusik
Serwery aplikacji
Architektura czterowarstwowa
Architektura czterowarstwowa (4-tier architecture) zakłada, że
komponenty aplikacji WWW dzielą się na dwie grupy: komponenty
logiki prezentacji i komponenty logiki biznesowej.
mgr Radosław Matusik
Serwery aplikacji
Architektura Model-View-Controller
Architektura Model-View-Controller zakłada, że komponenty
aplikacji WWW dzielą się na trzy grupy: komponenty sterujące
(controller), komponenty prezentacji (view) i komponenty modelu
(model).
mgr Radosław Matusik
Serwery aplikacji
Rodzaje serwerów aplikacji
Apache Tomcat
GlassFish
Bea Weblogic
ZOPE (Z Object Publishing Environment)
Windows 2003 Server .Net
mgr Radosław Matusik
Serwery aplikacji
Usługi serwerów aplikacji
pule zasobów (na przykład pule bazy danych i pule obiektów)
rozproszone zarządzanie transakcjami
asynchroniczna komunikacja programowa, zazwyczaj poprzez
kolejkowanie wiadomości
dokładnie zsynchronizowany model aktywacji obiektu
automatyczne interfejsy usług sieci Web XML umożliwiające
dostęp do obiektów biznesowych
usługi wykrywania awarii i stanu aplikacji
zintegrowane zabezpieczenia
mgr Radosław Matusik
Serwery aplikacji
Klienci serwerów aplikacji
1
Klient HTML:
statyczny
brak lub minimalna logika
porozumiewa się za pośrednictwem HTTP
2
Klient Java
aplet java+HTML
własna logika
porozumiewa się za pośrednictwem IIOP lub JRMI
mgr Radosław Matusik
Serwery aplikacji
Zalety serwerów aplikacji
niski koszt utrzymania klienta
obsługa standardów otwartych
szerokie możliwości generowania i publikowania informacji
mgr Radosław Matusik
Serwery aplikacji
Wymagania stawiane serwerom aplikacji
integralność transakcji
skalowalność, wydajność
stabilność
otwartość (w sensie obsługi standardów)
bezpieczeństwo
ochrona inwestycji
mgr Radosław Matusik
Serwery aplikacji
Cechy serwerów aplikacji
umożliwia tworzenie i obsługę aplikacji napisanych m.in. w C,
C++, Javie
obsługuje wydajnie transakcyjne relacyjne bazy danych, jest
niezależny od producenta bazy
oferuje dużą skalowalność (obsługa klastrów)
zapewnia zintegrowane, zcentralizowane zarządzanie
obsługuje standardy: HTTP, HTML, CGI, NSAPI (Netscape),
ISAPI (Microsoft), Java
zawiera środowisko do tworzenia, testowania, wdrażania i
zarządzania aplikacjami
mgr Radosław Matusik
Serwery aplikacji
Pliki konfiguracyjne w katalogu conf
server.xml
tomcat-users.xml
web.xml
mgr Radosław Matusik
Serwery aplikacji
Pliki konfiguracyjne w katalogu logs
catalina.2016-02-20.log
localhost access log.2016-02-20
mgr Radosław Matusik
Serwery aplikacji
Java Enterprise Edition
Java Enterprise Edition (w skrócie J EE) jest standardem tworzenia
zorientowanych na usługi aplikacji biznesowych (Service Oriented
Architecture), utworzonym na bazie języka Java i technologii Java
2 Standard Edition. W praktyce jest to pewien zbiór (pakiet)
różnorodnych technologii i frameworków, który umożliwia
tworzenie aplikacji.
mgr Radosław Matusik
Serwery aplikacji
Aplikacje webowe korzystają z grupy tych samych elementów, z
których korzystają aplikacje biznesowe. Jednak formalnie aplikacje
webowe powinny korzystać jedynie z:
JavaServer Faces
JavaServer Pages
JavaServer Pages Standard Tag Library
Java Servlet
Jednym z najważniejszych elementów, które odróżniają aplikacje J
EE od innych, jest konieczność ich uruchamiania na specjalnych
serwerach aplikacji. Do aplikacji biznesowych często
wykorzystywany jest serwer GlassFish, który oczywiście obsługuje
także technologię EJB.
mgr Radosław Matusik
Serwery aplikacji
Układ katalogów projektu w Netbeansie
Struktura stworzonego za pomocą Netbeansa projektu jest
następująca:
1 Web Pages
META-INF
WEB-INF
2
Source Packages
3
Libraries
mgr Radosław Matusik
Serwery aplikacji
Serwlety
Serwlet w Javie jest klasą, która rozszerza możliwości serwera
aplikacji. Praktycznie jedynym wymaganiem jest, aby serwlet
działał w trybie żądanie - odpowiedź. Serwlet wykonuje się w
środowisku serwera WWW (aplikacji) i nie może funkcjonować
autonomicznie. Serwer WWW musi zapewniać obsługę serwletów
Java.
mgr Radosław Matusik
Serwery aplikacji
Hierarchia dziedziczenia
Interfejs Servlet
Abstrakcyjna klasa GenericServlet
Klasa HttpServlet
mgr Radosław Matusik
Serwery aplikacji
Metody do*
doGet()
doPost()
doHead()
doTrace()
doPut()
doDelete()
doOptions()
doConnect()
mgr Radosław Matusik
Serwery aplikacji
Interfejs HttpServletRequest
Najbardziej istotne metody interfejsu HttpServletRequest:
Object getParameter(String nazwa)
Enumeration<String> getParameterNames()
String getRemoteUser()
Cookie[] getCookies()
String getHeader(String nazwa)
mgr Radosław Matusik
Serwery aplikacji
int getIntHeader(String nazwa)
long getDataHeader(String nazwa)
String getContextPath()
String getServletPath()
String getPathInfo()
mgr Radosław Matusik
Serwery aplikacji
Interfejs HttpServletResponse
Najbardziej istotne operacje, które będziemy wykonywać
przesyłając odpowiedź klientowi (dzięki interfejsowi
HttpServletRequest):
przesyłanie odpowiedzi w postaci danych tekstowych lub
binarnych
tworzenie i przesyłanie ciasteczek
dodawanie do odpowiedzi dowolnych nagłówków
przekierowywanie żadań lub przesyłanie kodów błędu
mgr Radosław Matusik
Serwery aplikacji
Życie serwletu
W chwili uruchomienia aplikacji serwer aplikacji podejmuje
następujące działania:
załadowanie klasy serwletu
utworzenie instancji serwletu
wywołanie metody init()
wywołanie metody service()
mgr Radosław Matusik
Serwery aplikacji
Struktura serwletu
protected void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
processRequest(request, response);
}
mgr Radosław Matusik
Serwery aplikacji
protected void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
processRequest(request, response);
}
public String getServletInfo()
{
return "Short description";
}
mgr Radosław Matusik
Serwery aplikacji
Zalety i wady serwletu
1
Zalety:
dostępne funkcje do obsługi typowych czynności
mechanizm stosunkowo ustandaryzowany
mechanizm uniwersalny i łatwo rozszerzalny
stosunkowo bezpieczne
2
Wady:
w bardziej złożonych środowiskach wydajność może
pozostawiać wiele do życzenia (wymagania na RAM, garbage
collection)
występują istotne różnice pomiędzy różnymi środowiskami
bazującymi na serwletach (np. por. - Tomcat, Oracle App.
Server, IBM Websphere)
mgr Radosław Matusik
Serwery aplikacji

Podobne dokumenty