Rozdział 46 Środowisko Oracle Application Server w internetowej aplikacji inteligentnego systemu lingwistycznego Streszczenie. W rozdziale przedstawiono sposób tworzenia aplikacji w architekturze trójwarstwowej z wykorzystaniem środowiska Oracle Application Server jako alternatywy do innych oferowanych metod obsługi bazy inteligentnego lingwistycznego systemu. Autorzy niniejszego rozdziału odwołują się do zasad budowy algorytmów przeznaczonych do analizy tekstu na podstawie reguł gramatyki strukturalnej i komunikacyjnej z elementami modelu logicznego języka, które zostały one przedstawione w artykule: Intelligent Linguistic Database Systems i zaprezentowane na konferencji FCCS 2005 w Bronisławowie. Prezentowany system w wymienionym środowisku jest w stanie, na podstawie przekazanego zdania, wyszukać i jednoznacznie określić wyrazy lub grupy wyrazów pod względem gramatyki komunikatywnej. Artykuł ten obejmuje zakres tworzenia systemu internetowego wykorzystującego moduł serwera HTTP Oracle - mod_plsql.wtyczka ta odwzorowuje żądania przeglądarki do określonej ścieżki wirtualnej na wywołania procedur składowanych. Prezentowana aplikacja obejmuje moduły wprowadzania, analizy i prezentacji danych. 1 Wstęp Aplikacja bazodanowa stanowi warstwę pośrednią między systemem zarządzania bazą danych a użytkownikiem. Aby skorzystać z bazy danych trzeba posłużyć się jakąś aplikacją. Tworzeniem aplikacji zajmują się programiści wykorzystując do tego celu różnorodne narzędzia i technologie. 2 Metody tworzenia aplikacji w środowisku Oracle Oracle dostarcza zbioru narzędzi i środowisk umożliwiających wykorzystanie najpopularniejszych języków programowania do tworzenia aplikacji łączących się z bazą danych. Interfejsem najniższego poziomu jest interfejs OCI (Oracle Call Interface), który Sławomir Wiak, Paweł Drzymała, Henryk Welfle, Maria Dems: Politechnika Łódzka, Instytut Mechatroniki i Systemów Informatycznych, ul. Stefanowskiego 18/22, 90-924 Łódź, Polska email: (wiakslaw, pdrzymal, welfle, mdems)@p.lodz.pl
S. Wiak, P. Drzymała, H. Welfle, M. Dems przeznaczono do wykorzystania z poziomu C/C++. OCI wymaga od programisty stosunkowo dużych umiejętności oraz poświęcenia niemałej dawki czasu na programowanie i usuwanie błędów. Dostępne są również aplikacje tzw. prekompilatorów dla różnych języków programowania. Prekompilator tłumaczy program z zanurzonymi instrukcjami SQL na program zrozumiały dla kompilatora C. Obecnie Oracle kładzie największy nacisk na obsługę języka Java. Dostęp do baz danych realizowany jest w tym języku poprzez wykorzystanie interfejsu JDBC (Java DataBase Connectivity). Alternatywnym sposobem programowania dostępu do baz danych w aplikacjach Javy jest wykorzystanie prekompilatora o nazwie SQLJ. Prekompilator ten działa podobnie jak prekompilatory z grupy Pro* - program w Javie z zanurzonymi instrukcjami SQL tłumaczony jest na kod z odwołaniami do JDBC, a następnie kompilowany. Obok Javy podstawowym językiem proceduralnym jest PL/SQL. Na przestrzeni lat firma ORACLE znacząco rozszerzyła możliwości tego języka, umożliwiając wykorzystanie go również do tworzenia aplikacji pracujących po stronie klienta. Proste aplikacje WWW mogą być tworzone na bazie oprogramowania serwera baz danych. Oracle 9i Database zawiera serwer http oparty na Apache, kontroler serwletów i JSP oraz umożliwia tworzenie procedur składowanych generujących kod HTML. 3 Konfiguracja środowiska OAS i serwera http Komunikacja klienta możliwa jest dzięki modułowi serwera HTTP Oracle - mod_plsql. Wtyczka ta odwzorowuje żądania przeglądarki do określonej ścieżki wirtualnej (domyślnie /pls) na wywołania procedur składowanych. Procedury składowane generują kod HTML, przekazywany następnie do modułu PL/SQL, który zwraca go przeglądarce. Modul PL/SQL łączy się z bazą danych wykorzystując parametry konfiguracyjne zapisane w tzw. deskryptorze dostępu do baz danych DAD (rys. 1). Rys. 1. Strona konfiguracji ustawień serwera http Menu konfiguracyjne Mod_plsql (rys. 2, 3) wykorzystywane jest do przeprowadzenia konfiguracji bramki deskryptora dostępu do baz danych (gdzie ustawia się m.in. informacje o połączeniu Oracle, tryb identyfikacji, parametry wysyłania plików). 440
Środowisko Oracle Application Server w internetowej aplikacji inteligentnego systemu lingwistycznego Rys. 2. Zdefiniowane przykładowe deskryptory dostępu do baz danych Rys. 3. Konfiguracja przykładowego deskryptora dostępu do baz danych Konfiguracja zapisywana jest do pliku tekstowego wdbsrv.app w katalogu serwera http który dostępny jest w podanej lokalizacji : ORACLE_HOME/Apache/modplsql/cfg/ Przy właściwie ustawionym deskryptorze dostępu procedury można wywołać przez podanie ich nazwy w przeglądarce według opisu: http:/nazwa_serwera/pls/nazwa_deskryptora/procedura lub http:/nazwa_serwera/pls/nazwa_deskryptora/nazwa_pakietu.procedura 4 Wbudowane pakiety Web Toolkit języka PL/SQL Oracle zawiera grupę wbudowanych pakietów PL/SQL zwanych PL/SQL Web Toolkit. Głównym zadaniem tych pakietów jest generowanie kodu HTML i przesyłanie go do przeglądarki na komputerze klienta za pośrednictwem modułu serwera Apache o nazwie mod_plsql. PL/SQL Web Toolkit składa się z wybranych pakietów: htp i htf, owa_cache, owa_cookie, owa_image, owa_opt_lock, owa_pattern, owa_sec, owa_text, owa_util. Podstawowym i najczęściej wykorzystywanym systemowym pakietem jest pakiet Hyper Text Procedures (htp) generujący znaczniki HTML natomiast pakiet Hyper Text Functions (htf) zawiera funkcje. 441
S. Wiak, P. Drzymała, H. Welfle, M. Dems Pakiet owa_cookie służy do przechowywania po stronie klienta użytecznych informacji. Ze względu na wydajność aplikacji powinno stosować się cookie a nie ukryte pola formularza. W pakiecie owa_cookie znajdują się procedury i funkcje, pozwalające wysyłać cookies do przeglądarki i je z niej odczytywać. Pokazane są w tabeli 1. Tabela 1. Procedury i funkcje pakietu owa_cookie Nazwa funkcji lub procedury Owa_cookie.send Owa_cookie.get_all Owa_cookie.get Owa_cookie.remove Przeznaczenie procedura wysyłająca ciasteczka do komputera klienta procedura czytająca zawartość wszystkich ciasteczek funkcja odpowiadająca za przeczytanie zawartości ciasteczka procedura usuwająca ciasteczko 5 Opis i charakterystyka aplikacji Należy zaznaczyć, że system inteligentnej lingwistycznej bazy danych form językowych był projektowany i powstawał w środowisku rozproszonym tzn. algorytmy implementowane były w systemie z równoległym wprowadzaniem słowników funkcji językowych przez wiele osób. Do realizacji tego celu zaistniała potrzeba wykorzystania globalnego medium transmisji informacji i sieci komunikacyjnych - Internetu. Autorzy musieli zatem zadbać o bezpieczeństwo architektury na wielu płaszczyznach dostępu i zabezpieczeń projektu. Do realizacji wymienionego celu budowy procedur przetwarzania zadań lingwistycznych na podstawie sprecyzowanych algorytmów autorzy zdecydowali się wykorzystać: Kompletne rozwiązanie bazodanowe i analityczne Oracle Application Server OAS (Rys. 4), przeznaczone do szybkiego tworzenia nowej generacji aplikacji ukierunkowanych dla Internetu, w tym środowisko serwera WWW - Apache z implementacją protokołu kryptografii transmisji danych SSL przeznaczonego do zadań komercyjnych w tzw. e-businnessie tzn. zadań dla których stawia się najwyższe wymagania co do bezpieczeństwa. Rozwijający się obecnie język PL/SQL w pakiecie Web Toolkit. PL/SQL jest proceduralnym rozszerzeniem języka SQL, umożliwiającym wykonanie rozkazów warunkowych, pętli itp. w połączeniu z zapytaniami do bazy. Procedury napisane w PL/SQL mogą składać się z bloków, które z kolei mogą posiadać własne lokalne zmienne pętle oraz obsługę błędów w tym mogą generować strony w oparciu o znaczniki HTML. 442
Środowisko Oracle Application Server w internetowej aplikacji inteligentnego systemu lingwistycznego 1. The Oracle HTTP Server receives a PL/SQL Server Page request from a client browser. 2. The Oracle HTTP Server routes the request to the PL/SQL Gateway. 3. The request is forwarded by the PL/SQL Gateway to the Oracle Database. 4. The PL/SQL Gateway prepares the call parameters, and invokes the PL/SQL procedure in the application. 5. The PL/SQL procedure generates an HTML page using data and the PL/SQL Web Toolkit accessed from the database. 6. The response is returned to the PL/SQL Gateway. 7. The Oracle HTTP Server sends the response to the client browser. Rys. 4. Schemat wymiany informacji w architekturze trójwarstwowej [1] Oracle Application Server wspiera internetowe standardy XML oraz HTTP. Wykorzystanie środowiska wydatnie obniży czas potrzebny do uruchomienia aplikacji funkcji komunikacyjnych, czy hurtowni danych form językowych, przy równoczesnym zapewnieniu skalowalności potrzebnej w najbardziej wymagających scenariuszach lingwistycznych. Przykład zawartości tabeli wybranych czasowników z parametrami przedstawiony został na rys. 5. Pozostałe kategorie gramatyczne: rzeczowników, przymiotników, przyimków przedstawione zostały w artykule [2]. Analiza zdań prostych oparta jest na funkcjach, których zasada działania wykorzystuje rozbudowane bloki wyszukiwania podmiotu - na zasadzie śledzenia składni budowy zdania a dokładniej określonego rzeczownika w stosunku do wyznaczonego metapredykatu. Procedury i funkcje przeznaczone do obsługi Inteligentnej Lingwistycznej Bazy Danych przechowywane są w pakietach z wykorzystaniem PL/SQL. Przykładowy pakiet z procedurą wprowadzania danych przedstawiony został na rys. 6. Komputerowy słownik operatorów wykonany został na platformie Oracle 9i Database i zawiera kilka tysięcy elementów funkcji językowych zgromadzonych w postaci tabelarycznej. 443
S. Wiak, P. Drzymała, H. Welfle, M. Dems Rys. 5. Wybrane czasowniki z parametrami przedstawione w środowisku Enterprise Manager Oracle 9i Rys. 6. Przykładowy pakiet zawierający procedurę przechowywaną odpowiedzialną za wprowadzanie danych do analizatora tekstu. Przykład początkowej strony aplikacji obsługującej dla zdań prostych system słownika lingwistycznej bazy danych przedstawiony został na rys. 7. 444
Środowisko Oracle Application Server w internetowej aplikacji inteligentnego systemu lingwistycznego Rys. 7. Początkowa strona aplikacji Inteligentnej lingwistycznej bazy danych 6 Podsumowanie Oracle Application Serwer oraz system Oralce9i Database potrafi sprostać wszystkim wyzwaniom, jakie stawia przed nią rynek, a zwłaszcza rynek rozwiązań biznesowych. Posiada on pełen pakiet narzędzi i usług, które mogą wspierać rozwój firm i pomagać przy zwiększaniu ich rentowności. Oracle 9i to wszechstronny produkt, będący uniwersalnym serwerem danych, zaprojektowany z uwzględnieniem możliwości prowadzenia działalności w Internecie. Jest doskonałym rozwiązaniem dla przedsięwzięć w których stosowane są najnowsze techniki zarządzania danymi. Literatura 1. Oracle9i Application Server Oracle, Using the PL/SQL Gateway, Release 1 (v1.0.2.2), May 2001,Part No. A90099-01. 2. Drzymała P.,Welfle H.,Wiak S., Habrajska G., Łazarow E., Awdiejew A.: Intelligent Linguistic Database Systems. FCCS 2005 Bronisławowo. 3. Adjejew A.: Gramatyka komunikacyjna. Wydawnictwo Naukowe PWN, Warszawa 1999. 4. Habrajska G.: Presupozycja - kondensacja implikatura. Język w komunikacji, t.1, Łódź 2001. 5. Habrajska G.: Kondensacja i skrótowość w komunikacji przez komputer. Słowo w tekście, przekładzie i słowniku, ed. Peter Lang, Europäischer Verlag der Wissenchaften, Sonderdruck 2002. 445