VIŠA ELEKTROTEHNIČKA ŠKOLA

Nikolić Slobodan

RAZVOJ POSLOVNIH APLIKACIJA – JEDNO REŠENJE

– diplomski rad –

Beograd, 2005

Kandidat: 

Nikolić Slobodan

Broj indeksa: 

03/02

Smer: 

Računarska tehnika

Tema: 

Razvoj poslovnih aplikacija – jedno rešenje

Osnovni zadaci:

1. Razviti framework za rad sa relacionim bazama podataka
2. Primeniti razvijeni framework na primeru desktop aplikacije
3. Koristiti J2EE tehnologije

Hardver: 

0%

                               Softver: 80

%

                               Teorija: 20

%

                                                                                               Mentor:
Beograd,
10.10.2005.                                                           _________________________
                                                                                        Mr. Boško Nikolić

background image

Sadržaj:

UVOD......................................................................................................................................... 1
1. PRISTUP BAZAMA PODATAKA.......................................................................................3

1.1. Nesaglasnost modela........................................................................................................3
1.2. Sloj perzistencije..............................................................................................................6
1.3. Objektno/relaciono mapiranje..........................................................................................7

2. JSE FRAMEWORK...............................................................................................................8

2.1. Prednosti i mane...............................................................................................................8
2.2. Ukratko o projektu........................................................................................................... 9

3. JSE U PRAKSI..................................................................................................................... 10

3.1. Definisanje podataka......................................................................................................10
3.2. Data Access Objects...................................................................................................... 13
3.3. Swing extensions........................................................................................................... 15
3.4. ResourceManager.......................................................................................................... 15

4. KAKO JE JSE REALIZOVAN............................................................................................ 16

4.1. DataObject i podklase.................................................................................................... 18
4.2. Row................................................................................................................................ 19
4.3. Column...........................................................................................................................20
4.4. Table.............................................................................................................................. 20
4.5. TableRelation.................................................................................................................22
4.6. Dataset............................................................................................................................23
4.7. SqlCommand..................................................................................................................24
4.8. SqlAdapter.....................................................................................................................26
4.9. ConnectionManager.......................................................................................................28
4.10. Sequencer.....................................................................................................................29
4.11. DatasetFactory – SqlDatasetFactory............................................................................31
4.12. Transaction...................................................................................................................33
4.13. Swing extended klase – primer BTextField.................................................................34
4.14. ResourceManager........................................................................................................ 34

5.  BANK INFORMATION SYSTEM - DEMO APPLICATION..........................................35

5.1. Bank client.....................................................................................................................36
5.2. Bank server....................................................................................................................37

ZAKLJUČAK........................................................................................................................... 38
INDEKS POJMOVA................................................................................................................ 39
LITERATURA......................................................................................................................... 40
DODATAK...............................................................................................................................41

Nikolić Slobodan: Poslovne aplikacije – jedno rešenje

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.

1

background image

Nikolić Slobodan: Poslovne aplikacije – jedno rešenje

1. PRISTUP BAZAMA PODATAKA

Čuvanje   podataka   je   potreba   svake   poslovne   aplikacije.   Perzistencija   je   jedan   od 

osnovnih pojmova u razvoju aplikacija. Kada govorimo o perzistenciji u Javi, govorimo, 
naravno,   o   skladištenju   podataka   u  

relacionoj   bazi

  koristeći   SQL.   Relacione   baze   su 

najzastupljenije i to ne slučajno već zato što imaju neverovatno fleksibilan i robustan prilaz 
upravljanju podacima.

Relacioni   model   ovih   baza   podataka,   međutim,   nije   prirodan   Javi   kao   ni   drugim 

objektno   orijentisanim   jezicima.   Kada   radimo   sa   SQL   bazama   (relacione   baze)   u   Java 
aplikacijama, koristimo se SQL iskazima 

Java Database Connectivity (JDBC) API

-ja. JDBC 

koristimo da postavimo parametre upita, izvršimo ih, krećemo se kroz rezultujući set, vadimo 
podatke iz njega, itd. Ovo su radnje niskog nivoa i programer koji se bavi razvojem aplikacija 
ne bi trebao da je puno zainteresovan za taj stepen programiranja, već bi svoju pažnju trebao 
da usmeri ka samoj poslovnoj logici. Cilj je da možemo da pišemo kod koji pamti i vraća 
kompleksne objekte iz baze, a da pri tom ne ulazimo u detalje nižih nivoa. Kad je pristup 
podacima tako naporan, postavlja se pitanje: Da li je relacioni model pravi izbor za objektno 
orijentisane   aplikacije?   Odgovor   je   svakako:   Da!   Postoje   brojni   razlozi   zbog   kojih   su 
relacione baze potreba svake Java aplikacije.

Međutim između objektnog modela i relacionog modela ima neslaganja. Na primer, 

SQL   operacije   poput   projekcije   ili   spoja   rezultovaće   tabelarnom   predstavom   rezultujućeg 
skupa.   Ovo   je   sasvim   drugačije   od   grafa   međusobno   povezanih   objekata   upetrbljenih   za 
izvršenje   neke   poslovne   logike   u   Java   aplikaciji.   Radi   se,   dakle,   o   sasvim   drugačijim 
modelima, a ne samo drugačijem prikazu istog modela. Pogledajmo problem izbliza.

1.1. Nesaglasnost modela

Slika 1.1.1: Jednostavan UML klasni dikagram entiteta User i BillingDetails

Pretpostavimo da projektujemo online e-commerce aplikaciju. Za to nam je potrebna 

klasa koja predstavlja korisnika sistema, i druga koja predstavlja informacije o njegovim 
računima. Iz klasnog dijagrama vidi se da User ima više BillingDetails-a.

public class 

User {

private

 

String

 userName

;

private

 

String

 name

;

private

 

String

 address

;

private

 

Set

 billingDetails

;

// 

accessor methods (get/set pairs), business methods, etc.

...

}

public

 

class

 

BillingDetails

 

{

private

 

String

 accountNumber

;

private

 

String

 accountName

;

private

 

String

 accountType

;

private

 

User

 user

;

//methods, get/set pairs...

...

3

Želiš da pročitaš svih 45 strana?

Prijavi se i preuzmi ceo dokument.

Ovaj materijal je namenjen za učenje i pripremu, ne za predaju.

Slični dokumenti