17460862 Upravljanje Na Daljinu

Embed Size (px)

Citation preview

Visoka tehnika kola Ni

Diplomski radVizuelni prikaz klijent-server tehnike

Mentor : Mr.Mirko Kosanovi ______________________________ 1. lan komisije _______________________________ 2. lan komisije____________________________________

Student: Nikola Luki br.indeksa RE17/03

1. UVOD

1

Projekat je pisan u VisualBasic-u viem programskom jeziku.VB je objekno orijentisan programski jezik namenjen da manipulie bazama podataka korienjem ADO OLE I SQL-a , razvijanje internet aplikacija , API programiranje. -API (Application Programming Interface ) je set ugradjenih biblioteka kodova. Koristi dinamiko povezivanje po metodi pozivanja odredjene funkcije iz biblioteke funkcija DLL(Dynamic Linked Library i to samo u momentu kada je odredjena funkcija pozvana.Prednosti API jesu to to funkcija zauzima memoriju samo dok se izvrava.Da bi bilo koja VB aplikacija radila na raunaru neophodno je pokrenuti instalacioni paket VBRUN6.0.exe koju u system direktorijumu instalira odredjene biblioteke funkcija(dll). U projektu je koriena socket kontrola (winsock.ocx) na vie portova.Cilj teme rada je prikaz konkretnih klijent-server fukcija od ostvarivanja konekcije do sloenijih funkcija.Na dovitljiv nain moemo uspostaviti potpunu kontrolu nad udaljenim raunaru uz ne mnogo poznavanja sistemskog programiranja i niih programskih jezika. Program se sastoji iz dva glavna dela. Svaki deo se sastoji iz dva dela tj. dva izvrna fajla(Ekstenzija izvrnog fajla ExE). Mnogi problemi mogu se reiti na vie naina a odabir reenja nemora uvek biti suvie rigorozan.Slede problemi na koje sam nailazio usled izgradnje projekta koji bi trebao da ostvari kontrolu udaljenog racunara preko slike (poznatiji kao Remote desktop). Program omoguuje u jednoj LAN mrei server raunaru ulogu nadzorskog raunara jer mu omoguuje prikaz celog ekrana i kontrolu klijent raunara.Prikazuje i trenutno pokrenute servise na udaljenoj maini, omoguuje promenu klijent opcija kao to su autorun.Moj deo posla bio je povezivanje vie primera (source code) u jednu celinu koja omoguuje sve navedene zahteve tako da nije ceo kod programa detaljno opisan ali se analizom algoritma moe puno nauiti. Polazni zahtevi : Server raunar mora automacki po prisustvu klijent raunara u mrei detektovati sam klijent raunar(pod uslovom da je ukljuena start up metoda)ili po startovanju programa na klijent raunaru. Po zahtevu servera klijent alje sliku (slike) i po zahtevu prekinuti slanje slika. Upravljanje udaljenim klijent raunarom (preko slike) Prihvatanje slike sa vie klijenata istovremeno preko istog porta. Slanje tekstualnih poruka (chat program) Prikaz direktorijuma i fajlova hard diska udaljenog raunara(remote explorer). Prikaz otkucaja tastature. Neprepoznaje dvaputa pritisnut isti taster. Prikaz za osam pojedinanih slika udaljenih raunara i dva tab-a po etiri slika (izdeljeni prostor ekrana). Detektovanje prekida konekcije.

-

Deljenje uloga sa server strane projekta : MainServer.exe obezbedjuje prikaz slika konektovanih klijent raunara , opciju za chat (obraanje klijent raunaru slanjem teksta) , prikaz otkucaja tastature po zahtevu.

2

Xykoordinator.exe obezbedjuje prikaz primljene slike klijent raunara preko celog ekrana I slanje x ,y koordinata to na drugoj strani podrazumeva postavljanje mia prema primljenim x y vrednostima. Deljenje uloga sa klijent strane projekta : Klijent.exe obezbedjuje po startovanju konekciju za glavni server koristeci ve upisanu IP adresu servera u serverip.txt fajlu , slanje jedne slike.Po zahtevu ovaj deo programa reava dali e se stalno slati slika to je potrebno kada se vri kontrola udaljenog raunara ili e se prekinuti slanje slika. XYKlijent.exe obezbedjuje prihvatanje podataka vezanih za kontrolu mia i njegovih dogadjaja. Kratko objasnjenje : U glavnom delu programa obezbedjeno je stalno slanje slike klijent raunara, sada tu sliku (preko programskog tajmera) uitava forma koja je razvuena preko celog ekrana (full screen).Tako vrlo prosto dobijemo sliku udaljenog raunara na naem glavnom server raunaru (sva kontrola je na strani server app).X I Y koordinate koje moemo pratiti dogadjajem mousemove u naoj full screen formi neodgovaraju X i Y koordinatama mia koji nije na povrini forme.Desktop je recino podeen 1024x768 dako da ga moemo opisati u 102 koraka ( 76 ) A forma nam daje opseg 15400 za X.. Deljenjem Xforme/150 I Yforme/149 dobijamo priblizni odnos uz ostranjivanje decimala.Ova operacija se odradjuje na strani servera da bi se slala celobrojna vrednost i klijent prepoznavo tanu vrednost poloaja mia.U ovom delu programa koriena su tri socket konrole i to : Sock za prenos X kordinate , sock za prenos Y koordinate i jedan kontrolni sock koji alje samo podatke o Click dogadjaju (ClickLeft , ClickR i DclickLeft ).Ovo je i najlake i najprirodnije reenje bar za LAN konekciju .Kad bi program trebao da radi preko Internet-a nebi se slala svaka koordinata ve samo one koordinate koje su aktuelne ubrzo nakon nekog dogadjaja mia.U podglavlju opisa izvornog koda skrenuta je panja na konkretne momente koji nastupaju usled odvijanja algoritma i to po hronologiji odvijanja.Naizmenini su opisani klijent - server strana programa. Ako bi kliknuli levim tasterom mia na full screen formu ( formu za upravljanjem mia na udaljenom raunaru forma prepoznaje tadi dogadjaj i izvrava odredjeni blok naredbi tj. alje komandu koju klijent prepoznaje.U programu nije uradjena kontrola tastature ali se moe reiti na relativno lak nain.U tom sluaju u bukvalnom prevodu imali bi potpunu kontrolu raunara.Mogu se nai i par grafikih reenja ali se uvek mora raunati da ubacivanje slika program ini veim (veliina izvrnog fajla na disku) dok loa programska reenja prouzrokuju sporiji rad (zauzimanje ram memorije) i nepouzdanost aplikacije.

2. OSNOVNI POJMOVI 2.1 Prenos podataka

3

Raunarske mree omoguavaju medjusobno komuniciranje raunara pomou neke stalne ili privremene veze. Za umreavanje vie raunara potreban je poseban hardver, ali i softver, te poznavanje naina umreavanja. Umreavanje podrazumeva ostvarivanje veze u cilju razmenjivanja resursa, ideja ili informacija izmedju dve take. Povezivanje raunara se, osim pomou kablova,moe ostvariti i beino preko radio tehnike.

Prenos podataka preko ice :Modemi (dialup) Modem je skraenica od MODulate/DEModulate i ona je ime za uredjaj koji modulira analogni nosa signala (kao zvuk), i koji isto tako demodulira dekodira digitalni signal sa analognog nosaa. Modem je iz raunara najee spojen na telefonsku liniju, ali mogue je spojiti modem na bilo koji mreni kabal ili na beini nosa signala. Uglavnom slui za spajanje na Internet, no njime je mogue slati i primati telefaks (ako je to fax modem), programirati da glumi automatsku sekretaricu. Radi tako da prevodi podatke koje dobije iz telefonske linije u podatke smislene raunalu i obrnuto. Najfrikiji, i ve ustaljeni, standard je v.92 koji je u velikoj meri zamenio malo stariji v.90. Najvea brzina dananjih modema je 56 kbps, to je u raunarstvu veoma mala brzina, i najee nalazi mesto kod korisnika koji koriste samo osnovne servise na Internetu kao to su Email ili povremeno proveravanje novosti. Iznajmljene linije Iznajmljena linija je obino simetrina veza koja povezuje dve lokacije. Za razliku od obinih analognih PSTN linija ovakve veze nemaju telefonski broj jer su dve strane stalno povezane. Mogu se koristiti za telefonski razgovor, prenos podataka ili Internet servis. Standardne brzine se kreu od 64k, 128k, 256k, 512k, pa do 2M i vie. Frame relay Frame relay je sinhronizovana mrea temeljena na HDLC protokolu. Podaci se alju u HDLC paketima. Frame relay se obino koristi za prenos podataka izmedu lokalnih (LAN) i irokopojasnih (WAN) mrea. Svaki korisnik dobija iznajmljenu liniju. Osnovna svrha ove mree je jeftino povezivanje LAN mrea sa glavnim voritima WAN mrea. U ovakvim mreama podaci ne podleu proveravanju greaka, ve to rade vorovi WAN mree to dodatno ubrzava prenos podataka.

4

Ethernet umreavanje Ethernet (IEEE 802.3) je mrena tehnologija za LAN mree, temeljena na frame nainu rada. To znai da se podaci alju u paketima koji su prilagodjeni za slanje preko raunarske mree. Definie umreavanje i signaliziranje za fiziki sloj, te frame formate i protokole za MAC, odnosno mreni sloj OSI modela. Ethernet, poznat i pod imenom IEEEs 802.3, je postao najrasprostranjeniji standard za raunarske mree koji se poeo uzdizati ranih 1990-tih pa sve do danas gde dri primat, te je skoro u potpunosti zamenio ostale mrene tehnologije za LAN mree kao to su Token Ring, FDDI te ARCNET. HomePNA HomePNA je nain umreavanja raunara preko telefonskih ica koje je jeftino, ne zahteva dodatne uredaje i radi na stalnih 10 Mbps. HomePNA (Home Phone-line networking) je najei naziv za set specifikacija koje je uspostavio HPNA (Home Phone Networking Alliance) na kojima se temelji HomePNA. Najfrikija specifikacija HPNA 3.0 je razvijena od strane Broadcom-a i kartice zasnovane na toj specifikaciji rade na 10 Mbps brzini. HomePNA koristi metod poznat kao FDM (frequency-division multiplexing) koji dijeli frekventni opseg telefonske linije (slicno kao kod DSL modema) te odvaja neiskoriteni opseg kojeg deli u odvojene podatkovne kanale koje koristi za prenos podataka izmedu raunara. Mogue je istovremeno voditi razgovor preko telefona i imati raunarsku mreu preko istih telefonskih linija, ak je telefonska linija u mogunosti podrati glasovni razgovor, DSL modem i HomePNA. Da bi napravili jednu HomePNA mreu trebamo odgovarajue HPNA adaptere koji mogu biti u obliku interne kartice (PCI), te spoljnjeg uredaja (USB). Uz to, obino dode i poseban softver koji e konfigurisati uredaje i samu mreu. Ovakve mree se obino koriste za manje zahtevnije korisnike koji ne trebaju velike brzine kao to nudi Ethernet mrea. Ovakva mrea je prvenstveno namenjena korisnicima koji ele jednostavnu mreu bez dodatnih kablova i dobru pouzdanost. HomePlug Umreavanje preko elektricnih ica je veoma jednostavno i jeftino, ne trai nove kablove, ali i ne nudi previsoke brzine prenosa. PowerPacket je ime tehnologije koju je razvio Intellon a koju je odabrao HomePlug Alliance kao standard, dok je prethodnik bila Passport tehnologija. PowerPacket uredaji koji su ukljuceni u elektricne utinice se na raunar spajaju preko USB-a ili preko mrene kartice . Kada se adapter prikljui na raunar jedino to treba je konfigurasati softver koji dode uz uredjaje. Za prikljuivanje novog raunara na jednu ovakvu mreu je potrebno samo ukljuiti adapter u elektrinu utinicu, a isti povezati sa raunarom, da bi potom softver instaliran na raunar prepoznao ostale raunare ili printere. PowerPacket tehnoglogija koristi peer-to-peer ravnopravnu mreu. Adapteri ne troe elektrinu struju. Mana ovakvih mrea je to imaju prilino malu brzinu (oko 14 Mbps).

5

Beicni prenos podataka :Kratki domet Bluetooth je nain spajanja na osobne beine mree. Preko Bluetootha je mogue razmeniti informacije izmedju uredjaja kao to su mobilni telefoni, laptopi, raunari, printeri, digitalni fotoaparati i tako dalje. Bluetooth radi na principu radio tehnike, i namenjen je za nisku potronju el. Energije, te se zbog toga esto koristi u manjim uredajima kao to su mobiteli. Frekvencija putem koje se odvija beicna komunikacija je 2,45 GHz, a da bi se izbegle smetnje na istoj frekcenciji Bluetooth deli pojas frekvencije na 79 kanala (svaki 1 MHz irok) i menja iste 1600 puta u sekundi.Verzije 1.1 i 1.2 Bluetootha su dostizali brzine do 723,1 kbit/s, dok se sa najnovijom 2.0 verzijom sa Bluetooth Enached Data Rate (EDR) tehnikom doseu brzine do 2,1 Mbit/s. Tehnologija je veoma obeavajua to pokazuje sve vei postotak uredjaja koji iskoriavaju Bluetooth za razmenu podataka. Bluetooth je dobio naziv po Haraldu Plavozubom (eng. Harold Bluetooth) koji je bio poznat po svojim mogunostima diplomatskih pregovora, gde esto uspevao da napravi razumevanje i komunikaciju izmedu vie strana. Zbog toga je izabrano njegovo ime da simbolizira requeste i njegov cilj koji je zapravo da se uspostavi zajednicki WPAN komunikacioni standard. Srednji domet IEEE 802.11 # 802.11a standard ima teoretsku brzinu od 54 megabita u sekundi, no najee ona iznosi oko 30 megabita/s. Ovaj standard je skuplji jer WiFi kartice zasnovane na a standardu rade na viim frekvencijama (5GHz, za razliku od 2.4 GHz kod b i g standarda) # 802.11b standard predstavljen 1999. u isto vreme kada i 802.11. U ovakvim mreama brzina protoka podataka je do 11 megabita u sekundi, ali uz velike prepreke i smetnje brzina moe spasti na malih 1 do 2 megabita/s. Ovo je ujedno i najjeftinija varijanta WiFi mree. # 802.11g je predstavljen 2003. godine i objedinio je prethodna dva standarda. Rradi na 2.4 GHz, ali ima skoro istu brzinu kao i 802.11a standard. # 802.11n se oekuje sredinom 2007. godine (dostupna su draft izdanja). Prema oekivanjima standard bi trebao raditi 2.4 GHz, sa dosta poveanom najviom brzinom koja e iznositi do 540 Mbps Dugi domet Satelit: MMDS

SMDS

6

Prenos preko mobilnih telefona :GSM Global System for Mobile Communications ili krae GSM je najkoriteniji standard za mobilne telefone u svetu. GSM servis koristi preko 2 milijarde ljudi u vie od 212 drava i teritorija. GSM je celijska mrea, to znai da se mobilni telefoni prikljuuju na mreu traei elije koje se nalaze u blizini. GSM mree rade u etiri razliita frekvencijska opsega. Vecina GSM operatera radi na 900 MHz ili 1800 MHz. Neke drave na americkom kontinentu, ukljuujui SAD i Kanadu, koriste 850 MHz i 1900 MHz frekvencijski opseg. Rijede koriteni su 400 i 450 MHz frekvencijski opsegi koji se koriste veinom u Skandinaviji. Ostali standardi CDMA ,CDPD I TDMA.

2.1.1 OSI referentni systemAplikacioni (application Prezentacioni(presentation Sesioni (session) Transportni Mrezni sloj (network) Data Link layer Fizicki sloj (physical)

Fizicki sloj je zaduen za medijume preko kojih se informacije alju (koaksioni kablovi , optiki fiber ,sateliti,radio talasi) Sloj veze obezbedjuje pravilan rad fizikog sloja .Koristi metod detekcije koalizije i CSMA/CD ,provera i korekcija gresaka Bit parnosti. Sloj mreze obezbedjuje sledecen transportnom sloju mogucnost komunikacije izmedju krajnjih tacaka.Podrazumeva tehnike komutiranja(komutaciona poruka, komutacija paketa itd.). Transportni sloj zaduzen je za korisnicke servise.On obezbedjuje da gornji slojevi izvrsavaju svoje zadatke bez obzira na svoju specificnu mreznu strukturu.Funkcije transportnog sloja su : baferovanje ,multipleksiranje I upravljanjem konekcije. Sloj sesije sadrzi protokole koji obezbedjuje uspostavljanje konekcije.Bira nacin slanja full duplex ili half duplex. i nadredjen je transportnom sloju. Sloj predstavljanja definise efikasnu razmenu informacija a ne samo podataka.U ovom sloju vri se i kompresija podataka. Sloj aplikacije komunicira sa korisnikom i programskim aplikacijama.Sadri mrene aplikacije.

7

Podela OSI systema (Gornji slojevi su namenjeni korisnikim servisima dok su fiziki , sloj podataka, mreni sloj zadueni za obezbede mrenu komunikaciju. Transportni je prelazni sloj.)

2.1.2 Topologija mrea8

Pojam mrena topologija odnosi se na fiziki raspored raunara, kablova i drugih komponenti mree. Topologija je klasian pojam koji podrazumeva osnovni raspored mree, a pored pojma topologija koriste se i: fiziki raspored projekat dijagram mapa Mogucnosti mree koju koristimo zavise od topologije a takodje i od: vrste potrebne opreme za mreu mogunosti opreme razvoja mree naina upravljanja mreom

Mrena topologija podrazumeva niz uslova, od nje zavisi npr. Ne samo tip kablova koji e se koristiti ve i nain postavljanja kroz pod, zid ili plafon. Od topologije zavisi kako racunari medjusobno komuniciraju u mrei, razliite topologije zahtevaju drugaije metode komunikacije, a metod komunikacije ima veliki uticaj na mreu.

Klasine topologijeSvi mreni planovi potiu od tri osnovne topologije :

magistrale

9

zvezde

prstena .

Kada su raunari povezani u nizu jednim kablom, takva topologija naziva se magistrala. Kad se raunari povezuju pojedinanim kablovima koji se granaju iz jednog centralnog uredaja, haba, to je topologija zvezde. Ako su raunari povezani kablom koji formira petlju, to je topologija prstena. Mada izgledaju jednostavno, u stvarnosti se esto kombinuju svojstva vie topologija i dobija jedna koja je sloena. [1]

2.1.3 Ravnopravna mrea ( P2P )Peer-to-Peer (P2P) je mrea gde se nalazi mnotvo klijenta koji su ravnopravni u uceu, jedino je ogranienje brzina internet veze jednog klijenta. Ovakve mree se najvie koriste za deljenje dokumenata, video i audio podataka i tako dalje. Razlog lei u tome da ne postoji neko ko ce kontrolisati koji podaci se dele u mrei, jer ne postoji server niti neki glavni raunar koji nadgleda sve ostale. Svi su ravnopravi i dele podatke izmedu sebe. Postoje i posebni programi za deljenje podataka u P2P mreama, to su obino programi za deljenje audio i video 10

sadraja. Ako korisnik postavi upit, program pretrauje podatak pod tim imenom kod ostalih korisnika povezanih na P2P mreu. To je mnogo slobodnije nego kod klijentserver mrea, gde korisnik pretrauje sadraj samo jednog raunara, odnosno servera. Kod P2P mrea, korisnik pretrauje sadraj svih uesnika u mrei.[1] Nedostaci: P2P mreze su skoro uvek jednostavnije i jeftinije od C/S sistema, ali otvaraju brojna pitanja u pogledu PERFORMANSI i SIGURNOSTI MREE.

2.1.4 Naini beinog umreavanjaUmreavanje raunara moemo izvesti pomou ica ili bez ica. Najvie koriteni iani naini umreavanja su requeste umreavanje, te umreavanje pomou telefonskih i elektrinih instalacija. Za beino umreavanje se najvie koristi WiFi standard. Beino (en. Wireless) umreavanje je verovatno najjednostavniji nain umreavanja, nudi srednju brzinu, ne zahteva dodatne kablove, ali je i relativno skuplji od ostalih naina umreavanja, iako cena WiFi uredaja konstantno pada. Beino umreavanje je najjednjostavnije uz WiFi tehnologiju, gde nam je samo potrebna WiFi kartica (interna (PCI i PCMCIA) ili spoljna (USB)) u dva ili vie raunara da bi se isti umreili. Obino u kartice dode integrisana antena koja je dovoljna za manje mree, no mogue je koristiti i bolje, spoljne antene koje pojaavaju signal. Za prikljuivanje na neku mreu potreban je tzv. Hotspot, odnosno vorite na koji se spajaju svi ostali korisnici. Ako je mrea osigurana ona e traiti WEP ili noviji WPA (2) klju, a ako je slobodna onda nema nikakvih ogranienja za spajanje. Svako moe biti hotspot, jedino umesto obine kartice je potrebno kupiti Wireless Acces Point koji nudi pokrivenost od oko 30 metara, dok je uz razne pojaavae mogue bitno proiriti pokrivenost. Najskuplja varijanta, ali ona najbolja, je uzeti Wireless Access Point Router koji sadri prikljuak za DSL modem, Router, Ethernet Hub, Firewall i Access Point. Uz sve to mogue na samo taj uredaj prikljuciti jednu Ethernet mreu na koju ce biti prikljueni korisnici sa WiFi karticama, te svi zajedno imati pristup internetu putem DSL modema.Problem kod beicnih WiFi mrea je to mogu biti nesigurne, pogotovu starije mree sa WEP proverom koja je nesigurnija od WPA i WPA 2 enkripcije podataka. Osim toga WiFi uredaji troe malo vie struje od standardnih uredaja za raunarske mree.

11

2.2 File server ternimal(UNIX) I poredjenje sa klijent server arhiktekturomDistribuirana vie-korisnika arhitektura se realizuje sa vie raunara njihovim povezivanjem u LAN. Komponente se mogu nai na razliitim raunarima, ali podaci su obino na jednom raunaru koji ima ulogu file-servera. Glavna namena jeste zajedniko korienje fajlova. Klijent zahteva rekorde od fileserver-a. Intenzivan je saobraaj na mrei jer se fajlovi vraaju klijentu preko mree pa ih on lokalno pretrauje. Ovo je dobro za deljenje velikih data objekata tipa inenjerski crtei, dokumenti, slike... Nedostaci: File-server postaje usko grlo intenzivan je saobraaj na mrei. Sa poveanjem korisnika, pogoravaju se i performanse.

2.2.1 Centralizovana arhitekturaNajjednostavniju konfiguraciju (arhitekturu) raunarskih mrea predstavlja HOST arhitektura, kada jedan moan (mainframe) raunar opsluuje korisnike preko terminala tj. konfiguracije monitora i pohrane podataka. NFS Omoguava deljenje diskova i datoteka medju umreenim raunarima (Network File System). Svojstva ovakve arhitekture su: host je opterecen izvravanjem programske potpore monolitna programska potpora interaktivan rad korisnik-raunar tj. korisnik i raunar neprestano komuniciraju preko terminala spori mreni putovi, najee serijski protokoli mogunost koncentrisanja vie terminala na jedno suelje mogu rad na veim udaljenostima od host-a npr. Modemom mogua izmena poruka izmedju korisnika ali ne i podataka viekorisniki i vienamenski rad host raunara U sluaju prestanka rada host-a nijedan korisnik ne moe vie raditi niti komunicirati. U sutini to i nije mrena komunikacija ve se ista ostvaruje kad su dva ili vie host-ova medjusobno vezani, no nita se bitno ne menja u odnosu korisnik-raunar. PC raunar u tu svrhu dizajniranom programskom potporom, moe funkcionisati kao terminal. Tipina takva veza je kad se PC povee na BBS sastav informacija i komunikacija, koji jo omoguava transfer podataka (kopiranje). Suprotnost host arhitekturi raunarskih mrea je CLIENT-SERVER (korisnik-posluitelj) arhitektura utemeljena na povezivanju vie manjih raunara s posluiteljem koji korisniku prua ispomo u radu (server), ali je korisnikov rad na njegovom raunaru vei deo vremena odvojen od servera. Jedna od optih prihvaenih koncepcija je Windows NT kao posluitelj i Windows 95 kao korisnik. ema je slina ali je nain funkcionisanja potpuno razliit. Radna postava sa vlastitom programskom potporom koja iz memorije posluitelja poziva (podatke-

12

datoteku) u svoju radnu memoriju, samostalno obradjuje podatke i po obradi vraa ih posluitelju gde se uvaju i na raspolaganju su svim korisnicima mree. Periferije pojedinih raunara (kao tampa ili CD ROM) mogu se proglasiti kao zajedniki-deljivi (SHARE) mreni resursi.Posluitelj moe podravati izvravanje aplikacija (application server) ili preuzeti na sebe deo zadataka u obradi baza podataka (posluitelj baza podataka database server).Ako se iskljui posluitelj klijent ce samostalno i dalje raditi, ali ne moe koristiti zajednicke mrene resurse. Svojstva klijent server arhitekture su: razdeljena raunarska mo i programska potpora jeftiniji mreni resursi mogu samostalni rad korisnika rastereenost raunara-posluitelja od interaktivnog rada mogua upotreba vie servera sa odvojenim zadacima zajedniko koritenje periferija vea ukupna prilagodljivost i dogradnja Sa transakcionim serverom klijent pokree udaljene procedure koje se nalaze na serveru. Te procedure izvravaju grupu SQL instrukcija.Komunikacija se odigrava jednostavnim zahtev/odgovor porukamaSQL instrukcije su agregirane u transakcije! Kod se mora napisati i za klijent i za serversku stranu. Klijent je obino GUI. Server je obino OLTP sa transakcijama nad BP. Postoje dve varijante OLTP servera: 1.OLTP lite na bazi store procedura. 2.OLTP heavy na bazi TPM monitora.

2.2.2 Groupware ServeriGW adresira upravljanje polu-strukturiranim informacijama tipa: mail, tekst, slika, bulletin board, workflow... GW stavlja ljude u direktan kontakt. Mnogi GW produkti koriste e-mail kao middleware.

2.2.3 Objektni Aplikacioni ServerSa ovakvim serverom, c/s aplikacija je napisana kao skup objekata. Objekti komuniciraju preko ORB-a pozivanjem udaljenih metoda. ORB locira instancu te klase na serverskom objektu i vraa rezultate klijentskom objektu. ORB Object Request Broker Objektni Raspodejlivac RMI Remote Method Invocation

2.2.4 Web Aplikacioni Server

13

Ovi serveri omoguavaju klijentu da bude super-tanak (samo browser), dok je server debeo. Klijent poziva dokumente koriscenjem RPC-olikog protokla (HTTP), gde Requested predaje kao stringove. Server vraca rezultate po imenu dokumenta. Nova generacija: integracija weba i distribuiranih objekata: Object Web. Kada govorimo o dvoslojnim sistemima, i komponentama DIS, pitanje je do kog stepena treba vrsiti distribuciju tih komponenti. Kod dvoslojnih sistema aplikacija je ta koja vri prevagu da li ce reques da bude sa arhitekturom debeli server ili debeli klijent. Dakle, kada govorimo o dvoslojnoj arhitekturi aplikacija postoje: Debeli klijent obrada i prezentacija su na klijentu Debeli server - obrada i podaci su na serveru.

2.3 Klijent-serverKlijent-server je arhitektura gde su korisnik (klijent) i server odvojeni ili neravnopravni. Najoitiji je primer pregledanja Internet stranica. Korisnikov raunar i Internet preglednik su klijent oni zahtevaju, dok su raunar i baza podataka koji ine web stranicu server on posluuje. Klijent je obino aktivan korisnik, koji alje zahteve i eka dok se isti ne ispune, dok je server pasivan, eka na zahtjeve te ih ispunjava i alje korisniku. Serveri su obino veoma jake maine sa dobrim konfiguracijama i karakteristikama zbog toka to istovremeno moraju preraditi mnogo zahteva koji rastu iz dana u dan. Obino servere opsluzuju i posebni operativni sistemi za razliku od obinih klijent operativnih sistema, serverski operativni sistemi su u vie segmenata bolji i sadre naprednije opcije.

Kiljent server

2.4 Mreni protokoli

14

Mreni protokol je skup standardnih pravila za prikaz, signaliranje, i overavanja podataka, te proveravanje od greaka koje je potrebno izvriti da bi se podatak uopste poslao. Mreni protokol definie zajedniki skup pravila i signala prema kojima se ponaaju raunari koji su umreeni. Mreni protokoli su ujedno i najvaniji elementi jedne raunarske mree. Danas najpopularniji protokol za LAN mree je Ethernet (koji ujedno definie i ostale stvari kao to su signaliranje i formate paketa), i skoro da ima prevlast u raunarstvu. Za globalnu WAN mreu Internet se u najveoj meri koristi Internet protokoli (TCP/IP).[1] * Najpoznatiji protokoli Bluetooth Ethernet FDDI IEEE 1394 (FireWire, iLink) Frame relay IEEE 802.11 IPX Point-to-Point TCP/IP TCP Token Ring * Manje poznati i koriteni protokoli ARCNET AppleTalk ATM DECnet HIPPI IEEE-488 Myrinet QsNet SPX System Network Architecture X.25

2.5 Transmission Control ProtocolTCP je protokol za kontrolu prenosa podatka, takoe je deo TCP/IP-a (Transmission Control Protocol/Internet Protocol) koji je deo svakog raunarskog sistema. Njegova je uloga malo drugaija. Dok se IP brine za identifikaciju i vezu sa najveom od svih mrea, TCP se brine o razmeni podataka sa mreom, tako da pod njegom kontrolom lee podprotokoli i usluge koje se nalaze i na raunaru korisnika i na serveru kojem pristupa. Meu njima su FTP (file transfer protocol), news, gopher, telnet i drugi servisi koji se mogu ostvarivati TCP-om.[1]

2.6 Internet protokolInternet Protocol (IP) je protokol za komunikaciju izmeu izvora i korisnika preko Internet mree. Podaci preko IP-a se alju u paketima i to samo izmeu routera, a izmeu svieva (switch) u frame-ovima. Internet protokol je nepouzdan, jer ne osigurava da e paket podataka biti u ispravnom stanju ili, u najgorem sluaju, hoe li uopste doi. Svaki ureaj na mrei se identificira pomou IP adrese. IP adresa se prema trenutno vaeem Ipv4 protokolu sastoji od 32 bita. esto se ova 32 bita oznaavaju sa etiri decimalna broja podeljena takama, npr. 192.168.1.21. IP adresa ima dva dela:

15

mreni prefix koji identificira mreu i broj hosta koji odreuje pojedini ureaj na mrei. U zavisnosti od mrenog prefixa, mree se dele u pet klasa: A, B, C, D i E. U upotrebi su prve tri klase koje se meusobno razlikuju prema broju hostova koje mogu imati i opsegu adresa na osnovu koji se utvruje veliina mrenog prefixa. Mree koje operiraju na ovim protokolima definiu one koji im pristupaju preko specifinih adresa Internet protokola, popularno nazvanim IP adrese. IP adresama se jasno definie poloaj i identifikacija korisnika i kompanije koja prua usluge ostarivanja konekcije, ne itavom Internet-u.[1]

Pojmovi Internet protokola (IP)5. Aplikacijski sloj DHCP - Dynamic Host Configuration Protocol (DHCP) je skup pravila za komunikacijske ureaje, kao to su raunar, router ili ostale vrste mrenih adaptera, pomou kojih ureaj moe zahtevati i dobiti odgovarajuu IP adresu sa servera. DNS je u stvari jedna baza podataka u kojoj su upisana sva imena i odgovarajue Ip adrese pojedinih raunara, te skupina funkcija koje omoguavaju prevoenje istih. Treba naglasiti da npr. celi Internet, koji je takoe jedna velika mrea, koristi DNS mehanizam. FTP - File Transfer protocol, protokol za slanje i pregled fajlova na udaljenom raunaru. HTTP - Hiper Text Terminal Protocol , Protokol za prenos hiperteksta. To je osnovni protokol, kojim se prenosi komanda serveru i kaze mu se koju stranu da posalje klijentu. Adresiranje te strane poinje sa "http://", a zatim sledi ime domena i IP adresa. IRC je skraenica od "Internet Realy Chat" znai razgovaranje na internetu u realnom. vremenu. POP3 - Server za dolaznu email postu.( tip adrese servera pop3.mail.yahoo.com npr.) SMTP - Server za odlaznu Email potu. (Kod podeavanja MsOutLook-a primer. Stmp.mail.Server.com) TELNET (en. TELetype NETwork) je mreni protokol unutar IP grupe protokola na Internetu ili u lokalnim mreama koji korisniku omoguava da se sa svog raunara pomou istoimenog interaktivnog klijentskog programa spoji na fiziki udaljeni server i na njemu izvrava neke operacije. Taj server, koji jo nazivamo i udaljeni raunar, uglavnom radi pomou nekog od UNIX operativnih sistema. 4. Prenosni sloj TCP -je protokol za kontrolu prenosa podatka, takoe je deo TCP/IP-a (Transmission Control Protocol/Internet Protocol) koji je deo svakog raunarskog sistema UDP - User Datagram Protocol je protokol za internet koji radi sa IP protokolom.

16

UDP/IP alje direktno pakete preko IP mree, veinom se koristi za slanje pisanih poruka preko mree. 3. Mreni sloj IP (Ipv4 i Ipv6) IP protokol verzija 4, ili krae IPv4 je najraireniji IP protokol na Internetu. Pojedine verzije IP protokola se razlikuju po nainu adresiranja, izgledu zaglavlja paketa ali i brojnim drugim detaljima. Najvanija karakteristika IPv4 protokola je da koristi 32-bitnu IP adresu, tj. propisana duina svake IP adrese u ovoj verziji protokola je 32 bita. IP protokol verzija 6, ili krae IPv6 je relativno nova verzija IP protokola koja pretenduje da postane slijedea standardna verzija komunikacijskog protokola na Internetu. Trenutno najrairenija verzija je IP verzija 4, ili krae IPv4. Pojedine verzije IP protokola se razlikuju po nainu adresiranja, izgledu zaglavlja paketa ali i brojnim drugim detaljima. Najvanija karakteristika IPv6 protokola je da koristi 128-bitnu IP adresu, tj. propisana duina svake IP adrese u ovoj verziji protokola je 128 bita. 2. Sloj veze Ethernet Tehnologija gde se podaci alju u paketima koji su prilagodeni za slanje preko raunarske mree. FDDI - Fiber Distributed Data Interface je skup ANSI protokola za slanje digitalnih podataka preko optikog kabla. FDDI mree su token mree te podravaju brzine do 100 Mbps. FDDI mree su obino osnova WAN mrea. Framerelay je sinhronizovana mrea temeljena na HDLC protokolu. Podaci se alju u HDLC paketima. Frame relay se obino koristi za prenos podataka izmeu lokalnih (LAN) i irokopojasnih (WAN) mrea. PPP Point-to-Point Protocol (PPP) slui za ostvarivanje direktne veze izmeu dva vora. Najei sluaj je prikljuivanje raunara pomou serijskog kabla, telefonske linije, optikih vlakana ili UTP mrenih kablova. Veina Internet kompanija koriste PPP za dial-up pristup internetu. Takoer je mogu PPP preko Etherneta (PPPoE), povezujui neki DSL modem sa raunarom preko mrene kartice to je mnogo bre nego povezivanje sa USB ili nekom drugom sabirnicom. PPP je dizajniran da radi sa protokolima treeg sloja OSI referentnog modela.

1.Fiziki sloj Bluetooth RF - Bluetootha je mogue razmeniti informacije izmedju uredjaja kao to su mobilni telefoni, laptopi, raunari, printeri, digitalni fotoaparati itd. Fiziki Ethernet - je mrena tehnologija za LAN mree, temeljena na frame nainu rada. 17

ISDN - Integrated Services Digital Network (ISDN) je internacionalni standard za digitalne telekomunikacione mree.Osnovni pristup predstavlja BRA - Basic Rate Access koji se sastoji od 2B+D kanala 2*64 kbps za podatke + 16 kbps za signalizaciju (144 kbps). Zakupom jedne ISDN veze dobiju se 3 telefonska broja. No, takoer je mogue dokupiti jo ak 5 brojeva, tako da moemo ostvariti ak 8 istovremenih razgovora. Zavisno o potrebi, prenos podataka se moe odvijati brzinom od 64 kbps (1 kanal) ili 128 kbps (2 kanala). Modemi - Uredjaj za komunikaciju izmedju dva raunara ili raunara i globalne mree. RS232 Stariji protocol za komunikaciju raunara preko seriskog porta raunara (9 pinskog ili 25 pinskog) USB - Universal Serial Bus (USB) je vanjska sabirnica (prikljuak) za razne ureaje kao to su printer, mi, tastatura, digitalna kamera, modem. Pojavio se 1996. godine, a zaivio tek 1998. Karakterie ga visoka brzina, te jednostavnost instaliranja ureaja, pogotovu sa novijim verzijama operativnih sistema (Plug & Play princip).USB 1.1 standard je stari standard (iako se jo koristi) koji ima brzinu od 12Mbps (megabit po sekundi, 1 Bajt = 8 Bita), a USB 2.0 standard, koji se pojavio 2000. godine, podnosi brzine do 480Mbps koji je ve u dobroj meri zamenio USB 1.1 standard, ali i serijske i paralelne prikljuke. Wi-Fi - Beino (en. Wireless) umreavanje je verovatno najjednostavniji nain umreavanja, nudi srednju brzinu, ne zahteva dodatne kablove, ali je i relativno skuplji od ostalih naina umreavanja.

2.7 SoftverRaunarski softver ili softver (en. Software) je u biti raunarski program napisan tako da je njegov sadraj lagano promeniti (mogue i pomou nekog programa). Softverov glavni zadatak je da upravlja hardverom, izvrava izraunavanja, te da obezbijedi komunikaciju sa ostalim, isto tako, softverom, tanije reeno programom. Termin software prvi put koristi John W. Tukey 1957. godine. U raunarstvu raunarski softver su sve informacije koje se obrauju preko raunara ili programa. Alan Turing je bio prvi koji je propisao koncept softvera u svom naunom radu.[2]

2.8 Veza sa hardveromSoftver ne moe raditi bez hardvera, kao to hardver ne moe raditi bez softvera. Na hardveru (kao to je hard disk) se nalazi softver (kao to je operativni sistem), softver upravlja hardverom. Obino, softver sa hard diska se uitava na RAM memoriju odakle se prosleuje procesoru koji izvrava naredbe koje sadri neki program (softver). Najnii nivo softvera je mainski kod (binarni kod), najjednostavniji oblik programa koji je obino teko promeniti.

18

Softver se zato ee pie u programskim jezicima vieg nivoa koje ljudi mnogo bolje razumeju nego li nule i jedinice. Za prevoenje programskih naredbi se koristi kompajler koji ponovo prevodi taj kod u, najnii, mainski kod koji raunar razumije (nule i jedinice). Raunarski softver se dijeli na tri glavne grane: sistemski softver, izvrni softver, programski softver. Sistemski softver pokree raunar. To moe biti operativni sistem, drajver, server, razni alati i ostalo. Operativni sistem dobija pravo da upravlja celokupnim raunarom, podacima, procesima itd. Najpoznatiji operativni sistemi su Microsoft Windows, Linux i Mac OS X. Izvrni softver omoguava korisniku da izvrava odreene zadatke. To moe biti poslovni softver, edukacijski softver, baza podataka, office paketi i ostalo. Programski softver je obino alat koji pomae nekom programeru da izvri neki zadatak koristei neki programski jezik. To moe biti ureiva teksta, kompajler, interpreter, linker, debugger i tako dalje. U raunarskoj grafici se koristi termin grafiki softver, koji je specijaliziran za rad sa grafikom. [2]

3.Klijent server arhitektura i baze podataka u klijent server okruzenju3.1 OpteU oblasti raunarstva nove tehnologije se uvode vrtoglavom brzinom. Kompanije su u stalnoj trci za svoj deo trita i za poveanje profita zbog ega sve bre plasiraju inovacije u hardveru, softveru i modelima obrade podataka. Jedna od revolucionarnih promena u raunarskoj tehnologiji dogodila se u zadnjoj deceniji. irenje upotrebe mini i mikroraunara dovelo je do nastanka tehnologije obrade podataka po modelu klijent server. Uvoenje mini raunara stvorilo je uslove za ekonomsku opravdanost decentralizacije raunarskih resursa do nivoa sektora preduzea. Klijent/server model je baziran na distribuciji funkcija izmeu dva tipa nezavisnih i autonomnih procesa: servera i klijenta. Klijent je bilo koji sistem koji zahteva specifine usluge od server procesa. Server je sistem koji obezbeuje usluge za klijenta. Klijent i server mogu biti smeteni u istom raunaru ili u razliitim raunarima povezanim preko mree. U sluaju da su klijent i server procesi smeteni u dva ili vie nezavisnih i umreenih raunara, server sistem moe da obezbedi usluge za vie od jednog klijenta. Pored toga, klijent moe zahtevati usluge i od vie servera iz okruenja bez obzira na njihove lokacije ili fizike karakteristike raunara na kojima se nalaze server procesi. Mrea slui da povee servere i klijente zajedno obezbeujui medijum kroz koji klijenti i serveri komuniciraju.[2]

3.2 Proces ostvarivanja konekcijeTipian (ali ne i obavezan) scenario po kome radi klijent/server arhitektura je sledei: 19

o Server request se startuje na nekom raunaru (na kome je smeten), inicijalizuje se, a zatim prelazi u o sleep mod i eka da ga neki klijent sistem kontaktira i zatrai neki servis od njega. Klijent request se startuje na istom ili nekom drugom raunaru koji je preko mree povezan sa raunarom na kome se nalazi server. Klijent procesi se esto inicijalizuju od strane interaktivnih korisnika koji zahtevaju izvrenje odreenih komandi. Klijent p o Proces alje zahtev putem mree do servera traei odreenu uslugu od njega. Kada server request zavri posao (servis) koji je od njega zahtevan od strane klijenta, prelazi ponovo u sleep mod i eka sledei zahtev za nekom uslugom.[2]

3.3 Preporuke u vezi baza podataka kojima manipulisu klijent server aplikacijePosmatrajmo jednu bazu podataka koja je projektovana da radi u klijent/server okruenju. U ovom sluaju, klijent sistem zahteva podatke od servera baze podataka. Obrada zahteva (selekcija zapisa) se obavlja na server maini. Drugim reima, serverov request selektuje zapise koji odgovaraju kriterijumu selekcije i alje ih preko mree klijent procesu. Selektovane podatke dalje koristi klijent koji ih moe pregledavati, brisati, aurirati... Znai, server ne obavlja celu obradu podataka iz baze, a klijent dobija samo potrebne zapise. Razdvajanje programa (zadataka koji obrauju podatke) na klijenta i servera je jedna od kljunih razlika izmeu klijent/server okruenja i mainframe sistema. U mainframe sistemima celokupna obrada se obavlja na mainframe strani, a terminal se koristi samo za prikaz podataka na ekranu. Klijent/server sistem obezbeuje jasno odvajanje server i klijent procesa i njihovu autonomiju. Relacija izmeu klijenta i servera je M:N, gde jedan server moe obezbediti usluge mnogim klijentima, a sa druge strane, jedan klijent moe koristiti usluge vie servera. Dobre strane klijent/server arhitekture uglavnom proizilaze iz injenice da se klijent i server komponente sistema uglavnom izvravaju na razliitim raunarima. U sistemu se svaki raunar moe odabrati tako da najbolje ispunjava zahteve koji se od njega oekuju. Tako, na primer, za server je pogodno koristiti raunar sa monim procesorima, velikim kapacitetom diskova i sa mnogo radne memorije, ime server moe da efikasno opsluuje istovremene zahteve velikog broja klijenata i da skladiti velike koliine informacija. Za aplikacije klijenata je bolje da se izvravaju na slabijim raunarima sa minimalnim kapacitetom diskova i minimalnom memorijom, ali sa velikim multimedijalnim mogunostima. U klijent/server arhitekturi se mogu nai razliiti tipovi raunara, kao to su PC, PowerPC, RISC radne stanice, miniraunari pa ak i mainframe. Svaki od ovih raunara moe imati i svoj operativni system. Sistem zasnovan na klijent/server modelu je veoma fleksibilan i otvoren za sve vrste izmena hardvera i softvera. Na primer, server se moe zameniti novim bez izmene funkcionalnosti aplikacija klijenata. Proirivanje sistema se moe obaviti veoma lako. Novi korisnici se mogu lako prikljuiti na mreu sa novim radnim stanicama. Jedna od prednosti klijent/server sistema je i njegovo korienje radi lakeg razvoja pojedinih delova sistema. Na primer, prilikom razvoja aplikacije za klijenta

20

sistem se bavi samo nainom analize i predstavljanja podataka, dok je upravljanje podacima preputeno serveru i taj deo aplikacije ne mora ponovo da se pie.[2]

3.4 Komponente i arhitektura u kijent server sistemimaKlijent/server arhitektura se zasniva na hardverskim i softverskim komponentama koje interaguju formirajui na taj nain sistem. Ovaj sistem sadri tri komponente: klijent, server i komunikacioni posrednik. Klijent je bilo koji raunarski sistem koji zahteva usluge od servera. Klijent, poznat jo i kao eona aplikacija, odraava injenicu da je krajnji korisnik obino u sistem sa klijent procesom. Server je bilo koji raunarski sistem koji eka na zahteve od klijenata i obezbeuje potrebne usluge za klijente shodno pristiglim zahtevima. Poznat je i kao pozadinska aplikacija. Komunikacioni posrednik je bilo koji raunarski sistem ijim posredstvom komuniciraju klijent i server. Sastavljen je od nekoliko softverskih nivoa koji pomau pri prenosu podataka i upravljakih informacija izmeu klijenta i servera. Komunikacioni posrednik je obino povezan sa mreom. Zahtevi i odgovori servera putuju kroz mreu u obliku poruka koje se sastoje od informacija za kontrolu prenosa podataka. Za ilustraciju interakcije komponenata moe da poslui primer kada klijent zahteva servise od procesa baze podataka. Izvrenje aplikacije je razdvojeno na dve glavne i nezavisne komponente, klijent i server, a komunikacioni posrednik omoguava klijent i server procesima da rade zajedno.Najpre klijent 21equest alje zahtev do komunikacionog posrednika. Komunikacioni posrednik prosleuje SQL zahtev do server procesa za baze podataka koji prima zahtev, potvruje ga i izvrava. Potom server alje selektovane podatke komunikacionom posredniku koji ih prosleuje i formatira za klijent sistem, a ovaj prima podatke i prikazuje ih korisniku. Klijent sistem je odgovoran za interfejs krajnjeg korisnika, neku proveru lokalnih podataka, neku obradnu logiku i prikaz podataka. Komunikacioni posrednik obezbeuje da poruke izmeu klijenta i servera ispravno putuju kroz mreu i stignu na svoje odredite. Obrada SQL zahteva se vri na serveru. Server request potvruje izvravanje zahteva i alje rezultat klijentu. Komponente klijent/server arhitekture moraju se povinovati nekim osnovnim principima kako bi meusobno delovale ispravno. Ovi principi moraju biti jednoznano upotrebljivi u komponentama klijenta, servera i komunikacionog posrednika. Principi koji moraju biti ispunjeni su: Hardverska nezavisnost. Procesi klijenta, servera i komunikacionog posrednika treba da imaju mogunost izvravanja na razliitim hardverskim platformama (IBM, DEC, Apple itd.) bez ikakve funkcionalne razlike. Softverska nezavisnost. Procesi klijenta, servera i komunikacionog posrednika treba da podravaju razliite operativne sisteme (DOS, Unix, OS/2), razliite mrene protokole (TCP/IP, SPX/IPX) i razliite aplikacije (baze podataka, radne tabele, elektronska pota itd.). Otvoreni pristup za servise. Svi klijenti u sistemu moraju imati otvoren pristup svim servisima svih servera koji postoje u mrei i to onoliko puta koliko oni to zahtevaju. Servisi ne smeju zavisiti od lokacija klijenata i servera u mrei. Kljuna stvar je da se servisi obezbeuju na zahtev klijenata. 21

Distribucija procesa. Obrada podataka je distribuirana izmeu klijenta i servera. Podela optereenja obrade mora se povinovati sledeim zahtevima: Klijent i server procesi moraju biti autonomni, sa jasno definisanim granicama i funkcijama. Ova osobina omoguuje jasno definisanje funkcionalnosti obe strane. Lokalno korienje resursa (i klijenta i servera) je maksimalno. Procesi klijenta i servera moraju potpuno koristiti snagu obrade glavnog raunara. Ova osobina omoguuje dodelu zadataka raunaru koji najvie funkcionalno odgovara. Potrebno je da procesi budu takvi da mogu biti lako i to bolje izvreni na vie snanih hardverskih platformi. Potrebno je jo da bude ispunjen i uslov prenosivosti softvera izmeu razliitih maina bez potrebe da se intervenie na izvornom kodu, ve je potrebno samo izvriti prevoenje i povezivanje kako bi softver odmah moga da se upotrebi. Interoperabilnost i integracija zahtevaju da procesi klijenta i servera budu integrisani u bezavnu formu sistema, tj. razliite aplikacije imaju mogunost razmene podataka izmeu razliitih hardverskih platformi i operativnih sistema bez obzira na udaljenost, opremu, tip operativnog sistema i dr. Izmene server procesa moraju biti transparentne za klijent procese. Standardi. Svi principi moraju biti bazirani na standardima primenjenim unutar klijent/server arhitrkture. Na primer, po standardima se mora upravljati korisnikim interfejsom, pristupom podacima, mrenim protokolima, meuprenosnom komunikacijom, itd. Univerzalni standardi jo uvek ne postoje ve ima mnogo razliitih standarda koji se mogu primeniti. Na primer, aplikacija moe biti bazirana na ODBC (Open DataBase Conectivity) umesto IDAPI (Integrated Database Application Programing Interface) za pristup podacim i moe koristiti SPX/IPX umesto TCP/IP mrene protokole.[2]

3.5. Funkcije klijent server3.5.1 KlijentKlijent je bilo koji sistem koji zahteva usluge od serverovog procesa. Klijent zapoinje konverzaciju sa serverom. Klijent sadri hardverske i softverske komponente i poeljno je da one poseduju sledee karakteristike: Ne toliko snaan hardver Operativni sistem koji je sposoban da podri multitasking Grafiki korisniki interfejs (GUI Graphic User Interface) Komunikacione sposobnosti 22

Hardver klijenta je obino stoni raunar (PC ili radna stanica, a u poslednje vreme se koristi i X-terminal koji jedan de potrebnog klijent/server softvera dri u ROM-u, a ostatak se puni u RAM memoriju sa servera preko mree). Klijent bi trebalo da poseduje operativni sistem sa neto malo multitasking mogunostima. Kombinacija DOS/Windows ili Windows 95 su trenutno najkorienije klijent platforme. Mad DOS ima jaka ogranienja u pogledu memorije i podrke multitaskinga, Windows 3.1 obezbeuje primitivne multitasking osobine i GUI. Windows 95 kao samostalan operativni sistem podrava multitasking i sve vie zamenjuje DOS/Windows kombinaciju. Ove osobine kao i mnotvo razvijenih aplikacija za ove operativne sisteme ine ih vrlo pogodnim za klijent/server implementaciju. Kombinacija hardvera i operativnog sistema mora obezbediti adekvatno povezivanje sa raznim mrenim operativnim sistemima. Servisi mogu biti rasporeeni na razliitim mreama i klijent raunari moraju biti sposobni da pristupe svim tim servisima. Zbog toga, bez obzira na popularnost DOS/Windows kombinacije i Windows-a 95, kao bolja reenja za klijent operativne sisteme se javljaju Windows NT, OS/2, Unix. Klijent aplikacija se startuje pod nekim operativnim sistemom i povezuje se sa komunikacionim posrednikom radi pristupa slobodnim servisima na mrei i ove aplikacije su uglavnom zasnovane na grafikom korisnikom interfejsu sa namerom da se sakrije kompleksnost od krajnjeg korisnika. Klijent aplikacija interaguje sa operativnim sistemom radi korienja multitaskinga i grafikog korisnikog interfejsa koje on obezbeuje. Ona jo intereaguje i sa mrenom softverskom komponentom komunikacionog posrednika radi pristupa servisima. Hardverska komponenta komunikacionog posrednika (mrena kartica i mreni kabl) fiziki transportuje zahteve i odgovore na zahteve izmeu klijenta i servera. Dok se zahtev izvrava na serveru, klijent je slobodan da izvrava druge poslove.[2]

3.5.2 ServerServer je bilo koji protokol koji obezbeuje servise za klijente. On je reaktivan jer uvek eka na zahteve klijenta. Posmatrano sa strane usluga koje pruaju klijentima tipini su sledei servisi: File servisi koji slue za upravljanje datotekama. Klijent povezan na mreu moe pamtiti datoteke na file serveru kao da je to njegov lokalni disk. Kada klijent zahteva podatke iz neke datoteke, File server mu prosleuje celu datoteku koju klijent dalje pretrauje i obrauje. Print servisi, koji se obezbeuju tako to se jedan ili vie tampaa poveu preko nekog raunara sa klijentima. Klijent moe pristupiti bilo kom tampau kao da je direktno povezan sa njim. On alje serveru podatke koje treba odtampati, podaci se privremeno smetaju na disk servera odakle se potom alju na odgovarajui tampa. Faks servisi, pri emu je najmanje jedan server opremljen (internim ili eksternim) faks ureajem. Klijent ne mora imati faks ili ak ni telefonsku liniju, ve on predaje faks serveru podatke koje treba poslati zajedno sa imformacijom kome ih treba poslati, a server sam obavlja prenos podataka faksom. Komunikacioni servisi dozvoljavaju klijentima koji su povezani na komunikacioni server, da pristupe drugim host raunarima ili serverima za koje nisu direktno povezani.

23

Serveri baza podataka ine najiru i dosta uspenu klijent/server implementaciju. U ovom sluaju klijent alje SQL zahtev serveru; server prima zahtev, potvruje ga, izvrav i alje rezultat klijentu. Podaci i softver za upravljanje podacima se nalaze na serveru baze podataka. Od klijenta se zahteva Samo da ima eonu aplikaciju za pristup serveru baze podataka. Transakcioni servisi se sastoje od baze podataka, sistema za upravljanje bazom podataka (DBMS DataBase Managment System) i procedura za manipulaciju podacima. eona aplikacija na klijentu alj zahteve transakcionom serveru na kome se izvravaju specijalne procedure koje koje su instalirane na njemu. SQL kod ne putuje kroz mreu ime je redukovan mreni saobraaj pa ovaj server ima bolje performanse od servera baze podataka. Raznovrsni servisi koji ukljuuju CD-ROM, video i dr. Server, takoe poseduje softversku i hardversku komponentu. Raunar koji radi kao server mora biti mnogo snaniji od uobiajenih klijent raunara zato to server procesi moraju da zadovolje konkurentne zahteve vie klijenata. Ovi raunari obino imaju veu procesorsku snagu (ne retko i vie snanijih procesora), vei kapacitet operativne memorije i vei kapacitet diskova nego raunari klijenata. Kao server platforme se mogu koristiti jai PC raunari, RISC raunari ili veliki raunari ako je u pitanju upravljanje velikikim bazama podataka ili upravljanje velikim mreama i sl. Od savremenih server maina se zahteva podrka multiprocesiranju, disk poljima,mehanizmima obrade viestrukih niti (multithreading) memorijskim podsistemima, itd. Podrka disk poljima podrazumeva pristup redudantnim jeftinim diskovima (poznatim kao RAID diskovi) to uvodi pouzdanost u radu sa diskovima u smislu oporavaka od greaka (otkaz nekog diska).[2] Mehanizam viestrukih niti omoguava da se procesi podele na vie nezavisnih izvrnih poslova, ime se obezbeuje da aplikacije mogu izvravati vie simultanih zadataka. Nit predstavlja najmanji 24equest koji 24eques moe planirati za izvrenje. Podrka memorijskim podsistemima podrazumeva primenu ECC (Error Correction and Detection Code) mehanizma kao i proveru pariteta da bi se ibegao gubitak podataka koji od servera putuju ka klijentu o obratno. Kada su u pitanju serveri potrebna je izatita od problema u napajanju elektrinom energijom to se obino obezbeuje ureajem za neprekidno napajanje. Potrebno je obezbediti mogunost za proirenje CPU-a, memorije, diska i periferija. Za operativni sistem servera se najee bira operativni sistem sa mrenom podrkom (Windiows NT ili Unix), ali to nije obavezno. Ide se na to da se odvoje server procesi i mreni operativni sistem jer u tom sluaju server raunar se rastereuje za izvravanje zahteve koji do njega stiu preko nekog mrenog raunara koji sada preuzima obavezu da zahteve prosledi do servera. Server aplikacija se startuje pod operativnim sistemom i interaguje sa komponentom komunikacionog posrednika radi oslukivanja klijent zahteva za servisima. Ova aplikacija ne mora biti zasnovana na grafikom korisnikom interfeju. Kada zahtev bude primljen, server procesi ga lokalizuju (odreuju adresa klijenta koji je poslao zahtev). Server zna kako treba da obradi zahtev tako da mu klijent saoptava samo ta, a ne i kako treba uraditi. Kada se obradi zahtev, odgovor se alje klijentu preko komunikacionog posrednika. Jedan raunarski sistem moe biti jasno podeljen na klijent i server komponente. Za server procese postooje sledei principi:

24

Lokaciona nezavisnost, to znai da server request moe biti smeten bilo gde u mrei. Optimizacija resursa server sistem mogu deliti vie klijenata. Skalabilnost, to znai da server sistem moe biti startovan na vie snanih platformi. Server procesi bi trebalo da rade u plug-and-play okruenju.[2]

3.6 Dvoslojni i troslojni Klijent / server sistemiNajvei broj informacionih sistema obuhvata module koji krajnjem korisniku, putem GUI interfejsa, olakavaju pregled i unos podataka, ali i proveravaju podatke i manipuluu bazom. Moduli su organizovani u obliku klijent / server sistema, u dva, tri ili vie slojeva. Dvoslojni klijent / server sistemi obuhvataju module u kojima su GUI i poslovna logika sadrani u istoj aplikaciji (klijentu), dok se relaciona baza nalazi na serveru. Klijent stvara korisniko okruenje i proverava ispravnost podataka. Troslojni klijent / server sistemi zasnovane su na malom klijentu (thin client), koji samo stvara GUI, dok podatke prosleduje jakoj aplikaciji koja se nalazi na serveru i koja reava poslovnu logiku i preuzima na sebe komunikaciju sa relacionom bazom. Pojavom Jave u mogucnosti smo da stvorimo vieslojne i vieplatformske klijent/ server sisteme. Oni obuhvataju veliki broj jakih server aplikacija i razliitih relacionih baza na vie nivoa, a klijent moe, komunicirajuci posebno sa svakom pojedinanom server aplikacijom, komunicirati sa vie baza podataka. Ulogu malog klijenta moe da odigra i obian applet, to nas uvodi u oblast distribuiranog programiranja, u kojoj se Java programeri oseaju kao riba u vodi. Putem RMI ili CORBA poziva, Java klijent moe pozivati metode na udaljenim serverima i pristupati bazama podataka. RMI (Remote Method Invocation), koncept koji omogucava Java Java komunikaciju i pozivanje metoda iz udaljenih Java aplikacija od strane Java appleta, Java IDL (jezik kojim se definiu interfejsi po CORBA standardu u Javi i, preko ORB-a (Object Request Broker), pozivaju metode u programima napisanim u bilo kom programskom jeziku koji podrava CORBA standard) i JDBC. Postaju jako sredstvo za pisanje distribuiranih, vieslojnih i viekorisnickih klijent / server aplikacija za pristup relacionim bazama podataka. Podatak da su na Zapadu najtraeniji Java programeri upravo sa znanjem JDBC, RMI i CORBA, dovoljno govori o pravcu u kome e se distribuirano Java programiranje razvijati. Zato emo na jednostavnom primeru pokazati jednostavnost komunikacije Java programa sa bazom podataka.[2] Dvoslojna klijent/server aplikacija se tipino sastoji od runo pisanog klijentskog softvera koji implementira i korisniki interfejs i komunikaciju sa udaljenom bazom podataka, kao to je SQL Server, radi postizanja aurnosti podataka. Dakle grafiki korisniki intrerfejs se obavezno nalazi na klijentskoj maini, DBMS (DataBase Managment System protokol za upravljanje bazom podataka) obavezno na serveru, dok se poslovni deo sistema (sama obrada) moe nalaziti ili na klijentu ili na serveru. Jedan od vanih principa koji je ispotovan u dvoslojnoj arhitekturi je princip transparentnosti, tako da korisnik ne mora da zna na kojim se platformama izvravaju delovi softvera informacionog sistema. Takode postoje realizovani DBMS kod kojih je

25

server baze distribuiran na vie platformi, ali se za korisnika stvara iluzija o jedinstvenosti servera baze. Jedinstvenost pogleda na bazu je podrana na vie nivoa, od operativnog sistema do samog DBMS. Taka oslonca u formiranju takvih sistema je SQL-92 standard.[5] U troslojnim sistemima, javlja se nezavisni aplikacioni server, ime se rastereuje server baze podataka ili klijentska maina. Za razvoj grafikog korisnikog interfejsa se uglavno koriste jezici za vizualno programiranje kao C++, Delphi ili alati poput PowerBuilder-a. Programiranje aplikacionog servera je uglavnom zasnovano na univerzalnim programskim jezicima (C++) uz koricenje univerzalnih CASE alata. Server baze podataka se uglavnom oslanja na neki od proizvoda kao to su ORACLE, MS SQL Server, Informix, Sybase SQL Server. U ovakvim arhitekturama transparentnost je uglavnom zasnovana na reenjima proizvodjaa DBMS-a, to znaci da organizacija ima svoj intranet na koji oslanja reques za upravljanje bazama podataka. Pojava Web-a dovela je do proirenja koncepta transparentnosti. Umesto transparentnosti mree, pomou Web-a je postignuta transparentnost u odnosu na servere (Web servere) koji uvaju dokumenta u obliku hiperteksta. To omogucava da se ostvari pristup podacima po sadraju, ne obazirui se na platformu, operativni sistem raunara, lokaciju raunara i sl. Osnova za takvu transparentnost je jedinstven standard za kreiranje Web dokumenata HTML i pojava Web browser-a (npr. Netscape) za sve postojee platforme. Svi ovi elementi su prisutni i na Web-zasnovanoj aplikaciji, iako u malo drugacijoj formi. Klijent softver se implementira u nekoj kombinaciji HTML i serverovog sistem koda. Korisnicki interfejs se oslanja na HTML, dok reques kod ini vezu sa bazom podataka. Komponente na server strani slue istoj svrsi kao i kod runo pisanog programa i obino im se pristupa preko reques koda. Neke komponente, kao one za pristup serveru i bazi podataka su osnovna grada Web-zasnovane aplikacije. Na serverskoj strani najosnovniji element su servisi za rad nad podacima, ali pored njih postoje i neki dodatni servisi kao to su HTTP Server ili Internet Information Server. Dok prvi omogucava pozivanje statickih HTML strana, drugi pored toga omoguava rad sa dinamikim stranama neophodnim za implementaciju klijent/server aplikacije na Web-u.[5]

26

Troslojna Klijent server struktura[5]

AspJedan od protokola koji su namenjeni da unaprede interfejs ka reques kodu je Active Server Pages (ASP). To je standardna HTML strana sa reques kodom ugradenim (requeste) u sam requeste. Projekat moe da koristi ugradjeni kod da bi imlpementirao obradu podataka zajedno sa HTML stranom. Nadalje, on moe pomou reques koda da pristupi eksternim delovima aplikacije ili da se povee direktno sa bazom podataka. Kada browser zatrai ASP ugradeni reques se izvri od strane scripting engine na serveru i rezultati se dinamiki kombinuju sa HTML pre nego to se requeste vrati browser-u. Na raspolaganju su reques jezici Visual Basic Script (VBScript), JavaScript (Jscript), REXX, PERL i mnogi drugi jezici. ASP nudi i druga unapredjenja u odnosu na standardni CGI oblasti generisanja strane, odravanja i unapredjenja performansi. ActiveX Server Components Implementiranje klijent/server reenja na Internet predstavlja izazov sa kojim se obino ne sueljavamo u tradicionalnijim klijent/server okruenjima. Kada se instalira tradicionalna klijent/server aplikacija, zajedno sa njom se instalira i sav pratei softver neophodan za njeno izvravanje. To ukljuuje i softver za podrku bazama podataka, bilo da je integrisan u aplikaciju ili da je isporuen kao sistemski softver (npr. ODBC). Ovo nije uvek mogue u Web-zasnovanoj aplikaciji. Razliiti browser-i podravaju razliite kontrole, dok ih neki ne podravaju uopte. U svakom sluaju veliina softvera koji podrava funkcionalnost kao to je pristup bazama podataka ini download nepraktinim. ActiveX Server Components je projektovan da reava ove probleme.

27

IIS 3.0 se isporuuje sa velikim brojem korisnih predefinisanih komponenti. Mnogi programski alati su sposobni da grade ove komponente, kao to su: MS Visual Basic, Delphi, PowerBuilder i drugi. Svaka ActiveX Server komponenta je dostupna preko ASP skriptova. Ove komponente su ono to daje snagu ASP-u. Osnovne komponente nude irok izbor usluga (servisa) piscu skripta, od administracije veza sa korisnicima do pristupa bazama podataka. Mnoge od ovih funkcija bi bilo veoma teko ostvariti u tradicionalnom okruenju; mogunost da se lako referenciraju u okviru HTML strane predstavlja veliku utedu u vremenu razvoja. [5]

4.TCP/IP4.1 Opis protokola i paketa

Protokol je standard za kog programi moraju biti napisani. Znai requeste odredjuje nain slanja podataka preko mree.TCP/IP rad na TCP/IP protokolima je poeo jos 1973 godine. To je set mrenih protokola koji dozvoljavaju svakom raunaru, svakom sistemu da uspostavi vezu sa drugim sistemom koristei mrenu topologiju. 1978 god. Zavren je rad na Ipv4, koji koristimo i dan danas medjutim novi i moderniji Ipv6 polako preuzima primat. *Barkaley University* je prvi put u svoju verziju UNIXa,BSD ugradio TCP/Ipprotokol. BSD je bio veoma omiljen u istraivakim centrima i univerzitetima. Takodje bio je besplatan. TCP/IP dodje kao skup svih tih protokola koji omoguavaju prenos podataka preko mree i to u bilo kom formatu. Znai slike,tekst sve moete prenositi preko mree.... A sada malo o TCP/IP arhitekturi.TCP/IP je modularan requeste. U stvari on je familija protokola,skup protokola sve od requestedon-level funkcija pa do low-level mrenih protokola kao to su IP i TCP protokoli. Naveu neke dobre strane TCP/IP protokola zbog kojih je i postao popularan. Iako njegov razvoj nije bio toliko brz i njegovo irenje je zahtevalo vremena, na kraju mrea nebi opstala bez njega. 1) standardizacija high-level protokola za iroko dostupne korisnike servise. 2) Otvorena arhitektura protokola. Podrana od strane svih platforma. Radi na svim OS i svom hardware-u. 3) Otvoren za development. 4) Nezavistan od mrenog hardvera. TCP/IP moe da radi nezavisno od mrene arhitekture tj dal se radi o Ethernetu, dial upu ili bilo emu drugom. 5) Jednostavna ema za adresiranje koja dozvoljava, adresiranje irom mree ma kolko ta mrea bila velika. Poto su toliko otvoreni TCP/IP protokoli su dobro i dokumentovani.Tako da u *RFC* (Requests for Comments), moe nai najnovije specifikacije TCP/IP protokola. Korienje RFC je preko potrebno za dobro razumevanje rada mree.

