Architektura EJB 2.x

Toto téma nabízí přehled nejvyšší úrovně o architektuře distribuovaných komponent, která je definována ve specifikaci architektury Sun Microsystems Enterprise JavaBeans™ (EJB) verze 2.x.

Kompletní specifikace a popis technologie Enterprise JavaBeans jsou k dispozici na webu java.sun.com.

Objekty enterprise bean nabízejí vývojářům aplikací několik výhod:

Objekty enterprise bean
Objekt enterprise bean je nevizuální komponenta distribuované, transakčně orientované podnikové aplikace. Objekty enterprise bean se zpravidla implementují v kontejnerech EJB a spouštějí na serverech EJB. Lze je upravit změnou jejich deskriptorů implementace a můžete je sestavit spolu s jinými objekty bean, a tak vytvořit nové aplikace. Existují tři typy objektů enterprise bean: Objekty typu session bean, objekty entity bean a objekty typu message-driven bean. Objekty typu session bean a objekty typu message-driven bean představují komponenty s vysokou úrovní granularity určené k modelování obchodních procesů, zatímco objekty entity bean se používají k modelování jemněji strukturovaných datových objektů.
  • Objekty typu session bean: Objekty typu session bean jsou netrvalé objekty enterprise bean. Mohou být buď stavové, nebo nestavové.
    • Objekty typu stateful session bean: Jednají jménem jediného klienta a uchovávají informace o relaci pro specifického klienta (neboli dialogový stav), a to v rámci několika volání metod a transakcí. Existují po dobu trvání jediné relace typu klient/server.
    • Nestavové objekty typu session bean: Neuchovávají dialogový stav a jsou sdíleny svým kontejnerem, aby ošetřovaly více požadavků od více klientů.
  • Objekty entity bean: Objekty entity bean jsou objekty enterprise bean, které obsahují trvalá data a které lze ukládat do různých trvalých datových úložišť. Každý objekt entity bean si nese svoji vlastní identitu. Objekty entity bean, které spravují svoji vlastní perzistenci se označují jako objekty entity bean s perzistencí spravovanou objektem bean (BMP). Objekty entity, bean které delegují svoji perzistenci na svůj kontejner EJB se označují jako objekty entity bean s persistencí spravovanou kontejnerem (CMP).
  • Objekt typu message-driven bean: Objekty typu message-driven bean jsou objekty enterprise bean, které přijímají a zpracovávají zprávy služby JMS. Na rozdíl od objektů session bean nebo entity bean, objekty typu message-driven bean nemají žádné rozhraní. Lze k nim přistupovat pouze prostřednictvím systému zpráv a neudržují žádný dialogový stav. Objekty typu message-driven bean umožňují asynchronní komunikaci mezi frontou a listenerem a poskytují oddělení mezi zpracováním zpráv a obchodní logikou.
Pohled vzdáleného klienta
Specifikace pohledu vzdáleného klienta je k dispozici od EJB 1.1. Pohled vzdáleného klienta z objektu enterprise bean je nezávislý na umístění. Klient spuštěný ve stejném JVM jako instance objektu bean používá stejné rozhraní API k přístupu k objektu bean jako klient spuštěný na odlišném JVM na stejném nebo odlišném počítači. Pohled vzdáleného klienta se skládá ze dvou rozhraní:
  • Vzdálené rozhraní: Vzdálené rozhraní určuje vzdálené obchodní metody, které může klient volat na objektu enterprise bean.
  • Vzdálené domovské rozhraní: Vzdálené domovské rozhraní určuje metody používané vzdálenými klienty k vyhledání, vytvoření a odebrání instancí tříd objektů enterprise bean.
