Majster zbiera uprawnienia

Obsługę DataWindow można także umieścić na serwerze aplikacyjnym. Do klienta przesyłana jest wtedy informacja o stanie/wyglądzie okna. Można tu wykorzystać skrypty JSP - klient, poruszając się po stronie HTML, generuje ciąg poleceń, które poprzez serwer WWW trafiają do serwera aplikacyjnego, w którym działa mechanizm DataWindow. W odpowiedzi, na podstawie parametrów DataWindow, skrypt JSP generuje nowy "wygląd" danych. Z punktu widzenia programisty istotne jest to, że tworząc komponent DataWindow, nie musi się on martwić o to, jak będzie on docelowo wyświetlany. Sybase zapewnia tutaj pełną - i nie wymagającą od programisty żadnych dodatkowych zabiegów - separację logiki DataWindow od warstwy prezentacji danych.

W PowerBuilder 9 komponent DataWindow może wymieniać dane w formacie XML. Struktura dokumentu XML może przy tym odwzorowywać strukturę danych DataWindow. Na tej samej zasadzie działa funkcja importowania danych. Z kolei funkcja eksportu umożliwia łatwą transformację danych nie tylko do XML, ale także - poprzez mechanizm XML-FO - do formatu PDF.

Odwzorowywanie danych między DataWindow a hierarchiczną strukturą XML ma jednak ograniczenia. Ponieważ komponent DataWindow korzysta standardowo z danych relacyjnych, najlepiej współpracuje z dokumentami XML reprezentującymi pojedynczą "płaską" tabelę. Zastosowany w PowerBuilder mechanizm transformacji wykorzystuje opracowany przez Sybase interfejs PBDOM (PowerBuilder Document Object Model), mający cechy zarówno interfejsu API DOM opracowanego przez W3C, jak i implementacji DOM dla języka Java - API JDOM. Interfejs PBDOM został zoptymalizowany właśnie pod kątem szybkiego importu/eksportu danych do/z DataWindow.

Sybase zapowiada, że przyszłe wersje PowerBuilder będą wspierać architekturę .Net Microsoftu. Obecnie oba środowiska mogą współpracować jedynie na poziomie usług Web. Wśród planowanych funkcji jest m.in. możliwość kompilacji kodu PowerScript do kodu pośredniego MSIL. Jeżeli rzeczywiście tak się stanie, PowerBuilder będzie bardzo elastycznym narzędziem. Programista zyska bowiem narzędzie łączące możliwości mechanizmu DataWindow upraszczającego tworzenie "formatek" do wprowadzania danych oraz bardzo wygodny mechanizm platformy .Net pod nazwą DataSet. Umożliwia on przechowywanie danych w formacie XML i traktowanie ich zarówno jako strukturę relacyjną, jak i dokument XML.

Z witryną na myśli

Aplikacje tworzone za pomocą PowerBuildera mogą obecnie mieć różną architekturę - zarówno typową klient/serwer, jak i wielowarstwową, wykorzystującą dowolny serwer aplikacji: Sybase EAServer, IBM WebSphere, BEA WebLogic i Microsoft Transaction Server oraz witryny internetowe. Programista może też tworzyć aplikację klient/serwer, a jednocześnie wzbogacić ją w interfejs internetowy. Sposób pracy jest praktycznie taki sam.

Do tworzenia aplikacji "dla Internetu" programista ma do dyspozycji dwa rozwiązania. W pierwszym, który można nazwać terminalowym, klasyczna aplikacja kliencka może zostać uruchomiona na serwerze aplikacyjnym EAServer, a przeglądarka otrzymuje jedynie zmiany zachodzące w interfejsie. PowerBuilder zawiera mechanizm GDT (Graphical Deployment Tool), pozwalający uruchomić dowolną okienkową aplikację napisaną w PB w oknie przeglądarki. Po stronie serwera działają wirtualne sesje odpowiadające poszczególnym klientom. Oczywiście, rozwiązanie to nie jest optymalne z punktu widzenia wydajności, wymagany jest bowiem potężny serwer. Niemniej pozwala szybko udostępnić w Internecie dowolną aplikację PB.

Znacznie lepsze efekty można osiągnąć, tworząc w PowerBuilder aplikacje od razu z myślą o zastosowaniu ich w Internecie. W wersji dziewiątej, oprócz PowerDynamo i Microsoft ASP, można w tym celu wykorzystać dowolny serwer obsługujący Java Server Pages. Programiści biegli w PowerScript - języku skryptowym PowerBuilder - docenią zapewne fakt, że nie muszą uczyć się JSP czy Javy. Sybase zadbał o ich wygodę. Strony HTML edytuje się w specjalnym edytorze - niemal tak samo jak projektuje się zwykłe formatki. Bardziej przypomina to pracę z edytorem tekstu niż kodu.

W praktyce niezbędna jest tylko znajomość ograniczeń interfejsu przeglądarkowego. Cała składnia związana z akcjami JSP czy dodatkowymi znacznikami jest obsługiwana przez PowerBuilder. Programista ma do dyspozycji zestaw okien, w których może ustawiać atrybuty poszczególnych znaczników lub nawet całych stron. Mechanizm ten umożliwia automatyczne generowanie wyglądu komponentu DataWindow jako strony JSP. Niestety, dostęp do "surowego" kodu JSP jest trochę utrudniony, ale w przypadku standardowych aplikacji prawdopodobnie nie będzie potrzebny.

Raporty duże i małe

Dziewiąta wersja PowerBuilder zawiera InfoMaker - specjalizowane narzędzie do tworzenia raportów będące rozszerzeniem mechanizmów raportujących dostępnych w ramach DataWindow. O ile jednak DataWindow jest narzędziem przeznaczonym dla programisty, o tyle InfoMaker jest pakietem dla typowego użytkownika biznesowego. InfoMaker 9 obsługuje XML (eksport, import oraz transformacje - w tym do PDF).

Raporty hierarchiczne mają mechanizm drill down. Można zdefiniować "elementy nadrzędne" oraz elementy podrzędne. Domyślnie raporty zależne są pobierane automatycznie razem z raportem głównym, ale funkcję tę można zablokować, np. aby przejrzeć nagłówki faktur bez szczegółów. Pojawiły się też nowe możliwości grupowania informacji zawartych w raportach. InfoMaker 9 w pełni obsługuje bazy danych Oracle 9i - dotychczas nie umożliwiał on dostępu do specyficznych dla Oracle'a typów danych (NCHAR/NVARCHAR2 oraz LOB). Nowością jest też możliwość tworzenia puli połączeń do bazy danych.

PowerDesigner - narzędzie do remontowania kodu

W dziewiątej wersji PowerBuilder rozbudowano PowerDesigner - środowisko do projektowania i modelowania aplikacji używane nie tylko przez programistów Sybase. Obecnie podczas reverse engineering, czyli przy generowaniu modelu na podstawie kodu, jest analizowana nie tylko warstwa komponentów NVO, ale cały kod PowerBuilder. Ponadto specjalne moduły ułatwiają modyfikację starszego kodu PB, pisanego bez uwzględnienia zasad obiektowości. Tym samym PowerDesigner pozwala na tzw. refaktoring, polegający na zmianie struktury kodu przy zachowaniu istniejącej funkcjonalności aplikacji.


TOP 200