28

Arhitektalni model TCP/IP protokola je definisan preko *OSI* standarda.OSI je skraenica od Open Systems Interconnect Reference Model,i OSI obezbedjuje osnovne reference u sferi protokola. On definise pravila ponaanja protokola. OSI sadri 7 slojeva (layers), koji definiu funkcije protokola. Svaki taj layer prikazuje funkciju koja se izvrava kada se podaci premetaju tj transferuju izmedju aplikacija. Layeri su naredjani jedan na drugog poput blokova i imaju izgled zida. Ovakva struktura se naziva Protocol Stack.[3] IP Protocol Sada emo rei nesto vie o nekolicini protokola ponaosob.Kao to se iz naslova moe zakljuiti prvi na redu je IP requeste tj. Internet Protocol. Internet Protokol je deo TCP/IP protokola, koji omoguava mnogo toga. On sadri informacije o adresiranju i kontroli, i te informacije omoguavaju da se paketi rutiraju kroz internet. Paket je kompresovan niz podataka, na ijem se vrhu nalazi *header*, koji sadri razne podatke o emu emo kasnije imati vie rei. Ruteri tj uredjaji koji ispituju pakete svlae header i itaju osetljive informacije o rutiranju. Sadraj headera se moe menjati u toku transporta. Hakeri esto koriste metode spoofa kako bi maskirali svoju pravu IP i to rade menjaju sadraj headera IP paketa.[3]

