Visoka tehnička škola Niš

Diplomski rad
Vizuelni 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 višem programskom jeziku.VB je objekno orijentisan programski jezik namenjen da manipuliše bazama podataka korišćenjem ADO OLE I SQL-a , razvijanje internet aplikacija , API programiranje. -API (Application Programming Interface ) je set ugradjenih biblioteka kodova. Koristi dinamičko 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 izvršava.Da bi bilo koja VB aplikacija radila na računaru neophodno je pokrenuti instalacioni paket VBRUN6.0.exe koju u system direktorijumu instalira odredjene biblioteke funkcija(dll). U projektu je korišćena socket kontrola (winsock.ocx) na više portova.Cilj teme rada je prikaz konkretnih klijent-server fukcija od ostvarivanja konekcije do složenijih funkcija.Na dovitljiv način možemo uspostaviti potpunu kontrolu nad udaljenim računaru uz ne mnogo poznavanja sistemskog programiranja i nižih programskih jezika. Program se sastoji iz dva glavna dela. Svaki deo se sastoji iz dva dela tj. dva izvršna fajla(Ekstenzija izvršnog fajla – ExE). Mnogi problemi mogu se rešiti na više načina a odabir rešenja nemora uvek biti suviše 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 omogućuje u jednoj LAN mreži server računaru ulogu nadzorskog računara jer mu omogućuje prikaz celog ekrana i kontrolu klijent računara.Prikazuje i trenutno pokrenute servise na udaljenoj mašini, omogućuje promenu klijent opcija kao što su autorun.Moj deo posla bio je povezivanje više primera (source code) u jednu celinu koja omogućuje sve navedene zahteve tako da nije ceo kod programa detaljno opisan ali se analizom algoritma može puno naučiti. Polazni zahtevi : Server računar mora automacki po prisustvu klijent računara u mreži detektovati sam klijent računar(pod uslovom da je uključena start up metoda)ili po startovanju programa na klijent računaru. Po zahtevu servera klijent šalje sliku (slike) i po zahtevu prekinuti slanje slika. Upravljanje udaljenim klijent računarom (preko slike) Prihvatanje slike sa više klijenata istovremeno preko istog porta. Slanje tekstualnih poruka (chat program) Prikaz direktorijuma i fajlova hard diska udaljenog računara(remote explorer). Prikaz otkucaja tastature. Neprepoznaje dvaputa pritisnut isti taster. Prikaz za osam pojedinačnih slika udaljenih računara i dva tab-a po četiri slika (izdeljeni prostor ekrana). Detektovanje prekida konekcije.

-

Deljenje uloga sa server strane projekta :

2

