Post on 31-Jan-2020
Serversko programiranje
2
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
3
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
4
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
5
CGI programi
Svaki HTTP zahtev, od strane korisnika, generiše novi proces na
serveru
HTTP zahtev
6
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 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.
7
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
CGI programi se lakše mogu nadgledati i održavati ukoliko se
postave u jedan direktorijum
8
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
9
Java Servleti
Servleti - jedna od tehnologija za generisanje dinamičkih Web
sadržaja.
Da bi se servleti mogli koristiti, Web server mora da ima
odgovarajuću podršku za servlete. Pisanje servleta je moguće samo
u programskom jeziku Java, tako da je za 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.
10
Životni ciklus servleta
1.
POSETILAC
2.
POSETILAC
N-ti
POSETILAC
Prvi zahtev
kreira novi
proces
Servlet prihvata i obrađuje
zahteve posetilaca
Uništi proces
sevlet
kod
sevlet
kod
SERVERSERVER
SERVERSERVER
SERVERSERVER
sevlet
kod...
1
2
3sevlet
kod
11
Prednosti Java Servleta
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
HTTP zahtevprvi put novi proces sledeći put samo nova nit (thread)
12
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
13
Serverski skriptovi Često nazivan “serverski HTML” 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
14
Primer serverske analize HTML dokumenta
HTTP zahtev
15
Primer serverske analize dokumenta
čitač Web serverZahtev za
dokumentom
Vraćanje rezultujućeg
HTML dokumentaHTML sa serverskim
skriptom
analiza serverskog
skripta
Učitavanje dokumenta
16
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.
17
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
18
ASP
19
Cena
Kvantitativno poređenje serverskih tehnologija
20
Kvantitativno poređenje serverskih tehnologija
Tehnologije distribuiranih objekata
22
Osnovni koncepti
Koncept distribuiranih objekata - neki objekat (instanca klase)
sa svojim metodama i atributima može da “postoji” na nekom
računaru i da drugi programi, odnosno objekti, koji se izvršavaju na
drugim računarima mogu da mu pristupaju.
Pristup tom objektu – mogućnost pozivanja metoda i pristupa
njegovim atributima.
Pristup tom “serverskom” objektu bi, sa strane ostalih učesnika
(“klijenata”), trebalo da bude što jednostavniji.
U idealnom slučaju pristup njemu ne bi trebalo da se razlikuje od
pristupa lokalnim objektima – ostalim objektima koji se nalaze u
sastavu programa.
23
Poziv metode serverskog objekta podrazumava izvršavanje
te metode na onom rač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.
Osnovni koncepti
24
Poziv metode serverskog objekta
Komunikacija dva objekta:
klijentski objekat je deo klijentske aplikacije, a serverski objekat je deo
serverske aplikacije.
Serverska aplikacija se često naziva “kontejner” za objekte jer je njena osnovna
funkcija da obezbedi mrežne i druge servise koji su neophodni za ovakav
serverski objekat.
Klijent Serverski
objekat
1. poziv metode
3. rezultat
2. Izvršenje metode
25
Klijentski i serverski objekat u okviru svojih programa
Posmatrano sa stanovišta autora klijentske aplikacije, i klijentski i serverski objekat
su sastavni deo jednog programa.
Osobina tog programa je da se izvršava na više računara u mreži.
Serverski program, logički posmatrano, i ne postoji; postoji samo serverski
objekat koji se ponaša/koristi kao da je deo klijentskog (jedinog) programa.
Klijent Serverski
objekat
Klijent aplikacija kontejner
26
Tehnologije distribuiranih objekata
COM/DCOM - (Distributed) Component Object Model
RMI - Remote Method Invocation
CORBA - Common Object Request Broker Architecture
EJB - Enterprise JavaBeans
Upotreba multimedije na Web stranama
28
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
29
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
30
Tehnologije za animaciju
Iako se može koristiti za animacije, nije preporučljivo. Jedina prednost
animacija izrađenih u Javi jeste što mogu da se izrade u letu na osnovu
složenih proračuna. Jedina razumna upotreba- na klijentskoj strani na osnovu
korisnikovih postupaka. Java je previše složena da bi se koristila u
jednostavnim animacijama.
Java
Komprimovane datoteke Adobe-ovog (Macromedijinog) programa Director.
Njihova glavna prednost nad formatom Flash jeste u podržavanju složenog
programiranja. Mogu biti mnogo veće od datoteka u formatu Flash.
Shockwave
Adobe-ov (Macromedijin) Flash vodeći je format za kvalitetne animacije za
Web. Datoteke u ovom formatu su veoma male, mnogi korisnici imaju
instaliranu podršku za njih. Podržava ograničene mogućnosti programiranja,
mora biti dopunjen JavaScript-om.
Flash
DHTML (JavaScript) se može upotrebiti za pomeranje objekata po ekranu.
Animacije ostvarene ovom tehnlogijom često su isprekidane, efikasne samo za
živu dugmad i pokretni tekst. Program Dreamweaver omogućava da se na
Web stranu lako dodaju animacije po putanjama.
DHTML
Najjednostavniji oblik animacije i izvorno je podržana u većini Web čitača.
Ovakvoj animaciji može se zadati koliko će se puta ponoviti i druge
vremenske karakteristike, ali ostala napredna svojstva su izvan dometa ove
tehnologije.
Animirane
sličice u
formatu
GIF
OpisTehnologija
31
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
32
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
33
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
34
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
35
Formati za datoteke sa zvukom
Ogg Vorbis je besplatan metod enkodiranja i kompresije digitalnog zvuka. Za tačno 1/8
bolji je u brzini po bitovima i po svom kvalitetu u odnosu na MP3. Jedna .ogg datoteka
pri brzini 45 kb/s najčešće zvuči bolje od datoteke .mp3 pri brzini od 320 kb/s.
Ogg Vorbis
Rich Music Format podržava organizacija Beatnik. To je kompaktan format koji nudi
visok kvalitet reprodukovanja nakon preuzimanja datoteke. Postaje sve popularniji.
RMF
Format Musical Instrument Digital Interface nije format digitalnog zvuka. On nosi
informacije o notama i druge bitne informacije na osnovu kojih muzika može biti
sintetizovana. Upotrebljive su samo za neke primene lošeg kvaliteta reprodukcije.
MIDI
Dominantna tehnologija za strujeće reprodukovanje preko Interneta. Ona zahteva
poseban plejer, čije su osnovne verzije besplatne.
RealAudio
Format Motion Pictures Experts Group je standardni format sa velikim stepenom
kompresije. MPEG nivo 3, ili MP3 datoteke su najpopularniji oblik za distribuciju
muzike preko Interneta. Zbog svoje veličine, MPEG datoteke se pre reprodukovanja
najčešće kompletno prenesu na klijentski računar.
MPEG
(MP3)
Wav datoteke su najčešći formati datoteka sa zvukom na Windows platformi. WAV
OpisFormat
36
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>
37
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
38
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”>
39
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”>
40
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
41
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
42
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
43
Formati datoteka sa video zapisima i njihova kompresija
RealVideo je dobar format tehnologije strujećeg videa. Datoteke u RM
formatu mogu biti snimljene u različitim kvalitetima u zavisnosti od toga
kolika propusna moć stoji na raspolaganju krajnjem korisniku.
RM
Advanced Streaming Format kompanije Microsoft isporučuje se
Microsoftovom serverskom tehnologijom NetShow koja se sada zove
Windows Media. Rastuća konkurencija formatu RealVideo, nudi visok
kvalitet i dobru podršku IE.
ASF
Motion Picture Expert Group format za video zapise smatra se
standardnim formatom za digitalni video. Iako su kompresija i kvalitet
slike formata MPEG na visokom nivou, ponekad je s njim teško raditi.
MPEG
MOV je nastavak imena datoteke koji označava format QuickTime
kompanije Apple. Verovatno najčešći format video zapisa, postaje sve
popularniji na Internetu. Različiti kodeci i poboljšanja učinili su
QuickTime moćnim rešenjem za digitalne video zapise.
MOV
(QuickTime)
Audio Video Interleave je format za digitalni zvuk i video za Windows.
Često se sreće i lako zadaje. Na Internetu je sve više datoteka u tom
formatu, bez obzira na to što mogu biti velike. IE se lako snalazi sa
datotekama u tom formatu.
AVI
OpisFormat
44
Formati datoteka sa video zapisima i njihova kompresija
Digital Versatile Disc (DVD) je možda najpoznatiji termin u svetu
digitalnog videa. DVD plejeri su postali standard i osvajaju tr žište mnogo
brže nego video rekorderi nekada. Video signal brzine 9800 Kbps u
rezoluciji 720x576 pruža vrhunski kvalitet slike. Na standardni DVD može
da stane oko 2 časa digitalnog videa, što zavisi od njegovog kvaliteta.
DVD
DivX format baziran na standardu MPEG4 pomoću koga se dobijaju
izuzetno komprimovane video datoteke vrhunskog kvaliteta. Posebno je
podesan za razmenjivanje filmova. Ipak i ovaj format ima svoje nedostatke.
DivX
Super VideoCD (SVCD) Na DVD plejeru (ukoliko može da ga podrži), ovaj
format pruža video izuzetnog kvaliteta. SVCD ima rezoluciju 480x576 piksela
tako da, kada se reprodukuje na računaru može da izgleda pomalo nejasno.
SVCD
VideoCD (VCD) format pojavio se na azijskom tržištu koje nije želelo da za
reprodukciju videa na DVD plejeru plaća astronomske cene DVD konzorcijumu.
Kvalitet formata VCD bi mogao da se uporedi sa VHS kasetama – ni previše
dobar ni previše loš. VCD diskovi mogu da se reprodukuju na većini savremenih
DVD plejera.
VCD
OpisFormat
45
Uporedni prikaz video formata
OdličanPristojanVrlo dobarOdličanIzuzetan*Odličan*Vrlo
dobar*DobarKvalitet
3120-30030-18060-180~4 (~10)10-2035-6074
Minuta na CD
od 74 min (650
MB)
2162-54-204-10~150 (~60)30-7010-2010
Veličina fajla
(MB/minut
snimka)
DVRM
QDesign
Music,
MP3...
MP3, WMA,
OGG, AAC,
AC3
MP1, MP2, AC3,
DTS, PCM
MP1, MP2,
AC3, DTS,
PCM
MP1MP1Audio
kompresija
DVRM
Sorenson,
Cinepak,
MPEG4...
MPEG4MPEG2 (WMV
MPEG4)
MPEG2,
MPEG1MPEG2MPEG1
Video
kompresija
720 x 480
720 x 576
320 x 2402640 x 4802640 x 48021440 x 10802
1280 x 7202
720 x 4802
720 x 5762
480 x 480
480 x 576
352 x 240
352 x 288
Rezolucija
NTSC/PAL
AVI DV
RM
(Real-Me
dia)
MOV
(Quic-kTi
me)
AVI, DivX,
WMV
HD DVD, HDTV
(WMV HD)DVDSVCDVCDFormat
46
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
47
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
Tehnologije za Web