Fakulteta za elektrotehniko, računalništvo in informatiko Smetanova ulica 17 2000 Maribor, Slovenija

Dejan Kašnik Razvojna programska platforma WaveMaker

DIPLOMSKO DELO

Maribor, 2014

Razvojna programska platforma WaveMaker

DIPLOMSKO DELO

Študent: Dejan Kašnik

Študijski program: visokošolski program

Smer: Računalništvo in informacijske tehnologije

Mentor: doc. dr. Matej Črepinšek, univ. dipl. inž. rač. in inf.

Lektoriranje: Jasmina Vajda Vrhunec, s. p.

III

ZAHVALA

Iskreno se zahvaljujem mentorju doc. dr. Mateju Črepinšku za pomoč in usmerjanje med izdelavo diplomskega dela.

Zahvaljujem se tudi mentorju Jožetu Detečniku v podjetju Komunala Slovenj Gradec za pomoč, strokovne nasvete, potrpežljivost in podporo pri pisanju diplomskega dela.

Posebna zahvala velja staršem, ki so mi omogočili študij.

IV

KAZALO VSEBINE 1 UVOD ...... 12 2 WAVEMAKER ...... 13 2.1 KAJ JE WAVEMAKER? ...... 13 2.1.1 GLAVNE ZNAČILNOSTI IN PREDNOSTI ...... 13 2.1.2 WAVEMAKER SPECIFIKACIJE ...... 14 2.1.3 KDO NAJ BI UPORABLJAL WAVEMAKER? ...... 15 2.2 WAVEMAKER UPORABNIŠKI VMESNIK ...... 15 2.2.1 PLATNO ...... 16 2.2.2 IZVORNA KODA ...... 17 2.2.3 PALETA ...... 17 2.2.4 MODEL ...... 18 2.2.5 STORITVE ...... 18 2.2.6 LASTNOSTI ...... 19 2.2.7 MENIJI ...... 20 2.2.8 PRIPOMOČKI ...... 21 2.2.9 SPREMENLJIVKE ...... 23 2.2.10 DOGODKI ...... 24 2.3 PODATKOVNA BAZA ...... 26 2.4 UPORABA JEZIKA JAVASCRIPT ...... 33 2.5 UPORABA JEZIKA ...... 39 2.6 RAZVOJ ZA MOBILNE APLIKACIJE ...... 41 2.7 NAMESTITEV APLIKACIJ ...... 43 2.7.1 WAVEMAKER ...... 43 2.7.2 OBLAK ...... 44 2.7.3 STREŽNIK ...... 46 2.8 VARNOST ...... 48 2.8.1 KAKO VARNOST DELUJE? ...... 48 2.8.2 PREVERJANJE PRISTNOSTI ...... 49 2.8.3 VARNOSTNI IZVAJALCI ...... 50 2.9 UVOZ IN IZVOZ PROJEKTA ...... 54 2.10 ALTERNATIVNA ORODJA ...... 55 3 IZDELAVA PROTOTIPNE APLIKACIJE ...... 60 3.1 IDEJA IN CILJI ...... 60 3.2 NAČRTOVANJE IN RAZVOJ ...... 61 3.3 IMPLEMENTACIJA ...... 61 3.4 UPORABNA VREDNOST ...... 68 4 DELOVANJE APLIKACIJE ...... 70 4.1 PRVI DOSTOP DO SISTEMA ...... 70 4.2 UPORABNIŠKI PROFIL ...... 71 4.3 POSLOVNI PARTNER ...... 72 4.4 STORITVE ...... 72 4.5 ODČITKI ...... 73 4.6 RAČUNI ...... 74 4.7 SPOROČILA ...... 75 4.8 ADMINISTRATORSKI NAČIN ...... 76 5 SKLEPNE UGOTOVITVE ...... 80 LITERATURA ...... 82 V

KAZALO SLIK Slika 2.1: WaveMaker [1] ...... 13 Slika 2.2: Uporabniški vmesnik ...... 16 Slika 2.3: Paleta, Model, Storitve ...... 17 Slika 2.4: Hierarhično drevo ...... 18 Slika 2.5: Storitve aplikacije ...... 19 Slika 2.6: Lastnosti pripomočkov ...... 20 Slika 2.7: Vezava podatkov ...... 22 Slika 2.8: »Živa« spremenljivka ...... 23 Slika 2.9: Pogled izbrane spremenljivke ...... 23 Slika 2.10: Dogodki ...... 24 Slika 2.11: Gumb in dogodek klik ...... 25 Slika 2.12: Podatkovna baza HSQLDB ...... 28 Slika 2.13: Pripomočki podatkovne baze HSQLDB ...... 28 Slika 2.14: Podatkovna baza MySQL ...... 29 Slika 2.15: Pripomočki podatkovne baze MySQL ...... 30 Slika 2.16: Primer podatkovnega modela ...... 31 Slika 2.17: Poizvedba HQL ...... 32 Slika 2.18: Poizvedba s pomočjo Java metode ...... 33 Slika 2.19: JavaScript urejevalnik ...... 34 Slika 2.20: JavaScript funkcije ...... 34 Slika 2.21: Osnove JavaScripta ...... 35 Slika 2.22: JavaScript v spremenljivkah ...... 36 Slika 2.23: JavaScript v spremenljivkah ...... 36 Slika 2.24: JavaScript v spremenljivkah ...... 37 Slika 2.25: JavaScript v spremenljivkah ...... 37 Slika 2.26: JavaScript funkcije pripomočkov ...... 38 Slika 2.27: JavaScript funkcije pripomočkov ...... 38 Slika 2.28: Uporaba JavaScripta v mreži...... 38 Slika 2.29: Uporaba JavaScripta v mreži...... 39 Slika 2.30: Java urejevalnik ...... 39 Slika 2.31: Java metoda ...... 40 Slika 2.32: Klic Java metode ...... 41 Slika 2.33: PhoneGap [9] ...... 41 Slika 2.34: Primer mobilne aplikacije »eStoritve« ...... 42 Slika 2.35: Pogledi: Namizje, Tablični računalnik, Mobilna naprava...... 43 Slika 2.36: Namestitev v oblak ...... 45 Slika 2.37: Upravljanje aplikacij v oblaku ...... 46 Slika 2.38: [11] ...... 47 Slika 2.39: Namestitev na strežnik ...... 47 Slika 2.40: Urejevalnik varnosti ...... 49 Slika 2.41: Spremenljivka za odjavo ...... 52 Slika 2.42: Dogodek OnClick ...... 52 Slika 2.43: Opredelitev vlog ...... 53 Slika 2.44: Konfiguriranje vlog za ponudnika varnosti ...... 53 Slika 2.45: Konfiguracija vloge za varnost LDAP ...... 54 Slika 2.46: Vloge za dostop ...... 54 VI

Slika 2.47: [16] ...... 55 Slika 2.48: Platforma Wakanda [17] ...... 56 Slika 2.49: WebRatio [18] ...... 57 Slika 2.50: AppFlower [19] ...... 58 Slika 3.1: eStoritve ...... 60 Slika 3.2: eStoritve – Ustvarjanje projekta ...... 61 Slika 3.3: eStoritve – Wildfly ...... 62 Slika 3.4: eStoritve – Uvoz podatkovne baze ...... 63 Slika 3.5: eStoritve – Podatkovna baza ...... 64 Slika 3.6: eStoritve – Spremenljivke ...... 64 Slika 3.7: eStoritve – Podatkovna baza Pripomočki ...... 65 Slika 3.8: eStoritve – Dodajanje pripomočkov na platno ...... 65 Slika 3.9: eStoritve – Primer obrazca Master – Detail ...... 66 Slika 3.10: eStoritve – Mreža oziroma tabela računov ...... 67 Slika 3.11: eStoritve – Obrazec ...... 67 Slika 3.12: eStoritve – Vnos odčitkov ...... 68 Slika 3.13: eStoritve – Prijavna stran ...... 69 Slika 3.14: eStoritve ...... 69 Slika 4.1: Prijavna stran eStoritve ...... 70 Slika 4.2: Račun komunalnih storitev ...... 71 Slika 4.3: Aplikacija eStoritve ...... 71 Slika 4.4: Uporabniški profil podatki ...... 72 Slika 4.5: Poslovni partner ...... 72 Slika 4.6: Storitve ...... 73 Slika 4.7: Odčitki ...... 73 Slika 4.8: Vnos odčitka ...... 74 Slika 4.9: Računi ...... 74 Slika 4.10: Izpisek odprtih postavk ...... 75 Slika 4.11: Sporočila ...... 75 Slika 4.12: Pregled poslanih sporočil ...... 76 Slika 4.13: Administratorski način ...... 77 Slika 4.14: Administrator in pregled odčitkov ...... 77 Slika 4.15: Administrator in aktivno obdobje ...... 78 Slika 4.16: Administrator in pregled sporočil ...... 78 Slika 4.17: Administrator in obvestila ...... 79 Slika 4.18: Administrator in log ...... 79

VII

Seznam uporabljenih tujk

Simbol Tujka Prevod Kaskadni stili – predloge za CSS Cascading Style Sheets oblikovanje spletnih strani. HTML – jezik, s katerim opišemo HTML Hypertext Markup Language gradiva, ki jih želimo objaviti na spletu. MySQL (SQL – Structured MySQL – odprtokodni sistem za MySQL Query Language) upravljanje zbirk podatkov. PostgreSQL – zmogljiv Object-relational database PostgeSQL odprtokodni sistem za upravljanje s management system podatkovnimi bazami. Strežnik SQL – podatkovna SQL Structured Query Language platforma, ki je razširljiva za poslovne aplikacije. URL – naslov spletnih strani v URL Uniform Resource Locator svetovnem spletu. JDBC – knjižnica v Javi za dostop JDBC Java Database Connectivity do podatkovne baze. Vodilni SQL relacijske baze HSQLDB HyperSQL DataBase podatkov programske opreme, ki je napisan v jeziku Java. HQL Query Language Hibernatov povpraševalni jezik.

PaaS Platform Model za dostavo storitev. IP-naslov – število, ki natančno IP Protocol določa računalnik v omrežju Internet. Najbolj razširjen sistem za stiskanje ZIP Archive File Format datotek na osebnih računalnikih.

VIII

Določa poimenovanje in imenik Java Naming and Directory funkcionalnosti aplikacije, ki je JNDI Interface napisana v programskem jeziku Java. WAR Web Application Archive Spletna arhivska zbirka aplikacije.

EAR Enterprise Archive Arhivska zbirka za podjetništvo. RBAC – pristop za omejevanje RBAC Role Based Access Control dostopa do sistema pooblaščenim uporabnikom. LDAP – programski protokol za Lightweight Directory poizvedovanje in spreminjanje LDAP Access Protocol imeniških storitev, ki tečejo preko TCP/IP. Glavna metoda za prenos informacij HTTP HyperText Transfer Protocol na spletu. Interaktivno razvojno okolje, ki Integrated Development ponuja celovito ponudbo za IDE Environment računalniške programerje za razvoj programske opreme. Standardiziran jezik za modeliranje Interaction Flow Modeling IFML na področju inženiringa programske Language opreme. Grafična notacija za modeliranje Business Process Modelling BPMN poslovnih procesov in delovnih Notation tokov.

IX

RAZVOJNA PROGRAMSKA PLATFORMA WAVEMAKER

Ključne besede: WaveMaker, JavaScript, Ajax, RAD (angl. Rapid Application Development), Java.

UDK: 621.39:(659.2:004)(043.2)

Povzetek

WaveMaker je odprtokodna programska platforma za razvoj, ki avtomatizira postopke za izdelavo Java spletnih aplikativnih rešitev in razvoj aplikacij v oblaku. Spada med orodja za hiter vizualni razvoj aplikativnih rešitev (angl. Rapid Application Development) in omogoča izdelavo aplikacij za namizne računalnike, tablične računalnike in pametne telefone, ki so neodvisne od platforme. Mobilne aplikacije delujejo na pametnih telefonih ne glede na to, ali se uporablja sistem Android, Apple iOS, Windows Phone 7 ali kateri drugi operacijski sistem. Platforma je na voljo za brezplačen prenos odprtokodne programske opreme za izdelavo aplikacij.

Kot primer uporabnosti platforme je predstavljena aplikativna rešitev spletnega informacijskega portala, preko katerega odjemalci spremljajo porabo, stanje plačil in odprtih postavk ter na enostaven način sporočijo stanja merilnih naprav. Portal je v celoti izdelan v platformi WaveMaker.

X

DEVELOPMENT PLATFORM WAVEMAKER

Keywords: WaveMaker, JavaScript, Ajax, RAD (Rapid Application Development), Java.

UDK: 621.39:(659.2:004)(043.2)

Abstract

WaveMaker (formerly named ActiveGrid) is an open source software development platform that automates much of the process for creating Java web and applications. WaveMaker provides a visual rapid application development (RAD) platform and is available as a free open source software download. WaveMaker allows building applications for desktop computers, tablet computers and smartphones, which are be platform independent. Mobile applications running on smartphones regardless of whether the system Android, Apple iOS, Windows Phone 7 or any other operating system.

As an example of the usefulness of the platform will be presented application solution web- based information portal. Web-based application that allows the user to submit the state for the calculation of water, gas and heating. The application provides an overview of invoices and payments and insight into the archive and debit payments. The user can review the status of water, gas and heating at the measuring point. Insight into the technical details of the measuring point and the opportunity to receive an electronic invoice for utilities.

XI

1 UVOD

V diplomskem delu bo predstavljena razvojna programska platforma WaveMaker. WaveMaker je odprtokodna programska platforma za razvoj, ki avtomatizira postopke za izdelavo Java spletnih aplikativnih rešitev in razvoj aplikacij v oblaku. Spada med orodja za hiter vizualni razvoj aplikativnih rešitev (angl. Rapid Application Development) in omogoča izdelavo aplikacij za namizne računalnike, tablične računalnike in pametne telefone, ki so neodvisne od platforme. [1]

