Przetwarzanie rozproszone: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Szopen (dyskusja | edycje)
Szopen (dyskusja | edycje)
Linia 22: Linia 22:


=== Zawartość ===
=== Zawartość ===
==== Wykłady ====
* '''Wykłady:'''
#Charakterystyka systemów rozproszonych
#Struktura środowiska przetwarzania, topologie
#Kanały komunikacyjne, komunikacja synchroniczna i asynchroniczna
#Środowiska typu GRID, przykładowe zastosowania
#Model formalny procesu sekwencyjnego
#Modele żądań
#Konfiguracja spójna, odcięcie spójne
#Predykaty globalne i ich własności
#Czas wirtualny, zegary logiczne, zegary skalarne
#Środowisko komunikacyjne zachowujące uporządkowanie przyczynowe wiadomości
#Komunikacja grupowa
#Warunki poprawności algorytmów rozproszonych
#Złożoność czasowa i komunikacyjna algorytmów rozproszonych
#Stan globalny systemu (modele, graf stanów, ocena)
#Konstrukcja spójnego obrazu stanu globalnego
#Różne realizacje przetwarzania rozproszonego klient-serwer
#Problem detekcji zakończenia przetwarzania
#Detekcja zakończenia dla synchronicznego modelu przetwarzania
#Detekcja zakończenia dla dyfuzyjnego modelu przetwarzania
#Detekcja zakończenia dla atomowego modelu przetwarzania
#Detekcja zakończenia statycznego
#Detekcja zakończenia dynamicznego
#Problem elekcji i głosowania
#Problemy uzgadniania
#Consensus
#Uzgadnianie bizantyjskie
#Niezawodność przetwarzania rozproszonego
#Komunikacja w środowisku zawodnym
#Niezawodne detektory uszkodzeń
#Odtwarzanie stanu systemu rozproszonego


==== Laboratoria ====
* Pierwszą część kursu stanowi moduł wprowadzający  w tematykę przetwarzania rozproszonego (41). Wykład rozpocznie się od krótkiego wprowadzenia, którego celem będzie zapoznanie słuchacza z bieżącym stanem wiedzy w tej dziedzinie. Następnie przedstawione zostaną proste definicje dotyczące środowiska przetwarzania. W kolejnych punktach wykładu przedstawione zostaną pewne reprezentatywne środowiska przetwarzania rozproszonego. Pierwszym takim środowiskiem będzie Internet. Przedstawiona zostanie jego krótka historia i obecne trendy rozwoju. Następnie krótko scharakteryzowane zostanie środowisko typu GRID. W kolejnym punkcie wykładu opisane zostaną popularne obecnie projekty nazywane potocznie @HOME. Jako przykłady posłużą projekty Seti@HOME, CureCancer, FightAnthrax. Na zakończenie omówiony zostanie projekt środowiska rozproszonego wyszukiwarki internetowej Google.
#środowisko PVM
 
#standard MPI / MPI2 i jego implementacje
* Celem kolejnego modułu kursu () zapoznanie słuchacza z podstawowymi pojęciami i problemami związanymi z przetwarzaniem rozproszonym. Wykład obejmie omówienie m. in. definicji procesu sekwencyjnego, komunikatu, kanału komunikacyjnego czy też stanu kanału. W dalszej części wykładu omówione zostaną różnego rodzaju operacje komunikacyjne, a także  scharakteryzowane zostaną rodzaje komunikacji. Student zapozna się także z formalnym modelem procesu sekwencyjnego. W następnej części wykładu zdefiniowane zostanie pojęcie zdarzenia i podane zostaną definicje różnych ich rodzajów. Kolejnym tematem który zostanie poruszony będzie pojęcie warunku uaktywnienia i definicje z tym związane. Na zakończenie przedstawione zostaną klasyczne modele żądań. Omówione zostaną ich definicje formalne i własności, a także zaprezentowana zostanie w sposób graficzny ich główna idea.
#problematyka konstrukcji procesów rozproszonych i zrównoleglania obliczeń w środowisku rozproszonym, architektury procesów rozprosznych (np. master-slave)
 
