Technologie Enterprise Java Beans doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213

Slides:



Advertisements
Podobné prezentace
Stránka 1, © Vema, a. s.. Stránka 2, © Vema, a. s. Podnikové aplikace  Integrovaný podnikový systém (Integrated Business System):  komplex aplikací.
Advertisements

Úvod do platformy Java EE
Ing. Jan Mittner MySQL Workbench 2. Základy práce s databází 3. Subversion 2.
Přednáška č. 1 Úvod, Historie zpracování dat, Základní pojmy
 Informací se data a vztahy mezi nimi stávají vhodnou interpretací pro uživatele, která odhaluje uspořádání, vztahy, tendence a trendy  Existuje celá.
Přednáška č. 5 Proces návrhu databáze
Uživatelská rozhraní Uživatelská rozhraní 9. cvičení.
IISPP ■ pojem definován v letech v rámci přípravy výzkumných záměrů NPÚ na roky ■ dlouhodobý projekt na vybudování nového komplexního.
© 2003 FSS, spol. s r.o. Všechna práva vyhrazena.1 e - Insurance Management System Financial Support Services Struktura systému.
Databáze Jiří Kalousek.
State. State – kontext a problém Kontext  chování objektu má záviset na jeho stavu, který se typicky mění za běhu Neflexibilní řešení  metody obsahují.
Páté cvičení Dědičnost Interface Abstarktní třídy a metody
Adresářová služba Active directory
Výhody užití architektury ITS ve veřejné osobní dopravě
Vývoj aplikací pro SharePoint
Moderní vzdělávací systémy vyšších a vysokých škol neuniverzitního typu Ing. Daniel CHOC CCA Group a.s.
ITIL Information Technology Infrastructure Library.
Datové schránky ve velké společnosti SharePoint partenrská konference Microsoft Pavel Salava Mainstream technologies,
Objektové programování
Rozšíření jednouživatelské verze IS na víceuživatelskou Prezentace Diplomové práce Autor : Libor Tomášek Spoluautoři : Pobucký M., Drábek L. Vedoucí :
Jedenácté cvičení Vlákna. Java cv112 Vlákna Operační systém Mutitasking – více úloh se v operačním programu vykonává „současně“ Java Multithreading -
Systémy pro podporu managementu 2 e-business a podpora rozhodování.
Metainformační systém založený na XML Autor: Josef Mikloš Vedoucí práce: Ing. Jan Růžička, Ph.D. V/2004.
Informatika pro ekonomy II přednáška 10
Databázové systémy Přednáška č. 6 Proces návrhu databáze.
VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - PŘEDNÁŠKA Zbyněk Šlajchrt Část 4.
Dokumentace objektů a zveřejnění funkcí
Představujeme Ensemble Michal Tomek. Na tomto obrázku vidíte, co systému Ensemble chybí:
KIV/PPA1 cvičení 8 Cvičící: Pavel Bžoch. Osnova cvičení Objekty v Javě Třída Konstruktor Metody Metody a proměnné třídy x instance Program sestávající.
Návrhový vzor Factory v JAVA API Martin Kot Katedra informatiky VŠB – Technická univerzita Ostrava
Základní principy řešení a využití ERP aplikací
Copyright (C) 2000 Vema, a. s.1 V3 klient Michal Máčel Provozní integrace G2, HR/Win a internetu.
organizační struktury Implementace EOS III na Olomouckém kraji Pro:Krajský rok informatiky 2005 Autor:Jan Kadlec Datum:
Metodika objektového přístupu při tvorbě překladačů. Marek Běhálek Informatika a aplikovaná matematika FEI VŠB-TU Ostrava.
Česko a Slovensko, výhledy do budoucnosti Michal Tomek – InterSystems BV.
Technické řešení Mapových služeb Portálu veřejné správy Jiří Kvapil.
JADEGen Nástroj pro generování chování z prostředí Agent Studio Implementace (ver0.1)
2008 Fakulta elektrotechniky a informatiky VŠB – TECHNICKÁ UNIVERZITA OSTRAVA.
ISSS IS HN/SS Softwarová architektura informačního systému hmotné nouze a sociálních služeb Jindřich Štěpánek
Selektivní šifrování dat v databázích
SOA = Architektura orientovaná na služby
Správní a dopravně správní evidence - IISSDE RNDr. Jiří Malátek Zástupce ředitele OIVS MV
Přístup do IS z mobilních zařízení Tomáš Tureček Katedra Informatiky FEI VŠB-TU Ostrava.
Obhajoba projektu PA165 Půjčovna stavebních strojů
Miroslav Skokan IT Security Consultant
OPERAČNÍ SYSTÉMY.
Sales & Consulting IGS, Czech Republic © 2005 IBM Corporation Optimalizace a sdílení informací ve státní správě Pavel Hrdlička.
PA165: Úvod do Java EE Petr Adámek.
Service layer. Service layer – úvod Problém  Vytvoření API aplikace  Odstínění bussiness logiky a transakčního chování od zbytku aplikace  Kam s aplikační.
 KOMIX s.r.o. Použití webových služeb v komunikaci s centrálními registry státní správy příspěvek do sborníku konference ISSS/LORIS/V4DIS.
VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - CVIČENÍ Zbyněk Šlajchrt Část 7.
Strategy. Motivace Různé algoritmy pro stejnou akci Hromada kódu v mnoha podmínkách Důsledky  Komplexnost  Špatná čitelnost  Těžká správa kódu  Těžka.
Proxy. Popis  Klient má přístup k nějakému objektu  Potřebujeme tento přístup ošetřit, aniž bychom přidělali klientovi práci Kontrola přístupu Vzdálený.
Databázové systémy Úvod, Základní pojmy. Úvod S rozvojem lidského poznání roste prudce množství informací. Jsou kladeny vysoké požadavky na ukládání,
MASSIV Middleware pro tvorbu online her. Obsah prezentace Úvod Prostřeky poskytované Massivem Využití jádra Massivu v Demu Zhodnocení projektu Prezentace.
Základní problémy realizace eLearningového systému Roman Malo Ústav informatiky PEF MZLU v Brně.
13.přednáška – Elektronické zásobování Ing. Jiří Zmatlík, Ph.D. ČVUT, Fakulta elektrotechnická Katedra ekonomiky, manažerství a humanitních věd.
B2B Systémová integrace Jiří Macháček. Osnova ► Úvod ► Terminologie ► Parametry – požadavky ► Způsoby integrace ► Web-Services ► Příklady.
Business Activity Monitoring Jiří Kolář. Pojmy a zkratky ● SOA ● Servis Oriented Architecture ● BPMS ● Business Process Management System ● BAM ● Business.
VÝVOJ PODNIKOVÝCH APLIKACÍ NA PLATFORMĚ JAVA - CVIČENÍ Zbyněk Šlajchrt Část 5.
Proxy. Proxy poskytuje bariéru mezi klientem a reálnou implementací.
Web services – když si Java sedne s M$ na kus řeči Ing. Petr Přibyl CCA Group a.s.
as4u advanced system for you
INTEGRACE řešení základních registrů
Zkušenosti s nasazením J2EE aplikací na AS GlassFish
Návrhový vzor Flyweight
Redakční systém s integrací webových služeb
Informatika pro ekonomy přednáška 8
Přednášky z Distribuovaných systémů
Komunikační návrhové vzory
Transkript prezentace:

Technologie Enterprise Java Beans doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 /

Enterprise Java Beans2 Obsah přednášky Popis technologie EJB J2EE aplikace Typy komponent Entity Beans Session Beans Message-Driven Beans Java Messaging Service (JMS) Závěr

Enterprise Java Beans3 Enterprise Java Beans (EJB) Specifikace architektury pro vý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

Enterprise Java Beans4 EJB 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í

Enterprise Java Beans5 EJB kontejner transakceperzistencebezpečnost Bean callback metody EJBContext, JNDI ENC klient požadavek Zdroj:

Enterprise Java Beans6 Aplikační komponenty v J2EE 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

Enterprise Java Beans7 Aplikační komponenty v J2EE Databáze EJB EJB kontejner Webovýkontejner Webovýprohlížeč Klient Kontejnerklienta HTMLstránka Webovýprohlížeč servlet Aplet prezentace prezentačnílogika aplikačnílogika datovávrstva EJB Zdroj: Z+N

