80
Uroš Šantelj RAZVOJ APLIKACIJ Z OGRODJEM ORACLE ADF Diplomsko delo Maribor, junij 2011

RAZVOJ APLIKACIJ Z OGRODJEM ORACLE ADF · environment. This is continued with investigating Oracle ADF (Application Development Framework) and describing its characteristics. The

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Uroš Šantelj

RAZVOJ APLIKACIJ Z OGRODJEM ORACLE ADF

Diplomsko delo

Maribor, junij 2011

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

II

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

Razvoj aplikacij z ogrodjem Oracle ADF Stran 66

Razvoj aplikacij z ogrodjem Oracle ADF Stran 67

Razvoj aplikacij z ogrodjem Oracle ADF Stran 68