1 / 25

Internet aplikacije i mrežno programiranje

Internet aplikacije i mrežno programiranje. Internet komunikacione paradigme. Internet podržava dve osnovne komunikacione paradigme: paradigmu toka ( stream ) i paradigmu poruke ( message ). Transport toka na Internetu.

truly
Download Presentation

Internet aplikacije i mrežno programiranje

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Internet aplikacije i mrežno programiranje

  2. Internet komunikacione paradigme Internet podržava dve osnovne komunikacione paradigme:paradigmu toka(stream) i paradigmu poruke(message).

  3. Transport toka na Internetu Izraz tokoznačava paradigmu u kojoj sekvenca bajtova teče od jednog aplikativnog programa do drugog. Internet mehanizam organizuje dva toka između para komunikacionih aplikacija, jedan u svakom smeru. Mehanizam toka prenosi sekvencu bajtova bez dodeljivanja značenja tim bajtovima i bez umetanja granica.

  4. Prenos poruka na Internetu Alternativni Internet komunikacioni mehanizam sledi paradigmu poruke u kojoj mreža prihvata i isporučuje poruke. Svaka poruka isporučena do primaoca odgovara poruci koju je poslao pošiljalac;mreža nikad ne isporučuje deo poruke, niti spaja više poruka zajedno. Porukemogu da budu: Izgubljene (tj, nikad isporučene) Duplirane (stiže više od jedne kopije) Isporučene bez reda Paradigma poruke obezbeđuje komunikacije 1-na-1, 1-na-mnoge, ili mnogi-na-1. Poruka se može poslati sa aplikacije na jednom kompjuteru direktno do aplikacije na drugom, poruka se može poslati (broadcast) do svih kompjutera na datoj mreži, ili se može poslati (multicast) do nekih kompjutera na mreži.

  5. Komunikacija orijentisana na konekciju Internet servis toka je orijentisan na konekciju (connection-oriented), što znači da servis funkcioniše analogno telefonskom pozivu. Pre nego što bi mogle da komuniciraju, dve aplikacije moraju zahtevati da se konekcija kreira.

  6. Algoritam komunikacije preko mehanizma orijentisanog na konekciju Svrha: Interakcija preko mehanizma orijentisanog na konekciju Metod: Par aplikacija zahteva konekciju Taj par koristi konekciju za razmenu podataka Taj par zahteva da se konekcija prekine

  7. Klijent-server model interakcije

  8. Karakteristike klijenata i servera Klijent softver: Je proizvoljan aplikativni program koji postaje klijent privremeno kada je potreban pristup na daljinu, ali takođe vrši i druge poslove Direktno ga pokreće korisnik, i koristi ga za jednu sesiju Pokreće se lokalno na korisnikovom ličnom kompjuteru Može da pristupi višestrukim servisima ako je potrebno, ali obično kontaktira jednog po jednog udaljenog servera Server softver: Je privilegovan program posebne namene posvećen obezbeđivanju usluge koja može da radi sa višestrukim udaljenim klijentima u isto vreme Pokreće se atomatski kada se sistem pokreće, i nastavlja da radi kroz mnoge sesije Pokreće se na velikom, moćnom kompjuteru Pasivno čeka kontakt od nekog udaljenog klijenta Prihvata kontakt od nekog udaljenog klijenta, ali nudi jednu uslugu Zahteva moćan hardver i sofisiticiran operativni sistem

  9. Višestruki klijenti i višestruki serveri Klijent ili server se sastoji od aplikativnog programa, a kompjuter može da pokreće višestruke aplikacije u isto vreme. Kao posledica, kompjuter može da pokreće: Jednog klijenta Jednog servera Više kopija klijenta koji kontaktiraju dati server Više klijenata koji svaki kontaktira određenog servera Više servera, gde je svaki za određeni servis

  10. Serverska identifikacija i demultipleksing Internet protokoli dele identifikaciju na dva dela: Identifikator za kompjuter na kom se pokreće server - svakom kompjuteru na Internetu je dodeljen jedinstveni 32-bitni identifikator poznat kao adresa Internet protokola(Internet Protocol address -IP address) Identifikator za određeni servis na kompjuteru - svakom servisu koji je dostupan na Internetu se dodeljuje jedinstveni 16-bitni identifikator poznat kao broj protokol porta(protocol port number), koji se često skraćeno naziva broj porta-port number.

  11. Istovremeni serveri Većina servera su istovremeni (concurrent). Server koristi više od jedne niti kontrole (thread of control) (neki operativni sistemi koriste izraz nit izvršenja ili procesa (thread of execution or process) za označavanje niti kontrole), da bi radili sa više klijenata u isto vreme. Kod istovremenog servera se deli na dva dela: • glavni program (thread) i • program za obavljanje zadatka (handler). Glavni program jednostavno prihvata kontakt od klijenta, i kreira nit kontrole za klijenta. Svaka nit kontrole interaguje sa jednim klijentom, i pokreće handler kod. Nakon rada sa jednim klijentom, nit se završava. Glavni program održava server - nakon kreiranja niti za upravljanje zahtevom, glavni program čeka da stigne drugi zahtev.

  12. Interakcije klasa-sa-klasom (peer-to-peer) Ako jedan server obezbeđuje neki servis, mrežna konekcija između tog servera i Interneta može postati usko grlo. Način da se izbegne usko grlo formira osnovu aplikacija deljenja datoteka. Poznata kao arhitektura klasa-sa-klasom (peer-to-peer-p2p), ova šema izbegava postavljanje podataka na centralni server. Podaci se distribuiraju jednako među setom N servera, i svaki klijentov zahtev se šalje do odgovarajućeg servera. Zbog toga što dati server samo obezbeđuje 1/N podataka, količina prometa između servera i Interneta je 1/N onoga koliko je je kod arhitekture sa jednim serverom.

  13. Interakcija u sistemu klasa-sa-klasom

  14. Mrežno programiranje i soketni API Interfejs koga neka aplikacija koristi da specifikuje komunikaciju je poznat kao Interfejs aplikativnog programa(Application programme Interface-API). Jedan API se pojavio kao de facto standard za softver koji komunicra preko Interneta. Poznat kao soketni API (socket API), često se skraćeno naziva soketi (sockets). API je dostupan za mnoge operativne sisteme, kao što su Windows sistemi Microsoft-a kao i razni UNIX sistemi, uključujući Linux. Socket API je de facto standard za Internet komunikaciju.

  15. Parametri i soketni API Soketno programiranje se razlikuje od konvencionalnog I/O jer aplikacija mora da specifikuje mnogo detalja, kao što su adresa udaljenog kompjutera, broj protokol porta, i da li će aplikacija delovati kao klijent ili kao server Prednost soketnog pristupa je što većina funkcija ima tri ili manje parametara. Nedostatak je što programer mora da pamti da poziva više funkcija kada koristi sokete.

  16. Glavne funkcije u soketnom API-u

  17. Soketni pozivi kod klijenta i servera

  18. Funkcije koje koriste i klijent i server Funkcija socket descriptor = socket(protofamily, type, protocol) Funkcija send send(socket, data, length, flags) Funkcija recv recv(socket, buffer, length, flags) Funkcija close close(socket)

  19. Funkcija connection koju koristi samo klijent connect(socket, saddress, saddresslen)

  20. Soketne funkcije koje koristi samo server Funkcija bind bind(socket, localaddr, addrlen) Funkcija listen listen(socket, queuesize) Funkcija accept newsock = accept(socket, caddress, caddresslen)

  21. Soketne funkcije sendto i sendmsg sendto(socket, data, length, flags, destaddress, addresslen) sendmsg(socket, msgstruct, flags)

  22. Funkcije recvfrom i recvmsg recvfrom(socket, buffer, length, flags, sndraddr, saddrlen) recvmsg(socket, msgstruct, flags)

  23. Ostale soketne funkcije getpeername gethostname setsockopt getsockopt gethostbyname gethostbyaddr gethostbyaddr gethostbyname

  24. Soketi, niti, i nasleđivanje Svaka nova nit koja se kreira prima (nasleđuje) kopiju svih otvorenih soketa od niti koja ju je kreirala. Implementacija soketa koristi mehanizam referentnog brojanja (reference count) za kontrolu svakog soketa. Kada se soket prvo kreira, sistem postavlja broj reference soketa na 1, i soket postoji sve dok je referentni broj pozitivan. Kada program kreira dodatnu nit, ta nit uzima neki pokazivač za svaki otvoreni soket kog program poseduje, a sistem povećava referentni broj svakog soketa za 1. Kada neka nit pozove close, sistem smanjuje referentni broj za taj soket; ako referentni broj dostigne nulu, soket se uklanja.

  25. U slučaju istovremenog servera, glavna nit poseduje soket koji se koristi za prihvatanje dolazećih konekcija. Kada stigne zahtev za konekciju, sistem kreira novi soket za novu konekciju, a glavna nit kreira novu nit za rad sa tom konekcijom. Odmah nakon što se nit kreira, obe niti imaju pristup početnom soketu i novom soketu, i referentni broj svakog soketa je 2. Glavna nit poziva close za novi soket, a nit servisa poziva close za početni soket, smanjujući referentni broj svakog na 1. Konačno, kada završi interakciju sa klijentom, nit servisa poziva close za novi soket, smanjujući referentni broj na nulu i dovodi do toga da se soket briše.

More Related