Upload
others
View
3
Download
0
Embed Size (px)
Citation preview
I
Diplomsko delo visokošolskega strokovnega študijskega programa
RAZVOJ APLIKACIJ Z OGRODJEM ORACLE ADF
Študent: Uroš Šantelj
Študijski program: VS ŠP Računalništvo in informatika
Smer: Programska oprema
Mentor: red. prof. dr. Marjan Heričko
Lektorica: Irena Rauter, prof. slov. jezika
Maribor, junij 2011
III
ZAHVALA
Zahvaljujem se mentorju dr. Marjanu Heričku za
pomoč in vodenje pri nastajanju diplomskega dela.
IV
RAZVOJ APLIKACIJ Z OGRODJEM ORACLE ADF
Klju čne besede: Java EE, Oracle ADF, poslovne aplikacije, razvoj UDK: 649.2:004(043.2)
Povzetek
V diplomski nalogi so predstavljene značilnosti ogrodij, ki lahko pomagajo pri izbiri
ustreznega ogrodja za razvoj bogatih poslovnih aplikacij v okolju Java EE. V nadaljevanju
raziščemo ogrodje Oracle ADF in opišemo njegove značilnosti. V praktičnem delu diplomske
naloge z ogrodjem Oracle ADF razvijemo rešitev za evidentiranje delovnega časa zaposlenih.
Pri tem na deklarativen način, s poslovnimi komponentami ADF, razvijemo poslovno logiko in
z uporabo potekov opravil določimo navigacijski in kontrolni model aplikacije. Za
predstavitveni nivo, s komponentami ''bogati odjemalci ADF'', zgradimo večje število
interaktivnih uporabniških vmesnikov. V zaključku diplomske naloge predstavimo značilnosti
razvoja bogate poslovne aplikacije z ogrodjem Oracle ADF.
V
APPLICATION DEVELOPMENT WITH ORACLE ADF
Key words: Java EE, Oracle ADF, enterprise applications, development UDK: 649.2:004(043.2) Abstract This diploma presents the characteristics of frameworks which can be helpful when choosing
the appropriate framework for developing rich enterprise applications in Java EE
environment. This is continued with investigating Oracle ADF (Application Development
Framework) and describing its characteristics. The practical part of diploma develops a
solution for tracking employees’ work hours with Oracle ADF. By doing so, the business logic
is developed in a declarative way with ADF business components and the navigational and
control model of the application is defined by task flows. For the presentation section, the
components of ADF Faces Rich Client enable us to build a large number of interactive user
interfaces. The conclusion of this diploma presents the characteristics of developing rich
enterprise applications with Oracle ADF.
VI
VSEBINA
1 UVOD .................................................................................................................................1
2 RAZVOJ APLIKACIJ NA OSNOVI RAZVOJNIH OGRODIJ ..... ............................3
2.1 LASTNOSTI RAZVOJNIH OGRODIJ......................................................................3
2.2 IZBIRA RAZVOJNEGA OGRODJA.........................................................................4
2.3 OGRODJA ZA RAZVOJ SPLETNIH APLIKACIJ...................................................6
2.4 PLATFORMA JAVA EE IN OGRODJA...................................................................8
3 RAZVOJNO OGRODJE ORACLE ADF.....................................................................13
3.1 ARHITEKTURA OGRODJA ORACLE ADF.........................................................13
3.2 NIVO POSLOVNIH STORITEV .............................................................................15
3.2.1 POSLOVNE KOMPONENTE ADF.................................................................15
3.3 MODEL.....................................................................................................................24
3.3.1 MODEL ADF....................................................................................................24
3.4 POGLED ...................................................................................................................27
3.4.1 PREGLED TEHNOLOGIJE JSF ......................................................................27
3.4.2 BOGATI ODJEMALCI IN ADF ......................................................................28
3.5 KONTROLNI NIVO.................................................................................................30
3.5.1 KONTROLNIK FACES ...................................................................................30
3.5.2 KONTROLNIK ADF........................................................................................31
4 PRAKTIČNI DEL ...........................................................................................................33
4.1 RAZVOJNO OKOLJE..............................................................................................33
4.2 OPREDELITEV PROBLEMA .................................................................................33
4.3 DIAGRAMI PRIMERA UPORABE ........................................................................34
4.4 OPISI SCENARIJEV ................................................................................................36
4.5 LOGIČNI IN PODATKOVNI MODEL...................................................................38
4.6 POSLOVNE KOMPONENTE..................................................................................40
VII
4.7 ZAJEM IN OBDELAVA PODATKOV...................................................................45
4.8 UPORABNIŠKI VMESNIK IN POTEKI OPRAVIL ..............................................46
4.8.1 UPORABNIŠKI VMESNIK VSTOPNE STRANI APLIKACIJE...................48
4.8.2 UPORABNIŠKI VMESNIK ZA VNOS PRISOTNOSTI ................................49
4.8.3 UPORABNIŠKI VMESNIK ZA PREGLED MESEČNE PRISOTNOSTI .....50
4.8.4 UPORABNIŠKI VMESNIK ZA PREGLED OSEB ........................................51
4.8.5 UPORABNIŠKI VMESNIK ZA PREGLED LETNIH DOPUSTOV..............52
4.8.6 UPORABNIŠKI VMESNIK ZA ŠIFRANTE...................................................53
4.8.7 UPORABNIŠKI VMESNIK ZA MESEČNI IZPIS PRISOTNOSTI ...............54
4.8.8 UPORABNIŠKI VMESNIK ZA NADZOR SISTEMA...................................56
4.9 VARNOST APLIKACIJE.........................................................................................57
5 SKLEP ..............................................................................................................................60
6 LITERATURA, VIRI......................................................................................................62
7 PRILOGE.........................................................................................................................64
7.1 SEZNAM SLIK.........................................................................................................64
7.2 SEZNAM TABEL IN KOD......................................................................................65
VIII
UPORABLJENE KRATICE
ADF - APPLICATION DEVELOPMENT FRAMEWORK
ASF - APACHE SOFTWARE FOUNDATION
AJAX - ASYNCHRONOUS JAVASCRIPT AND XML
API - APPLICATION PROGRAMMING INTERFACE
BC - BUSINESS COMPONENTS
BSD - BERKELEY SOFTWARE DISTRIBUTION
CSS - CASCADING STYLE SHEETS
EDC - EVIDENCA DELOVNEGA ČASA
EE - ENTERPRISE EDITION
EJB - ENTERPRISE JAVABEANS
FOP - FORMATTING OBJECTS PROCESSOR
GPL GENERAL PUBLIC LICENSE
GWT - GOOGLE WEB TOOLKIT
HTML - HYPERTEXT MARKUP LANGUAGE
IDE - INTEGRATED DEVELOPMENT ENVIRONMENT
IM - IDENTIFIKACIJSKI MEDIJ
JAX-WS - JAVA API FOR XML WEB SERVICES
JCP - JAVA COMMUNITY PROCESS
JPA - JAVA PERSISTENCE API
JSF - JAVASERVER FACES
JSP - JAVASERVER PAGES
JSR - JAVA SPECIFICATION REQUEST
JVM - JAVA VIRTUAL MACHINE
LPGL - LESSER GENERAL PUBLIC LICENSE
MIT - MASSACHUSETTS INSTITUTE OF TECHNOLOGY
MVC - MODEL-VIEW-CONTROLLER
PDA - PERSONAL DIGITAL ASSISTANT
IX
PL/SQL - PROCEDURAL LANGUAGE/STRUCTURED QUERY LANGUAGE
RC - RICH CLIENT
REA - RICH ENTERPRISE APPLICATION
XML - EXTENSIBLE MARKUP LANGUAGE
XSL-FO - XSL FORMATTING OBJECTS
XSLT - EXTENSIBLE STYLESHEET LANGUAGE TRANSFORMATIONS
Razvoj aplikacij z ogrodjem Oracle ADF Stran 1
1 UVOD
Pojem bogate spletne aplikacije oziroma v širšem pogledu bogate poslovne aplikacije (angl.
REA – Rich Enterprise Applications) je z razvojem tehnologij za gradnjo interaktivnih spletnih
rešitev postal resničnost.
Končalo se je obdobje razvoja tradicionalnih spletnih aplikacij, ki so predstavljale zaključeno
poslovno rešitev. Sodobna spletna aplikacija je sestavljena iz komponent uporabniških
vmesnikov, ki so dosegljivi z oddaljene lokacije, in lokalnih storitev za poslovno logiko [3].
Toda poslovni uporabniki vseeno ocenjujejo in primerjajo sodobne spletne aplikacije po meri
interaktivnosti in odzivnosti s standardnimi namiznimi aplikacijami. Razvijalci programske
opreme smo postavljeni pred nov izziv, kako razviti bogato poslovno aplikacijo, ki je
sestavljena iz ponovno uporabljivih komponent in storitev po konceptih storitveno orientirane
arhitekture ter zagotoviti lastnosti standardne namizne aplikacije. Na voljo so nove
tehnologije, načrtovalski vzorci in dobre prakse, vendar za razvoj bogatih poslovnih aplikacij
potrebujemo še razvojno orodje, ki zagotavlja enostavno in hitrejšo gradnjo bogatih spletnih
aplikacij s temi tehnologijami.
Namen naloge je razložiti problematiko izbire ustreznega razvojnega ogrodja za gradnjo
sodobnih spletnih aplikacij v okolju Java EE, določiti značilnosti ogrodij, ki bi pomembno
vplivale na izbiro ogrodja, ter raziskati razvojno ogrodje Oracle ADF. Z implementacijo
spletne aplikacije pa bi prikazali razvoj aplikacij z ogrodjem Oracle ADF, ki je sestavni del
integriranega razvojnega okolja Oracle JDeveloper 11g.
V drugem poglavju bomo opisali glavne značilnosti razvojnih ogrodij in se osredotočili na
razvojna ogrodja za razvoj aplikacij v programskem jeziku Java. Izmed vseh značilnosti
ogrodij bomo poskušali izpostaviti tiste, ki so pri izbiri ustreznega ogrodja najpomembnejše. V
nadaljevanju bomo povzeli ključne značilnosti platforme Java EE za razvoj poslovnih
aplikacij ter opisali dva tipa razvojnih ogrodij, ki temeljita na načrtovalskem vzorcu MVC za
razvoj aplikacij v okolju Java EE.
Razvoj aplikacij z ogrodjem Oracle ADF Stran 2
V tretjem poglavju bomo raziskali razvojno ogrodje Oracle ADF. Opisali bomo, kako je
ogrodje vpeto v načrtovalski vzorec MVC in razložili arhitekturo ogrodja. V vsakem sloju
arhitekture ogrodja bomo razložili koncepte in komponente, ki se uporabljajo pri razvoju
aplikacij.
V četrtem poglavju, ki opisuje praktični del naloge, bomo predstavili zamisel rešitve za
evidentiranje delovnega časa, s katero bomo nadgradili obstoječi sistem pristopne kontrole.
Najprej bomo preučili osnovne komponente sistema in iz dobljenih informacij sestavili opis
problemskega področja. Določili bomo funkcionalnosti aplikacije EDC in skozi primere
uporabe opisali njeno delovanje. V orodju JDeveloper 11g bomo prikazali razvoj aplikacije
EDC. Poslovna logika aplikacije bo razvita s poslovnimi komponentami ADF. Z uporabo
pripravljenih komponent ''bogati odjemalci ADF'' bomo razvili uporabniške vmesnike in
prikazali njihovo delovanje, ki bo dosegalo visok nivo interaktivnosti.
V sklepu, ki je opisan v petem poglavju, povzamemo diplomsko delo. Ugotovimo, da je izbira
ustreznega ogrodja pomembna odločitev, ki lahko odločilno vpliva na realizacijo projekta, in
predstavimo prednosti uporabe ogrodja Oracle ADF, ki poenostavi in pospeši razvoj bogatih
poslovnih aplikacij.
Razvoj aplikacij z ogrodjem Oracle ADF Stran 3
2 RAZVOJ APLIKACIJ NA OSNOVI RAZVOJNIH OGRODIJ
Razvojna ogrodja so produkcijska plast za gradnjo aplikacij. Ponujajo dobro načrtovane
programske komponente, ki zapolnijo določene niše v procesu razvoja programske rešitve kot
so povpraševanja (angl. queries), poslovna logika (angl. business logic), validacija (angl.
validation) in upravljanje s trajnimi objekti (angl. persistance management) [3].
Programske komponente morajo biti inteligentne, znajo med seboj sodelovati in imajo
zmožnost medsebojne integracije v razvojnem ogrodju. Biti morajo prilagodljive, a hkrati
ustrezati točno določenim poslovnim zahtevam.
2.1 Lastnosti razvojnih ogrodij
Razvojno ogrodje je kot skrita programska koda v ozadju, ki skrbi za najbolj osnovne
funkcionalnosti, kot sta validacija podatkov in preverjanje poslovne logike. Nudi tudi metode
za dostop do podatkov in upravljanje s transakcijami. Mora biti dovolj prilagodljivo, da lahko
z minimalnimi posegi zadovoljimo vsem zahtevanim poslovnim pravilom.
Vsako razvojno ogrodje ima privzete nastavitve, ki določajo standardno delovanje ogrodja.
Standardno delovanje ogrodja mora biti uporabno brez nepotrebnih izvajanj ukazov, ki ne
naredijo ničesar [17].
Ogrodje mora imeti prestrezne točke (angl. hook-points), ki omogočajo dodajanje lastne
funkcionalnosti že pripravljenemu standardnemu delovanju. Za dosego željene
funkcionalnosti, npr. dodajamo funkcionalnost beleženja akcij v transakciji (angl. audit trail)
pred izvedbo standardnega uveljavljanja sprememb (angl. commit) [8].
Pomemben vidik razvojnih ogrodij je tudi ločevanje programske kode. Programska koda
ogrodja se ne more spreminjati [8]. Lahko jo nadgradimo s svojo funkcionalnostjo. Lastni
razredi objektov morajo vsebovati samo lastno programsko kodo. Takšna izolacija lastne
programske kode prepreči, da bi nas programska koda razvojnega ogrodja zmedla, ker naša
Razvoj aplikacij z ogrodjem Oracle ADF Stran 4
programska koda nima vpliva na delovanje razvojnega ogrodja. Prav tako ni potrebno kreirati
ovojnic s programsko kodo okoli naše programske kode [8].
Za produktivnejši razvoj spletnih aplikacij se mora ogrodje uspešno odzvati v primeru
sprememb programske kode v času delovanja aplikacije. Na primer, razvijamo komponento za
spletno aplikacijo in smo pozabili dodati vrstico programske kode. To velikokrat pomeni
ponovno namestitev aplikacije na strežnik in ponovno testiranje delovanja komponente, kar
vzame veliko časa. Ogrodje mora zaznati spremembe brez ponovnega nameščanja aplikacije
na strežnik. Že samo po osvežitvi strani v spletnem brskalniku morajo biti spremembe
uveljavljene.
2.2 Izbira razvojnega ogrodja
Na trgu je veliko razvojnih ogrodij in zelo težko je izbrati takšno, ki bo izpolnilo vsa naša
pričakovanja. Omenimo nekaj ključnih dejavnikov, ki običajno vplivajo na izbiro [18]:
- tip aplikacije – delimo jih lahko na aplikacije, ki so neposredno dostopne in
namenjene velikemu številu uporabnikov, kot so na primer informacijski spletni portali
z novicami, namizne aplikacije odjemalec – strežnik, kjer je aplikacija nameščena na
računalniku odjemalca, večpredstavnostne aplikacije, ki ponujajo video na zahtevo,
video prenose v živo in predvajanje glasbe, ter aplikacije, ki so namenjene za uporabo
v intranetu podjetja malemu številu uporabnikov in so zaščitene s požarnim zidom.
- tip razvojnega ogrodja – ogrodja lahko med seboj delimo glede na tip ogrodja, ki je
lahko:
o na osnovi proženja zahtev (angl. request based framework), npr. ogrodja Struts
2, Spring, MVC, Rails in Stripes,
o na osnovi komponent (angl. component based framework), npr. ogrodja JSF,
Tapestry in GWT,
o ogrodja za gradnjo bogatih spletnih aplikacij, npr. ogrodje Flex [18].
- produktivnost razvijalca – določa, v kakšnem času smo sposobni razviti komponento
aplikacije, jo kvalitetno testirati in v primeru napak oziroma dopolnitev tudi ponovno
Razvoj aplikacij z ogrodjem Oracle ADF Stran 5
namestiti na aplikacijski strežnik. Pri tem omenimo, da je zelo želena lastnost ogrodja,
ki omogoča in zahteva ob velikem številu sprememb v implementaciji aplikacije čim
manjše število ponovnih namestitev na aplikacijski strežnik.
- sposobnost hitrega učenja – pri spoznavanju z novimi ogrodji se jih želimo naučiti v
najkrajšem možnem času. Orodje moramo spoznati v nekaj dnevih in že v nekaj tednih
uporabe moramo postati polno produktivni. Če smo po tem času še vedno presenečeni
nad delovanjem ogrodja, lahko to pomeni, da se ogrodje preveč spreminja, ali pa da se
ga je pretežko naučiti.
- razvoj ogrodja – naučili smo se uporabljati novo ogrodje, potem pa njegov razvoj
zaide na stransko pot in za nas ni več pomemben. Vse znanje, pridobljeno pri učenju
ogrodja, je zgubljeno.
- podpora pri testiranju aplikacij – ogrodje mora nuditi dobro podporo pri testiranju
razvitih komponent.
- validacija – pri razvoju aplikacij z veliko vnosnimi formami mora imeti ogrodje
vgrajeno podporo za preverjanje vnesenih podatkov v formi tako na strežniški kot na
odjemalčevi strani.
- podpora večjezičnosti – v aplikacijah, ki so razvite za več jezikovnih območij, lahko s
podporo večjezičnosti v ogrodju na enostaven način preklapljamo med jeziki brez
dodatnega programiranja.
- kvaliteta dokumentacije in vodnikov – pri učenju ogrodja so pomembni dobra
dokumentiranost ponujenih funkcionalnosti ogrodja in vodniki, ki nam predstavijo pot
do rešitve določenega problema z uporabo ogrodja. Velikokrat se nam je že zgodilo, da
smo hoteli uporabiti določeno metodo, ki ni bila dokumentirana in so bili samo našteti
vhodni argumenti v stilu ''(int p1, int p2, int p3)''.
Razvoj aplikacij z ogrodjem Oracle ADF Stran 6
2.3 Ogrodja za razvoj spletnih aplikacij
V zadnjih nekaj letih je število ogrodij za razvoj spletnih aplikacij zelo naraslo. Na izbiro je
veliko ogrodij in vsako od njih ponuja svojo edinstveno kombinacijo značilnosti, omejitev in
prednosti. Izbira pravega ogrodja je s tem še veliko težja.
Na spletnih straneh Wikipedije1 je seznam s preko 115 ogrodij za razvoj spletnih aplikacij.
Tabela 2.1 prikazuje število ogrodij glede na implementacijski jezik.
Tabela 2.1: Število ogrodij glede na implementacijski jezik
Programski jezik Število ogrodij
Java 35
ASP .NET 6
PHP 22
Pearl 6
Python 15
Ruby 6
CFML (ColdFusion) 9
Ostali 18
Največ ogrodij je razvitih za programski jezik Java. V Tabeli 2.2 je seznam ogrodij za razvoj
spletnih aplikacij v programskem jeziku Java povzet s spletne strani Wikipedija [20].
Med odprtokodnimi razvojnimi ogrodji prevladuje licenčni model, ki temelji na licenci
Apache verzija 2. Ta je bila odobrena s strani ASF leta 2004. Glavni cilji licence so bili
zmanjšanje števila pogosto zastavljenih vprašanj, možnost vključevanja licence po referenci,
možnost ponovne uporabe licence brez modifikacij za katerikoli projekt, razjasniti licenco ob
pošiljanju prispevkov, ki zahtevajo patente drugih licenc in premik komentarjev in drugih
avtorskih obvestil izven licenčnih pogojev [22]. Licenca določa njeno obvezno distribucijo
skupaj s programom ali z izvorno kodo, dovoljeno je vključevanje knjižnic in programske
1 Wikipedija je spletna enciklopedija, ki jo v mnogih jezikih družno pišejo njeni bralci po vsem svetu. Spletišče je wiki, kar pomeni, da lahko vsakdo enostavno spremeni članek [19].
Razvoj aplikacij z ogrodjem Oracle ADF Stran 7
kode, licencirane pod drugimi licencami, dovoljena je objava izpeljanega dela pod drugo
licenco in prosta prodaja izpeljanega dela [23].
Uporabljajo se tudi licence GNU LPGL v3.0, GPL v3.0, Mozzila Public v1.0, MIT, BSD,
Eclipse Public License in Oracle Technology Network Developer License.
Tabela 2.2: Seznam ogrodij za razvoj spletnih aplikacij v Javi [20]
Projekt Trenutna stabilna verzija Datum
izida
Licenca
Apache Click 2.2.0 22.5.2010 Apache Apache Cocoon 2.2.0 Apache Apache Struts 2.2.1.1 20.12.2010 Apache Apache Tapestry 5.2.4 15.11.2010 Apache Apache Wicket 1.4.15 23.12.2010 Apache AppFuse 2.0.2 Apache Aranea 1.0.10 Apache Eclipse RAP 1.2.0 Eclipse Public License FormEngine 1.7.2 19.4.2011 MIT Google Web Toolkit 2.2.0 10.2.2011 Apache Hamlets 1.6 29.1.2010 BSD IceFaces 2.0 21.12.2010 Mozilla Public License 1.1 ItsNat 1.0 AGPL / Proprietary JavaServer Faces 2.0 28.6.2009 JBoss Seam 3.0.0 GA 31.3.2001 LGPL Jspx-bay 1.1.0 17.2.2011 Apache 2.0 JVx WebUI 0.8 3.12.2010 Apache 2.0 ManyDesigns Portofino 3.1.10 GPL v3 OpenLaszlo 4.1 Common Public License OpenXava 4.0.1 12.1.2011 LGPL
Oracle ADF 11.1.1.4
Oracle Technology Network Developer License
Play 1.1.1 25.1.2011 Apache RIFE 1.6.2 Apache Shale 1.0.4 Apache Sling 5 14.5.2009 Apache 2.0 SmartClient 8.0 5.1.2011 LGPL Spring 3.0.5 20.10.2010 Apache Stripes 1.5.4 9.11.2010 Apache ThinWire 1.2 GPL Vaadin(IT Mill Toolkit) 6.5.1 11.2.2011 Apache Wavemaker 6.1.10 14.6.2010 Apache WebObjects 5.4.3 Proprietary WebWork 2.2.6 Apache ZK 5.0.5 2.11.2010 LGPL / Proprietary
Razvoj aplikacij z ogrodjem Oracle ADF Stran 8
2.4 Platforma Java EE in ogrodja
Poslovne aplikacije so lahko razvite z Javo, Microsoft .NET, PLSQL s skriptiranjem in z
drugimi programskimi jeziki in razvojnimi orodji.
Veliko možnosti pa vendar nimamo pri izbiri platforme za razvoj poslovne aplikacije.
Ponavadi se odločamo med izbiro platforme Java EE ali Microsoft .NET. V diplomskem delu
se bomo osredotočili na platformo Java EE, saj tudi razvojno ogrodje podjetja Oracle (Oracle
ADF) temelji na standardu Java EE.
Velikokrat Java sama po sebi ne predstavlja rešitve, ampak je samo implementacijski jezik.
Takšen primer je Ajax (angl. Asynchron java script and XML), ki je sinonim za interaktivne
spletne aplikacije, zgrajen iz kombinacije tehnologij HTML, JavaScript, XML in CSS. Ajax ni
odvisen od Jave in platforme Java EE, toda Java in Java EE sta naša izbira [3].
Skozi leta razvoja platforme Java za velika podjetja je ta postala zelo kompleksna, raznolika in
je v skupnosti razvijalcev programske opreme na veliko uporabljana. Razvijalci pa so med
seboj zelo različni, saj nekateri niso tako dobri v samem poznavanju programskega jezika
Java, ampak so specialisti za poslovne procese podjetja, za katera razvijajo poslovne
informacijske rešitve. Zelo malo je takšnih, ki bi poznali in razumeli vso širino platforme Java
EE.
Na tržišču je danes veliko razvojnih ogrodij za platformo Java EE, tako odprtokodnih kot tudi
plačljivih, tako imenovanih ''angl. vendor-owned''. Naštejmo jih nekaj: Eclipse Link,
JavaServer Faces, Struts, Google Web Toolkit (GWT), Spring in ADF Business Components.
Kot razvijalci bogatih spletnih aplikacij za velika podjetja bi želeli imeti razvojno ogrodje, ki
omogoča načrtovanje in razvoj poslovnih rešitev od samega začetka načrtovanja do namestitve
razvite aplikacije na Java EE strežnik z upoštevanjem dobrih praks in vzorcev, ponovno
uporabljivost že razvitih komponent in možnost razvijanja različnih tipov aplikacij.
V diplomskem delu se bomo osredotočili na razvoj poslovnih aplikacij na osnovi platforme
Java EE, zato v nadaljevanju povzemamo njene ključne značilnosti.
Razvoj aplikacij z ogrodjem Oracle ADF Stran 9
Java EE aplikacijski strežnik je osrednji del izvajalnega okolja Java EE aplikacij in je
sestavljen iz vsebnika strežniških zrn (EJB) in spletnega vsebnika. Java EE odjemalci so lahko
klasični namizni odjemalci (vsebnik odjemalcev in vsebnik apletov) in spletni odjemalci [15].
Osnovo modela Java EE aplikacij predstavljata programski jezik Java in navidezno izvajalsko
okolje JVM (Java Virtual Machine). V JVM se izvaja javanska koda (bytecode) [16].
Platforma Java EE je zgrajena tako, da podpira aplikacije, ki implementirajo rešitve za velika
podjetja v podporo strankam, zaposlenim, dobaviteljem, poslovnim partnerjem in drugim, ki s
svojimi zahtevami pripomorejo k boljšemu poslovanju podjetja. Struktura takšnih aplikacij je
skoraj zagotovo kompleksna, saj dostopajo do več virov podatkov in imajo veliko odjemalcev.
Da bi lažje nadzirali in upravljali takšne aplikacije, je poslovna logika umeščena na srednji
nivo. Srednji nivo predstavlja okolje, za katerega skrbi skupina informacijskih inženirjev in se
tipično izvaja na za to namenjenem strežniku in ima dostop do vseh storitev velikega podjetja
[2].
Aplikacijski model Java EE definira večnivojsko zgradbo aplikacij in s tem omogoča
doseganje naprednih funkcij informacijskih sistemov na enostaven način, podpira
prenosljivost rešitev, dopušča enostavno prilagajanje, vključuje visoko razpoložljivost in
integracijo z obstoječimi rešitvami [15].
Aplikacijska logika je razdeljena na komponente glede na funkcijo, ki jo opravljajo, in na
komponente, ki tvorijo Java EE aplikacijo in so lahko nameščene na več strežnikov glede na
nivo komponent, v katerega spadajo po specifikacijah večnivojske arhitekture Java EE.
Slika 2.1 prikazuje dve večnivojski Java EE aplikaciji, razdeljeni na naslednje nivoje [2]:
- odjemalski nivo (angl. Client - tier) komponent se izvaja na odjemalčevi napravi,
- spletni nivo (angl. Web - tier) komponent se izvaja v Java EE strežniku,
- poslovni nivo (angl. Business - tier) komponent se izvaja v Java EE strežniku,
- nivo dostopa do podatkovnih zbirk (EIS - Enterprise information systems).
Razvoj aplikacij z ogrodjem Oracle ADF Stran 10
Slika 2.1: Pregled dveh več nivojskih Java EE aplikacij [2]
Razvojna ogrodja v Javi nam kot razvijalcu poslovnih aplikacij prikrivajo kompleksnost
platforme Java EE in dajejo na voljo poenostavljene načine za razvoj poslovnih aplikacij brez
potrebe po podrobnem razumevanju tehnologij, ki jih razvojno ogrodje pokriva.
To so skupki Java razredov in nastavitvenih datotek, ki ponujajo abstrakcijo platforme in
omogočajo enostavnejši razvoj aplikacij v Javi, med tem pa silijo razvijalca rešitev k uporabi
najboljših praks in načrtovalskih vzorcev (angl. design patterns) [3].
Načrtovalski vzorci za razvoj programske opreme so dokazano uspešne rešitve določenega
načrtovalskega problema pri razvoju aplikacij, ki pomagajo zadovoljiti poslovnim zahtevam
aplikacije na konsistenten in ponovljiv način. Pomembno je poudariti, da načrtovalski vzorci
niso končna rešitev problemske domene, ampak samo načini, kako problem rešiti [8].
Java EE načrtovalski vzorec je običajno sestavljen iz opisa problema in njegove rešitve.
Razvoj aplikacij z ogrodjem Oracle ADF Stran 11
Primer enega izmed najbolj znanih načrtovalskih vzorcev, ki se uporabljajo pri gradnji Java
EE aplikacij, je vzorec MVC (angl. Model - View-Controller) [10].
Razvojna ogrodja lahko ločeno pokrivajo vse tri nivoje znotraj arhitekture razvoja po modelu
MVC. Slika 2.2 prikazuje vzorec MVC [5].
Arhitektura ogrodij, ki temeljijo na načrtovalskem vzorcu MVC, je lahko strukturirana na
različne načine, vendar med njimi prevladujeta dva tipa MVC ogrodij, in sicer [21]:
- MVC ogrodja, ki temeljijo na akcijah (angl. action based), imenovana tudi ''angl.
Push-based MVC'' ogrodja. Princip delovanja je naslednji: uporabnik iz spletnega
brskalnika sproži zahtevo, ki gre do oddaljenega strežnika. Na strežniku upravljavec
zahtev, ki ima funkcijo kontrolnika, prenese podatke iz zahteve v model. Model
posreduje podatke do pogleda, ki je tipično predstavljen s tehnologijo Java strežniške
strani (angl. JavaServer Pages) in podatke iz modela uporabi za prikaz JSP strani.
- MVC ogrodja, ki temeljijo na komponentah (angl. component based), imenovana tudi
''angl. Pull-based MVC'' ogrodja, so osredotočena na razvoj bogatih uporabniških
vmesnikov. Od koncepta procesiranja zahtev so se oddaljila k generiranju samega
pogleda. Komponente omogočajo ponovno uporabo znotraj aplikacije. Princip
delovanja je podoben kot pri ogrodjih MVC, ki temeljijo na akcijah, s to razliko, da je
lahko več kontrolnikov in pogled zahteva oziroma potegne podatke iz ustreznega
kontrolnika.
Slika 2.2: Vzorec MVC [5]
Razvoj aplikacij z ogrodjem Oracle ADF Stran 12
Razvijalci pri uporabi razvojnih ogrodij ne uporabljamo več direktno programskih vmesnikov
Java core API2, ampak se poslužujemo vmesnikov in storitev, ki jih nudijo razvojna ogrodja,
kar omogoča lažje in učinkovitejše razvijanje rešitev [3].
Veliko razvojnih ogrodij pokriva oziroma rešuje samo eno področje v večnivojski Java EE
aplikaciji. Razvijalec se mora že v začetku razvoja aplikacije odločiti za integracijo različnih
razvojnih ogrodij, da pokrije vse oziroma tiste nivoje Java EE aplikacije, po katerih bo rešitev
razvita. Seveda pa morajo za ta ogrodja obstajati tudi integrirana razvojna okolja (angl. IDE -
Integrated Development Environment), ki razvijalcu omogočajo praktično uporabo ogrodij.
Razvojna ogrodja so najboljša rešitev, ki pripomore pri razvoju Java EE aplikacij, da ostanejo
agilne, so prenosljive, dopuščajo enostavno prilagajanje in vključujejo visoko razpoložljivost
in integracijo z obstoječimi rešitvami, ne da bi se razvijalci pri tem obremenjevali s
postavljanjem infrastrukture Java EE aplikacije, ampak da bi ves ta čas lahko posvetili za
implementiranje same Jave EE rešitve [4].
2 Core Java API je zbirka Java paketov, razredov in vmesnikov z vsemi pripadajočimi metodami, lastnostmi in konstruktorji, vključno z navodili, kako jih uporabiti, ki so glede na različna programska opravila, ki jih opravljajo, kot so na primer povezovanje do podatkovne baze, prikaz grafičnega uporabniškega vmesnika, povezovanje v svetovni svet in drugo, združeni v ločene knjižnice [6][7].
Razvoj aplikacij z ogrodjem Oracle ADF Stran 13
3 RAZVOJNO OGRODJE ORACLE ADF
Razvojno ogrodje Oracle ADF je Java EE razvojno (načrtovalsko) kot tudi izvajalsko ogrodje,
ki poenostavi razvoj aplikacij, temelječih na Javi in Java EE arhitekturi.
Z vizualnim in deklarativnim načinom razvoja zmanjšuje kompleksnost razvoja Java EE
aplikacij in povečuje produktivnost. Zmanjša se delež lastne programske kode, saj vnaprej
pripravljene ADF komponente omogočajo hitro in enostavno gradnjo aplikacij [9].
Nivo metapodatkov (angl. metadata layer) v Oracle ADF poenostavi povezave med poslovno
logiko, prezentacijskim nivojem in kontrolnim nivojem. S tem razvijalcu poslovnih aplikacij
omogoča delo samo z enim naborom API-jev, ki je neodvisen od tehnologije, uporabljene na
poslovnem nivoju [3].
Oracle ''angl. ADF binding'' je integracijski nivo, ki združuje različna Java EE razvojna
ogrodja in tehnologije, vključno z elementi storitvene arhitekture, v enotno razvojno in
izvajalsko platformo. Oracle ADF je integriran v integrirano razvijalno okolje Oracle
JDeveloper IDE [3]. Skupaj predstavljata zaključeno okolje za gradnjo aplikacij za velika
podjetja, ki podpira celotni razvojni cikel aplikacije od načrtovanja do namestitve aplikacije na
strežnik [9].
Spletne aplikacije, ki so razvite z orodjem Oracle JDeveloper 11g in temeljijo na ogrodju
Oracle ADF, se imenujejo ''angl. Fusion web applications'' [3].
3.1 Arhitektura ogrodja Oracle ADF
Oracle ADF se je razvil iz skupine Java EE ogrodij, ki so integrirana skozi sloj ADF modela
(angl. ADF model layer). Sloj ''angl. ADF core binding'' je predlagan za standardizacijo v
JSR3-227 »A Standard Data Binding & Data Access Facility for J2EE« in formalizira vez
grafične komponente, ki prikazuje poslovno logiko uporabniku, s funkcionalnostjo,
3 JSR – 227 (angl. Java Specification Request - 227 ) dokument, ki opisuje format meta podatkov in API za deklarativno povezavo in dostop do podatkov v aplikacijah, razvitih v Java EE okolju.
Razvoj aplikacij z ogrodjem Oracle ADF Stran 14
izpostavljeno kot storitev v poslovnem nivoju. Razvojno ogrodje Oracle ADF je sestavljeno iz
komponent, ki jih prikazuje Slika 3.1 [3]:
- ADFv pogledni sloj (angl. view layer) vključuje naslednje tehnologije: JavaServer
Pages (JSP) z ogrodjem Struts, JSF, ADF Faces Rich Client in Apache MyFaces
Trinidad. Z uporabo podpore JavaServer Faces za razvoj aplikacij za prenosne naprave
se ADF aplikacije lahko poganjajo tudi na prenosnih napravah, kot so iPhone in PDA.
- ADFc krmilna komponenta (angl. controller component) je nadgradnja JSF modela
navigacije, ki vzpodbuja razvijalce k modularizaciji in ponovni uporabi.
- ADFm povezovalni sloj in model (angl. binding layer and model) sta predstavljena s
kontrolniki podatkov in z vsebnikom povezav. ADFm je zgrajen na specifikacijah JSR-
227.
- ADFbc poslovne komponente ADF (angl. ADF Business Components) imajo med
vsemi storitvami, ki so na voljo, posebno vlogo, saj v aplikacijski modul (angl.
Application module) vključujejo programske vmesnike ADF API-je.
- ADFdi integracija namizja s paketom Microsoft Office 2007 omogoča razvijalcu, da
lahko iz programa Excel dostopa do ADF povezovalnega sloja, ki je na strežniški
strani.
Slika 3.1: Arhitektura Oracle Fusion komponent
Razvoj aplikacij z ogrodjem Oracle ADF Stran 15
3.2 Nivo poslovnih storitev
Pri razvoju poslovnih aplikacij v Java EE okolju se jedro poslovne logike implementira kot
mehanizem poslovno storitvenega nivoja v eni ali več poslovnih storitvah. Te zaključene
celote nudijo odjemalcu načine za izvajanje povpraševanj, manipulacijo s podatki (vstavljanje,
brisanje, popravljanje), vse v skladu z domenskimi poslovnimi pravili [11]. V praktičnem delu
diplomske naloge bomo uporabili ADF poslovne komponente.
3.2.1 Poslovne komponente ADF
Poslovne komponente ADF zagotavljajo že pripravljene gradnike, s katerimi poenostavimo
gradnjo poslovne logike na deklarativen način [9]. Gradniki implementirajo Java EE
načrtovalske vzorce in dobre prakse. Nekatere izmed primarnih funkcij ADF poslovnih
komponent so vzpostavljanje in vzdrževanje povezave do podatkovne baze, dostop do
podatkov, zaklepanje baznih zapisov in upravljanje s transakcijami. Z orodjem Oracle
JDeveloper in uporabo poslovnih komponent ADF lahko na deklarativen način testiramo
poslovno logiko, ponovno uporabimo poslovno logiko skozi pogledne objekte, temelječe na
SQL podatkovnih poizvedbah, ki podpirajo različna opravila v aplikaciji, dostopamo do
pogledov (angl. views) in jih spreminjamo iz spletnega brskalnika, namizja, prenosnih naprav
in odjemalcev spletnih storitev [11].
Posamezna komponenta je zgrajena iz ene ali več nastavitvenih XML datotek in iz ene ali več
javanskih datotek (.java), ki razširjajo osnovne razrede ogrodja domenske komponente za
potrebe lastnih poslovnih pravil, ki jih želimo uveljaviti v domenski komponenti. Nastavitvene
datoteke lahko vsebujejo nastavitve za uporabniške vmesnike, ki jih spletna aplikacija
avtomatsko uveljavi za prikaz oznak, formatov podatkov in namigov na grafičnih
komponentah. Model ADF poslovnih komponent je sestavljen iz naslednjih osnovnih
komponent, ki so poudarjene na Sliki 3.2:
Razvoj aplikacij z ogrodjem Oracle ADF Stran 16
Slika 3.2: Model ADF poslovnih komponent
- Entitetni objekt
Entitetni objekt lahko v aplikaciji predstavlja eno od tabel podatkovne baze (angl.
database table), sinonima (angl. synonym) ali pogleda (angl. view). Omogoča
objektno/relacijsko preslikavo med Java objekti, ki jih uporablja aplikacija, in
entitetami v podatkovni bazi. Relacijska podatkovna baza vsebuje poleg drugih
Razvoj aplikacij z ogrodjem Oracle ADF Stran 17
objektov tudi množico tabel, ki vsebujejo stolpce [12]. Na primer, v relacijski
podatkovni bazi obstaja tabela VRSTE_DOKUMENTOV. Tabela 3.1 prikazuje kolone
v tabeli in pripadajoče podatkovne tipe.
Tabela 3.1: Kolone v tabeli in pripadajoči podatkovni tipi
Naziv stolpca SQL podatkovni tip IID_VRSTE_DOKUMENTOV NUMBER SIFRA_VRSTE_DOKUMENTA VARCHAR2 NAZIV_VRSTE_DOKUMENTA VARCHAR2 STATUS NUMBER
ADF poslovna komponenta predstavlja tabelo podatkovne baze kot definicijo
entitetnega objekta. Definicija entitetnega objekta vsebuje entitetne atribute (angl.
entity atributes). Vsak od atributov ustreza enemu stolpcu v tabeli, čeprav preslikava ni
vedno ena proti ena. Podatkovni tipi atributov so Java razredi, ki ustrezajo SQL
podatkovnim tipom stolpcev [12]. Tabela 3.2 prikazuje definicije atributov entitetnega
objekta za tabelo VRSTE_DOKUMENTOV.
Tabela 3.2: Definicije atributov entitetnega objekta
Naziv atributa Java podatkovni tip IidVrsteDokumentov oracle.jbo.domain.Number SifraVrsteDokumenta java.lang.String NazivVrsteDokumenta java.lang.String Status oracle.jbo.domain.Number
Java neposredno ne podpira SQL podatkovnih tipov, vendar jih lahko pretvori v Java
podatkovni tip. Definicija enitetnega objekta je šablona (predloga) za instance
entitetnih objektov, ki so posamezni Java objekti in predstavljajo posamezno vrstico iz
tabele podatkov [12].
Na primer definicija entitetnega objekta VrsteDokumentov predstavlja predlogo za
entitetni objekt. Le ta predstavlja posamezno vrstico v tabeli
VRSTE_DOKUMENTOV. V Tabeli 3.3 je predstavljena ena vrstica podatkov z
vrednostmi entitetnih atributov.
Razvoj aplikacij z ogrodjem Oracle ADF Stran 18
Tabela 3.3: Predstavitev vrstice podatkov z vrednostmi entitetnih atributov
Naziv atributa Vrednost atributa IidVrsteDokumentov 11190 SifraVrsteDokumenta ''A19'' NazivVrsteDokumenta ''Potrdilo o opravljenih izpitih'' Status 1
Vsak posamezen entitetni objekt je za pripadajočo vrstico iz podatkovne baze
odgovoren za njeno shranjevanje, validacijo in izvajanje operacij vstavljanja (angl.
insert), popravljanja (angl. update) in brisanja (angl. delete) [12].
- Asociacija
Asociacije so povezave med definicijami entitetnih objektov in si jih lahko
predstavljamo kot tuje ključe (angl. foreign keys). V večini primerov asociacija
povezuje enega ali več atributov ''izvora'' definicije entitetnega objekta z enim ali več
atributov ''ponora'' definicije entitetnega objekta. Asociacije lahko temeljijo na pravilih
medsebojne povezanosti tabel (angl. constraints), ki so določena v podatkovnem
modelu [12].
- Pogledni objekt
Pogledni objekt je komponenta, s katero se izvajajo poizvedbe o podatkih ene ali več
tabel podatkovne baze ali o enem ali več entitetnih objektih. Definicija poglednega
objekta vsebuje SQL stavek in je predloga za instanco poglednega objekta, ki je
odgovorna za izvajanje poizvedb in kreiranje poglednih vrstic (angl. view rows).
Pogledna vrstica predstavlja posamezno vrstico oziroma zadetek iz rezultata
poizvedbe. Definicija poglednega objekta vsebuje pogledne atribute, ki ustrezajo
stolpcem v SQL stavku [12].
Večina poglednih objektov temelji na SQL stavkih, vendar obstajajo tudi drugi tipi
poglednih objektov [12]:
o pogledni objekt, temelječ na statični listi vrednosti, definirani znotraj orodja
JDeveloper,
o pogledni objekt, temelječ na PL/SQL funkciji,
Razvoj aplikacij z ogrodjem Oracle ADF Stran 19
o pogledni objekt, temelječ na zahtevah nad nerelacijskimi podatkovnimi viri.
Rezultat povpraševanja po poglednem objektu se lahko v času izvajanja aplikacije
dinamično omejuje z določanjem vrednosti vezanih spremenljivk (angl. bind
variables), ki so vsebovane v stavku ''WHERE'' poglednega objekta. Stavek ''WHERE''
poglednega objekta se lahko določi tudi v času izvajanja s klicem že pripravljenih
metod poglednega objekta.
- Pogledne povezave
Pogledne povezave povezujejo med seboj dve množici rezultatov povpraševanja o
poglednih objektih [12]. Primer takšne povezave je lahko med nadrejenim (angl.
master) poglednim objektom in podrejenim (angl. slave) poglednim objektom, kjer je
rezultat povpraševanja o podrejenem poglednem objektu omejen glede na trenutno
izbrano pogledno vrstico nadrejenega poglednega objekta. Omejitev rezultata je
določena v definiciji objekta pogledne povezave, ki vsebuje seznam atributov izvora
pogledne povezave in parametriziranega stavka ''WHERE'', ki se lahko doda ponoru
oziroma podrejenemu poglednemu objektu [12]. Slika 3.3 prikazuje korak pri kreiranju
pogledne povezave v odnosu nadrejenega/podrejenega poglednega objekta, kjer sta
izbrana izvorni atribut in končni oziroma ciljni atribut.
Razvoj aplikacij z ogrodjem Oracle ADF Stran 20
Slika 3.3: Vodič za kreiranje pogledne povezave
- Aplikacijski modul
Aplikacijski modul vsebuje pogledne objekte, pogledne povezave in aplikacijske
module. Predstavlja eno poslovno opravilo in določa, kateri podatki so potrebni za
izvedbo. Odgovoren je za zagotavljanje in ažuriranje podatkov ter nudi ostale funkcije,
ki so potrebne v času izvajanja opravila [12]. Struktura podatkovnega modela
aplikacijskega modula je hierarhično urejena s poglednimi povezavami med
poglednimi objekti. Pogledni objekt je lahko v model dodan enkrat ali večkrat, vendar
mora vsak imeti unikaten naziv. Aplikacijski modul lahko v svojem podatkovnem
modelu vsebuje enega ali več aplikacijskih modulov. Takšni aplikacijski moduli se
imenujejo gnezdeni (angl. nested) aplikacijski moduli. Aplikacijski modul, ki ni
gnezden, se imenuje korenski (angl. root) aplikacijski modul.
Na nivoju aplikacijskega modula se izvajajo bazne transakcije, kot so uveljavi (angl.
COMMIT) in prekliči (angl. ROLLBACK). Na primer, v modelu aplikacijskega modula
obstajata dva pogledna objekta, temelječa na entitetnem objektu. Izvedba operacije
Razvoj aplikacij z ogrodjem Oracle ADF Stran 21
''COMMIT'' nad aplikacijskim modulom shrani vse spremembe vrednosti atributov v
instancah entitenih objektov, tako enega kot tudi drugega poglednega objekta v
podatkovno bazo.
Aplikacijski modul je možno med uporabniki deliti (angl. share) in ga ponovno
uporabiti (angl. reuse). Deljen aplikacijski modul vsebuje podatke, ki so enaki ves čas
in za vse uporabnike aplikacije. Takšen primer so statični seznami vrednosti in
vpogledne tabele (angl. lookup tables). Za ponovno uporabo aplikacijskega modula
skrbi ogrodje ADF BC z vzdrževanjem bazena (angl. pool) aplikacijskih modulov, v
katerem so vse instance aplikacijskih modulov vseh uporabnikov aplikacije [12].
Lahko se zgodi, da je dvema uporabnikoma v različnem času dodeljena ista instanca
aplikacijskega modula. Naloga bazena je zagotoviti konsistenco podatkov, tako da bo
vsak uporabnik videl svoj nabor podatkov.
V orodju JDeveloper obstaja možnost testiranja aplikacijskega modula, in sicer v
samostojni Swing aplikaciji, kjer lahko preverimo pogledne povezave med poglednimi
objekti, omejen nabor podatkov v podrejenih poglednih objektih glede na izbran
nadrejeni zapis; izvajajo se operacije vstavljanja, brisanja in popravljanja podatkov ter
tudi uveljavijo oziroma prekličejo spremembe na nivoju testiranega aplikacijskega
modula. Preizkusimo lahko tudi omejitev prikazanih podatkov s poglednimi kriteriji, ki
jih lahko določimo vsakemu poglednemu objektu, in vnos podatkov na podlagi
pripravljenih list vrednosti. Slika 3.4 prikazuje uporabniški vmesnik v tehnologiji
Swing za testiranje aplikacijskega modula oziroma podatkovnega modela.
Razvoj aplikacij z ogrodjem Oracle ADF Stran 22
Slika 3.4: Samostojna Swing aplikacija za testiranje podatkovnega modela
Poslovne komponente ADF predstavljajo jedro ogrodja Oracle ADF. ADF BC ogrodje ponuja
na voljo tudi komponente, ki pa niso nujno potrebne pri gradnji Java EE aplikacije, ampak
ponujajo dodatne funkcije v podporo osnovnim komponentam. To so:
- domene
Domene predstavljajo povezave med podatkovnimi tipi atributov v entitetnih in
poglednih objektih ter podatkovnimi tipi stolpcev v tabelah podatkovne baze.
Domeni je lahko prirejena vrednost več podatkovnih tipov. Na primer domeni
oracle.jbo.domain.Number je lahko prirejena vrednost podatkovnega tipa integer, long,
float, double in tudi vrednost objektnega podatkovnega tipa java.math.BigInteger,
java.math.BigDecimal ali oracle.jbo.domain.Number, ki vsebuje tudi informacije,
Razvoj aplikacij z ogrodjem Oracle ADF Stran 23
dobljene pri preslikavi, o velikosti in številu decimalnih mest. Kreiramo lahko tudi
lastne domene in domene, ki vključujejo tudi poslovno logiko [12].
- validacijska pravila
Validacijska pravila so Java razredi, ki implementirajo razred
oracle.jbo.rules.JboValidatorInterface. Uporabimo ga lahko za validacijo na nivoju
entitetnih objektov kot tudi na nivoju posameznega atributa entitetnega objekta.
- enote poslovne logike
Omogočajo dodajanje poslovne logike definicijam entitenih objektov. Instance
entitetnih objektov na podlagi določenega entitetnega atributa izvajajo različno
poslovno logiko [12]. To pomeni, da se lahko entitetni objekti v času izvajanja različno
obnašajo glede na vrednost določenega atributa. Enotam poslovne logike lahko
dodajamo tudi prej opisana validacijska pravila.
- množica lastnosti
Množice lastnosti so zbirke namigov (angl. hints) oziroma nastavitev, ki v grafičnih
komponentah vplivajo na prikaz vrednosti entitetnih ali poglednih atributov [12]. Na
primer, že na nivoju entitetnih in poglednih atributov je možno za datumski podatkovni
tip (angl. Date) določiti tudi format datuma, ki ga bo prikazovala grafična
komponenta. Prednost uporabe množice lastnosti je v tem, da jih lahko določimo
različnim entitetnim ali poglednim atributom. Tako ni potrebno za vsak atribut, ki ima
podobne ali popolnoma enake lastnosti, ponovno določati enakih lastnosti. Atribut
prevzame vse lastnosti iz množice lastnosti, vendar še vseeno lahko atributu za enako
lastnost, ki obstaja v množici lastnosti, določimo svojo vrednost.
Razvoj aplikacij z ogrodjem Oracle ADF Stran 24
3.3 Model
Model je po načrtovalskem vzorcu MVC vmesni sloj med nivojem poslovnih storitev in
uporabniškim nivojem.
3.3.1 Model ADF
Zagotavlja neodvisnost izbrane tehnologije uporabniškega vmesnika in implementacije
poslovnih storitev. ADF model implementira dva pomembna koncepta v JSR-227: podatkovne
kontrole (angl. data controls) in povezave podatkov (angl. data bindings) [3]. Omogoča, da s
pomočjo različnih tehnologij, uporabljenih za razvoj poslovne logike, predstavimo poslovno
logiko poglednemu nivoju na enak način [9].
Komponente podatkovnih kontrol in povezav podatkov temeljijo na meta podatkih v XML
datotekah, ki definirajo vmesnik na poglednem nivoju [4].
Arhitektura modela ADF je zgrajena iz [12]:
- podatkovne kontrole
Podatkovne kontrole so javanski objekti v sloju modela ADF, ki se obnašajo kot
poseben sloj programske kode za dostop do poslovnih storitev. Zagotavljajo enoten
programski vmesnik API za dostop do poslovnih storitev, razvitih v različnih
tehnologijah, kot so: poslovne komponente ADF, spletne storitve, JPA (angl. Java
Persitence API), Enterprise Java Beans (EJB), XML ipd. Aplikacije, namesto da bi
direktno komunicirale s poslovnimi storitvami, pošiljajo vse zahteve preko kontrolnih
zbirk podatkov [12].
Komponenta ''angl. ADF Business components data control'', ki smo jo uporabili za
preslikavo poslovne logike, razvite z ADF poslovnimi komponentami, zagotavlja
aplikacijski modul. Aplikacijski modul omogoča podatkovnim kontrolam dostop do
svojega podatkovnega modela, branje in ažuriranje podatkov, izvajanje poljubnih
metod in upravljanje s transakcijami [12].
Razvoj aplikacij z ogrodjem Oracle ADF Stran 25
- vsebnik povezav
V sloju ADF modela predstavlja vsebnik povezav javanski objekt, ki zagotavlja dostop
do podatkov za uporabniški vmesnik, predstavljen kot JSF stran ali delček JSF strani in
dejavnosti (angl. activity) v ADF aplikaciji [12]. Povezave (angl. bindings) v vsebniku
povezav zagotavljajo komunikacijo med komponentami grafičnega vmesnika v JSF
strani ali izvedbo metode ali podatkov v dejavnosti toka opravil (angl. task flow) in
kontrolnimi zbirkami podatkov [12]. Slika 3.5 prikazuje arhitekturo ADF modela z
JSF, ''angl. ADF Task Flow'' in ADF BC.
Slika 3.5: Arhitektura ADF Modela z JSF, ADF potekom opravil in ADF BC [12]
V okolju JDeveloper so korenski aplikacijski moduli izpostavljeni kot kontrolne zbirke
podatkov v oknu, namenjenem za deklarativen razvoj, imenovanem ''angl. ADF Data Control
Palette''. Na Sliki 3.6 je prikazana hierarhična urejenost korenskih aplikacijskih modulov,
gnezdenih aplikacijskih modulov, poglednih objektov, atributov poglednih objektov,
Razvoj aplikacij z ogrodjem Oracle ADF Stran 26
poglednih kriterijev (angl. view criteria), operacij, ki so vgrajene v aplikacijske module in
pogledne objekte, ter poljubnih metod, ki jih zagotovi razvijalec poslovnih komponent v
aplikacijskih modulih ali poglednih objektih.
Slika 3.6: Okno v JDeveloperju 11g, ki prikazuje kontrolne zbirke podatkov
Pripravljeni objekti v ''angl. ADF Data Control Palette'' se v okolju JDeveloper lahko
uporabljajo kot način razvoja aplikacije po principu povleci in spusti (angl. drag and drop).
Pri tem ni potrebno graditi nobenih dodatnih nastavitvenih datotek, ampak so komponente
pripravljene za takojšnjo uporabo. Pri dodajanju komponente na JSF stran (najprej izberemo
tip komponente, prikazane na uporabniškem vmesniku, katero želimo, da je povezana) ogrodje
avtomatsko izvede naslednje akcije:
- v nastavitveni datoteki web.xml se doda vrstica z referenco na ADFBindingFilter, ki
skrbi za pravilno prikazovanje podatkov na JSF strani.
- za JSF stran, na katero smo dodali komponento, se kreira datoteka z meta podatki, ki
vsebuje informacije o ADF povezavah za to stran. Ime datoteke se določi iz imena
datoteke JSF strani in pripone PageDef.xml.
Razvoj aplikacij z ogrodjem Oracle ADF Stran 27
- kreira se registrska datoteka DataBindings.cpx, ki vsebuje informacije, kateri JSF
strani pripada definicijska datoteka z meta podatki (angl. PageDef metadata file) JSF
strani.
- komponenti uporabniškega vmesnika se doda referenca v obliki EL (expression
language), ki povezuje komponento uporabniškega vmesnika z meta podatki
definicijske datoteke JSF strani.
3.4 Pogled
Pogledni ali predstavitveni nivo zagotavlja ustrezno predstavitev podatkov, dobljenih iz
modela, v obliki, ki bo odjemalcu aplikacije najbolj uporabna. Tehnologije za implementacijo
predstavitvenega nivoja so lahko različne glede na vrsto aplikacije. V primeru Java EE spletne
aplikacije, ki je storitveno orientirana, je lahko predstavitveni del razvit v tehnologiji JAX-WS
(Java API for XML Web Services) in za odjemalca predstavlja končno točko spletne storitve.
Predstavitveno orientirane aplikacije so spletne aplikacije, aplikacije za prenosne naprave in
namizne aplikacije odjemalec – strežnik. Tehnologije za predstavitev interaktivnih spletnih
uporabniških vmesnikov so lahko HTML, JSP. Java Servlets, Java Server Faces in ADF Faces
Rich Client, ki je tudi tehnologija, uporabljena v naši aplikaciji.
3.4.1 Pregled tehnologije JSF
Tehnologija JSF je standard za gradnjo spletnih javanskih aplikacij, razvit skozi JCP po
specifikacijah JSR-127. Glavni cilj tehnologije JSF je zagotoviti poenostavljen razvoj
uporabniških vmesnikov, ki pogosto predstavljajo enega izmed težjih delov pri razvoju
spletnih aplikacij. Ogrodje omogoča razvoj spletnih aplikacij po vgrajenih in dobro poznanih
načrtovalskih vzorcih, ki so razviti na izkušnjah iz predhodnih javanskih ogrodij, kot je na
primer zelo razširjeno in poznano ogrodje Struts.
Razvoj aplikacij z ogrodjem Oracle ADF Stran 28
JSF temelji na obstoječih tehnologijah Java Servlets in JSP. Razvoj aplikacij temelji na
načrtovalskem vzorcu MVC in pripravljenih UI komponentah za gradnjo uporabniškega
vmesnika.
Oracle je kmalu po tem, ko je JSF postal standard, ponudil več kot 100 JSF komponent pod
imenom ADF Faces, med katerimi so že bile komponente, ki so omogočale delno osveževanje
strani (angl. partial page rendering) in jih kasneje podaril odprtokodni skupnosti Apache, kjer
so jih naprej razvijali kot del projekta MyFaces Trinidad project [3].
3.4.2 Bogati odjemalci in ADF
Tehnologija ADF Faces RC je naslednja generacija ADF Faces in je del razvojnega okolja
Oracle JDeveloper 11g. Razvita je na osnovi tehnologije Apache Trinidad. Ponuja veliko JSF
komponent, obogatenih z AJAX tehnologijo, ki so predstavniki tehnologije Web 2.0 za
gradnjo spletnih aplikacij [13].
Komponente ADF Faces RC zagotavljajo sodoben in konsistenten videz aplikacije, ki ga
lahko na enostaven način spremenimo na nivoju celotne aplikacije. ADF Faces skins so že
pripravljene predloge za vizualni izgled celotne aplikacije. Vizualna predloga (angl. skin) je
skupek oznak ''angl. cascading style sheets'', ki določajo izgled vsake JSF komponente.
Predlogo, ki bo izbrana za izgled celotne aplikacije, določimo v nastavitveni datoteki trinidad-
config.xml.
Koda 1: Nastavitev privzete vizualne predloge ADF Faces RC komponent
Pri delu z ADF Faces komponentami ni potrebno direktno uporabljati HTML oznak, saj bo
komponenta v spletnem brskalniku prikazana z uporabo HTML oznak. Na primer, oznaka
ADF Faces komponente za vnos teksta je af:inputTekst, pri čemer je ''af'' kratek naziv
Razvoj aplikacij z ogrodjem Oracle ADF Stran 29
knjižnice, v kateri se nahaja ADF Faces komponenta in določa imenski prostor (angl.
namespace) knjižnice http://xmlns.oracle.com/adf/faces/rich. Komponenta bo v spletnem
brskalniku predstavljena kot HTML forma z vnosnim poljem (angl. text field).
ADF Faces komponente so razdeljene v tri kategorije:
- splošne komponente vsebujejo komponente za branje vhodnih podatkov, prikaz
dialogov, menijev, izvedbo akcij in navigacijo v aplikaciji,
- postavitvene komponente so komponente, ki so vsebniki za splošne komponente in
tudi gnezdene postavitvene komponente. Določajo postavitev komponent na JSF strani
in katere komponente lahko vsebujejo,
- operacije, te vsebujejo komponente, ki nimajo vizualne predstavitve, ampak so lahko
dodane kot dopolnitev vizualnih komponent s pretvorniki vnosnih podatkov, validacijo
podatkov na strani odjemalca ali poslušalcev akcij (angl. action listeners).
V orodju JDeveloper 11g so vse komponente v oknu, imenovanem ''angl. Componente
Palette'', ki je prikazan na Sliki 3.7 in pripravljene za dodajanje na JSF stran.
Slika 3.7: Seznam komponent, pripravljenih za gradnjo JSF strani
Razvoj aplikacij z ogrodjem Oracle ADF Stran 30
Strukturo JSF strani pa je poleg vizualnega urejevalnika mogoče graditi tudi s programsko
kodo. Koda 2 prikazuje primer gradnje JSF strani s programsko kodo, kjer se v času izvajanja
splošna komponenta ''af:inputText'' doda v postavitveno komponento ''af:panelGroupLayout''.
Vsaka ADF Faces komponenta na JSF strani ima svojo instanco JavaBean4, ki jo kreira
knjižnica oznak ADF Faces JSP. Na primer, za oznako af:inputTekst se v času izvajanja
aplikacije kreira JavaBean na osnovi javanskega razreda
oracle.adf.view.rich.component.rich.input.RichInputText in zagotavlja metode za dostop do
lastnosti in stanja objekta.
Koda 2: Primer gradnje JSF strani s programsko kodo
3.5 Kontrolni nivo
Kontrolni nivo nadzira potek izvajanja aplikacij, komunicira z uporabniškim nivojem in
zagotavlja pretvorbo odjemalčevih akcij v akcije, ki jih razume modelni nivo. Vsebuje tudi
sistem za upravljanje z napakami [9].
V načrtovalskem vzorcu MVC je kontrolni nivo specificiran kot ločen sloj kode, ki določa
potek izvajanja aplikacije. Včasih najbolj popularno odprto kodno ogrodje Apache Struts je že
vsebovalo kontrolni nivo po modelu MVC, vendar način povezave med poglednim in
kontrolnim nivojem ni bil standardiziran [12].
3.5.1 Kontrolnik Faces
V JSF aplikacijah je ''angl. Faces controller'' servlet, ki upravlja z vsemi interakcijami in
zahtevami uporabnika. JSF navigacijski model, ki določa navigacijo med JSF stranmi, je
4 JavaBean – je preprost javanski razred z lastnostmi in metodami, ki se začnejo z ''angl. set'' in ''angl. get'' ter vsebuje privzeti konstruktor brez argumentov [14].
Razvoj aplikacij z ogrodjem Oracle ADF Stran 31
določen v nastavitveni XML datoteki faces-config.xml. V datoteki so določena vsa pravila, ki
direktno med seboj povezujejo JSF strani [1].
3.5.2 Kontrolnik ADF
ADF kontrolnik je nadgradnja Faces kontrolnika in se uporablja pri navigaciji Oracle Fusion
spletnih aplikacij. Ponuja modularen pristop za načrtovanje poteka izvajanja aplikacije, razvite
v JSF in ADF Faces RC tehnologiji. Od standardnega JSF navigacijskega modela se razlikuje
po tem, da omogoča razčlenitev izvajanja aplikacije na posamezne poteke opravil (angl. task
flows), ki so lahko med seboj povezani. Prednost njihove uporabe je možnost ponovne
uporabe v isti ali drugih aplikacijah. Za potek opravil lahko zgradimo svojo predlogo, ki bo
uporabljiva v ostalih potekih opravil. Tipičen primer predloge je potek opravil za upravljanje z
napakami. Vsak potek opravil ima svojo nastavitveno XML datoteko, ki jo lahko v orodju
JDeveloper na deklarativen način gradimo in urejamo. Na Sliki 3.8 je prikazan potek opravila
za primer uporabe pregleda oseb in urejanja oseb, kjer je privzeta vstopna točka poteka
opravila označena z zelenim krogom. V našem primeru ta predstavlja JSF stran
SeznamOseb.jspx.
Slika 3.8: Potek opravil za primer uporabe pregleda in dodajanja oseb
Razvoj aplikacij z ogrodjem Oracle ADF Stran 32
V poteku opravil določimo aktivnosti (angl. activities), s katerimi izvedemo opravilo.
Aktivnost je lahko:
- prikaz strani (na primer JSF stran),
- izvedba aplikacijske logike ali
- klic drugega poteka opravil.
Aktivnosti so med seboj povezane s kontrolnimi pravili, (angl. Control flows), ki določajo
potek izvedbe opravila od ene do druge aktivnosti.
Obstajata dve vrsti potekov opravil:
- nepovezani poteki opravil
V nepovezanem poteku opravil so določene vse aktivnosti, s katerimi se izvede
opravilo in niso določene v drugih povezanih potekih opravil. Nepovezanega poteka
opravil ne more izvesti oziroma poklicati drug potek opravil.
- povezani poteki opravil
Je posebna oblika poteka opravil, ki se od nepovezanega poteka opravil razlikuje po
tem, da določa samo eno vstopno točko in nič ali več izhodnih točk. Vsebuje lasten
nabor aktivnosti, kontrolnih pravil in upravljanih zrn (angl. managed beans). Omogoča
ponovno uporabo, vhodne parametre, večkratni vstop, upravljanje s transakcijami in
vračanje vrednosti.
Fusion aplikacije so ponavadi sestavljene iz kombinacije povezanih in nepovezanih potekov
opravil. V nepovezanem poteku opravil so določene aktivnosti, ki predstavljajo vstopne točke
aplikacije. Nastavitvena datoteka za privzeti potek opravil je adfc-config.xml.
Razvoj aplikacij z ogrodjem Oracle ADF Stran 33
4 PRAKTI ČNI DEL
V praktičnem delu smo raziskovali gradnjo Oracle Fusion spletnih aplikacij z razvojnim
ogrodjem Oracle ADF. Želeli smo preučiti način razvoja aplikacije, ki ga ponuja integrirano
razvojno okolje Oracle JDeveloper 11g, od načrtovanja aplikacije do namestitve na
aplikacijski strežnik.
4.1 Razvojno okolje
Aplikacijo smo razvijali v integracijskem razvojnem okolju JDeveloper Studio 11.1.1.3.0. Za
shranjevanje podatkov in izvajanje bazne poslovne logike smo uporabili Oracle Database 11g.
4.2 Opredelitev problema
V podjetju RC IRC Celje d.o.o. imajo Sistem pristopne kontrole, ki deluje na principu
brezkontaktnih magnetnih identifikacijskih medijev (v trenutni uporabi obeski). Pristopili smo
k izgradnji aplikacije evidence delovnega časa (v nadaljevanju EDC), in pri tem preučevali in
raziskovali gradnjo Oracle Fusion spletnih aplikacij.
Najprej smo preučili Sistem pristopne kontrole, ki je sestavljen iz naslednjih komponent:
terminal za kontrolo pristopa (JANTAR), brezkontaktna čitalna mesta, vmesnik RS 232/485,
pristopni program za W95/98 (enouporabniška verzija) in električne ključavnice z detekcijo
stanja vrat. Sistem deluje na naslednji način. Vsak zaposleni ima svojo brezkontaktno
magnetno kartico ali obesek. Podjetje ima svoje poslovne prostore v večnadstropni poslovni
stavbi v dveh nadstropjih: pritličje in 1. nadstropje. V vsakem nadstropju je dostop v prostore
onemogočen z električno ključavnico z detekcijo stanja vrat, ki je povezana s terminalom za
kontrolo dostopa. Ključavnica se odklene, ko se zaposleni z brezkontaktno magnetno kartico
registrira na brezkontaktnem čitalcu magnetnih kartic, ob tem se v podatkovni bazi FireBird
ustvari zapis s podatki o času, datumu, številki in lastniku identifikacijskega medija. Čitalec
magnetnih kartic je lociran pri vhodu in izhodu iz prostora, povezan je s terminalom za
Razvoj aplikacij z ogrodjem Oracle ADF Stran 34
kontrolo dostopa. Skupaj tvorita par, ki se po poimenovalnem dogovoru v podjetju imenuje
kontrolna točka.
Po dobljenih informacijah o ključnih komponentah sistema smo začeli s sestavljanjem opisa
problemskega področja in definirali postopek izgradnje aplikacije EDC. Aplikacija EDC bo
podpirala naslednje funkcionalnosti:
- zajemanje podatkov iz Sistema pristopne kontrole,
- pregledovanje mesečne prisotnosti,
- pregledovanje trenutne prisotnosti,
- pregledovanje letne prisotnosti,
- vnašanje, spreminjanje, brisanje in pregledovanje prisotnosti,
- vnašanje, spreminjanje, brisanje in pregledovanje letnih dopustov,
- vnašanje, spreminjanje, brisanje in pregledovanje lastništva IM,
- vnašanje, spreminjanje, brisanje in pregledovanje šifranta oseb,
- vnašanje, spreminjanje, brisanje in pregledovanje šifranta IM,
- vnašanje, spreminjanje, brisanje in pregledovanje šifranta prostorov,
- vnašanje, spreminjanje, brisanje in pregledovanje šifranta praznikov,
- vnašanje, spreminjanje, brisanje in pregledovanje šifranta kontrolnih točk,
- vnašanje, spreminjanje, brisanje in pregledovanje šifranta kategorij,
- vnašanje, spreminjanje, brisanje in pregledovanje šifranta parametrov,
- izpisovanje mesečne prisotnosti.
4.3 Diagrami primera uporabe
Diagrami primera uporabe omogočajo analiziranje funkcionalnosti celotnega sistema. Takšen
pristop omogoča izvedbo odločitev posameznih področij oziroma delov celotnega sistema. Z
Razvoj aplikacij z ogrodjem Oracle ADF Stran 35
uporabo diagramov primera uporabe smo najprej določili vse akterje sistema, ki predstavljajo
uporabnike sistema. Poleg vlog pa lahko akterji predstavljajo organizacije, naprave, aplikacije
ali drug sistem. Slika 4.1 prikazuje diagram akterjev v aplikaciji EDC.
Slika 4.1: Diagram akterjev v aplikaciji EDC
V naslednjem koraku smo določil module aplikacije ter relacije med njimi in akterji. Z
diagramom primera uporabe za pregled in vnos prisotnosti na Sliki 4.2 smo določili, kateri
akterji imajo dostop do posameznega modula aplikacije za pregledovanje in vnos prisotnosti.
Slika 4.2: Diagram primera uporabe za pregled in vnos prisotnosti
Razvoj aplikacij z ogrodjem Oracle ADF Stran 36
Diagram primera uporabe za vnašanje, spreminjanje, brisanje in pregledovanje šifrantov ter
zajem podatkov prikazuje Slika 4.3.
Slika 4.3: Diagram primera uporabe za vnašanje, spreminjanje, brisanje in pregledovanje šifrantov ter zajem podatkov
4.4 Opisi scenarijev
V nadaljevanju smo napisali scenarije, v katerih smo nazorno opisali potek uporabe
posameznega modula aplikacije.
V scenarijih smo natančno opisali, na kakšen način bo omogočen dostop do posameznih delov
aplikacije ter do kakšnih napak oziroma izjem lahko pride. Predvideti smo morali vse možne
Razvoj aplikacij z ogrodjem Oracle ADF Stran 37
alternativne poti za uporabo aplikacije. Scenarij smo opisali za vsak diagram primera uporabe
posebej. Poudariti moramo, da mora biti scenarij napisan neodvisno od izgleda uporabniškega
vmesnika, saj mora predvideti splošno uporabo aplikacije.
Primer scenarija za modul Vnos osebe prikazuje Tabela 4.1.
Tabela 4.1: Primer scenarija za izbor osebe
Akcija akterja Odziv sistema Alternativa/izjema
Izbor osebe. Izbor datuma oziroma časovnega obdobja. Izbor kategorije.
Prikaz informacij o osebi (identifikacijska številka, ime, priimek). Prikaz prisotnosti in odsotnosti ter kategorije za izbrani datum.
1, 2, 3
Vnos oziroma potrditev prisotnosti.
Zapis prisotnosti o izbrani osebi.
4, 5
Alternativa/izjema Opis Odziv
1 Vnos delnega naziva (imena in/ali priimka) osebe.
Prikaz informacij za osebo, ki ustreza delnemu nazivu.
2 Delni naziv osebe ne ustreza nobeni osebi.
Prikaz obvestila, da sistem ni našel ustrezne osebe. Vrnitev na Izbor osebe.
3 Možnost izbora podkategorije, če ta obstaja za izbrano kategorijo.
/
4 Izbrani datum oziroma časovno obdobje je večje od tekočega.
Prikaz opozorila o napačno izbranem datumu oz. časovnem obdobju. Vrnitev na Izbor datuma oziroma časovnega obdobja.
5 Možnost izbora pregleda prisotnosti za vse osebe.
Uporaba primera uporabe Pregled prisotnosti za vse osebe.
Na podoben način smo opredelili scenarije še za preostale funkcionalnosti oziroma primere
uporabe.
Razvoj aplikacij z ogrodjem Oracle ADF Stran 38
4.5 Logični in podatkovni model
Za potrebe naše aplikacije smo se odločili za uporabo podatkovne baze Oracle Database 11g.
V razvojnem orodju Oracle SQL Developer Data Modeler smo načrtovali logični in relacijski
model za aplikacijo EDC. Logični in podatkovni model prikazujeta Slika 4.4 in Slika 4.5. Na
podlagi relacijskega modela smo z orodjem Oracle SQL Developer Data Modeler kreirali
DDL datoteko, kjer so kreatorski SQL stavki za kreiranje tabel, primarnih ključev in tujih
ključev v fizični model podatkovne baze. Opisi tabel za aplikacijo EDC so:
- tabela ''Oseba'' je namenjena shranjevanju osebnih podatkov o vseh zaposlenih osebah
v podjetju,
- tabela ''Letnidopust'' je namenjena za shranjevanje podatkov o dodeljenem letnem
dopustu zaposlenemu za tekoče leto. Vsebuje tudi podatke za prenos dodeljenega
dopusta iz preteklega leta,
- tabela ''Registracija'' je namenjena shranjevanju podatkov o beleženju
prihodov/odhodov zaposlenih v prostore. Tabela se polni avtomatično v določenih
časovnih zaporedjih na podlagi poizvedb v podatkovno bazo ''Firebird'',
- tabela ''Prisotnost'' je namenjena shranjevanju časovnega obdobja prisotnosti v
prostoru, za službeni odmor, za izkoriščen dan letnega dopusta. V tabeli so shranjeni
tudi podatki časovnega obdobja službene odsotnosti,
- tabela ''Obdobjelastnistvaim'' je namenjena shranjevanju podatkov o lastništvu
identifikacijskega medija, ki je dodeljen vsakemu zaposlenemu,
- tabela ''Delaprostidan'' je namenjena shranjevanju podatkov o dela prostih dnevih,
- tabela ''Im '' je namenjena za shranjevanje podatkov o fizičnih identifikacijskih medijih,
ki so namenjeni za beleženje vhoda/odhoda iz prostora in v prostor,
- tabela ''Kategorija '' je namenjena shranjevanju podatkov o kategorijah prisotnosti
oziroma odsotnosti in vsebujejo podatke, potrebne pri izračunu mesečne in letne
prisotnosti ter podatke za prikazovanje prisotnosti/odsotnosti na uporabniškem
vmesniku,
Razvoj aplikacij z ogrodjem Oracle ADF Stran 39
- tabela ''Kontrolnatocka '' je namenjena shranjevanju podatkov o kontrolnih točkah, ki
so določene pri vstopu in izstopu iz prostora,
- tabela ''Prostor'' je namenjena shranjevanju podatkov o fizičnih lokacijah prostorov, ki
so razporejeni v dveh nadstropjih poslovne stavbe,
- tabela ''Parameter'' je namenjena shranjevanju podatkov o parametrih, potrebnih za
dostop do podatkovne baze Sistema za pristopno kontrolo.
Slika 4.4: Logični model aplikacije EDC
Razvoj aplikacij z ogrodjem Oracle ADF Stran 40
Slika 4.5: Podatkovni model aplikacije EDC
4.6 Poslovne komponente
V orodju Oracle JDeveloper smo na podlagi fizičnega modela s pomočjo čarovnika za
kreiranje poslovnih komponent kreirali entitetne objekte, asociacije, pogledne objekte in
pogledne povezave. Na podlagi entitetnih objektov in povezav med njimi smo zaradi
preglednosti in dodane funkcionalnosti kreirali diagram poslovnih komponent, ki je prikazan
Razvoj aplikacij z ogrodjem Oracle ADF Stran 41
na Sliki 4.6. Entitetnim objektom smo določili validacijska pravila za preverjanje pravilnosti
vnesenih podatkov pred shranjevanjem v podatkovno bazo.
Slika 4.6: Diagram poslovnih komponent
Razvoj aplikacij z ogrodjem Oracle ADF Stran 42
Poglednim objektom smo dodatno določili pogledne kriterije, s katerimi smo omejili prikaz
podatkov na uporabniškem vmesniku. Primer nastavitve poglednega kriterija za omejitev
nabora oseb prikazuje Slika 4.7. Atributom poglednih objektov smo določili nazive, velikost,
obliko prikaza in vrsto komponente za prikaz na uporabniškem vmesniku.
Slika 4.7: Urejanje poglednega kriterija
Za potrebe preračunavanja in prikaza prisotnosti smo zaradi optimizacije zgradili pogledne
objekte, temelječe na SQL povpraševalnih stavkih, ki so namenjeni samo za iteracijo čez vse
pogledne vrstice. Dodatno smo za potrebe določanja atributa ''Status'' implemetirali pogledni
objekt za preslikavo numerične vrednosti ''0'' in ''1'' v niz znakov ''DA'' in ''NE'', ki temelji na
programski kodi in ni odvisen od SQL povpraševalnih stavkov.
Razvoj aplikacij z ogrodjem Oracle ADF Stran 43
Koda 3: Implementacija poglednega objekta ''DaNeView''
Iz pripravljenih poglednih objektov smo za vsak aplikacijski modul zgradili podatkovne
modele. Na Sliki 4.8 je prikazan podatkovni model za aplikacijski modul ''PrisAppModule''.
Razvoj aplikacij z ogrodjem Oracle ADF Stran 44
Slika 4.8: Podatkovni model za aplikacijski modul PrisAppModule
Aplikacijske module smo izpostavili kot podatkovne kontrole, prikazane na Sliki 4.9, ki so
osnova za dostop do poslovne logike in gradnjo uporabniškega vmesnika.
Slika 4.9: Podatkovne kontrole za aplikacijo EDC
Razvoj aplikacij z ogrodjem Oracle ADF Stran 45
4.7 Zajem in obdelava podatkov
V aplikaciji EDC predstavlja eno izmed najpomembnejših opravil zajem podatkov iz
podatkovne baze Firebird, kamor se shranijo podatki, zabeleženi na registratorjih. Prisotnost
zaposlenca sestavlja pet ločenih opravil, ki se izvajajo kot niti. To so:
- postopek zajema podatkov se izvaja po naslednjih korakih:
o zagon procesa z vhodnim parametrom, ki določa, v kakšnih časovnih intervalih
se proces samodejno ponovno zažene. Slika 4.23 prikazuje uporabniški
vmesnik za ročni zagon procesov,
o iskanje parametrov, potrebnih za vzpostavitev povezave s podatkovno bazo
Firebird,
o zajem podatkov z izvajanjem SQL povpraševalnih stavkov,
o iskanje podatkov o kontrolni točki in identifikacijskem mediju na podlagi
zajetih podatkov,
o vnos registracije v podatkovno bazo Oracle Database 11g.
- postopek obdelave registracij se izvaja po naslednjih korakih:
o zajem podatkov iz tabele ''REGISTRACIJA'',
o iskanje parov prihod/odhod,
o vnos prisotnosti v tabelo ''PRISOTNOST'',
o vnos podatka o primarnem ključu zapisa o prisotnosti v obe registraciji, ki
tvorita par prihod/odhod.
- opravilo vnosa malice vnese prisotnosti, ki so določene kot odmor za malico.
Vsakemu zaposlenemu pripada odmor za malico 0,5 ure dnevno.
- opravilo vnosa praznikov vnese prisotnosti 8 ur za vsak praznik, določen v tabeli
''DELAPROSTIDAN''.
- opravilo vnosa odmorov vnese prisotnosti, ki se po dogovoru v podjetju imenujejo
kratki odmori. Kratki odmori predstavljajo odsotnost z delovnega mesta, ki ni daljša od
3 minut.
Razvoj aplikacij z ogrodjem Oracle ADF Stran 46
Vsak postopek lahko kontrolirano poženemo iz vmesnika, ki ga prikazuje Slika 4.23.
4.8 Uporabniški vmesnik in poteki opravil
Pri gradnji uporabniškega vmesnika smo uporabili JSF strani in fragmente JSF strani.
Uporabniške vmesnike smo gradili s komponentami ADF Faces Rich Client. Najprej smo
oblikovali predlogo za vse JSF strani in predlogo za fragmente JSF strani. Z JSF stranmi smo
v nepovezanem poteku opravil določili globalno navigacijo med področji aplikacije.
Nepovezan potek opravil za aplikacijo EDC prikazuje Slika 4.10.
Slika 4.10: Nepovezan potek opravil za aplikacijo EDC
Razvoj aplikacij z ogrodjem Oracle ADF Stran 47
Primer globalne navigacije je povezava ''edcMain'', ki je določena v predlogi JSF strani, in v
aplikaciji predstavlja navigacijo na vstopno stran aplikacije. Naziv povezave ''edcMain'' je
uporabljen v navigacijski komponenti, kot prikazuje Koda 4.
Koda 4: Globalna navigacija v predlogi JSF strani
Za vsako področje aplikacije smo zgradili povezane poteke opravil, ki so sestavljeni iz
fragmentov JSF strani. Povezani poteki opravil se izvajajo znotraj JSF strani kot dinamična
regija. Primer povezanega poteka opravil za urejanje oziroma dodajanje oseb je prikazan na
Sliki 4.11.
Slika 4.11: Povezan potek opravil
Za rešitev dinamičnega izvajanja potekov opravil smo implementirali razred ''UIManager'', ki
vsebuje informacijo o povezanem poteku opravil, ki se trenutno izvaja. Razred ''UIManager''
smo v nepovezanem poteku opravil določili kot upravljavsko zrno, ki je na voljo celoten čas
trajanja seje spletnega brskalnika oziroma dokler se uporabnik ne odjavi iz aplikacije. Koda 5
prikazuje metapodatke za predlogo JSF strani in dinamično regijo JSF strani področja šifranti.
Razvoj aplikacij z ogrodjem Oracle ADF Stran 48
Koda 5: Metapodatki za JSF stran področja šifranti
4.8.1 Uporabniški vmesnik vstopne strani aplikacije
Vstopna stran aplikacije na Sliki 4.12 je izhodišče za navigacijo po področjih. Dostop do
posameznega področja je omogočen s povezavami znotraj področij in s povezavami, ki so v
orodni vrstici. Na vstopni strani so prikazani tudi podatki o trenutno prijavljenem uporabniku
in povezava za odjavo uporabnika iz aplikacije.
Slika 4.12: Vstopna stran aplikacije EDC
Razvoj aplikacij z ogrodjem Oracle ADF Stran 49
4.8.2 Uporabniški vmesnik za vnos prisotnosti
Na uporabniškem vmesniku za pregled prisotnosti, ki je prikazan na Sliki 4.13, se z izbiro
zaposlenega in določitvijo datumskih komponent omejijo podatki o prisotnosti. Zaradi
datumskih komponent lahko zelo natančno nastavimo časovni okvir za prikaz podatkov o
prisotnosti zaposlenega. Dodajamo lahko tudi novo prisotnost, na primer prisotnost, ki se
beleži kot delovni nalog.
Slika 4.13: Pregled prisotnosti
Izbrano prisotnost iz tabele, ki ima tip vpisa 'R' kot ročen vnos, lahko urejamo in brišemo. V
primeru urejanja in vnosa prisotnosti se odpre modalno okno, prikazano na Sliki 4.14.
Slika 4.14: Vmesnik za vnos in urejanje prisotnosti
Razvoj aplikacij z ogrodjem Oracle ADF Stran 50
V primeru brisanja prisotnosti se odpre modalno okno, v katerem potrdimo oziroma
prekličemo izbiro brisanja prisotnosti, prikazano na Sliki 4.15.
Slika 4.15: Potrditveno okno za brisanje prisotnosti
4.8.3 Uporabniški vmesnik za pregled mesečne prisotnosti
Slika 4.16 prikazuje uporabniški vmesnik za grafični prikaz prisotnosti za izbrano osebo in
mesec v letu. Poleg slikovne predstavitve mesečne prisotnosti so prikazani podatki za:
- trenutno mesečno prisotnost (v obliki ure:minute_sekunde),
- število porabljenega dopusta v tekočem letu,
- število dni bolniškega dopusta v tekočem letu,
- število dni preostalega dopusta,
- zahtevana mesečna prisotnost v urah,
- prekrivanja ročno vnesenih prisotnosti.
Pod zavihkom ''Prisotnosti'' je prikazan tabelarični pregled prisotnosti za izbrani mesec. Pod
zavihkom ''Letni dopust'' so prikazani podatki o tekočem letnem dopustu za izbrano osebo.
Natančnejši pregled prisotnosti je možen pod zavihkom ''Registracija'', kjer je še tabelarični
pregled vseh registracij za izbrano osebo in mesec. S povezavami je omogočen prehod na
uporabniške vmesnike ''Vnos prisotnosti'', ''Letna prisotnost'' in ''Trenutna prisotnost''.
Razvoj aplikacij z ogrodjem Oracle ADF Stran 51
Slika 4.16: Mesečni prikaz prisotnosti
4.8.4 Uporabniški vmesnik za pregled oseb
Na Sliki 4.17 je prikazan uporabniški vmesnik za pregled zaposlenih z možnostjo iskanja po
osebni številki, priimku in imenu zaposlenega. Rezultati iskanja so prikazani v tabelarični
Slika 4.17: Pregled podatkov o zaposlenih
Razvoj aplikacij z ogrodjem Oracle ADF Stran 52
obliki, ki vsebuje tudi podatke o letnem dopustu zaposlenega za tekoče leto in lastništvu
identifikacijskih medijev. Vnos novega zaposlenca in urejanje obstoječega omogoča modalno
okno, prikazano na Sliki 4.18. Vnosna polja, označena s simbolom ''*'' pomenijo obvezen vnos
podatka.
Slika 4.18: Urejanje zaposlenca
4.8.5 Uporabniški vmesnik za pregled letnih dopustov
Na Sliki 4.19 je prikazan uporabniški vmesnik za vnos, pregled in urejanje podatkov o letnem
dopustu zaposlenih. Nabor zaposlenih lahko omejimo z iskalnim kriterijem po osebni številki,
priimku in imenu. Omogočeno je tudi naprednejše iskanje, kjer lahko natančneje določimo
omejitvene kriterije. Med obema načinoma iskanja lahko poljubno preklapljamo. Omejen
nabor zaposlencev se prikaže v tabelarični obliki. Z izbiro enega izmed zaposlenih se v
spodnjem delu vmesnika prikažejo podatki o letnem dopustu zaposlenega za tekoče
koledarsko leto in zgodovina vseh letnih dopustov. Izbira letnega dopusta iz tabele omogoča
urejanje in brisanje podatkov.
Razvoj aplikacij z ogrodjem Oracle ADF Stran 53
Slika 4.19: Pregled in vnos letnih dopustov
4.8.6 Uporabniški vmesnik za šifrante
Na Sliki 4.20 je prikazan uporabniški vmesnik za pregled in vnos podatkov, ki v aplikaciji
predstavljajo različne vrste šifrantov. Nabor podatkov lahko v vseh šifrantih omejimo z
iskalnim kriterijem po šifri in nazivu. Omejen nabor podatkov je prikazan v tabelarični obliki.
Z izbiro enega izmed zapisov v tabeli se v spodnjem delu vmesnika, namenjenem za urejanje
in vnos, prikažejo podatki zapisa.
Uporabniški vmesniki za šifrante, ki imajo enako funkcionalnost kot na Sliki 4.20 prikazan
primer za šifrant IM, so:
- kontrolne točke,
- kategorije,
- parametri,
- prostori in
- dela prosti dnevi.
Razvoj aplikacij z ogrodjem Oracle ADF Stran 54
Slika 4.20: Uporabniški vmesnik za pregled in urejanje šifranta IM
Na voljo so še uporabniški vmesnik za letni pregled prisotnosti, ki je namenjen za grafični
prikaz celoletne prisotnosti za zaposlenega po posameznih mesecih in uporabniški vmesnik za
trenutni pregled prisotnosti, ki je namenjen za grafični prikaz trenutne prisotnosti za
zaposlenega. Za izbranega zaposlenega se prikaže informacija o trenutni lokaciji zaposlenega
v poslovni stavbi.
4.8.7 Uporabniški vmesnik za mesečni izpis prisotnosti
Na uporabniškem vmesniku za mesečni izpis prisotnosti je možen izpis prisotnosti za
posameznega zaposlenega za izbran mesec ali za vse zaposlene za izbran mesec. Izpis je lahko
omejen samo na prisotnosti, ki so bile zabeležene med vikendom, torej v soboto in nedeljo. Na
osnovi kreirane XML datoteke in transformacijske XSLT datoteke je del datoteke viden v
Kodi 6; metoda Apache FOP procesorja zgradi PDF dokument, ki ga lahko shranimo oziroma
odpremo, kot prikazuje Slika 4.21.
Razvoj aplikacij z ogrodjem Oracle ADF Stran 55
Koda 6: Del kode XSLT datoteke za mesečni izpis prisotnosti
Slika 4.21: Uporabniški vmesnik za mesečni izpis prisotnosti
Del kreiranega izpisa je viden na Sliki 4.22.
Razvoj aplikacij z ogrodjem Oracle ADF Stran 56
Slika 4.22: Izpis mesečne prisotnosti
4.8.8 Uporabniški vmesnik za nadzor sistema
Na Sliki 4.23 je prikazan uporabniški vmesnik, s katerim se nadzira delovanje sistema za
zajem in obdelavo podatkov. Za vsakega izmed njiju je možno določiti, v kakšnem časovnem
intervalu se izvajata. Proces zajema in obdelave podatkov lahko tudi ustavimo in ponovno
poženemo.
Slika 4.23: Zajem in obdelava podatkov
Razvoj aplikacij z ogrodjem Oracle ADF Stran 57
4.9 Varnost aplikacije
Uporaba aplikacije EDC je namenjena uporabi različnih uporabnikov, ki imajo različne vloge.
Da bi preprečili nepooblaščene dostope, smo aplikaciji dodali varnostne elemente.
Dodajanje varnosti aplikaciji je potekalo po naslednjih korakih:
- s pomočjo vodnika smo z orodjem JDeveloper kreirali nastavitveno datoteko
jazn-data.xml, pri tem so se dopolnile datoteke web.xml, weblogic.xml, jps-config.xml
in adf-config.xml.
- v datoteki jazn-data.xml smo s pomočjo vizualnega urejevalnika kreirali aplikacijske
vloge direktor, tajnica, skrbnik in zaposleni.
- za potrebe ujemanja aplikacijskih vlog z uporabniškimi vlogami smo določili
uporabniške vloge cs_direktor, cs_tajnica, cs_skrbnik in cs_zaposleni.
- za vsako uporabniško vlogo smo kreirali enega uporabnika. Primer dodanega
uporabnika uross vlogi cs_skrbnik prikazuje Slika 4.24.
Slika 4.24: Dodajanje uporabnika vlogi
- aplikacijskim vlogam smo določili uporabniško vlogo, npr. aplikacijski vlogi zaposleni
smo dodelili vse uporabniške vloge (cs_direktor, cs_tajnica, cs_skrbnik, cs_zaposleni),
kar pomeni, da je uporabniška vloga cs_tajnica avtorizirana tudi za vlogo cs_zaposleni.
Navedeni primer je prikazan na Sliki 4.25.
Razvoj aplikacij z ogrodjem Oracle ADF Stran 58
Slika 4.25: Dodelitev uporabniških vlog aplikacijski vlogi ''zaposleni''
- dostope do JSF strani smo omejili z dodelitvijo aplikacijskih vlog posamezni JSF
strani.
- dostope do potekov opravil smo omejili z dodelitvijo aplikacijskih vlog posameznemu
poteku opravila. Primer dodelitve dostopa do poteka opravila tf-IM, ki dovoljuje
dostop uporabnikom z aplikacijsko vlogo skrbnik in tajnica, je prikazan na Sliki 4.26.
Slika 4.26: Dodelitev dostopa poteku opravila ''tf-IM''
- na koncu smo omejili še prikaz komponent na uporabniških vmesnikih. Primer
omejitve prikaza komponente ''panelBox'' je prikazan v Kodi 7, kjer se na vstopni
strani aplikacije komponenta ''panelBox'' prikaže samo uporabnikom, ki imajo
dovoljen dostop do poteka opravil ''tf-izpisi''.
Razvoj aplikacij z ogrodjem Oracle ADF Stran 59
Koda 7: Omejitev prikaza komponente ''panelBox''
Za prijavo uporabnika v aplikacijo smo v predlogi JSF strani zgradili vmesnik za vpis
uporabniškega imena in gesla, ki je prikazan na Sliki 4.27, in kreirali upravljavsko zrno, ki
skrbi za prijavo/odjavo uporabnika v aplikacijo EDC in iz nje.
Slika 4.27: Modalno okno za prijavo v aplikacijo
Rezultat dodajanja varnosti aplikacije je viden na Sliki 4.28, kjer je na levi strani slike
prikazana vstopna stran za uporabnika z aplikacijsko vlogo ''TAJNICA'' in na desni strani slike
vstopna stran uporabnika z aplikacijsko vlogo ''ZAPOSLENI''.
Slika 4.28: Vstopna stran aplikacije za aplikacijsko vlogo ''ZAPOSLENI'' in ''TAJNICA''
Razvoj aplikacij z ogrodjem Oracle ADF Stran 60
5 SKLEP
V diplomski nalogi smo se osredotočili na izbiro razvojnega ogrodja za razvoj bogatih spletnih
aplikacij v okolju Java EE. Odkrili smo, da za razvoj aplikacij v programskem jeziku Java
obstaja veliko razvojnih ogrodij. Izbira ogrodja, ki najbolje ustreza razvojni strategiji podjetja,
je zelo pomembna odločitev. Napačna odločitev lahko privede do velikih finančnih stroškov,
ki lahko nastanejo z menjavo razvojnega ogrodja ali celo z izbiro druge razvojne platforme.
Analizirali smo različne tipe aplikacij in tipe razvojnih ogrodij ter poskušali določiti
značilnosti ogrodij, ki pomembno vplivajo na izbiro pravilnega ogrodja. Ugotovili smo, da je
izbira ustreznega ogrodja zelo odvisna od tipa projekta in tudi izkušenj ekipe, ki je predvidena
za uspešno realizacijo.
Spoznali smo razvoj aplikacij z razvojnim ogrodjem Oracle ADF, ki je sestavni del razvojnega
okolja Oracle JDeveloper 11g. Ogrodje ponuja možnost gradnje aplikacije od načrtovanja
(gradnje UML diagramov) do namestitve na aplikacijski strežnik (s pomočjo vodenega
čarovnika je možna namestitev aplikacije iz orodja JDeveloper). Ogrodje ponuja veliko že
vnaprej pripravljenih predlog za razvoj aplikacij, s katerimi prihranimo čas za postavljanje
programske arhitekture in se lahko osredotočimo na razvoj aplikacij. ADF poslovne
komponente, ki po vzorcu MVC predstavljajo model, omogočajo visok nivo avtomatizirane
gradnje poslovne logike, ki je neodvisna od tehnologije predstavitvenega nivoja. Z diagramov
poslovnih komponent lahko na deklarativen način urejamo, dodajmo nove poslovne
komponente in iz njih avtomatsko kreiramo bazne objekte. Ogrodje podpira tudi gradnjo
preprostih javanskih objektov, ki jih izpostavimo kot podatkovne kontrole in jih pri gradnji
predstavitvenega nivoja uporabljamo na enak način kot ADF poslovne komponente.
Velika prednost ogrodja ADF je enostavna gradnja uporabniških vmesnikov s pripravljenimi
ADF RC komponentami. Komponente so glede na funkcionalnost smiselno razdeljene v
skupine. Opazimo lahko podobnost posameznih komponent, tako imensko kot namensko, s
tehnologijo Swing. Uporabniški vmesniki omogočajo visoko stopnjo interaktivnosti, ki se
lahko primerja z namiznimi aplikacijami.
Razvoj aplikacij z ogrodjem Oracle ADF Stran 61
Ena izmed pomembnih lastnosti, v ogrodju ADF je nadgradnja JSF navigacijskega modela, ki
vpeljuje nov način gradnje spletnih aplikacij. JSF strani so postale vsebnik, v katerem se
dinamično izvajajo povezani poteki opravil, ki so lahko sestavljeni iz fragmentov JSF strani,
kar omogoča njihovo delno osveževanje. Ogrodje ADF omogoča tudi voden čarovnik za
dodajanje varnosti aplikaciji, kjer lahko določimo uporabnike, dodelimo vloge in na nivoju
potekov opravil nastavimo omejitve vlog.
Razvojno ogrodje Oracle ADF je zelo dobro integrirano z orodjem JDeveloper in omogoča
hitrejši in enostavnejši razvoj uporabniško bogatejših spletnih aplikacij za velika podjetja na
zelo visokem nivoju abstrakcije. Ogrodje se je pri gradnji aplikacije EDC izkazalo za
primerno, a je zaradi vseh možnosti, ki jih ponuja, zelo kompleksno. Podjetje Oracle za učenje
razvoja aplikacij z ogrodjem Oracle ADF ponuja veliko vodičev s preprostimi in z
naprednejšimi primeri aplikacij kot tudi knjige iz lastne založbe Oracle Press in tečaje. Pri
razvoju aplikacij pa je lahko v pomoč tudi zelo aktiven spletni forum, namenjen izključno za
razvoj aplikacij z ogrodjem ADF in orodjem JDeveloper. Že samo dejstvo, da Oracle
uporablja ogrodje ADF za razvoj lastnih informacijskih rešitev, je lahko zadosten razlog za
poglobljen premislek o njegovi uporabi. Želja po učenju in spoznavanju novih tehnologij pa je
ključni faktor, s katerim premikamo meje lastne ustvarjalnosti in iznajdljivosti.
Razvoj aplikacij z ogrodjem Oracle ADF Stran 62
6 LITERATURA, VIRI
[1] C. Schalk, E. Burns, J. Holmes, JavaServer Faces: The Complete Reference,
McGraw – Hill, 2007.
[2] The Java EE 6 Tutorial, http://download.oracle.com/javaee/6/tutorial/doc/
(obiskano dne 01.02.2011)
[3] D. Nimphius, L. Munsinger, Oracle Fusion Developer Guide: Building Rich Internet
Applications with Oracle ADF Business Components and Oracle ADF Faces,
Oracle Press, 2010.
[4] Oracle application development framework overview,
http://www.oracle.com/technetwork/developer-tools/adf/adf-11-overview-1-
129504.pdf (obiskano dne 09.02.2011)
[5] Razvoj spletnih aplikacij z uporabo programskega ogrodja JCorporate Expresso,
http://164.8.251.136:8080/lp/pages/sl/publics/kiblix/kiblix03.pdf
(obiskano dne 11.02.2011)
[6] Java API, http://www.roseindia.net/java/javaapi/java-api.shtml
(obiskano dne 11.02.2011)
[7] Documentation for the Core Java APIs and Popular JavaScript and Ajax Libraries,
http://www.apl.jhu.edu/~hall/java/Documentation.html (obiskano dne 11.02.2011)
[8] G. Williams, L. Munsinger, P. Daux, Oracle University: JDeveloper 10g:
Build Applications with ADF, Oracle, 2004.
[9] E. Meklav, Analiza Oracle portala in razvoj spletne aplikacije na osnovi
ADF komponent (Diplomsko delo), Maribor, 2010, str. 22 - 29.
[10] G. Polančič, Zviševanje ponovne uporabe pri razvoju spletnih aplikacij z
uporabo programskega ogrodja (Individualno raziskovalno delo pri podiplomskem
predmetu Ponovna uporaba pri razvoju informacijskih sistemov),
Maribor, 2003, str. 10 - 20.
[11] Fusion Middleware Fusion Developer's Guide for Oracle Application Development
Razvoj aplikacij z ogrodjem Oracle ADF Stran 63
Framework,
http://download.oracle.com/docs/cd/E12839_01/web.1111/b31974/toc.htm
(obiskano dne 16.02.2011)
[12] D. Mills, P. Koletzke, A. Roy – Faderman, Oracle JDeveloper 11g
Handbook: A Guide to Fusion Web Development, Oracle Press, 2009.
[13] Introduction to Oracle's ADF Faces Rich Client Framework,
http://java.dzone.com/news/introduction-oracles-adf-
faces&default=false&zid=159&browser=16&mid=0&refresh=0
(obiskano dne 01.03.2011)
[14] JavaBean, http://en.wikipedia.org/wiki/JavaBean (obiskano dne 09.03.2011)
[15] L. Pavlič, Poenostavitve v Java EE, v M. Heričko v A. Živkovič, 12. konferenca
OTS' 2007 Sodobne tehnologije in storitve, Maribor 13. – 14. junija 2007, Maribor:
Center odličnosti za sodobne informacijske tehnologije in storitve, 2007, str. 55 – 65.
[16] Java Virtual Machine, http://en.wikipedia.org/wiki/Java_Virtual_Machine
(obiskano dne 01.02.2011)
[17] Frameworks, http://www.roseindia.net/frameworks/ (obiskano dne 22.03.2011)
[18] Comparing JVM Web Frameworks,
http://www.devoxx.com/display/Devoxx2K10/Comparing+JVM+Web+Frameworks
(obiskano dne 28.03.2011)
[19] Wikipedija:Uvod, http://sl.wikipedia.org/wiki/Wikipedija:Uvod
(obiskano dne 24.04.2011)
[20] Comparison of Web application frameworks: Java,
http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks#Java_2
(obiskano dne 24.04.2011)
[21] Choosing the Right Java Web Development Framework,
http://olex.openlogic.com/wazi/2010/choosing-the-right-java-web-development-
framework/ (obiskano dne 10.05.2011)
[22] Licenses, http://www.apache.org/licenses/ (obiskano dne 30.05.2011)
[23] D. Kreft, Razvoj spletnih aplikacij z uporabo odprto kodnega ogrodja Seagull
(Diplomsko delo), Maribor, 2011, str. 25 - 28.
Razvoj aplikacij z ogrodjem Oracle ADF Stran 64
7 PRILOGE
7.1 Seznam slik
Slika 2.1: Pregled dveh več nivojskih Java EE aplikacij 10
Slika 2.2: Vzorec MVC 11
Slika 3.1: Arhitektura Oracle Fusion komponent 14
Slika 3.2: Model ADF poslovnih komponent 16
Slika 3.3: Vodič za kreiranje pogledne povezave 20
Slika 3.4: Samostojna Swing aplikacija za testiranje podatkovnega modela 22
Slika 3.5: Arhitektura ADF Modela z JSF, ADF potekom opravil in ADF BC 25
Slika 3.6: Okno v JDeveloperju, ki prikazuje kontrolne zbirke podatkov 26
Slika 3.7: Seznam komponent, pripravljenih za gradnjo JSF strani 29
Slika 3.8: Potek opravil za primer uporabe pregleda in dodajanja oseb 31
Slika 4.1: Diagram akterjev v aplikaciji EDC 35
Slika 4.2: Diagram primera uporabe za pregled in vnos prisotnosti 35
Slika 4.3: Diagram primera uporabe za vnašanje, spreminjanje šifrantov ter zajem podatkov 36
Slika 4.4: Logični model aplikacije EDC 39
Slika 4.5: Podatkovni model aplikacije EDC 40
Slika 4.6: Diagram poslovnih komponent 41
Slika 4.7: Urejanje poglednega kriterija 42
Slika 4.8: Podatkovni model za aplikacijski modul PrisAppModule 44
Slika 4.9: Podatkovne kontrole za aplikacijo EDC 44
Slika 4.10: Nepovezan potek opravil 46
Slika 4.11: Povezan potek opravil 47
Slika 4.12: Vstopna stran aplikacije EDC 48
Slika 4.13: Pregled prisotnosti 49
Slika 4.14: Vmesnik za vnos in urejanje prisotnosti 49
Slika 4.15: Potrditveno okno za brisanje prisotnosti 50
Razvoj aplikacij z ogrodjem Oracle ADF Stran 65
Slika 4.16: Mesečni prikaz prisotnosti 51
Slika 4.17: Pregled podatkov o zaposlenih 51
Slika 4.18: Urejanje zaposlenca 52
Slika 4.19: Pregled in vnos letnih dopustov 53
Slika 4.20: Uporabniški vmesnik za pregled in urejanje šifranta IM 54
Slika 4.21: Uporabniški vmesnik za mesečni izpis prisotnosti 55
Slika 4.22: Izpis mesečne prisotnosti 56
Slika 4.23: Zajem in obdelava podatkov 56
Slika 4.24: Dodajanje uporabnika vlogi 57
Slika 4.25: Dodelitev uporabniških vlog aplikacijski vlogi ''zaposleni'' 58
Slika 4.26: Dodelitev dostopa poteku opravila ''tf-IM'' 58
Slika 4.27: Modalno okno za prijavo v aplikacijo 59
Slika 4.28: Vstopna stran aplikacije za aplikacijsko vlogo ''ZAPOSLENI'' in ''TAJNICA'' 59
7.2 Seznam tabel in kod
Tabela 2.1: Število ogrodij glede na implementacijski jezik ......................................................6
Tabela 2.2: Seznam ogrodij za razvoj spletnih aplikacij v Javi...................................................7
Tabela 3.1: Kolone v tabeli in pripadajoči podatkovni tipi .......................................................17
Tabela 3.2: Definicije atributov entitetnega objekta .................................................................17
Tabela 3.3: Predstavitev vrstice podatkov z vrednostmi entitetnih atributov............................18
Tabela 4.1: Primer scenarija za izbor osebe ..............................................................................37
Koda 1: Nastavitev privzete vizualne predloge ADF Faces RC komponent………………….28
Koda 2: Primer gradnje JSF strani s programsko kodo.............................................................30
Koda 3: Implementacija poglednega objekta ''DaNeView'' ......................................................43
Koda 4: Globalna navigacija v predlogi JSF strani ...................................................................47
Koda 5: Metapodatki za JSF stran področja šifranti .................................................................48
Koda 6: Del kode XSLT datoteke za mesečni izpis prisotnosti ................................................55
Koda 7: Omejitev prikaza komponente ''panelBox''..................................................................59