Internet I World Wide Web

  • Uploaded by: Mina
  • 0
  • 0
  • March 2021
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Internet I World Wide Web as PDF for free.

More details

  • Words: 22,514
  • Pages: 89
Loading documents preview...
IT255 - VEB SISTEMI 1

Internet i World Wide Web Lekcija 01

IT255 - VEB SISTEMI 1 Lekcija 01

INTERNET I WORLD WIDE WEB Internet i World Wide Web Poglavlje 1: Kratak pregled (r)evolucije WWW Poglavlje 2: Internet mreža Poglavlje 3: WEB pregledavač – klijent strana Poglavlje 4: Web server Poglavlje 5: URL Poglavlje 6: Statički Web dokumenti Poglavlje 7: XML i XSL Poglavlje 8: Dinamički i aktivni Web dokumenti Poglavlje 9: HTTP Poglavlje 10: Proksi serveri i keširanje stranica Poglavlje 11: Vežba 1 Poglavlje 12: Domaći zadatak 1 Zaključak

Copyright © 2017 – UNIVERZITET METROPOLITAN, Beograd. Sva prava zadržana. Bez prethodne pismene dozvole od strane Univerziteta METROPOLITAN zabranjena je reprodukcija, transfer, distribucija ili memorisanje nekog dela ili čitavih sadržaja ovog dokumenta., kopiranjem, snimanjem, elektronskim putem, skeniranjem ili na bilo koji drugi način. Copyright © 2017 BELGRADE METROPOLITAN UNIVERSITY. All rights reserved. No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, without the prior written permission of Belgrade Metropolitan University.

www.metropolitan.ac.rs

Internet i World Wide Web UVOD Web se sastoji od ogromne kolekcije dokumenata/stranica povezanih hipervezama, a zapamćenih u fajlovima koji su locirani na hiljadama servera distribuiranim po globalnom Internetu. Internet je globalni sistem međusobno povezanih računarskih mreža koje koriste Internet Protokol (TCP/IP) za međusobnu komunikaciju. Mreža svih mreža se sastoji od miliona privatnih, javnih, akademskih, poslovnih i vladinih mreža i računara povezanih raznim tehnologijama, električnim, optičkim i bežičnim. Internet se može definisati i kao veza među računarima radi omogućavanja razmene informacija među korisnicima. Na Internetu je zastupljen širok spektar informacija i servisa, kao što su hypertext stranice na World Wide Webu, elektronska pošta, zvuk, video, telefonska i video konverzacija, itd. World Wide Web zvanično nastaje 1989. godine u CERN-u (evropskoj laboratoriji za fiziku atomskih čestica) u Ženevi. Grupa koju je vodio Tim Berners-Lee imala je za cilj kreiranje distribuiranog sistema hipertekstualnih podataka: distribuirani je označavalo da su podaci raspoređeni na različitim lokacijama (računarima), a hipertekstualni da se dodatne informacije o željenoj temi mogu dobiti jednostavnim izborom istaknutih mesta (klikom miša na istaknutu reč, frazu ili sliku). Veb je tokom svog relativno kratkog postojanja evoluirao u platformu za razvoj i korišćenje aplikacija. Današnje VA (Veb Aplikacije) su potpuno razvijeni, kompleksni softverski sistemi, a izraz „posetilac“ polako ali sigurno ustupa mesto izrazu „korisnik“ Veb sajta, što implicira visok nivo interakcije. World Wide Web (ili samo Web) je kolekcija ogromnog broja elektronskih dokumenata sačinjenih od povezanih Web stranica napisanih u HTML-u. Stranice su raspoložive korisnicima Web-a u vidu datoteka smeštenih na milionima računara distribuiranih po Internetu. Svaka stranica može sadržati pokazivače (tzv. linkove ili hiperveze) na druge stranice koje mogu biti smeštene na istom ili na nekom drugom računaru (ili, u terminologiji Web-a, Web sajtu). Web se sastoji od ogromne kolekcije dokumenata/stranica povezanih hipervezama, a zapamćenih u fajlovima koji su locirani na hiljadama servera distribuiranim po globalnom Internetu. Imajući to u vidu, ključna pretpostavka Web-a je postojanje mehanizma za imenovanje i lako lociranje stranica koji je sadržan u URL-u (Uniform Resource Locator uniformni lokator resursa) stranice.

3

Poglavlje 1 Kratak pregled (r)evolucije WWW ISTORIJA WWW Za razliku od većine drugih stvari koje su vezane za informacionokomunikacionu tehnologiju, Veb nije nastao u Americi — već u Evropi. Tačnije u Ženevi, na CERN-u. Berners–Li je napravio sve komponente koje su mu bile potrebne (HTML, HTTP, pretraživač nazvan WorldWideWeb, server i prvu Veb stranicu ikada, na kojoj je bio opisan sam projekat) da pokrene Veb. „WWW ima za cilj da omogući pravljenje veza (linkova) ka bilo kojoj informaciji, bilo gde. (...) WWW projekat je započet kako bi se omogućilo fizičarima da razmjenjuju podatke, novosti i dokumentaciju. Jako smo zainteresovani za širenje mreže na druge oblasti i otvaranje servera za druge podatke. Saradnici su dobrodošli!“ Veb kakav danas poznajemo nije ni sličan onome što je bio u svom skromnom začetku. Veb jeste razmenu fajlova učinio neposrednijom i lakšom za korišćenje nego ikada pre: svako je mogao koristiti sopstveni kompjuter da pretražuje fajlove skladištene na nečijem tuđem kompjuteru. Razdaljina nije bila bitna. Operativni sistem nije bio bitan. Format nije bio bitan. Magija koja je stajala iza svega toga bio je program zvani Veb server. Međutim, još uvek je falio efikasan alat za pretraživanje i korišćenje svih tih informacija koji bi bio prihvatljiv i manje iskusnim korisnicima. Potreba za boljim alatom na klijentu je postala stvarna, a stvarna potreba stvara tržište. I tada je nastao Veb pretraživač. Bio je to ultimativni alat za povezivanje klijenta na sve veći broj Veb stranica, koje su nicale na serverima sa svih strana. A kada se pročulo o izuzetnim karakteristikama i mogućnostima Veba, poslovni svet je obratio pažnju i zapazio: ovde imamo medijum koji može dopreti do bilo koga, bilo gde, u bilo koje vreme, sa kompjuterom. Stručnjaci u marketingu su shvatili potencijal. Prodavci su bili odmah za njima, a ubrzo je ubeđen i top menadžment. Veb je postao i suštinski javan. Odjednom, svi su imali svoju Veb adresu i počele su da niču sve složenije veb aplikacije. Definicija 1: Veb aplikacija (VA) je softverski sistem zasnovan na tehnologijama i standardima W3C konzorcijuma (eng. World Wide Web Consortium) koji pruža resurse specifične za Veb, kao što su sadržaj i usluge, kroz korisnički interfejs, Veb pretraživač. Veb je tokom svog relativno kratkog postojanja evoluirao u platformu za razvoj i korišćenje aplikacija. Današnje VA su potpuno razvijeni, kompleksni softverski sistemi, a izraz „posetilac“

4

Poglavlje 1 Kratak pregled (r)evolucije WWW

polako ali sigurno ustupa mesto izrazu „korisnik“ Veb sajta, što implicira visok nivo interakcije.

KATEGORIJE VEB APLIKACIJA Mada je prvobitno bio zamišljen kao isključivo informacioni medijum, Veb je tokom svog relativno kratkog postojanja evoluirao u platformu za razvoj i korišćenje aplikacija. Umesto Vebmastera, veliki Veb sajtovi moraju da uposle Veb menadžere, koji vode raznovrsne timove IT profesionalaca, uključujući programere, administratore baza podataka, mrežne administratore, inženjere upotrebljivosti, grafičke dizajnere, stručnjake za bezbednost i marketing. Ova evolucija može se pratiti tragom nekoliko dimenzija i iz više perspektiva: rastom broja Veb sajtova i Veb stranica; rastom broja korisnika Veba; brojem poseta; funkcionalnostima i interaktivnošću Veb aplikacija; tehnologijama korišćenim za razvoj Veb aplikacija; socijalnom i poslovnom uticaju Veba ili njihovim kombinacijama. Slika desno daje pregled različitih kategorija Veb sajtova u zavisnosti od njihove hronologije razvoja i stepena složenosti, sa primerima za svaku kategoriju. Moramo imati na umu da postoji relacija između hronologije nastanka i kompleksnosti. Novije kategorije su obično složenije, ali to ne znači da u potpunosti mogu zameniti prethodnu generaciju. Svaka od ovih kategorija ima sopstvena, specifična, polja primene. Posledično, kompleksni Veb sajtovi mogu obično biti svrstani u nekoliko kategorija odjednom. Takođe možemo primetiti da različite kategorije pokrivaju mnoge tradicionalne aplikacione domene, kao što je bankarstvo, ali su istovremeno stvorena i potpuno nova polja primjene softvera, kao što su servisi „svesni“ lokacije. Kategorije VA su: Dokument-orjentisani Veb sajtovi, interaktivne Veb aplikacije, Transakcione Veb aplikacije, Aplikacije bazirane na tok rada, saradničke Veb aplikacije, socijalni Veb, Portalski orjentisane aplikacije i Semantički Veb.

Slika 1.1 1 Kategorije Veb sajtova/aplikacija

Ova lekcija sadrži video materijal. Ukoliko želite da pogledate ovaj video morate da otvorite LAMS lekciju.

5

Poglavlje 1 Kratak pregled (r)evolucije WWW

NAJBITNIJA SVOJSTVA KATEGORIJA VEB APLIKACIJA Prikazivanje veb stranice najčešće započinje ili unošenjem URL adrese u web browser, ili preko hiperlinka koji vodi na tu stranicu (ili resurs, uopšteno). Dokument-orjentisani Veb sajtovi su prethodili Veb aplikacijama. Veb stranice su skladištene na Veb serverima kao gotovi, t.j. statični HTML dokumenti i slate su klijentu kao odgovor na njegov zahtev. Izmene na njima su se obično vršile ručno, uz pomoć odgovarajućih alata. Razumljivo je zašto je ovo brzo postalo neefikasno i skupo, pogotovo za Veb sajtove sa velikim brojem stranica. Sa druge strane, glavne prednosti ovakvih Veb sajtova su jednostavnost, stabilnost, kao i relativno brz odgovor na zahteve klijenta, jer su stranice već spremne na serveru i potrebno ih je samo poslati, bez neke prethodne obrade ili prilagođavanja. Sa uvođenjem CGI (eng. Common Gateway Interface) i HTML formi, pojavile su se interaktivne Veb aplikacije. One su, gledano iz današnje perspektive, pružale prilično ograničen nivo interakcije, ali tada — bio je to korak od hiljadu kilometara, jer su označile jednu potpuno novu ideju i fazu razvoja Veba. Veb stranice i veze (linkovi) ka drugim stranicama su se kreirale dinamički, u skladu sa korisničkim akcijama. Primeri za ovu kategoriju su virtuelne izložbe, sajtovi za vesti i sl. Transakcione Veb aplikacije su napravljene sa ciljem podizanja interaktivnosti na viši nivo. U njima je korisnik mogao ne samo da čita ponuđeni sadržaj, već i da ga menja. Ako uzmemo za primer sistem za turističke informacije, ovo bi omogućilo menjanje podataka na decentralizovan način ili rezervisanje smeštaja. Preduslov ovome bili su sistemi za upravljanje bazama podataka koji su omogućavali efikasno i konzistentno upravljanje sve obimnijim sadržajem Veb aplikacija i postavljanje strukturisanih upita. Onlajn bankarstvo, trgovina i sistemi za rezervacije pripadaju ovoj kategoriji. Aplikacije bazirane na tok rada omogućavaju upravljanje tokom rada unutar jedne ili između više kompanija, javnih službi i/ili privantih lica. Kompleksnost usluga, autonomija učesnika u procesu i potreba za robustnim i fleksibilnim tokovima rada su glavni izazovi na ovom polju. Primeri za ovu kategoriju mogu biti B2B (eng. Business-to-Business) rešenja u e-trgovini, aplikacije e-uprave u domenu javne administracije (Vlada) i sl. Dok aplikacije bazirane na tok rada zahtevaju određeno strukturiranje automatizovanih procesa i operacija, saradničke Veb aplikacije se koriste upravo u situacijama kada je potrebno omogućiti saradnju pri nestrukturiranim operacijama. Ovde je potreba za saradnjom različitih učesnika vrlo visoka. Saradničke Veb aplikacije podržavaju deljenje informacija i radnog prostora (npr. WikiWiki) u cilju generisanja, menjanja i kontrolisanja deljenih sadržaja.

