Systemy Rozproszone

advertisement
Uwaga! Ten przedmiot zawsze był realizowany na 7 semestrze studiów dziennych i
wieczorowych. Ze względu na mój urlop doktorancki dokonano czasowego przesunięcia tego
przedmiotu na 8 semestr (letni).
Proszę o sprawdzenie i poprawienie kodu przedmiotu, bo nie jestem pewny, czy jest
prawidłowy.
Przemysław Sołtan
e-mail:[email protected]
Systemy Rozproszone
Distributed Systems
??? ECTS
dzienne inżynierskie,
wieczorowe inżynierskie
Kod przedmiotu
Imię i Nazwisko organizującego
BI2NI7000PSOSyRo mgr inż. Przemysław Sołtan
CI2NI7000PSOSyRo
LICZBA GODZIN
Kursy poprzedzające
Słowa kluczowe
w
c
Kurs egzaminacyjny nie
egzaminacyjny – wykład i ćwiczenia
Zaliczenie
1
1
15 tygodni zajęć
bez odrębnej sesji
egzaminacyjnej, na
podstawie ocen
bieżących
bazy danych, systemy zarządzania bazami danych, programowanie obiektowe,
programowanie JAVA, metajęzyki, witryny i portale internetowe,
JAVA, J2EE, EJB, JMS, JNDI, LDAP, Web Services
PROGRAM SZCZEGÓŁOWY
CELE KURSU.
Opis kursu – cele i procedury ich osiągania: Na bazie wiedzy i umiejętności z kursu Witryn i Portali
Internetowych uzyskanie pogłębionej sprawności projektowej w zakresie umiejętności
tworzenia aplikacji biznesowych bazujących na platformie Java EE.
Cel poznawczy:
Ugruntowanie wiedzy o budowie komponentów biznesowych EJB, komunikacji
rozproszonej JMS oraz usługach sieciowych Web Services bazujących na języku XML.
Poznanie różnorodnych technik projektowania i realizacji
mechanizmów obsługi
rozproszonych usług nazewniczych JNDI i serwerów katalogowych LDAP.
Cel kształcący:
Kształtowanie sprawności w wymienionych umiejętnościach w stopniu pozwalającym
domniemać zrozumienie i potencjalną możliwość świadomego i skutecznego posługiwania
się serwerami aplikacyjnymi jako elementów systemów rozproszonych.
Cel praktyczny:
Kształtowanie przekonania o zawodowej przydatności kształconych umiejętności
Umiejętności wynikowe kursu i ich ewaluacja:
Instalacja serwera biznesowego Java EE (Sun Microsystems). Instalacja i dystrybucja
rozproszonych komponentów EJB typu sesyjnego. Utrwalanie danych przy użyciu
komponentów jednostkowych Entity Bean. Umiejętność deklaratywnego określania
poziomu transakcyjności komponentów EJB. Realizacja wzorców projektowych: fasady,
delegata biznesowego oraz lokalizatora usług. Tworzenie aplikacji EAR oraz zdalnego kodu
klienta w języku JAVA. Projektowanie kodu wykorzystującego mechanizmy
asynchronicznej komunikacji kolejek JMS oraz protokołu SOAP zorientowanego na usługi
Web Services. Komunikacja z systemami katalogowymi LDAP przy użyciu biblioteki JNDI
i serwera OpenLDAP.
Wymagania podstawowe (stopnie dostateczne)
Wymagania rozszerzone (stopnie dobre)
Zaprojektuje poprawnie komponenty EJB
typu sesyjnego oraz jednostkowego (entity)
Potrafi skomunikować komponenty sesyjne i
entity z wykorzystaniem wzorca fasady.
Potrafi archiwizować i instalować własną
aplikację.
Potrafi przygotować dokumentację do
zaprojektowanego kodu oraz omówić
stosowane
przez
siebie
mechanizmy
programistyczne.
Potrafi ocenić zaawansowanie własnego
projektu
i
wskazać
kierunki
jego
ewentualnego rozwoju.
Zastosuje
dodatkowe
komponenty
rozszerzające funkcjonalność aplikacji (np.
LDAP, Web Services, JMS)
Potrafi przygotować dokumentację do
zaprojektowanego kodu w rozszerzone wersji
z uwzględnieniem diagramów (UML) oraz
omówić stosowane przez siebie mechanizmy
programistyczne.
Potrafi ocenić zaawansowanie własnego
projektu
i
wskazać
kierunki
jego
ewentualnego rozwoju w zakresie tematyki
wzorców projektowych oraz transakcji
Wykład 1. 2 godz.
ARCHITEKTURA WIELOWARSTWOWA
Zagadnienia: Architektura monolityczna, klient-serwer oraz wielowarstwowa. Podział na warstwy
widoku i danych. Architektura systemów opartych o technologię rozproszonych
komponentów EJB. Serwery aplikacyjne jako kontenery do rozproszonej komunikacji
obiektów.
Wykład 2. 2 godz.
KOMPONENTY ROZPROSZONE – SESSION BEAN
Zagadnienia: Komponenty sesyjne Stateful i Stateless. Interfejs zdalny i lokalny. Komunikacja
klienta z komponentem rozproszonym. Budowa infrastruktury komunikacyjnej RMI-IIOP.
Wykład 3. 2 godz.
UTRWALANIE DANYCH – ENTITY BEAN
Zagadnienia: Komponety jednostkowe Entity Bean. Interfejs lokalny. Automatyczna generacja
kodu SQL. Metody wyszukiwania oraz język zapytań EJB-QL.
Wykład 4. 2 godz.
WZORZEC FASADY ORAZ BUDOWA APLIKACJI EAR
Zagadnienia: Sterownik Wady rozproszonego dostępu do komponentów jednostkowych. Zalety
stosowania wzorca fasady. Budowa i tworzenie archiwów EAR.
Wykład 5. 2 godz.
ROZPROSZONA KOMUNIKACJA ASYNCHRONICZNA JMS
Zagadnienia: Komunikacja asynchroniczna JMS. Kolejki komunikatów Queie i Topic. Wysyłanie
i odbieranie komunikatów. Komponenty MessageDrivenBean - MDB.
Wykład 6. 2 godz.
SYSTEMY NAZEWNICZE I KATALOGOWE - JNDI, LDAP
Zagadnienia: Wyszukiwanie i edycja systemami katalogowymi i nazewniczymi za pośrednictwem
specyfikacji JNDI. Struktury drzewiaste i ich utrwalanie w serwerach katalogowych LDAP.
Współpraca programów pocztowych i aplikacji webowych z serwerem OpenLDAP.
Wykład 7. 2 godz.
ARCHITEKTURA KOMPOZYTOWA – SOA (WEB SERVICES)
Zagadnienia: Porównanie systemów zorientowanych na obiekty z systemami zorientowanymi na
usługi. XML jako nośnik danych w komunikacji z systemami tworzonymi w odmiennych
technologiach (J2EE, .NET). Specyfikacje SOAP, WSDL, UDDI.
Wykład 8. 1 godz.
CZYNNOŚCI KONTROLNE I ORGANIZACYJNE ZWIĄZANE Z ZALICZENIEM
KURSU NIEEGZAMINACYJNEGO
PLANY WYNIKOWE PROJEKTÓW
Projekt 1. 2godz.
SERWER J2EE RI
Opis ćwiczenia – cele i procedury ich osiągania: Serwer J2EE RI. Narzędzie do rozmieszczania aplikacji EAR –
DeployTool. Architektura wzorcowego projektu aplikacji.
Umiejętności wynikowe i ich ewaluacja
Instalacja wzorcowej aplikacji na serwerze J2EE RI.
Wymagania podstawowe (stopnie dostateczne)
Wymagania rozszerzone (stopnie dobre)
Wykonywanie uruchomienia i konfiguracji Konfiguracja kodu klienta testującego
serwera aplikacyjnego oraz baz danych.
instalowaną aplikację EAR.
Wskazanie plików składowych komponentu
EJB oraz sposobu ich łączenia za
pośrednictwem programu DeployTool
Projekt 2. 2godz.
REFAKTORYZACJA KODU JĘZYKA JAVA
Opis ćwiczenia – cele i procedury ich osiągania: Na bazie środowiska ECLIPSE zademonstrować i przećwiczyć
tworzenie klas i interfejsów komponentu JAVA BEAN oraz jego transformację na
komponent Enterprise JAVA BEAN - EJB.
Umiejętności wynikowe i ich ewaluacja: Umiejętność
obsługi środowiska ECLIPSE – tworzenie projektów,
klas, interfejsów oraz refaktoryzacji kodu.
Wymagania podstawowe (stopnie dostateczne) Zaprojektowanie Wymagania rozszerzone (stopnie dobre)
klasy JAVA zawierającej pola prywatne oraz Instalacja zaprojektowanego kodu na
serwerze J2EE RI
metody akcesji set i get
Ekstrakcja kodu klasy do interfejsów.
Modyfikacja kodu do zgodnego z EJB
Projekt 3. 2godz.
WZORZEC FASADY I LOKALIZATORA USŁUG
Opis ćwiczenia – cele i procedury ich osiągania: Tworzenie komponentu sesyjnego Session EJB będącego
zewnętrzną fasadą dla komponentów jednostkowych EJB. Hermetyzacja obsługi JNDI za
pomocą wzorca Lokalizatora Usług.
Umiejętności wynikowe i ich ewaluacja: Umiejętność
skomunikowania dwóch komponentów instalowanych
na serwerze aplikacji.
Rozszerzenie Wymagania
rozszerzone (stopnie dobre) Narysowanie
komponentu FacadeBean o własne metody diagramu UML wzorcowego projektu z
testowe.
uwzględnieniem własnych modyfikacji.
Rozszerzenie kodu klienta o testowanie
nowych metod fasady.
Wymagania podstawowe (stopnie dostateczne)
Projekt 4. 2godz.
WZORZEC DELEGATA BIZNESOWEGO
Opis ćwiczenia – cele i procedury ich osiągania: Tworzenie delegata biznesowego – wzorca kodu klienta
niezależnego od mechanizmów RMI, JNDI oraz EJB.
Umiejętność hermetyzacji kodu i podziału na moduły ułatwiające
jego projektowanie i zarządzanie.
Wymagania podstawowe (stopnie dostateczne) Rozszerzenie Wymagania
rozszerzone (stopnie dobre) Narysowanie
klasy DelegateBean o własne metody diagramu UML wzorcowego projektu z
testowe.
uwzględnieniem własnych modyfikacji.
Rozszerzenie kodu klienta o testowanie
nowych metod delegata.
Umiejętności wynikowe i ich ewaluacja:
Projekt 5. 2godz.
Opis ćwiczenia – cele i procedury ich osiągania:
PROJEKT – FAZA 1
Rozszerzenie projektu o komponent MDB oraz kolejki
komunikatów JMS
Umiejętność projektowania kodu klienta wysyłającego
asynchroniczne komunikaty JMS oraz kodu odbiorczego komponentów MDB
Wymagania podstawowe (stopnie dostateczne) Rozszerzenie Wymagania
rozszerzone (stopnie dobre) Przetestować
projekt o klasy komponentów MDB.
rozproszoną dystrybucję komunikatów na
Opracować kod klienta o testowego wzorcowy serwer JMS (np. jednego ze
wysyłania komunikatów.
studentów).
Umiejętności
wynikowe
i
ich
ewaluacja:.
Projekt 6. 2godz.
PROJEKT – FAZA 2
Opis ćwiczenia – cele i procedury ich osiągania: Rozszerzenie projektu o obsługę usługi sieciowej Web Services
Umiejętność integracji dwóch systemów rozproszonych (klienta i
serwera aplikacyjnego) przy pomocy Web Services (XML, SOAP, WSDL)
Wymagania podstawowe (stopnie dostateczne) Zaprojektować Wymagania rozszerzone (stopnie dobre)
aplikację klienta (przy użyciu pakietu AXIS i Rozszerzenie projektu o przekazywanie list
WSDL) umożliwiającą zdalne wywoływanie za pośrednictwem protokołu SOAP
procedur (RPC) delegata biznesowego protokół SOAP (Web Services)
Projekt 7. 2godz.
PROJEKT – FAZA 3
Opis ćwiczenia – cele i procedury ich osiągania:. Dokumentacja projektu, JAVA DOC, diagramy UML.
Umiejętności wynikowe i ich ewaluacja:
Umiejętności wynikowe i ich ewaluacja: Umiejętność
stworzenia dokumentacji projektowej z zastosowaniem
narzędzi UML i JavaDOC.
podstawowe (stopnie dostateczne) Opracować Wymagania
rozszerzone (stopnie dobre)
Opracować
diagramy klas wzorcowego projektu z dodatkowe
typy
diagramów
UML
uwzględnieniem własnych modyfikacji.
wzorcowego projektu z uwzględnieniem
Przygotowanie dokumentacji JavaDOC.
własnych modyfikacji.
Projekt 8. 1godz.
CZYNNOŚCI KONTROLNE I ORGANIZACYJNE ZWIĄZANE Z ZALICZENIEM
Wymagania
KURSU NIEEGZAMINACYJNEGO
OPIS RYGORÓW POŚREDNICH
Kolokwium
Opis kolokwium : Student otrzymuje 3 zagadnienia do opisania w czasie 30min. W zakres pytań nie
wchodzą zagadnienia programistyczne, a wyłącznie mechanizmy omawiane na wykładzie.
Jako bazę zaliczającą kolokwium przyjmuje się około 60% poprawnych
odpowiedzi. Każde z pytań jest oceniane w skali 0-5 punktów i za całość można uzyskać
maksymalnie 15 punktów. W przypadku braku zaliczenia student jest dodatkowo
odpytywany ustnie podczas zaliczania części projektowej.
Sposób oceniania
Wymagania podstawowe (stopnie dostateczne)
Wymagania rozszerzone (stopnie dobre)
Podstawowa i prawidłowa orientacja w Szczegółowy opis mechanizmów poparty
opisie mechanizmów danego zagadnienia
dodatkowymi rysunkami i przykładami
zastosowań
Zaliczenie projektu
Opis zaliczenia : W skład zaliczenia projektu wchodzi obecność oraz aktywność w czasie zajęć
projektowych w realizacji zadań cząstkowych. Każda z grup (2-osoby) otrzymuje
indywidualne zadanie rozwinięcia wzorcowego projektu z którego jest rozliczana na
zasadzie sprawdzania przyrostu funkcjonalności poprzez cały etap zajęć projektowych.
Proces zaliczenia realizowany jest na specjalnie przygotowanym komputerze.
Każda grupa (2-osoby) prezentuje swoje rozwiązanie projektowe wraz z przygotowaną
dokumentacją. W przypadku niespełnienia podstawowych wymagań studenci otrzymują
dodatkowe zadania cząstkowe do realizacji oraz termin ponownego zaliczenia.
Sposób oceniania
Wymagania podstawowe (stopnie dostateczne)
Wymagania rozszerzone (stopnie dobre)
Prawidłowa instalacja oraz orientacja w
budowie własnej aplikacji. Przygotowanie
dokumentacji projektu wraz z opisem
instalacji
Zastosowanie wzorców projektowych do
realizacji projektu. Brak typowych błędów
programistycznych
pogarszających
bezpieczeństwo i funkcjonalność aplikacji.
WYKAZ ŹRÓDEŁ (PODRĘCZNIKÓW I SKRYPTÓW)
1. strona domowa przedmiotu: http://kik.ie.tu.koszalin.pl/systemy
2. wykład: http://kik.ie.tu.koszalin.pl/systemy/wyklad/systemy_rozproszone.pdf
3. dodatkowymi materiałami związanymi z technologią J2EE: http://j2ee.ie.tu.koszalin.pl
4. serwer aplikacyjny J2EE : http://www.java.sun.com/j2ee
5. Ed Roman, Scott W. Ambler, Tyler Jewell - "Enterprise Java Bean" http://helion.pl/ksiazki/enjab2.htm
6. Deepak Alur, John Crupi, Dan Malks - "J2EE. Wzorce projektowe. Wydanie 2"http://helion.pl/ksiazki/j2eew2.htm
7. Steve Graham, Simeon Simeonov, Toufic Boubez, Doug Davis, Glen Daniels, et al. "Java. Usługi WWW. Vademecum profesjonalisty" - http://helion.pl/ksiazki/jtswww.htm
8. William Crawford, Jonathan Kaplan - "J2EE. Stosowanie wzorców projektowych" http://helion.pl/ksiazki/j2eswp.htm
9. Bruce Eckel - "Thinking in Java. Wydanie 3. Edycja polska" http://helion.pl/ksiazki/thija3.htm
10. J2EE Programming (with Passion!) Online Course - http://www.javapassion.com/j2ee
Download