• No results found

Document versioning system

N/A
N/A
Protected

Academic year: 2021

Share "Document versioning system"

Copied!
89
0
0

Loading.... (view fulltext now)

Full text

(1)UNIVERZA V NOVI GORICI POSLOVNO-TEHNIŠKA FAKULTETA. SISTEM ZA VERZIONIRANJE DOKUMENTOV. MAGISTRSKO DELO. Martin Lozar. Mentor: prof. dr. Andrej Filipčič. Nova Gorica, 2016.

(2)

(3) ZAHVALA Zahvaljujem se mentorju prof. dr. Andreju Filipčiču za vso pomoč in strokovne nasvete, ki mi jih je nudil pri nastanku tega magistrskega dela. Zahvalil bi se tudi staršem in sestri za vso moralno in finančno podporo skozi vsa študijska leta.. III.

(4) IV.

(5) NASLOV Sistem za verzioniranje dokumentov IZVLEČEK Glavna cilja magistrske naloge sta pregled obstoječih sistemov za verzioniranje podatkov in njihovih funkcionalnosti ter izdelava lastne spletne aplikacije – sistema za verzioniranje dokumentov. Verzioniranje dokumentov je postopek hranjenja dokumenta in vseh njegovih sprememb, ki so se nad dokumentom zgodile skozi čas. Za potrebe izdelave spletne aplikacije, ki jo uporabniki poganjajo znotraj spletnega brskalnika, smo najprej zgradili podatkovni model. Le tega smo nato implementirali znotraj relacijske podatkovne baze PostgreSQL, v kateri se hranijo podatki, potrebni za delovanje spletne aplikacije. Razvita spletna aplikacija DRS omogoča izdelavo poljubne podatkovne datotečne strukture – poljubna hierarhija map s pripadajočimi dokumenti. Registriranim uporabnikom omogoča dodeljevanje različnih dostopnih pravic na posamezni mapi, omejitev tipa datotek, ki jih uporabniki lahko shranjujejo znotraj aplikacije, in verzioniranje dokumentov. Uporabniki lahko dokumente znotraj izbrane mape pregledujejo v dveh različnih načinih. V drugem poglavju opisujemo nekaj aplikacij, ki uporabljajo sisteme za verzioniranje podatkov, tretje poglavje predstavlja motivacijo za izdelavo aplikacije in opiše ter predstavi funkcionalnosti in ideje, ki jih DRS podpira, naslednje, četrto poglavje pa na kratko predstavlja delovanje spletnih aplikacij. Peto poglavje predstavi tehnologije, ki smo jih uporabili za razvoj DRS, šesto poglavje opisuje splošno delovanje DRS s predstavitvijo sistemskih zahtev, ki jih aplikacija potrebuje za delovanje, v sedmem poglavju opisujemo delovanje DRS in podajamo nekaj primerov uporabe. Sledi zadnje poglavje, v katerem predstavljamo razloge za odločitev določenega načina implementacije dela funkcionalnosti DRS. V zaključku povzamemo vsebino magistrske naloge in podajamo nekaj možnih izboljšav razvite spletne aplikacije. KLJUČNE BESEDE sistem za verzioniranje dokumentov, spletna aplikacija, PHP, PostgreSQL, JSON, jQuery. V.

(6) TITLE Document versioning system ABSTRACT The main objective of the master thesis is an overview of existing document versioning systems and their functionalities, and an implementation of a web application for this purpose. Document versioning is the process of storing document and any changes that have occured on the document over time. To develop a web application running inside the web browser the data model has been established first. The data model has been implemented inside the relational PostgreSQL database. It stores all the necessary data for an operation of the DRS web application. DRS enables creation of any data folder structure, any kind of hierarchy of folders and associated documents can be implemented. DRS can also grant different access privileges to registered users on each map, restrict data types, which are accessible to users for storing inside the DRS, document versioning is also applicable. The documents inside the folder can be displayed in two different modes. A selection of document versioning applications are described in the second chapter. The motivation for development of DRS is presented in the third chapter. Functions and ideas that must be implemented inside DRS are also presented there. A brief explanation of how web applications work is given in the following chapter. The technology used for the developement of DRS is presented in the chapter five. The sixth chapter describes the general operation of the DRS with the presentation of system requirements. In the seventh chapter, the operation of DRS is described and some examples of use cases are given. The following chapter presents some reasons for the selected implementation of the functionality. In the conclusion the content of master thesis is summarized. Some functionalities that could improve DRS are also presented in this chapter. KEY WORDS Document versioning system, web application, PHP, PostgreSQL, JSON, jQuery. VI.

(7) KAZALO 1. UVOD ................................................................................................................... 1. 2. SISTEMI ZA VERZIONIRANJE DOKUMENTOV ........................................... 4 2.1 TWiki ................................................................................................................ 6 2.2 Revisionator .................................................................................................... 11 2.3 Ostali sistemi ................................................................................................... 13. 3. MOTIVACIJA IN ZAHTEVE ZA IZDELAVO APLIKACIJE ZA VERZIONIRANJE DOKUMENTOV ................................................................ 14 3.1 Motivacija za razvoj lastnega sistema ............................................................. 15 3.2 Funkcionalne zahteve za implementacijo DRS............................................... 16. 4. O DELOVANJU SPLETNIH APLIKACIJ ........................................................ 18. 5. TEHNOLOGIJE, UPORABLJENE ZA RAZVOJ DRS .................................... 20 5.1 PostgreSQL ..................................................................................................... 20 5.2 PHP ................................................................................................................. 21 5.3 HTML ............................................................................................................. 22 5.4 CSS .................................................................................................................. 23 5.5 JavaScript ........................................................................................................ 23 5.6 AJAX............................................................................................................... 24. 6. SPLOŠNO O DELOVANJU DRS ..................................................................... 27 6.1 Opis podatkovnega modela ............................................................................. 27 6.2 Opis delovanja DRS ........................................................................................ 30 6.3 Zahteve za delovanje spletne aplikacije DRS ................................................. 33 VII.

(8) 7. FUNKCIONALNOST DRS IN PRAKTIČEN PRIMER UPORABE ............... 35 7.1 Predstavitev uporabniškega grafičnega vmesnika .......................................... 36 7.2 Delo z mapami ................................................................................................ 39 7.2.1. Kreiranje podmape .................................................................................. 40. 7.2.2. Preimenovanje oziroma prevajanje naslova obstoječe mape .................. 41. 7.2.3. Brisanje mape .......................................................................................... 42. 7.2.4. Restavriranje izbrisanih dokumentov ...................................................... 42. 7.3 Delo z dokumenti ............................................................................................ 43 7.4 Prijava uporabnika .......................................................................................... 45 7.5 Večjezična podpora uporabniškega vmesnika DRS ....................................... 48 7.6 Avtorizacija ..................................................................................................... 49 7.6.1. Pregledovanje in urejanje uporabniških računov .................................... 49. 7.6.2. Pregledovanje in urejanje uporabniških skupin ...................................... 50. 7.6.3. Pregledovanje in urejanje pravic uporabniških skupin na mapah ........... 51. 7.7 Ostale funkionalnosti v sistemskem menuju ................................................... 54 7.7.1. Omejevanje podatkovnih tipov ............................................................... 54. 7.7.2. Restavriranje izbrisanih map ................................................................... 55. 7.7.3. Iskanje dokumentov s ključnimi besedami ............................................. 55. 7.7.4. Omejitev prikaza parametrov .................................................................. 56. 7.8 Primer uporabe do sedaj opisanih možnosti uporabe DRS ............................. 57 8. PREDNOSTI IN SLABOSTI RAZVITE APLIKACIJE.................................... 60 VIII.

(9) 8.1 Načini hranjenja podatkov v podatkovni bazi PostgreSQL ............................ 60 8.2 Izmenjava podatkov med strežnikom in uporabnikovim spletnim brskalnikom (JSON proti XML) ......................................................................................... 63 8.3 Sprotno izračunavanje drevesne strukture map proti enkratnemu izračunavanju.................................................................................................. 64 9. ZAKLJUČEK...................................................................................................... 65. 10 VIRI .................................................................................................................... 68 11 PRILOGE ............................................................................................................ 73. IX.

(10) KAZALO SLIK Slika 1: Prva stran sistema TWiki, ki jo uporabniki vidijo po namestitvi sistema ...... 8 Slika 2: Primer prikaza zgodovine sprememb na strani v sistemu Twiki, označen z rdečo obrobo................................................................................................................. 8 Slika 3: Prikaz sprememb različnih verzij spletne strani ........................................... 10 Slika 4: Prikaz TWiki-jevega urejevalnika besedila .................................................. 11 Slika 5: Izgled urejevalnik besedila WYSIWYG aplikacije Revisionator ................. 12 Slika 6: Vizualizacija podatkovnega modela DRS .................................................... 30 Slika 7: Shema delovanja spletne aplikacije DRS ..................................................... 33 Slika 8: Primer verzioniranja dokumenta. .................................................................. 35 Slika 9: Izgled grafičnega uporabniškega vmesnika DRS ......................................... 38 Slika 10: Prikaz orodne vrstice DRS .......................................................................... 39 Slika 11: Vnosno okno za kreiranje nove podmape ................................................... 41 Slika 12 :Izgled GUI-ja ob uporabni funkcionalnosti za restavriranje izbrisanih map in dokumentov znotraj njih ........................................................................................ 43 Slika 13: Vnosno okno, namenjeno verzioniranju dokumentov ................................ 44 Slika 14: Desni del orodne vrstice ............................................................................. 44 Slika 15: Izgled prijavnega vnosnega okna ................................................................ 46 Slika 16: Vnosno okno, namenjeno urejanju prevodov grafičnega uporabniškega vmesnika DRS ............................................................................................................ 48 Slika 17: GUI, preko katerega administratorji urejajo uporabniške račune ............... 50 Slika 18: Prikaz grafičnega uporabniškega vmesnika, vidnega na drugem zavihku avtorizacijskega modula. ............................................................................................ 51 X.

