Menu Zavrieť

2.1.  Architektúry sieťových aplikácií

Je bežné, že dve rôzne sieťové aplikácie od rôznych výrobcov, a pokojne aj na rôznych operačných systémoch, spolu na internete normálne komunikujú. Komunikácia medzi ľubovoľnými dvoma spustenými programami je realizovaná správami, ktoré si navzájom vymieňajú. To, že si tieto programy rozumejú, umožňujú aplikačné protokoly, ktoré určujú, aké správy si majú tieto aplikácie posielať. Stačí, že týmto správam rozumejú iba tieto dva programy. Ostatné sieťové zariadenia na ceste nijako tieto správy nespracúvajú ani neanalyzujú (za normálnych okolností). Vývoj nových aplikačných protokolov je teda úplne nezávislý od fungovania siete a prenosu správ v nej.

Každý aplikačný sieťový protokol definuje:

  • typy správ, ktoré si programy posielajú (požiadavky, odpovede, informácie, rôzne typy dát)
  • syntax správ určujúcu, ako budú jednotlivé správy vyzerať, z čoho budú zložené a aké hodnoty môžu jednotlivé časti správy obsahovať
  • sémantiku správ predstavujúcu význam jednotlivých správ a informácií v nich
  • okolnosti, za ktorých sa jednotlivé správy posielajú

Definícia verejných aplikačných protokolov je daná v ich voľne prístupných RFC špecifikáciách. Súkromné aplikačné protokoly neumožňujú vývoj nových koncových programov a ako serverovú, tak aj klientsku časť musí zabezpečiť jeden programátor (alebo skupina programátorov, ktorá sa na danom protokole dohodla).

Pred samotným písaním nového protokolu je potrebné si uvedomiť, akú rolu budú hrať jednotlivé časti sieťovej aplikácie. Sieťové aplikácie sa z tohto pohľadu dajú rozdeliť na tri skupiny:

  • klient/server architektúra
    • Predpokladá, že na internete je jeden alebo viac stále zapnutých počítačov s pevnou IP adresou nazývaných servery. Na týchto počítačoch beží serverová časť sieťovej aplikácieKlienti spúšťajú a vypínajú klientsku časť sieťovej aplikácie podľa potreby. Môžu mať dynamickú IP adresu, môžu sa tiež nachádzať v privátnej sieti za NAT routrom. Klienti komunikujú vždy iba so serverom, nikdy nie s ostatnými klientmi. Server musí byť často výkonný počítač alebo dokonca klaster niekoľkých serverov, aby zvládol nápor množstva klientov.
    • napríklad web servery, ftp servery, DNS servery, AiS2
  • peer-to-peer architektúra
    • Žiaden z počítačov nemusí byť stále zapnutý. Peer-ovia sú niekedy klientmi, niekedy servermi a často oboma naraz. Môžu sa odpájať a pripájať podľa ľubovôle. Záťaž je rozložená oveľa rovnomernejšie ako v prípade klient/server architektúry. Manažovanie siete je dosť ťažké.
    • napríklad Gnutella, Freenet
  • Hybrid klient/server a peer-to-peer architektúry
    • Stále zapnutý server sa používa iba na registráciu a vyhľadávanie napojených peerov, prípadne indexovanie ich dát. Samotné nosné dátové prenosy sa dejú už medzi jednotlivými peermi.
    • napríklad Jabber, Skype, BitTorrent, DCC