#komunikacja grupowa
* Trzeci moduł kursu (6 godz.) jest poświęcony obiektowym i obiektowo-relacyjnym bazom danych. W ramach tej części kursu zostaną omówione następujące zagadnienia: obiektowy model danych (w tym: przesłanki pojawienia się nowej generacji baz danych, nowe dziedziny zastosowań systemów baz danych wymagające silniejszego i bardziej elastycznego modelu danych niż model relacyjny, podstawowe koncepcje obiektowego modelu danych (możliwość modelowania abstrakcyjnych typów danych, mechanizm dziedziczenia typów danych, konstruktory złożonych typów danych, jawne związki między danymi, hierarchiczne zależności między kolekcjami obiektów oraz mechanizmy polimorfizmu i późnego wiązania), rozwiązania służące do zapewnienia obiektom przechowywanym w bazie danych systemowej tożsamości i trwałości), architektura obiektowych i obiektowo-relacyjnych baz danych, model ODMG, język ODL i OQL, implementacja obiektowych baz danych (w tym: obiektowa architektura klient-serwer, buforowanie obiektów, logiczne i fizyczne identyfikatory obiektów, składowanie obiektów, zarządzanie dużymi obiektami, indeksowanie wyrażeń ścieżkowych, hierarchia ścieżek binarnych, indeksowanie hierarchii rozszerzeń klas, sygnatury zbiorów, indeks RD-drzewo).
#mechanizmy rozproszonej synchronizacji procesów (np. bariery, spotkania symetryczne)
* Czwarty moduł kursu (5 godz.) jest poświęcony systemom multimedialnych baz danych oraz standardowi języka SQL/MM (nowy standard uzupełniający język SQL o biblioteki do obsługi specjalistycznych danych i aplikacji, głównie multimedialnych). W ramach tej części kursu zostaną omówione następujące zagadnienia: specyfika i zastosowania multimedialnych baz danych, modele danych dla multimedialnych baz danych, metadane, standard MPEG-7, techniki wyszukiwania, składowania i prezentacji danych multimedialnych, geneza standardu SQL/MM, podstawowe części standardu SQL/MM poświęcone przetwarzaniu danych tekstowych, przestrzennych i obrazów w bazach danych.
#rozwiązania podstawowych problemów przetwarzania rozproszonego (np. wzajemnego wykluczanie, detekcja zakończenia przetwarzania)
* Piąty moduł kursu (7 godz.) jest poświęcony bazom danych dokumentów XML, jako przykład semistrukturalnych baz danych. W ramach tej części kursu zostaną omówione następujące zagadnienia: typy dokumentów XML i ich wpływ na bazy danych, charakterystyka języków zapytań wykorzystywanych do przetwarzania dokumentów XML, baza danych dokumentów XML i sposoby przechowywania i mechanizmy przetwarzania dokumentów XML, język zapytań XQuery (w roku 2005 język XQuery stał się standardem zatwierdzonym przez W3C), w tym: cechy języka Xquery, składnia, klauzule FOR, LET, WHERE, RETURN, ORDER BY, podzapytania, wyrażenia warunkowe i ilościowe, funkcje, przykłady zastosowań. W dalszej części tego modułu kursu zostaną omówione: charakterystyka innych języków semistrukturalnych baz danych, techniki modyfikacji dokumentów XML, w tym: wymagania dotyczące funkcjonalności języka modyfikacji, prosta wymiana i usuwanie dokumentów XML, DOM API oraz języki deklaratywne (Xupdate i rozszerzenia Xquery).
* Ostatni moduł kursu (5 godz.) jest poświęcony hurtowniom danych. W ramach tej części kursu zostaną omówione następujące zagadnienia: wprowadzenie do problematyki integracji rozproszonych i heterogenicznych baz danych, podstawowa architektura integracji danych oparta o hurtownię danych, oprogramowanie ETL, problem wykrywania zmian w źródłach danych, charakterystyka przetwarzania analitycznego (On-Line Analytical Processing - OLAP), wielowymiarowy model danych (wymiary i fakty), implementacja modelu wielowymiarowego w serwerach relacyjnych (ROLAP) (schemat gwiazdy, płatka śniegu i konstelacja faktów) oraz wielowymiarowych (MOLAP) (implementacja i operatory MOLAP). W dalszej części tego modułu kursu zostaną omówione zagadnienia implementacyjne i efektywność przetwarzania OLAP, w tym: odświeżanie hurtowni danych w czasie jej pracy, wykorzystanie perspektyw zmaterializowanych do implementowania hurtowni, techniki zwiększające efektywność przetwarzania analitycznego, m.in. przepisywanie zapytań w oparciu o perspektywy zmaterializowane, indeksowanie danych przy użyciu różnych struktur, partycjonowanie danych i indeksów, kompresja danych i indeksów, przetwarzanie równoległe w hurtowniach danych oraz metadane opisujące hurtownię.
 
* '''Laboratoria:'''
 
