• Rezultati Niso Bili Najdeni

Program za upravljanje licenc programske opreme

N/A
N/A
Protected

Academic year: 2022

Share "Program za upravljanje licenc programske opreme"

Copied!
47
0
0

Celotno besedilo

(1)

Univerza v Ljubljani

Fakulteta za raˇ cunalniˇ stvo in informatiko

Nejc Kozjek

Program za upravljanje licenc programske opreme

DIPLOMSKO DELO

VISOKOˇSOLSKI STROKOVNI ˇSTUDIJSKI PROGRAM PRVE STOPNJE

RA ˇCUNALNIˇSTVO IN INFORMATIKA

Mentor : doc. dr. Rok Rupnik

Ljubljana, 2021

(2)

To delo je ponujeno pod licenco Creative Commons Priznanje avtorstva-Deljenje pod enakimi pogoji 2.5 Slovenija (ali novejˇso razliˇcico). To pomeni, da se tako besedilo, slike, grafi in druge sestavine dela kot tudi rezultati diplomskega dela lahko prosto distribuirajo, reproducirajo, uporabljajo, priobˇcujejo javnosti in pre- delujejo, pod pogojem, da se jasno in vidno navede avtorja in naslov tega dela in da se v primeru spremembe, preoblikovanja ali uporabe tega dela v svojem delu, lahko distribuira predelava le pod licenco, ki je enaka tej. Podrobnosti licence so dostopne na spletni strani creativecommons.si ali na Inˇstitutu za intelektualno lastnino, Streliˇska 1, 1000 Ljubljana.

Izvorna koda diplomskega dela, njeni rezultati in v ta namen razvita program- ska oprema je ponujena pod licenco GNU General Public License, razliˇcica 3 (ali novejˇsa). To pomeni, da se lahko prosto distribuira in/ali predeluje pod njenimi pogoji. Podrobnosti licence so dostopne na spletni strani http://www.gnu.org/

licenses/.

Besedilo je oblikovano z urejevalnikom besedil LATEX.

(3)

Kandidat: Nejc Kozjek

Naslov: Program za upravljanje licenc programske opreme

Vrsta naloge: Diplomska naloga na univerzitetnem programu prve stopnje Raˇcunalniˇstvo in informatika

Mentor: doc. dr. Rok Rupnik

Opis:

Podjetja, ki se ukvarja z razvojem programske opreme, imajo potrebo po upravljanju in nadzoru licenc programske opreme. Zasnujte program za upra- vljanje in nadzor licenc programske opreme, ki ni vezan le na en programski produkt, temveˇc omogoˇca upravljanje in nadzor mreˇznih in klasiˇcnih licenc.

Nato program tudi razvijte s tehnologijami in orodji, ki jih izberete sami.

Title: Software license management program Description:

Software development companies have a need to manage and control soft- ware licenses. Design a software license management and control program that is not tied to just one software product, but allows you to manage and control network and classic licenses. Then also develop the program with technologies and tools of your choice.

(4)
(5)

Zahvaljujem se svojemu mentorju, podjetju LSCTEH in Simunu Klemenˇciˇcu.

(6)
(7)

Kazalo

Povzetek Abstract

1 Uvod 1

1.1 Cilj diplome . . . 2

1.2 Pregled sorodnih primerov . . . 2

1.3 Struktura diplome . . . 3

2 Orodja in tehnologije 5 2.1 Tehnologije . . . 5

2.2 Orodja . . . 6

3 Analiza 9 3.1 Podatkovni model . . . 9

3.2 Diagrami primerov uporabe . . . 11

4 Naˇcrtovanje 15 4.1 Arhitektura sistema . . . 15

4.2 Zaledni sistem . . . 16

4.3 Spletni servis . . . 17

4.4 Uporabniˇski vmesnik . . . 18

4.5 API za licenciranje . . . 18

4.6 Zagotavljanje varnosti . . . 20

(8)

5 Predstavitev sistema 23 5.1 Uporabniˇski vmesnik . . . 23 5.2 Implementacija sistema . . . 26

6 Zakljuˇcki 31

6.1 Ideje za nadaljnji razvoj . . . 32

Literatura 33

(9)

Seznam uporabljenih kratic

kratica angleˇsko slovensko API Aplication programming in-

terface

Aplikacijski programski vme- snik

SQL Structured query language Strukturirani povpraˇsevalni jezik za delo s podatkovnimi bazam

CSS Cascading style sheets Kaskadne stilske podloge HTML Hypertext markup language Jezik oznaˇcevanja hiperteksta AES Advanced encryption stan-

dard

Napredni standard ˇsifriranja HTTPS Hypertext transfer protocol

secure

Varen protokol za prenos hi- perteksta

HTTP Hypertext transfer protocol Protokol za prenos hiperte- ksta

SHA Secure hash algorithm Vatna zgoˇsˇcevalna funkcija ERP Enterprise resource planning Naˇcrtovanje virov podjetja JSON JavaScript object notation JavaScript notacija objektov

(10)
(11)

Povzetek

Naslov: Program za upravljanje licenc programske opreme Avtor: Nejc Kozjek

Veliko majhnih in srednje velikih podjetjih, ki razvijajo lastno programsko opremo se sooˇci z teˇzavo omejevanja dostopa do programske oprema, da le te ne morejo uporabljati uporabniki, ki programske opreme niso kupili oziroma jim je licenca potekla. Na spletu praktiˇcno ni mogoˇce najti sistema, ki bi bil odprtokoden in dovolj fleksibilen za reˇsevanje te teˇzave. V diplomskem delu sem razvil sistem, ki omogoˇca uporabniku hiter in fleksibilen naˇcin za nadzor in vpogled v stanje licenc programske opreme. Sistem omogoˇca mreˇzno in klasiˇcno licenciranje programske opreme, licence pa lahko manipulira prek spletne aplikacije, ki omogoˇca tudi nadzor nad strankami, produkti in upo- rabniki. Prav tako sem razvil nekaj knjiˇznic, ki omogoˇcajo hitro licenciranje obstojeˇce programske opreme.

Kljuˇcne besede: ASP .NET Core, Vue.js, Licenˇcni sistem, HTTPS .

(12)
(13)

Abstract

Title: Software license management program Author: Nejc Kozjek

Many small and medium-sized companies that develop their own software face the problem of restricting access to the software so that it cannot be used by users who have not purchased the software or whose license has expired.

There is virtually no online system that is open source and flexible enough to solve this problem. In my thesis, I developed a system that provides the user with a fast and flexible way to control and view the status of software licenses.

The system enables network and traditional software licensing. Licenses can be manipulated through a web application that also allows control over customers, products and users. I have also developed some libraries that allow you to quickly license existing software.