MainServer.exe obezbedjuje prikaz slika konektovanih klijent računara , opciju za chat (obraćanje klijent računaru slanjem teksta) , prikaz otkucaja tastature po zahtevu. Xykoordinator.exe obezbedjuje prikaz primljene slike klijent računara preko celog ekrana I slanje x ,y koordinata što na drugoj strani podrazumeva postavljanje miša 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 rešava dali će se stalno slati slika što je potrebno kada se vrši kontrola udaljenog računara ili će se prekinuti slanje slika. XYKlijent.exe obezbedjuje prihvatanje podataka vezanih za kontrolu miša i njegovih dogadjaja. Kratko objasnjenje : U glavnom delu programa obezbedjeno je stalno slanje slike klijent računara, sada tu sliku (preko programskog tajmera) učitava forma koja je razvučena preko celog ekrana (full screen).Tako vrlo prosto dobijemo sliku udaljenog računara na našem glavnom server računaru (sva kontrola je na strani server app).X I Y koordinate koje možemo pratiti dogadjajem mousemove u našoj full screen formi neodgovaraju X i Y koordinatama miša koji nije na površini forme.Desktop je recino podešen 1024x768 dako da ga možemo 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 tačnu vrednost položaja miša.U ovom delu programa korišćena 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 najlakše i najprirodnije rešenje 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 miša.U podglavlju opisa izvornog koda skrenuta je pažnja na konkretne momente koji nastupaju usled odvijanja algoritma i to po hronologiji odvijanja.Naizmenični su opisani klijent - server strana programa. Ako bi kliknuli levim tasterom miša na full screen formu ( formu za upravljanjem miša na udaljenom računaru forma prepoznaje tadi dogadjaj i izvršava odredjeni blok naredbi tj. šalje komandu koju klijent prepoznaje.U programu nije uradjena kontrola tastature ali se može rešiti na relativno lak način.U tom slučaju u bukvalnom prevodu imali bi potpunu kontrolu računara.Mogu se naći i par grafičkih rešenja ali se uvek mora računati da ubacivanje slika program čini većim (veličina izvršnog fajla na disku) dok loša programska rešenja prouzrokuju sporiji rad (zauzimanje ram memorije) i nepouzdanost aplikacije.

2. OSNOVNI POJMOVI

3

2.1 Prenos podataka
Računarske mreže omogućavaju medjusobno komuniciranje računara pomoću neke stalne ili privremene veze. Za umrežavanje više računara potreban je poseban hardver, ali i softver, te poznavanje načina umrežavanja. Umrežavanje podrazumeva ostvarivanje veze u cilju razmenjivanja resursa, ideja ili informacija izmedju dve tačke. Povezivanje računara se, osim pomoću kablova,može ostvariti i bežično preko radio tehnike.

Prenos podataka preko žice :
Modemi (dialup) Modem je skraćenica 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 nosača. Modem je iz računara najčešće spojen na telefonsku liniju, ali moguće je spojiti modem na bilo koji mrežni kabal ili na bežični nosač signala. Uglavnom služi za spajanje na Internet, no njime je moguće 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 računalu i obrnuto. Najfriškiji, i već ustaljeni, standard je v.92 koji je u velikoj meri zamenio malo stariji v.90. Najveća brzina današnjih modema je 56 kbps, što je u računarstvu veoma mala brzina, i najčešće nalazi mesto kod korisnika koji koriste samo osnovne servise na Internetu kao što su Email ili povremeno proveravanje novosti. Iznajmljene linije Iznajmljena linija je obično simetrična veza koja povezuje dve lokacije. Za razliku od običnih 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 kreću od 64k, 128k, 256k, 512k, pa do 2M i više. Frame relay Frame relay je sinhronizovana mreža temeljena na HDLC protokolu. Podaci se šalju u HDLC paketima. Frame relay se obično koristi za prenos podataka izmedu lokalnih (LAN) i širokopojasnih (WAN) mreža. Svaki korisnik dobija iznajmljenu liniju. Osnovna svrha ove mreže je jeftino povezivanje LAN mreža sa glavnim čvorištima WAN mreža. U ovakvim mrežama podaci ne podležu proveravanju grešaka, već to rade čvorovi WAN mreže što dodatno ubrzava prenos podataka.

4

Ethernet umrežavanje Ethernet (IEEE 802.3) je mrežna tehnologija za LAN mreže, temeljena na frame načinu rada. To znači da se podaci šalju u paketima koji su prilagodjeni za slanje preko računarske mreže. Definiše umrežavanje i signaliziranje za fizički sloj, te frame formate i protokole za MAC, odnosno mrežni sloj OSI modela. Ethernet, poznat i pod imenom IEEEs 802.3, je postao najrasprostranjeniji standard za računarske mreže koji se počeo uzdizati ranih 1990-tih pa sve do danas gde drži primat, te je skoro u potpunosti zamenio ostale mrežne tehnologije za LAN mreže kao što su Token Ring, FDDI te ARCNET. HomePNA HomePNA je način umrežavanja računara preko telefonskih žica koje je jeftino, ne zahteva dodatne uredaje i radi na stalnih 10 Mbps. HomePNA (Home Phone-line networking) je najčešći naziv za set specifikacija koje je uspostavio HPNA (Home Phone Networking Alliance) na kojima se temelji HomePNA. Najfriškija 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 neiskorišteni opseg kojeg deli u odvojene podatkovne kanale koje koristi za prenos podataka izmedu računara. Moguće je istovremeno voditi razgovor preko telefona i imati računarsku mrežu preko istih telefonskih linija, čak je telefonska linija u mogućnosti podržati glasovni razgovor, DSL modem i HomePNA. Da bi napravili jednu HomePNA mrežu trebamo odgovarajuće HPNA adaptere koji mogu biti u obliku interne kartice (PCI), te spoljnjeg uredaja (USB). Uz to, obično dode i poseban softver koji će konfigurisati uredaje i samu mrežu. Ovakve mreže se obično koriste za manje zahtevnije korisnike koji ne trebaju velike brzine kao što nudi Ethernet mreža. Ovakva mreža je prvenstveno namenjena korisnicima koji žele jednostavnu mrežu bez dodatnih kablova i dobru pouzdanost. HomePlug Umrežavanje preko elektricnih žica je veoma jednostavno i jeftino, ne traži 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 utičnice se na računar spajaju preko USB-a ili preko mrežne kartice . Kada se adapter priključi na računar jedino što treba je konfigurasati softver koji dode uz uredjaje. Za priključivanje novog računara na jednu ovakvu mrežu je potrebno samo uključiti adapter u električnu utičnicu, a isti povezati sa računarom, da bi potom softver instaliran na računar prepoznao ostale računare ili printere. PowerPacket tehnoglogija koristi peer-to-peer ravnopravnu mrežu. Adapteri ne troše električnu struju. Mana ovakvih mreža je što imaju prilično malu brzinu (oko 14 Mbps).

5

Bežicni prenos podataka :
Kratki domet Bluetooth je način spajanja na osobne bežične mreže. Preko Bluetootha je moguće razmeniti informacije izmedju uredjaja kao što su mobilni telefoni, laptopi, računari, printeri, digitalni fotoaparati i tako dalje. Bluetooth radi na principu radio tehnike, i namenjen je za nisku potrošnju el. Energije, te se zbog toga često koristi u manjim uredajima kao što su mobiteli. Frekvencija putem koje se odvija bežicna 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 dosežu brzine do 2,1 Mbit/s. Tehnologija je veoma obećavajuća što pokazuje sve veći postotak uredjaja koji iskorišćavaju Bluetooth za razmenu podataka. Bluetooth je dobio naziv po Haraldu Plavozubom (eng. Harold Bluetooth) koji je bio poznat po svojim mogućnostima diplomatskih pregovora, gde često uspevao da napravi razumevanje i komunikaciju izmedu više 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 najčešće ona iznosi oko 30 megabita/s. Ovaj standard je skuplji jer WiFi kartice zasnovane na a standardu rade na višim 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 mrežama brzina protoka podataka je do 11 megabita u sekundi, ali uz velike prepreke i smetnje brzina može spasti na malih 1 do 2 megabita/s. Ovo je ujedno i najjeftinija varijanta WiFi mreže. # 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 očekuje sredinom 2007. godine (dostupna su draft izdanja). Prema očekivanjima standard bi trebao raditi 2.4 GHz, sa dosta povećanom najvišom brzinom koja će iznositi do 540 Mbps Dugi domet Satelit: MMDS

SMDS

6

Prenos preko mobilnih telefona :
GSM Global System for Mobile Communications ili kraće GSM je najkorišteniji standard za mobilne telefone u svetu. GSM servis koristi preko 2 milijarde ljudi u više od 212 država i teritorija. GSM je celijska mreža, što znači da se mobilni telefoni priključuju na mrežu tražeći ćelije koje se nalaze u blizini. GSM mreže rade u četiri različita frekvencijska opsega. Vecina GSM operatera radi na 900 MHz ili 1800 MHz. Neke države na americkom kontinentu, uključujući SAD i Kanadu, koriste 850 MHz i 1900 MHz frekvencijski opseg. Rijede korišteni su 400 i 450 MHz frekvencijski opsegi koji se koriste većinom u Skandinaviji. Ostali standardi CDMA ,CDPD I TDMA.

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

Fizicki sloj je zadužen za medijume preko kojih se informacije šalju (koaksioni kablovi , optički fiber ,sateliti,radio talasi) Sloj veze obezbedjuje pravilan rad fizičkog 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 vrši se i kompresija podataka. Sloj aplikacije komunicira sa korisnikom i programskim aplikacijama.Sadrži mrežne aplikacije.

7

Podela OSI systema (Gornji slojevi su namenjeni korisničkim servisima dok su fizički , sloj podataka, mrežni sloj zaduženi za obezbede mrežnu komunikaciju. Transportni je prelazni sloj.)

8

2.1.2 Topologija mreža
Pojam mrežna topologija odnosi se na fizički raspored računara, kablova i drugih komponenti mreže. Topologija je klasičan pojam koji podrazumeva osnovni raspored mreže, a pored pojma topologija koriste se i: · · · · fizički raspored projekat dijagram mapa Mogucnosti mreže koju koristimo zavise od topologije a takodje i od: · · · · vrste potrebne opreme za mrežu mogućnosti opreme razvoja mreže načina upravljanja mrežom

Mrežna topologija podrazumeva niz uslova, od nje zavisi npr. Ne samo tip kablova koji će se koristiti već i način postavljanja kroz pod, zid ili plafon. Od topologije zavisi kako racunari medjusobno komuniciraju u mreži, različite topologije zahtevaju drugačije metode komunikacije, a metod komunikacije ima veliki uticaj na mrežu.

Klasične topologije
Svi mrežni planovi potiču od tri osnovne topologije :

·

magistrale

9

·

zvezde

·

prstena .

Kada su računari povezani u nizu jednim kablom, takva topologija naziva se magistrala. Kad se računari povezuju pojedinačnim kablovima koji se granaju iz jednog centralnog uredaja, haba, to je topologija zvezde. Ako su računari povezani kablom koji formira petlju, to je topologija prstena. Mada izgledaju jednostavno, u stvarnosti se često kombinuju svojstva više topologija i dobija jedna koja je složena. [1]

2.1.3 Ravnopravna mreža ( P2P )
Peer-to-Peer (P2P) je mreža gde se nalazi mnoštvo klijenta koji su ravnopravni u ucešću, jedino je ograničenje brzina internet veze jednog klijenta. Ovakve mreže se najviše koriste za deljenje dokumenata, video i audio podataka i tako dalje. Razlog leži u tome da ne postoji neko ko ce kontrolisati koji podaci se dele u mreži, jer ne postoji server niti neki glavni računar koji nadgleda sve ostale. 10

Svi su ravnopravi i dele podatke izmedu sebe. Postoje i posebni programi za deljenje podataka u P2P mrežama, to su obično programi za deljenje audio i video sadržaja. Ako korisnik postavi upit, program pretražuje podatak pod tim imenom kod ostalih korisnika povezanih na P2P mrežu. To je mnogo slobodnije nego kod klijentserver mreža, gde korisnik pretražuje sadržaj samo jednog računara, odnosno servera. Kod P2P mreža, korisnik pretražuje sadržaj svih učesnika u mreži.[1] Nedostaci: P2P mreze su skoro uvek jednostavnije i jeftinije od C/S sistema, ali otvaraju brojna pitanja u pogledu PERFORMANSI i SIGURNOSTI MREŽE.

2.1.4 Načini bežičnog umrežavanja
Umrežavanje računara možemo izvesti pomoću žica ili bez žica. Najviše korišteni žičani načini umrežavanja su requeste umrežavanje, te umrežavanje pomoću telefonskih i električnih instalacija. Za bežično umrežavanje se najviše koristi WiFi standard. Bežično (en. Wireless) umrežavanje je verovatno najjednostavniji način umrežavanja, nudi srednju brzinu, ne zahteva dodatne kablove, ali je i relativno skuplji od ostalih načina umrežavanja, iako cena WiFi uredaja konstantno pada. Bežično umrežavanje je najjednjostavnije uz WiFi tehnologiju, gde nam je samo potrebna WiFi kartica (interna (PCI i PCMCIA) ili spoljna (USB)) u dva ili više računara da bi se isti umrežili. Obično u kartice dode integrisana antena koja je dovoljna za manje mreže, no moguće je koristiti i bolje, spoljne antene koje pojačavaju signal. Za priključivanje na neku mrežu potreban je tzv. Hotspot, odnosno čvorište na koji se spajaju svi ostali korisnici. Ako je mreža osigurana ona će tražiti WEP ili noviji WPA (2) ključ, a ako je slobodna onda nema nikakvih ograničenja za spajanje. Svako može biti hotspot, jedino umesto obične kartice je potrebno kupiti Wireless Acces Point koji nudi pokrivenost od oko 30 metara, dok je uz razne pojačavače moguće bitno proširiti pokrivenost. Najskuplja varijanta, ali ona najbolja, je uzeti Wireless Access Point Router koji sadrži priključak za DSL modem, Router, Ethernet Hub, Firewall i Access Point. Uz sve to moguće na samo taj uredaj prikljuciti jednu Ethernet mrežu na koju ce biti priključeni korisnici sa WiFi karticama, te svi zajedno imati pristup internetu putem DSL modema.Problem kod bežicnih WiFi mreža je što mogu biti nesigurne, pogotovu starije mreže sa WEP proverom koja je nesigurnija od WPA i WPA 2 enkripcije podataka. Osim toga WiFi uredaji troše malo više struje od standardnih uredaja za računarske mreže. 11

2.2 File server ternimal(UNIX) I poredjenje sa klijent server arhiktekturom
Distribuirana više-korisnička arhitektura se realizuje sa više računara njihovim povezivanjem u LAN. Komponente se mogu naći na različitim računarima, ali podaci su obično na jednom računaru koji ima ulogu file-servera. Glavna namena jeste zajedničko korišćenje fajlova. Klijent zahteva rekorde od file—server-a. Intenzivan je saobraćaj na mreži jer se fajlovi vraćaju klijentu preko mreže pa ih on lokalno pretražuje. Ovo je dobro za deljenje velikih data objekata tipa inženjerski crteži, dokumenti, slike... Nedostaci: File-server postaje usko grlo – intenzivan je saobraćaj na mreži. Sa povećanjem korisnika, pogoršavaju se i performanse.

2.2.1 Centralizovana arhitektura
Najjednostavniju konfiguraciju (arhitekturu) računarskih mreža predstavlja HOST arhitektura, kada jedan moćan (mainframe) računar opslužuje korisnike preko terminala tj. konfiguracije monitora i pohrane podataka. NFS – Omogućava deljenje diskova i datoteka medju umreženim računarima (Network File System). Svojstva ovakve arhitekture su: ■ host je opterecen izvršavanjem programske potpore ■ monolitna programska potpora ■ interaktivan rad korisnik-računar tj. korisnik i računar neprestano komuniciraju preko terminala ■ spori mrežni putovi, najčešće serijski protokoli ■ mogućnost koncentrisanja više terminala na jedno sučelje ■ moguć rad na većim udaljenostima od host-a npr. Modemom ■ moguća izmena poruka izmedju korisnika ali ne i podataka ■ višekorisnički i višenamenski rad host računara U slučaju prestanka rada host-a nijedan korisnik ne može više raditi niti komunicirati. U suštini to i nije mrežna komunikacija već se ista ostvaruje kad su dva ili više host-ova medjusobno vezani, no ništa se bitno ne menja u odnosu korisnikračunar. PC računar u tu svrhu dizajniranom programskom potporom, može funkcionisati kao terminal. Tipična takva veza je kad se PC poveže na BBS sastav informacija i komunikacija, koji još omogućava transfer podataka (kopiranje). Suprotnost host arhitekturi računarskih mreža je CLIENT-SERVER (korisnik-poslužitelj) arhitektura utemeljena na povezivanju više manjih računara s poslužiteljem koji korisniku pruža ispomoć u radu (server), ali je korisnikov rad na njegovom računaru veći deo vremena odvojen od servera. Jedna od opštih prihvaćenih koncepcija je Windows NT kao poslužitelj i Windows 95 kao korisnik.

12

Šema je slična ali je način funkcionisanja potpuno različit. Radna postava sa vlastitom programskom potporom koja iz memorije poslužitelja poziva (podatkedatoteku) u svoju radnu memoriju, samostalno obradjuje podatke i po obradi vraća ih poslužitelju gde se čuvaju i na raspolaganju su svim korisnicima mreže. Periferije pojedinih računara (kao štampač ili CD ROM) mogu se proglasiti kao zajedničkideljivi (SHARE) mrežni resursi.Poslužitelj može podržavati izvršavanje aplikacija (application server) ili preuzeti na sebe deo zadataka u obradi baza podataka (poslužitelj baza podataka – database server).Ako se isključi poslužitelj klijent ce samostalno i dalje raditi, ali ne može koristiti zajednicke mrežne resurse. Svojstva klijent server arhitekture su: ■razdeljena računarska moć i programska potpora ■jeftiniji mrežni resursi ■moguć samostalni rad korisnika ■rasterećenost računara-poslužitelja od interaktivnog rada ■moguća upotreba više servera sa odvojenim zadacima ■zajedničko korištenje periferija ■veća ukupna prilagodljivost i dogradnja Sa transakcionim serverom klijent pokreće udaljene procedure koje se nalaze na serveru. Te procedure izvršavaju grupu SQL instrukcija.Komunikacija se odigrava jednostavnim zahtev/odgovor porukama–SQL instrukcije su agregirane u transakcije! Kod se mora napisati i za klijent i za serversku stranu. Klijent je obično GUI. Server je obično 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 Serveri
GW 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 Server
Sa 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 vraća rezultate klijentskom objektu. ORB – Object Request Broker – Objektni Raspodejlivac RMI – Remote Method Invocation

13

2.2.4 Web Aplikacioni Server
Ovi serveri omogućavaju 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 vrši 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-server
Klijent-server je arhitektura gde su korisnik (klijent) i server odvojeni ili neravnopravni. Najočitiji je primer pregledanja Internet stranica. Korisnikov računar i Internet preglednik su klijent – oni zahtevaju, dok su računar i baza podataka koji čine web stranicu server – on poslužuje. Klijent je obično 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 obično veoma jake mašine sa dobrim konfiguracijama i karakteristikama zbog toka što istovremeno moraju preraditi mnogo zahteva koji rastu iz dana u dan. Obično servere opsluzuju i posebni operativni sistemi za razliku od običnih – klijent operativnih sistema, serverski operativni sistemi su u više segmenata bolji i sadrže naprednije opcije.

Kiljent server

14

2.4 Mrežni protokoli
Mrežni protokol je skup standardnih pravila za prikaz, signaliranje, i overavanja podataka, te proveravanje od grešaka koje je potrebno izvršiti da bi se podatak uopste poslao. Mrežni protokol definiše zajednički skup pravila i signala prema kojima se ponašaju računari koji su umreženi. Mrežni protokoli su ujedno i najvažniji elementi jedne računarske mreže. Danas najpopularniji protokol za LAN mreže je Ethernet (koji ujedno definiše i ostale stvari kao što su signaliranje i formate paketa), i skoro da ima prevlast u računarstvu. Za globalnu WAN mrežu Internet se u najvećoj 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 korišteni protokoli ● ● ● ● ● ● ● ● ● ● ● ARCNET AppleTalk ATM DECnet HIPPI IEEE-488 Myrinet QsNet SPX System Network Architecture X.25

2.5 Transmission Control Protocol
TCP je protokol za kontrolu prenosa podatka, takođe je deo TCP/IP-a (Transmission Control Protocol/Internet Protocol) koji je deo svakog računarskog sistema. Njegova je uloga malo drugačija. Dok se IP brine za identifikaciju i vezu sa najvećom od svih mreža, TCP se brine o razmeni podataka sa mrežom, tako da pod njegom kontrolom leže podprotokoli i usluge koje se nalaze i na računaru korisnika i na serveru kojem pristupa. Među njima su FTP (file transfer protocol), news, gopher, telnet i drugi servisi koji se mogu ostvarivati TCP-om.[1]

2.6 Internet protokol

15

Internet Protocol (IP) je protokol za komunikaciju između izvora i korisnika preko Internet mreže. Podaci preko IP-a se šalju u paketima i to samo između routera, a između svičeva (switch) u frame-ovima. Internet protokol je nepouzdan, jer ne osigurava da će paket podataka biti u ispravnom stanju ili, u najgorem slučaju, hoće li uopste doći. Svaki uređaj na mreži se identificira pomoću IP adrese. IP adresa se prema trenutno važećem Ipv4 protokolu sastoji od 32 bita. Često se ova 32 bita označavaju sa četiri decimalna broja podeljena tačkama, npr. 192.168.1.21. IP adresa ima dva dela: mrežni prefix koji identificira mrežu i broj hosta koji određuje pojedini uređaj na mreži. U zavisnosti od mrežnog prefixa, mreže se dele u pet klasa: A, B, C, D i E. U upotrebi su prve tri klase koje se međusobno razlikuju prema broju hostova koje mogu imati i opsegu adresa na osnovu koji se utvrđuje veličina mrežnog prefixa. Mreže koje operiraju na ovim protokolima definišu one koji im pristupaju preko specifičnih adresa Internet protokola, popularno nazvanim IP adrese. IP adresama se jasno definiše položaj i identifikacija korisnika i kompanije koja pruža 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 uređaje, kao što su računar, router ili ostale vrste mrežnih adaptera, pomoću kojih uređaj može zahtevati i dobiti odgovarajuću IP adresu sa servera. DNS je u stvari jedna baza podataka u kojoj su upisana sva imena i odgovarajuće Ip adrese pojedinih računara, te skupina funkcija koje omogućavaju prevođenje istih. Treba naglasiti da npr. celi Internet, koji je takođe jedna velika mreža, koristi DNS mehanizam. FTP - File Transfer protocol, protokol za slanje i pregled fajlova na udaljenom računaru. 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 počinje sa "http://", a zatim sledi ime domena i IP adresa. IRC je skraćenica od "Internet Realy Chat" znači 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 poštu. (Kod podešavanja MsOutLook-a primer. Stmp.mail.Server.com) TELNET (en. TELetype NETwork) je mrežni protokol unutar IP grupe protokola na Internetu ili u lokalnim mrežama koji korisniku omogućava da se sa svog računara pomoću istoimenog interaktivnog klijentskog programa spoji na fizički udaljeni

16

server i na njemu izvršava neke operacije. Taj server, koji još nazivamo i udaljeni računar, uglavnom radi pomoću nekog od UNIX operativnih sistema. 4. Prenosni sloj TCP -je protokol za kontrolu prenosa podatka, takođe je deo TCP/IP-a (Transmission Control Protocol/Internet Protocol) koji je deo svakog računarskog sistema UDP - User Datagram Protocol je protokol za internet koji radi sa IP protokolom. UDP/IP šalje direktno pakete preko IP mreže, većinom se koristi za slanje pisanih poruka preko mreže. 3. Mrežni sloj IP (Ipv4 i Ipv6) IP protokol verzija 4, ili kraće IPv4 je najrašireniji IP protokol na Internetu. Pojedine verzije IP protokola se razlikuju po načinu adresiranja, izgledu zaglavlja paketa ali i brojnim drugim detaljima. Najvažnija karakteristika IPv4 protokola je da koristi 32-bitnu IP adresu, tj. propisana dužina svake IP adrese u ovoj verziji protokola je 32 bita. IP protokol verzija 6, ili kraće IPv6 je relativno nova verzija IP protokola koja pretenduje da postane slijedeća standardna verzija komunikacijskog protokola na Internetu. Trenutno najraširenija verzija je IP verzija 4, ili kraće IPv4. Pojedine verzije IP protokola se razlikuju po načinu adresiranja, izgledu zaglavlja paketa ali i brojnim drugim detaljima. Najvažnija karakteristika IPv6 protokola je da koristi 128-bitnu IP adresu, tj. propisana dužina 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 računarske mreže. FDDI - Fiber Distributed Data Interface je skup ANSI protokola za slanje digitalnih podataka preko optičkog kabla. FDDI mreže su token mreže te podržavaju brzine do 100 Mbps. FDDI mreže su obično osnova WAN mreža. Framerelay je sinhronizovana mreža temeljena na HDLC protokolu. Podaci se šalju u HDLC paketima. Frame relay se obično koristi za prenos podataka između lokalnih (LAN) i širokopojasnih (WAN) mreža. PPP • Point-to-Point Protocol (PPP) služi za ostvarivanje direktne veze između dva čvora. Najčešči slučaj je priključivanje računara pomoću serijskog kabla, telefonske linije, optičkih vlakana ili UTP mrežnih kablova. Većina Internet kompanija koriste PPP za dial-up pristup internetu. Također je moguć PPP preko Etherneta (PPPoE), povezujući neki DSL modem sa računarom preko mrežne kartice što je mnogo brže nego povezivanje sa USB ili nekom drugom sabirnicom. PPP je dizajniran da radi sa protokolima trećeg sloja OSI referentnog modela.

17

1.Fizički sloj Bluetooth RF - Bluetootha je moguće razmeniti informacije izmedju uredjaja kao što su mobilni telefoni, laptopi, računari, printeri, digitalni fotoaparati itd. Fizički Ethernet - je mrežna tehnologija za LAN mreže, temeljena na frame načinu rada. ISDN - Integrated Services Digital Network (ISDN) je internacionalni standard za digitalne telekomunikacione mreže.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, također je moguće dokupiti još čak 5 brojeva, tako da možemo ostvariti čak 8 istovremenih razgovora. Zavisno o potrebi, prenos podataka se može odvijati brzinom od 64 kbps (1 kanal) ili 128 kbps (2 kanala). Modemi - Uredjaj za komunikaciju izmedju dva računara ili računara i globalne mreže. RS232 – Stariji protocol za komunikaciju računara preko seriskog porta računara (9 pinskog ili 25 pinskog) USB - Universal Serial Bus (USB) je vanjska sabirnica (priključak) za razne uređaje kao što su printer, miš, tastatura, digitalna kamera, modem. Pojavio se 1996. godine, a zaživio tek 1998. Karakteriše ga visoka brzina, te jednostavnost instaliranja uređaja, 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 priključke. Wi-Fi - Bežično (en. Wireless) umrežavanje je verovatno najjednostavniji način umrežavanja, nudi srednju brzinu, ne zahteva dodatne kablove, ali je i relativno skuplji od ostalih načina umrežavanja.

2.7 Softver
Računarski softver ili softver (en. Software) je u biti računarski program napisan tako da je njegov sadržaj lagano promeniti (moguće i pomoću nekog programa). Softverov glavni zadatak je da upravlja hardverom, izvršava izračunavanja, te da obezbijedi komunikaciju sa ostalim, isto tako, softverom, tačnije rečeno – programom. Termin “software” prvi put koristi John W. Tukey 1957. godine. U računarstvu računarski softver su sve informacije koje se obrađuju preko računara ili programa. Alan Turing je bio prvi koji je propisao koncept softvera u svom naučnom radu.[2]

18

2.8 Veza sa hardverom
Softver ne može raditi bez hardvera, kao što hardver ne može raditi bez softvera. Na hardveru (kao što je hard disk) se nalazi softver (kao što je operativni sistem), softver upravlja hardverom. Obično, softver sa hard diska se učitava na RAM memoriju odakle se prosleđuje procesoru koji izvšrava naredbe koje sadrži neki program (softver). Najniži nivo softvera je mašinski kod (binarni kod), najjednostavniji oblik programa koji je obično teško promeniti. Softver se zato češće piše u programskim jezicima višeg nivoa koje ljudi mnogo bolje razumeju nego li nule i jedinice. Za prevođenje programskih naredbi se koristi kompajler koji ponovo prevodi taj kod u, najniži, mašinski kod koji računar razumije (nule i jedinice). Računarski softver se dijeli na tri glavne grane: sistemski softver, izvršni softver, programski softver. Sistemski softver pokreće računar. To može biti operativni sistem, drajver, server, razni alati i ostalo. Operativni sistem dobija pravo da upravlja celokupnim računarom, podacima, procesima itd. Najpoznatiji operativni sistemi su Microsoft Windows, Linux i Mac OS X. Izvršni softver omogućava korisniku da izvršava određene zadatke. To može biti poslovni softver, edukacijski softver, baza podataka, office paketi i ostalo. Programski softver je obično alat koji pomaže nekom programeru da izvrši neki zadatak koristeći neki programski jezik. To može biti uređivač teksta, kompajler, interpreter, linker, debugger i tako dalje. U računarskoj grafici se koristi termin grafički softver, koji je specijaliziran za rad sa grafikom. [2]

3.Klijent server arhitektura i baze podataka u klijent server okruzenju
3.1 Opšte
U oblasti računarstva nove tehnologije se uvode vrtoglavom brzinom. Kompanije su u stalnoj trci za svoj deo tržišta i za povećanje profita zbog čega sve brže plasiraju inovacije u hardveru, softveru i modelima obrade podataka. Jedna od revolucionarnih promena u računarskoj tehnologiji dogodila se u zadnjoj deceniji. Širenje upotrebe mini i mikroračunara dovelo je do nastanka tehnologije obrade podataka po modelu klijent server. Uvođenje mini računara stvorilo je uslove za ekonomsku opravdanost decentralizacije računarskih resursa do nivoa sektora preduzeća. Klijent/server model je baziran na distribuciji funkcija između dva tipa nezavisnih i autonomnih procesa: servera i klijenta. Klijent je bilo koji sistem koji zahteva specifične usluge od server procesa. Server je sistem koji obezbeđuje usluge za klijenta. Klijent i server mogu biti smešteni u istom računaru ili u različitim računarima povezanim preko mreže. U slučaju da su klijent i server procesi smešteni u dva ili više nezavisnih i umreženih računara, server sistem može da obezbedi usluge za više od jednog klijenta. 19

Pored toga, klijent može zahtevati usluge i od više servera iz okruženja bez obzira na njihove lokacije ili fizičke karakteristike računara na kojima se nalaze server procesi. Mreža služi da poveže servere i klijente zajedno obezbeđujući medijum kroz koji klijenti i serveri komuniciraju.[2]

3.2 Proces ostvarivanja konekcije
Tipičan (ali ne i obavezan) scenario po kome radi klijent/server arhitektura je sledeći: o Server request se startuje na nekom računaru (na kome je smešten), inicijalizuje se, a zatim prelazi u o sleep mod i čeka da ga neki klijent sistem kontaktira i zatraži neki servis od njega. Klijent request se startuje na istom ili nekom drugom računaru koji je preko mreže povezan sa računarom na kome se nalazi server. Klijent procesi se često inicijalizuju od strane interaktivnih korisnika koji zahtevaju izvršenje određenih komandi. Klijent p o Proces šalje zahtev putem mreže do servera tražeći određenu uslugu od njega. Kada server request završi posao (servis) koji je od njega zahtevan od strane klijenta, prelazi ponovo u sleep mod i čeka sledeći zahtev za nekom uslugom.[2]

3.3 Preporuke u vezi baza podataka kojima manipulisu klijent server aplikacije
Posmatrajmo jednu bazu podataka koja je projektovana da radi u klijent/server okruženju. U ovom slučaju, klijent sistem zahteva podatke od servera baze podataka. Obrada zahteva (selekcija zapisa) se obavlja na server mašini. Drugim rečima, serverov request selektuje zapise koji odgovaraju kriterijumu selekcije i šalje ih preko mreže klijent procesu. Selektovane podatke dalje koristi klijent koji ih može pregledavati, brisati, ažurirati... Znači, server ne obavlja celu obradu podataka iz baze, a klijent dobija samo potrebne zapise. Razdvajanje programa (zadataka koji obrađuju podatke) na klijenta i servera je jedna od ključnih razlika između klijent/server okruženja 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 obezbeđuje jasno odvajanje server i klijent procesa i njihovu autonomiju. Relacija između klijenta i servera je M:N, gde jedan server može obezbediti usluge mnogim klijentima, a sa druge strane, jedan klijent može koristiti usluge više servera. Dobre strane klijent/server arhitekture uglavnom proizilaze iz činjenice da se klijent i server komponente sistema uglavnom izvršavaju na različitim računarima. U sistemu se svaki računar može odabrati tako da najbolje ispunjava zahteve koji se od njega očekuju. Tako, na primer, za server je pogodno koristiti računar sa moćnim procesorima, velikim kapacitetom diskova i sa mnogo radne memorije, čime server može da efikasno opslužuje istovremene zahteve velikog broja klijenata i da skladišti velike količine informacija.

20

Za aplikacije klijenata je bolje da se izvršavaju na slabijim računarima sa minimalnim kapacitetom diskova i minimalnom memorijom, ali sa velikim multimedijalnim mogućnostima. U klijent/server arhitekturi se mogu naći različiti tipovi računara, kao što su PC, PowerPC, RISC radne stanice, miniračunari pa čak i mainframe. Svaki od ovih računara može 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 može zameniti novim bez izmene funkcionalnosti aplikacija klijenata. Proširivanje sistema se može obaviti veoma lako. Novi korisnici se mogu lako priključiti na mrežu sa novim radnim stanicama. Jedna od prednosti klijent/server sistema je i njegovo korišćenje radi lakšeg razvoja pojedinih delova sistema. Na primer, prilikom razvoja aplikacije za klijenta sistem se bavi samo načinom analize i predstavljanja podataka, dok je upravljanje podacima prepušteno serveru i taj deo aplikacije ne mora ponovo da se piše.[2]

3.4 Komponente i arhitektura u kijent server sistemima
Klijent/server arhitektura se zasniva na hardverskim i softverskim komponentama koje interaguju formirajući na taj način sistem. Ovaj sistem sadrži tri komponente: klijent, server i komunikacioni posrednik. ● Klijent je bilo koji računarski sistem koji zahteva usluge od servera. Klijent, poznat još i kao čeona aplikacija, odražava činjenicu da je krajnji korisnik obično u sistem sa klijent procesom. Server je bilo koji računarski sistem koji čeka na zahteve od klijenata i obezbeđuje potrebne usluge za klijente shodno pristiglim zahtevima. Poznat je i kao pozadinska aplikacija. ● Komunikacioni posrednik je bilo koji računarski sistem čijim posredstvom komuniciraju klijent i server. Sastavljen je od nekoliko softverskih nivoa koji pomažu pri prenosu podataka i upravljačkih informacija između klijenta i servera. Komunikacioni posrednik je obično povezan sa mrežom. ● Zahtevi i odgovori servera putuju kroz mrežu u obliku poruka koje se sastoje od informacija za kontrolu prenosa podataka. Za ilustraciju interakcije komponenata može da posluži primer kada klijent zahteva servise od procesa baze podataka. Izvršenje aplikacije je razdvojeno na dve glavne i nezavisne komponente, klijent i server, a komunikacioni posrednik omogućava klijent i server procesima da rade zajedno.Najpre klijent 21equest šalje zahtev do komunikacionog posrednika. Komunikacioni posrednik prosleđuje SQL zahtev do server procesa za baze podataka koji prima zahtev, potvrđuje ga i izvršava. Potom server šalje selektovane podatke komunikacionom posredniku koji ih prosleđuje 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 obezbeđuje da poruke između klijenta i servera ispravno putuju kroz mrežu i stignu na svoje odredište. Obrada SQL zahteva se vrši na serveru. Server request potvrđuje izvršavanje zahteva i šalje rezultat klijentu. Komponente klijent/server arhitekture moraju se povinovati nekim osnovnim principima kako bi međusobno delovale ispravno. Ovi principi moraju biti jednoznačno upotrebljivi u komponentama klijenta, servera i komunikacionog posrednika. Principi koji moraju biti ispunjeni su:

21

● Hardverska nezavisnost. Procesi klijenta, servera i komunikacionog posrednika treba da imaju mogućnost izvršavanja na različitim hardverskim platformama (IBM, DEC, Apple itd.) bez ikakve funkcionalne razlike. ● Softverska nezavisnost. Procesi klijenta, servera i komunikacionog posrednika treba da podržavaju različite operativne sisteme (DOS, Unix, OS/2), različite mrežne protokole (TCP/IP, SPX/IPX) i različite aplikacije (baze podataka, radne tabele, elektronska pošta itd.). ● Otvoreni pristup za servise. Svi klijenti u sistemu moraju imati otvoren pristup svim servisima svih servera koji postoje u mreži i to onoliko puta koliko oni to zahtevaju. Servisi ne smeju zavisiti od lokacija klijenata i servera u mreži. Ključna stvar je da se servisi obezbeđuju na zahtev klijenata. Distribucija procesa. Obrada podataka je distribuirana između klijenta i servera. Podela opterećenja obrade mora se povinovati sledećim zahtevima: ● Klijent i server procesi moraju biti autonomni, sa jasno definisanim granicama i funkcijama. Ova osobina omogućuje jasno definisanje funkcionalnosti obe strane. ● Lokalno korišćenje resursa (i klijenta i servera) je maksimalno. Procesi klijenta i servera moraju potpuno koristiti snagu obrade glavnog računara. Ova osobina omogućuje dodelu zadataka računaru koji najviše funkcionalno odgovara. ● Potrebno je da procesi budu takvi da mogu biti lako i što bolje izvršeni na više snažnih hardverskih platformi. Potrebno je još da bude ispunjen i uslov prenosivosti softvera između različitih mašina bez potrebe da se interveniše na izvornom kodu, već je potrebno samo izvršiti prevođenje i povezivanje kako bi softver odmah moga da se upotrebi. Interoperabilnost i integracija zahtevaju da procesi klijenta i servera budu integrisani u “bezšavnu” formu sistema, tj. različite aplikacije imaju mogućnost razmene podataka između različitih 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 korisničkim interfejsom, pristupom podacima, mrežnim protokolima, međuprenosnom komunikacijom, itd. Univerzalni standardi još uvek ne postoje već ima mnogo različitih standarda koji se mogu primeniti. Na primer, aplikacija može biti bazirana na ODBC (Open DataBase Conectivity) umesto IDAPI (Integrated Database Application Programing Interface) za pristup podacim i može koristiti SPX/IPX umesto TCP/IP mrežne protokole.[2]

22

3.5. Funkcije klijent server
3.5.1 Klijent
Klijent je bilo koji sistem koji zahteva usluge od serverovog procesa. Klijent započinje konverzaciju sa serverom. Klijent sadrži hardverske i softverske komponente i poželjno je da one poseduju sledeće karakteristike: ● Ne toliko snažan hardver ● Operativni sistem koji je sposoban da podrži multitasking ● Grafički korisnički interfejs (GUI –Graphic User Interface) ● Komunikacione sposobnosti Hardver klijenta je obično stoni računar (PC ili radna stanica, a u poslednje vreme se koristi i X-terminal koji jedan de potrebnog klijent/server softvera drži u ROM-u, a ostatak se puni u RAM memoriju sa servera preko mreže). Klijent bi trebalo da poseduje operativni sistem sa nešto malo multitasking mogućnostima. Kombinacija DOS/Windows ili Windows 95 su trenutno najkorišćenije klijent platforme. Mad DOS ima jaka ograničenja u pogledu memorije i podrške multitaskinga, Windows 3.1 obezbeđuje primitivne multitasking osobine i GUI. Windows 95 kao samostalan operativni sistem podržava multitasking i sve više zamenjuje DOS/Windows kombinaciju. Ove osobine kao i mnoštvo 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 mrežnim operativnim sistemima. Servisi mogu biti raspoređeni na različitim mrežama i klijent računari moraju biti sposobni da pristupe svim tim servisima. Zbog toga, bez obzira na popularnost DOS/Windows kombinacije i Windows-a 95, kao bolja rečenja 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 mreži i ove aplikacije su uglavnom zasnovane na grafičkom korisničkom interfejsu sa namerom da se sakrije kompleksnost od krajnjeg korisnika. Klijent aplikacija interaguje sa operativnim sistemom radi korišćenja multitaskinga i grafičkog korisničkog interfejsa koje on obezbeđuje. Ona još intereaguje i sa mrežnom softverskom komponentom komunikacionog posrednika radi pristupa servisima. Hardverska komponenta komunikacionog posrednika (mrežna kartica i mrežni kabl) fizički transportuje zahteve i odgovore na zahteve između klijenta i servera. Dok se zahtev izvršava na serveru, klijent je slobodan da izvršava druge poslove.[2]

3.5.2 Server
Server je bilo koji protokol koji obezbeđuje servise za klijente. On je reaktivan jer uvek čeka na zahteve klijenta. Posmatrano sa strane usluga koje pružaju klijentima tipični su sledeći servisi: ● File servisi koji služe za upravljanje datotekama. Klijent povezan na mrežu može pamtiti datoteke na file serveru kao da je to njegov lokalni disk. 23

Kada klijent zahteva podatke iz neke datoteke, File server mu prosleđuje celu datoteku koju klijent dalje pretražuje i obrađuje. ● Print servisi, koji se obezbeđuju tako što se jedan ili više štampača povežu preko nekog računara sa klijentima. Klijent može pristupiti bilo kom štampaču kao da je direktno povezan sa njim. On šalje serveru podatke koje treba odštampati, podaci se privremeno smeštaju na disk servera odakle se potom šalju na odgovarajući štampač. ● Faks servisi, pri čemu je najmanje jedan server opremljen (internim ili eksternim) faks uređajem. 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 računarima ili serverima za koje nisu direktno povezani. ● Serveri baza podataka čine najširu i dosta uspešnu klijent/server implementaciju. U ovom slučaju klijent šalje SQL zahtev serveru; server prima zahtev, potvrđuje ga, izvršav 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 izvršavaju specijalne procedure koje koje su instalirane na njemu. SQL kod ne putuje kroz mrežu čime je redukovan mrežni saobraćaj pa ovaj server ima bolje performanse od servera baze podataka. ● Raznovrsni servisi koji uključuju CD-ROM, video i dr. Server, takođe poseduje softversku i hardversku komponentu. Računar koji radi kao server mora biti mnogo snažniji od uobičajenih klijent računara zato što server procesi moraju da zadovolje konkurentne zahteve više klijenata. Ovi računari obično imaju veću procesorsku snagu (ne retko i više snažnijih procesora), veći kapacitet operativne memorije i veći kapacitet diskova nego računari klijenata. Kao server platforme se mogu koristiti jači PC računari, RISC računari ili veliki računari ako je u pitanju upravljanje velikikim bazama podataka ili upravljanje velikim mrežama i sl. Od savremenih server mašina se zahteva podrška multiprocesiranju, disk poljima,mehanizmima obrade višestrukih niti (multithreading) memorijskim podsistemima, itd. Podrška disk poljima podrazumeva pristup redudantnim jeftinim diskovima (poznatim kao RAID diskovi) što uvodi pouzdanost u radu sa diskovima u smislu oporavaka od grešaka (otkaz nekog diska).[2] Mehanizam višestrukih niti omogućava da se procesi podele na više nezavisnih izvršnih poslova, čime se obezbeđuje da aplikacije mogu izvršavati više simultanih zadataka. “Nit” predstavlja najmanji 24equest koji 24eques može planirati za izvršenje. Podrška 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 izaštita od problema u napajanju električnom energijom što se obično obezbeđuje uređajem za neprekidno napajanje. Potrebno je obezbediti mogućnost za proširenje CPU-a, memorije, diska i periferija. Za operativni sistem servera se najčešće bira operativni sistem sa mrežnom podrškom (Windiows NT ili Unix), ali to nije obavezno. Ide se na to da se odvoje 24

server procesi i mrežni operativni sistem jer u tom slučaju server računar se rasterećuje za izvršavanje zahteve koji do njega stižu preko nekog mrežnog računara koji sada preuzima obavezu da zahteve prosledi do servera. Server aplikacija se startuje pod operativnim sistemom i interaguje sa komponentom komunikacionog posrednika radi osluškivanja klijent zahteva za servisima. Ova aplikacija ne mora biti zasnovana na grafičkom korisničkom interfeju. Kada zahtev bude primljen, server procesi ga lokalizuju (određuju adresa klijenta koji je poslao zahtev). Server zna kako treba da obradi zahtev tako da mu klijent saopštava samo šta, a ne i kako treba uraditi. Kada se obradi zahtev, odgovor se šalje klijentu preko komunikacionog posrednika. Jedan računarski sistem može biti jasno podeljen na klijent i server komponente. Za server procese postooje sledeći principi: ● Lokaciona nezavisnost, što znači da server request može biti smešten bilo gde u mreži. ● Optimizacija resursa – server sistem mogu deliti više klijenata. ● Skalabilnost, što znači da server sistem može biti startovan na više snažnih platformi. ● Server procesi bi trebalo da rade u plug-and-play okruženju.[2]

3.6 Dvoslojni i troslojni Klijent / server sistemi
Najveći broj informacionih sistema obuhvata module koji krajnjem korisniku, putem GUI interfejsa, olakšavaju pregled i unos podataka, ali i proveravaju podatke i manipulušu bazom. Moduli su organizovani u obliku klijent / server sistema, u dva, tri ili više slojeva. Dvoslojni klijent / server sistemi obuhvataju module u kojima su GUI i poslovna logika sadržani u istoj aplikaciji (klijentu), dok se relaciona baza nalazi na serveru. Klijent stvara korisničko okruženje 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 rešava poslovnu logiku i preuzima na sebe komunikaciju sa relacionom bazom. Pojavom Jave u mogucnosti smo da stvorimo višeslojne i višeplatformske klijent/ server sisteme. Oni obuhvataju veliki broj jakih server aplikacija i različitih relacionih baza na više nivoa, a klijent može, komunicirajuci posebno sa svakom pojedinačnom server aplikacijom, komunicirati sa više baza podataka. Ulogu “malog klijenta” može da odigra i običan applet, što nas uvodi u oblast distribuiranog programiranja, u kojoj se Java programeri osećaju “kao riba u vodi”. Putem RMI ili CORBA poziva, Java klijent može 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 definišu interfejsi po CORBA standardu u Javi i, preko ORB-a (Object Request Broker), pozivaju metode u programima napisanim u bilo kom programskom jeziku koji podržava CORBA standard) i JDBC. Postaju jako sredstvo za pisanje distribuiranih, višeslojnih i višekorisnickih klijent / server aplikacija za pristup relacionim bazama podataka. Podatak da su na Zapadu najtraženiji Java programeri upravo sa znanjem JDBC, RMI i CORBA,

