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