Systemy rozproszone

RSS

Cel przedmiotu

Celem kształcenia jest zaznajomienie studenta z teoretycznymi i praktycznymi aspektami budowy i działania komputerowych systemów rozproszonych, oraz środowiskami implementacji oprogramowania dla tych systemów. Wykład dotyczy środowisk bazujących na modelu rozproszonego przetwarzania obiektowego i stanowi podstawę dla wykładu z rozproszonych technologii komponentowych i SOA.

Program wykładu

Systemy rozproszone – definicja, pojęcia podstawowe, usługi bazowe w systemach rozproszonych. Budowa aplikacji sieciowych. Mechanizmy komunikacji w systemach rozproszonych - zdalne wywołanie procedury, zdalne wywołanie metody, przesyłanie komunikatów. Migracja - rodzaje oraz znaczenie w budowie środowisk przetwarzania rozproszonego. Warstwy pośredniczące obiektowe – OOM, oraz zorientowane na wiadomości – MOM. Środowisko RMI i jego budowa. Zarządzanie zasobami w środowisku RMI – JAF. CORBA – architektura systemu i jej znaczenie dla rozwoju obiektowych środowisk rozproszonych. Elementy architektury CORBA – podstawowe interfejsy, POA, DII, DSI. Usługi CORBA: Name Service, Trading, Transaction Service, Event. Service, Notification Service. Kanoniczne problemy systemów rozproszonych – pojęcie czasu, zegary logiczne Lamporta, zegary wektorowe. Modele spójności w systemach rozproszonych. Replikacja oraz protokoły zarządzanie replikami danych. Algorytmy elekcji oraz synchronizacji w środowisku rozproszonym.

Charakterystyka pozostałych zajęć

Zajęcia laboratoryjne są praktyczną weryfikacją zagadnień poruszanych na wykładzie. Studenci oprócz znajomości teorii, muszą wykazać się biegłym programowaniem w językach C, C++ i Java, w których to językach implementują aplikacje rozproszone korzystając z poznawanych technologii. Zajęcia laboratoryjne rozpoczynają zagadnienia z programowania niskopoziomowego przy użyciu API Gniazd czy RPC, a dalej wprowadzane są mechanizmy Java RMI i CORBA oraz ICE. Zapoznawanie studentów z kolejnymi technologiami odbywa są na zasadzie ich porównania z wcześniej omawianymi, co daje studentom możliwość śledzenia rozwoju technologii budowy oprogramowania i lepszego jej zrozumienia a także pozwala na budowanie prostych interakcyjnych aplikacji internetowych działających w oparciu o bazę danych.

Bibliografia

1. A. Tanenbaum, S. Maatern, “Systemy rozproszone. Zasady I paradygmaty”, Klasyka Informatyki, WNT, 2006
2. M. Henning, S. Vinowski, „Advanced CORBA Programming in C++” , Addison-Wesley, 1999
3. R. Johson, J. Hoeller, A. Anderson, T, Risberg, C. Sampaleanu, ”Spring Framework. Profesjonalne tworzenie oprogramowania w Javie”,Helion,2006
4. G. F. Coulouris, „Systemy rozproszone. Podstawy i projektowanie” ,WNT, 1999
5. W. Grosso, „Java RMI – Design and Building Distributed Systems”, O’Reilly, 2002

Wszelkie prawa zastrzeżone © 2010 Katedra Informatyki   |   Akademia Górniczno-Hutnicza   |   Realizacja Creative Bastards