25

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 tipično sastoji od ručno pisanog klijentskog softvera koji implementira i korisnički interfejs i komunikaciju sa udaljenom bazom podataka, kao što je SQL Server, radi postizanja ažurnosti podataka. Dakle grafički korisnički intrerfejs se obavezno nalazi na klijentskoj mašini, DBMS (DataBase Managment System – protokol za upravljanje bazom podataka) obavezno na serveru, dok se poslovni deo sistema (sama obrada) može nalaziti ili na klijentu ili na serveru. Jedan od važnih principa koji je ispoštovan u dvoslojnoj arhitekturi je princip transparentnosti, tako da korisnik ne mora da zna na kojim se platformama izvršavaju delovi softvera informacionog sistema. Takode postoje realizovani DBMS kod kojih je server baze distribuiran na više platformi, ali se za korisnika stvara iluzija o jedinstvenosti servera baze. Jedinstvenost pogleda na bazu je podržana na više nivoa, od operativnog sistema do samog DBMS. Tačka oslonca u formiranju takvih sistema je SQL-92 standard.[5] U troslojnim sistemima, javlja se nezavisni aplikacioni server, čime se rasterećuje server baze podataka ili klijentska mašina. Za razvoj grafičkog korisničkog 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 korišcenje 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 rešenjima proizvodjača DBMS-a, što znaci da organizacija ima svoj intranet na koji oslanja reques za upravljanje bazama podataka. Pojava Web-a dovela je do proširenja koncepta transparentnosti. Umesto transparentnosti mreže, pomoću 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 sadržaju, ne obazirući se na platformu, operativni sistem računara, lokaciju računara i sl. Osnova za takvu transparentnost je jedinstven standard za kreiranje Web dokumenata HTML i pojava Web browser-a (npr. Netscape) za sve postojeće 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 služe istoj svrsi kao i kod ručno pisanog programa i obično im se pristupa preko reques koda. Neke komponente, kao one za pristup serveru i bazi podataka su osnovna grada Webzasnovane 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 omogućava rad sa dinamičkim stranama neophodnim za implementaciju klijent/server aplikacije na Web-u.[5]

