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

Hasonló dokumentumok
Enterprise JavaBeans 1.4 platform (EJB 2.0)

A Java EE 5 plattform

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

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

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

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

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

A Java Persistence API PersistenceAPI / 3

JEE tutorial. Zsíros Levente, 2012

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

Komponens alapú programozás Bevezetés

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

és az instanceof operátor

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

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

Bevezető. Servlet alapgondolatok

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

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

Segédanyag: Java alkalmazások gyakorlat

Segédanyag: Java alkalmazások gyakorlat

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

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 webes alkalmazások

Széchenyi István Egyetem. Programozás III. Varjasi Norbert

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

Enterprise JavaBeans fejlesztési példa

Enterprise JavaBeans fejlesztési példa

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

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

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

Interfészek. PPT 2007/2008 tavasz.

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

OOP: Java 8.Gy: Abstract osztályok, interfészek

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

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

Programozási nyelvek Java

Már megismert fogalmak áttekintése

Áttekintés. Tartalom. Mi is az a Bean?

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

Java Remote Method Invocation API

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

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

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

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

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

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

Eseménykezelés. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor.

ADATBÁZIS-KEZELÉS - BEVEZETŐ - Tarcsi Ádám, ade@inf.elte.hu

Java Web technológiák

Osztálytervezés és implementációs ajánlások

Osztálytervezés és implementációs ajánlások

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

Abstract osztályok és interface-ek. 7-dik gyakorlat

Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban

Biztonság java web alkalmazásokban

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

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

Eseményvezérelt alkalmazások fejlesztése II 12. előadás. Objektumrelációs adatkezelés (ADO.NET) Giachetta Roberto

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

A JavaServer Pages (JSP)

Célkitűzések Az Oracle10 g felépítésének, használatának alapszíntű megismerése

Stateless Session Bean

Excel ODBC-ADO API. Tevékenységpontok: - DBMS telepítés. - ODBC driver telepítése. - DSN létrehozatala. -Excel-ben ADO bevonása

JNDI - alapok. Java Naming and Directory Interface

Adatbázis rendszerek I

Webes alkalmazások fejlesztése 10. előadás. Webszolgáltatások tesztelése (ASP.NET Core) Cserép Máté

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

Programozás III KIINDULÁS. Különböző sportoló típusok vannak: futó, magasugró, focista, akik teljesítményét más-más módon határozzuk meg.

Alkalmazás technológiai frissítés migrációs és üzemeltetési tapasztalatok

Web-fejlesztés NGM_IN002_1

Helyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni?

OOP és UML Áttekintés

S01-7 Komponens alapú szoftverfejlesztés 1

Programozási nyelvek Java

Flash és PHP kommunikáció. Web Konferencia 2007 Ferencz Tamás Jasmin Media Group Kft

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

A JavaServer Pages (JSP)

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK

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

Objektumelvű programozás

JAVA SE/ME tanfolyam tematika

R I Szer e i r alizáció.

A JavaServer Pages (JSP)

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.

Osztályok. 4. gyakorlat

Java RMI Áttekintés. Miskolci Egyetem Általános Informatikai Tanszék. Utolsó módosítás: Ficsor Lajos. javarmi / 1

ELOSZTOTT ALKALMAZÁSOK TERHELÉSTESZTELÉSE ÉS MENEDZSMENTJE

Univerzális munkafolyamat szimulátor

Java I. A Java programozási nyelv

Párhuzamos és Elosztott Rendszerek II

JAVA PROGRAMOZÁS 2.ELŐADÁS

Komponensek együttműködése web-alkalmazás környezetben. Jónás Richárd Debreceni Egyetem T-Soft Mérnökiroda KFT

Metamodellezés. Simon Balázs BME IIT, 2011.

Programozási nyelvek Java

PHP II. WEB technológiák. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) PHP II / 19

ANDROID ALKALMAZÁSFEJLESZTÉS

OOP #14 (referencia-elv)

XML adatkezelés I. Az SAX szabvány. Dr. Kovács László Miskolci Egyetem Általános Informatikai Tanszék. XML adatok kezelési lehetőségei

Java felhasználói felület

Java II. I A Java programozási nyelv alapelemei

