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

Hasonló dokumentumok
Osztott rendszerek (Distributed

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

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

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

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

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

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

A Java EE 5 plattform

Komponens alapú programozás Bevezetés

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

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

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

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

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

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

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

Komponens alapú fejlesztés

Simon Balázs Dr. Goldschmidt Balázs Dr. Kondorosi Károly. BME, Irányítástechnika és Informatika Tanszék

Osztott Objektumarchitektúrák

Tartalom DCOM. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés. Történeti áttekintés

UNIX: folyamatok kommunikációja

Operációs rendszerek. Az X Window rendszer

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

Hálózati ismeretek. Az együttműködés szükségessége:

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

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

Elosztott rendszer architektúrák

Számítógépes munkakörnyezet II. Szoftver

Java I. A Java programozási nyelv

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

Everything Over Ethernet

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

Web Services. (webszolgáltatások): egy osztott alkalmazásfejlesztési plattform

Web-fejlesztés NGM_IN002_1

Számítógépes Hálózatok. 5. gyakorlat

Webszolgáltatások (WS)

API tervezése mobil környezetbe. gyakorlat

SOAP komponensek Delphiben

SOA modell: Ez az interfész definiálja az elérhető adatokat, és megadja, hogy hogyan lehet azokhoz hozzáférni.

Hálózatkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Hálózatkezelés / 20

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

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

Hálózatok. Alapismeretek. A hálózatok célja, építőelemei, alapfogalmak

Földmérési és Távérzékelési Intézet

Serialization. RMI működése

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

Folyamatmodellezés és eszközei. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

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

A SZOFTVERTECHNOLÓGIA ALAPJAI

Csoportos üzenetszórás optimalizálása klaszter rendszerekben

Webes alkalmazások fejlesztése 8. előadás. Webszolgáltatások megvalósítása (ASP.NET WebAPI)

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

Enterprise JavaBeans 1.4 platform (EJB 2.0)

ARM Cortex magú mikrovezérlők. mbed

Számítógépes Hálózatok GY 7.hét

Utolsó módosítás:

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

TELJESÍTÉNYMÉRÉS FELHŐ ALAPÚ KÖRNYEZETBEN AZURE CLOUD ANALÍZIS

Kommunikációs middleware megoldások

Számítógépes Hálózatok GY 6.hét

Autóipari beágyazott rendszerek. Komponens és rendszer integráció

4. Hivatkozási modellek

Webszolgáltatások kommunikációs overhead-jének becslése

JNDI - alapok. Java Naming and Directory Interface

Szolgáltatásorientált rendszerintegráció. SOA-alapú rendszerintegráció. Web-szolgáltatások: SOAP, WSDL

QBE Édes Otthon lakásbiztosítás tarifáló webservice. Fejlesztői dokumentáció 1.0.2

Rétegezett architektúra HTTP. A hálózatfejlesztés motorját a hálózati alkalmazások képezik. TCP/IP protokoll készlet

webalkalmazások fejlesztése elosztott alapon

20. Tétel 1.0 Internet felépítése, OSI modell, TCP/IP modell szintjenek bemutatása, protokollok Pozsonyi ; Szemenyei

Book Template Title. Author Last Name, Author First Name

Non-stop hozzáférés az üzleti információkhoz bárhol, bármikor és bármilyen eszközzel

Nyilvántartási Rendszer

Használati alapú és modell alapú tesztelés kombinálása szolgáltatásorientált architektúrák teszteléséhez az ipari gyakorlatban

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

Szalai Ferenc

Bevezető. Servlet alapgondolatok

JAVA webes alkalmazások

Alap protokollok. NetBT: NetBIOS over TCP/IP: Name, Datagram és Session szolgáltatás.

A számítógép-hálózat egy olyan speciális rendszer, amely a számítógépek egymás közötti kommunikációját biztosítja.

Modellinformációk szabványos cseréje. Papp Ágnes, Debreceni Egyetem EFK

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

Testreszabott alkalmazások fejlesztése Notes és Quickr környezetben

Szolgáltatás-orientált technológiák alkalmazási kérdései Absztrakt 1. Bevezetés

Hálózatok Rétegei. Számítógépes Hálózatok és Internet Eszközök. TCP/IP-Rétegmodell. Az Internet rétegei - TCP/IP-rétegek

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

Java I. A Java programozási nyelv

MVC. Model View Controller

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

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

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

Operációs rendszerek. Az Executive és a kernel Policy és mechanizmusok szeparálása Executive: policy - objektum kezelés Kernel: mechanizmusok:

CORBA. Mi a CORBA? A CORBA felépítése

A konvergencia következményei. IKT trendek. Új generációs hálózatok. Bakonyi Péter c.docens. Konvergencia. Új generációs hálózatok( NGN )

Flex: csak rugalmasan!

Számítógépes Hálózatok. 7. gyakorlat

IP alapú kommunikáció. 5. Előadás Routing 2 Kovács Ákos

A ClusterGrid bróker rendszere. Stefán Péter Szalai Ferenc Vitéz Gábor

Iman 3.0 szoftverdokumentáció

Átírás:

Osztott rendszerek (Distributed systems) Bevezetés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2007. 09. 18. osztottrendszerek / 1 Tartalom Miért kellenek osztott rendszerek Egy kis történelem Software architektúrák Osztott alkalmazások fejlesztése A midleware koncepció Nem objektum orientált midlewere-ek Objektum orientált midleware-ek Osztott rendszerek (Bevezetés) osztottrendszerek / 2 Miért kellenek osztott rendszerek? Feladatok elosztása A számítási teljesítmény növelése Adatok (kódok) elosztása Desktop gépek használata duplikált (és inkonzisztens) adatok nélkül A rendszer funkcionalitásának elosztása Komponensek Internet alapú alkalmazások Osztott rendszerek (Bevezetés) osztottrendszerek / 3

Történelem - a kezdetek Mainframe-ek és terminálok Minden a központi gépen fut A terminál csak egy periféria Minden a központi gépen múlik Csak osztott használat! Osztott rendszerek (Bevezetés) osztottrendszerek / 4 Történelem - a következk vetkező lépés Klasszikus kliens/szerver architektúra Az adatok kezelése a szerver feladata Az alkalmazás logikájából adódó feladatok megoszlanak a kliens és a szerver között A felhasználói felület kezelése a kliens dolga Osztott rendszerek (Bevezetés) osztottrendszerek / 5 (Majdnem) törtt rténelem: többrt bbrészes kliens/ szerver architektúra ra Multi-tier architecture Egy alkalmazás több részből állhat Tipikus: három rész Felhasználói interface Üzleti logika Adatbázis kezelés Osztott rendszerek (Bevezetés) osztottrendszerek / 6

A jelen: valódi osztott rendszer Többrészes (multi-tier) architectúra Objektum orientált, komponens alapú megközelítés (object-oriented, component based approach) További szolgáltatások directory services tranzakció monitor rugalmasság újrahasznosítható komponensek Egy komponens egyszerre lehet kliens és szerver internet - alapú alkalmazások Osztott rendszerek (Bevezetés) osztottrendszerek / 7 A middleware koncepció Általános, alkalmazás független szolgáltatások Lehetővé teszi a felhasználó és az alkalmazás kommunikációját a hálózaton keresztül A hálózati és az alkalmazói program között helyezkedik el Network services Applications MIDDLEWARE Local services Operating system and hardware Osztott rendszerek (Bevezetés) osztottrendszerek / 8 Alkalmazás s modellek Computing models Terminal-host models Distributed Computing Model File transfer model Client/Server model Peer-to-Peer model Osztott rendszerek (Bevezetés) osztottrendszerek / 9

Alapvető kliens/szerver middleware-ek ek Sockets Socket s Osztott rendszerek (Bevezetés) osztottrendszerek / 10 A middleware-ek ek osztályoz lyozása 1. Egy szabvány nem elég, mert a különböző jellegű alkalmazások kommunikációs igénye eltérő A middleware-eket osztályozhatjuk abból a szempontból, hogy milyen más, ismert mechanizmus kiterjesztéseként tekintik a modulok közötti kommunikációt. (Milyen metaforát használnak.) A legalacsonyabb szintű middleware a socket mechanizmus. Osztott rendszerek (Bevezetés) osztottrendszerek / 11 A middleware-ek ek osztályoz lyozása 2. A kommunikáció metafórája File-kezelés Távoli eljáráshívás Adatbázis lekérdezés Üzenet küldés Távoli metódushívás Middleware-ek Socket RPC, DCE RPC, XML RPC, SOAP RDA MOM CORBA, Java RMI, Microsoft DCOM Osztott rendszerek (Bevezetés) osztottrendszerek / 12

Socket mechanizmus A metafora a file kezelés Valójában egy API a TCP/IP protokoll verem szolgáltatásaihoz (TCP és UDP) Alkalmas nagyon speciális alkalmazásokhoz (Mindent megtehetek) (I can do everything) Nem alkalmas nagy, bonyolult rendszerek fejlesztésére (Mindent nekem kell megcsinálnom) (I must do everything) Osztott rendszerek (Bevezetés) osztottrendszerek / 13 Socket mechanizmus (folyt.) Valójában egy csatornára byte-sorozat tehető ki ("write") és onnan byte sorozat olvasható be ("read"). Nem biztosított, hogy a csatornára kitett információt valaki el is olvassa => valamilyen protokollal össze kell hangolni a kommunikáló feleket. Gyakorlatilag minden plattformra és programozási nyelvhez van implementációja. Osztott rendszerek (Bevezetés) osztottrendszerek / 14 Socket mechanizmus (folyt.) A kommunikáló felek futhatnak különböző plattformokon és készülhetnek különböző programozási nyelveken. Számos magasabb szintű middleware implementációs eszköze. Osztott rendszerek (Bevezetés) osztottrendszerek / 15

Távoli eljárásh shívás s (RPC) RPC: Remote Procedude Call Teljesen homogén rendszereken futó alkalmazások közötti komunikációra lett tervezve: azonos processzor UNIX operációs rendszer C-ben írt programok Ma már közvetlenül ritkán használt middleware, de egy alapötlet, ami a korszerűbb middleware-ek is alkalmaznak, már itt megjelenik. Osztott rendszerek (Bevezetés) osztottrendszerek / 16 Távoli eljárásh Osztott rendszerek (Bevezetés) osztottrendszerek / 17 Távoli eljárásh 1. A kliens meghívja a csonkeljárást (stub), ami lokális függvénynek látszik. A stub a paramétereket a hálózaton átvihető csomagokba pakolja és meghatározza a szerver címét 2. Az üzenet átvitelre kerül a hálózati átviteli szolgáltatáson (network transport service) keresztül 3. Az üzenet átvitelre kerül a hálózaton és a szerver gép hálózati rétege fogadja Osztott rendszerek (Bevezetés) osztottrendszerek / 18

Távoli eljárásh 4. A hálózati szolgáltatás értesíti a szerver csonkot hogy egy kérés érkezett 5. A szerver csonk fogadja az üzenetet, lefordítja a lokális eljáráshívás formátumára és meghívja az eljárást 6. A szerver végrehajtja az eljárást és visszaadja az eredményt a csonknak 7. A csonk a választ átalakítja hálózati üzenetté és elküldi a hálózati rétegnek Osztott rendszerek (Bevezetés) osztottrendszerek / 19 Távoli eljárásh 8. A szerver hálózati rétege visszaküldi a választ a kliens hálózati rétegének 9. A kliens hálózati rétege elküldi a választ a kliens csonknak 10. A kliens csonk fogadja a választ, átalakítja eljárás visszatérési értékének és átadja a kliensnek Osztott rendszerek (Bevezetés) osztottrendszerek / 20 Távoli eljárásh Megjegyzések: A csonkeljárások automatikusan generálhatók A paraméterek érték szerint adódnak át (különböző címterek!) Kötés (binding) problémája: hogyan található meg a szervert futtató gép, és a szerver program a gépen belül Az adatábrázolási módok különbözőek lehetnek A kliens és a szerver gép egymástól függetlenül összeomolhat A kliens általában lockolódik és vár a válaszra Osztott rendszerek (Bevezetés) osztottrendszerek / 21

Távoli eljárásh Hasznos ötletek: kliens oldali csonk (stub) egy funkcionális interface-t mutat a kliens programnak, de valójában a funkciókat egy middleware szolgáltatásait igénybe véve mással (egy remote szolgáltatóval) végezteti el. Kommunikál a szerver oldali csonkkal. Osztott rendszerek (Bevezetés) osztottrendszerek / 22 Távoli eljárásh Szerver oldali csonk kéréseket fogad, aktivizálja a remote szolgáltatót, és átveszi tőle az eredményeket. A kliens oldali stub-al kommunikál. Szokásos elnevezése még: skeleton, proxy Remote szolgáltató Funkcionális interface-e egyezik a kliens stub-éval, és ténylegesen implementálja is azt. Önmagában nem futásképes elem, a szerver oldali stub aktivizálja. Osztott rendszerek (Bevezetés) osztottrendszerek / 23 Distributed Computing Environment (DCE) Open Software Foundation (OSF): célja a UNIX rendszerek közötti együttműködés biztosítása DCE: nyílt szabvány az osztott alkalmazásokhoz DCE: implementáció, nem specifikáció. A legfontosabb korlátozás: az adatbázis műveletek gyenge támogatása Sohasem nyert széleskörű támogatást, de bizonyos elemei beépültek a CORBA-ba és a DCOM-ba (IDL, marshalling) Osztott rendszerek (Bevezetés) osztottrendszerek / 24

A DCE architektúrája S ec u ri t y Applications Diskless Support Future Disk. Serv. Distributed File Services Distributed Time Services Directory Services RPC Threads Future Basic Services M an a g e m e n t Operating Systems and Transport Services Osztott rendszerek (Bevezetés) osztottrendszerek / 25 DCE RPC A megjelenítési szolgáltatás (Presentation service) elrejti a belső adatábrázolás különbözőségét Hálózat és protokoll független Biztonságos RPC kommunikáció Autentikáció Integritás Megszemélyesítés (privacy) Szerver azonosítás név szerint Tetszőleges argumentum méret Osztott rendszerek (Bevezetés) osztottrendszerek / 26 XML RPC A klaszikus RPC "újraélesztése" Távoli eljáráshívást valósít meg, de az "eljárás" tetszőleges szolgáltató egység lehet, ami implementálja az adott interface-t. A hagyományos RPC-vel ellentétben HTTP protokoll felett zajlik a kommunikáció. Az adatokat a hagyományos RPC-vel ellentétben XML formátumban küldi át a hálózaton. Miután szabványos, platform és implementációs eszköz független. Osztott rendszerek (Bevezetés) osztottrendszerek / 27

XML RPC (folyt.) Az XML RPC HTTP POST metódus segítségével XML-be kódolt kérést küld a szervernek. A szerver elemzi a kérést, meghívja a megfelelő metódust, a választ pedig XML-be kódolva visszaküldi. A kliens kikódolja a választ. Az XML RPC támogatja az "ésszerű" adatformátumokat (int, double, string, bináris adathalmaz, struktúra, tömb, egyebek) Osztott rendszerek (Bevezetés) osztottrendszerek / 28 SOAP Simple Object Access Protocol UserLand, Developmentor és Microsoft együttműködés terméke Jelenleg a W3C felügyeli ezt a szabványt Jóval összetettebb, mint az XML RPC Komplex adatstruktúrák támogatása Az XML namespacek használata globálisan egyértelművé teszi az átvitt adatot Osztott rendszerek (Bevezetés) osztottrendszerek / 29 Előny nyök és s hátrh trányok Az XML RPC és a SOAP nagy előnye, hogy könnyen átmegy a tűzfalakon Az XML RPC és a SOAP nagy hátránya, hogy könnyen átmegy a tűzfalakon Jóval nagyobb erőforrás igényűek, mint a hagyományos RPC Osztott rendszerek (Bevezetés) osztottrendszerek / 30

Távoli adatelérés (RDA) A kliens kiad egy SQL hívást a kliens middlewarenek Az üzenet átmegy a hálózaton keresztül a szerverig A szerver middleware-e meghívja az adatbázis szervert Az adatbázis szerver végrehajtja a lekérdezést és visszaküldi az eredményt a szerver middlewareének A szerver middleware átalakítja az eredményt hálózati üzenetté és elküldi a kliensnek a hálózaton keresztül A kliens middleware fogadja az üzenetet, átalakítja és átadja az eredményt a kliensnek Osztott rendszerek (Bevezetés) osztottrendszerek / 31 Üzenet-orientált middleware (MOM) Osztott rendszerek (Bevezetés) osztottrendszerek / 32 A MOM tulajdonságai Lehetővé teszi az aszinkron kommunikációt Alkalmas mobil (vezeték nélküli) kommunikációra A szerver hibája nem állítja meg a klienst Alkalmas nagyon nagy várakozó sorok kezelésére is Korlát: a várokozó sorok írásának/olvasásának többletterhelése Osztott rendszerek (Bevezetés) osztottrendszerek / 33