Enterprise Java Beans8 Struktura aplikace J2EE 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/application.xml soubor.ear

Enterprise Java Beans9 Role při 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

Enterprise Java Beans10 Role při vývoji EJB aplikací Dodavatel EJB serveru operační systém (Sun, IBM, HP) middleware technologie (Borland, IONA) databázový systém (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

Enterprise Java Beans11 Vlastnosti 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

Enterprise Java Beans12 Typy komponent EJB 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

Enterprise Java Beans13 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

Enterprise Java Beans14 Kontrakt mezi klientem a komponentami EJB Třídní rozhraní (Home Interface) javax.ejb.EJBHome, javax.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

Enterprise Java Beans15 Kontrakt mezi klientem a komponentami EJB Rozhraní komponenty javax.ejb.EJBObject, javax.ejb.EJBLocalObject definice business metod implementováno třídou, kterou generuje kontejner udržování jednoznačné identity instance (generovaná, primární klíč)

Enterprise Java Beans16 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, ejbFind..., ejbRemove); implementuje callback metody z rozhraní javax.ejb.SessionBean javax.ejb.EntityBean javax.ejb.MessageDrivenBean

Enterprise Java Beans17 Kontrakt mezi komponentami a kontejnerem EJB Kontejner: poskytuje přístup ke kontextu instance komponenty: javax.ejb.SessionContext, javax.ejb.EntityContext, javax.ejb.MessageDrivenContext; poskytuje JNDI kontext; řídí transakce, bezpečnost, ošetření výjimek; zajišťuje správu stavu komponenty (CMP).

Enterprise Java Beans18 Session Beans zapouzdření logiky do neperzistentních objektů možnost odstranění instance (timeout, pád kontejneru, systémová výjimka) možnost dočasného uložení stavu stavové (state) / bezstavové (stateless) zachování stavu po dobu existence relace nejsou určeny pro sdílení více klienty serializace přístupu

Enterprise Java Beans19 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

Enterprise Java Beans20 Vytvoření instance komponenty Získání reference na třídní rozhraní import javax.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(…); // local Vytvoření instance A a = aHome.create (parametry)

Enterprise Java Beans21 Příklad – třídní rozhraní // ScitackaHome.java import java.rmi.RemoteException; import javax.ejb.*; public interface ScitackaHome extends EJBHome { public Scitacka create() throws RemoteException, CreateException; }

Enterprise Java Beans22 Příklad – rozhraní komponenty // Scitacka.java import java.rmi.RemoteException; import javax.ejb.*; public interface Scitacka extends EJBObject { public int secti(int a, int b) throws RemoteException; }

Enterprise Java Beans23 Příklad – třída komponenty // ScitackaBean.java import javax.ejb.*; 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; }

Enterprise Java Beans24 Příklad – klient // Test.java import javax.naming.*; import javax.rmi.PortableRemoteObject; 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(); }

Enterprise Java Beans25 Entity Beans 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)

Enterprise Java Beans26 Třídní rozhraní Vytvoření nového objektu create<>(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

Enterprise Java Beans27 Příklad // OsobaHome.java import java.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; }

Enterprise Java Beans28 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-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

Enterprise Java Beans29 Příklad – rozhraní komponenty import java.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; }

Enterprise Java Beans30 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

Enterprise Java Beans31 Message-Driven Beans 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

Enterprise Java Beans32 Java Messaging Service (JMS) 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

Enterprise Java Beans33 Způsoby komunikace v JMS Komunikace bod-bod (point-to-point) fronty zpráv (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/subscribe) zpráva adresována nějakému cíli (topic) distribuce zprávy všem předplatitelům

Enterprise Java Beans34 Vztahy mezi JMS objekty Connection MessageProducerMessageConsumer Session Message ConnectionFactoryCílovýkanál vytváří vytváří vytvářívytváří vytváří zasílá zprávy přijímá zprávy MessageTextMessage... QueueSessionTopicSession QueueConnectionTopicConnection QueueTopic QueueSenderTopicPublisher QueueReceiverTopicSubscriber QueueConnectionFactoryTopicConnectionFactory

Enterprise Java Beans35 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)

Enterprise Java Beans36 Závěr 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

Enterprise Java Beans37 Další zdroje informací 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