VEB INŽENJERING Veb sajtovi koji nemaju softverskih komponenti, kao npr. statične HTML stranice, takođe nisu Veb aplikacije.

6

Poglavlje 1 Kratak pregled (r)evolucije WWW

Mada ga je u početku karakterisala kakva-takva anonimnost korisnika, sve je izraženiji trend transformisanja Veba usocijalni Veb, gde ljudi dobrovoljno otkrivaju svoj identitet određenoj zajednici korisnika, sa ciljem pronalaženja sličnih interesovanja sa osobama koje već poznaju i/ili upoznavanja novih osoba koje imaju slična interesovanja. Ovaj trend je toliko izražen da posedovanje profila na nekoj od socijalnih mreža (Fejsbuk, Tviter, LinkedIn i sl.) danas spada u normu. Pored svih koristi koje ovakva „umrežavanja“ donose, javljaju se i znatne opasnosti — naročito za populaciju maloletnih korisnika — te se nameće potreba za vrlo tesnom saradnjom IT inženjera i stručnjaka iz domena društvenih nauka (psiholozi, sociolozi itd.) u cilju zaštite najugroženijih korisnika ovakvih servisa. Portalski orjentisane aplikacije predstavljaju jedinstvenu tačku pristupa mnogobrojnim odvojenim, moguće i heterogenim po prirodi, izvorima informacija i servisa. Sve važnije„sveprisutne“ Veb aplikacije pružaju korisniku prilagođene usluge u bilo koje vreme, bilo gde, za bilo koji uređaj (sveprisutne). Aktuelni trendovi, međutim, će dovesti do situacije da će ovaj tip aplikacija uskoro postati dominantan na tržištu. Jedan od ovih trendova je i Semantički Veb . Cilj Semantičkog Veba je predstavljanje informacija na Vebu ne samo za ljudska bića, već i u obliku koje bi mogle da čitaju mašine. Kao i većina problema u računarstvu, ovo se rešava dodavanjem još jednog sloja „posrednika“ (semantike) između podataka koje razumeju ljudi i kompjutera. Svi koji su se bavili razvojem VA — bili početnici, bez obzira koliko dugo su pre toga projektovali ili kodirali softver. Jako mnogo dobre inženjerske prakse je bilo prosto odbačeno i zanemareno u tim „prvim danima“ razvoja VA. Na (ne)sreću, stručnjaci su (ne)blagovremeno uočili ovu tendenciju i 1996. godine se u IT svetu pojavila nova kovanica: Veb inženjering. Definicija 2: Veb inženjering podrazumeva primenu sistematičnih i merljivih pristupa (koncepata, metoda, tehnika, alata) na isplativu analizu zahteva, dizajn, implementaciju, testiranje, eksploataciju i održavanje visokokvalitetnih Veb aplikacija. Mada Veb inženjering koristi principe softverskog inženjeringa, on dodatno obuhvata i nove pristupe, metodologije, alate i tehnike, kao i smernice da bi izašao u susret jedinstvenim zahtevima sistema zasnovanih na Vebu. U mnogim aspektima, razvoj sistema zasnovanih na Vebu je mnogo više od razvoja tradicionalnog softvera.

INTEROPERABILNOST U VEB INŽENJERINGU Veb inženjering je danas dobro razvijeno i zrelo polje istraživanja, snažno povezano sa ostalim disciplinama, kao što su softverski inženjering, HCI i veštačka inteligencija. U današnje vreme VA su po složenosti dostigle nivo da je nužna primena znanja, modela i tehnika sistemske analize i dizajna složenih sistema, a VA često prerastaju u Veb sisteme (VS). Glavne karakteristike VS su: Mnogi korisnici - mnogi jezici - mnoge kulture; Različiti mehanizmi pristupa; Mnogi Korisnički agenti; Veliki obim međusobno povezanih podataka (uključujući različite medije) i procese;

7

Poglavlje 1 Kratak pregled (r)evolucije WWW

Slika 1.2 2 Veza Veb inženjeringa i ostalih disciplina

Odgovarajući prikaz (prezentacija); Napredovanje kroz aktivnosti - završiti jednu stvar pre početka drugog; Često vodi korisnika; Nadogradnja i povećanje kompleksnosti; Mnogo projektanata u timu, mnogo transakcija, složena komunikacija i upravljanje projektom razvoja; Veliki broj proizvoda iteracija / verzija /; Prilagođavanja korisnicima, personalizacija, bezbedonosna pitanja i mnogo toga još kao što je to na sledećoj slici prikazano. Ova lekcija sadrži video materijal. Ukoliko želite da pogledate ovaj video morate da otvorite LAMS lekciju.

VEB SISTEMI Iako sistematske tehnike dizajna i izrade mogu biti primenjene, ipak je neophodno proveravati međuproizvode, kao i finalnu aplikaciju. UDa bi se osigurao uspešan razvoj VS potrebno je, ali ne i dovoljno primeniti sledeće korake u dizajnu: 1. Razumeti opštu funkciju sistema i operativno okruženje, uključujući i poslovne ciljeve i uslove, poslovnu kulturu organizacije i politike upravljanja informacijama. 2. Jasno identifikovati zainteresovane strane - to jest, glavne korisnike tog sistema i njihove tipične profile, organizaciju koja treba sistem, i ko finansira razvoj. 3. Objaviti ili specificirati (početne) funkcionalne, tehničke, ali i netehničke zahteve zainteresovanih strana i zahteve ukupnog VS. Dalje, prepoznati da ovi zahtevi ne moraju ostati isti tokom projektovanja VS; poći od toga da oni treba da evoluiraju tokom vremena razvoja veb sistema. 4. Razviti arhitekturu celokupnog Veb-baziranog sistema koji zadovoljava postavljene tehničke i netehničke zahteve.

8

Poglavlje 1 Kratak pregled (r)evolucije WWW

5. Identifikovati podprojekte ili podprocese za implementaciju arhitekture sistema. Ako su podprojekti suviše složeni za upravljanje, dodatno ih podeliti (usitniti) dok ne postanu skup zadataka koji se lako realizuju. 6. Razviti i implementirati definisane podprojekte. 7. Uključiti efikasne mehanizme za upravljanje evolucijom veb sistema, promenu i održavanje. Kako se sistem razvija, ponovite ceo proces ili neke delove toga, prema potrebi. 8. Adresirati netehnička pitanja, kao što su revidiranje: poslovnih procesa, organizacionih i menadžment politika, razvoj ljudskih resursa i pravne, kulturne, i socijalne aspekte. 9. Meriti performanse sistema, analizirati korišćenje Veb aplikacije preko veb logova, razmatrati povratne informacije i sugestije korisnika u cilju poboljšanja VS. 10. Doterivati i ažurirati veb sistem kroz konstantno testiranje dizajna i implementaciju (programiranje).

9

Poglavlje 2 Internet mreža STRUKTURA INTERNETA Internet poseduje tronivovsku strukturu . Okosnica Interneta ili backbone predstavlja vršni nivo u hijerarhiji Interneta. Povezivanjem dve ili više mreža nastajeinternet (Sl. 1). Mreže se povezuju pomoću uređaja za međumrežno povezivanje (označeni slovom R na Sl. 1). Primeri ovakvih uređaja su ruteri i gateway-i. Tipično, internet čini veći broj LAN i MAN mreža povezanih u WAN. Napomenimo da treba praviti razliku između pojmova ˝internet˝ (počinje malo slovom) i Internet (počinje velikim slovom). Internet, sa malim ˝i˝, je uopšteni pojam koji se odnosi na povezivanje mreža. Internet, sa velikim ˝I˝, je ime najveće i najrasprostranjenije svetske mreže.

Slika 2.1 1 Internet mreža

Ova lekcija sadrži video materijal. Ukoliko želite da pogledate ovaj video morate da otvorite LAMS lekciju. Struktura Interneta Internet (sa velikim I) je gigantska mreža prvobitno kreirana povezivanjem različitih istraživačkih i odbrambenih (vojnih) mreža (kao što su NSFnet, MILnet i CREN). Od tada, na Internet su priključene brojne druge mreže – velike i male, privatne i javne. S preko 400 miliona hostova, Interent je danas ubedljivo najveća i najrasprostranjenija svetska mreža. Internet poseduje tronivovsku strukturu (Sl. 2). Okosnica Interneta ili backbonepredstavlja vršni nivo u hijerarhiji Interneta. Sastoji se od mreža kao što su NSFnet i EBONE koje prenose saobraćaj i obavljaju rutiranje za mreže srednjeg nivoa. To su mreže veoma velike propusne moći koje poput kostura drže na okupu sve razuđene delove Interneta.

10

Poglavlje 2 Internet mreža

Slika 2.2 2 Struktura Interneta

PAKETSKI PRENOS PODATAKA U komunikacionim mrežama koje pokrivaju veća geografska rastojanja, kao što je Internet, komunikacija između izvora i odredišta se ostvaruje prenosom podataka kroz mrežu. Tranzitne mreže, takođe poznate i kao regionalne, u hijerarhiji Inerneta se nalaze odmah ispod backbone mreža. Nihov zadatak je da osim za svoje hostove prosleđuju saobraćaj i između drugih mreža istog ili nižeg nivoa. Tranzijentna mreža je uvek povezana s bar dve duge mreže. Periferne mreže su lokalne (LAN) ili gradske (MAN) mreže, koje prenose podatke isključivo ka i od svojih hostova. Čak i kada su povezane sa jednom ili više drugih mreža, kroz periferne mreže nikada ne prolazi saobraćaj nemenjen nekoj drugoj mreži. Rast Interneta je veoma brz, sa stopom od 10-15% mesečno, a broj mreža koje se razgranavaju sa Internet backbone-a udvostručava se svakih 16 meseci. Internet backbone koji je 90-tih godina ima oblik ˝riblje kosti˝, danas više liči na ˝ribarsku mrežu˝ razapetu po celom svetu. Paketski prenos podataka U komunikacionim mrežama koje pokrivaju veća geografska rastojanja, kao što je Internet, komunikacija između izvora i odredišta se ostvaruje prenosom podataka kroz mrežu posrednih komutacionih čvorova, tj. rutera. Ruteri se ne bave interpretacijom sadržaja i značenja podataka, već se bave prenosom podataka od čvora do čvora na njihovom putu do krajnjeg odredišta. Na Internetu se koristi koncept prenosa podataka koji se naziva komutacijom paketa. Shodno ovom konceptu, poruke se prenose u kratkim blokovima, tzv. paketima. Dužina paketa je ograničena, a maksimalno dozvoljena dužina obično ne prelazi 1000 bajta. Duže poruke, koje se ne mogu upakovati u jedan paket, u izvornom hostu se dele na niz paketa, koji se nezavisno šalju i prenose kroz mrežu. Svaki paket ima deo za korisničke podatke i deo za kontrolne informacije. Kontrolne informacije, između ostalog, sadrže informacije koje su neophodne ruterima kako bi paket usmerili ka željenom odredištu. U