(11) Slika 19: Vnosno okno, namenjeno urejanju avtorizacije .......................................... 52 Slika 20: Vnosno okno, namenjeno upravljanju tipov datotek, ki se lahko shranjujejo znotraj DRS ................................................................................................................ 54 Slika 21: Izgled grafičnega uporabniškega vmesnika ob uporabi funkcionalnosti za iskanje dokumentov z določenimi oznakami ............................................................. 56 Slika 22: Vnosno okno, znotraj katerega uporabnik določi, katere stolpce s podatki želi videti v tabelaričnem prikazu dokumentov znotraj izbrane mape ....................... 57 Slika 23: Primer izgleda drevesne strukture map za primer podjetja ABC d.o.o. ..... 58. XI.

(12) KAZALO TABEL Tabela 1: Minimalne zahteve različic popularnejših spletnih brskalnikov, potrebnih za delovanje DRS ....................................................................................................... 34 Tabela 2: Vrednost šifre pooblastila in možnosti, ki jih pooblastilo dodeljuje uporabniški skupini .................................................................................................... 53. XII.

(13) KRATICE IN OKRAJŠAVE ACL = Access Control List - dostopni kontrolni seznam AJAX = Asynchronous JavaScript + XML - asinhroni JavaScript z XML API = Application Program Interface - programski vmesnik CGI = Common Gateway Interface - skupek pravil, ki določa, kako strežnik komunicira z uporabniško programsko opremo CMS = Content Management System - sistem za urejanje spletnih strani CSS = Cascading Style Sheet - stilna predloga, ki vsebuje oblikovanje spletne strani CTE = Common Table Expresion – začasna zbirka podatkov DOM = Document Object Model - objekt s reprezentacijo spletnega dokumenta FTP = File transfer protocol – protokol za prenos datotek GUI – Graphical user interface – grafični uporabniški vmesnik GWT = Google Web Toolkit - Googlovo orodje za oblikovanje spletnih strani HTML = Hyper Text Markup Language - stilna predloga, ki vsebuje vsebino spletne strani HTTP =- Hypertext Transfer Protocol - protokol za izmenjavo vsebine spletnih strani IDE = Integrated development environment - integrirano razvojno okolje JDBC = Java database connectivity technology - API za dostop do podatkov v podatkovni bazi v javanski aplikaciji JDK = Java Development Kit - knjižnica za razvoj javanskih aplikacij JSON = JavaScript Object Notation - notacija objektna javascript MIME = Internet media type - internetni tip datoteke. XIII.

(14) PDF = Portable Document Format - eden od najpopularnejših formatov dokumenta PDO = PHP Data Objects – PHP razširitev za komunikacijo z podatkovno bazo PHP = PHP Hypertext Processor - skriptni programski jezik za izdelavo dinamični spletni strani PL/pgSQL = Procedural Language / PorsteSQL - proceduralni jezik za delo z ORDBMS PostgreSQL RDBMS = relational database management systems - sistem za upravljanje s relacijskimi podatkovnimi bazami RFC = Request for Comments - zahteva za navodila RSS = Rich Site Summary - bogat povzetek strani SOAP = Simple Object Access protocol - protokol za enostavni objektni dostop SQL = Structured Query Language - strukturirani povpraševalni jezik SSL = Secure Socket Layer – protokol, ki omogoča šifrirano povezavo med strežnikom in odjemalcem SVG = Scalable Vector Graphics - skalabilna vektorska grafika URL = Uniform Resource Locator – enotni naslov vira UTF-8 = Universal Character Set Transformation Format – 8-bit – univerzalni 8-bitni način kodiranja znakov WebDAV = Web Distributed Authoring and Versioning - razširitev HTTP protokola WYSIWYG = What you see is what you get - kratica za: kar vidite to dobite XHTML = Extensible Hyper Text Markup Language - razširjena stilna predloga, ki izhaja iz XML in vsebuje vsebino spletne strani XML = Extensible Markup Language – razširljivi označevalni jezik. XIV.

(15) XSL = Extensible Stylesheet Language – družina jezikov, ki omogočajo oblikovanje, preoblikovanje in prikazovanje dokumentov XML XSLT = XSL Transformations - transformacije XSL XSS = Cross-site scripting – napad na spletno stran z vrivanjem zlonamerne programske kode. XV.

(16)

(17) 1. UVOD. Količina dokumentov, obrazcev in druge dokumentacije se dnevno povečuje, posledično pa je tudi hranjenje težje. Vse bolj se zato uveljavlja brezpapirno poslovanje. Za lažje hranjenje in urejanje velikega števila dokumentov, ki so med seboj vsebinsko povezani, se tako danes uporabljajo programi za verzioniranje datotek. Pojem verzioniranja datotek pomeni možnost sledenja in upravljanja s spremembami nad njimi v času njihovega obstoja. Dokumenti, primerni za verzioniranje, so na primer obrazci, dokumentacija, tehnološke risbe, načrti, programska koda, zvočni in video posnetki, tekstovne datoteke, razne binarne datoteke itd. Primer potrebe po verzioniranju bi lahko bil sestava pogodbe z več členi. Pogodbo običajno v grobem napiše ena oseba. Detajle pogodbe, na primer še dodatne člene, pa dopolnjujejo drugi sodelavci, ki so poznavalci vsebine. S tem se kvaliteta pogodbe poveča. Na ta način se tvori verzioniran dokument, ki vsebuje osnutek pogodbe začetnega avtorja pogodbe in sodelavcev, ki so pogodbo dopolnjevali. Verzioniran dokument je entiteta, ki hrani vsebino dokumenta vključno z dopolnitvami, ki so se nad njim dogajale skozi čas. Verzija dokumenta predstavlja vsebino dokumenta, ki je nastal ob določenem času. Sistemi za verzioniranje dokumentov najpogosteje uporabljajo enega izmed dveh načinov hranjenja podatkov:  Sistem za vsako spremembo dokumenta shrani vsebino celotnega dokumenta v nov dokument.  Sistem shrani prvo verzijo dokumenta, za vse naslednje spremembe nad dokumentom pa shrani le razlike – shrani le razliko med dvema zaporednima spremembama. Sistem za verzioniranje dokumentov je namenjen hranjenju številnih različic datotek s podobno vsebino, ki se spreminja. Termin dokument predstavlja enoto, ki združuje vse verzije datotek z vsebino, ki se nadgrajuje. Elektronski dokumenti so hranjeni v mapah, ki so logično organizirane v drevesno strukturo map in podmap. Mape poimenujejo uporabniki sami. Priporočljivo je, da imajo imena map vsebinsko vrednost – ime mape opisuje vsebino dokumentov, ki se v njej hranijo. Dostopi do. 1.

(18) dokumentov znotraj dane mape so lahko dostopni vsem uporabnikom ali pa so omogočeni le uporabnikom, ki so člani določene uporabniške skupine. Cilja magistrskega dela sta pregled obstoječih aplikacij za verzioniranje dokumentov oziroma aplikacij, ki za svoje delovanje uporabljajo te sisteme, in razvoj lastne aplikacije, ki bo omogočala verzioniranje dokumentov. Ob pregledu obstoječih aplikacij za verzioniranje dokumentov nismo našli aplikacije, ki bi uporabnikom omogočala uporabo spletnega brskalnika za verzioniranje datotek in bi istočasno omogočala bogat izbor možnosti definiranja dostopnih pravic do vsebine shranjene znotraj sistema. Želeli smo tudi, da bi ta aplikacija bila intuitivna. Ker aplikacije za verzioniranje datotek, ki bi ustrezala našim željam, nismo našli, smo se odločili izdelati lastno. Razvita spletna aplikacija, ki smo jo poimenovali DRS, se lahko uporablja v vseh okoljih, kjer nastajajo razne digitalne vsebine, ki jih urejajo ali pregledujejo različni uporabniki. Izvaja se na vseh napravah, ki dostopajo do interneta z uporabo spletnega brskalnika. DRS je kratica za besedno zvezo »Document Revision System«. Primarni cilj aplikacije je shranjevanje vsebin na enem mestu. Tako preprečimo zmedo, ki bi nastala v primeru obstoja več različic iste digitalne vsebine. Aplikacija je brezplačna in odprtokodna, tako, da si jo zahtevnejši uporabniki lahko prilagajajo. Programska koda razvite aplikacije je priložena magistrskemu delu – priloga A. Pomemben motiv za izdelavo lastne aplikacije je bila tudi želja po osvojitvi novih znanj popularnih tehnologij, ki se vse bolj uporabljajo za razvoj spletnih aplikacij. V drugem poglavju najprej natančneje predstavimo sistem za verzioniranje podatkov. Sledi opis aplikacij TWiki in Revisionator ter poglavje, v katerem predstavimo motivacijo za razvoj spletne aplikacije DRS. V tretjem poglavju postavimo zahteve ter idejno zasnovo implementacije DRS. Četrto poglavje opisuje splošno delovanje DRS, v petem poglavju predstavimo tehnologije, ki smo jih uporabili za izdelavo spletne aplikacije za verzioniranje dokumentov, šesto poglavje pa opisuje osnovne ideje in načine delovanja DRS. Predstavljamo tudi sistemske zahteve, ki jih DRS potrebuje za delovanje. Sedmo poglavje predstavlja funkcionalnosti in načine uporabe DRS, sledi mu poglavje, v katerem opisujemo nekaj načinov implementacije določenih funkcionalnosti DRS. Predlagamo tudi nekaj alternativnih rešitev za 2.

(19) implementacijo iste funkcionalnosti. V zaključku podajamo nekaj idej, ki bi razvito aplikacijo nadgradile in ji dodale nove funkcionalnosti.. 3.

