Wydajność technologii Internetowych



Podobne dokumenty
Wybrane działy Informatyki Stosowanej

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Bazy danych i strony WWW

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

OpenLaszlo. OpenLaszlo

PHP, ASP i CGI jako skrypty wykonywane po stronie serwera. Budowa dynamicznych stron WWW w technologii PHP

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

edziennik Ustaw Opis architektury

Języki skryptowe - PHP. PHP i bazy danych. Paweł Kasprowski. pawel@kasprowski.pl. vl07

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

Oracle Application Express -

Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie. dr inż. Adam Piórkowski. Jakub Osiadacz Marcin Wróbel

World Wide Web? rkijanka

WIELOKRYTERIALNY DOBÓR MASZYN I URZĄDZEŃ DO PRZYGOTOWYWANIA PASZ DLA BYDŁA

Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

Autor: inż. Wojciech Zatorski Opiekun pracy: dr inż. Krzysztof Małecki

Hosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (

Wstęp Budowa Serwlety JSP Podsumowanie. Tomcat. Kotwasiński. 1 grudnia 2008

Wirtualizacja baz danych a Dynamic Memory. Cezary Ołtuszyk coltuszyk.wordpress.com

Wymagania systemowe dla Qlik Sense. Qlik Sense February 2018 Copyright QlikTech International AB. Wszelkie prawa zastrzeżone.

egroupware czy phpgroupware jest też mniej stabilny.

Protokół HTTP. 1. Protokół HTTP, usługi www, model request-response (żądanie-odpowiedź), przekazywanie argumentów, AJAX.

System Zarządzania Treścią

1 Wprowadzenie do J2EE

Pojęcie systemu baz danych

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Projektowanie i implementacja wysokowydajnych aplikacji w języku

WPROWADZENIE. Użycie PHP

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Analiza porównawcza środowisk rozwoju aplikacji internetowych

6. Bezpieczeństwo przy współpracy z bazami danych

Zaawansowane Techniki WWW (HTML, CSS i NODE.JS)

która metoda jest najlepsza

katalog Usługi internetowe SERWERY WIRTUALNE

Aplikacje WWW - laboratorium

PROGRAM NAUCZANIA DLA ZAWODU TECHNIK INFORMATYK, O STRUKTURZE PRZEDMIOTOWEJ

Aplikacje WWW - laboratorium

Technologia Flash cieszy się coraz większą popularnością. Liczba dostępnych

Popularne dostępne rozwiązania. Najpopularniejsze środowiska programistyczne:

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8.

Budowanie interfejsów do baz danych

Niezbędne serwery aplikacji. Wprowadzenie do technologii JBoss i Apache Tomcat.

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

Politechnika Poznańska TWO

Tomasz Grześ. Systemy zarządzania treścią

Rozwiązanie Compuware Data Center - Real User Monitoring

Szpieg 2.0 Instrukcja użytkownika

WYKONANIE MODELU GENERYCZNEGO W POSTACI APLIKACJI, SŁUŻĄCEJ DO PROGNOZOWANIA ZAPOTRZEBOWANIA NA USŁUGI EDUKACYJNE

I. Informacje ogólne. Jednym z takich systemów jest Mambo.

Laboratorium - Przechwytywanie i badanie datagramów DNS w programie Wireshark

Instrukcja instalacji i obsługi programu Szpieg 3

REFERAT O PRACY DYPLOMOWEJ

BACKUP BAZ DANYCH MS SQL

Laboratorium 1 Wprowadzenie do PHP

Wybrane działy Informatyki Stosowanej

Wykład I. Wprowadzenie do baz danych

Pracownia internetowa w szkole ZASTOSOWANIA

Pakiet webmathematica jako narzędzie wspomagające proces dydaktyczny przedmiotu mechanika. Łukasz Maciejewski, Wojciech Myszka, Stanisław Piesiak

AKADEMIA GÓRNICZO-HUTNICZA im. Stanisława Staszica w Krakowie. Wydział Geologii, Geofizyki i Ochrony Środowiska. Bazy danych 2

Dostęp do baz danych z serwisu www - PHP. Wydział Fizyki i Informatyki Stosowanej Joanna Paszkowska, 4 rok FK

Wprowadzenie SYSTEMY SIECIOWE. Michał Simiński

System generacji raportów

System. Instalacja bazy danych MySQL. Autor : Piotr Zielonka tel Piotrków Tryb., sierpień 2018r.

Biuletyn techniczny. CDN OPT!MA 8.5 Wskazówki dotyczące instalacji programu. Copyright 2006 COMARCH SA

1 90 min. Aplikacje WWW Harmonogram spotkań, semestr zimowy (studia stacjonarne)

Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej. Wstęp. Programowanie w Javie 2. mgr inż.

Instrukcja instalacji środowiska testowego na TestingCup wersja 1.0

Dokumentacja aplikacji Szachy online

Aplikacja internetowa vs Strona Internetowa. Aplikacja internetowa, (ang.) web application zwana również aplikacją webową, to program komputerowy,

Programowanie Komponentowe WebAPI

ActiveXperts SMS Messaging Server

Zastosowanie Oracle Designer/2000 do projektowania i implementacji aplikacji WWW

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Dokumentacja fillup - MS SQL

Dotacje na innowacje. Inwestujemy w waszą przyszłość.

Deduplikacja danych. Zarządzanie jakością danych podstawowych

Aplikacje WWW Wprowadzenie

Ekspert MS SQL Server Oferta nr 00/08

Porównanie systemów zarządzania relacyjnymi bazami danych

Charakterystyka sieci klient-serwer i sieci równorzędnej

Wybrane działy Informatyki Stosowanej

KATALOG MASZYN I POJAZDÓW ROLNICZYCH MASZYNY-3

Produkty. ESET Produkty

Programowanie internetowe

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

Emulacja maszyny. Program udaje zupełnie inną architekturę. Musi przetłumaczyć instrukcje emulowane na instrukcje platformy, na której działa

Absolwenci kierunków informatycznych

NARZĘDZIA WIZUALIZACJI

Polityka prywatności Spółdzielni Mieszkaniowej Słoneczny Stok

PRZEWODNIK PO PRZEDMIOCIE

Pracownia internetowa w każdej szkole (edycja jesień 2005)

Analiza porównawcza wybranych własności systemów zarządzania bazami danych

Wymagania systemowe dla Qlik Sense. Qlik Sense June 2018 Copyright QlikTech International AB. Wszelkie prawa zastrzeżone.

Transkrypt:

Wydajność technologii Internetowych Marcin Wolski, Andrzej Pawlak Politechnika Wrocławska Streszczenie W artykule tym badamy wydajność technologii wykorzystywanych do tworzenia dynamicznych stron Internetowych. W naszych eksperymentach bierzemy pod uwagę cztery, popularne technologie: CGI, MOD_PERL, PHP oraz Java Servlet. W większości przypadków strony tego typu wykorzystują bazy danych oraz/lub pliki tekstowe jako źródło danych. Dlatego też, badamy wydajność wspomnianych technologii w zależności od źródła informacji. Abstract In this paper we evaluate performance of dynamic content web page generation technologies. We focus on experimentally measuring and analyzing the time efficiency of four dynamic Web page generation technologies: CGI, MOD_PERL, PHP and Java Servlet. Most dynamic Web pages uses databases or/and files as data sources. That is why we evaluate differences between the considered technologies in terms of their data source.

1. Wstęp Błyskawiczny wzrost popularności globalnej sieci Internet pod względem ilości informacji, ilości użytkowników oraz nowych zastosowań sprawił iż pierwsze, statyczne strony Internetowe zostały wyparte przez strony generowane w czasie rzeczywistym przez serwery WWW. Dzisiaj Internet to nie tylko źródło informacji, to również miejsce zakupów, rozrywki oraz pracy. Z tego powodu portale wymagają natychmiastowych oraz automatycznych aktualizacji oraz ciągłych zmian. Wszystko to, sprawiła iż obecne serwery stają się coraz bardziej obciążone [1] [4]. Aby dotrzeć do jak największej liczby użytkowników należy szczególnie zadbać o to, aby czas dostarczenia strony był jak najmniejszy. Można to zrobić poprzez wymianę hardware'u lub/i wybór odpowiedniej technologii generacji witryny. My, w naszych badaniach skupimy się na tej drugiej metodzie. Pozostała część pracy jest zorganizowana następująco: Rozdział 2 przedstawia rozważane technologie. W Rozdziale 3 przedstawione są inne badania z tej dziedziny. Kolejny rozdział prezentuje system eksperymentowania. Natomiast 5 rozdział to wyniki naszych testów. Na końcu zamieszczone są końcowe uwagi. 2. Technologie Początki Internetu to statyczne strony będący tylko źródłem informacji. W tego typu stronach każdy dokument był w swej finalnej wersji przechowywana na serwerze. Na każde żądanie użytkownika, strona taka była przesyłana z serwera do przeglądarki w dokładnie takiej samej postaci jak znajdowała się na serwerze [1], [7]. Każda zmiana, aktualizacja musiała być robiona ręcznie, przed obsłużeniem żądania. W chwili otrzymania takiego żądania, żadne modyfikacji przesyłanej treści nie są możliwe. Z biegiem czasu zauważono wadę takiego rozwiązania (brak natychmiastowych aktualizacji i dostosowania treści do żądania użytkownika) i zaczęto prace nad dynamicznym tworzeniem stron tzn.: w chwili otrzymania żądania strona jest dosłownie generowana przez serwer. W ten sposób użytkownik otrzymuje najbardziej aktualne dane oraz tylko te, które potrzebuje. 2.1. Common Gatway Interface (CGI) Pierwsza technologią, która zyskała sobie praktycznie miano standardu jest CGI [2]. Dzięki niemu, serwer WWW może komunikować się z zewnętrznymi programami. Na przykład serwer może przesłać dane wprowadzone przez użytkownika przy pomocy formularza do zewnętrznego programu, a następnie, po otrzymaniu wyników przesłać je użytkownikowi. Dzięki tej metodzie serwer może używać programów zewnętrznych napisanych praktycznie w każdym jeżyku: C, C++, BASH, Pyhton. Jednak napopularnieszym językiem wykorzystywanym w CGI jest PERL. Największą wada tego rozwiązania jest to, iż przy każdym wywołaniu interpreter PERL'a musi zostać załadowany do pamięci, przed wykonaniem danego skryptu. Opóźnienie spowodowane tym jest dość znaczne [4], co zostało wykazane w naszej pracy. 2.2. MOD_PERL Naturalnym rozwiązaniem wady CGI było umieszczenie interpretera PERL'a w pamięci na stałe, tak, aby nie trzeba było tego robić za każdym razem. To też zapewnia MOD_PERL [6], [12]. Dodatkowo same skrypty są przechowywane w pamięci, co dodatkowo zaoszczędza czas na ich odczyt z dysku. 259

2.3. PHP: Hypertext Preprocessor PHP jest jednym z najpopularniejszych języków wykorzystywanych po stronie serwera. Jego zalety to oprócz łatwości nauczenia się, to również możliwość umieszczania kodu PHP w stronach HTML [15]. 2.4. Java Servlet Servlety to sprzętowo niezależne programy, które wykonują się w wirtualnej maszynie Java (JVM - Java Virtual Machine). Servlety, w przeciwieństwie do wcześniejszych technologii, to skompilowane programy przechowywane w pamięci przez serwer [7]. Są one ładowane tylko raz, przy uruchomieniu serwera. Servery wykorzystywane przez Servlety noszą cześto nazwe serwerów aplikacji. Głównym czynnikiem wpływającym na ich efektywność jest fakt iż działa na wirtualnej maszynie Javy, a nie bezpośrednio na sprzęcie fizycznym[16]. 2.5. Zródło danych Zazwyczaj strony dynamiczne nie tworzą całkowicie same danych które prezentują. Zamiast tego korzystają one z zewnętrznego źródła, takim jak baza danych lub plik tekstowy. Po pobraniu odpowiednich danych, informacje są formatowane w przyjazny dla użytkownika sposób a następnie przesyłane użytkownikowi w postaci strony HTML. Na rynku jest dostępnych wiele baz danych (MySQL, PostgreSQL, MSQL, Oracle) jednak my skupiliśmy się na PostgreSQL, gdyż jest to produkt Open Source oraz jest jednym z najpopularniejszych silników bazodanowych wykorzystywanych w Internecie. 3. Pokrewne Prace Problem wydajności serwerów WWW był już badany między innymi przez Woodruf'a [5]. Woodruf badał charakterystyki i rodzaje zapytań. Wykazał, iż zapytania CGI znacznie bardziej obciążają serwer niż zapytania o dokumenty statyczne. Kolejne badanie przeprowadzili Barford and Crovella [8] którzy badali wydajność protokołów HTTP/1.0 oraz HTTP/1.1. Wykazali iż HTTP w wersji 1.1 wykorzystuje mniej zasobów sieciowych niż jego poprzednik. Dodatkowo udowodnili, iż HTTP/1.0 wykazuje większą wydajność w systemach o niewystarczającej ilości pamięci RAM. Mendes and Almeida [4] badali wpływ CGI PERL, CGI C++ oraz ASP na serwer pracujący w środowisku Microsoft Windows NT. Wykazali, że niewielkie strony dynamiczne mało wpływaja na serwer, natomiast aplikacjie typu e-commerce degradują zasoby serwera nawet do 90%. Common Getaway Interface był również badane przez Kothari and Claypool [2]. Ich praca zawiera porównanie Java Servlet, CGI and FastCGI, gdzie aplikacji napisane w C były wykorzystywane przez CGI i FastCGI. Jako wynik swych prac stwierdzili, iż CGI i FastCGI (korzystające z programów C) są szybsze od Servletów. Niestety nie badali PERL'a jako aplikacji CGI. Ta luka została wypełniona przez Courage and Manley [13], którzy obserwowali wydajność CGI pod względem użycie PERL'a (jezyka interpretowanego) i C (jezyka kompilowanego). Dla niewielkich programów PERL jest dwa razy wolniejszy od C. Jednak dla dużych witryn różnica pomiędzy PERL a C jest pomijalna. 260

Większość prac związanych z tym tematem związana jest z obciążeniem serwera oraz różnic pomiędzy statycznymi stronami a dynamicznymi. Były badane główne technologie CGI. Jednak jest bardzo mało badań porównujących najnowsze technologie z tej dziedziny, takie jak MOD_PERL. Dodatkowo nie ma prac porównujących te technologie pod względem źródła danych (baza danych/plik tekstowy). Celem naszej pracy jest załatanie tej luki poprzez zbadanie CGI, MOD_PERL, PHP oraz Java Servlet. Aplikacja CGI została napisana w języku PERL. Stworzyliśmy własny program testowy umożliwiający nam porównanie tych technologii w zależności od źródła danych. 4. System eksperymentowania 4.1. Projekt Dla potrzeb naszych badań został zaprojektowany unikalny system eksperymentowania. Proponowany projekt składa się z trzech elementów (Rysunek 1). Pierwszym elementem systemu jest klient. Klient działa jak przeglądarka, czyli wysyła żądania stron i pobiera zwrócone dokumenty z serwera. W zależności od adresu URL klient żąda stronę w określonej technologii. Dodatkowo, mamy możliwość wyboru źródła danych z jakiego ma korzystać dana technologia. Program mierzy czas od chwili wysłania żądania do chwili pełnego otrzymania strony. Drugim elementem jest serwer WWW oraz cztery strony wykonane w rozpatrywanych technologiach. Każda ze stron wykonuje dokładnie te same zadania: pobiera żądane dane z pliku lub bazy danych, formuje i prezentuje w postaci tabeli HTML klientowi. Efekt końcowy jest identyczny, do tego stopnia, iż użytkownik nie jest wstanie rozpoznać technologii po wyglądzie wygenerowanego dokumentu. Ostatnim elementem jest źródło danych. Używamy stałego zbioru danych, dlatego też informacje przechowywane przez plik lub bazę są identyczne. Tutaj również użytkownik nie może rozpoznać skąd były pobrane dane: z bazy czy z pliku tekstowego. Rys. 1: Experimentation system testing efficiency of four technologies. Wielkość źródła danych wyrażona jest w ilości wierszy. Każda ze stron wykonuje operacje na pliku/bazie o stałej wielkości. Gdy wszystkie 4 strony skończą, wielkość źródła 261

danych jest zwiększana i proces rozpoczyna się od nowa. W ten sposób, rozpoczynamy badania na małym pliku/bazie a kończymy na dużych. Wpływ wielkości i rodzaju źródła danych na wydajność rozpatrywanych technolog jest przez nas badany. Pojedynczy eksperyment rozpoczyna się dla 200 wierszy a kończy na 500 000 dla bazy, oraz 900 000 dla plików. W zakresie 200 do 10000 wierszy skok rozmiaru danych to 100 wierszy (pomiary sa robione co 100 wierszy). Od 10 000 do 100000 wielkość wzrasta o 1000 a powyżej 1000000 skok to 10 000 wierszy. Stworzone strony nie tylko odczytują dane. Ich głównym zadaniem jest ich poszukiwanie w zbiorze. W naszych badaniach używamy polecenia SQL SELECT. W przypadku bazy danych jest to wykonane wprost przez bazę, natomiast w przypadku pliku zapytanie to jest emulowane w sposób algorytmiczny. Środowisko w jakim odbyły się wszystkie eksperymenty jest następujące: ProcesorAMD Duron 1300 Mhz, 512MB RAM, OS Fedora Core 3, Web Serwer Apache 2, Serwer aplikacji Tomcat 5.0, CGI PERL 5.8, MOD_PERL 1.9, JAVA 1.4., PHP 4.3, baza danych PostgreSQL7.4 5. Wyniki Rozdział ten prezentuje wyniki naszych badań nad wydajnością PHP, CGI, MOD_PERL i Java Servlet. Dodatkowo badamy wpływ źródła danych na wspomniane technologie. 5.1. Przetwarzanie plików tekstowych Pierwszy eksperyment badał różnice w wydajności rozważanych technologii z zastosowaniem plików tekstowych jako źródła danych. Najmniejszy plik miał rozmiar 200 wierszy, największy 900 000 wierszy. Otrzymane wyniki są przedstawione na Rysunku 2 w skali logarytmicznej. Wyniki pokazują iż PHP jest idealny do pracy z małymi plikami (kilkaset wierszy). Jednak gdy ilość ta wzrasta prędkość PHP drastycznie maleje do tego stopni, iż powyżej 40 000 wierszy PHP staje się najmniej efektywną technologią z badanych. Common Gateway Interface jest najwolniejszy ze wszystkich za wyjątkiem PHP. CGI jest wydajniejsze od PHP powyżej 40 000 wierszy. Pozostałe technologie tj. MOD_PERL i Java Servlet są najlepsze w tym eksperymencie. Działają z porównywalną wydajnością, jednak należy dodać, iż MOD_PERL najwydajniej pracuje na plikach. 262

Fig. 2: Wydajność przy przetwarzaniu pliku tekstowego. Pod koniec eksperymentu, kiedy plik miał wielkość 900 000 wierszy PHP był wolniejszy o ok. 40% od pozostałych technologii. 5.2. Przetwarzanie bazy danych W tym eksperymencie badaliśmy wydajność rozpatrywanych technologii w wypadku gdy źródłem danych jest baza PostgreSQL. Dane były zawarte w jednej tabeli. Tabela ta miała taką samą strukturę, pod względem informacji jak, plik tekstowy z Sekcji 3.1. Z rysunku 3 można zauważyć, iż CGI jest najmniej wydajną technologią. Eksperymenty pokazały iż MOD_PERL, który był najwydajniejszy w pracy z plikami tekstowymi, tym razem jest wolniejszy od PHP oraz Java Servlet. MOD_PERL wyraźnie zwolnił gdy baza danych wzrosła do kilkuset tysięcy wierszy, mimo iż na początku działał równie wydajnie jak Java Servlet oraz PHP. Rys. 3: Wydajność przy przetwarzaniu pliku tekstowego. 263

Ponadto, potwierdziła się wada CGI, a mianowicie dodatkowe opóźnienie, będące powodem tworzenia procesu interpretera języka PERL, przy każdym żądaniu. W naszych eksperymentach opóźnienie to około 220ms w stosunku do innych technologii. MOD_PERL, którego zadaniem było miedzy innymi usunięcie tej wady, rzeczywiście ja usunął. 5.3. Porównanie plików tekstowych i baz danych. Nasze testy pokazały, iż MOD_PERL jest zdecydowanie najlepszym rozwiązanie jeśli nasze strony maja intensywnie korzystać z plików. Tekstowych. Dodatkowo, zauważyliśmy iż, Java Servlet jest również bardzo wydajnym narzędziem do tworzenia aplikacji WWW. We wszystkich przeprowadzonych testach Java Servlet osiągała prawie identyczne wyniki jak dominująca technologia. Java Servlet łączy w sobie wydajność MOD_PERL'a (praca na plikach) z prędkością PHP (obsługa bazy danych). Rysunek 4 przedstawia fakt, iż baza danych jest efektywniejszym źródłem danych niż plik tekstowy. Jednak dla małych plików (kilkaset, kilka tysięcy wiersz) badane przez nas operacje wykonują się szybciej na plikach. W naszych eksperymentach pliki były bardziej efektywne do ok. 1000 wierszy. Wyjątkiem jest tu CGI, które dopiero powyżej 9000 tysięcy wierszy działają szybciej z plikami niż z bazą. Fig. 4: Performance using database and files. 264

6. Wnioski W pracy tej analizowaliśmy wydajność czterech technologii wykorzystywanych do tworzenia dynamicznych witryn internetowych: CGI, MOD_PERL, Java Servlet oraz PHP. Jako język aplikacji CGI został użyty PERL. Stworzyliśmy własny system eksperymentowania do pomiarów opóźnień pomiędzy wysłaniem żądania strony do serwera WWW, a do czasu otrzymania rządnego dokumentu. Dodatkowo, technologie te zostały przebadane pod względem wydajności w zależności od źródła danych: pliki tekstowy lub baza danych. Biorąc pod uwagę uzyskane wyniki możemy stwierdzić: CGI - ma najmniejszą wydajność w porównaniu do pozostałych technologii. Wynik ten potwierdza się dla wszystkich przeprowadzonych badań. Wyjątkiem jest jedynie praca z plikami tekstowymi. PHP - jest idealny do zastosowań łącznie z bazami danych, jednak nie powinien być używany do pracy z plikami tekstowymi. MOD_PERL Najszybszy z plikami, jednak traci wydajność w pracy z baza danych. Java Servlet uniwersalna technologia. Pracuje równie szybko z plikami tekstowymi jak i z bazą danych. Bazy danych są wydajniejszym źródłem informacji od plików tekstowych. Pliki tekstowe powinny być stosowane tylko dla nie wielkich stron Bibliografia 1. Arlitt, M and Williamso: Web Server Workload Characterization. 1996. 2. Ahupesh Kothari and Mark Claypool: Performance Analysis of Dynamic Web Page Generation Technologies. Warcester Polytechnic Institute, January 1999. 3. Erich Nahum, Tsipora Barzilai and Dilip Kandlur: Performance Issues in WWWServer. IBM T.J. Watson Research Center, February 16, 1999. 4. Marco Aurélio S. Mendes, Virgílio Augusto F Almeida: Analyzing the Impact of Dynamic Page on the Performance of Web Servers. 5. Aoki P. Woodruf, A. Brewer and E. Gautheir: An investigation of Documents from WWW. May 1996 6. http://perl.apache.org/: mod_perl project. 7. Budi Kurniawan: Java for the Web with Servlets, JSP, and EJB: A Developer's Guide to J2EE Solution. New Riders Publishin, April 2002. 8. Paul Barford and Mark Crovella: A Performance Evaluation of Hyper Text Transport Protocols. Boston University. 9. Iwona Pozniak-Koszalka and Michal Helwich: Experimentation system for evaluating MySQL database managment system efficiency. Wroclaw University of Technology, 2004. 10. Mohammed J. Kabir: Apache Server 2 Bible. Hungry Minds Inc., 2002. 11. Martin C. Brown: Perl: The Complete Reference Second Edition.,Osborne/McGraw- Hill, 2001. 265

12. Stas Bekman, Eric Cholet: Practical mod_perl. O'Reilly May 2003. 13. Michael Courage and Stephen Manley: An Evaluation of CGI Traffic and its Effect on WWW Latency. Harvard University. 14. Jesus Castagnetto,Harish Rawat, Sascha Schumann, Chris Scollo and Deepak Veliath: Professional PHP Programming. Wrox Press Ltd,1999. 15. PHP Manual, the PHP Documentation Group 16. Java Microbenchmarks. A raport. URL: http://www.cs.cmu.edu/ich/java/benchmarks.html 266