Title: Konstrukcja system
1Konstrukcja systemów obiektowych i rozproszonych
Wyklad 9 Wprowadzenie do rozproszonych baz
danych (1)
Wykladowca Kazimierz Subieta Polsko-Japonska
Wyzsza Szkola Technik Komputerowych,
Warszawa subieta_at_pjwstk.edu.pl Instytut Podstaw
Informatyki PAN, Warszawa subieta_at_ipipan.waw.pl
2Co to jest system rozproszony?
- Systemem rozproszonym nazywamy taki system, w
którym przetwarzanie informacji odbywa sie na
wielu komputerach, czesto znacznie oddalonych
geograficznie (od kilku metrów do dziesiatków
tysiecy kilometrów). - Przeciwienstwem jest system izolowany lub
scentralizowany. - Obecnie wlasciwie wszystkie systemy sa
rozproszone. - Ogromnym katalizatorem rozproszenia systemów jest
Internet. - Projektowanie i wlasnosci systemów rozproszonych
w duzej mierze sa takie same jak systemów
scentralizowanych, ale istnieja takze istotne
róznice, który specjalista inzynierii
oprogramowania musi byc swiadomy. - Tendencja do budowy systemów rozproszonych jest
pochodna rozbudowy tanich, szybkich,
uniwersalnych i niezawodnych sieci komputerowych. - Przyklady systemów rozproszonych siec
bankomatów, system rezerwacji biletów, system
pracy grupowej, itd. - Nowa jakosc do tematu systemów rozproszonych
wnosza sieci P2P (Peer-To-Peer) oraz technologie
gridowe (grid computing).
3Zalety systemów rozproszonych (1)
- Podzial zasobów system rozproszony pozwala
dzielic zasoby sprzetowe i programowe pomiedzy
wielu uzytkowników pracujacych na róznych
komputerach pracujacych w sieci. - Otwartosc jest ona definiowana jako zdolnosc
systemu do dolaczania nowego sprzetu,
oprogramowania i uslug. - Najlepiej na platformach sprzetowych i systemach
operacyjnych dostarczanych przez róznych
dostawców. - Wspólbieznosc w systemie rozproszonym wiele
procesów moze dzialac w tym samym czasie na
róznych komputerach w sieci. - Procesy te moga komunikowac sie podczas swego
dzialania. - Skalowalnosc Moc i mozliwosci przetwarzania moze
wzrastac w miare dodawania do systemu nowych
zasobów, w szczególnosci komputerów. - W praktyce skalowalnosc jest czesto ograniczona
poprzez przepustowosc sieci oraz (niekiedy)
poprzez np. specyficzne protokoly wymiany
informacji. - Niemniej skalowalnosc systemu rozproszonego jest
nieporównywalnie lepsza w stosunku do systemu
scentralizowanego.
4Zalety systemów rozproszonych (2)
- Tolerancja bledów Dostepnosc wielu komputerów
oraz umozliwienie zdublowania informacji
(replikacje) oznacza, ze rozproszony system jest
tolerancyjny w stosunku do pewnych bledów zarówno
sprzetowych jak i programowych. - Np. awaria wezla komunikacyjnego powoduje
wygenerowanie innej trasy przeplywu informacji. - Przezroczystosc Oznacza ukrycie przed
uzytkownikiem szczególów rozproszenia, np. gdzie
ulokowane sa zasoby lub jak sa one fizycznie
zaimplementowane, pod jakim systemem pracuja,
itd. - Przezroczystosc ma zasadnicze znaczenie dla
komfortu dzialania uzytkownika oraz dla
niezawodnosci budowanego oprogramowania. - Niekiedy, np. dla celów optymalizacyjnych,
uzytkownik moze zrezygnowac z pelnej
przezroczystosci. - Przykladem przezroczystosci jest Internet
klikajac w aktywne pole na stronie WWW nie
interesujemy sie, gdzie znajduje sie
odpowiadajaca mu strona, oraz jak i na czym jest
zaimplementowana.
5Wady systemów rozproszonych
- Zlozonosc systemy rozproszone sa trudniejsze do
zaprogramowania i do administrowania niz systemy
scentralizowane. - Zaleza od wlasnosci sieci, np. jej przepustowosci
i czasu transmisji, co utrudnia zaprojektowanie i
zrealizowanie wielu algorytmów i procesów
przetwarzania. - Ochrona Dla systemu scentralizowanego wystarcza
w zasadzie straznik z karabinem. System
rozproszony nie moze byc chroniony w ten sposób,
przez co moze byc narazony na róznorodne ataki
(wlamania, wirusy, sabotaz, odmowa platnosci,
itd.) z wielu stron, które trudno zidentyfikowac.
- Zdolnosc do zarzadzania jest ona utrudniona
wskutek tego, ze konsekwencje róznych dzialan
administracyjnych w systemie rozproszonym sa
trudniejsze do zidentyfikowania. - Podobnie z przyczynami sytuacji anormalnych, w
szczególnosci awarii. - Nieprzewidywalnosc system rozproszony jest
nieprzewidywalny w swoim dzialaniu, poniewaz
zaklócenia moga byc powodowane przez wiele
przyczyn mala przepustowosc i awarie laczy,
awarie komputerów, zbyt duze obciazenie danego
serwera, lokalne decyzje administracji serwera,
itd. patrz WWW.
6Krytyczne zagadnienia projektowe dla systemów
rozproszonych
- Identyfikacja zasobów zasoby sa podzielone
pomiedzy wiele komputerów, w zwiazku z czym
schematy ich nazywania musza byc zaprojektowane
tak, aby uzytkownicy mogli zidentyfikowac
interesujace ich zasoby. - Przykladem takiego schematu jest URL znany z WWW.
- Komunikacja moze byc zaprojektowana w sposób
uniwersalny, na bazie np. protokolu internetowego
TCP/IP. - Niektóre wymagania dotyczace szybkosci, kosztu,
niezawodnosci lub bezpieczenstwa moga prowadzic
do specjalnych technik komunikacyjnych. - Jakosc obslugi odzwierciedla wydajnosc systemu,
jego dostepnosc i niezawodnosc. - Podlega ona wielu czynnikom, w szczególnosci,
przypisaniu zadan do procesorów, optymalnosci
geograficznego podzialu danych, itd. - Architektura oprogramowania opisuje ona w jaki
sposób funkcjonalnosci systemu sa przypisane do
logicznych i fizycznych komponentów systemu.
Wybór dobrej architektury przesadza o spelnieniu
kryterium jakosci obslugi.
7Popularne architektury rozproszenia
- Klient-serwer rozproszony system ma wyrózniony
wezel zwany serwerem, oraz szereg podlaczonych do
niego wezlów zwanych klientami. - Zwiazek nie jest symetryczny serwer wykonuje
uslugi zlecane przez klientów, nie moze im
odmówic i nie moze im zlecic wykonanie uslug. - Klient-multi-serwer podobnie jak dla
architektury klient-serwer, ale istnieje wiele
serwerów, np. WWW. - Kolezenska (peer-to-peer, P2P) wiele wezlów
swiadczy sobie wzajemne uslugi poprzez
bezposrednie polaczenie nie ma wyraznego
podzialu na uslugodawców i uslugobiorców. - Np. Gnutella, NXOR, Napster, Kazaa JXTA jako
narzedzie do P2P. - Komercyjny buzz dookola P2P.
- Architektura oparta na oprogramowaniu
posredniczacym (middleware) nie wystepuje
podzial na klientów i serwery, np. CORBA i
WebServices. - Architektury gridowe wirtualny komputer sumujacy
zasoby wielu komputerów w sposób przezroczysty
dla uzytkowników.
8Co to jest rozproszona baza danych?
distributed database
- Termin ten jest powtarzany w wielu kontekstach,
czesto bez przypisywania mu konkretnego,
technicznego znaczenia. - Czy to, ze z pewnego systemu mozna dostac sie do
danych innego odleglego systemu jest
wystarczajacym wyróznikiem rozproszonej bazy
danych? - Dla wielu zastosowan cecha ta jest istotna, ale
- Rozproszona baza danych musi spelniac okreslone
kryteria dotyczace spójnosci, bezpieczenstwa,
zintegrowania i wygody uzytkowników. - Mozliwosc dostania sie do danych innego systemu
(np. poprzez pakiety oparte o technologie ODBC,
JDBC, .NET, CORBA, J2EE, WebServices) oznacza
wylacznie ustanowienie niezbednej bazy
technicznej. - Fakt ten nie przesadza jednak o tym, czy zachodza
dostateczne warunki dla sprawnego, efektywnego
oraz niezawodnego wykorzystywania danych.
9Podstawowe pojecia zwiazane z rozproszeniem
- Rozproszona baza danych zbiór skladajacy sie z
wielu logicznie ze soba powiazanych elementów
bazy danych, oddalonych geograficznie i
polaczonych ze soba poprzez siec komputerowa. - System zarzadzania rozproszona baza danych
(SZRBD) oprogramowanie umozliwiajace polaczenie
rozproszonych zasobów w jedna calosc, utrzymanie
spójnosc zasobów oraz udostepnianie ich
uzytkownikom przy zalozeniu przezroczystosci
rozproszenia. - Dane sa przechowywane w wielu miejscach - wezlach
sieci. - Rozproszona baza danych jest baza danych, a nie
kolekcja plików, które moga byc indywidualnie
przechowywane w kazdym wezle sieci komputerowej. - SZRBD posiada pelna funkcjonalnosc systemu
zarzadzania scentralizowana BD. - Nie jest to system zarzadzania rozproszonymi
plikami, ani tez wylacznie system przetwarzania
transakcji.
10Przyklad rozproszonej bazy danych
- Rozproszona baza danych dla linii lotniczych
(biuro obslugi klienta w Warszawie moze dostac
sie do danych linii lotniczych w Sydney, Tokio,
Paryzu, i setkach innych miast). - Jezeli w kazdym miejscu organizacja bazy danych,
srodki manipulacji, reguly dostepu, itd. bylyby
inne, to praca bylaby bardzo utrudniona, o ile w
ogóle mozliwa. - Zatem konieczne sa
- standardy w zakresie polaczenia (protokoly),
- standardy w zakresie organizacji danych i dostepu
do danych, - moduly dla odwzorowania pewnej specyficznej bazy
danych na format oczekiwany przez danego klienta, - przezroczystosc rozproszenia (a la CORBA),
- zabezpieczenia przed niepowolanym dostepem.
11Tematy zwiazane z rozproszonymi BD (1)
- Architektury rozproszonego przetwarzania bazy
danych oparte o architekture klient-serwer, bazy
danych oparte o schemat globalny. - Federacyjne bazy danych - (przezroczyste)
polaczenie wielu (relewantnych czesci)
heterogenicznych i autonomicznych baz danych w
jedna calosc. - Przetwarzanie transakcji w rozproszonych bazach
danych globalne transakcje, lokalne transakcje,
dwufazowe i trójfazowe potwierdzenie (two-phase
commit, 2PC). - Dlugie transakcje, wymagajace oslabienia poziomu
izolacji i minimalizujace ryzyku utraty juz
wykonanej pracy. - Wspóldzialanie heterogenicznych, autonomicznych,
rozproszonych (Heterogeneous, Autonomous,
Distributed, HAD) baz danych (okreslane takze
jako wspóldzialanie multi baz danych,
multidatabase interoperability). - Replikacje, czyli utrzymywanie kopii danych w
wielu miejscach w rozproszonych bazach danych.
12Tematy zwiazane z rozproszonymi BD (2)
- Rozproszone przetwarzanie zapytan optymalizacja
zapytan w sytuacji rozproszenia zasobów. - Mediatory, oslony, adaptery, perspektywy baz
danych. - Systemy operacyjne dla podtrzymywania
rozproszenia OSF DCE i inne systemy oparte o
wolanie odleglej procedury (Remote Procedure
Call, RPC). - Podtrzymywanie róznych form niewidocznosci
rozproszenia (distribution transparency) dla
programistów i klientów baz danych. - Standardy w zakresie rozproszenia OMG CORBA,
DCOM firmy Microsoft, RMI i Java Beans, OpenDoc,
ActiveX, WebServices. - Posrednicy (broker, ORB) wg standardu CORBA, np.
Orbix, Visibroker. - Sieci Peer-To-Peer (P2).
- Technologie gridowe.
13Tematy zwiazane z rozproszonymi BD (3)
- Srodki wspomagajace rozproszenie bazy danych i
rozproszone przetwarzanie zrealizowane w
konkretnych systemach relacyjnych (Oracle,
Sybase, Ingres, i inne), post-relacyjnych lub
obiektowo-relacyjnych (Informix Universal Server,
DB2 Universal Database, Oracle8, UniSQL/X, OSMOS,
OpenIngres, Sybase Adaptive Server i inne) oraz
obiektowych (Gemstone, Versant, O2,
Objectivity/DB, ObjectStore i inne). - Niezawodnosc, spójnosc, bezpieczenstwo i
prywatnosc w rozproszonych bazach danych. - Rozproszone bazy danych w sieciach Internet oraz
Intranet. - Rozproszenie danych i przetwarzania w systemach
pracy grupowej oraz systemach zarzadzania
przeplywem pracy.
14Rozproszone BD relacyjne czy obiektowe?
- Prace prowadzone nad rozproszonymi BD (w ciagu
ostatnich 20-tu lat), byly oparte glównie o
relacyjny model danych. - czesc tych badan nie uzyskala sukcesu, np.
przetwarzanie zapytan. - Zaletami modelu relacyjnego jest prosta,
ujednolicona struktura danych oraz prosta
organizacja katalogów bazy danych. - W ostatnich latach obserwuje sie odchodzenie od
modelu relacyjnego w strone modeli obiektowych. - Zlozonosc samego problemu rozproszenia danych
jest prawdopodobnie niezalezna od modelu danych. - Niektóre metody systemów relacyjnych zwiazane z
rozproszeniem daja sie przeniesc na grunt
systemów obiektowych. - Problemy nowe metamodel (ontologia),
przetwarzanie zapytan. - W przeciagu najblizszych 10-ciu lat obiektowosc
bedzie prawdopodobnie odgrywac glówna role w
rozwijaniu koncepcji rozproszonych baz danych, w
róznych wariantach, np. XML/RDF.
15Reguly rozproszonych baz danych (1)
- 12 regul w praktyce spelnienie wszystkich jest
trudne lub niemozliwe. Jest to spekulacyjny
ideal. - Autonomia lokalnych BD lokalne dane powinny
podlegac lokalnym regulom wlasnosci i powinny byc
zarzadzane lokalnie. Dotyczy to funkcji
zwiazanych z bezpieczenstwem, integralnoscia i
reprezentacja wewnatrz pamieci. Wyjatki dotycza
sytuacji, kiedy wiezy integralnosci musza
obejmowac jednoczesnie wiele miejsc oraz
sytuacji, kiedy rozproszone transakcje musza byc
sterowane przez pewne zewnetrzne miejsce. - Brak podporzadkowania przetwarzania do
konkretnego miejsca unikniecie waskich gardel
dzieki decentralizacji wszystkich funkcji
rozproszonego SZBD. - Ciaglosc funkcjonowania Przestoje w wykonywaniu
operacji nie powinny byc skutkiem dodania nowych
miejsc, ich usuniecia ze srodowiska rozproszonej
BD, dokonania zmian w meta-informacji lub
unowoczesnienia wersji SZBD w pewnym
indywidualnym miejscu.
16Reguly rozproszonych baz danych (2)
- Niezaleznosc od lokalizacji Uzytkownicy lub
programy aplikacyjne nie musza wiedziec, gdzie
dane sa fizycznie przechowywane. - Niezaleznosc od fragmentacji Fragmenty jednego
zbioru danych moga byc przechowywane i zarzadzane
przez rozproszony SZBD jako jedna calosc, bez
uswiadamiania uzytkowników lub aplikacji o
sposobie ich rozczlonkowania. - Pozadana wlasnoscia rozproszonego SZBD jest to,
aby w sposób automatyczny unikal przetwarzania
nierelewantnych fragmentów. - Np. jezeli grupa obiektów jest podzielona
geograficznie ze wzgledu na atrybuty w ten
sposób, ze atrybuty A1...Am sa w miejscu X, zas
atrybuty Am1...An sa w miejscu Y, i konkretne
zapytanie odwoluje sie wylacznie do atrybutów
A1...Am, nalezy pominac odwolania do miejsca Y
podczas realizacji tego zapytania. - Podobnie, fragmenty tej samej tabeli w róznych
miejscach rozproszonej bazy danych powinny byc
widocznej jako jedna tabela.
17Reguly rozproszonych baz danych (3)
- Niezaleznosc od replikacji Istnienie replik
danych w wielu miejscach, ich pojawianie sie lub
usuwanie nie powinno wplywac na postepowanie
uzytkowników ani na poprawnosc badz spójnosc
aplikacji. - Rozproszone przetwarzanie zapytan System
powinien zapewniac sprawne przetwarzanie
rozproszonych zapytan umozliwiajace zredukowanie
zarówno czasu przetwarzania, jak i obciazenia
sieci transmisji danych. - Zarzadzanie rozproszonymi transakcjami Zasady
zarzadzania transakcjami oraz sterowania
wspólbieznoscia powinny obowiazywac dla operacji
w rozproszonej bazie danych. Zasady te wlaczaja
wykrywanie i usuwanie zakleszczen (deadlocks),
zarzadzanie przekroczeniami dopuszczalnego czasu
(timeout), rozproszone protokóly potwierdzenia
(commit) i odwracania (rollback), oraz inne
metody. - Niezaleznosc od sprzetu oprogramowanie
rozproszonego SZBD powinno pracowac na róznych
platformach sprzetowych.
18Reguly rozproszonych baz danych (4)
- Niezaleznosc od systemu operacyjnego
oprogramowanie rozproszonego SZBD powinno
pracowac pod róznymi systemami operacyjnymi. - Niezaleznosc od sieci Miejsca moga byc polaczone
poprzez szeroka game srodowisk sieciowych i
komunikacyjnych. Modele warstwowe istniejace dla
wspólczesnych protokólów komunikacyjnych
(obowiazujace w wiekszosci obecnych systemów
informacyjnych, takich jak OSI 7, TCP/IP, warstwy
SNA i DECnet) zapewniaja srodki do osiagniecia
tego celu nie tylko dla rozproszonych baz danych,
lecz w ogólnosci dla systemów informacyjnych. - Niezaleznosc od SZBD Powinno byc mozliwe
przylaczenie do rozproszonej bazy danych lokalnej
bazy danych zarzadzanej przez dowolny lokalny
SZBD.
19Regula niezaleznosc od centralnego miejsca
- Rozproszona baza danych nie moze zalezec od
jednego, centralnego miejsca odpowiedzialnego za
calosc funkcjonowania. - No single point failure, no concentration
points - Zaleznosc taka moze "wkrasc sie" niepostrzezenie,
jako konsekwencja pewnych (wydawaloby sie
drugorzednych) decyzji projektowych, np.
powolanie jednego serwera nazw, lub rejestracja
nowych miejsc przylaczajacych sie do rozproszonej
bazy danych. - Zaleznosc taka jest niekorzystna, gdyz
- Centralne miejsce moze stac sie waskim gardlem
dla operacji na danych - Awaria centralnego miejsca powoduje awarie calej
rozproszonej bazy danych. - Dla niektórych zastosowan brak centralnego
miejsca jest niekorzystny - z powodu nadmiernego wzrostu obciazenia sieci
zwiazanego z wymiana metadanych - z powodu zbyt niskiej wydajnosci (indeksy w
jednym miejscu) - z powodów biznesowych centralne miejsce jest
wygodne dla kontrolowania pozostalych miejsc.
20Nazwy elementów danych w rozproszonych BD
- Problem nazywania i identyfikacji danych w
rozproszonych BD staje sie znacznie bardziej
trudny niz w scentralizowanych BD. - Kryteria zarzadzania nazwami
- 1. Kazda dana, która ma byc niezaleznie
identyfikowana w systemie rozproszonym, musi miec
swoja unikalna nazwe (identyfikator). - 2. Nazwa powinna zapewniac efektywne odszukanie
lokalizacji danej. - 3. Nazwa nie powinna utrudniac zmiany lokalizacji
danej. - 4. Kazde lokalne miejsce w rozproszonej BD
powinno powinno miec mozliwosc autonomicznego
nadawania unikalnych nazw dla danych. - Centralny serwer nazw - nadaje wszystkie nazwy,
udziela informacji o lokalizacji nielokalnych
danych na podstawie ich nazw - nie spelnia warunku 4,
- moze powodowac waskie gardlo dla transakcji,
- jest pojedynczym powodem awarii calosci.
- Rozwiazanie prefiksowanie nazwy identyfikatorem
miejsca - trudnosci ze zmiana lokalizacji danych
(przy zachowaniu tozsamosci).