26

Troslojna Klijent server struktura[5]

Asp
Jedan 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 može da koristi ugradjeni kod da bi imlpementirao obradu podataka zajedno sa HTML stranom. Nadalje, on može pomoću reques koda da pristupi eksternim delovima aplikacije ili da se poveže direktno sa bazom podataka. Kada browser zatraži ASP ugradeni reques se izvrši od strane scripting engine na serveru i rezultati se dinamički 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, održavanja i unapredjenja performansi. ActiveX Server Components Implementiranje klijent/server rešenja na Internet predstavlja izazov sa kojim se obično ne sučeljavamo u tradicionalnijim klijent/server okruženjima. Kada se instalira tradicionalna klijent/server aplikacija, zajedno sa njom se instalira i sav prateći softver neophodan za njeno izvršavanje. To uključuje i softver za podršku bazama podataka, bilo da je integrisan u aplikaciju ili da je isporučen kao sistemski softver (npr. ODBC). Ovo nije uvek moguće u Web-zasnovanoj aplikaciji. Različiti browser-i podržavaju različite kontrole, dok ih neki ne podržavaju uopšte. U svakom slučaju veličina softvera koji podržava funkcionalnost kao što je pristup bazama podataka čini download nepraktičnim. ActiveX Server Components je projektovan da rešava ove probleme.

