Subsections


6 Podsumowanie

1 Historia projektu

Pierwsze wersje LSP powstały kilka lat temu. W ciągu tego czasu udało się wykorzystać go do bardzo wielu zastosowań, z których te najistotniejsze opisano w rozdziale 5. Miało to istotny wpływ na możliwości systemu, były one rozszerzane kilkakrotnie w miarę potrzeb. Na przykład, dodanie instrukcji CACHE spowodowało kilkunastokrotne przyspieszenie działania przeglądarki publicznej w systemie Bibliografia.

Wersja LSP przedstawiona w tej pracy zawiera większość funkcji rozwiniętych w ramach prac nad wspomnianymi systemami oraz kilka rozszerzeń. Celem było stworzenie oprogramowania realizującego założenia postawione we wstępie pracy. W związku z tym możliwości wcześniejszych wersji, takie jak na przykład specjalne instrukcje procesora XML pozwalające na wstawianie do przetwarzanego programu innego pliku, zostały usunięte. Dodano funkcje wczytywania i zapisywania dokumentów XML -- dotychczas możliwe było jedynie wczytywanie ich z bazy danych.

Środowisko zostało też dostosowane do nowych standardów. Przede wszystkim zmieniła się składnia zapisu zmiennych -- zamiast własnej, LSP wykorzystuje XPath. Zmieniła się też składnia języka, wszystkie instrukcje zostały rozszerzone o przedrostek lsp:, co było konieczne dla zgodności z XML Namespaces.

2 Plany rozwoju

W LSP brakuje kilku funkcji, które nie są co prawda bardzo istotne i na pewno nie są potrzebne do tworzenia bardzo prostych aplikacji, ale w przyszłości może się to zmienić. Przede wszystkim brakuje wsparcia dla SOAP (ang. Simple Object Access Protocol). SOAP to protokół komunikacji stworzony do wymiany informacji między serwisami sieciowymi. Zastosowanie tej technologii umożliwiłoby aplikacjom LSP pobieranie danych z serwerów SOAP oraz publikowanie ich w identyczny sposób. SOAP jest jednym z podstawowych elementów technologii .NET, więc zapewne niebawem będzie on już powszechnie wykorzystywany.

Brakuje także obsługi czysto XML-owych baz danych oraz języka XQuery. Niestety darmowe produkty tego typu pojawiły się bardzo niedawno, zaś komercyjne są dość kosztowne. Dodanie tej funkcji było więc niemożliwe.

Ostatnią funkcją, nad którą można by się zastanawiać, jest migracja z HTML do XSL jako podstawowego języka opisu dokumentu. Umożliwiłoby to wykorzystanie standardowych arkuszy stylów i zaoszczędziłoby wiele czasu przy tworzeniu aplikacji. Niestety język XSL jest bardzo rozbudowany i nie nadaje się dobrze do zastosowań dla jakich został zaprojektowany LSP.

Rozszerzenia te zapewne niebawem powstaną, najprawdopodobniej wtedy, gdy okażą się potrzebne. Planem na najbliższą przyszłość jest napisanie porządnej dokumentacji do systemu w języku angielskim, w celu udostępnienia go szerszemu gronu odbiorców.

3 Wnioski

Dzięki całkowitej integracji LSP z XML, przetwarzanie dokumentów XML jest znacznie łatwiejsze niż w starych systemach typu PHP . Również dzięki temu w naturalny sposób można generować dokumenty w różnych formatach wyjściowych.

Dzięki zastosowaniu XML jako języka logiki aplikacji oraz SQL jako języka pobierania danych (również XML z XPath), pisanie aplikacji jest proste, a programy są odporne na błędy (XMLSQL mają ścisłą i przejrzystą składnię, co niezmiernie ułatwia programowanie i późniejsze sprawdzanie błędów). W połączeniu z nieskomplikowanym językiem znacznie zmniejsza to czas rozwoju systemu, a przede wszystkim pozwala na bardzo szybkie realizowanie prototypów interfejsów użytkownika. Przykładowo, przygotowanie początkowej wersji aplikacji MovieDB zajęło około godziny czasu, przy czym większość tego czasu poświęcona była na pisanie arkuszy stylów oraz opracowanie struktury bazy danych.

Językiem prezentacji jest zazwyczaj XSLT wraz z XHTML, ale w małych aplikacjach można też połączyć warstwę prezentacji z warstwą logiki i użyć do tego celu bezpośrednio LSP oraz XHTML. W obu przypadkach językiem prezentacji jest język zgodny z XML, co zapewnia spójność całej aplikacji i umożliwia szybkie opanowanie środowiska LSP, jak również programów pisanych przy jego użyciu. Bardzo ważna jest też wbudowana możliwość generowania dokumentów w różnych formatach bezpośrednio przez LSP. Umożliwia to przygotowywanie raportów w PDF na podstawie ich wersji HTML. Część z raportów w systemie CSM jest tworzona właśnie w ten sposób. Trudno znaleźć podobne możliwości w innych istniejących systemach klasy LSP.

Dodawanie nowej funkcjonalności, o ile jest wymagane, odbywa się na innym poziomie (rozszerzenia pisane są w Perlu i udostępniane jako nowe elementy języka bądź rozszerzenia istniejących elementów). Nie jest to tak proste jak pisanie samych aplikacji, ale ze względu na ograniczone (z konieczności) możliwości LSP, jest to jedyne sensowne rozwiązanie. Jest ono podobne do stosowanego w PHP, jednak trochę prostsze ze względu na brak konieczności kompilacji całego środowiska. Podobne cele można by osiągnąć umożliwiając, jak w XSP, wstawianie kodu w Perlu do samej aplikacji, ale w ten sposób stracono by wszystkie zyski płynące ze stosowania spójnej składni. W LSP trudniej jest napisać system, w którym interfejs WWW stanowi marginalną część funkcjonalności, ale z drugiej strony środowisko to nie jest też przeznaczone do takich celów.

System LSP, dzięki implementacji w Perlu, jest tak samo przenośny jak sam język. Kilka dostępnych metod integracji z serwerami WWW oraz wykorzystywanie istniejących sterowników baz danych umożliwia zastosowanie aplikacji LSP w dowolnym środowisku. Bardzo dobrym przykładem jest system MovieDB, który początkowo był uruchamiony na platformie Linux oraz PostgreSQL, następnie przeniesiono go na bazę Sybase (głównie do testów), przez pewien czas działał na FreeBSD z MySQL, obecnie zaś działa z tą bazą znowu w systemie Linux. W żadnym z tych środowisk nie trzeba było modyfikować kodu aplikacji.

Przedstawione środowisko zawiera wszystko to -- i tylko to -- co jest niezbędne do pisania aplikacji WWW. Nie jest to próba konkurowania z istniejącymi produktami o identycznych zastosowaniach, zresztą w czasie, gdy ten projekt powstawał, takiego oprogramowania jeszcze nie było. Funkcjonalność LSP jest (na tle innych systemów) dość uboga. Mimo to, LSP to solidny system, umożliwiający tworzenie małych (i nie tylko) serwisów sieciowych, zazwyczaj znacznie łatwiej i szybciej niż przy użyciu innych narzędzi.