Kot primer uporabnosti platforme bo predstavljena aplikativna rešitev spletnega informacijskega portala (»eStoritve«), preko katerega bodo odjemalci komunalnih storitev spremljali porabo, stanje plačil in odprtih postavk ter na enostaven način javljali stanja merilnih naprav.

12

2 WAVEMAKER

Prikazani bodo tehnološki postopki, potrebni za delovanje aplikacije, načrtovanje in izdelavo spletnega portala, ter napredne možnosti, ki jih nudi hitro razvojno orodje WaveMaker.

2.1 KAJ JE WAVEMAKER?

WaveMaker je odprtokodna programska platforma za razvoj, ki avtomatizira postopke za izdelavo Java spletnih aplikativnih rešitev in razvoj aplikacij v oblaku. Spada med orodja za hiter vizualni razvoj aplikativnih rešitev (angl. Rapid Application Development). Omogoča izdelavo aplikacij za namizne računalnike, tablične računalnike in pametne telefone, ki so neodvisne od platforme. Mobilne aplikacije delujejo na pametnih telefonih ne glede na to, ali se uporablja sistem Android, Apple iOS, Windows Phone 7 ali kateri drugi operacijski sistem. [1]

Avtor: WaveMaker Razvijalec: Pramati Technologies Stabilna različica: 6.7.0 Napisana v: Java, JavaScript Operacijski sistem: Windows, Mac OS X, Tip: Rapid aplikacijski razvoj Licenca: Apache licenca 2.0 Spletna stran: www.wavemaker.com

Slika 2.1: WaveMaker [1]

2.1.1 GLAVNE ZNAČILNOSTI IN PREDNOSTI

Izvaja se v brskalniku, kjer aplikacije med tem, ko se jih implementira, dejansko delujejo, zaradi česar je veliko lažje testiranje in razhroščevanje spletne aplikacije. Uporabniški

13

vmesnik aplikacije vsebuje strani in pripomočke, ki zagotavljajo vnaprej vgrajeno funkcionalnost in obnašanje pripomočkov. Vsebuje široko paleto nastavljivih pripomočkov, kot so obrazci, urejevalniki in gumbi, ki uporabnikom omogočajo interakcijo z aplikacijo. Podatkovni objekti so zelo uporabni pripomočki, ki so vezani na podatkovno bazo. Ko se določi ali uvozi nova podatkovna baza, pa WaveMaker samodejno ustvari podatke objekta za vsako tabelo v podatkovni bazi. Objektni podatkovni pripomočki omogočajo enostavno izgradnjo spletnih obrazcev, ki ustvarjajo, preberejo, posodabljajo in brišejo zapise iz podatkovne baze brez kodiranja. [2]

Omogoča preprost uporabniški nadzor nad pripomočki, in sicer kaj se zgodi z njimi oziroma njihovo obnašanje. Na primer, ko uporabnik klikne na gumb, se izbere element iz menija ali pa se vnese podatke v urejevalnik, ki nato sprožijo enega ali več dogodkov. Dogodki povzročijo, da se program odzove z navigacijo na novo stran, vstavi zapis v podatkovno bazo ali opravi kakšno drugo opravilo. Lastnosti za posamezni pripomoček opredeljujejo njegovo obnašanje. Pripomočki so tudi funkcije, ki se jih lahko pokliče neposredno z uporabo jezika JavaScript in ki razvijalcem omogočajo razširiti obnašanje gradnikov. [2]

2.1.2 WAVEMAKER SPECIFIKACIJE

Specifikacije: [3]  Brskalniki: WaveMaker podpira vse sodobne brskalnike, vključno z IE, Firefox, Safari in Chrome.  Operacijski sistemi: WaveMaker Studio in WaveMaker strežnik se lahko namesti na Windows 7/XP/Vista/Server 2003, Mac OS X, Red Hat Enterprise Linux, CentOS, Debian ali Ubuntu.  Strežniki aplikacij: WaveMaker podpira Tomcat, JBoss, GlassFish, WebSphere in WebLogic. Deluje v vseh standardnih J2EE okolju.  Podatkovne zbirke: WaveMaker podpira MySQL, PostgreSQL, HSQLDB, Oracle, SQL Server in IBM DB2.  Varnost: WaveMaker podpira tehnologije LDAP, JOSSO, SiteMinder ali SPNEGO.

14

Slika 2.2: Razvojno orodje WaveMaker [3]

2.1.3 KDO NAJ BI UPORABLJAL WAVEMAKER?

WaveMaker naj bi uporabljali:  poslovni analitiki, ki lahko izdelajo prototip spletne aplikacije in zahteve dokumentov brez kodiranja in brez znanja o podatkovni bazi,  razvijalci z osnovnim znanjem o podatkovnih bazah, ki lahko uporabljajo razvojno orodje WaveMaker za izgradnjo oblikovno usmerjenih spletnih aplikacij brez kodiranja,  poslovni razvijalci z znanjem JavaScripta, ki lahko uporabljajo razvojno orodje WaveMaker za hitro izgradnjo bogatih spletnih aplikacij brez znanja jezika Java,  razvijalci programske opreme z znanjem jezika Java, ki lahko uporabljajo razvojno orodje WaveMaker za izgradnjo razširljivih in poslovnih aplikacij. [2]

2.2 WAVEMAKER UPORABNIŠKI VMESNIK

Aplikacijo se oblikuje tako, da gradnike povlečemo iz palete na platno in uredimo njihovo postavitev v zavihku Platno (angl. Canvas). Pripomočki zagotavljajo posebno obliko in funkcionalnosti, ki se uporabljajo za izgradnjo aplikacije. Obnašanje pripomočkov se nastavi skozi zavihek Lastnosti (angl. Properties). Po urejanju pripomočkov na platnu nato WaveMaker gradi interni model, ki se nahaja pod zavihkom Model (angl. Model) ter ustvarja kodo, ki odraža postavitev in funkcionalnost aplikacije, ki se nahaja pod zavihkom Izvorna koda (angl. Source). Storitve (angl. Services) zagotavljajo podatke za pripomočke, ki jih 15

najdemo v zgornjem meniju Storitev, ki se uporabljajo za uvoz, izvoz in oblikovanje podatkovne baze, uvoz spletnih storitev, konfiguriranje varnosti in konfiguracijo kode strežnika Java. Zavihek Storitve, ki se nahaja na levi strani uporabniškega vmesnika, pa se uporablja za ogled, spreminjanje in brisanje storitev. [4]

Slika 2.2: Uporabniški vmesnik

2.2.1 PLATNO

Zavihek Platno (angl. Canvas) prikazuje vizualno postavitev pripomočkov, ki so dodani v aplikacijo. Z vlečenjem na platno poljubno postavimo pripomočke na stran in pri postavitvi pripomočka na platno lahko opazimo zeleno vrstico, ki se pojavi in kaže, kje se bo gradnik postavil, če izpustimo gumb miške. Platno vključuje orodno vrstico z znanimi urejevalnimi operacijami, ki jih lahko opravimo na izbranem pripomočku (Shrani, Izreži, Kopiraj, Prilepi, Izbriši, Razveljavi).

Poleg orodne vrstice Platna so vključene še naslednje stvari:  preklopni oris pogleda, ki omogoča ogled strani s pripomočki, ki so bili dodani na platno,  izbira za spremembo strani, ki naj se prikaže,  izbira jezika za spremembo prikazanega jezika,  izbira pogleda za različne naprave, na katerih se bo izvajala aplikacija (namizna aplikacija – računalnik, tablični računalnik, mobilna naprava).

16

2.2.2 IZVORNA KODA

Z vlečenjem pripomočkov na platno WaveMaker generira kodo, ki izraža svojo implementacijo kode, ki jo lahko vidimo pod zavihkom Izvorna koda (angl. Source). Projekt oziroma aplikacijo lahko uredimo z vizualnim pristopom na platnu ali preko kode v zavihku Izvorna koda (angl. Source) in v podskupini zavihkov:  Skripta (angl. Script) omogoča urejanje Java kode,  CSS (angl. CSS – Cascading Style Sheets) omogoča urejanje CSS kode,  Označevalni jezik (angl. Markup) omogoča urejanje HTML (angl. Hypertext Markup Language) kode,  Pripomočki (angl. Widgets) omogočajo postavitev pripomočka za aplikacijo,  App skripta (angl. App Script) in App pripomočki,  Teme (angl. Themes), kjer lahko izberemo, prilagodimo ali ustvarimo nove teme,  Dokumentacija (angl. Documentation) omogoča ogled vseh dokumentacij za projekt,  Strežniški dnevnik (angl. Server Logs) prikaže informacije od zagonov aplikacije,  Viri (angl. Resources) upravljajo s slikami, z jeziki HTML, CSS in JavaScript.

2.2.3 PALETA

Zavihek Paleta (angl. Palette) prikaže vse pripomočke in druge elemente, ki so na voljo za izgradnjo aplikacije. Pripomočke enostavno izberemo iz drevesa, ki ponuja nabor vseh pripomočkov, in jih povlečemo iz palete na platno. Uporabimo lahko tudi iskalno polje za iskanje določenih pripomočkov.

Slika 2.3: Paleta, Model, Storitve 17

2.2.4 MODEL

Zavihek Model (angl. Model) prikazuje hierarhično drevo vseh vizualnih pripomočkov, ki so trenutno na strani oziroma dodani na platno. Izbiranje pripomočkov v drevesu izbere tudi pripomoček na platnu.

Slika 2.4: Hierarhično drevo

2.2.5 STORITVE

Zavihek Storitve (angl. Services) prikazuje storitve in sestavne dele v aplikaciji. Podpira naslednje storitve:  podatkovne baze, ki določajo, kako se prijavimo v podatkovno bazo in dostop do podatkov,  »živi pogled«, ki definira pogled na podatkovno bazo, ki lahko vrne podatke iz več tabel,  poizvedbe, ki omogočajo razvijalcem, da ustvarijo poizvedbe podatkovne baze po meri,  metode Java na strežniku,  varnostne storitve, ki omogočajo prijavo, nadzor dostopa, ki temelji na dodeljenih vlogah za posameznega prijavljenega uporabnika.

18

Izberemo storitev v drevesu za prikaz podrobnosti o tej storitvi in če se želimo vrniti v pogled platna po ogledu storitev, preprosto izberemo zavihek Paleta (angl. Palette). Komponente so nevizualni elementi uporabniškega vmesnika: spremenljivke, storitvene spremenljivke, navigacijski klici in viri, kot so seznami slik. Komponente so organizirane glede na lastnika aplikacije po tipu. Pri izbiri komponente lahko v zavihku Lastnosti spreminjamo funkcionalnosti posamezne komponente.

Slika 2.5: Storitve aplikacije

2.2.6 LASTNOSTI

S pomočjo zavihka Lastnosti (angl. Properties) lahko prilagodimo lastnosti za izbrani pripomoček, storitev ali nevizualne komponente. Lastnosti prilagodijo obnašanje aplikacije in vizualni videz.

19

Slika 2.6: Lastnosti pripomočkov

Nekaj ključnih lastnosti za obnašanje aplikacije in vizualni videz: [4]  ime (angl. name) – prikazuje ime pripomočka,  prikaži (angl. showing) – pripomoček na platnu, če je polje označeno,  širina, višina (angl. width, height) – izraženo v slikovnih pikah (px) ali kot odstotek (%),  razporeditev (angl. layoutKind) omogoča razporeditev (od leve proti desni ali od zgoraj proti dnu) pripomočkov znotraj Panela (angl. Panel),  vodoravna poravnava (angl. horizontalAlign) poravna pripomočke levo, sredinsko ali desno,  navpična poravnava (angl. verticalAlign) poravna pripomočke na vrh, sredino ali na dno.

2.2.7 MENIJI

WaveMaker meniji nudijo naslednje možnosti:  Datoteka (angl. File) – omogoča ustvarjanje novega projekta, shranjevanje, odpiranje, zapiranje, kopiranje, brisanje, izvoz, uvoz, nameščanje aplikacije na strežnik, spreminjanje nastavitev WaveMaker razvojnega orodja.

20

 Urejanje (angl. Edit) – tu najdemo standardne ukaze, kot so Izreži, Kopiraj, Prilepi, Izbriši, Razveljavi.  Vstavi (angl. Insert) – omogoča vstavljanje spremenljivk, menijev, seznamov slik, lastnosti.  Stran (angl. Page) – omogoča, da lahko ustvarimo, shranimo, uvozimo ali izvozimo izbrano stran. Strani so poglavitni element aplikacije, ki ima lahko eno ali več strani. Strani vsebujejo pripomočke, panele in druge gradnike na strani.  Storitve (angl. Services) – omogočajo upravljanje storitev vključno s podatkovnimi bazami, poizvedbami, spletnimi storitvami, storitvami Java in varnosti.  Pomoč (angl. Help) – omogoča poiskati WaveMaker pomoč, ki vsebuje: vaje, dokumentacijo (WaveMaker priročnik za uporabnike), skupnost (dostop do WaveMaker orodij za razvijalce skupnosti), Java server dokumentacijo.  Zaženi (angl. Run) – omogoča, da lahko zaženemo in preizkusimo aplikacijo, naredimo preizkusni zagon aplikacije za iskanje in odpravljanje napak ali pripravo (angl. Compile) aplikacije za nadaljnje delo.

2.2.8 PRIPOMOČKI

Pripomočki (angl. Widgets) so vizualni elementi, ki zagotavljajo uporabniški vmesnik aplikacije. Podatke, ki jih želimo prikazati v pripomočkih, običajno pridobimo iz spremenljivk. Pripomočke povlečemo iz palete, da ustvarimo postavitev aplikacije. Zagotovijo posebno postavitev in funkcionalnost, ki se uporablja za izgradnjo aplikacije. Ko je posamezni pripomoček izbran, se na desni strani prikažejo lastnosti pripomočka, ki opredelijo njegovo obnašanje.