(20) 2. SISTEMI ZA VERZIONIRANJE DOKUMENTOV. Azad (2007) sisteme za verzioniranje (angl. version control, tudi revision control ali source control) opiše kot sisteme, ki se uporabljajo za upravljanje s spremembami, nastalimi na raznih digitalnih vsebinah, kot so obrazci, tehnične slike, dokumentacija, programska koda, ter sočasno delo na digitalnih vsebinah, ki so ponavadi deli obsežnejših projektov (Azad, 2007). Ti sistemi poskušajo rešiti več težav. Kot primer omenimo skupino ljudi, ki oblikuje ali ureja vsebino nekega dokumenta, na primer del dokumentacije nekega procesa. Dogaja se, da ima vsak član te skupine na svojem lokalnem računalniku shranjen svoj izvod tega dokumenta, ki bi ga rad spreminjal. Prihaja do problema neusklajene vsebine in morebitnega drugačnega poimenovanja datoteke. Težava nastane tudi pri združevanju vsebine iz vseh različic istega dokumenta – vsak član skupine je imel svoje ideje oziroma je podatke predstavil na svoj način. Še več težav nastane, ko so potrebni popravki vsebine dokumenta. Dogaja se, da uporabniki nove popravke shranijo v nov dokument z drugačnim imenom. Na konec izvornega imena dokumenta na primer dodajo zaporedno številko popravka, trenuten datum v različnih formatih ali kakšen drug način, s katerim si pomagajo ločevati različice dokumentov. Sčasoma postane urejanje sprememb nepregledno – običajno uporabniki ne vedo, kdaj je izbrana sprememba nastala, kdo jo je naredil in zakaj. V primeru, da je nova sprememba dokumenta nezaželjena, je prehod na prejšnje stanje težaven, saj je prejšnja vsebina skupnega dokumenta shranjena na računalnikih članov skupine ali znotraj njihovih elektronskih poštnih predalov. Pojavi se tudi problem drugačnega poimenovanja dokumentov. Sistemi za verzioniranje običajno tudi poskušajo reševati probleme s prikazovanjem in prikrivanjem dokumentov določenim uporabnikom. Znotraj organizacij so določeni dokumenti namenjeni le določenim osebam. Vsaka sprememba dokumenta je zabeležena. Ponavadi ti sistemi hranijo naslednje podatke: . številko ali tekst, ki enolično označuje dokument,. . številko oziroma tekst, ki hrani podatek o trenutni reviziji (verziji) dokumenta, 4.

(21) . številko oziroma tekst, ki enolično določa uporabnika, ki je spremembo naredil,. . časovna oznaka (angl. timestamp), ko se je sprememba zgodila.. Ti sistemi so temelj za pridobitev certifikata ISO 9001:2008, ki spada v družino standardov ISO 9000. Ta družina standardov opisuje različne aspekte in predlaga smernice upravljanja kakovosti. Cilj organizacij, ki želijo pridobiti ta standard, je nenehno izboljševanje storitev in njihovih izdelkov ter izpolnjevanje zahtev kupcev ali naročnikov. V tej družini standardov so vključeni standardi:  ISO 9001:2008 – definira zahteve za sistem kontrole kakovosti,  ISO 9000:2005 – definira terminologijo in osnovne koncepte kontrole kakovosti,  ISO 9004:2009 – se osredotoča na vprašanje, kako optimizirati sisteme kontrole kakovosti,  ISO 19011:2011 – opisuje priporočila, kako s pomočjo internih ali zunanjih nadzornikov preverjati delovanje sistema za kontrolo kakovosti. Izmed naštetih standardov je možno pridobiti certifikat samo za standard ISO 9001:2008. Ta standard definira zahteve za uvedbo sistema kontrole kakovosti. Ta odstavek je povzet po viru ISO 9000 – Quality management (ISO 9000 – Quality management). Takšni sistemi so vgrajeni v širok spekter aplikacij, ki jih vsakodnevno uporablja veliko ljudi. Tukaj omenimo zgolj Google Docs, Dropbox in razne sisteme wiki – na primer TWiki. Ti omogočajo vpogled in uporabo vseh verzij dokumenta. Uporabniki lahko pregledujejo seznam sprememb za vsak dokument posebej. Poleg tega lahko restavrirajo starejše verzije dokumentov. V viru z naslovom See the histroy of changes made to a file je opisano kako uporabniki lahko uporabljajo to funkcionalnost znotraj spletne aplikacije Google Drive (See the histroy of changes made to a file). Podobno funkcionalnost lahko v Dropbox-u aktiviramo tako, da se prijavimo v spletno aplikacijo, označimo željeno datoteko, nato z desnim klikom odpremo menu in izberemo možnost »Previous versions«. Natančnejši opis te funkcionalnosti Dropbox je dostopen na naslovu vira How do I recover previous versions of files (How do I recover previous versions of files). Tudi nekateri 5.

(22) pisarniški programi podpirajo funkcijo restavriranja dokumentov iz starejših verzij. Tako funkcionalnost lahko na primer aktiviramo v pisarniškem programu Microsoft Word z operacijo AutoRecover (How Word creates and recovers the AutoRecover files). Ta funkcionalnost je na voljo od različice 2007 dalje. Sistemi za verzioniranje podatkov so najširše uporabljeni na področjih, povezanih z razvojem programske opreme. Za potrebe razvoja programske opreme so po podatkih ankete »Eclipse community survey 2014 v2« najpopularnejši sistemi za verzioniranje datotek Subversion, CVS, Git in Mercurial (Eclipse community survey 2014 v2). V sledečih podpoglavjih opisujemo nekaj aplikacij, ki za svoje delovanje uporabljajo sisteme za verzioniranje podatkov. Aplikacije, ki omogočajo verzioniranje vsebine, uporabljajo različne sisteme, ki to omogočajo. Nekateri so v širši uporabi in jih uporabljaja več aplikacij, drugi za potrebe verzioniranja implementirajo lastne rešitve. Sistem TWiki za verzioniranje vsebine uporablja standarden sistem RCS (Twiki Reference Manual). 2.1. TWiki. TWiki je celovita spletna platforma, namenjena skupinskemu sodelovanju (TWiki). Gre za strukturiran sistem wiki, ki se ponavadi uporablja za razna upravljanja znanj in za verzioniranje dokumentov v prostoru razvoja novih projektov znotraj raznih organizacijskih okolij. Glavne funkcionalnosti sistema so:  Uporaba aplikacije znotraj spletnega brskalnika1 in posledična neodvisnost od operacijskega sistema. Na sliki 1 je prikazana prva privzeta stran sistema TWiki, ki jo uporabniki vidijo po sveži namestitvi sistema.  Možnost verzioniranja dokumentov in delov spletne strani. Istočasno se beleži celotna zgodovina sprememb nad dokumenti in nad dostopnimi pravicami uporabnikov. Izgled zgodovine sprememb je uporabnikom TWikija prikazan v spodnjem delu strani. Posamezne spremembe na strani so označene s črko r in zaporedno številko popravka izgleda. Primer zgodovine sprememb na strani je prikazan na sliki 2. 1. Spletni brskalnik je v tem primeru uporabljen kot klient, ki komunicira s. podatkovno bazo. 6.

(23)  Uporabnik lahko primerja razlike med dvema verzijama istega dokumenta. Primerjava dveh verzij spletne strani je prikazana na sliki 3. Tekst pred popravkom je označen z dvema znakoma »<«, spremenjeni tekst pa z znakoma »>«. Na sliki 4 vidimo, da smo tekst, prikazan v območju z naslovom »Welcome to TWiki« - na sliki 1 spremenili tako, da je nov naslov »Lorem Ipsum«, tekst2 pod njim pa je tekst, ki opisuje to besedno zvezo.  Dodeljevanje avtorizacijskih pravic na različnih nivojih aplikacije, na primer, omejitve branja, pisanja in preimenovanja posameznih delov strani na nivoju celotne spletne strani ali le dela spletne strani in uporabniške skupine.  Možnost urejanja spletnih strani v WYSIWYG urejevalniku besedila TinyMCE. WYSIWYG je akronim, ki v angleškem jeziku izhaja iz besed »What You See Is What You Get« – kar vidite, to tudi dobite. WYSIWYG urejevalniki besedil uporabniku sproti med pisanjem besedila prikazujejo izgled in oblikovanje napisanega teksta. Spletna stran, iz katere lahko pridobimo programsko kodo urejevalnika besedil TinyMCE, opisuje aplikacijo kot WYSIWYG urejevalnik besedila, ki uporabniku sproti, med pisanjem, prikazuje izgled teksta spletne strani (TinyMCE). Izdan je z licenco LGPL. Ta urejevalnik besedila je prikazan na sliki 4.  Obširen označevalni jezik (angl. markup language), ki uporabnikom omogoča lažje spreminjanje strani, saj jim ni potrebno poznavanje raznih programskih in opisnih jezikov za spreminjanje vsebine strani.  Veliko število razširitev, kot je na primer povezava z raznimi relacijskimi podatkovnimi bazami.  Spremenljiv izgled vmesnika.  Vključen iskalnik po vsebinah spletnih strani.  Obveščanje uporabnikov o spremembah preko elektronske pošte.. 2. Opis. besedne. zveze. Lorem. Ipusm. http://www.lipsum.com/. 7. je. dostopen. na. spletni. strani:.

(24)  Večjezična podpora GUI – grafični uporabniški vmesnik je preveden v 19 jezikov. Teksti na grafičnem vmesniku aplikacije so kodirani z UTF-8.  Preprečevanje neželjenih, množičnih objav (angl. spam).. Slika 1: Prva stran sistema TWiki, ki jo uporabniki vidijo po namestitvi sistema. Slika 2: Primer prikaza zgodovine sprememb na strani v sistemu Twiki, označen z rdečo obrobo 8.

