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.