Kod Szkolenia: J/EJB Tytuł Szkolenia: Tworzenie komponentów logiki biznesowej i warstwy dostępu do danych w oparciu o EJB3.0/JPA lub EJB 3.1/JPA2.
Adresaci szkolenia: Szkolenie adresowane jest do programistów Java pragnących zapoznać się z zasadami tworzenia rozproszonych komponentów logiki biznesowej w oparciu o EJB i warstwy trwałości opartej na JPA. Cel szkolenia: Celem szkolenia jest poznanie zasad tworzenie rozproszonych komponentów logiki biznesowej w oparciu o EJB 3.0/3.1 oraz warstwy trwałości w oparciu o JPA 1.0/2.0 wraz z zagadnieniami integracji, testowania oraz skalowania. Szkolenie dostępne jest w dwóch wariantach: EJB 3.0 JPA 1.0, czyli ugruntowany standard wchodzący w skład JEE5, lub najnowsza odsłona EJB 3.1 JPA 2.0, która na chwile obecną wspierana jest jedynie przez wybrane serwery. W szczególności uczestnicy: - zapoznają się z problemami architektury rozproszonej oraz sposobem jej realizacji przy pomocy EJB.
- poznają komponenty sesyjne stanowe i bezstanowe oraz komponenty sterowane wiadomością wraz z ich zastosowaniem.
- dowiedzą się jak kontener zarządza transakcjami oraz bezpieczeństwem.
- poznają zasady uruchamiania i integracji aplikacji opartych na EJB.
- poznają zasadę mapowania relacyjno-obiektowego, i nauczą się projektować warstwę trwałości w oparciu o JPA począwszy od prostych encji po złożone zagadnienia takie jak dziedziczenie.
- dowiedzą się jak dbać o spójność danych i wydajność aplikacji.
- dowiedzą się jak testować ww. komponenty.
Wymagania: Od uczestników szkolenia wymagana jest umiejętność programowania w języku Java (do poznania na kursie J/JP), podstawy relacyjnych baz danych i SQL. Parametry szkolenia: 3*7 godzin (w wariancie EJB3.0/JPA1) lub 4*7 godzin (w wariancie EJB3.1/JPA2), wykładów i warsztatów w proporcji 1/3. W trakcie warsztatów, oprócz prostych ćwiczeń, projektowana i implementowany jest backend prostej aplikacji. Polecane szkolenia poprzedzające: J/JP Program szkolenia * pozycje oznaczone gwiazdką dotyczą jedynie wariantu EJB3.1/JPA2 - Wstęp
- Wprowadzenie do platformy Java Enterprise Edition
- Omówienie komponentów i specyfikacji JEE w tym JNDI, JMS, RMI, Servlet, JSP, EJB, webserwisy,
- Zagadnienia projektowania aplikacji na platformie JEE, doboru technologii, bezpieczeństwa etc.
- EJB
- Typy komponentów EJB 3.x
- Zasada działania
- Komponenty sesyjne
- Stanowe
- Bezstanowe
- Komponenty typu Singleton*
- cykl życia komponentów, nasłuchiwanie i sterowanie cyklem życia
- Rodzaje dostępów
- Lokalny
- Lokalny bez-interfejsowy*
- Zdalny
- Zdalny przez usługę web service
- Wywołania asynchroniczne metod komponentów sesyjnych*
- Zagadnienia współbieżności w odwoływaniu się do komponentów
- Zachowanie kontenera
- Współbieżność zarządzana przez kontener i współbieżność zarządzana przez komponent*
- Komponent stanowy w kontekście współbieżności
- Korzystanie z zasobów przez komponenty EJB
- Słowo o JCA
- Przestrzenie nazw JNDI i wyszukiwanie zasobów
- Inversion of Control w odwoływaniu do zasobów
- Interceptory
- Model wyjątków
- Komponenty Sterowane Wiadomością
- Zasada działania
- Rodzaje komunikacji
- Bezpieczeństwo komponentów
- Transakcje zarządzane przez kontener i komponent
- Transakcje zarządzane przez kontener (CMT)
- Atrybuty transakcji w kontekście scenariuszy użycia
- Transakcje a wyjątki
- Synchronizacja stanu w komponencie stanowym
- Transakcje zarządzane przez komponent (BMT) – podstawy JTA
- Transakcje zarządzane przez klienta
- Usługi czasowe (TimerService)
- Interfejsy Timer i TimerService
- Automatyczne uruchamianie usług w oparciu o kalendarz*
- Usługi webservice w kontekście EJB
- Podstawy webservice
- JAX-WS a EJB
- Przygotowanie, kofigurowanie i wdrażanie aplikacji
- Jako samodzielny moduł EJB (jar)
- Jako składowa aplikacji Enterprise (ear)
- W obrębie aplikacji Web (war) *
- Kontener pełny (full) i lekki (light)*
- EJB w kontenerze zaembedowanym*
- Testowanie komponentów EJB
- Wzorce Projektowe warstwy logiki i dostępu do logiki
- Java Persistence API
- Koncepcja Mapowania relacyjno-obiektowego
- Klasy Encyjne
- klasy proste
- klasy zagnieżdżone
- Pola i dostęp do pól
- Pola będące kolekcjami *
- Asocjacje – z uwzględnieniem krotności i kierunkowości
- Klucze
- Proste
- Złożone
- Automatyczne generowanie kluczy
- Nazewnictwo obiektów w bazie danych
- Domyślne mapowanie
- Zmiana domyślnych mapowań
- Kontekst trwałości (PersistentContext)
- Zarządzany przez kontener i zarządzany przez aplikację
- Transakcyjny(Transaction) i rozszerzony(Extended)
- Cykl życia encji
- Operacje na danych
- Transakcje
- Zapytania
- Tworzenie zapytań w JPQL
- Składnia
- Query i TypedQuery*
- Zapytania nazwane
- JPA2 Criteria API*
- Idea Criteria API, podstawowe składowe
- MetaModel
- Koncepcja
- Klasy MetaModel w postaci kanonicznej i niekanonicznej
- MetaModel API
- Tworzenie silnie typowanych zapytań
- Tworzenie słabo typowanych, dynamicznych zapytań
- Edycja zapytań
- Podejścia alternatywne: LIQUidFORM
- Typowe scenariusze, w tym serach-within i serach-by-example
- Zapytania Natywne, mapowanie wyników
- Metody nasłuchiwania cyklu życia
- Walidacja
- Podstawy Bean Validation 1.0 (JSR 303)
- Koncepcja Bean Validation
- Definiowanie i nakładanie ograniczeń na typy, pola, metody
- Parametryzowanie ograniczeń
- Wbudowane ograniczenia
- Komponowanie ograniczeń złożonych
- Tworzenie Walidatorów
- Proces walidacji
- Pola, obiekty i grafy obiektów
- Grupy i sekwencje
- Blokowanie dostępu do pola oraz kaskadowego dostępu
- API i wyjątki
- JPA2 a Bean Validation
- Konfiguracja walidacji
- Zasada działania Bean Validation w kontekście JPA
- Ograniczenia walidujące a generacja obiektów bazy danych
- Modele i implementacja dziedziczenia
- Zagadnienia spójności danych
- Optimistic locking
- Pesimistic locking
- Rozszerzenia w JPA2 *
- Cache drugiego poziomu
- Idea cache 2 poziomu
- Konfiguracja i tryby pracy cache
- Konfiguracja encji
- Interakcja cache <-> baza
- Cache w oparciu o Hibernate (dla szkolenia bazującego na hibernate)
- Cache w oparciu o mechanizmy JPA2*
- Zagrożenia
- Testowanie komponentów wykorzystujących JPA
- Konfiguracja i deployment
- Jako aplikacja Java SE / dektop
- Jako moduł web
- W obrębie modułu ejb
- JPA a biblioteki dostawców(Hibernate,Toplink,EclipseLink,OpenJPA)
- Zagadnienia specyficzne dla Hibernate (dla szkolenia bazującego na hibernate)
- Hibernate API
- Wybrane dodatkowe możliwości
- Podprojekty Hibernate: Search, Shards, Validator, Envers
- Wzorce Projektowe warstwy dostępu do danych
|