(25) Sistem TWiki je napisan v programskem jeziku Perl. Idejni oče tega sistema je Peter Thoeny. Prva različica sistema je bila izdana leta 1998. Sistem je brezplačen, odprtokoden in zaščiten z licenco GPL. TWiki sistem dokumente, ki jih uporabniki napišejo oziroma pripnejo na spletnem strežniku, hrani kot običajne datoteke znotraj svojega dokumentnega sistema (sistem ne uporablja podatkovnih baz za hranjenje podatkov). Sistem TWiki lahko bolj tehnično razgledani uporabniki namestijo sami3 na svoj strežnik. Sistem lahko namestimo na vse prepoznavnejše operacijske sisteme (v nadaljevanju OS), kot so: razne distribucije Linux, Unix, Windows, OS-X. Da bo aplikacija delovala, mora spletni strežnik omogočati uporabo CGI (Common Gateway Interface) in uporabo interpreterja Perl. Za delovanje sistem ne potrebuje administratorskih pravic na spletnem strežniku. Ostali uporabniki, ki bi želeli uporabljati sistem, lahko le tega zakupijo preko organizacije Twiki, Inc. V tem primeru za hrambo podatkov, konfiguriranje strežnikov in izvajanje ostalih sistemskih opravil skrbi organizacija Twiki. Uporabniki zgolj urejajo svoje spletne strani in njihovo vsebino. Za dodatno implementacijo raznih funkcionalnosti znotraj sistema lahko uporabniki najamejo storitve organizacije Twiki. Sistem TWiki je bil v povprečju prenesen na uporabniške računalnike 4000 do 9000 krat mesečno in v celotnem časovnem obdobju obstanka več kot 500.000 krat. Uporabljen je v več kot 130 državah po svetu. Za lastne potrebe ga uporablja tudi nekaj svetovno največjih in najbolj prepoznavnih podjetij in organizacij, kot so na primer: Google, Yahoo, Paypal, SAP, CERN, Oracle, CISCO, Facebook in še mnogi drugi. Omenimo še nekaj pomanjkljivosti oziroma slabosti tega sistema. Primer: uporabniki kreirajo spletno stran, ki opisuje nek proces. Ta stran je znotraj wiki sistema dostopna zgolj določenim uporabnikom. Uporabniki k opisu pripnejo neko datoteko. Do te datoteke lahko dostopa kdorkoli z nekoliko znanja in poznavanjem imena te datoteke, čeprav nima dostopa do strani, kjer je ta datoteka pripeta (Wiki Software Evaluation).. 3. Podrobna. navodila. za. namestitev. sistema. TWiki. so. http://www.twiki.org/cgi-bin/view/TWiki/TWikiInstallationGuide. 9. dostopna. na:.

(26) TWiki aplikacija ne poskuša uporabnikov braniti oziroma preprečevati XSS in druge napade z vrivanjem programske kode (Cross-site Scripting (XSS), 2014). Zlobni uporabniki lahko ob urejanju opisa določene teme v programsko kodo, ki služi prikazu spletne strani, skrijejo tudi nekaj zlonamerne programske kode (Securing your TWiki). Večina spletnih strani, ki uporablja ta sistem, ne uporablja varne šifrirane povezave SSL. Zato obstaja možnost, da se uporabniški podatki, potrebni za avtentifikacijo znotraj aplikacije, prenesejo v nekriptirani obliki (Securing your TWiki). Zgoraj opisane slabosti za razvito aplikacijo DRS ne veljajo. Zlonamernemu uporabniku aplikacija ne prikaže dokumenta, čeprav le ta pozna ime dokumenta in nekatere parametre, ki ga opisujejo. Aplikacija tudi preprečuje razne napade z vrivanjem programske kode. Razvita aplikacija pred pošiljanjem uporabnikovih podatkov, potrebnih za avtentifikacijo – to sta uporabniško ime in geslo, ustrezno zavaruje. Uporabniško geslo se znotraj uporabnikovega klienta šifrira z uporabo algoritma SHA512 in šele nato pošlje na spletni strežnik.. Slika 3: Prikaz sprememb različnih verzij spletne strani. 10.

(27) Slika 4: Prikaz TWiki-jevega urejevalnika besedila. 2.2. Revisionator. Za razliko od aplikacije TWiki, ki podpira širok spekter funkcionalnosti, se Revisionator osredotoča predvsem na funkcionalnosti, namenjene verzioniranju tekstovnih dokumentov. Dokumente shranjuje v obliki spletnih strani – dokumenti, napisani z uporabo označevalnega jezika HTML. Uporabnik dokument pregleduje in ureja v urejevalniku besedila, ki ima podoben uporabniški vmesnik kot pisarniški program Microsoft Word. Zaradi tega pri urejanju dokumenta ne potrebuje znanja tega označevalnega jezika. Izgled uporabniškega vmesnika je prikazan na sliki 5.4 Po funkcionalnosti nekoliko spominja na Google Docs, s to razliko, da ob sodelovanju oziroma skupinskem istočasnem delu na dokumentu Google Docs, vse 4. Slika pridobljena s spletnega naslova:. https://s3.amazonaws.com/static.revisionator.com/uploaded_images%2FYyX8o37bT FyDKOAr2sOd_Screen%20Shot%202013-09-13%20at%2011.29.01%20AM.png. 11.

(28) spremembe sočasno vgradi v dokument, le te so takoj vidne vsem uporabnikom, ki si delijo dokument. Revisionator prav tako omogoča skupinsko sodelovanje. Razlika z Google Docs je v tem, da vsak uporabnik, ki dela na skupnem dokumentu, dobi svojo lokalno kopijo dokumenta, v katerega dodaja svoje popravke ali dopolnitve oziroma spreminja do sedaj napisano vsebino. Ko je s popravki zadovoljen, lahko te objavi, tako da popravke vidijo ostali udeleženci - delovanje spominja na sisteme za verzioniranje programske kode, kot sta na primer Subversion ali Git. Ko so popravki oziroma spremembe objavljeni, se lastnik dokumenta odloči, ali bo te upošteval v skupni verziji dokumenta. Revisionator omogoča vodenje zgodovine sprememb nad medsebojno povezanimi dokumenti. Na primer, neka organizacija izdela navodila za uporabo aplikacije verzije 1.0, nato isti dokument kopira kot osnovo navodila za uporabo za isto aplikacijo novejše verzije, na primer 1.1. Revisionator omogoča pregledovanje razlik med tema dvema dokumentoma in pregledovanje sprememb med različnimi verzijami istega dokumenta. Vsebuje tudi avtorizacijski modul za uporabnike. Glede na nastavitve lahko do nekega dokumenta dostopajo:  vsi uporabniki, ki poznajo generirani URL naslov,  samo določeni uporabniki (seznam uporabnikov z njihovimi elektronskimi naslovi),  samo določena skupina uporabnikov - sistem omogoča kreiranje uporabniških skupin, v katere lahko administrator aplikacije poljubno dodaja ali odvzema uporabnike.. Slika 5: Izgled urejevalnik besedila WYSIWYG aplikacije Revisionator. Podatki o aplikaciji Revisionator so pridobljeni s spletne strani, kjer lahko preizkusimo to aplikacijo (Revisionator – Overview, 2015). 12.

(29) 2.3. Ostali sistemi. Poleg sistemov TWiki in Revisionar obstaja še cela vrsta aplikacij namenjenih verzioniranju vsebine dokumentov. Stansberry v članku 7 Version Control Systems Reviewed predstavi sedem zelo pogostih sistemov za verzioniranje. Med njimi najdemo CVS, SVN, Git, Mercurial, Bazaar, LibreSource in Monotone (Stansberry, 2008). Ti sistemi se najpogosteje uporabljajo za potrebe razvoja programske opreme. Pri razvoju programske opreme običajno sodeluje več razvijalcev, ki sočasno urejajo programsko kodo projekta, na katerem delajo. Poleg sistemov, ki so predvsem namenjeni upravljanju s spremembani nad programsko kodo, poznamo tudi sisteme, ki so bolj osredotočeni na skupinsko delo in urejanje raznih tekstnih dokumentov. Leiva v članku 5 Free Microsoft Sharepoint Alternatives navaja sledeče sisteme: Google Cloud Connect, Alfresco, Kerio Workspace, Liferay Social office Community Edition, Nuxeo Open-Source CMS in Microsoft Sharepoint (Leiva, 2013). Sisteme za verzioniranje podatkov najdemo tudi v večini sistemov wiki, kot so FOSWiki, MoinMoin, MediaWiki, Gitit, Dokuwiki in druge (Wiki Software Evaluation in WikiMatrix, 2015). Za natančnejšo predstavitev sistemov TWiki in Revisionator smo se odločili, ker se med seboj precej razlikujeta, vsebujeta pa precej funkcionalnosti, ki smo jih želeli implementirati v DRS.. 13.

(30) 3. MOTIVACIJA. IN. ZAHTEVE. ZA. IZDELAVO. APLIKACIJE. ZA. VERZIONIRANJE DOKUMENTOV V podjetju, kjer sem zaposlen, se ukvarjamo z razvojem spletnih aplikacij, namenjenih za interno rabo. Podatke večinoma shranjujemo znotraj relacijske podatkovne baze Oracle. Programska koda, ki se izvaja na strežniku, je napisana v internem označevalnem jeziku podjetja. Imenuje se IML. Gre za označevalni jezik, zgrajen z uporabo tehnologije Java servlet. To je program, napisan z uporabo programskega jezika Java, ki se izvaja na spletnem strežniku. Kode aplikacij so shranjene znotraj datotek XML. Servlet iz podatkovne baze pridobi ustrezno datoteko XML; ta predstavlja aplikacijo, ki jo želi nek uporabnik izvesti. To nato razčleni in nad njo izvede ustrezne akcije. Te akcije so lahko: incializacija spremenljivk, priprava parametriziranih poizved in ali izvedba le teh, sprehod skozi programske zanke, preverjanje avtentifikacije in avtorizacije uporabnika in tako dalje. V naslednjem koraku se čez prebrano in ali spremenjeno datoteko XML požene še ena ali več transformacij XSLT, ki dokončno določijo izgled izhodnega dokumenta. Tega spletni strežnik posreduje uporabnikovemu spletnemu brskalniku. Programska koda, ki se prikazuje ali izvaja znotraj uporabniškega brskalnika, pa je napisana z uporabo: označevalnih jezikov HTML in CSS, skriptnega programskega jezika JavaScript in deloma z uporabo JavaScript knjižnice jQuery in jQuery-ui. Že v podjetju, kjer sem zaposlen, sem nadgrajeval internetno aplikacijo za verzioniranje dokumentov. Z njeno pomočjo hranimo verzionirane obrazce za predčasen odhod z delovnega mesta, obrazec za premestitev na drugo delovno mesto, obrazec za napoved dopusta zaposlenega itd. Znotraj tega sistema hranimo tudi razne programske knjižnice, ki se uporabljajo v drugih intranetnih aplikacijah. V tem sistemu so shranjene tudi razne predstavitve delovnih procesov in druga dokumentacija. Ta spletna aplikacija podatke shranjuje v podatkovno bazo Oracle. Koda, ki se izvaja na spletnem strežniku, je napisana z uporabo MAHLE Letrikinega označevalnega jezika IML.. 14.

