Enterprise JavaBeans: Porovnání verzí

Z FI WIKI
Přejít na: navigace, hledání
m (Stránka EJB3 přemístěna na stránku Enterprise JavaBeans: správný název)
(Externí zdroje)
Řádka 73: Řádka 73:
  
 
== Externí zdroje ==
 
== Externí zdroje ==
* Rima Patel Sriganesh, Gerald Brose, Micah Silverman: Mastering Enterprise JavaBeans 3.0. Wiley 2006. ISBN 0471785415. [http://www.amazon.com/gp/product/0471785415/]. Knihu je možné zdarma stáhnout na  adrese http://www.theserverside.com/tt/books/wiley/masteringEJB3/index.tss. (Kniha se věnuje J2EE 1.4 a EJB 2.1)
+
* Rima Patel Sriganesh, Gerald Brose, Micah Silverman: Mastering Enterprise JavaBeans 3.0. Wiley 2006. ISBN 0471785415. [http://www.amazon.com/gp/product/0471785415/]. Knihu je možné zdarma stáhnout na  adrese http://www.theserverside.com/tt/books/wiley/masteringEJB3/index.tss.  
 
* http://java.sun.com/javaee/5/docs/tutorial/doc/
 
* http://java.sun.com/javaee/5/docs/tutorial/doc/
 
* http://www.theserverside.com/
 
* http://www.theserverside.com/
Řádka 80: Řádka 80:
  
 
=== Design patterns, Best practices ===
 
=== Design patterns, Best practices ===
* Deepak Alur, Dan Malks, John Crupi: Core J2EE Patterns: Best Practices and Design Strategies, Second Edition. Prentice Hall PTR, 2003. ISBN 0131422464. [http://www.amazon.com/gp/product/0131422464/]. Katalog vzorů je dostupný také na adrese http://java.sun.com/blueprints/corej2eepatterns/index.html.
+
* Deepak Alur, Dan Malks, John Crupi: Core J2EE Patterns: Best Practices and Design Strategies, Second Edition. Prentice Hall PTR, 2003. ISBN 0131422464. [http://www.amazon.com/gp/product/0131422464/]. Katalog vzorů je dostupný také na adrese http://java.sun.com/blueprints/corej2eepatterns/index.html. (Kniha se věnuje J2EE 1.4 a EJB 2.1)
 
* http://www.theserverside.com/books/wiley/EJBDesignPatterns/index.tss
 
* http://www.theserverside.com/books/wiley/EJBDesignPatterns/index.tss
 
* http://www-106.ibm.com/developerworks/java/library/j-ejbcol.html
 
* http://www-106.ibm.com/developerworks/java/library/j-ejbcol.html
 
* http://www.oracle.com/technology/sample_code/tech/java/codesnippet/j2ee/ejbbestpractices/EJB-Best.html
 
* http://www.oracle.com/technology/sample_code/tech/java/codesnippet/j2ee/ejbbestpractices/EJB-Best.html
 +
 +
=== EJB a NetBeans ===
 +
''Pozn.: EJB 3.0 je podporováno až od NetBeans verze 5.5.''
 +
* http://www.netbeans.org/kb/55/ejb30.html
  
 
[[Kategorie:Java]]
 
[[Kategorie:Java]]

Verze z 21. 8. 2006, 08:37

EJB (Enterprise JavaBeans) je standardní komponentní architektura, sloužící pro realizaci aplikační vsrstvy informačního systému. EJB komponenty jsou objekty implementované vývojářem, které zajišťují vlastní aplikační (Business) logiku systému. Komponenty EJB mají své uplatnění zejména ve tří-(a více)-vrstvých distribuovaých aplikacích.

Základní vlastnosti

Cílem je

  • poskytnout robustní infrastrukturu pro vývoj rozsáhlých škálovatelných informačních systémů;
  • umožnit vývojáři se soustředit výhradně na problémovou doménu;
  • umožňit tvorbu znovupoužitelných komponent s využitím různých nástrojů od různých dodavatelů a budování aplikací kombinováním takto vytvořených kompenent;
  • usnadnit distribuci a nasazování aplikací.

Většina standardních služeb (autentizace, autorizace, distribuovanost, transakce, persistence, řízení přístupu ke zdrojům, apod.) jsou zajišťovány kontejnerem a jejich konfigurace probíhá deklarativním způsobem.

Klíčovou vlastností je interoperabilita, a to jak mezi jednotlivými kontejnery a aplikačními servery, tak i s jinými aplikacemi (prostřednictvím rozhraní protokolu IIOP – viz CORBA).

Aktuální verzí specifikace EJB je 3.0, která proti starším verzím (2.1, 2.0, 1.0) přináší výrazné zjednodušení vývoje. Toho je dosaženo zejména přechodem od komponent typy Entity EJB k pojo entitám, nahrazením většiny deployment deskriptorů pomocí anotací a uplatněním techniky dependency injection.

Kontejner

EJB komponenty ke své činnosti vyžadují kontejner, který

  • řídí jejich životní cyklus
  • zajišťuje autentizaci a autorizaci (JAAS)
  • umožňuje distribuci komponent (RMI-IIOP)
  • řídí transakce (JTA)
  • může zajišťovat perzistenci
  • poskytuje přístup ke zdrojům (např. JDBC, JCX, apod.)
  • poskytuje další služby (JMS, JavaMail, JAF, JAXP)

Nastavení atributů různých služeb (transakce, bezpečnost, přístup ke zdrojům apod.) je důsledně odděleno od kódu komponent a řeší se deklarativním způsobem (u starších verzí EJB v popisovačí nasazení neboli deployment deskriptoru, dnes se na většinu věcí používají anotace). To zjednodušuje kód komponent a zároveň umožňuje jejich chování snadno přizpůsobit požadavkům při konkrétním nasazení, aniž by bylo nutné měnit jejich kód.

Pro přístup ke službám, zdrojům a konfuguraci se používá technika nazývaná dependency injection (u starších verzí EJB k tomu sloužilo JNDI.

Mezi nejrozšířenější volně dostupné aplikační servery s EJB kontejnerem patří např. JBoss, Sun Java System Application Server Platform Edition 8 dodávaný s J2EE 1.4 SDK od firmy SUN Microsystems, nebo prozatím vyvíjený Geronimo od Apache Software Foundation.

EJB komponenty

Technologie podporuje následující typy EJB komponent:

  • Entity EJB (tyto komponenty jsou přítomny kvůli zpětné kompatibilitě, nahrazuje je technologie Java persistence, která je oddělená od specifikace EJB);
  • Stateless Session EJB;
  • Stateful Session EJB;
  • Message-Driven EJB;

Role při vývoji EJB aplikací

  • Vývojář komponenty
  • Sestavitel aplikace
  • Odborník na nasazení
  • Dodavatel EJB kontejneru
  • Dodavatel EJB serveru
  • Administrátor

Tvorba EJB komponent

http://java.sun.com/j2ee/1.4/docs/tutorial/doc/EJB.html

Distribuce a nasazení EJB komponent

Komponenty se spolu s popisovači nasazení zabalí do tzv. modulů, které je možné nasadit v prostředí libovolného kontejneru, splňujícím specifikaci EJB. Při nasazení je ovšem nutné aplikaci nakonfigurovat, což se děje prostřednictvím úprav popisovačů nasazení. Většina kontejnerů poskytuje nástroje pro zjednodušení tohoto procesu. Kromě standardizovaných popisovačů nasazení existují ještě popisovače nasazení specifické pro konkrétní kontejner, prostřednictvím něhož se nastavují parametry aplikace specifické pro daný kontejner.

Pro distribuci klientských GUI aplikací prostřednictvím internetu lze s úspěchem využít technologii Java Web Start [1]

Vhodnost použití technologie

Kdy použít EJB

  • Když musí být aplikace škálovatelná
  • Když musí být podporován souběžný přístup a transakce
  • Když bude existovat více různých typů klientů

Kdy nepoužít EJB

  • Když by to byl kanón na vrabce
  • Když nejsou potřeba služby a vlastnosti poskytované touto technologií
  • Vždy je však důležité logicky oddělit aplikační vrstvu od prezentace!!!

Nevýhody EJB

  • Komponenty jsou závislé na kontejneru a jeho API (byť standardizovaném). Existuje snaha vytvářet komponenty tak, aby byly zcela nezávislé na konkrétní technologii (viz. AOP nebo dependency injection).
  • Složitost a náročnost na osvojení – v EJB 3.0 výrazně zredukováno
  • Kontejner má jistou režii (každá abstrakce něco stojí)

Externí zdroje

Design patterns, Best practices

EJB a NetBeans

Pozn.: EJB 3.0 je podporováno až od NetBeans verze 5.5.