elektronsko poslovanje

58
1. Računarske mreže – osnovni pojmovi Računarske mreže čine tehnološku podlogu za elektronsko poslovanje. Računarska mreža: skup više računara, perifernih jedinica i drugih uređaja, koji su međusobno povezani sa ciljem razmene informacija i deobe mrežnih resursa. Računari u mreži se nazivaju čvorovi. Čvorovi mogu biti serveri i radne stanice. Računarske mreže – protokoli Komunikacija između čvorova u mreži vrši se na osnovu protokola. Protokoli su pravila koja računarima daju uputstva kako da međusobno razmene informacije. Niz međusobno zavisnih protokola naziva se stek protokola. Najpoznatiji stek protokola je TCP/IP (Transmision Control Protocol / Internet Protocol). Internet, mreža svih mreža, zasnovana je na TCP/IP protokolu. Pored TCP/IP skupa protokola poznati su i IBM SNA (System Network Architecture), Digital-ov DECNet, Novell-ov IPX/SPX, AppleTalk firme Apple i dr. Računarske mreže – klasifikacija Postoje tri najvažnija kriterijuma za klasifikaciju: * Klasifikacija po dometu, * Klasifikacija po topologiji i * Klasifikacija prema odnosima između čvorova. Računarske mreže – klasifikacija po dometu Najzastupljenije kategorije prema toj podeli su: * LAN mreže (Local Area Networks) – mreže lokalnog područja. LAN mreže pokrivaju područje ograničeno na jedno preduzeće ili ustanovu. * WAN mreže (Wide Area Networks) – mreže širokog područja. WAN mreže pokrivaju područje jedne ili više država ili područje celog sveta (Internet). 1

description

Elektronsko poslovanje skripta za ucenje

Transcript of elektronsko poslovanje

1. Raunarske mree osnovni pojmoviRaunarske mree ine tehnoloku podlogu za elektronsko poslovanje. Raunarska mrea: skup vie raunara, perifernih jedinica i drugih ureaja, koji su meusobno povezani sa ciljem razmene informacija i deobe mrenih resursa. Raunari u mrei se nazivaju vorovi. vorovi mogu biti serveri i radne stanice.Raunarske mree protokoliKomunikacija izmeu vorova u mrei vri se na osnovu protokola. Protokoli su pravila koja raunarima daju uputstva kako da meusobno razmene informacije. Niz meusobno zavisnih protokola naziva se stek protokola. Najpoznatiji stek protokola je TCP/IP (Transmision Control Protocol / Internet Protocol).Internet, mrea svih mrea, zasnovana je na TCP/IP protokolu. Pored TCP/IP skupa protokola poznati su i IBM SNA (System Network Architecture), Digital-ov DECNet, Novell-ov IPX/SPX, AppleTalk firme Apple i dr.Raunarske mree klasifikacijaPostoje tri najvanija kriterijuma za klasifikaciju:* Klasifikacija po dometu,* Klasifikacija po topologiji i* Klasifikacija prema odnosima izmeu vorova.Raunarske mree klasifikacija po dometuNajzastupljenije kategorije prema toj podeli su:* LAN mree (Local Area Networks) mree lokalnog podruja. LAN mree pokrivaju podruje ogranieno na jedno preduzee ili ustanovu.* WAN mree (Wide Area Networks) mree irokog podruja. WAN mree pokrivaju podruje jedne ili vie drava ili podruje celog sveta (Internet).* MAN mree (Metropolitan Area Networks) mree gradskog podruja. Mree ove vrste pokrivaju podruje grada.Postoje i druge kategorije:* CAN mree (Campus Area Networks) mree univerzitetskog kompleksa koje povezuju vei broj LAN mrea na udaljenim lokacijama.* PAN mree (Personal Area Networks) personalne mree malog dometa, namenjene povezivanju prenosivih ureaja kao to su laptop raunari, PDA, palmtop raunari i dr.Raunarske mree klasifikacija prema odnosima izmeu vorova1. Mrea ravnopravnih nadlenosti (peer-to-peer): ne postoji raunar koji obavlja ulogu servera, nego svaka radna stanica moe imati ulogu klijenta i servera, to znai da su svi vorovi jednaki. Manje mree, manji broj korisnika2. Serverske mree: mree sa jednim vorom koji ima funkciju servera, dok su svi ostali vorovi klijenti (radne stanice). Radne stanice pristupaju serveru i koriste mrene resurse. Poseban vid serverskih mrea u kojima se nalazi vie servera razliitih namena nazivaju se vieserverskim mreama.Raunarske mree klasifikacija prema topologijiKlasifikacija prema topologiji predstavlja klasifikaciju prema rasporedu i nainu povezivanja vorova u mrei. Postoje:* logika i* fizika topologija.Logika topologija definie logiki plan mree, tj. puteve po kojima se kreu informacije po mrei, kao i naine komunikacije izmeu vorova. Dve glavne logike topologije su:* magistrala (sabirnica, bus) i* prsten (ring).Fizika topologija definie plan rasprostiranja kablova u mrei. Glavne fizike topologije su* magistrala (sabirnica, bus),* prsten (ring) i* zvezda (star).Pored ovih vrsta postoje i izvedene topologije, kao to su:* topologija zvezdastog prstena (star-wired) i* topologija reetke (mesh)

LAN mreeRaunarske mree koje obuhvataju samo deo zgrade, itavu zgradu ili vie zgrada na manjem rastojanju, tj. manje podruje, nazivaju se lokalne raunarske mree LAN (Local Area Networks).Osnovna odlika lokalnih raunarskih mrea su velike brzine prenosa podataka. Danas se te brzine prenosa kreu od 100 Mbps (megabita po sekundi) kod standarda Fast Ethernet, do 1 i 10 Gbps (gigabita po sekundi) kod gigabitnog Ethernet-a.LAN mree ne treba smatrati zatvorenim celinama, nego sistemima koji mogu i treba da se povezuju sa drugim LAN ili WAN mreama.Karakteristike LAN mrea odreene su sa tri najznaajnija faktora:* Fizikom topologijom,* Prenosnim medijumom i* Metodama pristupa medijumu.

Topologija LAN mreaFizika topologija LAN mrea moe biti realizovana na tri naina:* Magistrala,* Prsten,* Zvezda.

MAGISTRALA: svi raunari u mrei su povezani na isti fiziki medijum.* Informacije se alju svim vorovima u mrei, ali ih preuzimaju samo oni vorovi kojima su te informacije namenjene.* Povezivanje novih vorova u mreu je jednostavno.* Nedostaci: u sluaju prekida segmenta svi raunari na istom segmentu ostaju bez pristupa mrei. Ogranienje u broju vorova koji se mogu povezati na jedan isti mreni segment, predstavlja jedan od nedostataka.* Glavna prednost topologije magistrale je niska cena realizacije.

ZVEZDA: preko ureaja koji se naziva koncentrator ili hub. Taj ureaj predstavlja centralno vorite zvezde.* Svaki vor u mrei povezan je na koncentrator i preko njega komunicira sa ostatkom mree.* Prednost ovakvog naina povezivanja ogleda se u manjoj mogunosti prekida rada mree, jer u sluaju prekida na bilo kom delu segmenta, samo raunar koji se nalazi na prekinutom kablu nema pristup mrei, dok ostatak mree nesmetano funkcionie.

PRSTEN: postoji manja fleksibilnost u pogledu lokacije vorova u mrei.* vorovi se mogu povezivati u mreu samo u odreenom prostoru, tj. u takama gde su pre toga instalirani razvodnici.* Princip prenosa informacija u topologiji prstena zasniva se na kretanju informacije od vora do vora, na putu od izvora do odredita.* Broj vorova koji se moe prikljuiti na mreu je znatno vei, ali su vei i trokovi realizacije mree.