Átírás:

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

Az Enterprise Javabeans Az Enterprise JavaBeans (EJB) server oldali komponens, amely Az üzleti logika valamely elemének reprezentációja Egy konténerben fut A konténer szolgáltatásokat biztosít a bean számára tranzakciókezelés perzisztencia Biztonsági funkciók A kliens soha nem közvetlenül az EJB-vel van kapcsolatban, hanem a konténerrel Az Enterprise JavaBeans EJB / 2

A kliens és az EJB kapcsolata Az Enterprise JavaBeans EJB / 3

Az EJB részei Több file, amelyek JAR file-ba vannak foglalva Deployment descriptor (telepítés leíró) XML file, információkat tartalmaz a bean-ről. Például Perzisztencia fajtája Tranzakció fajtája Egy segédprogrammal állítható elő Az Enterprise JavaBeans EJB / 4

Interface-ek Az EJB részei (folyt.) Remote interface, amely a bean "hasznos" funkcióinak elérési pontja Home interface, amely a bean életciklusát kezeli A fentiek lokálisan elérhető változatai Az interface-eket implementáló bean osztály Segítő osztályok, amelyek a bean osztály implementálásához szükségesek (adatok, kivételek stb.) Az Enterprise JavaBeans EJB / 5

Elnevezési konvenció Szokásos az alábbi elnevezési konvenció használata: Item Enterprise bean name EJB JAR display name Enterprise bean class Home interface Remote interface Local home interface Local interface Syntax <name>ejb <name>jar <name>bean <name>home <name> Local<name>Home Local<name> Example AccountEJB AccountJAR AccountBean AccountHome Account LocalAccountHome LocalAccount Az Enterprise JavaBeans EJB / 6

A session Bean Egy egyszerű kliens kérést reprezentál a szerveren Elválasztja a klienst a szerver által végzett bonyolultabb tevékenységektől Általában egy klienst tud kiszolgálni egyszerre Ha a kliens terminálódik, a bean is megszűnik Ha a szerver leáll, a bean elvész Két fajtája van: Stateful (állapottal rendelkező) session bean Stateless (állapot nélküli) session bean Az Enterprise JavaBeans EJB / 7

Stateful session bean Megőrzi a kliens egyes hívásai között az adatokat Ha a szervernek memóriát kell felszabadítania, a bean-t el kell mentenie, majd szükség esetén visszaállítania Az Enterprise JavaBeans EJB / 8

Stateful session bean életciklusa Kliens hívja Konténer hívja Memóriában van Háttértáron van Az Enterprise JavaBeans EJB / 9

Stateless session bean Semmilyen klienssel kapcsolatos információt nem őriz meg a kliens hívásai között Csak egy metódus végrehajtásának idejére tud adatokat megőrizni Bármely példány egyenértékű a kliensek számára Metódushívás idején kívül a szerver kisöpörheti a memóriából lementés nélkül Hatékonyabban tud működni Az Enterprise JavaBeans EJB / 10

Stateless session bean életciklusa Kliens hívja Konténer hívja Az Enterprise JavaBeans EJB / 11

Session bean-ek ek használata Egy időben csak egy kliens használja Az állapotát nem, vagy csak rövid időre kell megőriznie Az Enterprise JavaBeans EJB / 12

Stateful session bean használata Vannak a kliens és a bean párbeszédére jellemző adatok Vannak két hívás között megőrzendő adatok A bean valójában összekötő elem a kliens és az alkalmazás más komponense(i) között A bean más EJB-k közötti munkamegosztást vezérel Az Enterprise JavaBeans EJB / 13

Stateless session bean használata Nincs kliens specifikus adat Általános feladatot lát el a kliensek részére Az Enterprise JavaBeans EJB / 14

Az entity bean Egy állandó tárolásra szánt objektum (adatbázis tartalom) reprezentálása a feladata Legfontosabb jellemzői: Perzisztencia: státusa az alkalmazás vagy a szerver élettartamán kívül is megőrződik. Megosztott (shared) elérés: egyszerre több kliens is használhatja. Az adatmódosítás konzisztenciáját a tranzakció kezelés biztosítja. Van egyedi azonosítója (primary key). Kapcsolatok: kapcsolatban állhat más entity beanekkel. Az Enterprise JavaBeans EJB / 15