11

Poglavlje 2 Internet mreža

svakom ruteru, paket se prima, skladišti i nakon izvesnog vremena prosleđuje sledećem ruteru. Na Sl. 3 je ilustrovan osnovni princip rada komutacije paketa.

Slika 2.3 3 Komutacija paketa: datagramski pristup

KOMUTACIJA PAKETA Kod mreža sa komutacijom paketa, svaki paket se u svakom ruteru nezavisno obrađuje, a način na koji će ruter postuputi prema datom paketu ne zavisi od postupka prema prethodnim. Računar sa leve strane slike šalje poruku računaru sa desne strane. Predajni (izvorni) računar deli sadržaj poruke na niz paketa (Sl. 3(a)). Svaki paket, pored podataka iz originalne poruke, sadrži, u delu za kontrolne informacije, informaciju koja identifikuje odredišni host. Izvorni računar šalje paket po paket ruteru sa kojim je povezan. Ovaj ruter privremeno skladišti (baferuje) primljene pakete; za svaki paket, na osnovu kontrolnih informacija iz paketa, određuje kom susednom ruteru treba proslediti paket i smešta paket u red čekanja pridružen izlaznoj liniji koja vodi ka izabranom susednom ruteru. Paket ostaje u redu čekanja sve dok svi prethodni paketi iz reda čekanja ne budu poslati, a zatim se i on šalje na liniju. Na ovaj način, krećući se od rutera do rutera (Sl. 3(b)), paket konačno stiže na svoje krajnje odredište (Sl. 3(e) ). Kod mreža sa komutacijom paketa, svaki paket se u svakom ruteru nezavisno obrađuje, a način na koji će ruter postuputi prema datom paketu ne zavisi od toga kako je postupao prema prethodnim paketima. Ovaj pristup je ilustrovan na Sl. 3. Usmeravanje paketa u ruterima nije jednoznačno. Kada ruter donosi odluku na koju stranu usmeriti paket, on uzima u obzir ne samo informaciju o adresi odredišnog hosta, već i informacije prikupljene od susednih rutera koje se tiču njihovog trenutnog opterećenja, otkaza pojedinih prenosnih linija i sl. To znači da paketi sa istom odredišnom adresom ne moraju biti uvek isporučeni istom susednom ruteru (Sl. 3(c) ). Posledica ove neodređenosti je pojava da paketi koji se prenose između para hostova mogu stići do odredišta različitim putanjama i izvan redosleda u kojem su poslati. U primeru sa Sl.3, krajni ruter na putanji uređuje pristigle pakete u prvobitni redosled i isporučuje ih odredištu. (Napomenimo da je kod nekih mreža, preuređenje paketa zadatak odredišnih stanica, a ne krajnjih čvorova.) Takođe, može se desiti da neki paketi budu uništeni u toku prenosa. (Na primer, ako neki ruter otkaže, svi paketi koji trenutno borave u ruteru, biće izgubljeni.)

12

Poglavlje 2 Internet mreža

Ponovo, detekcija izgubljenih paketa i odluka kako postupiti u ovakvim situacijama je u nadležnosti krajnjih hosova. Kod mreža koje koriste opisanu tehniku komutacije, za pakete se uobičajeno koristi termin datagram. Osnovne karakteristike paketskog prenosa, koje ga čine pogodnim za primenu kod Interneta su: ? Prenosne linije se efikasno koriste, s obzirom na to da se komunikacioni kapacitet linije, koja povezuje dva rutera, dinamički, u vremenu, raspodeljuje na prenos mnogih paketa.

KARAKTERISTIKE PAKETSKOG PRENOSA Ruter uzima pakete sa početka reda čekanja i maksimalnom brzinom ih šalje na liniju. Paketi koji iz različitih pravac stižu u čvor, a koje treba dalje preneti preko iste izlazne linije, smešataju se u red čekanja pridružen toj liniji. Ruter uzima pakete sa početka reda čekanja i maksimalnom brzinom ih šalje na liniju. • Mreža sa komutacijom paketa može da amortizuje razlike u brizni prenosa podataka različitih hostova. Paketi se baferuju u ruterima, što znači da paket može biti primljen jednom, a poslat drugom brzinom. Na ovaj način, u mreži sa komutacijom paketa moguće je kombinovati spore i brze prenosne medijume, kao i hostove različitih brzina prenosa podataka. • Kod mreža sa komutacijom paketa, čak i u uslovima ntenzivnog saobraćaja, mreža prihvata nove pakete, mada je vreme prenosa paketa kroz mrežu duže. Sa povećanjem opterećenja mreže, u baferima rutera se gomilaju paketi koji čekaju da budu preneti dalje. Komunikacija između hostova nije prekinuta, mada su performanse niže. Međutim, baferski prostor u ruterima je ograničene veličine i može se desiti da pri veoma velikom opterećenju neki paketi budu izgubljeni zato što je u pojedinim ruterima baferski prostor iscrpljen. • Princip komutacije paketa omogućava uvođenje prioriteta. Ruter, umesto da se prilikom slanja paketa na izlaznu liniju drži striktnog redosleda paketa u redu čekanja, može dati prednost paketima sa visokim prioritetom. Paket visokog prioriteta biće izabran za slanje bez obzira na njegovu poziciju u redu čekanja. Na taj način, paketi višeg prioriteta prenosiće se brže kroz mrežu nego paketi niskog prioriteta. Međutim, komutacija paketa ispoljava i izvesne nedostatke: • Prolazak paketa kroz ruter unosi dodatno kašnjenje u prenosu. S obzirom na to da se paket baferuje u ruteru, pre nego što se prosledi dalje, ovo kašnjenje, u minimalnom iznosu, jednako je količniku dužine paketa i brzine prenosa preko dolazne linije - vreme koje je potrebno da se paket prenese iz jednog u drugi čvor. Na ovo vreme treba dodati vreme procesiranja paketa i vreme čekanja paketa u redu čekanja, koje je promenljivo i uslovljeno trenutnim uslovima u mreži.

13

Poglavlje 2 Internet mreža

• Ukupno vreme prenosa paketa jednako je zbiru kašnjenja paketa kroz rutere na putanji koju paket prolazi. S obzirom na to što se paketi mogu razlikovati po dužini, mogu biti preneseni različitim putanjama i mogu biti izloženi promenljivim kašnjenjenima u ruterima, sveukupno vreme prenosa paketa od datog para izvorodredište, može značajno da varira od paketa do paketa.

MREŽNE ARHITEKTURE Razmena podataka između umreženih uređaja zahteva sprovođenje veoma složenih procedura, kao što su one za uspostavljanje i održavanje komunikacione veze i sl. Ova pojava se naziva treperenje ili džiter (jitter) i može biti nepoželjna kod izvesnih aplikacija, kao što su aplikacije koje zahtevaju prenos podataka u relanom vremenu (telefonija, video, audio, ..). • Da bi se omogućilo usmeravanje paketa kroz mrežu, svaki paket sadržati i dodatne kontrolne (režijske) informacije (npr. adresa paketa u poruci i sl.). Za prenos kontrolnih informacija troši se kapaciteta prenosnih linja, čime se smanjuje raspoloživ kapacitet podataka.

osim podataka mora odredišta, redni broj deo komunikacionog za prenos korisničkih

Mrežne arhitekture Razmena podataka između umreženih uređaja zahteva sprovođenje veoma složenih procedura, kao što su one za uspostavljanje i održavanje komunikacione veze, održavanje korektne sinhronizacije između strana koje komuniciraju, pronalaženje optimalne putanje u mreži između udaljenih čvorova i još čitav niz drugih zadataka. Većina ovih procedura se realizuju u softveru (tzv. mrežni softver). Zadatak mrežnog softvera je da od krajnjeg korisnika sakrije sve detalje nižeg nivoa koji su neophodni za ostvarivanje komunikacije, pružajući mu privid direktne razmene podataka s korisnikom koji je na drugom kraju veze. (Korisnik može biti čovek, računar ili aplikacioni program). Međutim, umesto da se jedan takav softver realizuje kao monolitni modul, koji bi se bavio svim aspektima i detaljima mrežne komunikacije, on se obično deli na nezavisne, ali međusobno povezane podmodule, od kojih je svaki odgovoran za jedan specifičan zadatak ili skup zadataka. Neki zadaci su nižeg nivoa apstrakcije, kao npr., transformacija bitova u signal koji se prenosi linkom, dok su drugi višeg nivoa, kao npr., usmeravanje (rutiranje) poruka u mreži složene topologije. Iz tog razloga, podmoduli se raspoređuju u slojeve. Svaki sloj u ovakvoj vertikalnoj strukturi rešava niz problema karakterističnih za jedan nivo apstrakcije. Kao što je zadatak celokupnog mrežnog softvera da sakrije sve detalje mrežne komunikacije od krajnjeg korisnika, tako je zadatak svakog sloja da od sloja iznad sakrije sve detalje nižeg nova, koji su rešeni u tom sloju i svim slojevima ispod.

14

Poglavlje 2 Internet mreža

Tako npr., sloj koje se bavi rutiranjem poruka nije opterećen problemima koji se tiču prenosa podataka preko jednog fizičkog linka, zato što je to odgovornost nižih slojeva.

RAVNOPRAVNI (PEER-TO-PEER) SLOJEVI Treba istaći da slojevita organizacija softvera nije karakteristična samo za mrežni softver, već prestavlja jedan od bazičnih principa u računarstvu i ima suštinske sličnosti sa konceptima. Koncept slojevite organizacije mrežnog softvera ilustrovan je na Sl. 4. Broj slojeva, njihovi nazivi, sadržaj i funkcije, razlikuju se od mreže do mreže. Uopšteno govoreći, svrha svakog sloja je da pruži određeni skup usluga (servisa) višim slojevima, skrivajući od njih detalje koji se odnose na to kako su ti servisi konkretno realizovani. Na primer, sloj 3 koristi usluge sloja 2, a pruža usluge sloju 4.

Slika 2.4 4 Slojevi, protokoli i interfejsi

Treba istaći da slojevita organizacija softvera nije karakteristična samo za mrežni softver, već prestavlja jedan od bazičnih principa u računarstvu i ima suštinske sličnosti sa konceptima kao što su:˝skrivanje informacija˝, ˝apstraktni tipovi podataka˝, ˝enkapsulacija podataka˝, ˝objektno-orijentisano programiranje˝. Suštinska ideja u svim ovim slučajevima je da se na konkretni softver (ili hardver) gleda kao na komponentu koja pruža izvesne usluge svojim korisnicima od kojih su sakriveni detalji njene unutrašnje strukture, pa i sam algoritam rada. Ravnopravni (peer-to-peer) slojevi Za slojeve mrežnog softvera, osim vertikalne, karakteristična je i horizontalna povezanost (predstavljena isprekidanim linijama na Sl. 4). Mreža se sastoji od velikog broja računara (ili mašina), a na svakom od njih se izvršava funkcionalno identična kopija mrežnog softvera. Možemo razumeti da sloj n na računaru Host_1, obavlja konverzaciju sa sebi ravnopravnim (tzv. peer) slojem n na računaru Host_2. Pravila ove konverzacije se zajedničkim imenom