27

IIS 3.0 se isporučuje 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 teško ostvariti u tradicionalnom okruženju; mogućnost da se lako referenciraju u okviru HTML strane predstavlja veliku uštedu u vremenu razvoja. [5]

4.TCP/IP
4.1 Opis protokola i paketa

Protokol je standard za kog programi moraju biti napisani. Znači requeste odredjuje način slanja podataka preko mreže.TCP/IP – rad na TCP/IP protokolima je počeo jos 1973 godine. To je set mrežnih protokola koji dozvoljavaju svakom računaru, svakom sistemu da uspostavi vezu sa drugim sistemom koristeći mrežnu topologiju. 1978 god. Završen 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 UNIX-a,BSD ugradio TCP/Ipprotokol. BSD je bio veoma omiljen u istraživačkim centrima i univerzitetima. Takodje bio je besplatan. TCP/IP dodje kao skup svih tih protokola koji omogućavaju prenos podataka preko mreže i to u bilo kom formatu. Znači slike,tekst sve možete prenositi preko mreže.... 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 lowlevel mrežnih protokola kao što su IP i TCP protokoli. Navešću 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 mreža nebi opstala bez njega. 1) standardizacija high-level protokola za široko dostupne korisničke servise. 2) Otvorena arhitektura protokola. Podržana od strane svih platforma. Radi na svim OS i svom hardware-u. 3) Otvoren za development. 4) Nezavistan od mrežnog hardvera. TCP/IP može da radi nezavisno od mrežne arhitekture tj dal se radi o Ethernetu, dial upu ili bilo čemu drugom. 5) Jednostavna šema za adresiranje koja dozvoljava, adresiranje širom mreže ma kolko ta mreža bila velika. Pošto su toliko otvoreni TCP/IP protokoli su dobro i dokumentovani.Tako da u *RFC* (Requests for Comments), može naći najnovije specifikacije TCP/IP protokola. Korišćenje RFC je preko potrebno za dobro razumevanje rada mreže.