Prenosni medijumi u LAN mreamaPovezivanje vorova u okviru raunarske mree vri se pomou prenosnih medijuma. Postoji vie vrsta prenosnih medijuma, a upotreba svakog od njih je u zavisnosti od tipa mree koji se koristi. Vrste prenosnih medija su:* Bakarni koaksijalni kabl (Coax), bio je, u prolosti, dosta koriena vrsta medijuma. Odlikuje ga niska cena, relativno visoka otpornost na elektromagnetne smetnje i jednostavna ugradnja. Dve najpoznatije vrste koaksijalnog kabla su tanki koaksijalni kabl, poznatiji kao Thin Coax, i debeli koaksijalni kabl, poznatiji kao Thick Coax.* Bakarne upredene parice (UTP, STP ) Upredene bakarne parice predstavljaju najee korieni medijum u oblasti LAN tehnologije u dananje vreme. Postoji vie vrsta upredenih parica, od kojih su dve glavne kategorije: oklopljene upredene parice - STP (Shielded Twisted Pairs) i neoklopljene upredene parice - UTP (Unshielded Twisted Pairs). UTP kabl se sastoji od 4 para provodnika koji se upredaju radi smanjenja interferencije. Svaki od provodnika ima izolaciju specifine boje da bi se razlikovao prilikom povezivanja na konektor. Postoje etiri glavne boje: narandasta, zelena, plava i braon. Svaki od ta etiri obojena provodnika ima svoj beli par ija je izolacija proarana trakom iste boje kao to je boja njegovog para. UTP kabl se koristi u kombinaciji sa osmopinskim RJ-45 konektorima.* Optika vlakna, Optika vlakna predstavljaju izuzetan prenosni medijum. Neosetljiva su na elektromagnetne smetnje i omoguuju ogromne brzine prenosa (nekoliko gigabita u sekundi). Iako je ugradnja sloenija, a cena mnogo via od bakarnih kablova, ovaj medijum predstavlja medijum budunosti.* Beino povezivanje. Beino povezivanje predstavlja dobro reenje za povezivanje lokalnih raunarskih mrea prvenstveno zbog neosetljivosti na fiziki raspored vorova u mrei. Komunikacija se ostvaruje putem infracrvenih signala ili radio-talasa. U toku je razvoj i primena velikog broja standarda za beino povezivanje.2. Pojam interneta I internet servisaRaunarske mreeRaunarska mrea je skup vie raunara, perifernih jedinica i drugih ureaja koji su meusobno povezani zbog razmene podataka i deobe mrenih resursa. Raunari u mrei nazivaju se vorovi. vorovi mogu biti serveri i radne stanice. Radna stanica je raunar na kojem se izvravaju poslovi, a server raunar koji opsluuje radne stanice na osnovu njihovih zahteva i dozvoljava korienje mrenih resursa u skladu sa pravima korisnika. Komunikacija izmeu vorova u mrei vri se na osnovu protokola. Internet koristi TCP/IP protokol stek. InternetInternet je globalna svetska mrea bazirana na TCP/IP protokolu. Nastanak Interneta se vezuje za kasne 60-te godine. Danas se o Internetu, sa pravom govori kao mrei svih mrea. Glavna odlika Interneta je pristup nesagledivoj koliini informacija multimedijalnog karaktera (tekst, slike, zvuk, video materijal). Druga karakteristika Interneta prisutna je u poboljanim mogunostima komunikacije i razmene informacija (elektronska pota, news).

Servisi Interneta1. E-mail Servis elektronske pote Obuhvata prenos tekstualnih dokumenata koji sadre poruke pomou programa za distribuciju pote (mail server) do elektronskog sanduia (mailbox) neke osobe. Poruka se alje korisniku na osnovu njegove e-mail adrese tipa imekorisnika@domen (npr. [email protected]) 2. World Wide Web (irom sveta mrea) Moe se definisati kao distribuirani multimedijalni servis Korisniku omoguuje pristup multimedijalnim sadrajima. Svakako najatraktivniji servis Interneta i samim tim servis koji se najvie razvija. Ovaj servis omoguuje, u sprezi sa ostalim tehnologijama koje su u pozadini, jednostavno i komforno elektronsko poslovanje. 3. ICQ (speluje se aj si kju; igra rei - I Seek You na engleskom jeziku znai ja te traim) Omoguuje interaktivnu komunikaciju dva korisnika preko tastature (chat) i mnoge druge pogodnosti News Konferencioni sistem ili sistem diskusionih grupa gde korisnici razmenjuju miljenja ili stavove o odreenoj temi. Diskusije su organizovane po tematskim celinama. 4. FTP (File Transfer Protocol) Internet servis koji omoguava pristup FTP serverima i prenos eljenih datoteka (programa, tekstualnih fajlova i dr.) u oba smera (tj. download i upload). Video konferencije (Videoconferencing) servis koji omoguava video i audio komunikaciju vie stranaka Koristi hardver (kamere, mikrofone i zvune kartice) i softver specijalne namene Kvalitetna video konferencija zahteva velike propusne moi5. IRC (Internet Relay Chat) Internet konverzacija vie korisnika preko tastature (chat) Da bi se servis mogao koristiti potrebno je pristupiti nekom od IRC servera Telnet servis namenjen radu na udaljenom raunaru Korisnik se preko Interneta moe logovati na vor na kojem ima otvoren nalog i raditi na njemu kao da se nalazi u lokaluPristup InternetuPristup Internetu i njegovim servisima omoguen je svim korisnicima koji plate specijalizovanim kompanijama za pruanje Internet usluga nazvanim ISP (Intrenet Service Providers)Pojedinac se najjednostavnije moe povezati na Internet pomou raunara, odgovarajueg softvera i modema. Pored navedenih komponenti potreban je i otvoren Internet nalog kod provajdera

Modem (modulator/demodulator) je ureaj koji slui za pretvaranje digitalnih signala raunara u analogne signale pogodne za prenos preko telefonskih linija i obrnuto.

Povezivanje veih korisnika (firme i druge organizacije) moe se izvriti iznajmljenim vodovima uz upotrebu rutera. Internet domeniDomen (eng. domain) bi se mogao prevesti i kao oblast, a predstavlja najviu logiku podelu na Internetu. To je dvoslovna ili troslovna oznaka koja se nalazi na kraju e-mail adresa (npr: @ptt.yu, @yahoo.com) ili na kraju WWW adresa (npr www.yahoo.com, www.ptt.yu).Sledei domeni se nazivaju globalnim svetskim domenima: gov - civilna vladina udruenja edu - univerziteti i druge obrazovne ustanove com - trgovake i industrijske organizacije mil - vojne ustanove org - ostale organizacije, korisnike grupe itd net - ustanove koje pruaju mrene usluge Pored globalnih, postoje i nacionalni domeni:

