Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 47

Visoka tehnička škola Niš

Diplomski rad

Vizuelni prikaz klijent-server


tehnike

Mentor : Mr.Mirko Kosanović Student: Nikola Lukić

______________________________ br.indeksa RE17/03

1. član komisije

_______________________________

2. član komisije

____________________________________

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 klijent-
server 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 korisnik-
rač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 (podatke-
datoteku) 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čki-
deljivi (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 * Manje poznati i korišteni protokoli

● Bluetooth ● ARCNET
• Ethernet ● AppleTalk
• FDDI ● ATM
• IEEE 1394 (FireWire, iLink) ● DECnet
• Frame relay ● HIPPI
• IEEE 802.11 ● IEEE-488
• IPX ● Myrinet
• Point-to-Point ● QsNet
• TCP/IP ● SPX
• TCP ● System Network Architecture
• Token Ring ● 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 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 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 low-
level 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 serv-


ise.

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 4 8 16 19 24 31
version Length Type of Total length
service
Indetification Flag Fragment Offset
time to live Protocol Header Checksum
SOURCE ADDRESS
D E S T I NATI O N ADDRESS
O PT I O N S
DATA

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 seri-
ji,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 IP DATA
DATA link HEADER 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 IME 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 , 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] http://sl.wikipedia.org/wiki/TCP/IP
datum preuzimanja : 12.11.2007

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

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

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

[5] http://www.postfest.ptt.yu/savetovanje98/Babovic98.html
datum preuzimanja : 23.11.2007

[6] http://www.Planet-Source-Code.com Uzet kod za generisanje slike,


datum preuzimanja :03.11.2007

[7] http://www.Planet-Source-Code.com Kod za sistemsku kontrolu


datum preuzimanja : 04.11.2007

47

You might also like