Bevezetés A 7$17È5*<&e/.,7%=e6( $WDQWiUJ\FpOMDKRJ\D]DONDOPD]iVIHMOHV]WpVXWiQpUGHNOGKDOOJDWyNQDNHOPpOHWL áttekintést adjon a több számítógépen futó alkalmazások, rendszerek alapjairól, PHJROGiVDLUyODSURJUDPUpV]HNN ] WWLNRPPXQLNiFLyWEL]WRVtWyHV]N ] NUOPyGV]HUHNUO *\DNRUODWLSpOGiNRQNHUHV]W OWLSLNXVWHFKQROyJLiNDWPXWDWXQNEHHOVVRUEDQD-DYDQ\HOY Q\~MWRWWDOHKHWVpJHNN UpEO7iUJ\DOiVUDNHU OQHNRO\DQDODSLVPHUHWHNLVPLQWSpOGiXOD] XML technológia, mert ez központi szerepet tölt be az elosztott alkalmazások esetében. A JSP WHFKQLNDLVPHUWHWpVHHJ\GLQDPLNXVDQIHMOGZHEHVDONDOPD]iVLOHKHWVpJHWPXWDWEH KÖVETELMÉNYEK $WDQDQ\DJHOVDMiWtWiViKR]HOHQJHGKHWHWOHQHNDN YHWNH]N+70/;0/DODSLVPHUHWHND -DYDQ\HOYDODSRVLVPHUHWHH]HQEHO ODODSYHWRV]WiO\RNLVPHUHWHpVNH]HOpVH6] NVpJYDQ EL]WRVSURJUDPR]iVLMiUWDVViJUDpVVRNV]RUHONHU OQHNDV]iPtWyJpSKiOy]DWRNNDONDSFVRODWRV DODSLVPHUHWHNLV6RNHVHWEHQKLYDWNR]XQND],QWHUQHWHQIHOOHOKHWUpV]OHWHVGRNXPHQWiFLyNUD forrásokra, például a Java nyelv egyes osztályainak leírására, amelyek a http://java.sun.com/j2se/1.4.2/docs/ weboldalakon találhatók meg. Ismertnek tételezzük fel Angster Erzsébet Objektumorientált tervezés és programozás I-II. tankönyveit; az ismétlések HONHU OpVpUHJ\DNUDQW UWpQLNKLYDWNR]iVD]H]HNEHQIHOOHOKHWLVPHUHWHNUH AZ APACHE PROJEKT $-DYDQ\HOYNLDODNtWiVDNRUPiUMHOHQWVV]HUHSHWMiWV]RWWDND]HORV]WRWWDONDOPD]iVRNtJ\ logikus, hogy ez az új nyelv is kiemelten kezelte az ezekhez szükséges komponenseket. 8J\DQDNRUD-DYDILOR]yILiQDNLJHQOpQ\HJHVHOHPHDV]DEDGKR]]iIpUKHWVpJpViOWDOiEDQ nyitott a szabad szoftverek világa felé. Ennek következtében számos Java fejlesztés végeztek RV]WiO\RNpVFVRPDJRNN O QE ]Q\LWRWWSURMHNWHNNHUHWpEHQ(]HNWDOiQOHJLVPHUWHEEMHD] Apache projekt. Kezdetben volt az Apache webszerver 1 DZHEV]HUYHUHNVDW\MDpVPpJPDLVpOHWNpSHV OHV]iUPD]RWWMD(QQHNHOWHUMHGpVpYHOHOV] UPRGXORNHV]N ] NNpV] OWHNKR]]iV]LQWpQD 1 Nevének több magyarázata létezik. Az egyik szellemes magyarázat szerint semmi köze sincs a híres indiántörzshöz, hanem az "a patchy server" szavakból lett összevonva és kissé átalakítva. Azaz olyan szoftvert jelöl, amely modulokból, "foltokból" áll.
V]DEDGV]RIWYHUHNOHYHLQHNPHJIHOHOHQ*18OLFHQV]PDMGDIHMOHV]WFVDSDWQDJ\REE OpOHJ]HW&YiOODNR]iVEDIRJRWWpVOpWUHKR]WDDZHEV]HUYHUQHYpYHOIpPMHO]HWWSURMHNWHW(]PD PiUKDWDOPDVUDQWWMHOHQOHJN ]HO$SDFKHSURMHNWOpWH]LND]$SDFKH6RIWZDUH)RXQGDWLRQ NHUHWpQEHO OZZZDSDFKHRUJeUGHNHVVpJNpSSHQiOOMRQLWWHJ\WiEOi]DWH]HNUO HTTP Server Forrest Logging TCL Ant Geronimo Lucene Tomcat APR Gump Maven Web Services Beehive ibatis MyFaces XML Cocoon Incubator Perl XMLBeans DB Jakarta Portals XML Graphics Directory James SpamAssassin Excalibur Lenya Struts (J\HVSURMHNWHNDIHMOGpVVRUiQNLNHU OQHNDUHQGV]HUEOpVVDMiW~WUDWpUQHNLO\HQSpOGiXOD] iowdoxqnnpveekdv]qiow;hufhvsurmhnwlvdpho\;0/ihogrojr]ivkr]v] NVpJHVHV]N ] NHW fejlesztett ki. Az Apache Softver Alapítvány (ASF) szervezeti, jogi és pénzügyi támogatást biztosít nyílt szoftver projektek széles körének. Az Alapítvány jól megalpozott keretet biztosít a szellemi WXODMGRQKR]pVDSpQ] J\LWiPRJDWiVRNKR]DPHO\HNHJ\LGHM&OHJFV NNHQWLNDUpV]WYHYN SRWHQFLiOLVMRJLV]HUHSpW(J\ WWP&N GpVPHULWRFUDWLFIHMOHV]WpVLIRO\DPDWEDQD]$SDFKH SURMHNWHNNHUHVNHGHOPLV]LQW&V]DEDGRQKR]]iIpUKHWV]RIWYHUWHUPpNHNHWKR]QDNOpWUH amelyek a felhasználók nagy közösségét vonzzák. A pragmatikus Apache licensz az összes, JD]GDViJLpVHJ\pQLIHOKDV]QiOyQDNHJ\V]HU&YpWHV]LD]$SDFKHWHUPpNHNWHOHStWpVpW Korábban ezt a szervezetet mint az Apache Csoportot ismerték, de az Alapítvány tagsági DODSRQV]HUYH]G WWQRQSURILWWiUVDViJNpQWOHWWUHJLV]WUiOYDDQQDNpUGHNpEHQKRJ\D] $SDFKHSURMHNWHND]HJ\pQLOHJYiOODONR]y QNpQWHVHNN ]UHP&N GpVLOHKHWVpJHLQW~OLV P&N GNpSHVHNOHJ\HQHN$]RND]HJ\pQHNDNLNNLPXWDWWiNHON WHOH]HWWVpJ NHWD] HJ\ WWP&N GpVNHUHWpEHQYpJ]HWWQ\tOWIRUUiVNyG~V]RIWYHUIHMOHV]WpVUHD]DODStWYiQ\L projektekben, tagságot nyerhetnek az ASF-ben. Az egyén akkor kaphatja meg a tagságot, ha a PiUPHJOpYWDJRNW EEVpJHMHO OLWpVMyYiKDJ\MDDNLQHYH]pVpWËJ\D]$6)WD]DN ] VVpJ LUiQ\tWMDDPHO\HWN ]YHWOHQ OV]ROJiO±DSURMHNWMHLQEHO OHJ\ WWP&N GV]HPpO\HN
Elosztott alkalmazások elméleti alapjai ELOSZTOTT ALKALMAZÁSOK ÁTTEKINTÉSE, ALAPFOGALMAK Az elosztott alkalmazás meghatározása: 7 EEIpOHpVLGQNpQWHJ\PiVQDNHOOHQWPRQGyPHJKDWiUR]iVRNV] OHWWHND]HORV]WRWW alkalmazásokra. Mi itt a továbbiakban azokat az alkalmazásokat tekintjük elosztott DONDOPD]iVRNQDNDKROD]DONDOPD]iVHJ\HVUpV]HLD]HJ\PiVN ] WWW UWpQDGDWFVHUpNHWQHP a memóriabeli hivatkozások átadásával, hanem valamilyen protokoll segítségével, annak szabályai szerint küldött üzenetekkel végzik. Egy másik meghatározás szerint azokat tekintjük elosztott alkalmazásoknak, ahol több egyedi V]iPtWyJpSEOiOOyUHQGV]HUHQIXWD]DONDOPD]iVpVHUIHV]tWpVHNHWWHV] QNDUUDKRJ\PLQGD] alkalmazás, mind a felhasználó részére a rendszer egységes egészként jelenjen meg. Az elosztott alkalmazás futhat ugyanazon a számítógépen, mint például egy IHMOHV]WUHQGV]HUEHQDONDOPD]RWWZHEV]HUYHUYDJ\PiVHJ\pEV]HUYHUGHJ\DNUDEEDQD hálózatokon futó alkalmazások esetén találkozunk vele. Itt a hálózat bármilyen hálózati konfiguráció lehet, a LAN hálózatoktól az Internetig. $IHQWLPHJKDWiUR]iVRNDWHOHPH]YHNpWDODSYHWIHOWpWHOiOODStWKDWyPHJ$]HJ\LNV]HULQW hardver szinten a rendszert alkotó számítógépek önállóak, egymástól nem függenek. A másik szerint kell lenni a rendszerben egy olyan szoftvernek, amely biztosítja, hogy a felhasználók NtY OUOQp]YHKRPRJpQHJ\VpJHVUHQGV]HUUHOWDOiONR]]DQDN$UHQGV]HUUpV]HLFVHUpOKHWHN GHHUUODIHOKDV]QiOyNQHV]HUH]]HQHNWXGRPiVW(KKH]ORJLNXVDQHJ\RO\DQN ]WHVUpWHJUH van szükség (middleware) amely az alkalmazás és az egyedi gépek között helyezkedik el. Szerepe szolgáltatások nyújtása az alkalmazás számára és az egyedi jellegzetességek HOW QWHWpVH$]DOiEELiEUiQHJ\W EE QiOOyV]iPtWyJpSUHNLWHUMHGD]HJ\HVRSHUiFLyV UHQGV]HUHNHJ\HGLVpJpWN ]WHVUpWHJJHOHOIHGHORV]WRWWDONDOPD]iVVHPDWLNXViEUiMDOiWKDWy
Önálló számítógépeken futó elosztott alkalmazás. Elosztott rendszerek a gyakorlatban Ezekre több példát is mondhatunk a saját mindennapi gyakorlatunkból. í,o\hq HJ\ YiOODODW YDJ\ RNWDWiVL LQWp]PpQ\ V]iPtWyJpS KiOy]DWD DKRO HUIRUUiVRNDW RV]WXQNPHJQ\RPWDWiVDGDWEi]LVOHNpUGH]pVYDJ\DNiUDEHOVOHYHOH]pVHOMHJ\]pVL naptár kezelés, iktatás). í /HKHW HJ\ MyYDO OD]iEE NDSFVRODWRNEyO iooy UHQGV]HU SpOGiXO EHOV KiOy]DWEyO pv LQWHUQHWHVNDSFVROyGiV~HJ\pEJpSHNEOiOOyUHQGV]HULVPRQGMXNHJ\EL]WRVtWyWiUVDViJ és az ügynökeinek rendelkezésére álló rendszer. í 1H IHOHGNH]] QN PHJ QDSMDLQN OHJQDJ\REE GRNXPHQWXP DODS~ HORV]WRWW UHQGV]HUpUO D],QWHUQHWUOVHP (OQ\ NpVOHKHWVpJHN )HOPHU OKHWDNpUGpVKRJ\DPLQGHQNLiOWDOHJ\EOEHOiWKDWyDQKDV]QRV,QWHUQHWPHOOHWWPLpUW pughphvhorv]wrwwdondopd]ivrndwopwuhkr]ql$]hovorjlnxvyiodv]dguijdhuiruuivrnpvd IHOKDV]QiOyN VV]HNDSFVROiViQDNDOHKHWVpJHGHLGHWDUWR]QDND]HJ\HVFVRSRUWPXQND V]RIWYHUHNLVDPHO\HNVHJtWVpJpYHOI OGUDM]LHOKHO\H]NHGpVWOI JJHWOHQ OKR]KDWXQNOpWUH HJ\ WWP&N GFVRSRUWRNDWDNRUiEEDQHPOtWHWW$SDFKHSURMHNWVHPM KHWHWWYROQDOpWUH enélkül).
(UIRUUiVRNpVIRO\DPDWRNV]pWRV]WiVDiWOiWV]yViJ $]HORV]WRWWUHQGV]HUHNHJ\LNDODSIHOWpWHOHKRJ\D]HUIRUUiVRNIRO\DPDWRNW EEHJ\HGLJpS N ] WWLPHJRV]WiViWPHJSUyEiOMXNDIHOKDV]QiOyNHOOHOUHMWHQL$]tJ\OpWUHKR]RWWHJ\HWOHQ JpSQHNW&QUHQGV]HUWQHYH]] NiWOiWV]yQDN Többféle átlátszóságot különböztetünk meg az elosztott rendszerekben az ISO szabvány alapján az alábbi táblázat szerint: átlátszóság típusa teljesül, ha az alkalmazás 1 elhelyezkedés HOUHMWLD]HJ\HVHUIRUUiVRNIL]LNDLHOKHO\H]NHGpVpW (location) 2 iwkho\h]khwvpj (relocation) HOUHMWLD]HJ\HVHUIRUUiVRNPiVPiVV]iPtWyJpSHQW UWpQ elhelyezését 3 mozgathatóság (migration) HOUHMWLD]pSSHQKDV]QiODWEDQOHYHUIRUUiVPiVIL]LNDLKHO\UH W UWpQiWKHO\H]pVpW 4 hozzáférés (access) HOUHMWLD]HJ\HVHUIRUUiVRNHOpUpVLPyGMiWpVD]DGDWiEUi]ROiVL különbségeket 5 többszörözöttség HOUHMWLD]HJ\HVHUIRUUiVRNW EEV] U ] WWVpJpW (replication) 6 HJ\LGHM&VpJ (concurrency) PHJROGMDD]HJ\HVHUIRUUiVRNHVHWpEHQDYHUVHQ\KHO\]HWEO adódó megosztását 7 állandóság (persistence) HOUHMWLD]DGDWDV]RIWYHUHUIRUUiVPHPyULDYDJ\KiWWpUWiUROyQ való elhelyezkedését 8 meghibásodás (failure) HOUHMWLD]HUIRUUiVKLEiNDWOHiOOiVWFVHUpW~MUDLQGtWiVW %iud]iwoiwv]yvijqdj\rqyrq]yqdnw&qlnydqqdnkho\]hwhndplnruqhpfpov]hu&whomhv iwoiwv]yvijudw UHNHGQL(]LJD]PLQGHQRO\DQHVHWUHDPLNRUFpOV]HU&DIHOKDV]QiOyWDYDOyV KHO\]HWUOWiMpNR]WDWQLKRJ\PDQXiOLVDQEHWXGMRQDYDWNR]QLDUHQGV]HUEH8J\DQDNNRU YDQQDNIL]LNDLNRUOiWRNLVPLQWSpOGiXODQDJ\WHU OHWHWOHIHGKiOy]DWEDQPiUIHOOpS LGLJpQ\HNDMHOWRYiEEtWiVUD&VXSiQDMHOWRYiEEtWiVVHEHVVpJHLVpUH]KHWHQLGWYHV] igénybe, légvonalban 20000 km távolság esetén is közel 70 ms, de az eszközök jóval lassabb P&N GpVHPLDWWW EEV]i]H]UHGPiVRGSHUFLVOHKHW
Átméretezés Akkor beszélhetünk igazi elosztott alkalmazásról, ha méretének változtatása, azaz az alkalmazást futtató számítógépek száma - bizonyos határok között - nem befolyásolja a P&N GpVpWVWH]DPpUHWYiOWR]WDWiVQHPLVYHKHWpV]UHDUHQGV]HUEHQ(]N QQ\HQEHOiWKDWy ha akár egy vállalat számítógép parkjára gondolunk, vagy akár az Internetre. Nem szabad, KRJ\DPpUHWEHOLQ YHNHGpVEHIRO\iVROMDDKR]]iIpUKHWVpJHWKDH]EHN YHWNH]LND] HUIRUUiVPHJRV]WiVPiUQHPNLIL]HWGD]HJ\HVIHOKDV]QiOyNV]iPiUD$PpUHWFV NNHQWpV QHPV]RNRWWKR]]iIpUKHWVpJLSUREOpPiNDWRNR]QLDEEDQD]HVHWEHQYLV]RQWKDD]HORV]WRWW DONDOPD]iVHOVGOHJHVFpOMDDV]iPtWyNDSDFLWiVPHJQ YHOpVHMHOHQWVV]iP~JpSNLHVpVH HONHU OKHWHWOHQ ODNDSDFLWiVFV NNHQpVpYHOMiU,O\HQHVHWHNNHOPiUHOUHV]iPROQLNHOOpV puwhohpv]hu&hqqhpwhuyh]khwhouhdgrwwphqq\lvpj&v]iptwivhoypj]pvhyiowr]yndsdflwiv~ rendszerben. $PpUHWQ YHOpVVHOMiUySUREOpPiNDWN O QE ]NRQFHSFLyNHVHWpEHQHOWpUPyGRQNHOO kezelni. Központosított szolgáltatás esetén, amikor egyetlen szerver látja el az összes klienst, a kliensek számának növekedése mellett a kiszolgálás színvonalát csak a szerverkapacitás EYtWpVpYHOLOOHWYHHJ\HORV]WRWWW EEJpSHQIXWyV]HUYHUDONDOPD]iVEHiOOtWiViYDOOHKHW IHQQWDUWDQL(UUHV]ROJiOQDNDN O QE ]V]HUYHUWHUKHOpVWPHJRV]WyDONDOPD]iVRN Alternatív megoldás lehet a szerver munkájának leosztása a kliens felé. Erre jó példa egy DGDWEHYLWHOL&UODSDPHO\QHNHOOHQU]pVHW UWpQKHWDV]HUYHUHQGHPHJYDOyVtWKDWyNOLHQV ROGDORQLVpVH]]HOMHOHQWVPpUWpNEHQWHKHUPHQWHVtWKHWDV]HUYHU Hasonló, de másféle módon megoldható problémát jelent a méretnövelés az adatok központosított elhelyezése esetén. Ilyen problémát jelenthet a személyi adatok, vagy a telefonkönyv, gépkocsinyilvántartás, stb. központosított tárolása. Itt is a szerverhozzáférés, ebben az esetben az adatbázis szerverhez intézett gyakori kérdések okozzák a problémát, ha a kérések/kliensek száma egy bizonyos határt elér. Elvileg kétféle megoldást alkalmazhatunk, az egyik szerint az adatbázist többszörözzük meg és YLVV]DYH]HWM NDSUREOpPiWD]HO]SRQWEDQWiUJ\DOWUD7HUPpV]HWHVHQLWWD]HJ\HV DGDWEi]LVSpOGiQ\RNV]LQNURQL]iOiVDLVPHJROGiVUDYiU$PiVLNOHKHWVpJD]DIHOLVPHUpV hogy az adatok bizonyos elvek szerint csoportosíthatóak - telefonkönyv esetében például D]HOKtYyV]iPN U]HWV]iPV]HULQWpVQ\XJRGWDQPHJRV]WKDWMXND]DGDWEi]LVXQNDWH]HN szerint. Ebben az esetben csupán azt kell egy központi adatbázisban tárolni, hogy az egyes HOKtYyV]iPRNQDNPHJIHOHOHQKROOHV]PHJWDOiOKDWyDWHOMHVLQIRUPiFLy+DVRQOy
elveken alapul az internetes címfeloldás is a domain névszerverek segítségével, amikor annak elkerülésére, hogy az összes névfeloldási kérés egyetlen szerverre fusson be, a QpYV]HUYHUHNHWDGRPpQWDUWRPiQ\RNQDNPHJIHOHOKLHUDUFKLiEDV]HUYH]WpNpVDPLWOHKHW azt az egyes szerverek a doménen belül intéznek el. Nehezebben megvalósítható a méretnövelés központosított algoritmusok esetében, azaz ha a fentiekben tárgyaltak ellenére az irányításra szolgáló algoritmus minden esetben teljes LQIRUPiFLyWLJpQ\HO,O\HQNRUD]DOJRULWPXVPHJYiOWR]WDWiVDD]HJ\HWOHQUHiOLVOHKHWVpJ KLV]HQPLQGHQV]iPEDYHKHWPHJROGiVDIHQWLHNV]HULQWPiVIpOHDOJRULWPXVRN bevezetésén múlik. Architektúrák, rétegek és komponensek (J\LVPHUWIHORV]WiVV]HULQWHJ\UpWHJ&NpWUpWHJ&pVKiURPUpWHJ&DONDOPD]iVRNDW különböztetünk meg. Rétegnek akkor nevezhetünk egy komponenst, ha feladatában önálló és EL]RQ\RVKDWiURNN ] WWFVHUpOKHWDUHQGV]HUHJpV]pWHJ\HJ\UpWHJpQHNPHJYiOWR]WDWiVD QHPEHIRO\iVROMD$PHQQ\LEHQD]HJ\HVUpWHJHNN O QE ]V]iPtWyJpSHNHQKHO\H]NHGQHNHO PiUHORV]WRWWUHQGV]HUHNUONHOOEHV]pOQ QN,O\HQUHQGV]HUOHKHWHJ\DONDOPD]iVpVDWiYROL DGDWEi]LVV]HUYHUN ] WWLNDSFVRODWYDJ\HJ\NOLHQVV]HUYHUUHQGV]HULV7 EEUpWHJ& alkalmazások esetén az elosztott rendszer több egyedi számítógépet is magába foglalhat, HQQHNWLSLNXVSpOGiMDHJ\RO\DQZHEHVDONDOPD]iVDKRODE QJpV]WIXWWDWyNOLHQVJpS kéréseivel távoli webszerverhez fordul, az viszont a kérés teljesítése során, a hivatkozott szerver oldali program végrehajtása közben (dinamikus weboldal) egy harmadik gépen tárolt, az alkalmazás futtatásához szükséges adatbázist igyekszik elérni. (OYEHQXJ\DQW EEUpWHJLVEHYH]HWKHWGHDJ\DNRUODWEDQFVDND]HJ\HVIHQWLUpWHJHN bizonyos fokú megosztása kerül megvalósításra, így ezek több rétegbe sorolása felesleges. Egy kivétel azonban lehet, és ez a nagyfokú mesterséges intelligencia alkalmazása. Az itt szükségessé váló fokozott számításigény megkövetelhet különálló, erre specializált komponenst, amely így külön réteget alkothat. $KDUGYHUV]HUYH]GpVHHORV]WRWWDONDOPD]iVRNHVHWpEHQ Ugyanazt az elosztott alkalmazást hardver szinten többféleképpen is támogathatjuk. $ODSYHWHQW EESURFHVV]RURVUHQGV]HUHNUOYDJ\W EE QiOOyV]iPtWyJpSEOiOOy UHQGV]HUHNUOEHV]pOKHW QN$]HOEELHVHWEHQKDUGYHUV]HPSRQWEyOPHJN O QE ]WHWKHW QN olyan rendszereket, ahol minden egyes processzorhoz saját memória tartozik és olyan rendszereket, amelyekben a processzorok egy memória bankon osztoznak és bármely
SURFHVV]RUEiUPHO\LNPHPyULiWKDV]QiOKDWMD(]XWyEELHVHWQHPWpYHV]WHQG VV]HDW EE PHPyULDSDQHOWEHIRJDGyDODSODSRNNDOPHUWEiUH]HNEHQIL]LNDLODJHON O Q O memóriaelemek vannak, ezek címzése egységes rendszerben történik. Mindkét esetben az adatforgalom a processzor és a memória (memóriák) között megvalósítható buszrendszeren és/vagy kapcsolórendszeren keresztül. Lényeges különbség azonban a saját memória és a PHPyULDEDQNHOUHQGH]pVN ] WWKRJ\D]HOVHVHWEHQDEXV]YDJ\DNDSFVROyUHQGV]HUD] egyes processzorok között létesít összeköttetést, míg a második esetben a kapcsolatot biztosító rendszer a processzorok és a memóriák között helyezkedik el. $PHPyULDEDQNV]HUYH]KHW~J\LVKRJ\HJ\HWOHQWHUPpV]HWHVHQIL]LNDLODJW EESDQHOEO álló) memória szolgálja ki az összes processzort, amelyek buszrendszeren keresztül érik el a memóriát. Ilyenek a tipikus többprocesszoros rendszerek, amelyek már kezdenek beköszönni a személyi számítógépek piacára is. Amennyiben több processzor és több memória van a rendszerben, a buszrendszeren kívül PHJROGKDWyD] VV]HN WWHWpVNURVV]EDUYDJ\RPHJDNDSFVROyUHQGV]HUVHJtWVpJpYHO$]HOEEL rugalmasabb, ám több kapcsolatot kell állítani, a második adott számú processzort és memóriát igényel és hatékony megvalósításához nagyon gyors, azaz drága kapcsolóelemekre van szükség. 7 EESURFHVV]RURVW EEPHPyULiVHORV]WRWWUHQGV]HUHNV]HUYH]GpVH $]RQRVWtSXV~ QiOOyV]iPtWyJpSHNEONOyQRNiOOyHORV]WRWWUHQGV]HUHNHVHWpQD]HJ\HV JpSHNHWHOUHQGH]KHWM NHJ\UiFVSRQWMDLEDQYDJ\V]iPtWyJpSEOiOOyEORNNRNEDQ
~J\QHYH]HWWKLSHUNRFNDIRUPiMiEDQ$J\DNRUODWEDQVRNV]RUHONHU OHORV]WRWWUHQGV]HUHN YLV]RQWDOHJW EEHVHWEHQDIHQWLHNWOHOWpUPyGRQYiOWR]DWRVNLpStWpV&JpSHNEOiOOpVD kommunikáció az alkalmazás moduljai között üzenetek átadásán alapszik. Tanulmányaik további részében szinte kizárólag ezek megvalósításáról, a szoftveres megoldásokról lesz szó. KOMMUNIKÁCIÓ AZ ELOSZTOTT ALKALMAZÁSOK ELEMI KÖZÖTT Az architektúrák tárgyalása során kiderült, hogy az elosztott rendszerek csak igen ritka HVHWHNEHQKDV]QiOQDNN ] VPHPyULiWtJ\D]DGDWRNPHP ULiQNHUHV]W OW UWpQiWDGiVDQHP lehetséges. Ezért a kommunikáció az üzenetátadás szintjére szorul vissza, azonban ez sem HJ\V]HU&PHUWD] ]HQHWN OGpVD] ]HQHWIRJDGyPHJNHOOHJ\H]]HQD] ]HQHWSRQWRV V]HUNH]HWpEHQLVHJ\PiVN ] WW$OHJJ\DNUDEEDQSHUV]HQHPNpWROGDO~HJ\H]NHGpVUOYDQ V]yKDQHPRO\DQiOWDOiQRVpVV]DEYiQ\RVtWRWWUHQGV]HUUO ]HQHWV]HUNH]HWUODPLWD NRPPXQLNiFLyEiUPHO\UpV]WYHYMHPHJpUWpVPDJiUDQp]YHN WHOH]NpQWLVPHUHO A jegyzetnek nem célja, hogy átfogó hálózati ismereteket adjon, hiszen ezt más tantárgyak már megtették. Mégis érdemes néhány gondolat erejéig átismételni, és egy-két speciális területen elmélyíteni ezeket az ismereteket, hogy könnyen elsajátíthatók legyenek a tananyag hálózatos ismeretekre támaszkodó részei. Kezdjük tehát az összes hálózati kommunikáció DODSMDLWNpSH]26,PRGHOOIHOLGp]pVpYHOpVDKiOy]DWLSURWRNROORNNDO Az OSI modell és rétegei Az Open Systems Interconnection Reference Model, azaz az OSI modell teljes mértékben OHIHGLDNRPPXQLNiFLyV]LQWMHLW6]HU]LDEEyOLQGXOWDNNLKRJ\DNRPPXQLNiFLyHJ\HV szintjeit elvi alapon elkülönítették, így hét szintet jelöltek ki, és minden szintnek jól N U OKDWiUROKDWyIHOHOVVpJHNHWDGWDNPHJ$V]LQWHNN ] WWDNRPPXQLNiFLyYHUWLNiOLV kommunikáció) szabványosított felületeken át (interfész) történik és a közvetlen kapcsolatért IHOHOVOHJDOVy~J\QHYH]HWWIL]LNDLUpWHJD]HJ\HWOHQDPHO\N ]YHWOHQKRUL]RQWiOLV kommunikációt is végre tud hajtani. Réteg elnevezése $NDSFVRODWRWOpWHVtWSURWRNROO 7 alkalmazási alkalmazási protokoll 6 megjelenítési megjelenítési protokoll 5 viszony viszonyprotokoll 4 szállítási szállítási protokoll 3 hálózati hálózati protokoll 2 adatkapcsolati adatkapcsolati protokoll 1 fizikai fizikai protokoll
A fizikai hálózat (hardver) ábra. Az OSI modell rétegei (J\DONDOPD]iVV]LQW& ]HQHWHON OGpVHHEEHQDUHQGV]HUEHQ~J\W UWpQLNKRJ\D]DGRWW folyamat összeállítja az üzenetet, azt átadja az alkalmazási rétegnek, és ez a szoftver hozzátesz egy fejlécet, amely saját magára utal és több-kevesebb "használati utasítást" WDUWDOPD]PDMGiWDGMDDOHQWHEEHOKHO\H]NHGUpWHJQHN2WWXJ\DQH]W UWpQLNPtJD rétegspecifikus fejlécekkel ellátott üzenet elérkezik a fizikai réteghez, ahol megtörténik az ]HQHWHOHNWURPRVMHOHNIRUPiMiEDQW UWpQHON OGpVH$IRJDGyROGDORQXJ\DQHQQHND] üzenet becsomagolásnak a fordítottja zajlik, az egyes rétegek a nekik szánt fejlécek alapján járnak el és továbbadják az így feldolgozott üzenet a felettük álló rétegnek, míg ismét eljutunk az alkalmazás szintig. Itt a kapcsolódó folyamat (például szerver vagy kliens) szoftver szinten feldolgozza az üzenetet és ha válaszol rá, azt ugyanezen az úton elindítja visszafelé. $]DOVyKiURPUpWHJV]HUHSHPDUNiQVDQV]pWYiOLN$IL]LNDLUpWHJIHOHODMHOV]LQW& NRPPXQLNFLypUWDKDUGYHUHOHPHNV]DEYiQ\DLpUW$IHOHWWHHOKHO\H]NHGDGDWNDSFVRODWLUpWHJ definiálja az adatkereteket, a hibák felfedéséért és sok esetben a javításáért is. A hálózati réteg V]HUHSHDKiOy]DWLNRPPXQLNiFLyPHJKDWiUR]iVDH]pUWP&N GpVHMHOHQWVHQHOWpUKHO\L hálózaton vagy például az Interneten. Míg a helyi hálózatnál a broadcast módszer tökletesen PHJIHOHONLN OGM ND] ]HQHWHWPLQGHQJpSUHpVD]LOOHWpNHVHONDSMDDQDJ\WiYROViJ~ hálózat esetén már szükség van útvonalválasztásra is, ami ennek a rétegnek az egyik szolgáltatása. Az üzenetküldés protokolljai közül a jól ismert IP protokoll tartozik ehhez a réteghez. $V]iOOtWiVLUpWHJHOVGOHJHVV]HUHSHDNRPPXQLNiFLyPHJEt]KDWyViJiQDNPHJWHUHPWpVHH]pUW MHOOHJpEHQPiVNpQWPLQWHJ\LQWHUIpV]NpQWP&N GLNDIHOVEEUpWHJHNpVD]DOVyKiURPN ] WW $]DONDOPD]iVIHMOHV]WNV]iPiUDH]DUpWHJEL]WRVtWMDD]WDFVSRVWiWSLSHOLQHDPHO\EH töltött üzenetek a fogadó végen sértetlenül megérkeznek. Ennek megvalósítása történik ebben a rétegben, amelynek legismertebb és a hálózati kommunikációban leggyakrabban használt SURWRNROOMDD7&37UDQVPLVVLRQ&RQWURO3URWRFROiWYLWHOYH]pUOSURWRNROO$J\DNRUODWEDQ szinte mindenütt TCP/IP protokollról beszélünk, érdemes megjegyezni, hogy a név két V]RURVDQ VV]HGROJR]yiPI JJHWOHQ OLVP&N GNpSHVUpWHJSURWRNROOWMHOH]$]8'3D] Universal Datagram Protocol lényegében egy kismértékben módosított IP protocoll. )RQWRVViJiQDNPHJIHOHOHQD7&3SURWRNROOWLVIHMOHV]WLN~MDEEYiOWR]DWDDWUDQ]DNFLyV7&3 DPHO\DNDSFVRODWIHOpStWpVpWONH]GYHDYiODV]IRJDGiViQNHUHV]W ODNDSFVRODWOH]iUiViLJ mindent együtt kezel.
$IHOVEEUpWHJHNKDWiUDLQHPPLQGHQHVHWEHQpOHVHND]D]N O QE ]UHQGV]HUHNEHQD]HJ\HV feladatok összecsúszhatnak, vagy a réteghatárok eltolódhatnak. Így a viszony és a megjelenítési réteg protokolljai gyakran összeolvadnak és az elosztott alkalmazások esetében ezt a köztesréteg protokoll helyettesíti. Ezek a protokollok testesítik meg a köztesréteg V]ROJiOWDWiVRNDWpVH]HND]iOWDOiQRVFpO~SURWRNROORNDPHO\HNHWN O QE ]DONDOPD]iVRN egyaránt használnak. Így alakult ki a köztesréteg szerepe az elosztott alkalmazásokban, mint PDJDVV]LQW&NRPPXQLNiFLyVV]ROJiOWDWiVRNDWQ\~MWyUpWHJ(]HNEOQpJ\HWHPHO QNNLD távoli eljáráshívást, a távoli objektumhívást, az üzenetorientált kommunikációt és az adatfolyam orientált kommunikációt. Távoli eljáráshívás (RPC, Remote Procedure Call) Az eljárások helyi hívásakor az paraméterek és a visszatérési érték átadása a memórián NHUHV]W OW UWpQLNGHNpWJpSHVHWpQD]HOWpUFtPWDUWRPiQ\PLDWWH]QHPOHKHWVpJHVFVDN üzenetek formájában történhet ez a kommunikáció. Erre viszont nincs felkészítve az eljárás, tehát a távoli hívás elrejtése érdekében olyan programelemeket kell beépíteni, amelyek képesek elfedni ezt és az egyes operációs rendszerekben mint helyi hívást prezentálják az üzenetet. Ezek a kliens illetve szerver oldali csonkoknak (stub) nevezett elemek, feladatuk a kliens oldalon az átadott hívás esetén a rendszerhívás végrehajtása és az adatok üzenetbe csomagolása, majd eljuttatása a szerverhez. Ott a szerver oldali csonk fogadja az adatokat és HOYpJ]LD]HOMiUiVKtYiVWPLQWKDPDJDOHQQHDKtYyIRO\DPDW$YpJUHKDMWiVXWiQNDSRWW értékeket pedig átveszi, üzenetbe csomagolja és visszaküldi a kliensnek. Így végül a két csonk YpJ]LHODNRQYHUWiOiVP&YHOHWpWDUHQGV]HUKtYiVRN ]HQHWEHSDNROiViWpViWDGiViWD] elosztott alkalmazás számára viszont pont úgy viselkedik a rendszer, mintha egyetlen gép OHQQH/HJIHOMHEEDYpJUHKDMWiVLGHMpEHQiOOEHMHOHQWVQ YHNHGpVKLV]HQDPHPyULDEHOL UHIHUHQFLDiWDGiVDKHO\HWW ]HQHWN OGpVHNUOpVIRJDGiVRNUyOYDQV]y Távoli objektumhívás Felmerülhet a kérdés, ha megvalósítható a távoli eljáráshívás, felhasználhatóak-e távoli REMHNWXPRNPHWyGXVDL"/iVVXNEHKRJ\HOYLOHJQLQFVN O QEVpJDNHWWN ] WWWHKiW YDOyV]tQ&OHJPHJROGKDWyDSUREOpPDpVD]53& WOHWpWNLVPyGRVtWiVVDOLWWLVIHOKDV]QiOKDWMXN 1HPV]DEDGD]RQEDQD]53&WpVD]50,W5HPRWH0HWKRG,QYRFDWLRQWiYROLHOMiUiVKtYiV VV]HNHYHUQL$NHWW N ] WWD]ODSYHWN O QEVpJYDQD]50,XJ\DQLVWiPRJDWMDD]HJpV]HORV]WRWWUHQGV]HUEHQHJ\HGLD]RQRVtWyNDODSMiQ W UWpQREMHNWXPKLYDWNR]iVRNDWD50,5HJLVWU\VHJtWVpJpYHO Mivel az objektum egy távoli gépen helyezkedik el, metódusának meghívása egy, a kliens oldalon implementált interfészen keresztül történik. Ez a kliens oldali interfész (proxy) tölti be
a kliens csonk szerepét és üzenetként küldi az adatokat a szerver oldali csonknak (skeleton), amely viszont az objektumnak adja át. Visszafelé hasonló úton mozognak az adatok, fordított rendszerben. A legnagyobb gond azonban a távoli objektum azonosítása a saját rendszerében. Míg helyi objektumok esetében ez könnyen megoldható az objektum adott körben érvényes UHIHUHQFLiMDVHJtWVpJpYHOHJ\ ]HQHWNpQWpUNH]REMHNWXPKtYiVSRQWRVDEEDQD]REMHNWXP metódusának hívása) csak akkor éri el az objektumot, ha azt a teljes elosztott rendszerben HJ\pUWHOP&HQD]RQRVtWDQLWXGMXN(KKH]DWiYROLJpSHJ\HGLD]RQRVtWyMiWD]85,WpVD]DGRWW gépen az objektum azonosítóját kell összekapcsolni a Java névszolgáltatás segítségével (JNDI), amely összekapcsolást a távoli gépen futó RMI Registry szolgáltatás tárolja és EL]WRVtWMDD] ]HQHWHOMXWWDWiViWDPHJIHOHOREMHNWXPKR](QQHNSRQWRVIHOpStWpVpUONpVEE OHV]PDMGV]yUpV]OHWHVHQDPHJIHOHOIHMH]HWEHQ Üzenetorientált kommunikáció $]HO]HNEHQKDOOJDWyODJRVDQIHOWpWHOH]W NKRJ\DV]HUYHUROGDOYDJ\iOWDOiQRVViJEDQD IRJDGyROGDOKR]]iIpUKHWDNpUpVN OGpVHLGHMpQGHH]QHPYHKHWEL]RQ\RVUDDOHJW EE esetben (szerver túlterhelt, kikapcsolt, hálózati problémák, stb.). Ilyen esetekben a NRPPXQLNiFLyPHJYDOyVtWiViUDD]HORV]WRWWUHQGV]HUHNEHQD] ]HQHWFVHUHDPHJIHOHO PyGV]HU(QQHNN O QE ]YiOWR]DWDLOHKHWVpJHVHNiOWDOiEDQNpWIpOHIHORV]WiVWN O QE ]WHW N meg. Az egyik felosztás szerint tranziens és perzisztens kommunikációról beszélünk, de jellege szerint szinkron és aszinkron kommunikációra is feloszthatjuk. A perzisztens NRPPXQLNiFLyUDMHOOHP]KRJ\D] ]HQHWPLQGDGGLJDUHQGV]HUEHQPDUDGPtJDFtP]HWW QHPIRJDGMDGHH]QHPN YHWHOLPHJDN OGpVIRJDGyDONDOPD]iVHJ\LGHM&IXWiViW (J\V]HU&EHOiWQLKRJ\D]LO\HQDONDOPD]iVRNLVNRODSpOGiMDDOHYHOH]V]HUYHUDKRODOHYpO HON OGpVHpVOHW OWpVHNpWHJ\PiVWyOLGEHQMyOHOYiOyHVHPpQ\pVDNDSRWWOHYHOHNHWHJ\ N ]EHQVOHYHOH]V]HUYHUHQDVDMiWSRVWDILyNXQNWDUWDOPD]]DPtJFVDNOHQHPW OWM N 7UDQ]LHQVNRPPXQLNiFLyUyOYLV]RQWFVDNDNNRUEHV]pOKHW QNKDPLQGDN OGPLQGD IRJDGyROGDOHJ\LGHM&OHJ ]HPNpSHV$PHQQ\LEHQDIRJDGyDONDOPD]iVQHPIXWDNNRUDN OG HJ\V]HU&HQHOGREMDD] ]HQHWHW(UUHMySpOGDHJ\ZHEODSOHNpUpVHKDDZHEV]HUYHUQHPIXWD NpUpVQHPPDUDGDUHQGV]HUEHQPHJNHOOLVPpWHOQL+DYLV]RQWDE QJpV]W]iUMXNEHN ]EHQ DNpUpVHON OGpVHXWiQDOHNpUWZHEROGDOHJ\V]HU&HQHOYpV]QHPWiUROyGLNVHKRO Az aszinkron kommunikáció jelentése hasonló a többi aszinkron folyamat jelentésével, a N OGROGDODNpUpVSRVWi]iVDXWiQDYiODV]PHJpUNH]pVpWOI JJHWOHQ OIRO\WDWMDIXWiViWYDJ\ éppen leáll, az üzenet a rendszer valamelyik elemének pufferébe kerül.
6]LQNURQNRPPXQLNiFLyHVHWpQW EEHVHWHWN O QE ]WHW QNPHJDN OGUHQGV]HUXJ\DQ minden esetben valamilyen visszajelzésig blokkolódik, de a visszajelzés "mélysége" szerint KiURPIpOHDOFVRSRUWRWN O QE ]WHW QNPHJ$]HOVHVHWEHQDYLVV]DMHO]pVWDIRJDGyROGDO SXIIHUpEONDSMXNDPiVRGLNEDQDFtP]HWWHQNW UWpQNp]EHVtWpVNRUGHD]LVOHKHWKRJ\D V]HUYHUROGDOLIHOGROJR]iVLJEORNNROYDPDUDGDN OG(]HNNRPELQiFLyMiEyODN YHWNH] NRPPXQLNiFLyWtSXVRNYH]HWKHWNOH í 3HU]LV]WHQVDV]LQNURQNRPPXQLNiFLyHUUHMySpOGDDOHYHOH]UHQGV]HUHNP&N GpVH(]W D PHJROGiVW WiPRJDWMiN D] ]HQHWVRU NH]HO UHQGV]HUHN LV DPHO\HN OpQ\HJpEHQ HJ\ üzenetváltáson (és tároláson) alapuló köztesréteget feszítenek ki az elosztott alkalmazások fölé. í 3HU]LV]WHQVV]LQNURQNRPPXQLNiFLyDPHO\NpQ\V]HUPHJROGiVQDNW&QLNPLYHOV]LQNURQ NRPPXQLNiFLyFVDNDNNRUM KHWOpWUHKDDN OGpVDIRJDGyROGDOWXGHJ\PiVUyOD]D] futásuk nem lehet teljesen független egymástól, amt feltételezünk a perzisztencia DODSpUWHOPH]pVH HVHWpQ,O\HQNRU DN OGROGDOPLQLPXPHJ\ HOIRJDGiVUDYiU SpOGiXO HJ\SXIIHUWOpVD] ]HQHWIHOGROJR]yIRO\DPDWIXWiVDQHPHOIHOWpWHO í 7UDQ]LHQV DV]LQNURQ H]HQ D] HOYHQ P&N GLN D GDWDJUDPP SURWRNROO LV 8'3 D] DGDWFVRPDJ HON OGpVH XWiQ D N OG UHQGV]HU IRO\WDWMD IXWiViW pv QHP YiU VHPPLIpOH YLVV]DLJD]ROiVUD$]~J\QHYH]HWWHJ\LUiQ\~53&LVH]HQD]HOYHQP&N GLN í 7UDQ]LHQVV]LQNURQNRPPXQLNiFLyDKRODN OGEORNNROiVDD] ]HQHWQ\XJWi]iViLJWDUW (1), vagy az üzenet kézbesítéséig tart (2), vagy az üzenet feldolgozásáig tart (3). Az 53&pVD]50,WHFKQLNDSpOGiXOH]HNDODSMiQP&N GLN A gyakorlatban ritkán találkozunk tiszta típusokkal, mivel mint a perzisztens, mind a tranzies NRPPXQLNiFLyNHVHWpQD]HOQ\ NpVKiWUiQ\RNV]iPRVDN$PLNRUV]HU&HORV]WRWWUHQGV]HUHN többnyire egy-egy üzenetorientált modellre épülnek, amelyet a szállítási réteg biztosít. A tranziens kommunikációhoz a szabványosított réteg interfész a protokollkészlet kezeléséhez HJ\V]HU&SULPLWtYHNHWEL]WRVtWH]HNNHOYDOyVtWRWWiNPHJD] VV]HVHOHPLNRPPXQLNiFLyV P&YHOHWHWVRFNHWELQGOLVWHQDFFHSWFRQQHFWVHQGUHFHLYHFORVH$SURJUDP PHWyGXVKtYiVDLH]HNHQNHUHV]W OKDMWMiNYpJUHD]DGRWW VV]HWHWWP&YHOHWHW 3HU]LV]WHQVNRPPXQLNiFLyHVHWpQHOWpUEHNHU OD] ]HQHWVRUNH]HOpVHKLV]HQYpJVVRURQD UHQGV]HUUpV]pWNpSH]LQWHOOLJHQVSXIIHU ]HQHWVRUIHOHOVD] ]HQHWHNFpOEDMXWWDWiVipUW$] alkalmazások felé mutatott interfész négy primitívet valósít meg (put, get, poll és notify). (]HNHOHJHQGHND] VV]HVIRQWRVP&YHOHWHOYpJ]pVpKH]IHODGDWXNVRUUHQGEHQ ]HQHW berakása illetve kivétele, az üzenetsor lekérdezése (adott üzenet bent van-e a pufferben?) és új üzenet beérkezésekor az érdekeltek értesítése. $] ]HQHWVRUNH]HOUHQGV]HU QiOOyHOHPD]HORV]WRWWDONDOPD]iVRNEDQpVtJ\VDMiWMyO HON O QtWHWWIHOGDWDLYDQQDN$SHU]LV]WHQVNRPPXQLNiFLyMHOOHJpEODGyGLNKRJ\PLQGHQ HJ\HV ]HQHWWXGMD QPDJiUyOKRJ\KRYDV]iQWiND]D]WDUWDOPD]HJ\FtPPH]W$
NH]HOUHQGV]HUYLV]RQWV] NVpJV]HU&HQRO\DQDGDWEi]LVWLVNHOOKRJ\WDUWDOPD]]RQDPHO\EHQ megtalálhatók a cél várakozási sorok azonosítói és azok hálózati címe is. Természetesen a QpYIHOROGiVWLVHONHOOYpJH]QLHH]D]HPDLO'16UHQGV]HUpYHODQDOyJPyGRQP&N GLN Adatfolyam orientált kommunikáció Az elosztott rendszerekben, többnyire számítógépek között olyan adatcsere, adatátvitel is folyhat, ahol nem egymástól többé-kevésbé független csomagok vagy blokkok átvitele zajlik, hanem egymáshoz szorosan kapcsolódó adategységek kerülnek továbbításra. Ilyen adatátvitel W UWpQLNKDQJYDJ\YLGHRYDOyVLGHM&iWYLWHOHHVHWpQ,WWD]HOEELHNEHQWiUJ\DOWFVRPDJV]HU& iwylwhoohov]hpehqirqwrvd]lg]twpvpvd]hj\hveornnrniwylwholvruuhqgmhlvhoohqnh] esetben a fogadó oldalon meg kellene várni a teljes adatmennyiség átvitelét és csak ezt N YHWHQNH]GGKHWQHPHJDOHMiWV]iVD]D]SRQWRVDQD]WDYDOyVLGHM&iWYLWHOWYHV]tWHQpQNHO DPHO\HWHOpUQLNtYiQXQN+DQLQFVV] NVpJYDOyVLGHM&OHMiWV]iVUDDNNRUD]HJpV] NRPPXQLNiFLyHJ\V]HU&IiMOOHW OWpVVpDODNXOGHHEEHQD]HVHWEHQQHPLVEHV]pOKHW QN HORV]WRWWUHQGV]HUUOKLV]HQQHPVLNHU OWHOIHGQ QNDW EEHJ\VpJEOiOOyUHQGV]HUMHOHQOpWpW,VPHUWKRJ\HJ\PR]JyNpSYLGHRILOPpOYH]KHWOHMiWV]iViKR]DV]HP QNpU]pNHQ\VpJpQHN PHJIHOHOHQPiVRGSHUFHQNpQWPLQLPXPNpSHWNHOOPHJMHOHQtWHQ QN(]DPLHVHW QNEHQ DQQ\LWMHOHQWKRJ\D]DGDWiWYLWHOWEL]WRVtWyUHQGV]HUNpSHVNHOOOHJ\HQD]HQQHNPHJIHOHO DGDWPHQQ\LVpJWRYiEEtWiViUDDGRWWLGWDUWRPiQ\EDQpVH]WUiDGiVXOLG]tWYHNHOOEL]WRVtWDQL azaz a kommunikáció ebben a felbontásban egyenletes kell legyen. Hang átvitele esetén is KDVRQOyDKHO\]HWRWWD&'PLQVpJ&KDQJiWYLWHOpKH]D+]IUHNYHQFLiM~ PLQWDYpWHOH]pVQHNPHJIHOHOHQDELWHVPLQWiNHJ\PiVWHJ\HQOHWHVHQ másodperces gyakorisággal kell, hogy kövessék. (]HNHWD]iWYLWHOHNHWHORV]WRWWUHQGV]HUHNEHQDGDWIRO\DPRNNDOYpJ]LNDPHO\HNLG]tWpVH PHJIHOHOSURWRNROORNKDV]QiODWiYDOPHJROGKDWy$]LG]tWpVV]HULQWKiURPIpOHiWYLWHOLPyGRW különböztetünk meg az alábbiak szerint. $V]LQNURQiWYLWHOHVHWpQQLQFVHQHNLG]tWpVLPHJN WpVHNSpOGiXOGLV]NUpWPpGLiW 2 kell átvinni), így ezt az átviteli módot alkalmazhatjuk minden olyan esetben, ahol az információ PLO\HQVpJHQHPI JJD]LG]tWHWWPHJMHOHQtWpVWO 2 Diszkrét média alatt értünk például programkódot vagy olyan szöveges illetve képi megjelenítést, ahol az egyes HOHPHNVRUUHQGMHIRQWRVGHQLQFVN ] WW NLGEHOLI JJpV
6]LQNURQiWYLWHOHVHWpQPiUOpQ\HJHVD]DGDWHJ\VpJHNLG]tWHWWiWYLWHOHiPDJ\RUVDEEiWYLWHO D]HJ\HVLGLQWHUYDOOXPRNRQEHO OHQJHGpO\H]HWW,O\HQNRUIRJDGyROGDOLSXIIHUDONDOPD]iViYDO D]HJ\HVEORNNRNiWYLWHOLVHEHVVpJpWOI JJHWOHQ OPHJROGKDWyD]LG]tWHWWPHJMHOHQtWpV Izoszinkron átvitel esetében már a fenti szabadsági fok sem áll rendelkezésünkre, a minimális pvdpd[lpiolviwylwhollglvn W WW(]WDONDOPD]]XNHORV]WRWWPXOWLPpGLiVUHQGV]HUHNEHQ hang vagy mozgókép átvitele esetén. 0XOWLPpGLiVUHQGV]HUHNEHQQHPFVDNHJ\V]HU&DGDWIRO\DPRNiWYLWHOpWNHOOPHJROGDQL HJ\V]HU&DGDWIRO\DPEDQHJ\HWOHQLQIRUPiFLyVRUR]DWiWYLWHOpUOYDQV]ySpOGiXOHJ\KDQJ YDJ\NpSFVDWRUQDiWYLWHOpUOKDQHPW EEN O QE ]DGDWIRO\DPHJ\PiVVDOV]LQNURQEDQOHY DOIRO\DPDLQDNiWYLWHOpWLVPHJNHOOROGDQL,O\HQOHKHWHJ\NpSFVDWRUQDpVDNtVpUKDQJYDJ\ V]WHUHRKDQJ]iVHVHWpQD]HJ\HVROGDODNDWiWYLYFVDWRUQD%RQ\ROXOWDEEHVHWHNEHQSpOGiXOD] ötcsatornás surround sound) több csatorna szinkronizált átvitelét is meg kell oldani. $ONDOPD]iVWHUYH]LpVSURJUDPR]yLV]HPSRQWEyOD]iWYLWHOUHNHU OIRO\DPRWHJ\DIRUUiVpV DQ\HON ] WWLYLUWXiOLV VV]HN WWHWpVQHNIRJKDWMXNIHODKRODNpWYpJSRQWEiUPLOHKHW$] HORV]WRWWDONDOPD]iVRNHJ\N O QFVRSRUWMiWMHOHQWLND]RNDUHQGV]HUHNDKRODIRJDGyQ\HO ROGDOW EEV] U ] WWLVOHKHWD]D]P&VRUV]yUyIRO\DPUyOYDQV]y Az adatfolyam orientált kommunikációról részletesen tájékozódhat még Tanenbaum és van 6WHHQ(ORV]WRWWDONDOPD]iVRNN Q\YpEOGHDWDQWiUJ\NHUHWpEHQH]]HOPpO\HEEHQQHP foglalkozunk. Hálózati protokollok $KKR]KRJ\NpWSRQWN ] WWLNRPPXQLNiFLyOpWUHM KHVVHQpVDNpWYpJSRQWRQHOKHO\H]NHG alkalmazás vagy eszköz megértse egymást, standard protokollokra van szükség, amit mindkét kommunikáló oldal értelmezni tud. Az elosztott alkalmazások esetében a hálózati kommunikációt többnyire a TCP/IP protokoll biztosítja, de bizonyos esetekben az erre UipS O+773SURWRNROOEL]WRVtWMDD]DGDWIRUJDOPDW(]XWyEELQDJ\HOQ\HKRJ\PLYHO NDUDNWHUHNiWYLWHOpUHNpSHVN W WWIRUPiWXPEDQDONDOPD]KDWyHJ\HVW&]IDOODOYpGHWW rendszerek esetében is. Fontosságuk miatt ismerkedjünk meg ezekkel kicsit részletesebben. TCP/IP protokoll HTTP protokoll +ioy]dw,3ftpdokioy]dwdokioy]dwlpdv]nurxwhu~wyiodv]wyh]hndnlihmh]pvhnj\dnudqhoirugxoqdnkioy]dwl alkalmazások esetén. Tekintsük át röviden, mi mit jelent ebben a rendszerben. A hálózat egyaránt jelent LAN-t és Internetet, ez utóbbi, mint a hálózatok hálózata a legnagyobb részben helyi hálózatokból épül fel. A LAN és a világ
többi része közötti kapcsolatot a router biztosítja, amely az alhálózati maszk segítségével különbséget tud tenni a KHO\LKiOy]DWpVD]H]HQNtY OHOKHO\H]NHGJpSHNN ] WW$]DOKiOy]DWLPDV]NHJ\D],3FtPPHOD]RQRVIHOpStWpV& FtPDPHO\EHQD]HJ\HVPH]NEHQEHiOOtWRWWpUWpNHN VV]HYHWYHDFtP]pVEHQPHJDGRWW,3FtPPHODGMiNPHJD számítógép hovatartozását és így az útválasztás irányát is. Egy példán szemléltetve, a 192.168.1.25 IP cím és a 255.255.255.0 alhálózati maszk együtt egy olyan számítógépet határoz meg, amely a 192.168.1 doménen belül KHO\H]NHGLNHOD]D]D],QWHUQHWNLNHU OpVpYHOD/$1KiOy]DWRQNHUHV]W ON ]YHWOHQ OHOpUKHWpVDKHO\LKiOy]DW VD]RQRVtWyV]iP~JpSH(]]HOV]HPEHQDNH]GHW&,3FtPUODURXWHUU JW QWXGMDD]DOKiOy]DWLPDV]NNDO VV]HYHWYHKRJ\QHPWDOiOKDWyD/$1KiOy]DWRQEHO OD]D]D]LGHLUiQ\XOyNpUpVWDEHOVKiOy]DWRQNtY OUHNHOO továbbítani.