Zastosowanie Oracle Business Intelligence Beans w
Transkrypt
Zastosowanie Oracle Business Intelligence Beans w
X Konferencja PLOUG Kościelisko Październik 2004 Zastosowanie Oracle Business Intelligence Beans w budowaniu aplikacji OLAP Bartosz Bębel Politechnika Poznańska, Instytut Informatyki e-mail: [email protected] Abstrakt Oracle Business Intelligence Beans (w skrócie BI Beans) to zestaw komponentów JavaBeans, pozwalających na prostą i szybką implementację w aplikacji bazodanowej zaawansowanych mechanizmów przetwarzania analitycznego OLAP. Komponenty BI Beans dzielą się na trzy kategorie: komponenty prezentacyjne, takie jak wykresy i tabele do prezentacji danych, komponenty OLAP, umożliwiające zadawanie skomplikowanych zapytań analitycznych oraz komponenty katalogowe, których zadaniem jest przechowywanie i ogólnie pojęte zarządzanie obiektami analitycznymi, takimi jak: raporty, wykresy, zapytania i inne, definiowanymi zarówno przez projektanta w trakcie budowania aplikacji, jak i przez użytkownika podczas pracy z aplikacją. Wykład przedstawi podstawy instalacji, konfiguracji i stosowania komponentów BI Beans w aplikacjach OLAP. 170 Bartosz Bębel Zastosowanie Oracle Business Intelligence Beans w budowaniu aplikacji OLAP 171 1. Wstęp Projektanci aplikacji dla analityków, pracujących z magazynami danych, stają przed problemem: jak szybko zaimplementować w aplikacji funkcjonalność, dzięki której użytkownik, posługując się intuicyjnym interfejsem będzie mógł: • samodzielnie definiować skomplikowane zapytania analityczne do bazy danych, • uzyskać wizualizację wyników zapytań w formie zestawień danych i wykresów, w miarę możliwości konfigurowalnych. Co więcej, różni użytkownicy potrzebują różnych klas narzędzi: z jednej strony aplikacji analitycznych o dużych możliwościach konfiguracyjnych, z drugiej strony lekkich aplikacji webowych, wyświetlających jedynie wybrane zestawienia, itd. Propozycją Oracle w obszarze problematyki projektowania aplikacji OLAP są komponenty JavaBeans o nazwie Oracle Business Intelligence Beans. Obecnie dostępna wersja opisana jest numerem 9.0.4 (wrzesień 2004). Oracle proponuje integrację komponentów z własnym środowiskiem budowy aplikacji Oracle JDeveloper. Niniejszy artykuł prezentuje ogólny opis technologii BI Beans. W punkcie 2. przedstawione zostaną informacje o modelu JavaBeans. Punkt 3. opisuje różne rodzaje komponentów BI Beans. Punkt 4. prezentuje proces instalacji komponentów, w punkcie 5. omówiony zostanie proces budowy aplikacji przy użyciu BI Beans w środowisku Oracle JDeveloper. Punkt 6. podsumowuje artykuł. 2. Komponenty JavaBeans JavaBeans to model przenośnych komponentów programowych, służących do wizualnego tworzenia aplikacji. Utworzenie komponentu polega na zaimplementowaniu oferowanej przez niego funkcjonalności w postaci klasy języka Java o ustalonej konwencji nazewnictwa metod, a następnie spakowaniu jej wraz z dodatkowymi informacjami w postaci pliku tzw. manifestu do archiwum JAR, będącego standardowym pojemnikiem komponentów Java Beans; w takiej postaci komponenty są dalej publikowane w celu użycia ich przez twórców aplikacji. Wizualne tworzenie aplikacji jest jedną z fundamentalnych cech modelu JavaBeans. Środowisko programistyczne budowy aplikacji (IDE), działające w technologii JavaBeans (np. Borland JBuilder, Oracle JDeveloper), oferuje twórcy paletę komponentów, z których ten wybiera interesujący go komponent i przeciąga na formatkę tworzonej aplikacji. Środowisko automatycznie wygeneruje odpowiedni kod, który utworzy komponent wraz z oferowaną przez niego funkcjonalnością w powstającej aplikacji. Tworzenie aplikacji w technologii JavaBeans można przedstawić jako składanie jej z „klocków” – komponentów. Twórca w trakcie projektowania ustala charakterystyki komponentu, nazywane właściwościami, dostępne w środowisku najczęściej w postaci palet właściwości. Właściwości określają np. nazwę i wygląd komponentu w działającej aplikacji, jego zachowanie, itd. Z kolei zdarzenia komponentu pozwalają twórcy aplikacji określić, co się ma stać w momencie wystąpienia danej sytuacji w ramach komponentu (np. dla komponentu będącego przyciskiem interfejsu użytkownika – po kliknięciu na nim myszką). Programista wiąże z danym zdarzeniem odpowiedni kod, który ma zostać wykonany po wystąpieniu tego zdarzenia. Często komponent jest również wyposażony w zbiór metod, pozwalający programiście na manipulację komponentem w trakcie działania aplikacji. Oprócz licznej grupy komponentów, implementujących elementy graficzne aplikacji (np. elementy interfejsu użytkownika: przyciski, suwaki, pola tekstowe), istnieją również komponenty nie posiadające w działającej aplikacji reprezentacji wizualnej, a jedynie dostarczające jej odpowiedniej funkcjonalności (np. umożliwiające połączenie aplikacji z bazą danych). Ich użycie w procesie tworzenia aplikacji jest nadal wizualne. 172 Bartosz Bębel Środowiska do budowy aplikacji, działające w technologii JavaBeans, potrafią samodzielnie „zanalizować” dostarczony im komponent JavaBeans (najczęściej po prostu skopiowany do określonego katalogu), wydobyć zbiór jego właściwości i zdarzeń wraz z kodem potrzebnym do zaimplementowania komponentu, wreszcie dodać sam komponent do palety komponentów oferowanych twórcy aplikacji (cały proces nosi nazwę introspekcji). Dzięki temu twórcy aplikacji mogą w prosty sposób korzystać z dużego zbioru dostępnych komponentów JavaBeans, a programiści, udostępniający zaprojektowane przez siebie komponenty, nie martwią się o proces ich właściwej instalacji. 3. Oracle Business Intelligence Beans Oracle dostarcza zestaw komponentów JavaBeans, nazwanych Business Intelligence Beans (w skrócie BI Beans), służących do szybkiego i prostego tworzenia biznesowych aplikacji analitycznych. BI Beans są ściśle związane z rozszerzeniem OLAP bazy danych Oracle. Miejsce BI Beans w architekturze bazy danych przedstawiono na rysunku 1. Rys. 1. Miejsce BI Beans w architekturze bazy danych Komponenty BI Beans dzielą się na trzy główne kategorie: komponenty prezentacyjne, komponenty OLAP oraz komponenty katalogowe. Komponenty prezentacyjne Służą do prezentacji użytkownikowi aplikacji wyników zapytań analitycznych do bazy danych w postaci wykresów, tablic oraz arkuszy. Komponenty posiadają pokaźny zbiór właściwości, pozwalających na ich dostosowanie do konkretnych potrzeb użytkowników, wraz z zestawem metod, umożliwiających manipulację komponentami w trakcie działania aplikacji. Wszystkie komponenty prezentacyjne wyposażone są również w możliwość tworzenia wydruków. Wykres. Komponent oferuje ponad siedemdziesiąt typów różnorakich wykresów (słupkowe, kołowe, liniowe i inne), wyposażonych w szerokie możliwości konfiguracyjne, takich jak wybór różnorakich układów, sposób prezentacji legendy, wybór serii danych, układ osi, kolory, opis danych, itd. Wykresy zapewniają końcowemu użytkownikowi wysoki stopień interaktywności, pozwalając na takie operacje jak drążenie, zwijanie, obracanie, filtrowanie danych, itd. Tablica i arkusz. Prezentują dane w postaci tabelarycznej, dając użytkownikowi możliwość wpływania na sposób wyświetlania informacji przez wykonywanie takich operacji, jak drążenie i zwijanie, obracanie, filtrowanie, formatowanie warunkowe komórek (np. zmiana koloru tła w zależności od wartości komórki), itd. Na rysunku 2 przedstawiono przykładową aplikację, używającą komponentu wykresu i arkusza. Zastosowanie Oracle Business Intelligence Beans w budowaniu aplikacji OLAP 173 Rys. 2. Przykładowa aplikacja z wykresem i arkuszem Komponenty OLAP Zapewniają definiowane logiki biznesowej w aplikacji. Dzięki oddzieleniu warstwy implementującej logikę biznesową od warstwy prezentacyjnej zapewniono możliwość współdzielenia kodu logiki biznesowej przez różne aplikacje klienckie. Połączenie. Komponent zapewniający dołączenie aplikacji do serwera bazy danych Oracle. Aplikacja analityczna może wykorzystywać wiele połączeń do różnych baz danych. Budowniczy Zapytań (ang. QueryBuilder). Komponent wyposażony w prosty interfejs, umożliwiający użytkownikowi nie znającemu języka SQL definiowanie skomplikowanych zapytań analitycznych. Komponent dostarcza użytkownikowi listę miar i wymiarów bazy danych oraz szablony najczęstszych zapytań (np. „10 najlepiej sprzedających się produktów”); zadaniem użytkownika jest wskazanie odpowiednich elementów i ewentualna zmiana ich właściwości. Wybierane elementy użytkownik może zachować jako „ulubione” celem późniejszego szybszego dostępu do nich przy definiowaniu kolejnych zapytań. Okno Budowniczego Zapytań, wyświetlającego dostępne miary i wymiary przykładowego magazynu danych, przedstawiono na rysunku 3. Rys. 3. Budowniczy Wyliczeń i Budowniczy Zapytań 174 Bartosz Bębel Budowniczy Wyliczeń (ang. Calculation Builder). Komponent pozwalający użytkownikowi na definiowanie nowych wyliczeń na podstawie istniejących w bazie wartości (miar lub wymiarów). I tu również użytkownik nie musi znać języka SQL, posługując się listami elementów i predefiniowanych szablonów najczęstszych wyliczeń. Okno Budowniczego Wyliczeń przedstawiono na rysunku 3. Komponenty katalogowe Katalog. Zapewnia bezpieczny mechanizm składowania definicji obiektów, utworzonych przez projektanta aplikacji lub jej końcowego użytkownika: wykresów, tablic, arkuszy, zapytań i wyliczeń; format składowanych informacji to XML. Obiekty w katalogu mogą być współdzielone przez wielu użytkowników końcowych, wykorzystujących je w swoich aplikacjach analitycznych. Katalog zorganizowany jest w postaci folderów; możliwe jest ograniczenie dostępu użytkowników do poszczególnych folderów. Definicje obiektów mogą być składowane w lokalnym systemie plików, wówczas mamy do czynienia z katalogiem lokalnym, lub w bazie danych, wówczas mówimy o katalogu zdalnym. Pierwszy sposób składowania jest najczęściej wykorzystywany w czasie budowania aplikacji przez projektanta; wykorzystywane w aplikacji obiekty zostają potem skopiowane do bazy danych jako środowiska skalowalnego, umożliwiającego korzystanie z nich przez szerszą grupę użytkowników. Katalog ma możliwość efektywnego przeszukiwania; specjalna aplikacja, BI Explorer, pozwala nie tylko na przeglądanie obiektów katalogu, ale także na określanie praw dostępu użytkowników. Zarządca składowania. Zapewnia dostęp aplikacji do składowanych w katalogu (lokalnym i zdalnym) definicji obiektów. Zarządca metadanych. Zapewnia połączenie metadanych, zdefiniowanych w katalogu komponentów BI Beans z katalogiem OLAP serwera bazy danych, dostarczając m.in. informacje o miarach i wymiarach, zdefiniowanych w bazie danych. Informacje te są wykorzystywane przez inne komponenty, np. przez Budowniczego Wyliczeń czy też Budowniczego Zapytań przy tworzeniu zapytań. 4. Instalacja komponentów BI Beans Proces instalacji komponentów BI Beans przebiega w dwóch etapach. Pierwszym etap to instalacja plików w lokalnym systemie plików. Realizuje to automatyczny instalator. Praktycznie cały proces instalacji to skopiowanie odpowiednich plików do podkatalogu o nazwie bibeans w katalogu instalacyjnym Oracle JDeveloper. Drugi etap to dostosowanie bazy danych do aplikacji używających BI Beans. Wersja 9.0.4 komponentów BI Beans współpracuje z wersją Enterprise Edition serwera bazy danych Oracle min. 9.2.0.3 z zainstalowanym rozszerzeniem OLAP. Ostatnim zadaniem jest instalacja w bazie danych katalogu komponentów BI Beans w przypadku późniejszego składowania komponentów w bazie danych. 5. Proces budowy aplikacji OLAP wykorzystującej BI Beans Oracle dokonał integracji BI Beans z własnym środowiskiem tworzenia aplikacji Oracle JDeveloper, udostępniając szeroką gamę różnorodnych kreatorów automatyzujących poszczególne kroki tworzenia aplikacji. Jednak z racji zachowania standardu JavaBeans komponenty mogą zostać wykorzystywane również przez środowiska programistyczne innych producentów. W zależności od potrzeb użytkowników, możliwy jest wybór interfejsu budowanej aplikacji. Użytkownikom, dokonującym zaawansowanych analiz danych i wymagającym od aplikacji dużej interaktywności w postaci możliwości zmiany szeregu parametrów celem jak najlepszego dostosowania do specyficznych wymagań, można zaproponować aplikację zbudowaną w Javie. Z kolei użytkownicy o mniejszych wymagań, oczekujący od aplikacji dużej szybkości działania kosztem zmniejszenia funkcjonalności, czy też chcących dokonać integracji aplikacji OLAP w ramy istniejących aplikacji webowych, otrzymają lekką aplikację HTML/JSP. Zastosowanie Oracle Business Intelligence Beans w budowaniu aplikacji OLAP 175 Budowa aplikacji OLAP przy użyciu BI Beans sprowadza się do realizacji trzech kroków: 1. zaprojektowanie obiektów prezentacyjnych i OLAP, 2. zaprojektowanie interfejsu użytkownika, 3. zaimplementowanie zaawansowanej logiki biznesowej (krok opcjonalny). W dalszej części artykułu skoncentruję się na przebiegu procesu budowy aplikacji w Oracle JDeveloper. Zaprojektowanie obiektów prezentacyjnych i OLAP Pierwszym krokiem w procesie tworzenia obiektów prezentacyjnych i OLAP projektowanej aplikacji jest zdefiniowanie obiektu o nazwie BI Designer, służącym jako kontener obiektów BI Beans (BI Designer jest używany jedynie w fazie projektowania, nie wchodzi w skład działającej aplikacji) i wskazującym źródło danych OLAP. Dopiero w ramach obiektu BI Designer projektant aplikacji może dodawać obiekty BI Beans: prezentacyjne – wykresy, arkusze i tablice oraz komponenty OLAP – zapytania i wyliczenia. Przy definicji obiektów prezentacyjnych projektant posługuje się Kreatorem Prezentacji (ang. Presentation Wizard), natomiast definiując obiekty typu zapytanie i wyliczenie – wspomnianymi już wcześniej: Budowniczym Zapytań i Budowniczym Wyliczeń. Kreatory w szeregu kroków przeprowadzają projektanta przez poszczególne fazy definicji obiektów. Projektant wskazuje źródło danych OLAP dla obiektu (może to być istniejące, zdefiniowane wcześniej połączenie; jeśli obiekt ma korzystać z nowego połączenia, BI Designer uruchamia kreator połączeń) i wybiera miejsce składowania utworzonego obiektu (katalog lokalny lub zdalny). Z użyciem BI Designera projektant może dokonać również skopiowania zdefiniowanego wcześniej obiektu pomiędzy katalogami. Wynikiem omawianej fazy są definicje obiektów, składowane w katalogu (lokalnym lub zdalnym). Rysunek 4. przedstawia JDeveloper po zakończeniu definicji obiektów: wyliczenia o nazwie QuotaVariance, arkusza o nazwie Sales Analysis Crosstab i wykresu o nazwie Sales Analysis Graph. Projektant może dokonywać modyfikacji zdefiniowanych obiektów korzystając z palet właściwości lub ponownie uruchamiając odpowiednie kreatory. Rys. 4. JDeveloper po zakończeniu definicji obiektów projektowanej aplikacji 176 Bartosz Bębel Zaprojektowanie interfejsu użytkownika W kolejnym kroku procesu projektant musi określić rodzaj interfejsu użytkownika budowanej aplikacji: interfejs Java czy też interfejs JSP/HTML. Po dokonaniu wyboru projektant jest prowadzony przez odpowiedni kreator (w zależności od wybranego typu interfejsu) przez szereg kroków projektowania interfejsu. W jednym z kroków projektant wskazuje, które obiekty prezentacyjne BI Beans, istniejące w katalogu (utworzone w kroku projektowania obiektów prezentacyjnych i OLAP), mają być wyświetlane w aplikacji. Projektant może poprawić wygenerowany automatycznie interfejs używając narzędzia UI Editor (wchodzącego w skład środowiska JDeveloper), dodając dodatkowe elementy interfejsu. Środowisko JDeveloper po zakończeniu procesu projektowania interfejsu użytkownika przedstawiono na rysunku 5. Należy podkreślić, że zaprojektowanie w pełni funkcjonalnej aplikacji nie pociąga za sobą konieczności napisania przez projektanta linii kodu. Cały kod, tworzący interfejs użytkownika i wyświetlający określone obiekty BI Beans w aplikacji, zostaje wygenerowany automatycznie. Po pomyślnym ukończeniu omawianej fazy praktycznie można zakończyć proces budowy aplikacji. Aplikacja posiada pełną funkcjonalność: uzyskuje połączenie z bazą danych, wysyła do bazy danych zapytania analityczne, a ich wyniki prezentuje w postaci wykresów, tablic i arkuszy. Użytkownik aplikacji ma wpływ na formę prezentacji danych (np. zmianę typu wykresu, zmianę kolorów wyświetlanych danych, itd.), może również wykonywać zestaw określonych operacji (np. drążenie na wykresie). Rys. 5. Wygenerowany interfejs użytkownika w JDeveloper Zaimplementowanie logiki biznesowej Ostatni, opcjonalny krok procesu budowy aplikacji OLAP. Projektant może uzupełnić funkcjonalność aplikacji, dodając kod w postaci klas języka Java, implementujących np. złożone zależności biznesowe. Zastosowanie Oracle Business Intelligence Beans w budowaniu aplikacji OLAP 177 Po przejściu omówionych powyżej faz aplikacja OLAP jest gotowa do dostarczenia użytkownikowi końcowemu. Oracle JDeveloper wspiera proces dystrybucji aplikacji, np. dla aplikacji Java tworząc archiwum JAR ze wszystkimi niezbędnymi do pracy aplikacji składnikami. Należy wspomnieć, że dostarczona przez firmę Oracle wersja instalacyjna komponentów BI Beans wyposażona jest w zestaw tutoriali, zapoznających programistę z technologią BI Beans. Tutoriale prowadzą programistę krok po kroku przez proces tworzenia kilku przykładowych aplikacji. Wyczerpująca dokumentacja tutoriali wraz z dokładną dokumentacją samych komponentów BI Beans umożliwia programiście szybkie uzyskanie wiedzy na temat stosowania komponentów w aplikacjach OLAP. 6. Podsumowanie Komponenty Oracle Business Intelligence Beans pozwalają w łatwy i szybki sposób na zbudowanie aplikacji, udostępniającej użytkownikowi końcowemu zaawansowane możliwości analizy i prezentacji danych OLAP. Daleko idąca integracja komponentów ze środowiskiem budowy aplikacji Oracle JDeveloper znacznie upraszcza i przyspiesza cały proces. Również projektanci aplikacji, którzy chcą włączyć do budowanych przez siebie aplikacji w innych środowiskach komponenty OLAP, powinni zwrócić uwagę na BI Beans jako ciekawą alternatywę dla projektowania swoich własnych obiektów dostępu i prezentacji danych OLAP. Bibliografia [Eck03] [Eng97] [OraBI] Eckel B.: Thinking in Java. Edycja polska. Helion, 2003, ISBN 83-7361-133-9. Englander R.: Developing Java Beans. O’Reilly, 1997, ISBN 1-56592-289-1. Oracle9i Business Intelligence Beans. An Oracle White Paper, 2002.