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