Obsah přednášky. Technologie. Enterprise Java Beans. Enterprise Java Beans. EJB kontejner. Enterprise Java Beans (EJB)



Podobné dokumenty
Tvorba informačních systémů

Semináˇr Java X J2EE Semináˇr Java X p.1/23

(Enterprise) JavaBeans. Lekce 7

Enterprise Java Beans 3.0

NOVINKY V JEE EJB 3.1. Zdeněk Troníček Fakulta informačních technologií ČVUT v Praze

Distribuované systémy a výpočty

1. Distribuce Javy. 2. Vlastnosti J2EE aplikace. 3. Fyzická architektura J2EE aplikace. Distribuce Javy se liší podle jejího zamýšleného použití:

Softwarové komponenty a Internet

Úvod. Petr Aubrecht (CA) Martin Ptáček (Wincor Nixdorf) Je 10 typů lidí: ti, kteří znají binární kód, a ti, kteří ne.

Technologie Java. Jaroslav Žáček

Architektury informačních systémů

Architektury informačních systémů

RMI Remote Method Invocation

DPKOM_2. Technologie Enterprise JavaBeans Řízení zdrojů a primární služby

Tvorba podnikových aplikací v jazyce JAVA. Josef Pavlíček KII PEF CZU

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU

Tvorba informačních systémů na platformě J2EE Petr Hetmánek Masarykova Univerzita, Fakulta Informatiky, Botanická 68a, Brno

Session Beans. Petr Aubrecht CA. Vtipy budou tentokrát o krizi:

Tvorba informačních systémů

JAVA. Aspekty (AOP) AspectJ

PA165: Úvod do Java EE. Petr Adámek

RMI - Distribuované objekty v Javě

Platforma J2EE. Lukáš Zapletal liberix.cz. Platforma Java 2 Enterprise Edition

Ověřování nahraditelnosti EJB komponent. Pavel Stuna

Java Message Service (JMS) Martin Ptáček, KOMIX s.r.o.

X33EJA Enterprise Java

Technologie Java. Jaroslav Žáček

Vybrané partie z jazyka Java Spring a Enterprise JavaBeans (EJB)

Tvorba informačních systémů

TÉMATICKÝ OKRUH Softwarové inženýrství

KIV/PIA 2013 Jan Tichava

Jini (pronounced GEE-nee) Cvičení 8 - DS 2006

Remote Method Invocation RMI

Použití databází na Webu

Tvorba informačních systémů

Katedra měřicí a řídicí techniky, VŠB - Technická univerzita v Ostravě, tř. 17. listopadu, Ostrava-Poruba, Česká republika

Technologie JavaBeans

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

Tvorba informačních systémů

Michal Krátký, Miroslav Beneš

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Co je nového v Java EE 6

X33EJA Enterprise Java. Petr Šlechta Sun Microsystems

UJO Framework. revoluční architektura beans. verze

Server-side technologie pro webové aplikace

Tvorba informačních systémů

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

Návrhové vzory pro J2EE

Technology Entry form Entry up-to-date? Internal links Faulty internal Possible internal links

Návrhové vzory pro J2EE. Miroslav Beneš

Vytváření a použití knihoven tříd

Spring framework 2.0. Roman Pichlík CZJUG

Aplikace je program určený pro uživatele. Aplikaci je možné rozdělit na části:

Vývoj moderních technologií při vyhledávání. Patrik Plachý SEFIRA spol. s.r.o.

JAVA V RMI Java, letní semestr

Java a J2EE. Cleverlance. Lukáš Marek lukas.marek@cleverlance.com

KTE / ZPE Informační technologie

Úvod do Web Services

VŠB Technická univerzita Ostrava. Fakulta elektrotechniky a informatiky. Katedra informatiky. Enterprise Java Beans historie, současnost a budoucnost

Jalapeño: pekelně ostrá Java persistence v Caché. Daniel Kutáč Senior Sales Engineer

Java a Caché IV: Manipulace s objekty

JAVA RMI Java, letní semestr 2018

Michal Krátký, Miroslav Beneš

Vhodnost nasazení jednotlivých webových architektur, sdílení dat, perzistence, webové služby a REST, asynchronnost, messaging

UAI/612 - Cloudová Řešení. Technologie

SOAP & REST služby. Rozdíly, architektury, použití

Bridge. Známý jako. Účel. Použitelnost. Handle/Body

