tehnologije za razvoj web aplikacija

32
JU „ I Srednja Škola“ Cazin Mart, 2014 II ET SEMINARSKI RAD IZ INFORMATIKE Tema: Tehnologije za razvoj Web aplikacija 1

Upload: aldis-becirevic

Post on 24-Nov-2015

115 views

Category:

Documents


3 download

TRANSCRIPT

JU I Srednja kola CazinMart, 2014II ET

SEMINARSKI RAD IZ INFORMATIKETema: Tehnologije za razvoj Web aplikacija

Aldis Beirevi prof. Adnan RekiSadraj:Uvod: Tehnologije za razvoj Web aplikacija1. Protokoli: HTTP protokol, statike i dinamike Web stranice2. Markerski jezici2.1 SGML (Standard Generalised Markup Language)2.2 HTML (Hyper Text Markup Language2.3 XML (eXtensible Markup Language)2.4 XHTML (eXtensible Hyper Text Markup Language)2.5 WML (Wireless Markup Language)3. Jezici i tehnologije razvoja dinamikog Web-a3.1.1 Skript jezici3.1.2 VBScript3.1.3 Perl3.1.4 Python3.2 Web tehnologije3.2.1 Web tehnologije3.2.2 ISAPI (Intrenet Server Application Programming Interface)3.2.3 PHP3.2.4 ASP (Active Server Pages)3.2.5 Java3.2.6 Java Server Pages (JSP)3.2.7 .NET Framework3.2.8 ASP.NET4. XML Web servisi4.1 . Koncepti XML Web servisa4.2 Standardi Web servisa4.3 SOAP: Simple Object Access Protocol4.4 WSDL: Web Service Description Language4.5 UDDI: Universal Description Discovery and Integration

Uvod: Tehnologije razvoja Web aplikacijaTokom devedesetih godina prolog vijeka mnogobrojne sfere ljudske djelatnosti su se veoma brzo preselile na mreu svih mrea Internet. Jedna od kljunih aktivnosti poslovanje postaje generator (motiv) razvoja tehnologija za Internet. Rjeavajui zahtjeve za brzinom, skalabilnou i bezbjednou, bez kojih je nemogue zamisliti savremeno poslovanje, informatike tehnologija je morala velikom brzinom nalaziti odgovore na nove izazove.Internet je preao vremenski kratak, ali tehnoloki dugaak put od vojne tehnologije,zatim novotarije sa kojom su se zabavljali u naunim krugovima, preko .COM groznice krajem devedesetih godina, sve do dananjeg pouzdanog medija za nebrojene primjene. Zbog toga se na ovom mjestu bavimo aktualnim tehnologijama za funkcioniranje i razvoj Web aplikacija.1. Protokoli: HTTP protokol, statike i dinamike Web stranice Osnovni stek (dio) protokola koji se koristi na Internetu jeste TCP/IP (TransmissionControl Protocol / Internet Protocol). Kao podloga najkoritenijeg 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, iobezbjeuje prenoenje informacija izmeu klijenta, koji zahtijeva informacije, iservera, koji odgovara na postavljene zahtjeve. Web ita klijenta alje zahtjev (HTTPrequest) ka Web serveru. Kad dobije taj zahtjev, Web server provjerava svojaspremita datoteka da bi pronaao stranicu koja je traena. Ako je pronae, pakujeHTML (HyperText Markup Language) kod sadran u stranici (koristei TCP), adresira pakete na ita (pomou HTTP) i vraa ih u mreu. Ako server ne moe da pronaetraenu datoteku, generie sopstveni HTML sa kodom greke i porukom.Web je u poetku svog razvoja funkcionisao upravo na navedeni nain: postojao jeiskljuivo kao statiki, tj. nisu postojale tehnologije koje bi uzele u obzir informacijekoje su pristigle od korisnika i na osnovu njih generisale odgovor. Proces objavljivanjainformacija statikim Web stranama svodio se na sljedee korake (slika 2.):1. Autor pie 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) vraa se itau,5. ita obrauje HTML i prikazuje stranu.Mogunosti statikog Web-a nisu bile naroito velike: HTML strane jesu nosilac informacija, ali onih koje se ne mijenjaju zavisno od konteksta: te informacije su uvijek iste. Oigledno je bilo neophodno da se doe do odreenog stepena programabilnosti naWeb-u, tj. da se razviju tehnologije koje e omoguiti vei stepen interaktivnosti odstatikog Web-a.Dinamike Web strane se zasnivaju na principu da se HTML kod ne stvara sve dok korisnik ne poeli da vidi Web stranu.To dinamiko stvaranje strana omoguuje da one budu prilagoene korisnikovim zahtjevima, da zavise od prethodnih akcija korisnika,od vremena i mjesta kad je pristupio lokaciji, od njegovog identiteta i specifinih potreba, Pojava dinamikog Web-a dovela je i do mogunosti da se Internet iskoristikao medij za elektronsko poslovanje, uz uvaavanje svih njegovih specifinosti.Proces objavljivanja informacija dinamikim Web stranama ima sljedee korake (slika3.):1. Autor pie instrukcije (program, klasu, skript..., zavisno od tehnologije),2. Klijent daje HTTP zahtjev za Web stranu,3. Web server locira datoteku sa instrukcijama, 4. Web server obrauje (izvrava) instrukcije da bi stvorio HTML (interpretira skript,instancira klasu, uitava program...),5. HTML tok vraa se itau,6. ita obrauje HTML i prikazuje stranu.Razlika izmeu statikih i dinamikih Web strana konceptualno je oigledno veomamala: u oba sluaja imamo priblino sline korake u dobavljanja sadraja od servera, i uoba sluaja rezultat uspjeno izvrenog HTTP zahtjeva jeste HTML koji se prikazuje uWeb pretraivau klijenta. Jedina i najbitnija razlika je korak u kojem se (koddinamikih Web strana) na serveru vri programska konstrukcija HTML-a. Postojerazliiti naini za postizanje ovog koraka, jer su se tokom vremena razvile mnogobrojnetehnologije za razvoj Web aplikacija. Neke od tih tehnologija prikazaemo ovdje.

