MICROMAX LOGO Ilustracija
Kontakt


PC Press
 

Klijent za Clipper instalira se kao poseban RDD koji je potpuno kompatibilan sa postojećim DBFNTX i DBFCDX drajverima. Potrebno je po uputstvu izmeniti skriptove za linkovanje i u aplikaciji na početku izabrati novi RDD naredbom RddSetDefault i to je sve - source programa ostaje neizmenjen, a ipak se program potpuno drugačije ponaša. Podaci u bazi ostaju neizmenjeni i ne zahteva se nikakva konverzija. Na serveru se startuje ADS koji očekuje zahtev, a vaš program je sada klijent. Komunikacija se obavlja IP ili IPX protokolom.

Nakon startovanja, program uobičajenim naredbama pristupa podacima na mapiranom mrežnom disku. Na primer, izvršavaju se naredbe Use , Index, Replace, Skip itd. ali klijent sada te operacije ne izvršava, nego samo prosleđuje zahtev ADS serveru. Server reaguje i izvršava zahtev (ukoliko startujete konzolu na serveru, možete pratiti obradu zahteva i protok podataka). Rezultat je isti, ali se obrada drastično razlikuje. Uočite da se obrada desila isključivo na serveru, a radna stanica samo treba da prikaže rezultat obrade.

Uključivanje ADS-a u vašu aplikaciju neće učiniti da program "poleti"; rad u "lokalu" će čak biti usporen u odnosu na standardnu obradu, jer u slučaju ADS cela obrada opet ide mrežnim protokolom što je mnogo sporije nego direktan pristup lokalnom disku. Čim se pojavi nekoliko istovremenih korisnika, stvar je potpuno drugačija - klasična obrada postaje sporija, dok ADS-u jedino usko grlo predstavlja hardver servera. Pri tom treba imati u vidu da fajl server postaje aplikativni server i da se na njemu izvršavaju naredbe vezane za bazu podataka, dok je u klasičnom slučaju samo odgovarao na zahteve za čitanje/pisanje fajlova. Zato je važno da server bude snažna mašina, naročito ako ima veliki broj korisnika koji paralelno koriste program.

ADS je prava 32-bitna multithread aplikacija koja podržava više procesora, pa će većina obrada biti znatno brža čak i u poređenju sa ranijom lokalnom obradom. Samo ova osobina bila bi vredna korišćenja ADS-a, ali se lista prednosti tu ni izbliza ne završava: kako je sada obrada podataka centralizovana, moguće je daleko kvalitetnije uraditi centralno keširanje podataka i optimizaciju upita. Na primer, umesto primitivnog mehanizma zaključivanja koji se primenjuje na tabele fajl-servera, ADS ima posebne redove lokovanja koje optimizuje i tako postiže značajne dobitke u performansama. Tabelu više nema potrebe stalno otvarati i zatvarati; sve to kontroliše ADS i klijent ne koristi nijedan file handle za obradu.

ADS takođe koristi posebne tehnike za optimizaciju filtera i pretraživanja, pa se te operacije obavljaju daleko brže. Podržana su tri formata podataka. Prvi je standardni DBF sa NTX indeksima i DBT memo-poljima. Ovaj format je uglavnom podržan zbog kompatibilnosti i preporuka je da se koristi napredniji DBFCDX sa znatno kvalitetnijim CDX i IDX indeksima i FPT memo-poljima. Postoji i ADT/ADI format koji obezbeđuje najbolje performanse i mogućnosti, ali na žalost nije podržan za korišćenje iz Clipper-a.

Napredne funkcije

Bez obzira na zaista jednostavan početak, za puno korišćenje ADS-a treba uložiti određeni trud u izmenu programa. Ustvari, prosto aktiviranje ADS-a, verovatno će prilično degradirati performanse vašeg programa. Da bi se stanje popravilo, treba donekle izmeniti logiku programa i upotrebiti neke mogućnosti koje ADS podržava. Jedna od njih je korišćenje indeksa za filtriranje slogova. Poslovično spora naredba Set Filter je verovatno najslabija karika Clipper sistema za obradu podataka. Na primer, ako zadate naredbu Set filter to p_id>10 i počnete neku obradu koja prolazi celu tabelu, uslov p_id>10 biće računat prilikom svakog pristupa nekom slogu. ADS koristi derivat poznate Rushmore tehnologije: ako postoji indeks po polju p_id, mogu se odbaciti slogovi koji ne zadovoljavaju uslov. Važno je da se pri tom i ne koriste podaci u DBF tabeli, nego samo indeks, što znači da je polazni upit značajno optimizovan. U stvari, Set Filter se preslikava u novu ADS funkciju koja podržava optimizaciju upita.

Osim ovakvih dinamičkih filtera, ADS poznaje i svojevrsne statičke filtere. Nakon Set Filter zadati uslov se nanovo izračunava prilikom svakog pristupa nekom slogu a pri tome se izraz uvek računa, bez obzira na to što je jednom već izračunat za isti slog; možda je neki drugi korisnik u međuvremenu izmenio podatke. Zato ADS poznaje tzv. AOF - Advanced Optimized Filters. To su nizovi bitova koji omogućavaju mnogo bržu selekciju slogova iz tabele nego pomoću tradicionalnog filtera. Uslov se ispituje samo prilikom kreiranja AOF-a i onda se odlučuje da li slog ispunjava uslov ili ne. Ukoliko neki korisnik izmeni ili doda podatak, AOF ga neće automatski prihvatiti, ukoliko se ne izvrši naredba koja regeneriše AOF. Korišćenje takvog filtera je daleko brže nego višestruko izračunavanje Set Filter izraza. Ukoliko je to moguće, računanje AOF se optimizuje i koriste se samo indeksi umesto podataka iz tabela.

 

    Prethodna strana (1/3)

Sledeća strana (3/3)    

Vrh stranice