Platformy / technologie. Jaroslav Žáček jaroslav.zacek@osu.cz

Distribuované systémy a výpočty (14) 7/1/2008

Převod 4GL aplikací do webového prostředí. Ing. Jan Musil, IBM ČR Community of Practice for

Aplikace s grafickým uživatelským rozhraním

Příklad aplikace Klient/Server s Boss/Worker modelem (informativní)

Platformy / technologie. Jaroslav Žáček

Elektronická podpora výuky předmětu Komprese dat

UAI/612 - Cloudová Řešení. Návrh aplikací pro cloud

PLATFORMY / TECHNOLOGIE JAROSLAV ŽÁČEK

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML

Class loader. každá třída (java.lang.class) obsahuje referenci na svůj class loader. Implementace class loaderu

Soketové připojení Klient InetAddress getbyname() UnknowHostException SecurityException Socket getinputstream() getoutputstream() IOException Server

Základy objektové orientace I. Únor 2010

java remote method invocation Kateřina Fricková, Matouš Jandek

Tvorba informačních systémů

X33EJA Web Services. Martin Ptáček, KOMIX s.r.o.

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

Při studiu tohoto bloku se předpokládá, že student je zvládá základy programování v jazyce Java s využitím vývojového prostředí NetBeans.

TÉMATICKÝ OKRUH Softwarové inženýrství

Abstraktní datové typy: zásobník

Komunikace systémů pomocí Hradec Králové

Common Object Request Broker Architecture

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)

Tvorba informačních systémů

1. Programování proti rozhraní

Google Web Toolkit. Martin Šurkovský, SUR března Katedra informatiky

Obsah. 1.1 Cíl projektu Stručná specifikace 2

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Databázové a informační systémy

Transkript:

Obsah přednášky Technologie Miroslav Beneš Popis technologie EJB J2EE aplikace Typy komponent Entity Beans Session Beans Message-Driven Beans Java Messaging Service (JMS) Závěr 2 (EJB) EJB kontejner Specifikace architektury pro vývojv voj a nasazení í distribuovaných transakčních objektových komponent na straně serveru Konvence + sada rozhraní (EJB API) Cíl = zajištění kompatibility mezi produkty různých výrobců komponenty kontejner prostředí, v němž běží komponenty vzdálený přístup bezpečnost transakce souběžný přístup přístup ke zdrojům a jejich sdílení izolace komponent od aplikací nezávislost na dodavateli kontejneru zjednodušení tvorby aplikací 3 4