Keywords: ASP .NET Core, Vue.js, Licence system, HTTPS.

(14)
(15)

Poglavje 1

Uvod

Podjetja, ki razvijajo programsko opremo, ki se namesti pri strankah, se pogosto sooˇcijo s problemom, kako omejiti ilegalno kopiranje, posredovanje in uporabo njihove programske opreme. Odprtokodnih reˇsitev za tak pro- blem ne obstaja, zato se podjetja odloˇcijo za razvoj svojih sistemov, ki pa so veˇcinoma tesno povezani z njihovo programsko opremo in jih je treba prilago- diti za vsako novo programsko reˇsitev posebej. To diplomsko delo obravnava dva tipa licenc, in sicer mreˇzno in klasiˇcno. Mreˇzna licenca omogoˇca dostop do programske opreme vsem naravam v istem omreˇzju, v prihodnje bo sistem omogoˇcal mreˇznim licencam doloˇciti natanˇcno ˇstevilo uporabnikov, ki lahko programsko opremo uporabljajo hkrati. Klasiˇcna licenca pa z enim licenˇcnim kljuˇcem omogoˇca dostop do programske opreme zgolj eni napravi. V sklopu tega diplomskega dela se je razvil portal, pri katerem oseba, odgovorna za nadzor licenc strank (odvisno od strukture podjetja), lahko dodelila, odvzela, skrajˇsala ali pa podaljˇsala licence strankam. Programska oprema dostopa do licenc prek API-ja licenˇcnega portala, za pomoˇc pri implementaciji pa sem razvil nekaj knjiˇznic, ki bodo olajˇsale implementacijo licenˇcnega sistema.

1

(16)

2 Nejc Kozjek

1.1 Cilj diplome

Cilj diplomske naloge je razviti sistem za validacijo licenc in uporabniˇski vmesnik za manipulacijo z licencami, ki bo delovala na operacijskih sistemih Windows, macOs in Linux. Sistem mora onemogoˇciti uporabnikom, da pri- dobijo neavtoriziran dostop do programske opreme, za katero nimajo licence.

Sistem za validacijo licenc mora podpirati mreˇzne in klasiˇcne licence. ˇCe povezava do spleta ni na voljo, mora licenca delovati nastavljivo dolgo ˇcasa tudi brez povezave. Na eno licenco lahko administrator veˇze veˇc produk- tov, ki imajo lahko dodaten podatek o toˇcni verziji produkta. Sistem mora podpirati programsko opremo, ki bo naloˇzena v okoljih, kjer se sistemske specifikacije lahko spreminjajo dnevno. Uporabniˇski vmesnik mora admini- stratorju omogoˇcati dodajanje novih strank, produktov in verzij produktov.

Administratorju je treba na nazoren naˇcin prikazati licence, ki bodo kmalu potekle in vse trenutno aktivne. Vmesnik mora omogoˇcati, da administrator licenco ponastavi in omogoˇci, da se aktivira na drugi napravi.

1.2 Pregled sorodnih primerov

Licenˇcni sistem je reˇsitev, ki je za vsako podjetje dokaj specifiˇcna, odprtoko- dnih reˇsitev ni, podjetja pa svojih reˇsitev na tem podroˇcju ne ˇzelijo prodajati, ker jim to ni v interesu. Obstajajo pa podjetja, ki se specializirajo za zaˇsˇcito programske opreme pred neavtorizirano uporabo, vendar pa te reˇsitve niso primerne za mala ali srednje velika podjetja predvsem zaradi cene.

Lantek je licenˇcni sistem, ki ga je razvilo ˇspansko podjetje Lantek [3], ki se ukvarja z izdelavo programske opreme za razrez ploˇcevine. Njihov licenˇcni sistem omogoˇca tako mreˇzne kot tudi klasiˇcne licence, sistem deluje zgolj na napravah, ki imajo naloˇzen operacijski sistem Windows. Sistem je namenjen zgolj za njihovo interno rabo.

Solidworks [4] je orodje za modeliranje in se lahko pohvali z licenˇcnim sistemom, ki ima izjemno varnost in je znan po tem, da ga je teˇzko pretentati, vendar pa je namenjen zgolj za njihovo interno rabo.

(17)

Diplomska naloga 3 Denuvo je sistem za licenciranje video igric in je ˇse posebej v zadnjih letih zelo popularen, omogoˇca dokaj visoko zanesljivost, vendar pa v nekaterih pri- merih zelo negativno vpliva na samo performanco programske opreme [2], kar bi bilo za moj licenˇcni sistem nesprejemljivo. Je primer licenˇcnega sistema, ki ga je mogoˇce kupiti, vendar se specializirajo zgolj za licenciranje video igric, njihov sistem deluje samo na tisti programski opremi, ki jo licencirajo in nobeni drugi. Mreˇznih licenc ne podpirajo.

1.3 Struktura diplome

V prvem poglavju opiˇsem temo same diplomske naloge, v drugem poglavju na kratko predstavim kljuˇcna orodja in tehnologije, ki sem jih uporabil za izdelavo reˇsitve. V tretjem poglavju predstavim osnovno idejo o izvedbi same diplomske naloge in predstavim konceptualni naˇcrt podatkovne baze. Prav tako analiziram potrebne zahteve, ki jih mora izpolniti konˇcna reˇsitev. V ˇcetrtem poglavju opiˇsem dejansko arhitekturo sistema, predstavim konˇcno podatkovno bazo, razdelim licence na dva tipa in opiˇsem varnostne ukrepe, ki so bili potrebni za zadovoljivo varnost reˇsitve. V petem poglavju predstavim uporabniˇski vmesnik in predstavim nekaj primerov implementacije reˇsitve v programsko opremo. V zadnjem poglavju opiˇsem nekaj teˇzav, s katerimi sem se sooˇcil in predstavim ideje za dodatni razvoj.

(18)

4 Nejc Kozjek

(19)

Poglavje 2

Orodja in tehnologije

2.1 Tehnologije

2.1.1 ASP.NET Core 3.1

Je zastonjsko in odprtokodno spletno ogrodje razvito s strani Microsofta [1]. Deluje na macOS, Windows in najbolj popularnih distribucijah Linuxa.

Programski jezik za programiranje je C#, ki ga prav tako razvija Micro- soft. Ogrodje ima opcijsko komponento Blazor, ki omogoˇca razvoj spletnega uporabniˇskega vmesnika, te komponente nisem uporabil. Ogrodje ima pro- gramsko opremo za nadzor paketov NuGet, ki si jo deli z drugimi produkti, ki so del .NET okolja.

2.1.2 TypeScript

