(Enterprise) JavaBeans Lekce 7
JavaBeans vs. Enterprise JavaBeans (EJB) JavaBeans technologie: jedná se o tzv. komponentní architekturu určenou pro JSE platformu určená pro tvorbu JSE GUI programů pomocí předem připravených a opakovaně použitelných komponent beans (vizuálních i nevizuálních). existuje JavaBeans (TM) specifikace podobným existujícím standardem jsou komponenty (prvky) ActiveX Programování www Lekce 7 1
JavaBeans JavaBeana: je každá Java třída s get/set/is metodami stačí metody pro pro čtení a zápis (get/set) je to tedy třída, která má alespoň jednu vlastnost (pro kterou může být navíc vytvořena událost) žádné další podmínky nejsou kladeny Pozn.: JavaBeans mohou běžet jak na klientovi tak i na serveru! Programování www Lekce 7 2
EJB (Enterprise JavaBeans) EJB je technologie (framework) Jedná se o systém služeb (dáno specifikací) implementovaného EJB aplikačního serveru pracujícího na technologii RMI (Remote Method Invocation). Využívá 3-vrstvou architekturu: tenký klient prezentace (www browser) aplikační server (servlety, JSP, JavaBeans, ) - realizuje téměř celou aplikační logiku databázový sever Programování www Lekce 7 3
EJB (Enterprise JavaBeans) Java třídy obohacené o tzv. anotace s JavaBeany mají společné pouze jméno jsou to opět komponenty, které tvoří aplikaci běží na EJB aplikačním serveru, který poskytuje běhové prostředí a služby rozlišujeme tři typy EJB komponent: 1. session beans obsahují logiku aplikace 2. entities reprezentují uložená data v relační db 3. message-driven beans reagují na události Programování www Lekce 7 4
EJB - historie EJB 1.0 - (1998) pouze session a entity beans EJB 1.1 - zaveden XML deployment descriptor EJB 2.0 - vylepšené entity beans EJB 2.1 - web services, časovač (JEE 1.4) EJB 3.0 - (2006, JEE 5) přepracovány entity beans (entities), zavedeny anotace, provedeno mnoho změn pro zjednodušení návrhu a psaní EJB Programování www Lekce 7 5
EJB 3.0 změny (pojmy) 1. Dependency injection tzv. vpíchnutí beanu např. do servletu (JSP, jiný bean) 2. Interceptors ( callback methods ) již není třeba povinně implementovat množství metod potřebné metody se označí (anotace) 3. Perzistence pomocí POJO (Plain Old Java Object) jednoduché JavaBeans (get/set; bezparam. konstruktor) 4. Jednoduší konfigurace (včetně XML) Programování www Lekce 7 6
EJB 3.0 nevýhody Přes nesporné výhody některé existují: hůře se testují Složitější nasazení a spuštění aplikace EJB nejsou povinnou součástí JEE (framework) EJB lze nahradit jinou komponentovou technologií: frameworkem Spring (Spring Beans) JakartaStruts (velká skupina tříd pro rychlý vývoj webových aplikací) Programování www Lekce 7 7
EJB Session Beans Implementují vlastní logiku aplikace Obsahují hlavní rutiny metody (např. pro manipulaci s databázovými objekty) Existují dva typy: Stateless Session Bean neuchovává stav sezení (bean na kontrolu kreditních karet) Stateful Session Bean uchovává stav po dobu sezení (nákupní košík) Programování www Lekce 7 8
EJB Session Beans Pro rozlišení typu beanu je nutné použít anotaci: @Stateless @Stateful Session Bean musí implementovat jedno (nebo obě) rozhraní, opět anotacemi: @Local (lokální přístup) @Remote (přístup přes síť) V praxi se často vytvoří jedno rozhraní s metodami a rozhraní typu Local a Remote budou jeho potomci Programování www Lekce 7 9
EJB Session Beans (ukázka) Programování www Lekce 7 10
EJB Session Beans (ukázka) Programování www Lekce 7 11
EJB 3.0 použití na serveru Po vytvoření se EJB komponenta zabalí do archivu (EJB JAR -> EAR) a nahraje na aplikační server deployment Na serveru jsou komponenty aktivovány a jsou dostupné buď: lokálně (v rámci aplikačního serveru) vzdáleně (remote přes síť) EJB se pak volají např. z: webové vrstvy (lokálně nebo vzdáleně) desktopové aplikace (vzdáleně) Programování www Lekce 7 12