Zachodniopomorski Uniwersytet Technologiczny w Szczecinie

Wydział Informatyki - Informatyka (S2)

Sylabus przedmiotu Aplikacje webowe i rozproszone:

Informacje podstawowe

Kierunek studiów Informatyka
Forma studiów studia stacjonarne Poziom drugiego stopnia
Tytuł zawodowy absolwenta magister inżynier
Obszary studiów charakterystyki PRK, kompetencje inżynierskie PRK
Profil ogólnoakademicki
Moduł
Przedmiot Aplikacje webowe i rozproszone
Specjalność Projektowanie oprogramowania
Jednostka prowadząca Katedra Inżynierii Oprogramowania
Nauczyciel odpowiedzialny Włodzimierz Bielecki <Wlodzimierz.Bielecki@zut.edu.pl>
Inni nauczyciele Krzysztof Kraska <Krzysztof.Kraska@zut.edu.pl>, Tomasz Wierciński <Tomasz.Wiercinski@zut.edu.pl>
ECTS (planowane) 4,0 ECTS (formy) 4,0
Forma zaliczenia zaliczenie Język polski
Blok obieralny Grupa obieralna

Formy dydaktyczne

Forma dydaktycznaKODSemestrGodzinyECTSWagaZaliczenie
laboratoriaL2 30 2,00,50zaliczenie
wykładyW2 30 2,00,50zaliczenie

Wymagania wstępne

KODWymaganie wstępne
W-1Inżynieria oprogramowania
W-2Programowanie obiektowe
W-3Programowanie w języku Java
W-4Języki internetowe HTML, XML, JavaScript
W-5Projektowanie komponentowe

Cele przedmiotu

KODCel modułu/przedmiotu
C-1Poznanie zagadnień z zakresu projektowania biznesowych rozwiązań rozproszonych w tym webowych.
C-2Tworzenie serwisów rozproszonych oferujących usługi biznesowe dla aplikacji.
C-3Integrowanie serwisów rozproszonych dla rozwijania funkcjonalności biznesowych aplikacji webowych.

Treści programowe z podziałem na formy zajęć

