Pole | KOD | Znaczenie kodu |
---|
Zamierzone efekty uczenia się | I_2A_D02.03_K01 | dąży do rozwiązania przedstawionego problemu wytworzenia rozproszonej i skalowalnej usługi biznesowej |
---|
Odniesienie do efektów kształcenia dla kierunku studiów | I_2A_K04 | Potrafi myśleć i działać w sposób kreatywny i przedsiębiorczy |
---|
Cel przedmiotu | C-2 | Tworzenie serwisów rozproszonych oferujących usługi biznesowe dla aplikacji. |
---|
Treści programowe | T-W-1 | Przetwarzanie 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-2 | Przetwarzanie 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-3 | Przetwarzanie 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-4 | Przetwarzanie 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-5 | Przetwarzanie 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-6 | Przetwarzanie 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-7 | Przetwarzanie 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-8 | Tworzenie 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-9 | Koncepcja 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-10 | Bezpieczeństwo aplikacji webowych, protokoły autoryzacyjne (Oauth2, OpenID Connect) |
T-W-11 | Popularne technologie warstwy klienckiej aplikacji webowej:
• JSF,
• GWT,
• Flex,
• Vaadin,
• Thymeleaf,
• bilbioteki i szkielety javascript (jQuery, Node.js) |
T-W-12 | Architektura 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-1 | Implementacja autentykacji klienta w domenie Active Directory WI ZUT przy użyciu JNDI za pośrednictwem zdalnego obiektu RMI. |
T-L-2 | Opracowanie 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-3 | Opracowanie 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-4 | Implementacja 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-5 | Implementacja 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-6 | Opracowanie wielowarstwowej aplikacji webowej z wykorzystaniem wzorca MVC za pomocą frameworka Spring MVC |
T-L-7 | Opracowanie 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-8 | Opracowanie warstwy autoryzacyjnej aplikacji poprzez zbudowanie serwera autoryzacji wykorzystującego framework Spring Security oraz standard OAuth 2.0 |
T-L-9 | Opracowanie warstwy logiki biznesowej aplikacji zorientowanej na usługi. Integracja usług z wykorzystaniem frameworka Apache Camel |
T-L-10 | Opracowanie klienckiej aplikacji webowej wykorzystującej HTML 5.0 oraz serwer szablonów Thymeleaf i framework CSS Bootstrap |
Metody nauczania | M-3 | realizacja projektów |
---|
Sposób oceny | S-2 | Ocena formująca: ocena realizacji projektów |
---|
Kryteria oceny | Ocena | Kryterium oceny |
---|
2,0 | |
3,0 | Potrafi zbudować finalne rozwiązanie na podstawie przykładów przedstawionych w trakcie zajęć. |
3,5 | |
4,0 | |
4,5 | |
5,0 | |