* Pierwszą część zajęć laboratoryjnych kursu stanowią trzy moduły (9 godz.) poświęcone systemom rozproszonych baz danych. Cykl tych trzech ćwiczeń ilustruje fundamentalne zagadnienia związane z projektowaniem i implementacją rozproszonych baz danych, tj. replikowanie danych, zarządzanie transakcjami rozproszonymi z wykorzystaniem protokołu 2PC, techniki optymalizacji zapytań rozproszonych. W ramach tej części kursu zostaną omówione i przećwiczone następujące zagadnienia: dostępu do zdalnej bazy danych za pomocą tzw. łącznika bazy danych, replikowanie danych za pomocą tzw. migawki, parametry migawki definiowane przez użytkownika mające wpływ na jej własności, problem przyrostowego odświeżania migawki, grupa odświeżania jako mechanizm jednoczesnego odświeżania wielu migawek, definicje i podstawowe cechy transakcji rozproszonej, role baz danych biorących udział w transakcji rozproszonej, implementacja protokołu zatwierdzania transakcji rozproszonej (protokół 2-Phase-Commit - 2PC), problemy związane z awariami rozproszonej bazy danych w trakcie zatwierdzania transakcji rozproszonej, procedura odtwarzania transakcji rozproszonej, która uległa awarii (zilustrowane studium przypadku), charakterystyka zapytania rozproszonego i plan jego wykonania, narzędzia Oracle analizy planu wykonania zapytania, studium przypadku obejmujące analizę technik filtrowania danych z tabeli zdalnej, grupowania i sortowania danych z tabeli zdalnej, łączenie tabeli lokalnej i zdalnej, zastosowanie tradycyjnych perspektyw (ang. view) w optymalizacji zapytań rozproszonych, zastosowanie wskazówek optymalizatora kosztowego w optymalizacji zapytań rozproszonych. Wszystkie powyższe problemy są ilustrowane rozwiązaniami i technikami implementowanymi w systemie Oracle9i/10g.
* Drugą część zajęć laboratoryjnych kursu stanowią trzy moduły (7 godz.) poświęcone systemom obiektowych baz danych. Cykl tych trzech ćwiczeń ilustruje podstawowe zagadnienia związane z implementacją, programowaniem i użytkowaniem obiektowych baz danych. W ramach tej części kursu zostaną omówione i przećwiczone następujące zagadnienia: charakterystyka i instalacja systemu zarządzania obiektową bazą danych (SZOBD) db4o razem ze środowiskiem programistycznym pozwalającym na tworzenie oprogramowania z nim współpracującego (db4o jest to system, pracujący na platformach Java i .NET, pozwalający na bezpośrednie składowanie obiektów w bazach danych; db4o jest rozpowszechniany bezpłatnie na licencji GPL oraz płatnie na licencji przeznaczonej dla zastosowań komercyjnych), konfiguracja środowiska Eclipse do współpracy z db4o, tworzenie nowego projektu, współpracującego z db4o, architektury aplikacji, jakie można zbudować w oparciu o SZOBD db4o, interfejsy i metody bibliotek SZOBD db4o pozwalające na wykonywanie podstawowych operacji na obiektach składowanych w obiektowej bazie danych, takich jak: zapisywanie obiektów do bazy danych, odszukiwanie i odczytywanie obiektów z bazy danych, modyfikacja obiektów w bazie danych, usuwanie obiektów z bazy danych. W dalszej części tego modułu kursu zostaną omówione zagadnienia dotyczące złożonych, dynamicznych struktur danych, w tym: sposoby zapisu, wyszukiwania, odczytu, modyfikacji i usuwania złożonych struktur danych.
* Trzecia część zajęć laboratoryjnych kursu stanowią trzy moduły (7 godz.) poświęcone systemom obiektowo - relacyjnych baz danych. Cykl tych trzech ćwiczeń ilustruje zagadnienia związane z programowaniem i użytkowaniem obiektowo- relacyjnych baz danych. W ramach tej części kursu zostaną omówione i przećwiczone następujące zagadnienia: różnice pomiędzy systemem zarządzania obiektowo-relacyjną bazą danych a SZOBD i systemem zarządzania relacyjną bazą danych, tworzenie typów obiektowych i ich instancji, składowanie obiektów w bazie danych (w tym: tworzenie typów obiektowych, składowanie obiektów), polecenia języka SQL pozwalającą na przeszukiwanie obiektów (w tym: deklaracja metod i konstruktorów, programowanie i implementacja metod i konstruktorów, aktywowanie metod, zapytania do atrybutów obiektów), posługiwanie się typami referencyjnymi (w tym: nawigowanie po referencjach, referencje puste i wiszące), inne obiekty o złożonej strukturze tj. kolekcje wartości, dwa rodzaje kolekcji: tablice o zmiennej długości (w tym: sposób, w jaki mogą być wykorzystywane z poziomu SQL i z poziomu PL/SQL) oraz zagnieżdżone tabele (w tym: różnice pomiędzy obydwoma rodzajami kolekcji, cechy charakterystyczne tabel zagnieżdżonych oraz praca z tym typem kolekcji zarówno z poziomu SQL, jak i z poziomu PL/SQL), konstrukcja CAST(MULTISET). W dalszej części tego modułu kursu zostaną omówione zagadnienia dotyczące motywacji implementacji pewnych cech modelu obiektowego w modelu relacyjnym, co zaowocowało systemami obiektowo-relacyjnych baz danych. Następnie, omówiona i przećwiczona zostanie składnia poleceń pozwalająca na: tworzenie typów dziedziczących ze zdefiniowanych wcześniej typów obiektowych, przesłanianie istniejących metod, deklarowanie typów i metod abstrakcyjnych, oraz omówiony i przećwiczony zostanie polimorfizm i związane z nim dynamiczne wiązanie metod, oraz sposób wykorzystania tych cech przy konstrukcji zapytań, w tym: operatory TREAT i IS OF pozwalające na wykonywanie zapytań do tabel przechowujących obiekty różnych podtypów.
* Czwarta część zajęć laboratoryjnych kursu (2 godz.) dotyczy systemów multimedialnych baz danych. Ćwiczenie to ilustruje zagadnienia związane z programowaniem i użytkowaniem multimedialnych baz danych. W ramach tej części kursu zostaną omówione i przećwiczone następujące zagadnienia: możliwości przetwarzania danych multimedialnych wprowadzonych przez standard SQL/MM (w tym: część standardu, która dotyczy przetwarzania obrazów), ładowanie obrazów do bazy danych, odczytywanie ich parametrów, wykonywanie zapytań typu Content Based Retrieval i modyfikowanie obrazów zapisanych w bazie danych.
* Ostatnią część zajęć laboratoryjnych kursu stanowią trzy moduły (5 godz.) poświęcone systemom semistrukturalnych baz danych. Cykl tych trzech ćwiczeń ilustruje zagadnienia związane z programowaniem i użytkowaniem baz danych dokumentów XML. W ramach tej części kursu zostaną omówione i przećwiczone następujące zagadnienia: charakterystyka przykładowej bazy danych dokumentów XML – dbXML, wykonywanie zapytań Xpath, dostęp do bazy danych dbXML za pomocą WWW, duże kolekcje dokumentów i indeksy, zapytania dotyczące dokumentów umieszczonych w repozytorium XML oraz modyfikacje takich dokumentów.