Sada emo videti kako jedan IP paket izgleda:

bits version Indetification time to live

4

8

16

19

24

31 Total length Fragment Offset

Length Flag Protocol SOURCE

Type of service

Header Checksum ADDRESS ADDRESS

DESTINATION DATA

OPTIONS

Izvriiemo malu analizu ovih polja:

Version Verzija IP koja se trenutno koristi 29

Lenght - Veliina headera ToS - Type of Service Total l,- Totalna veliina IP paketa. Identif.- Indetification, broj koji pomae pri skupljanju datagram fragmenata. Flag - 3-bit polje>prvi bit pokazuje dali paket moze biti fragmentovan Drugi pokazuje dali je ovaj fragment poslednji fragment u seriji,a trei bit se trenutno ne koristi. F ofsset- Fragment ofsset, lokacija fragmentovanih podataka. TTL - time to Live, broja koji odbrojava do 0. Kada odborji do 0 paket se ispusta, bez njega bi paketi kruili neprestano. Protocol- Ukazuje da gornji requeste prima nadolazece pakete. H check.- Header checksum, brine se o integritetu paketa. Adress - Adrese poaljioca i primaoca. Options Opcije vezane za sigurnost.

Jo da napomenem sta su IP datagrami (datagrams). IP datagrami su u osnivi veoma proste tako rei osnovne transportne jedinice na Internetu. Datagrami takodje imaju header sa informacija o rutiranju koje koriste ruteri. IP datagram izgleda ovako: Podaci za gornje slojeve.

