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

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

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

A Java EE 5 plattform

Kommunikáció. Távoli eljáráshívás. RPC kommunikáció menete DCE RPC (1) RPC - paraméterátadás. 3. előadás Protokollok. 2. rész

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

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

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

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

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

Junior Java Képzés. Tematika

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

JAVA webes alkalmazások

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

JNDI - alapok. Java Naming and Directory Interface

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

Enterprise JavaBeans 1.4 platform (EJB 2.0)

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

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

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

UNIX: folyamatok kommunikációja

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

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

Tranzakció-kezelés, alapfogalmak. Vassányi István, 2012.

Osztott rendszerek (Distributed. systems) Bevezetés. Tartalom. Ficsor Lajos. Miskolci Egyetem Általános Informatikai Tanszék

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

Bevezetés E LSŐ FEJEZET

Osztott rendszerek (Distributed

webalkalmazások fejlesztése elosztott alapon

Osztott Objektumarchitektúrák

Szolgáltatásorientált rendszerintegráció. SOA-alapú rendszerintegráció. Enterprise Service Bus (ESB) Ercsényi András, BME IIT, 2011.

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

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

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

The Power To Develop. i Develop

Osztott rendszerek. Krizsán Zoltán 1 Ficsór Lajos 1. Webalkalmazások fejlesztése tananyag. Miskolci Egyetem. Bevezetés A múlt - történelem A jelen

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

A SZOFTVERTECHNOLÓGIA ALAPJAI

COMET webalkalmazás fejlesztés. Tóth Ádám Jasmin Media Group

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

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

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

A JGrid rendszer biztonsági architektúrája. Magyaródi Márk Juhász Zoltán Veszprémi Egyetem

Komponens alapú fejlesztés

Komponens alapú programozás Bevezetés

Fejlesztés, működtetés, felügyelet Hatékony infrastruktúra IBM szoftverekkel

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

Segédanyag: Java alkalmazások gyakorlat

Tartalom. Történeti áttekintés. Történeti áttekintés Architektúra DCOM vs CORBA. Szoftvertechnológia

Oracle9i Alkalmazás Szerver Üzleti folyamat integráció. Molnár Balázs Vezető értékesítési konzultáns Oracle Hungary

Flex: csak rugalmasan!

Segédanyag: Java alkalmazások gyakorlat

API tervezése mobil környezetbe. gyakorlat

ADATBÁZIS-KEZELÉS. Adatbázis-kezelő rendszerek

Operációs rendszerek. Windows NT. A Windows NT

CORBA bevezetés. Paller Gábor Internet és mobil rendszerek menedzselése

EGY NAGYBÓL HÚSZ KISEBB

INTERNET. internetwork röviden Internet /hálózatok hálózata/ 2010/2011. őszi félév

Operációs rendszerek. A Windows NT felépítése

Tartalomjegyzék. Előszó... 10

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

Alkalmazások architektúrája

Számítógépes Hálózatok Felhasználói réteg DNS, , http, P2P

Felhasználói réteg. Számítógépes Hálózatok Domain Name System (DNS) DNS. Domain Name System

Serialization. RMI működése

Web-fejlesztés NGM_IN002_1

Megfelelés a PSD2 szabályozásnak, RTS ajánlásokkal Electra openapi

NETinv. Új generációs informatikai és kommunikációs megoldások

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

Elosztott rendszer architektúrák


Szolgáltatás Orientált Architektúra és több felhasználós adatbázis használata OKF keretein belül. Beke Dániel

Webes alkalmazások fejlesztése 12. fejezet. Szolgáltatás alapú kommunikáció (WCF) Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar

Folyamatok. 6. előadás

Windows rendszeradminisztráció és Microsoft szerveralkalmazások támogatása. 5. óra. Kocsis Gergely, Supák Zoltán

Operációs rendszerek. Az X Window rendszer

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

Autóipari beágyazott rendszerek. A kommunikáció alapjai

Magic xpi 4.0 vadonatúj Architektúrája Gigaspaces alapokon

C# Szálkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Szálkezelés / 21

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

SIP. Jelzés a telefóniában. Session Initiation Protocol

Szalai Ferenc

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

Book Template Title. Author Last Name, Author First Name

Oracle Enterprise Manager: Az első teljesértékű felhő üzemeltetési megoldás

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

A Java Persistence API PersistenceAPI / 3

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

Kommunikációs middleware megoldások

Üzleti szabálykezelés

Viczián István Vezető szoftverfejlesztő Kopint-Datorg Zrt.

Elosztott adatbázis-kezelő formális elemzése

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

extreme Transaction Processing

R I Szer e i r alizáció.

Norway Grants. Az akkumulátor mikromenedzsment szabályozás - BMMR - fejlesztés technológiai és műszaki újdonságai. Kakuk Zoltán, Vision 95 Kft.

Integral IP Az IP technológia megjelenése a tűzjelzéstechnikában Tűzvédelmi Szakmai Napok Vecsés, június

STANDARD DEVELOPMENT U.L. FACTORY SYSTEMS GROUP IT DEPARTMENT

Elnevezési rendszerek. 7. előadás

Szolgáltatás Orientált Architektúra a MAVIR-nál

Átírás:

S04-2 Elosztott alkalmazások készítése Tartalom 1. Többrétegű architektúra, elosztott szerveroldal 2. Kommunikációs eszközök: távolieljárás-hívás és üzenet alapú infrastruktúra (point-to-point és publish-subscribe modell) 3. Névszolgáltatás 4. Enterprise JavaBeans komponensmodell, EJB-k fajtái 5. Beanek életciklusa 6. Dependency injection 7. Elosztott és globális tranzakciók Többrétegű architektúra 3-rétegű alkalmazás (fizikailag elkülönülnek): kliens (megjelenítés) pl. web kliensek, GUI alkalmazások üzleti logika általában EJB segítségével adat (Enterprise Information System) pl. adatbázisok Középső réteg elkülönítésének előnyei: egyszerűbb (akár többféle) kliens biztonságos, megbízható könnyebb karbantartás, fejlesztés 4-rétegű alkalmazásokban megjelenik a web-réteg (kliens és üzleti logika között) megjelenítési logika megvalósítása még egyszerűbb kliens, skálázhatóság Az egyes rétegek komponensekből épülnek fel, fajtái: kliens, szerver, web Minden komponens egy megfelelő tárolóban fut, és az ezek által nyújtott szolgáltatások (middleware services) megoldást biztosítanak általános problémákra Távoli eljáráshívás Szálkezelés Terheléskiegyenlítés Átlátszó hibakezelés Perzisztencia Tranzakciókezelés Objektumok életciklusa Aszinkron üzenetkezelés Biztonság Resource-pooling 1

Autentikáció Authorizáció Caching Clustering stb. Távolieljárás-hívás Remote Procedure Call egy másik gépen található függvény hívása a socket kommunikáció szintaxisát fedi el az objektumok érték szerint, szerializáció segítségével adódnak át a kliensben és a szerverben is egy stub objektum végzi a kommunikációt Remote Method Invocation (RMI) RPC-alapú kommunikáció egy megvalósítása JVM-ek közötti kommunikáció Java Remote Method Protocol (JRMP) java.rmi csomagban található RMI megvalósítás (szerializáció, TCP/IP) a bejövő hívásokat külön szálon kezeli, ezért a távoli objektumokat érdemes thread-safe módon megvalósítani névszolgáltatást biztosít a kommunikációs partnerek megtalálásához RMI over IIOP RMI egy másik megvalósítása (javax.rmi) Internet Inter-ORB Protocol használata kommunikációra CORBA használja nyelv- és vendorfüggetlen együttműködésre kevésbé rugalmas, mint a JRMP EJB is ezt használja Üzenet alapú infrastruktúra Komponensek közötti kommunikáció A küldő és a fogadó nincs közvetlen kapcsolatban köztes szolgáltató (provider) aszinkron üzenetküldés akár különböző protokollok használata Java Message Service (JMS): specifikálja, hogy kommunikálhatnak Java programok Point-to-point (P2P) két végpont közötti üzenetküldés a küldő egy message queue-ra ír, a fogadó ebből veszi ki az üzeneteket Publish-subscribe a fogadók feliratkoznak topicokra, a küldők ezekre publikálnak 2

a topicok minden feliratkozónak továbbítják a közzétett üzenetet az offline fogadók csak durable subscription esetén kapják meg a kihagyott üzeneteket Névszolgáltatás Entitások (fájl, számítógép, objektum, stb.) megtalálása név alapján Műveletek: név rögzítése a szolgáltatásban keresés név alapján rögzített nevek karbantartása Pl. DNS, fájlrendszer Java Naming and Directory Interface (JNDI) egységes interfész név- és könyvtárszolgáltatásokhoz nem kell ismernünk a szolgáltatás konkrét megvalósítását könyvtárszolgáltatás a névszolgáltatás kiegészítése attribútumok rendelhetők az entitásokhoz pl.: Context ctx = new InitialContext(); DataSource ds = (DataSource) ctx.lookup("jdbc/db"); Enterprise JavaBeans komponensmodell Szerveroldali komponensmodell obj.-orientált elosztott alkalmazások készítéséhez EJB tulajdonságai: üzleti logikát tartalmaz az EJB komponensek EJB tárolókban hajtódnak végre (szolgáltatások) a tárolóján keresztül férhetünk hozzá egy komponenshez a komponensek fordítás után is konfigurálhatók Session Bean a kliens szerveroldali kiterjesztése függvényhívásokon keresztül nyújt szolgáltatásokat session = hívások sorozata a tároló feladata, hogy nyilvántartsa a kliens-bean kapcsolatokat @Stateless a belső állapota kliens-független, a hívások egymástól függetlenek nem garantált, hogy a kliens végig ugyan azzal a beannel kommunikál a példányok egy pool-ban tárolódnak (tétlen állapot) 3

ha egy kliens hív egy függvényt, akkor egy tetszőleges példány kikerül a poolból, végrehajtja azt, majd visszakerül rendszer kivételnél megsemmisül a bean példány @Stateful minden klienshez tartozik egy bean példány session függő adatok egy bean állapota elmenthető és visszatölthető a kliens kér egy referenciát hozzátársít a tároló egy beant a függvényhívásokat ugyan ez a bean hajtja végre, közben megőrzi az állapotát a session a bean eltávolításával ér véget kivétel vagy timeout esetén a bean megsemmisül @Singleton 1 példány / alkalmazás / JVM lehet állapota a kliensek közösen használják figyelni kell a konkurencia-kezelésre @Startup-al annotálva a rendszer indulásakor jön létre (eager) a rendszer leállásakor semmisül meg rendszer kivétel esetén nem semmisül meg Message-Driven Bean aszinkron függvényhívások JMS üzenetek segítségével void vagy Future visszatérési értékük kell, hogy legyen életciklus: egy pool-ban tárolódnak a példányok két állapota van: nem létező és fogadásra kész Dependency injection Inversion of Control egy szolgáltatás használatakor elég annak interfészét ismerni a tényleges szolgáltatásokat futási időben kapcsoljuk hozzá az alkalmazáshoz leggyakoribb megvalósítása: Service Locator (JNDI) és dependency injection segítségével az egyes modulok könnyen cserélhetők @EJB annotáció: a tároló fogja beinjektálni az interfész megvalósítását A megvalósítás csak EJB lehet, POJO nem Nem támogat scope-okat pl.: @EJB(lookup="java:global/ConverterBean!Converter") 4

Elosztott és globális tranzakciók adatbázisok konkurens kezelésekor szükség van szinkronizációra a konzisztens állapot megőrzéséhez tranzakció: adat lekérdezések és módosítások egysége ACID tulajdonságok Atomicitás (Atomicity): vagy teljesen végrehajtódik (commit) vagy semennyire (rollback) Konzisztencia (Consistency): konzisztens állapotból konzisztens állapotba vezet Izoláció (Isolation): konkurens rendszerben a tranzakciók nem interferálnak Tartósság (Durability): sikeres tranzakció eredménye tartós a tranzakciók kezelése egy köztes szolgáltatás, a transaction manager segítségével történik lokális tranzakció a transaction manager a resource manager része műveletek csak azon az egy erőforráson végezhetők globális tranzakció különálló transaction manager egy tranzakción belül több különálló erőforrás is használható a fizikailag elosztott erőforrások koordinálása a 2-fázisú commit protokoll segítéségével valósul meg 1. fázis: minden resource managert megkérdez, hogy commitolhat-e 2. fázis: mindegyik commitol, ha az össze válasz igen volt roll back, különben Java Transaction API segítségével valósítható meg 5