Je programski jezik, ki ga je razvil in ga vzdrˇzuje Microsoft [6]. Deluje kot nadgradnja popularnega programskega jezika JavaScript, saj se ta s pomoˇcjo prevajalnika prevede v JavaScript. Razlog za uporabo TypeScript se pojavi pri razvoju obseˇznejˇsih programskih reˇsitev, kjer pomanjkljivosti JavaScripta postanejo veliko bolj oˇcitne, TypeScript lahko v primerjavi z JavaScriptom omogoˇci bolj berljivo in zanesljivejˇso kodo, poleg tega pa omogoˇca, da ˇze uporabniˇski vmesnik za urejanje kode sam zazna veliko veˇc napak v kodi.

5

(20)

6 Nejc Kozjek

2.1.3 Vue.js

Vue.js je moderno ogrodje za izdelavo uporabniˇskih vmesnikov s spletnimi tehnologijami [9]. V primerjavi z njegovo konkurenco je najhitrejˇsi in naj- bolj kompakten, vendar pa mu manjkajo nekatere naprednejˇse funkcije, ki jih imata Angular in React. Ogrodje doda nekaj novih HTML znaˇck in atribu- tov, ki mu omogoˇcajo, da vsak delˇcek napisane kode jemlje kot komponento, ki jo lahko programer uporabi, kjerkoli hoˇce, tako Vue.js prisili programerja, da ta piˇse kodo, ki jo je mogoˇce uporabiti veˇckrat. Vue.js pa najbolj blesti v kombinaciji s TypeScriptom, kjer se najbolj obˇcuti prednost dela z ogrodjem, kot je Vue.js v primerjavi s ˇcistim HTML, CSS in JavaSkriptom.

2.1.4 Microsoft SQL Server

Microsoft SQL Server programska oprema za nadzor na relacijsko podatkovno bazo, ki jo razvija in vzdrˇzuje Microsoft [5]. Programska oprema ima veˇc verzij, jaz sem uporabljal verzijo Express, ker je zastonjska. Podatkovna baza se bistveno ne razlikuje od alternativ, tako v smislu performance kot tudi same sintakse programskega jezika za upravljanje podatkovne baze. Prva razliˇcica je izˇsla ˇze leta 1989, takrat je bila napisana v programskem jeziku C, vendar pa so jo leta 1998 prepisali v programski jezik C++.

2.2 Orodja

2.2.1 Visual Studio Code

Visual Studo Code je odprtokodni urejevalnik programske kode, ki ga je raz- vil Microsoft [8]. Lahko se pohvali z dobro stabilnostjo, velikim ˇstevilom dodatkov in tem za prilagajanje videza, ki omogoˇcijo programerju, da si de- lovno okolje oblikuje po svoji ˇzelji. Orodje je napisano z ogrodjem Electron, zato deluje na vseh treh najpopularnejˇsih operacijskih sistemih (Linux, Win- dows, macOS). Leta 2021 je bilo po podatkih ankete Developers Survey of Stack Overflow izbrano za najbolj popularno razvijalsko orodje.

(21)

Diplomska naloga 7

2.2.2 Visual Studio

Visual Studio je prav tako razvito s strani Microsofta, vendar pa na ˇzalost ni odprtokodno [7]. Deluje na operacijskem sistemu Windows, z razliˇcico 2019 pa ga je mogoˇce uporabljati tudi macOS-u. Razliˇcica 2019 podpira 36 razliˇcnih programskih jezikov. Razvojno orodje najbolj blesti, ko ga upora- bljamo za razvoj z Microsoftovimi produkti, ki so odliˇcno podprti.

2.2.3 DeZign for Databases

Je orodje, ki pomaga uporabniku vizualizirati naˇcrtovanje podatkovne baze.

Podpira samo relacijske podatkovne baze.

2.2.4 Microsoft SQL Server Management Studio

Orodje je razvito s s strani Microsofta in pomaga pri upravljanju podatkovne baze. Omogoˇca veliko vrsto funkcij, ki jih vrsta podobnih orodij nima, kot so pregledovanje pravilnosti kode v realnem ˇcasu, analiza porabe virov, urejanje podatkov prek uporabniˇskega vmesnika, popravljanje strukture tabel iz upo- rabniˇskega vmesnika. Slaba stran orodja pa je, da podpira samo podatkovne baze, ki so bile razvite s strani Microsofta.

2.2.5 Postman

Postman je orodje, ki omogoˇca hitro kreiranje zahtevkov HTTP/S, uporab- niku omogoˇca, da zahtevke shrani. Sam sem ga uporabljal za testiranje API-klicev, ki niso bili dostopni prek uporabniˇskega vmesnika, omogoˇca pa tudi obseˇzno dokumentiranje API-klicev.

2.2.6 Git in GitLab

Git je sistem upravljanja razliˇcic razvojne kode, je najbolj razˇsirjeno orodje za ta namen. GitLab na eni strani deluje kot uporabniˇski vmesnik Gita na drugi strani pa kot orodje za nadzor in vodenje projekta.

(22)

8 Nejc Kozjek

(23)

Poglavje 3 Analiza

Pred zaˇcetkom dela sem se posvetoval s prijateljem, ki je zaposlen pri podje- tju, ki distribuira programsko opremo. Pozanimal sem se, katere funkcije so za podjetje pomembne pri licenˇcnem sistemu in kakˇsne so slabosti nekaterih ˇze obstojeˇcih sistemov drugih podjetij. Preveril sem naˇcin delovanja nekaj obstojeˇcih sorodnih sistemov. Iz zbranih podatkov sem najprej definiral vse funkcije, ki jih ˇzelim, da jih moj sistem omogoˇca. V naslednjem koraku sem kategoriziral slabosti, ki jih imajo sorodni programi na tri kategorije: nedo- pustni, pogojno dopustni (v primeru, da odprejo vrata za dodatno funkcio- nalnost) in dopustni. Ko sem definiral vse funkcionalnosti in pogoje sistema, sem se lotil izdelave konceptualnega modela podatkovne baze. Nazadnje pa sem se odloˇcil, katere tehnologije in orodja bom uporabil.

3.1 Podatkovni model

Pri izdelavi konceptualnega podatkovnega modela sem uporabil orodje DeZ- ign for Databases, ki ne omogoˇca izdelave modela brez tujih kljuˇcev (slika 3.1). Konceptualni model je bil, kot se je kasneje izkazalo, pozabil na kar nekaj pomembnih podatkov, kljub temu je bil konceptualni model dovolj na- tanˇcen, da mi ni bilo treba nikoli spremeniti ˇze napisanega dela kode zaradi spremembe podatkovnega modela. Pri izdelavi sem stermel k temu, da bo

9

(24)