15

Poglavlje 2 Internet mreža

zovu protokol sloja n. U osnovi, protokol je dogovor između dve strane o načinu na koji se komunikacija odvija.

SLOJEVITOST MREŽA Skup protokola i slojeva zove se arhitektura mreže. Specifikacija arhitekture mora da sadrži dovoljno informacija. U realnosti, podaci se ne prenose direktno između peer slojeva. Umesto toga, svaki sloj prosleđuje podatke, zajedno sa odgovarajućim kontrolnim informacijama, sloju ispod, sve do sloja najnižeg nivoa (sloj 1). Ispod sloja 1 nalazi se fizički medijum, kroz koji se obavlja stvarni prenos podataka. Na odredišnoj strani, podaci prolaze kroz slojeve, ali sada u obrnutom redosledu, sve do odgovarajućeg, ravnopravnog sloja. Interfejs Između svakog para vertikalno-susednih slojeva egzistira interfejs. Interfejs definiše primitivne operacije i servise nižeg sloja koji su dostupni višem sloju. Kada projektanti mreže donose odluku o tome koliko slojeva treba predvideti i koje će funkcije obavljati svaki od njih, jedan od najvažnijih problema odnosi se upravo na osmišljavanje interfejsa između slojeva. Cilj je definisati što je moguće jednostavniji interfejs koji će činiti skup dobro-definisanih i lako razumljivih funkcija. Takav jedan interfejs treba da minimizuje količinu dodatnih informacija koje se prenose između slojeva i da omogući zamenu jedne realizacije sloja nekom drugom, a da to ne zahteva bilo kakve promene u susednim slojevima. Protokol stek Skup protokola i slojeva zove se arhitektura mreže. Specifikacija arhitekture mora da sadrži dovoljno informacija na osnovu kojih će programeri ili projektanti hardvera biti u stanju da realizuju softver, odnosno hardver, za dati protokol. Specifikacija ne sadrži detalje realizacije slojeva i interfejsa između slojeva, s obzirom da oni, budući da su sakriveni u mrežnom softveru, nisu vidljivi izvan mašine. Čak nije neophodna da interfejsi između slojeva na svim mašinama u mreži budu identični, pod uslovom da svaka mašina korektno koristi svaki sloj. Skup protokola koje se koristi u nekom sistemu, jedan protokol po sloju, naziva se protokol stek (protocol stack). Slojevitost mreža Današnje mreže su izrazito kompleksni entiteti. Kako bi se savladala kompleksnost mreža, mreže i mrežni softver se moraju kreirati hijerarhijski, uz postojanje velikog broja zasebnih, precizno definisanih, nivoa tj. slojeva. Broj slojeva se razlikuje od mreže do mreže. Na svakom sloju, sprovodi se odgovarajući protokol komunikacije. Protokol je dogovor dve strane o načinu komunikacije. Narušavanje protokola čini komunikaciju nemogućom.

16

Poglavlje 2 Internet mreža

OSI REFERENTNI MODEL OSI (Open System Interconnect) referentni model, ukazuje da se radi o modelu povezivanja otvorenih sistema, odnosno sistema koji su otvoreni za komunikaciju sa drugim sistemima. OSI referentni model OSI model prikazan je na Sl. 5 . OSI je standard uveden 1983. godine od strane međunarodne organizacije za standardizaciju (ISO - International Standard Organization). Njegovo ime, OSI (Open System Interconnect) referentni model, ukazuje da se radi o modelu povezivanja otvorenih sistema, odnosno sistema koji su otvoreni za komunikaciju sa drugim sistemima. U suštini, OSI predstavlja model za razumevanje i razvoj fleksibilnih, robusnih i otvorenih mrežnih arhitektura.Open Systems Interconnection OSI- model sa 7 slojeva, standardizovan od strane ISO.

Slika 2.5 5 OSI referentni model

TCP/IP - model sa 4 sloja, prisutan u okviru Interneta. OSI model je razvijen pod okriljem medunarodne organizacije za standardizaciju (ISO) i, iako se konkretni protokoli koje definiše više ne koriste, predstavlja značajan apstraktni opis mreža. Sa druge strane, TCP/IP model je takav da se njegova apstraktna svojstva ne koriste značajno, dok se konkretni protokoli intenzivno koriste i predstavljaju osnovu Interneta. Slojevi u okviru referentnih modela i njihov međusobni odnos, grafički su prikazani na slici 6 (Slajdovi TCP-IP).

17

Poglavlje 2 Internet mreža

Slika 2.6 6 TCP/IP - model sa 4 sloja

SLOJEVI U OSI REFERENTNIOM MODELU Transportni sloj je odgovoran za isporuku celokupne poruke od izvora do odredišta (tj. od-kraja-do-kraja). Fizički sloj se sastoji od osnovnih hardverskih mrežnih tehnologija. Fizički sloj ne definiše prenos logičkih paketa podataka, već načine prenosa sirovih bitova preko fizičkog linka između čvorova u mreži. Praktično, on određuje naponske nivoe u električnim mrežama, specifikacije lasera u optičkim vlaknima, specifikacije bežične mreže, itd... Data Link sloj obezbeđuje funkciju prenosa podataka među čvorovima u mreži i treba da obezbedi pouzdan prenos podataka preko fizičke mreže. Media Access Control (MAC) pod-sloj se brine o adresiranju i pristupu medijumu, dok seLogical Link Conrol (LLC) pod-sloj bavi protokolima i kontrolom protoka (detekciju i ispravljanje grešaka koji se mogu javiti na fizičkom sloju). Mrežni sloj je zadužen za rutiranje i isporuku paketa. U njegovoj nadležnosti je kako će poruka biti podeljena na pakete i tako preneta preko više fizičkih mreža. Sloj mreže odgovoran je za isporuku paketa od izvora do odredišta koji se mogu nalaziti i u različitim mrežama (nisu povezani na isti link). Ako su dva sistema povezana na isti link, obično ne postoji potreba za mrežnim slojem. Međutim, ako su sistemi povezana na različite mreže (linkove), sa uređajem za međumrežno povezivanje između njih, mrežni nivo je neophodan, a njegov zadatak je da reguliše protok paketa između dva sistema. Kada peketi prelaze granice mreža, mogu nastati brojni problemi. Fizičko adresiranje koje se koristi u drugoj mreži se može razlikovati od onoga koje važi u prvoj. Paket koji stiže iz jedne mreže može biti previše veliki da bi se u drugoj mreži preneo jednim okvirom. Mogu se razlikovati protokoli nižeg nivoa. Na sloju mreže je da reši sve ove probleme. Transportni sloj se brine o komunikacionim servisima između krajnjih tačaka. Njegov zadatak je da obezbedi connection-oriented tok podataka, pouzdanost, kontrolu toka i multipleksiranje. Transportni sloj je odgovoran za isporuku celokupne poruke od izvora do odredišta (tj. od-kraja-do-kraja). Mrežni sloj iako obezbeđuje prenos pojedinačnih paketa od izvora do odredišta, ne ˝vidi˝ bilo kakvu vezu između njih, već svaki paket tretira kao nezavisnu jedinicu; kao da je svaki paket posebna poruka, bez obzira da li je to i zaista slučaj ili ne. Takođe, sloj mreže, iako čine najviše šta može, ne garantuje da će svaki paket biti

18

Poglavlje 2 Internet mreža

isporučen. Što više, ako paket bude izgubljen, npr. zbog zagušenja rutera, mrežni sloj nikoga neće obavestiti o tome.

SLOJ SESIJE Sloj sesije obezbeđuje mehanizme za rukovanje sesijom između krajnjih aplikacija. Komunikaciona sesija se sastoji od niza zahteva i odgovora koji se javljaju između aplikacija. S druge strane, transportni sloj obezbeđuje da celokupna poruka, u izvornom obliku, bude prenesena do odredišta, namećući kontrolu grešaka i kontrolu protoka na nivou izvora i odredišta. Na primer, fajl transfer aplikacija ima zadatak da fajl proizvoljne veličine prenese od fajl servera na host koji je tražio fajl. U cilju prenosa kroz mrežu, fajl će biti podeljen na pakete, a svaki paket će se prenositi nezavisno. Neki paketi mogu biti primljeni sa greškom, a neki izgubljeni u prenosu. Zadatak transportnog sloja je da uvede strogu disciplinu u isporuci paketa kao bi fajl u prvobitnom obliku bio prenet do svog odredišta. Na Sl. 7 je prikazan odnos između transportnog sloja i slojeva mreže i sesije. Osnovna funkcija transportnog sloja je da prihvati podatke od višeg sloja, podeli ih na manje jedinice, ako je to potrebno, prosledi ih sloju mreže i osigura da svi oni korektno stignu na drugi kraj. Dodatno, sve to mora biti obavljeno efikasno i na način koji će izolovati više slojeve od eventualnih promena na nižim slojevima (uslovljenih recimo promenom hardvera mreže).

Slika 2.7 7 Transportni sloj

Suštinska razlika između transportnog i slojeva nižeg nivoa je u tome što se niže nivoi bave komunikacijom između mašine i njenih neposrednih suseda u mreži, dok transportni sloj podrazumeva komunikaciju između krajnjih mašina, koje mogu biti razdvojene većim brojem rutera. Da bi se olakšala koordinacija izvora i odredišta, na nivou transportnog sloja obično se kreira konekcijaizmeđu dve krajnje tačke komunikacije. Konekcija se može razumeti kao logička veza (ili putanja) za sve pakete koje se prenose u konkretnoj komunikaciji (sadržani u konkretnoj poruci). Sloj sesije obezbeđuje mehanizme za rukovanje sesijom između krajnjih aplikacija. Komunikaciona sesija se sastoji od niza zahteva i odgovora koji se javljaju između aplikacija. Sloj sesije omogućava korisnicima na različitim mašinama da uspostave sesiju između njih. Sesija pruža različite servise, kao što su: upravljanje dijalogom (ko i kada može da šalje podatke), kontrola pristupa zajedničkim resursima (da bi se sprečilo da dve strane u isto vreme pokušaju izvođenje neke kritične operacije) i sinhronizacija (nadgledanje dugotrajnih

19

Poglavlje 2 Internet mreža

prenosa velikih fajlova za slučaj abnormalnog prekida kako bi se po ponovnom uspostavljanju komunikacije prenos nastavio počev od tačke prekida).

PREZENTACIONI I APLIKACIONI SLOJ Aplikacioni sloj korisničkim aplikacijama pruža mrežne usluge i daje pristup informacijama na mreži. Sloj aplikacije je vršni sloj OSI modela. Odnos između sloja sesije i susednih slojeva, prezentacionog i transportnog, prikazan je na Sl. 8. Tipične funkcije sloja sesije su:Upravljanje dijalogom, Kontrola pristupa mrežnim resursima i Sinhronizacija. Prezentacioni sloj je odgovoran za isporuku i formatiranje podataka aplikacionom sloju za dalju obradu ili prikazivanje. On treba da otkloni brige aplikacionom sloju vezane za različite predstave podataka (na primer, različite kodne strane, različite enkripcije i drugo). Prezentacioni sloj je zadužen za sintaksu i semantiku informacija koje se razmenjuju između dva sistema. U sloju prezentacije se obavljaju transformacije podataka koje su neophodne kako bi se uskladili formati podataka, omogućilo racionalno korišćenje komunikacionog kapaciteta mreže i obezbedila sigurnost podataka.

