Aktywna zawartość WWW

Rozwiązanie Active Content firmy e-Point wykorzystuje darmowe produkty Apache Foundation.

Rozwiązanie Active Content firmy e-Point wykorzystuje darmowe produkty Apache Foundation.

Active Content to nowe rozwiązanie, służące do budowy aplikacji WWW, przygotowane przez polską firmę e-Point. Główną ideą przyświecającą stworzeniu tego systemu było rozdzielenie poszczególnych warstw aplikacji WWW - szablonu prezentacji, ostatecznego sposobu wyświetlenia (renderingu) szablonu oraz zawartości, którą wypełnia się szablony. Active Content pozwala na przygotowanie struktury serwisu, który zostaje zobrazowany w postaci drzewa. Poszczególne węzły to obiekty, z którymi skojarzone są określone akcje. Poziom zagłębienia węzła w drzewie odpowiada miejscu zagnieżdżenia danej strony WWW (najwyższy poziom to strona otwierająca). Modyfikacje zawartości stron bądź wyglądu ich całych klas wymagają jedynie zmian pojedynczych rekordów w bazie danych.

Po pierwsze, otwartość

Do stworzenia Active Content użyto języka Java, dzięki czemu naturalne było wykorzystanie podejścia obiektowego do opisu struktury serwisu internetowego.

Wszystkie zastosowane komponenty należą do obszaru open source. To przede wszystkim serwer aplikacji Jakarta Tomcat, będący kontenerem dla servletów Javy (może działać jako samodzielny serwer WWW lub współpracować z serwerami Apache, IIS czy Netscape Enterprise Server). Ponadto Turbine, narzędzie ułatwiające dzielenie aplikacji WWW na poszczególne warstwy zgodnie ze schematem Model-View-Controller oraz WebMacro - rozwiązanie pozwalające na integrację plików HTML opisujących stronę ze skryptami czy apletami, służącymi do wykonywania zadanych funkcji. Inaczej niż przy zastosowaniu Java Server Pages czy PHP nie dochodzi tutaj do mieszania kodu HTML z poleceniami skryptowymi, co sprawia, że znacznie łatwiej uniknąć bałaganu przy tworzeniu warstwy programowej serwisu WWW. System poprzez interfejs JDBC współpracuje z bazą danych Postgres lub Oracle.

Oprócz standardowych narzędzi nawigacyjnych, do stron można dodawać tzw. moduły, czyli elementy zwiększające jej funkcjonalność. Obecnie dostępne są moduły prezentacji aktualności, biuletyn informacyjny, system personalizacji, wyszukiwarka, katalog produktów, katalog dowiązań (które może modyfikować użytkownik stron), ofert pracy, generator ankiet, słownik pojęć, FAQ i kartki pocztowe. Liczba modułów ma być stopniowo zwiększana. Interfejsy administracji poszczególnych modułów nie muszą być połączone z interfejsem platformy Active Content, dzięki czemu różnymi częściami serwisu mogą zarządzać różni administratorzy.

Dzięki zapisywaniu w plikach log wszystkich prowadzonych przez system akcji w przyszłości będzie można dodawać rozwiązania analizy wykorzystania serwisu przez użytkowników.

Po drugie, szybkość

Active Content był konstruowany z myślą o obsłudze dużej liczby stron WWW, bowiem jego głównym zadaniem jest budowanie portali i serwisów cieszących się dużą popularnością. Pod tym kątem były dobierane odpowiednie elementy systemu.

Poszczególne strony nie są budowane od podstaw z elementów składowych zgromadzonych w bazach - przechowywane są gotowe prefabrykaty stron, wypełniane przed wyświetleniem odpowiednią zawartością. Integralną częścią serwera jest bufor cache, w którym zgromadzone są najpopularniejsze strony bądź ich elementy, np. narzędzia nawigacyjne.

Twórcy Active Content szacują potencjalną wydajność systemu na ok. 200 tys. prezentowanych stron WWW dziennie. Czas odpowiedzi na wysłanie jednej strony powinien mieścić się w granicach 20-30 ms. Przy połączeniu systemu z klastrem serwerów WWW wydajność można zwiększyć do ponad miliona stron dziennie.

Active Content wykorzystano przy budowie portalu medycznego www. pfm.pl. Na jego stronach widać wyraźny podział stron na oddzielne grupy wyznaczone przez zmodyfikowane wizualnie szablony. Widać również jednolitość sposobu nawigacji po stronach serwisu. Personalizacja serwisu jest możliwa dzięki wykorzystaniu jednej z podstawowych funkcji Active Content, czyli podziału aplikacji na warstwy i poszczególne moduły w każdej z nich.