IP HEADER DATA link HEADER

IP DATA Data link data

Frame check segments

Generalno mreni i deljeni resursi predstavljaju veoma veliki rizik za vas reques. Oni su veoma esto nain na koji sebe moete izloziti opasnosti. Opet sve ove tehnike idu sa vaim poznavanjem skeniranja makar onog osnovnog kao sto je skeniranje portova,jer ako npr vidite da je na sistemu aktiviran port /*2049*/ to znai da je na ciljanom sistemu pokrenut NFS tj Network File System. NFS je tokom godina mnogo puta exploatisan medjutim on se jo uvek koristi i ima iroku primenu. Ukoliko vidimo da ciljani reques ima NFS moemo iskoristiti par UNIX utila kako bismo izvrili popisivanje te maine.[3]

4.2 Opis port-a

30

Dok raunar nije na mrei poseduje LoopBack ip adresu i obino je 127.0.0.1 ..Ona ima jednu zanimljivu ulogu u programiranju klijent server aplikacija a to je da omoguuje komunikaciju izmedju klijent i server programa a da su i jedan i drugi pokrenuti na istom raunaru.Tako moemo vriti verodostojnu proveru rada nae aplikacije sa velikom utedom vremena na jednom raunaru. Pored imena koja reavaju problem indetifikacije treba postojati i jedan put koji povezuje bolje reeno auto put sa 65535 traka.Svaka traka predstavlja jedan port koji je opisan kao broj. Neki nisu ili nisu uvek slobodni jer su rezervisani za odredjene protokole.Svi portovi po pravilu imaju jednake osobine pa se mogu koristiti proizvoljno. TCP/ip TransferControlProtocol/InternetProtocol Protocol portFtp 21 Http 80 telnet 23