Največkrat uporabljeni pripomočki:  Podatkovna baza (angl. Database) se ustvari samodejno, ko je podatkovna baza uvožena. Pripomoček podatkovne baze je ustvarjen za vsako tabelo v podatkovni bazi.  Mreža (angl. Grid) prikazuje podatke v več vrsticah iz podatkovne baze.  Gumb (angl. Button) omogoča izvajanje dogodka, ko uporabnik klikne nanj.  Panel (angl. Panel) omogoča shranjevanje in pozicioniranje drugih pripomočkov. 21

 Zavihki (angl. Tabs) omogočajo preklapljanje med različnimi paneli.  Urejevalnik (angl. Editor) prikazuje podatke in omogoča uporabniku, da vnese vsebino. Urejevalniki so specializirani za določene vrste vsebine, kot so besedilo, številke, datumi ali izbira izmed nastavljenimi možnostmi.  Obrazec (angl. Form) prikaže vrstico podatkovne baze in omogoča uporabniku, da odpre, posodobi ali izbriše te podatke.  Pojavno okno (angl. Dialog) – pogovorno okno, ki lahko vsebuje druge pripomočke.  Iskanje in povezani urejevalnik (angl. Lookup and Related Editor) – prikažejo povezane podatke v obliki, kot je odnos od ena proti mnogo.

Pogoste konfiguracije vključujejo: [4]  Vezava podatkov (angl. Data binding) omogoča določitev vsebine, ki se prikaže v Pripomočku. Vsebina, ki se prikaže v Pripomočku, pa je pridobljena s pomočjo poizvedb iz podatkovne baze ali s pomočjo spletnih ali Java storitev ali v povezavi z drugimi pripomočki.

Slika 2.7: Vezava podatkov

 Dogodek vezave podatkov (angl. Event binding) omogoča določanje obnašanja pripomočkov, ko pride do izvedbe dogodka, kot je na primer klik na gumb.  Oblika (angl. Styling) omogoča nastavitve velikosti in oblike pripomočkov.

Urejanje velikosti pripomočkov: [4]  Pripomoček ima višino in širino. Meritve širine in višine si lahko ogledamo na dva načina: o slikovne točke (px), ki pomenijo število točk, ki jih pripomoček zaseda, o odstotek (%), ki je del, ki ga pripomoček zaseda. 22

 Spremenimo višino in širino z nastavitvijo lastnosti v zavihku Lastnosti ali s klikom in z vlečenjem zunanjega roba pripomočka. Sprememba velikosti pripomočka z vlečenjem zunanjega roba povzroči, da se enote samodejno nastavijo na slikovne točke (px).

V drevesu lahko raziščemo, kje se nahajajo vsi pripomočki, ki so na voljo v razvojni programski platformi WaveMaker. Če poznamo ime pripomočka, lahko uporabimo možnost iskanja na vrhu palete, ki omogoča, da hitro najdemo željen pripomoček po njegovem imenu.

2.2.9 SPREMENLJIVKE

Spremenljivke (angl. Variables) omogočajo prenašanje informacij v pripomoček.

»Živa« spremenljivka (angl. LiveVariable) omogoča komuniciranje s podatkovnimi bazami, ki lahko bere iz podatkovne baze ali shranjuje rezultate ter vsebino tudi izbriše iz podatkovne baze. Vsebine so »žive«, saj so rezultati podatkovne baze, ki preberejo operacijo, takoj vidni v razvojnem okolju WaveMaker. Ni treba zaganjati aplikacije, da bi videli rezultate. Spremenljivka filtrira tudi rezultate poizvedbe. »Živi« pogledi pa vključujejo podatke, ki so lahko pridobljeni iz več povezanih tabel. Za vpogled podatkov v »živi« spremenljivki preprosto izberemo zavihek Storitve (angl. Services) in v razdelku Komponente izberemo želeno spremenljivko.

Slika 2.8: »Živa« spremenljivka

Nato izberemo gumb Uredi pogled (angl. Edit view), kjer spremenljivka pridobi podatke iz tabele (pridobi vse stolpce tabele, ki so tudi izbrani).

Slika 2.9: Pogled izbrane spremenljivke

23

WaveMaker omogoča tudi pripomoček, ki se uporablja za prikaz podrobnosti o eni vrstici iz tabele v podatkovni bazi, ki se imenuje Živi obrazec (angl. LiveForm). Obrazec ponuja tudi možnost, da vstavimo nove vrstice, posodobimo vrstico ali izbrišemo obstoječe vrstice.

Spremenljivka shranjuje podatke, ki se lahko prikažejo v Pripomočkih. Pogosto se označuje kot wm.Variable.

Storitvena spremenljivka (angl. ServiceVariable) poziva storitve, vključno s spletnimi storitvami, storitvami Java ali poizvedbami iz podatkovne baze. Rezultati so shranjeni v spremenljivki, tako da nam ni treba ponovno zagnati storitve vsakič, ko potrebujemo rezultate. Razvijalec lahko zagotovi vhodne parametre za spremenljivko in vrne en sam rezultat ali niz rezultatov.

2.2.10 DOGODKI

Uporabniki s klikom na gumb ustvarjajo različne aplikacijske dogodke. Razvojno programsko okolje WaveMaker ponuja različne načine za povezovanje dogodkov. S klikom na gumb na primer lahko povzročimo zahtevek za navigacijo na novo spletno stran.

Slika 2.10: Dogodki

Naslednja slika kaže Dogodek (angl. OnClick), ki povzroča funkcijo JavaScript za izbran gumb ter zahtevek za navigacijo na novo plast v aplikaciji. Navigacijski klic natančno določa, kako se premaknemo z ene strani na drugo, ko pride do dogodka. Navigacijski klici so komponente, ki jih dodajamo v svoj projekt.

Obstaja več načinov, da se lahko premikamo z ene strani na drugo: [4]  Zavihek plasti (angl. Tab layers) omogoča premik z ene plasti na drugo,

24

 Akord plasti (angl. Accordion layers) omogoča navigacijo na drugo plast,  Čarovnik za plasti (angl. Wizard layers) omogoča izbiro naslednje ali prejšnje plasti s pomočjo navigacijskih gumbov.

Navigacijski klic se lahko sproži tudi ob izvedbi različnih dogodkov in lahko spremeni, kaj se prikaže ali izvede:  klik na gumb, kjer lahko uporabimo dogodek (klik na gumb), ki sproži prehod na novo stran ali plast,  izbor mreže, kjer lahko uporabimo dogodek (izberemo vrstico na mreži), ki sproži navigacijo.

Slika 2.11: Gumb in dogodek klik

Obstaja veliko dogodkov, ki se pojavljajo v razvojnem okolju WaveMaker. Najpogostejši dogodki so dogodki vmesnika uporabnika, ko uporabnik klikne na gumb. Dogodki se sprožijo tudi ob spremembah vrednosti urejevalnika ali ko storitvena spremenljivka dobi nove podatke iz strežnika. Na voljo imamo več možnosti za natančno določanje dogodkov za posamezni pripomoček (na primer, kaj se bo zgodilo, ko kliknemo na gumb).

Tukaj je nekaj primerov: [4]  prikaz pogovornega okna (angl. Show a Dialog),  prikaz plasti (angl. Show a Layer),  izvedba storitvene spremenljivke (angl. ServiceVariable) – na primer, ko uporabnik klikne na gumb Išči, se storitvena spremenljivka izvede vsakič, ko pritisnemo gumb, zaradi česar se spremenljivka posodobi z novimi podatki,

25

 izvedba »žive« spremenljivke (angl. LiveVariable), kjer uporabnik klikne na gumb Shrani in spremenljivka izbere možnost za dogodek (shrani, prebere, izbriše, posodobi podatke v podatkovni bazi),  navigacijski klic (angl. Navigation Call), kjer uporabnik klikne gumb Naslednja stran in navigacijski klic naloži novo stran,  izvedba lastnih implementiranih funkcij JavaScript.

Skupni dogodki vključujejo: [4]  OnClick dogodki se sprožijo, ko uporabnik izbere pripomoček (gumbi, slike …),  Onchange dogodki se sprožijo, ko se vsebina pripomočka spremeni (urejevalnik besedila, potrditvena polja, koledar …),  OnShow/OnHide dogodki se sprožijo, ko se pripomoček prikaže ali skrije,  OnSuccess se uporablja za obravnavo dogodkov, ki čakajo na odgovor strežnika,  onError se uporablja za sprejemanje ukrepov, ko strežnikova zahteva ne uspe,  onResult se uporablja, ko se strežniški klic zaključi ali ne uspe oziroma pride do napake.

2.3 PODATKOVNA BAZA

WaveMaker omogoča preprosto ustvarjanje spletnih obrazcev, ki so povezani z osnovno podatkovno bazo. Podatkovni model opisuje strukturo podatkovne baze: tabele, stolpci, ključi in medsebojna razmerja tabel. Za dostop do podatkovne baze iz aplikacije moramo najprej ustvariti nov podatkovni model ali v projekt uvoziti obstoječi podatkovni model. Informacije o povezavah podatkovne baze lahko določimo, ko uvozimo podatkovno bazo. WaveMaker po uvozu podatkovne baze sam ustvari podatkovni model. Obe povezavi podatkovne baze in podatkovnega modela samega je mogoče urejati po uvozu.

Tukaj je nekaj stvari, ki jih lahko storimo v platformi WaveMaker: [6]  Delo s pripomočki podatkovne baze, ki za vsako preglednico uvoženega podatkovnega modela ustvari pripomoček, ki je ustrezno dodan v odsek podatkovnih baz na paleti. Pripomoček lahko enostavno uporabimo, in sicer ga povlečemo na

26

platno in s tem ustvarimo obrazce, ki preberejo, posodobijo ali izbrišejo podatke iz podatkovne baze.  Ustvarimo poizvedbe za pridobivanje podatkov iz podatkovne baze.  Ustvarimo poglede podatkovne baze za združevanje podatkov iz več povezanih tabel, ki jih lahko prikažemo v mrežah, obrazcih ali drugem izbranem pripomočku.  Ustvarimo lahko »žive« spremenljivke, ki imajo podatke iz pogleda ali poizvedbe, ki jih lahko povežemo s podatkovnimi mrežami ali obrazci.

WaveMaker samodejno ne sinhronizira podatkovnega modela in podatkovne baze. Sprememba v podatkovni bazi (na primer, da se doda nova tabela) pomeni, da moramo ponovno uvoziti podatkovno bazo. Podobno moramo storiti, če se spremeni podatkovni model, ki ga želimo videti spremenjenega – v podatkovni bazi moramo izvoziti podatke podatkovnega modela.

Najhitrejši način, da začnemo delati s platformo WaveMaker, je uvoz obstoječe podatkovne baze v WaveMaker. Po uvozu podatkovne baze lahko enostavno ustvarimo obrazce, ki temeljijo na podatkovnem modelu, ki lahko ustvari, posodobi ali izbriše podatke iz podatkovne baze.

To poglavje vsebuje tri pristope za uvoz podatkovne baze v WaveMaker: [6]  uvozimo obstoječo podatkovno bazo,  namestimo podatkovno bazo in ustvarimo vzorec ter uvozimo podatkovno bazo v WaveMaker,  uvozimo obstoječi podatkovni model iz druge podatkovne baze.

Najlažji način je uvoz enega od podatkovnih modelov, kjer lahko uporabimo komplet HSQLDB (angl. HyperSQL DataBase) podatkovno bazo in enega od podatkovnih modelov po vzorcu CMDB ali HRDB. HSQLDB je enotna podatkovna baza uporabnika, ki se uporablja predvsem za aplikacije z demo podatki in za testiranja aplikacij. HSQLDB shranjuje svoje podatke v okviru projekta WaveMaker. Uporaba HSQLDB projektu omogoča, da ga enostavno izvozimo v datoteko .ZIP in pošljemo .ZIP datoteko nekomu

27

drugemu. Prejemnik uvozi projekt in samodejno ima vse potrebne podatke za vodenje projekta [6].

Za uvoz vzorca podatkovne baze CMDB v projekt moramo najprej ustvariti nov projekt WaveMaker, če projekt še ni odprt. V zgornjem meniju Storitve (angl. Services) izberemo Uvozi podatkovno bazo (angl. Import Database), nato se prikaže pogovorno okno za nov podatkovni model, kjer nastavimo podatkovno bazo parametra HSQLDB in uporabniško ime ter geslo, nastaviti moramo tudi parameter datoteke. Izberemo Uvozi podatkovni model in če je bil uvoz uspešen, se morajo ustvariti pripomočki v paleti pod razdelkom Pripomočki podatkovne baze.

Slika 2.12: Podatkovna baza HSQLDB

Slika 2.13: Pripomočki podatkovne baze HSQLDB

Pripomočke lahko povlečemo na platno, kjer lahko izbiramo med različnimi obrazci ter uredimo postavitev obrazcev za prikaz podatkov iz podatkovne baze na platnu. Povezana oblika, ki prikazuje podrobne podatke za trenutno izbranega, zagotavlja tudi možnost, da ustvarimo nov zapis ali ga posodobimo ali preprosto izbrišemo iz podatkovne baze.

28

Za začetniške razvijalce, ki želijo bolj prilagodljivo podatkovno bazo, kot je HSQLDB, sta dobri izbiri MySQL (angl. My Structured Query Language) ali PostgreSQL (angl. Object Relational Database Management System). Opisan in predstavljen bo postopek za MySQL, postopek za PostgreSQL je podoben. Za uporabo podatkovne baze MySQL v platformi WaveMaker je najprej treba namestiti MySQL na lokalni sistem ali oddaljeni strežnik.