EJB kontejner Aplikační komponenty v J2EE klient Zdroj: www.jguru jguru.com požadavek Bean transakce perzistence bezpečnost EJBContext,, JNDI ENC callback metody Klienti aplikace samostatné programy s vlastním uživatelským rozhraním Aplety vizuální komponenty spouštěné obvykle v prostředí webového prohlížeče Webové komponenty servlety,, stránky JSP, filtry,... beží obvykle v prostředí webového serveru Komponenty EJB aplikační (business) logika 5 6 Aplikační komponenty v J2EE Struktura aplikace J2EE datová vrstva aplikační logika prezentační Webový logika kontejner prezentace Webový prohlížeč HTML stránka servlet Databáze EJB Webový prohlížeč Aplet EJB kontejner Kontejner klienta EJB Klient Zdroj: : Z+N J2EE modul základní stavební jednotka popsán deskriptorem (Deployment( Descriptor) reprezentován souborem.jar,,.war,.rar. EJB modul, webový modul, modul klienta aplikace, modul pro adaptéry J2EE aplikace deskriptor aplikace /META-INF/ INF/application.xml soubor.ear 7 8

Role přip vývoji EJB aplikací Tvůrce komponent EJB příprava komponent a deskriptorů důraz na znovupoužitelnost Sestavitel aplikace skládá komponenty do větších celků Odborník na nasazení nasazení komponent do konkrétního prostředí konfigurace, příprava zdrojů, bezpečnostní politika 9 Role přip vývoji EJB aplikací Dodavatel EJB serveru operační systém (Sun, IBM, HP) middleware technologie (Borland, IONA) databázový systém (Oracle( Oracle, Sybase) Dodavatel EJB kontejneru nástroje pro nasazení EJB komponent vlastní běhové prostředí pro instance EJB Administrátor systému konfigurace a administrace infrastruktury dohled za běhu aplikace 10 Vlastnosti komponent EJB Typy komponent EJB obsahují aplikační logiku instance se vytváří a spravuje kontejnerem možnost přizpůsobení změnou DD nastavení atributů odděleno od implementace přenositelnost beanů mezi kontejnery možnost práce s beanem bez nutnosti úpravy zdrojového kódu nebo rekompilace Session Beans bezstavové služby stavové objekty v rámci sezení Entity Beans perzistentní objekty spravované uživatelem (BMP) perzistentní objekty spravované kontejnerem (CMP) Message-Driven Beans bezstavové služby volané asynchronně příchodem JMS zpráv 11 12

Typy klientů Lokální klient v rámci stejného stroje JVM přímý přístup ke komponentě efektivnější přístup Vzdálený klient v jiném procesu než komponenta využívá standardní Java RMI rozhraní vyžaduje serializaci / deserializaci Kontrakt mezi klientem a komponentami EJB Třídní rozhraní (Home Interface) ejb.ejbhome, javax.ejb ejb.ejblocalhome vytváření, rušení a vyhledávání instancí implementováno třídami, které vytvoří kontejner referenci získá klient pomocí rozhraní JNDI 13 14 Kontrakt mezi klientem a komponentami EJB Rozhraní komponenty ejb.ejbobject, javax.ejb ejb.ejblocalobject definice business metod implementováno třídou, kterou generuje kontejner udržování jednoznačné identity instance (generovaná, primární klíč) Kontrakt mezi komponentami a kontejnerem EJB Třída komponenty: implementuje business metody, kontejner na ně deleguje volání od klienta; implementuje metody pro vytváření a rušení, případně i vyhledání komponent (ejbcreate( ejbcreate, ejbfind..., ejbremove); implementuje callback metody z rozhraní.sessionbean ejb.entitybean ejb.messagedrivenbean 15 16

Kontrakt mezi komponentami a kontejnerem EJB Kontejner: poskytuje přístup ke kontextu instance komponenty: ejb.sessioncontext, ejb.entitycontext, ejb.messagedrivencontext; poskytuje JNDI kontext; řídí transakce, bezpečnost, ošetření výjimek; zajišťuje správu stavu komponenty (CMP). Session Beans zapouzdření logiky do neperzistentních objektů možnost odstranění instance (timeout( timeout,, pád kontejneru, systémová výjimka) možnost dočasného uložení stavu stavové (state( state) ) / bezstavové (stateless) zachování stavu po dobu existence relace nejsou určeny pro sdílení více klienty serializace přístupu 17 18 Stavové Session Beans vytvoření instance create< >( < >(parametry) pasivace a aktivace instance ejbpassivate() ejbactivate() zrušení instance remove() timeout transakce řízené uživatelem řízené kontejnerem Vytvoření instance komponenty Získání reference na třídní rozhraní import javax.naming naming Context ctx = new InitialContext(); AHome ahome = (AHome)javax.rmi.PortableRemoteObject.narrow( ctx.lookup( java:comp/env/ejb/a, AHome.class); // remote AHome ahome = (AHome)ctx.lookup( AHome)ctx.lookup( ); // local Vytvoření instance A a = ahome.create< >( < >(parametry) 19 20

Příklad třídní rozhraní Příklad rozhraní komponenty // ScitackaHome Home.java // Scitacka.java import java.rmi rmi.remoteexception; import javax.ejb import java.rmi rmi.remoteexception; import javax.ejb public interface ScitackaHome extends EJBHome { public Scitacka create() throws RemoteException, CreateException; public interface Scitacka extends EJBObject { public int secti(int int a, int b) throws RemoteException; 21 22 Příklad třída komponenty // ScitackaBean.java import javax.ejb // Test.java Příklad klient import javax.naming import javax.rmi rmi.portableremoteobject; public class ScitackaBean implements SessionBean { private SessionContext ctx; public ScitackaBean() { public void ejbcreate() throws CreateException { public void ejbremove() { public void ejbactivate() { public void ejbpassivate() { public void setsessioncontext(sessioncontext ctx) ) { this.ctx = ctx; public int secti(int a, int b) { return a+b; public class Test { public static void main(string[] args) ) { try { Context ctx = new InitialContext(); ScitackaHome sh = (ScitackaHome)PortableRemoteObject.narrow( ctx.lookup( java:comp/env/ejb/scitacka ), ScitackaHome.class); Scitacka scitacka = sh.create(); System.out.println(scitacka.secti(123,321)); scitacka.remove(); catch( ( Exception ex ) { ex.printstacktrace(); 23 24

Entity Beans Třídní rozhraní Pohled na perzistentní í entitu obvykle v relační databázi Sdílený přístup více uživatelů Perzistentní identita instance primární klíč přežívá i restart kontejneru Zajištění správy perzistentního stavu Container Managed Persistence (CMP) Bean Managed Persistence (BMP) Vytvoření nového objektu create<>(parametry parametry) Vyhledání existujícího objektu find< >( < >(parametry) A findbyprimarykey(a_pk key) Rušení instance remove(a_pk key) Třídní business metody 25 26 Příklad // OsobaHome.java import java.rmi rmi.remoteexception; import javax.ejb import java.util.collection; public interface OsobaHome extends EJBHome { public Osoba create(string rc,, String jm) throws CreateException, RemoteException; public Osoba findbyprimarykey(string rc) throws FinderException, RemoteException; public Collection findbyjmeno(string jm) throws FinderException, RemoteException; public int getpocetosob() throws RemoteException; Perzistence řízená kontejnerem Abstraktní schéma perzistence atributy řízené kontejnerem vztahy (1:1, 1:N, M:N) součást DD mapování do relačního schématu není součástí specifikace EJB (vendor( vendor-specific DD) Třída beanu deklarována jako abstract implementaci generuje kontejner neobsahuje atributy a vztahy (pouze v DD) přístupové metody public abstract get/set 27 28

Příklad rozhraní komponenty import java.rmi rmi import javax.ejb public interface Osoba extends EJBObject { public String getrc() throws RemoteException; public String getjmeno() throws RemoteException; public void setjmeno(string jmeno) throws RemoteException; Perzistence řízená komponentou Přístup k datům implementuje třída komponenty ejbcreate< >, ejbremove ejbfind< > ejbload, ejbstore Vztahy nejsou definovány v DD Možné přístupy: udržování celého stavu objektu v instanci udržování jen některých atributů instance svůj stav neudržuje 29 30 Message-Driven Beans Java Messaging Service (JMS) Nově definovány specifikací EJB 2.0 Volají se asynchronně jako výsledek přijetí JMS zpráv nemají rozhraní pro klienty metoda onmessage(message msg) Neudržují si stav týkající se klienta Všechny instance jsou ekvivalentní příchozí požadavek může zpracovat libovolná instance Systém pro zasílání zpráv Vlastnosti: minimální vazba komunikujících aplikací asynchronnost spolehlivost Prvky architektury JMS JMS poskytovatel součást J2EE produktu Klienti (JMS nebo nativní) Zprávy Administrované objekty destinations, connection factories 31 32

Způsoby komunikace v JMS Vztahy mezi JMS objekty Komunikace bod-bod (point-to to-point) fronty zpráv (queues( queues) zpráva adresována do jedné fronty příjemce si vybírá zprávy z fronty příjemce potvrzuje úspěšné přijetí zprávy Producent/předplatitel (publish( publish/subscribe) zpráva adresována nějakému cíli (topic( topic) distribuce zprávy všem předplatitelům 33 Connection Factory vytváří Connection QueueConnection TopicConnection QueueConnectionFactory TopicConnectionFactory QueueSender TopicPublisher vytváří zasílá zprávy Message Producer vytváří Cílový kanál Session vytváří Message přijímá zprávy Message Consumer vytváří Queue Topic QueueReceiver TopicSubscriber QueueSession TopicSession Message TextMessage... 34 Závěr Závěr Důvody k nasazení J2EE přenositelnost (74 %) otevřenost standardu (28 %) škálovatelnost (24 %) snadnost vývoje (22 %) výkon (16 %) Problémy nasazení J2EE překročení plánované doby vývoje (22/50) překročení rozpočtu na projekt (23/50) Největší problémy při vývoji J2EE aplikací nedostatečná zkušenost s podobnými projekty (24 %) změny ve specifikaci (22 %) nezvládnuté řízení projektu vývoje (20 %) Spokojenost s volbou: 92 % zákazníků Zdroj: Forrester Research,, červenec 2001, Z+N 35 36

Další zdroje informací www.jguru.com Enterprise JavaBeansTM Technology Fundamentals Short Course Z+N Zelený, J., Nožička, J.: Komponentní architektury COM+, CORBA, EJB. BEN technická literatura, Praha, 2002, ISBN 80-7300 7300-057-1 37