a4m36jee -- Pokročilá laboratoř Java EE

Alias: Advanced Java EE Lab

Toto je osnova kursu pro výuku Advanced Java EE technologií pro oblast podnikových aplikací. Účelem je seznámit posluchače s novinkami v Java EE 7 ve formě kombinace přednášek a cvičení. Přitom budou využívány projekty z JBoss.org a demonstrováno jejich použití.

Studenti se seznámí s pojmy jako jsou

  • Contest a Dependency Injection (CDI 1.1)
  • Enterprise Java Beans 3.2
  • Enterprise aplikační server
  • Clustering
  • Komunikace s cloud datu

Přepokládá se intenzivní 3-denní kurs.

Osnova kursu

Den první (11.3.)

  1. P: Úvod, přehled novinek v Java EE 7 (1 h - Jiří Pechanec)
  2. C: Příprava vývojového prostředí (1 h - Jiří Pechanec)
  3. P: CDI 1.1, EJB 3.2 (1,5 h - Jozef Hartinger)

Oběd

  1. C: Vývoj Java EE aplikace s použitím CDI (1,5 h - Jozef Hartinger)
  2. P: Webové technologie v Java EE 7: RESTful Services (JAX-RS 2.0), JSONProcessing (JSON-P), WebSocket, JavaServer Faces (JSF 2.2) (1,5 h - Lukáš Fryč)
  3. C: Vývoj aplikací s použítím webových technologií v Java EE 7 (1,5 h - Lukáš Fryč)

Den druhý (18.3.)

  1. P: Ukládání dat v cloudu - Infinispan (1,5 h - Tomáš Sýkora, Martin Genčúr)
  2. C: Vývoj datově náročné aplikace s použitím Infinispan (2 h -Tomáš Sýkora, Martin Genčúr )

Oběd

  1. P: Clustering a škálování WildFly 8 (1,5 h - Václav Chalupa)
  2. C: Konfigurace WildFly 8 pro běh v clusterovaném prostředí (1 h - Václav Chalupa)
  3. C: Konfigurace Java EE aplikace pro běh v clusteru, cachování, … (1 h - Václav Chalupa)

Den třetí (28.11.)

  1. Ordered List ItemP: Zabezpečení Java EE aplikace, JAAS (2 h - Peter Škopek)

Oběd

  1. C: Zabezpečení existující Java EE aplikace (1 h - Peter Škopek)
  2. P: Management a monitorování WildFly 8 (1,5 h - Jitka Kožaná)
  3. C: Vývoj skriptů pro monitorování WildFly 8 (1 h - Jitka Kožaná)

Příprava vývojového prostředí

Cvičení ke kurzu lze provozovat z libovolného vývojového prostředí. Nezbytné požadavky jsou

  • Java 8 (JDK, ne JRE)
  • Maven
  • Git (projekt qa/a4m36jee-2014 · GitHub)
  • WildFly 8.1 (Downloads · WildFly)

Studenti mohou použít jako IDE i JBoss Developer Studio. V tom případě postupujte podle níže uvedeného podrobného návodu. V ostatních případech je nutné, aby se studenti orientovali v použítí Git a Mavenu buď v jejich preferovaném IDE nebo v příkazové řádce. Aplikační server není nutné integrovat do IDE a může běžet jako samostaný proces. Důležité!!! Projekt si naklonujte a sestavte ještě před výukou.

JBoss Developer Studio

Instalace Na počítač si nainstalujte Java 8 (nutné je JDK, nikoliv pouze JRE) Instalace WildFly 8.1.0.Final

  1. Stáhněte si WildFly 8.1.0.Final ze stránky http://www.wildfly.org/downloads/
  2. Zip či tar.gz soubor si rozbalte na disk

Instalace JBoss Developer Studio 8.0.0

  1. Stáhněte si JBoss Developer Studio 8.0.0 (Stand-alone Installer) ze stránky https://www.jboss.org/products/devstudio/download/
  2. Spusťte instalátor