Za uvoz podatkovne baze MySQL v projekt moramo najprej ustvariti nov projekt WaveMaker, če projekt še ni odprt. V zgornjem meniju izberemo Storitve (angl. Services) in izberemo Uvozi podatkovno bazo (angl. Import Database). Nato se prikaže pogovorno okno nastavitev za podatkovno bazo. Nastaviti moramo lokacijo podatkovne baze, in sicer je ime gostitelja »localhost«, če se zbirka podatkov nahaja na računalniku, v nasprotnem primeru vnesemo ime gostitelja za računalnik z operacijskim sistemom podatkovne baze. Vnesemo uporabniško ime in geslo, da se prijavimo v podatkovno bazo. Vnesemo tudi ime podatkovne baze, ki je ime podatkovnega modela, opredeljenega v podatkovni bazi. Pritisnemo gumb Preizkusi povezavo, da preizkusimo, ali so bili parametri pravilno vneseni. Pritisnemo na gumb Uvozi podatkovno bazo in če je bil uvoz uspešen, se morajo ustvariti pripomočki v paleti pod razdelkom Pripomočki podatkovne baze. Urejevalnik podatkovne baze pokaže tabele, ki so opredeljene v podatkovnem modelu, ki smo ga pravkar ustvarili.

Slika 2.14: Podatkovna baza MySQL

29

Slika 2.15: Pripomočki podatkovne baze MySQL

Pripomočke lahko povlečemo na platno, kjer lahko izbiramo med različnimi obrazci ter uredimo postavitev obrazcev za prikaz podatkov iz podatkovne baze. Povezana oblika prikazuje podrobne podatke za trenutno izbranega in zagotavlja tudi možnost, da ustvarimo nov zapis, ga posodobimo ali preprosto izbrišemo iz podatkovne baze. WaveMaker ponuja nekatere napredne možnosti konfiguracije podatkovne baze.

Vsak podatkovni sistem omogoča različne možnosti prilagojenih sistemov podatkovne baze, ki ga uporabljamo: [6]  Ime storitve (angl. Service Name) se uporablja za navajanje uvožene podatkovne baze.  Port (angl. Port) je številka vrat za podatkovno bazo.  Povezava URL (angl. Connection URL) se nastavi, ko uvozimo podatkovno bazo z uporabo standardnih možnosti, kjer WaveMaker ustvari JDBC URL (angl. Java Database Connectivity).  Java paket (angl. Java Package), kjer WaveMaker ustvari razred Java, ko uvozimo podatkovno bazo.  Filter tabele (angl. Table Filter), kjer WaveMaker privzeto uvaža vse tabele iz podatkovne baze in če želimo uvoziti samo podniz tabel, preprosto vnesemo v seznam imena tabel, ki so ločena z vejico.  Filtriranje glede na shemo (angl. Schema Filter), kjer WaveMaker uvozi le tabele, ki podpirajo shemo ali če želimo uvoziti tabele iz drugih shem, preprosto dodamo imena shem za uvoz.

30

 Gonilnik za razred JDBC (angl. Driver Class) predstavlja ime gonilnika razreda JDBC. WaveMaker ustvari datoteko JAR za vsako podatkovno bazo, ki uporablja določen gonilnik.

WaveMaker ustvarja drevo podatkovnega modela, ki je sestavljen iz uvožene podatkovne baze. Omogoča prilagoditev podatkovnega modela ali ustvariti povsem nov model podatkov. Prilagajanje obstoječega modela omogoča predvsem spremembo opredelitve obstoječega podatkovnega modela, kot je na primer ustvarjanje bolj razumljivih imen tabel, dodajanje povezave do ostalih podatkovnih modelov, dodajanje novih stolpcev ali tabel v podatkovno bazo. Ustvarjanje novega podatkovnega modela pa omogoča, da se ustvarijo nove tabele, stolpci in povezave med njimi. Novi ustvarjeni modeli morajo biti seveda shranjeni, nato pa se lahko izvozijo, da bodo spremembe začele veljati v podatkovni bazi.

Za ogled tabele podatkovnega modela preprosto izberemo zavihek Storitve (angl. Services) in razširimo model podatkov v drevesu. Za ogled definicije tabele moramo izbrati tabelo s podatki v drevesu.

Slika 2.16: Primer podatkovnega modela

31

Urejevalnik podatkovnega modela sestavljajo tri glavna področja, in sicer splošno, kjer si lahko ogledamo in nastavimo glavne lastnosti tabele podatkovnega modela (Java paket, shema, katalog, ime tabele, ime entitete), stolpci, kjer lahko nastavimo posamezne nastavitve stolpca, in povezave med podatkovnimi modeli.

WaveMaker omogoča ustvarjanje in delo s pogledi podatkovne baze, ki je zbirka sorodnih tabel in njihovih stolpcev. Pogledi lahko združujejo podatke iz več tabel skupaj ali rezultate poizvedbe, ki so shranjeni v spremenljivko. Uporabimo lahko tudi WaveMaker poizvedbe za pridobivanje izbranih informacij iz podatkovne baze. Poizvedba vrne podatke iz tabele ali nabora tabel, ki ustrezajo potrebnim merilom. WaveMaker vsebuje tudi urejevalnike, ki so namenjeni za ustvarjanje in preizkušanje poizvedb, ki jih želimo vključiti v aplikacijo. WaveMaker poizvedbe se izvajajo s pomočjo Hibernate Query Language (HQL), tako da so shranjeni kot del projekta WaveMaker. Poizvedbe lahko izvajamo tudi s pomočjo storitev Java, kjer metoda izvede poizvedbo ali pokliče proceduro, ki je shranjena v podatkovni bazi.

Slika 2.17: Poizvedba HQL

32

Slika 2.18: Poizvedba s pomočjo Java metode

Pripomočki podatkovne baze zagotovijo najlažji način za ustvarjanje obrazcev, ki preberejo, posodobijo ali izbrišejo podatke iz podatkovne baze. Pripomočki podatkovne baze samodejno ustvarijo podatkovni model v projektu. Vsaka tabela v podatkovnem modelu ima ustrezni pripomoček, ki se nahaja v drevesu pripomočkov pod razdelkom Podatkovna baza na paleti. Vsak pripomoček podatkovne baze je sestavljen pripomoček, ki vključuje pripomoček Mreža, ki prikazuje seznam vseh vrstic v tabeli, in pripomoček Obrazec, ki prikazuje podrobne informacije o trenutno izbrani vrstici. Oblika omogoča tudi funkcionalnost za brisanje, posodabljanje ali ustvarjanje novih vrstic v podatkovni bazi. Če se podatkovni model s podatkovno bazo spremeni po tem, ko je bil uvožen, je treba podatkovno bazo ponovno uvoziti. Ponovni uvoz podatkovnega modela posodobi vse definicije tabel v projektu, obstoječih pogledov pa ponovni uvoz ne spremeni. WaveMaker omogoča tudi obraten način, in sicer lahko podatkovni model tudi izvozimo.

2.4 UPORABA JEZIKA JAVASCRIPT

JavaScript omogoča dodatno prilagoditev aplikacije. Tukaj je nekaj primerov, kjer bi lahko uporabljali JavaScript:  nastavitev vrednosti primarnega ključa ali razmerje za novo ustvarjeni podatkovni objekt, 33

 prikazovanje ali skrivanje pripomočka,  omogočanje ali onemogočanje pripomočka,  izračun vrednosti v urejevalniku ali nastavljanje vrednosti na privzeto.

JavaScript urejevalnik vključuje samodejni zaključek in preverjanje sintakse, ki zelo poenostavi nalogo pisanja pravilne kode JavaScripta, saj se koda samodejno preveri, ali je napisana pravilno. Ob zaznani napaki se bo ob številki vrstice prikazala rdeča ali rumena ikona o napaki s sporočilom, ki opisuje napako. Dodatna sintaksa preverjanja se izvede, ko je datoteka shranjena.

Slika 2.19: JavaScript urejevalnik

Za odpravljanje napak so zelo priporočljive naslednje funkcije: [8]  Opozorilo (angl. Alert), ki je vgrajeno v JavaScript in prikaže besedilo v pojavnem oknu,  »Console.log ()«, ki prikaže besedilo v konzoli okna brskalnika,  »Console.dir ()«, ki prikaže predmet v oknu konzole.

Slika 2.20: JavaScript funkcije

34

Predstavljene bodo osnove JavaScripta, uporaba JavaScripta v spremenljivkah in uporaba JavaScript funkcij za posamezne spremenljivke. Osnove JavaScripta prikazujejo funkcije in zmogljivosti, ki jih moramo poznati, preden začnemo programirati oziroma prilagajati aplikacije s pomočjo uporabe JavaScripta. JavaScript je objektno usmerjen programski jezik, ki je na prvi pogled precej podoben programskima jezikoma Java in C++. Kdor je že kdaj napisal kakšen program v enem od teh dveh jezikov, z JavaScriptom ne bo imel posebnih težav. Precej objektov je v JavaScriptu že definiranih in jih lahko takoj uporabimo v svojih programih. Za uporabo JavaScripta ne potrebujemo posebnih orodij (Java zahteva svoj prevajalnik), jezik je enostaven, lahko se ga naučimo in ga tudi mešamo s standardnimi HTML ukazi. [7]

Slika 2.21: Osnove JavaScripta

Po ustvarjeni spremenljivki v WaveMakerju lahko nastavimo, ali je dostop do spremenljivke možen v celotni aplikaciji (do spremenljivke lahko dostopamo na kateri koli strani) ali samo na izbrani strani (do spremenljivke lahko dostopamo samo na določeni strani). Spremenljivki lahko tudi spreminjamo vrednost ali vrednost samo preberemo iz spremenljivke.

35

Slika 2.22: JavaScript v spremenljivkah

Storitvene spremenljivke se lahko uporabljajo za izbiro poizvedb podatkovne baze, za spletne storitve ali klice Java storitev. Urejevalnik se običajno uporablja za določitev vhodnih in izhodnih vrednosti za storitev klica, vendar jih je mogoče nastaviti tudi izrecno s pomočjo uporabe JavaScripta.

Primer (Slika 2.23) prikazuje uporabo JavaScripta v platformi WaveMaker. Na primer, ko imamo gumb Osveži in želimo ustvariti JavaScript, ki se izvrši, ko uporabnik klikne na ta gumb. Za klic JavaScripta za izbrani pripomoček se mora pripomoček najprej izbrati iz drevesa in v zavihku Lastnosti (angl. Property Tree) moramo izbrati želen dogodek. Dogodki, ki so na voljo za izbrani pripomoček, se prikažejo v urejevalniku Lastnosti. Za dogodek, ki ga želimo nastaviti, moramo izbrati možnost JavaScript v spustnem meniju, ki samodejno izjavlja ustrezno funkcijo in odpre zavihek Izvorna koda (angl. Source) na ustreznem mestu.

Slika 2.23: JavaScript v spremenljivkah 36

Gumb Osveži omogoča posodobitev podatkov v spremenljivki »serviceVariableSporocilaPregled«, ko uporabnik klikne nanj. Izvede se ustrezna akcija, ki v spremenljivko pošlje poizvedbo za podatke iz podatkovne baze, ki bodo shranjeni v storitveno spremenljivko.

Primer (Slika 2.24) prikazuje, kako v spremenljivko Partnerji, ki se imenuje »serviceVariablePartnerji«, shranimo SQL stavek ter jo poženemo, da se izvede zahtevana akcija. Spremenljivko se požene z metodo Posodobi (angl. Update).

Slika 2.24: JavaScript v spremenljivkah

Znotraj funkcije JavaScript, kjer se pokliče dogodek »onResult«, ki pomeni, da se je spremenljivka uspešno izvedla, lahko uporabimo naslednje funkcije: [8]  getData (), ki vrne strukturo temeljnih predmetov,  getCount (), ki kaže število vrstic, ki jih storitev klica vrne,  getItem, ki vrne vrednost stolpca za določeno vrsto.

Primer (Slika 2.25) prikazuje, kako vrednosti iz spremenljivke nastavimo za vrednosti posameznega urejevalnika, ki je prikazan na platnu.

Slika 2.25: JavaScript v spremenljivkah

Vse lastnosti, ki jih ima urejevalnik, so lastnosti, ki jih lahko s pomočjo uporabe JavaScript nastavimo.

37

Primer (Slika 2.26) prikazuje pripomočke, kot so številčni urejevalniki, tekstovni in datumski urejevalniki ter gumbi, kjer se vsem pripomočkom nastavi lastnost, ki onemogoči posamezni pripomoček.

Slika 2.26: JavaScript funkcije pripomočkov

Primer (Slika 2.27) prikazuje, da se ob izvedbi dogodka (klik na gumb »buttonProfil«) prikaže zavihek Profil, ki se imenuje »layerProfil« in ob tem skrije panel stranskega menija, ki se imenuje »panelStranskiMeni«.

Slika 2.27: JavaScript funkcije pripomočkov

Pripomoček Mreža na zaslonu prikaže seznam ali niz informacij. Z uporabo JavaScripta lahko nastavimo ali pridobimo podatke iz mreže.

Slika 2.28: Uporaba JavaScripta v mreži

Primer (Slika 2.29) prikazuje, kako iz trenutno označene vrstice v mreži pregled naročil, ki se imenuje »dojoGridPregledNarocil«, pridobimo vrednost celice, ki se imenuje »id«, ter jo 38

shranimo v spremenljivko »id«. Vrednost spremenljivke potem uporabimo za vhodni parameter spremenljivke priloge, ki se imenuje »serviceVariablePriloge«.

Slika 2.29: Uporaba JavaScripta v mreži

2.5 UPORABA JEZIKA JAVA