Netbios - 135

4.3 Socket kontrolaMswinsock je jedna od kontroli u vezi internet aplikacija i podrava TCP/IP protocol.Pomenimo i jo Microsoft Internet Transfer control i Microsoft Internet control poznatiji kao WEB browser. Da bi ispunili uslov za uspostavljanje konekcije izmedju dva sock-a prvo treba odrediti koji ce od njih da eka konekciju a koji ce zatraiti konekciju tj. podeliti uloge servera i klijenta.Nihov dalji medjusobni odnos je stvar programiranja. Postupak ostvarivanja konekcije putem sock kontrole( u visual basic-u): - Otvoriti Vbasic izabrati standar EXE tip aplikacije. - Kliknite desnim dugmetom na Toolbox pojavice se Add components ili samo components kliknuti . - Pojavie se Dialog boks Components i na prvoj kartici Controls ekirati u llistingu Microsoft Winsck Control 6.0 i kliknuti Apply. - U Toolbox pojavie se nova ikonica , kliknemo na nju i postavimo je na formu. - Dajmo joj ime sockServer - Istim postupkom otvoriti jos jedan Vbasic ubaciti socket kontrolu I dati joj ime sockKlijent.Sada moemo uporedno pisati i proveravati nau aplikaciju.

Primer 1. Elementarni uslovi za uspostavljanje veze preko sock-a. Server strana aplikacije :