10 Nejc Kozjek model omogoˇcal dovolj fleksibilnosti v primeru sprememb in da omejitve sis- tema ne bodo doloˇcene s podatkovnim modelom, temveˇc v poslovni logiki sami. Model sem izdelal v orodju DeZign for Databases, s pomoˇcjo katerega sem model pretvoril v skripto za kreiranje podatkovne baze.

Slika 3.1: Konceptualni podatkovni model

(25)

Diplomska naloga 11

3.2 Diagrami primerov uporabe

Sistem je mogoˇce uporabljati z dveh popolnoma razliˇcnih strani, in sicer s strani uporabnika, ki manipulira z licencami, in uporabnika, ki ˇzeli licencirati produkt. Uporabnika, ki manipulira s podatki, bom imenoval administrator, ker je neke vrste administrator uporabniku, ki licenco zgolj hoˇce validirati.

3.2.1 Primeri uporabe za administratorja

Takoj ko se administrator prijavi v spletno aplikacijo, se mu odpre hitri pre- gled, ker lahko vidi najpomembnejˇse podatke, o aktivnih licencah in produk- tih ter katere licence bodo kmalu potekle. ˇCe ˇzeli administrator licencirati nov produkt, ga lahko doda in ureja v posebnem zavihku, ker so verzije tesno povezane s samim produktom, jih administrator dodaja na istem zavihku kot produkte (pod produktom se odpre dodatna tabela). Licence so vezane na partnerja, zato administrator mora najprej ustvariti partnerja, ˇce ta ˇse ne obstaja, to se dogaja na istem zavihku kot tudi urejanje partnerja. Pod par- tnerjem se pojavi tabela, kjer je mogoˇce dodati novo licenco ali pa obstojeˇce urediti, v primeru, da se licenca doda na novo, se ji ustvari licenˇcni kljuˇc, ki identificira licenco. Ko je licenca dodana, se pod njo prav tako odpre ta- bela s produkti, kjer jih administrator lahko dodaja ali odstranjuje iz licence, prav tako pa je mogoˇca izbira verzije posameznega produkta. V primeru, da stranka zamenja napravo, na kateri uporablja programsko opremo, ki je li- cencirana s sistemom, lahko administrator na zavihku partnerjev in njihovih licenc sprosti licenco, ki je dodeljena stari napravi. V posebnem zavihku ob- stojeˇci administrator lahko dodaja, odstranjuje in ureja vse administratorje.

Opisano lahko vidimo na spodnjem diagramu (slika 3.2).

(26)

12 Nejc Kozjek

Slika 3.2: Diagram primerov uporabe za administratorja

3.2.2 Diagram primerov uporabe za uporabnika

Uporabniˇska izkuˇsnja za uporabnika se lahko precej razlikuje glede na im- plementacijo licenˇcnega sistema, obstajata pa dve moˇznosti. Najlaˇzje je, da uporabnik licenco doda prek tekstovne datoteke, ta naˇcin je namenjen pred- vsem sistemskim administratorjem, ker ne porabi veliko ˇcasa, drug naˇcin je implementacija uporabniˇskega vmesnika, ki ustvari tekstovno datoteko na uporabniku prijazen naˇcin. Po prvem koraku licenciranje poteka na enak naˇcin za oba zaˇcetna primera. Licenca se preveri s strani spletnega servisa, ki ga nadzoruje distributer programske opreme, ˇce je licenca pravilna, poˇslje nazaj veljavne produkte, drugaˇce se licenca zavrne. V primeru, da do sple- tnega servisa ni mogoˇce povezati, gre sistem preverit, ali obstaja licenca, ki je bila ˇze aktivirana na tej napravi, ˇce ta obstaja, preveri ali je ˇse vedno ve- ljavna (licenca brez povezave ima omejen rok trajanja, preden poteˇce). ˇCe se licenca izkaˇze za veljavno, je uporaba programa omogoˇcena. Dodatna akcija pa se zgodi, ko sistem zahteva potrditev licence prviˇc, takrat se v sistemu licenca veˇze na napravo, ki jo je zahtevala in licence ne potrdi veˇc nobeni drugi napravi. Opisano lahko vidimo na spodnjem diagramu (slika 3.3).

(27)

Diplomska naloga 13

Slika 3.3: Diagram primerov uporabnika

(28)

14 Nejc Kozjek

(29)

Poglavje 4 Naˇ crtovanje

Pri tem poglavju bom opisal osnovno arhitekturo sistema, API, uporabniˇski vmesnik in varnostne ukrepe, ki so implementirani z namenom, da bo sistem ˇcim teˇzje pretentati.

4.1 Arhitektura sistema

Sistem je naˇcrtovan tako, deluje s ˇstirimi glavnimi moduli, ki sodelujejo med seboj, vendar pa ima do podatkovne baze dostop samo zaledje, ki skrbi za avtorizacijo in posredovanje podatkov drugim gradnikom. Spletni vmesnik ima poseben dostop do zaledja in lahko pridobi veˇc informacij (ˇce se uporab- nik seveda prej avtorizira) kot programska oprema. Licenˇcni del programske opreme je le majhen del, ki preveri, ali ima naprava ustrezno dovoljenje za uporabo omenjene programske opreme, zato ima minimalni dostop do zaledja. V primeru, ko pa ˇzelimo uporabljati mreˇzno licenco, moramo pri- kljuˇciti ˇse peti gradnik, spletni servis je vmesni posrednik med programsko opremo in zaledjem. Ko dodamo spletni servis, ta postane nosilec licence in ne veˇc naprave, na kateri je naloˇzena programska oprema. Opisano arhitek- turo lahko vidimo na spodnjem diagramu (slika 4.1).

15

(30)

16 Nejc Kozjek

Slika 4.1: Shema arhitekture sistema

4.2 Zaledni sistem

Osrednji del celotnega sistema je zaledje, zagotavlja komunikacijo med dru- gimi deli arhitekture, napisano je v programskem jeziku C# z uporabo ogrodja ASP.NET Core. Zaledje je razdeljeno na dva pomembna dela, ad- ministrativni del, do katerega lahko dostopijo le avtenticirani uporabniki, skrbi za dodeljevanje novih licenc, uporabnikov, produktov in drugih admi- nistrativnih opravil. Drugi del je validacijski del, do katerega lahko dostopa vsak in sluˇzi preverjanju licenc. Za podatkovno bazo sistema sem se odloˇcil za Microsoft SQL Server, natanˇcneje verzijo Express. Model podatkovne baze sem med razvojem dodelal glede na potrebe. Posodobljena struktura baze vsebuje tudi dodatne podatke, ki niso potrebni, vendar so prisotni za- radi mogoˇcih nadgradenj sistema, ki bodo potrebovali te dodatne podatke.

Konˇcno strukturo lahko vidite na spodnji shemi (slika 4.3)

(31)