Java storitve so strežniške storitve, ki razvijalcem omogočajo integracijo z drugimi storitvami, knjižnicami in orodji. Metode Java storitev se uveljavljajo s storitvijo spremenljivk. S tem ustvarimo storitev po meri Java v platformi WaveMaker, in sicer tako, da pod zavihkom Storitve (angl. Services) izberemo Java storitve (angl. Java Service). Prikaže se pogovorno okno Nova storitev Java, kjer je treba vnesti ime storitve, ki uporabniku prijazno navaja ime vaših Java operacij in ime razreda Java. Platforma WaveMaker ustvari datoteko Java, ki se odpre v urejevalniku, kjer lahko ustvarimo nove metode, razrede jezika Java.

Slika 2.30: Java urejevalnik

39

Primer (Slika 2.31) prikazuje metodo »vrniSporocila«, ki kot parameter prejme SQL stavek ali strukturirani povpraševalni jezik za delo s podatkovnimi bazami in vrne podatke iz ene ali več tabel.

Slika 2.31: Java metoda

Vsaka metoda Java je na seznamu skupaj s svojimi vhodnimi in izhodnimi parametri. Svoje operacije Java storitev lahko ustvarimo s pomočjo storitvenih spremenljivk (angl. Service Variables), kamor se shranijo podatki poizvedbe, ki jih je mogoče potem prikazati v mrežah, obrazcih ali v povezavi s katerim drugim pripomočkom.

Primer (Slika 2.32) prikazuje, kako pokličemo metodo »vrniSporocila«, ki podatke shrani v spremenljivko, ki se imenuje »serviceVariableSporocila«. Parameter vsebuje vrednost šifre, ki se nahaja v posamezni spremenljivki, ki se imenuje »variableSifra«. Celoten SQL stavek pa se izvede tako, da pokliče proceduro po imenu »spsporocila_partner«, ki je shranjena v podatkovni bazi. Pri sami spremenljivki pa moramo nastaviti, katero Java metodo naj izvede. Platforma WaveMaker omogoča tudi preprosto dodajanje datoteke .JAR ali Java izvorne kode v projekt. 40

Slika 2.32: Klic Java metode

2.6 RAZVOJ ZA MOBILNE APLIKACIJE

Mobilne naprave so zdaj glavni način, s katerim lahko uporabniki dostopajo do aplikacije, predvsem se število ljudi, ki uporabljajo spletne strani na mobilnih napravah, zelo hitro povečuje. WaveMaker ponuja tudi možnost za razvoj mobilnih aplikacij. Je orodje za izgradnjo HTML aplikacij, ki lahko delujejo na več napravah, vključno z namiznimi, tabličnimi računalniki in mobilnimi telefoni.

Za izgradnjo aplikacije za iOS, Android in druge naprave WaveMaker podpira uporabo PhoneGap. PhoneGap je HTML5 platforma, ki nam omogoča, da z uporabo sodobnih spletnih tehnologij razvijemo aplikacije z dostopom do API-jev in aplikacijskih trgovin za praktično vse pomembnejše mobilne operacijske sisteme: iOS, Android, BlackBerry, WebOS, Windows Phone 7, Symbian in Bada. [9]

Slika 2.33: PhoneGap [9]

Pri tem je razveseljivo tudi to, da je PhoneGap odprtokodna in brezplačna platforma. Po uradnih podatkih podjetja Nitobi ima do zdaj skupno že 600 tisoč prenosov, med uporabniki 41

platforme pa najdemo tudi velika podjetja, kot so IBM, Alcatel-Lucent, Cisco in Logitech. Zaradi odprtosti platforme ne preseneča tudi dejstvo, da veliko izboljšav prispeva kar zunanja skupnost PhoneGap razvijalcev. [9]

Filozofija naše mobilne podpore je omogočiti razvijalcem razvoj aplikacij, ki bodo delovale na mobilnih napravah z uporabo enakih orodij, ki se uporabljajo za gradnjo namiznih aplikacij. WaveMaker nudi enaka orodja (pripomočki, spremenljivke …) za gradnjo mobilnih aplikacij, poleg tega pa so določeni pripomočki specializirani za uporabo v mobilnih aplikacijah.

Slika 2.34: Primer mobilne aplikacije »eStoritve«

WaveMaker omogoča izdelavo aplikacij za namizne računalnike, tablične računalnike in pametne telefone, ki so neodvisne od platforme. Mobilne aplikacije delujejo na pametnih telefonih ne glede na to, ali se uporablja sistem Android, Apple iOS, Windows Phone 7 ali kateri drugi operacijski sistem.

42

WaveMaker omogoča, da lahko med gradnjo aplikacije spreminjamo poglede in preverimo, kako se aplikacija obnaša v pogledu namizne aplikacije ali aplikacije, ki se bo uporabljala na tabličnem računalniku oziroma mobilni napravi.

Slika 2.35: Pogledi: Namizje, Tablični računalnik, Mobilna naprava

2.7 NAMESTITEV APLIKACIJ

Aplikacije, zgrajene z WaveMakerjem, se lahko namestijo na številna okolja, vključno z lokalnimi strežniki javnih in zasebnih oblakov. Aplikacije WaveMaker zahtevajo Java spletni strežnik (na primer Tomcat, TC Server, WebSphere, WebLogic, JBoss). Aplikacije so lahko tudi v obliki WAR datoteke (arhiv spletne aplikacije) ali EAR datoteke (arhiv podjetja). Pred namestitvijo aplikacije WaveMaker moramo ugotoviti, kateri tip strežnika bo uporaben za namestitev aplikacije.

Možnosti strežnika za namestitev aplikacije so: [10]  WaveMaker namestitev je najlažji in najhitrejši način, ki uporablja Java spletni strežnik, ki je vključen v programsko platformo WaveMaker. Ta pristop se ne priporoča za vsakodnevno uporabo.  Oblak (angl. ) lahko gosti aplikacije WaveMakerja.  Java spletni strežnik omogoča samodejno namestitev na tcServer/Tomcat Java spletni strežnik. Namesti se lahko tudi v druge Java spletne strežnike (na primer JBoss, WebLogic, ali WebSphere) s pomočjo WAR ali EAR datoteke.

2.7.1 WAVEMAKER

Najlažji način za uporabo delovanja aplikacije WaveMaker, je, da pritisnemo gumb Zaženi (angl. Run) v razvojnem okolju WaveMaker. Po pritisku na gumb začne delovati aplikacija, do katere lahko preko našega omrežja dostopa vsak. Priporočljivo je predvsem za preizkušanje in testiranje aplikacije, ki bo pozneje naložena na določen strežnik. Po

43

prenehanju z delom v WaveMakerju oziroma ko ga bomo izključili, se bo s tem tudi delovanje aplikacije ustavilo in do nje ne bo več mogoče dostopati.

Elementi, ki sestavljajo URL naslov:  localhost – »generično« ime za naš računalnik v omrežju; za druge uporabnike, ki želijo dostopati do aplikacije, moramo »localhost« zamenjati z dejanskim imenom računalnika (IP naslov),  8094 – port, ki je nameščen na namenskem Apache Tomcat strežniku,  eStoritve – ime aplikacije, kar je isto kot ime projekta WaveMaker,  login. – privzeta začetna stran za aplikacijo z omogočeno varnostjo.

URL za uporabo oziroma dostop do aplikacije bo videti tako:  http://localhost:8094/eStoritve/login.html

Pri uporabi WaveMaker razvojnega okolja za namestitev aplikacije je najboljše, da uporabimo en računalnik za urejanje aplikacije in drugega za zagon aplikacije, ki je dostopna drugim uporabnikom v podjetju. Enostaven način za vodenje razvite aplikacije je, da namestimo WaveMaker razvojno okolje na namenskem računalniku, nato izvozimo projekt kot datoteko ZIP ter ponovno odpremo ZIP datoteko v WaveMakerju na namenskem računalniku in izberemo Zaženi (angl. Run) projekt. Zdaj je aplikacija nameščena in teče na namenskem računalniku. [10]

Upoštevati moramo, da ta pristop omogoča delovanje le ene aplikacije na namenskem računalniku. V primeru, da želimo namestiti oziroma zagnati več aplikacij na namenskem računalniku, pa je najboljši način uporabe oblaka ali namestitev aplikacije na določen strežnik.

2.7.2 OBLAK

Oblak je platforma kot storitev (PaaS), ki zagotavlja dostop do aplikacije WaveMaker. Upravlja aplikacijo in storitve, ki jih uporablja (podatkovne baze, ki so potrebne za delovanje aplikacije). 44

Oblak je odprtokodna programska oprema, ki je na voljo v različnih oblikah, vključno s:  http://www.cloudfoundry.com/ – VMware javni oblak,  http://micro.cloudfoundry.com/ – poganjanje celotnega oblaku na računalniku.

WaveMaker omogoča enostavno namestitev aplikacije v oblak v le nekaj korakih. V WaveMakerju moramo izbrati zavihek Datoteka (angl. File) ter namestiti projekt (angl. Deploy project). V pogovornem oknu moramo izbrati Nova namestitev (angl. New Deployment) in Namestitev v oblak (angl. CloudFoundry).

Slika 2.36: Namestitev v oblak

Za namestitev aplikacije v oblak moramo nastaviti potrebne nastavitve, kot so ime namestitve (angl. Deployment Name), ime aplikacije (angl. Application nam), URL naslov za dostop do aplikacije po namestitvi v oblak, ciljni naslov oblaka (angl. Cloud Foundry target) oziroma lokacijo strežnika. Nastaviti je treba tudi konfiguracije o podatkovni bazi, in sicer za vsako zbirko podatkov, ki se uporabljajo znotraj aplikacije. Če projekt vključuje eno ali več podatkovnih baz, bo pogovorno okno namestitve prikazalo del podatkovne baze. Nastavitvi, potrebni za namestitev podatkovne baze, sta tip (angl. Type) podatkovne baze in ime podatkovne baze (angl. Database name) v oblaku. Nastavitve je treba shraniti za ponovno uporabo v naslednjih namestitvah aplikacije v oblak. Namestitev aplikacije izvedemo s preprostim klikom na gumb Namesti (angl. Deploy).

Aplikacije lahko v oblaku tudi enostavno urejamo, in sicer moramo v WaveMakerju izbrati zavihek Datoteka (angl. File) in namestiti projekt (angl. Deploy project), kjer je treba izbrati Urejanje nameščenih aplikacij (angl. Manage Deployments).

45

Slika 2.37: Upravljanje aplikacij v oblaku

V informacijskem pogovornem oknu v oblaku potrebujemo račun za vstop (ime računa in geslo). Ko izpolnimo podatke, se bo WaveMaker, če so podatki pravilni, povezal v oblak in v seznamu prikazal seznam vseh aplikacij v oblaku. Za ogled aplikacije moramo želeno aplikacijo izbrati s seznama. Za odstranitev aplikacije iz oblaka pa moramo izbrati eno od aplikacij na seznamu in pritisniti Odstrani (angl. Undeploy). Za izbris vseh storitve, ki so povezane z namestitvijo aplikacije, moramo označiti polje, ki izbriše tudi vse storitve.

2.7.3 STREŽNIK

Apache Tomcat je najbolj razširjena spletna aplikacija strežnika na svetu, z več kot milijon prenosov na mesec in več kot 70 odstotki prodorov v podjetja podatkovnega središča. Uporablja se za pogon preprostih uporab enega strežnika, velikih poslovnih omrežjih ... Je odprtokodna implementacija programske opreme v »Java Servlet« in »JavaServer« tehnologiji. Apache Tomcat je programska oprema, ki je razvita v odprtem in participativnem okolju licenčne različice 2. Namenjena je sodelovanju med najboljšimi tovrstnimi vrstami razvijalcev iz celega sveta. [11]

Razvijalec: Apache Software Foundation Razvojni položaj: Aktiven Napisan v: Javi Operacijski sistem: Cross-platform Vrsta: Servlet HTTP spletni strežnik Licenca: Apache licenca 2.0 Spletna stran: tomcat.apache.org

46

Slika 2.38: Apache Tomcat [11]

Primer enostavne namestitve aplikacije na strežnik: najprej v WaveMakerju izberemo zavihek Datoteka (angl. File), namestimo projekt (angl. Deploy project), v pogovornem oknu izberemo Nova namestitev (angl. New Deployment) in nastavimo namestitev na strežnik Tomcat Server v pogovornem oknu namestitve. Izbrati moramo, ali se bo aplikacija namestila na strežnik ali pa se ustvari datoteka WAR (angl. Web Application Archive) ali EAR (angl. Enterprise Archive).

Slika 2.39: Namestitev na strežnik

Nastaviti moramo nastavitve, ki so potrebne za namestitev aplikacije na strežnik: [10]  ime namestitve (angl. Deployment Name),  IP naslov strežnika, na katerega se bo aplikacija WaveMaker namestila; če je aplikacija razvita na lokalnem računalniku, je treba vnesti »localhost«, drugače se vnese IP naslov ali gostiteljsko ime naprave,  ime aplikacije (angl. Application name), ki se uporablja za dostop do aplikacije,  uporabniško ime (angl. User name),  geslo (angl. Password).

Če projekt vključuje eno ali več podatkovnih baz, bo pogovorno okno namestitve prikazalo del podatkovne baze. Potrebna je tudi konfiguracija povezave s podatkovno bazo za vsako zbirko podatkov, ki se uporabljajo znotraj aplikacije.

Nastavitve, potrebne za namestitev podatkovne baze, so: [10]  povezava podatkovne baze (angl. Database connection) – standard ali JNDI,  tip (angl. Type) podatkovne baze – vrsta podatkovne baze je v okviru projekta, 47

 uporabniško ime (angl. User name) za povezavo s podatkovno bazo,  geslo (angl. Password) za povezavo s podatkovno bazo,  gostitelj/IP naslov (angl. Host/IP Address) strežnika podatkovne baze,  port (angl. Port) – številka vrat podatkovne baze,  povezava URL (angl. Connection URL) se uporablja za povezavo s podatkovno bazo podatkov,  ime podatkovne baze (angl. Database name).