31

upisati u form_load ( U tom sluaju odmah po startovanju programa na sock ekae konekcuji na zadatom portu.-To se moe proveriti ukucavanjem u ms promtu netstat an). SockServer.Close RESET neophodan prekid radi uspostavljanje ponovne konekcije , za prvu konekciju nije neophodan sockServer.LocalPort = 111 Definisati na kom portu se uspostavlja konekciju ovaj podatak je potreban klijent aplikaciji socServer.Listen Postavljanje reima oslukivanja na datom portu Sad idemo na stranu klijent aplikacije

Klijent strana aplikacije : sada na klijent strani ubaciti dugme koje e se po automatizmu vb nazvati Command1 kliknimo duplo na to dugme I pojavie se editor za pisanje koda za dogadjaj Command1_Click tj. taj kod e se izvriti kada budemo kliknuli na njega. Promenicemomu samo svojstvo caption (inace svojsto odredjuje sta ce da pise na tom dugmetu neznai i njegovo pravo ime. Napiimo Proba konekcije) unesimo sledeci kod : sockKlijent.Close Isti komentar kao za sockServer.close sockKlijent.RemoteHost = 127.0.0.1 LoopBack Ip adresa 127.0.0.1 koristi se za sluaj testiranja aplikacije na jednom raunaru I klijent I server su pokrenuti na istom raunaru remoteHost ili internet adresa udaljenog racunara je IP adresa a moe biti host (Ime) raunara ali samo u sluaju LAN mree (wins ) sockKlijent.RemotePort = 111 Klijent mora znati na kom portu zahteva konekciju sockKlijent.Connect Zahtev za konekcijom ,sad je odluka na server strani

