razvoj informacijske reŠitve za · podaja smernice za širok spekter uporabnikov: poslovno...
TRANSCRIPT
Fakulteta za elektrotehniko, računalništvo in informatiko
Smetanova ulica 17 2000 Maribor, Slovenija
Lidija Vincekovič
RAZVOJ INFORMACIJSKE REŠITVE ZA
PODPORO COBIT-OVIM ZOPS MATRIKAM
Diplomsko delo
Maribor, avgust 2013
RAZVOJ INFORMACIJSKE REŠITVE ZA PODPORO
COBIT-OVIM ZOPS MATRIKAM
Diplomsko delo
Študentka: Lidija Vincekovič
Študijski program: Univerzitetni študijski program
Informatika in tehnologije komuniciranja
Smer: Informacijski sistemi
Mentor: doc. dr. Gregor Polančič
Somentorica: asist. Katja Kous
Lektorica: Andreja Vinko, prof. slovenščine in sociologije
i
ii
Zahvala
Zahvaljujem se mentorju doc. dr. Gregorju
Polančiču in somentorici asistentki Katji Kous
za usmerjanje pri pisanju diplomskega dela.
Prav tako se zahvaljujem mami, bratu in
svojemu fantu za podporo med celotnim
študijem in med pisanjem diplomskega dela.
iii
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
Ključne besede: COBIT, razvoj informacijske rešitve, ZOPS matrika, upravljanje IT
UDK: 659.2:004(043.2)
Povzetek
V diplomskem delu smo predstavili procesno usmerjen okvir za upravljanje informatike
COBIT, natančneje različici 4.1 in 5. Podrobneje smo se osredotočili na t.i. ZOPS matrike,
ki so sestavni del tega okvirja in prikazujejo organizacijski okvir posameznega procesa
COBIT-a. Z matriko so določene vloge, ki so za posamezne aktivnosti v procesu
zadolžene, odgovorne, posvetovane in seznanjene. Ker je teh matrik v obeh različicah
skupno 71, smo z namenom lažje preglednosti razvili informacijsko rešitev, ki na
enostaven način omogoča pregled matrik in omogoča različne funkcionalnosti kot podporo
poslovanju ob uporabi teh matrik.
iv
Development of an IT solution for COBIT RACI charts support
Key words: COBIT, development of an IT solution, RACI chart, IT governance
UDK: 659.2:004(043.2)
Abstract
In this diploma we presented a process-oriented framework for management of
information technology COBIT. We oriented especially on two last versions, 4.1 and 5.
The main topic of this diploma is RACI chart, which is a matrix of all the activities and
roles. Roles are assigned to being responsible, accountable, consulted or informed for
that activity. There are a total of 71 charts in both versions, so we developed an IT
solution that provides an overview of charts in an easy way and allows a variety of
functionality to support business processes.
v
KAZALO
1 UVOD .............................................................................................................. 1
2 COBIT .............................................................................................................. 3
2.1 COBIT 4.1 .............................................................................................................................. 4
2.2 COBIT 5 ................................................................................................................................. 6
2.3 Osnovne razlike in podobnosti med COBIT-om 4.1 in COBIT-om 5 ............................... 8
3 MATRIKA ZOPS ........................................................................................... 10
3.1 Primerjava matrik po COBIT-u 4.1 in COBIT-u 5 ............................................................. 10
4 RAZVOJ INFORMACIJSKEGA SISTEMA ................................................... 14
4.1 Načrt razvoja ....................................................................................................................... 14
4.2 Potek razvoja ...................................................................................................................... 17
4.3 Končni produkt ................................................................................................................... 22
5 SKLEP ........................................................................................................... 32
6 VIRI IN LITERATURA ................................................................................... 34
vi
KAZALO SLIK
SLIKA 1: RAZVOJ COBIT-A ........................................................................................ 4
SLIKA 2: TEMELJNO NAČELO COBIT-A 4.1 [10] ........................................................... 4
SLIKA 3: UPRAVLJANJE VIROV IT ZA URESNIČEVANJE CILJEV IT [10] .............................. 5
SLIKA 4: V DOMENE KATEGORIZIRANI PROCESI PO COBIT-U 4.1 [10] ............................ 6
SLIKA 5: TEMELJNA NAČELA COBIT-A 5 [8]................................................................. 7
SLIKA 6: V DOMENE KATEGORIZIRANI PROCESI PO COBIT-U 5 [8] ................................. 8
SLIKA 7: MATRIKA ZOPS V COBIT-U 4.1 (PROCES DS1 - OPREDELITE IN UPRAVLJAJTE
RAVNI STORITEV) ...................................................................................... 12
SLIKA 8: MATRIKA ZOPS V COBIT-U 5 (PROCES DSS1 - UPRAVLJAJTE DELOVANJE) .. 13
SLIKA 9: MODEL PRIMEROV UPORABE ....................................................................... 15
SLIKA 10: E-R DIAGRAM .......................................................................................... 16
SLIKA 11: PAKET SI.UNI.DIPLOMA.ENTITETE ............................................................... 17
SLIKA 12: PAKET SI.UNI.DIPLOMA.BAZA ..................................................................... 18
SLIKA 13: PAKET SI.UNI.DIPLOMA.JSF ....................................................................... 19
SLIKA 14: V PROJEKT IMPLEMENTIRANE KNJIŽNICE ..................................................... 21
SLIKA 15: STRAN SPLOŠNO O COBIT-U ................................................................... 22
SLIKA 16: PRIJAVNA STRAN ..................................................................................... 23
SLIKA 17: STRAN RAZLIČICE COBIT-A ..................................................................... 23
SLIKA 18: STRAN RAZLIČICE COBIT-A Z IZBRANO RAZLIČICO ..................................... 24
SLIKA 19: IZBIRANJE DOMENE NA STRANI DOMENA ..................................................... 24
SLIKA 20: STRAN DOMENA Z IZBRANO DOMENO ......................................................... 25
SLIKA 21: IZBIRA PROCESA ...................................................................................... 26
SLIKA 22: PRIKAZ IZBRANEGA PROCESA NA STRANI PROCES ....................................... 26
SLIKA 23: SEZNAM VLOG V MATRIKI PRI PROCESU IZ COBIT-A 4.1 JE DRUGAČEN KOT PRI
MATRIKI IZ COBIT-A 5 .............................................................................. 27
SLIKA 24: STRAN AKTIVNOST PRIKAZUJE IZBRANO AKTIVNOST; MOŽNOST DODAJANJA
OPOMB JE OMOGOČENA ............................................................................ 28
SLIKA 25: UPORABNIKI, KI V AKTIVNOSTI NE SODELUJEJO, LAHKO OPOMBE SAMO
PREGLEDUJEJO ........................................................................................ 28
vii
SLIKA 26: UPORABNIK, KI ZA AKTIVNOST NI ODGOVOREN, NE MORE SPREMINJATI STANJA
.............................................................................................................. 28
SLIKA 27: SPREMINJANJE STANJA............................................................................. 29
SLIKA 28: PRIKAZ IZBRANE VLOGE NA STRANI VLOGA ................................................. 29
SLIKA 29: PREGLED UPORABNIKA NA STRANI UPORABNIK ........................................... 30
SLIKA 30: ADMINISTRATOR LAHKO NA STRANI UPORABNIKA LE-TEMU DODAJA ALI ODVZEMA
VLOGE ..................................................................................................... 30
SLIKA 31: OBRAZEC ZA VNOS NOVEGA UPORABNIKA .................................................. 31
SLIKA 32: ORGANIZACIJA VSEH JSP STRANI ............................................................... 53
KAZALO TABEL
TABELA 1: SEZNAM VLOG V OBEH RAZLIČICAH COBIT-A ............................................. 11
TABELA 2 : RAZDELITEV VLOG NA UPRAVLJALSKE IN VODSTVENE PO COBIT-U 5 .......... 12
KAZALO PRILOG
PRILOGA A .......................................................................................................... 36
PRILOGA B .......................................................................................................... 37
PRILOGA C .......................................................................................................... 38
PRILOGA D .......................................................................................................... 42
PRILOGA E .......................................................................................................... 44
PRILOGA F .......................................................................................................... 46
PRILOGA G .......................................................................................................... 50
PRILOGA H .......................................................................................................... 51
PRILOGA I ............................................................................................................ 52
PRILOGA J ........................................................................................................... 53
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
1
1 UVOD
Učinkovita podpora poslovnim procesom je ključ do povečanja uspešnosti, vrednosti in
konkurenčnosti organizacije. Eden od bolj uveljavljenih okvirjev za korporativno
upravljanje informatike je COBIT (angl. Control Objectives in IT and related Technology, v
nadaljevanju COBIT). Okvir se povezuje in je skladen z mednarodnimi standardi. To je
sistem kontrolnih ciljev, ki se povezujejo s cilji organizacije in so pri tem usmerjeni v
upravljanje tveganj ter v upravljanje in kontrolo IT procesov.
ZOPS matrika (kratica ZOPS pomeni zadolžen, odgovoren, posvetovan, seznanjen) je
sestavni del obeh omenjenih različic COBIT-a in prikazuje organizacijski okvir procesa. V
matriki je določeno, kdo je za aktivnosti v procesu zadolžen, odgovoren, posvetovan in
kdo seznanjen glede na svojo vlogo v podjetju oziroma organizaciji.
Za lažji pregled aktivnosti oziroma dobrih praks glede na posamezne procese, domene,
vloge in vrsto sodelovanja ter različico COBIT-a smo se odločili razviti informacijski sistem
za podporo ZOPS matrikam kot del podpore učinkovitemu vodenju poslovnih procesov.
Cilji diplomskega dela so:
• osnovna predstavitev COBIT-a 4.1 in COBIT-a 5 ter njunih glavnih podobnosti
in razlik;
• podrobnejša predstavitev strukture in vsebine ZOPS matrik;
• razviti informacijski sistem za podporo ZOPS matrikam, ki bo podpiral različici
4.1 in 5;
• razviti informacijski sistem, ki bo omogočal pregled vseh matrik, določanje vlog
uporabnikom, filtriranje pogleda glede na procese, vloge, vrste sodelovanja,
uporabnike, različico ter omogočal beleženje opomb in stanj.
Pri razvoju informacijskega sistema v sklopu diplomskega dela se bomo omejili na matrike
iz domene Izvajajte in podpirajte (angl. Deliver and Support, DS) v različici COBIT 4.1, za
podporo različici COBIT 5 pa na matrike iz domene Izvajajte, zagotavljajte storitve in
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
2
podpirajte (angl. Deliver, Service and Support, DSS). Zajeli bomo samo vloge, ki jih
definirata posamezni različici COBIT-a v domenah DS in DSS. Informacijski sistem bo
spletna aplikacija, ki jo bomo razvijali v programskem jeziku Java.
Diplomsko delo je sestavljeno iz teoretičnega in praktičnega dela. V teoretičnem delu
predstavimo COBIT na splošno, različici 4.1 in 5 ter kratko primerjavo med njima. Nato se
osredotočamo na ZOPS matrike. Najprej jih predstavimo na splošno, nato podamo še
razlike med ZOPS matrikami po COBIT-u 4.1 in matrikami v novejši različici, COBIT-u 5.
V nadaljevanju sledi predstavitev praktičnega dela diplomskega dela. Razložimo in s
slikovnim gradivom prikažemo načrtovanje informacijske rešitve, razvoj le-te in končni
izgled rešitve za podporo COBIT-ovim ZOPS matrikam. Delo zaključimo s sklepom. Na
koncu dodajamo še priloge, ki so večinoma izpisi programske kode.
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
3
2 COBIT
Kontrolni cilji za informacijsko in sorodno tehnologijo (angl. Control Objectives in IT and
related Technology, v nadaljevanju COBIT) opisujejo dobre prakse upravljanja informatike
oziroma celotne domene in procesnega okvirja ter predstavljajo aktivnosti na logičen in
obvladljiv način. Je mednarodno sprejet procesno usmerjen okvir za vodenje informatike
in se povezuje ter je kompatibilen z mednarodnimi standardi [4] [16].
Ta okvir zagotavlja, da je IT usklajena s poslovanjem, ga podpira ter s tem poveča
dobiček in odgovorno uporabo sredstev ter ustrezno upravlja IT tveganja, saj je sestavljen
iz jasno opredeljenih ciljev. Ti cilji se povezujejo s cilji organizacije, zaradi česar COBIT
podaja smernice za širok spekter uporabnikov: poslovno vodstvo, vodstvo informatike,
ostale zaposlene, revizorje, svetovalce in druge. Njegova usmeritev je osredotočena bolj
kot na kontrolo na izvajanje, kar pomeni, da podaja zgolj smernice kaj storiti, ne
predpisuje pa, kako to storiti. Prakse naj bi bile v pomoč pri optimiziranju investicij s
komponento IT, pri zagotavljanju storitev IT ter pri presojanju v primerih, ko gre kaj narobe
[10].
COBIT je bil prvotno namenjen revizorjem, potem pa se je pod okriljem organizacije
ISACA (angl. Information Systems Audit and Control Association) vedno bolj razvijal kot
okvir za pomoč pri vodenju informatike v podjetju. Prva različica COBIT-a je bila izdana že
leta 1996, zadnja – peta – pa leta 2012. Leta 2007 je ISACA izdala COBIT 4.1, leta 2012
pa COBIT 5 [4]. Razvoj COBIT-a prikazuje slika 1.
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
4
Slika 1: Razvoj COBIT-a [2]
2.1 COBIT 4.1
COBIT 4.1 je osredotočen na poslovanje; usmerjen je na procese in temelji na kontrolah
ter je voden z meritvami. Slika 2 predstavlja temeljno načelo te različice COBIT-a: podjetje
mora vlagati, upravljati in nadzorovati vire IT s pomočjo procesov, da lahko zagotovi
storitve, ki dajejo informacije, potrebne za uresničitev poslovnih ciljev [10].
Slika 2: Temeljno načelo COBIT-a 4.1 [10]
V sklopu tega procesnega modela so opredeljeni viri, ki so bistveni za uspešnost
procesov: aplikacije, informacije, infrastruktura in ljudje. Te vire je potrebno učinkovito
upravljati s sklopom procesov, razdeljenih v logične sklope oziroma domene, z namenom
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
5
zagotavljanja informacij, ki jih podjetje potrebuje za doseganje svojih ciljev. Shema
upravljanja virov It za uresničevanje ciljev IT je prikazana na sliki 3 [10].
Slika 3: Upravljanje virov IT za uresničevanje ciljev IT [10]
COBIT 4.1 opredeljuje 17 poslovnih ciljev in 28 IT ciljev, ki podpirajo vsaj enega ali več
poslovnih ciljev [18]. Povezava med temi cilji je pojasnjena tudi preko informacijskih
kriterijev (podatki, ki jih proizvaja IT, morajo zadostiti kriterijem uspešnosti, učinkovitosti,
zaupnosti, celovitosti, razpoložljivosti, skladnosti in zanesljivosti) [4].
Informacijska tehnologija je po COBIT-u 4.1 razdeljena v 4 domene in 34 procesov v
skladu s področji odgovornosti načrtovanja, gradnje, delovanja in spremljanja, kar
omogoča celovit pogled na IT. Za vsak proces so definirani kontrolni cilji in matrike, ki
omogočajo učinkovit nadzor nad delovanjem procesov [9].
Domene po COBIT-u 4.1 so [10]:
• Načrtujte in organizirajte (PO, angl. Plan and Organise);
• Nabavite in vpeljite (AI, angl. Acquire and Implement);
• Izvajajte in podpirajte (DS, angl Delivery and Support);
• Spremljajte in vrednotite (ME, Monitor and Evaluate).
Procesi znotraj zgoraj naštetih domen so prikazani na sliki 4.
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
6
Slika 4: V domene kategorizirani procesi po COBIT-u 4.1 [10]
Okvir vsebuje kontrolne cilje (to so visoko nivojske zahteve, pomembne za vodstvo, za
učinkovito kontrolo nad posameznim procesom), smernice upravljanja in zrelostne modele
(ti pomagajo pri določitvi odgovornosti, merijo delovanje ter ocenijo stanje in zmogljivosti)
[9].
2.2 COBIT 5
Aktualna različica COBIT-a določa celovit okvir, ki pomaga podjetjem pri doseganju
njihovih ciljev. Z ohranjanjem ravnovesja med pridobivanjem koristi in obvladovanjem
tveganj ter optimizacijo virov jim pomaga pridobiti konkurenčno prednost. Zasnovan je
tako, da v celoti zajema poslovanje in omogoča vodenje ter upravljanje IT na celovit način,
saj zajema vodenje in upravljanje informatike iz perspektive vodstva podjetja ter integrira
upravljanje informatike v upravljanje celotnega podjetja ([6], [13]).
Od svojega predhodnika se precej razlikuje že po svojih temeljnih petih načelih. Shema
teh načel je prikazana na sliki 5. Definira 17 najpomembnejših poslovnih in IT ciljev ter jih
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
7
medsebojno poveže. Eden glavnih poslovnih ciljev v podjetju je ustvarjanje vrednosti [6].
Prepoznati je treba potrebe vseh zainteresiranih strani in oceniti koristi ter tveganja.
Omenjene potrebe je potrebno pretvoriti v strategijo podjetja, postaviti kaskadni sistem
ciljev in cilje primerno razvrstiti po pomembnosti ([8], [2]).
Slika 5: Temeljna načela COBIT-a 5 [8]
Poleg elementov COBIT-a 4.1 vsebuje COBIT 5 tudi druge smernice za pomoč pri
vodenju informatike, kot sta Val IT1 in Risk IT2. Povezuje se še z drugimi standardi in
okvirji, kot so ITIL, TOGAF in ISO standardi, kar omogoča podjetjem, da ga uporabijo za
glavni krovni okvir pri vodenju informatike ([1], [8]).
COBIT 5 popolnoma ločuje procese upravljanja in vodenja informatike. Področje vodenja
zajema načrtovanje, izgradnjo, izvajanje in spremljanje aktivnosti v skladu s smernicami,
ki jih je postavila uprava podjetja ([8], [7]). Upravljalski procesi v COBIT-u 5 so v svoji
domeni, ki pa je prejšnja različica ne pozna. To je domena Ovrednotite, usmerjajte in
spremljajte, katere procesi so definirani v skladu s standardom ISO/IEC 385003 ([8],
[12]). COBIT 5 ima tako 5 domen, v katere je kategoriziranih 37 procesov.
Domene po COBIT-u 5 so [8]:
• Ovrednotite, usmerjajte in spremljajte (EDM, angl. Evaluate, Direct and Monitor);
• Uskladite, načrtujte in organizirajte (APO, angl. Align, Plan and Organise);
• Vzpostavite, nabavite in vpeljite (BAI, angl. Build, Acquire and Implement);
• Izvajajte, vzdržujte in podpirajte (DSS, angl. Deliver, Service and Support);
• Spremljajte, vrednotite in ocenite (MEA, angl. Monitor, Evaluate and Assess).
Načela COBIT 5
1. Prepoznavanje potreb
zainteresiranih
2. Zajemanja poslovanja v
celoti
3. Uporaba enotnega
okvirja
4. Omogočanje
celovitega pristopa
5. Ločevanje upravljanja in vodenja
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
8
Procesi znotraj zgoraj naštetih domen so prikazani na sliki 6.
Slika 6: V domene kategorizirani procesi po COBIT-u 5 [8]
2.3 Osnovne razlike in podobnosti med COBIT-om 4.1 in COBIT-om 5
V osnovi COBIT 5 nekatere elemente COBIT-a 4.1 drugače prestrukturira in dodaja svoje.
Omenjeni različici se razlikujeta v temeljnih načelih, ki pa so na nek način povezana. Npr.
vidik poslovnih zahtev predhodne različice je enak prvemu načelu kasnejše različice, saj
gre pri obeh za določanje poslovnih in IT ciljev. Kot pomoč oba navajata nekaj le-teh in
povezavo med njimi.
Morda je najočitnejša razlika v številu procesov in domen, saj ima aktualna različica eno
domeno več, s katero popolnoma loči procese upravljanja in vodenja. COBIT 5 vključuje
še nekatera dodatna priporočila in se bolj povezuje z zunanjimi standardi ter priporočili.
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
9
Nekateri procesi so popolnoma novi, nekateri pa so zgolj združeni oziroma prestavljeni v
druge domene ([11], [14]).
Procesi iz COBIT-a 4.1, ki so v COBIT-u 5 združeni ([11], [14]):
- DS7 združen s PO7 (izobrazba in človeški viri);
- PO6 združen s PO1 (vodenje in vodenje komunikacij);
- PO2 združen s PO3 (informacije in tehnična arhitektur);
- AI2 združen z AI3 (aplikacijska programska oprema in infrastrukturne
komponente);
- DS12 združen z DS5 (fizično okolje in informacijska varnost).
Procesi iz COBIT-a 4.1, ki so v COBIT-u 5 prerazporejeni ([11], [14]):
- ME4 prerazporejen v EDM1, 2, 3, 4, 5 (upravljanje);
- PO1 prerazporejen v APO02 (strateško načrtovanje);
- PO4 prerazporejen v APO01 (organizacija, razmerja in procesi).
Novi procesi v COBIT-u 5 ([11], [14]):
- EDM01: Zagotovite in vzdržujte okvir za upravljanje;
- APO01: Upravljajte okvir za vodenje IT;
- APO04: Upravljajte inovacije;
- APO08: Upravljajte razmerja;
- BAI08: Upravljajte z znanjem;
- BAI09: Upravljajte vire;
- DSS05: Upravljajte varnostne storitve;
- DSS06: Upravljajte poslovne procesne kontrole.
Predstavitev procesa v eni in drugi različici je različna. COBIT 5 opušča elemente, kot so
prikaz vpliva na informacijske kriterije, vire IT in področja vodenja IT ter kontrolne cilje.
Slednji so v novejši različici vključeni v ZOPS matriko kot dobre prakse. V tej različici prav
tako ni več zrelostnega modela. COBIT 5 uvaja model procesne zmogljivosti (angl.
Process Capability Model), ki je osnovan na podlagi standarda ISO/IEC 15504 [14].
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
10
3 MATRIKA ZOPS
ZOPS matrika (angl. RACI Chart) prikazuje organizacijski okvir procesa. Z matriko so
določene vloge, ki so za posamezne aktivnosti v procesu zadolžene (angl. responsible),
odgovorne (angl. accountable), posvetovane (angl. consulted) in seznanjene (angl.
informed). Zadolžen je tisti, ki izvaja aktivnosti v procesu, odgovoren tisti, ki nosi
odgovornost za določeno aktivnost, posvetovan tisti, ki zagotavlja vhodne dokumente za
izvedbo aktivnosti, in seznanjen tisti, ki je o dosežkih izvedene aktivnosti obveščen ([5],
[10]).
3.1 Primerjava matrik po COBIT-u 4.1 in COBIT-u 5
Vsak proces ima svojo matriko, kar predstavlja skupno 34 (COBIT 4.1) oziroma 37
(COBIT 5) matrik, zapisanih znotraj procesa, na katerega se nanašajo.
Razdelitev vlog je v COBIT-u 4.1 in 5 različna. V novejši različici je vlog več, nekatere
izmed prejšnjih vlog so v novi različici razčlenjene1, nekatere so popolnoma nove2. COBIT
4.1 razdeljuje aktivnosti med 15 vlog, medtem ko jih COBIT 5 med 26. Teh 26 vlog se deli
na vloge upravljanja in vloge vodenja [8]. Katere vloge so upravljalske in katere
vodstvene, prikazuje tabela 2. Seznam vseh vlog v obeh različicah je prikazan v tabeli 1,
kjer je tudi označeno, v kateri različici se pojavi dotična vloga.
Zadolžitve so ostale bolj ali manj enako razporejene, le da so v COBIT-u 5 te razdeljene
še na druge vloge, ki jih v COBIT-u 4.1 ni. Vlogo posvetovanega je v različici COBIT 5
izgubil finančni direktor (CFO). Za razliko od ZOPS matrike COBIT-a 4.1 pa je v COBIT-u
5 tudi manj posvetovanih vlog.
1 Npr. služba za skladnost, revizijo, presojo, tveganje in varovanje iz različice 4.1 je v novejši
različici COBIT-a razčlenjena v vloge: revizija, skladnost, komite za upravljanje tveganj, vodja upravljanja tveganja, upravitelj informacijske varnosti, vodja informacijske varnosti, služba za varovanje zasebnosti. 2 Npr. svet, vodja upravljanja človeških virov, pisarna za upravljanje vrednosti, strateški izvršni
komite, usmerjevalni (programni/projektni) komite.
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
11
Tabela 1: Seznam vlog v obeh različicah COBIT-a
COBIT 4.1 COBIT 5
Svet
Predsednik uprave (CEO)
Finančni direktor (CFO)
Izvršni direktor (COO)
Poslovodja
Lastnik poslovnega procesa
Strateški izvršni komite
Usmerjevalni (programni/projektni) komite
Projektna pisarna
Pisarna za upravljanje vrednosti
Vodja upravljanja tveganja
Vodja informacijske varnosti
Arhitekturni svet
Komite za upravljanje tveganj
Vodja upravljanja človeških virov
Skladnost
Revizija
Vodja informatike
Vodja arhitektov
Vodja razvoja
Vodja IT produkcije
Vodja administracije IT
Upravitelj storitev
Upravitelj informacijske varnosti
Upravitelj neprekinjenega poslovanja
Služba za varovanje zasebnosti
Oddelek za izobraževanje
Služba za pomoč strankam/upravljanje incidentov
Vodja upravljanja konfiguracij
Služba za skladnost, revizijo, presojo, tveganje in varovanje
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
12
Tabela 2 : Razdelitev vlog na upravljalske in vodstvene po COBIT-u 5
Vloge upravljanja Vloge vodenja Svet / uprava podjetja Direktor informatike (CIO)
Predsednik uprave (CEO) Vodja IT produkcije
Finančni direktor (CFO) Vodja arhitektov
Izvršni direktorji COO Vodja razvoja
Lastniki poslovnih procesov Vodja administracije IT
Arhitekturni svet Upravitelj informacijske varnosti
Projektna pisarna Služba za varovanje zasebnosti
Skladnost Upravitelj storitev
Revizija Upravitelj neprekinjenosti poslovanja
Vodja informacijske varnosti
Vodja upravljanja tveganj
Komite za upravljanje tveganj
Vodja upravljanja človeških virov
Pisarna za upravljanje vrednosti
Poslovodje
Strateški izvršni komite
Usmerjevalni (programi/projekti) komite
Matrika v različici 4.1 je sestavljena iz seznama aktivnosti na desnem robu, ob katerih je
glede na vlogo osebe (na vrhu) zapisano, ali je ta oseba za posamezno aktivnost
zadolžena, odgovorna, posvetovana oziroma seznanjena. Primer matrike iz COBIT-a 4.1
je prikazan na sliki 7.
Slika 7: ZOPS matrika v COBIT-u 4.1 (proces DS1 - Opredelite in upravljajte ravni
storitev)
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
13
V COBIT-u 5 je v ZOPS matriki namesto seznama aktivnosti seznam dobrih praks, ki so
praktično spremenjeni kontrolni cilji iz COBIT-a 4.1. Znotraj teh dobrih praks so
samostojno opisane posamezne aktivnosti. Primer matrike iz COBIT-a 4.1 je prikazan na
sliki 8. Vloge, ki so na tej sliki na temno modri podlagi so upravljalske, vloge na svetlo
modri podlagi pa vodstvene.
Slika 8: ZOPS matrika v COBIT-u 5 (proces DSS1 - Upravljajte delovanje)
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
14
4 RAZVOJ INFORMACIJSKEGA SISTEMA
Cilj je bil razviti informacijski sistem za podporo ZOPS matrikam, ki bo podpiral različici
4.1 ter 5 in omogočal pregled vseh matrik, določanje vlog uporabnikom, filtriranje pogleda
glede na procese, vloge, vrste sodelovanja, uporabnike, različico ter omogočal beleženje
opomb in stanj.
Analiza se je pričela s pregledom literature, natančneje COBIT-a. Podrobneje smo preučili
ZOPS matrike – aktivnosti, vloge in funkcije, preko katerih so povezane. Nato smo določili
funkcionalnosti, ki naj bi jih imela informacijska rešitev, ter na podlagi le-teh pripravili
okvirni diagram primerov uporabe (v sledeči fazi načrtovanja je diagram primerov uporabe
dopolnjen in razširjen). Za potrebe razvoja diplomskega dela smo se odločili, da se
omejimo na različici COBIT 4.1 in COBIT 5 ter po eno domeno iz vsake različice (4.1: DS
– Izvajajte in podpirajte; 5: DSS – Dostavite, izvajajte in podpirajte), skupno 19 procesov.
4.1 Načrt razvoja
Razvoj informacijskega sistema smo pričeli z določanjem funkcionalnosti, ki bi jih naj IS
podpiral. Te so:
- pregled matrik glede na proces/domeno/različico COBIT-a;
- upravljanje uporabniških računov in vlog;
- izpis aktivnosti za vsako vlogo (glede na funkcijo ‒ Z/O/P/S);
- izpis vlog za vsako aktivnost v posameznem procesu/domeni glede na funkcijo
(Z/O/P/S);
- uporabnik pregleduje svoje aktivnosti in način, kako je v njih udeležen (Z/O/P/S), v
dotičnem procesu/domeni/različici;
- uporabnik pregleduje, kdo še sodeluje v isti aktivnosti kot on (glede na funkcije),
možnost izpisa njihovih kontaktov (elektronska pošta, telefonska številka);
- uporabnik si lahko beleži opombe pri vsaki aktivnosti, v kateri sodeluje;
- uporabnik, ki je za določeno aktivnost odgovoren, beleži stanje te aktivnosti;
- uporabnik pregleduje statistiko glede na zabeležena stanja.
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
15
Zgoraj določene funkcionalnosti smo prenesli v model primerov uporabe, ki smo ga izrisali
s programom Visual Paradigm. Prikazan je na sliki 9. Določili smo, katere funkcionalnosti
lahko uporablja določena vrsta uporabnikov (administrator, vsi uporabniki, prijavljeni
uporabniki) in katere funkcionalnosti se nanašajo oziroma so pogoj za druge
funkcionalnosti IS.
Slika 9: Model primerov uporabe
Na podlagi modela primerov uporabe smo določili ustrezne entitete, njihove atribute in
relacije med entitetami. Nastal je E-R diagram oziroma model podatkovne baze. Ta je
izrisan s programom MySQL Workbench in prikazan na sliki 10.
Uporabnike shranjujemo v entiteto uporabnik, kjer vodimo podatke o njih – ime, priimek,
elektronsko pošto, telefonsko številko ter njihovo uporabniško ime, geslo in pravico
(uporabnik/administrator). Uporabnik ima lahko več vlog, vlogo pa si lahko deli več
uporabnikov, zato je med entiteto uporabnik in vloga vmesna entiteta uporabnik_vloga z
možnostjo opombe (primarna vloga, nadomeščanje itd.). Posamezna vloga sodeluje v
aktivnosti z določeno funkcijo – vsaka vloga sodeluje v več aktivnostih, v vsaki aktivnosti
pa sodeluje več vlog. Ta relacija mnogo proti mnogo je razrešena z entiteto funkcijaVloge.
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
16
Ker poznamo 5 funkcij (zadolžen, odgovoren, posvetovan, seznanjen,
odgovoren/zadolžen), je funkcijaVloge vezana na entiteto funkcija. Ena različica COBIT-a
(entiteta razlicicaCOBIT) ima več domen (entiteta domena), posamezna domena več
procesov (entiteta proces) in posamezni proces več aktivnosti (entiteta aktivnost).
Vsaki aktivnosti lahko določimo stanje (to lahko stori samo uporabnik, ki ima v tej
aktivnosti funkcijo odgovoren). Stanja so vnaprej pripravljena (se še ni začelo, v teku, na
čakanje, dokončano …), zato jih vodimo v svoji entiteti stanje. Aktivnost ima eno stanje,
eno stanje pa je lahko dodeljeno več aktivnostim. Dodeljenemu stanju vodimo datum
dodelitve, možno je dodati tudi opombo (entiteta dodeljenoStanje). Za razliko od stanja, ki
ga določa samo odgovorni uporabnik, lahko opombe dajejo vsi uporabniki, ki v posamezni
aktivnosti sodelujejo (entiteta opomba). Aktivnost ima lahko več opomb, posamezni
uporabnik lahko da več opomb. Ob opombi zato beležimo datum opombe, uporabnika, ki
jo da, in aktivnost, na katero se navezuje.
Slika 10: E-R diagram
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
17
4.2 Potek razvoja
Informacijsko rešitev smo razvijali s programskima okoljema Eclipse in MySQL
Workbench. V razvojnem okolju smo sprogramirali rešitev v programskem jeziku JAVA,
uporabljajoč tehnologiji JSP in JSF. S programom MySQL Workbench smo implementirali
podatkovno bazo ter si z njo pomagali pri kasnejši administraciji.
Po implementaciji podatkovne baze smo v Eclipsu ustvarili nov Dynamic Web Project z
imenom »ZOPSMatrike« in pričeli razvijati razrede (Java class) vseh entitet v bazi z
namenom kasnejše objektne uporabe teh entitet. Ustvarili smo npr. razred Uporabnik.java
(Priloga A), ki kot atribut vsebuje vse atribute kot entiteta uporabnik v podatkovni bazi. Ker
so vsi atributi tipa private, smo dodali še metodi »getter« in »setter«. Enako smo naredili
še za preostale entitete, ki smo jih združili v paket si.uni.diploma.entitete. Vse razrede
znotraj omenjenega paketa prikazuje slika 11.
Slika 11: Paket si.uni.diploma.entitete
Nadaljevali smo z razvojem razredov za povezavo z bazo – ključni razred za povezavo do
baze Povezava.java (Priloga B) ter pomožne DAO razrede z metodami za dodajanje,
urejanje, brisanje podatkov v/iz posameznih entitet podatkovne baze (npr. UporabnikDAO
z metodami za dodajanje, urejanje, brisanje podatkov iz entitete uporabnik – Priloga C).
Razrede za povezavo z bazo smo združili v paket si.uni.diploma.baza, ki ga prikazuje
slika 12. Povezavo z bazo nam omogoča jar datoteka mysqlconnector. Poizvedbe smo
pisali v programskem jeziku Java in poizvedbenim jezikom SQL.
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
18
Slika 12: Paket si.uni.diploma.baza
Po izdelavi osnovnih razredov z entitetami in povezavami z bazo smo si pripravili vnosne
obrazce za vnos podatkov v podatkovno bazo, kot so različica COBIT-a, domene, procesi,
aktivnosti, uporabniki, vloge itd. Dejanski vnos v bazo smo podprli z jsf-ji in s tako
imenovanimi zrni za upravljanje (angl. ManagedBean). Vnosne obrazce smo zasnovali
tako, da smo lahko iz spustnega seznama izbirali že vnesene podatke. Primer: ko smo
vnašali domeno, smo različico COBIT-a, v katero domena sodi, izbrali s spustnega
seznama, kjer so bile različice, ki smo jih že vnesli. Podobno smo naredili pri vnašanju
procesov in aktivnosti. Kot smo omenili že v uvodu, smo se pri vnašanju omejili na
domeno DS – Izvajajte in podpirajte v različici 4.1 in domeno DSS – Izvajajte, vzdržujte in
podpirajte v različici 5. Vnesli smo tudi osnovne funkcije: zadolžen, odgovoren,
posvetovan, seznanjen, odgovoren/zadolžen ter nekaj izmišljenih uporabnikov z
uporabniškimi oziroma administratorskimi pravicami.
Ko smo imeli vnesene vloge, funkcije in aktivnosti, smo lahko pričeli z določanjem
povezav med temi entitetami – torej katera aktivnost je na kakšen način dodeljena
posamezni vlogi. Prav tako smo že vnesenim izmišljenim uporabnikom naključno dodelili
vloge.
Nato smo začeli razvijati jsp strani. Najprej index stran (Priloga D), kjer smo med drugim
tudi oblikovali grafično podobo uporabniškega vmesnika, nato pa jo prenašali na novo
ustvarjene strani z namenom poenotenja uporabniškega vmesnika. Za ustvarjanje
grafičnega vmesnika smo implementirali ustrezno css datoteko.
Naslednji korak je bil razvijanje različnih pregledov: različic, domen, procesov,
uporabnikov, vlog. Tudi te prikaze smo pripravili z jsp stranmi: npr. pregled/uporabnik.jsp
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
19
(Priloga E). Prikazi so omogočeni z JSF tehnologijo, saj uporabljamo metode v t.i. zrnih za
upravljanje (angl. ManagedBean), preko katerih dostopamo do metod za povezavo z bazo
(primer zrna za upravljanje za pregled uporabnika: PregledUporabnika.java – Priloga F).
Vsa zrna za upravljanje smo združili v paket si.uni.diploma.jsf. Prikazuje ga slika 13.
Slika 13: Paket si.uni.diploma.jsf
Za vsak element posebej smo se odločili, katere podatke bomo prikazovali. Ob izbrani
različici COBIT-a smo tako pripravili izpis števila domen ter seznam le-teh. Klik na ime ali
kratico te domene nas preusmeri na pregled te domene. Pri pregledu domene med
osnovnimi informacijami izpišemo, v katero različico COBIT-a spada ter koliko procesov
vsebuje. Sledi še seznam procesov te domene.
Ob kliku na izbran proces nas spletna aplikacija preusmeri na prikaz podrobnosti tega
procesa. Osnovne informacije procesa vsebujejo domeno, v katero spada proces, ter
različico, v katero sodi ta domena. Pripravljeno je tudi polje za prikaz kratkega opisa tega
procesa. Pod osnovnimi informacijami se izpiše ZOPS matrika. Na levi strani se izpiše
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
20
seznam aktivnosti/dobrih praks3, v zgornji vrstici je seznam vlog, na presečišču
aktivnosti/dobre prakse in vloge pa funkcija te vloge pri tej aktivnosti (Z, O, P, S ali O/Z).
Ob kliku na ime aktivnosti se povežemo na stran, kjer najdemo podrobnosti te aktivnosti,
ob kliku na vlogo pa podrobnosti o vlogi. Podrobnosti aktivnosti sestojijo iz osnovnih
podatkov, kot so to dotični proces, domena in različica COBIT-a. Prikazana je tudi tabela
funkcij – v drugačni obliki kot matrika se nam izpiše seznam vlog, ki so za to aktivnost
zadolžene, odgovorne, posvetovane in seznanjene. Ob kliku na posamezno vlogo nas
preusmeri na stran z informacijami o vlogi. Pod pregledom funkcij najdemo še opombe in
stanje. Vsak uporabnik, ki ima kakršnokoli funkcijo v tej aktivnosti, lahko doda opombo – o
opombi beležimo datum, uporabnika ter vsebino – opis. Stanje lahko spremeni zgolj
uporabnik, ki je v vlogi odgovornega za to aktivnost. Uporabnik tako izbira med že vnaprej
pripravljenimi stanji, lahko pa doda svojo opombo k temu stanju. Zabeleži in prikaže se
tudi datum zadnje spremembe stanja.
Kot že omenjeno se ob kliku na vlogo prikaže stran s podatki o tej vlogi: seznam
uporabnikov, ki so v tej vlogi, ter seznam vseh aktivnosti, v katerih ta vloga sodeluje ter
hkrati funkcija, ki jo ima pri tej aktivnosti. Vsaka aktivnost ima ponovno povezavo do strani
za pregled te aktivnosti, klik na uporabnika pa nas preusmeri na stran, kjer najdemo
osnovne informacije tega uporabnika (ime, priimek, elektronska pošta, telefonska številka)
ter seznam njegovih vlog. Če ima prijavljeni uporabnik pravice administratorja, mu lahko
pod tem seznamom doda ali odstrani katerokoli vlogo.
Za vse preglede je potrebno biti prijavljen. Za preverjanje ustreznih privilegijev preko
uporabniškega imena in gesla smo uporabili JAVA tehnologijo j_security_check (glej
prilogo G – prijava.jsp). Za tako prijavo je potrebno prilagoditi še xml datoteko server.xml,
kjer dodamo povezavo do baze ter določimo, v kateri entiteti so atributi, ki jih naj preverja
(ime, geslo, pravica) – glej Prilogo H. Prilagoditi je bilo potrebno datoteko web.xml, ki se v
projektu nahaja v podmapi WEB-INF mape WebContent. V datoteki web.xml smo hkrati
določili tudi strani, do katerih ima dostop samo administrator in do katerih samo prijavljeni
uporabniki (glej Prilogo I).
Do strani Upravljanje ima dostop samo administrator. Tam lahko dodaja nove uporabnike,
jih ureja ali briše, lahko pa tudi dodaja stanja. Vnosnih obrazcev za spreminjanje ostalih
3 Glede na različico COBIT-a.
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
21
elementov (različica, domena, proces, aktivnost) nismo dodali na to spletno stran, saj ne
želimo, da bi kdo spreminjal podatke, ki so vneseni.
Za pregled posameznih elementov (različica, domena, proces, aktivnost, uporabnik,
vloga) smo na vrhu dotičnega pregleda pripravili spustni seznam, kjer lahko uporabnik
izbere, kaj želi pregledati. Nekateri elementi imajo več takih spustnih seznamov, saj lahko
preko njih filtriramo poglede (npr. želimo izbirati med procesi samo ene različice –
izberemo različico, spustni seznam s procesi pa se posodobi tako, da so na njem samo
procesi iz domen, ki so v izbrani različici). Pri povezavah (npr. iz seznama domen
izberemo domeno, ki nas preusmeri na pregled te domene) smo uporabili POST metodo.
V povezavo do strani smo dodali parameter id, ki je bil enak id-ju elementa, ki ga želimo
pregledati (v prej omenjenem primeru id domene: …pregled//domena.jsp?id=15).
Strežnik, na katerem smo razvijali aplikacijo, je bil Apache Tomcat v7.0. Vse knjižnice, ki
smo jih dodali v projekt, so prikazane na sliki 14.
Slika 14: V projekt implementirane knjižnice
Organizacijo vseh jsp strani prikazuje slika 32 v prilogi J.
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
22
4.3 Končni produkt
V nadaljevanju bomo s pomočjo zaslonskih slik predstavili izgled in funkcionalnosti
končne rešitve.
Slika 15 prikazuje stran »Splošno o COBIT-u«, ki uporabnika na kratko seznani o
COBIT-u in podrobneje o ZOPS matrikah kot del COBIT-a. Stran je dostopna tudi
neprijavljenim uporabnikom.
Slika 15: Stran Splošno o COBIT-u
Za dostop do ostalih strani se je potrebno prijaviti. Slika 16 prikazuje prijavni obrazec. Ko
je uporabnik prijavljen, se v zgornjem desnem kotu pojavijo pozdravni nagovor z njegovim
imenom, povezava do njegove osebne strani in možnost odjave.
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
23
Slika 16: Prijavna stran
Če izberemo podstran »Različice COBIT-a«, se nam prikaže možnost izbiranja različic
COBIT-a s spustnega seznama, kot je razvidno s slike 17. Ko izberemo različico,
kliknemo prikaži podrobnosti.
Slika 17: Stran Različice COBIT-a
Prikažejo se nam podrobnosti izbrane različice, kot prikazuje slika 18. O njej izvemo
osnovne informacije, natančneje, koliko domen ima ta različica. Prikaže se nam tudi
seznam njenih domen. Vsaka prikazana domena je povezava na stran, kjer se nahajajo
podrobnosti o tej domeni.
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
24
Slika 18: Stran Različice COBIT-a z izbrano različico
Ob kliku na povezavo ene od domen nas spletna aplikacija preusmeri na stran, kar je
prikazano na sliki 19. Tu lahko pregledamo podrobnosti te domene – osnovne informacije
(različica, ime, število procesov) in seznam procesov v njej. Iz zgornjega spustnega
seznama bi lahko izbrali katero drugo domeno za prikaz (slika 19). Seznam domen na
spustnem seznamu bi lahko tudi filtrirali po različici COBIT-a. To bi storili z izbiranjem
ustrezne različice iz spustnega seznama nad izbiranjem domene.
Slika 19: Izbiranje domene na strani Domena
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
25
Slika 20: Stran Domena z izbrano domeno
Ob izbiri procesa se nam prikažejo osnovne informacije procesa in dejanska matrika tega
procesa, kar vidimo na sliki 22. V matriki vidimo sodelujoče vloge (ob kliku vidimo
podrobnosti), aktivnosti (ob kliku vidimo podrobnosti) in funkcijo posamezne vloge v
posamezni aktivnosti. Na vrhu bi lahko ponovno izbrali katerikoli drug proces in prikazali
njegove podrobnosti kot na sliki 21. Procese na spustnem seznamu bi lahko filtrirali tudi z
izbiro ustrezne različice in domene. Seznam vlog v prvi vrstici se spreminja glede na
različico COBIT-a, saj so, kot že omenjeno, le-te različne. Slika 22 prikazuje vloge, ki se
izpišejo ob pregledu procesa iz COBIT-a 5, slika 23 pa seznam vlog ob prikazu procesa iz
COBIT-a 4.1.
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
26
Slika 21: Izbira procesa
Slika 22: Prikaz izbranega procesa (iz COBIT-a 5) na strani Proces
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
27
Slika 23: Seznam vlog v matriki pri procesu iz COBIT-a 4.1 je drugačen kot pri matriki iz
COBIT-a 5
Ob kliku na aktivnost se nam prikažejo podrobnosti te aktivnosti; osnovne informacije s
povezavami na različico, domeno, proces, v kateri se nahaja, pregledamo lahko vloge, ki
sodelujejo v tej aktivnosti (prav tako povezava na njihove podrobnosti) in na kakšen način.
Uporabniki, ki so udeleženi v tej aktivnosti (so ali zadolženi, odgovorni, posvetovani ali
seznanjeni), lahko dodajajo opombe, ostali jih lahko samo pregledujejo. Dodajanje opomb
je prikazano na sliki 24, pregledovanje le-teh brez možnosti dodajanja pa na sliki 25.
Aktivnost ima tudi stanje, ki ima opis, datum in opombo. Stanje lahko spremeni samo
uporabnik, ki je za dotično aktivnost odgovoren. Le ko je tak uporabnik prijavljen, je
spreminjanje stanja omogočeno, sicer pa ne. Slika 24 prikazuje pregled aktivnosti, ko je
spreminjanje stanja omogočeno, slika 26 pa, ko je to onemogočeno. Spreminjanje stanja
je prikazano na sliki 27.
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
28
Slika 24: Stran Aktivnost prikazuje izbrano aktivnost; možnost dodajanja opomb je
omogočena
Slika 25: Uporabniki, ki v aktivnosti ne sodelujejo, lahko opombe samo pregledujejo
Slika 26: Uporabnik, ki za aktivnost ni odgovoren, ne more spreminjati stanja
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
29
Slika 27: Spreminjanje stanja
Ob kliku na vlogo se nam prikažejo podrobnosti te vloge – katerim uporabnikom je
dodeljena ta vloga in v katerih aktivnostih vse sodelujejo ter na kak način. Ta pregled
prikazuje slika 28. Ob kliku na ime ali priimek se nam prikažejo podrobnosti tega
uporabnika, kot je razvidno iz slike 29. Ob kliku na njegov elektronski naslov se nam
odpre okno za pošiljanje novega elektronskega sporočila privzetega programa za
elektronsko pošto, ob kliku na posamezno aktivnost pa vidimo podrobnosti le-te, kot smo
opisali že zgoraj in prikazali s sliko 24.
Slika 28: Prikaz izbrane vloge na strani Vloga
Pregled uporabnika – njegove osnovne informacije, kontaktni podatki in vloge, ki jih ima
določene, prikazuje slika 29. Prijavljen uporabnik lahko do prikaza svojih podatkov in
seznama vlog pride tudi tako, da zgoraj v desnem kotu poleg pozdravnega nagovora
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
30
klikne »Pojdi na svojo osebno stran«. Če uporabnike pregleduje uporabnik z
administratorskimi pravicami, se pod seznamom vlog dotičnega uporabnika prikaže
možnost dodajanja oziroma odvzemanja vlog. Ta funkcionalnost je predstavljena na sliki
30.
Slika 29: Pregled uporabnika na strani Uporabnik
Slika 30: Administrator lahko na strani uporabnika le-temu dodaja ali odvzema vloge
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
31
Vnos in urejanje uporabnikov je omogočeno samo administratorju. Do teh funkcionalnosti
pride preko strani Upravljanje, kjer lahko dodaja tudi nova stanja. Kot primer
administratorske funkcionalnosti je na sliki 31 prikazan obrazec za vnos novega
uporabnika.
Slika 31: Obrazec za vnos novega uporabnika
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
32
5 SKLEP
COBIT kot okvir za vodenje in upravljanje informatike podaja mnogo smernic za vodstvo
podjetja in ostale zaposlene v njem. Podpira poslovne zahteve in omogoča spremljanje
tveganj in kakovosti implementiranih poslovnih procesov. Ker COBIT ni standard, temveč
le strukturirana zbirka dobrih praks, saj ne podaja napotkov, kako kaj narediti, marveč
samo kaj, si lahko podjetja izvajanje procesov prilagodijo svojemu poslovanju.
Ravno zaradi tega, ker COBIT ne predpisuje, kako implementirati izvajanje procesov in
njegovih ključnih elementov, je bilo načrtovanje informacijske rešitve za podporo
COBIT-ovim ZOPS matrikam težavno. Zamisliti smo si namreč morali čim bolj univerzalno
rešitev, ki bi lahko bila v pomoč podjetjem, ki pri svojem poslovanju uporabljajo COBIT.
Najbolj smiselno se je zdelo razviti različne prikaze glede na različice, domene, procese in
vloge. Združiti torej aktivnosti, ki jih ima posamezni uporabnik, ki je v določeni vlogi, z
namenom, da ta na enem mestu vidi vse aktivnosti, v katerih sodeluje, in hkrati kakšna je
njegova funkcija pri posamezni aktivnosti.
Ker torej COBIT ne predpisuje, kako in kdaj izvajati aktivnosti, informacijska rešitev, ki
smo jo razvili v sklopu diplomskega dela, omogoča zgolj osnovne funkcionalnosti za bolj
strukturiran pregled nad vlogami, aktivnostmi/dobrimi praksami in funkcijami. Tako smo
ustvarili univerzalne strani za posamezne elemente, nato pa prikazovali podatke, vnesene
v podatkovno bazo glede na zahtevan unikatni identifikator (id) tega elementa (npr.
uporabnika z id-jem 15).
Potrebno je še omeniti, da opombe in stanja, ki smo jih implementirali, niso omenjene
nikjer v COBIT-u, temveč je to naša zamisel kot podpora uporabnikom pri uporabi ZOPS
matrik. COBIT tudi ne predpisuje združevanja posameznih vlog, zato nismo ustvarili
nobenih omejitev. Da lahko ima posamezna oseba več vlog, se zdi smiselno predvsem v
manjših podjetjih pa tudi v smislu medsebojnih nadomeščanj. Isto vlogo ima lahko več
oseb, saj so nekatere vloge kot take že zasnovane – npr. vloga sveta: v svetu podjetja je
običajno več ljudi.
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
33
Z največ težavami smo se soočili ravno pri implementaciji različnih pregledov, saj smo
morali kombinirati različne elemente, ki so v podatkovni bazi med seboj povezani s precej
vmesnimi entitetami. Še posebej zahtevno je bilo razviti stran z izpisom matrik, saj je bilo
potrebno ustvariti dinamično tabelo, ki je prikazovala medsebojno povezane entitete:
vlogo, aktivnost/dobro prakso, funkcijo vloge in funkcijo.
Pred pisanjem dela smo postavili štiri hipoteze. Prva hipoteza je bila, da se struktura
ZOPS matrik v COBIT-u 4.1 ne razlikuje od strukture matrik v COBIT-u 5. Ugotovili smo,
da so v omenjenih različicah funkcije ostale enake (zadolžen, odgovoren, posvetovan,
seznanjen). Spremenilo pa se je število vlog. Ta hipoteza je tako zavrnjena.
Naslednja hipoteza je bila, da se vsebina ZOPS matrik v COBIT-u 4.1 razlikuje od vsebine
matrik v COBIT-u 5. Hipoteza je potrjena, saj so vloge različne, prav tako pa so različne
tudi aktivnosti, ki v novejši različici to celo niso, saj jih nadomesti seznam dobrih praks.
Potrjujemo tudi naslednjo hipotezo, ki je bila, da je možno razviti informacijski sistem, ki
bo podpiral splošen prikaz ZOPS matrik in filtriran prikaz glede na uporabnikove pogoje.
Kot uporabnikovi pogoji so mišljeni filtriranje glede na različico, domeno, proces, aktivnost.
Glede na to, da so funkcije (zadolžen, odgovoren, posvetovan, seznanjen) združene
glede na aktivnost pri posamezni vlogi in procesu, potrjujemo četrto hipotezo, ki je, da bo
informacijski sistem za podporo ZOPS matrik omogočal bolj sistematični in natančnejši
pregled zadolžitev/funkcij pri posameznih vlogah in procesih.
Naši napotki za nadaljnje delo so, da se podatkovna baza informacijske rešitve napolni še
s procesi in aktivnostmi/dobrimi praksami preostalih domen, kajti v delu smo se omejili
samo na dve domeni.
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
34
6 VIRI IN LITERATURA
[1] Case Study: Use of COBIT® 5 for ISACA Strategy Implementation, 19 February
2013. Dostopno na: http://ebookbrowsee.net/case-study-use-of-cobit-5-for-isaca-
strategy-implementation-pdf-d458567594. [12. 6. 2013].
[2] Derek, J. O, COBIT 5 for Information Security, 16. 11. 2012. Dostopno na:
http://ebookbrowsee.net/cobit-5-for-information-security-2012-isaca-pdf-d422322075.
[16. 6. 2013].
[3] EGIT: Tichaona Zororo, COBIT 5 Overview: Corporate Governance of ICT, 3. 7.
2013. Dostopno na: http://ebookbrowsee.net/governance-summit-governance-it-
officer-council-overview-of-cobit-5-pdf-d496911165. [10. 6. 2013].
[4] Hill, P., De Haes, S., Vn Gremebergen, W., Rudd, C., Niessink, F. Frameworks for IT
Management. Zaltbommel: Van Haren Publishing, 2006.
[5] How to Do RACI Charting and Analysis: A Practical Guide, 4. 7. 2012. Dostopno na:
http://ebookbrowsee.net/how-to-do-raci-charting-and-analysis-pdf-d360887255. [18.
6. 2013].
[6] ISACA, COBIT 5 Introduction, 25. 6. 2013. Dostopno na:
http://ebookbrowsee.net/cobit-5-introduction-pdf-d353672639. [2. 6. 2013].
[7] ISACA, CobIT 5: Enabling Processes, ISACA, 2012.
[8] ISACA, CobIT 5: Framework, 29 Maj 2012. Dostopno na:
http://www.isaca.org/cobit/Pages/CobitFramework.aspx. [2. 6. 2013].
[9] ISACA, COBIT Student Book, 12.11.2012. Dostopno na:
http://ebookbrowsee.net/cobit-student-book-pdf-d419924478. [5. 6. 2013].
[10] IT Governance Institute, Cobit 4.1. ISACA, 2007.
[11] ITGI, Changes in CobIT 5, 22 avgust 2011. Dostopno na:
http://www.itgovernance.com/changes%20in%20cobit5.pdf. [11. 6. 2013].
[12] Pittsburgh ISACA Chapter, Practical Approach to COBIT 5, September 17 2012.
Dostopno na: http://ebookbrowsee.net/cobit-5-pdf-d420808649. [28. 6. 2013].
[13] Burazer, R. CobIT 5: predstavitev, 3 April 2012. Dostopno na:
http://www.isaca.si/datoteke/2012/201204/COBIT5-Introduction27Feb2012.pdf. [11.
6. 2013].
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
35
[14] Burazer, R. Primerjava med CobIT 4.1 in CobIT 5, 3 April 2012. Dostopno na:
http://www.isaca.si/datoteke/2012/201204/COBIT5-Compare-With-41-27Feb2012.pdf.
[11. 6. 2013].
[15] Rozemeijer, E. Frameworks for It Management: A Pocket Guide. Zaltbommel: Van
Haren Publishing, 2007.
[16] Smith, D. A. Implementing Metrics for IT Service Management. Zaltbommel: Van
Haren Publishing, 2008.
[17] Van Sante, T. Implementing leading standards for IT management: a guide to
understanding and selecting standards. Zaltbommel: Van Haren Publishing, 2006.
[18] W. Van Grembergen in S. Haes, COBIT as a Framework for Enterprise Governance
of IT, v Enterprise Governance of Information Technology, Springer US, 2009.
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
36
PRILOGA A
package si.uni.diploma.entitete; public class Uporabnik { private int id; private String ime; private String priimek; private String email; private String telSt; private String upIme; private String geslo; private int pravica; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getIme() { return ime; } public void setIme(String ime) { this.ime = ime; } public String getPriimek() { return priimek; } public void setPriimek(String priimek) { this.priimek = priimek; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getTelSt() { return telSt; } public void setTelSt(String telSt) { this.telSt = telSt; } public String getUpIme() { return upIme; } public void setUpIme(String upIme) { this.upIme = upIme; } public String getGeslo() { return geslo; } public void setGeslo(String geslo) { this.geslo = geslo; } public int getPravica() { return pravica; } public void setPravica(int pravica) { this.pravica = pravica; } }
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
37
PRILOGA B
package si.uni.diploma.baza; import java.sql.*; public class Povezava { static Connection conn = null; public Connection povezi(){ try{ String upIme = "XXX"; String geslo = "YYY"; String url = "URL"; Class.forName ("com.mysql.jdbc.Driver").newInstance (); conn = DriverManager.getConnection (url, upIme, geslo); } catch (Exception e) { System.err.println ("Povezava ni uspela"); System.out.println("Napaka: " + e.toString()); } return conn; } public void prekini(Connection conn){ try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } }
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
38
PRILOGA C
package si.uni.diploma.baza; import java.sql.*; import java.util.*; import si.uni.diploma.entitete.*; public class UporabnikDAO { static Povezava db = new Povezava(); static Connection conn; java.sql.PreparedStatement ps; static Statement st; static ResultSet rs;
public static boolean novUporabnik(Uporabnik uporabnik) { conn = db.povezi(); try { ps = conn.prepareStatement("INSERT into uporabnik(ime, priimek, email, telst, upIme, geslo, pravica) values (?, ?, ?, ?, ?, ?, ?)"); ps.setString(1, uporabnik.getIme()); ps.setString(2, uporabnik.getPriimek()); ps.setString(3, uporabnik.getEmail()); ps.setString(4, uporabnik.getTelSt()); ps.setString(5, uporabnik.getUpIme()); ps.setString(6, uporabnik.getGeslo()); ps.setInt(7, uporabnik.getPravica()); ps.executeUpdate(); ps.close(); return true; } catch (Exception e) { System.out.println("Uporabnik.novUporabnik: " + e.toString()); return false; } } public static Uporabnik getUporabnik(int id) { Uporabnik uporabnik = new Uporabnik(); try { conn = db.povezi(); st = conn.createStatement(); rs = st.executeQuery("SELECT * FROM uporabnik WHERE id='" + id + "'"); if (rs.next()) { uporabnik.setId(id); uporabnik.setIme(rs.getString("ime"));
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
39
uporabnik.setPriimek(rs.getString("priimek")); uporabnik.setEmail(rs.getString("email")); uporabnik.setTelSt(rs.getString("telSt")); uporabnik.setUpIme(rs.getString("upIme")); uporabnik.setGeslo(rs.getString("geslo")); uporabnik.setPravica(rs.getInt("pravica")); } rs.close(); db.prekini(conn); return uporabnik; } catch (Exception e) { System.out.println("UporabnikDAO.getUporabnik: " + e.toString()); return null; } } public int getPravica(int id) { int pravica = -1; try { conn = db.povezi(); st = conn.createStatement();
rs = st.executeQuery("SELECT * FROM uporabnik WHERE id='" + id+ "'");
if (rs.next()) { pravica = rs.getInt("pravica"); } rs.close(); db.prekini(conn); } catch (Exception e) { System.out.println("UporabnikDAO.getPravica: " + e.toString()); } return pravica; } public static ArrayList<Uporabnik> getUporabnikeZVlogo(Vloga vloga) { ArrayList<Uporabnik> seznamUporabnikov = new ArrayList<Uporabnik>(); Uporabnik uporabnik = new Uporabnik(); try { conn = db.povezi(); st = conn.createStatement(); rs = st.executeQuery("SELECT * FROM uporabnik, uporabnik_vloga WHERE uporabnik_vloga.vloga_id='"+ vloga.getId()+ "' AND uporabnik_vloga.uporabnik_id=uporabnik.id"); rs.beforeFirst(); while (rs.next()) { uporabnik = new Uporabnik(); uporabnik.setId(rs.getInt("id")); uporabnik.setIme(rs.getString("ime")); uporabnik.setPriimek(rs.getString("priimek")); uporabnik.setEmail(rs.getString("email"));
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
40
uporabnik.setTelSt(rs.getString("telSt")); uporabnik.setUpIme(rs.getString("upIme")); uporabnik.setGeslo(rs.getString("geslo")); uporabnik.setPravica(rs.getInt("pravica")); seznamUporabnikov.add(uporabnik); } rs.close(); db.prekini(conn); return seznamUporabnikov; } catch (Exception e) { System.out.println("UporabnikDAO.getUporabnikeZVlogo: " + e.toString()); return null; } } public static Uporabnik getUporabnik(String upIme) { Uporabnik uporabnik = new Uporabnik(); try { conn = db.povezi(); st = conn.createStatement(); rs = st.executeQuery("SELECT * FROM uporabnik WHERE upIme='" + upIme + "'"); if (rs.next()) { uporabnik.setId(rs.getInt("id")); uporabnik.setIme(rs.getString("ime")); uporabnik.setPriimek(rs.getString("priimek")); uporabnik.setEmail(rs.getString("email")); uporabnik.setTelSt(rs.getString("telSt")); uporabnik.setUpIme(upIme); uporabnik.setGeslo(rs.getString("geslo")); uporabnik.setPravica(rs.getInt("pravica")); } rs.close(); db.prekini(conn); return uporabnik; } catch (Exception e) { System.out.println("UporabnikDAO.getUporabnik: " + e.toString()); return null; } } public static ArrayList<Uporabnik> getVseUporabnike() { ArrayList<Uporabnik> seznamUporabnikov = new ArrayList<Uporabnik>(); Uporabnik uporabnik = new Uporabnik(); try { conn = db.povezi(); st = conn.createStatement(); rs = st.executeQuery("SELECT * FROM uporabnik");
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
41
rs.beforeFirst(); while (rs.next()) { uporabnik = new Uporabnik(); uporabnik.setId(rs.getInt("id")); uporabnik.setIme(rs.getString("ime")); uporabnik.setPriimek(rs.getString("priimek")); uporabnik.setEmail(rs.getString("email")); uporabnik.setTelSt(rs.getString("telSt")); uporabnik.setUpIme(rs.getString("upIme")); uporabnik.setGeslo(rs.getString("geslo")); uporabnik.setPravica(rs.getInt("pravica")); seznamUporabnikov.add(uporabnik); } rs.close(); db.prekini(conn); return seznamUporabnikov; } catch (Exception e) { System.out.println("UporabnikDAO.getvseUporabnike: " + e.toString()); return null; } } }
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
42
PRILOGA D
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%> <%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link rel="stylesheet" type="text/css" href="css/style.css" /> <script type="text/javascript" src="css/clockp.js"></script> <script type="text/javascript" src="css/clockh.js"></script> <script type="text/javascript" src="css/jquery.min.js"></script> <script type="text/javascript" src="css/ddaccordion.js"></script> <script type="text/javascript"> <script type="text/javascript" src="css/jconfirmaction.jquery.js"></script> <script type="text/javascript"> $(document).ready(function() { $('.ask').jConfirmAction(); }); </script> <script language="javascript" type="text/javascript" src="css/niceforms.js"></script> <link rel="stylesheet" type="text/css" media="all" href="css/niceforms-default.css" /> <title>Prva stran</title> </head> <body>
<f:view> <f:param id="id" value="#{pregledProcesa.id }"></f:param> <h:messages /> <div id="main_container"> <div class="header"> <div class="logo"> <a href="index.jsp"><img src="css/images/cobit-bann.png" alt=""title="" border="0" /></a> </div> <div class="right_header"> Pozdravljeni, <h:panelGroup layout="block" Rendered="#{prijavljen.uporabnik ne null}"> <h:outputText value="#{prijavljen.uporabnik.ime }" /> <h:outputText value=" " /> <h:outputText value="#{prijavljen.uporabnik.priimek }" /> | <h:outputLink value="uporabnik.jsp"> <h:outputText value="Pojdi na osebno stran" /> <f:param name="id" value="#{prijavljen.uporabnik.id}" /> </h:outputLink> <h:form>
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
43
| <h:commandLink styleClass="logout" value="Odjava" action="#{prijavljen.odjava}" />
</h:form> </h:panelGroup> <h:panelGroup layout="block"
rendered="#{prijavljen.uporabnik eq null}"> <h:outputText value="gost" /> | </h:panelGroup> </div> <div id="clock_a"></div> </div> <div class="main_content"> <div class="menu"> <ul> <li><a class="current" href="index.jsp">Začetna Stran</a></li> <li><a href="splosno.jsp">Splošno o COBIT-u</a> <li><a href="pregled/cobit.jsp">Različice COBIT-a</a></li> <li><a href="pregled/domena.jsp">Domene</a></li> <li><a href="pregled/proces.jsp">Procesi</a></li> <li><a href="pregled/aktivnost.jsp">Aktivnosti</a></li> <li><a href="pregled/vloga.jsp">Vloge</a></li> <li><a href="pregled/uporabnik.jsp">Uporabniki</a></li> <li><a href="urejanje/admin.jsp">Upravljanje</a></li> </ul> </div> <!-- OSREDNJI DEL --> <div class="center_content"> <div class="right_content"> <jsp:include page="pregledmatrik.jsp" flush="false">
</jsp:include> </div> <div class="clear"></div> </div> <div class="footer"> <div class="left_footer">Razvoj informacijske rešitve za
podporo COBIT-ovim ZOPS matrikam ©Lidija vincekovič, 2013</div>
<div class="right_footer"></div> </div> </div> </div> </f:view> </body> </html>
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
44
PRILOGA E
<!-- OSREDNJI DEL --> <div class="center_content"> <div class="right_content"> <f:param id="id" value="#{pregledUporabnika.id }"></f:param> <h:messages /> <h:form style="border-style:solid;padding:5px;"> <h2>Izberi uporabnika</h2> <h:selectOneMenu onchange="#{pregledUporabnika.izberi()}" binding="#{pregledUporabnika.uporabnikSelect}" id="razlicica" value="#{pregledUporabnika.idUporabnika}"> <f:selectItems value="#{pregledUporabnika.seznamUporabnikovList }" /> </h:selectOneMenu> <h:commandButton value="Prikaži podrobnosti" action="#{pregledUporabnika.izberi()}" /> </h:form> <br>
<h:panelGroup layout="block" rendered="#{pregledUporabnika.uporabnik ne null}">
<h1>Pregled uporabnika</h1> <table> <h:panelGroup rendered="#{not empty pregledUporabnika.uporabnik}"> <tr> <th rowspan="5">Osnovne informacije</th> </tr> <tr> <td><h:outputText value="Ime" /></td>
<td><h:outputText value="#{pregledUporabnika.uporabnik.ime}" /></td>
</tr> <tr> <td><h:outputText value="Priimek" /></td>
<td><h:outputText value="#{pregledUporabnika.uporabnik.priimek}" /> </td>
</tr> <tr> <td><h:outputText value="Elektronska pošta" /></td> <td><h:outputText value="#{pregledUporabnika.uporabnik.email}" /></td> </tr> <tr> <td><h:outputText value="Telefonska številka" /></td> <td><h:outputText value="#{pregledUporabnika.uporabnik.telSt}" /></td> </tr> </h:panelGroup> </table> <br> <h:dataTable value="#{pregledUporabnika.seznamVlog}" var="vloga"> <h:column> <f:facet name="header"> <h:outputText value="Seznam vlog" /> </f:facet>
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
45
<h:outputLink value="vloga.jsp"> <h:outputText value="#{vloga.ime}" /> <f:param name="id" value="#{vloga.id}" /> </h:outputLink> </h:column> </h:dataTable> <h:panelGroup id="dodajPanel" rendered="#{prijavljen.isAdmin }"> <h:form> <h:messages/>
<h:selectOneMenu onclick="#{pregledUporabnika.dodaj() }" binding="#{pregledUporabnika.dodVlogaSelect}" id="dodaj" value="#{pregledUporabnika.iddodVloga}">
<f:selectItems value="#{pregledUporabnika.seznamdodVlogaList }" / </h:selectOneMenu>
<h:commandButton value="Dodaj" action="#{pregledUporabnika.dodaj()}"></h:commandButton>
<br> </h:form> <h:form> <h:messages/> <h:selectOneMenu binding="#{pregledUporabnika.odsVlogaSelect}" id="odstrani" value="#{pregledUporabnika.idodsVloga}"> <f:selectItems value="#{pregledUporabnika.seznamodsVlogaList }" /> </h:selectOneMenu>
<h:commandButton value="Odstrani" action="#{pregledUporabnika.odstrani()}" />
</h:form> </h:panelGroup> </h:panelGroup> </div> </div>
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
46
PRILOGA F
package si.uni.diploma.jsf; import java.util.*; import javax.annotation.*; import javax.faces.bean.*; import javax.faces.component.html.*; import javax.faces.model.*; import si.uni.diploma.baza.*; import si.uni.diploma.entitete.*; @ManagedBean(name = "pregledUporabnika") @RequestScoped public class PregledUporabnika { private Uporabnik uporabnik; private ArrayList<Vloga> seznamVlog; @ManagedProperty(value = "#{param.id}") private String id; private HtmlSelectOneMenu uporabnikSelect; private int idUporabnika; private List<SelectItem> seznamUporabnikovList; ArrayList<Uporabnik> seznamUporabnikov; private HtmlSelectOneMenu dodVlogaSelect; private int iddodVloga; private List<SelectItem> seznamdodVlogaList; ArrayList<Vloga> seznamdodVlog; private HtmlSelectOneMenu odsVlogaSelect; private int idodsVloga; private List<SelectItem> seznamodsVlogaList; ArrayList<Vloga> seznamodsVlog; int idEc = 0; @PostConstruct public void init() { ExternalContext ec = FacesContext.getCurrentInstance() .getExternalContext(); try { idEc = Integer.parseInt((String) ec.getSessionMap().get("id")); if (idEc != 0) { uporabnik = UporabnikDAO.getUporabnik(idEc); idUporabnika = idEc; id=Integer.toString(idEc); } } catch (Exception e) { }
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
47
if (id != null) { idUporabnika = Integer.parseInt(id); uporabnik = UporabnikDAO.getUporabnik(Integer.parseInt(id)); } if (idUporabnika == 0) { uporabnik = null; } } public void izberi() { if (idUporabnika != 0) { uporabnik = UporabnikDAO.getUporabnik(idUporabnika); } } public void dodaj() { if (iddodVloga != 0) { UporabnikVloga uv = new UporabnikVloga(uporabnik, VlogaDAO.getVloga(iddodVloga)); ExternalContext ec = FacesContext.getCurrentInstance() .getExternalContext(); ec.getSessionMap().put("id", uporabnik.getId()); } } public void odstrani() { if (iddodVloga != 0) { UporabnikVloga uv = new UporabnikVloga(uporabnik, VlogaDAO.getVloga(iddodVloga)); } } public Uporabnik getUporabnik() { return uporabnik; } public void setUporabnik(Uporabnik uporabnik) { this.uporabnik = uporabnik; } public String getId() { return id; } public void setId(String id) { this.id = id; } public ArrayList<Vloga> getSeznamVlog() { seznamVlog = VlogaDAO.getVlogeUporabnika(uporabnik); return seznamVlog; } public void setSeznamVlog(ArrayList<Vloga> seznamVlog) { this.seznamVlog = seznamVlog; } public HtmlSelectOneMenu getUporabnikSelect() { return uporabnikSelect; } public void setUporabnikSelect(HtmlSelectOneMenu uporabnikSelect) { this.uporabnikSelect = uporabnikSelect; }
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
48
public int getIdUporabnika() { return idUporabnika; } public void setIdUporabnika(int idUporabnika) { this.idUporabnika = idUporabnika; } public List<SelectItem> getSeznamUporabnikovList() { seznamUporabnikov = new ArrayList<Uporabnik>(); seznamUporabnikovList = new ArrayList<SelectItem>(); seznamUporabnikov = UporabnikDAO.getVseUporabnike(); for (Uporabnik u : seznamUporabnikov) { seznamUporabnikovList.add(new SelectItem(u.getId(), u.getIme() + " " + u.getPriimek())); } return seznamUporabnikovList; } public void setSeznamUporabnikovList(List<SelectItem> seznamUporabnikovList) { this.seznamUporabnikovList = seznamUporabnikovList; } public ArrayList<Uporabnik> getSeznamUporabnikov() { return seznamUporabnikov; } public void setSeznamUporabnikov(ArrayList<Uporabnik> seznamUporabnikov) { this.seznamUporabnikov = seznamUporabnikov; } public HtmlSelectOneMenu getDodVlogaSelect() { return dodVlogaSelect; } public void setDodVlogaSelect(HtmlSelectOneMenu dodVlogaSelect) { this.dodVlogaSelect = dodVlogaSelect; } public int getIddodVloga() { return iddodVloga; } public void setIddodVloga(int iddodVloga) { this.iddodVloga = iddodVloga; } public List<SelectItem> getSeznamdodVlogaList() { seznamdodVlog = new ArrayList<Vloga>(); seznamdodVlogaList = new ArrayList<SelectItem>(); seznamdodVlog = VlogaDAO.getVseVloge(); for (Vloga v : seznamdodVlog) { seznamdodVlogaList.add(new SelectItem(v.getId(), v.getIme()));
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
49
} return seznamdodVlogaList; } public void setSeznamdodVlogaList(List<SelectItem> seznamdodVlogaList) { this.seznamdodVlogaList = seznamdodVlogaList; } public ArrayList<Vloga> getSeznamdodVlog() { return seznamdodVlog; } public void setSeznamdodVlog(ArrayList<Vloga> seznamdodVlog) { this.seznamdodVlog = seznamdodVlog; } public HtmlSelectOneMenu getOdsVlogaSelect() { return odsVlogaSelect; } public void setOdsVlogaSelect(HtmlSelectOneMenu odsVlogaSelect) { this.odsVlogaSelect = odsVlogaSelect; } public int getIdodsVloga() { return idodsVloga; } public void setIdodsVloga(int idodsVloga) { this.idodsVloga = idodsVloga; } public List<SelectItem> getSeznamodsVlogaList() { seznamodsVlog = new ArrayList<Vloga>(); seznamodsVlogaList = new ArrayList<SelectItem>(); seznamodsVlog = this.getSeznamVlog(); for (Vloga v : seznamodsVlog) { seznamodsVlogaList.add(new SelectItem(v.getId(), v.getIme())); } return seznamodsVlogaList; } public void setSeznamodsVlogaList(List<SelectItem> seznamodsVlogaList) { this.seznamodsVlogaList = seznamodsVlogaList; } public ArrayList<Vloga> getSeznamodsVlog() { return seznamodsVlog; } public void setSeznamodsVlog(ArrayList<Vloga> seznamodsVlog) { this.seznamodsVlog = seznamodsVlog; } }
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
50
PRILOGA G
<h3>Dostopno samo prijavljenim uporabnikom</h3> <form method="post" action="j_security_check" name="loginForm" class="niceform"> <fieldset> <dl> <dt> <label for="email">Uporabniško ime:</label> </dt> <dd> <h:inputText id="j_username" autocomplete="off" size="54" /> </dl> <dl> <dt> <label for="password">Geslo:</label> </dt> <dd>
<h:inputSecret id="j_password" autocomplete="off" size="54"/>
</dd> </dl> <dl class="submit"> <h:commandButton type="submit" value="Prijava" /> <h:commandButton type="reset" value="Počisti" /> </dl> </fieldset> </form>
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
51
PRILOGA H
<Realm className="org.apache.catalina.realm.JDBCRealm" debug="99" driverName="com.mysql.jdbc.Driver"
connectionURL="URL?user=XXX&password=YYY" userTable="uporabnik" userNameCol="upIme" userCredCol="geslo" userRoleTable="uporabnik" roleNameCol="pravica" />
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
52
PRILOGA I
<login-config>
<auth-method>FORM</auth-method> <form-login-config> <form-login-page>/faces/prijava.jsp</form-login-page> <form-error-page>/faces/error.jsp</form-error-page> </form-login-config> </login-config> <security-role> <role-name>0</role-name> </security-role> <security-role> <role-name>1</role-name> </security-role>
<security-constraint>
<web-resource-collection> <web-resource-name>StraniZaAdministratorja</web-resource-name>
<description>strani, do katerih dostopa samo administrator</description>
<url-pattern>/faces/vnos/*</url-pattern> <url-pattern>/faces/urejanje/*</url-pattern> <url-pattern>/faces/pregled/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>1</role-name> </auth-constraint> </security-constraint> <security-constraint> <web-resource-collection> <web-resource-name>StraniZaUporabnike</web-resource-name> <description>strani, do katerih dostopajo uporabniki</description> <url-pattern>/faces/pregled/*</url-pattern> </web-resource-collection> <auth-constraint> <role-name>0</role-name> </auth-constraint> </security-constraint>
Razvoj informacijske rešitve za podporo COBIT-ovim ZOPS matrikam
53
PRILOGA J
Slika 32: Organizacija vseh jsp strani