A perzisztencia biztosítása Egyszerű Java objektumoknál Java Object Serialization Object Relational Mapping Entity Bean-ek esetén: leképezés relációs adatbázisra Egy bean-hez egy tábla tartozik A tábla sorai a bean egy-egy állapotát jelentik A bean adattagjai a tábla mezőinek felelnek meg Egy példányosított entity bean az adatbázis egy view-ja A konténer vagy a bean kódja valósítja meg Az Enterprise JavaBeans EJB / 16

A perzisztencia biztosítása (folyt.) Container-Managed Persistence (CMP) A bean adatbázisra való leképezése a konténer feladata. A leképezendő adatok a perzisztens mezők (persistent fields). A perzisztens mezők nem adattagok a bean osztályban, hanem a telepítés leíróban tárolt "absztrakt sémák". A bean osztály kódjában a perzisztens mezők csak a "getter - setter" metódusaikkal vannak jelen. A konténer a bean-t egy táblára, a perzistens mezőket a tábla mezőire (oszlopaira) képezi le. Az Enterprise JavaBeans EJB / 17

A perzisztencia biztosítása (folyt.) Container-Managed Persistence (CMP) (folyt.) A bean állapotának (perzisztens mezői értékeinek) és az adatbázis táblának a szinkronizálása automatikus. A bean osztály nem tartalmaz adatbázis kezelő kódot. A bean implementációja teljesen független az alkalmazott adatbáziskezelőtől. Az Enterprise JavaBeans EJB / 18

A perzisztencia biztosítása (folyt.) Bean-Managed Persistence (BMP) A bean állapotát a bean osztály adattagjai határozzák meg A bean állapotának adatbázisba mentése a bean feladata, tehát tartalmaz adatbázis kezelő kódot. Az Enterprise JavaBeans EJB / 19

Az entity bean-ek ek használata A bean az üzleti logika egy elemét reprezentálja, nem eljárást vagy folyamatot. A bean állapota perzisztens kell legyen. A bean állapota az alkalmazás befejeződése vagy a J2EE szerver leállása után is meg kell hogy maradjon. Az Enterprise JavaBeans EJB / 20

Egy entity bean életciklusa Kliens hívja Konténer hívja Az Enterprise JavaBeans EJB / 21

EJB interface-ek ek Az Enterprise JavaBeans EJB / 22

A remote interface és implementációja A remote interface-t implementáló EJBObject osztályt a fejlesztő eszköz generálja Feladata, hogy a konténer kezelés különbözőségeit elrejtse A fejlesztő feladata csak az üzleti metódusokat definiáló interface és az azt implementáló EJB osztály megírása. Az Enterprise JavaBeans EJB / 23

Kliens EJB objektum hívása EJB konténer EJB Fejlesztő írja Remote interfész Konténer szolgáltatások EJB Object Generálódik Az Enterprise JavaBeans EJB / 24

A home interface Az ELB életciklus metódusait definiálja Segítségével szerezhető meg a remote interface referenciája Szerepe EJB "factory" Már létező EJB megkeresése Ennek az implementációja is generálódik Az Enterprise JavaBeans EJB / 25

A home interface: példa public interfacetestejbhome extends EJBHome { public TestEJB create(string parameter1, String parameter2) throws RemoteException, CreateException; public TestEJB findbyprimarykey(testejbkey parameter1) throws RemoteException, FinderException; } Az Enterprise JavaBeans EJB / 26

Az EJB osztály Implementálnia kell a megfelelő bean interface-t és az üzleti metódusokat, amelyeket a remote interface definiál. Session Bean: public class TestBean implements SessionBean {... } Entity Bean: public class TestBean implements EntityBean {... } Az Enterprise JavaBeans EJB / 27

The J2EE Tutorial Irodalom Enterprise JavaBeans Technology Fundamentals Short Course Braun Tamás: Internet banki alkalmazás fejlesztése J2EE technológiával és az IBM Websphere alkalmazás szerverrel Diplomaterv, Általános Informatikai Tanszék, Miskolc, 2002. Az Enterprise JavaBeans EJB / 28