(31) 3.1. Motivacija za razvoj lastnega sistema. Glavna motivacija za razvoj lastnega sistema za verzioniranje datotek je bila želja po nadgradnji znanj s področja spletnega programiranja in relacijskih podatkovnih baz ter konfiguracije spletnih strežnikov. Za razvoj spletne aplikacije smo se odločili zaradi prenosljivosti in enostavnosti uporabe. Večina operacijskih sistemov ob namestitvi naloži vsaj en spletni brskalnik. Posledično uporabniku ni potrebno namestiti nobene dodatne programske opreme za uporabo DRS. Uporaba spletnih aplikacij se iz leta v leto povečuje. Večina spletnih aplikacij je zasnovana na splošnih konceptih, kot so prijava v aplikacijo, lasten uporabniški profil, zamenjava uporabniškega gesla in podobno. To za uporabnika pomeni manj učenja novih funkcionalnosti in načinov uporabe. Tudi zaradi tega je aplikacija DRS za uporabnika prijaznejša. Zavedamo se tudi, da konfiguracija spletnih strežnikov, podatkovnih baz in drugih zalednih sistemov ni najenostavnejše opravilo. Zaradi tega smo hoteli ta postopek čim bolj poenostaviti. Odločili smo se, da bomo podatke, ki jih DRS potrebuje za delovanje, shranjevali na eno mesto – znotraj podatkovne baze. S tem je tudi poenostavljeno izdelovanje varnostnih kopij sistema, s katerimi preprečujemo potencialno izgubo podatkov. Naslednji dejavnik, ki je vplival na odločitev za izdelavo lastne aplikacije, je preglednost uporabniškega vmesnika. Želeli smo izdelati čim enostavnejši uporabniški vmesnik. Po drugi strani smo želeli upravljalcem strani – to so uporabniki, ki so zadolženi za vsebino znotraj sistema, dati možnost precej natančenga omejevanja akcij, ki jih manj pooblaščen uporabnik lahko izvaja. Ob pregledu obstoječih sistemov za verzioniranje datotek nismo našli sistema, ki bi upravljalcu omogočal natačno omejitev akcij za določenega uporabnika znotraj izbrane mape. Pri večini sistemov lahko upravljalci za nekega uporabnika določijo zgolj tri akcije, ki jih ta lahko izvaja na dani mapi. Te tri akcije so ponavadi možnost branja, pisanja in brisanja vsebine. DRS upravljalcem ponuja osem različnih akcij, ki jih lahko definirajo na posamezi mapi za manj pooblaščenega uporabnika. Natančnejši opis funkcionalnosti, ki jih upravljalci DRS lahko definirajo, je opisan v poglavju 7.6.2. 15.

(32) 3.2. Funkcionalne zahteve za implementacijo DRS. Od aplikacije pričakujemo, da bo dostopna širokemu krogu ljudi, zato mora biti prenosljiva med različnimi operacijskimi sistemi. Zaradi prenosljivosti med različnimi operacijskimi sistemi smo se odločili za izdelavo spletne aplikacije. To aplikacijo bodo uporabniki izvajali znotraj različnih spletnih brskalnikov. Ti so na primer Mozilla Firefox, Google Chrome, Microsoft Internet Explorer in drugi – natančnejše zahteve so predstavljene v poglavju 6.2. Spletne aplikacije se izvajajo na spletnem strežniku. Vsebina spletnih aplikacij je običajno zbrana na enem mestu, na primer, podatki se hranijo znotraj relacijske podatkovne baze. Podatke smo se odločili hraniti na strežniku znotraj relacijske podatkovne baze PostgreSQL. Zaradi popularnosti smo se odločili spletno aplikacijo razvijati na spletnem srežniku Apache. Iz ankete January 2015 Web Server Survey je razvidno, da je Apache najpopularnejši in najpogosteje uporabljen spletni strežnik (January 2015 Web Server Survey, 2015). Programska koda, ki se izvaja na spletnem strežniku, je napisana z uporabo skriptnega jezika PHP. Ta jezik smo izbrali zaradi njegove popularnosti in fleksibilnosti. Gelbmann ugotavlja, da je PHP najpogosteje uporabljen skriptni programski jezik (Gelbmann, 2015). Iz istega vira je tudi razvidno, da je najpopularnejša knjižnica jQuery. Odločili smo se za njeno uporabo pri razvoju spletne aplikacije. Ta knjižnica omogoča lažji in hitrejši razvoj dela spletne aplikacije, ki se bo izvajal znotraj spletnih brskalnikov in poskušal odpraviti razlike med različnimi spletnimi brskalniki. Aplikacija mora istočasno omogočati več uporabnikom dostop do istih vsebin. Določen uporabnik lahko na nekem dokumentu izvaja kritične popravke, zato mora aplikacija omogočati tudi začasno zamrznitev izvajanja sprememb na takem dokumentu. Ko so spremembe vnešene, je potrebno tak dokument spet postaviti v stanje, v katerem ga je možno spreminjati. Nekatere vsebine morajo biti dostopne le določenim prijavljenim uporabnikom. Zaradi tega mora aplikacija vsebovati prijavni modul. Aplikacija v grobem razlikuje med tremi tipi uporabniških računov. To so skrbniki aplikacije, uporabniki z 16.

(33) določenim naborom dostopnih pravic in uporabniki, ki lahko le pregledujejo vsem uporabnikom dostopne vsebine. Upravljalci oziroma skrbniki DRS lahko spreminjajo prevode grafičnega uporabniškega vmesnika aplikacije in določajo tipe datotek, ki jih uporabniki z nižjimi pooblastili lahko shranjujejo znotraj aplikacije. Poleg tega lahko upravljalci določajo dostopna pooblastila drugim uporabnikom. Vsi uporabniki z ustreznimi pooblastili morajo imeti kadarkoli možnost dostopati do vseh različic posameznega dokumenta oziroma shranjene vsebine znotraj sistema. Nekateri uporabniki morajo imeti tudi možnost ustvarjanja map, znotraj katerih se bodo shranjevale določene vsebine. Ker se lahko zgodi, da uporabniki shranijo neko napačno vsebino, mora DRS nuditi tudi možnost brisanja teh vsebin. Zaželjena je funkcionalnost dvostopenjskega brisanja datotek – na primer na način kot poteka brisanje datotek v operacijskem sistemu Linux ali Windows. S tem mislimo, da se izbrisana vsebina najprej premakne v koš. Uporabniki lahko to vsebino iz smetnjaka dokončno izbrišejo ali pa jo po želji restavrirajo. V primeru, da bodo uporabniki znotraj DRS shranjevali veliko vsebin v različne mape, ki so skupinsko povezane, mora DRS omogočiti iskanje dokumentov z enako oznako-značko. Ker aplikacija za potrebe omejenega dostopa do podatkov potrebuje identifikacijo posameznega uporabnika, se mora le ta v DRS prijaviti z vnosom uporabniškega imena in gesla. Aplikacija mora uporabnikom omogočati ponastavitev njihovega gesla in zamenjavo le tega v primeru, da so ga pozabili.. 17.

(34) 4. O DELOVANJU SPLETNIH APLIKACIJ. Spletne aplikacije se običajno izvajajo na spletnih strežnikih. S tem terminom označujemo podmnožico dinamičnih spletnih strani, ki na uporabnikovo zahtevo izvedejo določeno nalogo. Uporabniku na primer spremenijo geslo, s katerim se prijavlja na spletni portal, prikažejo mu informativni izračun višine zavarovalne premije, poiščejo mu telefonsko številko za iskano osebo, objavijo njegov komentar na prispevek blog, izdajo naročilo za nakup izbranega izdelka preko spleta. Spletni strežniki so računalniški programi, ki se neprestano izvajajo na računalnikih z dostopom do internetnega ali intranetnega omrežja in odgovarjajo na zahteve uporabnikov. Vsak spletni strežnik ima naslov IP, ki ga enolično določa. Poleg tega ima še 65536 vrat (angl. port). Vrata predstavljajo zaključek povezave med dvema napravama. Vrata s številkami 0 do 1024 so rezervirana (angl. Well-known ports). Na teh se ponavadi nahajajo vnaprej dogovorjene aplikacije. Namen posameznih rezerviranih vrat določa standard RFC 1700. Za pojasnitev prejšnjega odstavka si za primer zamislimo pismonošo, ki raznaša pošto po stanovanjskih blokih. V vsakem stanovanjskem bloku je več stanovanj. Stanovanjski blok z neko številko predstavlja naslov IP, številka posameznega stanovanja pa predstavlja vrata. Spletni strežnik je računalniški program, ki neprestano preverja, ali je na svojem naslovu na določenih vratih prejel zahtevo za prikaz spletne strani. Spletni strežnik in uporabnikov brskalnik komunicirata z uporabo protokola HTTP (angl. Hyper Text Transfer Protocol) ali protokola HTTPS (angl. Hyper Text Transfer Protocol Secure). Razlika med obema je sledeča: HTTP zahtevo pošlje v navadni tekstovni obliki, kar pomeni, da je berljiva-tekstovna datoteka in je sestavljena iz samo berljivih znakov. HTTPS zahteve so kriptirane, kar onemogoči branje vsebine zahteve. Ker gre za dva različna protokola, mora spletni strežnik ločiti med njima.Spletni strežnik običajno uporablja protokol HTTP na vratih 80, protokol HTTPS pa na 443. Vsebina odstavka je povzeta po članku What is HTTPS (What is HTTPS).. 18.

