Sadržaj ovog taga je preformatirani tekst.Neki HTML HTML elementi elementi nemaju nemaju sadržaj. sadržaj. Na Na primjer, primjer, BR tag nema nema sadržaj sadržaj jer on pokaz pokazuje uje 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 tagovi nisu prisutni u dokumentu. 10
tagom. Primjer za jednu tabelu je sljedeći:
13 Prof. dr Rade Tanjga Tehnologije Web dizajna HTML nije strogo standardizovan jezik – umjesto čvrstih i propisanih standarda postoje preporuke preporuke specijalizov specijalizovanog anog tijela koje se zove World Wide Web Consortium Consortium (http://www.w3c.org http://www.w3c.org). ). Proizvođači brauzer programa moraju da se pridržavaju tih preporuka preporuka ukoliko ukoliko žele da im proizvod proizvod ispravno ispravno prikazuje prikazuje učitani učitani HTML. HTML. Trenutno 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 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 podržane zbog zbog kompatib kompatibilnosti ilnosti sa sa ranije napisanim napisanim stranam stranama. a. 2.3. XML (eXtensible Markup Language) XML (eXtensible Markup Language) predstavlja sintaksu za kreiranje „markerskih“ jezika (metadata), (metadata), jezika jezika koji opisuje podatke. podatke. Nastao Nastao je iz SGML ( Standard Generaliy Generaliyed ed Markup Markup Language Language) inter interna naci cion onal alno nogg stan standa dard rdaa (ISO) (ISO) za krei kreira ranje nje i 14 Prof. dr Rade Tanjga Tehnologije Web dizajna korište korištenje nje formata formata dok dokume umenat nataa sa ciljem ciljem da razdvo razdvoji ji pod podatk atkee od proce procesa. sa. SGML SGML predstavlja predstavlja daleko daleko kompleks kompleksniji niji „markerski“ „markerski“ jezik, jezik, koji nije našao našao svoju upotreb upotrebu, u, 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 predstav predstavlja: lja: • Univerzalni format podataka XML XML omogu omogućav ćavaa kreiran kreiranje je sopstv sopstven enih ih format formataa pod podata ataka ka i njihovu njihovu razmje razmjenu nu preko postojećih postojećih mreža mreža i aplikac aplikacija. ija. • Integracija podataka XML XML vrši vrši jedn jednos osta tavn vnuu integ integrac raciju iju poda podata taka ka kod kod već već post postoje ojećih ćih apli aplika kacij cijaa i platformi. platformi. • Prilagodljiv XML je prilagodiv tj. razumljiv i za čovjeka i za mašinu, primaoca i te predst predstavl avlja ja najupo najupotre trebljiv bljiviji iji standa standard rd za manip manipula ulacij cijuu podata pod ataka ka pošiljaoca, i njihov njihovuu 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 struktu strukturu ru dok dokume umenat nata. a. On mijenja mijenja način način na koji koji brauze brauzeri ri prikazu prikazuju, ju, organiz organizuju uju i pretražuju pretražuju informacije. informacije. XML se može shvatiti shvatiti kao osiromašen osiromašenaa verzija verzija SGML-a SGML-a i proširiv je za razliku razliku od HTML. HTML. XML uklanja uklanja granice granice HTML-ovog HTML-ovog ograniče ograničenog nog skupa oznaka, dozvoljavajući ljudima koji se bave razvojem da definišu neograničen broj oznaka za opis bilo kakvih podataka. Namjena Namjena XML je tu da opiše strukturu, strukturu, integriše integriše protokole protokole između između aplikacija, 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 XML opis opisuj ujee poda podatk tkee u teks tekstu tual alno nom m form format atuu te omog omoguć ućav avaa razm razmje jenu nu poda podata taka ka neza nezavi visn snoo od sist sistem emaa i form format ataa poda podata taka ka i pred predst stav avlj ljaa budu budućn ćnos ostt mrež mrežno nogg programiranja programiranja.. Veliku Veliku primjenu primjenu ima u razmjeni razmjeni poda podataka, taka, pogo pogotovo tovo za komunikaci komunikaciju ju client-server preko Interneta. Interneta. Pogledajmo gdje je sve XML našao svoju primjenu: XML for Content Providers – XML za provajderske sadržaje 15 Prof. dr Rade Tanjga Tehnologije Web dizajna 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 Electron Electronic ic Documen Documentt Intercha Interchange nge – XML za elektron elektronsku sku razmjenu razmjenu dokumenata XML XML omog omoguć ućav avaa krei kreira ranje nje stru strukt kture ure za razm razmen enuu infor informa maci cija ja kao kao i da obje objedi dini ni postojeće postojeće protokole protokole i standarde. standarde. XML and E-Commerce – XML za e-poslovanje XML obezbeđuje obezbeđuje sintaksu sintaksu da indetifikuje indetifikuje svaku informaciju informaciju potrebnu potrebnu za kompletnu kompletnu trans transak akci ciju. ju. Drug Drugii spoj spoj je povje povjere renje nje,, jer jer XML XML omog omoguć ućav avaa da se infor informa maci cija ja o 16 Prof. dr Rade Tanjga Tehnologije Web dizajna učesnicima u transakciji nosi zajedno sa transakcijom. Da bi se pratila promjena tržišta potrebno potrebno je mnogo mnogo manje vremena vremena i novca novca sa XML-om. XML-om. XML for Design – XML za dizajniranje Scalable Scalable Vector Vector Graphic Graphic (SVG) predstavlja predstavlja jezik za opis dvodimenziona dvodimenzionalnih lnih vektora vektora pomoću pomoću XML -a. SVG SVG omogućava omogućava da svaki svaki korisnik korisnik u realnom realnom vremnu pristupa pristupa slici slici u bilo koje koje vrijeme vrijeme i sa bilo kojim kojim uređajem, uređajem, sa bilo bilo kog mjesta. 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 podaci mogu interpretirati. interpretirati. Programski Programski agenti, mogu se koristiti da integrišu 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 Prvi Web Web brauz brauzer er koji koji omog omoguć ućav avaa pregl pregled ed XML XML -a je Inte Interne rnett Explo Explore rerr 5.0+ 5.0+,, a Netscape Netscape podrža podržava va XML XML specifikac specifikaciju iju od verzije verzije 6 svog svog brauzer brauzera. a. Fleksib Fleksibilno ilnost st XML XML -a omogu omogućav ćavaa da se opišu opišu pod podac acii sadrža sadržani ni u širokom širokom krugu 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 XMLom 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. 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 W3C omogućava omogućava progrmiranje progrmiranje efikasinijim, kreirajući familiju tehnologija koje podržavaju XML kao što su: 17 Prof. dr Rade Tanjga • Tehnologije Web dizajna XML XML Schem Schema, a, takođe takođe predst predstavl avlja ja XML XML dok dokume ument, nt, omogu omogućav ćavaa modul modularn arnost ost jer krei kreira ra struk struktu turu ru i opis opis sami samihh XML XML doku dokume menta nta.. Jedn Jednos osta tavn vnoo komb kombinu inuje je više više različitih šema koje pokriva i sjedinjava strukturu dokumenta. Znači, nasljeđuju se pravila sa drugih drugih šema. Nastale Nastale su kao alternativna alternativna zamjena zamjena DTD (Documen (Documentt Type Definition), Definition), pošto DTD nije bio XML doku dokument. ment. XML šeme obezbeđuju obezbeđuju podršku podršku za standardne tipove podataka kao što su broj, datum,... i omogućuju definisanje novih tipova. • Namespace Namespace,, eleminiše eleminiše konfuziju konfuziju prilikom prilikom kombinova kombinovanja nja više šema u jednom jednom Namespace Namespace dokumentu. dokumentu. On upuć upućuje uje XML procesor procesor da pronađe pronađe strukturna 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 odno odnose se i koje koje znač značnje nje posje posjedu duju ju.. Na Name mespa space ce ukaz ukazuj ujee na šemu šemu koja koja sadr sadrži ži informacije o dokumentu koji se koristi. • XSLT/xP XSLT/xPath ath vrši transfo transforma rmaciju ciju sadržaj sadržajaa Na Name mespa space ce dok dokume umenta nta u bilo šta, najčešće HTML, omogućavajući na taj način razdvajanje podataka od prezentacije. Sintaksa XML jednos jednostav tavno no omoguć omogućava ava kompju kompjuter teruu da generi generiše, še, čita i provje provjerav ravaa validno validnost st podataka. podataka. XML XML je prihvatljiv prihvatljiv za svakog svakog čovjeka čovjeka.. XML i XTML koriste <,> <,> za kreiranje kreiranje elementa elementa i atributa atributa strukture. 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 do zaustvljanja prikaza dokumenta za razliku od XTML brauzera, koji će jednostavno preskočiti preskočiti tu grešku. grešku. Primjer ispravnog pisanja XML dokumenta Ispravno Ne ispravno Ne ispravno 18 Prof. dr Rade Tanjga Sadržaj. Sadržaj. Tehnologije Web dizajna Sadržaj. Sadržaj. Sadržaj. Sadržaj. Prvi Prvi tag u XML XML dokum dokumen entu tu se naziva naziva "root" element element,, on je roditel roditeljj za sve ostale ostale elemen elemente. te. Svi XML XML dok dokume umenti nti moraju moraju da imaju imaju "root" "root" elemen element,t, tj. glavni 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 Nazivi elementa elementa su CASE SENSITIVE SENSITIVE tj. osjetljivi osjetljivi su na mala i velika slova, slova, tag level 1 IE,NS IE,NSbrauzeri > da dokument zavisi od informacija iz eksternog izvora kao npr. eksterni 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. 19 Prof. dr Rade Tanjga Tehnologije Web dizajna Prazni elementi poput u primjeru: ( Prazni elementi mogu da budu zadati i u sljedećoj sintaksi Elementi određuju prirodu sadržaja kojeg okružuju. XML elementi nisu definisani, vi (progra (programe mer) r) morate morate definis definisati ati sopst sopstven venee XML XML elemen elemente. te. Pomoću Pomoću njih se određu određuje je 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 Pogledajmo primjer XML -a: Ukoliko imamo program koji može da obradi elemente 1.PORUKA Od: Mene Za: Njega Posjeti me opet! Jedn Jednos osta tavn vnim im doda dodava vanje njem m novo novogg elem elemen enta ta u XML XML neće neće se naruš narušiti iti njego njegova va funkc funkcio iona naln lnos ost. t. Prog Progra ram m će i dalje dalje biti biti u stan stanju ju da obra obrađu đuje je elem elemen ente te koje koje smo smo prethodno prethodno definisali definisali i ako smo smo dodali dodali nove nove elemente. elemente. XML XML je proširiv! proširiv! Atributi 20 Prof. dr Rade Tanjga Tehnologije Web dizajna Atributi predstavljaju parove ime-vrijednost koji se nalaze unutar početnog elementa, odma odmahh posl poslij ijee imen imenaa elem elemen enta ta.. Vrije rijedn dnos osti ti atri atribu buta ta mora moraju ju biti biti uvij uvijek ek pod pod navodnicima. Najčešće se upotrebljavaju dvostruki navodnici, zato što nekad i same vrijedno vrijednosti sti atribut atributaa sadrže sadrže nav navodn odnike ike pa u tim slučaje slučajevima vima koristi koristimo mo jednos jednostruk trukee navodnike. Primjer: • • • 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 dokumenti imaju smisla samo ako su dobro formirani formirani i valjani. valjani. Dobro formirani formirani su oni XML dokumenti koji su usklađeni sa osnovnim pravilima sintakse i strukture specifikacije XML 1.0. 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 CSS (Cas (Casca cadi ding ng Style Style Shee Sheets ts)) ili XSLT XSLT (EeX (EeXte tens nsibl iblee Style Style shee sheett Lang Langua uage ge for Transformations) jezika. Ovim tehnikama se XML ustvari konvertuje u HTML prije prikazivanja prikazivanja.. 21 Prof. dr Rade Tanjga Tehnologije Web dizajna 2.4. XHTML (eXtensible Hyper Text Markup Language) eXtensiblee HyperTex HyperTextt Markup Markup Language Language) nastao je sa ciljem da riješi XHTML XHTML (eXtensibl probleme probleme koje je HTML zajedno zajedno sa Web čitačima donijeo. donijeo. XHTML XHTML je identičan 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 kombinovani sa sintaksom sintaksom XML-a. XHTML 1.0 je oficijalna oficijalna preporuka W3C od 26. Januara 2000. god, te predstavlja standard za kreiranje Web dokumenata. Mane HTML-a HTML HTML je bar u poč početk etkuu sadrža sadržaoo jednos jednostav tavnu nu sintaks sintaksu, u, koja je god godina inama ma rasla. rasla. Ta jednostavno jednostavnost st se pretvorila pretvorila u najveću najveću noćnu moru. Ne mogu da se stvore sopstvene sopstvene oznake koje označavaju semantičke odnose unutar sadržaja jer HTML nije proširiv. Priliko Prilikom m automa automatsk tske, e, pou pouzda zdane ne razme razmene ne pod podata ataka ka HTML HTML ne pomaže pomaže.. Ne Nedos dostaje taje podrška podrška strukture strukture u HTML, HTML, provjeravnje provjeravnje sintakse sintakse niti sama svijest svijest o sadržaju. 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: Loš HTML 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. 22... tagova. Svaka karta ima identifikator i naslov. Za formatiranje teksta koriste se, pored... taga, snjedeći tagovi: tagovi:, , ......, m>, strong... trong>,, ... ...,, ..., ..., ... ...,, ...< ..., >, ...< ... all>.. Za ispis ispis tabela tabela koriste koriste se
• 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čn graničnika ika <% %>. %>. ASP naredbe naredbe sadrže sadrže strukture strukture programs programskih kih jezika, jezika, kao kao što su VBScript i JScript. 3.2.5. Java 34 Prof. dr Rade Tanjga Tehnologije Web dizajna Java je istovremeno i platforma i programski jezik. U pitanju je već zrela tehnologija komp kompan anije ije Sum Sum Micr Micros osys yste tems ms,, koja koja je razv razvija ijana na goto gotovo vo isklju isključiv čivoo za Inte Interne rnett programiranje programiranje.. Programsk Programskii jezik Java ima sljedeć sljedećee karakterist karakteristike: ike: • • • • • • Jednostavnost, Objektnu orijentiranost, Distribuiranost, Robustnost, Sigurnost, Arhitekturnu neutralnost, • Portabilnost, • Visoke performanse, • 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 bajtkod (bytecode), (bytecode), koji koji je nazivisan nazivisan od platform platformee i izvršiv u tzv. tzv. Java virtuelno virtuelnojj mašini (JVM) (JVM),, da bi se zatim zatim taj taj bajtk bajtkod od parsi parsira raoo i inter interpre pretir tirao ao unut unutar ar JVM. JVM. Proc Proces es kompilacije se izvršava samo jednom, da bi se bajtkod interpretirao svaki put pri pokretanju pokretanju Java Java progra programa ma (slika (slika 5): MyProgram.java interpreter Klijent kompajler MyProgram.class Slika 5: Kompajliranje i interpretiranje Java programa 35 Prof. dr Rade Tanjga Tehnologije Web dizajna Zahvaljujući Zahvaljujući ovak ovakvom vom konc konceptu, eptu, postaje postaje moguća moguća paradigma paradigma „napiši „napiši jednom, jednom, pokreni pokreni svugdje“: bez obzira na platformu (PC, Macintosh, Solaris,...), ukoliko postoji Java virtuelna mašina – program se može izvršavati na toj platformi. class HelloWorldApp{ pub lic static sta tic vo id main kompajler helloWorldApp.java interpreter Win32 interpreter Solaris interpreter MacOS 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 platforma za Internet Internet razvoj, razvoj, jer se koristeći 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. 36 Prof. dr Rade Tanjga Tehnologije Web dizajna 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). 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). hello.jsp čita http request http response generiše Internet Klijent helloServlet.java Web server izvršava kompajlira helloServlet.class Slika 7: Postupak dinamičkog generisanja servleta Iz JSP kod kodaa moguće moguće je koristi koristiti ti klase klase iz raspolo raspoloživ živih ih Java Java bibliot biblioteka eka,, JavaB JavaBean eanss komponente, Enterprise JavaBeans, pristupati bazama podataka preko JDBC-a itd. Na taj način JSP strane imaju dovoljnu funkcionalnost za gradnju kompleksnih, skalabilnih 37 Prof. dr Rade Tanjga Tehnologije Web dizajna Web aplikacija. Apache Software i Foundation Jakarta Project stoje iza najpoznatije implementacije JSP JSP tehnologije – Tomcat. 3.2.7. .NET Framework 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 trebalo da postane postane nezavisna nezavisna od operativnog operativnog sistema sistema – popu poputt programsko programskogg jezika Java. Java. Postoji Postoji mogućnost mogućnost izrade Windows Windows aplikacija, Web aplikacija, aplikacija, Web servisa, servisa, aplikacija za mobilne uređaje itd, na relativno uniformisan i jednostavan naćčin, uz jaku objektnu orijentaciju. Na slici slici 8 prikazan prikazan je koncept koncept .NET Frame Framework work platforme platforme.. Ispod čitavog framework-a nalaze se sistemski servisi. U trenutnoj implementaciji u pitanju je Win32 API i COM+, COM+, mada teoretski teoretski (još uvijek ne i praktično) praktično) te servise servise može pružati bilo koji operativni sistem. Iznad sistemskih servisa nalazi se najbitniji dio framew framework ork-a, -a, CLR CLR (Commo (Commonn Langu Language age Ru Runtim ntime) e) (adek (adekvar varan an prevod prevod ne pos postoji toji,, 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 framework klase. klase. Ove klase mogu biti instancirane 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 biblioteka i upravljanja upravljanja nitima (threads (threads). ). Programer Programer jednostav jednostavno no naslijedi naslijedi klasu i koristi koristi je – razvoj razvoj aplikacija aplikacija je brz, brz, grešaka grešaka je manje. manje. 38 Prof. dr Rade Tanjga Tehnologije Web dizajna Iznad klasa nalaze se posebne kolekcijeobjekata za rad sa podacima (ADO.NET) i XMLXML-om om.. Dalje alje imam imamoo podr podršk škuu za dva dva (zas (zasad ad)) osno osnovn vnaa tipa tipa apli aplika kaci cija ja:: za tradicionalne klijente koji koriste Windows Forms, kombinaciju Visual Basic i MFC 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 programski jezik jezik da bi se mogao mogao nazvati nazvati .NET .NET kompatib kompatibilnim. ilnim. V B.N ET C# Jscript.N ET ... Common Language Specification (CLS) ASP.NET Web Forms Windows Forms XML Web Services ADO.NET and XML T E N . o i d u t S l a u s i V .NET Framework Framework Clesses Common Language Runtime Windows COM + Services Slika 8: .NET Farmework Za razv razvoj oj se mogu mogu koris koristit titii razl različi ičiti ti prog progra rams mski ki jezi jezici: ci: Visu Visual al Basic Basic.N .NET ET,, C# 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 39 Prof. dr Rade Tanjga Tehnologije Web dizajna bitan zajednički zajednički koncept koncept jeste CTS (Common (Common Type Syustem) Syustem) – zajednički zajednički sistem tipova. tipova. Svi .NET kompatibiln kompatibilnii jezici koriste iste tipove podataka, podataka, koji su 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 speci specifič fičan an za oper operat ativ ivni ni sist sistem em.. Umje Umjest stoo toga toga,, vrši vrši se komp kompaj ajlir liran anje je u MSIL 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 algorita algoritamski mski isti isti programi programi u različitim različitim jezicima jezicima generišu generišu približno isti MSIL. MSIL. Kompajliranje Izvorni kod Kompajl Kompajler er .NET kompatibilnog jezika jezika Kompajl Kompajler er .NET kompatibilnog jezika jezika JIT kompajler Prirodn Prirodnii (nativ (native) e) kod Izvršavanje 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 sistem zaista zaista može može izvršiti izvršiti progra program. m. Praktič Praktično, no, faza faza kompaj kompajlira liranja nja je ista za sve platforme; platforme; za druge operativne operativne sisteme sisteme )ili novi hardver) potrebno potrebno je obezbijediti obezbijediti samo izvršnu fazu za to okruženje. 40 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 postavljenim pred savre savremene mene Web Web aplikac aplikacije. ije. Loše strane ASP su: • piše se pomoću pomoću skript jezika (najčešće (najčešće VBScript VBScript ili JScript) JScript) koji su inter interpre pretir tiran ani, i, a ne komp kompaj ajlir liran ani. i. Manjk Manjkav avos osti ti inte interpr rpret etira irani nihh jezik jezikaa 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. praktično. Kompliko Komplikovaniji vaniji kod je često značio i drastično drastično veće veće izvorne izvorne datotek datoteke. e. • U ASP-u se kodiraju i najjednostavnije funkcije (na primjer, validacija polja obra obraza zaca ca... ...). ). ASP. ASP.NE NET T je znat znatno no komf komfor ornij niji, i, zahv zahval alju jujuć jućii serve servers rskim kim kontrolama – dosta koda je već napisano, a razvijaoci ga samo koriste. • ASP ne riješav riješavaa problem problemee kompa kompatibi tibilno lnosti sti uređaja uređaja (palmto (palmtop-o p-ovi, vi, mobiln mobilnii telefoni ...). ASP.NET kontrole su dovoljno inteligentne da na osnovu HTTP zahtjeva same otkrivaju šta se nalazi nalazi sa druge strane, i „emituju“ odgovarajući kod. • ASP je teško teško proširi proširiv, v, zatvore zatvorenn sistem sistem,, bez bez otvore otvorene ne mogućnos mogućnosti ti pod podrške rš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 Olakša šava vanje nje insta instala laci cije je Web Web aplik aplikac acija ija (XCO (XCOPY PY De Deplo ploym ymen ent) t) – XML XML konfiguracijska datoteke. Ranije veliki problemi sa COM komponentama kod three-ti three-tier er Web Web aplikac aplikacija ija zbog zbog neo neopho phodne dne registr registraci acije je na serve serveru; ru; sada sada – Shadow Copying komponentie koje se nalaze u bin folderu u okviru vertuelnog direktorijuma (to je funkcija CLR-a; nema zaključavanja komponenti koje se 41 Prof. dr Rade Tanjga Tehnologije Web dizajna 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 problematičnih ASP.NET ASP.NET aplikacija, aplikacija, otkrivanje otkrivanje zahtjeva zahtjeva na beskonačn beskonačnom om č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. Kompajler strane Parsira Zahtjev Generiše ASP.NET stranaстрана DLL Klasa PAGE Odgovor Instancira Slika Slika 10: 10: Kreiran Kreiranje je DLL-a: DLL-a: Priliko Prilikom m prvog prvog zahtje zahtjeva va klijent klijentaa za određe određenom nom aspx 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 zahtj zahtjev evii za stra strano nom m (čak (čak i nako nakonn rest restart artov ovan anja ja Web Web serv server era) a) zado zadovo volja ljava vaju ju se instanciranjem generisane klase i zahtjevom da se strana vizualizira. Rezultat su odlične performanse performanse,, a cijena cijena – nešto nešto malo malo prostora prostora na na disku disku za DLL-ove. DLL-ove. Kao što JSP strane mogu da pozivaju sve ranije napisane Java klase (uključujući i JavaBe JavaBeans ans kompon komponent ente, e, JDBC JDBC ...), ...), cjelok cjelokupn upnaa .NET .NET bibliot bibliotek ekaa klasa klasa je dostup dostupna na ASP.NET stranama. Pristup podacima se vrši ADO.NET bibliotekom klasa. 42 Prof. dr Rade Tanjga Tehnologije Web dizajna 4. XML Web servisi Veliki problem u kompleksnim heterogenim hardverskim i softverskim okruženjima jeste pove povezivan zivanje je raznorodnih raznorodnih aplikacija aplikacija i njihova njihova međusobna međusobna razmjena razmjena poda podataka. taka. Paradi Paradigma gma XML XML Web Web servisa servisa omoguć omogućila ila je snažan snažan integra integrativn tivnii mehan mehaniza izam, m, koji 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 tehnologije koja stoji iza realizacije realizacije komponenti. komponenti. Pošto su Web protokoli protokoli potpuno potpuno nezavisni nezavisni od proizvođača, proizvođača, platforme platforme ili jezika, rezultat rezultat upotrebe upotrebe servisa 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 lakše korište korištenje nje pos postoje tojeće će infrast infrastruk rukture ture starije starije genera generacije cije (legac (legacyy system systems) s) sa novim tehologijama, • veća fleksibilnost i lakša nadogradnja sistema, bez potrebe reinženjeringa u slučaju promjene promjene obima obima posla, posla, • uštede u implementaciji. 4.1. Koncepti XML Web servisa 43 Prof. dr Rade Tanjga Tehnologije Web dizajna 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 podržavaju B2B (Business-to-B (Business-to-Busine usiness), ss), D2D (Department (Department-to-De -to-Departme partment) nt) i P2P (Peer-to-Peer) interakcije. Osnovni koncepti Web servisa uključuju: • pristup pristup servisima servisima preko Interneta, Interneta, uz komunikaci komunikaciju ju preko preko Web protokola protokola koji su nezavis nezavisni ni od platfor platforme, me, na taj način način omogu omogućav ćavaju ajući ći integra integraciju ciju hetero heteroge genih nih okruženja, • stan standa dard rdee koji koji defin definišu išu inter interfe fejs js i komu komunik nikac acio ione ne prot protok okol olee koriš korište tene ne 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 implem implement entiran iranee pomoću pomoću Web Web servisa servisa na taj način način dob dobijaj ijajuu na fleksib fleksibilno ilnosti sti i skalabilnosti. Web Web serv servisi isi koris koriste te tehn tehnol olog ogije ije i stan standa dard rdee koji koji su već već u širok širokoj oj upot upotre rebi, bi, što omogućava bezbolan prelazak na servis-orijentisane aplikacije, uz minimalni rizik i troškove. 4.2. Standardi Web servisa 44 Prof. dr Rade Tanjga Tehnologije Web dizajna Web servisi su izgrađeni na otvorenim i već široko prihvaćenim standardima kao što je HTTP HTTP i XML. XML. Te stan standa dard rdee održ održav avaj ajuu neza nezavi visn sne, e, nepr neprof ofit itne ne orga organi nita taci cije je za standardizaciju, koje imaju članove iz raznih tehnoloških sfera. Osnovne grupe koje propisuju propisuju standarde standarde vezane vezane za Web servise servise jesu: • W3C W3 C (Wor (World ld Wide Wide Web Web Co Cons nsor ortiu tium): m): najve najveći ći broj broj širok širokoo prihv prihvać aćen enih ih Web Web standarda potiče od obog tijela (http://www.wc3.org ( 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 Osim XML-a koji je već opisa opisan, n, standard standardii koji koji stoje stoje iza XML XML Web Web servis servisaa jesu: SOAP, WSDL i UDDI. Direktorijum http://uddi.microsoft http://uddi.microsoft.org .org Klijent pok ušava sa lociraXML Web servis servis URL veza na discovery discovery dokument Otkrivanje http://contoso.com/default/disco UDDI (ili (ili drugi Directoy Directoy servisi) Klijentt raži discovery discovery dokument Šalje se discovery discovery dokument Klijent Opis http://contoso.com/MyWebService.WDSL Klijent traži opis servisa Šalje se opis servisa XML Web servisi Klijent upućujeXML zahtjev Šalje se odgovor servisa Obrada Slika 11: Korištenje XML Web servisa 45 Prof. dr Rade Tanjga Tehnologije Web dizajna 4.3 SOAP: Simple Object Access Protocol SOAP je standard koji predstavlja laki „koverat“ koji sadrži poruku na putovanju od servis servis provaj provajder deraa do korisni korisnika ka i oba obatno tno.. To je standa standard rd baziran baziran na XML-u XML-u,, koji koji propisuje propisuje sadržaj sadržaj poruke poruke i način njene obrade, obrade, te nudi način transporta transporta za razmjenu razmjenu poruka. poruka. Pored Pored ovih funkcija funkcija,, SOAP sadrži sadrži i skup skup pravila pravila za izražava izražavanje nje tipova tipova podataka podataka defin definisa isanih nih u aplik aplikac aciji iji,, kao kao i konve konvenc nciju iju za pred predst stav avlja ljanje nje udal udalje jeni nihh pp ppoz oziva iva proceduram proceduramaa (RPC , Remote Remote Proce Procedure dure Calls). Calls). Dijelovi SOAP protokola su: • SOAP omotnica SOAP Envelope) – opisuje sadržaj poruke i kako je obraditi, uz dodatn dod atnee pojedi pojedinos nosti ti kao što su bezbje bezbjedno dnosne sne informa informacije cije ili krajnje krajnje odredi odredište šte poruke, poruke, • SOAPtransportni okvir (SOAP Transport Binding Framework) – apstraktni radni okvir za razmjenu SOAP omotnica korištenjem protokola na kojima se zasniva prenos, prenos, uključujuć uključujućii HTTP HTTP ili druge druge vrste transportnih transportnih protokola. 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 SOAP RPC RPC reprez reprezent entaci acija. ja. – kon konven vencija cija za predst predstavl avljanj janjee uda udaljen ljenih ih poz poziva iva proceduram procedurama, a, kao i odgovora odgovora tih distribuiran distribuiranih ih dijelova dijelova aplikac aplikacija. ija. Najkorištenija Najkorištenija SOAP specifikacija specifikacija jeste verzija 1.1. protokola, koja je dio WS-I Basic Profile dokumenta dokumenta.. SOAP v.1.2 je nedavno nedavno ratifikovan ratifikovan i trebalo trebalo bi da postane čiroko čiroko korišten. 4.4. WSDL: Web Service Description Language 46 Prof. dr Rade Tanjga Tehnologije Web dizajna WSDL je XML format za opisivanje mrežnih servisa kao interakcije interakcije skupa pove povezanih zanih 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 konk konkre retni tnim m mrež mrežnim nim prot protok okol olom om i form format atom om poru poruka ka.. Te su poru poruke ke najče najčešće šće povezane povezane SOAP protokolom protokolom i HTTP HTTP transportom, transportom, ali to nije obav obavezno. ezno. Apstraktna Apstraktna priroda WSDL-a WSDL-a za opis servisa servisa omogućava omogućava visoku visoku fleksibilnost fleksibilnost opisa kompleksn kompleksnih ih 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 XML Shema Shema Definition, Definition, XSD), • • • • poruka poruka – apstrakt apstraktna na tipizirana tipizirana definicija definicija podatak podatakaa koji se prenose 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 definisana kao kombinacija kombinacija tip pove povezivan zivanja ja i mrežne mrežne adrese, • servis – kolekcija povezanih krajnjih tačaka. 4.5. UDDI: Universal Description Discovery and Integration 47 Prof. dr Rade Tanjga Tehnologije Web dizajna UDDI UD DI pred predst stav avlja lja skup skup prot protok okol olaa i javn javnii dire direkt ktori orijum jum za regi regist stra racij cijuu i pret pretrag raguu raspoloživih Web servisa. Može se reći da UDDI predstavlja „žute strane“ (yellow pages), pages), oglasnik oglasnik na kojem kojem se nalazi nalazi spisak spisak servisa servisa koji koji su raspolo raspoloživi živi u datoj datoj mreži. 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. promjenama. Postoje Postoje i komercijalni komercijalni proizvodi proizvodi (Web Service Service Manageme Management nt alati), koji implementira implementiraju ju dijelove dijelove funkcionaln funkcionalnosti osti UDDI-ja, UDDI-ja, uz doda dodatne tne usluge usluge poput inspekcije Web servisa. 48 Sign In
Our partners will collect data and use cookies for ad personalization and measurement. Learn how we and our ad partner Google, collect and use data. Agree & close
|