2. Markerski jezici2.1 SGML (Standard Generalised Markup LanguageMeunarodna organizacija za standardizaciju - ISO je 1986. godine objavila SGML jezik kao odgovor na potrebu standardizacije podataka. Ovaj jezik se moe koristiti zasve tipove dokumenata koji su pisani u bilo kojem jeziku i koji sadre bilo koju brstu podataka. Opti cilj SGML je da omogui da se dokumenti razmjenjuju i procesiraju namnogim raunarskim sistemima i na razne naine, odnosno da njihova razmjena i procesiranje nisu zavisni od platforme. Osnovna osobina SGML jezika je da dijelidokument u strukturu i tip sadraja, to nije povezano sa tsrukturom dokumenta injegovim aktuelnim sadrajem.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 odreuje koji se karakteri i znaci interpunkcije pojavljuju u aplikaciji,DTD (Document Type Definition), koji definie sintaksu markerskihkonstrukcija,Specifikacije koja definie semantiku markerskog jezika, kao i sintakse zabranekoje ne moe da definie DTD,Instance dokumenata koje sadre podatke i markiranje. Svaka instanca imareference na DTD koji se koristi za njenu interpretaciju.Moda se najbolje SGML jezik moe definisati objanjavajui pojedine pojmove kojisu ukljueni u njegov naziv:StandardSGML je internacionali standard (Standard) koji objanjava kako se dokument moerazdvojiti na dva dijela, tekst i dio koji opisuje strukturubez obzira na referencu uodnosu na neki partikularni sistem.Standardizacija jezika omoguava komunikaciju na internacionalnof osnovi jer to nijesingularni sistem ili tip softvera koji zahtijeva itanje jezika.

Opti

SGML je opti (Generalized) jezik jer su njegovi dokumenti markirani na neutralannain i pohranjeni u neutralnoj formi. Ove karakteristike jezika su detaljno naznaenekako slijedi: Nezavisnost od ureaja; dokumenti nisu vezani niti za jedan poseban hardver; Nezavisan od sistema; jezik nije specifinost nekog posebnog sistema; Nezavisan od aplikacije; jezik moe biti primjenjen na razne dokumente od jednostavnih do veoma sloenih; Nezavisnost od jezika; kako je on standard, jezik se moe koristiti irom svijetaMarkiranje

SGML je jezik za markiranje (Markup). Markiranje moe biti definisano kaoinformacija koja je dodata tekstu, a koja se odnosi na nain koako se on procesira iformatira. Markiranje se moe predstaviti ako se zamisli izdava koji prirpema ioznaava (markira) rukopis kao uputstvo tamparu kako ga treba prelomiti za tampu.

Jezik

SGML je jezik (Language) je metajezik (to znai da ima sintaksu ali nema semantiku)za neutralno predstavljanje strukture dokumenata. SGML je takoe, sposoban da opie isimbole i zbog toga nije ogranien samo na tekstualne dokumente.

SGML konstrukti koriteni u HTML-u

Entiteti su numerika ili simbolika imena za karaktere koji se mogu uvrstiti u HTMLdokument. Oni su korisni kada alat koji se koristi ne prua mogunost unosa nekogkaraktera. Entiteti poinju ta (&), a zavravaju sa (;) (na primjer: za razmak," za navodnik itd)

SGML definie elemente koje predstavljaju strukture ili eljeno ponaanje Element seobino sastoji od tri dijela: startni tag, sadraj i zavrni tag. Startni tag se oznaava, gdje je element-name naziv elementa. Zavrni tag se predstavlja sa. Na primjer,Sadraj ovog taga je preformatirani tekst.

Neki HTML elementi nemaju sadraj. Na primjer, BR tag nema sadraj jer on pokazujekada se linija teksta zavrava, a dalji sadraj se prebacuje u novu liniju. Takvi praznitagovi nemaju zavrne tagove.

Vano je napomenuti da elementi nisu isto to i tagovi. Na primjer, head element jeuvijek prisutan, iako ni poetni na zavrni tagovi nisu prisutni u dokumentu.

Elementi mogu imati pridruene osobine koje se nazivaju atributi. Atributima se mogudodijeliti vrijednosti. Atribut i vrijednost se nalaze ispred oznake za kraj poetnog taga(>). Jedan element moe imati vie atributa, a njihov tedoslijed nije bitan. Na primjer, H1 element moe da izgleda ovako:Na primjer, H1 element moe da izgleda ovako:Ovo je centrirani naslovSGML zahtijeva da se sve vrijednosti atributa oznae sa () ili sa (). Vrijednosti semogu sastojati od slova ( a-z i A-Z), brojeva (0-9), povlaka (ASCII decimalno 45) itaaka (ASCII decimalno 46).

HTML komentari imaju snjedeu sintaksu:

Mane HTML-aHTML je bar u poetku sadrao jednostavnu sintaksu, koja je godinama rasla. Ta jednostavnost se pretvorila u najveu nonu moru. Ne mogu da se stvore sopstveneoznake koje oznaavaju semantike odnose unutar sadraja jer HTML nije proiriv.Prilikom automatske, pouzdane razmene podataka HTML ne pomae. Nedostaje podrka strukture u HTML, provjeravnje sintakse niti sama svijest o sadraju. Webstranice se satalno pomjeraju, a Webmasteri ne mogu da idu u korak sa promjenamaURL-ova. tj. problem je to HTML nema koncepciju centralne baze linkova.

3. Jezici i tehnologije razvoja dinamikog Web-aAplikacije za Web se mogu pisati u raznim programskim jezicima, od klasinih (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 kaotehnologija koristi itav niz jezika poput C/C++-a, PERL-a, TCL-a...; ASP tehnologijakoristi JScript ili VBScript, Java tehnologija koristi Java programski jezik itd.). Ovdjeemo najprije dati kratak pregled skript jezika (s obzirom na to da je njihova prvobitnanamjena bila klijentsko ili serversko skriptovanje i da su nastali paralelno saekspanzijom dinamikog Weba), a zatim emo se osvrnuti na danas vodee Webtehnologije.

3.1. Skript jezici3.1.1. JavaScriptJavaScript je jezik ija je sintaksa slina programskom jeziku Java, i na tome se gotovosva slinost i zavrava. JavaScript je razvijen od strane kompanije Nestcape podkodnim imenom Mocha, da bi kasnije bio preimenovan u LiveScript i na kraju konanou JavaScript. Jezik je iroko prihvaet i standardizovan pod imenom ECMAScript, a podrka za njega ugraena je u sve novije brauzere. Za razliku od Java, koji predstavljaobjektno orijentisan programski jezik visokog nivoa i koji se izvrava iskljuivo unutar Java virtuelne maine (JVM), JavaScript programi (skriptovi) su obino klijentskiskriptovi. Oni su ugraeni u HTML stranice, i izvravaju se u brauzeru klijenta.3.1.2. VBScriptVBScript je podskup Visual Basic programskog jezika. Koristi se u svrhe slineJavaScript-u, kao klijentski skript koji se izvrava u brauzeru, s tim to je podraniskljuivo od strane Microsoft-a i pretraivaa MS Internet Explorel. Uz pomo ovog jezika i Windows Scripting Host, unutar kojeg se izvravaju programi, mogue jenapisati skriptove koji rjeavaju odreene administrativne probleme u Windowsoperativnim sistemima (dodavanje novih korisnika, izmjena prava, rad sa diskovima, paak i automatizaciju rada sa MS Office aplikacijama itd). Poto predstavlja pojednostavljeni skup VBasic naredbi, mnogo je jaki i jednostavniji za uenje odJavaScript-a, ali je znatno manje zastupljen to se tie klijentskog skriptovanja, jer nijetoliko moan i ima problema sa kompatibilnou kod korisnika koji ne koriste InternetExplorer. Tehnologija koja je proslavila ovaj skripting jezik jeste ASP, s tim da se uASP-u VBScript koristi kao podrazumijevani jezik za razvoj serverskih (a neklijentskih) skriptova.Kao primjer navodi se VBScript koji se izvrava unutar WindowsScripting Host-a: podie se aplikacija MS Word bez korisnikog interfejsa, kreira senova datoteka, umee se tekst i datoteka se snima na disk:Dim MS Word, WSHShellSet 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.FileCloseJo jedna prednost VBScript-a je prirodno i jednostavno koritenje ActiveX objekata,to se vidi i na gornjem primjeru.3.1.3. PerlTo je akronim izraza Practical Extruction and Report Language i predstavlja jedan odnajpopularnijih jezika za razvoj dinamikog Web-a. Perl je kreirao Larry Wall 1987.godine. Trenutna verzija nosi oznaku 5, i izdata je jo 1994. godine, sa podvarijantom5.8 koja se pojavila 2002. godine. Perl je preuzeo najbolje osobine jezika poput C, awk,sed, sh i BASIC. Posebno je moan u oblasti manipulacije tekstom, uz vrlo brz razvojWeb aplikacija, to ga je uinilo jako rasprostranjenim. Jo jedna velika prednost Perl-a jeste CPAN (Comprehesive Perl Archive Network), distribuirana arhiva sa preko 2000modula koji pokrivaju najrazliitije programerske zadatke.Perl je skript jezik u kojem se najee razvijaju CGI aplikacije, tako da se vrlo esto pri prominjanju ovog jezika misli na cjelokupnu CGI Web tehnologiju, to je pogreno.3.1.4. PythonPredstavlja interpretirani, interaktivni, objektno-orijentisani programski jezik, nastao1991. godine. Ukljuuje podrku za module, dinamiko tipiziranje, dinamike tipove podataka veoma visokog nivoa, i klase. Python kombinuje veliku mo sa veoma janomsintaksom, Mogue je pisati proirenja ovog jezika u C ili C++, mada se sam koristi kao jezik za proirenje za aplikacije kojima je potreban programabilni intefejs. Konano,Python je portabilan i raspoloiv za razliite Unix platforme, za Macintosh i PCraunare pod DOS-om, O/2 ili Windows-om. Oblasti primjene su veoma iroke, poevi od procesiranja stringova, preko programiranja vezanog za Internet protokole(HTTP, FTP, SMTP, XML/RPC, POP, IMAP, CGI programiranje), softverskoginenjerstva, do programiranja interfejsa operativnih sistema (sistemski pozivi, fajl-sistemi, TCP/IP soketi).Danas su u upotrebi tri implementacije Python-a:Python (originalna inapisana u C-u, trenutno je aktuelna verzija 2.2),Jython (implementacija za Java virtuelnu mainu),Python.NET (najnovija vetzija napisana za Common Language Runtime virtuelnumainu .NET aplikativnog okvira kompanije Microsoft.Pojedini dijelovi Yahoo! servisa (Yahoo!Groups i Yahoo!Maps) intenzivno koristePython (recimo, Yahoo!Groups kolekcija Internet mailing lista koja je isto dinamika,sastoji se od 180.000 linija Python koda i u stanju je da poanje oko 200 poruka usekundi koristei jedan Pentium raunar na 400MHz!) , a neki Google bot-ovi, Webspider-i i dijelovi pretraivaa su takoe napisani u ovom jeziku. Zope korporacijarazvila je aplikativni server visokih mogunosti koristei Python kao besplatno rjeenje.PHPNajpopularniji opensource nain razvoja Web aplikacija dananjice jeste PHP, programska platforma i jezik interesantnog rekurzivnog naziva (PHP je skraenica odPHP: Hypertext Preprocesor). To je programski jezik koji se dodaje u HTML kodstrane (slino ASP nainu skriptovanja), i po svojoj sintaksi slian je jezicima C, Java iPerl. PHP omoguava generisanje Web strane u vrijeme izvravanja kada ita klijenta pozove PHP stranu, Web server alje zahtjev PHP procesoru. Procesor itadokument koji ita eli da preuzme, i izvrava PHP iskaze obuhvaene oznakama za poetak () PHP skripta. Na taj nain PHP procesor ispisujedinamiki generisani HTML u memoriju Web servera koji, zatim, takav sadraj prosljeuje klijentu.PHP znatno olakava pristup brojnim bazama podataka, a najprirodnije sarauje sadrugim opensource rjeenjem, RDBMS serverom MySQL. Podrava rad sa protokolima IMAP, POP3, NNTP i HTTP, a moe da koristi prikljuke za rad sadrugim TCP/IP protokolima. Moe se koristiti na razliitim serverskim platformama(Linux, FreeBSD, Windows gdje se na IIS instalira kao ISAPI dodatak). Popularnost je stekao zahvaljujui jednostavnosti, cijeni i izuzetno bogatoj dokumentaciji. Loastrana (kao i kod ASP-a) jeste izmjean HTML i PHP kod, koji je teko odravati.Funkcionalni i prezentacioni dio Web aplikacije su na ovaj nain isprepleteni i tekoodvojivi.

ASP (Active Server Pages)ASP je, slino PHP-u, tehnologija koja omoguava programsku konstrukciju HTMLstrana nepsredno pred njihovu isporuku itau. Microsoft je zvanino objavio ASP1996. godine pod ifrom Denali, a verzija ASP 1.0 bila je na tritu koncem 1996.godine. Poetkom 1997. godine (mart) ASP je ugraen u IIS i postaje znatnorasprostranjeniji. ASP ne zavisi od konkretnog klijenta, odnosno itaa, jer secjelokupan kod izvrava na serveru. Tu imamo sljedee prednosti, koje vae i za ostaleserverski orijentisane tehnologije:Programi se mogu izvravti u programskom jeziku koje brauzer ne podrava,Mogunost programiranja dinamikih Web aplikacija nezavisno od itaa, bez programiranja na strani klijenta Java apletima, DTML-om ili ActiveX-om svi onizahtijevaju odreene itae ili platforme.Dostavljanje itau podataka koji su mu inae nedostupni,Bre se uitava jer do itaa stie samo HTML, a ne neki klijentski kod,Bezbjedniji je programski kod ne moe se vidjeti.Rad u Active Server Pages 3.0 svodi se na pisanje skriptova koji koriste ASP objektnimodel. ASP ima sedam ugraenih (built-in) objekata: Server, Application , Session,Request, Response, ObjectContext, ASPError. Svaki od ovih objekata svojom funkcionalnou pokriva odreeni dio zadataka koje se postavljaju pred ASP kao serversku tehnologiju za razvoj Web aplikacija. Na slici 4 prikazan je nain rada ASP objektnog modela.Jezik kojim se vri serversko skriptovanje moe biti VBScript ili JScript, MS varijantaJavaScript-a. ASP strane su kombinacija tri tipa sintakse: obinog teksta, HTML oznaka i ASP naredbi.

JavaJava je istovremeno i platforma i programski jezik. U pitanju je ve zrela tehnologijakompanije Sum Microsystems, koja je razvijana gotovo iskljuivo za Internet programiranje. Programski jezik Java ima sljedee karakteristike:Jednostavnost,Objektnu orijentiranost,Distribuiranost,Robustnost,Sigurnost,Arhitekturnu neutralnost,Portabilnost,Visoke performanse,Dinaminost iMogunost razvoja aplikacija sa vie grana (multithreading).

Za razliku od veine programskih jezika koji se ili kompajliraju ili interpretiraju da bise mogli izvravati na raunaru, Java je i kompajliran i interpretiran jezik. Najprije sekompajlerom izvorni kod prevede u meujezik (intemediate language IL) tzv. bajtkod (bytecode), koji je nazivisan od platforme i izvriv u tzv. Java virtuelnoj maini(JVM), da bi se zatim taj bajtkod parsirao i interpretirao unutar JVM. Proceskompilacije se izvrava samo jednom, da bi se bajtkod interpretirao svaki put pri pokretanju Java programa.Zahvaljujui ovakvom konceptu, postaje mogua paradigma napii jednom, pokrenisvugdje: bez obzira na platformu (PC, Macintosh, Solaris,...), ukoliko postoji Javavirtuelna maina program se moe izvravati na toj platformi.Posljedica interpretiranja bez native-code kompajlera jeste kod koji je neto sporijiod kompajliranog. Meutim, savremene Java virtuelne maine u velikoj mjeri anulirajutu prednost klasinog kompajliranja: ukoliko su performanse ranije i bile problem,danas su u tom pogledu klasine i Java aplikacije gotovo izjednaene. Java nije samo platforma za Internet razvoj, jer se koristei ovaj jezik i Java virtuelnu mainu mogunapisati aplikacije za bilo koju namjenu.to se tie pisanja internet aplikacija, moramo razdvojiti dva tipa programa, i to:aplete (applet) koji se izvravaju u klijentskim Java virtuelnim mainama iservlete (servlet) koji se izvravaju na serverima, dok se rezultat njihovog radaalje klijentima.Problem koji je Microsoft imao sa ISAPI-jem (monolitnost dinamikih biblioteka i HTML koji je ugraen u dll, izmjeanost koda i interfejsa) Sun je dobio servletama,tako da je reagovao na slian nain: osmiljena je tehnologija koja znatno olakavaizradu i odravanje dinamikih Web aplikacija Java Server Pages (JSP).

.NET Framework.NET tehnologija (ita se dotNET) predstavlja novi nain razvoja aplikacija za (za sada)za Windows operativne sisteme. .NET vizija nasljeuje Windows DNA tehnologiju zarazvoj 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 jezikaJava. Postoji mogunost izrade Windows aplikacija, Web aplikacija, Web servisa,aplikacija za mobilne ureaje itd, na relativno uniformisan i jednostavan nain, uz jakuobjektnu orijentaciju.Ispod itavog framework-a nalaze se sistemski servisi. U trenutnoj implementaciji u pitanju je Win32 API i COM+, mada teoretski (jo uvijek ne i praktino) te servisemoe pruati bilo koji operativni sistem. Iznad sistemskih servisa nalazi se najbitniji dioframework-a, CLR (Common Language Runtime) (adekvaran prevod ne postoji,najpriblinije bi bilo: zajedniko izvrno okruenje ustvari virtuelna maina za .NET).CLR uitava i izvrava kod napisan na bilo kom jeziku koji moe da bude kompajliranu MSIL (Microsoft Intermediate Language). Dakle, koncept je veoma slian Javi. Kodkoji se na ovaj nain izvrava naziva se upravljanim kodom (managed code).Na CLR se oslanjaju .NET framework klase. Ove klase mogu biti instancirane iz bilokog programskog jezika, i predstavljaju osnovu funkcionalnosti .NET framework-a.Klase pokrivaju veoma veliku oblast, os servisa za pristupanje podacima do mrenih biblioteka i upravljanja nitima (threads). Programer jednostavno naslijedi klasu i koristi je razvoj aplikacija je brz, greaka je manje.Iznad klasa nalaze se posebne kolekcijeobjekata za rad sa podacima (ADO.NET) iXML-om. Dalje imamo podrku za dva (zasad) osnovna tipa aplikacija: zatradicionalne klijente koji koriste Windows Forms, kombinaciju Visual Basic i MFCformi, i za ASP.NET, koji ukljuuje Web forme i Web servise. Iznad ovoga dolazi sedo CLS (Common Language Specification) i konano do razvojnih jezika koji prateCLS. Zajednika jezika specifikacija (CLS) je skup pravila koje mora da zadovolji programski jezik da bi se mogao nazvati .NET kompatibilnim.Za razvoj se mogu koristiti razliiti programski jezici: Visual Basic.NET, C#,JScript.NET..., tanije svaki jezik koji zadovoljava .NET specifikaciju, tj. koji imakompajler za prevoenje u MSIL. Svi jezici su potpuno ravnopravni, jer bi trebalo danjihovi kompajleri generiu problino isti MSIL. Dakle, performanse ne bi trebalo da serazlikuju, to bi konano dovelo do kraja rata programskih jezika. Jo jedan veoma bitan zajedniki koncept jeste CTS (Common Type Syustem) zajedniki sistemtipova. Svi .NET kompatibilni jezici koriste iste tipove podataka, koji su definisani nanivou framework-a, tako da je znatno olakana jezika meuoperabilnost. Prilikom kompajliranja u .NET-u, slino Javi, ne dobijamo odmah prirodni (native) kodspecifian za operativni sistem. Umjesto toga, vri se kompajliranje u MSIL (Majkrosoftov posredni jezik). Ovaj kod nije namijenjen niti jednom operativnomsistemu, i u njega se prevode svi .NET kompatibilni jezici. Dunost jezikih kompajlera je da algoritamski isti programi u razliitim jezicima generiu priblino isti MSIL.Da bi se program izvio, oigledno je potrebno jo rada. Za taj posao zaduen je tzv.Just-In-Time (JIT) kompajler, koji prevodi MSIL u prirodni kod specificiran od straneoperativnog sistema i same maine na kojoj se program izvodi. Tek tad operativnisistem zaista moe izvriti program. Praktino, faza kompajliranja je ista za sve platforme; za druge operativne sisteme )ili novi hardver) potrebno je obezbijediti samoizvrnu fazu za to okruenje.Da bi se program izvio, oigledno je potrebno jo rada. Za taj posao zaduen je tzv.Just-In-Time (JIT) kompajler, koji prevodi MSIL u prirodni kod specificiran od straneoperativnog sistema i same maine na kojoj se program izvodi. Tek tad operativnisistem zaista moe izvriti program. Praktino, faza kompajliranja je ista za sve platforme; za druge operativne sisteme )ili novi hardver) potrebno je obezbijediti samoizvrnu fazu za to okruenje.

ASP.NETASP je zbog svoje velike popularnosti prerastao svoju ulogu, i morao je biti zamijenjentehnologijom (napisanom u jeziku C#) koja e biti u stanju da se izbori sa zahtjevima postavljenim pred savremene Web aplikacije.Loe strane ASP su:pie se pomou skript jezika (najee VBScript ili JScript) koji suinterpretirani, a ne kompajlirani. Manjkavosti interpretiranih jezika sunedostatak jakih tipova i kompajliranog okruenja. ASP keira kod, ali je onipak interpretiran, to vodi do problema sa performansama i skalabilnou.Mijeanje koda i sadraja: iako u poetku smatrano prednou, ipak je mana dvije grupe ljudi (Web dizajneri i programeri) rade na istim datotekama, to nije praktino. Komplikovaniji kod je esto znaio i drastino vee izvorne datoteke.U ASP-u se kodiraju i najjednostavnije funkcije (na primjer, validacija poljaobrazaca...). ASP.NET je znatno komforniji, zahvaljujui serverskimkontrolama dosta koda je ve napisano, a razvijaoci ga samo koriste.ASP ne rijeava probleme kompatibilnosti ureaja (palmtop-ovi, mobilnitelefoni ...). ASP.NET kontrole su dovoljno inteligentne da na osnovu HTTPzahtjeva same otkrivaju ta se nalazi sa druge strane, i emituju odgovarajuikod.Kljuni ciljevi koji se postiu uvoenjem ASP.NET-a:Uklanjanje zavisnosti maina za skriptovanje i omoguavanje da strane budutipski bezbjedne i kompajlirane mnogo bolje performanse.Smanjene koliine koda potrebe za razvoj aplikacije (serverske kontrole).Olakavanje instalacije Web aplikacija (XCOPY Deployment) XMLkonfiguracijska datoteke. Ranije veliki problemi sa COM komponentama kodthree-tier Web aplikacija zbog neophodne registracije na serveru; sada Shadow Copying komponentie koje se nalaze u bin folderu u okviru vertuelnogdirektorijuma (to je funkcija CLR-a; nema zakljuavanja komponenti koje setrenutno koriste jer se zapravo pozivaju sa drugog mjesta, iz kea, a ne saoriginalne lokacije).Bolje rukovanje grekama (automatsko otkrivanje curenja memorije i restart problematinih ASP.NET aplikacija, otkrivanje zahtjeva na beskonanomekanju i mrtvih petlji i njihovo razrjeavanje, skladitenje stanja sesije eksternotako da je mogu restart ASP.NET aplikacija bez gubitka podataka krajenjegkorisnika.Poboljanje performansi: svaka ASP.NET strana je kompajlirana.

Kompajliranje strane nije jeftino i moe da potraje nekoliko sekundi za sloene strane.Ali, kompajliranje se uvijek vri samo jednom za datu .aspx datoteku. Svi naknadnizahtjevi za stranom (ak i nakon restartovanja Web servera) zadovoljavaju seinstanciranjem generisane klase i zahtjevom da se strana vizualizira. Rezultat su odline performanse, a cijena neto malo prostora na disku za DLL-ove.Kao to JSP strane mogu da pozivaju sve ranije napisane Java klase (ukljuujui iJavaBeans komponente, JDBC ...), cjelokupna .NET biblioteka klasa je dostupnaASP.NET stranama. Pristup podacima se vri ADO.NET bibliotekom klasa.

4. XML Web servisiVeliki problem u kompleksnim heterogenim hardverskim i softverskim okruenjima jeste povezivanje raznorodnih aplikacija i njihova meusobna razmjena podataka.Paradigma XML Web servisa omoguila je snaan integrativni mehanizam, kojiomoguava lako dijeljenje podataka izmeu aplikacija i platformi, koristei najboljeosobine komponentnog razvoja softvera i Weba. Koncept XML Web servisa poiva naservisno orijentisanoj arhitekturi (Service-Oriented Architecture, SOA).Servisi su komponente koje su mreno svjesne i predstavljaju funkcionalnost koja selako moe preuzeti, bez potrebe znanja detalja implementacije samih servisa logike, pa ak ni tehnologije koja stoji iza realizacije komponenti. Poto su Web protokoli potpuno nezavisni od proizvoaa, platforme ili jezika, rezultat upotrebe servisa premoWeb usluge jesu aplikacije koje se izuzetno dobro integriu sa ostatkom informacionogsistema preduzea, dovoljno fleksibilne da prate promjene u poslovanju kompanije.Aplikacije koje su dizajnirane pomou ovog koncepta pruaju istu funkcionalnost kaoklasine monolitne aplikacije, uz dodatne prednosti:lake koritenje postojee infrastrukture starije generacije (legacy systems) sanovim tehologijama,vea fleksibilnost i laka nadogradnja sistema, bez potrebe reinenjeringa u sluaju promjene obima posla,utede u implementaciji.4.1. Koncepti XML Web servisaWeb servisi su aplikativni servisi kojima se moe pristupiti koritenjem standardnihWeb protokola. Ovi servisi su primjenjivi na bilo koji oblik mrenog okruenja i podravaju B2B (Business-to-Business), D2D (Department-to-Department) i P2P(Peer-to-Peer) interakcije. Osnovni koncepti Web servisa ukljuuju:pristup servisima preko Interneta, uz komunikaciju preko Web protokola koji sunezavisni od platforme, na taj nain omoguavajui integraciju heterogenihokruenja,standarde koji definiu interfejs i komunikacione protokole koritene uklijent/server komunikaciji,WSDL (Web Services Definition Language, jezik za definisanje Web servisa) kojidodaje apstraktni sloj izmeu implementacije i interfejsa. Distriburane aplikacijeimplementirane pomou Web servisa na taj nain dobijaju na fleksibilnosti iskalabilnosti.Web servisi koriste tehnologije i standarde koji su ve u irokoj upotrebi, toomoguava bezbolan prelazak na servis-orijentisane aplikacije, uz minimalni rizik itrokove.Web servisi koriste tehnologije i standarde koji su ve u irokoj upotrebi, toomoguava bezbolan prelazak na servis-orijentisane aplikacije, uz minimalni rizik itrokove.4.2. Standardi Web servisaWeb servisi su izgraeni na otvorenim i ve iroko prihvaenim standardima kao to jeHTTP i XML. Te standarde odravaju nezavisne, neprofitne organitacije zastandardizaciju, koje imaju lanove iz raznih tehnolokih sfera. Osnovne grupe koje propisuju standarde vezane za Web servise jesu:W3C (World Wide Web Consortium): najvei broj iroko prihvaenih Webstandarda potie od obog tijela (http://www.wc3.org)OASIS:izvor originalne XML specifikacije, donio i standard za UDDI (UniversalDescription, Discovery and Integration)WS-I (Wev Services Interoperability Organization): grupa koja je zaduena zakontrolu interoperavilnosti standarda Web servisa.Osim XML-a koji je ve opisan, standardi koji stoje iza XML Web servisa jesu:SOAP, WSDL i UDDI.4.3 SOAP: Simple Object Access ProtocolSOAP je standard koji predstavlja laki koverat koji sadri poruku na putovanju odservis provajdera do korisnika i obatno. To je standard baziran na XML-u, koji propisuje sadraj poruke i nain njene obrade, te nudi nain transporta za razmjenu poruka. Pored ovih funkcija, SOAP sadri i skup pravila za izraavanje tipova podatakadefinisanih u aplikaciji, kao i konvenciju za predstavljanje udaljenih ppoziva procedurama (RPC , Remote Procedure Calls).Dijelovi SOAP protokola su:SOAP omotnica SOAP Envelope) opisuje sadraj poruke i kako je obraditi, uzdodatne pojedinosti kao to su bezbjednosne informacije ili krajnje odredite poruke,SOAPtransportni okvir (SOAP Transport Binding Framework) apstraktni radniokvir za razmjenu SOAP omotnica koritenjem protokola na kojima se zasniva prenos, ukljuujui HTTP ili druge vrste transportnih protokola.SOAP okvir za serijalozaciju (SOAP Serialization Framework) skup pravila zaizraavanje instanci aplikativno definisanih tipova podataka, kao to su brojevi ilitekst,SOAP RPC reprezentacija. konvencija za predstavljanje udaljenih poziva procedurama, kao i odgovora tih distribuiranih dijelova aplikacija. Najkoritenija SOAP specifikacija jeste verzija 1.1. protokola, koja je dio WS-I BasicProfile dokumenta. SOAP v.1.2 je nedavno ratifikovan i trebalo bi da postane irokokoriten.

Najkoritenija SOAP specifikacija jeste verzija 1.1. protokola, koja je dio WS-I BasicProfile dokumenta. SOAP v.1.2 je nedavno ratifikovan i trebalo bi da postane iroko koriten.

4.4. WSDL: Web Service Description LanguageWSDL je XML format za opisivanje mrenih servisa kao interakcije skupa povezanihkrajnjih taaka, koje meusobno komuniciraju porukama koje sadre informacije iliopise pozivanja procedura. Operacije i poruke su opisane apstraktno, a zatim povezanesa konkretnim mrenim protokolom i formatom poruka. Te su poruke najee povezane SOAP protokolom i HTTP transportom, ali to nije obavezno. Apstraktna priroda WSDL-a za opis servisa omoguava visoku fleksibilnost opisa kompleksnihaplikacija zasnovanih na Web servisima. WSDL dokument koristi sljedee elemente udefinisanju mrenih servisa:tipovi opis definicija tipova podataka, pomou odreenog sistema tipova (kao to je XML Shema Definition, XSD), poruka apstraktna tipizirana definicija podataka koji se prenose,operacija apstraktni opis akcije podrane servisom,tip porta apstraktni skup operacija podran od strane jedne ili vie krajnjih taaka,tip povezivanja konkretan protokol i specifikacija formata podataka za odreenitip porta,port jedna krajnja taka definisana kao kombinacija tip povezivanja i mreneadrese,servis kolekcija povezanih krajnjih taaka.

4.5. UDDI: Universal Description Discovery and Integration

UDDI predstavlja skup protokola i javni direktorijum za registraciju i pretraguraspoloivih Web servisa. Moe se rei da UDDI predstavlja ute strane (yellow pages), oglasnik na kojem se nalazi spisak servisa koji su raspoloivi u datoj mrei.Osnovna funkcija koju donosu UDDI jeste jedna referentna taka koju e kontaktiratisvi potencijalni korisnici Web servisa unutar preduzea. UDDI omoguava hostovanjerazliitih verzija istog servisa, kreiranje alijasa, kao i ograniavanje pristupa pojedinimservisima. Iako je UDDI standardizovan, standardi u ovoj oblasti su podloni estim promjenama. Postoje i komercijalni proizvodi (Web Service Management alati), kojiimplementiraju dijelove funkcionalnosti UDDI-ja, uz dodatne usluge poput inspekcijeWeb servisa.

ZAKLJUAKPrema posljednjim podacima broj korisnika Interneta u svijetu blii se broju od 1.1 milijarde. To je ogromno trite koje svakodnevno raste golemom brzinom, dobrim dijelom i zahvaljujui sve veem broju web orijentiranih aplikacija. Dananji rad na raunalu daleko je napredovao i njegova osnovna znaajka je prisutnost na internetu, to znai da nitko vie ne radi na svojoj radnoj povrini ili Desktopu. Programiranje web orijentiranih aplikacija postalo je toliko popularno i zahvaljujui naprednim mogunostima web preglednika unutar kojih se web aplikacije prikazuju. Po mnogima najbolji programski jezik koji je kreiran upravo na temeljima .NET arhitekture za razvoj web orijentiranih aplikacija je C# (C Sharp).

C# je preuzeo sve prednosti i kvalitete Visual Basic-a i dodao ih na C++, zadravajui njegovu mo i fleksibilnost. Sa novim .NET Framework 4.5 i ASP.NET 4.5 tehnologijom, Microsoft je otiao jo jedan korak dalje, pruivi mogunost web programerima izraivati jo kvalitetnije aplikacije uz dramatino smanjivanje pisanja koda.

21