Nastavitve je treba shraniti za ponovno uporabo v naslednjih namestitvah aplikacije na strežnik. Namestitev aplikacije izvedemo s preprostim klikom na gumb Namesti (angl. Deploy) in WaveMaker bo namestil aplikacijo na izbrani strežnik. Lahko pa izberemo, da WaveMaker ustvari datoteko WAR (angl. Web Application Archive) ali EAR (angl. Enterprise Archive), ki jo lahko uporabimo za namestitev aplikacije na želeni strežnik.

2.8 VARNOST

Varnost v razvojnem okolju WaveMaker je sestavljena iz dveh temeljnih dejavnosti – preverjanje pristnosti in dovoljenja (avtorizacije). Dejavnost preverjanje pristnosti opredeljuje določenega uporabnika, ki je v večini sistemov uporabnik, označen z edinstvenim uporabniškim imenom in geslom. Dejavnost dovoljenja določa zmogljivosti, ki so na voljo za posameznega uporabnika, ki temelji na uporabnikovem dodeljevanju vlog.

2.8.1 KAKO VARNOST DELUJE?

Z vsako logiko v brskalniku se izvrši JavaScript, ki se lahko manipulira. Varnost WaveMaker strežnika je serija filtrov, ki ugotovijo, ali je treba zahtevo dovoliti ali preprečiti. Če uporabnik ni prijavljen, vendar mora biti prijavljen za dostop do zahtevanega vira, je preusmerjen na stran za prijavo. Če je uporabnik prijavljen, vendar nima pravilnega dostopa do zahtevanega vira, bo zahteva zavrnjena. Ko je omogočena varnost, so vse storitve omejene na privzete prijavljene uporabnike.

48

Vidljivost gradnika RBAC je funkcija na strani odjemalca, ki ga je treba obravnavati le kot pomočnika. Pomaga predstaviti ustrezni vmesnik, ki temelji na vlogi uporabnika. To pomeni, da se določen pripomoček skriva ali onemogoča delo tistim, ki nimajo nastavljene vloge administratorja.

2.8.2 PREVERJANJE PRISTNOSTI

WaveMaker lahko vključuje prijavno stran, ki od uporabnikov zahteva, da se prijavijo in pridobijo dostop do aplikacije. Za vzpostavitev preverjanja pristnosti uporabnikov moramo konfigurirati vir podatkov, ki shranjuje ID uporabnika in uporabnikovo geslo.

Na voljo imamo naslednje možnosti za shranjevanje teh podatkov:  katera koli podatkovna baza, ki jo WaveMaker podpira,  protokol LDAP (angl. Lightweight Directory Access Protocol).

Primer, ki prikazuje, kako enostavno nastavimo prijavno stran za prijavo uporabnikov v aplikacijo:  V zgornjem meniju pod zavihkom Storitve (angl. Services) izberemo možnost Varnost (angl. Security) in prikaže se urejevalnik varnosti.

Slika 2.40: Urejevalnik varnosti

49

 Izberemo vrsto vira podatkov (podatkovne baze, LDAP ali demo), ki ga želimo uporabiti. Preverimo potrditveno polje, ki omogoči varnost in v primeru, da smo razvili svojo aplikacijo, lahko označimo, ali želimo preverjanje pristnosti uporabnikov ter izberemo, ali naj se prijavna stran doda v aplikacijo. Nastavitve moramo shraniti in privzeta stran za prijavo je zdaj navedena pod stranmi, ki se nahajajo v nadzorni plošči. Po zagonu aplikacije se prikaže prijavna stran za prijavo uporabnikov.

2.8.3 VARNOSTNI IZVAJALCI

Razvojna programska platforma WaveMaker vključuje različne izvajalce varnosti: demo, podatkovne baze in LDAP. Podatkovni vir demo je odlično orodje za preverjanje pristnosti. S tem podatkovnim virom določimo nekaj imen in gesel za uporabo pri ustvarjanju in testiranju funkcionalnosti za prijavo v aplikacijo. Preden uvedemo prijavo, moramo vzpostaviti trdnejši podatkovni vir za preverjanje pristnosti. [12]

Če želimo nastaviti avtentikacijo s podatkovnim virom demo:  Izberemo demo za izvajalca varnosti, nastavimo konfiguracije podatkovnega vira demo in omogočimo varnost za prikaz prijavne strani.  Ustvarimo novega uporabnika, pri čemer vnesemo ime v polje za uporabniško ime in geslo ter določimo vloge za posameznega uporabnika.  Če želimo obstoječega uporabnika izbrisati iz podatkovnega vira demo, ga izberemo na seznamu in preprosto odstranimo.

Podatkovni vir demo samodejno vključuje eno privzeto uporabniško ime (demo) in geslo (demo). Bodimo prepričani, da shranimo konfiguracije, preden se opravi preizkus za avtentifikacije. Če bomo uporabljali podatkovno bazo za shranjevanje podatkov za preverjanje pristnosti, potem moramo najprej uvoziti podatkovno bazo, ki jo nameravamo uporabiti. Podatkovna baza mora vsebovati tabelo, ki določa stolpec za uporabniško ime in geslo. Uporabniška imena in gesla morajo biti shranjena v isti tabeli v podatkovni bazi.

50

Če želimo nastaviti avtentikacijo z uporabo podatkovne baze:  Izberemo podatkovno bazo za izvajalca varnosti in nastavimo konfiguracije podatkovne baze ter omogočimo varnost za prikaz prijavne strani.  Izvajalci zagotovijo naslednje podatke o konfiguraciji: o podatkovni model (angl. Data Model) – model podatkov, ki vsebuje stolpce z uporabniškim imenom in geslom, o entiteta (angl. Entity) vsebuje stolpce za uporabniška imena in gesla, o uporabniško ime (angl. User name field), kjer izberemo stolpec za uporabniško ime, o ID uporabnika (angl. User ID), kjer nastavimo ID uporabnika, o geslo (angl. Password field), kjer izberemo stolpec za geslo, o vloga (angl. Role field), kjer izberemo stolpec za vloge uporabnikov.

