Rozwój technologii sieciowych spowodował, że w ciągu ostatnich kilku lat całkowicie zmieniły się podstawowe funkcje sieci Internet. O ile nadal wymiana poczty elektronicznej jest dość popularna, to usługi takie jak Gopher (tekstowa usługa przeglądania hierarchicznych i powiązanych ze sobą dokumentów), czy WAIS (ang. Wide Area Information Service, usługa dostępu do hierarchicznych informacji) zniknęły zupełnie. Inne, jak choćby FTP (ang. File Transfer Protocol, usługa przesyłania plików) straciły na znaczeniu. Było to spowodowane przez olbrzymi wzrost popularności usługi WWW (ang. World Wide Web, "Światowa pajęczyna", "sieć" utworzona z dokumentów powiązanych ze sobą poprzez odnośniki, zobacz też [tbl00]). Z kolei strony HTML (ang. HyperText Markup Language, język opisu strony opierający się na znacznikach -- wyróżnionych elementach tekstu kontrolujących jego przetwarzanie, umożliwiający tworzenie odnośników między dokumentami, stąd "Hyper", por. [html00]), stanowiące początkowo podstawę tej usługi, w znacznym stopniu zostały zastąpione przez serwisy dynamiczne, opierające się na technikach takich jak CGI, Java oraz PHP.
Zmiany te nadal zachodzą i nadal postępują w tym samym kierunku -- od prostych, statycznych stron czy też programów te strony generujących, do wyspecjalizowanych technik umożliwiających publikowanie informacji w dowolnym formacie odpowiadającym odbiorcy. Dzięki wykorzystaniu XML (ang. Extensible Markup Language, uogólniony sposób zapisu strukturalnych dokumentów wykorzystujący znaczniki, więcej w p. 2.1) możliwe jest odbieranie tych informacji na dowolnych urządzeniach, zresztą język ten stworzono po to właśnie, aby taką wymianę dokumentów umożliwić. Stare techniki wykorzystywane są nadal, lecz jedynie jako warstwy pośrednie -- większość serwisów nadal wykorzystuje HTML jako język prezentacji, zaś CGI jest używane przez kolejne generacje języków programowania (w sposób coraz mniej widoczny dla programisty).
Najnowsze technologie w tej dziedzinie, takie jak .NET firmy Microsoft, czy EJB (ang. Enterprise Java Beans, model programowania rozproszonego opartego na komponentach -- Beans oraz języku Java) firmy Sun, zapewniają przede wszystkim proste przetwarzanie XML oraz tworzenie zaawansowanych, dynamicznych serwisów sieciowych (ang. Web Services). Większość starszych technik tworzenia dynamicznych stron WWW, takich jak np. PHP, została także wzbogacona o XML. Ponieważ jednak nie były one projektowane z myślą o tej technologii, trudno się z nich korzysta i są słabo zintegrowane z językiem programowania.
Większość istniejących technik tworzenia serwisów sieciowych, również tych najnowszych, to zaawansowane języki programowania, w różnym stopniu zintegrowane z technologiami XML i oddzielające logikę systemu od treści dokumentów oraz sposobów ich prezentacji. W każdym przypadku jednak język logiki aplikacji jest całkowicie odmienny od języka prezentacji (XML lub HTML) oraz języka zapisu danych, pobieranych z plików XML lub baz danych SQL (ang. Structured Query Language, język wykorzystywany do operacji na relacyjnych bazach danych). Wszystko to sprawia, że pisanie takich aplikacji jest znacznie bardziej skomplikowane niż tworzenie statycznych stron WWW.
Celem projektu Live Server Pages jest stworzenie środowiska programowania serwisów sieciowych (dalej nazywanego w skrócie LSP), korzystającego z najnowszych technologii, umożliwiającego publikowanie informacji w wielu formatach i jednocześnie bardzo prostego. LSP ma przede wszystkim służyć do szybkiego tworzenia prostych serwisów sieciowych.
Logika programu powinna być wyrażana w języku zgodnym z językiem zapisu treści i językiem prezentacji. Jednocześnie język zapisu danych może być specyficzny dla źródła informacji, czyli np. SQL dla relacyjnych baz danych -- tam gdzie nie jest to potrzebne ani wskazane nie należy tworzyć warstw pośrednich, komplikujących całość.
Instrukcje języka programowania powinny być jak najprostsze, powinno ich być niewiele oraz muszą być niezawodne. Aplikacje muszą być czytelne i dzięki temu łatwe do sprawdzania i poprawiania. Instrukcje języka powinny być opisowe, pozwalając osobie go nie znającej zrozumieć działanie programu.
System powinien umożliwiać szybkie tworzenie prostych aplikacji bądź prototypów większych systemów. W tym celu, wszystkie proste operacje potrzebne do działania takiej aplikacji (czyli na przykład łączność z bazami danych, obsługa sesji itp.) muszą być wykonywane automatycznie. Najczęściej wykonywane operacje powinny być najbardziej uproszczone, nawet kosztem komplikacji innych, bardziej zaawansowanych i rzadko wykorzystywanych funkcji.
LSP powinien umożliwiać proste tworzenie dokumentów XHTML oraz PDF z tej samej aplikacji źródłowej. Programista powinien też móc zdefiniować przekształcenia do innych formatów wyjściowych.
Podstawowym celem jest stworzenie środowiska umożliwiającego tworzenie prostych serwisów sieciowych. Potrzebna jest jednak również możliwość późniejszego rozwijania tych serwisów o bardziej zaawansowane funkcje. Z tego powodu LSP musi być rozszerzalne, umożliwiając programiście własnoręczne zaimplementowanie potrzebnych operacji oraz proste dodanie rozszerzeń do systemu.
W rozdziale 2 opisane zostały technologie wykorzystywane przy tworzeniu serwisów sieciowych: podstawowe standardy oraz popularne rozwiązania o podobnym zastosowaniu co LSP. Rozdział 3 zawiera opis projektu środowiska LSP, zaś rozdział 4 opis jego implementacji. W rozdziale 5 przedstawiam kilka aplikacji, które zrealizowano przy użyciu LSP. Rozdział 6 to podsumowanie pracy.
W dodatkach można znaleźć dokumentację użytkową oraz pełny opis języka
LSP. Na płytce dołączonej do pracy znajduje się pełny kod źródłowy
oraz kilka przykładowych aplikacji (omówionych w rozdziale 5).