pobierz plik referatu

Transkrypt

pobierz plik referatu
Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006
Rozdział 10
w
Porównanie technologii budowy aplikacji
internetowych dla bazy danych Oracle 9i
w
da
.b
w
Streszczenie. Projektanci i programiści aplikacji internetowych dla baz danych Oracle mogą wykorzystać wiele różnych rozwiązań. Są to rozwiązania
dedykowane dla platformy Oracle oparte na języku PL/SQL, rozwiązania
wykorzystujące uniwersalne technologie Java, które są silnie wspierane przez
narzędzia i aplikacje Oracle, jak również rozwiązania oparte na językach
skryptowych np. PHP. Celem pracy jest przedstawienie zalet i ograniczeń poszczególnych rozwiązań oraz porównanie ich efektywności we współpracy
z bazą danych Oracle 9i.
1 Wprowadzenie
pl
s.
Dynamiczny rozwój Internetu oraz technologii z nim związanych pociąga za sobą szybki
rozwój aplikacji udostępnianych za pomocą przeglądarki internetowej. Początkowo były to
jedynie statyczne strony zawierające ogólne informacje. Z czasem aplikacje internetowe
przekształciły się w złożone systemy oferujące użytkownikom dużą liczbę funkcji
i dynamicznie generowaną zawartość. Z tego powodu duże znaczenie dla funkcjonowania
aplikacji internetowych mają technologie służące do dynamicznego generowania stron
WWW (najczęściej w postaci dokumentów HTML). Bardzo często do generacji dynamicznych stron wykorzystywane są dane zapisane w bazie danych. Projektanci aplikacji internetowych dla baz danych np. Oracle mają w tym zakresie do dyspozycji wiele różnych technologii, z których każda posiada swoje silne i słabe strony. Należą do nich technologie
bazujące na języku Java (serwlety i JSP-Java Server Pages) oraz technologie oparte o procedury składowane w PL/SQL (PSP-PL/SQL Server Pages). Interesującą alternatywę,
przynajmniej w zakresie prostych aplikacji, stanowią języki skryptowe takie jak PHP czy
Perl. Celem niniejszego rozdziału, którego inspiracją była praca [1] jest przedstawienie
wspomnianych wyżej technologii, porównanie ich możliwości i wydajności oraz krótkie
omówienie zagadnień ich współpracy z bazą danych Oracle 9i.
Paweł Sitek, Jarosław Wikarek: Politechnika Świętokrzyska,
Samodzielny Zakład Systemów Sterownia i Zarządzania, Al. Tysiąclecia Państwa Polskiego 7, 25-3141 Kielce, Polska
email:{sitek, j.wikarek}@tu.kielce.pl
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006
Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006
P. Sitek, J. Wikarek
2 Architektura aplikacji internetowych
w
Do logicznego podziału aplikacji na części, używa się w informatyce pojęcia warstw. Występuje ono również przy opisie architektury klient – serwer, czyli architektury dwuwarstwowej. Z pojęciem warstw ściśle wiąże się pojęcie logiki aplikacji a także termin reguły
biznesowe. Pierwszą zauważalną wadą systemów klient-serwer jest konieczność wykorzystywania do roli klientów coraz to silniejszych maszyn. Choć same reguły aplikacji mogą
pozostać niezmienione to w zakresie prezentacji i wizualizacji danych zmiany postępują
w szybkim tempie. Kolejnym problemem są koszty administracji i utrzymania takiego
oprogramowania, które rosną proporcjonalnie do liczby stanowisk klienckich. Ograniczenia
te są szczególnie widoczne przy budowaniu aplikacji internetowych. Aplikacje takie charakteryzują się pracą w środowiskach heterogenicznych i rozproszonych.
da
.b
w
w
Rys. 1. Architektura trójwarstwowa
pl
s.
Dodatkowo wymaga się, aby były to rozwiązania skalowalne, wydajne i zapewniające
bezpieczeństwo przesyłanych danych oraz łatwo zarządzane. Rozwiązaniem jest zastosowanie architektury trójwarstwowej (Rys.1). Podejście wielowarstwowe znacząco rozszerza
możliwości architektury klient – serwer. Do najważniejszych jego zalet należy:
− Zmniejszenie natężenia ruchu w sieci, poprzez redukcję wymian danych pomiędzy
serwerem bazy danych, a klientem (warstwa pośrednia), co prawda równoważone
przez wzmożoną konwersację na linii przeglądarka – serwer WWW.
− Prosty sposób wykorzystania i modyfikacji aplikacji. Instalacja aplikacji ogranicza
się jedynie do jej wdrożenia na serwerze aplikacji lub zwykłym serwerze WWW.
− Możliwość dystrybucji warstwy pośredniej na wiele serwerów wpływa na skalowalność systemu oraz stwarza możliwość wykorzystania baz danych różnych producentów.
− Dzięki zastosowaniu standardów komunikacji pomiędzy warstwami takich jak RPC
(Remote Procedures Call), czyli zdalne wywoływanie procedur, klient ma możliwość
wywoływania serwisów lub komponentów warstwy pośredniej pochodzących z różnych źródeł.
W dalszej części rozdziału zostaną bardziej szczegółowo przedstawione główne technologie budowy trójwarstwowych aplikacji internetowych w środowisku Oracle z uwzględnieniem zagadnień odzysku połączeń, wsparcia dla technologii XML oraz zarządzania
sesją.
98
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006
Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006
Porównanie technologii budowy aplikacji internetowych dla bazy danych Oracle 9i
3 PL/SQL i PSP
w
Aplikacje internetowe w PL/SQL działają na zasadzie wywoływania poprzez serwer
WWW procedur składowanych w bazie danych, generujących dokumenty za pomocą specjalnie do tego celu przeznaczonych pakietów. Podstawowe znaczenie mają procedury
htp.print i htp.prn wysyłające dane przekazane im jako argument do przeglądarki (pierwsza
z procedur na końcu dodaje znak nowej linii). Ponadto, dostępne są procedury generujące
poszczególne znaczniki HTML oraz różne procedury użytkowe np. wyświetlająca zawartość tabeli. Technologia PL/SQL jest specyficzna dla platformy Oracle. Aplikacje internetowe zaimplementowane jako procedury składowane PL/SQL poza serwerem aplikacji
Oracle9iAS (w każdym z typów instalacji), mogą być uruchamiane również poprzez Oracle
HTTP Server dostarczany wraz z serwerem bazy danych Oracle9i. Elementem serwera
WWW (Oracle HTTP Server), za pomocą, którego można wywoływać procedury magazynowe bazy danych Oracle jest mod_plsql. Po otrzymaniu żądania, wymagającego uruchomienia mod_plsql, ustanawiane jest połączenie z bazą danych i zostaje wywołana odpowiednia procedura składowana. Przekazywane dane mogą być zawarte zarówno w adresie
URL (Uniform Resource Locators) jak i pochodzić z formularza HTML3 PL/SQL i PSP.
Wygodnym sposobem budowy procedur składowanych generujących tekstowe strony
WWW (najczęściej w języku HTML) jest przygotowywanie ich w postaci dokumentów
PL/SQL Server Pages (PSP). Dokument PSP ma postać dokumentu HTML, w którym za
pomocą specjalnych znaczników zagnieżdżone są fragmenty kodu w PL/SQL generujące
dynamiczne części dokumentu, najczęściej w oparciu o dane pobrane z bazy danych
Połączenie się z bazą danych jest operacją czasochłonną, moduł serwera WWW
mod_plsql odpowiedzialny za aplikacje PL/SQL domyślnie buforuje połączenia z bazą
danych na poziomie procesów serwera obsługujących żądania użytkowników. Jeśli żądanie
wywołania procedury trafi do procesu, który już posiada wcześniej otwarte połączenie z
bazą danych, którego wymaga dana procedura, nie ma konieczności nawiązywania nowego
połączenia. Należy w tym miejscu podkreślić, że tego typu mechanizmy „odzysku” połączeń są również wykorzystywane w innych technologiach. Różne są szczegóły implementacyjne związane z buforowaniem połączeń, niezmienne pozostają jednak zalety tego mechanizmu
i niebezpieczeństwa związane z jego stosowaniem. Niezaprzeczalną zaletą jest redukcja
czasu potrzebnego na połączenie z bazą danych, szczególnie widoczna, gdy wszyscy użytkownicy korzystają z tego samego konta w bazie. Niebezpieczeństwa wiążą się z potencjalnie dużą liczbą otwartych połączeń z bazą danych ze strony serwera WWW (szczególnie,
gdy różni użytkownicy logują się na różne konta w bazie) - należy brać pod uwagę możliwości serwera bazy danych i odpowiednio dobrać maksymalną liczbę współbieżnych procesów serwera WWW.
W PL/SQL i PSP do wykonywania działań oraz konwersji w formacie XML niezbędnych rozwiązań dostarczają trzy pakiety DBMS_XMLQUERY, DBMS_XMLSLAVE i
XMLGEN.
Śledzenie stanu aplikacji w programach PL/SQL działających w środowisku WWW, odbywa się za pomocą zmiennych cookies. Pakiet owa_cookie dostarcza podstawowych mechanizmów do ich obsługi.
da
.b
w
w
pl
s.
3.1 Cechy technologii PL/SQL i PSP
−
−
Mechanizm PSP jest sposobem wykorzystania języka PL/SQL w środowisku WWW.
Technologia jest dość prosta i efektywna, składnia przypomina języki Pascal i Ada.
99
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006
Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006
P. Sitek, J. Wikarek
−
−
−
−
w
Możliwość wykorzystania zaawansowanych funkcji systemu i bezpośrednia współpraca z motorem bazodanowym Oracle, łatwość zagnieżdżania poleceń SQL.
Dobre wsparcie dla XML – a.
Wadą jest brak przenaszalności i ograniczona możliwość integracji z innymi rozwiązaniami programistycznymi.
Częsta konieczność wykorzystywania niskopoziomowych mechanizmów np.
w przypadku protokołu SMTP, lepszym rozwiązaniem wydaje się być składowana
procedura Java (obecność doskonałej biblioteki Java Mail) i dostęp do niej za pomocą interfejsu PL/SQL.
w
4 JSP i serwlety
da
.b
w
Serwlety i strony JSP (Java Server Pages) to aplikacje, uruchamiane po stronie serwera
WWW, dynamicznie generujące strony WWW. Serwlety jako odpowiedź technologii Java
na programy CGI (Common Gateway Interface) stanowią warstwę pośrednią pomiędzy
żądaniami przesyłanymi przez przeglądarkę WWW lub inny program używający protokołu
HTTP a bazami danych bądź aplikacjami wykonywanymi na serwerze. Są szybciej wykonywane, gdyż wywołanie serwletu odbywa się poprzez uruchomienie nowego wątku a nie
procesu także kod wykonywalny jest ładowany do serwera tylko raz, gdy po raz pierwszy
żądana jest usługa oferowana przez dany serwlet lub automatycznie, gdy zostanie on zmieniony. Potem serwlet pozostaje w pamięci serwera i może równolegle obsługiwać wiele
zapytań z możliwością komunikacji pomiędzy nimi.
Technologia Java Server Pages pozwala na mieszanie zwykłego, statycznego kodu
HTML z informacjami generowanymi dynamicznie przez serwlety. Dzięki temu umożliwia
oddzielenie obu fragmentów stron, części odpowiedzialnej za prezentację od logiki aplikacji. Serwlety i JSP stanowią część technologii Java 2 Platform Enterprise Edition (J2EE),
platformy dla złożonych aplikacji działających w oparciu o architekturę trójwarstwową,
odpowiadając za prezentację danych i interakcję z użytkownikiem. Dostęp do baz danych
z serwletów i JSP, podobnie jak z innych aplikacji Java, realizowany jest w oparciu o standardy JDBC i SQLJ. W technologii JSP standardowo otwierane jest nowe połączenie
z bazą danych przy każdym odwołaniu do dokumentu. Można również wykorzystać pulę
połączeń jako komponent JavaBean o zasięgu całej aplikacji (wspólny dla wszystkich dokumentów JSP uruchamianych na serwerze w ramach danego kontekstu aplikacji). Dzięki
wykorzystaniu tego mechanizmu nowe połączenie jest fizycznie otwierane tylko, gdy
w puli nie ma wolnego połączenia o takich samych parametrach.
W 3 przedstawiono pakiety PL/SQL do obsługi XML m.in. DBMS_XMLQuery. W rzeczywistości jest to jedynie interfejs bibloteki języka Java OracleXMLQuery należącej do
pakietu XSU (XML SQL Utility for Java). Stąd praca z dokumentami XML z poziomu JSP
jest elastyczniejsza i bardziej wydajna (pomijany jest, bowiem jeden interfejs programowy).
Z każdym żądaniem automatycznie skojarzona jest sesja, do której odwołanie następuje
poprzez obiekt session.
pl
s.
4.1 Cechy technologii JSP
−
JSP to sposób wykorzystania technologii Java w środowisku WWW.
100
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006
Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006
Porównanie technologii budowy aplikacji internetowych dla bazy danych Oracle 9i
−
−
−
w
−
−
−
−
−
w
W koncepcji i sposobie działania identyczne z serwletami, ale dzięki odseparowaniu
warstwy logiki od prezentacji znacznie bardziej efektywne.
Doskonała przenaszalność.
Zaawansowane sposoby dostępu do bazy danych JDBC, SQLJ i zarządzania transakcjami.
Możliwość wdrażania na platformie J2EE jako komponent webowy.
Elastyczny mechanizm zarządzania sesją.
Bardzo dobra możliwość współpracy z technologią XML.
Wręcz nieograniczona rozszerzalność poprzez użycie JavaBeans czy możliwość definiowania własnych tagów.
Konieczność bardzo dobrej znajomości metodologii obiektowej oraz samej Javy
i jej mechanizmów (wyjątki, strumienie)
Stosunkowo długi czas etapu translacji do serwletu i duża ilość kodu potrzebnego do
jego stworzenia, co jest wada przy budowie prostych aplikacji.
−
w
5 PHP
da
.b
PHP (PHP: Hypertext Preprocessor) jest językiem skryptowym ogólnego przeznaczenia,
rozwijanym na zasadach Open Source, szczególnie popularnym w środowisku Linux, ale
dostępnym również na innych platformach np. Microsoft Windows. PHP został opracowany z myślą o aplikacjach WWW, dlatego też do ich tworzenia szczególnie dobrze się nadaje. Najczęściej PHP jest zagnieżdżany w dokumentach HTML. Za jedną z najmocniejszych
stron PHP uważane jest wsparcie dla około 20 systemów zarządzania bazami danych poprzez zestawy funkcji bibliotecznych dedykowanych dla poszczególnych systemów (funkcje dla Oracle działają w oparciu o interfejs OCI). Obecnie dostępna jest już piąta odsłona
tej technologii. PHP5 jest najlepszą wersją języka programowania PHP a to dzięki mechanizmowi Zend 2, nowemu modelowi programowania obiektowego i obecności wielu nowych funkcji. Choć sam język budzi spolaryzowane emocje, jego popularność zaskakuje.
Jak podaje serwis Netcraft PHP jest zainstalowany na 33% procent domen w sieci i procent
ten stale rośnie. Rzeczywista siła PHP wyrasta z faktu, że z PHP możliwy jest bezproblemowy dostęp do wielu innych modułów i bibliotek. W najnowszym serwerze aplikacji
Oracle10gAS moduł ten jest zawarty w standardowej instalacji.
PHP oferuje programowy sposób korzystania z mechanizmu buforowania połączeń z bazą danych poprzez ustanowienie, tzw. stałego połączenia (ang. persistent connection), które
jest buforowane na poziomie serwera WWW. Połączenie to może być otwarte i dzielone
jedynie wewnątrz jednego procesu a nie pomiędzy różnymi procesami. Tym samym nie
możemy tu mówić o zarządzaniu pulą połączeń w takim znaczeniu w jakim zostało to rozwiązane w JSP i ogólnie w Javie. Aby włączyć ten mechanizm, poprzez żądanie nawiązania
stałego połączenia, należałoby zastąpić wywołanie funkcji OCINLogon przez OCIPLogon.
Funkcje obsługi języka XML zostały na nowo przepisane i wbudowane bezpośrednio w
jądro aplikacji w PHP 5. Jednocześnie, oprócz modelu DOM, udostępniono bardzo wygodne API do zarządzania dokumentami w tym języku zwane SimpleXML. Aby móc z niego
skorzystać z modelu DOM należy skompilować źródła PHP z parametrem -with - dom
(Unix/Linux) lub dołączyć bibliotekę php_domxml.dll kopiując do katalogu wskazywanego
przez dyrektywę exetension_dir pliku konfiguracyjnego php.ini. XML definiuje jedynie
treść dokumentu dlatego konieczne jest użycie XSL, odpowiednika kaskadowych arkuszy
stylów języka HTML. We wszystkich dystrybucjach PHP na platformę Windows powyżej
4.1 obsługa języka XSL jest włączona domyślnie.
pl
s.
101
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006
Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006
P. Sitek, J. Wikarek
w
Od wersji czwartej, PHP posiada mechanizm zarządzania sesjami. Wszystkie nazwy
funkcji obsługi sesji rozpoczynają się od sesion_.
Wykorzystując sesje w PHP należy wykonać następujące podstawowe operacje:
− Rozpoczęcie sesji za pomocą session_start.
− Zarejestrowanie nazw zmiennych sesji za pomocą session_register.
− Użycie zmiennych sesji.
System zarządzania sesjami w PHP jest niezwykle elastyczny. Programista może zmieniać jego podstawowy mechanizm działania: cookies albo identyfikator sesji a także ma
kontrolę nad sposobem generowania wartości SID (w tym wypadku należy zadbać o jego
unikalność) i sposobem jego przechowywania (serwer lub baza danych).
w
5.1 Cechy technologii PHP
−
da
.b
−
−
Otwarty kod źródłowy i bezpłatne oprogramowanie (także narzędzia deweloperskie).
Elastyczna i wydajna składnia przypominająca C, grep, awk.
Bardzo dobre mechanizmy zarządzania sesją i buforowania połączeń z bazą danych.
Obsługa niemal wszystkich standardów XML – a (modele DOM, SAX i PRAX).
Duża rozszerzalność technologii poprzez bezpłatne biblioteki, możliwość integracji z
Javą i wywoływania usług internetowych (ang. Web Services).
Brak wsparcia ze strony Oracle w bazie danych Oracle9i i serwerze aplikacji Oracle9iAS (dopiero Oracle10gAS).
Niestabilne działanie na platformie Windows.
Brak jednolitego interfejsu dostępu do bazy danych (mapowania baz danych) stąd
ograniczona przenaszalność.
w
−
−
−
−
−
6 Analiza wydajnościowa omawianych technologii
pl
s.
Do przeprowadzenia testów zbudowano przykładową aplikację do obsługi biblioteki publicznej [2]. Środowisko budowy aplikacji testowej stanowi baza danych Oracle9i. Zaimplementowana aplikacja jest jedynie szkieletem właściwego systemu. Prezentowany "System zarządzania biblioteką" posiada podstawową funkcjonalność w zakresie wyszukiwania
tytułów, zarządzania kontami użytkowników i czynności administracyjnych. Taki przykład
pozwala w prosty sposób przedstawić każde środowisko budowy aplikacji internetowych
dostępne na platformie Oracle9i wraz z jego najważniejszymi zaletami i ograniczeniami.
Do analizy wydajnościowej wybrano trzy funkcjonalności powyższej aplikacji realizowane przez trzy odrębne skrypty. Pierwszym było pobranie strony tytułowej (Rys.2), następnie znalezienie danych o pozycji o wybranym numerze ISBN (Rys.3 - informacje zapisane wielu tabelach) oraz pobranie określonej liczby wierszy z tabeli wypożyczenia. Do
implementacji każdej z nich zostały napisane odpowiednie skrypty w technologii PSP, JSP
i PHP (skrypty: strona.psp, strona.php, strona.jsp, moreinfo.psp, moreinfo.php, moreinfo.jsp, select_w.psp, select_w.php, select_w.jsp). Środowisko, w którym dokonano testów
składało się z serwera bazy danych (2xPentium III 850 MHz, Windows NT), serwera aplikacji (Pentium IV 1,4 GHz, Windows XP) stacji klienta (Pentium IV 1,6 GHz, Windows
XP) i posiadało architekturę jak na rys. 4. Dokonano serii testów przy różnych modelach
obciążenia. Do symulacji obciążenia i pomiarów wykorzystano oprogramowanie openload
dostępne pod adresem [3]. Testów dokonano przy różnych modelach obciążenia, które
różniły się m.in. liczbą jednoczesnych żądań użytkowników obsługi przez serwer. Wyniki
102
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006
Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006
Porównanie technologii budowy aplikacji internetowych dla bazy danych Oracle 9i
przedstawiono na rysunkach od 5 do 7 oraz w tabeli I (TPS - liczba transakcji w ciągu sekundy, AVT - średni czas odpowiedzi, MAXT - maksymalny czas odpowiedzi, user - liczba
jednocześnie konkurujących użytkowników, bop – bez „odzyskiwania” połączeń). Każdy
eksperyment składał się z obsługi ok. 2000 żądań.
w
da
.b
w
w
Rys. 2. Widok strony głównej przykładowej aplikacji testowej (skrypty strona)
pl
s.
Rys. 3. Widok strony udostępniającej dane o pozycji bibliotecznej posiadającej określony
ISBN (skrypty moreinf)
103
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006
Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006
P. Sitek, J. Wikarek
LAN
WAN
ADRES URL
POLECENIE
w
ROUTER
DANE
STRONA HTML
w
w
KLIENT
(PZEGLĄDARKA
INTERNETOWA)
SERWER ORACLE 9i
SERWER WWW (APACHE)
Rys. 4. Środowisko przeprowadzania testów przykładowej aplikacji testowej
90
80
70
50
40
30
20
0
1
JSP
PHP
PSP
da
10
.b
60
2
3
Rys. 5. Wykres przedstawiający uzyskaną średnią liczbę obsługiwanych żądań na sekundę
dla skryptu moreinf (z odzyskiem połączeń) przy następujących obciążeniach: 1-50 użytkowników, 2-75 użytkowników, 3-100 użytkowników
p
s.
70
60
50
JSP
40
PHP
30
PSP
l
20
10
0
1
2
3
Rys. 6. Wykres przedstawiający uzyskaną średnią liczbę obsługiwanych żądań na sekundę
dla skryptu selekt_w (z odzyskiem połączeń) przy obciążeniu 50 użytkowników, 1-pobranie
10 wierszy, 2-pobranie 100 wierszy, 3-pobranie 1000 wierszy
104
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006
Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006
Porównanie technologii budowy aplikacji internetowych dla bazy danych Oracle 9i
25
20
JSP
15
PHP
10
PSP
0
1
2
3
w
w
w
5
Rys. 7. Wykres przedstawiający uzyskaną średnią liczbę obsługiwanych żądań na sekundę
dla skryptu selekt_w (z odzyskiem połączeń) przy pobraniu 100 wierszy, 1-50 użytkowników, 2-75 użytkowników, 3-100 użytkowników
Tabela 1. Wyniki testów
skrypt (User)
PHP
TPS/AVT/MAXT
78,41/0,616/0,853
72,72/0,984/10,325
69,13/1,059/30,790
54,96/0,886/1,294
52,73/1,334/33,083
52,52/1,382/31,212
109,51/0,688/31,179
47,90/1,57/7,002
37,73/1,323/19,01
16,36/0,608/1,944
14,84/0,668/1,247
16,05/2,997/4,320
14,20/3,413/5,207
13,20/5,73/83,889
4,77/9,914/12,715
PSP
TPS/AVT/MAXT
63,74/0,759/1,956
60/1,26/11,48
45,45/1,769/32,781
xxxxxx
xxxxxx
xxxxxx
56,751,624/61,712
57,20/0,765/0,991
xxxxxx
23,36/0,419/2,573
xxxxxx
22,99/1,717/40,851
xxxxxx
23,68/3,096/24,994
2,38/20,294/81,931
pl
JSP
TPS/AVT/MAXT
48,67/1,015/2,990
48,11/1,469/26,250
47,95/1,51/27,740
12,96/3,796/4,143
13,22/4,86/9,75
12,38/5,388/62,53
61,41/1.154/35,544
31,54/1,554/21,86
12,03/4,057/4,558
8,59/1,153/2,088
6,33/1,567/3,136
8,69/5,582/7,214
6,52/7,466/10,053
8,33/8,096/52,954
1,08/44,133/56,496
s.
moreinf (50)
moreinf (75)
moreinf (100)
moreinf (50) bop
moreinf (75) bop
moreinf (100) bop
strona (100)
Select_w 10 (50)
Select_w 10 (50) bop
Select _w 100 (10)
Select_w 100 (10) bop
Select_w 100 (50)
Select_w 100 (50) bop
Select_w 100 (75)
Select_w 1000 (50)
da
.b
Wyniki eksperymentów widoczne na wykresach i w tabeli wskazują, że w przypadku stron
aplikacji generujących kod HTML bez odwoływania się do bazy danych najefektywniejsza
nawet przy dużym obciążeniu jest technologia PHP a następnie JSP. Jeśli chodzi o strony
aplikacji korzystające z bazy danych to najlepsze rezultaty wykazuje technologia PSP wtedy, gdy przy zastosowaniu JSP i PHP niewykorzystane są mechanizmy „odzysku” połączeń, który w przypadku PSP jest domyślnie uruchomiony przez mod_plsql. Zastosowanie
mechanizmów „odzysku” połączeń w technologiach JSP i PHP powoduje zmniejszanie
różnic a w przypadku PHP pozwala nawet osiągnąć lepsze rezultaty niż w technologii PSP.
Kolejną własność, którą została zauważona to duża odporność technologii JSP na zmianę
obciążenia, co wynika z własności serwletów, do których JSP się tak naprawdę sprowadza.
105
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006
Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006
P. Sitek, J. Wikarek
7 Podsumowanie
w
Dokładna analiza uzyskanych wyników (tabela 1) oraz podstawowych cech poszczególnych technologii prowadzą do następujących wniosków:
− Jeśli generowane dokumenty HTML w ramach budowanych aplikacji w przeważającej większości mają charakter statyczny to najlepszym rozwiązaniem wydaje się zastosowanie technologii PHP lub ewentualnie JSP.
− Jeśli generowane dokumenty HTML maja charakter dynamiczny (aplikacja intensywnie korzysta z bazy danych) to najlepszymi technologiami są PHP i PSP.
− Jeśli budowana jest bardzo złożona aplikacja w dużym stopniu korzystająca z bazy
danych ale również wykonująca skomplikowane zadania z obszaru wizualizacji
i obliczeń i dodatkowo działająca przy zmiennym obciążeniu to godnym polecenia
jest zastosowanie technologii JSP.
Do podjęcia decyzji o wyborze określonej technologii skryptowej oprócz powyższych
wniosków powinny być wzięte dodatkowe aspekty ich stosowania takie jak: koszty oraz
wsparcie przez firmę Oracle. Jeśli chodzi o wsparcie to przewagę mają technologie PSP
i JSP (zarówno serwer Oracle 9i jak i narzędzia programistyczne). PHP nie jest wspierane
przez Oracle 9i ani Oracle9iAS. Jeśli chodzi o koszty to PHP jest rozwiązaniem darmowym. Narzędzia dla pozostałych rozwiązań są płatne. Widać, więc, że wybór technologii
jest niejednoznaczny i silnie zależy od zadania, jakie ma spełniać tworzona aplikacją internetową.
1.
2.
3.
da
.b
w
w
Literatura
Wojciechowski M, Zakrzewisz M. Analiza porównawcza technologii tworzenia aplikacji internetowych dla baz danych Oracle. VIII Konferencja PLOUG, s. 46-61, Kościelisko 2002.
Niewiadomy A. Analiza porównawcza technologii tworzenia aplikacji internetowych dla baz
danych Oracle8i lub 9i, praca dyplomowa, Politechnika Świętokrzyska, Kielce 2005.
http://openload.sourceforge.net.
pl
s.
106
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006

Podobne dokumenty