Diplomska naloga 17

Slika 4.2: Konˇcna shema strukture podatkovne baze

4.3 Spletni servis

Pri licenciranju mreˇznih licenc in naprav s spremenljivo strojno opremo smo primorani uporabiti spletni servis. Deluje kot posrednik informacij med pro- gramsko opremo in API-jem. Napisan je v programskem jeziku C# z uporabo ogrodja ASP.NET Core.

(32)

18 Nejc Kozjek

4.4 Uporabniˇ ski vmesnik

Uporabniˇski vmesnik je v sistemu namenjen zgolj uporabnikom (administra- torjem), ki imajo dovoljenje za manipulacijo licenc. Sestavljen je iz ˇstirih obmoˇcij: nadzorna ploˇsˇca, produkti, stranke in administracija. Nadzorna ploˇsˇca vsebuje zavihek, kjer administrator lahko pregleda aktivne licence, licence, ki bodo kmalu potekle in ˇse nekaj dodatnih statistiˇcnih podatkov.

Verzije administrator lahko ureja in dodaja tudi v posebnem modulu pod obmoˇcjem produkti. Stranke vsebujejo modul kontakti, ki jih administra- tor lahko dodaja in poveˇze na obstojeˇcega partnerja. Partner je prav tako svoj modul v obmoˇcju strank, kjer lahko dodajamo nove partnerje, jim doda- jamo oziroma odvzemamo licence in dodajamo produkte na omenjene licence.

Administracija pa vsebuje uporabnike, na tem modulu lahko dodajamo nove administratorje, jim spreminjamo geslo in druge podatke. Poleg uporabnikov pa administracija vsebuje tudi modul raˇcunalniˇske specifikacije, ki pa ga ni mogoˇce urejat in vsebuje tabelo vseh naprav, ki so se kadarkoli licencirale s sistemom. Uporabniˇski vmesnik je napisan s programskimi jeziki TypeScript, CSS, HTML in ogrodjem Vue.js.

4.5 API za licenciranje

Naˇcin dela in licenciranja je drugaˇcen, ˇce licenciramo klasiˇcno ali mreˇzno licenco, zato je to poglavje razdeljeno na dva dela. Tip licence doloˇci ad- ministrator, ko dodeli licenco, uporabniku, ˇce gre za mreˇzno licenco mora administrator pri uporabniku na primerno napravo namestiti dodaten sple- tni servis.

4.5.1 Klasiˇ cne licence

Postopek licenciranja se vedno zaˇcne tako, da programska oprema poˇslje li- cenˇcnemu API-ju zahtevek za pridobitev navodil za licenciranje, v zahtevku se poˇslje samo licenˇcni kljuˇc, API pa poˇslje nazaj navodila, ki programski

(33)

Diplomska naloga 19 opremi povedo, kakˇsne so naslednje akcije, ki jih mora programska oprema izvesti, da se ta licencira. V primeru klasiˇcne licence se sporoˇci zgolj, da mora programska oprema za pridobitev licence poslati specifikacije naprave.

Programska oprema si ta navodila zapomni in ji naslednjiˇc v primeru, da bo avtorizacija licence uspeˇsna, pridobivanja navodil za licenciranje ni treba izvesti, kar pa pomeni, da licence ni mogoˇce spremeniti v mreˇzno, dokler se ne spremeni sama licenca. Naslednji korak je pridobivanje same licence.

Ponovno se na API poˇslje zahtevek z licenˇcnim kljuˇcem skupaj s specifikaci- jami naprave, API najprej preveri, ali licenca obstaja, nato pa ˇse specifikacije naprave. ˇCe licenca ˇse nima dodeljene specifikacije naprave, se ji ta dodeli po poslanih specifikacijah, v nasprotnem primeru se preveri, ali je poslana specifikacija naprave enaka kot tista, ki je dodeljena licenci. ˇCe kateri koli od podatkov ne ustreza bodisi specifikacija naprave ali licenˇcni kljuˇc API ne vrne napake, ampak vrne licenco brez dodeljenih produktov, ˇce pa je licenca veljavna, se vrnejo vsi produkti, ki so dodeljeni tej licenci (to omogoˇca li- cenci, da lahko odklene le doloˇcene dele programske opreme oziroma da z eno licenco lahko odklenemo veˇc razliˇcnih programskih oprem).

4.5.2 Mreˇ zne licence

Postopek licenciranja pri mreˇzni licenci je malo drugaˇcen. Ko programska oprema prejme navodila za licenciranje, ji ta povedo, da mora za licenciranje mora poslati zahtevek na drug naslov (naslov lahko doloˇci samo administra- tor). Zahtevek se poˇslje na spletni servis, za katerega je priporoˇcljivo, da je nameˇsˇcen na lokalni mreˇzi, saj s tem zagotovimo, da bo programsko opremo mogoˇce uporabljati tudi, ˇce ta nima dostopa do API-ja (mreˇzne licence ne delujejo, ˇce nimajo povezave do spletnega servisa), kar je zahtevano, je edino, da je nameˇsˇcen na napravi, katere strojna oprema se ne bo spreminjala. Ker specifikacije naprave niso pomembne v tem primeru, se v zahtevku na sple- tni servis ne poˇsljejo s strani programske opreme, poˇslje pa svoje specifikacije spletni servis na API, ta na enak naˇcin kot pri klasiˇcni licenci preveri licenco in poˇslje produkte licence nazaj spletnemu servisu, ta pa jih posreduje pro-

(34)

20 Nejc Kozjek gramski opremi. Postopek lahko vidimo na spodnjem diagramu (slika 4.3).

Slika 4.3: Shema poteka mreˇznega licenciranja

4.6 Zagotavljanje varnosti

Pri licenˇcnem sistemu je zelo pomembno, da varnost sistema ni pod vpraˇsajem, zato sem v sistem implementiral nekaj dodatnih varnostnih ukrepov, ki pripo- morejo k varnosti sistema in poslediˇcno neavtorizirane uporabe programske opreme.

Najbolj osnovni in najlaˇzji varnostni ukrep je obvezna uporaba HTTPS prometa med zaledjem in aplikacijo oziroma spletnim servisom. Naslednji nujen varnostni ukrep je bil ˇsifriranje vseh podatkov, ki se shranjujejo na napravi aplikacije, uporabil sem kriptografsko metodo AES, kljuˇc je definiran v kodi in potem zgoˇsˇcen s funkcijo SHA1 za dodatno varnost.

