2.tehnologije razvoja web aplikacija
DESCRIPTION
Tehnologija razvoja web aplikacijaTRANSCRIPT
Prof. dr Rade Tanjga Tehnologije Web dizajna
BANJA LUKA
P O S L O V N A I N F O R A T I K A
ŠKOLSKA 2009/2010. GODINA
TEHNOLOGIJE RAZVOJA
WEB APLIKACIJA
Prof. dr Rade Tanjga
Banja Luka, oktobar 2009.
1
Prof. dr Rade Tanjga Tehnologije Web dizajna
Sadržaj:
Uvod: Tehnologije razvoja Web aplikacija 3
1. Protokoli: HTTP protokol, statičke i dinamičke Web stranice 3
2. Markerski jezici 7
2.1. SGML (Standard Generalised Markup Language) 7
2.2. HTML (Hyper Text Markup Language) 12
2.3. XML (eXtensible Markup Language) 15
2.4. XHTML (eXtensible Hyper Text Markup Language) 22
2.5. WML (Wireless Markup Language) 24
3. Jezici i tehnologije razvoja dinamičkog Web-a 26
3.1. Skript jezici 26
3.1.1. JavaScript 26
3.1.2. VBScript 27
3.1.3. Perl 28
3.1.4. Python 28
3.2. Web tehnologije 30
3.2.1. CGI (Common Gateway Interface) 30
3.2.2. ISAPI (Intrenet Server Application Programming Interface) 31
3.2.3. PHP 32
3.2.4. ASP (Active Server Pages) 33
3.2.5. Java 35
3.2.6. Java Server Pages (JSP) 38
3.2.7. .NET Framework 39
3.2.8. ASP.NET 42
4. XML Web servisi 44
4.1. Koncepti XML Web servisa 45
4.2. Standardi Web servisa 46
4.3 SOAP: Simple Object Access Protocol 47
4.4. WSDL: Web Service Description Language 48
4.5. UDDI: Universal Description Discovery and Integration 49
2
Prof. dr Rade Tanjga Tehnologije Web dizajna
Uvod: Tehnologije razvoja Web aplikacija
Tokom devedesetih godina prošlog vijeka mnogobrojne sfere ljudske djelatnosti su se
veoma brzo preselile na mrežu svih mreža – Internet. Jedna od ključnih aktivnosti –
poslovanje postaje generator (motiv) razvoja tehnologija za Internet. Rješavajući
zahtjeve za brzinom, skalabilnošću i bezbjednošću, bez kojih je nemoguće zamisliti
savremeno poslovanje, informatičke tehnologija je morala velikom brzinom nalaziti
odgovore na nove izazove.
Internet je prešao vremenski kratak, ali tehnološki dugačak put od vojne tehnologije,
zatim novotarije sa kojom su se zabavljali u naučnim krugovima, preko .COM
groznice krajem devedesetih godina, sve do današnjeg pouzdanog medija za
nebrojene primjene. Zbog toga se na ovom mjestu bavimo aktuelnim tehnologijama
za funkcionisanje i razvoj Web aplikacija.
1. Protokoli: HTTP protokol, statičke i dinamičke Web stranice
Osnovni stek (dio) protokola koji se koristi na Internetu jeste TCP/IP (Transmission
Control Protocol / Internet Protocol). Kao podloga najkorištenijeg Internet servisa,
World Wide Web-a, upotrebljava se HTTP protokol (HiperText Transfer Protocol),
koji je dio aplikativnog sloja OSI modela TCP/IP.
HTTP je zasnovan na konceptu postavljanja zahtjeva i dobijanja odgovora, i
obezbjeđuje prenošenje informacija između klijenta, koji zahtijeva informacije, i
servera, koji odgovara na postavljene zahtjeve. Web čitač klijenta šalje zahtjev (HTTP
request) ka Web serveru. Kad dobije taj zahtjev, Web server provjerava svoja
spremišta datoteka da bi pronašao stranicu koja je tražena. Ako je pronađe, pakuje
HTML (HyperText Markup Language) kod sadržan u stranici (koristeći TCP),
adresira pakete na čitač (pomoću HTTP) i vraća ih u mrežu. Ako server ne može da
pronađe traženu datoteku, generiše sopstveni HTML sa kodom greške i porukom.
3
Prof. dr Rade Tanjga Tehnologije Web dizajna
Slika 1.: Dijelovi HTTP protokola: zahtjev (request) i odgovor (response)
Web je u početku svog razvoja funkcionisao upravo na navedeni način: postojao je
isključivo kao statički, tj. nisu postojale tehnologije koje bi uzele u obzir informacije
koje su pristigle od korisnika i na osnovu njih generisale odgovor. Proces
objavljivanja informacija statičkim Web stranama svodio se na sljedeće korake (slika
2.):
1. Autor piše HTML i pohranjuje ga na disku Web servera,
2. Klijent daje HTTP zahtjev za Web stranicu,
3. Web server locira .htm datoteku,
4. HTML tok (od .htm strane) vraća se čitaču,
5. Čitač obrađuje HTML i prikazuje stranu
4
Prof. dr Rade Tanjga Tehnologije Web dizajna
Slika 2.: Serviranje statičkih Web strana
Mogućnosti statičkog Web-a nisu bile naročito velike: HTML strane jesu nosilac
informacija, ali onih koje se ne mijenjaju zavisno od konteksta: te informacije su
uvijek iste. Očigledno je bilo neophodno da se dođe do određenog stepena
programabilnosti na Web-u, tj. da se razviju tehnologije koje će omogućiti veći stepen
interaktivnosti od statičkog Web-a.
Dinamičke Web strane se zasnivaju na principu da se HTML kod ne stvara sve dok
korisnik ne poželi da vidi Web stranu.To dinamičko stvaranje strana omogućuje da
one budu prilagođene korisnikovim zahtjevima, da zavise od prethodnih akcija
korisnika, od vremena i mjesta kad je pristupio lokaciji, od njegovog identiteta i
specifičnih potreba, Pojava dinamičkog Web-a dovela je i do mogućnosti da se
Internet iskoristi kao medij za elektronsko poslovanje, uz uvažavanje svih njegovih
specifičnosti.
Proces objavljivanja informacija dinamičkim Web stranama ima sljedeće korake
(slika 3.):
1. Autor piše instrukcije (program, klasu, skript..., zavisno od tehnologije),
2. Klijent daje HTTP zahtjev za Web stranu,
5
Prof. dr Rade Tanjga Tehnologije Web dizajna
3. Web server locira datoteku sa instrukcijama,
4. Web server obrađuje (izvršava) instrukcije da bi stvorio HTML (interpretira skript,
instancira klasu, učitava program...),
5. HTML tok vraća se čitaču,
6. Čitač obrađuje HTML i prikazuje stranu.
Slika 3. Serviranje dinamičkih Web strana
Razlika između statičkih i dinamičkih Web strana konceptualno je očigledno veoma
mala: u oba slučaja imamo približno slične korake u dobavljanja sadržaja od servera, i
u oba slučaja rezultat uspješno izvršenog HTTP zahtjeva jeste HTML koji se
prikazuje u Web pretraživaču klijenta. Jedina i najbitnija razlika je korak u kojem se
(kod dinamičkih Web strana) na serveru vrši programska konstrukcija HTML-a.
Postoje različiti načini za postizanje ovog koraka, jer su se tokom vremena razvile
mnogobrojne tehnologije za razvoj Web aplikacija. Neke od tih tehnologija
prikazaćemo ovdje.
6
Prof. dr Rade Tanjga Tehnologije Web dizajna
2. Markerski jezici
2.1. SGML (Standard Generalised Markup Language)
Međunarodna organizacija za standardizaciju - ISO je 1986. godine objavila SGML
jezik kao odgovor na potrebu standardizacije podataka. Ovaj jezik se može koristiti za
sve tipove dokumenata koji su pisani u bilo kojem jeziku i koji sadrže bilo koju brstu
podataka. Opšti cilj SGML je da omogući da se dokumenti razmjenjuju i procesiraju
na mnogim računarskim sistemima i na razne načine, odnosno da njihova razmjena i
procesiranje nisu zavisni od platforme. Osnovna osobina SGML jezika je da dijeli
dokument u strukturu i tip sadržaja, što nije povezano sa tsrukturom dokumenta i
njegovim aktuelnim sadržajem.
Ovo je jezik namijenjen definisanju markerskih jezika, a HTML je samo jedna od
primjena SGML.
Primjene SGML -a sastoje se iz nekoliko dijelova:
SGML deklaracije, koja određuje koji se karakteri i znaci interpunkcije
pojavljuju u aplikaciji,
DTD (Document Type Definition), koji definiše sintaksu markerskih
konstrukcija,
Specifikacije koja definiše semantiku markerskog jezika, kao i sintakse
zabrane koje ne može da definiše DTD,
Instance dokumenata koje sadrže podatke i markiranje. Svaka instanca ima
reference na DTD koji se koristi za njenu interpretaciju.
Možda se najbolje SGML jezik može definisati objašnjavajući pojedine pojmove koji
su uključeni u njegov naziv:
Standard
SGML je internacionali standard (Standard) koji objašnjava kako se dokument može
razdvojiti na dva dijela, tekst i dio koji opisuje strukturubez obzira na referencu u
odnosu na neki partikularni sistem.
Standardizacija jezika omogućava komunikaciju na internacionalnof osnovi jer to nije
singularni sistem ili tip softvera koji zahtijeva čitanje jezika.
7
Prof. dr Rade Tanjga Tehnologije Web dizajna
Opšti
SGML je opšti (Generalized) jezik jer su njegovi dokumenti markirani na neutralan
način i pohranjeni u neutralnoj formi. Ove karakteristike jezika su detaljno naznačene
kako slijedi:
Nezavisnost od uređaja; dokumenti nisu vezani niti za jedan poseban hardver;
Nezavisan od sistema; jezik nije specifičnost nekog posebnog sistema;
Nezavisan od aplikacije; jezik može biti primjenjen na razne dokumente od
jednostavnih do veoma složenih;
Nezavisnost od jezika; kako je on standard, jezik se može koristiti širom svijeta.
Markiranje
SGML je jezik za markiranje (Markup). Markiranje može biti definisano kao
informacija koja je dodata tekstu, a koja se odnosi na način koako se on procesira i
formatira. Markiranje se može predstaviti ako se zamisli izdavač koji prirpema i
označava (markira) rukopis kao uputstvo štamparu kako ga treba „prelomiti“ za
štampu.
Jezik
SGML je jezik (Language) je metajezik (što znači da ima sintaksu ali nema
semantiku) za neutralno predstavljanje strukture dokumenata. SGML je takođe,
sposoban da opiše i simbole i zbog toga nije ograničen samo na tekstualne
dokumente.
Kao ilustraciju ideje i potrebe uvođenja SGML jezika poslužićemo se primjerom
pisma. Kreiraćemo jedno kratko pismo da bi objasnili karakteristike SGML jezika.
8
Prof. dr Rade Tanjga Tehnologije Web dizajna
Pismo:
Janković Stojan
Sime Matavulja 38, Banja Luka
Datum: 27.02.2006.
Stojanović Marko
Ive Andrića 22
Beograd
Poštovani gospodine Janković!
Molim Vas da mi hitno potvrdite Vašu saglasnost za predavanje iz SGML-a koje će se
održati u Banjoj Luci u maloj sali Banskog dvora, dana 25.05.2006. godine u 11,00
časova, u skladu s našim usmenim dogovorom. Očekujem Vaš hitan odgovor.
S poštovanjem,
Janković Stojan
Ovo pismo mogli smo napisati i na sljedeći način:
Stojanović Marko Janković Stojan
Ive Andrića 22 Sime Matavulja 38
Beograd Banja Luka
Datum: 27.02.2006.
Poštovani gospodine Janković!
Molim Vas da mi hitno potvrdite Vašu saglasnost za predavanje iz SGML-a koje će se
održati u Banjoj Luci u maloj sali Banskog dvora, dana 25.05.2006. godine u 11,00
časova, u skladu s našim usmenim dogovorom. Očekujem Vaš hitan odgovor.
S poštovanjem,
Janković Stojan
Iz ovog ali i drugih primjera pisama se vidi da postoje neke zajedničke karakteristike
(dijelovi) za sva pisma, kojima ćemo dati imena:
<PISMO>, <POŠILjALAC>, <PRIMALAC>, <DATUM>, <POZDRAVLjANjE>
(ili <IZRAZ POŠTOVANjA>), <TEKST>, <POTPIS>
9
Prof. dr Rade Tanjga Tehnologije Web dizajna
Na engleskom jeziku to izgleda:
<LETTER>, <SENDER>, <ADDRESSEE>, <DATE>, <GREETING>, <TEXT>,
<SIGNATURE>.
Pismo može biti markirano pomoću zajedničkih karakteristika koje smo
identifikovali. To markiranje čini osnovu SGML dokumenata.
Sada naš primjer izgleda ovako:
<LETTER>
<SENDER>Stojanović Marko Ive Andrića 22 Beograd<SENDER>
<ADDRESSEE>Janković Stojan Sime Matavulja 38 Banja Luka<ADDRESSEE>
<DATE>Datum: 27.02.2006. <DATE><GREETING>Poštovani gospodine Janković!
<GREETING><TEXT> Molim Vas da mi hitno potvrdite Vašu saglasnost za
predavanje iz SGML-a koje će se održati u Banjoj Luci u maloj sali Banskog dvora,
dana 25.05.2006. godine u 11,00 časova, u skladu s našim usmenim dogovorom.
Očekujem Vaš hitan odgovor.<TEXT><SIGNATURE> S poštovanjem, Janković
Stojan<SIGNATURE>
<LETTER>
SGML konstrukti korišteni u HTML-u
Entiteti su numerička ili simbolička imena za karaktere koji se mogu uvrstiti u HTML
dokument. Oni su korisni kada alat koji se koristi ne pruža mogućnost unosa nekog
karaktera. Entiteti počinju ta (&), a završavaju sa (;) (na primjer: za razmak,
" za navodnik itd)
SGML definiše elemente koje predstavljaju strukture ili željeno ponašanje Element se
obično sastoji od tri dijela: startni tag, sadržaj i završni tag. Startni tag se označava
<element-name>, gdje je element-name naziv elementa. Završni tag se predstavlja sa
</element-name>. Na primjer,
<pre>Sadržaj ovog taga je preformatirani tekst.</pre>
10
Prof. dr Rade Tanjga Tehnologije Web dizajna
Neki HTML elementi nemaju sadržaj. Na primjer, BR tag nema sadržaj jer on
pokazuje kada se linija teksta završava, a dalji sadržaj se prebacuje u novu liniju.
Takvi „prazni“ tagovi nemaju završne tagove.
Važno je napomenuti da elementi nisu isto što i tagovi. Na primjer, head element je
uvijek prisutan, iako ni početni na završni <head> tagovi nisu prisutni u dokumentu.
Elementi mogu imati pridružene osobine koje se nazivaju atributi. Atributima se
mogu dodijeliti vrijednosti. Atribut i vrijednost se nalaze ispred oznake za kraj
početnog taga (>). Jedan element može imati više atributa, a njihov tedoslijed nije
bitan.
Na primjer, H1 element može da izgleda ovako:
<H1 align=“center“>Ovo je centrirani naslov</H1>
SGML zahtijeva da se sve vrijednosti atributa označe sa („) ili sa (‘). Vrijednosti se
mogu sastojati od slova ( a-z i A-Z), brojeva (0-9), povlaka (ASCII decimalno 45) i
tačaka (ASCII decimalno 46).
HTML komentari imaju snjedeću sintaksu:
<!-- ovo je komentar -->
<!-- i ovo je komentar,
ali u više redova -->
11
Prof. dr Rade Tanjga Tehnologije Web dizajna
2.2. HTML (Hyper Text Markup Language)
HTML jezik nastao je 1991. godine na osnovama SGML jezika. Autor HTML jezika
je Tim Barners-Li (Tim Barnars-Lee) iz Cerna (Švajcarska, Centar za
visokoenergetsku fiziku). HTML dokument je ASCII ili Unicode tekstualna datoteka
koja sadrži markerske tagove. Tagovi govore Web brauzeru kako da prikaže sadržaj
strane. HTML dokument mora da ima htm ili html ekstenziju, a može se kreirati u
običnom tekst editoru, mada postoje brojni alati koji pomažu kod pisanja HTML –a.
Elementi HTML-a čine HTML dokument, i oni su definisani upotrebom HTML
tagova. Tagovi se koriste za označavanje elemenata i označeni su znacima < (manje) i
> (veće). Tagovi obično idu u paru, na primjer, <b> i </b>. Najprije ide početni, a
zatim završni tag.
Struktura HTML dokumenta je sljedeća:
<html>
<head>
<title>Naslov strane</title>
</head>
<body>
Sadržaj strane. <b>Podebljani tekst</b>
</body>
</html>
Tagovi imaju svoje atribute koji obezbjeđuju dodatne informacije o HTML
elementima. Na primjer, <body bgcolor=“red“> definiše pozadinsku boju strane,
tačnije boju body elementa. Isto tako, tag <table border=“0“> definiše da tabela nema
ivicu. Atributi predstavljaju par neme=“value“, i dodaju se početnom tag elementu.
Jedan od osnovnih tagova u HTML dokumentu jeste title tag. On definiše naslov
strane, na primjer,
<title>Moj prvi HTML dokument>/title
Naslovi u tekstu se označavaju heading tagom. U HTML-u postoji šest nivoa tih
tagova. H1 e najviši, a H6 najniži u hijerarhiji.
Ostatak teksta se piše u paragrafima, na primjer,
12
Prof. dr Rade Tanjga Tehnologije Web dizajna
<p>Prvi paragraf teksta</p>
Prikazivanje slika je omogućeno pomoću <img> taga. Prikaz slike jovan.jpg vrši se na
sljedeći način:
<img src=“jovan.jpg“ width=“200“ height=“150“>
U primjeru je navedena i dimenzija slike, tako da će brauzer prilikom obrade koda na
strani odmah ostaviti potreban prostor za sliku. Kada brauzer prilikom interpretiranja
pristiglog HTML-a dođe do IMG taga, uspostavlja se novi HTTP zahtjev prema
naznačenom resursu, nakon čega se datoteka prenosi na klijentski računar i prikazuje
u brouzeru.
Veza ka drugom Web dokumentu se vrši pomoću <a> taga. Primjer pokazuje kako bi
se postojeća strana povezala sa Web dokumentom jovan.html:
<a href=“jovan.html“>Druga strana</a>
Tekst između <a> i </a> taga jeste sam link na drugi dokument i biće predstavljen
plavim podvučenim tekstom.
Link ka drugoj strani na drugom Web sajtu naveo bi se na snjedeći način,
navođenjem apsolutne URL (Uniform Resourse Locator) putanje ka resursu:
<a href=“http://www.w3.ogr/“>W3C</a>
Ako se za link koristi slika, to može izgledati ovako:
<a href=“/“><img src=“logo.gif“ alz=“Home page“></a>
Tabele se definišu <table> tagom. Vrste tabela se definišu <tr> tagom, a svaka vrsta
dijeli se na ćelije <td> tagom. Primjer za jednu tabelu je sljedeći:
<table border=“1“>
<tr>
<td>vrsta 1, ćelija 1</td>
<td>vrsta 1, ćelija 2</td>
</tr>
<tr>
13
Prof. dr Rade Tanjga Tehnologije Web dizajna
<td>vrsta 2, ćelija 1</td>
<td>vrsta 2, ćelija 2</td>
</tr>
</table>
HTML nije strogo standardizovan jezik – umjesto čvrstih i propisanih standarda
postoje preporuke specijalizovanog tijela koje se zove World Wide Web Consortium
(http://www.w3c.org). Proizvođači brauzer programa moraju da se pridržavaju tih
preporuka ukoliko žele da im proizvod ispravno prikazuje učitani HTML. Trenutno
važeća specifikacija HTML jezika nosi oznaku 4.01 (24. decembar 1999. godine), i
nalazi se na Web adresi http://www.w3.org/TR/htm/401. Nabrojani tagovi u ovom
tekstu su samo neki od najvažnijih, a broj postojećih tagova izuzetno je veliki,
posebno ako se uzmu u obzir i oznake iz ranijih verzija HTML-a koje su u brauzerima
još uvijek podržane zbog kompatibilnosti sa ranije napisanim stranama.
14
Prof. dr Rade Tanjga Tehnologije Web dizajna
2.3. XML (eXtensible Markup Language)
XML (eXtensible Markup Language) predstavlja sintaksu za kreiranje „markerskih“
jezika (metadata), jezika koji opisuje podatke. Nastao je iz SGML (Standard
Generaliyed Markup Language) internacionalnog standarda (ISO) za kreiranje i
korištenje formata dokumenata sa ciljem da razdvoji podatke od procesa. SGML
predstavlja daleko kompleksniji „markerski“ jezik, koji nije našao svoju upotrebu,
prije svega na Internetu, zbog svoje složenosti.
XML predstavlja podatke za opis podataka tj. sintaksu, u tekstualnom formatu. On je
kreiran sa namjerom da bude jednostavan za učenje, brz i optimizovan za Internet.
XML se naziva i eXcellent Marketing Language jer predstavlja:
Univerzalni format podataka
XML omogućava kreiranje sopstvenih formata podataka i njihovu razmjenu
preko postojećih mreža i aplikacija.
Integracija podataka
XML vrši jednostavnu integraciju podataka kod već postojećih aplikacija i
platformi.
Prilagodljiv
XML je prilagodiv tj. razumljiv i za čovjeka i za mašinu, primaoca i pošiljaoca,
te predstavlja najupotrebljiviji standard za manipulaciju podataka i njihovu
razmjenu.
Svrha XML je da generiše sopstvene tagove, njihovo značenje i njihov prikaz. XML
ne radi ništa, on samo nosi informacije okružene XML tagovima. Znači, XML
definiše strukturu dokumenata. On mijenja način na koji brauzeri prikazuju,
organizuju i pretražuju informacije. XML se može shvatiti kao osiromašena verzija
SGML-a i proširiv je za razliku od HTML. XML uklanja granice HTML-ovog
ograničenog skupa oznaka, dozvoljavajući ljudima koji se bave razvojem da definišu
neograničen broj oznaka za opis bilo kakvih podataka.
Namjena XML je tu da opiše strukturu, integriše protokole između aplikacija, da
razmjenjuje podatke. XML je skup pravila koja omogućavaju kreiranje tekstualnog
formata koji opisuje strukturu podataka (kao što su adresari, konfiguracijski
parametri, finansijske transakcije itd).
XML opisuje podatke u tekstualnom formatu te omogućava razmjenu podataka
nezavisno od sistema i formata podataka i predstavlja budućnost mrežnog
15
Prof. dr Rade Tanjga Tehnologije Web dizajna
programiranja. Veliku primjenu ima u razmjeni podataka, pogotovo za komunikaciju
client-server preko Interneta.
Pogledajmo gdje je sve XML našao svoju primjenu:
XML for Content Providers – XML za provajderske sadržaje
Istoj informaciji može se pristupati i čitati je na različitim jezicima. Različiti prikazi
istih podataka mogu se prezentovati različitim korisnicima. Svaki XML dokument
može da sadrži opis gramatike ili sintakse kako bi se mogla provjeriti i ispravnost
sadržaja.
XML for Content and knowledge management – XML za menadžment sadržaja
i znanja
Pretraživanje, indeksiranje i lokacija podataka postajju jednostavniji pošto XML nosi
informaciju o sadržaju, on je samo opisujući dokument. Trasformacija podataka iz
XML omogućava prikaz na različite medije (Web, CD ROM, papir) bez nepotrebnih
modifikacija i dupliranja sadržaja.
XML for Content Aggregation – XML za agregaciju sadržaja
XML obezbeđuje da se informacije sa različitih mjesta integrišu na jednom mjestu i
da se one prikupljaju na osnovu akcija krajnjeg korisnika. XML na taj način
obezbeđuje vezu B2C preko B2B veze.
XML for Electronic Document Interchange – XML za elektronsku razmjenu
dokumenata
XML omogućava kreiranje strukture za razmenu informacija kao i da objedini
postojeće protokole i standarde.
16
Prof. dr Rade Tanjga Tehnologije Web dizajna
XML and E-Commerce – XML za e-poslovanje
XML obezbeđuje sintaksu da indetifikuje svaku informaciju potrebnu za kompletnu
transakciju. Drugi spoj je povjerenje, jer XML omogućava da se informacija o
učesnicima u transakciji nosi zajedno sa transakcijom. Da bi se pratila promjena
tržišta potrebno je mnogo manje vremena i novca sa XML-om.
XML for Design – XML za dizajniranje
Scalable Vector Graphic (SVG) predstavlja jezik za opis dvodimenzionalnih vektora
pomoću XML -a. SVG omogućava da svaki korisnik u realnom vremnu pristupa slici
u bilo koje vrijeme i sa bilo kojim uređajem, sa bilo kog mjesta.
XML omogućava da se strukturirani podaci iz različitih izvora jednostavno
kombinuju. XML dokument kao poruka je samobjašnjiv skup podataka, jer pored
samih podataka koji su predmet poruke, XML dokument sadrži i meta podatke
pomoću kojih se ti podaci mogu interpretirati. Programski agenti, mogu se koristiti da
integrišu podatke u srednjem sloju servera iz baze za druge aplikacije. Ovi podaci
mogu da se prenose klijentima ili drugim serverima za dalju agregaciju, procesiranje
ili distribuciju.
Prvi Web brauzer koji omogućava pregled XML -a je Internet Explorer 5.0+, a
Netscape podržava XML specifikaciju od verzije 6 svog brauzera.
Fleksibilnost XML -a omogućava da se opišu podaci sadržani u širokom krugu
različitih aplikacija, od opisa web strane do polja baze podataka.
Standard
Mogućnost da se podaci odvoje od procesa predstavlja ključ uspjeha XML -a. XML je
otvoreni standard, te omogućava da XML funkcioniše na bilo kojoj platformi sa bilo
kojim programskim jezikom. Veliki broj programskih jezika omogućava rad sa XML-
om poput Java, MS Visual Basic, MS Visual C++, Perl, Cobol i C#.
Pomoću XML mogu se napisati i novi jezici. WML (Wireless Markup Language),
koji se koristi za kreiranje Internet aplikacija u mobilnim telefonima, i napisan je u
XML-u.
17
Prof. dr Rade Tanjga Tehnologije Web dizajna
XML je nezampamćenom brzinom postao standard, zbog svoje jednostavnosti.
XML 1.0 , je usvojen kao W3C Recommendation u februaru 1998. i predstavlja
sintaksu definisanu po W3C specifikaciji.
Takođe W3C omogućava progrmiranje efikasinijim, kreirajući familiju
tehnologija koje podržavaju XML kao što su:
XML Schema, takođe predstavlja XML dokument, omogućava modularnost jer
kreira strukturu i opis samih XML dokumenta. Jednostavno kombinuje više
različitih šema koje pokriva i sjedinjava strukturu dokumenta. Znači, nasljeđuju se
pravila sa drugih šema. Nastale su kao alternativna zamjena DTD (Document
Type Definition), pošto DTD nije bio XML dokument. XML šeme obezbeđuju
podršku za standardne tipove podataka kao što su broj, datum,... i omogućuju
definisanje novih tipova.
Namespace, eleminiše konfuziju prilikom kombinovanja više šema u jednom
Namespace dokumentu. On upućuje XML procesor da pronađe strukturna pravila
(definisana u šemi) koja se primjenjuju na sam dokument. U slučaju kada u
dokumentu koristimo dva eksterna dokumenta koji posjeduju isti naziv a različito
značenje elemenata koristimo namespace, kako bi ukazali na koje se elemente
odnose i koje značnje posjeduju. Namespace ukazuje na šemu koja sadrži
informacije o dokumentu koji se koristi.
XSLT/xPath vrši transformaciju sadržaja Namespace dokumenta u bilo šta,
najčešće HTML, omogućavajući na taj način razdvajanje podataka od
prezentacije.
Sintaksa
XML jednostavno omogućava kompjuteru da generiše, čita i provjerava validnost
podataka. XML je prihvatljiv za svakog čovjeka.
XML i XTML koriste <,> za kreiranje elementa i atributa strukture. Znači, sve što je
unutar < i > se podrzumijeva kao element, koji se parsira (prevodi u odgovarajuću
akciju) a sve između <> i </> se tretira kao običan tekst tj. sadržaj. Svaki elemnt koji
se otvori mora biti zatvoren. Elementi se ne mogu preklapati, jer u suprotnom došlo bi
18
Prof. dr Rade Tanjga Tehnologije Web dizajna
do zaustvljanja prikaza dokumenta za razliku od XTML brauzera, koji će jednostavno
preskočiti tu grešku.
Primjer ispravnog pisanja XML dokumenta
Ispravno Ne ispravno Ne ispravno
<RODITELJ> <RODITELJ> <DETE>
<DETE> <DETE> <RODITELJ>
Sadržaj. Sadržaj. Sadržaj. Sadržaj. Sadržaj. Sadržaj.
</DETE> </RODITELJ> </DETE>
</RODITELJ> </DETE> </RODITELJ>
Prvi tag u XML dokumentu se naziva "root" element, on je roditelj za sve ostale
elemente. Svi XML dokumenti moraju da imaju "root" element, tj. glavni tag koji
definiše sam XML dokument. Svi ostali tagovi moraju biti u okviru "root " elementa.
Ostali elementi mogu da imaju svoju djecu, djeca moraju biti ispravno ugnježdena sa
svojim roditeljima, kao u prethodnom primjeru.
Nazivi elementa su CASE SENSITIVE tj. osjetljivi su na mala i velika slova, tag
<poruka> je raličit od taga <Poruka>.
Ako element ne sadrži nikakav sadržaj mora početi sa < i završiti sa /> poput
<EMPTY/>.
Primjer jednostavnog XML dokumenta
<?xml version="1.0" encoding="UTF-8"?>
<!--trikovi last updated 2001-01-01-->
<trikovi>
<css>CSS <quote>level 1</quote></css>
<brauzeri><quote>IE,NS</quote></ brauzeri >
<uspješno/>
</trikovi>
Po XML deklaraciji koju sprovodi W3C svaki XML dokument započinje sa: <?
xml ...?>. Koji u suštini definiše verziju XML u kome je napisan. Deklaracija može da
sadrži i encoding atribut za definisanje kodnog rasporeda i standalone deklaraciju
koja govori da dokument zavisi od informacija iz eksternog izvora kao npr. eksterni
19
Prof. dr Rade Tanjga Tehnologije Web dizajna
DTD. XML deklaracija nema završni tag, zato što to nije dio samog XML dokumenta
niti je XML element, pa ne treba da ima završni tag.
Sljedeća linija tj. <trikovi> opisuje "root element" dokumenta tj. on govori da ovaj
dokument nosi informacije o trikovima. Ostale linije predstavljaju djecu za element
<trikovi> a suvišan prazan prostor "WHITE SPACE", XML preskače kao u HTML-u.
Prazni elementi poput u primjeru: (<uspješno/>) jednostavno mapiraju gdje se
element nalazi. Prazni elementi mogu da budu zadati i u sljedećoj sintaksi
<uspješno></uspješno>.
Nema ništa specijalno u vezi XML, to je jednostavni tekstualni dokument kome su
dodati XML tagovi. Programi koji mogu da rade sa običnim tekstom mogu i sa XML-
om. U njima XML tagovi su vidljivi i neće biti obrađivani. Dok u aplikacijama koje
rade sa XML-om, tagovi mogu da se obrađuju, i mogu da imaju značenje zavisno od
prirode programa.
Najvažniji dijelovi XML dokumenta su elementi i atributi
Elementi
Elementi određuju prirodu sadržaja kojeg okružuju. XML elementi nisu definisani, vi
(programer) morate definisati sopstvene XML elemente. Pomoću njih se određuje
struktura dokumenta i omogućava njihovo programiranje i vizualna predstava pomoću
stilova. Neki elementi mogu biti prazni i ne moraju da posjeduju sadržaj. Svaki
element započinje sa početnim tagom <element>, i završava se sa krjanjim tagom,
</element>.
Pogledajmo primjer XML -a:Ukoliko imamo program koji može da obradi elemente <od>, <za>, i <tijelo> iz XML dokumenta da proizvede izlaz kao:
<poruka id="1"> 1.PORUKA
<od>Mene</od> Od: Mene
<za>Njega</za> Za: Njega
<tijelo>Posjeti me opet!</tijelo>
</poruka> Posjeti me opet!
20
Prof. dr Rade Tanjga Tehnologije Web dizajna
Jednostavnim dodavanjem novog elementa u XML neće se narušiti njegova
funkcionalnost. Program će i dalje biti u stanju da obrađuje elemente koje smo
prethodno definisali i ako smo dodali nove elemente. XML je proširiv!
Atributi
Atributi predstavljaju parove ime-vrijednost koji se nalaze unutar početnog elementa,
odmah poslije imena elementa. Vrijednosti atributa moraju biti uvijek pod
navodnicima. Najčešće se upotrebljavaju dvostruki navodnici, zato što nekad i same
vrijednosti atributa sadrže navodnike pa u tim slučajevima koristimo jednostruke
navodnike. Primjer:
<city name="NEW YORK 'BIG APPLE'">23.000</city>
Primjer sadrži element sa nazivom city koji opet sadrži atribut sa nazivom name koji
ima vrijednost NEW YORK 'BIG APPLE'.
Atributi najčešće obezbeđuju informacije koje nisu dio podataka na primjer atribut ID
koji smo koristili u prethodnim primjerima nije dio sadržaja elemenata ali
programima koji obrađuju te elemente su mnogo važni.
Podaci mogu da budu smješteni i u atribute ili elemente. Ne postoji neko generalno
pravilo ali treba izbjegavati da se koriste atributi za smještanje podataka. Naročito
kada dođe do promjene elemenata teško je mijenjati i atribute.
Evo nekoliko razloga za izbjegavanje atributa:
Atributi se teže proširuju i mijenjaju
Atributi ne mogu da opišu strukturu
Atributima se mnogo teže manipuliše
Vrijednosti atributa nije lako provjeriti
Koristite elemente da opište podatke dok atribute samo kad treba ali samo kad treba
da nose informaciju koja nije povezana sa samim podacima. Najčešći primjer
upotrebe atributa je korištenje jednostavnog identifikatora npr. ID koji nema veze sa
podacima, ali omogućava lakši pristup elementima kao u HTML kada koristimo ID ili
NAME atribute.
XML dokumenti imaju smisla samo ako su dobro formirani i valjani. Dobro formirani
su oni XML dokumenti koji su usklađeni sa osnovnim pravilima sintakse i strukture
specifikacije XML 1.0.
21
Prof. dr Rade Tanjga Tehnologije Web dizajna
Valjani XML dokumenti su dobro formirani dokumenti koji su usklađeni još i sa
sintaksnim i ostalim pravilima iz DTD ili XML Schema-e.
XML dokumenti se u pretraživačima mogu prikazivati znatno efektnije, korištenjem
CSS (Cascading Style Sheets) ili XSLT (EeXtensible Style sheet Language for
Transformations) jezika. Ovim tehnikama se XML ustvari konvertuje u HTML prije
prikazivanja.
2.4. XHTML (eXtensible Hyper Text Markup Language)
XHTML (eXtensible HyperText Markup Language) nastao je sa ciljem da riješi
probleme koje je HTML zajedno sa Web čitačima donijeo. XHTML je identičan sa
HTML 4.01 i vraća HTML prvobitnoj namjeni a to je struktuiranje Web dokumenata.
HTML je definisan kao XML (eXtensible Markup Language) tj. svi elementi iz
HTML 4.01 kombinovani sa sintaksom XML-a. XHTML 1.0 je oficijalna preporuka
W3C od 26. Januara 2000. god, te predstavlja standard za kreiranje Web dokumenata.
Mane HTML-a
HTML je bar u početku sadržao jednostavnu sintaksu, koja je godinama rasla. Ta
jednostavnost se pretvorila u najveću noćnu moru. Ne mogu da se stvore sopstvene
oznake koje označavaju semantičke odnose unutar sadržaja jer HTML nije proširiv.
Prilikom automatske, pouzdane razmene podataka HTML ne pomaže. Nedostaje
podrška strukture u HTML, provjeravnje sintakse niti sama svijest o sadržaju. Web
stranice se satalno pomjeraju, a Webmasteri ne mogu da idu u korak sa promjenama
URL-ova. tj. problem je što HTML nema koncepciju centralne baze linkova.
Mnoge stranice na Internetu sadrže loš HTML. U sljedećem primjeru vidjećmo loš
HTML kod ali koji će raditi u Web čitačima, iako se ne drži HTML pravila:
<html>
<head>
<title>Ovo je loš HTML</title>
<body>
<h1>Loš HTML
</body>
22
Prof. dr Rade Tanjga Tehnologije Web dizajna
XML je markerski jezik u kome sve mora da se markira ispravno. XML je napravljen
da opiše informacije a HTML da ispisuje te informacije. Danas postoje različiti Web
čitači, neki prikazuju Internet na računaru a neki na mobilnim telefonima i palm
uređajima. Ti drugi Web čitači nemaju resursa da interpretiraju "loš" markerski jezik,
ali XHTML je tu da premosti tu manu kombinujući snagu HTML i XML kako danas
tako i u budućnosti.
XHTML strane mogu biti gledane na svim uređajima koji podržavaju XML. XHTML
predstvlja sljedeću generaciju HTML. U suštini XHTML nije toliko različit od HTML
4.01, i ukoliko ste prebacili vaš HTML kod na ovaj standard neće vam biti teško da
pređete na XHTML.
Pravila za formiranje ispravnog XHTML koda su sljedeća:
1. XHTML je ponovi aplikacija SGML-a, i kao takav je definisan pomoću SGML
DTD definicije. XHTML DTD precizno opisuje sintaksu i gramatiku XHTML-a. Kod
mora proštovati sintaksna ograničenja zadata u jednom od tri DTD dokumenta, u
zavisnosti od toga da li je u pitanju strict, transitional ili frameset XHTML-a.
2. Korjeni element dokumenta mora biti <html>.
3. Korjeni element mora sadržavati xmlns deklaraciju XHTML imenovanog prostora,
na primjer:
<html xmlns=“http:/ /w ww. w3.org/1999/xhtml“ xml:lang=“en“
lang=“en“>
4. <!DOCTYPE> je takođe obavezan dio dokumenta, tako da se XHTML dokument
sastoji od tri dijela: DOCTYPE, head i body.DOCTYPE deklaracijamora biti u prvoj
liniji XHTML dokumenta.
5. DTD podskupovi se ne smiju koristiti za nadjačavanje bilo kojeg parametarskog
entiteta u DTD-u.
Razlike između XHTML i HTML 4 liče na razlike između XML i HTML jezika:
zabranjeno je ukrštanje tagova,
elementi i imena atributa morasju se pisati malim slovima,
obavezno je zatvaranje svih tagova za neprazne elemente,
vrijednosti atributa moraju biti navedene pod navodnicima,
23
Prof. dr Rade Tanjga Tehnologije Web dizajna
zabranjeno je minimiziranje atributa (moraju se uvijek navoditi parovi ime =
vrijednost),
prazni elementi takođe moraju biti zatvoreni (kao u XML-u: umjesto <br> mora
se pisati <br/> ),
elementi koji predstavljaju skript ili stil prikaza moraju biti dio CDATA označene
sekcije.
2.5. WML (Wireless Markup Language)
WAP (Wireless Application Protocol), protokol koji je namijenjen pristupu Web
sadržajima sa mobilnih telefona i ručnih računara (handheld), koristi markerski jezik
koji se zove WML. WML koristi tagove isto kao i HTML ali mu je sintaksa strožija.
WML je definisan kao XML 1.0 aplikacija.
WML strane se nazivaju špil (deck). Oni se sastoje od skupa karata (card) . Kada
klijent pristupi WML strani, sve karte se skidaju sa WAP servera. Navigacija između
kartica obavlja se u samom mobilnom telefonu, bez pristupa serveru.
Primjer WML dokumenta:
<?xml version=“1.0“?>
<!DOCTYPE wml PUBLIC „-//WAPFORUM//DTD WML 1.1//EN“
„http://www.wapforum.org/DTD/wml_1.1.xml“>
<wml>
<card id=“HTML“ title=“HTML Tutorial“>
<p>
WML primjer dokumenta
</p>
</card>
<card id=“XML“ title=“XML Tutorial“>
<p>Njegova druga kartica: </p>
</card>
</wml>
24
Prof. dr Rade Tanjga Tehnologije Web dizajna
Kao što se može vidjeti iz primjera, WML dokument je zapravo XML dokument.
DOCTYPE je definisan kao wml, a DTD-u se pristupa na
www.wapforum.org/DTD/wml_1.1.xml.
Sadržaj dokumenta je unutar <wml>...</wml> tagova. Svaka karte je unutar
<card>...<card/> tagova, a paragrafi su unutar <p>...</p> tagova. Svaka karta ima
identifikator i naslov. Za formatiranje teksta koriste se, pored <p>...</p> taga,
snjedeći tagovi: <br/>, <em>...</em>, strong...</strong>, <b>...</b>, <i>...</i>,
<u>...</u>, <big>...</big>, <small>...</small>. Za ispis tabela koriste se
<table>...</table>, <tr>...<tr/> i <td>...</td> tagovi.
Za linkove se koristi <anchor> tag. Ovaj tag uvijek ima i task (go, prev ili refresh).
Task određuje akciju koja se pokreće kada korisnik odabere link. Primjer:
<anchor> Link na sljedeću stranu <go href=“test.wml“/> </anchor>
Postoji i tag <a> koji uvijek izražava go task bez promjenjivih. Primjer:
<a href=“test.wml“>Next page</a>
Slike se prikazuju pomoću <img> taga. Primjer:
<img src=“/images/stickman.wbnp“ alt=“stickman“ />
25
Prof. dr Rade Tanjga Tehnologije Web dizajna
3. Jezici i tehnologije razvoja dinamičkog Web-a
Aplikacije za Web se mogu pisati u raznim programskim jezicima, od klasičnih
(Pascal, Fortran, C, C++...) do jezika koji su nastali i razvijli se upravo kao nosioci
„Internet programiranja“ (Java, razni skript jezici (PERL, PHP, JavaScript...) ...).
Moraju se razlikovati sami jezici od tehnologija koje te jezike koriste (recimo, CGI
kao tehnologija koristi čitav niz jezika poput C/C++-a, PERL-a, TCL-a...; ASP
tehnologija koristi JScript ili VBScript, Java tehnologija koristi Java programski jezik
itd.). Ovdje ćemo najprije dati kratak pregled skript jezika (s obzirom na to da je
njihova prvobitna namjena bila klijentsko ili serversko skriptovanje i da su nastali
paralelno sa ekspanzijom dinamičkog Weba), a zatim ćemo se osvrnuti na danas
vodeće Web tehnologije.
3.1. Skript jezici
3.1.1. JavaScript
JavaScript je jezik čija je sintaksa slična programskom jeziku Java, i na tome se
gotovo sva sličnost i završava. JavaScript je razvijen od strane kompanije Nestcape
pod kodnim imenom Mocha, da bi kasnije bio preimenovan u LiveScript i na kraju
konačno u JavaScript. Jezik je široko prihvaćet i standardizovan pod imenom
ECMAScript, a podrška za njega ugrađena je u sve novije brauzere. Za razliku od
Java, koji predstavlja objektno orijentisan programski jezik visokog nivoa i koji se
izvršava isključivo unutar Java virtuelne mašine (JVM), JavaScript programi
(skriptovi) su obično klijentski skriptovi. Oni su ugrađeni u HTML stranice, i
izvršavaju se u brauzeru klijenta.
<html>
<head><title>JavaScript</title>
<script>
function update ()
{
alert („Podaci su poslani!“);
}
26
Prof. dr Rade Tanjga Tehnologije Web dizajna
</script>
<head>
<body>
<form name=“myForum“ method=“post“
action=“obrada.php“ onSubmit=“update ()“>
<input type=“text“ name=“textfield“>
<input type=“submit“ name=“Submit“
value=“Pošalji“>
</form>
</body>
</html>
Zahvaljujući DOM (Document Object Model) specifikaciji, iz JavaScript skriptova
moguće je kontrolisati sve elemente brauzera, kao i dokumenta učitanog u brauzer.
Klijentski JavaScript se obično koristi za postizanje posebnih efekata na Web
stranama, ili za klijentsku validaciju podataka koji se unose u HTML forme. Postoji
mogućnost da se JavaScript koristi i na serveru, ali obično u sprezi sa još nekom Web
tehnologijom (npr. ASP).
3.1.2. VBScript
VBScript je podskup Visual Basic programskog jezika. Koristi se u svrhe slične
JavaScript-u, kao klijentski skript koji se izvršava u brauzeru, s tim što je podržan
isključivo od strane Microsoft-a i pretraživača MS Internet Explorel. Uz pomoć ovog
jezika i Windows Scripting Host, unutar kojeg se izvršavaju programi, moguće je
napisati skriptove koji rješavaju određene administrativne probleme u Windows
operativnim sistemima (dodavanje novih korisnika, izmjena prava, rad sa diskovima,
pa čak i automatizaciju rada sa MS Office aplikacijama itd). Pošto predstavlja
pojednostavljeni skup VBasic naredbi, mnogo je jakši i jednostavniji za učenje od
JavaScript-a, ali je znatno manje zastupljen što se tiče klijentskog skriptovanja, jer
nije toliko moćan i ima problema sa kompatibilnošću kod korisnika koji ne koriste
Internet Explorer. Tehnologija koja je proslavila ovaj skripting jezik jeste ASP, s tim
da se u ASP-u VBScript koristi kao podrazumijevani jezik za razvoj serverskih (a ne
klijentskih) skriptova.Kao primjer navodi se VBScript koji se izvršava unutar
27
Prof. dr Rade Tanjga Tehnologije Web dizajna
Windows Scripting Host-a: podiže se aplikacija MS Word bez korisničkog interfejsa,
kreira se nova datoteka, umeće se tekst i datoteka se snima na disk:
Dim MS Word, WSHShell
Set WSHShell = WScript.CreateObject(„WScript.Shell“)
Set MSWord = WScript.CreateObject(„Word.Basic“)
MSWord.FileNew(„Normal“)
MSWord.Insert(„Ovo je poglavlje o skript jezicima,“ & Chr(13))
MSWord.Insert(„ u ovom pasusu govorimo o upotrebi VBScript-a.“)
MSWordFileSaveAs(„c:\Test.doc“)
MSWord.FileClose
Još jedna prednost VBScript-a je prirodno i jednostavno korištenje ActiveX objekata,
što se vidi i na gornjem primjeru.
3.1.3. Perl
To je akronim izraza Practical Extruction and Report Language i predstavlja jedan od
najpopularnijih jezika za razvoj dinamičkog Web-a. Perl je kreirao Larry Wall 1987.
godine. Trenutna verzija nosi oznaku 5, i izdata je još 1994. godine, sa podvarijantom
5.8 koja se pojavila 2002. godine. Perl je preuzeo najbolje osobine jezika poput C,
awk, sed, sh i BASIC. Posebno je moćan u oblasti manipulacije tekstom, uz vrlo brz
razvoj Web aplikacija, što ga je učinilo jako rasprostranjenim. Još jedna velika
prednost Perl-a jeste CPAN (Comprehesive Perl Archive Network), distribuirana
arhiva sa preko 2000 modula koji pokrivaju najrazličitije programerske zadatke.
Perl je skript jezik u kojem se najčešće razvijaju CGI aplikacije, tako da se vrlo šesto
pri prominjanju ovog jezika misli na cjelokupnu CGI Web tehnologiju, što je
pogrešno.
3.1.4. Python
Predstavlja interpretirani, interaktivni, objektno-orijentisani programski jezik, nastao
1991. godine. Uključuje podršku za module, dinamičko tipiziranje, dinamičke tipove
podataka veoma visokog nivoa, i klase. Python kombinuje veliku moć sa veoma
janom sintaksom, Moguće je pisati proširenja ovog jezika u C ili C++, mada se sam
28
Prof. dr Rade Tanjga Tehnologije Web dizajna
koristi kao jezik za proširenje za aplikacije kojima je potreban programabilni intefejs.
Konačno, Python je portabilan i raspoloživ za različite Unix platforme, za Macintosh i
PC računare pod DOS-om, OЅ/2 ili Windows-om. Oblasti primjene su veoma široke,
počevši od procesiranja stringova, preko programiranja vezanog za Internet protokole
(HTTP, FTP, SMTP, XML/RPC, POP, IMAP, CGI programiranje), softverskog
inženjerstva, do programiranja interfejsa operativnih sistema (sistemski pozivi, fajl-
sistemi, TCP/IP soketi).
Danas su u upotrebi tri implementacije Python-a:
CPython (originalna inapisana u C-u, trenutno je aktuelna verzija 2.2),
Jython (implementacija za Java virtuelnu mašinu),
Python.NET (najnovija vetzija napisana za Common Language Runtime virtuelnu
mašinu .NET aplikativnog okvira kompanije Microsoft.
Pojedini dijelovi Yahoo! servisa (Yahoo!Groups i Yahoo!Maps) intenzivno koriste
Python (recimo, Yahoo!Groups kolekcija Internet mailing lista koja je čisto
dinamička, sastoji se od 180.000 linija Python koda i u stanju je da pošanje oko 200
poruka u sekundi koristeći jedan Pentium računar na 400MHz!) , a neki Google bot-
ovi, Web spider-i i dijelovi pretraživača su takođe napisani u ovom jeziku. Zope
korporacija razvila je aplikativni server visokih mogućnosti koristeći Python kao
besplatno rješenje.
29
Prof. dr Rade Tanjga Tehnologije Web dizajna
3.2. Web tehnologije
3.2.1. CGI (Common Gateway Interface)
CGI je standard za spajanje eksternih aplikacija sa serverima informacija, kao što su
HTTP (Web) serveri. CGI programi se izvršavaju u realnom vremenu, i proizvod
njihove egzekucije predstavlja (kao i kod ostalih tehnologija za generisanje
dinamičkog Web sadržaja) dinamčki generisan HTML. Pošto CGI program, u
najširem smislu, predstavlja izvršnu datoteku kojoj dopuštamo da bude pokrenuta od
strane bilo kog posjetioca našeg sajta, jasno je da takav način programiranja Web
aplikacija nije najsigurniji sa bezbjednosnog stanovišta – postoje mnoge sigurnosne
pretpostavke kojih se moramo pridržavati. Uobičajena je praksa da, upravo zbog
bezbjednosti, omogućujemo da se CGI aplikacije izvršavaju u samo jednom folderu
(najčešće se naziva cgi-bin folder) na našem serveru. CGI aplikacije se mogu pisati u
bilo kom programskom jeziku višeg nivoa (C/C++, Fortran, Pascal...) ili skript jeziku
koji je podržan na našem serveru (PERL, TCL, bilo koji Unix shell skript jezik,
VBScript, AppleScript...), tako da od konkretnog jezika zavisi da li će CGI apilkacija
biti kompajliran ili interpretiran kod.
Loša osobina CGI aplikacija jeste upravo to što je CGI, u principu, program –
aplikacija koja se po pozivu od strane klijenta učitava u memoriju servera, izvršava, a
zatim briše iz memorije. Kreiranje procesa je sa stanovišta performansi mnogo skuplja
operacija nego, na primjer, jednostavno iščitavanje HTML datoteke. Pretpostavimo da
sa našeg sajta u jednom momentu 100 korisnika zatraži izvršavanje CGI programa. To
bi značilo da serverski operativni sistem treba da učita 100 instanci programa u
memoriju, da zatim izvrši te programe i oslobodi resurse. Ovo može veoma brzo da
popuni serverske resurse, tako da je skalabilnost ovakvih aplikacija izuzezno loša.
Ipak, CGI je istorijski prvi pokušaj kreiranja dinamičkog Weba, i tako ga treba i
posmatrati. I pored ovog problema, CGI je i dalje veoma popularno rješenje, naročiro
u Unix svijetu.
30
Prof. dr Rade Tanjga Tehnologije Web dizajna
3.2.2. ISAPI (Intrenet Server Application Programming Interface)
Radi prevazilaženja ograničenja u performansama i skalabilnosti koje je donio CGI,
kompanija Microsoft razvila je novi način na koji je trebalo pisati brze i skalabilne
Web aplikacije. Ovo rješenje se naziva Internet Server Application Programming
Interface (ISAPI). Umjesto da funkcionalnost smješta u egzekutabilnim datotekama,
ISAPI koristi dinamičke biblioteke (DDL-ove), što donosi bitnu prednost u
performansama.
Postoje dva osnovna tipa ISAPI DDL-ova: ISAPI ekstenzije i ISAPI filteri. Ekstenzije
se eksplicitno pozivaju u URL-u koji se šanje IIS serveru (na primjer,
http://localhost/heloisapi.ddl), i na ovaj način se aplikaciji mogu proslijediti i
parametri (preko URL-a) na osnovu kojih će biti izvršena konkretna akcija. Po ovoj
osobini ISAPI ekstenzije su veoma slične CGI programima. Sa druge strane, ISAPI
filtere poziva IIS, i ne mogu biti pozvani direktno. IIS će pozvati odgovarajući filter
kada se za to ukaže potreba, reagujući na neki događaj u životnom ciklusu HTTP
zahtjeva (kad, na primjer, server preprocesira klijentska zaglavnja (headers), kada vrši
autentifikaciju klijenta, prije nogo što podaci budu poslani od klijenta ka serveru, kad
se sesija završi...). ISAPI filteri mnogo su rijeđi do ekstenzija. Obe vrste DDL-ova se
obično pišu u jeziku C/C++.
ISAPI ekstenzije popravljaju mnoge slabosti CGI aplikacija. Za razliku od CGI-a, koji
krera i uništava proces pri svakom pozivu, ISAPI ekstenzije se učitavaju u memoriju
jednom, prilikom starta servera, i ostaju aktivne za vrijeme rada servera, uslužujući
pojedinačne korisničke zahtjeve kreiranjem programskih niti (threads). Zbog
„bliskosti“ sa Web serverom IIS, ISAPI ekstenzije se obično izvršavaju u istom
adresnom prostoru sa serverom, što takođe izvrsno utiče na performanse (ova osobina
se može podesiti).
Loše strane ISAPI interfejsa jesu programeri koji razvijaju Web aplikacije, jer su za
ovakav razvoj potrebni (diveloperi) ljudi koji odlično poznaju C/C++, rad sa MFC
(Microsoft Foundation Classes) i koji istovremeno odlično poznaju HTML i Web
dizajn. Ove dvije grupe vještina se veoma rijetko sreću u istoj osobi. ISAPI ekstenzija
jeste jedan monolitni DDL, bez janog razdvajanja funkcionalnosti i interfejsa, što
31
Prof. dr Rade Tanjga Tehnologije Web dizajna
može biti veliki problem. Dalje, učitavanje DDL-a u memoriju bez mogućnosti
kasnije zamjene novom DDL verzijom dok se ne zaustavi serverski proces, takođe,
može biti problem za administratore sistema, pogotovo kod velikih Web aplikacija,
koje moraju biti u pogonu 24x7. Zbog vega oboga, kada govorimo o najširem krugu
divelopera Web aplikacija, možemo slobodno reći da ovakvo rješenje nije nikada
potpuno prihvaćeno niti je zaživjelo.
3.2.3. PHP
Najpopularniji opensource način razvoja Web aplikacija današnjice jeste PHP,
programska platforma i jezik interesantnog rekurzivnog naziva (PHP je skraćenica od
PHP: Hypertext Preprocesor). To je programski jezik koji se dodaje u HTML kod
strane (slično ASP načinu skriptovanja), i po svojoj sintaksi sličan je jezicima C, Java
i Perl. PHP omogućava generisanje Web strane u vrijeme izvršavanja – kada čitač
klijenta pozove PHP stranu, Web server šalje zahtjev PHP procesoru. Procesor čita
dokument koji čitač želi da preuzme, i izvršava PHP iskaze obuhvaćene oznakama za
početak (<?php ili <?) i završetak (?>) PHP skripta. Na taj način PHP procesor
ispisuje dinamički generisani HTML u memoriju Web servera koji, zatim, takav
sadržaj prosljeđuje klijentu.
PHP znatno olakšava pristup brojnim bazama podataka, a najprirodnije sarađuje sa
drugim opensource rješenjem, RDBMS serverom MySQL. Podržava rad sa
protokolima IMAP, POP3, NNTP i HTTP, a može da koristi priključke za rad sa
drugim TCP/IP protokolima. Može se koristiti na različitim serverskim platformama
(Linux, FreeBSD, Windows – gdje se na IIS instalira kao ISAPI dodatak).
Popularnost je stekao zahvaljujući jednostavnosti, cijeni i izuzetno bogatoj
dokumentaciji. Loša strana (kao i kod ASP-a) jeste izmješan HTML i PHP kod, koji
je teško održavati. Funkcionalni i prezentacioni dio Web aplikacije su na ovaj način
isprepleteni i teško odvojivi.
32
Prof. dr Rade Tanjga Tehnologije Web dizajna
3.2.4. ASP (Active Server Pages)
ASP je, slično PHP-u, tehnologija koja omogućava programsku konstrukciju HTML
strana nepsredno pred njihovu isporuku čitaču. Microsoft je zvanično objavio ASP
1996. godine pod šifrom Denali, a verzija ASP 1.0 bila je na tržištu koncem 1996.
godine. Početkom 1997. godine (mart) ASP je ugrađen u IIS i postaje znatno
rasprostranjeniji. ASP ne zavisi od konkretnog klijenta, odnosno čitača, jer se
cjelokupan kod izvršava na serveru. Tu imamo sljedeće prednosti, koje važe i za
ostale serverski orijentisane tehnologije:
Programi se mogu izvršavti u programskom jeziku koje brauzer ne podržava,
Mogućnost programiranja dinamičkih Web aplikacija nezavisno od čitača, bez
programiranja na strani klijenta Java apletima, DTML-om ili ActiveX-om – svi
oni zahtijevaju određene čitače ili platforme.
Dostavljanje čitaču podataka koji su mu inače nedostupni,
Brže se učitava – jer do čitača stiže samo HTML, a ne neki klijentski kod,
Bezbjedniji je – programski kod ne može se vidjeti.
Rad u Active Server Pages 3.0 svodi se na pisanje skriptova koji koriste ASP objektni
model. ASP ima sedam ugrađenih (built-in) objekata: Server, Application , Session,
Request, Response, ObjectContext, ASPError. Svaki od ovih objekata svojom
funkcionalnošću pokriva određeni dio zadataka koje se postavljaju pred ASP kao
serversku tehnologiju za razvoj Web aplikacija. Na slici 4 prikazan je način rada ASP
objektnog modela.
33
Prof. dr Rade Tanjga Tehnologije Web dizajna
Slika 4: Prikaz ASP objektnog modela
Jezik kojim se vrši serversko skriptovanje može biti VBScript ili JScript, MS varijanta
JavaScript-a. ASP strane su kombinacija tri tipa sintakse: običnog teksta, HTML
oznaka i ASP naredbi.
Tipovi sintakse u ASP datotekama:
Prvi tip sintakse: Tekst
Svrha: Ovaj tip sintakse se koristi za informacije koje se fiksno upisuju a koje treba
prikazati korisniku.
Tumač: Tumač ovog tipa sintakse jeste čitač koji na korisnikovom računaru prikazuje
tekst.
34
Prof. dr Rade Tanjga Tehnologije Web dizajna
Oznake: Za označavanje ovog tipa sintakse koristi se jednostavan tekst u ASCII kodu.
Drugi tip sintakse: HTML oznake
Svrha: Ovaj tip sintakse daje uputstva čitaču kako da formatira tekst i slike.
Tumač: Tumač ovog tipa sintakse jeste čitač koji na korisnikovom računaru tumači
oznake za formatiranje teksta.
Oznake: Za označavanje ovog tipa sintakse koriste se graničnici <> i svaka oznaka se
nalazi unutar graničnika. HTML oznake su većinom u parovima (otvorena oznaka i
zatvorena oznaka), na primjer, <TABLE> i </TABLE>.
Treći tip sintakse: ASP naredbe
Svrha: Ovaj tip sintakse se koristi za uputstva Web serveru, na kome radi ASP, kako
se stvaraju dijelovi strane koje treba poslati.
Tumač: Tumač ovog tipa sintakse jeste Web server Web lokacije pomoću ASP
oznaka izvršava ASP kod.
Oznake: Za označavanje ovog tipa sintakse koristi se svaki dio ASP-a sadržan između
graničnika <% %>. ASP naredbe sadrže strukture programskih jezika, kao što su
VBScript i JScript.
3.2.5. Java
Java je istovremeno i platforma i programski jezik. U pitanju je već zrela tehnologija
kompanije Sum Microsystems, koja je razvijana gotovo isključivo za Internet
programiranje. Programski jezik Java ima sljedeće karakteristike:
Jednostavnost,
Objektnu orijentiranost,
Distribuiranost,
Robustnost,
Sigurnost,
Arhitekturnu neutralnost,
Portabilnost,
Visoke performanse,
35
Prof. dr Rade Tanjga Tehnologije Web dizajna
Dinamičnost i
Mogućnost razvoja aplikacija sa više grana (multithreading).
Za razliku od većine programskih jezika koji se ili kompajliraju ili interpretiraju da bi
se mogli izvršavati na računaru, Java je i kompajliran i interpretiran jezik. Najprije se
kompajlerom izvorni kod prevede u „međujezik“ (intemediate language – IL) – tzv.
bajtkod (bytecode), koji je nazivisan od platforme i izvršiv u tzv. Java virtuelnoj
mašini (JVM), da bi se zatim taj bajtkod parsirao i interpretirao unutar JVM. Proces
kompilacije se izvršava samo jednom, da bi se bajtkod interpretirao svaki put pri
pokretanju Java programa (slika 5):
Slika 5: Kompajliranje i interpretiranje Java programa
Zahvaljujući ovakvom konceptu, postaje moguća paradigma „napiši jednom, pokreni
svugdje“: bez obzira na platformu (PC, Macintosh, Solaris,...), ukoliko postoji Java
virtuelna mašina – program se može izvršavati na toj platformi.
36
Prof. dr Rade Tanjga Tehnologije Web dizajna
Slika 6: Java paradigma
Posljedica interpretiranja – bez native-code kompajlera – jeste kod koji je nešto sporiji
od kompajliranog. Međutim, savremene Java virtuelne mašine u velikoj mjeri
anuliraju tu prednost klasičnog kompajliranja: ukoliko su performanse ranije i bile
problem, danas su u tom pogledu klasične i Java aplikacije gotovo izjednačene. Java
nije samo platforma za Internet razvoj, jer se koristeći ovaj jezik i Java virtuelnu
mašinu mogu napisati aplikacije za bilo koju namjenu.
Što se tiče pisanja internet aplikacija, moramo razdvojiti dva tipa programa, i to:
aplete (applet) koji se izvršavaju u klijentskim Java virtuelnim mašinama i
servlete (servlet) koji se izvršavaju na serverima, dok se rezultat njihovog rada
šalje klijentima.
Problem koji je Microsoft imao sa ISAPI-jem (monolitnost dinamičkih biblioteka i
HTML koji je „ugrađen“ u dll, izmješanost koda i interfejsa) Sun je dobio servletama,
tako da je reagovao na sličan način: osmišljena je tehnologija koja znatno olakšava
izradu i održavanje dinamičkih Web aplikacija – Java Server Pages (JSP).
37
Prof. dr Rade Tanjga Tehnologije Web dizajna
3.2.6. Java Server Pages (JSP)
Ideja koja se nalazi u osnovi JSP koncepta jeste da se omogući paralelan ili bar
nezavisna rad Web dizajnera i programera. JSP strane su tekstualne datoteke koje
sadrže HTML oznake, ali i specijalne tagove koji omogućavaju dodavanje dinamičkih
elemenata u stranu. Ti tagovi su sintaksno potpuno isti kao i u ASP-u (<% za
otvaranje i %> za zatvaranje bloka koda). Realizacija se zasniva na sljedećoj ideji:
ovako napisana JSP strana će poslužiti kao osnov za dinamičko generisanje servleta
koje će proizvesti upravo onakvu HTML stranu koja je specificirana u JSP strani.
Takav servlet se generiše kao klasična datoteka sa izvornim Java kodom. Nakon
generisanja servleta vrši se njegovo prevođenje u Java bajtkod, a zatim izvršavanje u
Java virtuelnoj mašini na serveru. Proizvod tog izvršavanja jeste čisti HTML koji se
vraća klijentu (slika 7).
Slika 7: Postupak dinamičkog generisanja servleta
Iz JSP koda moguće je koristiti klase iz raspoloživih Java biblioteka, JavaBeans
komponente, Enterprise JavaBeans, pristupati bazama podataka preko JDBC-a itd. Na
taj način JSP strane imaju dovoljnu funkcionalnost za gradnju kompleksnih,
skalabilnih Web aplikacija. Apache Software i Foundation Jakarta Project stoje iza
najpoznatije implementacije JSP tehnologije – Tomcat.
38
Prof. dr Rade Tanjga Tehnologije Web dizajna
3.2.7. .NET Framework
.NET tehnologija (čita se dotNET) predstavlja novi način razvoja aplikacija za (za
sada) za Windows operativne sisteme. .NET vizija nasljeđuje Windows DNA
tehnologiju za razvoj troslojsnih poslovnih aplikacija, koja je bila zasnovana na
COM+ modelu.
.NET Framework (= programski okvir) predstavlja platformu za razvoj aplikacija koja
bi trebalo da postane nezavisna od operativnog sistema – poput programskog jezika
Java. Postoji mogućnost izrade Windows aplikacija, Web aplikacija, Web servisa,
aplikacija za mobilne uređaje itd, na relativno uniformisan i jednostavan naćčin, uz
jaku objektnu orijentaciju.
Na slici 8 prikazan je koncept .NET Framework platforme.
Ispod čitavog framework-a nalaze se sistemski servisi. U trenutnoj implementaciji u
pitanju je Win32 API i COM+, mada teoretski (još uvijek ne i praktično) te servise
može pružati bilo koji operativni sistem. Iznad sistemskih servisa nalazi se najbitniji
dio framework-a, CLR (Common Language Runtime) (adekvaran prevod ne postoji,
najpribližnije bi bilo: zajedničko izvršno okruženje – ustvari virtuelna mašina
za .NET). CLR učitava i izvršava kod napisan na bilo kom jeziku koji može da bude
kompajliran u MSIL (Microsoft Intermediate Language). Dakle, koncept je veoma
sličan Javi. Kod koji se na ovaj način izvršava naziva se upravljanim kodom
(managed code).
Na CLR se oslanjaju .NET framework klase. Ove klase mogu biti instancirane iz bilo
kog programskog jezika, i predstavljaju osnovu funkcionalnosti .NET framework-a.
Klase pokrivaju veoma veliku oblast, os servisa za pristupanje podacima do mrežnih
biblioteka i upravljanja nitima (threads). Programer jednostavno naslijedi klasu i
koristi je – razvoj aplikacija je brz, grešaka je manje.
Iznad klasa nalaze se posebne kolekcijeobjekata za rad sa podacima (ADO.NET) i
XML-om. Dalje imamo podršku za dva (zasad) osnovna tipa aplikacija: za
tradicionalne klijente koji koriste Windows Forms, kombinaciju Visual Basic i MFC
39
Prof. dr Rade Tanjga Tehnologije Web dizajna
formi, i za ASP.NET, koji uključuje Web forme i Web servise. Iznad ovoga dolazi se
do CLS (Common Language Specification) i konačno do razvojnih jezika koji prate
CLS. Zajednička jezička specifikacija (CLS) je skup pravila koje mora da zadovolji
programski jezik da bi se mogao nazvati .NET kompatibilnim.
Slika 8: .NET Farmework
Za razvoj se mogu koristiti različiti programski jezici: Visual Basic.NET, C#,
JScript.NET..., tačnije svaki jezik koji zadovoljava .NET specifikaciju, tj. koji ima
kompajler za prevođenje u MSIL. Svi jezici su potpuno ravnopravni, jer bi trebalo da
njihovi kompajleri generišu probližno isti MSIL. Dakle, performanse ne bi trebalo da
se razlikuju, što bi konačno dovelo do kraja „rata programskih jezika“. Još jedan
veoma bitan zajednički koncept jeste CTS (Common Type Syustem) – zajednički
sistem tipova. Svi .NET kompatibilni jezici koriste iste tipove podataka, koji su
40
Prof. dr Rade Tanjga Tehnologije Web dizajna
definisani na nivou framework-a, tako da je znatno olakšana jezička
međuoperabilnost.
Prilikom kompajliranja u .NET-u, slično Javi, ne dobijamo odmah prirodni (native)
kod specifičan za operativni sistem. Umjesto toga, vrši se kompajliranje u MSIL –
(Majkrosoftov posredni jezik). Ovaj kod nije namijenjen niti jednom operativnom
sistemu, i u njega se prevode svi .NET kompatibilni jezici. Dužnost jezičkih
kompajlera je da algoritamski isti programi u različitim jezicima generišu približno
isti MSIL.
Slika 9: Proces kompajliranja u .NET framework-u
Da bi se program izvšio, očigledno je potrebno još rada. Za taj posao zadužen je tzv.
Just-In-Time (JIT) kompajler, koji prevodi MSIL u prirodni kod specificiran od strane
operativnog sistema i same mašine na kojoj se program izvodi. Tek tad operativni
sistem zaista može izvršiti program. Praktično, faza kompajliranja je ista za sve
platforme; za druge operativne sisteme )ili novi hardver) potrebno je obezbijediti
samo izvršnu fazu za to okruženje.
41
Prof. dr Rade Tanjga Tehnologije Web dizajna
3.2.8. ASP.NET
ASP je zbog svoje velike popularnosti prerastao svoju ulogu, i morao je biti
zamijenjen tehnologijom (napisanom u jeziku C#) koja će biti u stanju da se izbori sa
zahtjevima postavljenim pred savremene Web aplikacije.
Loše strane ASP su:
piše se pomoću skript jezika (najčešće VBScript ili JScript) koji su
interpretirani, a ne kompajlirani. Manjkavosti interpretiranih jezika su
nedostatak jakih tipova i kompajliranog okruženja. ASP kešira kod, ali je on
ipak interpretiran, što vodi do problema sa performansama i skalabilnošću.
Miješanje koda i sadržaja: iako u početku smatrano prednošću, ipak je mana –
dvije grupe ljudi (Web dizajneri i programeri) rade na istim datotekama, što
nije praktično. Komplikovaniji kod je često značio i drastično veće izvorne
datoteke.
U ASP-u se kodiraju i najjednostavnije funkcije (na primjer, validacija polja
obrazaca...). ASP.NET je znatno komforniji, zahvaljujući serverskim
kontrolama – dosta koda je već napisano, a razvijaoci ga samo koriste.
ASP ne riješava probleme kompatibilnosti uređaja (palmtop-ovi, mobilni
telefoni ...). ASP.NET kontrole su dovoljno inteligentne da na osnovu HTTP
zahtjeva same otkrivaju šta se nalazi sa druge strane, i „emituju“ odgovarajući
kod.
ASP je teško proširiv, zatvoren sistem, bez otvorene mogućnosti podrške
novim standardima (poput XHTML-a, XML/XSLT-a, ...)
Ključni ciljevi koji se postižu uvođenjem ASP.NET-a:
Uklanjanje zavisnosti mašina za skriptovanje i omogućavanje da strane budu
tipski bezbjedne i kompajlirane – mnogo bolje performanse.
Smanjene količine koda potrebe za razvoj aplikacije (serverske kontrole).
Olakšavanje instalacije Web aplikacija (XCOPY Deployment) – XML
konfiguracijska datoteke. Ranije veliki problemi sa COM komponentama kod
three-tier Web aplikacija zbog neophodne registracije na serveru; sada –
Shadow Copying komponentie koje se nalaze u bin folderu u okviru
vertuelnog direktorijuma (to je funkcija CLR-a; nema zaključavanja
42
Prof. dr Rade Tanjga Tehnologije Web dizajna
komponenti koje se trenutno koriste jer se zapravo pozivaju sa drugog mjesta,
iz keša, a ne sa originalne lokacije).
Bolje rukovanje greškama (automatsko otkrivanje curenja memorije i restart
problematičnih ASP.NET aplikacija, otkrivanje zahtjeva na beskonačnom
čekanju i mrtvih petlji i njihovo razrješavanje, skladištenje stanja sesije
eksterno tako da je moguć restart ASP.NET aplikacija bez gubitka podataka
krajenjeg korisnika.
Poboljšanje performansi: svaka ASP.NET strana je kompajlirana.
Slika 10: Kreiranje DLL-a: Prilikom prvog zahtjeva klijenta za određenom aspx
stranom vrši se njeno kompajliranje u native kod – kreira se odgovarajući DLL
Kompajliranje strane nije jeftino i može da potraje nekoliko sekundi za složene strane.
Ali, kompajliranje se uvijek vrši samo jednom za datu .aspx datoteku. Svi naknadni
zahtjevi za stranom (čak i nakon restartovanja Web servera) zadovoljavaju se
instanciranjem generisane klase i zahtjevom da se strana vizualizira. Rezultat su
odlične performanse, a cijena – nešto malo prostora na disku za DLL-ove.
Kao što JSP strane mogu da pozivaju sve ranije napisane Java klase (uključujući i
JavaBeans komponente, JDBC ...), cjelokupna .NET biblioteka klasa je dostupna
ASP.NET stranama. Pristup podacima se vrši ADO.NET bibliotekom klasa.
43
Prof. dr Rade Tanjga Tehnologije Web dizajna
4. XML Web servisi
Veliki problem u kompleksnim heterogenim hardverskim i softverskim okruženjima
jeste povezivanje raznorodnih aplikacija i njihova međusobna razmjena podataka.
Paradigma XML Web servisa omogućila je snažan integrativni mehanizam, koji
omogućava lako dijeljenje podataka između aplikacija i platformi, koristeći najbolje
osobine komponentnog razvoja softvera i Weba. Koncept XML Web servisa počiva
na servisno orijentisanoj arhitekturi (Service-Oriented Architecture, SOA).
Servisi su komponente koje su „mrežno svjesne“ i predstavljaju funkcionalnost koja
se lako može preuzeti, bez potrebe znanja detalja implementacije samih servisa –
logike, pa čak ni tehnologije koja stoji iza realizacije komponenti. Pošto su Web
protokoli potpuno nezavisni od proizvođača, platforme ili jezika, rezultat upotrebe
servisa premo Web usluge jesu aplikacije koje se izuzetno dobro integrišu sa ostatkom
informacionog sistema preduzeća, dovoljno fleksibilne da prate promjene u
poslovanju kompanije.
Aplikacije koje su dizajnirane pomoću ovog koncepta pružaju istu funkcionalnost kao
klasične monolitne aplikacije, uz dodatne prednosti:
lakše korištenje postojeće infrastrukture starije generacije (legacy systems) sa
novim tehologijama,
veća fleksibilnost i lakša nadogradnja sistema, bez potrebe reinženjeringa u
slučaju promjene obima posla,
uštede u implementaciji.
44
Prof. dr Rade Tanjga Tehnologije Web dizajna
4.1. Koncepti XML Web servisa
Web servisi su aplikativni servisi kojima se može pristupiti korištenjem standardnih
Web protokola. Ovi servisi su primjenjivi na bilo koji oblik mrežnog okruženja i
podržavaju B2B (Business-to-Business), D2D (Department-to-Department) i P2P
(Peer-to-Peer) interakcije. Osnovni koncepti Web servisa uključuju:
pristup servisima preko Interneta, uz komunikaciju preko Web protokola koji su
nezavisni od platforme, na taj način omogućavajući integraciju heterogenih
okruženja,
standarde koji definišu interfejs i komunikacione protokole korištene u
klijent/server komunikaciji,
WSDL (Web Services Definition Language, jezik za definisanje Web servisa) koji
dodaje apstraktni sloj između implementacije i interfejsa. Distriburane aplikacije
implementirane pomoću Web servisa na taj način dobijaju na fleksibilnosti i
skalabilnosti.
Web servisi koriste tehnologije i standarde koji su već u širokoj upotrebi, što
omogućava bezbolan prelazak na servis-orijentisane aplikacije, uz minimalni rizik i
troškove.
45
Prof. dr Rade Tanjga Tehnologije Web dizajna
4.2. Standardi Web servisa
Web servisi su izgrađeni na otvorenim i već široko prihvaćenim standardima kao što
je HTTP i XML. Te standarde održavaju nezavisne, neprofitne organitacije za
standardizaciju, koje imaju članove iz raznih tehnoloških sfera. Osnovne grupe koje
propisuju standarde vezane za Web servise jesu:
W3C (World Wide Web Consortium): najveći broj široko prihvaćenih Web
standarda potiče od obog tijela (http://www.wc3.org)
OASIS:izvor originalne XML specifikacije, donio i standard za UDDI (Universal
Description, Discovery and Integration)
WS-I (Wev Services Interoperability Organization): grupa koja je zadužena za
kontrolu interoperavilnosti standarda Web servisa.
Osim XML-a koji je već opisan, standardi koji stoje iza XML Web servisa jesu:
SOAP, WSDL i UDDI.
46
Prof. dr Rade Tanjga Tehnologije Web dizajna
Slika 11: Korištenje XML Web servisa
4.3 SOAP: Simple Object Access Protocol
SOAP je standard koji predstavlja laki „koverat“ koji sadrži poruku na putovanju od
servis provajdera do korisnika i obatno. To je standard baziran na XML-u, koji
propisuje sadržaj poruke i način njene obrade, te nudi način transporta za razmjenu
poruka. Pored ovih funkcija, SOAP sadrži i skup pravila za izražavanje tipova
podataka definisanih u aplikaciji, kao i konvenciju za predstavljanje udaljenih ppoziva
procedurama (RPC , Remote Procedure Calls).
Dijelovi SOAP protokola su:
SOAP omotnica SOAP Envelope) – opisuje sadržaj poruke i kako je obraditi, uz
dodatne pojedinosti kao što su bezbjednosne informacije ili krajnje odredište
poruke,
SOAPtransportni okvir (SOAP Transport Binding Framework) – apstraktni radni
okvir za razmjenu SOAP omotnica korištenjem protokola na kojima se zasniva
prenos, uključujući HTTP ili druge vrste transportnih protokola.
SOAP okvir za serijalozaciju (SOAP Serialization Framework) – skup pravila za
izražavanje instanci aplikativno definisanih tipova podataka, kao što su brojevi ili
tekst,
SOAP RPC reprezentacija. – konvencija za predstavljanje udaljenih poziva
procedurama, kao i odgovora tih distribuiranih dijelova aplikacija.
Najkorištenija SOAP specifikacija jeste verzija 1.1. protokola, koja je dio WS-I Basic
Profile dokumenta. SOAP v.1.2 je nedavno ratifikovan i trebalo bi da postane čiroko
korišten.
47
Prof. dr Rade Tanjga Tehnologije Web dizajna
4.4. WSDL: Web Service Description Language
WSDL je XML format za opisivanje mrežnih servisa kao interakcije skupa povezanih
krajnjih tačaka, koje međusobno komuniciraju porukama koje sadrže informacije ili
opise pozivanja procedura. Operacije i poruke su opisane apstraktno, a zatim
povezane sa konkretnim mrežnim protokolom i formatom poruka. Te su poruke
najčešće povezane SOAP protokolom i HTTP transportom, ali to nije obavezno.
Apstraktna priroda WSDL-a za opis servisa omogućava visoku fleksibilnost opisa
kompleksnih aplikacija zasnovanih na Web servisima. WSDL dokument koristi
sljedeće elemente u definisanju mrežnih servisa:
tipovi – opis definicija tipova podataka, pomoću određenog sistema tipova (kao
što je XML Shema Definition, XSD),
poruka – apstraktna tipizirana definicija podataka koji se prenose,
operacija – apstraktni opis akcije podržane servisom,
tip porta – apstraktni skup operacija podržan od strane jedne ili više krajnjih
tačaka,
tip povezivanja – konkretan protokol i specifikacija formata podataka za određeni
tip porta,
port – jedna krajnja tačka definisana kao kombinacija tip povezivanja i mrežne
adrese,
servis – kolekcija povezanih krajnjih tačaka.
48
Prof. dr Rade Tanjga Tehnologije Web dizajna
4.5. UDDI: Universal Description Discovery and Integration
UDDI predstavlja skup protokola i javni direktorijum za registraciju i pretragu
raspoloživih Web servisa. Može se reći da UDDI predstavlja „žute strane“ (yellow
pages), oglasnik na kojem se nalazi spisak servisa koji su raspoloživi u datoj mreži.
Osnovna funkcija koju donosu UDDI jeste jedna referentna tačka koju će kontaktirati
svi potencijalni korisnici Web servisa unutar preduzeća. UDDI omogućava hostovanje
različitih verzija istog servisa, kreiranje alijasa, kao i ograničavanje pristupa
pojedinim servisima. Iako je UDDI standardizovan, standardi u ovoj oblasti su
podložni čestim promjenama. Postoje i komercijalni proizvodi (Web Service
Management alati), koji implementiraju dijelove funkcionalnosti UDDI-ja, uz dodatne
usluge poput inspekcije Web servisa.
49