=== Literatura ===
=== Literatura ===

Wersja z 09:22, 4 wrz 2006

Forma zajęć

Wykład (30 godzin) + laboratorium (30 godzin)

Opis

Celem przedmiotu jest przedstawienie podstawowej problematyki przetwarzania rozproszonego oraz przykładów elementarnych rozwiązań wybranych problemów szczegółowych. Wykład wprowadza podstawowe pojęcia i przedstawia podstawowe elementy modelu przetwarzania rozproszonego, m.in.: formalny model środowiska przetwarzania rozproszonego, analizę aktywności i warunki uaktywnienia, klasyczne modele żądań, wykonanie procesu rozproszonego, właściwości przetwarzania rozproszonego (relacja poprzedzania, diagramy przestrzenno-czasowe, grafy stanów osiągalnych, niedeterminizm przetwarzania, spójność stanu, predykaty globalne i ich własności) oraz charakterystyki algorytmów rozproszonych (warunki poprawności algorytmów, złożoność czasowa i komunikacyjna). Omawiane są zagadnienia komunikacji zachowującej uporządkowanie wiadomości, wyznaczania stanu globalnego, synchronizacji czasu oraz detekcji zakończenia przetwarzania rozproszonego. Wreszcie przedstawiona jest problematyka związana z niezawodnością przetwarzania w zawodonym środowisku rozproszonym. Laboratorium pozwala nabrać praktycznej intuicji w konstrukcji i implementacji aplikacji rozproszonych w przykładowym środowisku. Na laboratorium studenci konfrontują uzyskane wiadomości z praktyczną implementacją algorytmów rozproszonych, projektują algorytmy rozproszone wdrażając je następnie w wybranym środowisku przetwarzania rozproszonego.

Sylabus

Autor sylabusa

  • Dr hab. inż. Jerzy Brzeziński, prof. nadzw. Politechniki Poznańskiej
  • E-mail: Jerzy.Brzeziński@cs.put.poznan.pl

Autorzy kursu

  • Kurs został przygotowany przez zespół pracowników Instytutu Informatyki Politechniki Poznańskiej pod kierunkiem dr hab. inż. Jerzego Brzezińskiego, prof. nadzw. PP, w składzie: dr inż. Michał Sajkowski, mgr inż. Jacek Kobusiński oraz mgr inż. Arkadiusz Danilecki.


