Dwie warstwy i więcej

Oracle Internet Developer, oprócz programistycznych narzędzi, zawiera m.in. serwer bazy danych 9i.

Oracle Internet Developer, oprócz programistycznych narzędzi, zawiera m.in. serwer bazy danych 9i.

Jednym z podstawowych elementów Internet Developer Suite jest Oracle Developer - zestaw do szybkiego tworzenia prostych aplikacji bazodanowych. Można je składać z formatek, raportów i procedur PL/SQL.

Do konstruowania interfejsu służy Form Developer. Część pracy wykonują kreatory - programista nie musi np. pilnować kursorów ani obsługi transakcji. Środowisko Forms nie pozostawia dużej swobody twórcy aplikacji, ale za to pozwala szybko utworzyć podstawowy interfejs. Okna zaprojektowane przy użyciu Forms zawierają pasek nawigacyjny i menu standardowych operacji. Można kojarzyć określone procedury PL/SQL z przyciskami lub zdarzeniami. W Oracle Forms można też wykorzystywać dowolne kontrolki JavaBeans.

Do przygotowywania raportów jest przeznaczony Report Developer. Również w tym przypadku większość operacji wykonują kreatory. Na podstawie jednej definicji raportu można przygotować plik w postaci tekstowej, HTML i PDF. Wersja 6i zawiera mechanizm przechowywania raportów w pamięci podręcznej w postaci XML - dane generowane są raz, a następnie raport jest dostosowywany do wymagań użytkownika.

Oracle Developer zawiera także moduł do tworzenia wykresów. Można dokładnie określić postać wykresu i łatwo stworzyć interfejs, w którym użytkownik ma podawać parametry wykresu.

Translation Builder służy do szybkiego tłumaczenia interfejsu na różne języki. Co najważniejsze, to tłumaczenie może być prowadzone "obok" głównej aplikacji. Rozwiązanie to ma wady - tłumaczony jest tylko interfejs, a nie dostosowywana logika aplikacji. Z drugiej strony, minimalizuje jednak ryzyko, że wskutek błędów tłumacza aplikacja będzie działać nieprawidłowo.

W Oracle Developer znajdują się dwa narzędzia do tworzenia struktury bazy danych. Dość ubogi Schema Builder służy do graficznego tworzenia tabel i definiowania relacji pomiędzy polami. Query Designer pozwala graficznie zaprojektować kwerendy. Należy podkreślić, że oba narzędzia nie zwalniają programisty z konieczności ręcznego wpisywania długich fraz SQL.

Procedure Builder tworzy procedury w języku PL/SQL. W rzeczywistości jest to edytor tekstowy, w którym wpisywana jest treść procedur. Edytor wyświetla okno z "podpowiedziami" składni PL/SQL i składni procedur tworzonych przez użytkownika. Na uwagę zasługuje debugger, który pozwala dokładnie określić warunek stop (przy którym jest przerywane wykonywanie procedury). Dzięki temu unika się nużącego testowania procedur krok po kroku. Oracle oferuje również funkcję wygodnego śledzenia aplikacji klient/serwer, w tym płynnego przechodzenia pomiędzy kodem działającym po stronie klienta i po stronie serwera.

Developer jest przeznaczony głównie do pisania rozwiązań w architekturze klient/serwer. Pozwala jednak przenieść aplikację do architektury trójwarstwowej. Na serwerze aplikacyjnym mogą działać specjalne usługi Form Services i Report Services. Klient łączący się z serwerem WWW otrzymuje aplet, który komunikuje się z "wirtualną" aplikacją, działającą na serwerze iAS. Tą drogą rozwiązanie powstałe w Oracle Developer można bez zmian uruchomić na WWW. Nie jest to jednak prawdziwa architektura trójwarstwowa.

Oracle Designer

Innym narzędziem jest Oracle Designer. Połączono w nim elementy narzędzia do modelowania systemu bazodanowego i środowiska do pisania programów w Javie. Designer może na podstawie schematu procesów biznesowych wygenerować obiekty bazodanowe, komponenty realizujące logikę biznesową, a także interfejs użytkownika (w niektórych przypadkach na podstawie dobrego modelu powstaje niemal 100% kodu). Przy tym nie ogranicza programisty w takim stopniu, jak Developer. Pozwala też realizować złożone systemy w architekturze trójwarstwowej.

Kod aplikacji jest tworzony równolegle z modelem. Jest to przydatne zwłaszcza wtedy, gdy zmieniają się założenia projektu - przebudowywane są zarówno model, jak i kod, tak by rozwiązanie było nadal spójne.

Ciekawie rozwiązano kontrolę wersji. Każdy element (zarówno składowa modelu, jak i np. klasa pisana przez programistę) może być "wersjonowany". Przy tym Oracle Designer ma rozbudowane mechanizmy raportowania - można ustalić, kto wprowadził najwięcej zmian, uzyskać pełną statystykę pracy programistów z dokładnym określeniem modułów, nad którymi pracowali.

W zestawie Oracle dostarcza wyspecjalizowany pakiet RAD do pisania w Javie. Przy użyciu JDeveloper można pisać aplety, aplikacje klient/serwer, komponenty EJB do uruchomienia na serwerze iAS i tworzyć strony JSP. Można także pisać w Javie komponenty CORBA.

Główną zaletą pakietu są specjalne komponenty, dostarczane przez Oracle'a, realizujące pewne operacje biznesowe. JDeveloper potrafi na podstawie istniejącej tabeli (czy synonimu) utworzyć szkielet komponentu biznesowego, który "opakowuje" odwołania do bazy danych w taki sposób, że z punktu widzenia programu w Javie staje się on zwykłą klasą. W ten sposób relacyjne elementy bazy są automatycznie odwzorowywane w programie obiektowym. Oszczędza to dużo niewdzięcznej pracy programiście.

Pakiet wykorzystuje w wielu miejscach XML. Można definiować strony XSQL (XML określa sposób prezentacji danych, pochodzących z parametryzowanego zapytania SQL). XML Web Bean może na podstawie danych pobranych z komponentu biznesowego Oracle'a wygenerować dane jako XML. Niestety, nie ma na razie mechanizmu, który by w prosty sposób realizował usługi Web (np. za pośrednictwem protokołu SOAP).

Ciekawym pomysłem jest SQLJ. To odpowiednik EmbeddedSQL - pozwala osadzać wyrażenia SQL bezpośrednio w kodzie Javy. Specjalny translator SQLJ generuje na podstawie tych wyrażeń odwołania do interfejsu JDBC (bez udziału programisty). Co ważniejsze, odwołania SQL są sprawdzane w czasie kompilacji, tak więc część błędów może być wykryta nawet przed rozpoczęciem śledzenia programu.

Luźne więzy

Największą niedogodnością Internet Developer Suite jest brak integracji pomiędzy poszczególnymi programami - tak naprawdę są to oddzielne produkty, które pozwalają pisać aplikacje, wykorzystujące motor bazodanowy Oracle. Aby w pełni wykorzystać możliwości bazy danych Oracle 9i, często trzeba uciekać się do ręcznego pisania skryptów PL/SQL czy wykonywania poleceń w starym "unixowym" stylu. Jednak w porównaniu z poprzednimi wersjami obsługa wielu elementów systemu została znacznie uproszczona.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200