28

Arhitektalni model TCP/IP protokola je definisan preko *OSI* standarda.OSI je skraćenica od Open Systems Interconnect Reference Model,i OSI obezbedjuje osnovne reference u sferi protokola. On definise pravila ponašanja protokola. OSI sadrži 7 slojeva (layers), koji definišu funkcije protokola. Svaki taj layer prikazuje funkciju koja se izvršava 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 reći nesto više o nekolicini protokola ponaosob.Kao što se iz naslova može zaključiti prvi na redu je IP requeste tj. Internet Protocol. Internet Protokol je deo TCP/IP protokola, koji omogućava mnogo toga. On sadrži informacije o adresiranju i kontroli, i te informacije omogućavaju da se paketi rutiraju kroz internet. Paket je kompresovan niz podataka, na čijem se vrhu nalazi *header*, koji sadrži razne podatke o čemu ćemo kasnije imati više reći. Ruteri tj uredjaji koji ispituju pakete svlače header i čitaju osetljive informacije o rutiranju. Sadržaj headera se može menjati u toku transporta. Hakeri često koriste metode spoofa kako bi maskirali svoju pravu IP i to rade menjajuć sadržaj 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

Length Flag Protocol SOURCE

Type of service

Fragment Offset Header Checksum

ADDRESS ADDRESS

