Tematy po stronie serwera

Download Report

Transcript Tematy po stronie serwera

Obiektowe bazy danych,
aktualizowalne perspektywy i
technologie gridowe
Prelegent: Kazimierz Subieta
Zespół Baz Danych i Systemów Rozproszonych IPI PAN
Katedra Systemów Informacyjnych PJWSTK
K.Subieta: Obiektowe bazy danych, aktualizowalne perspektywy i technologie gridowe, slajd 1
Lipiec 2004
Dlaczego obiektowe bazy danych?
• Modelowanie pojęciowe:
– Sprzyjanie naturalnym ludzkim własnościom w zakresie percepcji i
rozumienia świata.
– Zmniejszenie dystansu pomiędzy modelem koncepcyjnym
(biznesowym) przedsięwzięcia informatycznego a modelem
implementacyjnym.
• Zasada abstrakcji (enkapsulacji):
– umożliwienie projektowania i zarządzania bryłami koncepcyjnymi
(obiektami) bez potrzeby wnikania w ich wewnętrzną strukturę
• Zasada dekompozycji
– umożliwienie zdekomponowania złożonego problemu na podproblemy
• Zasada ponownego użycia (otwarte-zamknięte):
– umożliwienie tworzenie brył koncepcyjnych (klas) zamkniętych dla
modyfikacji, ale otwartych dla rozszerzeń.
K.Subieta: Obiektowe bazy danych, aktualizowalne perspektywy i technologie gridowe, slajd 2
Lipiec 2004
Cechy obiektowych baz danych
•
•
Złożone obiekty: mogą być dowolnie duże.
Kolekcje: obiekty o podobnych własnościach.
•
•
Powiązania. związki asocjacyjne między obiektami.
Hermetyzacja. Rozróżnienie pomiędzy interfejsem do
obiektu a implementacją obiektu; ukrywanie implementacji.
•
•
Klasy. Cechy niezmienne dla zbiorów obiektów.
Metody. Procedury wykonywane w środowisku wnętrza
obiektu.
Hierarchia klas i dziedziczenie: klasy szczegółowe
dziedziczą niezmienniki swoich nad-klas.
•
•
•
Polimorfizm. Wywołana operacja zależy od rodzaju obiektu.
Trwałość. Obiekty żyją dowolnie długo.
K.Subieta: Obiektowe bazy danych, aktualizowalne perspektywy i technologie gridowe, slajd 3
Lipiec 2004
Obiektowe języki zapytań
• Język zapytań – interfejs dostępu i wyszukiwania w bazie
danych.
– Wysoki poziom abstrakcji i konceptalizacji
• SQL – najbardziej popularny język zapytań do relacyjnych baz
danych, uważany za główne źródło ich sukcesu
– Liczne próby przeniesienia tego sukcesu na grunt obiektowych i XMLowych baz danych
– dziesiątki pomysłów - ograniczonych i/lub niespójnych
• Podejście stosowe (Stack-Based Approach) –podejście
najbardziej konsekwentne i uniwersalne
– Praca habilitacyjna (K.Subieta, 1984-89)
– Bazujące na wszechstronnych praktycznych doświadczeniach
– Udoskonalone i rozszerzone (w ciągu 20 lat) pod względem
koncepcyjnym i dydaktycznym
K.Subieta: Obiektowe bazy danych, aktualizowalne perspektywy i technologie gridowe, slajd 4
Lipiec 2004
Podejście stosowe do języków zapytań
• Alternatywa dla relacyjnych algebr, relacyjnych rachunków,
specjalnych logik i innych pomysłów.
• Założenie: języki zapytań są rodzajem języków
programowania.
• Uogólniony stos środowiskowy jako podstawa definicji
operatorów języków zapytań.
• Precyzyjna semantyka podana w formie abstrakcyjnej
implementacji (semantyka operacyjna).
• Duży potencjał dla optymalizacji zapytań.
• Daje możliwość definiowania języków zapytań dla dowolnego
modelu składu: relacyjnego, obiektowo-relacyjnego,
obiektowego, XML-owego, itd.
• Rozszerzenia w kierunku konstrukcji imperatywnych,
procedur, funkcji, metod, perspektyw, mocnej kontroli typów.
K.Subieta: Obiektowe bazy danych, aktualizowalne perspektywy i technologie gridowe, slajd 5
Lipiec 2004
Język zapytań SBQL (Stack-Based Query Language)
• Pełna modularność i ortogonalność
• Formalna implementowalna semantyka
• Abstrakcyjna składnia
– posmak algebry, logiki, rachunku, itp.
• Rozszerzenia w kierunku języków programowania.
• Szereg implementacji:
– Netul, Loqis, XML DOM, ICONS, YAOD, Objectivity/DB,
BPQL, ODRA (nad rozwojem pracuje obecnie ok. 20
osób),
• SBA i SBQL nauczane w PJWSTK (2 semestry,
60h wykładów + 60h laboratoriów)
• Ukończona książka (ok. 530 stron)
K.Subieta: Obiektowe bazy danych, aktualizowalne perspektywy i technologie gridowe, slajd 6
Lipiec 2004
Przykład zapytania
Firma[0..*] FZ[0..*]
Nazwa
Miejsce[1..*]
ZF Zatrudnienie[0..*] ZP
Wypłata[0..*]
Ocena[1..*]
PZ[0..*] Pracownik[0..*]
Stan[1..*]
Osoba[0..*]
Nazwisko
Imię[1..*]
Adres[1..*]
Podaj nazwiska i stanowiska pracowników pracujących w firmach
zlokalizowanych w Radomiu:
SBQL, model obiektowy:
(Firma where ”Radom” Miejsce). FZ.Zatrudnienie.ZP.Pracownik.
(Nazwisko, Stan)
SQL, po odwzorowaniu powyższego schematu na model relacyjny
select s.Nazwisko, w.Stan
from Firma as f, Lokal as k, Zatrudnienie as z,
Pracownik as p, Wyszkolenie as w, Osoba as s
where k.Miejsce = “Radom” and k.NrF = f.NrF
and f.NrF = z.ZF and z.ZP = p.NrP and w.NrP = p.NrP
and p.NrOs = s.NrOs
K.Subieta: Obiektowe bazy danych, aktualizowalne perspektywy i technologie gridowe, slajd 7
Lipiec 2004
Perspektywy (views)
• Określają dane wirtualne („istniejące” w wyobraźni programisty).
• Są definiowane poprzez język zapytań i używane w zapytaniach.
• Umożliwiają przystosowanie schematu bazy danych do wymagań
użytkownika.
• Ograniczają dostęp do danych.
• Liczne zastosowania praktyczne dla wielu celów.
• Problemy związane z perspektywami:
– Uniwersalność: język perspektyw powinien dawać możliwość
dowolnego odwzorowania zapamiętanych danych w dane wirtualne.
– Przezroczystość dla wyszukiwania i aktualizacji. Z punktu widzenia
użytkownika lub programisty nie występują jakiekolwiek różnice w
operowaniu na zapamiętanych i wirtualnych danych.
– Problem aktualizacji danych wirtualnych jest znany od 1974 roku,
ale do czasu SBQL nie doczekał się uniwersalnego rozwiązania.
– Optymalizacja: efektywna realizacja zapytań odwołujących się do
perspektyw.
K.Subieta: Obiektowe bazy danych, aktualizowalne perspektywy i technologie gridowe, slajd 8
Lipiec 2004
Problem aktualizowalnych perspektyw
• Perspektywa jest odwzorowaniem zapamiętanych danych na
zasadzie „wiele do jednego”.
• Stąd odwzorowanie aktualizacji danych wirtualnych na
aktualizacje danych rzeczywistych zwykle nie jest
jednoznaczne.
– Np. jeżeli perspektywa zwraca średni zarobek pracowników, to
zwiększenie średniego zarobku o 100 zł może być odwzorowane na
aktualizację zapamiętanych danych na nieskończenie wiele sposobów.
• Cały wysiłek teoretyków (setki prac) skupił się na ustalaniu
ograniczeń, przy których perspektywę można aktualizować
jednoznacznie, bez anomalii i efektów ubocznych.
• Ten wysiłek jest przykładem skierowania badań na boczny,
scholastyczny tor omijający rzeczywisty problem. Przez to
otrzymane wyniki okazały się dla praktyki bezużuteczne.
K.Subieta: Obiektowe bazy danych, aktualizowalne perspektywy i technologie gridowe, slajd 9
Lipiec 2004
Rewolucyjny pomysł
• Pomysł aktualizowalnych procedur polega na uzupełnieniu definicji
perspektywy poprzez informacje o intencji użytkownika.
– Podobnie jest w instead of trigger views systemów Oracle i SQL Server.
• Pierwsza część definicji odwzorowuje zapamiętane obiekty w obiekty
wirtualne (podobnie jak w SQL). Ma postać procedury funkcyjnej
zwracającej byty zwane „ziarnami”.
• Druga część re-definiuje generyczne operacje aktualizacyjne działające na
obiektach wirtualnych.
• Są to cztery procedury mające ziarno jako parametr:
–
–
–
–
on_delete usuwa obiekt wirtualny,
on_retrieve zwraca wartość obiektu wirtualnego,
on_insert wkłada dany obiekt do wnętrza obiektu wirtualnego
on_update modyfikuje obiekt wirtualny zgodnie z parametrem aktualizacji.
• W ten sposób osoba definiująca perspektywę może przejąć kontrolę nad
dowolną operacją wykonywaną na wirtualnym obiekcie, realizując w ten
sposób w pełni zasadę przezroczystości perspektyw.
– Wszystkie tzw. „kryteria aktualizowalności perspektyw” wyrzucamy do śmieci.
K.Subieta: Obiektowe bazy danych, aktualizowalne perspektywy i technologie gridowe, slajd 10
Lipiec 2004
Przykład aktualizowalnej perspektywy
• Baza danych zawiera
obiekty Prac i Dział
połączone związkami
PracujeW/Zatrudnia oraz
Kieruje/Szef.
• Obiekty wirtualne PracSzef
zawierają tylko nazwisko
pracownika i nazwisko
szefa.
• Aktualizacja nazwiska
szefa ma oznaczać nie
zmianę jego nazwiska, lecz
przeniesienie pracownika
do działu, którego szefem
jest pracownik z tym
nazwiskiem.
create view PracSzefDef {
virtual objects PracSzef { return Prac as p };
on_delete do { delete p };
create view NazwPracDef {
virtual objects NazwPrac { return p.Nazwisko as n };
on_retrieve do { return n } }
create view NazwSzefaDef {
virtual objects NazwSzefa {
return p.PracujeW.Dział.Szef.Prac.Nazwisko as s };
on_retrieve do{ return s };
on_update( NowySzef ) do {
p.PracujeW :=
ref Dział where (Szef.Prac.Nazwisko)= NowySzef }}}
Przenieś Nowaka do działu kierowanego przez
Bryla:
(PracSzef where NazwPrac = ”Nowak”).NazwSzefa
:= ”Bryl”
K.Subieta: Obiektowe bazy danych, aktualizowalne perspektywy i technologie gridowe, slajd 11
Lipiec 2004
Grid computing
• Grid computing jest nową wersją starego marzenia o masowej
równoległości przetwarzania.
• Grid ma zsumować zasoby wielu (tysięcy) komputerów w jeden
ogromny wirtualny komputer
• Nowy termin wzbudza nowe nadzieje i nowe środki przeznaczone
na realizację starego marzenia.
• Wiele obecnych technologii jest mniej lub bardziej udaną
realizacją tego marzenia.
–
–
–
–
–
CORBA, RMI, Web Services (OGSA), J2EE, .NET, ...
Sieci P2P
Federacyjne bazy danych (Oracle 10G)
Technologie agentowe (???)
...
• Nowa kultura informacyjna, w której usługa jest na pierwszym planie,
zaś usługodawca na drugim (jeżeli w ogóle).
K.Subieta: Obiektowe bazy danych, aktualizowalne perspektywy i technologie gridowe, slajd 12
Lipiec 2004
Cztery najważniejsze problemy gridów
• Przezroczystość (transparency): traktowanie rozproszonych
zasobów i usług tak, jak gdyby były one wewnątrz przestrzeni
adresowej jednego komputera.
– przezroczystość ma wiele form: lokacji, implementacji, replikacji,
fragmentacji, współbieżności, transakcji, awarii, indeksowania, ...
• Bezpieczeństwo: przeciwdziałanie losowym awariom oraz
możliwościom ataku z zewnętrz.
• Interoperacyjność (interoperability): umożliwienie współpracy
heterogenicznych platform, aplikacji, logik biznesowych i
organizacji danych.
• Efektywność: uzyskanie czasów przetwarzania
akceptowalnych dla szerokiego kręgu użytkowników
rozproszonych aplikacji.
K.Subieta: Obiektowe bazy danych, aktualizowalne perspektywy i technologie gridowe, slajd 13
Lipiec 2004
Od aktualizowalnych perspektyw do gridu
Globalny
klient 1
Globalny
klient 2
Globalny
klient 3
...
Schemat
globalny
Globalny wirtualny serwer
obiektów i usług
Perspektywy globalne
Projektant gridu
Protokół komunikacyjny
Schemat
integracyjny
Schemat
Perspektywy
kontrybucyjne kontrybucyjny
Schemat
Perspektywy
kontrybucyjne kontrybucyjny
Lokalna baza danych
Lokalna baza danych
Lokalny serwer A obiektów i usług
Lokalny serwer B obiektów i usług
K.Subieta: Obiektowe bazy danych, aktualizowalne perspektywy i technologie gridowe, slajd 14
...
Lipiec 2004
Podsumowanie
• W tej chwili następuje konsolidacja dużej grupy badawczej wokół
dobrze zdefiniowanych celów naukowych i praktycznych.
• Kluczem do przebicia się na większym forum światowym jest
realizacja własnego systemu o unikalnych własnościach (not „yet
another”).
• Mamy pomysł na taki system. Pierwsze rezultaty są osiągnięte
(obiektowa baza danych, język SBQL), dalsze będą przedmiotem
prac w bieżącym i przyszłym roku.
• Bardzo istotne jest zabieganie o finanse. Bez nich prace
implementacyjne nie nabiorą rozmachu. Szanse na granty może
zwiększyć pokazanie praktycznej skuteczności.
• Naszymi głównymi atutami podczas przebijania się na forum
światowym są: podejście stosowe do obiektowych języków zapytań,
aktualizowalne perspektywy i technologie gridowe.
K.Subieta: Obiektowe bazy danych, aktualizowalne perspektywy i technologie gridowe, slajd 15
Lipiec 2004