Konfigurace JBDS - Propojení s WildFly 8

  1. Window → Preferences
  2. Vybrat Server → Runtime Environments, kliknout na Add…
  3. Vybrat JBoss Community → WildFly 8.x Runtime, zaškrtnout Create a new local server, kliknout na Next
  4. Home directory: Přes Browse vybrat adresář wildfly-8.1.0.Final, JRE: zvolit java-8*, kliknout na Finish
  5. Opustit konfigurační okno, v okně Servers uvidíme WildFly 8.0 Runtime Server
  6. Pokud v okně Servers nevidíme vytvořený server, pak klikneme na No servers are available. Click this link to create a new server…. Poté zvolíme JBoss Community → WildFly 8.x → Next → sh

Git repozitář

  1. Naklonujeme repozitář s příklady podle návodu na qa/a4m36jee-2014 · https://github.com/qa/a4m36jee-2014

Import projektu do JBDS

  1. Provést File → Import… → Existing Maven Projects → Next
  2. Jako Root Directory zvolíme adresář s naklonovaným repozitářem
  3. Kliknout na Finish
  4. Operace bude trvat déle - Maven bude stahovat projektové závislosti

Spuštění projektu na serveru

  1. Zvolit okno Servers, pravé tlačítko, zvolit Add and Remove
  2. Zvolit <název projektu>, kliknout na Add a Finish

Použité nástroje a materiály

  • Java 8
  • git
  • Maven
  • Maven – Welcome to Apache Maven
  • Zdrojové kódy ke cvičením
  • Podpůrné systémy

Závěrečná práce

Požadavky na projekty

  • Týmy 3-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ý tým si volí téma podle svého uvážení
    • Pokud si tým není jistý náplní svého tématu, může se obrátit na vyučujícího pro konzultaci/schválení
    • Jako téma lze zvolit budoucí diplomovou či bakalářskou práci ze seznamu https://thesis-managementsystem.rhcloud.com/
      • Není vyžadována implementace v rozsahu DP/BP
    • Pokud tým neidentifikuje vlastní téma, ale použít některé z níže uvedených “záchranných”
      • Rezervační systém pro sportovní centra
      • Systém pro správu skladu
      • Auto-moto bazar
      • Systém pro půjčovny knih
  • 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) nebo moderní JavaScriptový framework s REST backendem, 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 testovatelná (Arquillian)
  • Aplikace bude nasazena v clusteru dvou uzlů v doménové konfiguraci, přiložen konfigurační skript (JBoss CLI) a demonstrována její odolnost vůči výpadku jednoho z nich (lze simulovat na jednom počítači)
  • Aplikace bude vystavovat rozhraní pro komunikaci mezi systémy (JAX-RS) - formát zpráv JSON
  • Aplikace bude používat alespoň jeden WebSocket endopint
  • Aplikace bude volat alespoń jeden REST endpoint (JAX-RS)
  • Vystavené endpointy budou podoporovat zabezpečení
  • Aplikace bude obsahovat alespoň jeden use case pro použití Concurrency nebo Batching API
  • Aplikace bude obsahovat alespoň jeden use case pro použití JMS 2.0 API
  • Každý projekt bude prezentován, studenti budou tázáni na části, které implementovali a technologie, které použili

Doporučená literatura

  • Seam in Action Dan Allen Foreword by Norman RichardsSeptember, 2008 624 pages. ISBN: 1933988401.
  • Antonio Goncalves. 2013. Beginning Java EE 7 (1st ed.). Apress, Berkely, CA, USA.
  • Arun Gupta. 2013. Java EE 7 Essentials. O'Reilly Media, 362 pages. ISBN: 978-1449370176.
  • Dokumentace k projektům

Odkazy:

Slidy:

 
Groups:
courses/a4m36jee/start.txt · Last modified: 2016/02/25 14:26 by cernyto3