Pohled lokálního klienta
Specifikace pohledu lokálního klienta je k dispozici v EJB verze 2.0 nebo vyšší. Na rozdíl od pohledu vzdáleného klienta je pohled lokálního klienta na objekt bean závislý na umístění. Přístup pohledu lokálního klienta k objektu enterprise bean vyžaduje, aby jak lokální klient, tak objekt enterprise bean zajišťující pohled lokálního klienta, byly ve stejném JVM. Pohled lokálního klienta tudíž neposkytuje transparentnost umístění, kterou poskytuje pohled vzdáleného klienta. Lokální rozhraní a lokální domovská rozhraní poskytují podporu pro lehký přístup z objektů enterprise bean, kde jsou lokální klienti. Objekty typu session bean a entity bean mohou být těsně spřaženy se svými klienty, což umožňuje přístup bez režie typicky přidružené k volání vzdálených metod. Pohled lokálního klienta se skládá ze dvou rozhraní:
  • Lokální rozhraní: Lokální rozhraní je odlehčenou verzí vzdáleného rozhraní, ale zde je určeno pro lokální klienty. Obsahuje metody obchodní logiky, které může volat lokální klient.
  • Lokální domovské rozhraní: Lokální domovské rozhraní určuje metody používané lokálními klienty k vyhledání, vytvoření a odebrání instancí tříd objektů enterprise bean.
Pohled klienta webové služby
Ve specifikaci EJB 2.1 zavedla architektura EJB podporu pro webové služby. Klient objektu session bean může být klientem webové služby. Klient webové služby může využívat pohledu klienta webové služby objektu typu stateless session bean, který má odpovídající rozhraní SEI.
Rozhraní SEI
Rozhraní SEI pro nestavový objekt session bean odkrývá funkčnost objektu session bean jako koncový bod webové služby. Dokument WSDL (Web Service Description Language, popisovací jazyk webových služeb) k webové službě popisuje webovou službu jako sadu koncových bodů, které pracují se zprávami. Dokument WSDL může zahrnovat rozhraní SEI objektu typu stateless session bean jako jeden ze svých koncových bodů. Stávající nestavový objekt session bean lze upravit tak, aby obsahoval pohled klienta webové služby, nebo lze rozhraní SEI mapovat ze stávajícího WSDL tak, aby poskytovalo správné rozhraní.

Pohled klienta webové služby je nezávislý na umístění a lze k němu přistupovat prostřednictvím vzdálených volání.

Soubor JAR klienta EJB
Soubor JAR klienta EJB je nepovinný soubor JAR, jenž může obsahovat klientská rozhraní, která klientský program potřebuje k použití klientského pohledu na objekty enterprise bean obsažené v souboru JAR EJB. Pokud se u modulu EJB rozhodnete nevytvářet soubor JAR klienta EJB, všechny třídy klientského rozhraní budou v souboru EJB JAR. Ve výchozím nastavení pracovní plochy vytváří projekty souboru JAR klienta EJB pro každý odpovídající projekt EJB.
Kontejner EJB
Kontejner EJB je běhové prostředí, které spravuje jeden nebo více objektů enterprise bean. Kontejner EJB spravuje životní cyklus objektů enterprise bean, koordinuje distribuované transakce a implementuje zabezpečení objektu. Obecně každý kontejner EJB je vybaven serverem EJB a obsahuje sadu objektů enterprise bean, které na serveru běží.
Deskriptor implementace
Deskriptor implementace je soubor XML, který je v balíku s objekty enterprise bean v souboru JAR EJB nebo v souboru EAR. Obsahuje metadata popisující obsah a strukturu objektů enterprise bean a běhových transakcí a informací o zabezpečení pro kontejner EJB.
Server EJB
Server EJB je proces vysoké úrovně nebo aplikace poskytující běhové prostředí na podporu spouštění serverových aplikací, které používají objekty enterprise bean. Server EJB poskytuje pojmenovací službu přístupnou z JNDI, spravuje a koordinuje přidělení prostředků klientským aplikacím, zajišťuje přístup k systémovým prostředkům a poskytuje transakční služby. Server EJB může být poskytován, např., databázovým nebo aplikačním serverem.