Architektura EJB

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).

Kompletní specifikace a popis technologie Enterprise JavaBeans je k dispozici na webové stránce 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 přizpůsobit 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 session bean, objekty entity bean a objekty typu message-driven bean.
  • Objekty session bean: Objekty session bean jsou netrvalé objekty enterprise bean. Mohou být buď stavové, nebo nestavové. Stavový objekt session bean jedná jménem jediného klienta a uchovává informace o relaci pro konkrétního klienta (neboli dialogový stav), a to v rámci několika volání metody a transakcí. Existuje po dobu trvání jedné relace klient/server. V porovnání s tím nestavový objekt session bean žádný dialogový stav neuchovává. Nestavové objekty session bean 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 nazývají objekty entity bean s persistencí spravovanou objektem bean (BMP). Objekty entity bean, které delegují svoji perzistenci na svůj kontejner EJB, se nazývají objekty entity bean s persistencí spravovanou kontejnerem (CMP).
  • Objekty 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 prvkem listener 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 dostupná počínaje 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.
  • 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 nalezení, 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 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 lehkému přístupu z objektu enterprise bean, kde jsou lokální klienti. Objekty session bean a entity bean mohou být pevně spojeny se svými klienty, což umožňuje přístup bez zatížení, které se zpravidla pojí s dálkovým voláním metod.
  • Lokální rozhraní: Lokální rozhraní je odlehčená verze vzdáleného rozhraní, avšak 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 nalezení, 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 nestavového objektu session bean, který má odpovídající rozhraní koncových služeb.
Rozhraní koncových služeb
Rozhraní koncových služeb 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 množinu koncových bodů, které pracují se zprávami. Dokument WSDL může zahrnovat rozhraní koncových služeb nestavového objektu 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í koncových služeb 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, který může obsahovat klientská rozhraní, která klientský program potřebuje k použití klientského pohledu na objekty enterprise bean, které jsou obsaženy v souboru EJB JAR. Pokud se u modulu EJB rozhodnete soubor JAR klienta EJB nevytvářet, všechny třídy klientského rozhraní budou v souboru EJB JAR. Ve výchozím nastavení vytváří projekty JAR klienta EJB pro každý odpovídající projekt EJB pracovní plocha.
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. Každý kontejner EJB je obecně 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 EJB JAR 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, která poskytuje 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 rozhraní 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říklad databázovým nebo aplikačním serverem.