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]WOWLSLNXVWHFKQROyJLiNDWPXWDWXQNEHHOVVRUEDQD-DYDQ\HOY
Q\~MWRWWDOHKHWVpJHNN|UpEO7iUJ\DOiVUDNHUOQHNRO\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]HQEHOODODSYHWRV]WiO\RNLVPHUHWHpVNH]HOpVH6]NVpJYDQ
EL]WRVSURJUDPR]iVLMiUWDVViJUDpVVRNV]RUHONHUOQHNDV]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
HONHUOpVpUHJ\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\RNpVFVRPDJRN NO|QE|]Q\LWRWWSURMHNWHNNHUHWpEHQ(]HNWDOiQOHJLVPHUWHEEMHD] Apache projekt.
Kezdetben volt az Apache webszerver1DZHEV]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 NHUHWpQEHOOZZZDSDFKHRUJ eUGHNHVVpJNpSSHQiOOMRQLWWHJ\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\HVSURMHNWHNDIHMOGpVVRUiQNLNHUOQHNDUHQGV]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]HWWVpJNHWD]
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|]YHWOHQOV]ROJiO±DSURMHNWMHLQEHOOHJ\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
NtYOUOQp]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
HOWQWHWpVH$]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
)HOPHUOKHWDNpUGpVKRJ\DPLQGHQNLiOWDOHJ\EOEHOiWKDWyDQKDV]QRV,QWHUQHWPHOOHWWPLpUW pUGHPHVHORV]WRWWDONDOPD]iVRNDWOpWUHKR]QL$]HOVORJLNXVYiODV]DGUiJDHUIRUUiVRNpVD IHOKDV]QiOyN|VV]HNDSFVROiViQDNDOHKHWVpJHGHLGHWDUWR]QDND]HJ\HVFVRSRUWPXQND
V]RIWYHUHNLVDPHO\HNVHJtWVpJpYHOI|OGUDM]LHOKHO\H]NHGpVWOIJJHWOHQOKR]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 1
elhelyezkedés (location)
2
3
5
HOUHMWLD]HJ\HVHUIRUUiVRNPiVPiVV]iPtWyJpSHQW|UWpQ
(relocation)
elhelyezését
mozgathatóság
7
8
HOUHMWLD]pSSHQKDV]QiODWEDQOHYHUIRUUiVPiVIL]LNDLKHO\UH
W|UWpQiWKHO\H]pVpW
hozzáférés
HOUHMWLD]HJ\HVHUIRUUiVRNHOpUpVLPyGMiWpVD]DGDWiEUi]ROiVL
(access)
különbségeket
többszörözöttség (replication)
6
HOUHMWLD]HJ\HVHUIRUUiVRNIL]LNDLHOKHO\H]NHGpVpW
iWKHO\H]KHWVpJ
(migration) 4
teljesül, ha az alkalmazás
HOUHMWLD]HJ\HVHUIRUUiVRNW|EEV]|U|]|WWVpJpW
HJ\LGHM&VpJ
PHJROGMDD]HJ\HVHUIRUUiVRNHVHWpEHQDYHUVHQ\KHO\]HWEO
(concurrency)
adódó megosztását
állandóság
HOUHMWLD]DGDWDV]RIWYHUHUIRUUiVPHPyULDYDJ\KiWWpUWiUROyQ
(persistence)
való elhelyezkedését
meghibásodás
HOUHMWLD]HUIRUUiVKLEiNDWOHiOOiVWFVHUpW~MUDLQGtWiVW
(failure) %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\WHUOHWHWOHIHGKiOy]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
HONHUOKHWHWOHQODNDSDFLWiVFV|NNHQpVpYHOMiU,O\HQHVHWHNNHOPiUHOUHV]iPROQLNHOOpV
pUWHOHPV]HU&HQQHPWHUYH]KHWHOUHDGRWWPHQQ\LVpJ&V]iPtWiVHOYpJ]pVHYiOWR]yNDSDFLWiV~ rendszerben.
$PpUHWQ|YHOpVVHOMiUySUREOpPiNDWNO|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]ROJiOQDNDNO|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]HWMNDSUREOpPiWD]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]iP V]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\HVUpWHJHNNO|QE|]V]iPtWyJpSHNHQKHO\H]NHGQHNHO
PiUHORV]WRWWUHQGV]HUHNUONHOOEHV]pOQQN,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]pOKHWQN$]HOEELHVHWEHQKDUGYHUV]HPSRQWEyOPHJNO|QE|]WHWKHWQN 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]LNDLODJHONO|QO
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]iPtWyJpSHNEONOyQRN iOOyHORV]WRWWUHQGV]HUHNHVHWpQD]HJ\HV
JpSHNHWHOUHQGH]KHWMNHJ\UiFVSRQWMDLEDQYDJ\V]iPtWyJpSEOiOOyEORNNRNEDQ
~J\QHYH]HWWKLSHUNRFNDIRUPiMiEDQ$J\DNRUODWEDQVRNV]RUHONHUOHORV]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]DGDWRNPHPULiQNHUHV]WOW|UWpQiWDGiVDQHP
lehetséges. Ezért a kommunikáció az üzenetátadás szintjére szorul vissza, azonban ez sem HJ\V]HU&PHUWD]]HQHWNOGpVD]]HQHWIRJDGyPHJNHOOHJ\H]]HQD]]HQHWSRQWRV
V]HUNH]HWpEHQLVHJ\PiVN|]|WW$OHJJ\DNUDEEDQSHUV]HQHPNpWROGDO~HJ\H]NHGpVUOYDQ V]yKDQHPRO\DQiOWDOiQRVpVV]DEYiQ\RVtWRWWUHQGV]HUUO]HQHWV]HUNH]HWUO DPLWD
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|UOKDWiUROKDWyIHOHOVVpJHNHWDGWDNPHJ$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.
7 6 5 4 3 2 1
Réteg elnevezése alkalmazási megjelenítési viszony szállítási hálózati adatkapcsolati fizikai
$NDSFVRODWRWOpWHVtWSURWRNROO alkalmazási protokoll megjelenítési protokoll viszonyprotokoll szállítási protokoll hálózati protokoll adatkapcsolati protokoll fizikai protokoll
A fizikai hálózat (hardver) ábra. Az OSI modell rétegei
(J\DONDOPD]iVV]LQW&]HQHWHONOGpVHHEEHQDUHQGV]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|UWpQHONOGpVH$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
PHJIHOHONLNOGMND]]HQHWHWPLQGHQJpSUHpVD]LOOHWpNHVHONDSMD DQDJ\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]WDFVSRVWiWSLSHOLQH DPHO\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]yiPIJJHWOHQOLVP&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]WODNDSFVRODWOH]iUiViLJ mindent együtt kezel.
$IHOVEEUpWHJHNKDWiUDLQHPPLQGHQHVHWEHQpOHVHND]D]NO|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\HNHWNO|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\HWHPHOQNNLD
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]WOW|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]HQHWNOGpVHNUOpVIRJDGiVRNUyOYDQV]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\HOYLOHJQLQFVNO|QEVpJDNHWWN|]|WWWHKiW
YDOyV]tQ&OHJPHJROGKDWyDSUREOpPDpVD]53&|WOHWpWNLVPyGRVtWiVVDOLWWLVIHOKDV]QiOKDWMXN 1HP V]DEDG D]RQEDQ D] 53&W pV D] 50,W 5HPRWH 0HWKRG ,QYRFDWLRQ WiYROL HOMiUiVKtYiV |VV]HNHYHUQL $ NHWW N|]|WWD]ODSYHW
NO|QEVpJYDQD]50,XJ\DQLVWiPRJDWMDD]HJpV] HORV]WRWWUHQGV]HUEHQHJ\HGLD]RQRVtWyNDODSMiQ
W|UWpQ REMHNWXPKLYDWNR]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]WNKRJ\DV]HUYHUROGDOYDJ\iOWDOiQRVViJEDQD
IRJDGyROGDOKR]]iIpUKHWDNpUpVNOGpVHLGHMpQGHH]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(QQHNNO|QE|]YiOWR]DWDLOHKHWVpJHVHNiOWDOiEDQNpWIpOHIHORV]WiVWNO|QE|]WHWN 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|YHWHOLPHJDNOGpVIRJDGyDONDOPD]iVHJ\LGHM&IXWiViW
(J\V]HU&EHOiWQLKRJ\D]LO\HQDONDOPD]iVRNLVNRODSpOGiMDDOHYHOH]V]HUYHUDKRODOHYpO HONOGpVHpVOHW|OWpVHNpWHJ\PiVWyOLGEHQMyOHOYiOyHVHPpQ\pVDNDSRWWOHYHOHNHWHJ\ N|]EHQVOHYHOH]V]HUYHUHQDVDMiWSRVWDILyNXQNWDUWDOPD]]DPtJFVDNOHQHPW|OWMN
7UDQ]LHQVNRPPXQLNiFLyUyOYLV]RQWFVDNDNNRUEHV]pOKHWQNKDPLQGDNOGPLQGD
IRJDGyROGDOHJ\LGHM&OHJ]HPNpSHV$PHQQ\LEHQDIRJDGyDONDOPD]iVQHPIXWDNNRUDNOG
HJ\V]HU&HQHOGREMDD]]HQHWHW(UUHMySpOGDHJ\ZHEODSOHNpUpVHKDDZHEV]HUYHUQHPIXWD
NpUpVQHPPDUDGDUHQGV]HUEHQPHJNHOOLVPpWHOQL+DYLV]RQWDE|QJpV]W]iUMXNEHN|]EHQ DNpUpVHONOGpVHXWiQDOHNpUWZHEROGDOHJ\V]HU&HQHOYpV]QHPWiUROyGLNVHKRO
Az aszinkron kommunikáció jelentése hasonló a többi aszinkron folyamat jelentésével, a
NOGROGDODNpUpVSRVWi]iVDXWiQDYiODV]PHJpUNH]pVpWOIJJHWOHQOIRO\WDWMDIXWiViWYDJ\ éppen leáll, az üzenet a rendszer valamelyik elemének pufferébe kerül.
6]LQNURQNRPPXQLNiFLyHVHWpQW|EEHVHWHWNO|QE|]WHWQNPHJDNOGUHQGV]HUXJ\DQ minden esetben valamilyen visszajelzésig blokkolódik, de a visszajelzés "mélysége" szerint
KiURPIpOHDOFVRSRUWRWNO|QE|]WHWQNPHJ$]HOVHVHWEHQDYLVV]DMHO]pVWDIRJDGyROGDO
SXIIHUpEONDSMXNDPiVRGLNEDQDFtP]HWWHQNW|UWpQNp]EHVtWpVNRUGHD]LVOHKHWKRJ\D
V]HUYHUROGDOLIHOGROJR]iVLJEORNNROYDPDUDGDNOG(]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|KHWOpWUHKDDNOGpVDIRJDGyROGDOWXGHJ\PiVUyOD]D] futásuk nem lehet teljesen független egymástól, amt feltételezünk a perzisztencia DODSpUWHOPH]pVH HVHWpQ ,O\HQNRU D NOG ROGDO PLQLPXP HJ\ HOIRJDGiVUD YiU SpOGiXO HJ\SXIIHUWO pVD]]HQHWIHOGROJR]yIRO\DPDWIXWiVDQHPHOIHOWpWHO í 7UDQ]LHQV DV]LQNURQ H]HQ D] HOYHQ P&N|GLN D GDWDJUDPP SURWRNROO LV 8'3 D] DGDWFVRPDJ HONOGpVH XWiQ D NOG UHQGV]HU IRO\WDWMD IXWiViW pV QHP YiU VHPPLIpOH YLVV]DLJD]ROiVUD$]~J\QHYH]HWWHJ\LUiQ\~53&LVH]HQD]HOYHQP&N|GLN í 7UDQ]LHQVV]LQNURQNRPPXQLNiFLyDKRODNOGEORNNROiVDD]]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]WOKDMWMiNYpJUHD]DGRWW|VV]HWHWWP&YHOHWHW
3HU]LV]WHQVNRPPXQLNiFLyHVHWpQHOWpUEHNHUOD]]HQHWVRUNH]HOpVHKLV]HQYpJVVRURQD
UHQGV]HUUpV]pWNpSH]LQWHOOLJHQVSXIIHU]HQHWVRU IHOHOVD]]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
HONO|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]pOKHWQN
HORV]WRWWUHQGV]HUUOKLV]HQQHPVLNHUOWHOIHGQQNDW|EEHJ\VpJEOiOOyUHQGV]HUMHOHQOpWpW
,VPHUWKRJ\HJ\PR]JyNpSYLGHRILOP pOYH]KHWOHMiWV]iViKR]DV]HPQNpU]pNHQ\VpJpQHN PHJIHOHOHQPiVRGSHUFHQNpQWPLQLPXPNpSHWNHOOPHJMHOHQtWHQQN(]DPLHVHWQNEHQ 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]NUpWPpGLiW2 kell átvinni), így ezt az átviteli módot alkalmazhatjuk minden olyan esetben, ahol az információ
PLO\HQVpJHQHPIJJD]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 EHOLIJJpV
HOHPHNVRUUHQGMHIRQWRVGHQLQFVN|]|WWNLG
6]LQNURQiWYLWHOHVHWpQPiUOpQ\HJHVD]DGDWHJ\VpJHNLG]tWHWWiWYLWHOHiPDJ\RUVDEEiWYLWHO
D]HJ\HVLGLQWHUYDOOXPRNRQEHOOHQJHGpO\H]HWW,O\HQNRUIRJDGyROGDOLSXIIHUDONDOPD]iViYDO
D]HJ\HVEORNNRNiWYLWHOLVHEHVVpJpWOIJJHWOHQOPHJROGKDWyD]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\NpSFVDWRUQDiWYLWHOpUO KDQHPW|EENO|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]iWYLWHOUHNHUOIRO\DPRWHJ\DIRUUiVpV
DQ\HON|]|WWLYLUWXiOLV|VV]HN|WWHWpVQHNIRJKDWMXNIHODKRODNpWYpJSRQWEiUPLOHKHW$]
HORV]WRWWDONDOPD]iVRNHJ\NO|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
UipSO+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
IRUGXOQDN KiOy]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
+iOy]DW ,3 FtP DOKiOy]DW DOKiOy]DWL PDV]N URXWHU ~WYiODV]Wy H]HN D NLIHMH]pVHN J\DNUDQ HO
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\L KiOy]DW pV D] H]HQ NtYO HOKHO\H]NHG JpSHN N|]|WW $] DOKiOy]DWL PDV]N HJ\ D] ,3 FtPPHO D]RQRV IHOpStWpV& FtP DPHO\EHQ D] HJ\HV PH]NEHQ EHiOOtWRWW pUWpNHN |VV]HYHWYH D FtP]pVEHQ PHJDGRWW ,3 FtPPHO DGMiN PHJ D 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],QWHUQHWNLNHUOpVpYHOD/$1KiOy]DWRQNHUHV]WON|]YHWOHQOHOpUKHWpVDKHO\LKiOy]DW |VD]RQRVtWyV]iP~JpSH(]]HOV]HPEHQDNH]GHW&,3FtPUODURXWHUU|JW|QWXGMDD]DOKiOy]DWLPDV]NNDO |VV]HYHWYH KRJ\ QHP WDOiOKDWy D /$1 KiOy]DWRQ EHOO D]D] D] LGH LUiQ\XOy NpUpVW D EHOV KiOy]DWRQ NtYOUH NHOO továbbítani.