KODTreść programowaGodziny
laboratoria
T-L-1Implementacja autentykacji klienta w domenie Active Directory WI ZUT przy użyciu JNDI za pośrednictwem zdalnego obiektu RMI.3
T-L-2Opracowanie rozproszonej aplikacji webowej wykorzystującej interfejs programowania JAX-WS. Opracowanie klienta JAX-WS. Specyfikowanie danych z wykorzystaniem klas JAXB wygenerowanych na podstawie modelu XML Schema. Serializacja/deserializacja danych.3
T-L-3Opracowanie rozproszonej aplikacji webowej wykorzystującej styl architektoniczny REST oraz interfejs programowania JAX-RS. Opracowanie klienta JAX-RS. Specyfikowanie danych z wykorzystaniem JSON. Serializacja/deserializacja danych.3
T-L-4Implementacja asynchronicznej komunikacji rozproszonej z wykorzystaniem specyfikacji JMS. Opracowanie producenta i konsumenta. Specyfikowanie danych. Programowanie asynchronicznego wysyłania wiadomości i opóźnione dostarczanie.3
T-L-5Implementacja programowego kolejkowania zadań za pomocą ScheduledExecutorService oraz Timer API na potrzeby komunikacji rozproszonej JAX-WS, JAX-RS oraz JMS. Wykorzystanie buforowania danych przy użyciu Ehcache.3
T-L-6Opracowanie wielowarstwowej aplikacji webowej z wykorzystaniem wzorca MVC za pomocą frameworka Spring MVC3
T-L-7Opracowanie warstwy dostępu do danych z wykorzystaniem standardu JPA oraz frameworków Spring Data i Hibernate. Wykorzystanie mechanizmu cachowania danych za pomocą frameworka Hazelcast3
T-L-8Opracowanie warstwy autoryzacyjnej aplikacji poprzez zbudowanie serwera autoryzacji wykorzystującego framework Spring Security oraz standard OAuth 2.03
T-L-9Opracowanie warstwy logiki biznesowej aplikacji zorientowanej na usługi. Integracja usług z wykorzystaniem frameworka Apache Camel3
T-L-10Opracowanie klienckiej aplikacji webowej wykorzystującej HTML 5.0 oraz serwer szablonów Thymeleaf i framework CSS Bootstrap3
30
wykłady
T-W-1Przetwarzanie rozproszone – Remote Method Invocation: • architektura aplikacji RMI • ładowanie klas • konfiguracje RMI • odśmiecanie zdalnych obiektów • rejestr obiektów • podstawowe interfejsy programowania aplikacji RMI • tworzenie i uruchamianie obiektów rozproszonych2
T-W-2Przetwarzanie rozproszone – Java Message Service: • architektura aplikacji JMS • obiekty zarządzane programowo lub za pomocą konfiguracji • typy i cechy komunikacji JMS • konfiguracja point-to-point • konfiguracja publish-subscribe • struktura komunikatu JMS • uproszczone JMS API 2.0 • wstrzykiwanie obiektu JMSContext • tworzenie producenta i konsumenta • asynchroniczne wysyłanie wiadomości • opóźnione dostarczanie2
T-W-3Przetwarzanie rozproszone – JAX-WS i JAXB: • interfejs programowy JAXB - XJC binding compiler - odczyt i zapis wiadomości XML przy użyciu JAXB - generowanie XMLSchema - narzędzie schemagen - klasa JAXBContext - adnotacje JAXB • interfejs programowy JAX-WS - rozszerzalna reprezentacja wiadomości przy użyciu SOAP - HTTP over SOAP - WSDL i jego struktura - podejścia do wytwarzania aplikacji JAX-WS - tworzenie usług sieciowych JAX-WS - testowanie usług sieciowych - generowanie WSDL - tworzenie klienta JAX-WS - generowanie klas dostępu do usług - narzędzie wsimport - wywoływanie usług JAX-WS2
T-W-4Przetwarzanie rozproszone – JAX-RS i JSON: • interfejs programowy JAX-RS - metody HTTP 1.1 (RFC-2616) - statusy odpowiedzi HTTP - idempotencja metod HTTP - zasoby (resources) i kolekcje zasobów REST - wywołania zasobów - adnotacje metod reprezentacji zasobów - wspierane typy encji - typy przekazywanych treści - przetwarzanie otrzymanej treści - podklasy Application - generowanie statusu odpowiedzi - podstawowa obsługa błędów - wsparcie Bean Validation (JSR-249) - klient REST – klasa HttpURLConnection - klient REST - JAX-RS 2 Client API - bezpieczeństwo i autentykacja klient-serwer • przetwarzanie JSON - Java API for JSON Processing (JSON-P) JSR-353 - JSON to Java Object Binding (Jackson, Gson)4
T-W-5Przetwarzanie współbieżne – Message Driven Beans: • architektura aplikacji • model cyklu życia obiektów • typy obiektów • tworzenie i konfigurowanie obiektów MDB • potwierdzanie komunikatów • selektory komunikatów • uchwyty zdarzeń cyklu życia obiektów • tworzenie metod wywołania zwrotnego (callback methods) • wstrzykiwanie obiektu MessageDrivenContext2
T-W-6Przetwarzanie współbieżne – asynchroniczne Enterprise Java Beans, ScheduledExecutorService i ManagedExecutorService: • synchroniczna i asynchroniczna komunikacja EJB • sposoby implementacji asynchronicznego wywołania metod • implementacja asynchronicznych Session Beans • obsługa obiektów Future • obsługa obiektów AsyncResult • tworzenie obiektów ScheduledExecutorService, ManagedExecutorService i ManagedScheduledExecutorService • interfejs ManagedTaskListener2
T-W-7Przetwarzanie współbieżne – kolejkowanie zadań za pomocą Timer API i przetwarzanie wsadowe (JSR 352): • typy i właściwości timerów • zależności pomiędzy usługą timera a Session Bean • zarządzanie obiektem timera • odwołania do usługi TimerService • tworzenie programowych timerów • tworzenie automatycznych timerów • przetwarzanie wsadowe ukierunkowane na fragmenty (chunk-oriented) • obiekty przetwarzania wsadowego • tworzenie zadania • odczyt, przetwarzanie i zapis danych wynikowych • uruchamianie zadania1
T-W-8Tworzenie warstwy dostępu do danych: • wzorce warstwy danych (DAO, DTO), • model relacyjny a obiektowy, • technologie realizujące odwzorowanie relacyjno-obiektowe(ORM): Hibernate, JPA. Techniki zwiększania wydajności: • cache, • sharding (Spring Cache, JetCache, Ehcache, Hazelcast). Podejścia typu NoSQL (Cassandra, MongoDB).4
T-W-9Koncepcja IoC/DI, MVC, MVP, EventBus, charakterystyka wybranych szkieletów IoC/DI. Szkielety aplikacji: • rola szkieletów, • typowe problemy tworzenia aplikacji internetowej, Charakterystyka wybranych szkieletów webowych m.in.: spring, seam, spring mvc, struts4
T-W-10Bezpieczeństwo aplikacji webowych, protokoły autoryzacyjne (Oauth2, OpenID Connect)2
T-W-11Popularne technologie warstwy klienckiej aplikacji webowej: • JSF, • GWT, • Flex, • Vaadin, • Thymeleaf, • bilbioteki i szkielety javascript (jQuery, Node.js)2
T-W-12Architektura rozproszonej aplikacji biznesowej: • architektura wielowarstwowa, • architektura zorientowana na usługi, • szyna korporacyjna. Architektura zorientowana na usługi/zagadnienia integracji (SOA, WOA), szyna korporacyjna (ESB), aranżacja usług internetowych: BPEL, wzorce EAI, wzorce EIP3
30

Obciążenie pracą studenta - formy aktywności

KODForma aktywnościGodziny
laboratoria
A-L-1Uczestnictwo w zajęciach30
A-L-2Przygotowanie do zajęć10
A-L-3Opracowanie wyników10
50
wykłady
A-W-1Uczestnictwo w zajęciach30
A-W-2Studia literatury12
A-W-3Uczestnictwo w konsultacjach2
A-W-4Przygotowanie do zaliczenia6
50

Metody nauczania / narzędzia dydaktyczne

KODMetoda nauczania / narzędzie dydaktyczne
M-1wykład w formie prezentacji multimedialnej
M-2prezentacja i omawianie przykładowych programów
M-3realizacja projektów

Sposoby oceny

KODSposób oceny
S-1Ocena podsumowująca: egzamin pisemny w postaci testu
S-2Ocena formująca: ocena realizacji projektów

Zamierzone efekty uczenia się - wiedza

