wtorek, września 28, 2004

HTML DB i Oracle

HTML DB: Nowe sposób na tworzenie aplikacji internetowych

Aplikacja ta jest internetowym środowiskiem uruchamianym w przeglądarce do tworzenia w sposób deklaratywny aplikacji internetowych dla baz Oracle. Służy głównie do tworzenia raportów oraz formatek do ujmowania danych. Mimo, że jest to opcja Oracle Database 10g Release 1, można ją stosować środowisku Oracle9i release 2 i wyżej. Znajduje się na płytce Oracle 10g Companion CD. Nie jest płatna dla każdego kto ma licencję do Oracle Database.
HTML DB wykorzystuje wszystkie właściwe bazie Oracle możliwości np.: RAC, Virtual Private Database (przy tworzeniu aplikacji uwzględnia ona politykę bezpieczeństwa zdefiniowaną w VPDb), Oracle Label Security, Oracle text, Workflow, Spatial. Można powiedzieć, że jest ona sterowana poprzez metadane zdefiniowane w samej bazie.
Sposób programowania aplikacji jest deklaratywny w oparciu o model metadanych. Oznacza to, że podczas budowania programu nie pisze się faktycznie kodu ale dokonuje wyboru opcji i parametrów. Wybrane w ten sposób dane są przechowywane w tabelach samej bazy. Podczas uruchamiania aplikacji w HTML DB następuje wybranie z tabel powyższych parametrów i na ich podstawie następuje generowanie stron i układu na nich. Na przykład tworząc obszar raportu należy za pomocą wizarda powybierać opcje takie jak zdanie SQL, wzorzec obszaru, ile wierszy wyświetlać jednocześnie. Wszystko to zostanie zapamiętane w tabelach z metadanymi. Inaczej jest też z pakietem PL/SQL, który zwykle powstaje oddzielnie dla każdego raportu. HTML DB tworzy jeden, zbiorczy pakiet dla wszystkich raportów. Podczas uruchamiania wybranego raportu, silnik raportujący HTML DB wybiera z tabel z metadanymi odpowiednie dane, wykonuje raport i zwraca dane jako strony www.
Dostęp do obiektów bazodanowych odbywa się poprzez komponent zwany SQL Workshop. Nie ma on na celu zastąpienia SQL*Plus, ale dzięki wbudowanemu wizardowi pozwala użytkownikowi na łatwiejszy dostęp do obiektów w bazie. Oczywiście jest możliwe również wprowadzenie bezpośrednio polecenia SQL. Takie podejście jest znane wcześniej w postaci iSQL - gdzie poprzez przeglądarkę można było uruchamiać dowolne zdania SQL. Innym komponentem do obsługi obiektów dla bardziej zaawansowanych jest SQL Command Processor. Jest to obszar na stronie internetowej do którego można "wsadzić" procedurę w PL/SQL lub proste zdanie SQL i dowiązać jego wykonywanie w bieżącym obszarze roboczym. Jest też wiele innym pomniejszych wizardów do tworzenie i manipulowania obiektami np. do tworzenia indeksu dla Oracle Text. SQL Workshop pozwala również tworzyć skrypty DDL dla dowolnego obiektu bazy, dzięki czemu migracja z jednej bazy do drugiej jest znacznie ułatwiona. Dla bardziej doświadczonych użytkownik jest do dyspozycji wykonywanie poleceń SQL lub bloków PL/SQL. Procesor poleceń pamięta 100 ostatnich poleceń (też mi coś).
HTML DB jest przeznaczone dla:
DBA którzy nie mają specjalnie dużego doświadczenia w pisaniu aplikacji np. na szybko stworzenie jakiegoś raportu lub formatki do wprowadzania danych, tym bardziej, że znają SQL i PL/SQL. Nie muszą pamiętać o sterowaniu stanem sesji, o zapewnieniu spójnej grafiki i wyglądu interfejsu GUI.
mogą z niego korzystać doświadczeni deweloperzy chcący wykonać szybki prototyp aplikacji (zamodelować fragment aplikacji).
Wygląda na to, że HTML DB jest przeznaczone do zredukowania niepotrzebnych szczegółów technicznych (i programistycznych) o jakich należy pamiętać podczas szybkiego tworzenia i uruchamiania aplikacji. Wielu klientów Oracle zainwestowało w SQL i ma wiele przygotowanych (spreparowanych) poleceń SQL lub pakietów PL/SQL które można wprost wykorzystać do tworzenia ciekawych aplikacji online uruchamianych poprzez przeglądarkę. Kiedyś nie mogli tego zrobić z uwagi na brak wiedzy i czasu, inni z kolei tworzyli co prawda aplikacje internetowe ale nie całkiem prawidłowy sposób (zalecany przez Oracle) - atakowali problem ze złej strony przy pomocy złej technologii. Często korzystali z bazy MS Access (przykład użytkownika power user w aplikacjach biurowych). Tacy użytkownicy zdawali sobie sprawę z ograniczeń i małej elastyczności bazy Access ale trzeba było ich przekonać, że mogą przejść na coś lepszego. Przejście z baz biurkowych takich jak np. MS Access umożliwia narzędzie Oracle Migration WorkBench.
Największymi ograniczeniami to bezpieczeństwo. MS Access jest przeznaczony dla pojedynczego użytkownika, ochrona hasłem na nic się nie zda ("łamaczy" haseł jest aż nadto po 10 dolarów sztuka). Format mdb przechowującej całą bazę wraz z tabelami w pojedynczym zbiorze danych na dysku ułatwia kradzież (nawet z "udziału" przechowywanym centralnie na serwerze. MS Access wcale nie daje się skalować w górę, szybkość aplikacji zależy od mocy stacji roboczej użytkownika, jeżeli do tego korzysta z jednej bazy kilku użytkowników to szybkość dostępu do danych znacznie spada. Baza Oracle oferuje większą skalowalność (docelowo poprzez Oracle RAC), uruchamiana jest w środowisku zarządzanym przez profesjonalnych administratorów.
Nawet gdy istnieje w MS Access jakiś mechanizm autentykacji, to nie jest on zintegrowany na poziomie przedsiębiorstwa np. LDAP. Powoduje to, że zarządzanie tożsamością w skali całej firmy staje się trudne. Baza Oracle ma wiele wbudowanych mechanizmów uwierzytelnienia np. LDAP, Oracle Single Sign On czy też Oracle Internet Directory. Można też napisać własny schemat autentykacji.
Dla kogo jest więc HTML DB? Wydaje się, że dla projektów, które są niewielkie ale krytyczne, mają być stworzone w krótkim czasie, ale mają mieć wszelkie szykany dużych, stabilnych i bezpiecznych projektów i mogą w czasie rozrosnąć się do dużych rozmiarów. Przykładowo sama aplikacja HTML DB jest napisana w niej.
Czy używać lepiej JDdeveloper? To zależy od projektu? HTML DB nie bazuje na J2EE, więc jeżeli projekt wymaga zgodności z J2EE to lepiej wybrać Jdeveloper.
Na OTN jest repozytorium gotowych aplikacji w HTML DB. Na jego przygotowanie trzeba było paru dniu z tego połowa zajęły template dla zachowania look and feel OTN.
Resources
HTML DB Product Center
Oracle Database 10g Download
HTML DB Studio Pasted from <http://www.oracle.com/technology/pub/columns/spendolini_htmldb.html>

Brak komentarzy: