5. rész: A Java EE és az Enterprise Bean réteg. Bakay Árpád dr. NETvisor kft (30)

Hasonló dokumentumok
Üdvözli Önöket A PGY3 tantárgy! Bakay Árpád dr. NETvisor kft (30) arpad.bakay@netvisor.hu

A Web réteg architektúrája A JSF web alkalmazás keretrendszer. Bakay Árpád dr. NETvisor kft (30)

Enterprise JavaBeans. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem. Az Enterprise JavaBeans

Enterprise JavaBeans 1.4 platform (EJB 2.0)

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

JAVA webes alkalmazások

A Java EE 5 plattform

Oracle Containers for Java - j2ee alkalmazás szerver funkciók. Molnár Balázs Oracle Hungary

S04-2 Elosztott alkalmazások készítése

Adatkezelés. 11. előadás (Entity Beans)

MVC Java EE Java EE Kliensek JavaBeanek Java EE komponensek Web-alkalmazások Fejlesztői környezet. Java Web technológiák

4. rész: Java Enterprise Edition bevezetı. Bakay Árpád dr. NETvisor kft (30)

6. rész: EJB-k tervezése és implementálása

7. rész: A specifikációtól az implementációig az EJB rétegben

Szoftver Tervezési Dokumentáció. Nguyen Thai Binh

A J2EE fejlesztési si platform (application. model) 1.4 platform. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

DCOM Áttekintés. Miskolci Egyetem Általános Informatikai Tanszék. Ficsor Lajos DCOM /1

Osztott rendszerek, Java EE. Általános bevezető

MVC desktop alkalmazás esetén. MVC Model-View-Controller. eredete: Model View Controller (MVC) elv Java EE Java alapú Web alkalmazások

8. rész: Implementáció JDeveloperben

Junior Java Képzés. Tematika

MVC Java EE Java EE Kliensek JavaBeanek Java EE komponensek Web-alkalmazások Fejlesztői környezet

Java Web technológiák

Tartalom. Az EJB 2.1 problémái Az EJB 3 megoldásai

Osztott alkalmazások fejlesztési technológiái Áttekintés

webalkalmazások fejlesztése elosztott alapon

Bevezető. Servlet alapgondolatok

Web-fejlesztés NGM_IN002_1

JEE tutorial. Zsíros Levente, 2012

Segédanyag: Java alkalmazások gyakorlat

Kommunikáció. Folyamatok közötti kommunikáció. Minden elosztott rendszer alapja

Adatbányászat és Perszonalizáció architektúra

Elosztott rendszerek: Alapelvek és paradigmák Distributed Systems: Principles and Paradigms

Segédanyag: Java alkalmazások gyakorlat

Bevezetés J2EE komponensek Java2EE API-k Web alkalmazások Dokumentáció Fejlesztői környezet. JAVA technológiák - bevezető

Enterprise Java Beans. EJB - Általános bevezető

Stateless Session Bean

Java. Perzisztencia. ANTAL Margit. Java Persistence API. Object Relational Mapping. Perzisztencia. Entity components. ANTAL Margit.

CORBA Áttekintés. Mi a CORBA? OMG and OMA. Ficsor Lajos. Miskolci Egyetem Általános Informatikai Tanszék

Java. Java Message Service. ANTAL Margit. JMS API technológia. ANTAL Margit. Sapientia - EMTE

MVC. Model View Controller

Java Business Integration szolgáltatásalapú architektúra JavaEE környezetben. Simon Géza Zsemlye Tamás

Szoftverarchitektúrák. 12. Sorozat portál (követelmény specifikáció)

Kompozit alkalmazások fejlesztése. IBM WebSphere Portal Server

I. Szakmai törzsanyag

DSD DSD. Egy országos méretű orvosi adatbázissal kapcsolatos informatikai kihívások. Kovács László Pataki Balázs Pataki Máté MTA SZTAKI DSD

Előszó. Bevezetés. Java objektumok leképzése relációs adatbázisokra OJB-vel Viczián István Viczián István

ÜZLETI I TELLIGE CIA - VIZUALIZÁCIÓ

Perzisztencia. ANTAL Margit. Sapientia - EMTE. ANTAL Margit Java technológiák 11. előadás Perzisztencia

Hello World Servlet. Készítsünk egy szervletet, amellyel összeadhatunk két számot, és meghívásakor üdvözlőszöveget ír a konzolra.

Grafikus keretrendszer komponensalapú webalkalmazások fejlesztéséhez

Szolgáltatási szint és performancia menedzsment a PerformanceVisor alkalmazással. HOUG konferencia, 2007 április 19.

SQL Server High Availability

Java servlet technológia. Web alkalmazások. Servlet-et használni érdemes, ha. JSP-t használni érdemes, ha. Servlet-JSP kombináció (MVC) szükséges, ha

Java servlet technológia 1 / 40

The Power To Develop. i Develop

A Java Persistence API PersistenceAPI / 3

Miért ASP.NET? Egyszerű webes alkalmazás fejlesztése. Történet ASP ASP.NET. Működés. Készítette: Simon Nándor