Zamierzone efekty uczenia sięOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaOdniesienie do efektów uczenia się prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
I_2A_D02.03_W01
posiada wiedzę o możliwościach stosowania technologii rozproszonych tworzenia skalowanych i wielokrotnie wykorzystywanych usług dla webowych aplikacji biznesowych
I_2A_W02C-2, C-1T-W-1, T-W-2, T-W-3, T-W-4, T-W-5, T-W-6, T-W-7, T-W-8, T-W-10, T-W-11M-1, M-2S-1
I_2A_D02.03_W03
Posiada wiedzę na temat standardów i architektur aplikacji rozproszonych i webowych
I_2A_W03, I_2A_W09C-1T-W-9, T-W-12M-1, M-2S-1

Zamierzone efekty uczenia się - umiejętności

Zamierzone efekty uczenia sięOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaOdniesienie do efektów uczenia się prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
I_2A_D02.03_U01
potrafi zaprojektować i zaimplementować prostą aplikację rozproszoną
I_2A_U03, I_2A_U07, I_2A_U09, I_2A_U10C-2T-L-1, T-L-4, T-L-5, T-L-6, T-L-7, T-L-8, T-L-9, T-L-10, T-L-3, T-L-2M-2, M-3S-2

Zamierzone efekty uczenia się - inne kompetencje społeczne i personalne

Zamierzone efekty uczenia sięOdniesienie do efektów kształcenia dla kierunku studiówOdniesienie do efektów zdefiniowanych dla obszaru kształceniaOdniesienie do efektów uczenia się prowadzących do uzyskania tytułu zawodowego inżynieraCel przedmiotuTreści programoweMetody nauczaniaSposób oceny
I_2A_D02.03_K01
dąży do rozwiązania przedstawionego problemu wytworzenia rozproszonej i skalowalnej usługi biznesowej
I_2A_K04C-2T-W-1, T-W-2, T-W-3, T-W-4, T-W-5, T-W-6, T-W-7, T-W-8, T-W-9, T-W-10, T-W-11, T-W-12, T-L-1, T-L-4, T-L-5, T-L-6, T-L-7, T-L-8, T-L-9, T-L-10, T-L-3, T-L-2M-3S-2

Kryterium oceny - wiedza

Efekt uczenia sięOcenaKryterium oceny
I_2A_D02.03_W01
posiada wiedzę o możliwościach stosowania technologii rozproszonych tworzenia skalowanych i wielokrotnie wykorzystywanych usług dla webowych aplikacji biznesowych
2,0
3,0Ma podstawowe pojęcie na temat możliwości stosowania technologii rozproszonych i webowych.
3,5
4,0
4,5
5,0
I_2A_D02.03_W03
Posiada wiedzę na temat standardów i architektur aplikacji rozproszonych i webowych
2,0
3,0Zna podstawowe pojęcia i koncepcje w zakressie aplikacji rozproszonych i webowych.
3,5
4,0
4,5
5,0

Kryterium oceny - umiejętności

Efekt uczenia sięOcenaKryterium oceny
I_2A_D02.03_U01
potrafi zaprojektować i zaimplementować prostą aplikację rozproszoną
2,0
3,0Potrafi dostosować przykłady omawiane przez prowadzącego do własnych rozwiązań.
3,5
4,0
4,5
5,0

Kryterium oceny - inne kompetencje społeczne i personalne

Efekt uczenia sięOcenaKryterium oceny
I_2A_D02.03_K01
dąży do rozwiązania przedstawionego problemu wytworzenia rozproszonej i skalowalnej usługi biznesowej
2,0
3,0Potrafi zbudować finalne rozwiązanie na podstawie przykładów przedstawionych w trakcie zajęć.
3,5
4,0
4,5
5,0

Literatura podstawowa

  1. Bill Burke, RESTful Java with JAX-RS 2.0: Designing and Developing Distributed Web Services. Second Edition., O'Reilly Media, 2013
  2. Craig Walls, Spring in Action, Third Edition, Manning Publications Co, 2011

Literatura dodatkowa

  1. Gamma Erich, Richard Helm, Ralph Johnson, and John Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 2011
  2. Fowler Martin, Patterns of Enterprise Application Architecture, Addison-Wesley, 2002
  3. Thomas Erl, Service-Oriented Architecture (SOA): Concepts, Technology, and Design, Prentice Hall Service-Oriented Computing Series, 2005
  4. Java EE 7: Back-end Server Application Development, Oracle University, 2017
  5. Java EE 7: Front-end Web Application Development, Oracle University, 2017
  6. Martin Kalin, Java Web Services: Up and Running. Second edition., O'Reilly Media, 2013

Treści programowe - laboratoria