D E S T I NATI O N DATA

O PT I O N S

Izvrišićemo malu analizu ovih polja:

29

• • • •

• • • • • •

Version – Verzija IP koja se trenutno koristi Lenght - Veličina headera ToS - Type of Service Total l,- Totalna veličina IP paketa. Identif.- Indetification, broj koji pomaže 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 treći 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 kružili neprestano. Protocol- Ukazuje da gornji requeste prima nadolazece pakete. H check.- Header checksum, brine se o integritetu paketa. Adress - Adrese pošaljioca i primaoca. Options – Opcije vezane za sigurnost.

Još da napomenem sta su IP datagrami (datagrams). IP datagrami su u osnivi veoma proste tako reći 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 mrežni i deljeni resursi predstavljaju veoma veliki rizik za vas reques. Oni su veoma često način na koji sebe možete izloziti opasnosti. Opet sve ove tehnike idu sa vašim poznavanjem skeniranja makar onog osnovnog kao sto je skeniranje portova,jer ako npr vidite da je na sistemu aktiviran port /*2049*/ to znači 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 možemo iskoristiti par UNIX utila kako bismo izvršili popisivanje te mašine.[3]

4.2 Opis port-a
30

Dok računar nije na mreži poseduje LoopBack ip adresu i obično je 127.0.0.1 ..Ona ima jednu zanimljivu ulogu u programiranju klijent server aplikacija a to je da omogućuje komunikaciju izmedju klijent i server programa a da su i jedan i drugi pokrenuti na istom računaru.Tako možemo vršiti verodostojnu proveru rada naše aplikacije sa velikom uštedom vremena na jednom računaru. Pored imena koja rešavaju problem indetifikacije treba postojati i jedan put koji povezuje bolje rečeno 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 port
Ftp – 21 Http – 80 telnet – 23

Netbios - 135

4.3 Socket kontrola
Mswinsock je jedna od kontroli u vezi internet aplikacija i podržava 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 zatražiti 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 . - Pojaviće se Dialog boks Components i na prvoj kartici Controls čekirati u llistingu “Microsoft Winsck Control 6.0” i kliknuti Apply. - U Toolbox pojaviće 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 možemo uporedno pisati i proveravati našu aplikaciju.

Primer 1. Elementarni uslovi za uspostavljanje veze preko sock-a.

31

