Pisanie złożonych aplikacji WWW jest zadaniem wymagającym zwykle dużo pracy. Jedną z przyczyn jest fakt, że serwis musi obsługiwać wielu użytkowników i w związku z tym wymaga operacji na danych, których rozmiar jest bardzo duży. Prowadzi to do konieczności używania zewnętrznych systemów, które zapewniają trwałe przechowywanie danych i pozwalają na efektywny dostęp do informacji - czyli baz danych. Ponadto cały proces interakcji z użytkownikiem odbywa się za pośrednictwem protokołu HTTP [13], co wiąże się z różnymi dodatkowymi utrudnieniami (utrzymywanie sesji, generowanie kodu HTML, tworzenie odnośników dla akcji, obsługa formularzy itp.). Nie można też pominąć faktu, że w przypadku dużego obciążenia serwisu konieczne jest zapewnienie skalowalności aplikacji i rozproszonego przechowywania zgromadzonych informacji.
Duże serwisy WWW wymagają podziału na warstwy, dzięki czemu logika aplikacji i przechowywanie danych są oddzielone od części prezentacyjnej. Komunikacja między poszczególnymi warstwami wymaga zwykle zastosowania specjalnego języka, jak np. SQL (ang. Structured Query Language), którego konstrukcje są osadzone w kodzie programu. Istnieją również inne mechanizmy komunikacji między częściami składowymi aplikacji, jak np. zdalne wywołania procedur - RPC (ang. Remote Procedure Call) lub technologia dostępu do zdalnych obiektów - CORBA (ang. Common Object Request Broker Architecture) [5,11].
W pracy została wykorzystana architektura CORBA, która pozwala na łatwą komunikację między obiektami, znajdującymi się w różnych procesach (w tym także na różnych maszynach). Głównym elementem standardu CORBA jest mechanizm ORB (ang. Object Request Broker), który dostarcza zlecenia do obiektów i następnie przekazuje ich wynik. ORB ukrywa lokalizację obiektu serwera oraz szczegóły komunikacji między klientem a serwerem.
Częścią standardu CORBA jest także mechanizm POA (ang. Portable Object Adapter) [5], który pozwala uzyskać trwałość tworzonych obiektów. Dzięki zastosowaniu POA klient nie musi wiedzieć czy obiekt, do którego się odwołuje jest aktywny lub jest używany w innych procesach. Obsługa tych sytuacji jest przezroczysta dla klienta.
Praca dotyczy zagadnień związanych z tworzeniem aplikacji WWW. Jej częścią jest implementacja specjalnego języka, którego zadaniem jest ułatwienie pisania serwisów WWW. Implementacja ta wykorzystuje technologię CORBA do komunikacji między częściami składowymi aplikacji. Program działa pod kontrolą systemu operacyjnego Linux i korzysta z darmowej biblioteki MICO CORBA [9], która jest szybką i popularną implementacją standardu CORBA.
W pracy zostały szczegółowo przedstawione konstrukcje zaprojektowanego języka oraz przykłady jego zastosowania. Dzięki temu można porównać sposób budowy aplikacji używających ogólnie dostępnych narzędzi i napisanego w ramach tej pracy programu. Celem pracy jest również pokazanie, że istnieje możliwość uproszczenia i zautomatyzowania niektórych etapów tworzenia serwisów WWW.
W rozdziale 2 znajduje się wprowadzenie do tematyki implementowania serwisów WWW oraz analiza części składowych typowej aplikacji. Celem tego rozdziału jest zwrócenie uwagi na elementy programu, których pisanie można usprawnić oraz opis wymagań, które projektowany język powinien spełniać.
Rozdział 3 zawiera szczegółowy opis składni języka, wraz z krótkimi przykładami. Nie są to jeszcze aplikacje WWW, lecz proste programy, które demonstrują sposób użycia różnych konstrukcji. Przedstawione są również argumenty uzasadniające wybór poszczególnych elementów składniowych.
Natomiast rozdział 4 to opis implementacji samego języka oraz elementów składowych systemu, wspierającego tworzenie serwisów WWW. Zostały w nim omówione wszystkie rozwiązania techniczne, wykorzystane w tym programie.
Przykład większej aplikacji WWW jest opisany rozdział 5. Znajduje się tam także porównanie fragmentów implementacji tego serwisu, przy wykorzystaniu różnych narzędzi.
W rozdziale 6 opisuję testy przeprowadzone na przykładowym serwisie. Zamieszczam tam zestawienia, które charakteryzują dostępne narzędzia i porównuję je z wynikami osiąganymi przez przygotowany program.
W ostatnim rozdziale znajduje się podsumowanie pracy. Polega ono na analizie celów, które udało się osiągnąć poprzez implementację opisywanego języka.
Na wstępie chciałbym podziękować Pani promotor dr Janinie Mincer-Daszkiewicz za cenne uwagi i poprawianie kolejnych wersji pracy. Dziękuję także Panu Krzysztofowi Ciebierze za pomoc przy wyborze tematu pracy.