V rámci jarního semestru akademického roku 2011/12 proběhne na FI MUNI série setkání ve fromě kombinovaných přednášek a laboratorních cvičení věnovaná pokročilým tématům Java EE.
Cílem tohoto nepovinného (a nehodnoceného) kurzu pod garancí laboratoře LaSArIS je seznámit studenty s pokročilými vlastnostmi Java EE, s novinkami v rámci Java EE 6 a naučit je pracovat s projekty JBoss.org zaštítěnými společností Red Hat.
Repozitář se zdrojovými kódy: https://github.com/qa/pv243
JBoss Developer 5.0.0 M5
- Osnova kursu
-
Podrobný obsah
- Úvod, předhled novinek v Java EE 6 [Jiří Pechanec, 1.3.]
- CDI, EJB 3.1 [Jozef Hartinger, Marek Schmidt, 15.3.]
- Seam 3 (co v CDI chybí) [Jozef Hartinger, Marek Schmidt, 29.3.]
- Zabezpečení Java EE aplikace, JAAS [Peter Škopek, 12.4.]
- Ukládání dat v cloudu - Infinispan [Martin Genčúr, Michal Linhard, 26.4.]
- Clustering a škálování JBoss AS 7 [Radoslav Husár, 10.5.]
- Management a monitorování JBoss AS 7 [Rostislav Svoboda, 17.5.]
- Kontakty
- Prerekvizity
- Příprava prostředí v laboratoři
- Import projektu do JBDS
- Spuštění projektu na serveru
- Náměty na projekty
- Požadavky na projekty
Osnova kursu
- Úvod, předhled novinek v Java EE 6
- CDI, EJB 3.1
- Seam 3 (co v CDI chybí)
- Zabezpečení Java EE aplikace, JAAS
- Ukládání dat v cloudu - Infinispan
- Clustering a škálování JBoss AS 7
- Management a monitorování JBoss AS 7
Podrobný obsah
Úvod, předhled novinek v Java EE 6 [Jiří Pechanec, 1.3.]
Prezentace stručného přehledu nových a aktualizovaných specifikací v Java EE 6
- Profily
- Java Servlet 3.0
- JAX-RS
- JavaServer Faces 2.0
- EJB 3.1
- CDI
- Bean validation
- Streaming API for XML
CDI, EJB 3.1 [Jozef Hartinger, Marek Schmidt, 15.3.]
- CDI
- Vysvětlení základních principů
- Dopad na vývoj nových aplikací
- Diskuse v kontextu s ostatními DI řešeními
- EJB 3.1
- Full/Lite
- Časovač, singleton, asynchronní volání
- Zjednodušená tvorba modulů (packaging)
Screencast k cvičením naleznete zde http://www.youtube.com/watch?v=A2AjO7eWjd0
Seam 3 (co v CDI chybí) [Jozef Hartinger, Marek Schmidt, 29.3.]
- Přehled modulů
- Budoucnost Seam 3
Zabezpečení Java EE aplikace, JAAS [Peter Škopek, 12.4.]
- Co je JAAS
- Zabezpečení webové aplikace
- Zabezpečení třívtstvé aplikace
- Přehled autentizačních modulů
- Single-Sign On
Ukládání dat v cloudu - Infinispan [Martin Genčúr, Michal Linhard, 26.4.]
- Paměťový grid - principy
- Přehled funkcionality
- Škálování a redundance
- Transakční prostředí
Clustering a škálování JBoss AS 7 [Radoslav Husár, 10.5.]
- Co je cluster
- Principy clustrování
- JGroups
- Clustering a fail-over - rozdíly a souvsilosti
Management a monitorování JBoss AS 7 [Rostislav Svoboda, 17.5.]
- Doménový model JBoss AS 7
- Management API
- Management nástroje - konzole
Kontakty
Jiří Pechanec jpechane@redhat.com
Tomáš Pitner tomp@fi.muni.cz
Prerekvizity
- Znalost programovacího jazyka Java
- Praktická znalost Java EE 5 technologií nebo absolvování kurzu v rámci studia
(je dobré mít předchozí znalosti cca na úrovni kurzu PA165 Vývoj pg. systémů v jazyce Java) - Zájem o věc :-)
Příprava prostředí v laboratoři
Vlastní instalace
Instalace JBoss AS 7.1.1
cd ~ mkdir pv243 cd pv243 unzip -d /var/tmp/pv243 /packages/share/jbdevstudio-5.0.0.m5/jboss-as-7.1.1.Final.zip ln -s /var/tmp/pv243/jboss-as-7.1.1.Final jboss-as-7.1
Instalace JBoss Developer Studio 5.0.0.M5
module add jbdevstudio-5.0.0.m5
Spuštění JBDS
jbdevstudio
Konfigurace JBDS - Propojení s JBoss AS 7
- Window -> Preferences
- Vybrat Server -> Runtime Environments, kliknout na Add...
- Vybrat JBoss Community -> JBoss 7.1 Runtime, zaškrtnout Create a new local server, kliknout na Next
- Home directory: Přes Browse vybrat v domovském adresáři pv243/jboss-as-7.1, JRE: zvolit java-1.6.0-*, kliknout na Finish
- Opustit konfigurační okno, v okně Servers uvidíme JBoss 7.1 Runtime Server
Konfigurace JBDS - Git repozitář
- Kliknout na Open Perspective v pravém horním rohu, zvolit Other...
- Vybrat Git Repository Exploring
- Zvolit Clone a Git Repository
- URI: git://github.com/qa/pv243.git
- Kliknout na Next, Next a Finish
- Přepnout zpět na JBoss perspektivu
Virtuální stroj
V terminálu zadat příkaz
pv243_vbox
Při prvním spuštění proběhne instalace virtuálního stroje a spustí se VirtualBox. Při dalších se instalace přeskakuje.
Import projektu do JBDS
- Přepnout na Git Repository Exploring perspektivu
- Zvolit repozitář pv243 -> Working directory -> lesson02-cdi
- Pravé tlačítko myši, zvolit Import projects
- Zvolit Import existing projects
- Kliknout na Next a Finish
- Přepnout na JBoss perspektivu
- Pravé tlačítko na jméně projektu lesson02, zvolit Team -> Reset
- Zvolit Tags -> cdi-00, Reset type - Hard, kliknout na Reset
Spuštění projektu na serveru
- Zvolit okno Servers, pravé tlačítko, zvolit Add and Remove
- Zvolit lesson02, kliknout na Add a Finish
Náměty na projekty
Diplomové/bakalářské
- Aplikace na správu a publikaci témat diplomových a bakalářských prací
- Rezervační systém pro správu zdrojů v laboratořích Red Hat
- Dokončení systému pro alokaci úkolů (http://is.muni.cz/th/208226/fi_m)
- Vytvoření plnohodnotné Java EE 6 aplikace používané pro výkonostní testy (náhrada DayTrader)
- Aplikace pro distribuci security manager politik
- Vzorová aplikace pro Apache DeltaSpike - Expense Tracking (data persistována do Inifinispan)
Záchranné
- Rezervační systém pro sportovní centra
- Systém pro správu skladu
- Auto-moto bazar
- Systém pro půjčovny knih
Požadavky na projekty
- Týmy maximálně 4 lidí, jeden z nich bude zodpovědný za vedení (problémy v týmu je nutné řešit včas s přednášejícími)
- Každý student si zřídí účet na github.com, zdrojové kódy projektu budou tamtéž
- Volba git workflow je na každém týmu, taktéž rozdělení prací na projektu
- Vytvořit krátkou specifikaci - textovou či s doprovodem UML diagramů
- Implementace třívrstvé aplikace
- Prezentační vrstva - JSF (volitelně použití knihovny RichFaces), hodnotit se bude funkcionalita, nikoliv grafické provedení
- Business vrstva - EJB
- Datová vrstva - perzistence pomocí JPA 2 nebo Infinispan (zde se očekává konfigurace Infinispan-u pro trvalé uložení dat)
- Aplikace bude používat CDI, není vhodné používat dependency injection definovanou v Java EE 5 (tzn. očekáváme i použití např. typově bezpečného persitence contextu)
- Aplikace bude plně zabezpečena, bude používat minimálně tři úrovně oprávnění (role)
- Datový model bude anotovaný pomocí Bean Validation - stačí použít předdefinované anotace, použití i vlastních omezení je plus
- Aplikace bude používat logování do logovacího souboru (nápověda - viz Seam 3)
- Aplikace bude testovatelná (Arquillian)
- Aplikace bude nasazena v clusteru dvou uzlů a demonstrována její odolnost vůči výpadku jednoho z nich (lze simulovat na jednom počítači)
- Bude-li možné, bude aplikace nasazena v PaaS OpenShift. Nezdaří-li se nasazení, bude zdokumentována příčina.
- Volitelné - aplikace bude vystavovat rozhraní pro komunikaci mezi systémy (použití JAX-RS, JAX-WS)
- Každý projekt bude prezentován, studenti budou tázáni na části, které implementovali a technologie, které použili
Comments