Veliko potencialno varnostno luknjo predstavlja spreminjanje ˇcasa na na- pravi in s tem neomejeno podaljˇsevanje licence. To teˇzavo sem reˇsil tako, da vsakiˇc, ko uporabnik odpre programsko opremo, si ta zapomni trenutni ˇcas na raˇcunalniku,ˇce se kadarkoli pojavi, da je ˇcas raˇcunalnika manjˇsi kot ˇcas, ki si ga je zapomni pri zadnji uporabi programske opreme, se licenca izbriˇse in uporabnik nima veˇc dostopa do programske opreme, dokler se licenca znova ne preveri s strani zaledja.

Nujen varnostni ukrep je avtorizacija posameznih zahtevkov na API, ˇse posebej ker se vsi zahtevki poˇsiljajo na isti API, tako za dodajanje licenc in

(35)

Diplomska naloga 21 tudi potrditev licenc. Avtorizacija poteka prek JWT ˇzetona, ki ga je treba vsako uro obnoviti ali pa na novo zahtevati.

Zaradi same narave licenc je treba te povezati na neko strojno opremo, v nasprotnem primeru bi en licenˇcen kljuˇc lahko licenciral neomejeno ˇstevilo programske opreme na razliˇcnih napravah in s tem praktiˇcno izniˇcil funkcijo celotnega sistema. Naslednji varnostni ukrep, ki ga bom opisal, se navezuje na mreˇzne licence. Ker te niso vezane s strojno opremo, imajo pomanjklji- vost, ker bi bilo moˇzno licencirati neomejeno ˇstevilo naprav, vendar pa je administrator edini, ki lahko nastavi pot do spletnega servisa in tako one- mogoˇci izrabljanje te funkcionalnosti, kljub temu je treba pazit, da uporabi lokalni naslov, v nasprotnem primeru se servis lahko izrabi in poˇsilja licence tudi zunaj svoje mreˇze.

Uporabniˇski vmesnik sam po sebi ne potrebuje veliko zaˇsˇcite, saj morajo vsi podatki skozi zaledje, ki preveri ali je poˇsiljatelj avtoriziran. Kljub temu ima dodatno zaˇsˇcito, ki onemogoˇca uporabniku, da pride do dejanske vsebine spletne aplikacije, ne da bi bila ta avtorizirana.

(36)

22 Nejc Kozjek

(37)

Poglavje 5

Predstavitev sistema

V tem poglavju bom predstavil uporabniˇski vmesnik in nekaj primerov im- plementacije licenˇcnega sistema.

5.1 Uporabniˇ ski vmesnik

Uporabniˇski vmesnik je razdeljen na ˇstiri glavna obmoˇcja: nadzorna ploˇsˇca, produkti, stranke in administracija. Namenjen je zgolj administratorjem, ki imajo dovoljenje manipulacije z licencami. Celoten vmesnik je prilagojen tudi za mobilne naprave. Ob prihodu na spletno mesto se odpre obrazec za vpis (slika 5.1).

Slika 5.1: Obrazec za vpis v aplikacijo

Uporabniˇski vmesnik je narejen na principu zavihkov, kar pomeni, da se za vsak modul, ki ga uporabnik odpre, naredi nov zavihek: Med zavihki se

23

(38)

24 Nejc Kozjek uporabnik lahko premika in jih zapira. Skozi celoten uporabniˇski vmesnik nas spremlja orodna vrstica na desni strani, ki jo po ˇzelji lahko uporabnik tudi skrije (slika 5.2).

Slika 5.2: Orodna vrstica

Po vpisu se uporabniku odpre nadzorna ploˇsˇca, ker vidi ˇstevilo partnerjev, ki imajo aktivne licence, ˇstevilo aktivnih licenc, ˇstevilo licenc, ki ˇse niso bile povezane na strojno opremo, ˇstevilo aktivnih produktov (produkti, ki so vezani na aktivno licenco), potem pa ˇse dve tabeli, ena z aktivnimi licencami in druga z licencami, ki bodo kmalu zapadle. Primer nadzorne ploˇsˇce lahko vidite na sliki 5.3, slika je posneta s tablice.

V obmoˇcju produkti ima uporabnik nadzor nad produkti, prvi je modul produkti. Tu dodajamo nove produkte, jih urejamo, briˇsemo ali pa jim do- dajamo verzije. Zraven modula produkti pa spada v omenjeno obmoˇcje tudi

(39)

Diplomska naloga 25

Slika 5.3: Nadzorna ploˇsˇca, na tablici

modul verzije, ki ima skoraj enako funkcionalnost kot verzije v modulu pro- dukti, le da tu verzije niso po grupirane po produktih, ampak so vse v eni tabeli.

Obmoˇcje stranke se deli na dva dela, in sicer partnerje in kontakte. Mo- dul kontakti vsebuje tabelo, kjer lahko uporabnik na partnerja in licenco dodaja kontakte za boljˇso organiziranost. Tu je miˇsljen predvsem scenarij, ko je licenca stranke pred tem, da zapade in ima administrator hiter dostop do kontakta, da lahko stranko opozori na stanje licence. Modul partnerji je najbolj obˇsiren modul celotnega uporabniˇskega sistema, saj zdruˇzuje tri module skupaj. Najprej uporabnik ustvari partnerja oziroma ˇce ta ˇze ob- staja, lahko razˇsiri vrstico v tabeli in odprejo se mu partnerjeve licence, tem mora dodati ˇcas trajanja in v primeru, da gre za mreˇzno licenco, ˇse pot do

(40)

26 Nejc Kozjek spletnega servisa. Ponovno je mogoˇce razˇsiriti vrstico z licencami, kjer lahko dodelimo produkte licencam in jim, ˇce to ˇzelimo, nastavimo verzijo. S tem postopkom je licenca dodeljena partnerju, licenˇcni kljuˇc se ustvari sam in je na voljo v vrstici licence.

Obmoˇcje administracija vsebuje modula uporabniki in raˇcunalniˇske speci- fikacije. Modul raˇcunalniˇske specifikacije vsebuje tabelo, ki omogoˇca pregled naprav, ki so se licencirale s sistemom. Modul uporabniki pa omogoˇca do- dajanje in spreminjanje uporabnika. ˇCe ˇzelimo uporabniku spremeniti geslo, se odpre pojavno okno, kjer se mora uporabnik dvakrat vpisati novo geslo.

Sprememba gesla se poˇslje s posebnim klicem na zaledje, ki ga obdela z zgoˇsˇcevalno funkcijo SHA512.

Uporabniˇski vmesnik omogoˇca ˇse nekaj osnovnik funkcij, kot so izpis, iskanje modulov, prav tako je na vseh tabelah mogoˇce grupiranje in filtriranje po stolpcih.

5.2 Implementacija sistema

