Kod Szkolenia: J/EE6 Tytuł Szkolenia: Nowoczesne aplikacje internetowe oparte JEE6 (JSF2, EJB3.1, JPA2, CDI, AJAX). Szkolenie to omawia najnowsze technologie nie wspierane jeszcze w pełni przez wszystkie serwery aplikacji - jeśli interesują Cię bardziej rozpowszechnione technologie polecamy szkolenia J/WEB2 i J/WEB2b.
Adresaci szkolenia: Szkolenie adresowane jest do programistów aplikacji internetowych na platformie JEE, pragnących uzupełnić swoje kwalifikacje o najnowsze technologie, a także dla osób znających język Java i pragnących rozpocząć swoją przygodę z aplikacjami internetowymi od najnowszych technologii. Szkolenie realizowane jest z użyciem najnowszej odsłony Java Enterprise Edition – wersji 6, która kusi możliwościami lecz nie ma jeszcze pełnego wsparcia u dostawców serwerów aplikacji. Dla osób pragnących pracować z ugruntowanymi technologiami polecamy szkolenie WEB2. Cel szkolenia: Uczestnicy dowiedzą się jak projektować i implementować aplikacje na platformie JEE z wykorzystaniem technologii będących treścią szkolenia. Celem szkolenia jest zdobycie umiejętności tworzenia skalowanych aplikacji, zgodnie z arkanami sztuki: od komponentów biznesowych po wysoce ergonomiczne i funkcjonalne interfejsy wpisujące się w nurt WEB 2.0. W szczególności: Uczestnicy szczegółowo poznają technologię prezentacji JSF2.0 włącznie z tworzeniem własnych walidatorów, konwerterów czy komponentów. Zaznajomią się z popularnymi, bogatymi bibliotekami komponentów, takimi jak RichFaces, IceFaces. Nauczą się projektować i implementować warstwę logiki biznesowej w oparciu EJB 3.1, w połączeniu z mechanizmem mapowania relacyjno-obiektowego JPA2. Poznają specyfikację CDI standaryzującą część uznanego Framework Seam. 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. Mocne strony szkolenia: Program obejmuje całościowo i wyczerpująco zagadnienia tworzenia aplikacji internetowych. W przeciwieństwie do większości szkoleń, szkolenie to nie koncentruje się na jednej technologii, lecz zawiera najważniejsze zagadnienia z wybranych technologii. Dzięki temu, uczestnicy po skończeniu szkolenia, będą mogli tworzyć samodzielnie kompletne aplikacje WWW, uzupełniając już we własnym zakresie wiedzę o pojawiające się nowe potrzeby. Program jest ciągle uaktualniany, tak, by uwzględniać nowo powstające trendy. Parametry szkolenia: 5*7 godzin wykładów i warsztatów w proporcji 1/3. W trakcie warsztatów, oprócz prostych ćwiczeń, projektowana i implementowana jest prosta kompleksowa aplikacja. Wielkość grupy: maks. 8-10 osób. Polecane szkolenia poprzedzające: J/JP Program Szkolenia: - Wstęp
- Wprowadzenie do platformy Java Enterprise Edition
- Omówienie komponentów i specyfikacji JEE w tym JNDI, JMS, , Servlet, JSP, EJB, webserwisy,
- Zagadnienia projektowania aplikacji na platformie JEE, doboru technologii, bezpieczeństwa etc.
- Specyfikacja Managed Beans
- Warstwa logiki biznesowej – komponenty 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 API2
- 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
- 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
- Interfejs Webowy
- Wprowadzenie do JSF
- Typowe problemy aplikacji Webowej
- Wprowadzenie do modelu komponentowo-zdarzeniowego
- Cykl przetwarzania żądania
- Rodzaje żądań
- Fazy cyklu
- Przetwarzanie pełne i częściowe
- Komponentowy model interfejsu
- Główne klasy i interfejsy
- Model zarządzania beanami logiki
- Idea i rodzaje zasięgów
- Konfiguracja
- Zasięgi „Custom”
- Expression Language
- Definiowanie widoku
- Przegląd dostępnych komponentów standartowych
- Biblioteka HTML
- Biblioteka Core
- View Declaration Language
- JSF w oparciu o facelets
- Korzyści wynikające z technologii
- Mechanizmy szablonowania
- Wbudowane znaczniki
- Tworzenie komponentów złożonych (Composite Components)
- Historia - JSF w oparciu o JSP
- JSF a REST
- Model konwersji
- Konwertery wbudowane
- Tworzenie konwerterów
- Model walidacji
- Walidatory wbudowane
- Tworzenie walidatorów
- Walidator domyślny
- Bean Validation 1.0 (JSR 303) a JSF
- Zdarzenia związane z walidacją
- Realizacja nietypowych/złożonych scenariuszy walidacji
- Model zdarzeń
- Zdarzenia i słuchacze – podstawy modelu zdarzeniowego
- Zdarzenia akcji i zmiany wartości
- Zdarzenia zmiany faz
- Zdarzenia systemowe
- Model nawigacji
- Nawigacja „klasyczna”
- Nawigacja skrócona
- Nawigacja warunkowa
- Dynamiczna konfiguracja nawigacji
- Pull i push MVC
- Główne składowe aplikacji JSF i internacjonalizacja
- Typowe problemy przy tworzeniu interfejsu min
- Formularz w postaci tabelki
- „Inteligentna” paginacja
- Master-Detail, LOV
- Obsługa błędów
- Zasoby aplikacji
- Żądanie o zasoby (Resuorce Request) i jego obsługa
- Zależności od zasobów
- Znaczniki i obiekty EL
- Pakowanie i internacjonalizacja zasobów
- Wzbogacanie komponentów – Behaviour
- Tworzenie komponentów „od zera”
- Tworzenie komponentów
- Tworzenie rendererów
- Tworzenie znaczników
- Pakowanie i konfiguracja aplikacji, fazy projektu
- Testowanie interfejsu zbudowanego na JSF (JSFUnit/Selenium)
- Zabezpieczanie aplikacji
- Tworzenie aplikacji WWW z użyciem technologii AJAX i JSF
- Koncepcja AJAX i modele komunikacji
- Przegląd podejść do tworzenia aplikacji AJAX(warstwowe – JSF, klient-serwer – GWT, …)
- Tworzenie aplikacji AJAX „od zera” (XMLHttpRequest)
- Podstawy bibliotek Prototype i Jquery w kontekście manipulacji drzewem DOM i komunikacji AJAX
- „Natywne” podejście JSF2
- Znacznik f:ajax i Ajax Behaviour
- Przetwarzanie żądań typu Ajax
- Przetwarzanie częściowe (Partial processing)
- Selektywne działania na drzewie komponentów
- Kolejkowanie
- obsługa błędów
- Ajax4JSF
- Wady i zalety podejścia, porównanie z podejściem natywnym
- Architektura silnika – zasada działania
- Przegląd możliwości
- Zagadnienia związane z wydajnością (kolejkowanie, opóźnianie, unieważnianie żądań, zmniejszanie wielkości żądania)
- Wpływanie na cykl życia JSF
- Ajax4JSF a JSON
- Richfaces
- Przegląd możliwości Richfaces
- Konfiguracja wyglądu (skórki)
- Walidacja
- RichFacej a jquery, script.aculo.us
- CDI (webbeans)
- Podstawowe pojęcia
- Ziarno
- Kontekst
- Zasięg
- Wstrzeliwanie zależności
- Ziarna
- Managed beans
- Session means
- Specjalizacja
- Aktywne i nieaktywne ziarna
- Zasięgi
- „klasyczne” zasięgi wbudowane
- Zasięg konwersacji
- Zasięg zależny
- Tworzenie niestendartowych zasięgów
- Zasięg domyślny
- Cykl życia obietków kontekstowych
- Wstrzeliwanie zależności
- Miejsca docelowe wstrzeliwania
- Kwalifikatory, Alternatywy, stereotypy
- Wstrzykiwanie po nazwie
- Metody fabrykujące
- Model zdarzeń i słuchaczy
- Użycie CDI w kontekście aplikacji EJB/JSF
|