(35) Uporabniki do spletnih strani dostopajo z uporabo spletnih brskalnikov. Ko uporabnik želi obiskati izbrano spletno stran, spletni brskalnik pošlje spletnemu strežniku, na katerem se nahaja spletna stran, zahtevo za prenos. Spletni strežnik na določenih vratih neprestano preverja, ali je prejel zahtevo. Ko jo prejme, izvede potrebne akcije in uporabnikovemu spletnemu brskalniku vrne ustrezno zahtevano vsebino. Ta vsebina je lahko obvestilo o statusu izvedene akcije, tekstovna datoteka, slika, video posnetek ali kakšna druga datoteka. Nekatere spletne aplikacije potrebujejo za izvajanje akcij uporabnikovo prijavo. Spletne aplikacije, ki za delovanje potrebujejo to funkcionalnost, imajo ponavadi implementirana prijavna okna. Iz same zahteve za pregled vsebine spletne strani spletni strežnik ni zmožen določiti, kateri uporabnik želi pregledovati spletno stran. Zaradi tega se mora uporabnik spletnemu strežniku predstaviti. To običajno stori tako, da v prijavno okno vnese svoje uporabniško ime in geslo ter te podatke posreduje spletnemu strežniku oziroma spletni aplikaciji. Nekatere spletne aplikacije omogočajo izvajanje določenih akcij vsem uporabnikom, za izvajanje drugih pa zahtevajo prijavo in ustrezno avtorizacijo posameznega uporabnika. Pojma avtentikacija in avtorizacija sta medsebojno povezana. Pojem avtentikacija pomeni, da iz podatkov, ki nam jih je uporabnik posredoval, izvemo njegovo identiteto. Avtorizacija predstavlja seznam akcij ali lokacij, ki jih avtentificiran uporabnik lahko izvede ali obišče. Velja relacija, da se uporabnikova avtorizacija določi istočasno ali po avtentikaciji uporabnika, ni pa možno najprej preveriti oziroma izračunati avtorizacijo in šele nato avtenticirati uporabnika. Za primer vzemimo spletno trgovino. Vsi uporabniki – prijavljeni in neprijavljeni lahko pregledujejo izdelke, ko pa želi uporabnik določen izdelek kupiti, se mora aplikaciji avtenticirati. To je potrebno, da spletna aplikacija pridobi podatke o tem, kdo je naročil željeni izdelek ter kje želi izdelek prevzeti.. 19.

(36) 5. TEHNOLOGIJE, UPORABLJENE ZA RAZVOJ DRS. V tem poglavju bomo na kratko predstavili tehnologije, ki smo jih uporabili za razvoj spletne aplikacije DRS, namenjene verzioniranju dokumentov. Pojem verzioniran dokument bo natančneje predstavljen v poglavju 7. 5.1. PostgreSQL. PostgreSQL je odprtokodna relacijska baza. Licencirana je z licenco PostgreSQL. Razvija se že več kot 15 let. Teče na večini večjih in popularnejših operacijskih sistemov, kot so Linux, UNIX (BSD, Solaris, HP-UX), Mac OS X, Windows. Omogoča uporabo širokega spektra podatkovnih tipov »integer«, »text«, »large objects« in drugih, uporabo več shem znotraj ene baze, asinhrone replikacije, izboljševalnik poizvedb (angl. query optimizer), uporabo rekurzivnih splošnih tabelnih. izrazov. (angl.. recursive. common. table. expressions),. uporabo. programabilnih baznih procedur (angl. stored procedures) v jezikih, kot so PL/pg SQL, C/C++, Python, Ruby. PostgreSQL je visoko razširljiva podatkovna relacijska baza. Implementacija te relacijske podatkovne baze se strogo drži standarda ANSISQL:2008. Odstavek povzet po viru PostgreSQL – About (PostgreSQL – About). Za uporabo te relacijske podatkovne baze smo se odločili zaradi odprte licence in možnosti brezplačne uporabe. V aplikaciji služi podatkovna baza shranjevanju podatkov. Poleg tega služi še izvajanju raznih procedur, s pomočjo katerih pridobivamo in urejamo podatke, ki jih obdeluje aplikacija. Te akcije so v primeru DRS lahko: kreiranje in verzioniranje dokumentov, urejanje drevesne strukture map in podmap, določanje avtorizacije raznim uporabniškim skupinam, itd. Prednosti uporabe te relacijske podatkovne baze v primerjavi z drugimi odprtokodnimi in brezplačnimi, kot so na primer MySql in SQLite, so:  PostgreSQL definira lasten podatkovni tip JSON in razne funkcije za delo s tem podatkovnim tipom – format, v katerem razvita aplikacija izmenjuje podatke med spletnim strežnikom in uporabnikom.. 20.

(37)  Možnosti uporabe rekurzivnih CTE5 – te aplikacija uporablja za generiranje drevesne strukture map.  Dosledna uporaba standarda ANSI-SQL:2008, kar omogoča lažjo prenosljivost med drugimi podatkovnimi bazami. Sintaksa PostgreSQL je precej podobna sintaksi, ki se izvaja na relacijski podatkovni bazi Oracle. Slabosti te podatkovne baze v primerjavi z MySQL in SQLite sta večja kompleksnost baze in nekoliko manjša priljubljenost med razvijalci programske opreme. Odstavek je povzet po članku SQLite vs MySQL vs PostgreSQL: A comparison Of Relational Database Management Systems (Tezer, 2014) in viru What are pros and cons of PostgreSQL and MySQL (What are pros and cons of PostgreSQL and MySQL?). 5.2. PHP. PHP pomeni tričrkovni rekurzivni akronim za PHP: Hypertext Processor in je odprtokodni skriptni programski jezik. Primarno se uporablja za izdelavo dinamičnih spletnih strani. Dinamične spletne strani so tiste, ki se jim vsebina skozi čas spreminja. Primer dinamične spletne strani so na primer novičarski portali, kjer avtorji objavljajo nove članke, ki so nato prikazani na teh portalih. Take strani ponavadi hranijo potrebne podatke znotraj podatkovnih baz. Prvo različico tega programskega jezika je leta 1994 razvil Rasmus Lerdorf. Je eden izmed najpopularnješih programskih jezikov, pa tudi najbolj razširjen, saj je največ spletnih strani razvitih z njegovo uporabo. PHP se lahko izvaja na večini danes uporabljenih spletnih strežnikov, operacijskih sistemov in platform, nudi tudi vmesnik do večine relacijskih podatkovnih baz (angl. RDBMS - relational database management systems). PHP primarno deluje kot filter, ki vhodni podatkovni tok (zahteva GET, ki jo ponavadi zahteva uporabnikov brskalnik), ki vsebuje tekst in navodila za PHP, pretvori v nek drug podatkovni tok. Ta tok je ponavadi stran HTML. Lahko pa je tudi JSON, XML, binarni podatki, kot so na primer slike ali zvočni zapisi. Koda PHP je lahko vgrajena znotraj raznih datotek - ponavadi so to datoteke HTML. 5. CTE je začasna zbirka podatkov, ki je dostopna znotraj posamezne poizvedbe SQL. 21.

(38) Programsko kodo PHP izvaja spletni strežnik. V spletnem brskalniku se uporabnikom prikaže le rezultat izvajanja te programske kode. V primeru DRS smo izbrali spletni strežnik Apache. Ta je prav tako kot relacijska podatkovna baza PostreSQL brezplačen za uporabo. V razviti spletni aplikaciji skrbi za prikaz začetne spletne strani in za komunikacijo med uporabnikovim spletnim brskalnikom in podatkovno bazo. To pomeni, da izvaja razne bazne procedure in njihove rezultate v JSON obliki pošilja uporabnikovemu brskalniku. Poglavje je povzeto po virih: PHP: What is PHP? (PHP: What is PHP?) in PHP: What can PHP do? (PHP: What can PHP do?). 5.3. HTML. HTML (angl. Hyper Text Markup Language) je označevalni jezik, namenjen razvoju spletnih strani. Datoteke HTML ponavadi pregledujemo z uporabo spletnih brskalnikov. Primarno je bil namenjen medsebojni povezavi spletnih strani, kar v bistvu tvori današnje medmrežje. Ta označevalni jezik se danes primarno uporablja kot osnovni gradnik spletnih strani. Druga možna uporaba jezika HTML je oblikovanje sporočil elektronske pošte. Koda HTML je zapisana v človeku berljivi obliki, kot tekstoven dokument. Lahko jo pišemo znotraj skoraj vsakega urejevalnika besedil. Gradniki tega jezika so značke (angl. tags) - rezervirane besede pisane med znakoma »<« in »>«. Vedenje značke je dodatno specificirano z uporabo atributov znotraj značke. Nekateri atributi nimajo vrednosti, vrednosti ostalih lahko pišemo med enojnimi ali dvojnimi navednicami. Zadnji standard, ki definira uporabo HTML, je HTML5. Vsebina odstavka je povzeta po članku What is HTML (Shannon, 2012) in HTML (HTML). V DRS je struktura prve strani (index.php) napisana kot statična stran s tem označevalnim jezikom. Preostali sledeči elementi, ki se na strani spreminjajo glede na izvajanje raznih akcij, na primer: prikaz podmap, vsebine določene mape in kreiranje novega dokumenta, se dinamično gradijo s pomočjo skriptnega jezika JavaScript in knjižnice jQuery - ta skriptni jezik gradi strukturo strani. Več o JavaScript jeziku je opisano v poglavju 5.5. Knjižnica jQuery je predstavljena v poglavju 5.6.. 22.

(39) 5.4. CSS. CSS (angl. Cascading Style Sheets) je jezik za izdelavo stilnih predlog. Predloge določajo izgled dokumenta, napisanega z uporabo označevalnih jezikov HTML, XML ali različic jezika XML, kot sta SVG oziroma XHTML. Stilna predloga običajno spletnemu brskalniku definira, kako naj izriše določen dokument. Stilne predloge na primer določajo barvo gumba ali območja na spletni strani. Določajo lahko tudi velikosti posameznega gumba in njegovo lego znotraj okvira na spletni strani. Z določenimi selektorji lahko tudi definiramo izgled elementa, ko nanj postavimo miškin kazalec ali izgled, ko miškin kazalec zapusti območje elementa. Trenutno je v uporabi standard CSS3. Vsebina odstavka je povzeta po viru CSS (CSS). 5.5. JavaScript. JavaScript je objektno orientiran programski jezik. Največkrat je uporabljen kot skriptni jezik za izdelavo interaktivnih spletnih strani (angl. client side scripting). Uporablja se za spreminjanje že prikazane spletne strani (spremembe nad strukturo strani DOM). DOM je objekt oziroma reprezentacija podatkov spletne strani, s pomočjo katerih spletni brskalnik uporabniku prikaže spletno stran. Skripta v jeziku JavaScript, ki se izvaja znotraj uporabnikovega spletnega brskalnika in spreminja lastnosti objekta DOM, lahko spremeni izgled spletne strani. Spremembe spletne strani so vidne kot izvajanje animacij na določenih delih strani, skrivanje oziroma prikazovanje raznih prikaznih oken, spreminjanje velikosti določenih elementov na spletni strani in podobno. JavaScript omogoča tudi asinhrono komunikacijo brskalnika in spletnega strežnika. To tehnologijo imenujemo AJAX in je prodrobneje predstavljena v poglavju 5.6. JavaScript se lahko uporablja tudi kot programski jezik, ki se izvaja na spletnih strežnikih. Uporabljen je tudi v namiznih aplikacijah in novejših virtualnih okoljih (angl. virtual machines). ECMAScript specificira delovanje JavaScript programskega jezika. Ta programski jezik se je prvič pojavil leta 1995. Sintaksa tega programskega jezika je podobna sintaksi programskega jezika C. Poglavje povzeto po virih JavaScript Guide – Introduction (JavaScript Guide – Introduction) in JavaScript web APIs (JavaScript web APIs). 23.