Za implementacijo sistema v programsko opremo sem izdelal dve knjiˇznici, ena podpira ASP.NET Core, druga pa .NET Framework in dodatno ˇse moˇznost za licenciranje programske opreme, ki ne podpira knjiˇznic, ki so implemen- tirane v sklopu sistema. Dodatno je implementirana tudi aplikacija, ki prek uporabniˇskega vmesnika doda datoteko z licenˇcnim kljuˇcem in doda kontakt na licenco (slika 5.4).

Implementacija mreˇzne licence je s strani programerja popolnoma enaka kot pri klasiˇcnih, razlikuje se le v tem, da mora biti dodatno nameˇsˇcen nekje v omreˇzju spletni servis.

V naslednjih poglavjih bom opisal proces implementiranja licenˇcnega sis- tema v obstojeˇco programsko opremo in nazadnje ˇse specifike licenciranja programske opreme, ki je nameˇsˇcena na napravi, ki se ji specifikacije redno spreminjajo.

(41)

Diplomska naloga 27

Slika 5.4: Aplikacija za vnos licenˇcnega kljuˇca in kontakta

5.2.1 Licenciranje namizne aplikacije

Za licenciranje je treba najprej dodati napisano knjiˇznico v projekt. Pa- ziti moramo, da uporabimo verzijo knjiˇznice, ki ima naˇs posodobljen kljuˇc za kriptiranje, v nasprotnem primeru aplikacija ne bo delovala. ˇCe ˇzelimo, lahko preverimo obstoj datoteke LicenceKey.lsc. V primeru, da ta ne ob- staja, pomeni, da licenˇcni kljuˇc ni dodan, v tem primeru ima programer dve moˇznosti, lahko izpiˇse napaka ali pa odpre aplikacijo za vnaˇsanje licenˇcnega kljuˇca, ki je del reˇsitve licenˇcnega sistema. Dejansko pa programer za pri- dobitev licenciranih produktov potrebuje le eno vrstico kode: var output = await LscLicenceManager.GetLicenses(); , enaka funkcija obstaja tudi v sin- hroni obliki. Od pridobitve licenciranih produktov naprej je na programerju, da preveri ali so v licenci res zajeti ustrezni produkti in ustrezno ukrepa, ˇce ti niso.

5.2.2 Licenciranje ERP sistema

V tem podpoglavju bom opisal licenciranje ERP sistema, ki bazira na sple- tnih tehnologijah, licenciral bom zaledje, ki pa bo imelo vpliv na uporabniˇski vmesnik. ERP sistemi imajo po navadi nek sistem pravic, ki definirajo, katere module uporabnik vidi in katerih ne. Ideja za licenciranje ERP sistema je, da prestreˇzemo komunikacijo med podatkovno bazo in zaledjem in prefiltriramo module glede na licence, kar onemogoˇci uporabniku, dodajanje pravic za mo-

(42)

28 Nejc Kozjek dul,e za katere nima licence, kot tudi nalaganje samih pravic za te module, ker s strani zaledja ti sploh ne bodo obstajali. Velik problem licenciranja zaledja leˇzi v tem, da ta deluje konstantno in se ga ne zaganja, ko uporabnik odpre spletno aplikacijo. To sem reˇsil tako, da kliˇcem licenˇcni API vsakiˇc, ko se pokliˇce klic za nalaganje modulov, kar pa je ustvarilo nov problem, in sicer sistem se je upoˇcasnil. Obstajala je moˇznost, da module naloˇzim ob zagonu programa, vendar pa bi to pomenilo, da bi tudi v primeru, ko se licenca odvzame stranki, ta lahko ˇse vedno uporablja sistem, dokler se ta ne ugasne, in obratno administrator lahko doda modul stranki, vendar ga ta ne bo mogla uporabljati, dokler se ne ustavi in ponovno priˇzge zaledje. Reˇsitev je bila lokala shramba, vsakiˇc ko uporabnik ˇzeli dostopati do ˇsifranta modu- lov, najprej pogledam, ˇce so ti na voljo v lokalni shrambi, ˇce niso je vse po starem in uporabnik mora ˇcakati malo dlje, ampak v veˇcini primerov se mo- duli nahajajo v lokalni shrambi, kar pomeni, da se ti naloˇzijo s praktiˇcno isto hitrostjo, kot ˇce produkt ne bi bil licenciran. Problem osveˇzevanja licenc pa sem reˇsil tako, da na svoji posebni niti (katere izvedbe ne poˇcakam) izvedem klic, ki poˇslje klic na API in shrani nove podatke o licenci v lokalno shrambo.

Pri implementaciji sem module tretiral kot produkte, vendar se je zapletlo pri licenciranju maksimalnega ˇstevila uporabnikov ERP sistema. Reˇsitev je bil nov produkt, ki mu kot verzijo podam ˇstevilo dovoljenih uporabnikov, v primeru, da ˇstevilo dovoljenih uporabnikov v sistemu presega koliˇcino, ki je navedena v licenci, je uporabnikom onemogoˇcen dostop do sistema.

5.2.3 Licenciranje nepodprte programske opreme

Pri programski opremi, ki je napisana z nepodprtim ogrodjem, naletimo na problem, da ne moremo vkljuˇciti knjiˇznic, ki so na voljo kot del sistema.

Ostaneta nam dve moˇznosti, prva in najboljˇsa je, da implementiramo svojo knjiˇznico, ki podpira programsko opremo, ki jo ˇzelimo licencirati, in druga je, da uporabimo aplikacijo, ki je kot del sistema narejena in podpira opera- cijske sisteme Linux, Windows in macOS. Implementacija licenciranje prek omenjene aplikacije je malce bolj kompleksna in ima veˇcji vpliv na delovanje

(43)

Diplomska naloga 29 programske opreme, ki jo licenciramo.

Osnovna ideja je, da programska oprema, ki se ˇzeli licencirati, zaˇzene to aplikacijo in ta ji v standardni izhod vrne JSON objekt vseh produktov.

Samo po sebi je to zelo vpraˇsljiva metoda in ne zagotovi ustreznega nivoja varnosti za produkcijsko okolje, zato programska oprema mora pred zago- nom aplikacije za licenciranje preveriti z zgoˇsˇcevalno funkcijo pristnost apli- kacije. Konˇcano implementacijo lahko s perforamnˇcnega vidika izboljˇsamo tako, aplikacijo za licenciranje naprej zaˇzenemo in med ˇcakanjem na odgovor preverimo pristnost omenjene aplikacije, tako zmanjˇsamo dolˇzino preverjanja licence.

5.2.4 Licenciranje aplikacije v Docker kontejnerju

Licenciranje aplikacije znotraj Docker kontejnerja je bolj kompleksno zaradi dveh razlogov. Prvi je, da je nekako treba spraviti licenˇcni kljuˇc znotraj kontejnerja, to sem storil z uporabo okoljskih spremenljivk in posodobil apli- kacijo tako, da je ob zagonu ustvarila datoteko LicenceKey.lsc. Druga teˇzava je, da se Docker kontejnerju spreminjajo sistemske specifikacije, to je mogoˇce reˇsiti z mreˇzno licenco, ki je nameˇsˇcena zunaj Docker kontejnerja.