KODTreść programowaGodziny
T-L-1Implementacja autentykacji klienta w domenie Active Directory WI ZUT przy użyciu JNDI za pośrednictwem zdalnego obiektu RMI.3
T-L-2Opracowanie rozproszonej aplikacji webowej wykorzystującej interfejs programowania JAX-WS. Opracowanie klienta JAX-WS. Specyfikowanie danych z wykorzystaniem klas JAXB wygenerowanych na podstawie modelu XML Schema. Serializacja/deserializacja danych.3
T-L-3Opracowanie rozproszonej aplikacji webowej wykorzystującej styl architektoniczny REST oraz interfejs programowania JAX-RS. Opracowanie klienta JAX-RS. Specyfikowanie danych z wykorzystaniem JSON. Serializacja/deserializacja danych.3
T-L-4Implementacja asynchronicznej komunikacji rozproszonej z wykorzystaniem specyfikacji JMS. Opracowanie producenta i konsumenta. Specyfikowanie danych. Programowanie asynchronicznego wysyłania wiadomości i opóźnione dostarczanie.3
T-L-5Implementacja programowego kolejkowania zadań za pomocą ScheduledExecutorService oraz Timer API na potrzeby komunikacji rozproszonej JAX-WS, JAX-RS oraz JMS. Wykorzystanie buforowania danych przy użyciu Ehcache.3
T-L-6Opracowanie wielowarstwowej aplikacji webowej z wykorzystaniem wzorca MVC za pomocą frameworka Spring MVC3
T-L-7Opracowanie warstwy dostępu do danych z wykorzystaniem standardu JPA oraz frameworków Spring Data i Hibernate. Wykorzystanie mechanizmu cachowania danych za pomocą frameworka Hazelcast3
T-L-8Opracowanie warstwy autoryzacyjnej aplikacji poprzez zbudowanie serwera autoryzacji wykorzystującego framework Spring Security oraz standard OAuth 2.03
T-L-9Opracowanie warstwy logiki biznesowej aplikacji zorientowanej na usługi. Integracja usług z wykorzystaniem frameworka Apache Camel3
T-L-10Opracowanie klienckiej aplikacji webowej wykorzystującej HTML 5.0 oraz serwer szablonów Thymeleaf i framework CSS Bootstrap3
30

Treści programowe - wykłady

KODTreść programowaGodziny
T-W-1Przetwarzanie rozproszone – Remote Method Invocation: • architektura aplikacji RMI • ładowanie klas • konfiguracje RMI • odśmiecanie zdalnych obiektów • rejestr obiektów • podstawowe interfejsy programowania aplikacji RMI • tworzenie i uruchamianie obiektów rozproszonych2
T-W-2Przetwarzanie rozproszone – Java Message Service: • architektura aplikacji JMS • obiekty zarządzane programowo lub za pomocą konfiguracji • typy i cechy komunikacji JMS • konfiguracja point-to-point • konfiguracja publish-subscribe • struktura komunikatu JMS • uproszczone JMS API 2.0 • wstrzykiwanie obiektu JMSContext • tworzenie producenta i konsumenta • asynchroniczne wysyłanie wiadomości • opóźnione dostarczanie2
T-W-3Przetwarzanie rozproszone – JAX-WS i JAXB: • interfejs programowy JAXB - XJC binding compiler - odczyt i zapis wiadomości XML przy użyciu JAXB - generowanie XMLSchema - narzędzie schemagen - klasa JAXBContext - adnotacje JAXB • interfejs programowy JAX-WS - rozszerzalna reprezentacja wiadomości przy użyciu SOAP - HTTP over SOAP - WSDL i jego struktura - podejścia do wytwarzania aplikacji JAX-WS - tworzenie usług sieciowych JAX-WS - testowanie usług sieciowych - generowanie WSDL - tworzenie klienta JAX-WS - generowanie klas dostępu do usług - narzędzie wsimport - wywoływanie usług JAX-WS2
T-W-4Przetwarzanie rozproszone – JAX-RS i JSON: • interfejs programowy JAX-RS - metody HTTP 1.1 (RFC-2616) - statusy odpowiedzi HTTP - idempotencja metod HTTP - zasoby (resources) i kolekcje zasobów REST - wywołania zasobów - adnotacje metod reprezentacji zasobów - wspierane typy encji - typy przekazywanych treści - przetwarzanie otrzymanej treści - podklasy Application - generowanie statusu odpowiedzi - podstawowa obsługa błędów - wsparcie Bean Validation (JSR-249) - klient REST – klasa HttpURLConnection - klient REST - JAX-RS 2 Client API - bezpieczeństwo i autentykacja klient-serwer • przetwarzanie JSON - Java API for JSON Processing (JSON-P) JSR-353 - JSON to Java Object Binding (Jackson, Gson)4
T-W-5Przetwarzanie współbieżne – Message Driven Beans: • architektura aplikacji • model cyklu życia obiektów • typy obiektów • tworzenie i konfigurowanie obiektów MDB • potwierdzanie komunikatów • selektory komunikatów • uchwyty zdarzeń cyklu życia obiektów • tworzenie metod wywołania zwrotnego (callback methods) • wstrzykiwanie obiektu MessageDrivenContext2
T-W-6Przetwarzanie współbieżne – asynchroniczne Enterprise Java Beans, ScheduledExecutorService i ManagedExecutorService: • synchroniczna i asynchroniczna komunikacja EJB • sposoby implementacji asynchronicznego wywołania metod • implementacja asynchronicznych Session Beans • obsługa obiektów Future • obsługa obiektów AsyncResult • tworzenie obiektów ScheduledExecutorService, ManagedExecutorService i ManagedScheduledExecutorService • interfejs ManagedTaskListener2
T-W-7Przetwarzanie współbieżne – kolejkowanie zadań za pomocą Timer API i przetwarzanie wsadowe (JSR 352): • typy i właściwości timerów • zależności pomiędzy usługą timera a Session Bean • zarządzanie obiektem timera • odwołania do usługi TimerService • tworzenie programowych timerów • tworzenie automatycznych timerów • przetwarzanie wsadowe ukierunkowane na fragmenty (chunk-oriented) • obiekty przetwarzania wsadowego • tworzenie zadania • odczyt, przetwarzanie i zapis danych wynikowych • uruchamianie zadania1
T-W-8Tworzenie warstwy dostępu do danych: • wzorce warstwy danych (DAO, DTO), • model relacyjny a obiektowy, • technologie realizujące odwzorowanie relacyjno-obiektowe(ORM): Hibernate, JPA. Techniki zwiększania wydajności: • cache, • sharding (Spring Cache, JetCache, Ehcache, Hazelcast). Podejścia typu NoSQL (Cassandra, MongoDB).4
T-W-9Koncepcja IoC/DI, MVC, MVP, EventBus, charakterystyka wybranych szkieletów IoC/DI. Szkielety aplikacji: • rola szkieletów, • typowe problemy tworzenia aplikacji internetowej, Charakterystyka wybranych szkieletów webowych m.in.: spring, seam, spring mvc, struts4
T-W-10Bezpieczeństwo aplikacji webowych, protokoły autoryzacyjne (Oauth2, OpenID Connect)2
T-W-11Popularne technologie warstwy klienckiej aplikacji webowej: • JSF, • GWT, • Flex, • Vaadin, • Thymeleaf, • bilbioteki i szkielety javascript (jQuery, Node.js)2
T-W-12Architektura rozproszonej aplikacji biznesowej: • architektura wielowarstwowa, • architektura zorientowana na usługi, • szyna korporacyjna. Architektura zorientowana na usługi/zagadnienia integracji (SOA, WOA), szyna korporacyjna (ESB), aranżacja usług internetowych: BPEL, wzorce EAI, wzorce EIP3
30