Slika 2.8 8 Sloj sesije

Na Sl. 9 je prikazan odnos između prezentacionog sloja i susednih slojeva, aplikacionog i sloja sesije. Aplikacioni sloj korisničkim aplikacijama pruža mrežne usluge i daje pristup informacijama na mreži. Sloj aplikacije je vršni sloj OSI modela koji omogućava korisniku korišćenje usluga mreže. Svrha šest nižih slojeva je obezbeđivanje pouzdanog prenosa podataka. Međutim, prenos podataka, sam po sebi, nije krajnji cilj. Tek na aplikacionom nivou, mogućnost razmene podataka sa udaljenim korisnicima se uobličava u svrsishodne servise i aplikacije. Sloj aplikacije obezbeđuje interfejs i podršku za standardne servise kao što su elektronska pošta, pristup i prenos udaljenih fajlova, Web i dr.

20

Poglavlje 2 Internet mreža

Slika 2.9 9 Prezentacioni sloj

OSNOVNE FUNKCIJE SLOJEVA OSI REFERENTNOG MODELA Korisnik može biti neka druga aplikacija koja se izvršava na istom računaru. U tom slučaju, interfejs nisu tastatura, miš i ekran već skup funkcija (servis) koje su na raspolaganju korisniku. Napomenimo da korisnik ne mora biti čovek. Korisnik može biti neka druga aplikacija koja se izvršava na istom računaru. U tom slučaju, interfejs nisu tastatura, miš i ekran već skup funkcija (servis) koje su na raspolaganju korisničkom programu. Na Sl. 10 su u sažetom obliku navedene osnovne funkcije slojeva OSI referentnog modela.

Slika 2.10 10 Pregled funkcija slojeva OSI modela

21

Poglavlje 3 WEB pregledavač – klijent strana KOMPONENTE I TEHNOLOGIJE U PROJEKTOVANJU VEB SISTEMA Da bi se Web implementirao na Internetu koriste se dve glavne komponente: Web pregledavač i Web server. World Wide Web (ili samo Web) je kolekcija ogromnog broja elektronskih dokumenata sačinjenih od povezanih Web stranica napisanih u HTML-u (Sl. 1). Stranice su raspoložive korisnicima Web-a u vidu datoteka smeštenih na milionima računara distribuiranih po Internetu. Svaka stranica može sadržati pokazivače (tzv. linkove ili hiperveze) na druge stranice koje mogu biti smeštene na istom ili na nekom drugom računaru (ili, u terminologiji Web-a, Web sajtu). Klikom na link, korisnik prelazi na sledeću stranicu, a ovaj proces se može nastaviti u nedogled..

Slika 3.1 1 Web - distribuirana kolekcija povezanih dokumenata

Koncept stranica koja sadrži pokazivače na druge srodne stranice naziva se hipertekstom. Web pregledavač (browser) je aplikacioni program koji korisnik (klijent) poziva da bi pristupio stranici i prikazao je. Najpoznatiji Web pregledavači suInternet Explorer, Mozilla Firefox i drugi. Web pregledavač ima ulogu klijenta koji stupa u vezu sa odgovarajućim Web serverom da bi dobio primerak navedene stranice. Pregledavač pribavlja traženu stranicu, interpretira tekst zajedno sa sadržanim komandama za formatiranje, i prikazuje ga na ekranu monitora računara ili mobilnog uređaja. Primer stranice prikazan je na Sl. 2.

22

Poglavlje 3 WEB pregledavač – klijent strana

Slika 3.2 2 Primer Web stranice; (b) Stranica koja se učitava u pregledavač klikom na link Internet and Web Technologies

KLIJENT STRANA VEB SISTEMA Pregledavač pribavlja stranicu bez ikakve pomoći korisnika, a nova stanica može biti uzeta sa istog računara sa kojeg je pribavljena i prva ili sa nekog drugog računaru. Osnovni model rada Web-a prikazan je na Sl. 3. Na Sl. 3 vidimo pregledač koji na klijentskom računaru prikazuje Web stranicu. Kada korisnik klikne na liniju teksta koja je povezana sa stranicom sa servera abcd.com, pregledavač sledi link tako što serveruabcd.com šalje poruku kojom od njega traži zahtevanu stranicu. Kada dobije traženu stranicu, pregledavač je prikazuje. Ako ova nova stranica sadrži link na stranicu sa servera xyzw.com, klikom na ovaj link, pregledavač će poslati zahtev ovom računaru, i tako do u nedogled. Da bi bio u mogućnosti da prikaže stranicu, pregledač mora da razume njen format. Kako bi se obezbedilo da svi pregledači razumeju sve Web stranice, Web stranice se pišu u standardnom jeziku koji se zove HTML. Iako su pregledači u osnovi HTML interpretatori, većina pregledača poseduje brojne dodatne funkcije koji olakšavaju navigaciju na Web-u. Po pravilu, pregledavači poseduju podršku za bookmark-e, tj. kreiranje liste često posećivanih stranica.

Slika 3.3 3 Komponente Web modela pregledavač klikom na link Internet and Web Technologies

23

Poglavlje 3 WEB pregledavač – klijent strana

WEB PREGLEDAVAČ – URL Za sada, dovoljno je znati da se URL sastoji iz tri dela: ime protokola (http), simboličko (DNS) ime računara na kome je stranica locirana (www.abcd.com), i ime datoteke koja sadrži stranicu. U osnovi, pregledavač je program koji može da prikazuje Web stranice i reaguje kada se mišem klikne neki objekat na stranici. Kada je objekat izabran, pregledavač prati hipervezu pridružen objektu i pribavlja izabranu stranicu. Jasno je da je za implementaciju hiperveze neophodan način za imenovanje stranica na Web-u. Za imenovanje stranica koriste se šema poznata pod nazivom URL (uniformni lokator resursa). Tipičan URL je oblika: http://www.abcd.com/products.html Pretpostavimo da je korisnik pretražujući Web pronašao link na Elektronski fakultet u Nišu: http://www.elfak.ni.ac.rs/home/index.html Sledi niz koraka koje obavlja pregledavač nakon izbora ovog linka: 1. Pregledavač određuje URL (na stranici, URL obično nije vidljiv već je ˝sakriven˝ iza teksta hiperveze)2. Pregledavač se obraća DNS serveru tražeći od njega IP adresu hosta www.elfak.ni.ac.rs .3. DNS server odgovara sa 160.99.1.14. Pregledavač uspostavlja TCP konekciju sa hostom 160.99.1.1 na portu 80.5. Preko otvorene TCP konekcije, pregledavač šalje zahtev tražeći fajl /home/index.html.6. Server www.elfak.ni.ac.rs odgovara slanjem fajla /home/index.html.7. TCP konekcija se zatvara.8. Pregledavač prikazuje tekst sadržan u falju /home/index.html.9. Pregledavač pribavlja i prikazuje sve slike iz ovog fajla.

ANATOMIJA WEB APLIKACIJE Pod pojmom Web aplikacije podrazumeva se širok skup programskih rešenja koje kao korisnički interface koriste neki Web browser. Pod pojmom Web aplikacije podrazumeva se širok skup programskih rešenja koje kao korisnički interface koriste neki Web browser. Sve Web aplikacije funkcionišu po principu klijent – server. Server predstavlja računar na kome je aplikacija smeštena i koji u zavisnosti od zahteva korisniku isporučuje traženi rezultat. Klijent može biti bilo koji Web browser ili neki specijalno napravljeni klient program koji kontaktira server da bi korisnik dobio rezultate. Elementarni oblik Web aplikacije jeste obična Internet prezentacija. Web aplikacije su obično predmet skepticizma i potcenjivanja kada su u pitanju mogućnosti realizacije nekih kompleksnih problema ili kreiranja nekog ozbiljnijeg software-a. Kompletan softwareski dio Web aplikacije smešten je na serveru, i samim tim je dostupan na korišćenje većem broju ljudi istovremeno. Aplikacija je sigurna od krađe, prepravljanja i uopšte bilo kakvog uticaja na kod u onolikoj meri u kojoj je i sam server siguran.

24

Poglavlje 3 WEB pregledavač – klijent strana

Znači, nema nikakve potrebe kompatibilnosti i podešavanjima.

za

komplikovanim

instalacijama,

vođenja

računa

o

Nije potreban nikakav specijalni software za pristup aplikaciji, nema ograničenja da se mora koristiti isključivo sa jednog računara, a brzina komunikacije sa aplikacijom zavisi od brzine kojom se pristupa serveru. Klient aplikacija je Web browser (MS Internet Explorer, Mozilla,Opera) i obično je uključena u okviru OS instaliranog na korisničkom računaru. Koristeći Internet kao globalnu mrežu, on-linekupovina, elektronsko bankarstvo, informacioni sistemi u okviru firmi, turističke aplikacije i mnogi drugi složeni sistemi bazirani su upravo na Web aplikacijama. Osnovne tehnologije za izradu Web aplikacija su HTML jezik za izradu statičkih strana i Server-Side Scriptingjezici za generisanje HTML koda, odnosno, izradu dinamičkih strana. Preuzimanje i prikaz statičkih Web strane predstavlja jednu realizaciju klijent – server arhitekture, čiji su akteri Internet pretraživač i Web server. Web server predstavlja softver, koji se instalira na određenom serveru koji upravlja zahtevima za pristup određenoj Web stranici, tako što postupa po zahtevu klijenta, isporučujući sadržaj neke Web strane. Web server i pretraživač komuniciraju razmenom poruka putem HTTP.

PROCEDURA RADA WEB APLIKACIJE Rezultat rada Web aplikacije može biti Web stranica, CSS, XML, slika, video ili flash, koje Web server šalje preko Interneta do računara klijenta. Korisnik u web pregledavač unosi adresu (URL) ili popunjava obrazac. Računar korisnika šalje HTTP ili HTTPS zahtev preko Interneta Web serveru na kome se nalaze HTTP server, skripting jezik ili Web aplikacija. Web aplikacija analizira upućeni zahtev i po potrebi: • povlači i/ili obrađuje podatke • dokumenata • baze podataka • komunicira sa drugim web serverima ili web servisima • priprema redirekciju na drugi web server (primer: CDN). Rezultat rada Web aplikacije može biti Web stranica, CSS, XML, slika, video ili flash, koje Web server šalje preko Interneta do računara klijenta. Web stranice mogu biti: •Statičke - jednom formirane, više se ne menjaju. Obične HTML stranice, za čiji prikaz je dovoljan samo web pregledavač. •Dinamičke-sadržaj se menja u zavisnosti od interakcije sa klijentom Za generisanje su potrebni Web server i skripting jezik (npr. PHP). Osnovni gradivni elementi dinamičke Web aplikacije su u mnogim aspektima analogni sa dvoslojnim/troslojnim klijent/server arhitekturama. Zbog velikog broja i raznolikosti proizvoda za ovu namenu, kao i OS, nije moguće obraditi sva potencijalna rešenaja, pa je akcenat stavljen na Windows OS i njemu pripadajuće komponente SQL Server i II Server.

25

Poglavlje 3 WEB pregledavač – klijent strana