Če želimo nastaviti avtentikacijo z uporabo podatkovnega vira LDAP: [12]  Izberemo LDAP za izvajalca varnosti in nastavimo konfiguracije podatkovne baze ter omogočimo varnost za prikaz prijavne strani.  Izvajalci zagotovijo naslednje podatke o konfiguraciji: o LDAP URL naslov (angl. LDAP URL) – označuje ime gostitelja in številko vrat strežnika LDAP (ldap://localhost:389/dc=wavemaker, dc=com), o upraviteljev DN (angl. Manager DN) uporabljamo za dostop do LDAP, o geslo upravitelja (angl. Manager Password) uporabljamo za dostop do LDAP, o uporabniški DN vzorec (angl. User DN pattern) nastavi vzorec, ki ga razvojna programska platforma WaveMaker uporablja za ustvarjanje DN za uporabnika.

Uporabimo gumb Preizkusi povezavo, da preverimo nastavitve povezave. Bodimo prepričani, da shranimo konfiguracije, preden se opravi preizkus avtentifikacije.

Ko ustvarimo varnostne konfiguracije za svoj projekt, razvojna programska platforma WaveMaker v projekt doda varnostne storitve, ki vsebujejo nekatere osnovne varnostne

51

operacije, ki so imenovane s pomočjo spremenljivk, storitev ali s pomočjo programskega jezika Java.

Najpogostejše med njimi so: [12]  GetUserId, ki vrne ID trenutnega uporabnika,  GetUserRoles, ki vrne vloge oziroma pravice za trenutnega uporabnika (upoštevajmo, da ima lahko vsak uporabnik več kot eno vlogo oziroma pravico, ki mu je pripisana),  odjava: ta postopek uporabimo za odjavo uporabnika in ob tem se seja prijave zaključi.

Prijavna stran je prilagodljiva kot katera koli druga stran v projektu, vendar je treba vsa dejanja po prijavi opraviti na domači strani projekta, ker se prijavna stran po uspešni prijavi uniči.

Primer dodanega gumba za odjavo iz aplikacije:  V aplikacijo vstavimo spremenljivko Odjava in izberemo zavihek Vstavi (angl. Insert). Izberemo Napredno (angl. Advanced) in nato spremenljivko za odjavo (angl. LogoutVariable).

Slika 2.41: Spremenljivka za odjavo

 Povlečemo gumb na platno in določimo ime pod zavihkom Lastnosti (na primer Odjava). Določimo lahko dogodek (na primer dogodek (angl. OnClick), ko pritisnemo nanj), ki sproži spremenljivko za odjavo.

Slika 2.42: Dogodek OnClick

52

 Zaženemo aplikacijo in ko uporabnik pritisne gumb Odjava, se odjavi in prikaže se stran za ponovno prijavo v aplikacijo.

WaveMaker omogoča nadzor za obnašanje aplikacij, ki temeljijo na vlogi uporabnika. Obstajajo trije koraki za konfiguracijo aplikacije z uporabo RBAC – Role Based Access Control: [12]  Opredeli vloge, kjer dodajamo vloge z določenim imenom.

Slika 2.43: Opredelitev vlog

 Za vsakega varnostnega ponudnika nastavimo vloge, ki se shranijo za vsakega uporabnika.

Slika 2.44: Konfiguriranje vlog za ponudnika varnosti 53

Slika 2.45: Konfiguracija vloge za varnost LDAP

 Določimo nadzor dostopa, ki se po ustvarjenih vlogah v projektu prikažejo pod zavihkom Lastnosti. Za vsak pripomoček se prikažejo varnostne lastnosti (vloge), ki lahko omejujejo dostop različnih prijavljenih uporabnikov.

Slika 2.46: Vloge za dostop

2.9 UVOZ IN IZVOZ PROJEKTA

Če želimo izvoziti projekt razvojnega okolja WaveMaker, izberemo Datoteko (angl. File) in potem Izvozi projekt (angl. Export Project). Pogovorno informacijsko okno prikazuje lokacijo izvoza projekta, ki je privzeto, da se izvozi datoteko .ZIP, ki se shrani v izvorno mapo trenutnega projektnega imenika (npr. C:/WaveMaker/projects/test/export/test.zip). [13] 54

Uvažanje projekta je enostavno s pomočjo .ZIP datoteke. Uvoz aplikacije je narejen s platformo WaveMaker, kjer moramo izbrati Datoteko (angl. File) in nato Uvozi projekt (angl. Import Project), kjer se prikaže pogovorno okno za uvažanje projektov. Izberemo izbran projekt in njegovo .ZIP datoteko za uvoz. Treba je prebrskati do lokacije, kjer izberemo datoteko, ki se po navadi imenuje test.1.Alpha.zip (.ZIP datoteka se prenese, ko se izvaža projekt). Po izbrani datoteki kliknemo Odpri in projekt se začne uvažati in nalaganje gradnikov posodobi stanje, ko je datoteka uvožena, po uspešno končanem uvažanju pa se projekt prikaže v WaveMakerju. Če projekt z istim imenom že obstaja, se bo samodejno preimenoval v na primer »test1«. [13]

2.10 ALTERNATIVNA ORODJA

V tem poglavju so predstavljena alternativna orodja, ki imajo podoben ali drugačen pristop za razvoj aplikacij kot razvojna programska platforma WaveMaker. Izbrane so platforme Wakanda, WebRatio in AppFlower, ki so tudi teoretično predstavljene, saj ponujajo večinoma enak princip izgradnje aplikacije, neodvisne od platforme, vendar vsaka platforma na svoj drugačen način. Poznamo še veliko ostalih orodij za izdelavo spletnih in mobilnih aplikacij: Caspio, Apache Flex, , AppFlower, nuBuilder, LiveCode, , VisualWorks, XPower++ in še veliko drugih podobnih orodij.

WAKANDA Wakanda je odprtokodno in plačljivo orodje za razvoj spletnih in mobilnih aplikacij v jeziku JavaScript. Vključuje podatkovni strežnik, ki se imenuje WakandaDB, ogrodje JavaScript in Wakanda Studio.

Slika 2.47: Wakanda [16]

55

Slika 2.48: Platforma Wakanda [17]

Avtor: Laurent Ribardiere Razvijalec: 4D Napisana v: C++, JavaScript Stabilna različica: 8.159169 Licenca: Odprtokodna ali plačljiva Spletna stran: www.wakanda.org

Sestava platforme: [16]  Wakanda server (znan tudi kot WakandaDB) – srce platforme. Server je močan, razširljiv HTTP strežnik z uporabo JavaScripta v okolju. Ponuja napredno predpomnjenje, večjedrno zmogljivost in preprosto administracijo za vse značilnosti Wakanda serverja. Podpira specifikacijo »CommonJS« za združljivost na različnih platformah.  Wakanda studio – urejevalnik oblikuje tabele za podatkovne baze, obrazce, poročila in logiko, ki je potrebna za delovanje spletne aplikacije. Wakanda studio je premiera IDE za izgradnjo poslovno usmerjenih spletnih aplikacij.  Wakanda ogrodje aplikacije (angl. Wakanda Application Framework – WAF) sestoji iz ponudnika podatkov, komunikacije s strežnikom, vmesnika pripomočkov.

Lastnosti: [16]  ustvarjanje podatkovnih razredov, metod in atributov,  dodeljevanje dovoljenja za dostop do podatkov,  ustvarjanje uporabniških vmesnikov za mobilne in namizne aplikacije, 56

 natančno načrtovanje s CSS3,  ustvarjanje spletnih komponent,  podpora za spletne standarde: HTML5, CSS3, JavaScript,  ustvarjanje uporabnikov in skupin,  povleci in spusti pripomočke na stran,  prilagoditev pripomočkov,  urejanje HTML kode,  izhodno območje za testiranje kode in preverjanje sintakse,  delovanje neodvisno od platforme (aplikacija namenjena mobilnim telefonom, tabličnim ali namiznim računalnikom),  enostaven dostop do upravljanja z viri in datotekami,  varnostno kopiranje in obnavljanje podatkov,  uveljavljanje pravil oblikovanja podatkov,  dodajanje CSS datotek ali JavaScript knjižnic na stran,  dostop do datotek iz več projektov itd.

WEBRATIO WebRatio je razvojno okolje, ki podpira poslovne uporabnike in razvijalce za oblikovanje spletnih in mobilnih aplikacij, ki so na voljo v poslovnih prostorih ali v oblaku. Omogoča krajši čas na trgu, večjo okretnost, bistveno nižje stroške vzdrževanja, razširljive rešitve. WebRatio platforma uporablja IFML standardni vizualni jezik za modeliranje, je zelo intuitivna in enostavna za uporabo. Proces oblikovalca, ki temelji na BPMN knjižnega jezika, tako da lahko poslovni uporabniki enostavno opišejo osnovne poslovne procese za razvijalce. Enostavnost razvoja in uvajanja uporabnikom omogoča, da preverijo rezultate in se prepričajo, da vloge izpolnjujejo njihove poslovne potrebe. [18]

Slika 2.49: WebRatio [18]

57

Lastnosti: [18]  trikrat hitrejši razvoj,  hitra namestitev,  osredotočenost na inovacije,  enostavno vzdrževanje,  prilagodljiva, zanesljiva in v skladu z najstrožjimi varnostnimi ukrepi,  spletne aplikacije se lahko namestijo na kateri koli strežnik,  dostop do aplikacije preko spleta in mobilnih naprav omogoča prilagoditev interakcije uporabnika, ki je odvisna od naprave,  uporaba prednastavljenih predlog ali predloge po meri,  podpira jezike HTML, CSS in JavaScript,  ponuja prilagodljivo platformo za gradnjo inovativnih poslovnih aplikacij, kot so: spletne storitve za stranke, čisto nov spletni vmesnik obstoječih sistemov in še veliko več,  povezava z računov socialnih omrežij in interakcija s stiki preko Facebooka, Twitterja ali LinkedIna,  integracija sistemov s komponentami po meri,  enostaven za učenje itd.  Spletni naslov: http://www.webratio.com/

APPFLOWER AppFlower je odprtokodna aplikacija za uporabo pri gradnji spletnih aplikacij. Zagotavlja vizualno oblikovanje aplikacij brez predhodnega znanja programiranja (povleci in spusti pripomočke brez kodiranja). Napredni uporabniki lahko ustvarijo bolj zapletene aplikacije. [19]

Slika 2.50: AppFlower [19]

Avtor: AppFlower Stabilna različica: 1.3 / 13. oktober 2012 Napisan v: PHP5 in JavaScript Licenca: MIT licenca Spletna stran: www.appflower.com 58

Lastnosti: [19]  odprtokodna in razširljiva,  graditelj pripomočkov, tem in postavitev,  integrirano iskanje napak,  zelo hiter razvoj aplikacij za splet 2.0,  uporabnik lahko razširi aplikacije z uporabo PHP, Symfony ali ExtJS,  okrepljen varnostni sistem,  podpora za integracijo programske opreme,  spletni vizualni oblikovalec.

59

3 IZDELAVA PROTOTIPNE APLIKACIJE

Kot primer uporabnosti platforme bo predstavljena aplikativna rešitev spletnega informacijskega portala, preko katerega bodo odjemalci spremljali porabo, stanje plačil in odprtih postavk ter na enostaven način javljali stanja merilnih naprav.

3.1 IDEJA IN CILJI

V podjetju KOMUNALA SLOVENJ GRADEC, . o. o., so se odločili za izdelavo spletnega informacijskega portala »eStoritve«, preko katerega bodo odjemalci spremljali porabo, stanje plačil in odprtih postavk ter na enostaven način javljali stanja merilnih naprav. Portal je v celoti izdelan v razvojni programski platformi WaveMaker. V »eStoritve« je treba vključiti naslednje funkcionalnosti:  celotni pregled nad vsemi računi za komunalne storitve,  oddajo dejanskega števčnega stanja in posledično plačevanje po dejanski porabi,  dostop do arhiva izstavljenih računov, plačil, tehničnih podatkov merilnega mesta,  spremljanje porabe vode, plina in ogrevanja na posameznem merilnem mestu.

Spletna aplikacija je optimizirana za brskalnik Chrome, Internet Explorer 7+ in Firefox 1.5+ in tudi za mobilne naprave.

Slika 3.1: eStoritve

Glavni namen in cilj je narediti aplikacijo »eStoritve«, ki bo s funkcionalnostmi in izgledom zadovoljila naročnika (Komunala Slovenj Gradec, d. o. o.) in njihove uporabnike.

60

3.2 NAČRTOVANJE IN RAZVOJ

Za razvoj aplikacije je bila uporabljena prej opisana razvojna programska platforma WaveMaker – Rapid development system, ki deluje v Javi in omogoča hiter razvoj spletnih aplikacij za različne platforme. Razvojna programska platforma WaveMaker omogoča izdelavo aplikacij za namizne računalnike, tablične računalnike in pametne telefone, ki so neodvisne od platforme. Mobilne aplikacije delujejo na pametnih telefonih ne glede na to, ali se uporablja sistem Android, Apple iOS, Windows Phone 7 ali kateri drugi operacijski sistem. [1]

3.3 IMPLEMENTACIJA

Navodila za izdelavo aplikacije so bila podana in sledila je implementacija aplikacije. Opisana bo kratka predstavitev izdelave aplikacije »eStoritve«, podrobnejša razlaga platforme WaveMaker pa je opisana v zgornji predstavitvi.

Slika 3.2: eStoritve – Ustvarjanje projekta

61

Za izgradnjo spletne aplikacije WaveMaker smo začeli z ustvarjanjem novega projekta. Najprej smo nastavili nastavitve, ki so potrebne, da se lahko projekt ustvari, in sicer ime projekta, tema projekta in predloga za zavihke. Urediti smo morali tudi temo, ki se uporablja v izdelani aplikaciji.

Za namestitev aplikacije smo uporabili WildFly Java strežnik, ki je nadaljevanje uspešne zgodbe aplikacijskega strežnika Jboss. Samo ime razkrije, da je strežnik grajen na Java platformi. Spada pod odprtokodni produkt in je pod okriljem divizije Red Hat z GNU licenco. Strežnik teče na vseh operacijskih sistemih. [15]

Spletna stran: http://www.wildfly.org/ Pomoč: http://machinhead.dyndns.ws/wiki/index.php/WildFly

Slika 3.3: eStoritve – Wildfly

Za upravljanje s podatkovno bazo in podatki, ki bodo prikazani v aplikaciji »eStoritve«, pa smo uporabili odprtokodni sistem MySQL. Zbirka podatkov je v MySQL strukturirana zbirka podatkov. Lahko je karkoli – od preprostega nakupovalnega seznama do slikovne galerije ali ogromna količina informacij v omrežju podjetja. Za dodajanje in obdelavo podatkov v zbirki podatkov potrebujemo sistem za upravljanje zbirk podatkov, kot je strežnik MySQL.

MySQL je relacijski podatkovni upravljalni sistem. Relacijska podatkovna zbirka shrani podatke v ločenih tabelah in ne v enem velikem hranilniku. To povečuje hitrost in fleksibilnost. SQL v MySQL pomeni kratico za Structured Query Language. SQL je najbolj uporabljen standardiziran jezik, ki se uporablja za dostop do zbirk podatkov in je določen s

62

standardom ANSI/ISO SQL. Standard SQL se je razvijal od 1986 in danes obstaja več različic. Izraz standard SQL uporabljamo za poimenovanje trenutne aktualne različice standarda SQL v nekem časovnem obdobju. Programska oprema MySQL je odprtokodna (angl. Open Source), kar pomeni, da lahko vsi dostopajo do programske opreme in jo priredijo za svoje potrebe. MySQL lahko vsak prenese s spleta in sistem uporablja zastonj. Če želimo, lahko proučimo izvorno kodo in jo spremenimo, tako da ustreza našim potrebam. Programska oprema MySQL je zaščitena z licenco GPL (GNU, General Public License, http://www.fsf.otg/licenses/) s katero se določa, kaj lahko in česa ne smemo početi s programom v različnih situacijah. Če nam GPL ne ustreza ali želimo kodo MySQL vstaviti v komercialno aplikacijo, lahko kupimo komercialno licenčno različico MySQL. Za izdelavo aplikacije smo morali najprej uvoziti podatkovno bazo. Izbrali smo obstoječi podatkovni model (MySQL) in ga uvozili v WaveMaker, po uspešnem uvažanju podatkovne baze pa smo preverili, ali se je samodejno pravilno nastavilo, da je projekt sposoben brati in pisati podatke iz vsake tabele v podatkovni bazi. [14]

Pri uvozu sheme podatkovne baze v platformo WaveMaker so se ustvarili:  podatkovni model, ki določa vse tabele podatkovne baze, ki so dostopne za projekt,  pripomočki podatkovne baze, ki za vsako tabelo v podatkovnem modelu po meri ustvarja pripomočke za prikazovanje, ustvarjanje, posodabljanje in brisanje podatkov iz te tabele podatkovne baze.

Slika 3.4: eStoritve – Uvoz podatkovne baze 63

Slika 3.5: eStoritve – Podatkovna baza

Podatki iz podatkovne baze so bili uvoženi za uporabo in pripravljeni za izgradnjo aplikacije. Opisali in predstavili bomo nekaj primerov, ki so se pojavili v aplikaciji in se v večini primerov najbolj uporabljajo.

Najprej smo ustvarili spremenljivke, kamor smo shranili podatke, ki so bili s pomočjo poizvedb vrnjeni od podatkovne baze, s pomočjo ustvarjenih spremenljivk pa smo lahko podatke poizvedb prikazali v aplikaciji. Ustvariti smo morali tudi Java storitve, ki omogočajo integracijo z drugimi storitvami, knjižnicami in orodji. Ustvarjena nova storitev Java vsebuje različne metode in operacije, ki se nanašajo predvsem na poizvedbe, s pomočjo katerih smo pridobili podatke iz podatkovne baze.

Slika 3.6: eStoritve – Spremenljivke

64

Zelo se uporabljajo tako imenovani obrazci Glavni – Podrobnosti (angl. Master – Detail) na izbrani tabeli, ki je sestavljena iz mreže (tabela) in obrazca, ki sta povezana skupaj. Obrazec ima dva dela: tabele predmetov podatkovne baze (mreže) in obrazec za urejanje predmetov podatkovne baze. Obrazec vsebuje tudi gumbe za ustvarjanje, posodabljanje in brisanje predmetov podatkovne baze. Urejanje mreže, ki uporabniku omogoča urejanje vsebine tabele neposredno (»Živa« spremenljivka (angl. LiveVariable), ki omogoča, da oblikujemo uporabniški vmesnik po meri). Pod zavihkom Paleta, kjer smo v drevesu pod zavihkom Pripomočki podatkovne baze izbrali tabele podatkovne baze za izdelavo obrazcev v aplikaciji »eStoritve«.

Slika 3.7: eStoritve – Podatkovna baza Pripomočki

Slika 3.8: eStoritve – Dodajanje pripomočkov na platno 65

Slika 3.9: eStoritve – Primer obrazca Master – Detail

Slika prikazuje primer obrazca Glavni – Podrobnosti (angl. Master – Detail), kjer je kot glavni obrazec mreža oziroma tabela, ki prikazuje vsa vnesena obvestila v aplikaciji, ki so zabeležena v podatkovni bazi. Spodnji obrazec pa omogoča za trenutno izbrano obvestilo prikaz podrobnih podatkov. Obvestila lahko urejamo, izbrišemo ali ustvarimo novo. Obrazca sta med seboj povezana, kar pomeni, da bo sprememba v spodnjem obrazcu vidna takoj v mreži oziroma tabeli.

Pri izdelovanju aplikacije »eStoritve« smo veliko uporabljali tudi pripomoček mreža oziroma tabela za prikazovanje tabelarnih podatkov, kot so seznami odčitkov, storitev, obvestil … Mreže oziroma tabele prikazujejo podatke iz poizvedbe podatkovnih baz, spletnih storitev ali storitev Java. Pri ustvarjanju mrež smo določili videz stolpcev in določili, katera polja morajo biti prikazana. Podatke, ki se prikažejo v mreži, pa smo enostavno povezali s spremenljivkami, ki hranijo določene podatke poizvedb iz podatkovne baze.

66

Slika 3.10: eStoritve – Mreža oziroma tabela računov

Primer mreže računov v aplikaciji, ki prikazuje pregled vseh elektronsko izdanih računov za posameznega odjemalca komunalnih storitev.

Večina podatkov pa je bila poleg mrež in obrazcev prikazana še s pomočjo preprostih obrazcev, ki prikažejo nabor urejevalnikov za določen tip podatkov, ki se ga nastavi s pomočjo spremenljivk in poizvedb, ki pridobijo želene podatke. Primer prikazuje obrazca Naročnik in Odjemno mesto, ki vsebujeta podatke iz spremenljivk. Namenjena sta samo prikazu podatkov, nekateri obrazci pa ponujajo tudi možnost urejanja, posodabljanja ali celo izbris podatkov.

Slika 3.11: eStoritve – Obrazec

Vnos podatkov v aplikaciji pa je bil ustvarjen s pomočjo obrazcev, ki so shranjevali podatke v bazo.

67

Slika 3.12: eStoritve – Vnos odčitkov

V aplikaciji so bili uporabljeni še ostali gradniki, kot so na primer:  drevo, ki prikazuje vsa odjemna mesta za posameznega odjemalca komunalnih storitev,  zemljevid, ki prikazuje lokacijo odjemnega mesta,  grafični prikaz porabe,  pripomočki za prikaz slik in  ostali pripomočki: gumbi, zavihki, urejevalniki ...

Pri izdelavi aplikacije je bilo treba aplikacijo vseskozi testirati in preverjati, če se podatki pravilno prikažejo, posodobijo ali izbrišejo iz podatkovne baze. Končna izvedba aplikacije »eStoritev« je bila nameščena na strežnik Wildfly in dodana na stran komunalnega podjetja Komunala Slovenj Gradec, d. o. o., da so odjemalci komunalnih storitev lahko začeli uporabljati aplikacijo in sporočati svoja stanja za vodarino, plin in ogrevanje.

3.4 UPORABNA VREDNOST

Kot primer je predstavljena aplikativna rešitev spletnega informacijskega portala, preko katerega odjemalci spremljajo porabo, stanje plačil in odprtih postavk ter na enostaven način javijo stanja merilnih naprav.

68

Spletna aplikacija, ki omogoča:  oddajo števčnega stanja za obračun vode, plina in ogrevanja,  pregled izstavljenih računov in plačil,  vpogled v arhiv bremenitev in plačil,  pregled porabe vode, plina ali ogrevanja na merilnem mestu,  vpogled v tehnične podatke vašega merilnega mesta,  možnost prejemanja elektronskega računa za komunalne storitve.

Slika 3.13: eStoritve – Prijavna stran

Slika 3.14: eStoritve 69

4 DELOVANJE APLIKACIJE

Opis delovanja aplikacije »eStoritve«, in sicer vse od prvega dostopa do sistema in predstavitev vseh možnosti, ki so namenjene odjemalcem komunalnih storitev, ter poleg tega še predstavitev možnosti, ki so namenjene samo administratorjem aplikacije.

4.1 PRVI DOSTOP DO SISTEMA

Ob prvi prijavi v sistem boste potrebovali zadnji račun, saj se prijavite tako, da za svoje uporabniško ime uporabite šifro kupca, pod geslo pa vpišete številko zadnjega prejetega računa za komunalne storitve (osemmestna številka). Če pozabite geslo, lahko zaprosite za novo, ki se posreduje v elektronski predal, za pomoč si lahko ogledate tudi navodila, ki so naložena na prijavni strani.

Slika 4.1: Prijavna stran eStoritve

70

Slika 4.2: Račun komunalnih storitev

Po uspešni prijavi v aplikacijo lahko v drevesu izberete odjemno mesto, za katerega želite prikazati podatke, ki so zbrani v zavihkih.

Slika 4.3: Aplikacija eStoritve

4.2 UPORABNIŠKI PROFIL

Po uspešni prijavi lahko spremenite podatke vašega profila, vključno z geslom za dostop. V obrazec vpišete novo geslo, varnostno kodo, ki jo boste potrebovali, če pozabite geslo in elektronski naslov. Po potrditvi gumba Shrani boste v naveden elektronski predal prejeli obvestilo o spremembi podatkov.

71

Slika 4.4: Uporabniški profil podatki

4.3 POSLOVNI PARTNER

Informacije poslovnega partnerja in posamezne pogodbe, ki pripadajo izbranemu odjemalcu komunalnih storitev.

Slika 4.5: Poslovni partner

4.4 STORITVE

Zavihek Storitve omogoča vpogled v tehnične podatke odjemnega mesta in posamezne storitve, ki pripadajo odjemnemu mestu ter prikaz lokacije odjemnega mesta na zemljevidu.

72

Slika 4.6: Storitve

4.5 ODČITKI

V drevesu izberete odjemno mesto, za katerega želite vnesti odčitek. Vnos odčitka je omogočen v določenem obdobju. Pregledate lahko tudi informacije o merilni napravi in prikaz porabe v tabeli, ki prikazuje vso dosedanjo porabo za izbrano odjemno mesto in grafični prikaz porabe.

Slika 4.7: Odčitki

73

Ko je vnos odčitkov omogočen, lahko v prazna polja vnesete stanje števca (odčitek števca mora biti večji ali enak kot zadnji odčitek), po potrebi dodate opombo in kliknete gumb Shrani, ki odčitek zabeleži v sistem. Pri oddaji stanja se kot datum stanja upošteva tekoči datum.

Slika 4.8: Vnos odčitka

4.6 RAČUNI

V zavihku Računi se nahaja pregled vseh elektronsko izdanih računov. Račun lahko tudi preverite, in sicer s klikom na ikono, ki jo prikazuje slika .

Slika 4.9: Računi

74

Preverite in natisnete si lahko tudi trenutni izpisek vsek odprtih postavk za komunalne storitve.

Slika 4.10: Izpisek odprtih postavk

4.7 SPOROČILA

V zavihku Sporočila lahko sporočite prijavo ali odjavo osebe, reklamacijo, telefonski pogovor ali napake, ki se pojavljajo v aplikaciji »eStoritve«. Preden sporočilo pošljete, morate izpolniti obvezna prazna polja, po potrebi lahko priložite prilogo (slike, dokumente …).

Slika 4.11: Sporočila

Vsa poslana sporočila lahko preverite pod zavihkom Pregled poslanih sporočil. Pri sporočilih lahko preverite, ali ga je administrator že pregledal. Status sporočila prikazuje, ali

75

je sporočilo v obdelavi, ali je bilo zavrnjeno, zaključeno ali odobreno, po potrebi pa je dodana tudi opomba.

Slika 4.12: Pregled poslanih sporočil

4.8 ADMINISTRATORSKI NAČIN

Administratorski način omogoča nastavitev aktivnega obdobja za vnos odčitkov, pregled sporočil, ki jih pošljejo uporabniki, vodenje obvestil za aplikacijo, pregled vseh dogodkov v aplikaciji (prijava uporabnikov, spremembe gesla, vnos odčitka …), pregled odčitkov. Administratorski način omogoča tudi dostop do vseh odjemalcev preko iskanja in omogoča vpogled porabe, stanje plačil, odprtih postavk, odčitkov za posamezno odjemno mesto, ki pripada izbranemu odjemalcu komunalnih storitev.

76

Slika 4.13: Administratorski način

Pregled odčitkov omogoča administratorju, da lahko pregleda vse vnesene odčitke in jih obračuna oziroma označi, da so bili pregledani, kar pomeni, da uporabniki odčitka za izbrano obdobje ne morejo vnesti ali ga popraviti.

Slika 4.14: Administrator in pregled odčitkov

Obdobja omogočajo nastavitev aktivnega obdobja, ki pomeni, da je vnos odčitkov dovoljen. Aktivno obdobje lahko administrator tudi ustvari in ga določi kot aktivno.

77

Slika 4.15: Administrator in aktivno obdobje

Sporočila omogočajo pregled vseh poslanih sporočil, ki so jih poslali odjemalci. Administrator lahko pregleda vsako sporočilo in priloge ter določi status za sporočilo, in sicer ali je sporočilo pregledano, odobreno, zavrnjeno, zaključeno ali pa je poročilo v obdelavi ter po potrebi doda opombo.

Slika 4.16: Administrator in pregled sporočil

Obvestila omogočajo ustvarjanje obvestil za vse odjemalce in administratorje aplikacije, ki prikazuje obvestila o samem delovanju aplikacije. Obvestila so lahko različne novosti, dogodki (na primer, da je obdobje aktivno za vnos odčitkov) ali ostala obvestila uporabnikom in administratorjem.

78

Slika 4.17: Administrator in obvestila

Log omogoča prikaz vseh aktivnosti, ki se dogajajo v aplikaciji. Tabela log beleži vsako prijavo uporabnikov in administratorjev v aplikacijo, vsako sprememba uporabniških podatkov in shranjevanje vsakega vnosa ali spremembe odčitka.

Slika 4.18: Administrator in log

79

5 SKLEPNE UGOTOVITVE

V diplomski nalogi je bila predstavljena razvojna programska platforma WaveMaker, ki avtomatizira postopke za izdelavo Java spletnih aplikativnih rešitev in razvoj aplikacij v oblaku. Predstavili smo najbolj pomembne lastnosti in funkcionalnosti platforme. Poleg predstavitve platforme WaveMaker je bila predstavljena tudi izdelana aplikacija, ki jo odjemalci podjetja Komunala Slovenj Gradec, d. o. o., danes že uporabljajo.

Delo je bilo usmerjeno predvsem na predstavitev razvojnega orodja, kjer so prikazani tehnološki postopki, potrebni za delovanje aplikacije, načrtovanje in izdelavo spletnega portala ter učinkovitost razvojne platforme WaveMaker. Predstavljena je bila tudi izdelana aplikacija, ki združuje vse tehnologije, ki jih ponuja razvojna platforma WaveMaker. Kot primer uporabnosti platforme je bila predstavljena izdelana aplikacija spletnega informacijskega portala »eStoritve«, preko katerega odjemalci spremljajo porabo, stanje plačil in odprtih postavk ter na enostaven način javljajo stanja merilnih naprav.

Ena od ugotovitev je ta, da s pomočjo odprtokodne programske platforme WaveMaker lahko zelo hitro izdelamo aplikacijo, ki je namenjena vsem platformam hkrati (namizni računalniki, tablični računalnik, mobilne naprave) ter deluje v katerem koli strežniku Java oziroma omogoča enostavno namestitev aplikacije v oblak kar iz razvojne platforme WaveMaker. WaveMaker se izvaja v brskalniku, kjer aplikacije med tem, ko se jih implementira, dejansko delujejo, zaradi česar je veliko lažje testiranje in razhroščevanje spletne aplikacije. Uporabniški vmesnik aplikacije vsebuje strani in pripomočke, ki zagotavljajo vnaprej vgrajeno funkcionalnost in obnašanje samih pripomočkov. Vsebuje široko paleto nastavljivih pripomočkov, kot so obrazci, urejevalniki in gumbi, ki uporabnikom omogočajo interakcijo z aplikacijo. Objektni podatkovni pripomočki omogočajo enostavno izgradnjo spletnih obrazcev, ki ustvarjajo, preberejo, posodabljajo in brišejo zapise iz podatkovne baze brez kodiranja. WaveMaker omogoča tudi uporabo jezikov JavaScript in Java, ki omogočata razvijalcem integracijo z drugimi storitvami, knjižnicami in orodji ter poskrbita za dodatno prilagoditev aplikacije. Velika prednost platforme WaveMaker je varnost, s pomočjo katere aplikacija postane stabilnejša in varnejša

80

za uporabo, saj se lahko natančno dodelijo pravice, ki uporabniku omogočajo dostop do podatkov, za katere ima pravice.

81

LITERATURA [1] Wikipedia: WaveMaker. [Spletni]. Dostopno na: http://en.wikipedia.org/wiki/WaveMaker [10.2.2014]

[2] D. Henninger: Components, Main Features, and Audience, 2009. [Spletni]. Dostopno na: http://dev.wavemaker.com/wiki/bin/wmdoc_6.6/Intro [16.2.2014]

[3] D. Henninger: Supported Platforms and Configurations, 2010. [Spletni]. Dostopno na: http://dev.wavemaker.com/wiki/bin/wmdoc_6.5/SystemPlatforms [13.4.2014]

[4] D. Henninger: Building Applications: Essential Concepts, 2009. [Spletni]. Dostopno na: http://dev.wavemaker.com/wiki/bin/wmdoc_6.6/Essentials [20.4.2014]

[5] D. Henninger: Inspect an Application, 2009. [Spletni]. Dostopno na: http://dev.wavemaker.com/wiki/bin/wmdoc_6.6/InspectTutorial [5.3.2014]

[6] D. Henninger: Working with Databases, 2009. [Spletni]. Dostopno na: http://dev.wavemaker.com/wiki/bin/wmdoc_6.6/Database [10.3.2014]

[7] M. Zaveršnik: JavaScript. [Spletni]. Dostopno na: http://zaversnik.fmf.uni-lj.si/gradiva/javascript/index. [15.3.2014]

[8] D. Henninger: Calling JavaScript From Events, 2009. [Spletni]. Dostopno na: http://dev.wavemaker.com/wiki/bin/wmdoc_6.6/JavaScript [30.3.2014]

[9] A. Isakovič: PhoneGap: S spletnimi tehnologijami do mobilnih aplikacij, 2011. [Spletni]. Dostopno na: http://tehnik.telekom.si/novice/phonegap-s-spletnimi-tehnologijami- do-mobilnih-aplikacij [22.4.2014]

82

[10] D. Henninger: Deploying, 2009. [Spletni]. Dostopno na: http://dev.wavemaker.com/wiki/bin/wmdoc_6.6/Deploying [25.4.2014]

[11] Wikipedia: Apache Tomcat. [Spletni]. Dostopno na: http://en.wikipedia.org/wiki/Apache_Tomcat [25.4.2014]

[12] C. Keene: Security, 2010. [Spletni]. Dostopno na: http://dev.wavemaker.com/wiki/bin/wmdoc_6.6/SecurityTutorial [27.4.2014]

[13] D. Henninger: Importing and Exporting a Project, 2012. [Spletni]. Dostopno na: http://dev.wavemaker.com/wiki/bin/wmdoc_6.6/ImportExportTutorial [28.4.2014]

[14] Wikipedia: MySQL. [Spletni]. Dostopno na: http://sl.wikipedia.org/wiki/MySQL [5.3.2014]

[15] Wikipedia: WildFly. [Spletni]. Dostopno na: http://en.wikipedia.org/wiki/WildFly [30.3.2014]

[16] Wikipedia: Wakanda. [Spletni]. Dostopno na: http://en.wikipedia.org/wiki/Wakanda_%28software%29 [8.6.2014]

[17] Wakanda. [Spletni]. Dostopno na: http://www.wakanda.org/ [8.6.2014]

[18] WebRatio. [Spletni]. Dostopno na: http://www.webratio.com/ [9.6.2014]

[19] Wikipedia: AppFlower. [Spletni]. Dostopno na: http://en.wikipedia.org/wiki/AppFlower [9.6.2014]

83