(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 EJB EJB EJB
1.0 1.1 2.0 2.1
-
(1998) pouze session a entity beans zaveden XML deployment descriptor vylepšené entity beans 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:
•
Session Bean musí implementovat jedno (nebo obě) rozhraní, opět anotacemi:
•
@Stateless @Stateful
@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