(40) 5.6. AJAX. Kratica AJAX pomeni asinhroni JavaScript in XML (angl. Asynchronous JavaScript + XML). Termin AJAX je leta 2005 sestavil James Garrett in opisuje med seboj povezane tehnologije: HTML ali XHTML,6 CSS, JavaScript, DOM, XML, XSLT7 in objekt XMLHttpRequest, ki je temeljni gradnik AJAX. Izvaja se na strani klienta in omogoča izdelavo interaktivnih spletnih aplikacij. Uporablja se za izmenjavo podatkov med brskalnikom in strežnikom. V večini primerov se uporabniku spremeni le del trenutno prikazane strani. Posledično uporabnik ne zazna »bliskanja« spletne strani. Primer take funkcionalnosti v aplikaciji DRS je sledeč: uporabnik klikne na ikono mape. Uporabnikov spletni brskalnik s pomočjo klica AJAX pridobi s spletnega strežnika podatke o vsebini, ki se nahaja v mapi. Te podatke nato prikaže uporabniku – spletna stran se v celoti še enkrat ne naloži, ampak se spremeni le del spletne strani. Podatki se med spletnim strežnikom in uporabnikovim klientom prenašajo v naslednjih formatih (XMLHttpRequest property responesType):  JSON je format, namenjen prenosu podatkov. Razvit je bil leta 2001. Definiran je s standardoma: ECMA-404 in RFC 7159. Trenutno najbolj pridobiva na popularnosti. Lepa lastnost tega formata je, da je format veljaven objekt JavaScript in ga za uporabo znotraj JavaScript skripte ni potrebno dodatno členiti. Omogoča večjezično podporo. Uporabljamo ga lahko na različnih računalniških sistemih – prenosljiv je med različnimi operacijskimi sistemi (anlg. Cross-platform).. 6. Iz članka Differences Between HTML in XHTML (Roberts, 2014) izvemo, da sta. HTML in XHTML skoraj identična označevalna jezika. Razlika je v strogosti preverjanja sintakse. XHTML zahteva zaljučene značke. Značka za prikaz slike mora biti na primer zaključena, v HTML to ni potrebno. 7. XSLT je jezik, ki služi transformiranju XML dokumenta v XHTML ali spremenjen. dokument XML. 24.

(41)  XML (angl. Extensible Markup Language) je označevalni jezik. Razvit je bil leta 1996. Definiran je s standardom XML 1.0 Specification. Njegova sintaksa je uporabljena v velikem številu drugih formatov, kot so: RSS, SOAP, XHTML, DOCX, itd. Uporablja se tudi za izmenjavo podatkov med strežniki in brskalniki. Standard, ki opisuje ta način uporabe, se imenuje RFC 7303. Podatki so pridobljeni iz spletne strani W3C, ki objavlja priporočila za razvoj spletnih aplikacij (Extensible Markup Language (XML)).  Goli tekst (angl. plain text) – podatki se prenesejo kot običajna tekstovna datoteka.  HTML koda – odgovor AJAX je del spletne strani, ki se lahko direktno zamenja ali vgradi v obstoječo stran.  Binarne datoteke (arraybuffer ali blob) – odgovor AJAX vrne na primer sliko. Poglavje je povzeto po članku What is Ajax and Where is it Used in Technology? (Fote, 2013) in viru Ajax (Ajax). 5.7 jQuery JQuery je trenutno najpopularnejša knjižnica za izdelavo spletnih strani, zgrajena z uporabo programskega jezika JavaScript. Prvič je bila izdana leta 2006. Je odprtokodna in zaščitena z licenco MIT. Primarno je namenjena poenostavitvi skriptnega programiranja spletne strani na strani klienta. JQuery poenostavlja:  Navigacijo in manipulacijo elementov DOM,  izvajanje animacij,  upravljanje z dogodki (angl. event handling),  komunikacijo AJAX s serverjem. Poleg tega zagotavlja prenosljivost funkcionalnosti JavaScript med različnimi spletnimi. brskalniki,. odpravlja. nekonsistentosti. oz.. nekoliko. drugačna. implementacija dane funkcionalnosti v posameznem brskalniku in omogoča izdelavo lastnih razširitev (angl. plug-ins). Za potrebe razvoja DRS smo uporabili knjižnici jQuery in jQuery-ui. Slednja je namenjena izgradnji dinamičnih grafičnih. 25.