Klijent-server arhitektura predstavlja jedan od danas najčešće korišćenih pristupa kod distribuirane obrade podataka. Koreni ove arhitekture nalaze se kod mejn-frejm računara i na njih priključenih terminala. Sličnost sa mejn- frejm arhitekturom jeste postojanje jednog člana sposobnog za izvršavanje zadataka koji su van mogućnosti ostalih članova mreže. Postoje, međutim, bitne razlike između ove dve arhitekture. Kod mejn-frejm arhitekture terminali nemaju nikakvu mogućnost obrade podataka, dok kod klijent-server arhitekture klijenti od servera dobijaju podatke koje, zatim, koriste u lokalnom procesu obrade. Zatim,mejn-frejm računari predstavljaju autonomne članove mreže koji za proces obrade podataka koriste lokalne resurse. Nasuprot tome, server se u vidu klijenta može obratiti drugim serverima u mreži za određeni resurs ili distribuiranu obradu.

DVOSLOJNA I TROSLOJNA KLIJENT-SERVER ARHITEKTURA Veb aplikacije najčešće koriste troslojnu klijent-server arhitekturu na takav način da osnovni klijentski deo čini Veb brauzer. Osnovna klijent-server arhitektura podrazumeva postojanje dva sloja - sloja klijenta i sloja servera (slika 4). Kod dvoslojne klijent-server arhitekture softversko rešenje se razlaže na jednu isključivo klijentsku, i jednu isključivo serversku komponentu. Primer osnovne, dvoslojne klijent-server arhitekture jeste mreža u kojoj korisnici putem aplikacija na svojim računarima pristupaju centralnoj bazi podataka. U praksi su česte i klijent-server arhitekture sa tri sloja jer se njima lakše rešavaju pitanja zaštite podataka i kontrole pristupa. Dvoslojna klijent/server aplikacijase tipično sastoji od klijentskog softvera koji implementira korisnički interfejs i komunikaciju sa bazom podataka, kao što je SQL Server, radi postizanja ažurnosti podataka. Dakle grafički korisnički intrerfejs se obavezno nalazi na klijentskoj mašini, DBMS obavezno na serveru, dok se poslovni deo sistema (sama obrada) može nalaziti ili na klijentu ili na serveru.

Slika 3.4 4 Dvoslojna klijent-server arhitektura

Na primer, Veb aplikacije najčešće koriste troslojnu klijent-server arhitekturu na takav način da osnovni klijentski deo čini Veb brauzer, srednji sloj čini aplikativni Veb server, a server baze podataka čini treći, serverski sloj (slika 5). U takvoj organizaciji srednji sloj je realizovan kao serverska komponenta, gledano sa aspekta Veb brauzera, odnosno kao klijentska komponenta, gledano sa aspekta servera baze

26

Poglavlje 3 WEB pregledavač – klijent strana

podataka. Na primeru troslojne arhitekture jasno se može steći uvid da se pojmovi „klijent" i „server" ne odnose na hardverske karakteristike računara, već na tipove procesa, ili čak njihove procedure, koji se na tim računarima izvršavaju. Ukoliko neki proces, ili jedan njegov deo, zahteva uslugu od drugog procesa (bilo na lokalnom ili na udaljenom računaru) njegovo ponašanje spada u klijentski deo klijent-server arhitekture. I obrnuto, ukoliko neki proces čeka na zahteve drugih procesa, njegovo ponašanje spada u serverski deo klijent-server arhitekture. Opšte pravilo za određivanje uloge kod klijent-server arhitekture definiše da je klijentska strana ona koja od druge strane zahteva uslugu, a da je serverska strana ona koja čeka na zahtev od druge strane i isporučuje odgovor na njega.

Slika 3.5 5 Troslojna klijent-server arhitektura

27

Poglavlje 4 Web server ITERATIVNA OBRADA ZAHTEVA Serveri sa iterativnom obradom zahteva osluškuju na dodeljenom portu čekajući na zahtev klijenta. Postoji veliki broj različitih strategija za optimalno iskorišćavanje procesorskih, memorijskih i komunikacionih kapaciteta računarskih sistema i mreža. Serveri se, u zavisnosti od načina na koji raspoređuju obradu višestrukih zahteva, dele na: 1. servere sa iterativnom obradom zahteva i 2. servere sa konkurentnom obradom zahteva. Serveri sa iterativnom obradom zahteva osluškuju na dodeljenom portu čekajući na zahtev klijenta, kao što je prikazano na slici 1.Nakon prihvatanja zahteva klijenta zahtevi ostalih klijenata se odbacuju ili čekaju u ulaznom baferu sve dok se prihvaćeni zahtev ne obradi i rezultati njegove obrade pošalju natrag klijentu.

Slika 4.1 1 Iterativna obrada zahteva

Mana iterativne obrade zahteva je u tome što takav pristup može znatno uticati na performanse u smislu broja obrađenih zahteva po jedinici vremena. Ukoliko obrada jednog zahteva u toku svog izvršenja zauzme sve resurse servera, performanse se mogu smatrati optimalnim. Međutim, ukoliko obrada zahteva oduzme dodatno vreme usled čekanja na resurs (koji nije potreban za obradu ostalih zahteva, odbačenih ili koji čekaju u ulaznom baferu), iterativni pristup pokazuje lošije performanse od konkurentnog. Glavna prednost iterativnog pristupa jeste eliminisanje problema konkurentnog pristupa internim resursima servera. Konkurentna obrada zahteva je pristup koji nudi bolje performanse od iterativnog pristupa u situacijama u kojima server obrađuje veliki broj zahteva od strane više klijenata. Poboljšanje

28

Poglavlje 4 Web server

pefromansi proizilazi iz mogućnosti obrade više zahteva paralelno. Paralelna obrada se postiže pokretanjem novog procesa (ili niti procesa, u zavisnosti od samog softvera i od operativnog sistema) za obradu svakog klijentskog zahteva (Slika 2).

Slika 4.2 2 Konkurentna obrada zahteva

KONKURENTNA OBRADA ZAHTEVA Komponente na server strani služe istoj svrsi kao i kod ručno pisanog programa i obično im se pristupa preko skript koda. Komponente za pristup serveru i bazi podataka su osnovna građa. Za ovakav pristup je potreban kompleksniji serverski softver koji se sastoji od dispečerskog dela (dela koji je zadužen za prihvatanje zahteva i pokretanje procesa njihove obrade) i dela koji je zadužen za obradu zahteva. Konkurentna obrada zahteva može u određenim situacijama pokazati slabije performanse od iterativne obrade usled trošenja procesorskog vremena na pokretanje novih procesa za obradu zahteva. Takođe, softver koji omogućava konkurentnu obradu je kompleksniji jer interno rešava konkurentni pristup sistemskim resursnima. Softver za konkurentnu obradu najčešće unapred pokreće određen broj procesa za obradu zahteva a po potrebi taj broj povećava do konfiguracione vrednosti ili ograničenja sistemskim resursima. Veb je danas najpopularniji servis Internet mreže. Naziv je dobio po prvom Veb brauzeru koji je posedovao grafički korisnički interfejs. Veb je incijalno razvijen da omogući pristup hipertekstualnim dokumentima koji su se nalazili na različitim serverima. Vremenom su se pojavili programski jezici na strani servera koji su omogućili kreiranje dinamičkih dokumenata kao odgovora na specifične zahteve klijenta, zatim tehnologije za razvoj aktivnih komponenata na strani klijenta protokoli za servisno orijentisanu arhitekturu zasnovani na Vebu i slično. Time je Veb sve više postajao platforma za razvoj mrežnih aplikacija tako da danas preti da u potpunosti zameni tradicionalne desktop aplikacije. Aplikacija se implementira u nekoj kombinaciji HTML(korisnički interfejs) i serverovog skript koda (povezuje se sa bazom podataka). Komponente na server strani služe istoj svrsi kao i kod ručno pisanog programa i obično im se pristupa preko skript koda. Komponente za pristup serveru i bazi podataka su osnovna građa Web-zasnovane aplikacije. Na serverskoj strani najosnovniji element su servisi za rad nad podacima, ali pored njih postoje i neki dodatni servisi kao što su HTTP Server(statičke stranice) ili Internet Information Server(dinamičke kao na slici 3)

29

Poglavlje 4 Web server

Slika 4.3 3 Komponente za pristup serveru i bazi podataka

OSNOVNE PREDNOSTI WEB APLIKACIJA Osnovna prednosti Web aplikacija je kompatibilnost jedne aplikacije sa različitim hardverskim i softverskim platformama (PC, laptop, tablet, Windows, Linux, Mac itd). Osnovne prednosti Web aplikacija su: • Kompatibilnost jedne aplikacije sa različitim hardverskim i softverskim platformama (PC, laptop, tablet, Windows, Linux, Mac itd). • Ažuriranje i održavanje na serveru, bez potrebe da se distribuira i/ili instalira na računarima krajnjih korisnika. • Povoljnije za korišćenje kod organizacija sa velikim brojem korisnika. • Po kvalitetu su postale ravnopravne desktop aplikacijama. HTML5 omogućava kreiranje bogatog interaktivnog okruženja u okviru web pregledavača (video, audio, vizuelni efekti). • Zauzima malo (ili nimalo) mesta na hard disku korisnika. • SaaS (Software as a service) • Neuporedivo niža cena u odnosu na desktop aplikacije. • Otežava softversko piratstvo i/ili reverse engineering. • Laka integracija sa drugim web servisima. • Omogućavaju da se program izvršava u programskim jezicima koje Web pregledavači ne podržavaju. • Daju mogućnost da se programiraju dinamičke Web aplikacije nezavisno od čitača, bez pribegavanja programiranju na strani klijenta, pomoću Java apleta, DHTML-a i ActiveX kontrola • Omogućuje klijentu podatke koji su mu inače nedostupni. • Često ostvaruje brže vreme učitavanja. • Obezbeđuje poboljšane mere bezbednosti. • Važno je napomenuti da korišćenje dinamičkih Web strana povećava opterećenje servera, naročito ukoliko njima pristupa veći broj korisnika.

30

Poglavlje 4 Web server

• Potrebna je veća inicijalna investicija u hardver web servera, koji se koriste za generisanje dinamičkih web strana. • Jezik koji se najčešće koristi za kreiranje dinamičkih strana je PHP. • PHP je stekao popularnost zbog svoje jednostavnosti i sintakse nasleđene iz programskog jezika C. • Tokom vremena jezik se proširivao i sticao mogućnosti za objektno orijentisano programiranje, naročito od verzije 5.0.

TOK KOMUNIKACIJE Ove instrukcije, kao što su PHP, JSP (Java), ASP (Visual Basic), itd., nazivamo skriptovima na strane servera (Server - Side Scripts), zato što se izvršavaju na Web serverima. Za kreiranje instrukcija čija je namena automatsko generisanje HTML koda, na osnovu parametara zahteva, koriste se različiti programski jezici i njihove varijante, kao što su PHP, JSP (Java), ASP (Visual Basic), itd. Ove instrukcije nazivamo skriptovima na strane servera (Server - Side Scripts), zato što se izvršavaju na Web serverima kao na slici 4. Za kreiranje instrukcija čija je namena automatsko generisanje HTML koda, na osnovu parametara zahteva, koriste se različiti programski jezici i njihove varijante, kao što su PHP, JSP (Java), ASP (Visual Basic), itd.

Slika 4.4 4 Tok komunikacije klijent-server

