Osztott rendszerek (Distributed



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

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

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ó. Folyamatok közötti kommunikáció. Minden elosztott rendszer alapja

Komponens alapú programozás Bevezetés

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

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

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

Operációs rendszerek. Az X Window rendszer

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

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

Java I. A Java programozási nyelv

Elosztott rendszer architektúrák

Web-fejlesztés NGM_IN002_1

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

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

API tervezése mobil környezetbe. gyakorlat

SOAP komponensek Delphiben

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

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

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

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

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

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

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

Serialization. RMI működése

Webszolgáltatások (WS)

Everything Over Ethernet

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

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

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

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

A SZOFTVERTECHNOLÓGIA ALAPJAI

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

Enterprise JavaBeans 1.4 platform (EJB 2.0)

ARM Cortex magú mikrovezérlők. mbed

Utolsó módosítás:

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

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

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

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

Kommunikációs middleware megoldások

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

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

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

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

JNDI - alapok. Java Naming and Directory Interface

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

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

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

Book Template Title. Author Last Name, Author First Name

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

Szalai Ferenc

JAVA webes alkalmazások

Alap protokollok. NetBT: NetBIOS over TCP/IP: Name, Datagram és Session szolgáltatá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

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

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

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

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

IBM i. Szerviz és támogatás 7.1

Üzleti folyamatok a felhőben. ECM Szakmai Kongresszus 2011.október 4.

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

Java I. A Java programozási nyelv

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

MVC. Model View Controller

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

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

Tartalom. Hálózati kapcsolatok felépítése és tesztelése. Rétegek használata az adatok továbbításának leírására. OSI modell. Az OSI modell rétegei

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

SAP Business One. Áttekintés, gyakorlati ismertetı. Mosaic Business System Kft.; Support:

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

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

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

Fábián Zoltán Hálózatok elmélet

Bevezető. Servlet alapgondolatok

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 shívás (folyt. folyt.) Osztott rendszerek (Bevezetés) osztottrendszerek / 17

Távoli eljárásh shívás (folyt. folyt.) 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 shívás (folyt. folyt.) 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 shívás (folyt. folyt.) 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 shívás (folyt. folyt.) 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 shívás (folyt. folyt.) 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 shívás (folyt. folyt.) 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 Applications S ec Diskless Support Future Disk. Serv. M an u ri t y Distributed File Services Distributed Time Services Directory Services RPC Threads Future Basic Services 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