Server strana aplikacije : ‘ upisati u form_load ( U tom slučaju odmah po startovanju programa naš sock čekaće konekcuji na zadatom portu.-To se može 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 režima osluškivanja 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 pojaviće se editor za pisanje koda za dogadjaj Command1_Click tj. taj kod će se izvršiti kada budemo kliknuli na njega. Promenicemomu samo svojstvo caption (inace svojsto odredjuje sta ce da pise na tom dugmetu neznači i njegovo pravo ime. Napišimo 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 ‘slučaj testiranja aplikacije na jednom računaru ‘I klijent I server su pokrenuti na istom računaru ‘remoteHost ili internet adresa udaljenog ‘racunara je IP adresa a može biti host (Ime) ‘računara ali samo u slučaju LAN mreže (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 kod
Private 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

32

Klijent strana aplikacije : ‘ Ubacimo drugo dugme i jednu liniju koda : sockKlijent.SendData “ZDRAVO!!!” ‘ Slanje stringa ide pod navodnicima Server strana aplikacije : ‘ sada moramo obezbediti da server može prihvatiti I podatak. ‘ kliknimo na sock kontrolu i izaberimo DataArrival dogadjaj. ‘ Sa Toolbox uznimo i razvučimo jedan textbox i promenimo mu ime u Prikaz
Private Sub sockServer_DataArrival(Index As Integer, ByVal bytesTotal As Long)

‘ Dogadjaj DataArrival izvršava 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

33

Primer 2 : Postavljanje miša u odredjenu poziciju na ekranu
‘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 pristupačna svim formama) Private Declare Function SetCursorPos Lib “user32” Alias “SetCursorPos” (ByVal x As Long, ByVal y As Long) As Long ‘ A u formi privatne ‘Izabraćemo private deklarisanje jednostavnije bez modula. ‘I onda nam ostaje samo da tu funkciju pozovemo.Recimo biće to jedno obično ‘CommandButton_Click dugme kad se klikne izvrsi se blok naredba . ‘ Deklarisanje funkcije
PROMENJIVE
IME BIBLIOTEKA

SVOJE-VREDNOSTI

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 , definišemo dodatnu promenjivu ‘ sa istim tipom kao i cela funkcija ‘ U našem slučaju tipa LONG Dim postaviMISAu00 As Long ‘ Kada kliknemo na dugme MIS ce zauzeti Gornji levi Ugao ‘ Koji se računa kao O,0 Nulta pozicija

postaviMISAu00 = SetCursorPos(0, 0)
‘ Nisu sve funkcije tako jednostavne ‘ Neke podrazumevaju i više pod funkcija i definisanje novih promenjivih ‘ Ako budemo dovitljivi možemo napisati ‘ funkciju po kojoj ce se miš kretati ‘ Tipa spirala , trougao pa čak se može snimiti kretanje miša ‘ i pustiti play gde će se videti sta je sve miš radio End Sub Kraj primera 2

34

5. Opis izvornog koda programa 5.1 Saveti za pravilan rad programa (podesavanje) :
1. Uspostaviti Lan konekciju izmedju računara.Iskljuciti firewall (ili dozvoliti) koji obično neće dozvoliti rad programa. 2. Startovati računar na kom se nalazi glavi server u slučaju da se klijen aplikacija na klijent računarima straruje preko StartUp metode(automacko paljenje aplikacije po paljenju racunara.U svakom slučaju 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 slučaju da se klijent aplikacija startuje manuelno startovati klijent aplikaciju na klijent računarima. Odmah po startovanju glavni server će detektovati prisustvo klijent računara I izvršiti konekciju.Server generiše prvu sliku ,konvertuje u JPG format I šalje glavnom serveru. ActivXControl koju koristimo za ostvarenje klijent/server aplikacije najčesće je MSWINSCK.OCX koja se nalazi u windowsSys direktorijumu.(Ako vam je potreban nadjite registrovanu verziju I samo iskopirajte fajl u WinSysDir. Pošto 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 pomoćnih funkcija i konstanti.Api funkcije pripadaju naprednoj temi rada vizuelnog programiranja.Pod deklaracijom podrazumevamo pozivanje već postojećih funkcija koje se nalaze u DLL fajlovima (Dinamic Linked Libraries)tj. Bibliotekama funkcija.Najveća prednost je u tome sto one zauzimaju radnu memoriju samo dok se izršavaju a zatim oslobadjaju memoriski prostor drugim funkcijama, što nevaži za objekte.Tako možemo napisati program čiji fajl neiznosi više od 300Kb(I zauzima malo RAM memorije) a može izvršiti sve funkcije koje nam operativni system omogućuje.Postoje Javne i privatne deklaracije i konstante . Javne se deklarišu u MODUL-u I važe 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 znače definisanje funkcija i konstanti .Kodni prostor je podeljen dogadjajima dok su dogadjaji vremenski dirigovani po ustaljenom redu.Naravno ne izvrše se svi uvek dok se neki uvek prvi izvršavaju kao npr. FormLoad , Form_Initialize ..

35

5.2

Opis izvornog koda programa

Problemi na koje sam nailazio priliom izrade softvera : 1.Kako automacki da se izvrši povezivanje klijent-server i da server zna kad je a kad nije klijet prisutan. Klijent aplikacija po startovanju u Timer-u koji izvršava kod po odredjenom intervalu (periodicno) zahteva konekciju koristeći upisanu IP adresu server računara 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 zatražice 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 brže kontrole procesa.Pod kontrolom se smatra zahtev za aktivnim slanjem i zahtev za prekidom slanja.Prijem slike se vrši na portu 8866 (multyconnection – može prihvatati slike sa više računara istovremeno) dok se na portu 12345 I 432 može poslati kontrolni string “start” i “stop” za početak i kraj prenosa slike. 3.Problem detekcije prekida konekcije. Ako sock koji samo čeka podatak(što je slučaj sa našim sockom na 8866 portu kom su drukčije definisane podrutine za prijem podataka) treba detektovati diskonekciju trebalo bi ugraditi nekakav vremenski tajming sa proveru koji nije tako ni jednostavan i praktičan.Sada imamo sock koji se sa servera kao klijent konektuje za sock koji osluškuje na klijent strain i takvih ima 8 (za osam racunara).Imaju ulogu da pojedinačno svaki svoj računar prate tj. po diskonekciji sock prepoznaje da veza nije više aktivna i korisnik se obaveštava.Imaju i dodatnu ulogu zahteva za slanje i prekid slanja , chat deo i slanje otkucaja tastature( 12345 I 432 ). 4.Problem kontrole miša i njegovih dogadjaja Za ovaj deo neophodno je deklarisati par API funkcija kao SetCurPos(X,Y) i GetCurPos(X,Y).Kroz dogadjaj mousemove možemo pratiti vrednosti pozicije miša ali samo kad smo pod našom formom.Ta forma je razvučena po celom ekranu (full screen) i periodično učitava primnjenu sliku tako da mi sad vidimo udaljeni racunar i svaku promenu na njemu.Vrednosti X i Y nisu iste za miša kad je na formi programa i kad je van njega .Zato postoji jednačina koja deli x sa 150 I y sa 149 da bi dobili odnos 1024x768.Poželjno je da na klijentu i serveru imamo istu rezoluciju.Deljenjem sa 149 dobijamo necelobrojnu vrednost koja je neprihvatljiva za zadavanje koordinata miša tako da se preko osobine MaXLenght reguliše decimala.

36

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

Blok sema 1

37

Blok šema za uspostavljanje kontrole miš-a

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 beleženje server opcionih podataka. Potrebni falovi za rad programa na strani servera : TABCTL32.OCX – Tab boks (obično se već nalazi u WINSYSDIR. MSWINSCK.OCX –Socket internet kontrola COMDLG32.OCX – dijalog boks

38

Primer 1.
Program : Glavni server MainServer.exe – forma FORM2
Private Sub sockMain_ConnectionRequest(Index As Integer, ByVal requestID As Long)

‘ Jedan dobar trenutak za analizu. ConnectionRequest je trenutak ‘ odgovora servera na zatraženu 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 izvršavanja ‘ podrutine) a End sub označava 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 napiše End Sub 39

Primer 2.
Program : Klijent.exe , forma FORM1 ceo sadržaj 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 računara Unapred uneta u sadržaj 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 više nije prisutan End Sub

40

Private Sub sockMain_Close() sockMain.Close ' Na prekid u slučaju 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() ' Periodično 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 razvučena po celoj formi i ‘ periodično u kratkom ‘intervalu učitava sliku Private Sub Timer3_Timer() On Error GoTo nio: Form1.Picture = LoadPicture(App.Path & "\" & txtHost.Text & ".jpg") nio: End Sub

41

Private Sub Timer4_Timer() ‘ Matematički deo algoritma – usaglašavanje koordinatnog sistema ‘ koji važi dok je miš na našoj formi i dok je van nje ’ ograničavajući dozvoljenu dužinu 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 poželjne … ‘ Kad se reši matematički deo ostaje nam samo numerologija ‘ Evo jednog zanimljivog dela programa – Kako forma prepoznaje ’ koje dugme na mišu je ‘ pritisnuto - način(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 mišu 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 miša End If End Sub

42

Private Sub Command10_Click() click.SendData "51" ‘ Mogli smo ovo odmah da napišemo kao i u slučaju sa levim ‘ klikom ali neki put nećemo uspeti da pošaljemo u dve linije ‘ koda dva podatka jedan za drugim jer se zahteva odredjeno ‘ vreme i onda dobijemo grešku a nemamo grešku 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 mašini Text1 = 0 End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

Text4 = Button ‘ Kad kliknemo i jos uvek držimo dugme izvrsice se samo ‘ MOUSEDOWN I to je dovoljno da znamo dal je u pitanju levo ili ‘ desno dugme End Sub
Private 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 zadužen za prepoznavanje ’ komandi miša upućenih 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

44

text2 = 0 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. ZAKLJUČAK
Internet već danas predstavalja figurativno za čoveka neograničenu količinu podataka i informacija.Pa tako se može naći Souce code odredjenog programskog jezika u mom slučaju to je Visual Basic Code.Postoje mnoge prednosti poznavanja sintakse nekog programskog jezika kada je u pitanju rad na računaru.Korišćenje source code nekog programa omogućava modifikaciju koda u cilju efikasnijeg rada i boljih grafičkih rešenja. Za većinu aplikacija izvorni kod nije besplatan tako kada nam zatreba odredjena tema treba prikupljati deo po deo.Ovaj projekat se je sastavljen na takav način.Kod komponovanja treba obratiti pažnju na vremenske cikluse koji se odvijaju u algoritmima programa.Treba posebnu pažnju posvetiti izborom radnog direktorijuma I backup direktorijuma , skladišćenju modula i formi (preporučuje se pri insert form –snimi forma save as) i promeni imena objekata, promenjivih. Jedan od zaključaka ovog rada je i sledeće : vrlo je lako ostvariti osnovnu konekciju i kreirati grafički interfejs za jednu CHAT aplikaciju , pa samim tim da jednom linijom koda šaljeno STRING udaljenom računaru onda taj string možemo definisati kao jednu komandu koju kada druga strana primi i prepozna npr. “start” izvši odredjen Blok naredbi (kod) . Pitanje dali nam je sve to potrebno jer danas imamo mnostvo programa koji ispunjavaju većinu korisničkih potreba ,zavisi kako kome.Znamo da se sa brzim razvitkom tehnologija uporedno javljaju i problemi i nova rešenja a i nepobitan porast korisničkih zahteva.Tako da je neko malo šire poznavanje računarskih tehnologija uvek dobro došlo kad se pojavljuju ERROR dialog poruke. Dinamicko povezivanje je metod kojim se funkcije čine dostupnim za vašu aplikaciju bez njihovog tvrdog kodirnja u izvršne fajlove. Izgradivši (Microsoft) WindowsAPI, on je opštu bazu koda učinijo dostupnom za Visual Basic aplikacije, sa više od 500 funkcija.Na svakoj 32-bitnoj windows mašini na raspolaganju je API. Dobijamo male i moćne 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 ključevima i tipu podatka. Operacije sa registrom nam pružaju pamćenje odredjenih podataka koje program može pozvati i upravljati se po njima. U vezi sa iščitavanjem ip adrese servera nije korišćen rad sa registrom već princip izčitavanja tekstualnog fajla.Iz tog razloga jedina podešavanja pre početka rada programa jeste da se unese ip adresa glavnog servera.Na taj način stvoren je uslov da se ovaj program može koristiti na bilo kojim windows računarima a ne samo za datu mrežu.U vezi portova oni su birani nasumično 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 može približiti 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/IP
datum preuzimanja : 12.11.2007

www.postfest.ptt.yu/savetovanje98/PavicevicVL98.html
datum preuzimanja : 12.11.2007

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

http://www.phearless.org/i1/The_Art_of_Footprinting.txt
datum preuzimanja : 14.11.2007

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

http://www.postfest.ptt.yu/savetovanje98/Babovic98.html
datum 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 kontrolu
datum preuzimanja : 04.11.2007

47

Sign up to vote on this title
UsefulNot useful