(44)

30 Nejc Kozjek

(45)

Poglavje 6 Zakljuˇ cki

Izdelava licenˇcnega sistema je zahtevna naloga zaradi veliko razlogov. Izpo- stavil bi tri najbolj zahtevne, prvi je dejanska varnost licenc. Velikokrat sem moral zaradi varnosti spremeniti naˇcin licenciranja, kljub temu da je bil naˇcin hitrejˇsi kot konˇcna implementacija. Drugi razlog je imeti minimalni vpliv na programsko opremo, ki bo implementirala licenˇcni sistem, saj se konstantno bori proti varnosti sistema in tudi proti tretjemu razlogu za zahtevnost in to je ˇcim hitrejˇsa posodobitev licenc. Potreba po hitri posodobitvi licenc je povsem odvisna od narave programske opreme, vendar veˇcinoma ne ˇzelimo velike stopnje upoˇcasnitve programske opreme, ko jo integriramo z licenˇcnim sistemom.

Z razvojem licenˇcnega sistema smo dosegeli ˇzeljeni rezultat, funkcional- nost ustreza zastavljenim ciljem, bil sem celo preseneˇcen nad hitrostjo, ki jo ponuja sistem. Za veliko funkcionalnosti sem ˇcrpal navdih iz sorodnih reˇsitev in jih zdruˇzil v eno. Kljub temu ostajajo varnostni pomisleki, ki se jih brez problema odpravi z drugaˇcno implementacijo knjiˇznic za licenciranje programske opreme, sam tega nisem storil, ker je trenutna implementacija veliko hitrejˇsa in dovolj varna, da je ni mogoˇce pretentati zlahka.

Sistem sem testiral na treh namiznih aplikacijah, ERP sistemu in testni Docker aplikaciji, sprva se je pojavilo nekaj problemov, predvsem s strani licenc, ki nimajo dostopa do spleta, in pa dejansko licenciranje ERP sistema

31

(46)

32 Nejc Kozjek je zahtevalo veliko poskuˇsanja, da sem implementiral sistem v taki meri, da sem bil zadovoljen z rezultatom.

6.1 Ideje za nadaljnji razvoj

Moˇznosti za nadaljnji razvoj sistema je skoraj neomejeno, ˇce bi hotel podpreti vse najpopularnejˇse tehnologije za razvoj aplikacij, bi ˇze samo to vzelo veliko ˇcasa. Mreˇzne licence so delno implementirane in ne ponujajo tako dobrega nivoja zaˇsˇcite kot klasiˇcne licence, prav tako bi bilo treba mreˇzne licence nadgraditi v tej smeri, da je mogoˇce nastaviti na licenci, koliko uporabnikov lahko na enkrat uporablja programsko opremo.

Ko sem implementiral licenˇcni sistem v ERP, sem dobil dodatno idejo, da bi lahko na produkte uporabnik dodajal neke dinamiˇcne atribute, s katerimi bi programerju, ki implementira sistem v programsko opremo, dodali veliko veˇc manevrskega prostora.

Trenutno je uporabniˇski vmesnik namenjen samo administratorjem, ideja pa je, da se razvije ˇse uporabniˇski vmesnik za stranke, kjer bi lahko pregledali svoje licence, jih podaljˇsali in celo kupili novo.

(47)

Literatura

[1] Wikipedia ASP.NET Core. url: https://en.wikipedia.org/wiki/

ASP.NET_Core(pridobljeno 3. 7. 2021).

[2] Wikipedia Denuvo. url: https : / / en . wikipedia . org / wiki / Denuvo (pridobljeno 3. 7. 2021).

[3] Uradna spletna stran lantek. url: https://www.lantek.com/us (pri- dobljeno 3. 7. 2021).

[4] Wikipedia SolidWorks. url: https : / / en . wikipedia . org / wiki / SolidWorks (pridobljeno 3. 7. 2021).

[5] Wikipedia Microsoft SQL Server. url: https://en.wikipedia.org/

wiki/Microsoft_SQL_Server(pridobljeno 3. 7. 2021).

[6] Wikipedia TypeScript.url:https://en.wikipedia.org/wiki/TypeScript (pridobljeno 3. 7. 2021).

[7] Wikipedia Visual Studio. url: https : / / en . wikipedia . org / wiki / Microsoft_Visual_Studio (pridobljeno 3. 7. 2021).

[8] Wikipedia Visual Studio Code. url: https : / / en . wikipedia . org / wiki/Visual_Studio_Code (pridobljeno 3. 7. 2021).

[9] Vue.js vodiˇc.url:https://vuejs.org/v2/guide/(pridobljeno 3. 7. 2021).

33

Reference

POVEZANI DOKUMENTI

Ker se regresijski testi poganjajo skozi celoten razvojni cikel programske opreme, lahko uporabimo metodo bele škatle za testiranje programske opreme na nivoju enote

Odjemalec mora imeti za uporabo programske opreme OpenSPA veliko ra- zliˇ cnih podatkov: naslov IP streˇ znika, omreˇ zna vrata streˇ znika, javni kljuˇ c streˇ znika, zasebni kljuˇ

V raziskavi sem se osredotočil na sam okvir za vodenje projekta, ki je del Scrum metodologije (teki, dnevni Scrum sestanki, seznami zahtev, produktni vodja,

Na raˇ cunalniˇski informacijski sistem je dovo- ljeno le nameˇsˇ canje odobrene programske in sistemske opreme, ki jo doloˇ ci in namesti zunanji izvajalec za sistemsko

SaaS omogoˇ ca uporabnikom dostop do poslovne programske opreme preko omreˇ zja. Programska oprema je nameˇsˇ cena na oddaljenem streˇ zniku, ki se obiˇ cajno nahaja pri

Raˇ cunalniˇ stvo v oblaku je model, ki omogoˇ ca primeren omreˇ zni dostop na zahtevo iz katerekoli lokacije do deljene mnoˇ zice nasta- vljivih raˇ cunalniˇ skih virov (npr.

Uporabnikom moramo omogoˇ citi dostop do spletnega vmesnika, zato smo v arhi- tekturo nadzorne aplikacije vkljuˇ cili tudi spletni streˇ znik, ki omogoˇ ca komunikacijo s

S sodelo- vanjem projektnih razvijalcev pri razvoju metode, se bo omogoˇ cilo spoznava- nje dejanskega naˇ cina razvoja programske opreme s strani razvijalcev, prav tako pa se jim