Parametri umesto programa |
Gabor Manić |
Kod projektovanja baze podataka posebna pažnja se uvek posvećuje kasnijim modifikacijama. Ako vam je potreban alat koji je koncipiran tako da te modifikacije budu veoma jednostavne, i koji je programiranje zamenio parametrizovanjem, isprobajte Magic! |
Firma Magic Software Enterprises Ltd (MSE), je osnovana 1986. godine, mada je razvoj Magic-a počeo godinu dana ranije, za potrebe Izraelske vojske kojoj je bio potreban pouzdan sistem sposoban da obradi velike količine podataka. Zahtev je bio da programi pisani u ovom sistemu omoguće brze izmene i brz razvoj novih modula. Pošto je primećeno da odlazak programera iz firme često donosi ogromne probleme, pa čak i zahteva ponovni razvoj sličnog sistema, zahtevana je i maksimalna "nezavisnost od autora programa". Magic je zadovoljio sve ove kriterijume, pa ga izraelska armija i danas koristi. Ipak, ljudi koji su stvarali Magic shvatili su da mogućnosti prerastaju tu ekskluzivnu primenu, pa su osnovali firmu MSE i krenuli na tržište.
Ciljna grupa su bile velike baze podataka, ali pošto je Magic bio razvijen za Novell mreže, krenuli su od malih i srednjih baza (od 5 do 100 korisnika). U proteklim godinama Magic je portiran na sve značajnije platforme - među prvima su, recimo, podržali IBM-ovu AS-400 platformu, pa danas na njoj dominiraju.
Instalacija
Verzija 7.xx za PC računare se isporučuje na jednom CD-u - u pakovanju je još knjiga (podeljena u dva toma) Magic Developers Guide and Reference, koja pokriva sve oblasti korištenja Magic-a, hardlock i registraciona kartica. Na CD-u je Magic Generator, Runtime i svi Gateway-i, s tim što ćete moći da instalirate samo komponente koje ste platili: hardlock je programabilan, pa ako dokupite neku komponentu, dobijate serijski broj i disketu sa programom koji će upisati izmene u hardlock. Preporučljivo je hardlock staviti na server, jer se onda Magic može koristiti sa bilo koje radne stanice u mreži. U isto vreme može da radi onoliko radnih stanica za koliko je korisnika Magic registrovan.
Kako Magic radi?
Magic 7 se distribuira u verzijama za Windows 3.1x, Windows 95 i Windows NT - Setup detektuje na kom Windows-u se izvršava i automatski instalira odgovarajuću verziju. Magic zahteva minimum 486 računar sa 12 MB RAM-a, a preporučuje se Pentium sa 16 MB za Windows 3.1x, 20 MB za Windows 95 i 32 MB za NT. Na hard disku paket zauzima 13 - 20 MB prostora, zavisno od toga u koliko jezičkih varijanti ga instaliramo i sa koliko Gateway-a.
Magic je razvojni sistem post četvrte generacije, koji spada u kategoriju RAD (Rapid Application Development) alata. To, dakle, nije jezik opšte namene, već alat orijentisan na baze podataka. Sve je kod Magic-a urađeno tako da maksimalno olakša i ubrza razvoj ovih aplikacija.
Magic nije vezan ni za jedan menadžer baze podataka - koristeći Gateway tehnologiju, dopušta korisniku izbor. Pošto je stvoren u Novell okruženju, u osnovi podržava Btrieve (Magic program je u stvari Btrieve baza podataka), ali može da se poveže i sa drugima. U isto vreme koristi podatke iz niza različitih baza podataka, na potpuno isti način. Prednost ovoga je u tome što se svim bazama pristupa na unificiran način - za programera (i korisnika) je nebitno da li pristupa Oracle ili Clipper bazi, pošto to čini na potpuno isti način; o razlikama se brine Magic, a konverzije podataka iz jednog sistema u drugi se vrši jednim klikom miša!
Razvoj u Magic-u
U Magic-u ne postoji source kod: program je tabela ispunjena parametrima kojima se usmerava rad Magic "motora". Zato i kažu da se u Magic-u ne programira, već parametrizuje - uglavnom ćete raditi sa tabelama.
Instaliranje nove Magic aplikacije se sastoji u dodavanju podataka o toj aplikaciji u rečnik aplikacija - nove aplikacija se najpre registruje u rečniku aplikacija, dakle pritiskom na F4, što je i inače način da se u Magic tabelu doda novi red. Kod registrovanja se unosi naziv aplikacije, Magic oznaka od dva slova, a ako ne želimo da Magic automatski generiše imena za fajlove sa programom i izveštajima, unosimo željena imena. Na kraju definišemo u kojoj bazi podataka će podaci biti skladišteni - izgled ove tabele je prikazan na slici 1. U svakom polju gde postoji mogućnost unosa jedne od više već definisanih vrednosti aktivan je Zoom taster: pritiskom na F5 dobijamo tabelu iz koje biramo vrednost. U statusnoj liniji se pojavi zoom kada god postoji mogućnost da se ova operacija izvrši. Zoom, naravno, možemo da koristimo i u svojim aplikacijama.
Kada smo registrovali novu aplikaciju, počinjemo da punimo rečnike podacima. Svaka Magic aplikacija koristi više rečnika, do kojih dolazimo iz Tools menija ili klikom na toolbar.
Rečnici
U rečniku tipova definišemo tipove koje kasnije koristimo u definisanju slogova u bazama podataka. Magic poznaje osnovne tipove: Alpha (string), Numeric (broj), Logical (logičko polje), Date (datum), Time (vreme) i Memo. BLOB tip "pamti" binarne objekte kao što su zvuk, slike, OLE objekti itd, pomoću polja Picture može se dati format unosa podataka za taj tip, a pomoću polja Range se postavlja opseg ispravnih vrednosti koji se u to polje mogu uneti.
U rečniku fajlova definišemo fajlove baze podataka. Određujemo naziv baze podataka, zoom-iramo na polje fields, pa definišemo polja. U slogovima možemo da koristimo tipove podataka koje smo prethodno definisali u rečniku tipova, kao i Magic tipove podataka. Kod svakog polja se, ako pritisnemo Ctrl P, pojavljuje Properties ekran, gde između ostalog možemo podesiti i osobine gateway-a. Tu navodimo u kom će se formatu polje fizički skladištiti u bazi. Ako zoom-iramo na sledećem polju, dobijamo tabelu u kojoj definišemo ključeve. Broj ključeva i segmenata unutar ključeva zavisi isključivo od menadžera baze podataka sa kojom se koristi. U sledećem polju vidi se dužina sloga u bajtovima, a naredno služi za davanje imena fajlu. Poslednja dva polja su DBMS i Database, pomoću kojih određujemo u kojoj bazi podataka će taj fajl biti skladišten.
U rečniku programa se unosi ime programa i stablo task-ova: isti program može da ima više task-ova. Pritiskom na Ctrl G generišemo formular za unos podataka i program koji prati taj formular - alternativa je Ctrl U, kada dobijamo mogućnost da taj formular "ručno" dizajniramo. Broj kontrola koje mogu da se stave na formulare je ograničen: tabele, Text boksovi, list boksovi, combo boksovi, radio dugmad i tasteri. Uopšte, formulari su u Magic-u čvrsto vezani za programe: jedan program može imati više formulara, ali svaki formular mora biti priključen bar za jedan program. Baš zbog ovoga se u editor formulara ulazi iz stabla taskova, pritiskom na Ctrl U.
Program i podaci
Magic je strukturiran u pet nivoa: i fazi predobrade taska vrši se inicijalizacija, sledi predobrada zapisa, gde se postavljaju početne vrednosti za svaki slog, a onda i glavna obrada, lada se obrađuje svako polje sloga, korišćenjem strukture Select. Postobrada zapisa podrazumeva eventualne izmene u unetom zapisu ili proveru ispravnosti unosa, dok je postobrada taska zadužena za finalne operacije koje prethode završetku rada programa.
Programski jezik ima svega 13 instrukcija, zbog čega ga nazivaju "softverski RISC". Parametri ovih intrukcija se unose zumiranjem kroz tabele - uz svaku instrukciju može da se navede više kriterijuma, na osnovu kojih Magic odlučuje kada će i kako izvršiti operaciju. Broj funkcija je mnogo veći: ima ih preko 100, a ako zatreba nešto više, možete ga proširiti funkcijama koje pišete u C-u. Ispravnost napisanog programa proveravamo pritiskom na F8; pošto otklonimo greške, izvršavanje počinjemo pritiskom na F7.
Tabela za unos podataka se sastoji iz dva dela: u gornjem određujemo nivo obrade, u donjem upisujemo programe. On-line programi su oni koji obuhvataju interakciju sa korisnikom: korisnik unosi podatke, menja ih, pretražuje... Batch programi generišu izveštaje, izvršavaju automatske operacije nad podacima itd - nema formulara koji će se pojaviti na ekranu, a rezultat je obično generisani i/ili štampani izveštaj.
Prava korisnika se takođe definišu kroz tabele - njima možemo da zaštitimo bukvalno sve: stavke u meniju, cele menije, određene akcije, rečnike, svaki program posebno... Na formularima možemo postavljati objekte koji će biti vidljivi samo pojedinim korisnicima ili grupama korisnika. Ako korisnik koji je ulogovan u Magic sistem nema pravo da koristi određene stavke u menijima, te stavke se neće ni pojavljivati.
Uz supervisor password dolazi mogućnost da se korisnicima daje, odnosno uskraćuje pravo korišćenja nekog resursa. U tabeli za dodeljivanje prava vidimo prava koja imamo, sa F4 otvaramo novi red u tabeli i unosimo ime objekta koji želimo da dodelimo nekom korisniku, a u polje key unosimo identifikacioni znak za taj objekat. U polje Public unosimo yes, ako želimo da korisnici koji imaju dodeljeno pravo vide njegovo ime u tabeli, odnosno No ako ni tim korisnicima ne dozvoljavamo da vide koje pravo imaju.
Meniji i događaji
Magic podržava rad sa dve vrste menija. Context meni se dobija klikom desnim tasterom miša - pošto izaberemo zoom, dobićemo sledeću tabelu u kojoj definišemo sadržaj tog menija. Stavka menija može da bude tipa Program (poziva program iz rečnika), OS Command (izvršava Windows ili Dos program), System (aktivira sistemsku akciju), Separator (linija u meniju) i Menu (poziva se drugi meni). U polju Entry Text se unosi tekst koji će se pojaviti u meniju, a u polju Menu Params naziv Magic programa, spoljne aplikacije ili sistemske akcije zavisno od tipa stavke. Polja Entry Name i Acc Key se ispunjavaju automatski. Postoje i pull down meniji, kod kojih se formira kompletna struktura koju možemo dograđivati, brisati ili pomerati stavke. Može se, naravno, zadati i niz akcija koje će se izvršavati po nastupanju događaja ili automatskim, u određenim intervalima.
U Magic-u postoji tri vrste pomoći. Za svako polje zapisa se, u okviru Properties ekrana, definiše red koji će se pojavljivati u statusnoj liniji. Tu je zatim help prozor, a može se koristiti i Windows Help sistem, dakle pozivati kontekst senzitivan help. Magic ne podržava razvoj Windows Help fajlova, pa se deo posla mora obaviti alatima koje isporučuje Microsoft.
Kada ispunimo sve tabele, dobijamo Magic aplikaciju koju možemo da testiramo prelaskom iz razvojnog okruženja u mod za izvršavanje, izborom File / Toolkit / Runtime ili pritiskom na Ctrl T. Od svih definisanih programa, možemo koristiti samo one koji su stavljeni u menije ili se pozivaju automatski ili pomoću kombinacije tastera. To znači da nenije uvek moramo definisati, ili modifikovati postojeće da bi se naši programi uopšte videli u modu za izvršavanje.
Kome treba Magic?
Magic je potreban programerima ili razvojnim timovima koji žele da brzo razvijaju efektne aplikacije, onima koji žele da svoje aplikacije učine nezavisnim od menadžera baze podataka i onima koji žele da svoje aplikacije učine lako prenosivim sa jedne platforme na drugu. Ukratko, firmama koje žele brzu i sigurnu obradu podataka, uz visoku sigurnost i mogućnost brze modifikacije postojećih aplikacija... i koje ne žele da brinu kada programer koji je razvio njihov sistem nađe drugi posao.
|