Szervlet-JSP együttműködés

Szerializáció. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Szerializáció / 22

Debreceni Egyetem Informatikai Kar JAVA ENTERPRISE COMPUTING

Multimédiás adatbázisok

Komponens alapú fejlesztés

Java Server Pages - JSP. Web Technológiák. Java Server Pages - JSP. JSP lapok életciklusa

JNDI - alapok. Java Naming and Directory Interface

Biztonság java web alkalmazásokban

Java RMI Áttekintés. A Java RMI. A Java RMI architektúrája. Ficsor Lajos. Általános Infromatikai Tanszék Miskolci Egyetem 1.

Se S r e ial a iza z t a ion o n (in n Ja J v a a v ) a Szerializáció

Java Servlet technológia

EGY NAGYBÓL HÚSZ KISEBB

A TANTÁRGY ADATLAPJA

Lottery. WebLogic JMS, Jersey, JMX, JNDI. Óbudai Egyetem, Java Enterprise Edition Műszaki Informatika szak Labor 8. Bedők Dávid v0.


Web-fejlesztés NGM_IN002_1

R I Szer e i r alizáció.

eseményvezérelt megoldások Vizuális programozás 5. előadás

Webes alkalmazások fejlesztése

Komponens alapú programozás Bevezetés

Nyílt forráskódú irodai programkomponensek vállalati környezetbe való integrációjának vizsgálata és implementációja

A JavaServer Pages (JSP)

ALKALMAZÁS KERETRENDSZER

STANDARD DEVELOPMENT U.L. FACTORY SYSTEMS GROUP IT DEPARTMENT

SQL Server High Availability. Bevezetés az SQL Server magas rendelkezésre állási megoldásaiba

Komponens modellek. 3. Előadás (első fele)

Kommunikáció. 3. előadás

JAVA SE/ME tanfolyam tematika

A TANTÁRGY ADATLAPJA

Java I. A Java programozási nyelv

A WEB programozása - JSP1 dr.gál Tibor őszi félév

WCF, Entity Framework, ASP.NET, WPF 1. WCF service-t (adatbázissal Entity Framework) 2. ASP.NET kliens 3. WPF kliens

Szerver oldali Java programozás /II. 1. óra. Elemkönyvtárak. Elemkönyvtárak használata Saját elemkönyvtár készítése.

Objektum orientáltság alapjai A Java nyelv Fordítás - futtatás

A JavaServer Pages (JSP)

Szolgáltatásintegráció (VIMIM234) tárgy bevezető

Iroda DEMO telepítési útmutató



Bevezetés a Seam keretrendszer használatába

Feltörekvő technológiák: seam, drools, richfaces és társai a JBossban

Átírás:

5. rész: A Java EE és az Enterprise Bean réteg Bakay Árpád dr. NETvisor kft (30) 385 1711 arpad.bakay@netvisor.hu

Java EE Komponensek családfája Java EE Komponens Üzleti logika EJB Container User interface Web container Enterprise Bean (EJB) Web komponens Opcionális Web UI Framework Session Bean Statless v. Stateful Entity Bean Bean Managed Persistence v. Container Managed Persistence BMP/CMP Message driven Bean Servlet JSP Frameworkspecific program item

Java EE komponensek csomagolása és telepítése Alkalmazás telepítése egyetlen file-ban!! egymásba skatulyázott jar (zip) fileok EJB JAR: EJB komponens Interfész, implementáció, segéd osztályok WAR (web archive): Web komponensek Servletek, JSP-k, segéd osztályok EAR (enterprise archive): EJB JAR-ok és WAR-ok tehát egy komplett alkalmazás saját class loader a hierarchiában xml formátumú komponens descriptorok A komponensek fontos tulajdonságai tartlamazza Exportált és importált bean-ek, tranzakciós, security paraméterek, etc. + szerver-specifikus kiegészítı descriptorok az EJB 3.0-ban ez már csak opcionális!

Példa a telepített csomagokra JBOSS App szerver példány App1.ear AandB.jar ABean.class, A.class BBean.class, B.class ejb-jar.xml + jboss.xml C.jar CBean.class, C.class ejb-jar.xml + jboss.xml Gui.war index.jsp main.jsp web.xml + jboss-web.xml application.xml + jboss-application.xml App2.ear SimpleBean.jar SimpleWebApp.war

J2EE alkalmazásfejlesztés - munkafolyamat, szerepek Komponens készítık EJB készítı EJB source (.java) + deployment descriptor (.xml) EJB.class-ok + dd.xml -> EJB komponens (.jar) Web komponens készítı Servlet-ek (.java) + JSP-k (.jsp) + fix content (.html+képek) + deployment descriptor (.xml) servlet.class-ok +.jsp +.html + képek +dd.xml -> web appl. arhívum (.war) Alkalmazás integrátor EJB.jar-ok, és web.war-ok integrálása.jar +.war + appl depl descriptor -> enterprise archívum.ear Alkalmazás telepítı és üzemeltetı Telepíti és felügyeli az alkalmazást egy J2EE futtatókörnyezetbe Üzleti tudás GUI tudás Rendszerintegrátor Operátor, adminisztrátor

Az EJB réteg EJB típusok Az RMI-tıl az EJB-ig EJB technológia értékelése

Ismét: Java EE Komponensek családfája Java EE Komponens Üzleti logika EJB Container User interface Web container Enterprise Bean (EJB) Web komponens Opcionális Web UI Framework Session Bean Statless v. Stateful Entity Bean Message driven Bean Servlet JSP Frameworkspecific program item

Jellemzı EJB architektúra Session Entity Entity DB Message Based JMS message queue

A legegyszerőbb bean fajta: Session Bean Az RMI koncepció továbbfejlesztése Alapötlet: N objektummal M ügyfelet kiszolgálni, N << M Egy bean instance jellemzıen egy kliens Egyszerre mindig csak egy -> szinkronizálás Ha a kliens elengedi vége van Általános üzleti funkciókra, Pl. shoppingcart, ordermanager vagy nem OO jellegő API: pl. arithmetics

Stateful és Stateless Session bean-ek Stateless -- közös használatú Állapot megırzése csak a hívás idejéig Felcserélhetı instance-ok a J2EE szerver egy object pool-ból gazdálkodik A gyakorlatban lényegesen gyorsabb Stateful állapotos Lehet hívások között megırzött állapota de csak amíg valakik fogják a referenciát!!! Többfázisú mőveleteket támogat (conversation/protocol) A Bean instance-ek nem felcserélhetık Aktív és ki-swappelt mód ejbactivate(), ejbpassivate() -> swappelés elı-és utómunkálatok Create-nél akár paraméterezhetı

Normál (remote) és local Bean interfészek és használatuk J2EE / JVM Távoli Kliens RMI calc Container calcbean << EJB >> Remote interface Elınyök: Mobilitás, Izoláció Failover, Load-Balancing Attrs. Lokális Kliens v. Komponens calclocal Operations. Local interface Elınyök: Sebesség Nincs RemoteException

Hagyományos távoli komponens factory patternnel (pl: RMI) <interface> Szamla SzamlaImpl Int egyenleg Kliens <<call>> 5 Int betet(int) Int kivet(int) Int egyenleg() Int betet(int) Int kivet(int) Int egyenleg() 4 Int main() <<call>> <interface> SzamlaFactory SzamlaFactoryImpl <<new>> 2 3 Int createszamla() Int getszamla(int) Int createszamla() Int getszamla(int) <<lookup>> JNDI/RMI Registry <<bind>> 1 void bind(obj, name) obj lookup(name)

EJB architektúra Kliens Int main() 4 <<call>> <<call>> <interface> Szamla Int betet(int) Int kivet(int) Int egyenleg() Az interfészek a Beanbıl generálhatók, és a container implementálja ıket!!!!! <interface> SzamlaHome EJB Container lifecicle, persistence, security transactions SzamlaBean Int egyenleg 2 3 Int create() Int findbyxxx(int) Int betet(int) Int kivet(int) Int egyenleg() ejbcreate() ejbfind() <<lookup>> JNDI Registry void bind(obj, name) obj lookup(name) <<bind>> 1

Milyen szolgáltatást kap a Bean a containertıl? JNDI regisztráció és létesítés Thread reentrancy szigetelés Remote invocation Tranzakciós szigetelés ha kér Hibernálás és felélesztés (stateful bean) Database perzisztencia (entity bean) Authentikáció és authorizáció ha kér Pooling, load balancing (stateles bean) Multi-homing (biztonság!)

Session bean életciklusok Stateless Pl: CurrencyConverter Stateful Pl: shoppingcart

Entity Az objektumok és a relációs rekordok közötti áthidalás elsıdleges eszköze. Entity általába valami passzív fogalmat ír le: számla, ügyfél, áru, vásárlás, stb. Enterprise Bean, persistence szolgáltatással az állapotát adatbázisban tárolja hosszú élető, multi-homed objektum Ki biztosítja az adatbázis-mőveleteket? A Bean írója: Bean-managed persistence BMP A J2EE container: Container Managed P. CMP Oriási változás a 2.0 és 3.1 Entityk között Hibernate rendszer került alkalmazásra

Message-Driven Bean Aszinkron hívásokhoz Pl. SMS-ek feldolgozása Egyetlen metódusa az onmessage(msg) Nem fogjuk használni

Az EJB 2.1 technológia értékelése Elınyök: Tiszta, izolált funkciók EJB design patterneket kell alkalmazni Maximálisan védett komponensek Konkurrencia, tranzakciók, biztonság, high-availability, felügyelet Hátrányok: Néhol túl szigorú architekturális kötöttségek Komoly teljesítmény-problémák Egy beanhez 3-6 file-t kellett megírni.

EJB 3.0 Kevesebb filet kell írni (1 bean- 1 file) Korszerősített perzisztencia réteg Kb. egy éve megjelentek az EJB3- kompatibilis EJB containerek.

Köszönöm a figyelmet!