2.tehnologije razvoja web aplikacija

72
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 [email protected] 1

Upload: vanzya

Post on 24-Jul-2015

365 views

Category:

Documents


4 download

DESCRIPTION

Tehnologija razvoja web aplikacija

TRANSCRIPT

Page 1: 2.Tehnologije Razvoja Web Aplikacija

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

[email protected]

Banja Luka, oktobar 2009.

1

Page 2: 2.Tehnologije Razvoja Web Aplikacija

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

Page 3: 2.Tehnologije Razvoja Web Aplikacija

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

Page 4: 2.Tehnologije Razvoja Web Aplikacija

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

Page 5: 2.Tehnologije Razvoja Web Aplikacija

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

Page 6: 2.Tehnologije Razvoja Web Aplikacija

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

Page 7: 2.Tehnologije Razvoja Web Aplikacija

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

Page 8: 2.Tehnologije Razvoja Web Aplikacija

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

Page 9: 2.Tehnologije Razvoja Web Aplikacija

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

Page 10: 2.Tehnologije Razvoja Web Aplikacija

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: &nbsp; za razmak,

&quot; 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

Page 11: 2.Tehnologije Razvoja Web Aplikacija

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

Page 12: 2.Tehnologije Razvoja Web Aplikacija

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

Page 13: 2.Tehnologije Razvoja Web Aplikacija

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

Page 14: 2.Tehnologije Razvoja Web Aplikacija

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

Page 15: 2.Tehnologije Razvoja Web Aplikacija

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

Page 16: 2.Tehnologije Razvoja Web Aplikacija

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

Page 17: 2.Tehnologije Razvoja Web Aplikacija

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

Page 18: 2.Tehnologije Razvoja Web Aplikacija

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

Page 19: 2.Tehnologije Razvoja Web Aplikacija

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

Page 20: 2.Tehnologije Razvoja Web Aplikacija

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

Page 21: 2.Tehnologije Razvoja Web Aplikacija

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

Page 22: 2.Tehnologije Razvoja Web Aplikacija

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

Page 23: 2.Tehnologije Razvoja Web Aplikacija

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

Page 24: 2.Tehnologije Razvoja Web Aplikacija

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

Page 25: 2.Tehnologije Razvoja Web Aplikacija

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

Page 26: 2.Tehnologije Razvoja Web Aplikacija

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

Page 27: 2.Tehnologije Razvoja Web Aplikacija

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

Page 28: 2.Tehnologije Razvoja Web Aplikacija

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

Page 29: 2.Tehnologije Razvoja Web Aplikacija

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

Page 30: 2.Tehnologije Razvoja Web Aplikacija

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

Page 31: 2.Tehnologije Razvoja Web Aplikacija

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

Page 32: 2.Tehnologije Razvoja Web Aplikacija

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

Page 33: 2.Tehnologije Razvoja Web Aplikacija

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

Page 34: 2.Tehnologije Razvoja Web Aplikacija

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

Page 35: 2.Tehnologije Razvoja Web Aplikacija

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

Page 36: 2.Tehnologije Razvoja Web Aplikacija

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

Page 37: 2.Tehnologije Razvoja Web Aplikacija

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

Page 38: 2.Tehnologije Razvoja Web Aplikacija

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

Page 39: 2.Tehnologije Razvoja Web Aplikacija

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

Page 40: 2.Tehnologije Razvoja Web Aplikacija

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

Page 41: 2.Tehnologije Razvoja Web Aplikacija

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

Page 42: 2.Tehnologije Razvoja Web Aplikacija

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

Page 43: 2.Tehnologije Razvoja Web Aplikacija

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

Page 44: 2.Tehnologije Razvoja Web Aplikacija

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

Page 45: 2.Tehnologije Razvoja Web Aplikacija

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

Page 46: 2.Tehnologije Razvoja Web Aplikacija

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

Page 47: 2.Tehnologije Razvoja Web Aplikacija

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

Page 48: 2.Tehnologije Razvoja Web Aplikacija

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

Page 49: 2.Tehnologije Razvoja Web Aplikacija

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