Moduł HDB jest interpreterem prostego języka skryptowego, który służy do generowania plików tekstowych na podstawie zawartości baz danych. Jego podstawowym zadaniem jest generowanie "na bieżąco" stron WWW zawierających dane uzyskane za pomocą zapytań sformułowanych w języku SQL. Jest doskonałym i zarazem prostym narzędziem do budowy aplikacji bazodanowych działających w przeglądarkach WWW z wykorzystaniem protokołu HTTP.
Zasada działania
Serwer HDB oraz serwer WWW są programami działającymi w systemie nieustannie. W chwili, gdy występuje potrzeba obsługi zapytania przez serwer HDB, serwer WWW uruchamia program HDBdisp i przesyła za jego pośrednictwem dane otrzymane od klienta do serwera HDB. Po obsłużeniu zapytania, serwer HDB, również za pośrednictwem programu HDBdisp, zwraca stronę WWW zawierającą dane wynikowe do serwera WWW, a ten, poprzez Internet, przesyła ją do przeglądarki WWW, która wysłała zapytanie.
Główne cechy
Moduł HDB odznacza się cechami, które czynią go atrakcyjnym, łatwym do stosowania narzędziem, umożliwiającym szybkie tworzenie aplikacji bazodanowych wykorzystujących Internet i powszechnie stosowany protokół HTTP. Umożliwia przy tym niezależność od platformy sprzętowej/ systemowej.
HDB napisany został w dwóch następujących wersjach:
Aplikacja dla Windows NT, instalująca się w systemie jako tzw. serwis Windows NT.
Program napisany w języku Java, a więc działający na niemal każdej platformie sprzętowej/systemowej. Dzięki dodatkowym programom wchodzącym w skład modułu HDB, może on zostać przekształcony w program działający w danym systemie operacyjnym w tle, a więc nie angażujący konsoli, przy czym:
- w systemie Windows NT serwer HDB (napisany w Javie) stanie się typowym serwisem rejestrującym się w panelu sterowania,
- w systemie Unix serwer HDB stanie się unixowym demonem.
Program HDBdisp musi być skompilowany indywidualnie dla każdego systemu operacyjnego, nie stanowi to jednak problemu z uwagi na mały stopień złożoności programu i przenośną implementację w języku C.
Skalowalność
Dzięki zastosowanej architekturze, możliwe jest łatwe skalowanie systemu. W szczególności serwer WWW, serwer HDB oraz serwer baz danych SQL mogą być umieszczone na trzech oddzielnych maszynach o innych systemach operacyjnych.
Podstawowe funkcje
Tworzenie aplikacji WWW przy pomocy modułu HDB polega na zaprojektowaniu struktury bazy danych oraz napisaniu szeregu skryptów HDB obsługujących każdy ekran aplikacji. Skrypty HDB są zwykłymi plikami HTML, w które wplecione są komendy interpretowane przez serwer HDB. Komendy te umożliwiają wykonywanie zapytań SQL na bazie danych. W efekcie, w miejscu komend HDB, na wynikowej stronie WWW pojawiają się dane pobrane z bazy danych.
Komendy skryptów HDB umożliwiają realizowanie następujących funkcji :
wykonywanie zapytań wybierających dane z bazy,
wstawianie danych z bazy do generowanej strony WWW,
wykonywanie pewnych sekcji skryptu warunkowo (np. na podstawie danych z bazy, czy też danych od przeglądarki),
wykonywanie pętli,
wykonywanie zapytań akcji (modyfikowanie bazy SQL),
formatowanie generowanych danych (dat, liczb, konwersja polskich znaków),
szereg funkcji ułatwiających generowanie wydruków - nie mają one większego zastosowania przy wykorzystaniu modułu HDB do tworzenia aplikacji WWW, lecz są pożyteczne do dynamicznego generowania przy jego pomocy wydruków na drukarkę (formatowanie nagłówków, stopek, sekcji).
Dodatkowym, wielkim atutem modułu HDB napisanego w Javie, jest możliwość tworzenia własnych funkcji, które mogą być następnie wykorzystane na poziomie skryptów. Wystarczy stworzyć w języku Java według odpowiednich wytycznych zestaw własnych funkcji, skompilować stworzony moduł, a następnie zameldować go w odpowiednim pliku konfiguracyjnym.
Zalety
Podsumowując krótką charakterystykę modułu, należy stwierdzić, że posiada on wiele zalet, które powinny skłonić firmy poszukujące narzędzia umożliwiającego dostęp do baz danych przez WWW, do zwrócenia uwagi właśnie na HEUTHES® - HDB.
Niezależność od platformy
Ponieważ moduł HDB jest napisany w Javie, może być on używany na każdej platformie sprzętowej, pod każdym systemem operacyjnym, na którym istnieje maszyna wirtualna Java. Dotychczas testowany był na platformach Windows NT, Linux, Solaris.
Niezależność od serwera baz danych
Niezależność od serwera baz danych - serwer HDB nie jest związany z żadnym konkretnym serwerem bazodanowym. Do komunikacji wykorzystywany jest mechanizm JDBC (wersja Java) lub ODBC (wersja Windows NT), zgodny jest więc z każdym serwerem bazodanowym, na który istnieje odpowiedni sterownik JDBC/ODBC. Testowany był na bazie danych MS SQL Server.
Niezależność od serwera www
Serwer HDB jest powiązany z serwerem WWW przy pomocy małego programu HDBdisp, więc jest od niego niezależny. Mechanizm CGI wykorzystywany przez program HDBdisp jest wspierany przez praktycznie każdy serwer WWW, więc moduł HDB można stosować z niemal każdym takim serwerem. Testowany był na serwerach Internet Information Server, Apache, Sun Web Server.
Prostota
Skrypty HDB są stronami napisanymi w języku HTML, w które wplecione są komendy interpretowane przez server HDB, co znacznie ułatwia ich tworzenie.
Rozszerzalność
Użytkownik może dołączyć do serwera HDB własny zestaw funkcji napisanych w języku Java, np. realizujących obliczenia arytmetyczne, szyfrujących, analizujących ciągi znaków.
HDB NG 2
Dzięki zastosowaniu uniwersalnego serwera aplikacyjnego HDB NG 2, programy napisane w języku HDB, po transkompilowaniu ich do postaci klas języka Java są wykonywane przez serwer aplikacyjny. HDB pozwala na
tworzenie aplikacji współpracujących z dowolną, relacyjną bazą danych (np. Postgre-SQL, Oracle, MS SQL Server) i pracujących na różnorodnych platformach sprzętowych.
Serwer aplikacyjny HDB NG 2 zawiera:
Dzienniki - gromadzą dane na temat jakości pracy systemu, wywoływanych skryptów, funkcji, zdarzeń etc.
HDB Java Classes - skrypty HDB transkompilowane do klas języka Java, zawierające kod realizujący logikę aplikacyjną.
Job Queue Server - mechanizm serwisów do aplikacji HDB.
JDBC - sterowniki bazodanowe dostarczane przez producenta bazy danych.
Komponenty JS / biblioteka CROSS - funkcje, obiekty i metody napisane w języku JavaScript uniezależniające aplikację i programistę od zainstalowanego
na stacji roboczej systemu operacyjnego i przeglądarki internetowej.
Konfiguracja serwera i skryptów - pliki tekstowe umożliwiające ustalenie wartości parametrów dla serwera i aplikacji.
Minimal Web Server - wbudowany serwer WWW, o ograniczonych możliwościach, wykorzystywany podczas testów i debugowania.
Pamięć sesji - moduł umożliwia zapis danych o sesji użytkownika oraz ich ewentualny późniejszy odczyt w przypadku restartu serwera HDB NG 2, co pozwala utrzymać ciągłość pracy użytkowników z systemem.
Serwer WWW Jetty - serwer obsługujący żądania przeglądarki WWW poprzez protokół HTTP lub HTTPS.
Serwisowe skrypty HDB - w przypadku konieczności wprowadzenia zmiany w skrypcie skompilowanym istnieje możliwość jego szybkiego zastąpienia nieskompilowanym nowym skryptem HDB (nawet podczas działania systemu), bez konieczności kompilacji całej aplikacji. Skrypt ten będzie przetwarzany przez interpreter języka HDB do czasu dostarczenia nowej wersji aplikacji.
SMTP – umożliwia wysyłanie poczty.
SOAP Server - realizacja opartego o język XML protokołu wywoływania zdalnego dostępu do obiektów, przydatny w implementacjach SOA.
TAPIR Server - serwer wykorzystywany do konwersji formatu dokumentów w locie bądź off-line w trybie wsadowym i do obsługi OCR. Zmieniając zawartość plików na format tekstowy obsługuje również indeksowanie dokumentów, które jest wykorzystywane w procesie wyszukiwania całotekstowego. Ostatnią funkcją jest obsługa graficznych szablonów formularzy XML.
HDB Cloud Monitor - serwer monitorujący. Wizualizuje aktualny stan poszczególnych elementów chmury obliczeniowej i reaguje na przekroczenie dopuszczalnych wartości. Może wywoływać teleportację maszyn wirtualnych w zależności od obciążenia, zastępować pracę serwerów głównych serwerami zapasowymi, przełączać serwer bazy danych na maszyny zapasowe oraz zapewnia funkcję analizy logów systemowych.
Warstwa abstrakcji bazy danych - umożliwia równoległe działanie różnych baz danych od wielu producentów, uniezależnia od różnych reprezentacji danych dla typów takich jak daty, liczby.
WebDAV - wsparcie dla DMS, umożliwia m.in. podgląd i edycję plików w oknie przeglądarki WWW i ich bezpośredni zapis na serwerze.
Zarządca puli połączeń - przyspiesza pracę dzięki powtórnemu użyciu istniejących połączeń bazodanowych, umożliwia ustawienie ograniczeń na liczbę połączeń, utrzymuje spójny stan połączeń (inicjuje, resetuje, zatwierdza transakcje).