Wymagania wstępne

  • Znajomość tematyki omawianej w ramach przedmiotu Systemy operacyjne
  • Podstawowe wiadomości z zakresu siec komputerowych
  • Laboratoria wymagają znajomości języka C. Przygotowanie do pracy omawianych środowisk MPI oraz PVM wymaga podstawowych umiejętności związanych z konfiguracją i zarządzaniem systemu.

Zawartość

  • Wykłady:
  • Pierwszą część kursu stanowi moduł wprowadzający w tematykę przetwarzania rozproszonego (41). Wykład rozpocznie się od krótkiego wprowadzenia, którego celem będzie zapoznanie słuchacza z bieżącym stanem wiedzy w tej dziedzinie. Następnie przedstawione zostaną proste definicje dotyczące środowiska przetwarzania. W kolejnych punktach wykładu przedstawione zostaną pewne reprezentatywne środowiska przetwarzania rozproszonego. Pierwszym takim środowiskiem będzie Internet. Przedstawiona zostanie jego krótka historia i obecne trendy rozwoju. Następnie krótko scharakteryzowane zostanie środowisko typu GRID. W kolejnym punkcie wykładu opisane zostaną popularne obecnie projekty nazywane potocznie @HOME. Jako przykłady posłużą projekty Seti@HOME, CureCancer, FightAnthrax. Na zakończenie omówiony zostanie projekt środowiska rozproszonego wyszukiwarki internetowej Google.
  • Celem kolejnego modułu kursu () zapoznanie słuchacza z podstawowymi pojęciami i problemami związanymi z przetwarzaniem rozproszonym. Wykład obejmie omówienie m. in. definicji procesu sekwencyjnego, komunikatu, kanału komunikacyjnego czy też stanu kanału. W dalszej części wykładu omówione zostaną różnego rodzaju operacje komunikacyjne, a także scharakteryzowane zostaną rodzaje komunikacji. Student zapozna się także z formalnym modelem procesu sekwencyjnego. W następnej części wykładu zdefiniowane zostanie pojęcie zdarzenia i podane zostaną definicje różnych ich rodzajów. Kolejnym tematem który zostanie poruszony będzie pojęcie warunku uaktywnienia i definicje z tym związane. Na zakończenie przedstawione zostaną klasyczne modele żądań. Omówione zostaną ich definicje formalne i własności, a także zaprezentowana zostanie w sposób graficzny ich główna idea.
  • Trzeci moduł kursu (6 godz.) jest poświęcony obiektowym i obiektowo-relacyjnym bazom danych. W ramach tej części kursu zostaną omówione następujące zagadnienia: obiektowy model danych (w tym: przesłanki pojawienia się nowej generacji baz danych, nowe dziedziny zastosowań systemów baz danych wymagające silniejszego i bardziej elastycznego modelu danych niż model relacyjny, podstawowe koncepcje obiektowego modelu danych (możliwość modelowania abstrakcyjnych typów danych, mechanizm dziedziczenia typów danych, konstruktory złożonych typów danych, jawne związki między danymi, hierarchiczne zależności między kolekcjami obiektów oraz mechanizmy polimorfizmu i późnego wiązania), rozwiązania służące do zapewnienia obiektom przechowywanym w bazie danych systemowej tożsamości i trwałości), architektura obiektowych i obiektowo-relacyjnych baz danych, model ODMG, język ODL i OQL, implementacja obiektowych baz danych (w tym: obiektowa architektura klient-serwer, buforowanie obiektów, logiczne i fizyczne identyfikatory obiektów, składowanie obiektów, zarządzanie dużymi obiektami, indeksowanie wyrażeń ścieżkowych, hierarchia ścieżek binarnych, indeksowanie hierarchii rozszerzeń klas, sygnatury zbiorów, indeks RD-drzewo).
  • Czwarty moduł kursu (5 godz.) jest poświęcony systemom multimedialnych baz danych oraz standardowi języka SQL/MM (nowy standard uzupełniający język SQL o biblioteki do obsługi specjalistycznych danych i aplikacji, głównie multimedialnych). W ramach tej części kursu zostaną omówione następujące zagadnienia: specyfika i zastosowania multimedialnych baz danych, modele danych dla multimedialnych baz danych, metadane, standard MPEG-7, techniki wyszukiwania, składowania i prezentacji danych multimedialnych, geneza standardu SQL/MM, podstawowe części standardu SQL/MM poświęcone przetwarzaniu danych tekstowych, przestrzennych i obrazów w bazach danych.
  • Piąty moduł kursu (7 godz.) jest poświęcony bazom danych dokumentów XML, jako przykład semistrukturalnych baz danych. W ramach tej części kursu zostaną omówione następujące zagadnienia: typy dokumentów XML i ich wpływ na bazy danych, charakterystyka języków zapytań wykorzystywanych do przetwarzania dokumentów XML, baza danych dokumentów XML i sposoby przechowywania i mechanizmy przetwarzania dokumentów XML, język zapytań XQuery (w roku 2005 język XQuery stał się standardem zatwierdzonym przez W3C), w tym: cechy języka Xquery, składnia, klauzule FOR, LET, WHERE, RETURN, ORDER BY, podzapytania, wyrażenia warunkowe i ilościowe, funkcje, przykłady zastosowań. W dalszej części tego modułu kursu zostaną omówione: charakterystyka innych języków semistrukturalnych baz danych, techniki modyfikacji dokumentów XML, w tym: wymagania dotyczące funkcjonalności języka modyfikacji, prosta wymiana i usuwanie dokumentów XML, DOM API oraz języki deklaratywne (Xupdate i rozszerzenia Xquery).
  • Ostatni moduł kursu (5 godz.) jest poświęcony hurtowniom danych. W ramach tej części kursu zostaną omówione następujące zagadnienia: wprowadzenie do problematyki integracji rozproszonych i heterogenicznych baz danych, podstawowa architektura integracji danych oparta o hurtownię danych, oprogramowanie ETL, problem wykrywania zmian w źródłach danych, charakterystyka przetwarzania analitycznego (On-Line Analytical Processing - OLAP), wielowymiarowy model danych (wymiary i fakty), implementacja modelu wielowymiarowego w serwerach relacyjnych (ROLAP) (schemat gwiazdy, płatka śniegu i konstelacja faktów) oraz wielowymiarowych (MOLAP) (implementacja i operatory MOLAP). W dalszej części tego modułu kursu zostaną omówione zagadnienia implementacyjne i efektywność przetwarzania OLAP, w tym: odświeżanie hurtowni danych w czasie jej pracy, wykorzystanie perspektyw zmaterializowanych do implementowania hurtowni, techniki zwiększające efektywność przetwarzania analitycznego, m.in. przepisywanie zapytań w oparciu o perspektywy zmaterializowane, indeksowanie danych przy użyciu różnych struktur, partycjonowanie danych i indeksów, kompresja danych i indeksów, przetwarzanie równoległe w hurtowniach danych oraz metadane opisujące hurtownię.
  • Laboratoria:
  • Pierwszą część zajęć laboratoryjnych kursu stanowią trzy moduły (9 godz.) poświęcone systemom rozproszonych baz danych. Cykl tych trzech ćwiczeń ilustruje fundamentalne zagadnienia związane z projektowaniem i implementacją rozproszonych baz danych, tj. replikowanie danych, zarządzanie transakcjami rozproszonymi z wykorzystaniem protokołu 2PC, techniki optymalizacji zapytań rozproszonych. W ramach tej części kursu zostaną omówione i przećwiczone następujące zagadnienia: dostępu do zdalnej bazy danych za pomocą tzw. łącznika bazy danych, replikowanie danych za pomocą tzw. migawki, parametry migawki definiowane przez użytkownika mające wpływ na jej własności, problem przyrostowego odświeżania migawki, grupa odświeżania jako mechanizm jednoczesnego odświeżania wielu migawek, definicje i podstawowe cechy transakcji rozproszonej, role baz danych biorących udział w transakcji rozproszonej, implementacja protokołu zatwierdzania transakcji rozproszonej (protokół 2-Phase-Commit - 2PC), problemy związane z awariami rozproszonej bazy danych w trakcie zatwierdzania transakcji rozproszonej, procedura odtwarzania transakcji rozproszonej, która uległa awarii (zilustrowane studium przypadku), charakterystyka zapytania rozproszonego i plan jego wykonania, narzędzia Oracle analizy planu wykonania zapytania, studium przypadku obejmujące analizę technik filtrowania danych z tabeli zdalnej, grupowania i sortowania danych z tabeli zdalnej, łączenie tabeli lokalnej i zdalnej, zastosowanie tradycyjnych perspektyw (ang. view) w optymalizacji zapytań rozproszonych, zastosowanie wskazówek optymalizatora kosztowego w optymalizacji zapytań rozproszonych. Wszystkie powyższe problemy są ilustrowane rozwiązaniami i technikami implementowanymi w systemie Oracle9i/10g.
  • Drugą część zajęć laboratoryjnych kursu stanowią trzy moduły (7 godz.) poświęcone systemom obiektowych baz danych. Cykl tych trzech ćwiczeń ilustruje podstawowe zagadnienia związane z implementacją, programowaniem i użytkowaniem obiektowych baz danych. W ramach tej części kursu zostaną omówione i przećwiczone następujące zagadnienia: charakterystyka i instalacja systemu zarządzania obiektową bazą danych (SZOBD) db4o razem ze środowiskiem programistycznym pozwalającym na tworzenie oprogramowania z nim współpracującego (db4o jest to system, pracujący na platformach Java i .NET, pozwalający na bezpośrednie składowanie obiektów w bazach danych; db4o jest rozpowszechniany bezpłatnie na licencji GPL oraz płatnie na licencji przeznaczonej dla zastosowań komercyjnych), konfiguracja środowiska Eclipse do współpracy z db4o, tworzenie nowego projektu, współpracującego z db4o, architektury aplikacji, jakie można zbudować w oparciu o SZOBD db4o, interfejsy i metody bibliotek SZOBD db4o pozwalające na wykonywanie podstawowych operacji na obiektach składowanych w obiektowej bazie danych, takich jak: zapisywanie obiektów do bazy danych, odszukiwanie i odczytywanie obiektów z bazy danych, modyfikacja obiektów w bazie danych, usuwanie obiektów z bazy danych. W dalszej części tego modułu kursu zostaną omówione zagadnienia dotyczące złożonych, dynamicznych struktur danych, w tym: sposoby zapisu, wyszukiwania, odczytu, modyfikacji i usuwania złożonych struktur danych.
  • Trzecia część zajęć laboratoryjnych kursu stanowią trzy moduły (7 godz.) poświęcone systemom obiektowo - relacyjnych baz danych. Cykl tych trzech ćwiczeń ilustruje zagadnienia związane z programowaniem i użytkowaniem obiektowo- relacyjnych baz danych. W ramach tej części kursu zostaną omówione i przećwiczone następujące zagadnienia: różnice pomiędzy systemem zarządzania obiektowo-relacyjną bazą danych a SZOBD i systemem zarządzania relacyjną bazą danych, tworzenie typów obiektowych i ich instancji, składowanie obiektów w bazie danych (w tym: tworzenie typów obiektowych, składowanie obiektów), polecenia języka SQL pozwalającą na przeszukiwanie obiektów (w tym: deklaracja metod i konstruktorów, programowanie i implementacja metod i konstruktorów, aktywowanie metod, zapytania do atrybutów obiektów), posługiwanie się typami referencyjnymi (w tym: nawigowanie po referencjach, referencje puste i wiszące), inne obiekty o złożonej strukturze tj. kolekcje wartości, dwa rodzaje kolekcji: tablice o zmiennej długości (w tym: sposób, w jaki mogą być wykorzystywane z poziomu SQL i z poziomu PL/SQL) oraz zagnieżdżone tabele (w tym: różnice pomiędzy obydwoma rodzajami kolekcji, cechy charakterystyczne tabel zagnieżdżonych oraz praca z tym typem kolekcji zarówno z poziomu SQL, jak i z poziomu PL/SQL), konstrukcja CAST(MULTISET). W dalszej części tego modułu kursu zostaną omówione zagadnienia dotyczące motywacji implementacji pewnych cech modelu obiektowego w modelu relacyjnym, co zaowocowało systemami obiektowo-relacyjnych baz danych. Następnie, omówiona i przećwiczona zostanie składnia poleceń pozwalająca na: tworzenie typów dziedziczących ze zdefiniowanych wcześniej typów obiektowych, przesłanianie istniejących metod, deklarowanie typów i metod abstrakcyjnych, oraz omówiony i przećwiczony zostanie polimorfizm i związane z nim dynamiczne wiązanie metod, oraz sposób wykorzystania tych cech przy konstrukcji zapytań, w tym: operatory TREAT i IS OF pozwalające na wykonywanie zapytań do tabel przechowujących obiekty różnych podtypów.
  • Czwarta część zajęć laboratoryjnych kursu (2 godz.) dotyczy systemów multimedialnych baz danych. Ćwiczenie to ilustruje zagadnienia związane z programowaniem i użytkowaniem multimedialnych baz danych. W ramach tej części kursu zostaną omówione i przećwiczone następujące zagadnienia: możliwości przetwarzania danych multimedialnych wprowadzonych przez standard SQL/MM (w tym: część standardu, która dotyczy przetwarzania obrazów), ładowanie obrazów do bazy danych, odczytywanie ich parametrów, wykonywanie zapytań typu Content Based Retrieval i modyfikowanie obrazów zapisanych w bazie danych.
  • Ostatnią część zajęć laboratoryjnych kursu stanowią trzy moduły (5 godz.) poświęcone systemom semistrukturalnych baz danych. Cykl tych trzech ćwiczeń ilustruje zagadnienia związane z programowaniem i użytkowaniem baz danych dokumentów XML. W ramach tej części kursu zostaną omówione i przećwiczone następujące zagadnienia: charakterystyka przykładowej bazy danych dokumentów XML – dbXML, wykonywanie zapytań Xpath, dostęp do bazy danych dbXML za pomocą WWW, duże kolekcje dokumentów i indeksy, zapytania dotyczące dokumentów umieszczonych w repozytorium XML oraz modyfikacje takich dokumentów.