Formy aktywności - laboratoria

KODForma aktywnościGodziny
A-L-1Uczestnictwo w zajęciach30
A-L-2Przygotowanie do zajęć10
A-L-3Opracowanie wyników10
50
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta

Formy aktywności - wykłady

KODForma aktywnościGodziny
A-W-1Uczestnictwo w zajęciach30
A-W-2Studia literatury12
A-W-3Uczestnictwo w konsultacjach2
A-W-4Przygotowanie do zaliczenia6
50
(*) 1 punkt ECTS, odpowiada około 30 godzinom aktywności studenta
PoleKODZnaczenie kodu
Zamierzone efekty uczenia sięI_2A_D02.03_W01posiada wiedzę o możliwościach stosowania technologii rozproszonych tworzenia skalowanych i wielokrotnie wykorzystywanych usług dla webowych aplikacji biznesowych
Odniesienie do efektów kształcenia dla kierunku studiówI_2A_W02Ma wiedzę z zakresu zaawansowanych technik programowania systemów informatycznych w wybranym obszarze zastosowań
Cel przedmiotuC-2Tworzenie serwisów rozproszonych oferujących usługi biznesowe dla aplikacji.
C-1Poznanie zagadnień z zakresu projektowania biznesowych rozwiązań rozproszonych w tym webowych.
Treści programoweT-W-1Przetwarzanie rozproszone – Remote Method Invocation: • architektura aplikacji RMI • ładowanie klas • konfiguracje RMI • odśmiecanie zdalnych obiektów • rejestr obiektów • podstawowe interfejsy programowania aplikacji RMI • tworzenie i uruchamianie obiektów rozproszonych
T-W-2Przetwarzanie rozproszone – Java Message Service: • architektura aplikacji JMS • obiekty zarządzane programowo lub za pomocą konfiguracji • typy i cechy komunikacji JMS • konfiguracja point-to-point • konfiguracja publish-subscribe • struktura komunikatu JMS • uproszczone JMS API 2.0 • wstrzykiwanie obiektu JMSContext • tworzenie producenta i konsumenta • asynchroniczne wysyłanie wiadomości • opóźnione dostarczanie
T-W-3Przetwarzanie rozproszone – JAX-WS i JAXB: • interfejs programowy JAXB - XJC binding compiler - odczyt i zapis wiadomości XML przy użyciu JAXB - generowanie XMLSchema - narzędzie schemagen - klasa JAXBContext - adnotacje JAXB • interfejs programowy JAX-WS - rozszerzalna reprezentacja wiadomości przy użyciu SOAP - HTTP over SOAP - WSDL i jego struktura - podejścia do wytwarzania aplikacji JAX-WS - tworzenie usług sieciowych JAX-WS - testowanie usług sieciowych - generowanie WSDL - tworzenie klienta JAX-WS - generowanie klas dostępu do usług - narzędzie wsimport - wywoływanie usług JAX-WS
T-W-4Przetwarzanie rozproszone – JAX-RS i JSON: • interfejs programowy JAX-RS - metody HTTP 1.1 (RFC-2616) - statusy odpowiedzi HTTP - idempotencja metod HTTP - zasoby (resources) i kolekcje zasobów REST - wywołania zasobów - adnotacje metod reprezentacji zasobów - wspierane typy encji - typy przekazywanych treści - przetwarzanie otrzymanej treści - podklasy Application - generowanie statusu odpowiedzi - podstawowa obsługa błędów - wsparcie Bean Validation (JSR-249) - klient REST – klasa HttpURLConnection - klient REST - JAX-RS 2 Client API - bezpieczeństwo i autentykacja klient-serwer • przetwarzanie JSON - Java API for JSON Processing (JSON-P) JSR-353 - JSON to Java Object Binding (Jackson, Gson)
T-W-5Przetwarzanie współbieżne – Message Driven Beans: • architektura aplikacji • model cyklu życia obiektów • typy obiektów • tworzenie i konfigurowanie obiektów MDB • potwierdzanie komunikatów • selektory komunikatów • uchwyty zdarzeń cyklu życia obiektów • tworzenie metod wywołania zwrotnego (callback methods) • wstrzykiwanie obiektu MessageDrivenContext
T-W-6Przetwarzanie współbieżne – asynchroniczne Enterprise Java Beans, ScheduledExecutorService i ManagedExecutorService: • synchroniczna i asynchroniczna komunikacja EJB • sposoby implementacji asynchronicznego wywołania metod • implementacja asynchronicznych Session Beans • obsługa obiektów Future • obsługa obiektów AsyncResult • tworzenie obiektów ScheduledExecutorService, ManagedExecutorService i ManagedScheduledExecutorService • interfejs ManagedTaskListener
T-W-7Przetwarzanie współbieżne – kolejkowanie zadań za pomocą Timer API i przetwarzanie wsadowe (JSR 352): • typy i właściwości timerów • zależności pomiędzy usługą timera a Session Bean • zarządzanie obiektem timera • odwołania do usługi TimerService • tworzenie programowych timerów • tworzenie automatycznych timerów • przetwarzanie wsadowe ukierunkowane na fragmenty (chunk-oriented) • obiekty przetwarzania wsadowego • tworzenie zadania • odczyt, przetwarzanie i zapis danych wynikowych • uruchamianie zadania
T-W-8Tworzenie warstwy dostępu do danych: • wzorce warstwy danych (DAO, DTO), • model relacyjny a obiektowy, • technologie realizujące odwzorowanie relacyjno-obiektowe(ORM): Hibernate, JPA. Techniki zwiększania wydajności: • cache, • sharding (Spring Cache, JetCache, Ehcache, Hazelcast). Podejścia typu NoSQL (Cassandra, MongoDB).
T-W-10Bezpieczeństwo aplikacji webowych, protokoły autoryzacyjne (Oauth2, OpenID Connect)
T-W-11Popularne technologie warstwy klienckiej aplikacji webowej: • JSF, • GWT, • Flex, • Vaadin, • Thymeleaf, • bilbioteki i szkielety javascript (jQuery, Node.js)
Metody nauczaniaM-1wykład w formie prezentacji multimedialnej
M-2prezentacja i omawianie przykładowych programów
Sposób ocenyS-1Ocena podsumowująca: egzamin pisemny w postaci testu
Kryteria ocenyOcenaKryterium oceny
2,0
3,0Ma podstawowe pojęcie na temat możliwości stosowania technologii rozproszonych i webowych.
3,5
4,0
4,5
5,0
PoleKODZnaczenie kodu
Zamierzone efekty uczenia sięI_2A_D02.03_W03Posiada wiedzę na temat standardów i architektur aplikacji rozproszonych i webowych
Odniesienie do efektów kształcenia dla kierunku studiówI_2A_W03Ma uporządkowaną, podbudowaną metodycznie i teoretycznie wiedzę w zakresie metod i technik projektowania systemów informatycznych
I_2A_W09Ma poszerzoną wiedzę dotyczącą trendów rozwojowych i możliwości zastosowania informatyki w wybranych obszarach nauki i techniki
Cel przedmiotuC-1Poznanie zagadnień z zakresu projektowania biznesowych rozwiązań rozproszonych w tym webowych.
Treści programoweT-W-9Koncepcja IoC/DI, MVC, MVP, EventBus, charakterystyka wybranych szkieletów IoC/DI. Szkielety aplikacji: • rola szkieletów, • typowe problemy tworzenia aplikacji internetowej, Charakterystyka wybranych szkieletów webowych m.in.: spring, seam, spring mvc, struts
T-W-12Architektura rozproszonej aplikacji biznesowej: • architektura wielowarstwowa, • architektura zorientowana na usługi, • szyna korporacyjna. Architektura zorientowana na usługi/zagadnienia integracji (SOA, WOA), szyna korporacyjna (ESB), aranżacja usług internetowych: BPEL, wzorce EAI, wzorce EIP
Metody nauczaniaM-1wykład w formie prezentacji multimedialnej
M-2prezentacja i omawianie przykładowych programów
Sposób ocenyS-1Ocena podsumowująca: egzamin pisemny w postaci testu
Kryteria ocenyOcenaKryterium oceny
2,0
3,0Zna podstawowe pojęcia i koncepcje w zakressie aplikacji rozproszonych i webowych.
3,5
4,0
4,5
5,0
PoleKODZnaczenie kodu
Zamierzone efekty uczenia sięI_2A_D02.03_U01potrafi zaprojektować i zaimplementować prostą aplikację rozproszoną
Odniesienie do efektów kształcenia dla kierunku studiówI_2A_U03Potrafi dobierać, krytycznie oceniać przydatność oraz stosować metody i narzędzia do rozwiązania złożonego zadania inżynierskiego
I_2A_U07Potrafi ocenić istniejące rozwiązania techniczne w wybranym obszarze zastosowań oraz zaproponować ich modyfikacje
I_2A_U09Ma umiejętność stosowania zaawansowanych technik programowania i metodyki projektowania systemów informatycznych w wybranym obszarze zastosowań
I_2A_U10Potrafi projektować zgodnie z przyjętą specyfikacją złożony system informatyczny lub jego fragment oraz porównywać i krytycznie oceniać wybrane rozwiązania projektowe
Cel przedmiotuC-2Tworzenie serwisów rozproszonych oferujących usługi biznesowe dla aplikacji.
Treści programoweT-L-1Implementacja autentykacji klienta w domenie Active Directory WI ZUT przy użyciu JNDI za pośrednictwem zdalnego obiektu RMI.
T-L-4Implementacja asynchronicznej komunikacji rozproszonej z wykorzystaniem specyfikacji JMS. Opracowanie producenta i konsumenta. Specyfikowanie danych. Programowanie asynchronicznego wysyłania wiadomości i opóźnione dostarczanie.
T-L-5Implementacja programowego kolejkowania zadań za pomocą ScheduledExecutorService oraz Timer API na potrzeby komunikacji rozproszonej JAX-WS, JAX-RS oraz JMS. Wykorzystanie buforowania danych przy użyciu Ehcache.
T-L-6Opracowanie wielowarstwowej aplikacji webowej z wykorzystaniem wzorca MVC za pomocą frameworka Spring MVC
T-L-7Opracowanie warstwy dostępu do danych z wykorzystaniem standardu JPA oraz frameworków Spring Data i Hibernate. Wykorzystanie mechanizmu cachowania danych za pomocą frameworka Hazelcast
T-L-8Opracowanie warstwy autoryzacyjnej aplikacji poprzez zbudowanie serwera autoryzacji wykorzystującego framework Spring Security oraz standard OAuth 2.0
T-L-9Opracowanie warstwy logiki biznesowej aplikacji zorientowanej na usługi. Integracja usług z wykorzystaniem frameworka Apache Camel
T-L-10Opracowanie klienckiej aplikacji webowej wykorzystującej HTML 5.0 oraz serwer szablonów Thymeleaf i framework CSS Bootstrap
T-L-3Opracowanie rozproszonej aplikacji webowej wykorzystującej styl architektoniczny REST oraz interfejs programowania JAX-RS. Opracowanie klienta JAX-RS. Specyfikowanie danych z wykorzystaniem JSON. Serializacja/deserializacja danych.
T-L-2Opracowanie rozproszonej aplikacji webowej wykorzystującej interfejs programowania JAX-WS. Opracowanie klienta JAX-WS. Specyfikowanie danych z wykorzystaniem klas JAXB wygenerowanych na podstawie modelu XML Schema. Serializacja/deserializacja danych.
Metody nauczaniaM-2prezentacja i omawianie przykładowych programów
M-3realizacja projektów
Sposób ocenyS-2Ocena formująca: ocena realizacji projektów
Kryteria ocenyOcenaKryterium oceny
2,0
3,0Potrafi dostosować przykłady omawiane przez prowadzącego do własnych rozwiązań.
3,5
4,0
4,5
5,0
PoleKODZnaczenie kodu
Zamierzone efekty uczenia sięI_2A_D02.03_K01dąży do rozwiązania przedstawionego problemu wytworzenia rozproszonej i skalowalnej usługi biznesowej
Odniesienie do efektów kształcenia dla kierunku studiówI_2A_K04Potrafi myśleć i działać w sposób kreatywny i przedsiębiorczy
Cel przedmiotuC-2Tworzenie serwisów rozproszonych oferujących usługi biznesowe dla aplikacji.
Treści programoweT-W-1Przetwarzanie rozproszone – Remote Method Invocation: • architektura aplikacji RMI • ładowanie klas • konfiguracje RMI • odśmiecanie zdalnych obiektów • rejestr obiektów • podstawowe interfejsy programowania aplikacji RMI • tworzenie i uruchamianie obiektów rozproszonych
T-W-2Przetwarzanie rozproszone – Java Message Service: • architektura aplikacji JMS • obiekty zarządzane programowo lub za pomocą konfiguracji • typy i cechy komunikacji JMS • konfiguracja point-to-point • konfiguracja publish-subscribe • struktura komunikatu JMS • uproszczone JMS API 2.0 • wstrzykiwanie obiektu JMSContext • tworzenie producenta i konsumenta • asynchroniczne wysyłanie wiadomości • opóźnione dostarczanie
T-W-3Przetwarzanie rozproszone – JAX-WS i JAXB: • interfejs programowy JAXB - XJC binding compiler - odczyt i zapis wiadomości XML przy użyciu JAXB - generowanie XMLSchema - narzędzie schemagen - klasa JAXBContext - adnotacje JAXB • interfejs programowy JAX-WS - rozszerzalna reprezentacja wiadomości przy użyciu SOAP - HTTP over SOAP - WSDL i jego struktura - podejścia do wytwarzania aplikacji JAX-WS - tworzenie usług sieciowych JAX-WS - testowanie usług sieciowych - generowanie WSDL - tworzenie klienta JAX-WS - generowanie klas dostępu do usług - narzędzie wsimport - wywoływanie usług JAX-WS
T-W-4Przetwarzanie rozproszone – JAX-RS i JSON: • interfejs programowy JAX-RS - metody HTTP 1.1 (RFC-2616) - statusy odpowiedzi HTTP - idempotencja metod HTTP - zasoby (resources) i kolekcje zasobów REST - wywołania zasobów - adnotacje metod reprezentacji zasobów - wspierane typy encji - typy przekazywanych treści - przetwarzanie otrzymanej treści - podklasy Application - generowanie statusu odpowiedzi - podstawowa obsługa błędów - wsparcie Bean Validation (JSR-249) - klient REST – klasa HttpURLConnection - klient REST - JAX-RS 2 Client API - bezpieczeństwo i autentykacja klient-serwer • przetwarzanie JSON - Java API for JSON Processing (JSON-P) JSR-353 - JSON to Java Object Binding (Jackson, Gson)
T-W-5Przetwarzanie współbieżne – Message Driven Beans: • architektura aplikacji • model cyklu życia obiektów • typy obiektów • tworzenie i konfigurowanie obiektów MDB • potwierdzanie komunikatów • selektory komunikatów • uchwyty zdarzeń cyklu życia obiektów • tworzenie metod wywołania zwrotnego (callback methods) • wstrzykiwanie obiektu MessageDrivenContext
T-W-6Przetwarzanie współbieżne – asynchroniczne Enterprise Java Beans, ScheduledExecutorService i ManagedExecutorService: • synchroniczna i asynchroniczna komunikacja EJB • sposoby implementacji asynchronicznego wywołania metod • implementacja asynchronicznych Session Beans • obsługa obiektów Future • obsługa obiektów AsyncResult • tworzenie obiektów ScheduledExecutorService, ManagedExecutorService i ManagedScheduledExecutorService • interfejs ManagedTaskListener
T-W-7Przetwarzanie współbieżne – kolejkowanie zadań za pomocą Timer API i przetwarzanie wsadowe (JSR 352): • typy i właściwości timerów • zależności pomiędzy usługą timera a Session Bean • zarządzanie obiektem timera • odwołania do usługi TimerService • tworzenie programowych timerów • tworzenie automatycznych timerów • przetwarzanie wsadowe ukierunkowane na fragmenty (chunk-oriented) • obiekty przetwarzania wsadowego • tworzenie zadania • odczyt, przetwarzanie i zapis danych wynikowych • uruchamianie zadania
T-W-8Tworzenie warstwy dostępu do danych: • wzorce warstwy danych (DAO, DTO), • model relacyjny a obiektowy, • technologie realizujące odwzorowanie relacyjno-obiektowe(ORM): Hibernate, JPA. Techniki zwiększania wydajności: • cache, • sharding (Spring Cache, JetCache, Ehcache, Hazelcast). Podejścia typu NoSQL (Cassandra, MongoDB).
T-W-9Koncepcja IoC/DI, MVC, MVP, EventBus, charakterystyka wybranych szkieletów IoC/DI. Szkielety aplikacji: • rola szkieletów, • typowe problemy tworzenia aplikacji internetowej, Charakterystyka wybranych szkieletów webowych m.in.: spring, seam, spring mvc, struts
T-W-10Bezpieczeństwo aplikacji webowych, protokoły autoryzacyjne (Oauth2, OpenID Connect)
T-W-11Popularne technologie warstwy klienckiej aplikacji webowej: • JSF, • GWT, • Flex, • Vaadin, • Thymeleaf, • bilbioteki i szkielety javascript (jQuery, Node.js)
T-W-12Architektura rozproszonej aplikacji biznesowej: • architektura wielowarstwowa, • architektura zorientowana na usługi, • szyna korporacyjna. Architektura zorientowana na usługi/zagadnienia integracji (SOA, WOA), szyna korporacyjna (ESB), aranżacja usług internetowych: BPEL, wzorce EAI, wzorce EIP
T-L-1Implementacja autentykacji klienta w domenie Active Directory WI ZUT przy użyciu JNDI za pośrednictwem zdalnego obiektu RMI.
T-L-4Implementacja asynchronicznej komunikacji rozproszonej z wykorzystaniem specyfikacji JMS. Opracowanie producenta i konsumenta. Specyfikowanie danych. Programowanie asynchronicznego wysyłania wiadomości i opóźnione dostarczanie.
T-L-5Implementacja programowego kolejkowania zadań za pomocą ScheduledExecutorService oraz Timer API na potrzeby komunikacji rozproszonej JAX-WS, JAX-RS oraz JMS. Wykorzystanie buforowania danych przy użyciu Ehcache.
T-L-6Opracowanie wielowarstwowej aplikacji webowej z wykorzystaniem wzorca MVC za pomocą frameworka Spring MVC
T-L-7Opracowanie warstwy dostępu do danych z wykorzystaniem standardu JPA oraz frameworków Spring Data i Hibernate. Wykorzystanie mechanizmu cachowania danych za pomocą frameworka Hazelcast
T-L-8Opracowanie warstwy autoryzacyjnej aplikacji poprzez zbudowanie serwera autoryzacji wykorzystującego framework Spring Security oraz standard OAuth 2.0
T-L-9Opracowanie warstwy logiki biznesowej aplikacji zorientowanej na usługi. Integracja usług z wykorzystaniem frameworka Apache Camel
T-L-10Opracowanie klienckiej aplikacji webowej wykorzystującej HTML 5.0 oraz serwer szablonów Thymeleaf i framework CSS Bootstrap
T-L-3Opracowanie rozproszonej aplikacji webowej wykorzystującej styl architektoniczny REST oraz interfejs programowania JAX-RS. Opracowanie klienta JAX-RS. Specyfikowanie danych z wykorzystaniem JSON. Serializacja/deserializacja danych.
T-L-2Opracowanie rozproszonej aplikacji webowej wykorzystującej interfejs programowania JAX-WS. Opracowanie klienta JAX-WS. Specyfikowanie danych z wykorzystaniem klas JAXB wygenerowanych na podstawie modelu XML Schema. Serializacja/deserializacja danych.
Metody nauczaniaM-3realizacja projektów
Sposób ocenyS-2Ocena formująca: ocena realizacji projektów
Kryteria ocenyOcenaKryterium oceny
2,0
3,0Potrafi zbudować finalne rozwiązanie na podstawie przykładów przedstawionych w trakcie zajęć.
3,5
4,0
4,5
5,0