IP adreseIP adresa predstavlja jedan od naina prepoznavanja raunara na Internetu. Saobraaj na Internetu se odvija usmerevanjem na IP adresu traenog raunara. IP adresa se sastoji se od etiri broja razdvojenih takama, npr. 212.62.48.34, i svaka IP adresa je jedinstvena za odreeni raunar.DNSDNS (skraenica od Domain Name System) je server imena, a koristi se za davanje odgovora na zahtev za traenjem IP adrese za odreeno ime raunara Primer: www.tf.zr.ac.yu slovna adresa / ime raunara; 212.62.48.34 IP adresa. Koristi se za usmeravanje informacija u pravom smeru na osnovu IP adrese, pretvarajui IP adrese u slovne i obratno. Web servisWWW servis, poznatiji kao web, je najatraktivniji i najee korieni servis Interneta. To je multimedijalni servis koji omoguuje pristup informacijama u obliku slike, teksta, zvuka i video materijala. Prezentovani materijal sadri linkove (veze) ka drugim informacijama. Linkovi mogu da pokazuju na druge prezentacije ili na drugi deo iste prezentacije, a takoe i na informacije drugog sadraja (npr. slike). Informacije se nalaze na raunarima specijalne namene, nazvanim web serveri, koji su prikljueni na Internet. Skup informacija koji sainjava web prezentaciju (npr. prezentaciju kompanije ili pojedinca) naziva se web sajt (web site). Svaki web sajt ima jedinstvenu web adresu. Pristup web servisu mogu je pomou specijalizovanih softvera koji se nazivaju browseri. Najvie korieni programi te vrste su Microsoft Internet Explorer i Netscape Communicator. Browseri omoguuju pristupanje web sajtovima na osnovu unete adrese. Primer za adresu softverske kompanije kao to je Microsoft je www.microsoft.com Napomena: prefiks www je uobiajen u web adresi.Mail klijentiDrugi najkorieniji i istovremeno najstariji servis Interneta je elektronska potaPristup specijalizovanim raunarima koji slue za razmenu elektronske pote (tzv. mail serverima) obavlja se programima koji se nazivaju mail klijenti.Najpopularniji program ove vrste je MS Outlook Express PretraivaiPretraivai (search engines) su sprecijalizovani web sajtovi koji slue za brzo i lako pretraivanje informacija po kljunim reimaUnos kljunih rei na pretraivaima se vri upisom eljenih rei. Vodei svetski pretraivai: www.google.com www.northernlight.com www.yahoo.com www.hotbot.com www.altavista.com www.lycos.com www.alltheweb.comDomai pretraivai: www.krstarica.com www.pretrazivac.com www.yusearch.com www.yu www.map.co.yu www.surf.co.yu www.mse.cg.yu Pretraivai susednih drava www.hr Hrvatska cross.carnet.hr - Hrvatska www.slowwwenia.com Slovenija www.sirena.dhs.org Slovenija www.bosnia-online.com Bosna i Hercegovina