Ova lekcija sadrži video materijal. Ukoliko želite da pogledate ovaj video morate da otvorite LAMS lekciju. Ove instrukcije nazivamo skriptovima na strane servera (Server - Side Scripts), zato što se izvršavaju na Web serverima (Slika 5).

Slika 4.5 5 Skriptovi na strane servera (Server - Side Scripts)

31

Poglavlje 4 Web server

Ova lekcija sadrži video materijal. Ukoliko želite da pogledate ovaj video morate da otvorite LAMS lekciju.

TOK KOMUNIKACIJE-OBRADA SKRIPTA HTML- razlika između statičnog Web-sajta i dinamičke Web-aplikacije ogleda se u načinu na koji se vrši kretanje po HTML stranama. HTML- razlika između statičnog Web-sajta i dinamičke Web-aplikacije ogleda se u načinu na koji se vrši kretanje po HTML stranama (Slika 6 i 7). ->Statički HTML sajt može da se uporedi sa knjigom čiji se sadržaj i indeks ne nalazi na jednom mestu, nego su delovi raspoređeni po tekstu. -> Strane na statičkom Web-u imaju slabo definisane međusobne odnose. -> Svaka strana sadrži veze (link) prema ostalim relevantnim stranama, ali sveukupno kretanje kroz sajt je uglavnom određeno od strane korisnika. -> Web-aplikacija je više okrenuta ka zadatku nego pretraživanju. -> Veze više deluju kao meni, nego kao indeks,a moguća odredišta bilo sa koje strane ograničena su operacijama koje mogu da se izvrše sa te strane.

Slika 4.6 6 Tok komunikacije-statičke strane

Serverski skript kod - jedan od osnovnih zadataka skript koda koji se sadrži u HTML strani (ili formi) je da sakupi podatke od korisnika i prosledi ih aplikaciji na serveru. -> Jedan od prvih i najpopularnijih intrefejsa za podršku skript kodu je Common Gateway Interface (CGI) protokol. Glavni nedostaci ovog protokola su: • dinamičke strane moraju da budu u celini konstruisane programski, • obrada grešaka koja se ekskluzivno obavlja na server strani može da degradira vreme odziva kod sporih veza

32

Poglavlje 4 Web server

Slika 4.7 7 Tok komunikacije-dinamičke strane

TCP KONEKCIJE Kada korisnik ukuca URL ili klikne na hipervezu, pretraživač analizira URL i deo između http:// i sledeće kose crte tumači kao DNS ime čiju IP adresu traži od DNS servera. Sa IP adresom na raspolaganju, pretraživač uspostavlja TCP konekciju na portu 80 odgovarajućeg servera. Kroz otvorenu konekciju, pretraživač šalje komandu koja sadrži preostali deo URL-a, tj. ime fajla na kontaktiranom serveru. Server vraća nazad fajl i pretraživač ga prikazuje. Web server možemo zamisliti kao program koji neprekidno, u petlji, obavlja sledeći niz aktivnosti: 1. Prihvata TCP konekciju od klijenta (pretraživača). 2. Preuzima ime zahtevanog fajla. 3. Pronalazi fajl (na svom hard disku). 4. Šalje fajl klijentu. 5. Zatvara TCP konekciju. Savremeni Web serveri poseduju brojne dodatne mogućnosti, ali u osnovi, rad Web servera se svodi na prethodnu proceduru. Uočimo da svaki zahtev upućen od strane klijenta, podrazumeva pristup hard disku radi uzimanja traženog fajla. Prosečno vreme pristupa hard diskova velike brzine rada iznosi oko 5 ms, što postavlja ograničenje na najviše 200 zahteva/ s (i manje ako se često čitaju veliki fajlovi). Za Web sajtove sa velikom brojem istovremenih posetioca 200 zahteva/s je isuviše malo. Jedno poboljšanje koje se koristi kod svih Web servera podrazumeva da se u operativnoj memoriji računara kreira keš sa n najskorije korišćenim fajlovima. Pre nego što fajl potraži na disku, server proverava keš. Ako je fajl u kešu, tada nije potrebno pristupati hard disku jer se fajl može uzet direktno iz memorije. Iako je za efikasno keširanje potrebno rezervisati relativno veliku količinu operativne memorije kao i dodatno CPU vreme radi provere da li se fajl nalazi u kešu, ušteda u vremenu obrade jednog zahteva je obično dovoljno velika da kompenzuje dodatni trošak. Sledeći način za ubrzanje rada Web servera predviđa uvođenje multithreading (višenitni rad). Engleska reč thread se prevodi kao nit, a pojam multithreading kao višenitni rad ili rad sa više niti u isto vreme. Procesi i niti su dva osnovna mehanizma za paralelno (konkurentno) izvršavanje programa. Programi koji imaju potrebu da istovremeno obavljaju više poslova u isto vreme mogu za svaki takav zadatak da kreiraju jedan proces koji će se izvršavti uporedo sa drugim procesima. Svaki proces poseduje svoju memoriju za čuvanje svojih podataka. Nit je u osnovi sličan procesu, s tom razlikom da ne poseduje svoju spostvenu memoriju već je deli sa svim ostalim nitima kreiranim u istom programu.

33

Poglavlje 4 Web server

MULTITHREAD WEB SERVER Da bi se ostvarilo bilo kakvo poboljšanje performansi VA u odnosu na single-thread (jednonitni) model, neophodno je da sistem poseduje više više pozadinskih modula i jednog hard diska. Kod višenitnog rada server se sastoji iz jednog front-end (isturenog) pristupnog modula koji prihvata sve dolazne zahteve i k pozadinskih modula koji obrađuju zahteve (Sl. 8). Svih k+1 thread-ova pripada istom procesu i imaju pristup kešu. Kada zahtev stigne, pristupni modul ga prihvata i kreira jedan kratak zapis sa podacima o zahtevu kojeg predaje jednom od trenutno raspoloživih pozadinskih procesa.

Slika 4.8 8 Multithread Web server sa pristupnim modulom i pozadinskim modulima

Pozadinski modul najpre proverava da je fajl koji traži prisutan u kešu i ako jeste, u zapis upisuje pokazivač na fajl. Ako fajl nije u kešu, pozadinski modul započinje operaciju prenosa fajla sa diska u keš (uz eventualno izbacivanje nekih keširanih fajlova, ako u kešu nema dovoljno prostora). Nakon što je fajl prebačen u keš, zapis sa upisanim pokazivačem se vraća pristupnom moduli koji preuzima fajl iz keša i prosleđuje ga klijentu koji je uputio zahtev. Prednost opisanog mehanizma je u tome što za vreme dok su jedan ili više pozadinskih modula blokirani čekajući na završetak operacije čitanja fajla sa diska (i zbog toga ne troše CPU vreme), ostali moduli mogu biti aktivno upošljeni na obradi novih zahteva. Da bi se ostvarilo bilo kakvo poboljšanje performansi u odnosu na single-thread (jednonitni) model, neophodno je da sistem poseduje više od jednog hard diska. U idealnom slučaju, propusna moć multithreadWeb severa sa k pozadinskih modula u sistemu sa k diskova, može biti k puta veća u odnosu na single-thread server i jedan disk.

34

Poglavlje 4 Web server

MULTITHREAD WEB SERVER - POZADINSKI MODUL Savremeni Web serveri, osim vraćanja klijentu traženog fajla, obavljaju i niz dodatnih operacija. U zavisnosti od tipa pristiglog zahteva, pozadinski modul obavlja neki podskup sledećeg niza aktivnosti: 1. Određivanje imena zahtevane Web stranice iz URL-a. 2. Provera autentičnosti klijenta 3. Provera prava pristupa klijenta. 4. Provera prava pristupa Web stranici. 5. Provera keša. 6. Pribavljanje zahtevane stranice sa diska. 7. Određivanje MIME tipa koji će biti sadržan u odgovoru koji se vraća klijentu. 8. Slanje odgovora klijentu. 9. Kreiranje zapisa u log fajlu. Korak 1 je neophodan zato što primljeni zahtev ne mora sadržati stvarno ime fajla. Na primer, razmotrimo URL http://www.elfak.ni.ac.rs, kod kojeg ne postoji ime fajla. U takvim slučajevima, zahtev se odnosi na podrazumevani fajl (čije je ime obično default.html ili index.html). Takođe, pretraživač može u zahtevu da navede podrazumevani jezik korisnika (npr. Srpski ili Engleski), a da server izabere verziju stranice na tom jeziku. Korak 2 podrazumeva proveru identiteta klijenta. Ovaj korak je neophodan za stranice koje nisu dostupne svim korisnicima. U koraku 3 proverava se da li je datom klijentu dozvoljen pristup traženoj stranici. U koraku 4 proverava se da li je postoji neko ograničenje koje se odnosi na pristup samoj stranici. Na primer, pristup stranici može biti dozvoljen samo ako zahtev potiče iz određenih domena (npr. stranica može biti dostupna samo lokalnim korisnicima). U koracima 5 i 6 vrši se uzimanje stranice. Korak 7 podrazumeva određivanje MIME tipa stranice (na osnovu ekstenzije fajla, prvih nekoliko reči samog fajla ili na neki drugi način). U koraku 8, formira se odgovor koji se vraća klijentu, i na kraju u koraku 9, formira se zapis o obrađenom zahtevu i upisuje u jednu posebnu datoteku za vođenje evidencije o pristupima Web severu (tzv. log fajl). Zapis sadrži informaciju o identitetu klijenta, domenu iz kojeg je zahtev poslat, vreme prijema zahteva, ime zahtevane stranice itd.

35

Poglavlje 4 Web server

MODEL FARME SERVERA U slučajevima kada je broj zahteva koji se upućuje Web serveru u jednoj sekundi veoma veliki, jedan CPU neće biti u stanju da obradi sve zahteve, bez obzira na broj hard diskova se koriste. U slučajevima kada je broj zahteva koji se upućuje Web serveru u jednoj sekundi veoma veliki, koristi se model farme servera. Kod ovog modela, umesto jednog koristi se više čvorova (računara), od kojih svaki eventualno poseduje više diskova (Sl. 9). Pretpostavka je da svi računari uključeni u farmu servera poseduju sve Web stranice. Pristupni modul i dalje prihvata zahteve, ali ih sad distribuira različitim računarima, a ne nitima u okviru jednog računara. Na ovaj način, smanjuje se opterećenje pojedinačnih računara.

Slika 4.9 9 Farma servera

Jedan problem koji se javlja kod farme servera posledica je nepostojanja zajedničkog keša, jer svaki čvor poseduje svoju sopstvenu memoriju. Naime, može se desiti da je traženi fajl prisutan u kešu nekog čvora, a da je zahtev prosleđen čvoru kod kojeg se fajl mora pročitati sa diska. U takvoj situaciji, vreme obrade zahteva je duže nego što je to neophodno. Takođe, nakon obrađenog zahteva isti fajl će se naći u dva keša. Jedan način za ublažavanje gubitka u performansama zbog nepostojanja zajedničkog keša sastoji se u tome da pristupni modul vodi evidenciju o tome kome je poslao svaki zahtev, a da naredne zahteve koji odnose na istu stranicu šalje istom čvoru. Na taj način, pojedinačni čvorovi se ˝specijalizuju˝ za pojedine stranice tako da se ukupni raspoloživi prostor u kešu ne troši neracionalno za čuvanje svakog fajla u svakom kešu.

36

