Networking and communication
a hálózatépítés és kommunikáció területe magában foglalja a számítógépeket összekapcsoló helyi, széles körű és mobilhálózatok elemzését, tervezését, megvalósítását és használatát. Maga az Internet olyan hálózat, amely lehetővé teszi a világ szinte minden számítógépének kommunikációját.
a számítógépes hálózat infravörös fényjelek, rádióhullámok, telefonvonalak, televíziós Kábelek és műholdas kapcsolatok kombinációján keresztül köti össze a számítógépeket. A számítógépes tudósok számára az volt a kihívás, hogy olyan protokollokat (szabványosított szabályok Az üzenetek formátumára és cseréjére) dolgozzanak ki, amelyek lehetővé teszik a gazdagépeken futó folyamatok számára, hogy értelmezzék a kapott jeleket, és értelmes “beszélgetéseket” folytassanak a felhasználók nevében végzett feladatok elvégzése érdekében. A hálózati protokollok magukban foglalják az áramlásszabályozást is, amely megakadályozza, hogy az adatküldő elárassza a Vevőt olyan üzenetekkel, amelyeknek nincs ideje feldolgozni vagy tárolni a helyet, valamint a hibakezelést, amely magában foglalja az átviteli hibák észlelését és az üzenetek automatikus újraküldését az ilyen hibák kijavítása érdekében. (A hibák észlelésének és javításának néhány technikai részletét lásd: információelmélet.)
a protokollok szabványosítása nemzetközi erőfeszítés. Mivel egyébként lehetetlen lenne a különböző típusú gépek és operációs rendszerek kommunikálni egymással, a legfontosabb aggodalom az volt, hogy a rendszerkomponensek (számítógépek) “nyitottak legyenek.”Ez a terminológia a Nemzetközi Szabványügyi Szervezet által létrehozott open systems interconnection (OSI) kommunikációs szabványokból származik. Az OSI referenciamodell hét rétegben határozza meg a hálózati protokoll szabványokat. Minden réteget az alatta lévő réteg függvényei, valamint a fölötte lévő rétegnek nyújtott szolgáltatások határoznak meg.
a protokoll alján található a fizikai réteg, amely szabályokat tartalmaz a bitek fizikai kapcsolaton keresztüli szállítására. Az adatkapcsolati réteg szabványos méretű “adatcsomagokat” kezel, és növeli a megbízhatóságot hibadetektálás és áramlásszabályozó bitek formájában. A hálózati és szállítási rétegek az üzeneteket szabványos méretű csomagokra bontják,és a célállomásukra irányítják. A munkamenet réteg támogatja az alkalmazások közötti interakciókat két kommunikációs gépen. Például olyan mechanizmust biztosít, amellyel ellenőrző pontokat lehet beilleszteni (egy feladat aktuális állapotának mentése) egy hosszú fájlátvitelbe, így hiba esetén csak az utolsó ellenőrzőpont utáni adatokat kell továbbítani. A prezentációs réteg az adatokat kódoló funkciókkal foglalkozik, így a heterogén rendszerek értelmes kommunikációt folytathatnak. A legmagasabb szinten vannak olyan protokollok, amelyek támogatják az egyes alkalmazásokat. Ilyen alkalmazásra példa a file transfer protocol (FTP), amely szabályozza a fájlok átvitelét egyik gazdagépről a másikra.
a hálózatok és kommunikációs protokollok fejlesztése olyan elosztott rendszereket is hozott létre, amelyekben a hálózatba kapcsolt számítógépek adat-és feldolgozási feladatokat osztanak meg. Az elosztott adatbázis-rendszernek például van egy adatbázisa, amely különböző hálózati webhelyek között terjed (vagy replikálódik). Az adatokat a “tükörhelyeken” replikálják, és a replikáció javíthatja a rendelkezésre állást és a megbízhatóságot. Az elosztott DBMS olyan adatbázist kezel, amelynek összetevői a hálózat több számítógépén vannak elosztva.
a kliens-szerver hálózat olyan elosztott rendszer, amelyben az adatbázis egyetlen számítógépen (a kiszolgálón) található, és a felhasználók a hálózaton keresztül a saját számítógépükről (a kliensekről) csatlakoznak ehhez a számítógéphez. A szerver adatokat szolgáltat és válaszol az egyes kliensek kéréseire, miközben minden kliens olyan módon fér hozzá a szerveren lévő adatokhoz, amely független és tudatlan az azonos adatbázishoz hozzáférő más kliensek jelenlététől. Az ügyfél-kiszolgáló rendszerek megkövetelik, hogy több ügyféltől a kiszolgáló adatbázisának ugyanazon részéhez tartozó egyedi műveleteket szinkronizálják, hogy a konfliktusok ésszerű módon megoldódjanak. Például a légitársaságok foglalásait kliens-szerver modell segítségével valósítják meg. A szerver tartalmazza a közelgő járatokra vonatkozó összes adatot, például az aktuális foglalásokat és az ülések kiosztását. Minden ügyfél hozzá akar férni ezekhez az adatokhoz egy járat foglalása, egy helykiosztás megszerzése és a járat kifizetése céljából. E folyamat során valószínű, hogy két vagy több ügyfél kérése ugyanazt a járatot kívánja elérni, és csak egy helyet kell kijelölni. A szoftvernek szinkronizálnia kell ezt a két kérést, hogy a fennmaradó helyet racionális módon rendeljék hozzá (általában annak a személynek, aki először kérte).
az elosztott rendszerek másik népszerű típusa a peer-to-peer hálózat. Az ügyfél-szerver hálózatokkal ellentétben a peer-to-peer hálózat feltételezi, hogy minden hozzá csatlakoztatott számítógép (felhasználó) mind kliensként, mind szerverként működhet; így a hálózaton mindenki peer. Ennek a stratégiának van értelme olyan csoportok számára, amelyek hanggyűjteményeket osztanak meg az interneten, valamint olyan közösségi hálózatok szervezésére, mint a LinkedIn és a Facebook. Minden ilyen hálózathoz csatlakozó személy információt kap másoktól, és megosztja saját információit másokkal.