Server strana aplikacije : da bi server prihvatio konekciju mora da postoji ovaj kodPrivate Sub sockServer_ConnectionRequest(Index As Integer, ByVal Requested As Long)

sockServer.Accept Requested Dogadjaj pod imenom ConnectionRequest Odvija se kad server detektuje zahtev za konekciju msgbox Konekcija je uspostavljena sa & sockServer.remotehost Poruka o uspostavljenoj konekciji sa tim i tim (IP)End sub Kraj podrutine

Klijent strana aplikacije :

32

Ubacimo drugo dugme i jednu liniju koda : sockKlijent.SendData ZDRAVO!!! Slanje stringa ide pod navodnicima Server strana aplikacije : sada moramo obezbediti da server moe prihvatiti I podatak. kliknimo na sock kontrolu i izaberimo DataArrival dogadjaj. Sa Toolbox uznimo i razvuimo jedan textbox i promenimo mu ime u PrikazPrivate Sub sockServer_DataArrival(Index As Integer, ByVal bytesTotal As Long)

Dogadjaj DataArrival izvrava se svaki put kada bude primljen podatak poslat od klijent strane Dim strData As String definisati promenjivu koja ce primati vrednosti poslate sa strane klijent racunara sockServer.GetData strData, vbString Dodeljivanje pristiglih podataka promenjivoj strData Prikaz.Text = Prikaz.Text & strData & vbCrLf Prikazuje pristigli podatak u textboksu (Prikaz korisniku ) If sockServer.State = sckConnected Then Provera statusa konekcije Ako je stanje jo u konekciji poslati podatak nazad sockServer.SendData strData End If End Sub kraj podrutine Klijent strana aplikacije: Ubaciti sa toolboksa dva tekstboksa i dati im imena brojacPrimljenihporuka I prikazi I za brojacPrimljenihporuka postaviti u opciji TEXT vrednost 0 .!!! Prirodno je i da klijet prihvata podatak poslat sa servera ali to vec nije neophodno Private Sub sockKlijent_DataArrival(ByVal bytesTotal As Long) Dim strData As String sockKlijent.GetData strData, vbString brojacPrimljenihporuka = brojacPrimljenihporuka + 1 Svaki put kad bude poslata poruka broja se inkrementira pokazi.Text = pokazi.Text & strData & vbCrLf End Sub Kraj primera 1

Primer 2 : Postavljanje mia u odredjenu poziciju na ekranu

33

Potrebno je deklarisati funkciju u editoru modula. Public Declare Function SetCursorPos Lib user32 Alias SetCursorPos (ByVal x As Long, ByVal y As Long) As Long U modulu javne (preporuka data je funkcija pristupana svim formama) Private Declare Function SetCursorPos Lib user32 Alias SetCursorPos (ByVal x As Long, ByVal y As Long) As Long A u formi privatne Izabraemo private deklarisanje jednostavnije bez modula. I onda nam ostaje samo da tu funkciju pozovemo.Recimo bie to jedno obino CommandButton_Click dugme kad se klikne izvrsi se blok naredba . Deklarisanje funkcijeIME BIBLIOTEKA

SVOJE-VREDNOSTI PROMENJIVE

Private Declare Function SetCursorPos Lib user32 (ByVal x As Long, ByVal y As Long) As Long i ona cela je definisana kao tip Private Sub Command1_Click() pozivanje funkcije , definiemo dodatnu promenjivu sa istim tipom kao i cela funkcija U naem sluaju tipa LONG Dim postaviMISAu00 As Long Kada kliknemo na dugme MIS ce zauzeti Gornji levi Ugao Koji se rauna kao O,0 Nulta pozicija

postaviMISAu00 = SetCursorPos(0, 0) Nisu sve funkcije tako jednostavne Neke podrazumevaju i vie pod funkcija i definisanje novih promenjivih Ako budemo dovitljivi moemo napisati funkciju po kojoj ce se mi kretati Tipa spirala , trougao pa ak se moe snimiti kretanje mia i pustiti play gde e se videti sta je sve mi radio End Sub Kraj primera 2

5. Opis izvornog koda programa

34