Poglavlje 5 URL UNIFORM RESOURCE LOCATOR - UNIFORMNI LOKATOR RESURSA Ključna pretpostavka Web-a je postojanje mehanizma za imenovanje i lako lociranje stranica. Web se sastoji od ogromne kolekcije dokumenata/stranica povezanih hipervezama, a zapamćenih u fajlovima koji su locirani na hiljadama servera distribuiranim po globalnom Internetu. Imajući to u vidu, ključna pretpostavka Web-a je postojanje mehanizma za imenovanje i lako lociranje stranica. Konkretno, pre nego što izabrana stranica može biti pribavljena i prikazana u pretraživaču, neophodno je odgovoriti na sledeća tri pitanja: 1. Koje je ime stranice? 2. Gide se stranica nalazi? 3. Kako se stranici može pristupiti? Odgovor na ova tri pitanja sadržan je u URL-u (Uniform Resource Locator- uniformni lokator resursa) stranice. Naime, svakoj stranici na Web-u dodeljen je URL koji se koristi kao njeno svetski jedinstveno ime. URL se sastoji iz tri dela: (a) protokol (ili šema); (b) DNS ime računara na kome je stranica locirana i (c) lokalno ime koje na jedinstveni način ukazuje na konkretnu stranicu (najčešće ime fajla na hard disku u kome je stranica zapamćena). Na primer, URL Web stranica kursa Internet i Web tehnologije na Elektronskom fakultetu u Nišu je http://es.elfak.ni.ac.rs/iw/iw.htm i sastoji se iz tri dela razdvojenih kosim crtama:protokol (http), DNS ime hosta (es.elfak.ni.ac.rs) i ime fajla (iw/iw.htm). Deo za ime fajla se sastoji od: relativna putanja u odnosu na podrazumevani Web direktorijum na serveru es.elfak.ni.ac.rs (iw/) i imena samog fajla (iw.htm). Deo za ime fajla može biti izostavljen iz URL-a (npr. samo http://es.elfak.ni.ac.rs). U tom slučaju, Web server zahtev se preusmerava na glavnu (podrazumevanu) stranicu Web sajta. Takođe, deo za ime fajla može da sadrži putanju do direktorijuma, ali ne i samo ime fajla (npr. http://es.elfak.ni.ac.rs/iw/). U takvim slučajevima, Web server preusmerava zahtev na podrazumevani fajl u tom direktorijumu (npr. http://es.elfak.ni.ac.rs/iw/index.htm). Kod mnogih Web sajtova uvedene su skraćenice za imena fajlova, koje počinju znakom ˝~˝. Na primer, ime oblika ~ana/ zamenjuje kompletnu putanju do direktorijuma korisnika ana na lokalnom računaru.

37

Poglavlje 5 URL

Kao što je već rečeno, za komunikaciju između Web klijenta (pregledavača) i Web servera koristi se TCP protokol.

TCP PROTOKOL Kada korisnik ukuca URL ili klikne na hipervezu, pregledavač analizira URL i deo između http:// i sledeće kose crte tumači kao DNS ime čiju IP adresu traži od DNS servera. Pregledavač otvara TCP konekciju sa Web serverom, koja se potom koristi za prenos zahteva od pretraživača ka serveru, a onda i za prenos odgovora (koji sadrži traženu stranicu) od servera do pretraživača. Međutim, TCP protoko se koristi samo za transport zahteva i odgovora, dok su pravila konverzacije i formati poruka koje se razmenjuju između pretraživača i Web servera regulisana posebnim aplikacionim protokolom. Šta više, ne postoji samo jedan, već se za ovu namenu mogu koristiti različiti aplikacioni protokoli koji su specijalizovani za prenos specifičnih tipova resursa. Ime protokola koji se koristi za pristup stranici navedeno u početnom delu URL-a. Delimičan spisak protokola koji se mogu koristiti kao deo URL-a, naveden je u tabeli sa Sl. 1.

Slika 5.1 1 Protokoli koji se mogu korisiti u URL-u

Protokol HTTP je osnovni protokola Web-a i koristi se za komunikaciju Web klijenta i Web servera. Više detalja o ovom protokolu biće dato u sledećoj sekciji. Protokol FTP, koji se koristi za pristup fajlovima, bio je u širokoj upotrebi i pre nastanka Web-a. I danas na Internetu postoj veliki broj FTP servera sa kojih zainteresovani korisnici mogu preuzimati najrazličitije fajlove. Šta više Web je olakšao korišćenje FTP-a, s obzirom na to da je pristup FTP serveru preko Web pregledavača lakši, od pristupa putem osnovnog FTP korisničkog interfejsa. Takođe, FTP, za razliku od HTTP, omogućava prenos fajlova u oba smera, kako od servera do klijenta, tako i od klijenta do servera. Ova lekcija sadrži video materijal. Ukoliko želite da pogledate ovaj video morate da otvorite LAMS lekciju.

38

Poglavlje 5 URL

FTP PROTOKOL URL je osmišljen ne samo da omogući korisnicima navigaciju na Web-u, već i korišćenje drugih mrežnih servisa (FTP, news, Gopher, e-mai i telent) na uniforman način. Protokol file omogućava pristup lokalnim fajlovima i prikazivanje njihovog sadržaja u pretraživaču, na isti način kao Web stranica. Ovaj pristup je sličan FTP-u, ali ne zahteva FTP server. Naravno, primenljiv je samo na fajlove koji se nalaze na lokalnom hard disku računara. Sistem vesti USENET, postojao je mnogo pre nastanka Interneta. Danas ga čini oko 30.000 grupa za razmenu vesti u kojima milioni ljudi diskutuju na najrazličitije teme tako što postavljaju i čitaju članke koji se odnose na temu konkretne grupe. Protokol news omogućava da se članku iz grupe za razmenu vesti pristupa na isti način kao i Web stranici. Gopher je protokol koji se nekada koristio u istoimenom sistemu za pronalaženje informacija na Internetu, koji se smatra pretečom Web-a. Konceptualno, Gopher je sličan Web-u, ali podržava samo tekst, a ne i slike. Danas se smatra zastarelim i nije više u upotrebi. Protokol mailtoomogućava korisnicima da putem Web pretraživača šalju elektronsku poštu. Dovoljno je u polje za unos hiperlinka upisati mailto: i e-mail adresu primaoca. Većina Web pretraživača, u ovakvoj situaciji, otvara program za slanje elektronske pošte sa popunjenim poljima za e-mail adresu. Protokol telnet, kao što znamo, koristi se za uspostavljanje konekcije sa udaljenim hostom. Slično kao u slučaju mailto protokola, upisivanjem telnet: zajedno sa IP adresom udaljenog hosta u polje za unos hipelinka, otvara program za rad TELNET protokolom.

39

Poglavlje 6 Statički Web dokumenti HTML JEZIK Osnova Web-a jeste prenos Web stranica od servera do klijenta. U svom najjednostavnijem obliku, Web stranicesu statičke, tj. datoteke smeštene na nekom serveru koje ˝čekaju˝ da budu zatražene i koje se, bez bilo kakvih izmena, dostavljaju klijentu. Posmatrano na ovaj način, i za sadržaje kakvi su video i audio se može reći da predstavljaju statičke Web stranice jer se preuzimaju kao datoteke. Web stranice se pišu u jeziku koji se zove HTML (HyperText Markap Language– hipertekstualni markerski jezik). Pomoću HTML-a projektant (dizajner) Web stranica može da kreira Web stranice koje sadrže tekst, grafiku i hiperveze ka drugim Web stranicama. Pojam markap language(markerski jezik) znači da HTML služi za opis načina na koji su dokumenti formatirani, odnosno kako će biti prikazani u Web pretraživaču. HTML definiše skup komandi za formatiranje koje, ugrađene u prvobitni tekst dokumenta, daju uputstva za prikazivanje sadržaja dokumenta. Komande se nazivaju oznakama ili tagovima (od eng. tag) i uokvirene su znakovima manje od i veće od. Neki tagovi se javljaju u parovima, a odnose se na sve stavke koje se nalaze između uparenih oznaka. Na primer, u HTML-u, znači početak, a kraj teksta napisanog masnim slovima. Svaka Web stranica se sastoji iz dva dela: zaglavlje i telo. Oba ova dela uokvirena su tagovima i . Zaglavlje počinje tagom , a završava se tagom, dok telo počinje tagom i završava se tagom . Tekst unutar taga se naziva direktivom. Većina HTML tagova ima identičan format; koriste da označe početak nečega i da označe njegov kraj. Većina pretraživača poseduje opciju, obično nazvanu ˝View Source˝. Izborom ove opcije, prikazuje se izvorna verzija tekuće HTML stranice, umesto njenog formatiranog izgleda. Tagovi se mogu pisati bilo malim bilo velikim slovima. Tako, i znače isto. Formatiranje samog HTML dokumenta je irelevantno. HTML parser (deo pretraživača koji interpretira HTML) ignoriše dodatne blanko znake (razmake) i prelaske u novi red. To znači da se razmaci mogu slobodno koristiti kako bi se HTML dokument učinio čitljivijim. Međutim, prazne linije, s obzirom na to da se ignorišu, ne mogu se koristiti za razdvajanje paragrafa, već se za tu namenu moraju koristiti posebni tagovi.

ULOGA TAGOVA Za svaki tag, postoji definisani skup dozvoljenih parametara 40

Poglavlje 6 Statički Web dokumenti

Pojedini tagovi imaju parametre, koji se nazivaju atributima. Na primer, ”slika” je tag, , sa parametrima srci alt. Vrednost parametra srcje postavljena na abc, a parametra altna slik a. S obzirom na to da su parametri imenovani, redosled navođenja parametara u tagu nije od značaja. Za pisanje specijalnih karaktera (koji ne pripadaju ASCII skupu karaktera), u HTML se koristi posebna sintaksa. Specijalni znak počinje znakom ˝&˝, а završava se znakom ˝;˝. Na primer,   označava blanko znak, è označava è, a è Irish. Za predstavljanje znakova ˝<˝, ˝>˝ i ˝&˝, koji imaju posebno značenje u HTML-u, koristi se:<, > i &, respektivno. Glavna stavka u zaglavlju HTML dokumenta je naslov, omeđen tagovima i . Naslov se ne prikazuju na stranici, mada se kod nekih pretraživača prikazuje kao naslov prozora stranice. U tabeli na Sl. 1 navedeni su tagovi definisani HTML jezikom. Za ispisivanje naslova koristi se tag , gde je n ceo iz opsega 1 - 6. Tako, tag

označava glavni naslov, a

naslov namanje važnosti. Oblik u kojem će naslovi biti prikazani, shodno nihovom nivou, zavisi od pretraživača. Tipično, tekst naslova višeg nivoa (sa manjom brojnom vrednošću) ispisuju se većim i ˝težim˝ fontom. Takođe, pretraživač može da koristi različite boje za prikaz naslova različitih nivo. Obično, naslovi označeni tagom

ispisuje se većim i masnim slovima i sa barem jednom praznom linijom iznad i ispod naslova. Naslovi omeđeni tagom

ispisuju se manim fontom sa manjim razmakom iznad i ispod teksta naslova, itd. Tagovi i se koriste za označavanje teksta koji treba ispisati masnim (bold) i iskošenim (italic) slovima, respektivno.

Slika 6.1 1 Spisak najznačajnijih HTML tagova

UPOTREBA TAGOVA HTML pruža više različitih načina za kreiranje listi, uključujući i ugnježdene liste.

41

Poglavlje 6 Statički Web dokumenti

Liste se započinju tagom


Related Documents


More Documents from "Chlero Gutierrez"