Odlomak

IZVOD
Diplomski rad opisuje problematiku mapiranja relacionog modela baze podataka u objektni model programskog jezika Java. Razvijen je framework za takve potrebe i sačinjene su odgovarajuće demo aplikacije. Opisano je korišćenje framework-a, njegove mogućnosti, kako je  realizovan i na kraju, kroz primer Informacionog sistema Banke demonstrirana njegova fleksibilnost u izradi desktop i Enterprise rešenja.

UVOD

Razvoj softvera odavno je postao širok pojam. Svaka vrsta aplikacija koje se projektuju ima svoje izazove i kompleksnosti. Primera radi, softver za telekomunikacionu industriju morao bi da vodi računa o multithreading-u, integraciji softvera i hardvera, što nije slučaj sa Enterprise aplikacijama. S druge strane Enterprise aplikacije često rade sa kompleksnim podacima, imaju složenu poslovnu logiku i pravila. Iako su neke tehnike i pattern-i relevantni za sve vrste softvera, neki su primenljivi samo na pojedinim vrstama.
Kada odlučujemo kako da projektujemo Enterprise poslovnu aplikaciju i koje pattern-e da koristimo, veoma je važno imati u vidu to da Enterprise aplikacije nisu sve iste i te razlike treba da odluče kojim putem ćemo ići. Dakle, ne postoji univerzalni dizajn. Generalno važi podela na B2C (business to clients) i B2B (business to business) aplikaicje. Navešću neke od karakteristika poslovnih aplikcija.
Poslovne aplikacije zahtevaju čuvanje (perzistenciju) podataka. Ovo je potrebno da bi isti podaci bili dostupni u više navrata i po nekoliko godina bez obzira na prekid rada aplikacije. Često se tu radi sa velikim količinama podataka, preko 1Gb, organizovanih u preko 10 miliona redova. Upravljanje tolikim količinama podataka obavljaju baze podataka. Pri tom treba imati u vidu i to da mnogo ljudi pristupa podacima konkurentno. Za neke sisteme ovaj broj može biti par stotina, dok za Web aplikacije može biti nesaglediv. Tu treba voditi računa da se ne desi situacija u kojoj dve osobe pristupaju istom podatku na način koji može proizvesti greške. Transaction manager-i obavljaju ovaj posao, ali ipak, ta problematika se ne može sakriti od programera.
Pored toga, ovakvi informacioni sistemi mogu da sadrže mnogo korisničkih interfejsa za prikaz različitih informacija. Korisnici Enterprise aplikacija variraju i mogu spadati u različite grupe tako da informacije treba da im se prikažu na različite načine i u različite svrhe.
Enterprise aplikacije retko žive na “ostrvu”, usamljene, već imaju potrebu da se integrišu sa drugim aplikacijama. Različiti sistemi izrađeni u različito vreme i na različitim tehnologijama, čak i mehanizmi kolaboracije mogu biti različiti: COBOL data files, CORBA, messaging systems. Ovo postaje još teže kada dodamo činjenicu da poslovne aplikacije imaju težnju za saradnjom sa aplikacijama kompanijskih partnera pa im se moraju prilagoditi.
Kompleksna poslovna logika bitna je karakteristika ovih sistema. Poslovna pravila su vam data takva kakva su i vi ih ne možete menjati. Suočavate se sa nizom čudnih uslova koji često reaguju jedni sa drugima na iznenađujući način (naravno da za takvo ponašanje postoje opravdani razlozi). U takvoj situaciji morate organizovati poslovnu logiku što je moguće bolje, jer je jedina izvesna stvar to da će se ta logika vremenom menjati, a vi trebate biti spremni za nove izazove.
Na kraju postavljamo pitanje: Kako se nositi sa ovim problemima? – “Podeli pa vladaj!” slogan, primenljiv je i u industriji softvera. Tehnologije poput Java2Enterprise, brojna framework rešenja, višeslojna arhitektura softvera nastala su upravo sa ciljem da pomognu razvoj informacionih sistema. Postoji mnogo framework-a napisanih za Javu. Neki se koriste kao osnova za izgradnju cele aplikacije, dok se drugi bave određenim njenim delovima.

Kao što ću kasnije pokazati, perzistencija podataka sa kojima poslovna aplikacija manipuliše, zauzima značajno mesto u pogledu obima posla i kompleksnosti u procesu razvoja jednog takvog sistema. Od projektnih obrazaca primenljivih za rešavanje ove problematike treba pomenuti DAO design pattern – Data Access Objects. Postoji, međutim i veliki broj frameworka koji obavljaju taj posao. Oni su međusobno različiti po funkcionalnosti koju pružaju, složenosti API-ja, odnosno lakoće korišćenja, oblasti gde se primenjuju, jesu li namenjena serverskim ili klijent rešenjima, itd.
U prvom poglavlju ovog rada, objasniću sa kojim se problemima aplikativni programer suočava kada želi sam da perzistira objekte svoje aplikacije. Videćemo šta sve možemo da očekujemo od nekog gotovog frameworka poput Hibernate-a.
Razlozi za pisanje sopstvenog frameworka jesu potpona kontrola i razumevanje procesa mapiranja, implementacija onih funkcionalnosti koje su nam od značaja za određeni skup aplikacija.
Još jedan razlog zbog koga sam počeo razvoj sopstvenog frameworka bio je napraviti jednostavan i nezavisan DBMS (DataBaseManagementSystem) zasnovan na relacionom modelu. To se potom proširilo na Swing Beanove koji su umeli da se zakače na neki Data Source, da bi na kraju preraslo u čitav sistem za mapiranje relacionih baza podataka, implementaciju Connection Pool-a, upravljanje transakcijama, autogenerisanje brojeva i sve to potpuno transarentno za aplikativnog programera. Drugim rečima, aplikativni programer, nema potrebe da piše SQL kod, jer ga framework sam generiše, a sam opis mapiranja je prilično sofisticiran – Xml opisujući fajl. Sve ovo mnogo detaljnije biće opisano u kasnijim poglavljima.
Četvrto poglavlje, pri tom i najveće, opisuje samu realizaciju frameworka.
Osim frameworka čiji se source kod nalazi na pratećem disku, tu je Bank Information System – Demo application, informacioni sistem banke. Sastoji se od desktop klijenta, Oracle baze i Enterprise aplikacije na Jboss aplikacionom serveru. Sistem koristi razvijeni framework za pristup bazi.

No votes yet.
Please wait…

Prijavi se

Detalji dokumenta

Više u Informacione tehnologije

Više u Skripte

Jedan komentar na “Razvoj poslovnih aplikacija – jedno resenje”

topche23 says:

Veoma dobar seminarski rad.

Komentari