(42) vmesnikov. To knjižnico uporablja nekaj največjih tehnoloških podjetji ter najbolj obiskanih spletnih strani, kot so Amazon, Google, Dell, Netflix in Twiter. Temeljni gradnik knjižnic jQuery so selektorji, s pomočjo katerih izberemo željeni element DOM oziroma skupino elementov, nad katerimi želimo izvajati akcije. Izberemo na primer vse tekstovne povezave (značke a), ki imajo prirejen dani razred CSS in jim s pomočjo programske kode jQuery povečamo ali spremenimo pisavo. Izbiranje elementov DOM je zelo podobno tistim, s katerimi v predlogi CSS določimo izgled elementov. Vsebina poglavja je povzeta po virih: jQuery (jQuery), jQuery-UI (jQuery-UI) in video vsebini What is jQuery? – jQuery Tutorials for Beginners (O'Doherty, 2011).. 26.

(43) SPLOŠNO O DELOVANJU DRS. 6. Razvili smo spletno aplikacijo DRS, ki pojasnjuje in rešuje problematiko verzioniranja dokumentov. Rezultate njenega delovanja smo preverili na izmišljenih podatkih. Primeri uporabe in testni podatki so natančneje predstavljeni v poglavju 7. 6.1. Opis podatkovnega modela. V tem podpoglavju bomo predstavili podatkovni model, na podlagi katerega je zgrajena DRS. Na sliki 6 je predstavljen podatkovni model DRS. Za izdelavo vizualizacije podatkovnega modela smo uporabili program DbVisualizer.8 Opisi tabel v podatkovnem modelu in njihov namen uporabe: 1. V tabeli USERS aplikacija hrani podatke o registriranih uporabnikih. Najpomembnejši podatki, hranjeni v tej tabeli, so ID uporabnika, salt in kriptirano uporabnikovo geslo. Podatki o uporabnikih (natančen ključ te tabele ID) se povezuje še s tabelami:  LOGIN_ATTEMPT – enaki imeni povezovalnih stolpcev,  DOCS – v tej tabeli stolpec owner vsebuje ID uporabnika iz tabele USERS,  AUTH_GROUPS_Z – enaki imeni povezovalnih stolpcev. 2. Tabela LOGIN_ATTEMPTS beleži neuspešne poskuse prijave z danim uporabniškim imenom in geslom. V primeru, da uporabnik petkrat zapored zgreši geslo, se mu uporabniški račun začasno zaklene. S tem poskusimo preprečiti, da bi nepooblaščeni uporabnik DRS poskusil uganiti geslo drugega uporabnika. 3. Tabela FOLDER_STRUC hrani podatke o drevesni strukturi map. S pomočjo te tabele DRS definira, ali je določena mapa aktivna ali mehko izbrisana. Znotraj te tabele uporabniki z dovolj pravicami tudi definirajo vlogo določenih parametrov na dokumentih, ki se oziroma se bodo nahajali v tej mapi. S tem mislimo stolpec »Nastavitev« na sliki 11 – zahteve za posamezen parameter 8. Aplikacija DbVisualizer je dostopna na naslovu: http://www.dbvis.com/download/. 27.

(44) (parameter samo za branje, opcijski parameter ali obvezen parameter). Tabela se povezuje s tabelami: FOLDER_STRUC_T, FOLDER_STRUC_Z, DOCS (enaka imena povezovalnih stolpcev). 4. Tabela FOLDER_STRUC_T hrani prevode imen map, katerih struktura je shranjena znotraj mape FOLDER_STRUC. V katere jezike je možno prevesti ime mape, definira mapa LANGUAGES. 5. Tabela LANGUAGES je šifrant, v katerem hranimo podatke o jezikih, kjer je možno prevesti imena map in tekste znotraj GUI-ja aplikacije. Tabela se povezuje s tabelami: I18N in FOLDER_STRUC_T (preko stolpcev z enakimi imeni). 6. Tabela I18N hrani prevode tekstov, ki sestavljajo GUI aplikacije. Poleg tega hrani tudi opise pravic, ki so definirane v tabeli PRIVS. 7. Tabela DOCS hrani podatke o vseh dokumentih, shranjenih v DRS. Definira:  katere datoteke sodijo k istemu dokumentu (stolpec doc združuje vse datoteke istega dokumenta),  verzijo posameznega dokumenta (stolpec version),  parametre za posamezno datoteko (stolpci param1 – param5),  lastnika datoteke (stolpec owner),  ter aplikaciji pove, ali je določena datoteka zaklenjena (stolpec checkin vsebuje ID uporabnika, ki je morebiti zaklenil določeno datoteko). Tabela se povezuje s tabelami: DOC_TAGS, FILES, DOC_VALIDITY, FOLDER_STRUC in posredno s tabelo EXT_WHITELIST. 8. Tabela DOCS_TAGS hrani značke, ki jih uporabniki dodajo posameznemu dokumentu. Tabela se povezuje s tabelo DOCS preko stolpca doc (ta stolpec združuje vse verzije posameznega dokumenta). Značke pišemo na posamezen dokument in ne na vsako verzijo datoteke posebej. 9. Tabela DOCS_VALIDITY vsebuje podatek o obdobju veljavnosti posamezne datoteke.. 28.

(45) 10. Tabela FILES vsebuje povezave do datotek. Povezuje se s tabelo EXT_WHITELIST preko stolpca id_ext in s tabelo DOCS preko stolpca id_doc. 11. Tabela EXT_WHITELIST je šifrant, ki hrani podatke o tipih datotek in njihovih MIME končnicah. Tabela tudi določa, katere tipe datotek lahko uporabniki nalagajo oziroma shranjujejo znotraj DRS. 12. Tabela AUTH_GROUPS shrani podatke o vseh uporabniških skupinah. Povezuje se s tabelama AUTH_GROUPS_Z (preko stolpca id_gr). in. FOLDER_STRUC_Z (id_gr iz pravkar opisane tabele se povezuje s stolpcem id_grp v tabeli FOLDER_STRUC_Z). 13. Tabela AUTH_GROUP_Z vsebuje podatke o tem, kateri uporabniki so člani določene uporabniške skupine. 14. Tabela FOLDER_STRUC_Z definira, katere uporabniške skupine imajo določeno pravico na dani mapi. Ta tabela se povezuje s tabelama AURH_GROUPS (kot je bilo opisano v prejšnji točki) in s tabelo PRIVS (preko stolpca priv). 15. Tabela PRIVS je šifrant, ki vsebuje možne pravice ter njihov opis (opisi pravic so hranjeni v tabeli I18N – povezava med tabelama je stolpec id_transl). Pravice lahko administrator aplikacije dodaja uporabniškim skupinam za posamezno mapo. S tem definira, kaj lahko uporabniki, ki so člani te skupine, počnejo znotraj mape. Seznam akcij, ki jih omogočajo posamezne pravice je natančneje opisan v poglavju 7.6.3 v tabeli 2.. 29.

(46) Slika 6: Vizualizacija podatkovnega modela DRS. 6.2. Opis delovanja DRS. Splošno delovanje spletnih aplikacij je bilo opisano v poglavju 4. DRS je primarno namenjena uporabi znotraj spletnih brskalnikov, ki se izvajajo na namiznih računalnikih – PC. Grafični vmesnik aplikacije se prilagaja spreminjanju velikosti spletnega brskalnika. Te funkcionalnosti so implementirane z uporabo tehnologij HTML, CSS, JavaScript in knjižnic jQuery in jQuery-UI. Aplikacijo lahko uporabniki poganjajo tudi na drugih napravah, na primer na pametnih mobilnih telefonih ali tablicah. Zaradi količine podatkov in raznih funkcionalnosti - gumbov prikazanih na ekranu, so priporočljivejše naprave z nekoliko večjim ekranom. Večino programske kode smo napisali z uporabo urejevalnika besedil Gedit9. Razvite. 9. Gedit je urejevalnik besedila, ki ga najdemo v večini distribucij Linux. 30.

(47) dele smo sprotno preverjali in testirali znotraj spletnih brskalnikov, ki so predstavljeni v tabeli 1 v poglavju 6.3. Razvita spletna aplikacija podatke hrani na spletnem strežniku znotraj relacijske podatkovne baze PostgreSQL. Za izdelavo varnostnih kopij ali zgolj pregledovanje podatkov znotraj baze lahko skrbniki DRS, to so uporabniki, ki imajo popoln dostop do podatkovne baze in spletnega strežnika, uporabijo razne programe. Ti so na primer: phpPgAdmin, pgAdmin310, SQL Developer in drugi. Za izdelavo tabel, ki bodo hranile podatke potrebne za delovanje DRS, relacije med tabelami in potrebne omejitve vsebine nekaterih stolpcev (angl. constraints), smo uporabili odprtokodno spletno aplikacijo, ki se izvaja v spletnem brskalniku phpPgAdmin. Z uporabo te aplikacije smo tudi razvili vse preostale gradnike znotraj podatkovne baze, ki jih DRS potrebuje za delovanje. To so bazne procedure (angl. Stored procedures) (PL/pgSQL Overview), prožilci na raznih stolpcih (angl. triggers), sekvence za generiranje unikatnih vrednosti v nekaterih stolpcev. DRS se izvaja na spletnem strežniku Apache – možna pa je uporaba katerega koli spletnega strežnika, ki omogoča uporabo tehnologije php. V primeru, da se spletni strežnik izvaja na računalniku, na katerem je nameščen operacijski sistem Ubuntu, se programska koda DRS nahaja znotraj mape »DRS« - to je na operacijskem sistemu Ubuntu ob uporabi privzetih nastavitev in konfiguracij spletnega strežnika na lokaciji »/var/www/html/DRS/«. Aplikacije in spletne strani, ki jih spletni strežnik prikazuje uporabnikom, se ponavadi nahajajo znotraj mape na operacijskem sistemu s potjo »/var/www/html/«. Spletni strežnik ima naslov IP in odgovarja na uporabnikove zahteve. Shematski prikaz delovanja DRS je prikazan na sliki 7. Uporabnik poganja DRS tako, da v spletni brskalnik vnese naslov spletnega strežnika in pot do DRS – na primer »http://127.0.0.1/DRS/index.php«. Akcije, ki se ob tem izvedejo, so sledeče:  Uporabnikov brskalnik pošlje spletnemu strežniku, ki se nahaja na naslovu ip »127.0.0.1«, zahtevo za pridobitev podatka oziroma datoteke »index.php« na 10. phpPgAdmin. aplikacija. je. dostopna. http://phppgadmin.sourceforge.net/doku.php. 31. na. internetnem. naslovu:.

(48) tem naslovu v mapi »DRS«. Ta del ponazarjajo puščice na sliki 7 s številkami 1,2,3.  Spletni strežnik zazna, da je nekdo zahteval vsebino datoteke »index.php« znotraj mape »DRS«. Iz končnice datoteke ».php« vidimo, da je vsebina te datoteke napisana z uporabo skriptnega programskega jezika PHP.  Spletni strežnik pošlje vsebino datoteke interpreterju PHP.11 Ta izvede potrebne operacije, ki so definirane znotraj te datoteke. Te akcije so lahko: pridobivanje podatkov iz podatkovne baze, dinamična gradnja oblike in izgled spletne strani, urejanje podatkov in tako dalje. Na sliki 7 so ponazorjene s puščicama 4 in 5.  Rezultate delovanja nato spletni strežnik pošlje uporabnikovemu spletnemu brskalniku. Na sliki 7 so te akcije predstavljene s puščicami 6, 7, 8. V DRS interpreter PHP komunicira s podatkovno bazo PostgreSQL preko razširitve PDO (angl. PHP Data Objects).12 Ta vmesnik omogoča enotno komunikacijo do različnih podatkovnih baz, medtem ko običajni vmesniki PHP, za komunikacijo med različnimi podatkovnimi bazami uporabljajo različne sintakse. Za uporabo te razširitve smo se odločili, ker podpira uporabo parametriziranih poizvedb. Parametrizirane poizvedbe so način tvorjenja poizvedb, s katerimi preprečujemo vrivanje SQL (angl. SQL injection).13 To so namerno prirejeni podatki, ki spremenijo iskalne pogoje začetne poizvedbe – običajno z namero neavtoriziranega dostopa do podatkov. Pri DRS si interpreter PHP in podatkovna baza PostgreSQL večino podatkov izmenjujeta na način, kjer interpreter PHP z uporabo parametriziranih poizvedb kliče. 11. Delovanje in osnovne komponente interpreterja php so predstavljene v predstavitvi. na internetnem naslovu, navedenem v viru: »How PHP works?« (Ravi, 2009). 12. Povzeto po viru PHP PDO Introduction (PHP PDO Introduction).. 13. Natančnejši opis SQL-vrivanja je dostopen na internetnem naslovu pod virom SQL. Injection. 32.

(49) bazne procedure – PL/pgSQL,14 to je proceduralni jezik, s katerim lahko urejamo podatke znotraj podatkovne baze PostgreSQL.. Slika 7: Shema delovanja spletne aplikacije DRS. 6.3. Zahteve za delovanje spletne aplikacije DRS. Uporabniki za uporabo DRS potrebujejo le spletni brskalnik in dostop do interneta oziroma intraneta, če aplikacijo uporabljamo znotraj omrežja neke organizacije. Spletni brskalnik mora imeti omogočeno uporabo skriptnega jezika JavaScript. Poleg tega mora spletni brskalnik biti dovolj sodoben (podpirati mora uporabo AJAX). Priporočljiva je tudi možnost uporabe objekta FormData15 znotraj programskega jezika JavaScript. Če spletni brskalnik ne pozna tega objekta – na primer Internet Explorer 9, bo DRS podatke s spletnim strežnikom izmenjevala na manj optimalen način. Če je le možno poskuša DRS podatke, potrebne za delovanje, izmenjevati s spletnim strežnikom z uporabo tehnologije AJAX in JavaScript objekta FormData.V primeru, ko spletni brskalnik tega objekta ne podpira, smo za razvoj uporabili del programske kode, ki to pomankljivost odpravlja (Mellado, 2014). Pri implementaciji 14. Natančnejši opis baznih procedur PL/pgSQL je dostopen na internetnem naslovu. pod virom PL/pgSQL Overview (PL/pgSQL Overview). 15. Seznam raznih brskalnikov in njihova podpora za objekt FormData:. http://ahedg.es/webkit/formdata.html. 33.

References

Related documents

Intriguingly, mfl silencing also triggered unexpected effects on wing pattern- ing and cell differentiation, including deviations from normal lineage boundaries, mingling of cells

deviation of the field blank samples. Laboratory blanks were also utilized during each sampling period to control for contamination during sample extraction and analysis. Precision

scholars who write about fat (Cressida Heyes, Susan Bordo, Robyn Longhurst) write about the painfulness of wanting social justice for fat people while also losing weight themselves.

Some of these limitations were mentioned by the participants in the study in- cluding: lack of nurses, lack of financial re- sources, lack of pain management specialists in the

Microsoft markets over 40 software products, including three operating systems, computer language products in six computer languages, and business applications software in

As presently devel- oped, no traditional view planning method is directly suitable for performance- oriented automated object reconstruction for the following principle reasons:

In order to better manage the customer journey, key data for Customer Success professionals comes from these customer intelligence tools to identify growth opportunities and

When mentioning the impact of PFES policy implementation for the local people in Thuy Duong village (Loc Tien commune), it was impossible to simply mention the direct change