Zachodniopomorski Uniwersytet Technologiczny w Szczecinie

Wydział Informatyki - Informatyka (N2)
specjalność: Systemy komputerowe zorientowane na człowieka

Sylabus przedmiotu Aplikacje webowe i rozproszone:

Informacje podstawowe

Kierunek studiów Informatyka
Forma studiów studia niestacjonarne 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 20 2,00,50zaliczenie
wykładyW2 20 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.
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.2
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.2
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.2
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.2
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.2
T-L-6Opracowanie wielowarstwowej aplikacji webowej z wykorzystaniem wzorca MVC za pomocą frameworka Spring MVC2
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 Hazelcast2
T-L-8Opracowanie warstwy autoryzacyjnej aplikacji poprzez zbudowanie serwera autoryzacji wykorzystującego framework Spring Security oraz standard OAuth 2.02
T-L-9Opracowanie warstwy logiki biznesowej aplikacji zorientowanej na usługi. Integracja usług z wykorzystaniem frameworka Apache Camel2
T-L-10Opracowanie klienckiej aplikacji webowej wykorzystującej HTML 5.0 oraz serwer szablonów Thymeleaf i framework CSS Bootstrap2
20
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 dostarczanie1
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)2
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 MessageDrivenContext1
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 ManagedTaskListener1
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).2
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, struts2
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 EIP2
20

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

KODForma aktywnościGodziny
laboratoria
A-L-1Uczestnictwo w zajęciach20
A-L-2Przygotowanie do zajęć10
A-L-3Studia literatury i innych źródeł wiedzy10
A-L-4Opracowanie wyników10
50
wykłady
A-W-1Uczestnictwo w zajęciach20
A-W-2Studia literatury24
A-W-3Przygotowanie 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-1, C-2T-W-6, T-W-2, T-W-3, T-W-7, T-W-1, T-W-4, T-W-11, T-W-5, T-W-8, T-W-10M-1, M-2S-1
I_2A_D02.03_W02
Posiada wiedzę na temat standardów i architektur aplikacji rozproszonych i webowych
I_2A_W03, I_2A_W09C-1T-W-12, T-W-9M-2, M-1S-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_U09, I_2A_U03, I_2A_U07, I_2A_U10C-2T-L-9, T-L-5, T-L-10, T-L-4, T-L-8, T-L-3, T-L-6, T-L-1, T-L-2, T-L-7M-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-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_W02
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. Thomas Erl, Service-Oriented Architecture (SOA): Concepts, Technology, and Design, Prentice Hall Service-Oriented Computing Series, 2005
  2. Gamma Erich, Richard Helm, Ralph Johnson, and John Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 2011
  3. Fowler Martin, Patterns of Enterprise Application Architecture, Addison-Wesley, 2002
  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.2
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.2
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.2
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.2
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.2
T-L-6Opracowanie wielowarstwowej aplikacji webowej z wykorzystaniem wzorca MVC za pomocą frameworka Spring MVC2
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 Hazelcast2
T-L-8Opracowanie warstwy autoryzacyjnej aplikacji poprzez zbudowanie serwera autoryzacji wykorzystującego framework Spring Security oraz standard OAuth 2.02
T-L-9Opracowanie warstwy logiki biznesowej aplikacji zorientowanej na usługi. Integracja usług z wykorzystaniem frameworka Apache Camel2
T-L-10Opracowanie klienckiej aplikacji webowej wykorzystującej HTML 5.0 oraz serwer szablonów Thymeleaf i framework CSS Bootstrap2
20

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 dostarczanie1
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)2
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 MessageDrivenContext1
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 ManagedTaskListener1
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).2
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, struts2
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 EIP2
20

Formy aktywności - laboratoria

KODForma aktywnościGodziny
A-L-1Uczestnictwo w zajęciach20
A-L-2Przygotowanie do zajęć10
A-L-3Studia literatury i innych źródeł wiedzy10
A-L-4Opracowanie 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ęciach20
A-W-2Studia literatury24
A-W-3Przygotowanie 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-1Poznanie zagadnień z zakresu projektowania biznesowych rozwiązań rozproszonych.
C-2Tworzenie serwisów rozproszonych oferujących usługi biznesowe dla aplikacji.
Treści programoweT-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-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-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-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-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-11Popularne technologie warstwy klienckiej aplikacji webowej: • JSF, • GWT, • Flex, • Vaadin, • Thymeleaf, • bilbioteki i szkielety javascript (jQuery, Node.js)
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-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)
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_W02Posiada 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.
Treści programoweT-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-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
Metody nauczaniaM-2Prezentacja i omawianie przykładowych programów
M-1Wykład w formie prezentacji multimedialnej
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_U09Ma umiejętność stosowania zaawansowanych technik programowania i metodyki projektowania systemów informatycznych w wybranym obszarze zastosowań
I_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_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-9Opracowanie warstwy logiki biznesowej aplikacji zorientowanej na usługi. Integracja usług z wykorzystaniem frameworka Apache Camel
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-10Opracowanie klienckiej aplikacji webowej wykorzystującej HTML 5.0 oraz serwer szablonów Thymeleaf i framework CSS Bootstrap
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-8Opracowanie warstwy autoryzacyjnej aplikacji poprzez zbudowanie serwera autoryzacji wykorzystującego framework Spring Security oraz standard OAuth 2.0
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-6Opracowanie wielowarstwowej aplikacji webowej z wykorzystaniem wzorca MVC za pomocą frameworka Spring MVC
T-L-1Implementacja autentykacji klienta w domenie Active Directory WI ZUT przy użyciu JNDI za pośrednictwem zdalnego obiektu RMI.
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.
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
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.
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