Literatura

  • M. Ben-Ari. Podstawy programowania współbieżnego i rozproszonego. WNT, 1990
  • Andrew S. Tanenebaum. Rozproszone Systemy Operacyjne. PWN, 1997
  • Michel Raynal. Distributed Algorithms and Protocols. John Wiley & Sons, 1988
  • Sape Müllender, ed. Distributed Systems. Addison-Wesley, 1993
  • Gerard Tel. Introduction to Distributed Algorithms. Cambridge University Press, 1994
  • Nancy A. Lynch. Distributed algorithms. Morgan Kaufmann Publishers, 1996
  • Randy Chow, Theodore Johnson. Distributed Operating Systems & Algorithms, Addison Wesley Longman, 1997
  • Pradeep K. Sinha. Distributed Operating Systems. Concepts and Design, IEEE Computer Society Press, 1997
  • J. Brzeziński. Ocena stanu globalnego w systemach rozproszonych, OWN 2001

Moduły

Wykłady

  1. Wykład Wprowadzenie (pdf, pdf kolor, pdf notatki) / Laboratorium - Wprowadzenie do środowiska PVM (wersja pdf)
  2. Wykład Przetwarzanie rozproszone (pdf, pdf kolor,pdf notatki) / Laboratorium - Pierwsze kroki w PVM (wersja pdf)
  3. Wykład Proces rozproszony (pdf, pdf kolor,pdf notatki) / Laboratorium - Komunikacja między procesami (wersja pdf)
  4. Wykład Zegary logiczne, złożoność obliczeniowa (pdf,pdf kolor,pdf notatki) / Laboratorium - Zegary logiczne (wersja pdf)
  5. Wykład Detekcja zakleszczenia I (pdf,pdf kolor, pdf notatki) / Laboratorium - Komunikacja grupowa (wersja pdf)
  6. Wykład Detekcja zakleszczenia II (pdf,pdf kolor, pdf notatki) / Laboratorium - Obliczanie liczby Pi metodą montecarlo (wersja pdf)
  7. Wykład Konstrukcja spójnego obrazu stanu globalnego I (pdf,pdf kolor,pdf notatki) / Laboratorium - Łamanie haseł (wersja pdf)
  8. Wykład Konstrukcja spójnego obrazu stanu globalnego II (pdf, pdf kolor,pdf notatki) / Laboratorium - Zaawansowane operacje grupowe (wersja pdf)
  9. Wykład Detekcja zakończenia I (pdf, pdf kolor, pdf notatki) / Laboratorium - Detekcja zakończenia (wersja pdf)
  10. Wykład Detekcja zakończenia II (pdf, pdf kolor, pdf notatki) / Laboratorium - Instalacja środowiska MPI w systemie operacyjnym Microsoft Windows (wersja pdf)
  11. Wykład Niezawodność przetwarzania (pdf, pdf kolor, pdf notatki) / Laboratorium - Instalacja środowiska MPI w systemie operacyjnym Linux (wersja pdf)
  12. Wykład Niezawodne rozgłaszanie (pdf,pdf kolor,pdf notatki) / Laboratorium - Pierwsze kroki w środowisku MPI (wersja pdf)
  13. Wykład Problemy konsensusu (pdf,pdf kolor,pdf notatki) / Laboratorium - Komunikacja kolektywna w środowisku MPI (wersja pdf)

Tylko laboratoria:

  1. Laboratorium - Wprowadzenie do środowiska PVM (wersja pdf)
  2. Laboratorium - Pierwsze kroki w PVM (wersja pdf)
  3. Laboratorium - Komunikacja między procesami (wersja pdf)
  4. Laboratorium - Zegary logiczne (wersja pdf)
  5. Laboratorium - Komunikacja grupowa (wersja pdf)
  6. Laboratorium - Obliczanie liczby Pi metodą montecarlo (wersja pdf)
  7. Laboratorium - Łamanie haseł (wersja pdf)
  8. Laboratorium - Zaawansowane operacje grupowe (wersja pdf)
  9. Laboratorium - Detekcja zakończenia (wersja pdf)
  10. Laboratorium - Instalacja środowiska MPI w systemie operacyjnym Microsoft Windows (wersja pdf)
  11. Laboratorium - Instalacja środowiska MPI w systemie operacyjnym Linux (wersja pdf)
  12. Laboratorium - Pierwsze kroki w środowisku MPI (wersja pdf)
  13. Laboratorium - Komunikacja kolektywna w środowisku MPI (wersja pdf)