5.1 Saveti za pravilan rad programa (podesavanje) :1. Uspostaviti Lan konekciju izmedju raunara.Iskljuciti firewall (ili dozvoliti) koji obino nee dozvoliti rad programa. 2. Startovati raunar na kom se nalazi glavi server u sluaju da se klijen aplikacija na klijent raunarima straruje preko StartUp metode(automacko paljenje aplikacije po paljenju racunara.U svakom sluaju startovati server aplikaciju I obezbediti njen stalni rad. (ime fajla : ProfesorServerMain.exe). 3. U katalogu klijent aplikacije nalazi se tekstualni fajl po imenu serverip.txt.Otvorite fajl I unesite Ip adresu glavnog servera .U sluaju da se klijent aplikacija startuje manuelno startovati klijent aplikaciju na klijent raunarima. Odmah po startovanju glavni server e detektovati prisustvo klijent raunara I izvriti konekciju.Server generie prvu sliku ,konvertuje u JPG format I alje glavnom serveru. ActivXControl koju koristimo za ostvarenje klijent/server aplikacije najese je MSWINSCK.OCX koja se nalazi u windowsSys direktorijumu.(Ako vam je potreban nadjite registrovanu verziju I samo iskopirajte fajl u WinSysDir. Poto je visual basic objektno orijentisan programski jezik uvek mozemo pozvati kontrolu radi korisne informacije u datom momentu.Projekat se sastoji kao to smo rekli od 4 fajla(dva na klijent racunarima I dva na server racunaru). Opis koda programa glavnog servera : I deo glavnog servera: Deklaracija ili definisanje Api funkcija njihovih pomonih funkcija i konstanti.Api funkcije pripadaju naprednoj temi rada vizuelnog programiranja.Pod deklaracijom podrazumevamo pozivanje ve postojeih funkcija koje se nalaze u DLL fajlovima (Dinamic Linked Libraries)tj. Bibliotekama funkcija.Najvea prednost je u tome sto one zauzimaju radnu memoriju samo dok se izravaju a zatim oslobadjaju memoriski prostor drugim funkcijama, to nevai za objekte.Tako moemo napisati program iji fajl neiznosi vie od 300Kb(I zauzima malo RAM memorije) a moe izvriti sve funkcije koje nam operativni system omoguuje.Postoje Javne i privatne deklaracije i konstante . Javne se deklariu u MODUL-u I vae za ceo program a privatne se definisu u kodu formi i do uvek na pocetku.Apostrof () u visual basic-u znaci pocetak komentara.Plava slova znae definisanje funkcija i konstanti .Kodni prostor je podeljen dogadjajima dok su dogadjaji vremenski dirigovani po ustaljenom redu.Naravno ne izvre se svi uvek dok se neki uvek prvi izvravaju kao npr. FormLoad , Form_Initialize ..

5.2

Opis izvornog koda programa

Problemi na koje sam nailazio priliom izrade softvera : 35

1.Kako automacki da se izvri povezivanje klijent-server i da server zna kad je a kad nije klijet prisutan. Klijent aplikacija po startovanju u Timer-u koji izvrava kod po odredjenom intervalu (periodicno) zahteva konekciju koristei upisanu IP adresu server raunara u tekstualnom fajlu ipserver.txt. Tako da ako podesimo da klijent aplikacija bude startovana po startovanju operativnog sistema ,klijent ukoliko je server (Glavni racunar) aktivan zatraice konekciju. 2.Upravljanje slanjem falja (slike racunara) I prihvatanjem poslatih slika sa vise racunara istovremeno. Ovde se ve javlja potreba za kontrolnim (dodatnim socketom) ne zbog istovremenih prijema podataka ve zbog to bre kontrole procesa.Pod kontrolom se smatra zahtev za aktivnim slanjem i zahtev za prekidom slanja.Prijem slike se vri na portu 8866 (multyconnection moe prihvatati slike sa vie raunara istovremeno) dok se na portu 12345 I 432 moe poslati kontrolni string start i stop za poetak i kraj prenosa slike. 3.Problem detekcije prekida konekcije. Ako sock koji samo eka podatak(to je sluaj sa naim sockom na 8866 portu kom su drukije definisane podrutine za prijem podataka) treba detektovati diskonekciju trebalo bi ugraditi nekakav vremenski tajming sa proveru koji nije tako ni jednostavan i praktian.Sada imamo sock koji se sa servera kao klijent konektuje za sock koji oslukuje na klijent strain i takvih ima 8 (za osam racunara).Imaju ulogu da pojedinano svaki svoj raunar prate tj. po diskonekciji sock prepoznaje da veza nije vie aktivna i korisnik se obavetava.Imaju i dodatnu ulogu zahteva za slanje i prekid slanja , chat deo i slanje otkucaja tastature( 12345 I 432 ). 4.Problem kontrole mia i njegovih dogadjaja Za ovaj deo neophodno je deklarisati par API funkcija kao SetCurPos(X,Y) i GetCurPos(X,Y).Kroz dogadjaj mousemove moemo pratiti vrednosti pozicije mia ali samo kad smo pod naom formom.Ta forma je razvuena po celom ekranu (full screen) i periodino uitava primnjenu sliku tako da mi sad vidimo udaljeni racunar i svaku promenu na njemu.Vrednosti X i Y nisu iste za mia kad je na formi programa i kad je van njega .Zato postoji jednaina koja deli x sa 150 I y sa 149 da bi dobili odnos 1024x768.Poeljno je da na klijentu i serveru imamo istu rezoluciju.Deljenjem sa 149 dobijamo necelobrojnu vrednost koja je neprihvatljiva za zadavanje koordinata mia tako da se preko osobine MaXLenght regulie decimala.

Prikaz dela programa koji omogucuje slanje-primanje slike i zahteva za slanjem ili prekidom slanja u obliku pojednostavljene Blok seme.

36

Blok sema 1

Blok ema za uspostavljanje kontrole mi-a

37

Blok sema 2 (glavni deo programa podrazumeva blok emu 1)Potrebni falovi za rad programa na strani klijenta : ijl11.dll (generisanje slike ) mesto u glavnom direktorijumu. Serverip.txt ( upisati IP adresu glavnog servera ) mesto u glavnom direktorijumu. RA Configuration Settings fajl za beleenje server opcionih podataka. Potrebni falovi za rad programa na strani servera : TABCTL32.OCX Tab boks (obino se ve nalazi u WINSYSDIR. MSWINSCK.OCX Socket internet kontrola COMDLG32.OCX dijalog boks

Primer 1.

38

Program : Glavni server MainServer.exe forma FORM2Private Sub sockMain_ConnectionRequest(Index As Integer, ByVal requestID As Long)

Jedan dobar trenutak za analizu. ConnectionRequest je trenutak odgovora servera na zatraenu konekciju Za mene ovo je bio trenutak odluke intSockCnt = intSockCnt + 1 Load sockMain(intSockCnt) Brojac, inkrementiranje i ucitavanje socket.index sockMain(intSockCnt).Accept requestID Sock ima svoje index vrednosti txtStatus.Text = txtStatus.Text & _ "Connected to: " & _ sockMain(intSockCnt).RemoteHostIP & vbCrLf If Text1.Text = "slobodno" Then Ako nijedna do sad konekcija nije prisutna prvu e upisati u prvo slobodno Text1.Text = sockMain(intSockCnt).RemoteHostIP Exit Sub Kraj podrutine ConnectionRequest End If If Text2.Text = "slobodno" Then Text2.Text = sockMain(intSockCnt).RemoteHostIP Exit Sub EXIT SUB treba razlikovati od End sub Exit sub je pisana komanda (za trenutni prekid izvravanja podrutine) a End sub oznaava kraj podrutine End If If Text3.Text = "slobodno" Then Text3.Text = sockMain(intSockCnt).RemoteHostIP Exit Sub End If If Text4.Text = "slobodno" Then Text4.Text = sockMain(intSockCnt).RemoteHostIP Exit Sub End If I tako za svih 8 sva procedura oko konekcije morala je u 8 varijanti da se napie End Sub

39

Primer 2.Program : Klijent.exe , forma FORM1 ceo sadraj Option Explicit Private Sub cmdConnect_Click() ' Zahtev za konekcijom On Error GoTo nikiki: sockMain.RemoteHost = txtHost.Text ' IP servera sockMain.RemotePort = txtPort.Text ' Port sockMain.Connect Exit Sub nikiki: End Sub Private Sub Form_Load() ' Kod koji se prvi izvrsava Me.Hide Sakriti formu Form22.Show Form2.Show ' ' ' ' ' Pokazati ili ucitati formu FORM22 i FORM2 Uzima podatak o IP adresi server raunara Unapred uneta u sadraj serverIP.txt fajla ona se ve pozove iz frmMain forme i tako obezbedi na vreme sve parametre za konekciju

txtHost.Text = frmMain.txtRemoteCon.Text txtStatus.Text = "" sockMain.RemoteHost = txtHost.Text ' sock prihvata IP adresu servera End Sub Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) sockMain.Close ' Pri zatvarannju prozora prekinuti konekciju , to je momenat ' kada glavnom serveru bude jasno da klijent vie nije prisutan End Sub

40

Private Sub sockMain_Close() sockMain.Close ' Na prekid u sluaju pada glavnog servera ' Pokrenuti zahtev za konekcijom Timer1.Enabled = True End Sub Private Sub sockMain_Connect() Timer1.Enabled = False ' Na ostvarenu konekciju prekinuti zahteve za konekcijom End Sub Private Sub sockMain_DataArrival(ByVal bytesTotal As Long) Dim strData As String ' Prikaz poslatih stringova sockMain.GetData strData, vbString txtStatus.Text = txtStatus.Text & _ strData & vbCrLf End Sub Private Sub Timer1_Timer() ' Periodino ponavljanje u kratkim vremenskim intervalima On Error GoTo ni: cmdConnect_Click ' Zahtev za konekcijom ni: End Sub

Primer 3.Program :XYKoordinator ( na strani servera ) Ceo program je u jednoj formu biva razvuena po celoj formi i periodino u kratkom intervalu uitava sliku Private Sub Timer3_Timer() On Error GoTo nio: Form1.Picture = LoadPicture(App.Path & "\" & txtHost.Text & ".jpg") nio: End Sub

Private Sub Timer4_Timer()

41

Matematiki deo algoritma usaglaavanje koordinatnog sistema koji vai dok je mi na naoj formi i dok je van nje ograniavajui dozvoljenu duinu zapisa u tekst boksu Obezbedjujemo slanje samo celobrojnih brojeva-zato to su pozicione koordinate Xi Ydefinisane kao celobrojni tip promenjive INTEGER

If xx < 1490 Then txtSendX.MaxLength = 2 If xx > 14900 Then txtSendX.MaxLength = 4 If xx > 1450 And xx < 14900 Then txtSendX.MaxLength = 3 txtSendX = (xx / 149) * 10 Opseg van forme 1024X768 txtsendY = (yy / 150) * 10 Opseg na formi 15345X12450 End Sub Trenuci za glavobolju 1490 \ 149 daje 10 a 10 * 10 = 100 kad je broj manji od 100 maxlenght = 2 za dve cifre dvocifrenog broja da nebi prikazivo razloljeni deo jer deljenje sa 149 daje decimale koje nisu poeljne Kad se rei matematiki deo ostaje nam samo numerologija Evo jednog zanimljivog dela programa Kako forma prepoznaje koje dugme na miu je pritisnuto - nain(click - Dclick) Da bi pojasnili redosled odvijanja dogadjaja moramo znati da se neki dogadjaji odvijaju unutar drugih kao npr. Dogadjaj MOUSEDOWN i MOUSEUP zajedno ine MOUSECLICK ali je redosled odvijalja prvo MOUSEDOWN pa zatim MOUSEUP . Private Sub Form_Click() If Text4 = 2 Then text4 dobija vrednost u rutini MOUSEDOWN Command10_Click Govori o kom dugmetu na miu je re desno End If If Text4 = 1 Then Znaci da je pritisnuto levo dugme na misu I to jednom jer smo u dogadjaju CLICK click.SendData "49" Slanjem broja 49 XYklijent prepoznaje momenat za pozivanje dogadjaja klik levim dugmetom mia End If End Sub

Private Sub Command10_Click() 42

click.SendData "51" Mogli smo ovo odmah da napiemo kao i u sluaju sa levim klikom ali neki put neemo uspeti da poaljemo u dve linije koda dva podatka jedan za drugim jer se zahteva odredjeno vreme i onda dobijemo greku a nemamo greku u sintaksi programskog jezika Text1.Text = 0 End Sub Private Sub Form_DblClick() Command11_Click Dupli klik vidi commandbitton11 End Sub Private Sub Command11_Click() click.SendData "55" string 55 klijent prepoznaje trenutak za izazivanje dogodjaja dupli klik na udaljenoj maini Text1 = 0 End SubPrivate Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

Text4 = Button Kad kliknemo i jos uvek drimo dugme izvrsice se samo MOUSEDOWN I to je dovoljno da znamo dal je u pitanju levo ili desno dugme End SubPrivate Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

xx = X Dodeljivanje vrednosti X I Y yy = Y End Sub

43

Primer 4.Program : KlijenXY.exe Kont je ime kontrolnog socketa koji je zaduen za prepoznavanje komandi mia upuenih od strane servera Private Sub kont_DataArrival(Index As Integer, ByVal bytesTotal As Long) Dim strData As String Dim intCnt As Integer kont(Index).GetData strData, vbString text2.Text = strData Teks boks 2 prihvata vrednost End Sub Private Sub text2_Change() Kada se vrednost promeni sledi blok naredbi If text2 = "49" Then Call LeviKlik Poziva funkciju levog klika text2 = 0 Exit Sub Kraj podrutine End If If text2 = "51" Then Call DesniKlik Poziva funkciju desnog klika text2 = 0 Exit Sub End If If text2 = "55" Then Call LeviDupliKlik text2 = 0 End If If text2 = "113" Then String 113 je znak za prekid kontrole Timer1.Enabled = False Form2.Hide MsgBox " Racunar je slobodan . ", vbOKOnly Poruka text2 = 0 44

End If If text2 = "115" Then Znak za pocetak kontrole misa Timer1.Enabled = True text2 = 0 MsgBox " *** Racunar je pod kontrolom ", vbOKOnly, "ProfesorServever 1.0 " End If If text2 = "53" Then Form2.Show text2 = 0 End If If text2 > 1000 Then text2 = 0 Opet problem decimala End Sub

45

6. ZAKLJUAKInternet ve danas predstavalja figurativno za oveka neogranienu koliinu podataka i informacija.Pa tako se moe nai Souce code odredjenog programskog jezika u mom sluaju to je Visual Basic Code.Postoje mnoge prednosti poznavanja sintakse nekog programskog jezika kada je u pitanju rad na raunaru.Korienje source code nekog programa omoguava modifikaciju koda u cilju efikasnijeg rada i boljih grafikih reenja. Za veinu aplikacija izvorni kod nije besplatan tako kada nam zatreba odredjena tema treba prikupljati deo po deo.Ovaj projekat se je sastavljen na takav nain.Kod komponovanja treba obratiti panju na vremenske cikluse koji se odvijaju u algoritmima programa.Treba posebnu panju posvetiti izborom radnog direktorijuma I backup direktorijuma , skladienju modula i formi (preporuuje se pri insert form snimi forma save as) i promeni imena objekata, promenjivih. Jedan od zakljuaka ovog rada je i sledee : vrlo je lako ostvariti osnovnu konekciju i kreirati grafiki interfejs za jednu CHAT aplikaciju , pa samim tim da jednom linijom koda aljeno STRING udaljenom raunaru onda taj string moemo definisati kao jednu komandu koju kada druga strana primi i prepozna npr. start izvi odredjen Blok naredbi (kod) . Pitanje dali nam je sve to potrebno jer danas imamo mnostvo programa koji ispunjavaju veinu korisnikih potreba ,zavisi kako kome.Znamo da se sa brzim razvitkom tehnologija uporedno javljaju i problemi i nova reenja a i nepobitan porast korisnikih zahteva.Tako da je neko malo ire poznavanje raunarskih tehnologija uvek dobro dolo kad se pojavljuju ERROR dialog poruke. Dinamicko povezivanje je metod kojim se funkcije ine dostupnim za vau aplikaciju bez njihovog tvrdog kodirnja u izvrne fajlove. Izgradivi (Microsoft) WindowsAPI, on je optu bazu koda uinijo dostupnom za Visual Basic aplikacije, sa vie od 500 funkcija.Na svakoj 32-bitnoj windows maini na raspolaganju je API. Dobijamo male i mone aplikacije koje nezauzimaju pri radu mnogo RAM memorije. Api programiranjem podrazumevamo i upravljanje windows registrom.U registru podaci nusu rasporedjeni po sistemu direktorijum fajl ve po kljuevima i tipu podatka. Operacije sa registrom nam pruaju pamenje odredjenih podataka koje program moe pozvati i upravljati se po njima. U vezi sa iitavanjem ip adrese servera nije korien rad sa registrom ve princip izitavanja tekstualnog fajla.Iz tog razloga jedina podeavanja pre poetka rada programa jeste da se unese ip adresa glavnog servera.Na taj nain stvoren je uslov da se ovaj program moe koristiti na bilo kojim windows raunarima a ne samo za datu mreu.U vezi portova oni su birani nasumino i mogu se po potrebi menjati.Tako kad bi na serveru promenili local port morali bi i na klijentu da promenimo remote port.Nikada netreba koristiti rezervisane portove kao npr. ftp port 21 mada se mogu koristiti ako su trenutno slobodni. Celokupni projekat nas moe pribliiti jo naprednijim temama kao to je udaljena kontrola nekog proizvodnog procesa(servo sistema) ,video nadzora i ostalih sigurnosnih sistema.

46

7. LITERATURA

[1] [2]

http://sl.wikipedia.org/wiki/TCP/IPdatum preuzimanja : 12.11.2007

www.postfest.ptt.yu/savetovanje98/PavicevicVL98.htmldatum preuzimanja : 12.11.2007

[3] [4] [5] [6] [7]

http://www.phearless.org/i1/The_Art_of_Footprinting.txtdatum preuzimanja : 14.11.2007

http://www.pcpress.co.yu/arhiva/tekst.aspdatum preuzimanja : 23.11.2007

http://www.postfest.ptt.yu/savetovanje98/Babovic98.htmldatum preuzimanja : 23.11.2007

http://www.Planet-Source-Code.com Uzet kod za generisanje slike,datum preuzimanja :03.11.2007

http://www.Planet-Source-Code.com Kod za sistemsku kontroludatum preuzimanja : 04.11.2007

47