480 likes | 681 Views
Serversko programiranje. Serversko programiranje.
E N D
Serversko programiranje • Serversko programiranje ima mnogo oblika, uključujući CGI skriptove, serverske API program poput NSAPI (Netscape Server Application Programming Interface) i ISAPI (Internet Server Application Programming Interface)i Java programa, serverska okruženja za skriptove, kakva su ASP kompanije Microsoft i ColdFusion kompanije Allaire • Svaka tehnologija ima svoje prednosti i mane – zajedničko svojstvo: kontrola • Server je jedini deo klijent-server arhitekture nad kojim autor lokacije ima kontrolu
Serversko programiranje • Serversko programiranje ne primećuje razlike koje mogu da postoje na klijentskoj strani • Lokacija čija je interaktivnost bazirana na serveru, teoretski može da isporuči sadržaj bilo kom čitaču • Razvoj interaktivnih elemenata, uprkos prednostima klijentske tehnologije, za veliki broj lokacija sa velikim protokom podataka oslanja se uglavnom na serverske tehnologije • Glavna mana serverske tehnologije je: brzina • Zbog kompletne interakcije koja se odvija na serveru može doći do kašnjenja zbog: • Opterećenosti servera ili • Zagušenosti mreže za prenos podataka
CGI programi • Najstarija tehnologija za serversko programiranje: Common Gateway Interface (CGI) programi • CGI omogućava Web serverima da pokreću programe kao odgovor na HTTP zahteve • CGI specificira kako proslediti argumente programu koji će se izvršiti kao deo HTTP zahteva • CGI omogućava da se vrati rezultat u HTML (ili nekom drugom) formatu, i to u zavisnosti od parametara konkretnog zahteva
CGI programi Svaki HTTP zahtev, od strane korisnika, generiše novi proces na serveru HTTP zahtev
CGI programi • CGI programi mogu da se pišu na svim jezicima koji mogu da se koriste na serveru koji izvršava program • Najčešće se CGI programi pišu na jeziku Perl, zbog njegove izuzetne mogućnosti za rad sa znakovnim nizovima i podrške za Web • CGI programi mogu se pisati u bilo kom od sledećih jezika: • C/C++, Java, Visual Basic, pa čak i Pascal, Cobol ili Fortran CGI programe treba pisati na jeziku koji je brz, prenosiv i koji odgovara serveru što će ga izvršavati i programeru koji će ga pisati i održavati.
CGI programi • CGI program mora da kreira posebni proces za svaki zahtev posetioca, koji nestaje tek kada se u potpunosti završi transfer podataka • Kreiranje nove instance programa zahteva dodatno vreme, OS treba da učita program, alocira memorijski prostor, a nakon izvršenja da dealocira i ukloni program iz memorije • Performanse – značajne – server opslužuje veliki broj istovremenih zahteva • U serverskim programima veoma je važan bezbednosni aspekt CGI programi se lakše mogu nadgledati i održavati ukoliko se postave u jedan direktorijum
Serverski API • Serverski API programi koriste se za važne funkcije koje treba brzo da se izvršavaju • Omogućavaju dobru integraciju sa Web serverom • Lako pristupaju glavnim serverskim funkcijama kao što su: • Provera identiteta, kontrola pristupa i brz pristup bazi podataka ili pozadinskim uslugama • Glavna mana serverskih API programa jeste njihova složenost i visoka cena • Loše napisan API mogao bi da blokira ceo Web server, dok loš CGI program može samo da zauzme previše procesorskog vremena
Java Servleti • Servleti - jedna od tehnologija za generisanje dinamičkih Web sadržaja. • Da bise servleti mogli koristiti, Web server mora da ima odgovarajuću podršku zaservlete. Pisanje servleta je moguće samo u programskom jeziku Java, tako da jeza njihovo izvršavanje potrebna i JVM (koju najčešće obezbeđuje Web server). • Servlet je -Java klasa koja nasleđuje standardnu klasu HttpServlet. • Klase i interfejsi koji se koriste u pisanju servleta nalaze se u paketima • javax.servlet i • javax.servlet.http.
Životni ciklus servleta SERVER Prvi zahtev sevlet kod 1 1. POSETILAC kreira novi proces 2. POSETILAC SERVER sevlet kod sevlet kod 2 ... Servlet prihvata i obrađuje zahteve posetilaca N-ti POSETILAC Uništi proces SERVER 3 sevlet kod
Prednosti Java Servleta prvi put novi proces sledeći put samo nova nit (thread) HTTP zahtev • Efikasnost – prilikom prvog zahteva prema servletu, server mora pokrenuti novi proces unutar Java virtualne mašine, ali za svaki sledeći zahtev prema tom servletu, JVM kreira samo malu Java nit (eng. Thread) • Portabilnost – zbog prirode napiši jednom pokreni, bilo gde (eng. Write once, run anywhere) Java idioma, servleti su portabilni na različitim SW/HW platformama
Nedostaci Java servleta • Java servleti mogu biti sporiji od CGI skripta, u situacijama gde servlet poziva veliki broj korisnika • Vidljiv nedostatak je i vezivanje za samo jedan programski jezik – Java (što je važno samo za programere i ne smatra se nedostakom tehnologije) • HTML kao izlaz iz servleta je priličan problem, jer je reč o internom štampanju HTML koda iz servleta – teško čitljive i složene izlazne naredbe, koje sadrže HTML i programski kod ostatka aplikacije
Serverski skriptovi • Često nazivan “serverskiHTML” ili “serverski skriptovi” – pridruživanje programiranja Web stranama na relativno jednostavan i brz način • Cilj serverskih skriptova: izrada posebnih HTML datoteka ili šablona koji sadrže smešu skripta i HTML elemenata, koje će server po potrebi učitati • Postoje mnoga okruženja za serverske skriptove: • PHP –Personal Home Page • ASP - Active Server Pages • ASP.NET • JSP - JavaServer Pages • ColdFusion.. • Razlike su veoma male – glavna razlika između okruženja jeste sintaksa
Primer serverske analize HTML dokumenta HTTP zahtev
Primer serverske analize dokumenta čitač Web server Zahtev za dokumentom Učitavanje dokumenta analiza serverskog skripta Vraćanje rezultujućeg HTML dokumenta HTML sa serverskim skriptom
ASP • ASP ("Stranice aktivne na serveru", eng. Active Server Pages) predstavlja jedan od skriptnih jezika za razvijanje Internet sajtova, razvijen od strane kompanije Microsoft. • Njegov glavni takmac na Internet tržištu je PHP, koji ima tu osobinu da je besplatan i slobodan, dok su ASP i svi proizvodi potrebni za njegovo korišćenje komercijalni i u vlasništvu kompanije Microsoft. • Sa druge strane, Microsoft konstantno održava i dodaje nove mogućnosti svom paketu, na taj način ga čineći modernim, čvrstim i pružajući svojim klijentima svu moguću tehničku podršku.
ASP • Nakon uvođenja .NET tehnologije, Microsoft je i ASP prilagodio istom, tako da je u upotrebi verzija ASP.NET 2.0, objavljena 2005. godine. • ASP je skriptni jezik, kao i PHP, i potreban je interpreter na serverskoj strani da bi isti mogao da radi. • ASP nije programski jezik, već tehnologija koja omogućava programiranje Web servera, dok programski jezik zavisi od izbora autora: • VBScript – najčešće korišćen • JScript – Microsoftova verzija JavaScript jezika • C# (samo za ASP.NET) • Više od 19 jezika (samo ASP.NET) razvijenih od nezavisnih firmi
Osnovni koncepti • Koncept distribuiranih objekata- neki objekat (instanca klase)sa svojim metodama i atributima može da “postoji” na nekom računaru i dadrugi programi, odnosno objekti, koji se izvršavaju na drugim računarimamogu da mu pristupaju. • Pristup tom objektu – mogućnostpozivanja metoda i pristupa njegovim atributima. • Pristup tom “serverskom” objektu bi, sa strane ostalihučesnika (“klijenata”),trebalo da bude što jednostavniji. • U idealnom slučaju pristup njemu ne bitrebalo da se razlikuje od pristupa lokalnim objektima – ostalim objektima kojise nalaze u sastavu programa.
Osnovni koncepti • Poziv metode serverskog objekta podrazumava izvršavanje te metode na onomračunaru na kome se nalazi sam objekat. • To znači da se klijentski program izvršava na više računara – inicijalno na onom na kome je pokrenut,ali i na svim računarima na kojima se nalaze serverski objekti koje on koristi.
Poziv metode serverskog objekta 1. poziv metode 2. Izvršenje metode Klijent Serverski objekat 3. rezultat • Komunikacija dva objekta: • klijentski objekat je deo klijentske aplikacije, a serverski objekat je deo serverskeaplikacije. • Serverska aplikacija se često naziva “kontejner” za objekte jer je njenaosnovna funkcija da obezbedi mrežne i druge servise koji su neophodni zaovakav serverski objekat.
Klijentski i serverski objekat u okviru svojih programa • Posmatrano sa stanovišta autora klijentske aplikacije, i klijentski i serverskiobjekat su sastavni deo jednog programa. • Osobina tog programa je da seizvršava na više računara u mreži. • Serverski program, logički posmatrano, i nepostoji; postoji samo serverski objekat koji se ponaša/koristi kao da je deoklijentskog (jedinog) programa. Klijent aplikacija kontejner Klijent Serverski objekat
Tehnologije distribuiranih objekata • COM/DCOM - (Distributed) Component Object Model • RMI - Remote Method Invocation • CORBA - Common Object Request Broker Architecture • EJB - Enterprise JavaBeans
Multimedija na Web stranama • Multimedija može da unapredi i obogati izgled lokacije, ali ona ima velike tehnološke i infrastrukturne zahteve • Ukoliko multimedijalni elementi neće pomoći korisnicima da lakše koriste Web lokacije – ne bi ih trebalo koristiti • Veoma je važan način dodavanja multimedijskih sadržaja – potrebno je koristiti poznate tehnologije koje neće predstavljati barijeru za pristup lokaciji
Animacija • Animacije se na Webu koriste za: • Aktivne logotipe, • Animirane ikonice, • Prikaze i • Kratke crtane filmove • Animacije ne treba međusobno da se nadmeću • Nakon izvesnog vremena korisnika animacije zamaraju – izbeći animacije koje se neprekidno ponavljaju • Autorima su na raspolaganju mnoge tehnologije za izradu animacija
Zvuk • Najnovije tehnologije za reprodukovanje zvuka preko Interneta obuhvataju široku oblast, od tradicionalnog sistema preuzmi-i-pusti u mnoštvu formata, do tehnologije strujećeg zvuka koja reprodukuje zvuk u skoro realnom vremenu • Najnaprednije tehnologije nisu uvek najbolje rešenje
Osnove digitalnog zvuka • Digitalni zvuk meri se učestanošću uzorkovanja – time koliko je puta zvuk digitalizovan u toku određenog vremenskog perioda • Učestanost uzorkovanja izražava se u kilohercima (kHz) – mera broja uzorkovanja tokom jedne sekunde • Zvuk CD kvaliteta dobija se uzorkovanjem na 44,1 kHz – 44100 puta tokom jedne sekunde • Za stereo zvuk potrebna su dva kanala sa po osam bita – 16 bita po uzorku zvuka – 705600 bitova za svaku sekundu zvuka CD kvaliteta • U stvarnosti prenos tolike količine podatka zauzeo bi polovinu kapaciteta propusne moći – što najčešće nije dostupno – potreban drugi pristup za emitovanje zvuka CD kvaliteta preko Interneta
Formati i kompresija zvučnih datoteka • Datoteke koje sadrže zvuk mogu da se komprimuju da bi se brže prenosile preko mreže • Program na strani servera komprimuje i isporučuje zvuk, dok ga program na strani klijenta dekomprimuje i reprodukuje • Program za kompresiju i dekompresiju naziva se kodek • Formati zvuka mogu da narušavaju kvalitet zvuka ili da ga uopšte ne narušavaju
Formati i kompresija zvučnih datoteka • Kompresija sa gubicima ne reprodukuje verno originalni zvuk – ali je prihvatljiva jer daje male datoteke • Kompresija – kompromis između kvaliteta zvuka i veličine datoteke – što je datoteka veća potrebno je i više vremena da se prenese preko mreže • Kada se obrađuje zvuk – zadaje format datoteke, a ne način kompresije
Jednostavan zvuk za Web • Najjednostavniji način da se kroz jezik HTML pruži podrška pristupu preuzmi-i-pusti jeste povezivanje takve datoteke i prepuštanje obrade pomoćnom ili dodatnom programu • Ako pomoćni programi ili dodatak nisu podešeni odluka o daljoj akciji se prepušta korisniku • Da bi se povezala datoteka sa zvukom u formatu WAV, u HTML datoteku dodaje se kod sličan sledećem: • <a href=“democompanyjingle.wav”>Demo Company+s Corporate Jingle (7 second WAV – 180K) </a>
Jednostavan zvuk za Web • Kada se na Web stranu dodaje snimak poput govora ili delova radio ili TV programa, uvek treba naznačiti dužinu, format i veličinu datoteke sa zvukom • Ako se koristi pristup preuzmi-i-pusti najbolje je da datoteke koje sadrže muziku niskog kvaliteta, zvučne efekte ili govor budu u formatu WAV • Datoteke u formatu MIDI koristiti za pozadisnku muziku na Web stranama, naročito ako je ograničena propusna moć • Format MPEG – a posebno MP3 – zaista je jedini izbor za kvalitetnu reprodukciju, a posebno za reprodukciju muzike
Jednostavan zvuk u praksi • Čitači bi trebalo da podržavaju preuzimanje i reprodukovanje zvučnih datoteka u formatu MIDI i WAV • Microsoftov Internet Explorer koristi sopstvenu HTML oznaku <bgsound> ili oznaku <embed> • Na primer, da bi se podesio dodatak LiveAudio da reprodukuje datoteku test.wav i da prikaže karticu za podešavanje zvuka, upotrebiti sledeći HTML kod: • <embed src=“test.wav” height=“60” width=“144”>
Jednostavan zvuk u praksi • <embed src=“test.wav” height=“60” width=“144”> • Zadavanje atributa height i width veoma je važno, jer bi u suprotnomo čitač mogao da opseče konzolu • Podrazumevana LiveAudio kontrola visoka je 60 piksela i široka 144 piksela • Drugi stilovi za kontrolu imaju druge podrazumevane veličine • Postavljanje pozadinske muzike na Web stranu, moguće je upotrebom sledećeg koda • <embed src=“test.wav” hidden=“true” autostart=“true”>
Upotrebljivost i datoteke sa zvukom • Uvek obezbediti alternativni oblik pristupa podacima, jer podrška za zvuk nije uvek na rapolaganju • Omogućiti korisnicima da isključe zvuk koji je upotrebljen na lokaciji • Koristiti jednostavniju tehnologiju preuzmi-i-pusti koja je podržana u mnogim čitačima – ne zahtevati od korisnika da instaliraju mnoge dodatke za reprodukovanje raznih formata
Video • Mnoge kompanije pokušavaju da razviju emitovanje televizijskog programa preko Weba • Emitovanje visokokvalitetnog video zapisa od 30 sličica u sekundi • Većina dosadašnjih rešenja ne radi dobro sa propusnom moći koja je na raspolaganju prosečnom korisniku
Osnove digitalnog videa • Digitalni video zapisi karakterišu se brojem snimljenih sličica u sekundi i njihovom veličinom i rezolucijom • Video zapisi mogu da budu veoma veliki, a naročito ako se teži televizijskom kvalitetu slike • Video slika veličine 640 x 480 piksela sa 24-bitnom paletom boja i 30 sličica u sekundi zauzima 27 MB po sekundi - i to bez zvuka • Ako se tome doda i kvalitetni CD zvuk (705600 bitova za sekund zapisa), datoteka će dvostruko narasti • U stvarnosti, prenos tolike količine podataka nije lak čak ni kada se upotrebi kompresija
Zaključak • Izrada Web strana može biti veliki izazov jer potrebne tehnologije nisu sazrele i stalno se menjaju • Trebalo bi dobro analizirati prednosti i mane svih tehnologija za Web pre donošenja odluke koju primeniti • Čitači Weba i programi za izradu Web lokacija podložni su greškama • Rešavanje potencijalnih problema niskog nivoa – zahteva dobro poznavanje osnovnih tehnologija za Web poput jezika HTML i kaskadnih stilova
Zaključak Web stranama sigurno će biti dodato i programiranje Prilikom odabira alata za programiranje – očuvati doslednost izboru Multimedijski sadržaji imaju svoje mesto na Webu – tehnološka ograničenja sužavaju njihovu upotrebu