3. Hyper Text Markup LanguageHTMLDatoteke tipa .htm ili .html su obine tekstualne datoteke koje se nalaze na disku web servera i za kojima prosleujemo zahtev iz naeg browsera. Web server ih iitava sa diska i alje naem web klijentu (browseru) putem HTTP protokola.HTTP = HyperText Transfer ProtocolU HTML datotekama se, osim informacija, nalazi i nain njihovog prikazivanja kojom veliinom i vrstom slova e biti prikazan tekst, koja e biti boja slova ili pozadine, gde e se nalaziti slike, koja podruja ekrana su hiperlinkovi itd.HTML tagoviSvi navedeni opisi koje browser obrauje nalaze se u tzv. HTML tagovima. To su rezervisane rei koje se nalaze izmeu znakova za vee i manje (). Primer: , ,
itd Tagove, kao i verzije HTML jezika (trenutno je vaea verzija 4.01 od 24.12.1999.) propisuje W3C internacionalni konzorcijum (http://www.w3c.org). Neki od tih tagova moraju imati i poetak i kraj (otvoreni i zatvoreni tag), a neki ne.Struktura HTML dokumentaHTML dokument po pravilu ima dve osnovne sekcije: HEAD i BODY (glava i telo). Svaki HTML poinje i zavrava se istoimenim tagom ( ), mada to nije neophodno.Struktura:Interpretiranje HTML-aNe interpretiraju svi browseri potpuno isto sav HTML kod, mada je situacija neuporedivo bolja nego u prolosti. Na tritu browsera je vodei MSIE, tako da se izgled stranica prilagoava uglavnom ovom programu. Pored opisa izgleda stranice, veoma esto HTML dokumenti sadre i delove programskog koda, kojim se postie funkcionalnost koju je nemogue postii istim HTML-om. Skript jezici: JavaScript, VBScript. Osnovni HTML tagoviTITLE Postavlja naslov u naslovnu liniju browsera:Ovo je naslov stranice!Ovo je tekst na stranici!!! Odreuje kojim oblikom slova, veliinom i bojom e biti ispisan tekst oivien tagovima:Ovo je naslov stranice!Ovo je crveni tekst , , Slue osnovnim formatiranjima teksta: Bold (masni tekst), Italic (kurziv), Underlined (podvueni tekst)Ovo je naslov stranice!Ovo je podebljani tekst
Ovo je tekst u kurzivu
Ovo je podvuceni tekst
, Tag
slui za prelazak u novi red, a podvlai liniju ispod teksta (Horizontal Rule)Ovo je naslov stranice!Posle ove recenice preci cemo u sledeci red,
a zatim podvuci liniju. Prelazak u novi paragraf. Mogue je ravnati paragrafe levo, centrirati ili ih ravnati desno.Ovo je naslov stranice!Ovaj tekst je ispisan desnoovaj je na sredinia ovaj levo, zar ne? Stilovi naslova od Heading 1 do Heading 6.Ovo je naslov stranice!Naslov nivoa 1Naslov nivoa 2Naslov nivoa 3Naslov nivoa 4Naslov nivoa 5Naslov nivoa 6
, (UN)Ordered List. Ovaj tag slui za nabrajanje, tj. za stvaranje liste stavki, koja moe biti bulleted ili numbered:Ovo je naslov stranice!kafa caj mleko kafa caj mleko Link ka drugoj HTML stranici ili drugom resursu. Za link ka nekoj drugoj stranici, van servera, treba navesti ceo URL, sa HTTP prefiksom.Ovo je naslov stranice!Ovo je link ka drugoj stranici! Uz rezervisanu re MAILTO dobijamo linkove ka mail adresama.Ovo je naslov stranice!Posaljite mi mail! Umetanje slike u dokument. Potrebno je navesti putanju do slike. I slika moe biti hiperlink samo je treba zatvoriti unutar taga.Ovo je naslov stranice! Lepa sela lepo gore
Izmena boje pozadine stranice, linkova, poseenih linkova. Heksadecimalni kod boje ili konstanta (red, blue, white...)Ovo je naslov stranice! Ovo je link! Kreiranje tabela. Jedan od najbitnijih tagova, jer ne slui samo za prikazivanje tabelarnih podataka, ve i za pozicioniranje sadraja na sttranici. Koristi se kombinacija tri taga: TABLE, TR, TDOvo je naslov stranice!Prva celijaDruga celija 4. Tehnologija razvoja Web aplikacijeHTTP protokolOsnovni stek protokola koji se koristi na Internetu jeste TCP/IP (Transfer Control Protocol/Internet Protocol). Kao podloga najkorienijeg Internet servisa, World Wide Web-a, upotrebljava se HTTP protokol (HypertText Transfer Protocol), koji je deo aplikativnog sloja referentnog OSI modela TCP/IP-ja.HTTP je zasnovan na konceptu postavljanja zahteva i dobijanja odgovora, i obezbeuje efikasno prenoenje informacija izmeu klijenta koji zahteva informacije i servera koji odgovara na postavljene zahteve.Statiki i dinamiki WebWeb je u poetku svoga razvoja postojao iskljuivo kao statiki, tj. nisu postojale tehnologije koje bi uzele u obzir informacije koje su pristigle od korisnika i na osnovu njih generisale odgovor. Mogunosti statikog Weba oigledno nisu bile naroito velike: HTML stranice jesu nosilac informacija, ali onih koje se ne menjaju zavisno od konteksta te informacije su uvek iste. Oigledno je bilo neophodno da se doe do odreenog stepena programibilnosti na Webu, tj. da se razviju tehnologije koje e omoguiti vei stepen interaktivnosti od statikog Weba.Statike Web stranice Dinamike Web stranice se zasnivaju na principu da se HTML kod ne stvara sve dok korisnik ne poeli da vidi Web stranicu. To dinamiko stvaranje stranica omoguuje nam da one budu prilagoene korisnikovim zahtevima, da zavise od prethodnih akcija korisnika, od vremena i mesta kad je pristupio lokaciji, od njegovog identiteta i specifinih potreba. Pojava dinamikog Weba dovela je i do mogunosti da se Internet iskoristi kao medij za elektronsko poslovanje, uz uvaavanje svih njegovih specifinosti.CGICGI je akronim od sintagme Common Gateway Interface. U pitanju je standard za spajanje eksternih aplikacija sa serverima informacija, kao to su HTTP (Web) serveri. CGI programi se izvravaju u realnom vremenu, i produkt njihove egzekucije predstavlja (kao i kod ostalih tehnologija za generisanje dinamikog Web sadrzaja) dinamiki generisani HTML. Poto CGI program, u najirem smislu, predstavlja egzekutabilnu datoteku / skript kojoj doputamo da bude pokrenuta od strane bilo kog posetioca naeg sajta, jasno je da takav nain programiranja Web aplikacija nije najsigurniji sa bezbedonosnog stanovita postoje mnoge sigurnosne pretpostavke kojih se moramo pridravati. CGI aplikacije se mogu pisati u bilo kom programskom jeziku vieg nivoa (C/C++, Fortran, Pascal... ) ili skript jeziku koji je podran na naem serveru (PERL, TCL, bilo koji Unix shell skript jezik, VB Script, AppleScript...). Loa osobina CGI aplikacija jeste upravo to to je CGI, u principu, program aplikacija koja se po pozivu od strane klijenta uitava u memoriju servera, izvrava, a zatim brie iz memorije. Kreiranje procesa je sa stanovita performansi mnogo skuplja operacija nego, na primer, jednostavno iitavanje HTML datoteke. Pretpostavimo da sa naeg sajta u jednom momentu 100 korisnika zatrai izvravanje CGI programa. To bi znailo da serverski operativni sistem treba da uita 100 instanci programa u memoriju, da zatim izvri te programe i oslobodi resurse. Ovo moe veoma brzo da popuni serverske resurse, tako da je skalabilnost ovakvih aplikacija izuzetno loa. CGI je istorijski prvi pokuaj kreiranja dinamikog Weba, i tako ga valja i posmatrati. I pored ovog problema, CGI je i dalje veoma popularno reenje, naroito u UNIX svetu. CGI aplikacija na sajtu Fakulteta statistika Web servera ISAPIRadi prevazilaenja ogranienja u performansama i skalabilnosti koje je doneo CGI, kompanija Microsoft razvila je novi nain na koji je trebalo pisati brze i skalabilne Web aplikacije. Ovo reenje se naziva Internet Server Application Programming Interface (ISAPI). Umesto da funkcionalnost smeta u egzekutabilnim datotekama, ISAPI koristi dinamike biblioteke (DLL-ove), to donosi bitnu prednost u performansama.Postoje dva osnovna tipa ISAPI DLL-ova: ISAPI ekstenzije i ISAPI filteri. Ekstenzije se eksplicitno pozivaju u URL-u koji se alje IIS serveru (na primer, http://localhost/helloisapi.dll), i na ovaj nain se aplikaciji mogu proslediti i parametri (preko URL-a), na osnovu kojih e biti izvrena konkretna akcija. Po ovoj osobini ISAPI ekstenzije su vrlo sline CGI programima. ISAPI filtere poziva Web server, i ne mogu biti pozvani direktno. Server e pozvati odgovarajui filter kada se za to pokae potreba, reagujui na neki dogaaj u ivotnom ciklusu HTTP zahteva (kad, na primer, server pretprocesira klijentska zaglavlja (headers), kada autentifikuje klijenta, kad se sesija zavri...). ISAPI filteri su znatno rei od ekstenzija. Obe vrste DLL-ova se obino piu u jeziku C/C++.ISAPI ekstenzije popravljaju mnoge slabosti CGI aplikacija. Za razliku od CGI-ja, koji kreira i unitava proces pri svakom pozivu, ISAPI ekstenzije se uitavaju u memoriju jednom, prilikom starta servera, i ostaju aktivne sve vreme rada servera. Zbog "bliskosti" sa Web serverom IIS, ISAPI ekstenzije se obino izvravaju u istom adresnom prostoru sa serverom, to takoe izvrsno utie na performanse (ova osobina se moe podesiti). Loe strane ISAPI interfejsa jesu razvijaoci Web aplikacija za ovakav razvoj potrebni su ljudi koji odlino poznaju C/C++, rad sa MFC (Microsoft Foundation Classes) i, u isto vreme, HTML i Web dizajn. Ove dve grupe vetina se jednostavno izuzetno retko sreu u istoj osobi. ISAPI ekstenzija jeste jedan monolitni DLL, bez jasnog razdvajanja funkcionalnosti i interfejsa, to moe biti veliki problem. Uitavanje DLL-a u memoriju bez mogunosti kasnije zamene DLL-a novom verzijom dok se ne zaustavi serverski proces takoe moe biti glavobolja za administratore sistema, pogotovo kod velikih Web aplikacija, koje moraju biti u pogonu 24x7. Zbog svega ovoga, kada govorimo o najiroj publici razvijaoca Web aplikacija, moemo slobodno rei da ovakvo reenje nikada nije potpuno zaivelo.Skript jeziciZa razliku od prethodnih reenja koja se oslanjaju na kompajlirani kod (osim CGI-ja koji se temelji na skript jezicima poput Perla), vremenom su razvijene i tehnologije za razvoj Web aplikacija utemeljene na interpretiranom kodu. Jednostavnost korienja uslovila je da ova reenja vrlo brzo postignu izuzetnu popularnost. JavaScriptJavaScript je skript jezik ija je sintaksa slina programskom jeziku Java, i na tome se gotovo sva slinost i zavrava. JavaScript je razvijen od strane kompanije Netscape, da bi kasnije jezik bio standardizovan (ECMAScript) i podrka za njega ugraena u sve novije browsere. Za razliku od Jave, koja predstavlja objektno orijentisani programski jezik visokog nivoa, i koja se izvrava iskljuivo unutar Java virtuelne maine (JVM), JavaScript programi (skriptovi) su obino klijentski skriptovi. Oni su ugraeni u HTML stranice, i izvravaju se u browseru klijenta. Zahvaljujui DOM specifikaciji, iz JavaScript skriptova mogue je kontrolisati sve elemente browsera, kao i dokumenta uitanog u browser. Klijentski JavaScript se obino koristi za postizanje posebnih efekata na Web stranicama, ili za klijentsku validaciju podataka koji se unose u HTML forme. Postoji mogunost da se JavaScript koristi i na serveru (kao serverski skript), ali obino u sprezi sa jo nekom Web tehnologijom (npr. ASP). PerlPERL je (ponovo) skraenica, ovog puta od izraza Practical Extraction and Report Language. Predstavlja definitivno jedan od najpopularnijih skript jezika za razvoj dinamikog Weba.Perl je kreirao g-din Larry Wall, i za godinu nastanka ovog jezika uzima se 1987. Trenutna major verzija nosi oznaku 5, i izdata je jo 1994, sa podvarijantom 5.8 koja se pojavila u leto 2002. godine. Perl je preuzeo najbolje osobine jezika poput C-a, awk, sed, sh i BASIC. Posebno je moan u oblasti manipulacije tekstom, to ga je uinilo izuzetno rasprostranjenim. Jo jedna velika prednost Perl-a jeste CPAN, Comprehensive Perl Archive Network, distribuirana arhiva sa preko 2000 modula koji pokrivaju najrazliitije programerske zadatke. PythonPython (ita se: pajton) je interpretirani, interaktivni, objektno-orijentisani programski jezik, nastao pre svega desetak godina (1991). Ukljuuje podrku za module, dinamiko tipiziranje, dinamike tipove podataka veoma visokog nivoa, i klase. Mogue je pisati proirenja ovog jezika u C ili C++, mada se i sam koristi kao jezik za proirenje za aplikacije kojima je potreban programibilni interfejs. Python je portabilan, i raspoloiv za razliite Unix platforme, za Macintosh i PC raunare pod DOS-om, OS/2 ili Windows-om. Oblasti primene su veoma iroke, poev od procesiranja stringova, preko programiranja vezanog za Internet protokole, softverskog inenjerstva, do programiranja interfejsa operativnih sistema Danas su u upotrebi tri implementacije Python-a: CPython (originalna implementacija napisana u C-u, trenutno aktuelna verzija 2.2), Jython (implementacija za Java virtuelnu mainu), i Python.NET (najnovija verzija napisana za Common Language Runtime, virtuelnu mainu kompanije Microsoft).Pojedini delovi Yahoo! servisa (Yahoo!Groups i Yahoo!Maps) intenzivno koriste Python (recimo, Yahoo!Groups je kolekcija Internet mailing lista koja je isto dinamika, sastoji se od 180.000 linija Python koda i u stanju je da poalje nekih 200 poruka u sekundi koristei jedan jedini Pentium raunar na 400MHz!), a neki Google bot-ovi, Web spider-i i delovi pretraivaa su takoe napisani u ovom jeziku. Zope korporacija je razvila aplikativni server visokih mogunosti koristei Python kao besplatno reenje. PHPNajpopularniji opensource nain razvoja Web aplikacija dananjice jeste PHP, programski jezik interesantnog rekurzivnog naziva (PHP je skraenica od PHP: Hypertext Preprocessor). PHP je programski jezik koji se dodaje u HTML kod stranice (slino ASP nainu skriptovanja), i po svojoj sintaksi slian je jezicima C, Java i Perl. PHP omoguuje generisanje Web stanice u vreme izvravanja kada ita klijenta pozove PHP stranicu, Web server alje zahtev PHP procesoru. Procesor ita dokument koji ita eli da preuzme, i izvrava PHP iskaze obuhvaene oznakama za poetak () PHP skripta. Na taj nain PHP procesor ispisuje dinamiki generisani HTML u memoriju Web servera, koji zatim takav sadraj prosleuje klijentu. PHP znatno olakava pristup brojnim bazama podataka, a najprirodnije sarauje sa drugim opensource reenjem, RDBMS serverom MySQL. Moe se koristiti na razliitim serverskim platformama (Linux, FreeBSD, Windows gde se na IIS instalira kao ISAPI dodatak). Popularnost je stekao zahvaljujui jednostavnosti, ceni i izuzetno bogatoj dokumentaciji. Loa strana jeste izmean HTML i PHP kod, koji je teko odravati. Funkcionalni i prezentacioni deo Web aplikacije su na ovaj nain isprepleteni i teko odvojivi. ASPActive Server Pages je, slino PHP-u, tehnologija koja omoguuje programsku konstrukciju HTML stranica neposredno pred njihovu isporuku itau. Microsoft je zvanino obelodanio ASP 16.07.1996. godine pod ifrom Denali. Beta verzija je putena u novembru iste godine, a ASP 1.0 je bila na tritu 12.12.1996. Od kada je ASP ugraen u IIS 3.0 (mart 1997), postaje znatno rasprostranjeniji. ASP ne zavisi od konkretnog klijenta, odnosno itaa, jer se celokupan kod izvrava na serveru. Tu imamo sledee prednosti, koje vae i za ostale serverski orijentisane tehnologije: Programi se mogu izvravati u programskom jeziku koji browser ne podrava; Imamo mogunost programiranja dinamikih Web aplikacija nezavisno od itaa, bez programiranja na strani klijenta Java apletima, DTML-om ili ActiveX-om svi oni zahtevaju odreene itae ili platforme. Moemo dostaviti itau podatke koji su mu inae nedostupni; Bre se uitava jer do itaa stie samo HTML, a ne neki klijentski kod; Bezbednije je programski kod se ne moe se videti.Jezik kojim se vri serversko skriptovanje moe biti VBScript ili JScript, MS varijanta JavaScripta. ASP stranice su kombinacija tri tipa sintakse: obinog teksta, HTML oznaka i ASP naredbi. Rad u Active Server Pages 3.0 svodi se na pisanje skriptova koji koriste ASP objektni model. ASP ima sedam ugraenih (built-in) objekata: Server, Application, Session, Request, Response, ObjectContext, ASPError. Svaki od ovih objekata svojom funkcionalnou pokriva odreeni deo zadataka koji se postavljaju pred ASP kao serversku tehnologiju za razvoj Web aplikacija.ASP objektni modelJava Java je istovremeno i platforma i programski jezik. U pitanju je tehnologija kompanije Sun Microsystems, koja je razvijana gotovo iskljuivo za Internet programiranje. Za razliku od veine programskih jezika koji se ili kompajliraju ili interpretiraju da bi se mogli izvravati na raunaru, Java je i kompajliran i interpretiran jezik. Najpre se kompajlerom izvorni kod prevede u "meujezik" (intermediate language, IL) tzv. bajtkod (bytecode) koji je nezavisan od platforme i izvriv u tzv. Java virtuelnoj maini (JVM), da bi se zatim taj bajtkod parsirao i interpretirao unutar JVM. Proces kompilacije se izvrava samo jednom, da bi se bajtkod interpretirao svaki put pri pokretanju Java programa. Kompajliranje i interpretiranje Java programaWrite Once, Run Everywhere Java paradigmaPosledica interpretiranja bez native-code kompajlera jeste kod koji je neto sporiji od kompajliranog. Meutim, savremene JVM u velikoj meri anuliraju tu prednost klasinog kompajliranja.Java nije samo platforma za Internet razvoj, jer se koristei ovaj jezik i JVM mogu napisati aplikacije za bilo koju namenu. to se tie pisanja Internet aplikacija, moramo razdvojiti dva tipa programa: aplete (applet), koji se izvravaju u klijentskim JVM, i servlete (servlet), koji se izvravaju na serverima, dok se rezultat njihovog rada alje klijentima. Servleti su Java serverska tehnologija, i moemo ih u odreenom smislu uporediti sa ISAPI aplikacijama kompanije Microsoft. Problem koji je MS imao sa ISAPI-jem (monolitnost dll-a i HTML koji je "ugraen" u dll, izmeanost koda i interfejsa) Sun je dobio sa servletima, tako da je i reagovao na slian nain: osmiljena je tehnologija koja znatno olakava izradu i odravanje dinamikih Web aplikacija Java Server Pages, JSP. Java Server Pages (JSP)JSP stranice su tekstualne datoteke koje sadre HTML dokumente. Za pisanje takvih dokumenata se mogu koristiti standardni HTML dokumenti, ali i specijalni tagovi koji omoguavaju dodavanje dinamikih elemenata u stranicu. Ovako napisana JSP stranica e posluiti kao osnov za dinamiko generisanje servleta koji e proizvesti upravo onakvu HTML stranicu koja je specificirana u JSP stranici. Takav servlet se generie kao klasina datoteka sa izvornim Java kodom. Nakon generisanja servleta vri se njegovo prevoenje u Java bajt-kod, a zatim izvravanje u Java virtuelnoj maini na serveru. Prozivod tog izvravanja jeste ist HTML, koji se vraa klijentu.Iz JSP koda mogue je koristiti klase iz raspoloivih Java biblioteka, JavaBeans komponente, Enterprise JavaBeans, pristupati bazama podataka preko JDBC-a itd. Apache Software Foundation i Jakarta Project stoje iza najpoznatije implementacije JSP tehnologije Tomcat. Microsoft .NET Framework.NET tehnologija (ita se dotNET) predstavlja novi nain razvoja aplikacija za (za sada) Windows operativne sisteme. .NET vizija nasleuje Windows DNA tehnologiju za razvoj troslojnih poslovnih aplikacija, koja je bila zasnovana na COM+ modelu. .NET Framework predstavlja platformu za razvoj aplikacija koja bi trebalo da postane nezavisna od operativnog sistema - poput programskog jezika Java. Postoji mogunost izrade Windows aplikacija, Web aplikacija, Web servisa, aplikacija za mobilne ureaje... na relativno uniformisan i jednostavan nain, uz jaku objektnu orijentaciju. .Net Framework Ispod itavog framework-a nalaze se sistemski servisi. U trenutnoj implementaciji u pitanju je Win32 API i COM+, mada teoretski te servise moe pruati bilo koji operativni sistem. Iznad sistemskih servisa nalazi se najbitniji deo framework-a CLR, Common Language Runtime. CLR uitava i izvrava kod napisan na bilo kom jeziku koji moe da bude kompajliran u MSIL (Microsoft Intermediate Language). Dakle, koncept veoma slian Javi. Kod koji se na ovaj nain izvrava nazivamo 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, od servisa za pristupanje podacima do upravljanja nitima i mrenih bibiloteka. Programer jednostavno nasledi klasu i koristi je - razvoj aplikacija je brz, greaka je manje. Iznad klasa nalaze se posebne kolekcije objekata za rad sa podacima (ADO.NET) i XML-om. Dalje, imamo podrku za dva (zasad) osnovna tipa aplikacija: za tradicionalne klijente koji koriste Windows Forms, i za ASP.NET, koji ukljuuje Web forme i Web servise. Iznad ovoga dolazimo do CLS (Common Language Specification), i konano do razvojnih jezika koji prate CLS.Zajednika jezika specifikacija 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... Bitan zajedniki koncept jeste Common Type System - zajedniki sistem tipova. Svi .NET kompatibilni jezici koriste iste tipove podataka, koji su definisani na nivou frameworka, tako da je znatno olakana jezika meuoperabilnost. Prilikom kompajliranja u .NET-u, slino Javi, ne dobijamo odmah prirodni (native) kod specifian za operativni sistem. Umesto toga, vri se kompajliranje u Microsoftov posredni jezik (MSIL - Microsoft Intermediate Language). Ovaj kod nije namenjen niti jednom operativnom sistemu, i u njega se prevode svi .NET kompatibilni jezici. Dunost jezikih kompajlera je da funkcionalno isti programi u razliitim jezicima generiu priblino isti MSIL (vrlo uslovno, zavisi i kako su programi napisani).Da bi se program izvrio, oigledno je potrebno jo rada. Za taj posao zaduen je tzv. Just-In-Time (JIT) kompajler, koji prevodi MSIL u prirodni kod specificiran od strane operativnog sistema i same maine na kojoj se program izvodi. Tek tada operativni sistem zaista moe izvriti program. Praktino, faza kompajliranja je ista za sve platforme; za druge operativne sisteme (ili novi hardver) potrebno je obezbediti samo izvrnu fazu za to okruenje. Proces kompajliranja u .Net Framework-u ASP.NETZato je ASP morao da dobije naslednika, ASP.NET? Zbog svoje velike popularnosti, ASP je jednostavno prerastao svoju ulogu, i morao je biti zamenjen proizvodom (ponovo napisanim, u jeziku C#) koji e biti u stanju da se izbori sa zahtevima postavljenim pred savremene Web aplikacije. Mane ASP-a: ASP stranice se piu pomou skript jezika (najee VBScript ili JScript); drugi jezici su takoe opcija ako posedujete interpreter - ali, to je ipak samo interpretacija. Nedostaci interpretiranih jezika su nedostatak jakih tipova i nedostatak kompajliranog okruenja. ASP keira kod, ali je on ipak interpretiran, to vodi do problema sa performansama i skalabilnou. Meanje koda i sadraja: treba uposliti dve grupe ljudi (Web dizajnere i programere) da rade na istim datotekama, to nije praktino. Dalje, komplikovaniji kod je esto znaio i drastino vee izvorne datoteke. U ASP-u moramo da piemo kod da bismo odradili veinu stvari, bez obzira na to koliko one bile jednostavne (na primer, validacija polja obrazaca...). ASP.NET je znatno komforniji, zahvaljujui serverskim kontrolama - dosta koda je ve napisano, a mi ga samo koristimo. ASP ne reava probleme kompatibilnosti ureaja (palmtop-ovi, mobilni telefoni...). ASP.NET kontrole same otkrivaju ta se nalazi sa druge strane i "emituju" odgovarajui kod! ASP je prilino teko proiriv, zatvoren sistem, bez otvorene mogunosti podrke novim standardima (poput XHTML-a, XML/XSL-T-a...) ASP.NET se moe pisati u bilo kom tekstualnom editoru (Notepad), a mogue je koristiti i specijalizovane alate poput WebMatrix-a, VS.NET-a itd. Ekstenzija ASP.NET datoteka je .aspx Kljuni ciljevi koji se postiu uvoenjem ASP.NET-a: Uklanjanje zavisnosti od maina za skriptovanje i omoguavanje da stranice budu tipski bezbedne i kompajlirane - mnogo bolje performanse; Smanjenje koliine koda potrebne za razvoj aplikacije (serverske kontrole); Olakavanje instalacije Web aplikacija (XCOPY Deployment) - XML konfiguracione datoteke. Ranije veliki problemi sa COM komponentama kod three-tier Web aplikacija zbog neophodne registracije na serveru; sada - Shadow Copying komponenti koje se nalaze u bin folderu u okviru virtuelnog direktorijuma (to je funkcija CLR-a; nema zakljuavanja komponenti koje se trenutno koriste jer se zapravo pozivaju sa drugog mesta, iz kea, a ne sa originalne lokacije); Ouvanje kompatibilnosti sa prethodnim kodom - ASP i ASP.NET mogu raditi "rame uz rame", tako da se prevoenje u ASP.NET moe vriti postepeno; Bolje rukovanje grekama (automatsko otkrivanje curenja memorije i restart problematinih ASP.NET aplikacija, otkrivanje zahteva na beskonanom ekanju i mrtvih petlji i njihovo razreavanje, skladitenje stanja sesije eksterno tako da je mogu restart ASP.NET aplikacija bez gubitka podataka krajnjeg korisnika); Jezik nije bitan; Poboljanje performansi: svaka ASP.NET stranica je kompajlirana! Kompajliranje ASP.NET stranice prilikom njenog prvog poziva Kompajliranje stranice nije jeftino i moe da potraje nekoliko sekundi za sloene stranice. Ali, kompajliranje se uvek vri samo jednom za datu .aspx datoteku. Svi naknadni zahtevi za stranicom (ak i nakon restartovanja IIS-a) zadovoljavaju se instanciranjem generisane klase i zahtevom da se stranica vizualizuje.Rezultat - odline performanse, cena - neto malo prostora na disku za DLL-ove. Sajt Fakulteta u Zrenjaninu (http://www.tf.zr.ac.yu) je realizovan kao savremena Web aplikacija upravo korienjem ASP.NET tehnologije. 5. Sigurnosni aspekti elektronskog poslovanjaBezbednost svetske mreeInternet kao globalna mrea danas sve vie postaje mesto za obavljanje razliitih vrednosnih transakcija.Prisustvo ogromnog broja "zainteresovanih strana" na globalnoj mrei uslovljavaju i izuzetnu nebezbednost svetske mreeDa bismo takvu sredinu ukrotili i uinili je potpuno bezbednom za poslovanje, moramo primeniti mere obezbeivanja sigurnosti podataka na Internetu. Uslovi bezbednostiPostoje etiri osnovna uslova bezbednosti: Integritet podataka - podaci moraju stii do korisnika bez neeljenih transformacija i modifikacija. Ovo podrazumeva da korisnik moe da proveri korektnost i verodostojnost pristiglog sadraja. Identifikacija poiljaoca i primaoca poruke - ovaj uslov omoguava obema stranama proveru porekla poruke. Ukoliko se implementira pravilno, identifikacija mora da bude jednostavna i da ne ostavlja prostora sumnji u verodostojnost druge strane. Drugim reima, ne moe se desiti da neki "piratski" sajt preuzme identitet pravog i doe do osetljivih podataka koje bi poslala druga strana, u uverenju da podatke alje na pravo odredite. Neporecivost poruke - poiljalac poruke nema naina da negira da je poruku poslao. Ovo je, pored ostalog, i mera zatite biznis strane elektronskog poslovanja, jer klijent nema naina da, recimo, opovrgne sopstvenu narudbu. Poverljivost i tajnost podataka - podaci koji se prenose od poiljaoca do primaoca moraju na neki nain biti zatieni od "prislukivanja". Bezbednost se obezbeuje kontrolom pristupa mrenim resursima, kao i posebnim tehnikama zatite samih podataka, poznatim pod imenom kriptografija.Kriptografske metodeKriptografija obuhvata matematike transformacije kojima se modifikuju podaci tako da samo korisnici sa pravom pristupa, odnosno "pravim kljuem" mogu da ih prepoznaju. Tokom kriptografskog postupka originalni podaci, koji se esto nazivaju i "ist tekst" (clear text ili plain text) odreenom matematikom funkcijom se transformiu u zatieni ili enkriptovani format (ciphertext).Enkripcija i dekripcija podatakaPrimenjena funkcija se zasniva na enkripcionom algoritmu (cipher), koji za ulazne parametre ima originalnu poruku i jedan ili vie kriptografskih kljueva, specijalno izabranih brojeva konane duine. Obrnuti proces, transformacija iz zatienog oblika poruke u originalnu poruku naziva se dekripcija, i takoe je baziran na primeni matematike funkcije, koja za ulazne podatke ima prethodno zatienu poruku i jedan ili vie dekripcionih kljueva, koji mogu biti razliiti od enkripcionih kljueva.Podela kripto-algoritamaKriptografski se algoritmi dele na simetrine i asimetrine. Simetrini su bazirani na korienju istog tajnog kljua za enkripciju i dekripciju (shared secret key cryptography) Asimetrini se baziraju na korienju razliitih kljueva za enkripciju i dekripciju od kojih je jedan javni i poznat svima, a drugi tajni i poznat samo jednom od uesnika u komunikaciji (public key cryptography).Simetrina kriptografijaKod simetrine kriptografije postupak enkripcije i dekripcije zasniva se na dve matematiki srodne funkcije: Enkripciona funkcija E, na osnovu kljua k i ulazne poruke m, kreira zatienu poruku c. Dekripciona funkcija D, na osnovu istog kljua k i zatiene poruke c, restaurira originalnu poruku m.Prednost ovog naina kriptografije u odnosu na asimetrinu kriptografiju: manje je raunski intenzivna, tako da se vee koliine podataka bre enkriptuju/dekriptuju. Velika mana: moramo pronai bezbedan nain za distribuciju tajnog kljua, tj. osigurati bezbedan kanal za razmenu kljueva izmeu zainteresovanih strana. ta e nam onda kriptografija, ako takav kanal ve postoji?Takoe, mana je i potreba za velikim brojem kljueva, po jedan par za komunikaciju sa svakim klijentom Asimetrina kriptografijaProces enkripcije i dekripcije se kod ovih algoritama takoe zasniva na dve funkcije - imamo enkripcionu funkciju E i dekripcionu funkciju D. One opet manipuliu originalnom porukom m, odnosno zatienom porukom c, ali se ovog puta za enkripciju i dekripciju koriste dva kljua - jedan za enkripciju (klju e), a jedan za dekripciju (klju d).Prvi od ovih kljueva se naziva javni klju (public key) i poznat je svima, a drugi se zove privatni klju (private key), i poznat je samo jednoj strani: Enkripcija podataka se moe obaviti, u principu, na dva naina: Enkripcija originalne poruke javnim kljuem - samo vlasnik privatnog kljua moe dekriptovati poruku, ali ne moe biti siguran ko je poruku poslao, jer je javni klju dostupan svima; Enkripcija originalne poruke privatnim kljuem - ovog puta je poreklo poruke nedvosmisleno, kao i nemogunost poricanja vlasnika javnog kljua da je poruku poslao, ali je tajnost poruke kompromitovana - svako ko ima javni klju koji odgovara tajnom kljuu korienom za enkripciju moe videti poruku. Ova mana se ispravlja mehanizmom digitalnih potpisa i sertifikata.Prednosti korienja infrastrukture javnog kljua (public key infrastructure, PKI) - potrebno je znatno manje kljueva za komunikaciju, nije potreban siguran kanal za distribuciju kljueva. Loa strana - raunski su intenzivni, tako da su nepogodni za enkripciju veeg obima podataka. Moderna kriptografija hibridni pristupU dananjim modernim enkripcionim sistemima koristiemo i simetrinu i asimetrinu kriptografiju za postizanje potrebnog nivoa zatite podataka - najpre emo asimetrinom kriptografijom razmeniti tajni klju za ostvarivanje simetrine kriptografije, koju emo kasnije koristiti za prenos velike koliine podataka. Na taj nain funkcionie SSL (Secure Sockets Layer) tehnologija, sa kojom emo se kasnije upoznati.Digitalni potpisiDigitalni potpis (digital signature) predstavlja digitalnu verziju svojerunog potpisa - kao to takav potpis jednoznano identifikuje osobu, digitalni potpis moe da identifikuje autora neke poruke, ali i da dokae da poruka prilikom prenosa komunikacionim kanalom nije izmenjena. Svaki potpis, bio on digitalni ili vlastoruni, mora da zadovolji pet osnovnih pravila: Mora da prui identifikaciju; Ne moe biti manipulisan; Ne moe biti kopiran; Mora da bude verodostojan; Ne moe biti opovrgnut.U najveem broju sluajeva nije potrebna enkripcija celokupne poruke - dovoljno je enkriptovati samo digitalni potpis, a poruku ostaviti nepromenjenu. Naravno, ako je tajnost poruke kritina, i ona moe biti zatiena. Za kreiranje digitalnih potpisa koriste se tzv. hash funkcije. To su funkcije sline enkripcionim, koje imaju osnovnu karakteristiku da na osnovu ulaznih podataka promenljive duine definiu niz konane duine, a koji na jedinstven nain definie ulazni podatak:Digitalni sertifikatiDigitalni sertifikat je elektronska datoteka koja jedinstveno identifikuje pojedince i web sajtove na Internetu i omoguuje sigurnu, poverljivu komunikaciju. On povezuje ime entiteta koji uestvuje u sigurnoj transakciji (e-mail adresu ili web adresu) sa javnim kljuem (public key) koji je korien za zatitu komunikacije sa tim entitetom u kriptografskom sistemu."Potpisnik" digitalnog sertifikata je "sigurna trea strana", odnosno telo poznato pod imenom Certificate Authority (CA), kao to su VeriSign, Thawte i slino. To su tela specijalizovana za brigu o digitalnim sertifikatima, i ta tela izdaju, kreiraju i potpisuju sertifikate, te uestvuju i u njihovoj distribuciji. Sertifikat koji je izdat od odgovarajueg CA nosi i digitalni potpis tog CA, i ta je injenica kljuna za jednoznanu identifikaciju organizacije koja je sertifikat dobila. Kada korisnikov browser pristupi sajtu organizacije koja poseduje digitalni sertifikat, taj sertifikat se automatski prenosi do klijenta u formi datoteke odreenog formata. Browser ita ovaj fajl i odluuje da li e verovati udaljenom serveru, na osnovu injenice da je sertifikat digitalno potpisan od strane CA, a javni kljuevi svih veih CA su ugraeni u sam browser. Postupak kreiranja digitalnog sertifikataPRVI KORAK:Aplikant generie par kljueva, privatni i javni.DRUGI KORAK:Aplikant prikuplja informacije koje trai sertifikaciono telo (podaci o organizaciji, overe, e-mail adrese, ak i otisci prstiju ako CA to zatrai) TREI KORAK:Aplikant alje zahtev za sertifikatom, koji se sastoji iz njegovog javnog kljua, i traenih podataka. Zahtev se enkriptuje javnim kljuem sertifikacionog tela.ETVRTI KORAK:Dostavljene informacije se proveravaju. PETI KORAK:CA kreira i digitalno potpisuje sertifikat koji se sastoji iz aplikantovog javnog kljua i ostalih dostavljenih informacija. Potpis CA vezuje javni klju aplikanta sa podacima koje je dostavio za tu vezu sada garantuje CA. Sertifikat je zatien javnim kljuem aplikanta.ESTI KORAK:Sertifikat se prosleuje aplikantu. SSL komunikacijaSSL (Secure Sockets Layer) je tehnologija koja slui za siguran prenos podataka preko weba, a izvorno je razvijena od strane Netscape Communications. Zasniva se upravo na mehanizmu digitalnih serverskih sertifikata, izdatih od strane nezavisnih CA. SSL omoguuje dve krucijelne stvari u sigurnim komunikacijama: autentifikaciju, putem gore opisanog mehanizma serverskih sertifikata izdatih od strane CA, i enkripciju, ime se vri zatita podataka koji se razmenjuju. Da bi se uspostavila SSL konekcija, najpre se vri tzv. SSL handshakeSSL handshake6. Struktura I primer tipicne B2C Web aplikacijeB2C Web aplikacijeB2C (business-to-consumer) aplikacije su programi koji omoguuju prezentaciju i prodaju proizvoda preko odreenih komunikacionih kanala, u poslednje vreme najee Interneta.Pogodnosti ovakvog naina prodaje:* Mali trokovi otvaranja "virtuelne prodavnice" (server i iznajmljena veza prema Internetu)* Velika mogunost reklame i oglaavanja* Mogunost plaanja korienjem platnih servisa (procesiranjem kreditnih kartica)* Mogunost dostave pojedinih sadraja direktno putem Interneta (kupljene informacije)B2C Web aplikacije tehnologijaTehnologija koja stoji iza ovakvih aplikacija je distribuirane arhitekture, jasno oznaenih nivoa:* Klijentski sloj* Sloj poslovne logike* Skladita podatakaSvi veliki proizvoai softvera imaju svoja reenja u ovoj oblasti, zbog ogromnih mogunosti koje se tek otvaraju.Na primer je jednostavna prodavnica CD ploa i majica, zasnovana na ASP tehnologiji aktivnih web stranica kompanije Microsoft.B2C Web aplikacija ECStoreECStore je ogledna B2C Web aplikacija realizovana u Microsoft ASP 3.0 tehnologiji.ASP skriptovi koji se izvravaju na Web serveru Microsoft IIS 6 predstavljaju sistemski front-end, dok je za back-end iskorien server baza podataka Microsoft SQL Server 2000.Radi ilustracije, u jednoj Web formi korien je i srednji sloj (middleware) u obliku COM+ komponente razvijene u Microsoft Visual-Basic-u 6 ta komponenta je zaduena za izraunavanje trokova poreza i prevoza robe.B2C Web aplikacija ECStorePotrebno je stii do stranice sa opisom konkretnog proizvoda, to je mogue uiniti na dva naina: izborom prozivoda iz odgovarajueg odeljenja ili pretraivanjem po kljunim reima.Kupac stavlja proizvod u korpu za kupovinu, specificirajui koliinu proizvoda koji se naruuje (ta se koliina naknadno moe menjati). Proces kupovine se moe nastaviti, ali je mogue i u bilo kom momentu otii na stranicu sa korpom, uneti line podatke i izvriti naruivanje preko zatiene komunikacije (SSL), koja pouzdano uva poverljive podatke (broj kreditne kartice, na primer).Line podatke je mogue snimiti u bazu ukoliko se planira kasnija ponovna kupovina, a mogue je snimiti i kolai (cookie) koji e te podatke automatski uneti u odgovarajuu formu.Posle naruivanja korisnik moe pratiti status svoje narudbine on-line, i videti kada e biti izvrena isporukaPoetna stranica B2C aplikacije ECStorePostoji i deo aplikacije koji nije vidljiv svim korisnicima, ve samo onima koji imaju odgovarajue privilegije: to je deo za administraciju radnje (upravljanje proizvodima, odeljenjima, porezom, isporukom, narudbinama...).Preko Web interfejsa potpuno se kontrolie poslovanje radnje i upravlja narudbinama.Ovo je sasvim uobiajen pristup u razvoju Web lokacija ovoga tipa dve potpuno odvojene aplikacije "napadaju" istu bazu podataka, jedna od njih sa korisnikog, a druga sa administrativnog nivoa.Celokupna aplikacija ima ukupno 64 ASP datoteke (30 za front-office, i 34 za back-office).Kroz itavu aplikaciju od izuzetne je vanosti manipulacija njenim stanjem.HTTP je stateless protokol (protokol bez stanja), i posao Web servera je samo da to je pre mogue opslui klijenta, ne vodei rauna o tome da li je klijent ve bio na sajtu i da li je ve ranije, na primer, odabrao neki proizvod.Iz tog razloga Web programer mora voditi rauna o stanju aplikacije, pratiti posetioce sajta i uvati njihove privremene podatke na serveru.uvanjem svih relevantnih podataka u sesijskim varijablama vri se praenje pojedinanog korisnika.* Za proces izlaska iz radnje potrebno je izraunati porez i trokove otpremanja robe, korienjem adekvatnih podataka iz baze.* Tabela Tax ima dva zapisa, po jedan za odgovarajuu stopu poreza za republiku iz koje se vri naruivanje (na primer, poreska stopa za Srbiju je 4,5, a za Crnu Goru 9 procenata). Tabela Shipping ima zapise koji se odnose na cenu transporta u zavisnosti od koliine naruenih proizvoda (recimo, ako se naruuje do 10 proizvoda cena prevoza je 200 novanih jedinica, ako se naruuje od 10 do 20 cena je 380 n.j., i tako dalje to se vie proizvoda narui, cena po jedinici bi trebalo da opada).* U zavisnosti od unosa kupca iz koje je republike, i koliko proizvoda eli treba izraunati trokove poreza i transporta, dodati ih na cenu korpe i formirati konanu cenu. Za te proraune razvijena je posebna komponenta:* Celokupna aplikacija je razloena na tri dela:* front-end, prezentacija (interfejs) prema korisnicima (ASP),* srednji deo koji sadri poslovnu logiku (COM),* back-end, obino server baza podataka ili neki legacy sistem.* Na srednji sloj (middle-tier) jeste COM komponenta ECStoreBizLogic.dll, razvijena u Visual Basic-u 6.* Ova poslovna logika vri pristup bazi podataka, uzima vrednosti poreza i opseg cena za isporuku i na osnovu parametara koji su joj prosleeni (republika, koliina naruenih proizvoda) izraunava porez i cenu prevoza.Realizacija kriptografske zatite* S obzirom da je koliina podataka koju treba preneti do klijenta prilikom korienja SSL konekcije viestruko vea od koliine koja se prenosi pri pristupu nezatienom delu aplikacije, enkripcija podataka u Web aplikaciji ECStore vri se samo prilikom prenosa najosetljivijih podataka do Web servera (podaci o kreditnoj kartici).* Web forme koje se bave prikupljanjem i preno-som ovih informacija do servera baza podataka logiki su na samom zavretku procesa kupovi-ne, i smetene su u posebnom folderu nazvanom Secured, koji je na Web serveru podeen da zahteva uspostavljanje SSL konekcije.* Da bismo doli do ovog koraka, morali smo na Windows 2003 platformi da instaliramo poseban servis koji se naziva Certificate Authorities, a koji e od naeg servera nainiti lokalno sertifikaciono telo (CA).* Korienjem usluga ovog CA izdali smo sertifikat naem Web serveru.* Prilikom definisanja sigurnosti foldera Secured aplikacije ECStore moemo biti jo restriktivniji, te zahtevati i klijentske sertifikate. Meutim, poto je re o Web prodavnici kojoj je potrebno to je mogue vie kupaca, ovaj uslov nije ukljuen; loginije bi bilo primeniti klijentske sertifikate na administrativni deo prodavnice u tom sluaju bi takvi sertifikati bili distribuirani na mini-CD mediju ili SMART kartici.* Kada doemo do najbitnijeg momenta naruivanja (unos broja kreditne kartice), vri se preusmeravanje na zatienu formu, obavlja se SSL handshake i enkriptovana komunikacija zapoinje.43