Zadanie Badawcze:
„Utworzenie uniwersalnej, otwartej, repozytoryjnej
platformy hostingowej i komunikacyjnej dla sieciowych
zasobów wiedzy dla nauki, edukacji i otwartego społeczeństwa wiedzy”
ETAP
22. Rozwiązania dla potrzeb integracji heterogenicznych źródeł wiedzy
Celem
tego etapu badawczego jest rozwinięcie i wdrożenie
badań dotyczących uniwersalnego
oprogramowania pośredniczącego (ang. middleware), umożliwiającego
sprawną integrację
heterogenicznych,
rozproszonych, redundantnych i podzielonych (ang. fragmented)
zasobów danych. Istotą tego oprogramowania jest jego interoperacyjność, czyli umożliwienie
współpracy zbudowanego niezależnie i w różnym
czasie oprogramowania. Z reguły takie oprogramowanie integruje starsze (ang. legacy) istniejące zasoby, przystosowując
je do pracy z nowymi aplikacjami. Podstawowymi kryteriami przy budowie takiego
oprogramowania jest skalowalność (efektywność działania
dla bardzo dużych zbiorów danych), otwartość (możliwość współpracy
z wieloma systemami operacyjnymi, językami
programowania, bazami danych, itd.), efektywność programistyczna (radykalne
zmniejszenie nakładów niezbędnych do budowy
oprogramowania integrującego heterogeniczne zasoby oraz oprogramowania
aplikacyjnego), uniwersalność (możliwość integracji
w dowolnie skomplikowanej heterogeniczności) oraz elastyczność
(możliwość
zmian
w oprogramowaniu i danych bez ponoszenia nadmiernych kosztów).
Generalnie,
badania opierają się o szeroko
rozumianą wynalazczość
w
dziedzinie oprogramowania. Tego typu działalność
badawcza
wymaga stałego śledzenia stanu sztuki światowej
w danym zakresie informatyki, reagowania na istniejące
tendencje i wzorce. Istota polega na wprowadzaniu nowości
stwarzających nową
jakość na
dowolnym etapie projektowania, programowania lub zastosowania danej technologii
informatycznej. Wynalazczość jest do pewnego
stopnia nieprzewidywalna (gdyż nie można
z góry przewidzieć efektu wdrożenia
wynalazku), ale poprzez właściwą weryfikację i
ocenę użytkowników
prowadzi do postępu.
Teoretyczną podstawą projektu
będzie podejście stosowe do języków
zapytań, opisane w [20]. Projekt ODRA jest
oparty na tym podejściu. Jakkolwiek podstawy teoretyczne są bardzo
ważne, w badaniach tego typu istotą jest
wynikający z nich produkt programistyczny. W tej
chwili dysponujemy prototypowym systemem ODRA, który już został
zweryfikowany w dwóch dużych projektach europejskich (eGov Bus oraz VIDE) oraz kilkudziesięciu
lokalnych projektach (z reguły będących
podstawą prac doktorskich i magisterskich). Przy
badaniach tego typu konieczne jest założenie
odpowiedniej uniwersalności zaimplementowanych mechanizmów.
System ODRA został oparty na założeniach maksymalistycznych,
których trzonem są następujące
tezy:
1.
Konieczna jest implementacja nowego języka
programowania obiektowego integrującego konstrukcje
programistyczne z językiem zapytań.
Język taki musi posiadać pełną moc
algorytmiczną. Językiem takim
stał się SBQL.
2.
Konieczna jest implementacja nowego systemu zarządzania obiektową bazą danych
o pełnej uniwersalności, której schemat byłby całkowicie
zgodny z UML, najbardziej popularnym narzędziu do
modelowania biznesowego.
3.
Konieczna jest implementacja nowego mechanizmu perspektyw (ang. views), których celem ma być wirtualne
odwzorowanie pomiędzy różnymi reprezentacjami
danych. W odróżnieniu od perspektyw znanych z SQL,
takie perspektywy muszą być obiektowe, w
pełni uniwersalne (pełna moc algorytmiczna mechanizmu definiowania perspektyw)
oraz w pełni aktualizowane (pełna moc algorytmiczna w zakresie aktualizacji
wirtualnych obiektów). Takie perspektywy zostały zaimplementowane w systemie
ODRA.
4.
Konieczne jest zwrócenie szczególnej uwagi i rozbudowa mechanizmów zapewniających
otwartość systemu względem
innych systemów i technologii, zarówno w zakresie interfejsu dostępowego
(ang. back-end) oraz interfejsu publikowanego
(ang. front-end). Oznacza to, że
system ma pracować na praktycznie dowolnych danych
podtrzymywanych przez różne systemy i technologie (Web Services,
XML, systemy relacyjne, RDF, itd.) bez potrzeby ich fizycznego kopiowania do wnętrza
systemu, oraz interfejsy do systemu ODRA powinny być przygotowane
do pracy z popularnymi językami programowania, takimi jak Java,
C# oraz technologiami takimi jak Web Services.
5.
Konieczne jest przygotowanie efektywnego protokołu komunikacyjno-transportowego
o wysokim poziomie abstrakcji, zintegrowanego z
obiektowym językiem zapytań i
umożliwiającym współpracę z
rozproszonymi zasobami danych.
6.
Wszystkie mechanizmy systemu muszą podlegać mocnej
kontroli typologicznej oraz powinny być silnie
optymalizowane.
W/w
lista tez jest oczywiście nie do końca
pełna, ale już ich zestaw stanowi wyzwanie badawcze.
Obecnie nie istnieje w świecie (poza systemem ODRA) żadna
technologia, która spełnia wymienione tezy nawet w połowie. Stąd
projekt ODRA owocuje coraz to nowymi wynalazkami (np. w zakresie optymalizacji
zapytań), zaś kolejne udane
wynalazki są podstawą
następnych
wynalazków, szczególnie jeżeli wynalazki są wspierane
przez mocną teorię. Praktyka
bardzo wielu ośrodków badawczych dowiodła, że
tak pomyślana działalność badawcza
jest absolutnie nieodzowna dola tworzenia rzeczywistego postępu
w zakresie oprogramowania. Najbardziej istotnym składnikiem tak pomyślanych
badań jest weryfikacja wynalazków w konkretnej
praktyce i przez konkretnych użytkowników – uczestników
procesów projektowych i programistycznych. Większość badań w
tym zadaniu będzie poświęcona
temu elementowi (Nb. często zaniedbanemu w badaniach akademickich).
Bardzo
ważnym aspektem badań jest
bezpośrednie nawiązywanie
do obecnie istniejących produktów, technologii i
standardów. Projekt ODRA jest szczególnie dobrze osadzony w obecnych realiach i
ma liczne połączenia do istniejących
rozwiązań (np. standardów
ODMG i OMG), technologii (np. Web Services, XML) oraz języków
i systemów (np. Java, .Net, SQL). Etap badawczy został podzielony na następujące
cztery podzadania:
1.
Stworzenie rdzenia uniwersalnego oprogramowania pośredniczącego;
2.
Rozpoznanie typowych źródeł danych (ontologii) oraz stworzenie
dla nich osłon (ang. wrappers);
3.
Stworzenie uniwersalnego oprogramowania dla tworzenia i wykorzystania indeksów
dla rozproszonych heterogenicznych źródeł danych;
4.
Optymalizacja zapytań kierowanych do rozproszonej,
heterogenicznej bazy danych.
Ad1.
Jako
rdzeń uniwersalnego oprogramowania pośredniczącego
wykorzystany będzie uniwersalny język
programowania obiektowego SBQL (Stack-Based
Query Language) wraz z
obiektową bazą danych
(deklarowaną w UML), uniwersalnym mechanizmem
obiektowych wirtualnych aktualizowanych perspektyw (ang,
virtual object-oriented
updatable views) oraz
wyspecjalizowanym protokołem komunikacyjnym i transportowym umożliwiającym
współdziałanie rozproszonych zasobów. Elementy te zostały zaimplementowane w
prototypowym systemie ODRA (Object Database for Rapid Application development). W obecnym projekcie zostaną one
dopracowane celem uzyskania właściwych wskaźników
jakościowych i wydajnościowych.
Narzędzie to powinno umożliwiać przezroczystą integrację metadanych dotyczących
różnych zasobów informacji naukowej oraz
naukowo-technicznej oraz powinno umożliwiać dostęp
do plików dostępnych przez Web.
Narzędzie
to powinno akceptować (jako back-end)
większość
popularnych
technologii przechowywania danych, w tym relacyjne bazy danych (wiele typów), pliki
Excel, XML, RDF, obiektowe bazy danych, Web Services i inne.
Ad2.
Każdy
zasób danych wykorzystuje specyficzny interfejs programistyczny (API) do zarządzania
i udostępniania danych. Np. dla relacyjnych baz
danych jest to z reguły API oparte na języku SQL.
Przystosowanie takiego API do formatu oczekiwanego przez aplikacje działające
na zintegrowanych zasobach danych wymagają stworzenia osłon
(ang. wrappers). Budowa osłon jest zadaniem
trudnym, zatem konieczne jest jej wspomaganie w postaci meta-osłon, czyli osłon
wymagających parametryzacji charakterystykami
konkretnych zasobów danych, ale generalnie nie wymagającymi
intensywnego programowania. W ramach projektu ODRA zostały zbudowane
meta-osłony dla relacyjnych SZBD (wiele typów), XML, RDF, WebServices,
db4o oraz Topic Maps.
Oprogramowanie to może być rozwinięte
dla innych typów zasobów danych, o ile takie zostaną rozpoznane.
Istniejące meta-osłony wymagają przystosowania
do konkretnych przypadków występujących
w integrowanych zasobach.
Ad3.
W
rozproszonych heterogenicznych źródłach danych
często powstaje sytuacja, że
końcowy użytkownik chce
przeszukiwać heterogeniczne źródła
przy użyciu zunifikowanego interfejsu. To
oznacza, że fragmenty pewnej kolekcji danych są przechowywane
na różnych serwerach, często
w różnych formatach. Jeżeli
taka wirtualna kolekcja jest bardzo duża (co jest
sytuacją typową), wówczas
koniecznej jest jej indeksowanie dla osiągnięcia
zadowalających czasów odpowiedzi. Tworzenie i
wykorzystanie indeksów jest bardzo dobrze opanowaną technologią dla
scentralizowanych systemów (np. relacyjnych baz danych) lub systemów rozproszonych,
ale jednorodnych (np. technologia SDDS). Jeżeli kolekcja
jest heterogeniczna, wówczas zastosowanie takich indeksów staje się niemożliwe.
Konieczne są zatem badania zmierzające
stworzenia oprogramowania umożliwiającego
tworzenie i wykorzystanie takich indeksów.
Ad
4. Optymalizacja
zapytań kierowanych do bazy danych jest kluczowa
dla zaakceptowania języka zapytań przez
programistów i użytkowników. Język
zapytań, poprzez swoją konceptualność,
deklaracyjność i makroskopowość przetwarzania
staje się nieakceptowany o ile nie będzie
silnie optymalizowany. Naiwna ewaluacja semantyki zapytania prowadzi do
nieakceptowanych czasów wykonania, mierzonych dla dużych
zbiorów w godzinach, dniach lub tygodniach (a często i latach). Optymalizacja
musi więc skrócić
czas
wykonania zapytania o kilka rzędów, np. 10000
razy. Badania nad optymalizacja zapytań do rozproszonych
baz danych zostały przeprowadzone na gruncie systemów relacyjnych, ale stan
sztuki w tym zakresie nie wydaje się być bardzo
zaawansowany. Rozproszone heterogeniczne bazy danych dają wiele
okazji do optymalizacji zapytań. Najbardziej
popularne metody dla systemów relacyjnych mogą
być uogólnione
dla systemów innych niż relacyjne. W szczególności
dotyczy to metod określanych jako pipelining
dla fragmentacji poziomej zbiorów danych oraz metody uogólniające
metodę opartą o pół-złączenia
(semi-joins) dla fragmentacji pionowej.
Podstawowym
rezultatem uzyskanym w oparciu o opracowane i wytworzone rozwiązania
programistyczne będzie umożliwienie łatwego
przyłączania do systemu informacji naukowo
technicznej nowego heterogenicznego zasobu danych o dotychczas nie oczekiwanym
formacie i własnościach. Działania planowane w celu
realizacji etapu badawczego obejmują przystosowanie i
rozbudowę systemu ODRA do celów projektowanego
systemu informacji naukowo-technicznej. Obejmować
one
będą następujące
czynności:
1.
Rozpoznanie konkretnych zasobów danych, ich specyfiki oraz interfejsu programistycznego
umożliwiającego dostęp
do danych i zarządzanie danymi.
2.
Faktoryzacja obecnego kodu systemu ODRA celem doprowadzenia go do właściwej
jakości usługi (ang. QoS,
Quality of Service) oraz uniwersalności.
3.
Dobudowanie i rozbudowanie niektórych nowych modułów, w szczególności
meta-osłon dla wybranych typów systemów przechowywania danych oraz protokołu
komunikacyjno-transportowego dla rozproszonych zasobów danych.
4.
Przygotowanie oprogramowania pośredniczącego
dla konkretnego przypadku o dużej skali
(miliony danych) oraz przetestowania go dla tej skali.
5.
Stworzenie użytecznych aplikacji działających
na danych zintegrowanych przy pomocy w/w oprogramowania.
6.
Stworzenie dokumentacji technicznej, programistycznej i użytkowej,
materiałów promocyjnych i szkoleniowych oraz wzorców projektowych (przypadków użycia)
będących przewodnikiem
projektantów i programistów.
7.
Implementacja koncepcji indeksu do heterogenicznej rozproszonej bazy danych.
8.
Opracowanie oraz zaimplementowanie metod optymalizacyjnych w zakresie szybkości
dostępu dla rozproszonych heterogenicznych
baz danych, w szczególności metod dla różnych
typów fragmentacji danych.
Całość
tego
zadania będzie wykonywana przez PJWSTK w czasie
trwania projektu.